diff --git a/.DS_Store b/.DS_Store index 1d92507..1ae7287 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/yshop-drink-boot3/.gitignore b/yshop-drink-boot3/.gitignore new file mode 100644 index 0000000..c22e3ca --- /dev/null +++ b/yshop-drink-boot3/.gitignore @@ -0,0 +1,53 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +.flattened-pom.xml + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml + +### JRebel ### +rebel.xml + +application-my.yaml + + diff --git a/yshop-drink-boot3/README.md b/yshop-drink-boot3/README.md new file mode 100644 index 0000000..5eb4610 --- /dev/null +++ b/yshop-drink-boot3/README.md @@ -0,0 +1,3 @@ +意向订餐系统,类似肯德基点餐小程序模式,支持多门店模式,基础技术Java,uniapp(支持H5、微信小程序) +采用当前流行技术组合的前后端分离点餐系统: SpringBoot3+jdk17、Spring Security OAuth2、MybatisPlus、SpringSecurity、jwt、redis、Vue3的前后端分离的系统, +包含店铺管理、积分兑换、云小票打印、图片素材库、订单管理、多规格sku、积分、优惠券、充值、多门店、微信公众号等功能,更适合企业或个人二次开发. \ No newline at end of file diff --git a/yshop-drink/lombok.config b/yshop-drink-boot3/lombok.config similarity index 100% rename from yshop-drink/lombok.config rename to yshop-drink-boot3/lombok.config diff --git a/yshop-drink-boot3/pom.xml b/yshop-drink-boot3/pom.xml new file mode 100644 index 0000000..7ee9c77 --- /dev/null +++ b/yshop-drink-boot3/pom.xml @@ -0,0 +1,152 @@ + + + 4.0.0 + co.yixiang.boot + yshop + ${revision} + pom + + yshop-dependencies + yshop-framework + + yshop-server + + yshop-module-system + yshop-module-infra + yshop-module-pay + yshop-module-mp + yshop-module-mall + yshop-module-message + yshop-module-score + yshop-module-express + yshop-module-marketing + yshop-module-member + + + ${project.artifactId} + yshop项目基础脚手架 + https://gitee.com/guchengwuyue/yshop-drink + + + 3.0.0 + + 17 + ${java.version} + ${java.version} + 3.2.2 + 3.11.0 + 1.5.0 + + 1.18.30 + 3.2.2 + 1.5.5.Final + UTF-8 + + + + + + co.yixiang.boot + yshop-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} + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + false + + -parameters + + + + + 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/yshop-drink-boot3/script/docker/Docker-HOWTO.md b/yshop-drink-boot3/script/docker/Docker-HOWTO.md new file mode 100644 index 0000000..ab5a0f8 --- /dev/null +++ b/yshop-drink-boot3/script/docker/Docker-HOWTO.md @@ -0,0 +1,49 @@ +# Docker Build & Up + +目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 +依赖:docker compose v2,删除`name: yshop-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。 + +## 功能文件列表 + +```text +. +├── Docker-HOWTO.md +├── docker-compose.yml +├── docker.env <-- 提供docker-compose环境变量配置 +├── yshop-server +│ └── Dockerfile +└── yshop-ui-admin + ├── .dockerignore + ├── Dockerfile + └── nginx.conf <-- 提供基础配置,gzip压缩、api转发 +``` + +## 构建 jar 包 + +```shell +# 创建maven缓存volume +docker volume create --name yshop-maven-repo + +docker run -it --rm --name yshop-maven \ + -v yshop-maven-repo:/root/.m2 \ + -v $PWD:/usr/src/mymaven \ + -w /usr/src/mymaven \ + maven mvn clean install package '-Dmaven.test.skip=true' +``` + +## 构建启动服务 + +```shell +docker compose --env-file docker.env up -d +``` + +首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像 + +`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。 + +## 服务器的宿主机端口映射 + +- admin ui: http://localhost:8080 +- api server: http://localhost:48080 +- mysql: root/123456, port: 3306 +- redis: port: 6379 diff --git a/yshop-drink-boot3/script/docker/docker-compose.yml b/yshop-drink-boot3/script/docker/docker-compose.yml new file mode 100644 index 0000000..2145365 --- /dev/null +++ b/yshop-drink-boot3/script/docker/docker-compose.yml @@ -0,0 +1,84 @@ +version: "3.4" + +name: yshop-system + +services: + mysql: + container_name: yshop-mysql + image: mysql:8 + restart: unless-stopped + tty: true + ports: + - "3306:3306" + environment: + MYSQL_DATABASE: ${MYSQL_DATABASE:-yixiang-drink} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} + volumes: + - mysql:/var/lib/mysql/ + - ./sql/mysql/yixiang-drink.sql:/docker-entrypoint-initdb.d/yixiang-drink.sql:ro + + redis: + container_name: yshop-redis + image: redis:6-alpine + restart: unless-stopped + ports: + - "6379:6379" + volumes: + - redis:/data + + server: + container_name: yshop-server + build: + context: ./yshop-server/ + image: yshop-server + restart: unless-stopped + ports: + - "48080:48080" + environment: + # https://github.com/polovyivan/docker-pass-configs-to-container + SPRING_PROFILES_ACTIVE: local + JAVA_OPTS: + ${JAVA_OPTS:- + -Xms512m + -Xmx512m + -Djava.security.egd=file:/dev/./urandom + } + ARGS: + --spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yshop-mysql:3306/yixiang-drink?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} + --spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root} + --spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456} + --spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yshop-mysql:3306/yixiang-drink?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} + --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root} + --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456} + --spring.data.redis.host=${REDIS_HOST:-yshop-redis} + depends_on: + - mysql + - redis + + admin: + container_name: yshop-admin + build: + context: ./yshop-ui-admin + args: + NODE_ENV: + ENV=${NODE_ENV:-production} + PUBLIC_PATH=${PUBLIC_PATH:-/} + VUE_APP_TITLE=${VUE_APP_TITLE:-意象商城管理系统} + VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api} + VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/} + VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true} + VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true} + VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true} + VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab} + image: yshop-admin + restart: unless-stopped + ports: + - "8080:80" + depends_on: + - server + +volumes: + mysql: + driver: local + redis: + driver: local diff --git a/yshop-drink-boot3/script/docker/docker.env b/yshop-drink-boot3/script/docker/docker.env new file mode 100644 index 0000000..6672bf7 --- /dev/null +++ b/yshop-drink-boot3/script/docker/docker.env @@ -0,0 +1,25 @@ +## mysql +MYSQL_DATABASE=yixiang-drink +MYSQL_ROOT_PASSWORD=123456 + +## server +JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom + +MASTER_DATASOURCE_URL=jdbc:mysql://yshop-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +MASTER_DATASOURCE_USERNAME=root +MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} +SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL} +SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME} +SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD} +REDIS_HOST=yshop-redis + +## admin +NODE_ENV=production +PUBLIC_PATH=/ +VUE_APP_TITLE=意象商城管理系统 +VUE_APP_BASE_API=/prod-api +VUE_APP_APP_NAME=/ +VUE_APP_TENANT_ENABLE=true +VUE_APP_CAPTCHA_ENABLE=true +VUE_APP_DOC_ENABLE=true +VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab diff --git a/yshop-drink/bin/deploy.sh b/yshop-drink-boot3/script/shell/deploy.sh similarity index 91% rename from yshop-drink/bin/deploy.sh rename to yshop-drink-boot3/script/shell/deploy.sh index 8c178fe..6733ca1 100644 --- a/yshop-drink/bin/deploy.sh +++ b/yshop-drink-boot3/script/shell/deploy.sh @@ -3,7 +3,7 @@ set -e DATE=$(date +%Y%m%d%H%M) # 基础路径 -BASE_PATH=/work/projects/yshop-pro-server +BASE_PATH=/work/projects/yshop-server # 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下 SOURCE_PATH=$BASE_PATH/build # 服务名称。同时约定部署服务的 jar 包名字也为它。 @@ -11,13 +11,19 @@ SERVER_NAME=yshop-server # 环境 PROFILES_ACTIVE=development # 健康检查 URL -HEALTH_CHECK_URL=http://127.0.0.1:48081/actuator/health/ +HEALTH_CHECK_URL=http://127.0.0.1:48080/actuator/health/ # heapError 存放路径 HEAP_ERROR_PATH=$BASE_PATH/heapError # JVM 参数 JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH" +# SkyWalking Agent 配置 +#export SW_AGENT_NAME=$SERVER_NAME +#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800 +#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84 +#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**" +#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar # 备份 function backup() { @@ -68,7 +74,7 @@ function stop() { if [ -n "$PID" ]; then echo -e ".\c" else - echo '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功' + echo "[stop] 停止 $BASE_PATH/$SERVER_NAME 成功" break fi done diff --git a/yshop-drink-boot3/sql/yixiang-drink-open.sql b/yshop-drink-boot3/sql/yixiang-drink-open.sql new file mode 100644 index 0000000..c795b4b --- /dev/null +++ b/yshop-drink-boot3/sql/yixiang-drink-open.sql @@ -0,0 +1,14703 @@ +/* + Navicat Premium Data Transfer + + Source Server : localhost + Source Server Type : MySQL + Source Server Version : 80027 + Source Host : localhost:3306 + Source Schema : yixiang-drink-open + + Target Server Type : MySQL + Target Server Version : 80027 + File Encoding : 65001 + + Date: 01/06/2024 14:39:29 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for infra_api_access_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_access_log`; +CREATE TABLE `infra_api_access_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL DEFAULT '0' COMMENT '用户编号', + `user_type` tinyint 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 NOT NULL COMMENT '开始请求时间', + `end_time` datetime NOT NULL COMMENT '结束请求时间', + `duration` int NOT NULL COMMENT '执行时长', + `result_code` int NOT NULL DEFAULT '0' COMMENT '结果码', + `result_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '结果提示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=39086 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API 访问日志表'; + +-- ---------------------------- +-- Records of infra_api_access_log +-- ---------------------------- +BEGIN; +INSERT INTO `infra_api_access_log` VALUES (35832, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"UfvRRNHFx/GsY1BmKPp+qcVY1zH5sRMB1x+pOVFo7Fw=\\\",\\\"token\\\":\\\"076fd68355f84eb8848afd03eb8538c3\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:28', '2023-09-13 19:18:28', 0, 0, '', NULL, '2023-09-13 19:18:28', NULL, '2023-09-13 19:18:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35833, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:29', '2023-09-13 19:18:29', 0, 0, '', NULL, '2023-09-13 19:18:29', NULL, '2023-09-13 19:18:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35834, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"v9+39VVjPDknXhgAP4X4Objx84qUktLDjQmvgfn1FVs=\\\",\\\"token\\\":\\\"01b93ca2944643548009cde3ae35da32\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:31', '2023-09-13 19:18:31', 0, 0, '', NULL, '2023-09-13 19:18:31', NULL, '2023-09-13 19:18:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35835, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"captchaVerification\\\":\\\"iGI5lSrSzMX9RKCj560QDdE3QGNiG63vMPkeHcKPfBizIrTp0kblQfThxIyzfg/SzI5yXjp9U5L0MhyYhz49Yg==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:33', '2023-09-13 19:18:33', 0, 0, '', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35836, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:33', '2023-09-13 19:18:33', 0, 0, '', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35837, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:33', '2023-09-13 19:18:33', 0, 0, '', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35838, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:33', '2023-09-13 19:18:33', 0, 0, '', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35839, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/list-menus', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:33', '2023-09-13 19:18:33', 0, 0, '', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35840, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:34', '2023-09-13 19:18:34', 0, 0, '', NULL, '2023-09-13 19:18:34', NULL, '2023-09-13 19:18:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35841, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:34', '2023-09-13 19:18:34', 0, 0, '', NULL, '2023-09-13 19:18:34', NULL, '2023-09-13 19:18:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35842, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:18:34', '2023-09-13 19:18:34', 0, 0, '', NULL, '2023-09-13 19:18:34', NULL, '2023-09-13 19:18:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35843, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '43.138.0.181', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36', '2023-09-13 19:19:02', '2023-09-13 19:19:02', 0, 0, '', NULL, '2023-09-13 19:19:02', NULL, '2023-09-13 19:19:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35844, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:20:34', '2023-09-13 19:20:34', 0, 0, '', NULL, '2023-09-13 19:20:34', NULL, '2023-09-13 19:20:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35845, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:22:34', '2023-09-13 19:22:34', 0, 0, '', NULL, '2023-09-13 19:22:34', NULL, '2023-09-13 19:22:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35846, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:24:34', '2023-09-13 19:24:34', 0, 0, '', NULL, '2023-09-13 19:24:34', NULL, '2023-09-13 19:24:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35847, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:26:34', '2023-09-13 19:26:34', 0, 0, '', NULL, '2023-09-13 19:26:34', NULL, '2023-09-13 19:26:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35848, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:28:35', '2023-09-13 19:28:35', 0, 0, '', NULL, '2023-09-13 19:28:35', NULL, '2023-09-13 19:28:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35849, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:30:34', '2023-09-13 19:30:34', 0, 0, '', NULL, '2023-09-13 19:30:34', NULL, '2023-09-13 19:30:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35850, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:32:34', '2023-09-13 19:32:34', 0, 0, '', NULL, '2023-09-13 19:32:34', NULL, '2023-09-13 19:32:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35851, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:34:34', '2023-09-13 19:34:34', 0, 0, '', NULL, '2023-09-13 19:34:34', NULL, '2023-09-13 19:34:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35852, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:36:34', '2023-09-13 19:36:34', 0, 0, '', NULL, '2023-09-13 19:36:34', NULL, '2023-09-13 19:36:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35853, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:38:34', '2023-09-13 19:38:34', 0, 0, '', NULL, '2023-09-13 19:38:34', NULL, '2023-09-13 19:38:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35854, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:40:35', '2023-09-13 19:40:35', 0, 0, '', NULL, '2023-09-13 19:40:35', NULL, '2023-09-13 19:40:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35855, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:42:35', '2023-09-13 19:42:35', 0, 0, '', NULL, '2023-09-13 19:42:35', NULL, '2023-09-13 19:42:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35856, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:44:38', '2023-09-13 19:44:38', 0, 0, '', NULL, '2023-09-13 19:44:38', NULL, '2023-09-13 19:44:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35857, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:46:38', '2023-09-13 19:46:38', 0, 0, '', NULL, '2023-09-13 19:46:38', NULL, '2023-09-13 19:46:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35858, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:48:38', '2023-09-13 19:48:38', 0, 0, '', NULL, '2023-09-13 19:48:38', NULL, '2023-09-13 19:48:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35859, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:50:38', '2023-09-13 19:50:38', 0, 0, '', NULL, '2023-09-13 19:50:38', NULL, '2023-09-13 19:50:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35860, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:52:38', '2023-09-13 19:52:38', 0, 0, '', NULL, '2023-09-13 19:52:38', NULL, '2023-09-13 19:52:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35861, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:54:38', '2023-09-13 19:54:38', 0, 0, '', NULL, '2023-09-13 19:54:38', NULL, '2023-09-13 19:54:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35862, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:56:38', '2023-09-13 19:56:38', 0, 0, '', NULL, '2023-09-13 19:56:38', NULL, '2023-09-13 19:56:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35863, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 19:58:38', '2023-09-13 19:58:38', 0, 0, '', NULL, '2023-09-13 19:58:38', NULL, '2023-09-13 19:58:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35864, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:00:38', '2023-09-13 20:00:38', 0, 0, '', NULL, '2023-09-13 20:00:38', NULL, '2023-09-13 20:00:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35865, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:02:38', '2023-09-13 20:02:38', 0, 0, '', NULL, '2023-09-13 20:02:38', NULL, '2023-09-13 20:02:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35866, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:04:38', '2023-09-13 20:04:38', 0, 0, '', NULL, '2023-09-13 20:04:38', NULL, '2023-09-13 20:04:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35867, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:06:38', '2023-09-13 20:06:38', 0, 0, '', NULL, '2023-09-13 20:06:38', NULL, '2023-09-13 20:06:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35868, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:08:38', '2023-09-13 20:08:38', 0, 0, '', NULL, '2023-09-13 20:08:38', NULL, '2023-09-13 20:08:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35869, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:10:38', '2023-09-13 20:10:38', 0, 0, '', NULL, '2023-09-13 20:10:38', NULL, '2023-09-13 20:10:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35870, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:12:38', '2023-09-13 20:12:38', 0, 0, '', NULL, '2023-09-13 20:12:38', NULL, '2023-09-13 20:12:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35871, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:14:39', '2023-09-13 20:14:39', 0, 0, '', NULL, '2023-09-13 20:14:39', NULL, '2023-09-13 20:14:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35872, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:16:38', '2023-09-13 20:16:38', 0, 0, '', NULL, '2023-09-13 20:16:38', NULL, '2023-09-13 20:16:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35873, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:18:38', '2023-09-13 20:18:38', 0, 0, '', NULL, '2023-09-13 20:18:38', NULL, '2023-09-13 20:18:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35874, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:20:38', '2023-09-13 20:20:38', 0, 0, '', NULL, '2023-09-13 20:20:38', NULL, '2023-09-13 20:20:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35875, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:22:38', '2023-09-13 20:22:38', 0, 0, '', NULL, '2023-09-13 20:22:38', NULL, '2023-09-13 20:22:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35876, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:24:38', '2023-09-13 20:24:38', 0, 0, '', NULL, '2023-09-13 20:24:38', NULL, '2023-09-13 20:24:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35877, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:26:38', '2023-09-13 20:26:38', 0, 0, '', NULL, '2023-09-13 20:26:38', NULL, '2023-09-13 20:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35878, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:28:38', '2023-09-13 20:28:38', 0, 0, '', NULL, '2023-09-13 20:28:38', NULL, '2023-09-13 20:28:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35879, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:30:38', '2023-09-13 20:30:38', 0, 0, '', NULL, '2023-09-13 20:30:38', NULL, '2023-09-13 20:30:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35880, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:32:38', '2023-09-13 20:32:38', 0, 0, '', NULL, '2023-09-13 20:32:38', NULL, '2023-09-13 20:32:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35881, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:34:38', '2023-09-13 20:34:38', 0, 0, '', NULL, '2023-09-13 20:34:38', NULL, '2023-09-13 20:34:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35882, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:36:38', '2023-09-13 20:36:38', 0, 0, '', NULL, '2023-09-13 20:36:38', NULL, '2023-09-13 20:36:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35883, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:38:38', '2023-09-13 20:38:38', 0, 0, '', NULL, '2023-09-13 20:38:38', NULL, '2023-09-13 20:38:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35884, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:40:38', '2023-09-13 20:40:38', 0, 0, '', NULL, '2023-09-13 20:40:38', NULL, '2023-09-13 20:40:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35885, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:42:38', '2023-09-13 20:42:38', 0, 0, '', NULL, '2023-09-13 20:42:38', NULL, '2023-09-13 20:42:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35886, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:44:38', '2023-09-13 20:44:38', 0, 0, '', NULL, '2023-09-13 20:44:38', NULL, '2023-09-13 20:44:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35887, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:46:38', '2023-09-13 20:46:38', 0, 0, '', NULL, '2023-09-13 20:46:38', NULL, '2023-09-13 20:46:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35888, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:48:38', '2023-09-13 20:48:38', 0, 0, '', NULL, '2023-09-13 20:48:38', NULL, '2023-09-13 20:48:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35889, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:50:38', '2023-09-13 20:50:38', 0, 0, '', NULL, '2023-09-13 20:50:38', NULL, '2023-09-13 20:50:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35890, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:52:38', '2023-09-13 20:52:38', 0, 0, '', NULL, '2023-09-13 20:52:38', NULL, '2023-09-13 20:52:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35891, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:54:38', '2023-09-13 20:54:38', 0, 0, '', NULL, '2023-09-13 20:54:38', NULL, '2023-09-13 20:54:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35892, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:56:38', '2023-09-13 20:56:38', 0, 0, '', NULL, '2023-09-13 20:56:38', NULL, '2023-09-13 20:56:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35893, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 20:58:38', '2023-09-13 20:58:38', 0, 0, '', NULL, '2023-09-13 20:58:38', NULL, '2023-09-13 20:58:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35894, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:00:38', '2023-09-13 21:00:38', 0, 0, '', NULL, '2023-09-13 21:00:38', NULL, '2023-09-13 21:00:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35895, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:02:38', '2023-09-13 21:02:38', 0, 0, '', NULL, '2023-09-13 21:02:38', NULL, '2023-09-13 21:02:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35896, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:04:38', '2023-09-13 21:04:38', 0, 0, '', NULL, '2023-09-13 21:04:38', NULL, '2023-09-13 21:04:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35897, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:06:38', '2023-09-13 21:06:38', 0, 0, '', NULL, '2023-09-13 21:06:38', NULL, '2023-09-13 21:06:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35898, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:08:38', '2023-09-13 21:08:38', 0, 0, '', NULL, '2023-09-13 21:08:38', NULL, '2023-09-13 21:08:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35899, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:10:38', '2023-09-13 21:10:38', 0, 0, '', NULL, '2023-09-13 21:10:38', NULL, '2023-09-13 21:10:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35900, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:12:38', '2023-09-13 21:12:38', 0, 0, '', NULL, '2023-09-13 21:12:38', NULL, '2023-09-13 21:12:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35901, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:14:38', '2023-09-13 21:14:38', 0, 0, '', NULL, '2023-09-13 21:14:38', NULL, '2023-09-13 21:14:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35902, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:16:38', '2023-09-13 21:16:38', 0, 0, '', NULL, '2023-09-13 21:16:38', NULL, '2023-09-13 21:16:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35903, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:18:38', '2023-09-13 21:18:38', 0, 0, '', NULL, '2023-09-13 21:18:38', NULL, '2023-09-13 21:18:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35904, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:20:38', '2023-09-13 21:20:38', 0, 0, '', NULL, '2023-09-13 21:20:38', NULL, '2023-09-13 21:20:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35905, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:22:38', '2023-09-13 21:22:38', 0, 0, '', NULL, '2023-09-13 21:22:38', NULL, '2023-09-13 21:22:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35906, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:34:02', '2023-09-13 21:34:02', 0, 0, '', NULL, '2023-09-13 21:34:02', NULL, '2023-09-13 21:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35907, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:50:07', '2023-09-13 21:50:07', 0, 0, '', NULL, '2023-09-13 21:50:07', NULL, '2023-09-13 21:50:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35908, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 21:56:49', '2023-09-13 21:56:49', 0, 0, '', NULL, '2023-09-13 21:56:49', NULL, '2023-09-13 21:56:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35909, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 23:34:07', '2023-09-13 23:34:07', 0, 0, '', NULL, '2023-09-13 23:34:07', NULL, '2023-09-13 23:34:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35910, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 23:45:30', '2023-09-13 23:45:30', 0, 0, '', NULL, '2023-09-13 23:45:30', NULL, '2023-09-13 23:45:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35911, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-13 23:56:43', '2023-09-13 23:56:43', 0, 0, '', NULL, '2023-09-13 23:56:43', NULL, '2023-09-13 23:56:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35912, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 02:03:33', '2023-09-14 02:03:33', 0, 0, '', NULL, '2023-09-14 02:03:33', NULL, '2023-09-14 02:03:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35913, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 02:14:57', '2023-09-14 02:14:57', 0, 0, '', NULL, '2023-09-14 02:14:57', NULL, '2023-09-14 02:14:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35914, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 02:26:10', '2023-09-14 02:26:10', 0, 0, '', NULL, '2023-09-14 02:26:10', NULL, '2023-09-14 02:26:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35915, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 04:32:51', '2023-09-14 04:32:51', 0, 0, '', NULL, '2023-09-14 04:32:51', NULL, '2023-09-14 04:32:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35916, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 04:48:56', '2023-09-14 04:48:56', 0, 0, '', NULL, '2023-09-14 04:48:56', NULL, '2023-09-14 04:48:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35917, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 05:00:19', '2023-09-14 05:00:19', 0, 0, '', NULL, '2023-09-14 05:00:19', NULL, '2023-09-14 05:00:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35918, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 05:41:07', '2023-09-14 05:41:07', 0, 0, '', NULL, '2023-09-14 05:41:07', NULL, '2023-09-14 05:41:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35919, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 05:52:30', '2023-09-14 05:52:30', 0, 0, '', NULL, '2023-09-14 05:52:30', NULL, '2023-09-14 05:52:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35920, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 06:03:54', '2023-09-14 06:03:54', 0, 0, '', NULL, '2023-09-14 06:03:54', NULL, '2023-09-14 06:03:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35921, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 06:15:18', '2023-09-14 06:15:18', 0, 0, '', NULL, '2023-09-14 06:15:18', NULL, '2023-09-14 06:15:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35922, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 07:03:57', '2023-09-14 07:03:57', 0, 0, '', NULL, '2023-09-14 07:03:57', NULL, '2023-09-14 07:03:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35923, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 07:15:11', '2023-09-14 07:15:11', 0, 0, '', NULL, '2023-09-14 07:15:11', NULL, '2023-09-14 07:15:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35924, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 07:26:35', '2023-09-14 07:26:35', 0, 0, '', NULL, '2023-09-14 07:26:35', NULL, '2023-09-14 07:26:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35925, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:43:04', '2023-09-14 08:43:04', 0, 0, '', NULL, '2023-09-14 08:43:04', NULL, '2023-09-14 08:43:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35926, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:45:04', '2023-09-14 08:45:04', 0, 0, '', NULL, '2023-09-14 08:45:04', NULL, '2023-09-14 08:45:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35927, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:47:04', '2023-09-14 08:47:04', 0, 0, '', NULL, '2023-09-14 08:47:04', NULL, '2023-09-14 08:47:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35928, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:49:04', '2023-09-14 08:49:04', 0, 0, '', NULL, '2023-09-14 08:49:04', NULL, '2023-09-14 08:49:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35929, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:49:10', '2023-09-14 08:49:10', 0, 0, '', NULL, '2023-09-14 08:49:10', NULL, '2023-09-14 08:49:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35930, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:49:10', '2023-09-14 08:49:10', 0, 0, '', NULL, '2023-09-14 08:49:10', NULL, '2023-09-14 08:49:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35931, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:49:54', '2023-09-14 08:49:54', 0, 0, '', NULL, '2023-09-14 08:49:54', NULL, '2023-09-14 08:49:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35932, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:51:04', '2023-09-14 08:51:04', 0, 0, '', NULL, '2023-09-14 08:51:04', NULL, '2023-09-14 08:51:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35933, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:53:04', '2023-09-14 08:53:04', 0, 0, '', NULL, '2023-09-14 08:53:04', NULL, '2023-09-14 08:53:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35934, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 08:53:17', '2023-09-14 08:53:17', 0, 0, '', NULL, '2023-09-14 08:53:17', NULL, '2023-09-14 08:53:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35935, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 08:53:17', '2023-09-14 08:53:17', 0, 0, '', NULL, '2023-09-14 08:53:17', NULL, '2023-09-14 08:53:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35936, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1Quo0w3eflm13ORV0w3jB5aA2Quo0l\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 08:53:17', '2023-09-14 08:53:18', 0, 0, '', NULL, '2023-09-14 08:53:18', NULL, '2023-09-14 08:53:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35937, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:55:04', '2023-09-14 08:55:04', 0, 0, '', NULL, '2023-09-14 08:55:04', NULL, '2023-09-14 08:55:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35938, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:57:07', '2023-09-14 08:57:07', 0, 0, '', NULL, '2023-09-14 08:57:07', NULL, '2023-09-14 08:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35939, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 08:59:07', '2023-09-14 08:59:07', 0, 0, '', NULL, '2023-09-14 08:59:07', NULL, '2023-09-14 08:59:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35940, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:01:08', '2023-09-14 09:01:08', 0, 0, '', NULL, '2023-09-14 09:01:08', NULL, '2023-09-14 09:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35941, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:03:07', '2023-09-14 09:03:07', 0, 0, '', NULL, '2023-09-14 09:03:07', NULL, '2023-09-14 09:03:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35942, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:05:08', '2023-09-14 09:05:08', 0, 0, '', NULL, '2023-09-14 09:05:08', NULL, '2023-09-14 09:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35943, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:06:41', '2023-09-14 09:06:41', 0, 0, '', NULL, '2023-09-14 09:06:41', NULL, '2023-09-14 09:06:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35944, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:07:08', '2023-09-14 09:07:08', 0, 0, '', NULL, '2023-09-14 09:07:08', NULL, '2023-09-14 09:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35945, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:09:07', '2023-09-14 09:09:07', 0, 0, '', NULL, '2023-09-14 09:09:07', NULL, '2023-09-14 09:09:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35946, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:11:07', '2023-09-14 09:11:07', 0, 0, '', NULL, '2023-09-14 09:11:07', NULL, '2023-09-14 09:11:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35947, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:13:07', '2023-09-14 09:13:07', 0, 0, '', NULL, '2023-09-14 09:13:07', NULL, '2023-09-14 09:13:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35948, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:15:08', '2023-09-14 09:15:08', 0, 0, '', NULL, '2023-09-14 09:15:08', NULL, '2023-09-14 09:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35949, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:17:07', '2023-09-14 09:17:07', 0, 0, '', NULL, '2023-09-14 09:17:07', NULL, '2023-09-14 09:17:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35950, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:19:07', '2023-09-14 09:19:07', 0, 0, '', NULL, '2023-09-14 09:19:07', NULL, '2023-09-14 09:19:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35951, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:21:07', '2023-09-14 09:21:07', 0, 0, '', NULL, '2023-09-14 09:21:07', NULL, '2023-09-14 09:21:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35952, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:23:07', '2023-09-14 09:23:07', 0, 0, '', NULL, '2023-09-14 09:23:07', NULL, '2023-09-14 09:23:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35953, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:25:07', '2023-09-14 09:25:07', 0, 0, '', NULL, '2023-09-14 09:25:07', NULL, '2023-09-14 09:25:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35954, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:27:07', '2023-09-14 09:27:07', 0, 0, '', NULL, '2023-09-14 09:27:07', NULL, '2023-09-14 09:27:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35955, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:29:07', '2023-09-14 09:29:07', 0, 0, '', NULL, '2023-09-14 09:29:07', NULL, '2023-09-14 09:29:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35956, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:31:07', '2023-09-14 09:31:07', 0, 0, '', NULL, '2023-09-14 09:31:07', NULL, '2023-09-14 09:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35957, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:33:08', '2023-09-14 09:33:08', 0, 0, '', NULL, '2023-09-14 09:33:08', NULL, '2023-09-14 09:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35958, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:35:08', '2023-09-14 09:35:08', 0, 0, '', NULL, '2023-09-14 09:35:08', NULL, '2023-09-14 09:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35959, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:37:07', '2023-09-14 09:37:07', 0, 0, '', NULL, '2023-09-14 09:37:07', NULL, '2023-09-14 09:37:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35960, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"i9hdwGTfCK0ySXrAZMTDmKuZVPiJy/V/meUxU/dbzCo=\\\",\\\"token\\\":\\\"632552fa5b3f4aee8e88d62122496d17\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:38:59', '2023-09-14 09:38:59', 0, 0, '', NULL, '2023-09-14 09:38:59', NULL, '2023-09-14 09:38:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35961, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:00', '2023-09-14 09:39:00', 0, 0, '', NULL, '2023-09-14 09:39:00', NULL, '2023-09-14 09:39:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35962, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"URtryuhAxbA6uQ/eZPA1exKGcjfW8883n3tKqhfL7wA=\\\",\\\"token\\\":\\\"8ae67417cfde4961bf964ef56172644f\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:03', '2023-09-14 09:39:03', 0, 0, '', NULL, '2023-09-14 09:39:03', NULL, '2023-09-14 09:39:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35963, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"captchaVerification\\\":\\\"RwKv1PkLrvxP+jTG9e8UO4c9k0fPbaMIyfqdFN36ZUeSrZU/PHB4YzT7GkvXZeAaMA4Eow3f9gHmo0nYq+5CVQ==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:04', '2023-09-14 09:39:04', 0, 0, '', NULL, '2023-09-14 09:39:04', NULL, '2023-09-14 09:39:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35964, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:04', '2023-09-14 09:39:04', 0, 0, '', NULL, '2023-09-14 09:39:04', NULL, '2023-09-14 09:39:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35965, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35966, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35967, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/list-menus', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35968, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35969, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35970, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35971, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:39:05', '2023-09-14 09:39:05', 0, 0, '', NULL, '2023-09-14 09:39:05', NULL, '2023-09-14 09:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35972, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:41:04', '2023-09-14 09:41:04', 0, 0, '', NULL, '2023-09-14 09:41:04', NULL, '2023-09-14 09:41:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35973, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:41:06', '2023-09-14 09:41:06', 0, 0, '', NULL, '2023-09-14 09:41:06', NULL, '2023-09-14 09:41:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35974, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:43:04', '2023-09-14 09:43:04', 0, 0, '', NULL, '2023-09-14 09:43:04', NULL, '2023-09-14 09:43:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35975, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:43:06', '2023-09-14 09:43:06', 0, 0, '', NULL, '2023-09-14 09:43:06', NULL, '2023-09-14 09:43:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35976, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:45:06', '2023-09-14 09:45:06', 0, 0, '', NULL, '2023-09-14 09:45:06', NULL, '2023-09-14 09:45:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35977, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:45:07', '2023-09-14 09:45:07', 0, 0, '', NULL, '2023-09-14 09:45:07', NULL, '2023-09-14 09:45:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35978, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:47:06', '2023-09-14 09:47:06', 0, 0, '', NULL, '2023-09-14 09:47:06', NULL, '2023-09-14 09:47:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35979, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:47:07', '2023-09-14 09:47:07', 0, 0, '', NULL, '2023-09-14 09:47:07', NULL, '2023-09-14 09:47:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35980, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:49:08', '2023-09-14 09:49:08', 0, 0, '', NULL, '2023-09-14 09:49:08', NULL, '2023-09-14 09:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35981, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:49:55', '2023-09-14 09:49:55', 0, 0, '', NULL, '2023-09-14 09:49:55', NULL, '2023-09-14 09:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35982, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:07', '2023-09-14 09:51:07', 0, 0, '', NULL, '2023-09-14 09:51:07', NULL, '2023-09-14 09:51:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35983, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:24', '2023-09-14 09:51:24', 0, 0, '', NULL, '2023-09-14 09:51:24', NULL, '2023-09-14 09:51:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35984, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:32', '2023-09-14 09:51:32', 0, 0, '', NULL, '2023-09-14 09:51:32', NULL, '2023-09-14 09:51:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35985, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:36', '2023-09-14 09:51:36', 0, 0, '', NULL, '2023-09-14 09:51:36', NULL, '2023-09-14 09:51:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35986, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:36', '2023-09-14 09:51:36', 0, 0, '', NULL, '2023-09-14 09:51:36', NULL, '2023-09-14 09:51:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35987, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:51', '2023-09-14 09:51:51', 0, 0, '', NULL, '2023-09-14 09:51:51', NULL, '2023-09-14 09:51:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35988, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:51:51', '2023-09-14 09:51:51', 0, 0, '', NULL, '2023-09-14 09:51:51', NULL, '2023-09-14 09:51:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35989, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:53:06', '2023-09-14 09:53:06', 0, 0, '', NULL, '2023-09-14 09:53:06', NULL, '2023-09-14 09:53:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35990, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:53:07', '2023-09-14 09:53:07', 0, 0, '', NULL, '2023-09-14 09:53:07', NULL, '2023-09-14 09:53:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35991, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:55:06', '2023-09-14 09:55:06', 0, 0, '', NULL, '2023-09-14 09:55:06', NULL, '2023-09-14 09:55:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35992, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:55:07', '2023-09-14 09:55:07', 0, 0, '', NULL, '2023-09-14 09:55:07', NULL, '2023-09-14 09:55:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35993, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:57:07', '2023-09-14 09:57:07', 0, 0, '', NULL, '2023-09-14 09:57:07', NULL, '2023-09-14 09:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35994, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:57:55', '2023-09-14 09:57:55', 0, 0, '', NULL, '2023-09-14 09:57:55', NULL, '2023-09-14 09:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35995, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:59:07', '2023-09-14 09:59:07', 0, 0, '', NULL, '2023-09-14 09:59:07', NULL, '2023-09-14 09:59:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35996, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 09:59:55', '2023-09-14 09:59:55', 0, 0, '', NULL, '2023-09-14 09:59:55', NULL, '2023-09-14 09:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35997, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:01:07', '2023-09-14 10:01:07', 0, 0, '', NULL, '2023-09-14 10:01:07', NULL, '2023-09-14 10:01:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35998, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:01:55', '2023-09-14 10:01:55', 0, 0, '', NULL, '2023-09-14 10:01:55', NULL, '2023-09-14 10:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (35999, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:03:07', '2023-09-14 10:03:07', 0, 0, '', NULL, '2023-09-14 10:03:07', NULL, '2023-09-14 10:03:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36000, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:03:55', '2023-09-14 10:03:55', 0, 0, '', NULL, '2023-09-14 10:03:55', NULL, '2023-09-14 10:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36001, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:05:07', '2023-09-14 10:05:07', 0, 0, '', NULL, '2023-09-14 10:05:07', NULL, '2023-09-14 10:05:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36002, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:05:55', '2023-09-14 10:05:55', 0, 0, '', NULL, '2023-09-14 10:05:55', NULL, '2023-09-14 10:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36003, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:07:07', '2023-09-14 10:07:07', 0, 0, '', NULL, '2023-09-14 10:07:07', NULL, '2023-09-14 10:07:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36004, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:07:55', '2023-09-14 10:07:55', 0, 0, '', NULL, '2023-09-14 10:07:55', NULL, '2023-09-14 10:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36005, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:09:05', '2023-09-14 10:09:05', 0, 0, '', NULL, '2023-09-14 10:09:05', NULL, '2023-09-14 10:09:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36006, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:09:07', '2023-09-14 10:09:07', 0, 0, '', NULL, '2023-09-14 10:09:07', NULL, '2023-09-14 10:09:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36007, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:11:05', '2023-09-14 10:11:05', 0, 0, '', NULL, '2023-09-14 10:11:05', NULL, '2023-09-14 10:11:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36008, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:11:07', '2023-09-14 10:11:07', 0, 0, '', NULL, '2023-09-14 10:11:07', NULL, '2023-09-14 10:11:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36009, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:13:06', '2023-09-14 10:13:06', 0, 0, '', NULL, '2023-09-14 10:13:06', NULL, '2023-09-14 10:13:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36010, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:13:08', '2023-09-14 10:13:08', 0, 0, '', NULL, '2023-09-14 10:13:08', NULL, '2023-09-14 10:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36011, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:15:07', '2023-09-14 10:15:07', 0, 0, '', NULL, '2023-09-14 10:15:07', NULL, '2023-09-14 10:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36012, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:15:55', '2023-09-14 10:15:55', 0, 0, '', NULL, '2023-09-14 10:15:55', NULL, '2023-09-14 10:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36013, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:17:07', '2023-09-14 10:17:07', 0, 0, '', NULL, '2023-09-14 10:17:07', NULL, '2023-09-14 10:17:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36014, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:17:18', '2023-09-14 10:17:18', 0, 0, '', NULL, '2023-09-14 10:17:18', NULL, '2023-09-14 10:17:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36015, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:07', '2023-09-14 10:19:07', 0, 0, '', NULL, '2023-09-14 10:19:07', NULL, '2023-09-14 10:19:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36016, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:37', '2023-09-14 10:19:37', 0, 0, '', NULL, '2023-09-14 10:19:37', NULL, '2023-09-14 10:19:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36017, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:37', '2023-09-14 10:19:37', 0, 0, '', NULL, '2023-09-14 10:19:37', NULL, '2023-09-14 10:19:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36018, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:38', '2023-09-14 10:19:38', 0, 0, '', NULL, '2023-09-14 10:19:38', NULL, '2023-09-14 10:19:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36019, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:38', '2023-09-14 10:19:38', 0, 0, '', NULL, '2023-09-14 10:19:38', NULL, '2023-09-14 10:19:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36020, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:55', '2023-09-14 10:19:55', 0, 0, '', NULL, '2023-09-14 10:19:55', NULL, '2023-09-14 10:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36021, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:57', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36022, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36023, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36024, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36025, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36026, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36027, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36028, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36029, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:57', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36030, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36031, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"帮助.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36032, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"签到.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36033, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"客服.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36034, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"货币兑换.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:58', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36035, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"关于我们.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36036, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"账户.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36037, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"积分商城.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36038, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"退出登录.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36039, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"导航地址.png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36040, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"我的订单 (1).png\\\",\\\"url\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:58', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36041, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:19:59', '2023-09-14 10:19:59', 0, 0, '', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36042, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:20:36', '2023-09-14 10:20:36', 0, 0, '', NULL, '2023-09-14 10:20:36', NULL, '2023-09-14 10:20:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36043, '', 1, 2, 'yshop-server', 'GET', '/admin-api/infra/file-config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:20:47', '2023-09-14 10:20:47', 0, 0, '', NULL, '2023-09-14 10:20:47', NULL, '2023-09-14 10:20:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36044, '', 1, 2, 'yshop-server', 'GET', '/admin-api/infra/file-config/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:20:51', '2023-09-14 10:20:51', 0, 0, '', NULL, '2023-09-14 10:20:51', NULL, '2023-09-14 10:20:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36045, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:04', '2023-09-14 10:21:04', 0, 0, '', NULL, '2023-09-14 10:21:04', NULL, '2023-09-14 10:21:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36046, '', 1, 2, 'yshop-server', 'GET', '/admin-api/infra/file-config/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:24', '2023-09-14 10:21:24', 0, 0, '', NULL, '2023-09-14 10:21:24', NULL, '2023-09-14 10:21:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36047, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/infra/file-config/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"数据库\\\",\\\"remark\\\":\\\"我是数据库\\\",\\\"id\\\":4,\\\"storage\\\":1,\\\"master\\\":true,\\\"config\\\":{\\\"@class\\\":\\\"co.yixiang.yshop.framework.file.core.client.db.DBFileClientConfig\\\",\\\"domain\\\":\\\"https://apidc.yixiang.co\\\"},\\\"createTime\\\":1647359784000}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:29', '2023-09-14 10:21:29', 0, 0, '', NULL, '2023-09-14 10:21:29', NULL, '2023-09-14 10:21:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36048, '', 1, 2, 'yshop-server', 'GET', '/admin-api/infra/file-config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:29', '2023-09-14 10:21:29', 0, 0, '', NULL, '2023-09-14 10:21:29', NULL, '2023-09-14 10:21:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36049, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:44', '2023-09-14 10:21:44', 0, 0, '', NULL, '2023-09-14 10:21:44', NULL, '2023-09-14 10:21:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36050, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:44', '2023-09-14 10:21:44', 0, 0, '', NULL, '2023-09-14 10:21:44', NULL, '2023-09-14 10:21:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36051, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:45', '2023-09-14 10:21:45', 0, 0, '', NULL, '2023-09-14 10:21:45', NULL, '2023-09-14 10:21:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36052, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:45', '2023-09-14 10:21:45', 0, 0, '', NULL, '2023-09-14 10:21:45', NULL, '2023-09-14 10:21:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36053, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36054, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36055, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36056, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36057, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36058, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36059, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36060, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36061, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36062, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36063, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"帮助.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36064, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"客服.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36065, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"退出登录.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36066, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"账户.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36067, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"积分商城.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36068, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"关于我们.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36069, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"签到.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36070, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"导航地址.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36071, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"我的订单 (1).png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36072, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"货币兑换.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36073, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36074, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36075, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36076, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36077, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36078, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36079, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36080, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36081, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36082, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36083, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:54', '2023-09-14 10:21:54', 0, 0, '', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36084, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:21:55', '2023-09-14 10:21:55', 0, 0, '', NULL, '2023-09-14 10:21:55', NULL, '2023-09-14 10:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36085, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:04', '2023-09-14 10:23:04', 0, 0, '', NULL, '2023-09-14 10:23:04', NULL, '2023-09-14 10:23:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36086, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:29', '2023-09-14 10:23:29', 0, 0, '', NULL, '2023-09-14 10:23:29', NULL, '2023-09-14 10:23:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36087, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:37', '2023-09-14 10:23:37', 0, 0, '', NULL, '2023-09-14 10:23:37', NULL, '2023-09-14 10:23:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36088, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:38', '2023-09-14 10:23:38', 0, 0, '', NULL, '2023-09-14 10:23:38', NULL, '2023-09-14 10:23:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36089, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:38', '2023-09-14 10:23:38', 0, 0, '', NULL, '2023-09-14 10:23:38', NULL, '2023-09-14 10:23:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36090, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:43', '2023-09-14 10:23:43', 0, 0, '', NULL, '2023-09-14 10:23:43', NULL, '2023-09-14 10:23:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36091, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:43', '2023-09-14 10:23:43', 0, 0, '', NULL, '2023-09-14 10:23:43', NULL, '2023-09-14 10:23:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36092, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:46', '2023-09-14 10:23:46', 0, 0, '', NULL, '2023-09-14 10:23:46', NULL, '2023-09-14 10:23:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36093, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:46', '2023-09-14 10:23:46', 0, 0, '', NULL, '2023-09-14 10:23:46', NULL, '2023-09-14 10:23:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36094, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36095, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36096, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36097, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36098, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36099, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36100, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36101, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36102, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36103, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:23:47', '2023-09-14 10:23:47', 0, 0, '', NULL, '2023-09-14 10:23:47', NULL, '2023-09-14 10:23:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36104, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:04', '2023-09-14 10:25:04', 0, 0, '', NULL, '2023-09-14 10:25:04', NULL, '2023-09-14 10:25:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36105, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:14', '2023-09-14 10:25:14', 0, 0, '', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36106, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"u=1824446573,3306830779&fm=193&f=GIF.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:14', '2023-09-14 10:25:14', 0, 0, '', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36107, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:14', '2023-09-14 10:25:14', 0, 0, '', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36108, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:14', '2023-09-14 10:25:14', 0, 0, '', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36109, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/ads/update', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":2,\\\"shopId\\\":0,\\\"shopName\\\":\\\"全部\\\",\\\"id\\\":2,\\\"createTime\\\":1691457692000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:24', '2023-09-14 10:25:24', 0, 0, '', NULL, '2023-09-14 10:25:24', NULL, '2023-09-14 10:25:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36110, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:24', '2023-09-14 10:25:24', 0, 0, '', NULL, '2023-09-14 10:25:24', NULL, '2023-09-14 10:25:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36111, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:33', '2023-09-14 10:25:33', 0, 0, '', NULL, '2023-09-14 10:25:33', NULL, '2023-09-14 10:25:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36112, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/get', '{\"query\":{\"id\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:33', '2023-09-14 10:25:33', 0, 0, '', NULL, '2023-09-14 10:25:33', NULL, '2023-09-14 10:25:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36113, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:38', '2023-09-14 10:25:38', 0, 0, '', NULL, '2023-09-14 10:25:38', NULL, '2023-09-14 10:25:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36114, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:38', '2023-09-14 10:25:38', 0, 0, '', NULL, '2023-09-14 10:25:38', NULL, '2023-09-14 10:25:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36115, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:39', '2023-09-14 10:25:39', 0, 0, '', NULL, '2023-09-14 10:25:39', NULL, '2023-09-14 10:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36116, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/ads/update', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":1,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"id\\\":1,\\\"createTime\\\":1691318548000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:43', '2023-09-14 10:25:43', 0, 0, '', NULL, '2023-09-14 10:25:43', NULL, '2023-09-14 10:25:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36117, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:25:43', '2023-09-14 10:25:43', 0, 0, '', NULL, '2023-09-14 10:25:43', NULL, '2023-09-14 10:25:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36118, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 10:25:51', '2023-09-14 10:25:51', 0, 0, '', NULL, '2023-09-14 10:25:51', NULL, '2023-09-14 10:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36119, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/54 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 10:25:52', '2023-09-14 10:25:52', 0, 0, '', NULL, '2023-09-14 10:25:52', NULL, '2023-09-14 10:25:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36120, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1SDpGa17Oo2G0Vt4Ga1O48mD4SDpGx\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 10:25:52', '2023-09-14 10:25:52', 0, 0, '', NULL, '2023-09-14 10:25:52', NULL, '2023-09-14 10:25:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36121, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:04', '2023-09-14 10:27:04', 0, 0, '', NULL, '2023-09-14 10:27:04', NULL, '2023-09-14 10:27:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36122, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:29', '2023-09-14 10:27:29', 0, 0, '', NULL, '2023-09-14 10:27:29', NULL, '2023-09-14 10:27:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36123, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:29', '2023-09-14 10:27:29', 0, 0, '', NULL, '2023-09-14 10:27:29', NULL, '2023-09-14 10:27:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36124, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:33', '2023-09-14 10:27:33', 0, 0, '', NULL, '2023-09-14 10:27:33', NULL, '2023-09-14 10:27:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36125, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:33', '2023-09-14 10:27:33', 0, 0, '', NULL, '2023-09-14 10:27:33', NULL, '2023-09-14 10:27:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36126, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:38', '2023-09-14 10:27:38', 0, 0, '', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36127, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:38', '2023-09-14 10:27:38', 0, 0, '', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36128, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"u=1824446573,3306830779&fm=193&f=GIF.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:38', '2023-09-14 10:27:38', 0, 0, '', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36129, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:38', '2023-09-14 10:27:38', 0, 0, '', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36130, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:38', '2023-09-14 10:27:38', 0, 0, '', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36131, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/ads/update', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":2,\\\"shopId\\\":0,\\\"shopName\\\":\\\"全部\\\",\\\"id\\\":2,\\\"createTime\\\":1691457692000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:43', '2023-09-14 10:27:43', 0, 0, '', NULL, '2023-09-14 10:27:43', NULL, '2023-09-14 10:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36132, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:43', '2023-09-14 10:27:43', 0, 0, '', NULL, '2023-09-14 10:27:43', NULL, '2023-09-14 10:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36133, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:47', '2023-09-14 10:27:47', 0, 0, '', NULL, '2023-09-14 10:27:47', NULL, '2023-09-14 10:27:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36134, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/get', '{\"query\":{\"id\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:47', '2023-09-14 10:27:47', 0, 0, '', NULL, '2023-09-14 10:27:47', NULL, '2023-09-14 10:27:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36135, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:51', '2023-09-14 10:27:51', 0, 0, '', NULL, '2023-09-14 10:27:51', NULL, '2023-09-14 10:27:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36136, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:51', '2023-09-14 10:27:51', 0, 0, '', NULL, '2023-09-14 10:27:51', NULL, '2023-09-14 10:27:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36137, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/ads/update', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":1,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"id\\\":1,\\\"createTime\\\":1691318548000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:55', '2023-09-14 10:27:55', 0, 0, '', NULL, '2023-09-14 10:27:55', NULL, '2023-09-14 10:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36138, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/ads/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:27:55', '2023-09-14 10:27:55', 0, 0, '', NULL, '2023-09-14 10:27:55', NULL, '2023-09-14 10:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36139, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:29:04', '2023-09-14 10:29:04', 0, 0, '', NULL, '2023-09-14 10:29:04', NULL, '2023-09-14 10:29:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36140, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:29:38', '2023-09-14 10:29:38', 0, 0, '', NULL, '2023-09-14 10:29:38', NULL, '2023-09-14 10:29:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36141, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 10:30:11', '2023-09-14 10:30:11', 0, 0, '', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36142, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/55 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 10:30:11', '2023-09-14 10:30:11', 0, 0, '', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36143, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d15IjFa1Tcj1G074zIa1nCnGn25IjFg\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 10:30:11', '2023-09-14 10:30:11', 0, 0, '', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36144, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:31:07', '2023-09-14 10:31:07', 0, 0, '', NULL, '2023-09-14 10:31:07', NULL, '2023-09-14 10:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36145, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:31:39', '2023-09-14 10:31:39', 0, 0, '', NULL, '2023-09-14 10:31:39', NULL, '2023-09-14 10:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36146, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:33:08', '2023-09-14 10:33:08', 0, 0, '', NULL, '2023-09-14 10:33:08', NULL, '2023-09-14 10:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36147, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:33:55', '2023-09-14 10:33:55', 0, 0, '', NULL, '2023-09-14 10:33:55', NULL, '2023-09-14 10:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36148, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:35:07', '2023-09-14 10:35:07', 0, 0, '', NULL, '2023-09-14 10:35:07', NULL, '2023-09-14 10:35:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36149, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:35:39', '2023-09-14 10:35:39', 0, 0, '', NULL, '2023-09-14 10:35:39', NULL, '2023-09-14 10:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36150, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:37:08', '2023-09-14 10:37:08', 0, 0, '', NULL, '2023-09-14 10:37:08', NULL, '2023-09-14 10:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36151, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:37:55', '2023-09-14 10:37:55', 0, 0, '', NULL, '2023-09-14 10:37:55', NULL, '2023-09-14 10:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36152, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:39:07', '2023-09-14 10:39:07', 0, 0, '', NULL, '2023-09-14 10:39:07', NULL, '2023-09-14 10:39:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36153, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:39:55', '2023-09-14 10:39:55', 0, 0, '', NULL, '2023-09-14 10:39:55', NULL, '2023-09-14 10:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36154, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:41:07', '2023-09-14 10:41:07', 0, 0, '', NULL, '2023-09-14 10:41:07', NULL, '2023-09-14 10:41:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36155, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:41:55', '2023-09-14 10:41:55', 0, 0, '', NULL, '2023-09-14 10:41:55', NULL, '2023-09-14 10:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36156, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:43:07', '2023-09-14 10:43:07', 0, 0, '', NULL, '2023-09-14 10:43:07', NULL, '2023-09-14 10:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36157, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:43:55', '2023-09-14 10:43:55', 0, 0, '', NULL, '2023-09-14 10:43:55', NULL, '2023-09-14 10:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36158, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:45:08', '2023-09-14 10:45:08', 0, 0, '', NULL, '2023-09-14 10:45:08', NULL, '2023-09-14 10:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36159, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:45:55', '2023-09-14 10:45:55', 0, 0, '', NULL, '2023-09-14 10:45:55', NULL, '2023-09-14 10:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36160, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:47:09', '2023-09-14 10:47:09', 0, 0, '', NULL, '2023-09-14 10:47:09', NULL, '2023-09-14 10:47:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36161, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:47:55', '2023-09-14 10:47:55', 0, 0, '', NULL, '2023-09-14 10:47:55', NULL, '2023-09-14 10:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36162, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:49:08', '2023-09-14 10:49:08', 0, 0, '', NULL, '2023-09-14 10:49:08', NULL, '2023-09-14 10:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36163, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:49:55', '2023-09-14 10:49:55', 0, 0, '', NULL, '2023-09-14 10:49:55', NULL, '2023-09-14 10:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36164, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:51:08', '2023-09-14 10:51:08', 0, 0, '', NULL, '2023-09-14 10:51:08', NULL, '2023-09-14 10:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36165, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:51:55', '2023-09-14 10:51:55', 0, 0, '', NULL, '2023-09-14 10:51:55', NULL, '2023-09-14 10:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36166, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:53:08', '2023-09-14 10:53:08', 0, 0, '', NULL, '2023-09-14 10:53:08', NULL, '2023-09-14 10:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36167, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:53:55', '2023-09-14 10:53:55', 0, 0, '', NULL, '2023-09-14 10:53:55', NULL, '2023-09-14 10:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36168, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:55:08', '2023-09-14 10:55:08', 0, 0, '', NULL, '2023-09-14 10:55:08', NULL, '2023-09-14 10:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36169, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:55:55', '2023-09-14 10:55:55', 0, 0, '', NULL, '2023-09-14 10:55:55', NULL, '2023-09-14 10:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36170, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:57:07', '2023-09-14 10:57:07', 0, 0, '', NULL, '2023-09-14 10:57:07', NULL, '2023-09-14 10:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36171, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:57:55', '2023-09-14 10:57:55', 0, 0, '', NULL, '2023-09-14 10:57:55', NULL, '2023-09-14 10:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36172, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:59:07', '2023-09-14 10:59:07', 0, 0, '', NULL, '2023-09-14 10:59:07', NULL, '2023-09-14 10:59:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36173, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 10:59:55', '2023-09-14 10:59:55', 0, 0, '', NULL, '2023-09-14 10:59:55', NULL, '2023-09-14 10:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36174, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:01:07', '2023-09-14 11:01:07', 0, 0, '', NULL, '2023-09-14 11:01:07', NULL, '2023-09-14 11:01:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36175, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:01:55', '2023-09-14 11:01:55', 0, 0, '', NULL, '2023-09-14 11:01:55', NULL, '2023-09-14 11:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36176, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:03:07', '2023-09-14 11:03:07', 0, 0, '', NULL, '2023-09-14 11:03:07', NULL, '2023-09-14 11:03:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36177, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:03:55', '2023-09-14 11:03:55', 0, 0, '', NULL, '2023-09-14 11:03:55', NULL, '2023-09-14 11:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36178, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:05:07', '2023-09-14 11:05:07', 0, 0, '', NULL, '2023-09-14 11:05:07', NULL, '2023-09-14 11:05:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36179, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:05:55', '2023-09-14 11:05:55', 0, 0, '', NULL, '2023-09-14 11:05:55', NULL, '2023-09-14 11:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36180, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:07:07', '2023-09-14 11:07:07', 0, 0, '', NULL, '2023-09-14 11:07:07', NULL, '2023-09-14 11:07:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36181, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:07:55', '2023-09-14 11:07:55', 0, 0, '', NULL, '2023-09-14 11:07:55', NULL, '2023-09-14 11:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36182, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:09:07', '2023-09-14 11:09:07', 0, 0, '', NULL, '2023-09-14 11:09:07', NULL, '2023-09-14 11:09:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36183, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:09:55', '2023-09-14 11:09:55', 0, 0, '', NULL, '2023-09-14 11:09:55', NULL, '2023-09-14 11:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36184, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:11:07', '2023-09-14 11:11:07', 0, 0, '', NULL, '2023-09-14 11:11:07', NULL, '2023-09-14 11:11:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36185, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:11:55', '2023-09-14 11:11:55', 0, 0, '', NULL, '2023-09-14 11:11:55', NULL, '2023-09-14 11:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36186, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:13:08', '2023-09-14 11:13:08', 0, 0, '', NULL, '2023-09-14 11:13:08', NULL, '2023-09-14 11:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36187, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:13:55', '2023-09-14 11:13:55', 0, 0, '', NULL, '2023-09-14 11:13:55', NULL, '2023-09-14 11:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36188, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:15:07', '2023-09-14 11:15:07', 0, 0, '', NULL, '2023-09-14 11:15:07', NULL, '2023-09-14 11:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36189, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:15:55', '2023-09-14 11:15:55', 0, 0, '', NULL, '2023-09-14 11:15:55', NULL, '2023-09-14 11:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36190, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:17:08', '2023-09-14 11:17:08', 0, 0, '', NULL, '2023-09-14 11:17:08', NULL, '2023-09-14 11:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36191, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:17:55', '2023-09-14 11:17:55', 0, 0, '', NULL, '2023-09-14 11:17:55', NULL, '2023-09-14 11:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36192, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:19:08', '2023-09-14 11:19:08', 0, 0, '', NULL, '2023-09-14 11:19:08', NULL, '2023-09-14 11:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36193, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:19:55', '2023-09-14 11:19:55', 0, 0, '', NULL, '2023-09-14 11:19:55', NULL, '2023-09-14 11:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36194, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:21:08', '2023-09-14 11:21:08', 0, 0, '', NULL, '2023-09-14 11:21:08', NULL, '2023-09-14 11:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36195, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:21:55', '2023-09-14 11:21:55', 0, 0, '', NULL, '2023-09-14 11:21:55', NULL, '2023-09-14 11:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36196, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:23:08', '2023-09-14 11:23:08', 0, 0, '', NULL, '2023-09-14 11:23:08', NULL, '2023-09-14 11:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36197, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:23:55', '2023-09-14 11:23:55', 0, 0, '', NULL, '2023-09-14 11:23:55', NULL, '2023-09-14 11:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36198, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:25:08', '2023-09-14 11:25:08', 0, 0, '', NULL, '2023-09-14 11:25:08', NULL, '2023-09-14 11:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36199, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:25:55', '2023-09-14 11:25:55', 0, 0, '', NULL, '2023-09-14 11:25:55', NULL, '2023-09-14 11:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36200, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:27:07', '2023-09-14 11:27:07', 0, 0, '', NULL, '2023-09-14 11:27:07', NULL, '2023-09-14 11:27:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36201, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:27:55', '2023-09-14 11:27:55', 0, 0, '', NULL, '2023-09-14 11:27:55', NULL, '2023-09-14 11:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36202, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:29:07', '2023-09-14 11:29:07', 0, 0, '', NULL, '2023-09-14 11:29:07', NULL, '2023-09-14 11:29:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36203, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:29:55', '2023-09-14 11:29:55', 0, 0, '', NULL, '2023-09-14 11:29:55', NULL, '2023-09-14 11:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36204, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:31:07', '2023-09-14 11:31:07', 0, 0, '', NULL, '2023-09-14 11:31:07', NULL, '2023-09-14 11:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36205, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:31:55', '2023-09-14 11:31:55', 0, 0, '', NULL, '2023-09-14 11:31:55', NULL, '2023-09-14 11:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36206, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:33:07', '2023-09-14 11:33:07', 0, 0, '', NULL, '2023-09-14 11:33:07', NULL, '2023-09-14 11:33:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36207, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:33:55', '2023-09-14 11:33:55', 0, 0, '', NULL, '2023-09-14 11:33:55', NULL, '2023-09-14 11:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36208, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:35:07', '2023-09-14 11:35:07', 0, 0, '', NULL, '2023-09-14 11:35:07', NULL, '2023-09-14 11:35:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36209, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:35:55', '2023-09-14 11:35:55', 0, 0, '', NULL, '2023-09-14 11:35:55', NULL, '2023-09-14 11:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36210, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:37:07', '2023-09-14 11:37:07', 0, 0, '', NULL, '2023-09-14 11:37:07', NULL, '2023-09-14 11:37:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36211, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:37:55', '2023-09-14 11:37:55', 0, 0, '', NULL, '2023-09-14 11:37:55', NULL, '2023-09-14 11:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36212, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:39:07', '2023-09-14 11:39:07', 0, 0, '', NULL, '2023-09-14 11:39:07', NULL, '2023-09-14 11:39:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36213, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:39:55', '2023-09-14 11:39:55', 0, 0, '', NULL, '2023-09-14 11:39:55', NULL, '2023-09-14 11:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36214, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:41:07', '2023-09-14 11:41:07', 0, 0, '', NULL, '2023-09-14 11:41:07', NULL, '2023-09-14 11:41:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36215, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:41:55', '2023-09-14 11:41:55', 0, 0, '', NULL, '2023-09-14 11:41:55', NULL, '2023-09-14 11:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36216, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:43:08', '2023-09-14 11:43:08', 0, 0, '', NULL, '2023-09-14 11:43:08', NULL, '2023-09-14 11:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36217, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:43:55', '2023-09-14 11:43:55', 0, 0, '', NULL, '2023-09-14 11:43:55', NULL, '2023-09-14 11:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36218, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:45:08', '2023-09-14 11:45:08', 0, 0, '', NULL, '2023-09-14 11:45:08', NULL, '2023-09-14 11:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36219, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:45:55', '2023-09-14 11:45:55', 0, 0, '', NULL, '2023-09-14 11:45:55', NULL, '2023-09-14 11:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36220, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:47:08', '2023-09-14 11:47:08', 0, 0, '', NULL, '2023-09-14 11:47:08', NULL, '2023-09-14 11:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36221, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:47:55', '2023-09-14 11:47:55', 0, 0, '', NULL, '2023-09-14 11:47:55', NULL, '2023-09-14 11:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36222, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:49:07', '2023-09-14 11:49:07', 0, 0, '', NULL, '2023-09-14 11:49:07', NULL, '2023-09-14 11:49:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36223, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:49:55', '2023-09-14 11:49:55', 0, 0, '', NULL, '2023-09-14 11:49:55', NULL, '2023-09-14 11:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36224, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:51:07', '2023-09-14 11:51:07', 0, 0, '', NULL, '2023-09-14 11:51:07', NULL, '2023-09-14 11:51:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36225, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:51:55', '2023-09-14 11:51:55', 0, 0, '', NULL, '2023-09-14 11:51:55', NULL, '2023-09-14 11:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36226, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:53:07', '2023-09-14 11:53:07', 0, 0, '', NULL, '2023-09-14 11:53:07', NULL, '2023-09-14 11:53:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36227, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:53:55', '2023-09-14 11:53:55', 0, 0, '', NULL, '2023-09-14 11:53:55', NULL, '2023-09-14 11:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36228, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:55:07', '2023-09-14 11:55:07', 0, 0, '', NULL, '2023-09-14 11:55:07', NULL, '2023-09-14 11:55:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36229, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:55:55', '2023-09-14 11:55:55', 0, 0, '', NULL, '2023-09-14 11:55:55', NULL, '2023-09-14 11:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36230, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:57:07', '2023-09-14 11:57:07', 0, 0, '', NULL, '2023-09-14 11:57:07', NULL, '2023-09-14 11:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36231, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:57:55', '2023-09-14 11:57:55', 0, 0, '', NULL, '2023-09-14 11:57:55', NULL, '2023-09-14 11:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36232, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:59:07', '2023-09-14 11:59:07', 0, 0, '', NULL, '2023-09-14 11:59:07', NULL, '2023-09-14 11:59:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36233, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 11:59:55', '2023-09-14 11:59:55', 0, 0, '', NULL, '2023-09-14 11:59:55', NULL, '2023-09-14 11:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36234, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:01:08', '2023-09-14 12:01:08', 0, 0, '', NULL, '2023-09-14 12:01:08', NULL, '2023-09-14 12:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36235, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:01:55', '2023-09-14 12:01:55', 0, 0, '', NULL, '2023-09-14 12:01:55', NULL, '2023-09-14 12:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36236, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:03:08', '2023-09-14 12:03:08', 0, 0, '', NULL, '2023-09-14 12:03:08', NULL, '2023-09-14 12:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36237, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:03:55', '2023-09-14 12:03:55', 0, 0, '', NULL, '2023-09-14 12:03:55', NULL, '2023-09-14 12:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36238, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:05:07', '2023-09-14 12:05:07', 0, 0, '', NULL, '2023-09-14 12:05:07', NULL, '2023-09-14 12:05:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36239, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:05:55', '2023-09-14 12:05:55', 0, 0, '', NULL, '2023-09-14 12:05:55', NULL, '2023-09-14 12:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36240, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:07:07', '2023-09-14 12:07:07', 0, 0, '', NULL, '2023-09-14 12:07:07', NULL, '2023-09-14 12:07:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36241, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:07:55', '2023-09-14 12:07:55', 0, 0, '', NULL, '2023-09-14 12:07:55', NULL, '2023-09-14 12:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36242, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:09:07', '2023-09-14 12:09:07', 0, 0, '', NULL, '2023-09-14 12:09:07', NULL, '2023-09-14 12:09:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36243, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:09:55', '2023-09-14 12:09:55', 0, 0, '', NULL, '2023-09-14 12:09:55', NULL, '2023-09-14 12:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36244, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:11:07', '2023-09-14 12:11:07', 0, 0, '', NULL, '2023-09-14 12:11:07', NULL, '2023-09-14 12:11:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36245, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:11:55', '2023-09-14 12:11:55', 0, 0, '', NULL, '2023-09-14 12:11:55', NULL, '2023-09-14 12:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36246, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:13:07', '2023-09-14 12:13:07', 0, 0, '', NULL, '2023-09-14 12:13:07', NULL, '2023-09-14 12:13:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36247, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:13:55', '2023-09-14 12:13:55', 0, 0, '', NULL, '2023-09-14 12:13:55', NULL, '2023-09-14 12:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36248, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:15:07', '2023-09-14 12:15:07', 0, 0, '', NULL, '2023-09-14 12:15:07', NULL, '2023-09-14 12:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36249, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:15:55', '2023-09-14 12:15:55', 0, 0, '', NULL, '2023-09-14 12:15:55', NULL, '2023-09-14 12:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36250, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:17:07', '2023-09-14 12:17:07', 0, 0, '', NULL, '2023-09-14 12:17:07', NULL, '2023-09-14 12:17:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36251, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:17:55', '2023-09-14 12:17:55', 0, 0, '', NULL, '2023-09-14 12:17:55', NULL, '2023-09-14 12:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36252, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:19:07', '2023-09-14 12:19:07', 0, 0, '', NULL, '2023-09-14 12:19:07', NULL, '2023-09-14 12:19:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36253, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:19:55', '2023-09-14 12:19:55', 0, 0, '', NULL, '2023-09-14 12:19:55', NULL, '2023-09-14 12:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36254, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:21:07', '2023-09-14 12:21:07', 0, 0, '', NULL, '2023-09-14 12:21:07', NULL, '2023-09-14 12:21:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36255, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:21:55', '2023-09-14 12:21:55', 0, 0, '', NULL, '2023-09-14 12:21:55', NULL, '2023-09-14 12:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36256, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:23:07', '2023-09-14 12:23:07', 0, 0, '', NULL, '2023-09-14 12:23:07', NULL, '2023-09-14 12:23:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36257, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:23:55', '2023-09-14 12:23:55', 0, 0, '', NULL, '2023-09-14 12:23:55', NULL, '2023-09-14 12:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36258, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:25:08', '2023-09-14 12:25:08', 0, 0, '', NULL, '2023-09-14 12:25:08', NULL, '2023-09-14 12:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36259, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:25:55', '2023-09-14 12:25:55', 0, 0, '', NULL, '2023-09-14 12:25:55', NULL, '2023-09-14 12:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36260, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:27:08', '2023-09-14 12:27:08', 0, 0, '', NULL, '2023-09-14 12:27:08', NULL, '2023-09-14 12:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36261, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:27:55', '2023-09-14 12:27:55', 0, 0, '', NULL, '2023-09-14 12:27:55', NULL, '2023-09-14 12:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36262, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:29:08', '2023-09-14 12:29:08', 0, 0, '', NULL, '2023-09-14 12:29:08', NULL, '2023-09-14 12:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36263, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:29:55', '2023-09-14 12:29:55', 0, 0, '', NULL, '2023-09-14 12:29:55', NULL, '2023-09-14 12:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36264, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:31:07', '2023-09-14 12:31:07', 0, 0, '', NULL, '2023-09-14 12:31:07', NULL, '2023-09-14 12:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36265, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:31:55', '2023-09-14 12:31:55', 0, 0, '', NULL, '2023-09-14 12:31:55', NULL, '2023-09-14 12:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36266, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:33:07', '2023-09-14 12:33:07', 0, 0, '', NULL, '2023-09-14 12:33:07', NULL, '2023-09-14 12:33:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36267, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:33:55', '2023-09-14 12:33:55', 0, 0, '', NULL, '2023-09-14 12:33:55', NULL, '2023-09-14 12:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36268, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:35:07', '2023-09-14 12:35:07', 0, 0, '', NULL, '2023-09-14 12:35:07', NULL, '2023-09-14 12:35:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36269, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:35:55', '2023-09-14 12:35:55', 0, 0, '', NULL, '2023-09-14 12:35:55', NULL, '2023-09-14 12:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36270, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:37:07', '2023-09-14 12:37:07', 0, 0, '', NULL, '2023-09-14 12:37:07', NULL, '2023-09-14 12:37:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36271, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:37:55', '2023-09-14 12:37:55', 0, 0, '', NULL, '2023-09-14 12:37:55', NULL, '2023-09-14 12:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36272, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:39:07', '2023-09-14 12:39:07', 0, 0, '', NULL, '2023-09-14 12:39:07', NULL, '2023-09-14 12:39:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36273, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:39:55', '2023-09-14 12:39:55', 0, 0, '', NULL, '2023-09-14 12:39:55', NULL, '2023-09-14 12:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36274, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:41:08', '2023-09-14 12:41:08', 0, 0, '', NULL, '2023-09-14 12:41:08', NULL, '2023-09-14 12:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36275, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:41:55', '2023-09-14 12:41:55', 0, 0, '', NULL, '2023-09-14 12:41:55', NULL, '2023-09-14 12:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36276, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:43:07', '2023-09-14 12:43:07', 0, 0, '', NULL, '2023-09-14 12:43:07', NULL, '2023-09-14 12:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36277, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:43:55', '2023-09-14 12:43:55', 0, 0, '', NULL, '2023-09-14 12:43:55', NULL, '2023-09-14 12:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36278, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:45:07', '2023-09-14 12:45:07', 0, 0, '', NULL, '2023-09-14 12:45:07', NULL, '2023-09-14 12:45:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36279, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:45:55', '2023-09-14 12:45:55', 0, 0, '', NULL, '2023-09-14 12:45:55', NULL, '2023-09-14 12:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36280, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:47:07', '2023-09-14 12:47:07', 0, 0, '', NULL, '2023-09-14 12:47:07', NULL, '2023-09-14 12:47:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36281, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:47:55', '2023-09-14 12:47:55', 0, 0, '', NULL, '2023-09-14 12:47:55', NULL, '2023-09-14 12:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36282, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:49:07', '2023-09-14 12:49:07', 0, 0, '', NULL, '2023-09-14 12:49:07', NULL, '2023-09-14 12:49:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36283, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:49:55', '2023-09-14 12:49:55', 0, 0, '', NULL, '2023-09-14 12:49:55', NULL, '2023-09-14 12:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36284, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:51:07', '2023-09-14 12:51:07', 0, 0, '', NULL, '2023-09-14 12:51:07', NULL, '2023-09-14 12:51:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36285, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:51:55', '2023-09-14 12:51:55', 0, 0, '', NULL, '2023-09-14 12:51:55', NULL, '2023-09-14 12:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36286, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:53:08', '2023-09-14 12:53:08', 0, 0, '', NULL, '2023-09-14 12:53:08', NULL, '2023-09-14 12:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36287, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:53:55', '2023-09-14 12:53:55', 0, 0, '', NULL, '2023-09-14 12:53:55', NULL, '2023-09-14 12:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36288, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:55:07', '2023-09-14 12:55:07', 0, 0, '', NULL, '2023-09-14 12:55:07', NULL, '2023-09-14 12:55:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36289, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:55:55', '2023-09-14 12:55:55', 0, 0, '', NULL, '2023-09-14 12:55:55', NULL, '2023-09-14 12:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36290, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:57:07', '2023-09-14 12:57:07', 0, 0, '', NULL, '2023-09-14 12:57:07', NULL, '2023-09-14 12:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36291, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:57:55', '2023-09-14 12:57:55', 0, 0, '', NULL, '2023-09-14 12:57:55', NULL, '2023-09-14 12:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36292, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:59:07', '2023-09-14 12:59:07', 0, 0, '', NULL, '2023-09-14 12:59:07', NULL, '2023-09-14 12:59:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36293, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 12:59:55', '2023-09-14 12:59:55', 0, 0, '', NULL, '2023-09-14 12:59:55', NULL, '2023-09-14 12:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36294, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:01:08', '2023-09-14 13:01:08', 0, 0, '', NULL, '2023-09-14 13:01:08', NULL, '2023-09-14 13:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36295, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:01:55', '2023-09-14 13:01:55', 0, 0, '', NULL, '2023-09-14 13:01:55', NULL, '2023-09-14 13:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36296, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:03:07', '2023-09-14 13:03:07', 0, 0, '', NULL, '2023-09-14 13:03:07', NULL, '2023-09-14 13:03:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36297, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:03:55', '2023-09-14 13:03:55', 0, 0, '', NULL, '2023-09-14 13:03:55', NULL, '2023-09-14 13:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36298, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:05:07', '2023-09-14 13:05:07', 0, 0, '', NULL, '2023-09-14 13:05:07', NULL, '2023-09-14 13:05:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36299, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:05:55', '2023-09-14 13:05:55', 0, 0, '', NULL, '2023-09-14 13:05:55', NULL, '2023-09-14 13:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36300, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:07:07', '2023-09-14 13:07:07', 0, 0, '', NULL, '2023-09-14 13:07:07', NULL, '2023-09-14 13:07:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36301, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:07:55', '2023-09-14 13:07:55', 0, 0, '', NULL, '2023-09-14 13:07:55', NULL, '2023-09-14 13:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36302, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:09:07', '2023-09-14 13:09:07', 0, 0, '', NULL, '2023-09-14 13:09:07', NULL, '2023-09-14 13:09:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36303, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:09:55', '2023-09-14 13:09:55', 0, 0, '', NULL, '2023-09-14 13:09:55', NULL, '2023-09-14 13:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36304, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:11:08', '2023-09-14 13:11:08', 0, 0, '', NULL, '2023-09-14 13:11:08', NULL, '2023-09-14 13:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36305, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:11:55', '2023-09-14 13:11:55', 0, 0, '', NULL, '2023-09-14 13:11:55', NULL, '2023-09-14 13:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36306, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:13:07', '2023-09-14 13:13:07', 0, 0, '', NULL, '2023-09-14 13:13:07', NULL, '2023-09-14 13:13:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36307, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:13:55', '2023-09-14 13:13:55', 0, 0, '', NULL, '2023-09-14 13:13:55', NULL, '2023-09-14 13:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36308, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:15:07', '2023-09-14 13:15:07', 0, 0, '', NULL, '2023-09-14 13:15:07', NULL, '2023-09-14 13:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36309, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:15:55', '2023-09-14 13:15:55', 0, 0, '', NULL, '2023-09-14 13:15:55', NULL, '2023-09-14 13:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36310, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:17:08', '2023-09-14 13:17:08', 0, 0, '', NULL, '2023-09-14 13:17:08', NULL, '2023-09-14 13:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36311, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:17:55', '2023-09-14 13:17:55', 0, 0, '', NULL, '2023-09-14 13:17:55', NULL, '2023-09-14 13:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36312, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:19:07', '2023-09-14 13:19:07', 0, 0, '', NULL, '2023-09-14 13:19:07', NULL, '2023-09-14 13:19:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36313, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:19:55', '2023-09-14 13:19:55', 0, 0, '', NULL, '2023-09-14 13:19:55', NULL, '2023-09-14 13:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36314, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:21:08', '2023-09-14 13:21:08', 0, 0, '', NULL, '2023-09-14 13:21:08', NULL, '2023-09-14 13:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36315, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:21:55', '2023-09-14 13:21:55', 0, 0, '', NULL, '2023-09-14 13:21:55', NULL, '2023-09-14 13:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36316, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:23:07', '2023-09-14 13:23:08', 0, 0, '', NULL, '2023-09-14 13:23:08', NULL, '2023-09-14 13:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36317, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:23:55', '2023-09-14 13:23:55', 0, 0, '', NULL, '2023-09-14 13:23:55', NULL, '2023-09-14 13:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36318, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:25:08', '2023-09-14 13:25:08', 0, 0, '', NULL, '2023-09-14 13:25:08', NULL, '2023-09-14 13:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36319, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:25:55', '2023-09-14 13:25:55', 0, 0, '', NULL, '2023-09-14 13:25:55', NULL, '2023-09-14 13:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36320, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:27:08', '2023-09-14 13:27:08', 0, 0, '', NULL, '2023-09-14 13:27:08', NULL, '2023-09-14 13:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36321, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:27:55', '2023-09-14 13:27:55', 0, 0, '', NULL, '2023-09-14 13:27:55', NULL, '2023-09-14 13:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36322, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:29:07', '2023-09-14 13:29:07', 0, 0, '', NULL, '2023-09-14 13:29:07', NULL, '2023-09-14 13:29:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36323, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:29:55', '2023-09-14 13:29:55', 0, 0, '', NULL, '2023-09-14 13:29:55', NULL, '2023-09-14 13:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36324, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:31:08', '2023-09-14 13:31:08', 0, 0, '', NULL, '2023-09-14 13:31:08', NULL, '2023-09-14 13:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36325, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:31:55', '2023-09-14 13:31:55', 0, 0, '', NULL, '2023-09-14 13:31:55', NULL, '2023-09-14 13:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36326, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:33:07', '2023-09-14 13:33:07', 0, 0, '', NULL, '2023-09-14 13:33:07', NULL, '2023-09-14 13:33:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36327, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:33:55', '2023-09-14 13:33:55', 0, 0, '', NULL, '2023-09-14 13:33:55', NULL, '2023-09-14 13:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36328, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:35:07', '2023-09-14 13:35:07', 0, 0, '', NULL, '2023-09-14 13:35:07', NULL, '2023-09-14 13:35:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36329, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:35:55', '2023-09-14 13:35:55', 0, 0, '', NULL, '2023-09-14 13:35:55', NULL, '2023-09-14 13:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36330, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:37:07', '2023-09-14 13:37:07', 0, 0, '', NULL, '2023-09-14 13:37:07', NULL, '2023-09-14 13:37:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36331, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:37:55', '2023-09-14 13:37:55', 0, 0, '', NULL, '2023-09-14 13:37:55', NULL, '2023-09-14 13:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36332, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:39:07', '2023-09-14 13:39:07', 0, 0, '', NULL, '2023-09-14 13:39:07', NULL, '2023-09-14 13:39:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36333, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:39:55', '2023-09-14 13:39:55', 0, 0, '', NULL, '2023-09-14 13:39:55', NULL, '2023-09-14 13:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36334, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:41:07', '2023-09-14 13:41:07', 0, 0, '', NULL, '2023-09-14 13:41:07', NULL, '2023-09-14 13:41:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36335, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:41:55', '2023-09-14 13:41:55', 0, 0, '', NULL, '2023-09-14 13:41:55', NULL, '2023-09-14 13:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36336, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:43:07', '2023-09-14 13:43:07', 0, 0, '', NULL, '2023-09-14 13:43:07', NULL, '2023-09-14 13:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36337, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:43:55', '2023-09-14 13:43:55', 0, 0, '', NULL, '2023-09-14 13:43:55', NULL, '2023-09-14 13:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36338, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:45:07', '2023-09-14 13:45:07', 0, 0, '', NULL, '2023-09-14 13:45:07', NULL, '2023-09-14 13:45:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36339, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:45:55', '2023-09-14 13:45:55', 0, 0, '', NULL, '2023-09-14 13:45:55', NULL, '2023-09-14 13:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36340, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:47:07', '2023-09-14 13:47:07', 0, 0, '', NULL, '2023-09-14 13:47:07', NULL, '2023-09-14 13:47:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36341, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:47:55', '2023-09-14 13:47:55', 0, 0, '', NULL, '2023-09-14 13:47:55', NULL, '2023-09-14 13:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36342, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:49:07', '2023-09-14 13:49:07', 0, 0, '', NULL, '2023-09-14 13:49:07', NULL, '2023-09-14 13:49:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36343, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:49:55', '2023-09-14 13:49:55', 0, 0, '', NULL, '2023-09-14 13:49:55', NULL, '2023-09-14 13:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36344, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:51:08', '2023-09-14 13:51:08', 0, 0, '', NULL, '2023-09-14 13:51:08', NULL, '2023-09-14 13:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36345, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:51:55', '2023-09-14 13:51:55', 0, 0, '', NULL, '2023-09-14 13:51:55', NULL, '2023-09-14 13:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36346, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:53:07', '2023-09-14 13:53:07', 0, 0, '', NULL, '2023-09-14 13:53:07', NULL, '2023-09-14 13:53:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36347, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:53:55', '2023-09-14 13:53:55', 0, 0, '', NULL, '2023-09-14 13:53:55', NULL, '2023-09-14 13:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36348, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:55:07', '2023-09-14 13:55:07', 0, 0, '', NULL, '2023-09-14 13:55:07', NULL, '2023-09-14 13:55:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36349, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:55:55', '2023-09-14 13:55:55', 0, 0, '', NULL, '2023-09-14 13:55:55', NULL, '2023-09-14 13:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36350, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:57:07', '2023-09-14 13:57:07', 0, 0, '', NULL, '2023-09-14 13:57:07', NULL, '2023-09-14 13:57:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36351, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:57:55', '2023-09-14 13:57:55', 0, 0, '', NULL, '2023-09-14 13:57:55', NULL, '2023-09-14 13:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36352, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:59:08', '2023-09-14 13:59:08', 0, 0, '', NULL, '2023-09-14 13:59:08', NULL, '2023-09-14 13:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36353, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 13:59:55', '2023-09-14 13:59:55', 0, 0, '', NULL, '2023-09-14 13:59:55', NULL, '2023-09-14 13:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36354, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:01:08', '2023-09-14 14:01:08', 0, 0, '', NULL, '2023-09-14 14:01:08', NULL, '2023-09-14 14:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36355, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:01:55', '2023-09-14 14:01:55', 0, 0, '', NULL, '2023-09-14 14:01:55', NULL, '2023-09-14 14:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36356, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:03:08', '2023-09-14 14:03:08', 0, 0, '', NULL, '2023-09-14 14:03:08', NULL, '2023-09-14 14:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36357, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:03:55', '2023-09-14 14:03:55', 0, 0, '', NULL, '2023-09-14 14:03:55', NULL, '2023-09-14 14:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36358, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:05:08', '2023-09-14 14:05:08', 0, 0, '', NULL, '2023-09-14 14:05:08', NULL, '2023-09-14 14:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36359, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:05:55', '2023-09-14 14:05:55', 0, 0, '', NULL, '2023-09-14 14:05:55', NULL, '2023-09-14 14:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36360, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:07:08', '2023-09-14 14:07:08', 0, 0, '', NULL, '2023-09-14 14:07:08', NULL, '2023-09-14 14:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36361, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:07:55', '2023-09-14 14:07:55', 0, 0, '', NULL, '2023-09-14 14:07:55', NULL, '2023-09-14 14:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36362, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:09:08', '2023-09-14 14:09:08', 0, 0, '', NULL, '2023-09-14 14:09:08', NULL, '2023-09-14 14:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36363, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:09:55', '2023-09-14 14:09:55', 0, 0, '', NULL, '2023-09-14 14:09:55', NULL, '2023-09-14 14:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36364, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:11:08', '2023-09-14 14:11:08', 0, 0, '', NULL, '2023-09-14 14:11:08', NULL, '2023-09-14 14:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36365, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:11:55', '2023-09-14 14:11:55', 0, 0, '', NULL, '2023-09-14 14:11:55', NULL, '2023-09-14 14:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36366, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:13:08', '2023-09-14 14:13:08', 0, 0, '', NULL, '2023-09-14 14:13:08', NULL, '2023-09-14 14:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36367, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:13:55', '2023-09-14 14:13:55', 0, 0, '', NULL, '2023-09-14 14:13:55', NULL, '2023-09-14 14:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36368, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:15:07', '2023-09-14 14:15:07', 0, 0, '', NULL, '2023-09-14 14:15:07', NULL, '2023-09-14 14:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36369, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:15:55', '2023-09-14 14:15:55', 0, 0, '', NULL, '2023-09-14 14:15:55', NULL, '2023-09-14 14:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36370, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:17:07', '2023-09-14 14:17:07', 0, 0, '', NULL, '2023-09-14 14:17:08', NULL, '2023-09-14 14:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36371, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:17:55', '2023-09-14 14:17:55', 0, 0, '', NULL, '2023-09-14 14:17:55', NULL, '2023-09-14 14:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36372, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:19:07', '2023-09-14 14:19:07', 0, 0, '', NULL, '2023-09-14 14:19:07', NULL, '2023-09-14 14:19:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36373, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:19:55', '2023-09-14 14:19:55', 0, 0, '', NULL, '2023-09-14 14:19:55', NULL, '2023-09-14 14:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36374, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:21:07', '2023-09-14 14:21:07', 0, 0, '', NULL, '2023-09-14 14:21:07', NULL, '2023-09-14 14:21:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36375, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:21:55', '2023-09-14 14:21:55', 0, 0, '', NULL, '2023-09-14 14:21:55', NULL, '2023-09-14 14:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36376, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:23:08', '2023-09-14 14:23:08', 0, 0, '', NULL, '2023-09-14 14:23:08', NULL, '2023-09-14 14:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36377, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:23:55', '2023-09-14 14:23:55', 0, 0, '', NULL, '2023-09-14 14:23:55', NULL, '2023-09-14 14:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36378, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:25:08', '2023-09-14 14:25:08', 0, 0, '', NULL, '2023-09-14 14:25:08', NULL, '2023-09-14 14:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36379, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:25:55', '2023-09-14 14:25:55', 0, 0, '', NULL, '2023-09-14 14:25:55', NULL, '2023-09-14 14:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36380, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:27:08', '2023-09-14 14:27:08', 0, 0, '', NULL, '2023-09-14 14:27:08', NULL, '2023-09-14 14:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36381, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:27:55', '2023-09-14 14:27:55', 0, 0, '', NULL, '2023-09-14 14:27:55', NULL, '2023-09-14 14:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36382, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:29:08', '2023-09-14 14:29:08', 0, 0, '', NULL, '2023-09-14 14:29:08', NULL, '2023-09-14 14:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36383, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:29:55', '2023-09-14 14:29:55', 0, 0, '', NULL, '2023-09-14 14:29:55', NULL, '2023-09-14 14:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36384, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:31:07', '2023-09-14 14:31:07', 0, 0, '', NULL, '2023-09-14 14:31:07', NULL, '2023-09-14 14:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36385, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:31:55', '2023-09-14 14:31:55', 0, 0, '', NULL, '2023-09-14 14:31:55', NULL, '2023-09-14 14:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36386, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:33:07', '2023-09-14 14:33:07', 0, 0, '', NULL, '2023-09-14 14:33:07', NULL, '2023-09-14 14:33:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36387, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:33:55', '2023-09-14 14:33:55', 0, 0, '', NULL, '2023-09-14 14:33:55', NULL, '2023-09-14 14:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36388, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:35:08', '2023-09-14 14:35:08', 0, 0, '', NULL, '2023-09-14 14:35:08', NULL, '2023-09-14 14:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36389, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:35:55', '2023-09-14 14:35:55', 0, 0, '', NULL, '2023-09-14 14:35:55', NULL, '2023-09-14 14:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36390, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:37:08', '2023-09-14 14:37:08', 0, 0, '', NULL, '2023-09-14 14:37:08', NULL, '2023-09-14 14:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36391, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:37:55', '2023-09-14 14:37:55', 0, 0, '', NULL, '2023-09-14 14:37:55', NULL, '2023-09-14 14:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36392, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:39:08', '2023-09-14 14:39:08', 0, 0, '', NULL, '2023-09-14 14:39:08', NULL, '2023-09-14 14:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36393, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:39:55', '2023-09-14 14:39:55', 0, 0, '', NULL, '2023-09-14 14:39:55', NULL, '2023-09-14 14:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36394, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:41:08', '2023-09-14 14:41:08', 0, 0, '', NULL, '2023-09-14 14:41:08', NULL, '2023-09-14 14:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36395, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:41:55', '2023-09-14 14:41:55', 0, 0, '', NULL, '2023-09-14 14:41:55', NULL, '2023-09-14 14:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36396, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:43:08', '2023-09-14 14:43:08', 0, 0, '', NULL, '2023-09-14 14:43:08', NULL, '2023-09-14 14:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36397, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:43:55', '2023-09-14 14:43:55', 0, 0, '', NULL, '2023-09-14 14:43:55', NULL, '2023-09-14 14:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36398, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:45:08', '2023-09-14 14:45:08', 0, 0, '', NULL, '2023-09-14 14:45:08', NULL, '2023-09-14 14:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36399, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:45:55', '2023-09-14 14:45:55', 0, 0, '', NULL, '2023-09-14 14:45:55', NULL, '2023-09-14 14:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36400, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:47:08', '2023-09-14 14:47:08', 0, 0, '', NULL, '2023-09-14 14:47:08', NULL, '2023-09-14 14:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36401, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:47:55', '2023-09-14 14:47:55', 0, 0, '', NULL, '2023-09-14 14:47:55', NULL, '2023-09-14 14:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36402, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:49:08', '2023-09-14 14:49:08', 0, 0, '', NULL, '2023-09-14 14:49:08', NULL, '2023-09-14 14:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36403, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:49:55', '2023-09-14 14:49:55', 0, 0, '', NULL, '2023-09-14 14:49:55', NULL, '2023-09-14 14:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36404, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:51:08', '2023-09-14 14:51:08', 0, 0, '', NULL, '2023-09-14 14:51:08', NULL, '2023-09-14 14:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36405, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:51:55', '2023-09-14 14:51:55', 0, 0, '', NULL, '2023-09-14 14:51:55', NULL, '2023-09-14 14:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36406, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:53:08', '2023-09-14 14:53:08', 0, 0, '', NULL, '2023-09-14 14:53:08', NULL, '2023-09-14 14:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36407, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:53:55', '2023-09-14 14:53:55', 0, 0, '', NULL, '2023-09-14 14:53:55', NULL, '2023-09-14 14:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36408, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:55:08', '2023-09-14 14:55:08', 0, 0, '', NULL, '2023-09-14 14:55:08', NULL, '2023-09-14 14:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36409, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:55:55', '2023-09-14 14:55:55', 0, 0, '', NULL, '2023-09-14 14:55:55', NULL, '2023-09-14 14:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36410, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:57:08', '2023-09-14 14:57:08', 0, 0, '', NULL, '2023-09-14 14:57:08', NULL, '2023-09-14 14:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36411, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:57:55', '2023-09-14 14:57:55', 0, 0, '', NULL, '2023-09-14 14:57:55', NULL, '2023-09-14 14:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36412, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:59:08', '2023-09-14 14:59:08', 0, 0, '', NULL, '2023-09-14 14:59:08', NULL, '2023-09-14 14:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36413, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 14:59:55', '2023-09-14 14:59:55', 0, 0, '', NULL, '2023-09-14 14:59:55', NULL, '2023-09-14 14:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36414, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:01:08', '2023-09-14 15:01:08', 0, 0, '', NULL, '2023-09-14 15:01:08', NULL, '2023-09-14 15:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36415, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:01:55', '2023-09-14 15:01:55', 0, 0, '', NULL, '2023-09-14 15:01:55', NULL, '2023-09-14 15:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36416, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:03:07', '2023-09-14 15:03:07', 0, 0, '', NULL, '2023-09-14 15:03:07', NULL, '2023-09-14 15:03:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36417, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:03:55', '2023-09-14 15:03:55', 0, 0, '', NULL, '2023-09-14 15:03:55', NULL, '2023-09-14 15:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36418, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:05:07', '2023-09-14 15:05:07', 0, 0, '', NULL, '2023-09-14 15:05:07', NULL, '2023-09-14 15:05:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36419, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:05:55', '2023-09-14 15:05:55', 0, 0, '', NULL, '2023-09-14 15:05:55', NULL, '2023-09-14 15:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36420, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:07:07', '2023-09-14 15:07:07', 0, 0, '', NULL, '2023-09-14 15:07:07', NULL, '2023-09-14 15:07:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36421, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:07:55', '2023-09-14 15:07:55', 0, 0, '', NULL, '2023-09-14 15:07:55', NULL, '2023-09-14 15:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36422, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:09:08', '2023-09-14 15:09:08', 0, 0, '', NULL, '2023-09-14 15:09:08', NULL, '2023-09-14 15:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36423, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:09:55', '2023-09-14 15:09:55', 0, 0, '', NULL, '2023-09-14 15:09:55', NULL, '2023-09-14 15:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36424, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:11:08', '2023-09-14 15:11:08', 0, 0, '', NULL, '2023-09-14 15:11:08', NULL, '2023-09-14 15:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36425, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:11:55', '2023-09-14 15:11:55', 0, 0, '', NULL, '2023-09-14 15:11:55', NULL, '2023-09-14 15:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36426, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:13:08', '2023-09-14 15:13:08', 0, 0, '', NULL, '2023-09-14 15:13:08', NULL, '2023-09-14 15:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36427, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:13:55', '2023-09-14 15:13:55', 0, 0, '', NULL, '2023-09-14 15:13:55', NULL, '2023-09-14 15:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36428, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:15:07', '2023-09-14 15:15:07', 0, 0, '', NULL, '2023-09-14 15:15:07', NULL, '2023-09-14 15:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36429, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:15:55', '2023-09-14 15:15:55', 0, 0, '', NULL, '2023-09-14 15:15:55', NULL, '2023-09-14 15:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36430, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:17:08', '2023-09-14 15:17:08', 0, 0, '', NULL, '2023-09-14 15:17:08', NULL, '2023-09-14 15:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36431, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:17:55', '2023-09-14 15:17:55', 0, 0, '', NULL, '2023-09-14 15:17:55', NULL, '2023-09-14 15:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36432, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:19:08', '2023-09-14 15:19:08', 0, 0, '', NULL, '2023-09-14 15:19:08', NULL, '2023-09-14 15:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36433, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:19:55', '2023-09-14 15:19:55', 0, 0, '', NULL, '2023-09-14 15:19:55', NULL, '2023-09-14 15:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36434, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:21:08', '2023-09-14 15:21:08', 0, 0, '', NULL, '2023-09-14 15:21:08', NULL, '2023-09-14 15:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36435, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:21:55', '2023-09-14 15:21:55', 0, 0, '', NULL, '2023-09-14 15:21:55', NULL, '2023-09-14 15:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36436, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:23:08', '2023-09-14 15:23:08', 0, 0, '', NULL, '2023-09-14 15:23:08', NULL, '2023-09-14 15:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36437, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:23:55', '2023-09-14 15:23:55', 0, 0, '', NULL, '2023-09-14 15:23:55', NULL, '2023-09-14 15:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36438, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:25:08', '2023-09-14 15:25:08', 0, 0, '', NULL, '2023-09-14 15:25:08', NULL, '2023-09-14 15:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36439, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:25:55', '2023-09-14 15:25:55', 0, 0, '', NULL, '2023-09-14 15:25:55', NULL, '2023-09-14 15:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36440, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:27:08', '2023-09-14 15:27:08', 0, 0, '', NULL, '2023-09-14 15:27:08', NULL, '2023-09-14 15:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36441, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:27:55', '2023-09-14 15:27:55', 0, 0, '', NULL, '2023-09-14 15:27:55', NULL, '2023-09-14 15:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36442, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:29:08', '2023-09-14 15:29:08', 0, 0, '', NULL, '2023-09-14 15:29:08', NULL, '2023-09-14 15:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36443, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:29:55', '2023-09-14 15:29:55', 0, 0, '', NULL, '2023-09-14 15:29:55', NULL, '2023-09-14 15:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36444, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:31:08', '2023-09-14 15:31:08', 0, 0, '', NULL, '2023-09-14 15:31:08', NULL, '2023-09-14 15:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36445, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:31:55', '2023-09-14 15:31:55', 0, 0, '', NULL, '2023-09-14 15:31:55', NULL, '2023-09-14 15:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36446, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:33:08', '2023-09-14 15:33:08', 0, 0, '', NULL, '2023-09-14 15:33:08', NULL, '2023-09-14 15:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36447, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:33:55', '2023-09-14 15:33:55', 0, 0, '', NULL, '2023-09-14 15:33:55', NULL, '2023-09-14 15:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36448, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:35:08', '2023-09-14 15:35:08', 0, 0, '', NULL, '2023-09-14 15:35:08', NULL, '2023-09-14 15:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36449, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:35:55', '2023-09-14 15:35:55', 0, 0, '', NULL, '2023-09-14 15:35:55', NULL, '2023-09-14 15:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36450, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:37:07', '2023-09-14 15:37:07', 0, 0, '', NULL, '2023-09-14 15:37:07', NULL, '2023-09-14 15:37:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36451, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:37:55', '2023-09-14 15:37:55', 0, 0, '', NULL, '2023-09-14 15:37:55', NULL, '2023-09-14 15:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36452, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:39:08', '2023-09-14 15:39:08', 0, 0, '', NULL, '2023-09-14 15:39:08', NULL, '2023-09-14 15:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36453, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:39:55', '2023-09-14 15:39:55', 0, 0, '', NULL, '2023-09-14 15:39:55', NULL, '2023-09-14 15:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36454, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:41:08', '2023-09-14 15:41:08', 0, 0, '', NULL, '2023-09-14 15:41:08', NULL, '2023-09-14 15:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36455, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:41:55', '2023-09-14 15:41:55', 0, 0, '', NULL, '2023-09-14 15:41:55', NULL, '2023-09-14 15:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36456, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:43:08', '2023-09-14 15:43:08', 0, 0, '', NULL, '2023-09-14 15:43:08', NULL, '2023-09-14 15:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36457, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:43:55', '2023-09-14 15:43:55', 0, 0, '', NULL, '2023-09-14 15:43:55', NULL, '2023-09-14 15:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36458, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:45:08', '2023-09-14 15:45:08', 0, 0, '', NULL, '2023-09-14 15:45:08', NULL, '2023-09-14 15:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36459, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:45:55', '2023-09-14 15:45:55', 0, 0, '', NULL, '2023-09-14 15:45:55', NULL, '2023-09-14 15:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36460, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:47:08', '2023-09-14 15:47:08', 0, 0, '', NULL, '2023-09-14 15:47:08', NULL, '2023-09-14 15:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36461, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:47:55', '2023-09-14 15:47:55', 0, 0, '', NULL, '2023-09-14 15:47:55', NULL, '2023-09-14 15:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36462, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:49:08', '2023-09-14 15:49:08', 0, 0, '', NULL, '2023-09-14 15:49:08', NULL, '2023-09-14 15:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36463, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:49:55', '2023-09-14 15:49:55', 0, 0, '', NULL, '2023-09-14 15:49:55', NULL, '2023-09-14 15:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36464, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:51:08', '2023-09-14 15:51:08', 0, 0, '', NULL, '2023-09-14 15:51:08', NULL, '2023-09-14 15:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36465, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:51:55', '2023-09-14 15:51:55', 0, 0, '', NULL, '2023-09-14 15:51:55', NULL, '2023-09-14 15:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36466, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:53:08', '2023-09-14 15:53:08', 0, 0, '', NULL, '2023-09-14 15:53:08', NULL, '2023-09-14 15:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36467, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:53:55', '2023-09-14 15:53:55', 0, 0, '', NULL, '2023-09-14 15:53:55', NULL, '2023-09-14 15:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36468, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:55:07', '2023-09-14 15:55:07', 0, 0, '', NULL, '2023-09-14 15:55:07', NULL, '2023-09-14 15:55:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36469, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:55:55', '2023-09-14 15:55:55', 0, 0, '', NULL, '2023-09-14 15:55:55', NULL, '2023-09-14 15:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36470, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:57:08', '2023-09-14 15:57:08', 0, 0, '', NULL, '2023-09-14 15:57:08', NULL, '2023-09-14 15:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36471, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:57:55', '2023-09-14 15:57:55', 0, 0, '', NULL, '2023-09-14 15:57:55', NULL, '2023-09-14 15:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36472, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:59:08', '2023-09-14 15:59:08', 0, 0, '', NULL, '2023-09-14 15:59:08', NULL, '2023-09-14 15:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36473, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 15:59:55', '2023-09-14 15:59:55', 0, 0, '', NULL, '2023-09-14 15:59:55', NULL, '2023-09-14 15:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36474, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:01:08', '2023-09-14 16:01:08', 0, 0, '', NULL, '2023-09-14 16:01:08', NULL, '2023-09-14 16:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36475, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:01:55', '2023-09-14 16:01:55', 0, 0, '', NULL, '2023-09-14 16:01:55', NULL, '2023-09-14 16:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36476, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:03:08', '2023-09-14 16:03:08', 0, 0, '', NULL, '2023-09-14 16:03:08', NULL, '2023-09-14 16:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36477, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:03:55', '2023-09-14 16:03:55', 0, 0, '', NULL, '2023-09-14 16:03:55', NULL, '2023-09-14 16:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36478, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:05:08', '2023-09-14 16:05:08', 0, 0, '', NULL, '2023-09-14 16:05:08', NULL, '2023-09-14 16:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36479, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:05:55', '2023-09-14 16:05:55', 0, 0, '', NULL, '2023-09-14 16:05:55', NULL, '2023-09-14 16:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36480, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:07:08', '2023-09-14 16:07:08', 0, 0, '', NULL, '2023-09-14 16:07:08', NULL, '2023-09-14 16:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36481, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:07:55', '2023-09-14 16:07:55', 0, 0, '', NULL, '2023-09-14 16:07:55', NULL, '2023-09-14 16:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36482, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:09:08', '2023-09-14 16:09:08', 0, 0, '', NULL, '2023-09-14 16:09:08', NULL, '2023-09-14 16:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36483, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:09:55', '2023-09-14 16:09:55', 0, 0, '', NULL, '2023-09-14 16:09:55', NULL, '2023-09-14 16:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36484, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:11:08', '2023-09-14 16:11:08', 0, 0, '', NULL, '2023-09-14 16:11:08', NULL, '2023-09-14 16:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36485, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:11:55', '2023-09-14 16:11:55', 0, 0, '', NULL, '2023-09-14 16:11:55', NULL, '2023-09-14 16:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36486, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:13:08', '2023-09-14 16:13:08', 0, 0, '', NULL, '2023-09-14 16:13:08', NULL, '2023-09-14 16:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36487, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:13:55', '2023-09-14 16:13:55', 0, 0, '', NULL, '2023-09-14 16:13:55', NULL, '2023-09-14 16:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36488, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:15:08', '2023-09-14 16:15:08', 0, 0, '', NULL, '2023-09-14 16:15:08', NULL, '2023-09-14 16:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36489, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:15:55', '2023-09-14 16:15:55', 0, 0, '', NULL, '2023-09-14 16:15:55', NULL, '2023-09-14 16:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36490, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:17:08', '2023-09-14 16:17:08', 0, 0, '', NULL, '2023-09-14 16:17:08', NULL, '2023-09-14 16:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36491, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:17:55', '2023-09-14 16:17:55', 0, 0, '', NULL, '2023-09-14 16:17:55', NULL, '2023-09-14 16:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36492, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:19:08', '2023-09-14 16:19:08', 0, 0, '', NULL, '2023-09-14 16:19:08', NULL, '2023-09-14 16:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36493, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:19:55', '2023-09-14 16:19:55', 0, 0, '', NULL, '2023-09-14 16:19:55', NULL, '2023-09-14 16:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36494, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:21:08', '2023-09-14 16:21:08', 0, 0, '', NULL, '2023-09-14 16:21:08', NULL, '2023-09-14 16:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36495, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:21:55', '2023-09-14 16:21:55', 0, 0, '', NULL, '2023-09-14 16:21:55', NULL, '2023-09-14 16:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36496, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:23:08', '2023-09-14 16:23:08', 0, 0, '', NULL, '2023-09-14 16:23:08', NULL, '2023-09-14 16:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36497, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:23:55', '2023-09-14 16:23:55', 0, 0, '', NULL, '2023-09-14 16:23:55', NULL, '2023-09-14 16:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36498, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:25:08', '2023-09-14 16:25:08', 0, 0, '', NULL, '2023-09-14 16:25:08', NULL, '2023-09-14 16:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36499, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:25:55', '2023-09-14 16:25:55', 0, 0, '', NULL, '2023-09-14 16:25:55', NULL, '2023-09-14 16:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36500, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:27:08', '2023-09-14 16:27:08', 0, 0, '', NULL, '2023-09-14 16:27:08', NULL, '2023-09-14 16:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36501, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:27:55', '2023-09-14 16:27:55', 0, 0, '', NULL, '2023-09-14 16:27:55', NULL, '2023-09-14 16:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36502, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:29:08', '2023-09-14 16:29:08', 0, 0, '', NULL, '2023-09-14 16:29:08', NULL, '2023-09-14 16:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36503, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:29:55', '2023-09-14 16:29:55', 0, 0, '', NULL, '2023-09-14 16:29:55', NULL, '2023-09-14 16:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36504, '', 13, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:30:50', '2023-09-14 16:30:50', 0, 0, '', NULL, '2023-09-14 16:30:50', NULL, '2023-09-14 16:30:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36505, '', 13, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:30:50', '2023-09-14 16:30:50', 0, 0, '', NULL, '2023-09-14 16:30:50', NULL, '2023-09-14 16:30:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36506, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:08', '2023-09-14 16:31:08', 0, 0, '', NULL, '2023-09-14 16:31:08', NULL, '2023-09-14 16:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36507, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:32', '2023-09-14 16:31:32', 0, 0, '', NULL, '2023-09-14 16:31:32', NULL, '2023-09-14 16:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36508, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:38', '2023-09-14 16:31:38', 0, 0, '', NULL, '2023-09-14 16:31:38', NULL, '2023-09-14 16:31:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36509, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"28\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:40', '2023-09-14 16:31:40', 0, 0, '', NULL, '2023-09-14 16:31:40', NULL, '2023-09-14 16:31:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36510, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:45', '2023-09-14 16:31:45', 0, 0, '', NULL, '2023-09-14 16:31:45', NULL, '2023-09-14 16:31:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36511, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:45', '2023-09-14 16:31:45', 0, 0, '', NULL, '2023-09-14 16:31:45', NULL, '2023-09-14 16:31:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36512, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"退出登录\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\\\",\\\"type\\\":\\\"pages\\\",\\\"content\\\":\\\"\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"/pages/components/pages/login/logout\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":28,\\\"createTime\\\":1694513411000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:52', '2023-09-14 16:31:52', 0, 0, '', NULL, '2023-09-14 16:31:52', NULL, '2023-09-14 16:31:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36513, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:52', '2023-09-14 16:31:52', 0, 0, '', NULL, '2023-09-14 16:31:52', NULL, '2023-09-14 16:31:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36514, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"27\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:54', '2023-09-14 16:31:54', 0, 0, '', NULL, '2023-09-14 16:31:54', NULL, '2023-09-14 16:31:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36515, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:58', '2023-09-14 16:31:58', 0, 0, '', NULL, '2023-09-14 16:31:58', NULL, '2023-09-14 16:31:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36516, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:31:59', '2023-09-14 16:31:59', 0, 0, '', NULL, '2023-09-14 16:31:59', NULL, '2023-09-14 16:31:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36517, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"关于我们\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\\\",\\\"type\\\":\\\"content\\\",\\\"content\\\":\\\"

88888

\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":27,\\\"createTime\\\":1693728293000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:32:09', '2023-09-14 16:32:09', 0, 0, '', NULL, '2023-09-14 16:32:09', NULL, '2023-09-14 16:32:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36518, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:32:09', '2023-09-14 16:32:09', 0, 0, '', NULL, '2023-09-14 16:32:09', NULL, '2023-09-14 16:32:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36519, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"26\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:32:13', '2023-09-14 16:32:13', 0, 0, '', NULL, '2023-09-14 16:32:13', NULL, '2023-09-14 16:32:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36520, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:32:18', '2023-09-14 16:32:18', 0, 0, '', NULL, '2023-09-14 16:32:18', NULL, '2023-09-14 16:32:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36521, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:32:18', '2023-09-14 16:32:18', 0, 0, '', NULL, '2023-09-14 16:32:18', NULL, '2023-09-14 16:32:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36522, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:33:08', '2023-09-14 16:33:08', 0, 0, '', NULL, '2023-09-14 16:33:08', NULL, '2023-09-14 16:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36523, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:33:55', '2023-09-14 16:33:55', 0, 0, '', NULL, '2023-09-14 16:33:55', NULL, '2023-09-14 16:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36524, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:08', '2023-09-14 16:35:08', 0, 0, '', NULL, '2023-09-14 16:35:08', NULL, '2023-09-14 16:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36525, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:25', '2023-09-14 16:35:25', 0, 0, '', NULL, '2023-09-14 16:35:25', NULL, '2023-09-14 16:35:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36526, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:25', '2023-09-14 16:35:25', 0, 0, '', NULL, '2023-09-14 16:35:25', NULL, '2023-09-14 16:35:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36527, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:26', '2023-09-14 16:35:26', 0, 0, '', NULL, '2023-09-14 16:35:26', NULL, '2023-09-14 16:35:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36528, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:26', '2023-09-14 16:35:26', 0, 0, '', NULL, '2023-09-14 16:35:26', NULL, '2023-09-14 16:35:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36529, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:26', '2023-09-14 16:35:26', 0, 0, '', NULL, '2023-09-14 16:35:26', NULL, '2023-09-14 16:35:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36530, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:26', '2023-09-14 16:35:26', 0, 0, '', NULL, '2023-09-14 16:35:26', NULL, '2023-09-14 16:35:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36531, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:38', '2023-09-14 16:35:38', 0, 0, '', NULL, '2023-09-14 16:35:38', NULL, '2023-09-14 16:35:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36532, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:41', '2023-09-14 16:35:41', 0, 0, '', NULL, '2023-09-14 16:35:41', NULL, '2023-09-14 16:35:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36533, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:59', '2023-09-14 16:35:59', 0, 0, '', NULL, '2023-09-14 16:35:59', NULL, '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36534, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"帮助.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:59', '2023-09-14 16:35:59', 0, 0, '', NULL, '2023-09-14 16:35:59', NULL, '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36535, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:35:59', '2023-09-14 16:35:59', 0, 0, '', NULL, '2023-09-14 16:35:59', NULL, '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36536, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:08', '2023-09-14 16:36:08', 0, 0, '', NULL, '2023-09-14 16:36:08', NULL, '2023-09-14 16:36:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36537, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:09', '2023-09-14 16:36:09', 0, 0, '', NULL, '2023-09-14 16:36:09', NULL, '2023-09-14 16:36:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36538, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:09', '2023-09-14 16:36:09', 0, 0, '', NULL, '2023-09-14 16:36:09', NULL, '2023-09-14 16:36:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36539, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:09', '2023-09-14 16:36:09', 0, 0, '', NULL, '2023-09-14 16:36:09', NULL, '2023-09-14 16:36:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36540, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:09', '2023-09-14 16:36:09', 0, 0, '', NULL, '2023-09-14 16:36:09', NULL, '2023-09-14 16:36:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36541, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"26\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:12', '2023-09-14 16:36:12', 0, 0, '', NULL, '2023-09-14 16:36:12', NULL, '2023-09-14 16:36:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36542, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36543, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36544, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36545, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36546, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36547, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36548, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36549, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36550, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36551, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36552, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:16', '2023-09-14 16:36:16', 0, 0, '', NULL, '2023-09-14 16:36:16', NULL, '2023-09-14 16:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36553, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"帮助中心\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\\\",\\\"type\\\":\\\"content\\\",\\\"content\\\":\\\"

66666

\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":26,\\\"createTime\\\":1693728225000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:24', '2023-09-14 16:36:24', 0, 0, '', NULL, '2023-09-14 16:36:24', NULL, '2023-09-14 16:36:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36554, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:24', '2023-09-14 16:36:24', 0, 0, '', NULL, '2023-09-14 16:36:24', NULL, '2023-09-14 16:36:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36555, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"25\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:27', '2023-09-14 16:36:27', 0, 0, '', NULL, '2023-09-14 16:36:27', NULL, '2023-09-14 16:36:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36556, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:32', '2023-09-14 16:36:32', 0, 0, '', NULL, '2023-09-14 16:36:32', NULL, '2023-09-14 16:36:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36557, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:32', '2023-09-14 16:36:32', 0, 0, '', NULL, '2023-09-14 16:36:32', NULL, '2023-09-14 16:36:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36558, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"我的地址\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\",\\\"type\\\":\\\"pages\\\",\\\"content\\\":\\\"\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"/pages/components/pages/address/address\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":25,\\\"createTime\\\":1693728149000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:37', '2023-09-14 16:36:37', 0, 0, '', NULL, '2023-09-14 16:36:37', NULL, '2023-09-14 16:36:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36559, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:37', '2023-09-14 16:36:37', 0, 0, '', NULL, '2023-09-14 16:36:37', NULL, '2023-09-14 16:36:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36560, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"25\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:47', '2023-09-14 16:36:47', 0, 0, '', NULL, '2023-09-14 16:36:47', NULL, '2023-09-14 16:36:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36561, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"24\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:36:58', '2023-09-14 16:36:58', 0, 0, '', NULL, '2023-09-14 16:36:58', NULL, '2023-09-14 16:36:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36562, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:01', '2023-09-14 16:37:01', 0, 0, '', NULL, '2023-09-14 16:37:01', NULL, '2023-09-14 16:37:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36563, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:01', '2023-09-14 16:37:01', 0, 0, '', NULL, '2023-09-14 16:37:01', NULL, '2023-09-14 16:37:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36564, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:04', '2023-09-14 16:37:04', 0, 0, '', NULL, '2023-09-14 16:37:04', NULL, '2023-09-14 16:37:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36565, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:14', '2023-09-14 16:37:14', 0, 0, '', NULL, '2023-09-14 16:37:14', NULL, '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36566, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"客服.png\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:14', '2023-09-14 16:37:14', 0, 0, '', NULL, '2023-09-14 16:37:14', NULL, '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36567, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:14', '2023-09-14 16:37:14', 0, 0, '', NULL, '2023-09-14 16:37:14', NULL, '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36568, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:18', '2023-09-14 16:37:18', 0, 0, '', NULL, '2023-09-14 16:37:18', NULL, '2023-09-14 16:37:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36569, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36570, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36571, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36572, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36573, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36574, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:19', '2023-09-14 16:37:19', 0, 0, '', NULL, '2023-09-14 16:37:19', NULL, '2023-09-14 16:37:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36575, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"24\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:24', '2023-09-14 16:37:24', 0, 0, '', NULL, '2023-09-14 16:37:24', NULL, '2023-09-14 16:37:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36576, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36577, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36578, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36579, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36580, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36581, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36582, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36583, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36584, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:28', '2023-09-14 16:37:28', 0, 0, '', NULL, '2023-09-14 16:37:28', NULL, '2023-09-14 16:37:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36585, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"联系客服\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\\\",\\\"type\\\":\\\"call\\\",\\\"content\\\":\\\"\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"\\\",\\\"phone\\\":\\\"18888888888\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":24,\\\"createTime\\\":1693728100000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:33', '2023-09-14 16:37:33', 0, 0, '', NULL, '2023-09-14 16:37:33', NULL, '2023-09-14 16:37:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36586, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:33', '2023-09-14 16:37:33', 0, 0, '', NULL, '2023-09-14 16:37:33', NULL, '2023-09-14 16:37:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36587, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"23\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:37', '2023-09-14 16:37:37', 0, 0, '', NULL, '2023-09-14 16:37:37', NULL, '2023-09-14 16:37:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36588, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:41', '2023-09-14 16:37:41', 0, 0, '', NULL, '2023-09-14 16:37:41', NULL, '2023-09-14 16:37:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36589, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:37:41', '2023-09-14 16:37:41', 0, 0, '', NULL, '2023-09-14 16:37:41', NULL, '2023-09-14 16:37:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36590, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"兑换订单\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\\\",\\\"type\\\":\\\"pages\\\",\\\"content\\\":\\\"\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"/pages/components/pages/scoreproduct/order\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":0,\\\"id\\\":23,\\\"createTime\\\":1693728034000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:02', '2023-09-14 16:38:02', 0, 0, '', NULL, '2023-09-14 16:38:02', NULL, '2023-09-14 16:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36591, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:02', '2023-09-14 16:38:02', 0, 0, '', NULL, '2023-09-14 16:38:02', NULL, '2023-09-14 16:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36592, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"22\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:05', '2023-09-14 16:38:05', 0, 0, '', NULL, '2023-09-14 16:38:05', NULL, '2023-09-14 16:38:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36593, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:08', '2023-09-14 16:38:08', 0, 0, '', NULL, '2023-09-14 16:38:08', NULL, '2023-09-14 16:38:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36594, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:08', '2023-09-14 16:38:08', 0, 0, '', NULL, '2023-09-14 16:38:08', NULL, '2023-09-14 16:38:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36595, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"积分商城\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\\\",\\\"type\\\":\\\"pages\\\",\\\"content\\\":\\\"

rtete

\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"/pages/components/pages/scoreproduct/list\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":0,\\\"id\\\":22,\\\"createTime\\\":1691733478000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:14', '2023-09-14 16:38:14', 0, 0, '', NULL, '2023-09-14 16:38:14', NULL, '2023-09-14 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36596, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:14', '2023-09-14 16:38:14', 0, 0, '', NULL, '2023-09-14 16:38:14', NULL, '2023-09-14 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36597, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"21\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:16', '2023-09-14 16:38:16', 0, 0, '', NULL, '2023-09-14 16:38:16', NULL, '2023-09-14 16:38:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36598, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:21', '2023-09-14 16:38:21', 0, 0, '', NULL, '2023-09-14 16:38:21', NULL, '2023-09-14 16:38:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36599, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:21', '2023-09-14 16:38:21', 0, 0, '', NULL, '2023-09-14 16:38:21', NULL, '2023-09-14 16:38:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36600, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/shop/service/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"我的订单\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\\\",\\\"type\\\":\\\"pages\\\",\\\"content\\\":\\\"

tetewt

\\\",\\\"pid\\\":0,\\\"appId\\\":\\\"\\\",\\\"pages\\\":\\\"/pages/components/pages/orders/orders\\\",\\\"phone\\\":\\\"\\\",\\\"weigh\\\":0,\\\"status\\\":1,\\\"id\\\":21,\\\"createTime\\\":1691733159000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:29', '2023-09-14 16:38:29', 0, 0, '', NULL, '2023-09-14 16:38:29', NULL, '2023-09-14 16:38:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36601, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:29', '2023-09-14 16:38:29', 0, 0, '', NULL, '2023-09-14 16:38:29', NULL, '2023-09-14 16:38:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36602, '', 1, 2, 'yshop-server', 'DELETE', '/admin-api/shop/service/delete', '{\"query\":{\"id\":\"20\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:44', '2023-09-14 16:38:44', 0, 0, '', NULL, '2023-09-14 16:38:44', NULL, '2023-09-14 16:38:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36603, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:44', '2023-09-14 16:38:44', 0, 0, '', NULL, '2023-09-14 16:38:44', NULL, '2023-09-14 16:38:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36604, '', 1, 2, 'yshop-server', 'DELETE', '/admin-api/shop/service/delete', '{\"query\":{\"id\":\"23\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:56', '2023-09-14 16:38:56', 0, 0, '', NULL, '2023-09-14 16:38:56', NULL, '2023-09-14 16:38:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36605, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:38:56', '2023-09-14 16:38:56', 0, 0, '', NULL, '2023-09-14 16:38:56', NULL, '2023-09-14 16:38:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36606, '', 1, 2, 'yshop-server', 'DELETE', '/admin-api/shop/service/delete', '{\"query\":{\"id\":\"22\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:39:00', '2023-09-14 16:39:00', 0, 0, '', NULL, '2023-09-14 16:39:00', NULL, '2023-09-14 16:39:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36607, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:39:00', '2023-09-14 16:39:00', 0, 0, '', NULL, '2023-09-14 16:39:00', NULL, '2023-09-14 16:39:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36608, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:39:04', '2023-09-14 16:39:04', 0, 0, '', NULL, '2023-09-14 16:39:04', NULL, '2023-09-14 16:39:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36609, '', 13, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:12', '2023-09-14 16:39:12', 0, 0, '', NULL, '2023-09-14 16:39:12', NULL, '2023-09-14 16:39:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36610, '', 13, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:13', '2023-09-14 16:39:13', 0, 0, '', NULL, '2023-09-14 16:39:13', NULL, '2023-09-14 16:39:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36611, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:39:19', '2023-09-14 16:39:19', 0, 0, '', NULL, '2023-09-14 16:39:19', NULL, '2023-09-14 16:39:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36612, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:21', '2023-09-14 16:39:21', 0, 0, '', NULL, '2023-09-14 16:39:21', NULL, '2023-09-14 16:39:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36613, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/56 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:21', '2023-09-14 16:39:21', 0, 0, '', NULL, '2023-09-14 16:39:21', NULL, '2023-09-14 16:39:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36614, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1MpMGa1B9J2G0ioKGa1Ze8DP1MpMGY\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:21', '2023-09-14 16:39:22', 0, 0, '', NULL, '2023-09-14 16:39:22', NULL, '2023-09-14 16:39:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36615, '', 13, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36616, '', 13, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36617, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36618, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36619, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36620, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36621, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36622, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/58 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:23', '2023-09-14 16:39:23', 0, 0, '', NULL, '2023-09-14 16:39:23', NULL, '2023-09-14 16:39:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36623, '', 13, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:28', '2023-09-14 16:39:28', 0, 0, '', NULL, '2023-09-14 16:39:28', NULL, '2023-09-14 16:39:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36624, '', 13, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:30', '2023-09-14 16:39:31', 0, 0, '', NULL, '2023-09-14 16:39:31', NULL, '2023-09-14 16:39:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36625, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:31', '2023-09-14 16:39:31', 0, 0, '', NULL, '2023-09-14 16:39:31', NULL, '2023-09-14 16:39:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36626, '', 13, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:31', '2023-09-14 16:39:31', 0, 0, '', NULL, '2023-09-14 16:39:31', NULL, '2023-09-14 16:39:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36627, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:32', '2023-09-14 16:39:32', 0, 0, '', NULL, '2023-09-14 16:39:32', NULL, '2023-09-14 16:39:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36628, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/56 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:32', '2023-09-14 16:39:32', 0, 0, '', NULL, '2023-09-14 16:39:32', NULL, '2023-09-14 16:39:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36629, '', 13, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:36', '2023-09-14 16:39:36', 0, 0, '', NULL, '2023-09-14 16:39:36', NULL, '2023-09-14 16:39:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36630, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:46', '2023-09-14 16:39:46', 0, 0, '', NULL, '2023-09-14 16:39:46', NULL, '2023-09-14 16:39:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36631, '', 13, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:48', '2023-09-14 16:39:48', 0, 0, '', NULL, '2023-09-14 16:39:48', NULL, '2023-09-14 16:39:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36632, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:52', '2023-09-14 16:39:52', 0, 0, '', NULL, '2023-09-14 16:39:52', NULL, '2023-09-14 16:39:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36633, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/59 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 16:39:53', '2023-09-14 16:39:53', 0, 0, '', NULL, '2023-09-14 16:39:53', NULL, '2023-09-14 16:39:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36634, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1FiXFa1LNN0G0Dl6Ia1eooMm0FiXFk\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:53', '2023-09-14 16:39:53', 0, 0, '', NULL, '2023-09-14 16:39:53', NULL, '2023-09-14 16:39:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36635, '', 13, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:55', '2023-09-14 16:39:55', 0, 0, '', NULL, '2023-09-14 16:39:55', NULL, '2023-09-14 16:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36636, '', 13, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:58', '2023-09-14 16:39:58', 0, 0, '', NULL, '2023-09-14 16:39:58', NULL, '2023-09-14 16:39:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36637, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:58', '2023-09-14 16:39:58', 0, 0, '', NULL, '2023-09-14 16:39:58', NULL, '2023-09-14 16:39:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36638, '', 13, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 16:39:58', '2023-09-14 16:39:58', 0, 0, '', NULL, '2023-09-14 16:39:58', NULL, '2023-09-14 16:39:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36639, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:07', '2023-09-14 16:40:07', 0, 0, '', NULL, '2023-09-14 16:40:07', NULL, '2023-09-14 16:40:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36640, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:07', '2023-09-14 16:40:07', 0, 0, '', NULL, '2023-09-14 16:40:07', NULL, '2023-09-14 16:40:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36641, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:09', '2023-09-14 16:40:09', 0, 0, '', NULL, '2023-09-14 16:40:09', NULL, '2023-09-14 16:40:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36642, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:17', '2023-09-14 16:40:17', 0, 0, '', NULL, '2023-09-14 16:40:17', NULL, '2023-09-14 16:40:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36643, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:17', '2023-09-14 16:40:17', 0, 0, '', NULL, '2023-09-14 16:40:17', NULL, '2023-09-14 16:40:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36644, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:25', '2023-09-14 16:40:25', 0, 0, '', NULL, '2023-09-14 16:40:25', NULL, '2023-09-14 16:40:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36645, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:40:25', '2023-09-14 16:40:25', 0, 0, '', NULL, '2023-09-14 16:40:25', NULL, '2023-09-14 16:40:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36646, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:41:05', '2023-09-14 16:41:05', 0, 0, '', NULL, '2023-09-14 16:41:05', NULL, '2023-09-14 16:41:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36647, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:41:15', '2023-09-14 16:41:15', 0, 500, '系统异常', NULL, '2023-09-14 16:41:15', NULL, '2023-09-14 16:41:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36648, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:41:19', '2023-09-14 16:41:19', 0, 0, '', NULL, '2023-09-14 16:41:19', NULL, '2023-09-14 16:41:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36649, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:43:05', '2023-09-14 16:43:05', 0, 0, '', NULL, '2023-09-14 16:43:05', NULL, '2023-09-14 16:43:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36650, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:43:19', '2023-09-14 16:43:19', 0, 0, '', NULL, '2023-09-14 16:43:19', NULL, '2023-09-14 16:43:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36651, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:45:05', '2023-09-14 16:45:05', 0, 0, '', NULL, '2023-09-14 16:45:05', NULL, '2023-09-14 16:45:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36652, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:47:34', '2023-09-14 16:47:34', 0, 500, '系统异常', NULL, '2023-09-14 16:47:34', NULL, '2023-09-14 16:47:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36653, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:48:17', '2023-09-14 16:48:17', 0, 500, '系统异常', NULL, '2023-09-14 16:48:17', NULL, '2023-09-14 16:48:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36654, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:49:08', '2023-09-14 16:49:08', 0, 0, '', NULL, '2023-09-14 16:49:08', NULL, '2023-09-14 16:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36655, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:49:19', '2023-09-14 16:49:19', 0, 0, '', NULL, '2023-09-14 16:49:19', NULL, '2023-09-14 16:49:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36656, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:08', '2023-09-14 16:51:08', 0, 0, '', NULL, '2023-09-14 16:51:08', NULL, '2023-09-14 16:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36657, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:19', '2023-09-14 16:51:19', 0, 0, '', NULL, '2023-09-14 16:51:19', NULL, '2023-09-14 16:51:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36658, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:32', '2023-09-14 16:51:32', 0, 0, '', NULL, '2023-09-14 16:51:32', NULL, '2023-09-14 16:51:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36659, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:32', '2023-09-14 16:51:32', 0, 0, '', NULL, '2023-09-14 16:51:32', NULL, '2023-09-14 16:51:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36660, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\\\",\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:38', '2023-09-14 16:51:38', 0, 0, '', NULL, '2023-09-14 16:51:38', NULL, '2023-09-14 16:51:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36661, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:51:38', '2023-09-14 16:51:38', 0, 0, '', NULL, '2023-09-14 16:51:38', NULL, '2023-09-14 16:51:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36662, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-rule/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:52:48', '2023-09-14 16:52:48', 0, 0, '', NULL, '2023-09-14 16:52:48', NULL, '2023-09-14 16:52:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36663, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-rule/get', '{\"query\":{\"id\":\"26\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:52:55', '2023-09-14 16:52:55', 0, 0, '', NULL, '2023-09-14 16:52:56', NULL, '2023-09-14 16:52:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36664, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:53:08', '2023-09-14 16:53:08', 0, 0, '', NULL, '2023-09-14 16:53:08', NULL, '2023-09-14 16:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36665, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:53:19', '2023-09-14 16:53:19', 0, 0, '', NULL, '2023-09-14 16:53:19', NULL, '2023-09-14 16:53:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36666, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:55:08', '2023-09-14 16:55:08', 0, 0, '', NULL, '2023-09-14 16:55:08', NULL, '2023-09-14 16:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36667, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:55:19', '2023-09-14 16:55:19', 0, 0, '', NULL, '2023-09-14 16:55:19', NULL, '2023-09-14 16:55:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36668, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:57:08', '2023-09-14 16:57:08', 0, 0, '', NULL, '2023-09-14 16:57:08', NULL, '2023-09-14 16:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36669, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:57:19', '2023-09-14 16:57:19', 0, 0, '', NULL, '2023-09-14 16:57:19', NULL, '2023-09-14 16:57:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36670, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:59:08', '2023-09-14 16:59:08', 0, 0, '', NULL, '2023-09-14 16:59:08', NULL, '2023-09-14 16:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36671, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:59:19', '2023-09-14 16:59:19', 0, 0, '', NULL, '2023-09-14 16:59:19', NULL, '2023-09-14 16:59:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36672, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:01:08', '2023-09-14 17:01:08', 0, 0, '', NULL, '2023-09-14 17:01:08', NULL, '2023-09-14 17:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36673, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:01:19', '2023-09-14 17:01:19', 0, 0, '', NULL, '2023-09-14 17:01:19', NULL, '2023-09-14 17:01:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36674, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:03:08', '2023-09-14 17:03:08', 0, 0, '', NULL, '2023-09-14 17:03:08', NULL, '2023-09-14 17:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36675, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:03:19', '2023-09-14 17:03:19', 0, 0, '', NULL, '2023-09-14 17:03:19', NULL, '2023-09-14 17:03:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36676, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:05:08', '2023-09-14 17:05:08', 0, 0, '', NULL, '2023-09-14 17:05:08', NULL, '2023-09-14 17:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36677, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:05:19', '2023-09-14 17:05:19', 0, 0, '', NULL, '2023-09-14 17:05:19', NULL, '2023-09-14 17:05:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36678, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:07:08', '2023-09-14 17:07:08', 0, 0, '', NULL, '2023-09-14 17:07:08', NULL, '2023-09-14 17:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36679, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:07:19', '2023-09-14 17:07:19', 0, 0, '', NULL, '2023-09-14 17:07:19', NULL, '2023-09-14 17:07:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36680, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:09:08', '2023-09-14 17:09:08', 0, 0, '', NULL, '2023-09-14 17:09:08', NULL, '2023-09-14 17:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36681, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:09:19', '2023-09-14 17:09:19', 0, 0, '', NULL, '2023-09-14 17:09:19', NULL, '2023-09-14 17:09:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36682, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:11:08', '2023-09-14 17:11:08', 0, 0, '', NULL, '2023-09-14 17:11:08', NULL, '2023-09-14 17:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36683, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product-rule/save/26', '{\"query\":{},\"body\":\"{\\\"id\\\":26,\\\"ruleName\\\":\\\"主食\\\",\\\"ruleValue\\\":[{\\\"value\\\":\\\"口味\\\",\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"]},{\\\"value\\\":\\\"份量\\\",\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"]}],\\\"createTime\\\":1684491672000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:11:09', '2023-09-14 17:11:09', 0, 0, '', NULL, '2023-09-14 17:11:09', NULL, '2023-09-14 17:11:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36684, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-rule/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:11:09', '2023-09-14 17:11:09', 0, 0, '', NULL, '2023-09-14 17:11:09', NULL, '2023-09-14 17:11:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36685, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-rule/get', '{\"query\":{\"id\":\"25\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:11:11', '2023-09-14 17:11:11', 0, 0, '', NULL, '2023-09-14 17:11:11', NULL, '2023-09-14 17:11:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36686, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:11:19', '2023-09-14 17:11:19', 0, 0, '', NULL, '2023-09-14 17:11:19', NULL, '2023-09-14 17:11:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36687, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product-rule/save/25', '{\"query\":{},\"body\":\"{\\\"id\\\":25,\\\"ruleName\\\":\\\"饮料\\\",\\\"ruleValue\\\":[{\\\"value\\\":\\\"体积\\\",\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"]}],\\\"createTime\\\":1684376592000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:12:22', '2023-09-14 17:12:22', 0, 0, '', NULL, '2023-09-14 17:12:22', NULL, '2023-09-14 17:12:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36688, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-rule/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:12:22', '2023-09-14 17:12:22', 0, 0, '', NULL, '2023-09-14 17:12:22', NULL, '2023-09-14 17:12:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36689, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:13:08', '2023-09-14 17:13:08', 0, 0, '', NULL, '2023-09-14 17:13:08', NULL, '2023-09-14 17:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36690, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:13:19', '2023-09-14 17:13:19', 0, 0, '', NULL, '2023-09-14 17:13:19', NULL, '2023-09-14 17:13:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36691, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:22', '2023-09-14 17:14:23', 0, 0, '', NULL, '2023-09-14 17:14:23', NULL, '2023-09-14 17:14:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36692, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/17', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:22', '2023-09-14 17:14:23', 0, 0, '', NULL, '2023-09-14 17:14:23', NULL, '2023-09-14 17:14:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36693, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:23', '2023-09-14 17:14:23', 0, 0, '', NULL, '2023-09-14 17:14:23', NULL, '2023-09-14 17:14:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36694, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:23', '2023-09-14 17:14:23', 0, 0, '', NULL, '2023-09-14 17:14:23', NULL, '2023-09-14 17:14:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36695, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:48', '2023-09-14 17:14:48', 0, 0, '', NULL, '2023-09-14 17:14:48', NULL, '2023-09-14 17:14:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36696, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:14:48', '2023-09-14 17:14:48', 0, 0, '', NULL, '2023-09-14 17:14:48', NULL, '2023-09-14 17:14:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36697, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:05', '2023-09-14 17:15:05', 0, 0, '', NULL, '2023-09-14 17:15:05', NULL, '2023-09-14 17:15:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36698, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:07', '2023-09-14 17:15:07', 0, 0, '', NULL, '2023-09-14 17:15:07', NULL, '2023-09-14 17:15:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36699, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:08', '2023-09-14 17:15:08', 0, 0, '', NULL, '2023-09-14 17:15:08', NULL, '2023-09-14 17:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36700, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:19', '2023-09-14 17:15:19', 0, 0, '', NULL, '2023-09-14 17:15:19', NULL, '2023-09-14 17:15:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36701, '', 1, 2, 'yshop-server', 'DELETE', '/admin-api/shop/material/delete', '{\"query\":{\"id\":\"48\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:25', '2023-09-14 17:15:25', 0, 0, '', NULL, '2023-09-14 17:15:25', NULL, '2023-09-14 17:15:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36702, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:25', '2023-09-14 17:15:25', 0, 0, '', NULL, '2023-09-14 17:15:25', NULL, '2023-09-14 17:15:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36703, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:25', '2023-09-14 17:15:25', 0, 0, '', NULL, '2023-09-14 17:15:25', NULL, '2023-09-14 17:15:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36704, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:15:33', '2023-09-14 17:15:33', 0, 0, '', NULL, '2023-09-14 17:15:33', NULL, '2023-09-14 17:15:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36705, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"groupId\":\"1\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:41', '2023-09-14 17:16:41', 0, 0, '', NULL, '2023-09-14 17:16:41', NULL, '2023-09-14 17:16:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36706, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:56', '2023-09-14 17:16:56', 0, 0, '', NULL, '2023-09-14 17:16:56', NULL, '2023-09-14 17:16:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36707, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:57', '2023-09-14 17:16:57', 0, 0, '', NULL, '2023-09-14 17:16:57', NULL, '2023-09-14 17:16:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36708, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:57', '2023-09-14 17:16:57', 0, 0, '', NULL, '2023-09-14 17:16:57', NULL, '2023-09-14 17:16:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36709, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:57', '2023-09-14 17:16:57', 0, 0, '', NULL, '2023-09-14 17:16:57', NULL, '2023-09-14 17:16:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36710, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/0', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:59', '2023-09-14 17:16:59', 0, 0, '', NULL, '2023-09-14 17:16:59', NULL, '2023-09-14 17:16:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36711, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:16:59', '2023-09-14 17:16:59', 0, 0, '', NULL, '2023-09-14 17:16:59', NULL, '2023-09-14 17:16:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36712, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:05', '2023-09-14 17:17:05', 0, 0, '', NULL, '2023-09-14 17:17:05', NULL, '2023-09-14 17:17:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36713, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36714, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36715, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36716, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36717, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36718, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36719, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36720, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36721, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36722, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36723, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:06', '2023-09-14 17:17:06', 0, 0, '', NULL, '2023-09-14 17:17:06', NULL, '2023-09-14 17:17:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36724, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:17:08', '2023-09-14 17:17:08', 0, 0, '', NULL, '2023-09-14 17:17:08', NULL, '2023-09-14 17:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36725, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:18:53', '2023-09-14 17:18:53', 0, 0, '', NULL, '2023-09-14 17:18:53', NULL, '2023-09-14 17:18:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36726, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:18:57', '2023-09-14 17:18:57', 0, 0, '', NULL, '2023-09-14 17:18:57', NULL, '2023-09-14 17:18:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36727, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:08', '2023-09-14 17:19:08', 0, 0, '', NULL, '2023-09-14 17:19:08', NULL, '2023-09-14 17:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36728, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:40', '2023-09-14 17:19:40', 0, 0, '', NULL, '2023-09-14 17:19:40', NULL, '2023-09-14 17:19:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36729, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:41', '2023-09-14 17:19:41', 0, 0, '', NULL, '2023-09-14 17:19:41', NULL, '2023-09-14 17:19:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36730, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:41', '2023-09-14 17:19:41', 0, 0, '', NULL, '2023-09-14 17:19:41', NULL, '2023-09-14 17:19:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36731, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:41', '2023-09-14 17:19:41', 0, 0, '', NULL, '2023-09-14 17:19:41', NULL, '2023-09-14 17:19:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36732, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/0', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:45', '2023-09-14 17:19:45', 0, 0, '', NULL, '2023-09-14 17:19:45', NULL, '2023-09-14 17:19:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36733, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:45', '2023-09-14 17:19:45', 0, 0, '', NULL, '2023-09-14 17:19:45', NULL, '2023-09-14 17:19:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36734, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36735, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36736, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36737, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36738, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36739, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36740, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36741, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36742, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36743, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36744, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36745, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:19:48', '2023-09-14 17:19:48', 0, 0, '', NULL, '2023-09-14 17:19:48', NULL, '2023-09-14 17:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36746, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:08', '2023-09-14 17:21:08', 0, 0, '', NULL, '2023-09-14 17:21:08', NULL, '2023-09-14 17:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36747, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:32', '2023-09-14 17:21:33', 0, 0, '', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36748, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"1.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:33', '2023-09-14 17:21:33', 0, 0, '', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36749, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:33', '2023-09-14 17:21:33', 0, 0, '', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36750, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:33', '2023-09-14 17:21:33', 0, 0, '', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36751, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:21:41', '2023-09-14 17:21:41', 0, 0, '', NULL, '2023-09-14 17:21:41', NULL, '2023-09-14 17:21:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36752, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36753, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36754, '', 1, 2, 'yshop-server', 'POST', '/admin-api/infra/file/upload', '{\"query\":{\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36755, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"2.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36756, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"3.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36757, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material/create', '{\"query\":{},\"body\":\"{\\\"type\\\":\\\"1\\\",\\\"groupId\\\":null,\\\"name\\\":\\\"4.jpg\\\",\\\"url\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36758, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:44', '2023-09-14 17:22:44', 0, 0, '', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36759, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:45', '2023-09-14 17:22:45', 0, 0, '', NULL, '2023-09-14 17:22:45', NULL, '2023-09-14 17:22:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36760, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:45', '2023-09-14 17:22:45', 0, 0, '', NULL, '2023-09-14 17:22:45', NULL, '2023-09-14 17:22:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36761, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:45', '2023-09-14 17:22:45', 0, 0, '', NULL, '2023-09-14 17:22:45', NULL, '2023-09-14 17:22:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36762, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:52', '2023-09-14 17:22:52', 0, 0, '', NULL, '2023-09-14 17:22:52', NULL, '2023-09-14 17:22:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36763, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/17', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:52', '2023-09-14 17:22:52', 0, 0, '', NULL, '2023-09-14 17:22:52', NULL, '2023-09-14 17:22:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36764, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:52', '2023-09-14 17:22:52', 0, 0, '', NULL, '2023-09-14 17:22:52', NULL, '2023-09-14 17:22:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36765, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:22:52', '2023-09-14 17:22:52', 0, 0, '', NULL, '2023-09-14 17:22:52', NULL, '2023-09-14 17:22:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36766, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:08', '2023-09-14 17:23:08', 0, 0, '', NULL, '2023-09-14 17:23:08', NULL, '2023-09-14 17:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36767, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:14', '2023-09-14 17:23:14', 0, 0, '', NULL, '2023-09-14 17:23:14', NULL, '2023-09-14 17:23:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36768, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:14', '2023-09-14 17:23:14', 0, 0, '', NULL, '2023-09-14 17:23:14', NULL, '2023-09-14 17:23:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36769, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:26', '2023-09-14 17:23:26', 0, 0, '', NULL, '2023-09-14 17:23:26', NULL, '2023-09-14 17:23:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36770, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:26', '2023-09-14 17:23:26', 0, 0, '', NULL, '2023-09-14 17:23:26', NULL, '2023-09-14 17:23:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36771, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:41', '2023-09-14 17:23:41', 0, 0, '', NULL, '2023-09-14 17:23:41', NULL, '2023-09-14 17:23:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36772, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:23:58', '2023-09-14 17:23:58', 0, 0, '', NULL, '2023-09-14 17:23:58', NULL, '2023-09-14 17:23:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36773, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":17,\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\\\",\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"shopId\\\":2,\\\"keyword\\\":\\\"小蛋糕\\\",\\\"price\\\":0.01,\\\"postage\\\":0,\\\"sort\\\":0,\\\"sales\\\":41,\\\"stock\\\":58,\\\"description\\\":\\\"

小蛋糕

\\\",\\\"cost\\\":10,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":null,\\\"brokerage\\\":0,\\\"price\\\":0.01,\\\"cost\\\":10,\\\"stock\\\":99,\\\"integral\\\":0,\\\"pic\\\":[],\\\"value1\\\":\\\"规格\\\",\\\"value2\\\":null,\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":100,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"10ml\\\",\\\"detail\\\":{\\\"体积\\\":\\\"10ml\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\\\",\\\"price\\\":\\\"0.01\\\",\\\"cost\\\":\\\"1\\\",\\\"ot_price\\\":\\\"1\\\",\\\"stock\\\":\\\"199\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"30ml\\\",\\\"detail\\\":{\\\"体积\\\":\\\"30ml\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\\\",\\\"price\\\":\\\"0.02\\\",\\\"cost\\\":\\\"1\\\",\\\"ot_price\\\":\\\"1\\\",\\\"stock\\\":\\\"300\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\\\"],\\\"store_name\\\":\\\"小蛋糕\\\",\\\"store_info\\\":\\\"小蛋糕商品\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":100,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":1,\\\"is_postage\\\":0,\\\"give_integral\\\":10,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":38,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"体积\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"action\\\"}],\\\"selectRule\\\":\\\"饮料\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:44', '2023-09-14 17:24:44', 0, 0, '', NULL, '2023-09-14 17:24:44', NULL, '2023-09-14 17:24:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36774, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:44', '2023-09-14 17:24:44', 0, 0, '', NULL, '2023-09-14 17:24:44', NULL, '2023-09-14 17:24:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36775, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:50', '2023-09-14 17:24:50', 0, 0, '', NULL, '2023-09-14 17:24:50', NULL, '2023-09-14 17:24:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36776, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/16', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:50', '2023-09-14 17:24:50', 0, 0, '', NULL, '2023-09-14 17:24:50', NULL, '2023-09-14 17:24:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36777, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:50', '2023-09-14 17:24:50', 0, 0, '', NULL, '2023-09-14 17:24:50', NULL, '2023-09-14 17:24:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36778, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:24:50', '2023-09-14 17:24:50', 0, 0, '', NULL, '2023-09-14 17:24:50', NULL, '2023-09-14 17:24:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36779, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:08', '2023-09-14 17:25:08', 0, 0, '', NULL, '2023-09-14 17:25:08', NULL, '2023-09-14 17:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36780, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:22', '2023-09-14 17:25:22', 0, 0, '', NULL, '2023-09-14 17:25:22', NULL, '2023-09-14 17:25:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36781, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:33', '2023-09-14 17:25:33', 0, 0, '', NULL, '2023-09-14 17:25:33', NULL, '2023-09-14 17:25:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36782, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:33', '2023-09-14 17:25:33', 0, 0, '', NULL, '2023-09-14 17:25:33', NULL, '2023-09-14 17:25:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36783, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:41', '2023-09-14 17:25:41', 0, 0, '', NULL, '2023-09-14 17:25:41', NULL, '2023-09-14 17:25:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36784, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:57', '2023-09-14 17:25:57', 0, 0, '', NULL, '2023-09-14 17:25:57', NULL, '2023-09-14 17:25:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36785, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:25:58', '2023-09-14 17:25:58', 0, 0, '', NULL, '2023-09-14 17:25:58', NULL, '2023-09-14 17:25:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36786, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"}]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:26:18', '2023-09-14 17:26:19', 0, 0, '', NULL, '2023-09-14 17:26:19', NULL, '2023-09-14 17:26:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36787, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"}]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:26:19', '2023-09-14 17:26:19', 0, 0, '', NULL, '2023-09-14 17:26:19', NULL, '2023-09-14 17:26:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36788, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:08', '2023-09-14 17:27:08', 0, 0, '', NULL, '2023-09-14 17:27:08', NULL, '2023-09-14 17:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36789, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":16,\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\",\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"shopId\\\":2,\\\"keyword\\\":\\\"土豆炒肉\\\",\\\"price\\\":94,\\\"postage\\\":10,\\\"sort\\\":0,\\\"sales\\\":14,\\\"stock\\\":555,\\\"description\\\":\\\"

多规格

\\\",\\\"cost\\\":200,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":\\\"\\\",\\\"brokerage\\\":0,\\\"price\\\":0,\\\"cost\\\":0,\\\"stock\\\":0,\\\"integral\\\":0,\\\"pic\\\":\\\"\\\",\\\"value1\\\":\\\"\\\",\\\"value2\\\":\\\"\\\",\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":0,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"微辣\\\",\\\"value2\\\":\\\"1人\\\",\\\"detail\\\":{\\\"口味\\\":\\\"微辣\\\",\\\"份量\\\":\\\"1人\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\",\\\"price\\\":\\\"0.03\\\",\\\"cost\\\":\\\"1\\\",\\\"ot_price\\\":\\\"1\\\",\\\"stock\\\":\\\"996\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"微辣\\\",\\\"value2\\\":\\\"3人\\\",\\\"detail\\\":{\\\"口味\\\":\\\"微辣\\\",\\\"份量\\\":\\\"3人\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\",\\\"price\\\":\\\"0.02\\\",\\\"cost\\\":\\\"1\\\",\\\"ot_price\\\":\\\"2\\\",\\\"stock\\\":\\\"994\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"特辣\\\",\\\"value2\\\":\\\"1人\\\",\\\"detail\\\":{\\\"口味\\\":\\\"特辣\\\",\\\"份量\\\":\\\"1人\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\",\\\"price\\\":\\\"0.04\\\",\\\"cost\\\":\\\"3\\\",\\\"ot_price\\\":\\\"4\\\",\\\"stock\\\":\\\"666\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"特辣\\\",\\\"value2\\\":\\\"3人\\\",\\\"detail\\\":{\\\"口味\\\":\\\"特辣\\\",\\\"份量\\\":\\\"3人\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\",\\\"price\\\":\\\"0.01\\\",\\\"cost\\\":\\\"4\\\",\\\"ot_price\\\":\\\"6\\\",\\\"stock\\\":\\\"777\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\\\"],\\\"store_name\\\":\\\"土豆炒肉\\\",\\\"store_info\\\":\\\"多规格\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":4,\\\"ot_price\\\":200,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"口味\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"份量\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"value2\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"action\\\"}],\\\"selectRule\\\":\\\"主食\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:24', '2023-09-14 17:27:24', 0, 0, '', NULL, '2023-09-14 17:27:24', NULL, '2023-09-14 17:27:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36790, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:24', '2023-09-14 17:27:24', 0, 0, '', NULL, '2023-09-14 17:27:24', NULL, '2023-09-14 17:27:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36791, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:26', '2023-09-14 17:27:26', 0, 0, '', NULL, '2023-09-14 17:27:26', NULL, '2023-09-14 17:27:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36792, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/15', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:26', '2023-09-14 17:27:26', 0, 0, '', NULL, '2023-09-14 17:27:26', NULL, '2023-09-14 17:27:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36793, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:26', '2023-09-14 17:27:26', 0, 0, '', NULL, '2023-09-14 17:27:26', NULL, '2023-09-14 17:27:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36794, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:26', '2023-09-14 17:27:26', 0, 0, '', NULL, '2023-09-14 17:27:26', NULL, '2023-09-14 17:27:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36795, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{\"shopId\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:38', '2023-09-14 17:27:38', 0, 0, '', NULL, '2023-09-14 17:27:38', NULL, '2023-09-14 17:27:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36796, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:41', '2023-09-14 17:27:41', 0, 0, '', NULL, '2023-09-14 17:27:41', NULL, '2023-09-14 17:27:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36797, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:46', '2023-09-14 17:27:46', 0, 0, '', NULL, '2023-09-14 17:27:46', NULL, '2023-09-14 17:27:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36798, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:46', '2023-09-14 17:27:46', 0, 0, '', NULL, '2023-09-14 17:27:46', NULL, '2023-09-14 17:27:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36799, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:55', '2023-09-14 17:27:55', 0, 0, '', NULL, '2023-09-14 17:27:55', NULL, '2023-09-14 17:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36800, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:27:55', '2023-09-14 17:27:55', 0, 0, '', NULL, '2023-09-14 17:27:55', NULL, '2023-09-14 17:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36801, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '{\"query\":{},\"body\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:28:05', '2023-09-14 17:28:05', 0, 0, '', NULL, '2023-09-14 17:28:05', NULL, '2023-09-14 17:28:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36802, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":15,\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\\\",\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"shopId\\\":2,\\\"keyword\\\":\\\"饮料\\\",\\\"price\\\":99,\\\"postage\\\":0,\\\"sort\\\":0,\\\"sales\\\":17,\\\"stock\\\":82,\\\"description\\\":\\\"

单规格商品

\\\",\\\"cost\\\":299,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":null,\\\"brokerage\\\":0,\\\"price\\\":99,\\\"cost\\\":299,\\\"stock\\\":99,\\\"integral\\\":0,\\\"pic\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"value1\\\":\\\"规格\\\",\\\"value2\\\":null,\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":399,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"10ml\\\",\\\"detail\\\":{\\\"体积\\\":\\\"10ml\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\\\",\\\"price\\\":\\\"0.01\\\",\\\"cost\\\":\\\"1\\\",\\\"ot_price\\\":\\\"2\\\",\\\"stock\\\":\\\"996\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"30ml\\\",\\\"detail\\\":{\\\"体积\\\":\\\"30ml\\\"},\\\"sku\\\":\\\"\\\",\\\"pic\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\\\",\\\"price\\\":\\\"0.05\\\",\\\"cost\\\":\\\"3\\\",\\\"ot_price\\\":\\\"6\\\",\\\"stock\\\":\\\"997\\\",\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\\\"],\\\"store_name\\\":\\\"饮料\\\",\\\"store_info\\\":\\\"单规格商品\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":1,\\\"ot_price\\\":399,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"体积\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"action\\\"}],\\\"selectRule\\\":\\\"饮料\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:28:33', '2023-09-14 17:28:33', 0, 0, '', NULL, '2023-09-14 17:28:33', NULL, '2023-09-14 17:28:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36803, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:28:33', '2023-09-14 17:28:33', 0, 0, '', NULL, '2023-09-14 17:28:33', NULL, '2023-09-14 17:28:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36804, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:40', '2023-09-14 17:28:40', 0, 0, '', NULL, '2023-09-14 17:28:40', NULL, '2023-09-14 17:28:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36805, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/59 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:41', '2023-09-14 17:28:41', 0, 0, '', NULL, '2023-09-14 17:28:41', NULL, '2023-09-14 17:28:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36806, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:44', '2023-09-14 17:28:44', 0, 0, '', NULL, '2023-09-14 17:28:44', NULL, '2023-09-14 17:28:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36807, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/63 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:44', '2023-09-14 17:28:44', 0, 0, '', NULL, '2023-09-14 17:28:44', NULL, '2023-09-14 17:28:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36808, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/63 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:44', '2023-09-14 17:28:44', 0, 0, '', NULL, '2023-09-14 17:28:44', NULL, '2023-09-14 17:28:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36809, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1Bah2w3N86o13Fx93w320Q8W3Bah27\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:44', '2023-09-14 17:28:45', 0, 0, '', NULL, '2023-09-14 17:28:45', NULL, '2023-09-14 17:28:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36810, '', 13, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:47', '2023-09-14 17:28:47', 0, 0, '', NULL, '2023-09-14 17:28:47', NULL, '2023-09-14 17:28:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36811, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:48', '2023-09-14 17:28:48', 0, 0, '', NULL, '2023-09-14 17:28:48', NULL, '2023-09-14 17:28:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36812, '', 13, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 17:28:48', '2023-09-14 17:28:48', 0, 0, '', NULL, '2023-09-14 17:28:48', NULL, '2023-09-14 17:28:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36813, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/65 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:48', '2023-09-14 17:28:48', 0, 0, '', NULL, '2023-09-14 17:28:48', NULL, '2023-09-14 17:28:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36814, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/65 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:48', '2023-09-14 17:28:48', 0, 0, '', NULL, '2023-09-14 17:28:48', NULL, '2023-09-14 17:28:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36815, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/65 desktopapp miniprogram port/10261 token/33bafc6603cdec7c2c8873f7fb139d5c runtime/2', '2023-09-14 17:28:48', '2023-09-14 17:28:48', 0, 0, '', NULL, '2023-09-14 17:28:48', NULL, '2023-09-14 17:28:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36816, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:29:08', '2023-09-14 17:29:08', 0, 0, '', NULL, '2023-09-14 17:29:08', NULL, '2023-09-14 17:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36817, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:29:41', '2023-09-14 17:29:41', 0, 0, '', NULL, '2023-09-14 17:29:41', NULL, '2023-09-14 17:29:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36818, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:29:58', '2023-09-14 17:29:58', 0, 0, '', NULL, '2023-09-14 17:29:58', NULL, '2023-09-14 17:29:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36819, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/get', '{\"query\":{\"id\":\"3\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:11', '2023-09-14 17:30:11', 0, 0, '', NULL, '2023-09-14 17:30:11', NULL, '2023-09-14 17:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36820, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:11', '2023-09-14 17:30:11', 0, 0, '', NULL, '2023-09-14 17:30:11', NULL, '2023-09-14 17:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36821, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:11', '2023-09-14 17:30:11', 0, 0, '', NULL, '2023-09-14 17:30:11', NULL, '2023-09-14 17:30:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36822, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:17', '2023-09-14 17:30:17', 0, 0, '', NULL, '2023-09-14 17:30:17', NULL, '2023-09-14 17:30:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36823, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:17', '2023-09-14 17:30:17', 0, 0, '', NULL, '2023-09-14 17:30:17', NULL, '2023-09-14 17:30:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36824, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:24', '2023-09-14 17:30:24', 0, 0, '', NULL, '2023-09-14 17:30:24', NULL, '2023-09-14 17:30:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36825, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:24', '2023-09-14 17:30:24', 0, 0, '', NULL, '2023-09-14 17:30:24', NULL, '2023-09-14 17:30:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36826, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/store/shop/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"yshop\\\",\\\"mobile\\\":\\\"18000000000\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"images\\\":[\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\"],\\\"address\\\":\\\"67号\\\",\\\"addressMap\\\":\\\"北京市东城区\\\",\\\"lng\\\":\\\"116.40403593222032\\\",\\\"lat\\\":\\\"39.91643892263258\\\",\\\"distance\\\":0,\\\"minPrice\\\":1,\\\"deliveryPrice\\\":2,\\\"notice\\\":\\\"2222\\\",\\\"status\\\":1,\\\"adminId\\\":[100],\\\"uniprintId\\\":2,\\\"startTime\\\":1691300102000,\\\"endTime\\\":1691307302000,\\\"id\\\":3,\\\"createTime\\\":1691298893000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:31', '2023-09-14 17:30:31', 0, 0, '', NULL, '2023-09-14 17:30:31', NULL, '2023-09-14 17:30:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36827, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:31', '2023-09-14 17:30:31', 0, 0, '', NULL, '2023-09-14 17:30:31', NULL, '2023-09-14 17:30:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36828, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:34', '2023-09-14 17:30:34', 0, 0, '', NULL, '2023-09-14 17:30:34', NULL, '2023-09-14 17:30:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36829, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:34', '2023-09-14 17:30:34', 0, 0, '', NULL, '2023-09-14 17:30:34', NULL, '2023-09-14 17:30:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36830, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:34', '2023-09-14 17:30:34', 0, 0, '', NULL, '2023-09-14 17:30:34', NULL, '2023-09-14 17:30:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36831, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:39', '2023-09-14 17:30:39', 0, 0, '', NULL, '2023-09-14 17:30:39', NULL, '2023-09-14 17:30:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36832, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:39', '2023-09-14 17:30:39', 0, 0, '', NULL, '2023-09-14 17:30:39', NULL, '2023-09-14 17:30:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36833, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:54', '2023-09-14 17:30:54', 0, 0, '', NULL, '2023-09-14 17:30:54', NULL, '2023-09-14 17:30:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36834, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:54', '2023-09-14 17:30:54', 0, 0, '', NULL, '2023-09-14 17:30:54', NULL, '2023-09-14 17:30:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36835, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/store/shop/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"意向餐饮店\\\",\\\"mobile\\\":\\\"18000000000\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"images\\\":[\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\"],\\\"address\\\":\\\"源汇区人民东路\\\",\\\"addressMap\\\":\\\"河南省漯河市源汇区团结路50号-20\\\",\\\"lng\\\":\\\"114.04877877439665\\\",\\\"lat\\\":\\\"33.57093831826829\\\",\\\"distance\\\":10,\\\"minPrice\\\":10,\\\"deliveryPrice\\\":20,\\\"notice\\\":\\\"新店开张\\\",\\\"status\\\":1,\\\"adminId\\\":[126],\\\"uniprintId\\\":1,\\\"startTime\\\":1692406800000,\\\"endTime\\\":1692457200000,\\\"id\\\":2,\\\"createTime\\\":1691293723000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:59', '2023-09-14 17:30:59', 0, 0, '', NULL, '2023-09-14 17:30:59', NULL, '2023-09-14 17:30:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36836, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:30:59', '2023-09-14 17:30:59', 0, 0, '', NULL, '2023-09-14 17:30:59', NULL, '2023-09-14 17:30:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36837, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:31:08', '2023-09-14 17:31:08', 0, 0, '', NULL, '2023-09-14 17:31:08', NULL, '2023-09-14 17:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36838, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:31:42', '2023-09-14 17:31:42', 0, 0, '', NULL, '2023-09-14 17:31:42', NULL, '2023-09-14 17:31:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36839, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:33:08', '2023-09-14 17:33:08', 0, 0, '', NULL, '2023-09-14 17:33:08', NULL, '2023-09-14 17:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36840, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/profile/get', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:33:20', '2023-09-14 17:33:20', 0, 0, '', NULL, '2023-09-14 17:33:20', NULL, '2023-09-14 17:33:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36841, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/profile/get', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:33:20', '2023-09-14 17:33:20', 0, 0, '', NULL, '2023-09-14 17:33:20', NULL, '2023-09-14 17:33:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36842, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/profile/get', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:33:20', '2023-09-14 17:33:20', 0, 0, '', NULL, '2023-09-14 17:33:20', NULL, '2023-09-14 17:33:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36843, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:33:41', '2023-09-14 17:33:41', 0, 0, '', NULL, '2023-09-14 17:33:41', NULL, '2023-09-14 17:33:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36844, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/system/user/profile/update-password', '{\"query\":{},\"body\":\"{\\\"oldPassword\\\":\\\"admin123\\\",\\\"newPassword\\\":\\\"xxyy8638004\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:34:56', '2023-09-14 17:34:56', 0, 0, '', NULL, '2023-09-14 17:34:56', NULL, '2023-09-14 17:34:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36845, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:08', '2023-09-14 17:35:08', 0, 0, '', NULL, '2023-09-14 17:35:08', NULL, '2023-09-14 17:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36846, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/auth/logout', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:31', '2023-09-14 17:35:32', 0, 0, '', NULL, '2023-09-14 17:35:32', NULL, '2023-09-14 17:35:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36847, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:32', '2023-09-14 17:35:32', 0, 0, '', NULL, '2023-09-14 17:35:32', NULL, '2023-09-14 17:35:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36848, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:41', '2023-09-14 17:35:41', 0, 0, '', NULL, '2023-09-14 17:35:41', NULL, '2023-09-14 17:35:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36849, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:44', '2023-09-14 17:35:44', 0, 0, '', NULL, '2023-09-14 17:35:44', NULL, '2023-09-14 17:35:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36850, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"Iaj1YzalzhIwk1LEljJ+Wl3Nb363RVjXGzs7le1ph+Y=\\\",\\\"token\\\":\\\"af842f74388f45ea9cc58f95cfe128bd\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:53', '2023-09-14 17:35:53', 0, 0, '', NULL, '2023-09-14 17:35:53', NULL, '2023-09-14 17:35:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36851, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"xxyy8638004\\\",\\\"captchaVerification\\\":\\\"rKMSUmNpi7PR43khTPh4gmVUnhBR0SOp6KpFUsfCxKlxfcdrjnyNBBjRaSD2Tli5iRaxQwfqHJkds9RvrU0tEA==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:54', '2023-09-14 17:35:54', 0, 0, '', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36852, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:54', '2023-09-14 17:35:54', 0, 0, '', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36853, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:54', '2023-09-14 17:35:54', 0, 0, '', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36854, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/auth/list-menus', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:54', '2023-09-14 17:35:54', 0, 0, '', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36855, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:54', '2023-09-14 17:35:54', 0, 0, '', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36856, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:55', '2023-09-14 17:35:55', 0, 0, '', NULL, '2023-09-14 17:35:55', NULL, '2023-09-14 17:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36857, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:55', '2023-09-14 17:35:55', 0, 0, '', NULL, '2023-09-14 17:35:55', NULL, '2023-09-14 17:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36858, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:35:55', '2023-09-14 17:35:55', 0, 0, '', NULL, '2023-09-14 17:35:55', NULL, '2023-09-14 17:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36859, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:08', '2023-09-14 17:37:08', 0, 0, '', NULL, '2023-09-14 17:37:08', NULL, '2023-09-14 17:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36860, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:31', '2023-09-14 17:37:31', 0, 0, '', NULL, '2023-09-14 17:37:31', NULL, '2023-09-14 17:37:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36861, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:32', '2023-09-14 17:37:32', 0, 0, '', NULL, '2023-09-14 17:37:32', NULL, '2023-09-14 17:37:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36862, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:34', '2023-09-14 17:37:34', 0, 0, '', NULL, '2023-09-14 17:37:34', NULL, '2023-09-14 17:37:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36863, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:38', '2023-09-14 17:37:38', 0, 0, '', NULL, '2023-09-14 17:37:38', NULL, '2023-09-14 17:37:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36864, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user-address/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:40', '2023-09-14 17:37:40', 0, 0, '', NULL, '2023-09-14 17:37:40', NULL, '2023-09-14 17:37:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36865, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:37:55', '2023-09-14 17:37:55', 0, 0, '', NULL, '2023-09-14 17:37:55', NULL, '2023-09-14 17:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36866, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:39:08', '2023-09-14 17:39:08', 0, 0, '', NULL, '2023-09-14 17:39:08', NULL, '2023-09-14 17:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36867, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:39:55', '2023-09-14 17:39:55', 0, 0, '', NULL, '2023-09-14 17:39:55', NULL, '2023-09-14 17:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36868, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:41:08', '2023-09-14 17:41:08', 0, 0, '', NULL, '2023-09-14 17:41:08', NULL, '2023-09-14 17:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36869, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:41:55', '2023-09-14 17:41:55', 0, 0, '', NULL, '2023-09-14 17:41:55', NULL, '2023-09-14 17:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36870, '', 1, 2, 'yshop-server', 'GET', '/admin-api/coupon/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:42:48', '2023-09-14 17:42:48', 0, 0, '', NULL, '2023-09-14 17:42:48', NULL, '2023-09-14 17:42:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36871, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:42:56', '2023-09-14 17:42:56', 0, 0, '', NULL, '2023-09-14 17:42:56', NULL, '2023-09-14 17:42:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36872, '', 1, 2, 'yshop-server', 'GET', '/admin-api/coupon/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:42:56', '2023-09-14 17:42:56', 0, 0, '', NULL, '2023-09-14 17:42:56', NULL, '2023-09-14 17:42:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36873, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:06', '2023-09-14 17:43:06', 0, 0, '', NULL, '2023-09-14 17:43:06', NULL, '2023-09-14 17:43:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36874, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:06', '2023-09-14 17:43:06', 0, 0, '', NULL, '2023-09-14 17:43:06', NULL, '2023-09-14 17:43:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36875, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36876, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36877, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36878, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36879, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36880, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36881, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36882, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36883, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36884, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:07', '2023-09-14 17:43:07', 0, 0, '', NULL, '2023-09-14 17:43:07', NULL, '2023-09-14 17:43:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36885, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:08', '2023-09-14 17:43:08', 0, 0, '', NULL, '2023-09-14 17:43:08', NULL, '2023-09-14 17:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36886, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:43:55', '2023-09-14 17:43:55', 0, 0, '', NULL, '2023-09-14 17:43:55', NULL, '2023-09-14 17:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36887, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/coupon/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"0,1\\\",\\\"value\\\":\\\"0.02\\\",\\\"startTime\\\":1691510400000,\\\"endTime\\\":1725033600000,\\\"weigh\\\":0,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"88888\\\",\\\"receive\\\":1,\\\"distribute\\\":100,\\\"score\\\":0,\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\",\\\"limit\\\":1,\\\"id\\\":2,\\\"createTime\\\":1691551029000,\\\"endtIme\\\":1756915200000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:44:13', '2023-09-14 17:44:13', 0, 500, '系统异常', NULL, '2023-09-14 17:44:13', NULL, '2023-09-14 17:44:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36888, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/coupon/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"0,1\\\",\\\"value\\\":\\\"0.02\\\",\\\"startTime\\\":1691510400000,\\\"endTime\\\":1725033600000,\\\"weigh\\\":0,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"88888\\\",\\\"receive\\\":1,\\\"distribute\\\":100,\\\"score\\\":0,\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\",\\\"limit\\\":1,\\\"id\\\":2,\\\"createTime\\\":1691551029000,\\\"endtIme\\\":1756915200000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:44:47', '2023-09-14 17:44:47', 0, 500, '系统异常', NULL, '2023-09-14 17:44:47', NULL, '2023-09-14 17:44:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36889, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:45:08', '2023-09-14 17:45:08', 0, 0, '', NULL, '2023-09-14 17:45:08', NULL, '2023-09-14 17:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36890, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:45:54', '2023-09-14 17:45:54', 0, 0, '', NULL, '2023-09-14 17:45:54', NULL, '2023-09-14 17:45:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36891, '', 1, 2, 'yshop-server', 'GET', '/admin-api/coupon/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:45:54', '2023-09-14 17:45:54', 0, 0, '', NULL, '2023-09-14 17:45:54', NULL, '2023-09-14 17:45:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36892, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:45:55', '2023-09-14 17:45:55', 0, 0, '', NULL, '2023-09-14 17:45:55', NULL, '2023-09-14 17:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36893, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:45:59', '2023-09-14 17:45:59', 0, 0, '', NULL, '2023-09-14 17:45:59', NULL, '2023-09-14 17:45:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36894, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:46:00', '2023-09-14 17:46:00', 0, 0, '', NULL, '2023-09-14 17:46:00', NULL, '2023-09-14 17:46:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36895, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/coupon/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"0.1\\\",\\\"value\\\":\\\"0.02\\\",\\\"startTime\\\":1691510400000,\\\"endTime\\\":1725033600000,\\\"weigh\\\":0,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"666\\\",\\\"receive\\\":1,\\\"distribute\\\":100,\\\"score\\\":0,\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\",\\\"limit\\\":1,\\\"id\\\":2,\\\"createTime\\\":1691551029000,\\\"endtIme\\\":1725379200000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:46:19', '2023-09-14 17:46:19', 0, 0, '', NULL, '2023-09-14 17:46:19', NULL, '2023-09-14 17:46:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36896, '', 1, 2, 'yshop-server', 'GET', '/admin-api/coupon/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:46:20', '2023-09-14 17:46:20', 0, 0, '', NULL, '2023-09-14 17:46:20', NULL, '2023-09-14 17:46:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36897, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:01:08', '2023-09-14 18:01:08', 0, 0, '', NULL, '2023-09-14 18:01:08', NULL, '2023-09-14 18:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36898, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:01:55', '2023-09-14 18:01:55', 0, 0, '', NULL, '2023-09-14 18:01:55', NULL, '2023-09-14 18:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36899, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 18:02:42', '2023-09-14 18:02:42', 0, 0, '', NULL, '2023-09-14 18:02:42', NULL, '2023-09-14 18:02:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36900, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/4 desktopapp miniprogram port/58409 token/5758c53d87fbcf8b15b3077402e91d58 runtime/2', '2023-09-14 18:02:42', '2023-09-14 18:02:42', 0, 0, '', NULL, '2023-09-14 18:02:42', NULL, '2023-09-14 18:02:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36901, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1sWZml2F2s3c4WN2ml2d3Rmg1sWZmn\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 18:02:42', '2023-09-14 18:02:43', 0, 0, '', NULL, '2023-09-14 18:02:43', NULL, '2023-09-14 18:02:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36902, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:03:08', '2023-09-14 18:03:08', 0, 0, '', NULL, '2023-09-14 18:03:08', NULL, '2023-09-14 18:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36903, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:03:55', '2023-09-14 18:03:55', 0, 0, '', NULL, '2023-09-14 18:03:55', NULL, '2023-09-14 18:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36904, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:05:05', '2023-09-14 18:05:05', 0, 0, '', NULL, '2023-09-14 18:05:05', NULL, '2023-09-14 18:05:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36905, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:05:55', '2023-09-14 18:05:55', 0, 0, '', NULL, '2023-09-14 18:05:55', NULL, '2023-09-14 18:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36906, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:07:05', '2023-09-14 18:07:05', 0, 0, '', NULL, '2023-09-14 18:07:05', NULL, '2023-09-14 18:07:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36907, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:07:55', '2023-09-14 18:07:55', 0, 0, '', NULL, '2023-09-14 18:07:55', NULL, '2023-09-14 18:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36908, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:09:05', '2023-09-14 18:09:05', 0, 0, '', NULL, '2023-09-14 18:09:05', NULL, '2023-09-14 18:09:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36909, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:09:55', '2023-09-14 18:09:55', 0, 0, '', NULL, '2023-09-14 18:09:55', NULL, '2023-09-14 18:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36910, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:11:05', '2023-09-14 18:11:05', 0, 0, '', NULL, '2023-09-14 18:11:05', NULL, '2023-09-14 18:11:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36911, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:11:55', '2023-09-14 18:11:55', 0, 0, '', NULL, '2023-09-14 18:11:55', NULL, '2023-09-14 18:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36912, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:13:05', '2023-09-14 18:13:05', 0, 0, '', NULL, '2023-09-14 18:13:05', NULL, '2023-09-14 18:13:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36913, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:13:55', '2023-09-14 18:13:55', 0, 0, '', NULL, '2023-09-14 18:13:55', NULL, '2023-09-14 18:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36914, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:15:05', '2023-09-14 18:15:05', 0, 0, '', NULL, '2023-09-14 18:15:05', NULL, '2023-09-14 18:15:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36915, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:15:55', '2023-09-14 18:15:55', 0, 0, '', NULL, '2023-09-14 18:15:55', NULL, '2023-09-14 18:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36916, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:17:08', '2023-09-14 18:17:08', 0, 0, '', NULL, '2023-09-14 18:17:08', NULL, '2023-09-14 18:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36917, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:17:55', '2023-09-14 18:17:55', 0, 0, '', NULL, '2023-09-14 18:17:55', NULL, '2023-09-14 18:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36918, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:19:08', '2023-09-14 18:19:08', 0, 0, '', NULL, '2023-09-14 18:19:08', NULL, '2023-09-14 18:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36919, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:19:55', '2023-09-14 18:19:55', 0, 0, '', NULL, '2023-09-14 18:19:55', NULL, '2023-09-14 18:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36920, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:21:08', '2023-09-14 18:21:08', 0, 0, '', NULL, '2023-09-14 18:21:08', NULL, '2023-09-14 18:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36921, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:21:55', '2023-09-14 18:21:55', 0, 0, '', NULL, '2023-09-14 18:21:55', NULL, '2023-09-14 18:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36922, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:23:05', '2023-09-14 18:23:05', 0, 0, '', NULL, '2023-09-14 18:23:05', NULL, '2023-09-14 18:23:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36923, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 18:23:24', '2023-09-14 18:23:24', 0, 0, '', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36924, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c15LSGa14yF2G0lXsJa1w4cqY35LSG4\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-14 18:23:24', '2023-09-14 18:23:24', 0, 0, '', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36925, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/12 desktopapp miniprogram port/58409 token/5758c53d87fbcf8b15b3077402e91d58 runtime/2', '2023-09-14 18:23:24', '2023-09-14 18:23:24', 0, 0, '', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36926, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:23:55', '2023-09-14 18:23:55', 0, 0, '', NULL, '2023-09-14 18:23:55', NULL, '2023-09-14 18:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36927, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:25:05', '2023-09-14 18:25:05', 0, 0, '', NULL, '2023-09-14 18:25:05', NULL, '2023-09-14 18:25:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36928, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:25:55', '2023-09-14 18:25:55', 0, 0, '', NULL, '2023-09-14 18:25:55', NULL, '2023-09-14 18:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36929, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:27:05', '2023-09-14 18:27:05', 0, 0, '', NULL, '2023-09-14 18:27:05', NULL, '2023-09-14 18:27:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36930, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:27:55', '2023-09-14 18:27:55', 0, 0, '', NULL, '2023-09-14 18:27:55', NULL, '2023-09-14 18:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36931, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:29:08', '2023-09-14 18:29:08', 0, 0, '', NULL, '2023-09-14 18:29:08', NULL, '2023-09-14 18:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36932, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:29:55', '2023-09-14 18:29:55', 0, 0, '', NULL, '2023-09-14 18:29:55', NULL, '2023-09-14 18:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36933, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:31:08', '2023-09-14 18:31:08', 0, 0, '', NULL, '2023-09-14 18:31:08', NULL, '2023-09-14 18:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36934, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:31:55', '2023-09-14 18:31:55', 0, 0, '', NULL, '2023-09-14 18:31:55', NULL, '2023-09-14 18:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36935, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:33:08', '2023-09-14 18:33:08', 0, 0, '', NULL, '2023-09-14 18:33:08', NULL, '2023-09-14 18:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36936, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:33:55', '2023-09-14 18:33:55', 0, 0, '', NULL, '2023-09-14 18:33:55', NULL, '2023-09-14 18:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36937, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:35:08', '2023-09-14 18:35:08', 0, 0, '', NULL, '2023-09-14 18:35:08', NULL, '2023-09-14 18:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36938, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:35:55', '2023-09-14 18:35:55', 0, 0, '', NULL, '2023-09-14 18:35:55', NULL, '2023-09-14 18:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36939, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:37:08', '2023-09-14 18:37:08', 0, 0, '', NULL, '2023-09-14 18:37:08', NULL, '2023-09-14 18:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36940, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:37:55', '2023-09-14 18:37:55', 0, 0, '', NULL, '2023-09-14 18:37:55', NULL, '2023-09-14 18:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36941, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:39:08', '2023-09-14 18:39:08', 0, 0, '', NULL, '2023-09-14 18:39:08', NULL, '2023-09-14 18:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36942, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:39:55', '2023-09-14 18:39:55', 0, 0, '', NULL, '2023-09-14 18:39:55', NULL, '2023-09-14 18:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36943, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:41:08', '2023-09-14 18:41:08', 0, 0, '', NULL, '2023-09-14 18:41:08', NULL, '2023-09-14 18:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36944, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:41:55', '2023-09-14 18:41:55', 0, 0, '', NULL, '2023-09-14 18:41:55', NULL, '2023-09-14 18:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36945, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:43:08', '2023-09-14 18:43:08', 0, 0, '', NULL, '2023-09-14 18:43:08', NULL, '2023-09-14 18:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36946, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:43:55', '2023-09-14 18:43:55', 0, 0, '', NULL, '2023-09-14 18:43:55', NULL, '2023-09-14 18:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36947, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:45:08', '2023-09-14 18:45:08', 0, 0, '', NULL, '2023-09-14 18:45:08', NULL, '2023-09-14 18:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36948, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:45:55', '2023-09-14 18:45:55', 0, 0, '', NULL, '2023-09-14 18:45:55', NULL, '2023-09-14 18:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36949, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:47:08', '2023-09-14 18:47:08', 0, 0, '', NULL, '2023-09-14 18:47:08', NULL, '2023-09-14 18:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36950, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:47:55', '2023-09-14 18:47:55', 0, 0, '', NULL, '2023-09-14 18:47:55', NULL, '2023-09-14 18:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36951, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:49:08', '2023-09-14 18:49:08', 0, 0, '', NULL, '2023-09-14 18:49:08', NULL, '2023-09-14 18:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36952, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:49:55', '2023-09-14 18:49:55', 0, 0, '', NULL, '2023-09-14 18:49:55', NULL, '2023-09-14 18:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36953, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:51:08', '2023-09-14 18:51:08', 0, 0, '', NULL, '2023-09-14 18:51:08', NULL, '2023-09-14 18:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36954, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:51:55', '2023-09-14 18:51:55', 0, 0, '', NULL, '2023-09-14 18:51:55', NULL, '2023-09-14 18:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36955, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:53:08', '2023-09-14 18:53:08', 0, 0, '', NULL, '2023-09-14 18:53:08', NULL, '2023-09-14 18:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36956, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:53:55', '2023-09-14 18:53:55', 0, 0, '', NULL, '2023-09-14 18:53:55', NULL, '2023-09-14 18:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36957, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:55:08', '2023-09-14 18:55:08', 0, 0, '', NULL, '2023-09-14 18:55:08', NULL, '2023-09-14 18:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36958, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:55:55', '2023-09-14 18:55:55', 0, 0, '', NULL, '2023-09-14 18:55:55', NULL, '2023-09-14 18:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36959, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:57:08', '2023-09-14 18:57:08', 0, 0, '', NULL, '2023-09-14 18:57:08', NULL, '2023-09-14 18:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36960, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:57:55', '2023-09-14 18:57:55', 0, 0, '', NULL, '2023-09-14 18:57:55', NULL, '2023-09-14 18:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36961, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:59:08', '2023-09-14 18:59:08', 0, 0, '', NULL, '2023-09-14 18:59:08', NULL, '2023-09-14 18:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36962, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 18:59:55', '2023-09-14 18:59:55', 0, 0, '', NULL, '2023-09-14 18:59:55', NULL, '2023-09-14 18:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36963, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:01:08', '2023-09-14 19:01:08', 0, 0, '', NULL, '2023-09-14 19:01:08', NULL, '2023-09-14 19:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36964, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:01:55', '2023-09-14 19:01:55', 0, 0, '', NULL, '2023-09-14 19:01:55', NULL, '2023-09-14 19:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36965, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:03:08', '2023-09-14 19:03:08', 0, 0, '', NULL, '2023-09-14 19:03:08', NULL, '2023-09-14 19:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36966, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:03:55', '2023-09-14 19:03:55', 0, 0, '', NULL, '2023-09-14 19:03:55', NULL, '2023-09-14 19:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36967, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:05:08', '2023-09-14 19:05:08', 0, 0, '', NULL, '2023-09-14 19:05:08', NULL, '2023-09-14 19:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36968, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:05:55', '2023-09-14 19:05:55', 0, 0, '', NULL, '2023-09-14 19:05:55', NULL, '2023-09-14 19:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36969, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:07:08', '2023-09-14 19:07:08', 0, 0, '', NULL, '2023-09-14 19:07:08', NULL, '2023-09-14 19:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36970, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:07:55', '2023-09-14 19:07:55', 0, 0, '', NULL, '2023-09-14 19:07:55', NULL, '2023-09-14 19:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36971, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:09:08', '2023-09-14 19:09:08', 0, 0, '', NULL, '2023-09-14 19:09:08', NULL, '2023-09-14 19:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36972, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:09:55', '2023-09-14 19:09:55', 0, 0, '', NULL, '2023-09-14 19:09:55', NULL, '2023-09-14 19:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36973, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:11:08', '2023-09-14 19:11:08', 0, 0, '', NULL, '2023-09-14 19:11:08', NULL, '2023-09-14 19:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36974, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:11:55', '2023-09-14 19:11:55', 0, 0, '', NULL, '2023-09-14 19:11:55', NULL, '2023-09-14 19:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36975, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:13:08', '2023-09-14 19:13:08', 0, 0, '', NULL, '2023-09-14 19:13:08', NULL, '2023-09-14 19:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36976, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:13:55', '2023-09-14 19:13:55', 0, 0, '', NULL, '2023-09-14 19:13:55', NULL, '2023-09-14 19:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36977, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:15:08', '2023-09-14 19:15:08', 0, 0, '', NULL, '2023-09-14 19:15:08', NULL, '2023-09-14 19:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36978, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:15:55', '2023-09-14 19:15:55', 0, 0, '', NULL, '2023-09-14 19:15:55', NULL, '2023-09-14 19:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36979, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:17:08', '2023-09-14 19:17:08', 0, 0, '', NULL, '2023-09-14 19:17:08', NULL, '2023-09-14 19:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36980, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:17:55', '2023-09-14 19:17:55', 0, 0, '', NULL, '2023-09-14 19:17:55', NULL, '2023-09-14 19:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36981, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:19:08', '2023-09-14 19:19:08', 0, 0, '', NULL, '2023-09-14 19:19:08', NULL, '2023-09-14 19:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36982, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:19:55', '2023-09-14 19:19:55', 0, 0, '', NULL, '2023-09-14 19:19:55', NULL, '2023-09-14 19:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36983, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:21:08', '2023-09-14 19:21:08', 0, 0, '', NULL, '2023-09-14 19:21:08', NULL, '2023-09-14 19:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36984, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:21:55', '2023-09-14 19:21:55', 0, 0, '', NULL, '2023-09-14 19:21:55', NULL, '2023-09-14 19:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36985, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:23:08', '2023-09-14 19:23:08', 0, 0, '', NULL, '2023-09-14 19:23:08', NULL, '2023-09-14 19:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36986, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:23:55', '2023-09-14 19:23:55', 0, 0, '', NULL, '2023-09-14 19:23:55', NULL, '2023-09-14 19:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36987, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:25:08', '2023-09-14 19:25:08', 0, 0, '', NULL, '2023-09-14 19:25:08', NULL, '2023-09-14 19:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36988, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:25:55', '2023-09-14 19:25:55', 0, 0, '', NULL, '2023-09-14 19:25:55', NULL, '2023-09-14 19:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36989, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:27:08', '2023-09-14 19:27:08', 0, 0, '', NULL, '2023-09-14 19:27:08', NULL, '2023-09-14 19:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36990, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:27:55', '2023-09-14 19:27:55', 0, 0, '', NULL, '2023-09-14 19:27:55', NULL, '2023-09-14 19:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36991, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:29:08', '2023-09-14 19:29:08', 0, 0, '', NULL, '2023-09-14 19:29:08', NULL, '2023-09-14 19:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36992, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:29:55', '2023-09-14 19:29:55', 0, 0, '', NULL, '2023-09-14 19:29:55', NULL, '2023-09-14 19:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36993, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:31:08', '2023-09-14 19:31:08', 0, 0, '', NULL, '2023-09-14 19:31:08', NULL, '2023-09-14 19:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36994, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:31:55', '2023-09-14 19:31:55', 0, 0, '', NULL, '2023-09-14 19:31:55', NULL, '2023-09-14 19:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36995, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:33:08', '2023-09-14 19:33:08', 0, 0, '', NULL, '2023-09-14 19:33:08', NULL, '2023-09-14 19:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36996, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:33:55', '2023-09-14 19:33:55', 0, 0, '', NULL, '2023-09-14 19:33:55', NULL, '2023-09-14 19:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36997, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:35:08', '2023-09-14 19:35:08', 0, 0, '', NULL, '2023-09-14 19:35:08', NULL, '2023-09-14 19:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36998, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:35:55', '2023-09-14 19:35:55', 0, 0, '', NULL, '2023-09-14 19:35:55', NULL, '2023-09-14 19:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (36999, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:37:08', '2023-09-14 19:37:08', 0, 0, '', NULL, '2023-09-14 19:37:08', NULL, '2023-09-14 19:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37000, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:37:55', '2023-09-14 19:37:55', 0, 0, '', NULL, '2023-09-14 19:37:55', NULL, '2023-09-14 19:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37001, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:39:08', '2023-09-14 19:39:08', 0, 0, '', NULL, '2023-09-14 19:39:08', NULL, '2023-09-14 19:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37002, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:39:55', '2023-09-14 19:39:55', 0, 0, '', NULL, '2023-09-14 19:39:55', NULL, '2023-09-14 19:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37003, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:41:08', '2023-09-14 19:41:08', 0, 0, '', NULL, '2023-09-14 19:41:08', NULL, '2023-09-14 19:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37004, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:41:55', '2023-09-14 19:41:55', 0, 0, '', NULL, '2023-09-14 19:41:55', NULL, '2023-09-14 19:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37005, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:43:08', '2023-09-14 19:43:08', 0, 0, '', NULL, '2023-09-14 19:43:08', NULL, '2023-09-14 19:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37006, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:43:55', '2023-09-14 19:43:55', 0, 0, '', NULL, '2023-09-14 19:43:55', NULL, '2023-09-14 19:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37007, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:45:08', '2023-09-14 19:45:08', 0, 0, '', NULL, '2023-09-14 19:45:08', NULL, '2023-09-14 19:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37008, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:45:55', '2023-09-14 19:45:55', 0, 0, '', NULL, '2023-09-14 19:45:55', NULL, '2023-09-14 19:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37009, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:47:08', '2023-09-14 19:47:08', 0, 0, '', NULL, '2023-09-14 19:47:08', NULL, '2023-09-14 19:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37010, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:47:55', '2023-09-14 19:47:55', 0, 0, '', NULL, '2023-09-14 19:47:55', NULL, '2023-09-14 19:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37011, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:49:08', '2023-09-14 19:49:08', 0, 0, '', NULL, '2023-09-14 19:49:08', NULL, '2023-09-14 19:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37012, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:49:55', '2023-09-14 19:49:55', 0, 0, '', NULL, '2023-09-14 19:49:55', NULL, '2023-09-14 19:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37013, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:51:08', '2023-09-14 19:51:08', 0, 0, '', NULL, '2023-09-14 19:51:08', NULL, '2023-09-14 19:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37014, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:51:55', '2023-09-14 19:51:55', 0, 0, '', NULL, '2023-09-14 19:51:55', NULL, '2023-09-14 19:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37015, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:53:08', '2023-09-14 19:53:08', 0, 0, '', NULL, '2023-09-14 19:53:08', NULL, '2023-09-14 19:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37016, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:53:55', '2023-09-14 19:53:55', 0, 0, '', NULL, '2023-09-14 19:53:55', NULL, '2023-09-14 19:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37017, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:55:08', '2023-09-14 19:55:08', 0, 0, '', NULL, '2023-09-14 19:55:08', NULL, '2023-09-14 19:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37018, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:55:55', '2023-09-14 19:55:55', 0, 0, '', NULL, '2023-09-14 19:55:55', NULL, '2023-09-14 19:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37019, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:57:08', '2023-09-14 19:57:08', 0, 0, '', NULL, '2023-09-14 19:57:08', NULL, '2023-09-14 19:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37020, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:57:55', '2023-09-14 19:57:55', 0, 0, '', NULL, '2023-09-14 19:57:55', NULL, '2023-09-14 19:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37021, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:59:08', '2023-09-14 19:59:08', 0, 0, '', NULL, '2023-09-14 19:59:08', NULL, '2023-09-14 19:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37022, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 19:59:55', '2023-09-14 19:59:55', 0, 0, '', NULL, '2023-09-14 19:59:55', NULL, '2023-09-14 19:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37023, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:01:08', '2023-09-14 20:01:08', 0, 0, '', NULL, '2023-09-14 20:01:08', NULL, '2023-09-14 20:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37024, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:01:55', '2023-09-14 20:01:55', 0, 0, '', NULL, '2023-09-14 20:01:55', NULL, '2023-09-14 20:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37025, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:03:08', '2023-09-14 20:03:08', 0, 0, '', NULL, '2023-09-14 20:03:08', NULL, '2023-09-14 20:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37026, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:03:55', '2023-09-14 20:03:55', 0, 0, '', NULL, '2023-09-14 20:03:55', NULL, '2023-09-14 20:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37027, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:05:08', '2023-09-14 20:05:08', 0, 0, '', NULL, '2023-09-14 20:05:08', NULL, '2023-09-14 20:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37028, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:05:55', '2023-09-14 20:05:55', 0, 0, '', NULL, '2023-09-14 20:05:55', NULL, '2023-09-14 20:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37029, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:07:08', '2023-09-14 20:07:08', 0, 0, '', NULL, '2023-09-14 20:07:08', NULL, '2023-09-14 20:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37030, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:07:55', '2023-09-14 20:07:55', 0, 0, '', NULL, '2023-09-14 20:07:55', NULL, '2023-09-14 20:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37031, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:09:08', '2023-09-14 20:09:08', 0, 0, '', NULL, '2023-09-14 20:09:08', NULL, '2023-09-14 20:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37032, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:09:55', '2023-09-14 20:09:55', 0, 0, '', NULL, '2023-09-14 20:09:55', NULL, '2023-09-14 20:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37033, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:11:08', '2023-09-14 20:11:08', 0, 0, '', NULL, '2023-09-14 20:11:08', NULL, '2023-09-14 20:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37034, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:11:55', '2023-09-14 20:11:55', 0, 0, '', NULL, '2023-09-14 20:11:55', NULL, '2023-09-14 20:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37035, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:13:08', '2023-09-14 20:13:08', 0, 0, '', NULL, '2023-09-14 20:13:08', NULL, '2023-09-14 20:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37036, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:13:55', '2023-09-14 20:13:55', 0, 0, '', NULL, '2023-09-14 20:13:55', NULL, '2023-09-14 20:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37037, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:15:08', '2023-09-14 20:15:08', 0, 0, '', NULL, '2023-09-14 20:15:08', NULL, '2023-09-14 20:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37038, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:15:55', '2023-09-14 20:15:55', 0, 0, '', NULL, '2023-09-14 20:15:55', NULL, '2023-09-14 20:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37039, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:17:08', '2023-09-14 20:17:08', 0, 0, '', NULL, '2023-09-14 20:17:08', NULL, '2023-09-14 20:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37040, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:17:55', '2023-09-14 20:17:55', 0, 0, '', NULL, '2023-09-14 20:17:55', NULL, '2023-09-14 20:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37041, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:19:08', '2023-09-14 20:19:08', 0, 0, '', NULL, '2023-09-14 20:19:08', NULL, '2023-09-14 20:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37042, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:19:55', '2023-09-14 20:19:55', 0, 0, '', NULL, '2023-09-14 20:19:55', NULL, '2023-09-14 20:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37043, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:21:08', '2023-09-14 20:21:08', 0, 0, '', NULL, '2023-09-14 20:21:08', NULL, '2023-09-14 20:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37044, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:21:55', '2023-09-14 20:21:55', 0, 0, '', NULL, '2023-09-14 20:21:55', NULL, '2023-09-14 20:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37045, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:23:08', '2023-09-14 20:23:08', 0, 0, '', NULL, '2023-09-14 20:23:08', NULL, '2023-09-14 20:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37046, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:23:55', '2023-09-14 20:23:55', 0, 0, '', NULL, '2023-09-14 20:23:55', NULL, '2023-09-14 20:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37047, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:25:08', '2023-09-14 20:25:08', 0, 0, '', NULL, '2023-09-14 20:25:08', NULL, '2023-09-14 20:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37048, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:25:55', '2023-09-14 20:25:55', 0, 0, '', NULL, '2023-09-14 20:25:55', NULL, '2023-09-14 20:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37049, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:27:08', '2023-09-14 20:27:08', 0, 0, '', NULL, '2023-09-14 20:27:08', NULL, '2023-09-14 20:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37050, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:27:55', '2023-09-14 20:27:55', 0, 0, '', NULL, '2023-09-14 20:27:55', NULL, '2023-09-14 20:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37051, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:29:08', '2023-09-14 20:29:08', 0, 0, '', NULL, '2023-09-14 20:29:08', NULL, '2023-09-14 20:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37052, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:29:55', '2023-09-14 20:29:55', 0, 0, '', NULL, '2023-09-14 20:29:55', NULL, '2023-09-14 20:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37053, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:31:09', '2023-09-14 20:31:09', 0, 0, '', NULL, '2023-09-14 20:31:09', NULL, '2023-09-14 20:31:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37054, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:31:55', '2023-09-14 20:31:55', 0, 0, '', NULL, '2023-09-14 20:31:55', NULL, '2023-09-14 20:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37055, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:33:08', '2023-09-14 20:33:08', 0, 0, '', NULL, '2023-09-14 20:33:08', NULL, '2023-09-14 20:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37056, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:33:55', '2023-09-14 20:33:55', 0, 0, '', NULL, '2023-09-14 20:33:55', NULL, '2023-09-14 20:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37057, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:35:08', '2023-09-14 20:35:08', 0, 0, '', NULL, '2023-09-14 20:35:08', NULL, '2023-09-14 20:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37058, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:35:55', '2023-09-14 20:35:55', 0, 0, '', NULL, '2023-09-14 20:35:55', NULL, '2023-09-14 20:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37059, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:37:08', '2023-09-14 20:37:08', 0, 0, '', NULL, '2023-09-14 20:37:08', NULL, '2023-09-14 20:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37060, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:37:55', '2023-09-14 20:37:55', 0, 0, '', NULL, '2023-09-14 20:37:55', NULL, '2023-09-14 20:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37061, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:39:08', '2023-09-14 20:39:08', 0, 0, '', NULL, '2023-09-14 20:39:08', NULL, '2023-09-14 20:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37062, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:39:55', '2023-09-14 20:39:55', 0, 0, '', NULL, '2023-09-14 20:39:55', NULL, '2023-09-14 20:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37063, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:41:08', '2023-09-14 20:41:08', 0, 0, '', NULL, '2023-09-14 20:41:08', NULL, '2023-09-14 20:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37064, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:41:55', '2023-09-14 20:41:55', 0, 0, '', NULL, '2023-09-14 20:41:55', NULL, '2023-09-14 20:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37065, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:43:08', '2023-09-14 20:43:08', 0, 0, '', NULL, '2023-09-14 20:43:08', NULL, '2023-09-14 20:43:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37066, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:43:55', '2023-09-14 20:43:55', 0, 0, '', NULL, '2023-09-14 20:43:55', NULL, '2023-09-14 20:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37067, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:45:08', '2023-09-14 20:45:08', 0, 0, '', NULL, '2023-09-14 20:45:08', NULL, '2023-09-14 20:45:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37068, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:45:55', '2023-09-14 20:45:55', 0, 0, '', NULL, '2023-09-14 20:45:55', NULL, '2023-09-14 20:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37069, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:47:08', '2023-09-14 20:47:08', 0, 0, '', NULL, '2023-09-14 20:47:08', NULL, '2023-09-14 20:47:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37070, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:47:55', '2023-09-14 20:47:55', 0, 0, '', NULL, '2023-09-14 20:47:55', NULL, '2023-09-14 20:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37071, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:49:08', '2023-09-14 20:49:08', 0, 0, '', NULL, '2023-09-14 20:49:08', NULL, '2023-09-14 20:49:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37072, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:49:55', '2023-09-14 20:49:55', 0, 0, '', NULL, '2023-09-14 20:49:55', NULL, '2023-09-14 20:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37073, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:51:08', '2023-09-14 20:51:08', 0, 0, '', NULL, '2023-09-14 20:51:08', NULL, '2023-09-14 20:51:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37074, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:51:55', '2023-09-14 20:51:55', 0, 0, '', NULL, '2023-09-14 20:51:55', NULL, '2023-09-14 20:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37075, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:53:08', '2023-09-14 20:53:08', 0, 0, '', NULL, '2023-09-14 20:53:08', NULL, '2023-09-14 20:53:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37076, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:53:55', '2023-09-14 20:53:55', 0, 0, '', NULL, '2023-09-14 20:53:55', NULL, '2023-09-14 20:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37077, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:55:08', '2023-09-14 20:55:08', 0, 0, '', NULL, '2023-09-14 20:55:08', NULL, '2023-09-14 20:55:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37078, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:55:55', '2023-09-14 20:55:55', 0, 0, '', NULL, '2023-09-14 20:55:55', NULL, '2023-09-14 20:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37079, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:57:08', '2023-09-14 20:57:08', 0, 0, '', NULL, '2023-09-14 20:57:08', NULL, '2023-09-14 20:57:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37080, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:57:55', '2023-09-14 20:57:55', 0, 0, '', NULL, '2023-09-14 20:57:55', NULL, '2023-09-14 20:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37081, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:59:08', '2023-09-14 20:59:08', 0, 0, '', NULL, '2023-09-14 20:59:08', NULL, '2023-09-14 20:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37082, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 20:59:55', '2023-09-14 20:59:55', 0, 0, '', NULL, '2023-09-14 20:59:55', NULL, '2023-09-14 20:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37083, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:01:08', '2023-09-14 21:01:08', 0, 0, '', NULL, '2023-09-14 21:01:08', NULL, '2023-09-14 21:01:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37084, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:01:55', '2023-09-14 21:01:55', 0, 0, '', NULL, '2023-09-14 21:01:55', NULL, '2023-09-14 21:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37085, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:03:08', '2023-09-14 21:03:08', 0, 0, '', NULL, '2023-09-14 21:03:08', NULL, '2023-09-14 21:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37086, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:03:55', '2023-09-14 21:03:55', 0, 0, '', NULL, '2023-09-14 21:03:55', NULL, '2023-09-14 21:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37087, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:05:08', '2023-09-14 21:05:08', 0, 0, '', NULL, '2023-09-14 21:05:08', NULL, '2023-09-14 21:05:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37088, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:05:55', '2023-09-14 21:05:55', 0, 0, '', NULL, '2023-09-14 21:05:55', NULL, '2023-09-14 21:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37089, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:07:08', '2023-09-14 21:07:08', 0, 0, '', NULL, '2023-09-14 21:07:08', NULL, '2023-09-14 21:07:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37090, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:07:55', '2023-09-14 21:07:55', 0, 0, '', NULL, '2023-09-14 21:07:55', NULL, '2023-09-14 21:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37091, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:09:08', '2023-09-14 21:09:08', 0, 0, '', NULL, '2023-09-14 21:09:08', NULL, '2023-09-14 21:09:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37092, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:09:55', '2023-09-14 21:09:55', 0, 0, '', NULL, '2023-09-14 21:09:55', NULL, '2023-09-14 21:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37093, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:11:08', '2023-09-14 21:11:08', 0, 0, '', NULL, '2023-09-14 21:11:08', NULL, '2023-09-14 21:11:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37094, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:11:55', '2023-09-14 21:11:55', 0, 0, '', NULL, '2023-09-14 21:11:55', NULL, '2023-09-14 21:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37095, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:13:08', '2023-09-14 21:13:08', 0, 0, '', NULL, '2023-09-14 21:13:08', NULL, '2023-09-14 21:13:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37096, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:13:55', '2023-09-14 21:13:55', 0, 0, '', NULL, '2023-09-14 21:13:55', NULL, '2023-09-14 21:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37097, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:15:08', '2023-09-14 21:15:08', 0, 0, '', NULL, '2023-09-14 21:15:08', NULL, '2023-09-14 21:15:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37098, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:15:55', '2023-09-14 21:15:55', 0, 0, '', NULL, '2023-09-14 21:15:55', NULL, '2023-09-14 21:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37099, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:17:08', '2023-09-14 21:17:08', 0, 0, '', NULL, '2023-09-14 21:17:08', NULL, '2023-09-14 21:17:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37100, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:17:55', '2023-09-14 21:17:55', 0, 0, '', NULL, '2023-09-14 21:17:55', NULL, '2023-09-14 21:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37101, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:19:08', '2023-09-14 21:19:08', 0, 0, '', NULL, '2023-09-14 21:19:08', NULL, '2023-09-14 21:19:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37102, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:19:55', '2023-09-14 21:19:55', 0, 0, '', NULL, '2023-09-14 21:19:55', NULL, '2023-09-14 21:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37103, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:21:08', '2023-09-14 21:21:08', 0, 0, '', NULL, '2023-09-14 21:21:08', NULL, '2023-09-14 21:21:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37104, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:21:55', '2023-09-14 21:21:55', 0, 0, '', NULL, '2023-09-14 21:21:55', NULL, '2023-09-14 21:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37105, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:23:08', '2023-09-14 21:23:08', 0, 0, '', NULL, '2023-09-14 21:23:08', NULL, '2023-09-14 21:23:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37106, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:23:55', '2023-09-14 21:23:55', 0, 0, '', NULL, '2023-09-14 21:23:55', NULL, '2023-09-14 21:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37107, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:25:08', '2023-09-14 21:25:08', 0, 0, '', NULL, '2023-09-14 21:25:08', NULL, '2023-09-14 21:25:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37108, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:25:55', '2023-09-14 21:25:55', 0, 0, '', NULL, '2023-09-14 21:25:55', NULL, '2023-09-14 21:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37109, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:27:08', '2023-09-14 21:27:08', 0, 0, '', NULL, '2023-09-14 21:27:08', NULL, '2023-09-14 21:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37110, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:27:55', '2023-09-14 21:27:55', 0, 0, '', NULL, '2023-09-14 21:27:55', NULL, '2023-09-14 21:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37111, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:29:08', '2023-09-14 21:29:08', 0, 0, '', NULL, '2023-09-14 21:29:08', NULL, '2023-09-14 21:29:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37112, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:29:55', '2023-09-14 21:29:55', 0, 0, '', NULL, '2023-09-14 21:29:55', NULL, '2023-09-14 21:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37113, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:31:08', '2023-09-14 21:31:08', 0, 0, '', NULL, '2023-09-14 21:31:08', NULL, '2023-09-14 21:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37114, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:31:55', '2023-09-14 21:31:55', 0, 0, '', NULL, '2023-09-14 21:31:55', NULL, '2023-09-14 21:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37115, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:33:08', '2023-09-14 21:33:08', 0, 0, '', NULL, '2023-09-14 21:33:08', NULL, '2023-09-14 21:33:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37116, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:33:55', '2023-09-14 21:33:55', 0, 0, '', NULL, '2023-09-14 21:33:55', NULL, '2023-09-14 21:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37117, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:35:08', '2023-09-14 21:35:08', 0, 0, '', NULL, '2023-09-14 21:35:08', NULL, '2023-09-14 21:35:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37118, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:35:55', '2023-09-14 21:35:55', 0, 0, '', NULL, '2023-09-14 21:35:55', NULL, '2023-09-14 21:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37119, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:37:08', '2023-09-14 21:37:08', 0, 0, '', NULL, '2023-09-14 21:37:08', NULL, '2023-09-14 21:37:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37120, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:37:55', '2023-09-14 21:37:55', 0, 0, '', NULL, '2023-09-14 21:37:55', NULL, '2023-09-14 21:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37121, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:39:08', '2023-09-14 21:39:08', 0, 0, '', NULL, '2023-09-14 21:39:08', NULL, '2023-09-14 21:39:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37122, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:39:55', '2023-09-14 21:39:55', 0, 0, '', NULL, '2023-09-14 21:39:55', NULL, '2023-09-14 21:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37123, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:41:08', '2023-09-14 21:41:08', 0, 0, '', NULL, '2023-09-14 21:41:08', NULL, '2023-09-14 21:41:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37124, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:41:55', '2023-09-14 21:41:55', 0, 0, '', NULL, '2023-09-14 21:41:55', NULL, '2023-09-14 21:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37125, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:47:50', '2023-09-14 21:47:50', 0, 0, '', NULL, '2023-09-14 21:47:50', NULL, '2023-09-14 21:47:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37126, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 21:59:13', '2023-09-14 21:59:13', 0, 0, '', NULL, '2023-09-14 21:59:13', NULL, '2023-09-14 21:59:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37127, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 22:10:37', '2023-09-14 22:10:37', 0, 0, '', NULL, '2023-09-14 22:10:37', NULL, '2023-09-14 22:10:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37128, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 23:02:18', '2023-09-14 23:02:18', 0, 0, '', NULL, '2023-09-14 23:02:18', NULL, '2023-09-14 23:02:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37129, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 23:13:42', '2023-09-14 23:13:42', 0, 0, '', NULL, '2023-09-14 23:13:42', NULL, '2023-09-14 23:13:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37130, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 23:29:47', '2023-09-14 23:29:47', 0, 0, '', NULL, '2023-09-14 23:29:47', NULL, '2023-09-14 23:29:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37131, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 01:36:37', '2023-09-15 01:36:37', 0, 0, '', NULL, '2023-09-15 01:36:37', NULL, '2023-09-15 01:36:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37132, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 01:47:51', '2023-09-15 01:47:51', 0, 0, '', NULL, '2023-09-15 01:47:51', NULL, '2023-09-15 01:47:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37133, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 01:59:14', '2023-09-15 01:59:14', 0, 0, '', NULL, '2023-09-15 01:59:14', NULL, '2023-09-15 01:59:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37134, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 02:10:37', '2023-09-15 02:10:37', 0, 0, '', NULL, '2023-09-15 02:10:37', NULL, '2023-09-15 02:10:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37135, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 02:24:14', '2023-09-15 02:24:14', 0, 0, '', NULL, '2023-09-15 02:24:14', NULL, '2023-09-15 02:24:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37136, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 02:35:27', '2023-09-15 02:35:27', 0, 0, '', NULL, '2023-09-15 02:35:27', NULL, '2023-09-15 02:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37137, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 04:46:48', '2023-09-15 04:46:48', 0, 0, '', NULL, '2023-09-15 04:46:48', NULL, '2023-09-15 04:46:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37138, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 04:58:22', '2023-09-15 04:58:22', 0, 0, '', NULL, '2023-09-15 04:58:22', NULL, '2023-09-15 04:58:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37139, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 05:09:35', '2023-09-15 05:09:35', 0, 0, '', NULL, '2023-09-15 05:09:35', NULL, '2023-09-15 05:09:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37140, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 05:20:59', '2023-09-15 05:20:59', 0, 0, '', NULL, '2023-09-15 05:20:59', NULL, '2023-09-15 05:20:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37141, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 07:39:02', '2023-09-15 07:39:02', 0, 0, '', NULL, '2023-09-15 07:39:02', NULL, '2023-09-15 07:39:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37142, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 07:50:25', '2023-09-15 07:50:25', 0, 0, '', NULL, '2023-09-15 07:50:25', NULL, '2023-09-15 07:50:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37143, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:35:01', '2023-09-15 08:35:01', 0, 0, '', NULL, '2023-09-15 08:35:01', NULL, '2023-09-15 08:35:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37144, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:46:25', '2023-09-15 08:46:25', 0, 0, '', NULL, '2023-09-15 08:46:25', NULL, '2023-09-15 08:46:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37145, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:51:55', '2023-09-15 08:51:55', 0, 0, '', NULL, '2023-09-15 08:51:55', NULL, '2023-09-15 08:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37146, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:52:02', '2023-09-15 08:52:02', 0, 0, '', NULL, '2023-09-15 08:52:02', NULL, '2023-09-15 08:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37147, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:53:55', '2023-09-15 08:53:55', 0, 0, '', NULL, '2023-09-15 08:53:55', NULL, '2023-09-15 08:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37148, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:54:02', '2023-09-15 08:54:02', 0, 0, '', NULL, '2023-09-15 08:54:02', NULL, '2023-09-15 08:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37149, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:55:55', '2023-09-15 08:55:55', 0, 0, '', NULL, '2023-09-15 08:55:55', NULL, '2023-09-15 08:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37150, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:56:02', '2023-09-15 08:56:02', 0, 0, '', NULL, '2023-09-15 08:56:02', NULL, '2023-09-15 08:56:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37151, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:57:55', '2023-09-15 08:57:55', 0, 0, '', NULL, '2023-09-15 08:57:55', NULL, '2023-09-15 08:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37152, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:58:02', '2023-09-15 08:58:02', 0, 0, '', NULL, '2023-09-15 08:58:02', NULL, '2023-09-15 08:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37153, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 08:59:55', '2023-09-15 08:59:55', 0, 0, '', NULL, '2023-09-15 08:59:55', NULL, '2023-09-15 08:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37154, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:00:02', '2023-09-15 09:00:02', 0, 0, '', NULL, '2023-09-15 09:00:02', NULL, '2023-09-15 09:00:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37155, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:01:55', '2023-09-15 09:01:55', 0, 0, '', NULL, '2023-09-15 09:01:55', NULL, '2023-09-15 09:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37156, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:02:02', '2023-09-15 09:02:02', 0, 0, '', NULL, '2023-09-15 09:02:02', NULL, '2023-09-15 09:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37157, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:03:55', '2023-09-15 09:03:55', 0, 0, '', NULL, '2023-09-15 09:03:55', NULL, '2023-09-15 09:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37158, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:04:02', '2023-09-15 09:04:02', 0, 0, '', NULL, '2023-09-15 09:04:02', NULL, '2023-09-15 09:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37159, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:05:55', '2023-09-15 09:05:55', 0, 0, '', NULL, '2023-09-15 09:05:55', NULL, '2023-09-15 09:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37160, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:06:02', '2023-09-15 09:06:02', 0, 0, '', NULL, '2023-09-15 09:06:02', NULL, '2023-09-15 09:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37161, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:07:55', '2023-09-15 09:07:55', 0, 0, '', NULL, '2023-09-15 09:07:55', NULL, '2023-09-15 09:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37162, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:08:02', '2023-09-15 09:08:02', 0, 0, '', NULL, '2023-09-15 09:08:02', NULL, '2023-09-15 09:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37163, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:09:55', '2023-09-15 09:09:55', 0, 0, '', NULL, '2023-09-15 09:09:55', NULL, '2023-09-15 09:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37164, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:10:02', '2023-09-15 09:10:02', 0, 0, '', NULL, '2023-09-15 09:10:02', NULL, '2023-09-15 09:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37165, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:11:55', '2023-09-15 09:11:55', 0, 0, '', NULL, '2023-09-15 09:11:55', NULL, '2023-09-15 09:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37166, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:12:02', '2023-09-15 09:12:02', 0, 0, '', NULL, '2023-09-15 09:12:02', NULL, '2023-09-15 09:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37167, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:13:55', '2023-09-15 09:13:55', 0, 0, '', NULL, '2023-09-15 09:13:55', NULL, '2023-09-15 09:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37168, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:14:02', '2023-09-15 09:14:02', 0, 0, '', NULL, '2023-09-15 09:14:02', NULL, '2023-09-15 09:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37169, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:15:55', '2023-09-15 09:15:55', 0, 0, '', NULL, '2023-09-15 09:15:55', NULL, '2023-09-15 09:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37170, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:16:02', '2023-09-15 09:16:02', 0, 0, '', NULL, '2023-09-15 09:16:02', NULL, '2023-09-15 09:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37171, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:17:55', '2023-09-15 09:17:55', 0, 0, '', NULL, '2023-09-15 09:17:55', NULL, '2023-09-15 09:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37172, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:18:02', '2023-09-15 09:18:02', 0, 0, '', NULL, '2023-09-15 09:18:02', NULL, '2023-09-15 09:18:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37173, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:19:55', '2023-09-15 09:19:55', 0, 0, '', NULL, '2023-09-15 09:19:55', NULL, '2023-09-15 09:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37174, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:20:02', '2023-09-15 09:20:02', 0, 0, '', NULL, '2023-09-15 09:20:02', NULL, '2023-09-15 09:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37175, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:21:55', '2023-09-15 09:21:55', 0, 0, '', NULL, '2023-09-15 09:21:55', NULL, '2023-09-15 09:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37176, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:22:02', '2023-09-15 09:22:02', 0, 0, '', NULL, '2023-09-15 09:22:02', NULL, '2023-09-15 09:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37177, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:23:55', '2023-09-15 09:23:55', 0, 0, '', NULL, '2023-09-15 09:23:55', NULL, '2023-09-15 09:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37178, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:24:05', '2023-09-15 09:24:05', 0, 0, '', NULL, '2023-09-15 09:24:05', NULL, '2023-09-15 09:24:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37179, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:25:55', '2023-09-15 09:25:55', 0, 0, '', NULL, '2023-09-15 09:25:55', NULL, '2023-09-15 09:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37180, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:26:02', '2023-09-15 09:26:02', 0, 0, '', NULL, '2023-09-15 09:26:02', NULL, '2023-09-15 09:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37181, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:27:55', '2023-09-15 09:27:55', 0, 0, '', NULL, '2023-09-15 09:27:55', NULL, '2023-09-15 09:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37182, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:28:02', '2023-09-15 09:28:02', 0, 0, '', NULL, '2023-09-15 09:28:02', NULL, '2023-09-15 09:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37183, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:29:55', '2023-09-15 09:29:55', 0, 0, '', NULL, '2023-09-15 09:29:55', NULL, '2023-09-15 09:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37184, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:30:02', '2023-09-15 09:30:02', 0, 0, '', NULL, '2023-09-15 09:30:02', NULL, '2023-09-15 09:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37185, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:31:55', '2023-09-15 09:31:55', 0, 0, '', NULL, '2023-09-15 09:31:55', NULL, '2023-09-15 09:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37186, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:32:02', '2023-09-15 09:32:02', 0, 0, '', NULL, '2023-09-15 09:32:02', NULL, '2023-09-15 09:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37187, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:33:55', '2023-09-15 09:33:55', 0, 0, '', NULL, '2023-09-15 09:33:55', NULL, '2023-09-15 09:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37188, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:34:02', '2023-09-15 09:34:02', 0, 0, '', NULL, '2023-09-15 09:34:02', NULL, '2023-09-15 09:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37189, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:35:55', '2023-09-15 09:35:55', 0, 0, '', NULL, '2023-09-15 09:35:55', NULL, '2023-09-15 09:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37190, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:36:02', '2023-09-15 09:36:02', 0, 0, '', NULL, '2023-09-15 09:36:02', NULL, '2023-09-15 09:36:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37191, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:37:55', '2023-09-15 09:37:55', 0, 0, '', NULL, '2023-09-15 09:37:55', NULL, '2023-09-15 09:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37192, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:38:02', '2023-09-15 09:38:02', 0, 0, '', NULL, '2023-09-15 09:38:02', NULL, '2023-09-15 09:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37193, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:39:55', '2023-09-15 09:39:55', 0, 0, '', NULL, '2023-09-15 09:39:55', NULL, '2023-09-15 09:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37194, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:40:02', '2023-09-15 09:40:02', 0, 0, '', NULL, '2023-09-15 09:40:02', NULL, '2023-09-15 09:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37195, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:41:55', '2023-09-15 09:41:55', 0, 0, '', NULL, '2023-09-15 09:41:55', NULL, '2023-09-15 09:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37196, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:42:02', '2023-09-15 09:42:02', 0, 0, '', NULL, '2023-09-15 09:42:02', NULL, '2023-09-15 09:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37197, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:43:55', '2023-09-15 09:43:55', 0, 0, '', NULL, '2023-09-15 09:43:55', NULL, '2023-09-15 09:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37198, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:44:02', '2023-09-15 09:44:02', 0, 0, '', NULL, '2023-09-15 09:44:02', NULL, '2023-09-15 09:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37199, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:45:55', '2023-09-15 09:45:55', 0, 0, '', NULL, '2023-09-15 09:45:55', NULL, '2023-09-15 09:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37200, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:46:02', '2023-09-15 09:46:02', 0, 0, '', NULL, '2023-09-15 09:46:02', NULL, '2023-09-15 09:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37201, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:47:55', '2023-09-15 09:47:55', 0, 0, '', NULL, '2023-09-15 09:47:55', NULL, '2023-09-15 09:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37202, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:48:02', '2023-09-15 09:48:02', 0, 0, '', NULL, '2023-09-15 09:48:02', NULL, '2023-09-15 09:48:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37203, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:49:55', '2023-09-15 09:49:55', 0, 0, '', NULL, '2023-09-15 09:49:55', NULL, '2023-09-15 09:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37204, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:50:02', '2023-09-15 09:50:02', 0, 0, '', NULL, '2023-09-15 09:50:02', NULL, '2023-09-15 09:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37205, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:51:55', '2023-09-15 09:51:55', 0, 0, '', NULL, '2023-09-15 09:51:55', NULL, '2023-09-15 09:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37206, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:52:02', '2023-09-15 09:52:02', 0, 0, '', NULL, '2023-09-15 09:52:02', NULL, '2023-09-15 09:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37207, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:53:55', '2023-09-15 09:53:55', 0, 0, '', NULL, '2023-09-15 09:53:55', NULL, '2023-09-15 09:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37208, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:54:02', '2023-09-15 09:54:02', 0, 0, '', NULL, '2023-09-15 09:54:02', NULL, '2023-09-15 09:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37209, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:55:55', '2023-09-15 09:55:55', 0, 0, '', NULL, '2023-09-15 09:55:55', NULL, '2023-09-15 09:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37210, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:56:02', '2023-09-15 09:56:02', 0, 0, '', NULL, '2023-09-15 09:56:02', NULL, '2023-09-15 09:56:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37211, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:57:55', '2023-09-15 09:57:55', 0, 0, '', NULL, '2023-09-15 09:57:55', NULL, '2023-09-15 09:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37212, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:58:02', '2023-09-15 09:58:02', 0, 0, '', NULL, '2023-09-15 09:58:02', NULL, '2023-09-15 09:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37213, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 09:59:55', '2023-09-15 09:59:55', 0, 0, '', NULL, '2023-09-15 09:59:55', NULL, '2023-09-15 09:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37214, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:00:02', '2023-09-15 10:00:02', 0, 0, '', NULL, '2023-09-15 10:00:02', NULL, '2023-09-15 10:00:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37215, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:01:55', '2023-09-15 10:01:55', 0, 0, '', NULL, '2023-09-15 10:01:55', NULL, '2023-09-15 10:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37216, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:02:02', '2023-09-15 10:02:02', 0, 0, '', NULL, '2023-09-15 10:02:02', NULL, '2023-09-15 10:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37217, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:03:55', '2023-09-15 10:03:55', 0, 0, '', NULL, '2023-09-15 10:03:55', NULL, '2023-09-15 10:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37218, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:04:02', '2023-09-15 10:04:02', 0, 0, '', NULL, '2023-09-15 10:04:02', NULL, '2023-09-15 10:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37219, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:05:55', '2023-09-15 10:05:55', 0, 0, '', NULL, '2023-09-15 10:05:55', NULL, '2023-09-15 10:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37220, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:06:03', '2023-09-15 10:06:03', 0, 0, '', NULL, '2023-09-15 10:06:03', NULL, '2023-09-15 10:06:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37221, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:07:55', '2023-09-15 10:07:55', 0, 0, '', NULL, '2023-09-15 10:07:55', NULL, '2023-09-15 10:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37222, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:08:02', '2023-09-15 10:08:02', 0, 0, '', NULL, '2023-09-15 10:08:02', NULL, '2023-09-15 10:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37223, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:09:55', '2023-09-15 10:09:55', 0, 0, '', NULL, '2023-09-15 10:09:55', NULL, '2023-09-15 10:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37224, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:10:02', '2023-09-15 10:10:02', 0, 0, '', NULL, '2023-09-15 10:10:02', NULL, '2023-09-15 10:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37225, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:11:55', '2023-09-15 10:11:55', 0, 0, '', NULL, '2023-09-15 10:11:55', NULL, '2023-09-15 10:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37226, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:12:02', '2023-09-15 10:12:02', 0, 0, '', NULL, '2023-09-15 10:12:02', NULL, '2023-09-15 10:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37227, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:13:55', '2023-09-15 10:13:55', 0, 0, '', NULL, '2023-09-15 10:13:55', NULL, '2023-09-15 10:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37228, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:14:02', '2023-09-15 10:14:02', 0, 0, '', NULL, '2023-09-15 10:14:02', NULL, '2023-09-15 10:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37229, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:15:55', '2023-09-15 10:15:55', 0, 0, '', NULL, '2023-09-15 10:15:55', NULL, '2023-09-15 10:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37230, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:16:02', '2023-09-15 10:16:02', 0, 0, '', NULL, '2023-09-15 10:16:02', NULL, '2023-09-15 10:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37231, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:17:55', '2023-09-15 10:17:55', 0, 0, '', NULL, '2023-09-15 10:17:55', NULL, '2023-09-15 10:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37232, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:18:02', '2023-09-15 10:18:02', 0, 0, '', NULL, '2023-09-15 10:18:02', NULL, '2023-09-15 10:18:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37233, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:19:55', '2023-09-15 10:19:55', 0, 0, '', NULL, '2023-09-15 10:19:55', NULL, '2023-09-15 10:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37234, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:20:02', '2023-09-15 10:20:02', 0, 0, '', NULL, '2023-09-15 10:20:02', NULL, '2023-09-15 10:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37235, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:21:55', '2023-09-15 10:21:55', 0, 0, '', NULL, '2023-09-15 10:21:55', NULL, '2023-09-15 10:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37236, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:22:02', '2023-09-15 10:22:02', 0, 0, '', NULL, '2023-09-15 10:22:02', NULL, '2023-09-15 10:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37237, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:23:55', '2023-09-15 10:23:55', 0, 0, '', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37238, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1gA2000C41HQ1drP200TCiRW2gA20E\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:23:55', '2023-09-15 10:23:55', 0, 0, '', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37239, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:23:55', '2023-09-15 10:23:55', 0, 0, '', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37240, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:23:56', '2023-09-15 10:23:56', 0, 0, '', NULL, '2023-09-15 10:23:56', NULL, '2023-09-15 10:23:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37241, '', 13, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:01', '2023-09-15 10:24:01', 0, 0, '', NULL, '2023-09-15 10:24:01', NULL, '2023-09-15 10:24:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37242, '', 13, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:01', '2023-09-15 10:24:02', 0, 500, '系统异常', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37243, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37244, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37245, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37246, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37247, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37248, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37249, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', '2023-09-15 10:24:02', 0, 0, '', NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37250, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:24:03', '2023-09-15 10:24:03', 0, 0, '', NULL, '2023-09-15 10:24:03', NULL, '2023-09-15 10:24:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37251, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:25:55', '2023-09-15 10:25:55', 0, 0, '', NULL, '2023-09-15 10:25:55', NULL, '2023-09-15 10:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37252, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:26:02', '2023-09-15 10:26:02', 0, 0, '', NULL, '2023-09-15 10:26:02', NULL, '2023-09-15 10:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37253, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:27:55', '2023-09-15 10:27:55', 0, 0, '', NULL, '2023-09-15 10:27:55', NULL, '2023-09-15 10:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37254, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:28:02', '2023-09-15 10:28:02', 0, 0, '', NULL, '2023-09-15 10:28:02', NULL, '2023-09-15 10:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37255, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:28:50', '2023-09-15 10:28:50', 0, 0, '', NULL, '2023-09-15 10:28:50', NULL, '2023-09-15 10:28:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37256, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1qhUFa1zT91G0HA9Ia1pBN351qhUFs\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:28:50', '2023-09-15 10:28:50', 0, 0, '', NULL, '2023-09-15 10:28:50', NULL, '2023-09-15 10:28:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37257, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:28:50', '2023-09-15 10:28:50', 0, 0, '', NULL, '2023-09-15 10:28:50', NULL, '2023-09-15 10:28:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37258, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:29:55', '2023-09-15 10:29:55', 0, 0, '', NULL, '2023-09-15 10:29:55', NULL, '2023-09-15 10:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37259, '', 13, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:29:58', '2023-09-15 10:29:58', 0, 0, '', NULL, '2023-09-15 10:29:58', NULL, '2023-09-15 10:29:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37260, '', 13, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1gEdll2K261c4tukml2faltO1gEdlw\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:29:58', '2023-09-15 10:29:58', 0, 0, '', NULL, '2023-09-15 10:29:58', NULL, '2023-09-15 10:29:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37261, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:30:02', '2023-09-15 10:30:02', 0, 0, '', NULL, '2023-09-15 10:30:02', NULL, '2023-09-15 10:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37262, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:41', '2023-09-15 10:30:41', 0, 0, '', NULL, '2023-09-15 10:30:41', NULL, '2023-09-15 10:30:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37263, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1U5B000WmtGQ1Qpn200jNiEM2U5B0g\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:41', '2023-09-15 10:30:41', 0, 0, '', NULL, '2023-09-15 10:30:41', NULL, '2023-09-15 10:30:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37264, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:41', '2023-09-15 10:30:41', 0, 0, '', NULL, '2023-09-15 10:30:41', NULL, '2023-09-15 10:30:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37265, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37266, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37267, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37268, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37269, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37270, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37271, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:30:44', '2023-09-15 10:30:44', 0, 0, '', NULL, '2023-09-15 10:30:44', NULL, '2023-09-15 10:30:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37272, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 401, '账号未登录', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37273, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37274, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37275, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37276, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37277, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37278, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37279, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/40282 token/1a5f45b706cf75bb3870e5441b56b814 runtime/2', '2023-09-15 10:30:51', '2023-09-15 10:30:51', 0, 0, '', NULL, '2023-09-15 10:30:51', NULL, '2023-09-15 10:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37280, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:31:10', '2023-09-15 10:31:10', 0, 401, '账号未登录', NULL, '2023-09-15 10:31:10', NULL, '2023-09-15 10:31:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37281, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:31:15', '2023-09-15 10:31:15', 0, 401, '账号未登录', NULL, '2023-09-15 10:31:15', NULL, '2023-09-15 10:31:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37282, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:31:23', '2023-09-15 10:31:23', 0, 401, '账号未登录', NULL, '2023-09-15 10:31:23', NULL, '2023-09-15 10:31:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37283, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:31:55', '2023-09-15 10:31:55', 0, 0, '', NULL, '2023-09-15 10:31:55', NULL, '2023-09-15 10:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37284, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:32:02', '2023-09-15 10:32:02', 0, 0, '', NULL, '2023-09-15 10:32:02', NULL, '2023-09-15 10:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37285, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:33:55', '2023-09-15 10:33:55', 0, 0, '', NULL, '2023-09-15 10:33:55', NULL, '2023-09-15 10:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37286, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:34:02', '2023-09-15 10:34:02', 0, 0, '', NULL, '2023-09-15 10:34:02', NULL, '2023-09-15 10:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37287, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:35:55', '2023-09-15 10:35:55', 0, 0, '', NULL, '2023-09-15 10:35:55', NULL, '2023-09-15 10:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37288, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:36:02', '2023-09-15 10:36:02', 0, 0, '', NULL, '2023-09-15 10:36:02', NULL, '2023-09-15 10:36:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37289, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:02', '2023-09-15 10:37:02', 0, 0, '', NULL, '2023-09-15 10:37:02', NULL, '2023-09-15 10:37:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37290, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1rnx0w3eZMl13jnh1w3CWwhQ0rnx0p\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:02', '2023-09-15 10:37:02', 0, 0, '', NULL, '2023-09-15 10:37:02', NULL, '2023-09-15 10:37:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37291, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:02', '2023-09-15 10:37:02', 0, 0, '', NULL, '2023-09-15 10:37:02', NULL, '2023-09-15 10:37:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37292, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37293, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 401, '账号未登录', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37294, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37295, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37296, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37297, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37298, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37299, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:22', '2023-09-15 10:37:22', 0, 0, '', NULL, '2023-09-15 10:37:22', NULL, '2023-09-15 10:37:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37300, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:39', '2023-09-15 10:37:39', 0, 0, '', NULL, '2023-09-15 10:37:39', NULL, '2023-09-15 10:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37301, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/7 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:39', '2023-09-15 10:37:39', 0, 0, '', NULL, '2023-09-15 10:37:39', NULL, '2023-09-15 10:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37302, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/7 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:39', '2023-09-15 10:37:39', 0, 0, '', NULL, '2023-09-15 10:37:39', NULL, '2023-09-15 10:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37303, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1ZHb2w3bnxo13JVj0w3YKiG04ZHb2e\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:39', '2023-09-15 10:37:39', 0, 0, '', NULL, '2023-09-15 10:37:39', NULL, '2023-09-15 10:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37304, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:37:41', '2023-09-15 10:37:41', 0, 0, '', NULL, '2023-09-15 10:37:41', NULL, '2023-09-15 10:37:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37305, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37306, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37307, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37308, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37309, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37310, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/13374 token/ea7c26f96bbdd234045eb8e62cff1213 runtime/2', '2023-09-15 10:37:42', '2023-09-15 10:37:42', 0, 0, '', NULL, '2023-09-15 10:37:42', NULL, '2023-09-15 10:37:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37311, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:37:55', '2023-09-15 10:37:55', 0, 0, '', NULL, '2023-09-15 10:37:55', NULL, '2023-09-15 10:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37312, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:38:02', '2023-09-15 10:38:02', 0, 0, '', NULL, '2023-09-15 10:38:02', NULL, '2023-09-15 10:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37313, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:39:55', '2023-09-15 10:39:55', 0, 0, '', NULL, '2023-09-15 10:39:55', NULL, '2023-09-15 10:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37314, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:39:57', '2023-09-15 10:39:57', 0, 0, '', NULL, '2023-09-15 10:39:57', NULL, '2023-09-15 10:39:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37315, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1Ty3000072HQ1bpj000kuveu4Ty30S\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:39:57', '2023-09-15 10:39:57', 0, 0, '', NULL, '2023-09-15 10:39:57', NULL, '2023-09-15 10:39:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37316, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:39:57', '2023-09-15 10:39:57', 0, 0, '', NULL, '2023-09-15 10:39:57', NULL, '2023-09-15 10:39:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37317, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:40:02', '2023-09-15 10:40:02', 0, 0, '', NULL, '2023-09-15 10:40:02', NULL, '2023-09-15 10:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37318, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:40:04', '2023-09-15 10:40:04', 0, 0, '', NULL, '2023-09-15 10:40:04', NULL, '2023-09-15 10:40:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37319, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37320, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37321, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37322, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37323, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37324, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/16361 token/01f21b7e539e1fc2fb9d716cc3076ca4 runtime/2', '2023-09-15 10:40:05', '2023-09-15 10:40:05', 0, 0, '', NULL, '2023-09-15 10:40:05', NULL, '2023-09-15 10:40:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37325, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1jJm1w3Lfan13msf1w320c8U1jJm15\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:24', '2023-09-15 10:40:24', 0, 0, '', NULL, '2023-09-15 10:40:24', NULL, '2023-09-15 10:40:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37326, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:50', '2023-09-15 10:40:50', 0, 0, '', NULL, '2023-09-15 10:40:50', NULL, '2023-09-15 10:40:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37327, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1EKHnl2aG13c4VXVnl2fO0ci0EKHnV\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:51', '2023-09-15 10:40:51', 0, 0, '', NULL, '2023-09-15 10:40:51', NULL, '2023-09-15 10:40:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37328, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:51', '2023-09-15 10:40:51', 0, 0, '', NULL, '2023-09-15 10:40:51', NULL, '2023-09-15 10:40:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37329, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37330, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37331, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37332, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37333, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37334, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37335, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:40:57', '2023-09-15 10:40:57', 0, 0, '', NULL, '2023-09-15 10:40:57', NULL, '2023-09-15 10:40:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37336, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:41:55', '2023-09-15 10:41:55', 0, 0, '', NULL, '2023-09-15 10:41:55', NULL, '2023-09-15 10:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37337, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:42:02', '2023-09-15 10:42:02', 0, 0, '', NULL, '2023-09-15 10:42:02', NULL, '2023-09-15 10:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37338, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:43:55', '2023-09-15 10:43:55', 0, 0, '', NULL, '2023-09-15 10:43:55', NULL, '2023-09-15 10:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37339, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1gO30003B2HQ1Xrc000h99qn4gO30E\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:44:01', '2023-09-15 10:44:01', 0, 0, '', NULL, '2023-09-15 10:44:01', NULL, '2023-09-15 10:44:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37340, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:44:02', '2023-09-15 10:44:02', 0, 0, '', NULL, '2023-09-15 10:44:02', NULL, '2023-09-15 10:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37341, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:45:55', '2023-09-15 10:45:55', 0, 0, '', NULL, '2023-09-15 10:45:55', NULL, '2023-09-15 10:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37342, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:46:02', '2023-09-15 10:46:02', 0, 0, '', NULL, '2023-09-15 10:46:02', NULL, '2023-09-15 10:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37343, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:47:55', '2023-09-15 10:47:55', 0, 0, '', NULL, '2023-09-15 10:47:55', NULL, '2023-09-15 10:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37344, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:48:03', '2023-09-15 10:48:03', 0, 0, '', NULL, '2023-09-15 10:48:03', NULL, '2023-09-15 10:48:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37345, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:49:55', '2023-09-15 10:49:55', 0, 0, '', NULL, '2023-09-15 10:49:55', NULL, '2023-09-15 10:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37346, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:50:02', '2023-09-15 10:50:02', 0, 0, '', NULL, '2023-09-15 10:50:02', NULL, '2023-09-15 10:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37347, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:50:47', '2023-09-15 10:50:47', 0, 0, '', NULL, '2023-09-15 10:50:47', NULL, '2023-09-15 10:50:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37348, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:51:55', '2023-09-15 10:51:55', 0, 0, '', NULL, '2023-09-15 10:51:55', NULL, '2023-09-15 10:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37349, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:51:59', '2023-09-15 10:51:59', 0, 0, '', NULL, '2023-09-15 10:51:59', NULL, '2023-09-15 10:51:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37350, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:53:17', '2023-09-15 10:53:17', 0, 0, '', NULL, '2023-09-15 10:53:17', NULL, '2023-09-15 10:53:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37351, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:53:17', '2023-09-15 10:53:17', 0, 0, '', NULL, '2023-09-15 10:53:17', NULL, '2023-09-15 10:53:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37352, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:53:17', '2023-09-15 10:53:17', 0, 0, '', NULL, '2023-09-15 10:53:17', NULL, '2023-09-15 10:53:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37353, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:53:55', '2023-09-15 10:53:55', 0, 0, '', NULL, '2023-09-15 10:53:55', NULL, '2023-09-15 10:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37354, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:53:59', '2023-09-15 10:53:59', 0, 0, '', NULL, '2023-09-15 10:53:59', NULL, '2023-09-15 10:53:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37355, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:55:55', '2023-09-15 10:55:55', 0, 0, '', NULL, '2023-09-15 10:55:55', NULL, '2023-09-15 10:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37356, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:55:59', '2023-09-15 10:55:59', 0, 0, '', NULL, '2023-09-15 10:55:59', NULL, '2023-09-15 10:55:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37357, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:57:55', '2023-09-15 10:57:55', 0, 0, '', NULL, '2023-09-15 10:57:55', NULL, '2023-09-15 10:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37358, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:57:59', '2023-09-15 10:57:59', 0, 0, '', NULL, '2023-09-15 10:57:59', NULL, '2023-09-15 10:57:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37359, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"26\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 10:59:22', '2023-09-15 10:59:22', 0, 0, '', NULL, '2023-09-15 10:59:22', NULL, '2023-09-15 10:59:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37360, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:59:55', '2023-09-15 10:59:55', 0, 0, '', NULL, '2023-09-15 10:59:55', NULL, '2023-09-15 10:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37361, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 10:59:59', '2023-09-15 10:59:59', 0, 0, '', NULL, '2023-09-15 10:59:59', NULL, '2023-09-15 10:59:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37362, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"26\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 11:00:44', '2023-09-15 11:00:44', 0, 0, '', NULL, '2023-09-15 11:00:44', NULL, '2023-09-15 11:00:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37363, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:01:55', '2023-09-15 11:01:55', 0, 0, '', NULL, '2023-09-15 11:01:55', NULL, '2023-09-15 11:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37364, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:01:59', '2023-09-15 11:01:59', 0, 0, '', NULL, '2023-09-15 11:01:59', NULL, '2023-09-15 11:01:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37365, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:03:55', '2023-09-15 11:03:55', 0, 0, '', NULL, '2023-09-15 11:03:55', NULL, '2023-09-15 11:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37366, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:04:02', '2023-09-15 11:04:02', 0, 0, '', NULL, '2023-09-15 11:04:02', NULL, '2023-09-15 11:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37367, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:05:55', '2023-09-15 11:05:55', 0, 0, '', NULL, '2023-09-15 11:05:55', NULL, '2023-09-15 11:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37368, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:06:02', '2023-09-15 11:06:02', 0, 0, '', NULL, '2023-09-15 11:06:02', NULL, '2023-09-15 11:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37369, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:07:55', '2023-09-15 11:07:55', 0, 0, '', NULL, '2023-09-15 11:07:55', NULL, '2023-09-15 11:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37370, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:08:02', '2023-09-15 11:08:02', 0, 0, '', NULL, '2023-09-15 11:08:02', NULL, '2023-09-15 11:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37371, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:09:55', '2023-09-15 11:09:55', 0, 0, '', NULL, '2023-09-15 11:09:55', NULL, '2023-09-15 11:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37372, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:10:02', '2023-09-15 11:10:02', 0, 0, '', NULL, '2023-09-15 11:10:02', NULL, '2023-09-15 11:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37373, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:11:55', '2023-09-15 11:11:55', 0, 0, '', NULL, '2023-09-15 11:11:55', NULL, '2023-09-15 11:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37374, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:12:02', '2023-09-15 11:12:02', 0, 0, '', NULL, '2023-09-15 11:12:02', NULL, '2023-09-15 11:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37375, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:13:55', '2023-09-15 11:13:55', 0, 0, '', NULL, '2023-09-15 11:13:55', NULL, '2023-09-15 11:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37376, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:14:02', '2023-09-15 11:14:02', 0, 0, '', NULL, '2023-09-15 11:14:02', NULL, '2023-09-15 11:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37377, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:15:26', '2023-09-15 11:15:26', 0, 0, '', NULL, '2023-09-15 11:15:26', NULL, '2023-09-15 11:15:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37378, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:15:26', '2023-09-15 11:15:26', 0, 0, '', NULL, '2023-09-15 11:15:26', NULL, '2023-09-15 11:15:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37379, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:15:55', '2023-09-15 11:15:55', 0, 0, '', NULL, '2023-09-15 11:15:55', NULL, '2023-09-15 11:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37380, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:16:02', '2023-09-15 11:16:02', 0, 0, '', NULL, '2023-09-15 11:16:02', NULL, '2023-09-15 11:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37381, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/service/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"用户协议\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"type\\\":\\\"content\\\",\\\"content\\\":\\\"


软件许可及服务协议 (以下称”本协议”) 由您与河南星品科技有限公司(以下称“我们”)共同签署使用shopro商城软件(以下称许可软件)之前,请您仔细阅读本协议,特别是免除或者限制责任的条款、法律适用和争议解决条款免除或者限制责任的条款将以粗体标识,您需要重点阅读。如您对协议有任何疑问,可向客服咨询。如果您同意接受本协议条款和条件的约束,您可下载安装使用许可软件。我们如修改本协议或其补充协议,协议条款修改后,请您仔细阅读并接受修改后的协议后再继续使用许可软件。

本协议是您与我们之间关于您下载、安装、使用、登录本软件,以及使用本软件服务所订立的协议.

授权范围

1由于软件适配等台及终然限制。您名仅可在获授权的系统平台及终端使用许可软件,如将许可软件安装在其他终端设备上(括台式电脑、手提电脑、或授权终端外的其他手持移动终端、电现您应该理解许可软件仅可用于非商业目的,您不可为商业运营目的安装、使用、运行许可软件。3会对诗可软件及其相关能不时进行更、开级、修或,并会在许可软件系统中开发浙的功成其它服务,上冰新的以能、软件服务如无缺立场议的,仍司取得相应对能或服务的授权。、使用规范.您应该规范使用许可软件,以下方式是违反使用规范的:(1)从事违反法律法规政策、破坏公序良俗、损害公共利益的行为。(2)对许可软件及其中的相关信息自出租、出借、复制、修、能接、转载、汇编、发表、出版、建立像站点,借助许可软件发展与之有关的衍生产品、作品、服务、插件、外挂、容、互联等(3)通过非由我们及其关联公司开发、授权或认可的第三方兼容软件、系统登录或使用许可软件,或针对许可软件使用非我们及其关联公司开发、授权或认证的插件和外挂(4)删除许可软件及其他副本上关于版权的信息、内容。修改、删除或避开应用产品中我们为保护知识产权而设置的任何技术措施。未经我们的书面同意,擅自将许可软件出租、出借或再许可给第三方使用,或在获得许可软件的升级版本的许可使用后,同时使用多个版本的许可使用版本,或分开转让5)a大1?落存任制名营信息网络交全的行为,包括使用计司软件时以任何方式提坏或破不许可软件或使其不能运行或起负荷或干跃第=方对许软件的使用;未经允许进入他人计算机系统并制除、修改、增(8)利用许可软件发表、传送、传播、储存侵害他人知识产权、商业秘密权等合法权利的内容,或从事欺诈、盗用他人账户、资金等违法犯罪活动,(9)通过修改或伪造许可软件运行中的指令、数据、数包,增加、删减、变动许可软件的功能或运行效果,及/或将具有 上述用途的软件通过信息网络向公众传播或者运营(10)其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议不一致的方式使用许可软件。您理解并同意(1)我们会对您是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依约可采取的限制措施(2)对于您使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,我们会直接予以删除。(3)对于您违反上述使用规范的行为对任意第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保我们免于因此产生损失或增加费用。(4)如违反有关法律或者本协议之规定,使我们准受任何损失,或受到任何第三方的索赔,或受到任何行政管理门的处,应当赔偿我们因此造成的损失及(或)发生的费用,包括合理的律师秀

、第三方软件或服务

,许可软件可能使用或包含了由第三方提供的软件或服务(以下称该等服务了向您提供便利而设置,是取得该第三方的合法授权的3第点化的名供东该然是。美门 所 友成服博” 高但提当热用报风,的队, 们共中办本中中里了限务的任的权利,也大亲能建解许司较件车当锁律甲营摔的表框将较件搞金贫掉用来息追等服务,也无法保证将求不会他或包含该路三方的同关里或不同关亚的做件或服务或其他第三方的软4您理餐第二方需妻与核们进行您的信皇交与以便里好账人您提供服务,您同意在许司软件时使用该等服务的,然授们依《启私协议》 使用许可软件的信息传递给该第二方,或从该第系国。果该力端认您反了与之回关于使用该等服务的协议约定停止对提供该等服务并要求我们处理的会影响您继续使用许可软件,我们可能会中止、终止对

、隐私政策与数据

保护缘的人信息对我们很重要,我们制定了 德私协议》,您的信息收集、使用、共享、存、保等方面关系您切身利益的内容进行了重要,我们建议念完整地问读像私协议》,以帮助您更

、特别授权

nenn he、无担保和责任限制1.除法律法规有明确规定外,我们将尽最大努力确保许可软件及其所涉及的技术及信息安全、有效、准、可靠,但受限于现有技术,您理解我们不能对此进行担保。您理解,对于不可抗力及第三方原因导致的您的直接或间接损失,我们无法承担责任。.由于您因下述任一情况所起或与有关的人身伤害或附带的、间接的损害赔偿,包括但不限于利润损失、资料损失、业务中断的损害赔偿或其它商业损害赔偿或损失,需由您自行承担(1)使用或未能使用许可软件(2)第三方未经批准的使用许可软件或更改您的数据(3使用许可软件进行的行为产生的费用及损失;

(4)您对许可软件的误解;

(5)非因我们的原因而引起的与许可软件有关的其它损失在肃车部机感续越切开发#正式发布的美它例由许门软件书生的软件均民非法,下双、安装、使用此奖饮件,可能导政不可顶的风险,由此一生的法律责任与好与我们无关,我们有权中止、终1,您与其他使用许可软件的用户之间通过许可软件进行时,因您受误导或欺而导致或可能导致的任何心理、生理上的伤害以及经济上的损失,均应由过错方依法承担所有责任。八、知识产权1,我们拥有许可软件的著作权、商业秘察以及其他相关的知识产权,包括与许可软件有关的各种文档资料。象想关教需召盘们及缺们的人联公的知识一权,开资至阳关认法规的保未经们明说权,您不传复制、、使用或发布上标识,也不修改或湖味府用广品中体现我们及其,未经我们及我们的关联公司事先书面同意,您不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何第三方实施、利用、转让上述知识产九、协议终止和违约责任,您应理解按授权范围使用许可软件、尊重软件及软件包含内容的知识产权、按规范使用软件、技本协议约定履行义务是您获取我们授权使用软件的前提,如您严重违反本协议,我们将终止使用许可对软件的使用有载们关公司提供的配套服务,您违反与或我们关联公司条款、协议、规则、通告等相关规定,而被 述任 网站终止提供服务的,可能导致察无法正常使用许可软员想头进没起好为遭费学的且 界部电的第 减的图流公作,为对的济 早以公该条港开晚们快的与和的定进行处的,则们4.一旦怒违反本协议或与我们签订的其他协议的约定,我何通我们关联公司,要求其对的权益采取限制惜施,包活要求关联公司中止、终止对您提供份或全部服务,且在其经营或实际控制的网5许司款件电部下核平台下联取得,要要子下鞍台、系统平台、终 商对使许可软件方北与限的的定,如果上绝=方确认加土反读约定需要我们外理的,现们可能会因第三方要求终16.在本使用许可终止时,您应停止对许可软件的使用行为,并销毁许可软件的全部副本。7,如您违反本协议规定的条款,给我们或其他用户造成损失,您必须承担全部的赔偿责任,如我们承担了上述责任,则您同意赔偿我们的相关支出和失,包括合理的律师费用、管辖法律和可分割性,本协议之效力、解释、变更、执行与争议解决均适用中华人民共和国法律,如无相关法律规定的,则应参照通用国际商业惯例和(或)行业惯例.本协议由您与我们在郑州市金水区签署。因本协议产生或与本协议有关的争议,可与我们以友好协商的方式予以解决或提交有管辖权的人民法院予以裁决本协议任何条款被有管辖权的人民法院裁定为无效,不应影响其他条款或其任何部分的效力,您与我们仍应善意履行我们同能报都北多调而变更自您提供软件服多的主体,空史后的土休与您共同涨行本协议并向提供服务,以上安更不会响怒本协议项下的权益。发生争议时,您可根怒抱具体使用的服股务及对您8

.本协议的所有标题仅仅是为了醒目及阅读方便,本身并没有实际通义,不能作为解释本协议通义的依据

\\\",\\\"status\\\":0}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:16:05', '2023-09-15 11:16:05', 0, 0, '', NULL, '2023-09-15 11:16:05', NULL, '2023-09-15 11:16:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37382, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:16:05', '2023-09-15 11:16:05', 0, 0, '', NULL, '2023-09-15 11:16:05', NULL, '2023-09-15 11:16:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37383, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:17:55', '2023-09-15 11:17:55', 0, 0, '', NULL, '2023-09-15 11:17:55', NULL, '2023-09-15 11:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37384, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:18:04', '2023-09-15 11:18:04', 0, 0, '', NULL, '2023-09-15 11:18:04', NULL, '2023-09-15 11:18:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37385, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{\"total\":\"0\",\"size\":\"100\",\"page\":\"1\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:18:17', '2023-09-15 11:18:17', 0, 0, '', NULL, '2023-09-15 11:18:17', NULL, '2023-09-15 11:18:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37386, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material/page', '{\"query\":{\"descs\":\"create_time\",\"size\":\"12\",\"page\":\"0\",\"sort\":\"create_time,desc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:18:17', '2023-09-15 11:18:17', 0, 0, '', NULL, '2023-09-15 11:18:17', NULL, '2023-09-15 11:18:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37387, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/service/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"隐私政策\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\\\",\\\"type\\\":\\\"content\\\",\\\"content\\\":\\\"

河南星品科技有限公司《以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的人人信息安全可靠。我们致力于维持您对我们的信任恪守以下原则,保护您的个人信息:权责一致原则、目的明原则、选择同意原则、最少够里原则、确保安全原则、主体参与原则,公开透明原则等同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。请在使用我们的shopro商城前,仔细阅读并了解本《隐私协议》、我们如何收集和使用您的个人信息个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:(一) 为您提供网上购物服务1、业务功能一: 注册成为用户为完成创建账号,您需提供以下信息: 您的姓名、手机号、创建的密码。在注州过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮号、呢称、头像、银行卡 身份证,但如果您不提供这些信息,将不会影响使用本服务的基本功能您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。

2、业务功能二:商品展示、个性化推荐、发送促销营销信息。

(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、ioS广告标识符 (IDFA)、安卓广告主标识、网卡 MAC 地国际杨设识别码 (ME) 、设号、终端制造 商、终端没作系统版本 会启司/停上时间、语言所在地 时区和网络态 WF等)、硬盘、CPU和电池传

用情况等。

(三) 其他使用情况

当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意,当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意.二、我们如何使用 Cookie 和同类技术

-) ooke万保风正常运药,我们会的-复机或备上名为 ke 文。oke 学包 站点以及-些号和字。助于 ooke。风是在的好或购物篮内的商品等数据。我不会将 Cookie 用于本政策所述目的之外的任何用途,您根自己的偏好管理或除 Cookie,您以清除计算上保存的所有 ookie,大部分网络浏览都设有阻止 Cookie 的能。(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。g,我们向您发送的电子生可能金有胜接至我刚内家的点走 LRL。如里您点击该能接,我们则会院业次点走,我们了解续的产品或明务好并改善客产务,网些信标国堂是一种我入到站或电子部件中的透明图像,借助于电子部件中的像索标签,我们能够获知电子部件是否打开。如果您不希望自己的活动以这种方式被追踪,则可以随时以我们的寄信名单中退订,(三) Do Not Track (请勿追踪)很多网络浏览露均设有 Do Not rack 能,该功向网站发布 D Not ak 请,目前,主要与联网准组织尚未没立相关第来机定网应对此类,但如您的浏览器启用了 DoNotTrack,那么我们的所有网站都会尊重您的选择。

我们如何共享、转让、公开披露您的个人信息

。

(一) 共享

我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外1、在获取明确同意的情况下共享: 获得您的明确同意后,我们会与其他方共享您的人人信息2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。4、与授权合作伙伴共享:仅为实现本私协议中声明的目的,我们的某些服务将由授权合作伙伴提供,我们可能会5合作伙伴共享您的某些个人信息,以提供更好的客产服务和用产体验例如,我们聘请来提供第三方数摆统计和分析服务的公司可能需要采集和问个人数据以进行数统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息

(二) 转让我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:1、在获取明确同意的情况下转让: 获得您的明确同意后,我们会向其他方转让您的个人信息2在涉及合并,收购或产清算时,如涉及到个人信息转让,我们会在要求新的特有您个人信息的公司、织续受得私政策的约束,双我们将要求该公司、组织重新向怒证求授权同意

(三) 开披露

我们仅会在以下情况下,公开披露您的个人信息

1、获得您明确同意后:

2、基于法律的披露: 在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息

四、我们如何保护您的个人信息

(一我们已使用符合业界标准的安全防护惜施保护您提供的个人信息,防止数遭到未经授权问公开孩露、使、修改、损坏或丢失我们会采取一切合理可行的挡施,保护您的个人信息,

,在您的浏览器5“服务” 之间交换数如信用卡信息 时受 SL 加密护,我同时对我们网提供 htps 安全方式:我会用加空技术保数的保空性我们会使用受信教的保护制防止教据遭到恶意政击,我们会部访问控制机制,确保只有授权人员才访问人信息:以及我们会举办安全和隐私保护培课程,加强员工对于保护人人信息重要性的认识,二我会采取一切合理可行的施,确保未收集无关的个人信息,我们只会在达成本政策术目的所需的期限内保留您的个人信息,除主需要延长保留期或受到法律的分许三)与联网并非绝对安全的环境,而且电子部件、即时通讯、及与其他我们用产的交流式并未加密,我们强烈建议您不要通过此类方式发送个人信息,请使用复杂密码,协助我们保证您的账号安全(四)互联网环境并非百分之百安全,我们将尽或担保您发送给我们的信息的安全,如果我们的物理、技术、或管理护设施到破坏,导致信息被非授权访问、公开被露、篡致、或毁坏导致您的合法权益受损,我们将承担相应的法律责任。(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响,我们已采取或将要采取的外置措施您可自主防范和降低风,险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。五、您的权利按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:(一) 访问您的个人信息您有权访问您的人人信息,法律法规规定的例外情况除外。如果您相行使数据访问权,可以通过以下方式自行访问:账户信息。一如果您希望访问或编您的账产中的个人资料信息和支付信息、更政您的密码、添加安全信息或关团您的账产等,您可以通过打开个人中心在设置里找理账产安全执行此类操作,搜索信息一一您可以在“我的”中访问或清除您的填写的历史记录、查看和修改以及管理其他数据。对于您在使用我们的产品或服务过程中产生的其他人人信息,只要我们不需要时多投入,我们会向您提供,如果您相行使数据访问权,请联系shopro客服(二) 更正您的个人信息当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。您可以通过 ”(一)访问您的个人信息”中罗列的方式提出更正申请。

(三) 删除您的个人信息在以下情形中,您可以向我们提出删除个人信息的请求:1、如果我们处理个人信息的行为违反法律法规;2、如果我们收集、使用您的个人信息,却未征得您的同意3、如果我们处理个人信息的行为违反了与您的约定;4、如果您不再使用我们的产品或服务,或您注销了账号5、如果我们不再为您提供产品或服务。

若我们们决定响应您的删除请求,我们还将同时通知从我们获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权当您从我们的服务中删除信息后,我们可能不会立即备份系统中删除相应的信息,但会在备份更新时删除这些信息。(四)改变您授权同意的范围每个业务功能需要一些基本的个人信息才能得以完成(见本协议“第一部分” 。对于外收集的个人信息的收集和使用,您可以随时给予或收回您的授权同意,您可以通过以下方式自行操作: 打shopro商城-我的-设置-账户安全当您收回同意后,我们将不再处理相应的个人信息。但您收回同意的决定,不会影响此前基于您的授权而开展的个人信息处理.

(五)个人信息主体注销账户您随时可注销此前注册的账户,您可以通过以下方式自行操作: 联系shopro客服在注销账户之后,我们将停止为您提供产品或服务,并依据您的要求,删除您的个人信息,法律法规另有规定的除外

(六) 约束信息系统自动决策

七) 响应您的上述请求为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再外理您的请求我们将在三十天内做出答复。如您不满意,还可以通过以下途径投诉:

在某些业务功能中,我们可能仅依据信息系统、算法等在内的非人工自动决策机制做出决定,如果这些决定显者影响您的合法权益,您有权要求我们做出解释,我们也将提供适当的救济方式.

个人中心-投诉建议

对子您合的情球我们原则上不收表。但对多次重复、超合理限度的清,我将情收取-定成本费用,对于那些重复、需要过多技术手段为,需要开发新系外根本上改变现行例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,我们可能会予以拒绝。在以下情形中,按照法律法规要求,我们将无法响应您的请求:1、与国家安全、国防安全有关的:

2、与公共安全、公共卫生、重大公共利益有关的;

3、与犯罪侦查、起诉和审判等有关的;4、有充分证据表明您存在主观恶意或滥田权利的:5、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。六、我们如何处理儿童的个人信息

我们的产品、网站和服务主要面向成人。如果没有父母或监护人的同意,儿童不得创建自己的用户账户。对于经父母同意而收集儿童个人信息的情况,我们只会在受到法律允许、父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息。尽管当地法律和习俗对儿童的定义不同,但我们将不满14周岁的任何人均视为儿童。如果我们发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息,则会设法尽快删除相关数据。七、您的个人信息如何在全球范围转移原则上,我们在中华人民共和国境内收集和产生的个人信息,将存储在中华人民共和国境内。中干我们通时追东全的咨源和条婴提出产品务、高时着、在获得您的授权同高后,您的个人信息可能会被装移到使里产品服务在国家 她区的道外管建区,或者受到来自这些管律区问。类管区可没有不同的教悟保护法,甚至未没立相关法律,在类情况下,我们会保您的个人信息得到在中华人民共和国境内足够同等的果护,1,我会求您对资境转移个人信息的同意或者在跨境数据转移之前实施数据去标识化等安全举措。八、本隐私协议如何更新找们J适时会对本总私协议进行调警或受奥本隐私协议小任何更新将以标汁更新时目队力式公什什我们网站上,余法律法规或监管规足另有经请警或受男的人谷经通知或公布后的日后生效。如您在隐私协议调整或变更后继续使用我们提供的任一服务或访问我们相关风站的,我们相信这代表您充分阅读、理解并接受修改后的隐和协议并受其约束,九、第三方SDK以及说明应用所集的第二方SDK:comigexin.sdk个准送)、com g gysdk/com.xaomimpush小米小米送、cmgetu数用,)、mhuaweilhms 华为为送、mamap.api高德图高德导航高德定阿里高德地图高德、om huawelagcomned 为为联用、cmalpay宝阿里乘车码阿里艺信实名认证艺以证、com.xlaomipush小小米推送)。我的产品基于DCouorun-appApp/Map2App发,应用行间需要收集您的设备一识(ME/nrodD/DEVICE D/DFASIM卡MS-信息)以提供统分务,并通时应用自可数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。

消息推送服务供应商(自启动)

我们可能会烧您的备平台 备商 备品 备识备信息,应列信息、 风经信息以及置相关信息供给合作以性,于为感得只治息在大安术务,我们在向感天消息5,我可能会授权合作伙伴进行链路调节,相互促活被关闭的SDK推送进程,保障您可以及时接收到我们向您准送的消息。使用场景: 推送订单付款、发货、售后以及余额提现、支付等系统类消息

微信一键登录/微信分享/微信支付 (关联启动)

可能获取信息类型;存储的个人文件设备权限: 读取外置存储器、写入外置存储器使用场景:注册登录账号、微信分享、朋友圈分享、微信小程序分享、用户下单付款、订单申请售后支付宝支付(关联启动)

设备权限: 读取网络状态

使用场景: 用户下单付款、订单申请售后隐私政策链接: https://render.alipay.com/p/c/k2cx0tg8高德地图 (自启动)可能获取信息类型 MEI、openid、位置信息设备权限:获取网络状态、访问Wi-F状态、位置信息、访问粗略位置、访问精准定位、读取手机状态和身份使用场景: 同城配送获取地址信息、同城自取自动推荐附近的门店隐私政策: https://lbs.amap.com/agreement/compliance

十、如何联系我们

如果您对本隐私政策有任何疑问、意见或建议,通过以下方式与我们联系:

邮箱: xptech@qg.com

一般情况下,我们将在三十天内回复。

\\\",\\\"status\\\":0}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:18:26', '2023-09-15 11:18:26', 0, 0, '', NULL, '2023-09-15 11:18:26', NULL, '2023-09-15 11:18:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37388, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:18:26', '2023-09-15 11:18:26', 0, 0, '', NULL, '2023-09-15 11:18:26', NULL, '2023-09-15 11:18:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37389, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:19:55', '2023-09-15 11:19:55', 0, 0, '', NULL, '2023-09-15 11:19:55', NULL, '2023-09-15 11:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37390, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:20:04', '2023-09-15 11:20:04', 0, 0, '', NULL, '2023-09-15 11:20:04', NULL, '2023-09-15 11:20:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37391, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:21:55', '2023-09-15 11:21:55', 0, 0, '', NULL, '2023-09-15 11:21:55', NULL, '2023-09-15 11:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37392, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:22:02', '2023-09-15 11:22:02', 0, 0, '', NULL, '2023-09-15 11:22:02', NULL, '2023-09-15 11:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37393, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:23:55', '2023-09-15 11:23:55', 0, 0, '', NULL, '2023-09-15 11:23:55', NULL, '2023-09-15 11:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37394, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:24:02', '2023-09-15 11:24:02', 0, 0, '', NULL, '2023-09-15 11:24:02', NULL, '2023-09-15 11:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37395, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:25:55', '2023-09-15 11:25:55', 0, 0, '', NULL, '2023-09-15 11:25:55', NULL, '2023-09-15 11:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37396, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:26:02', '2023-09-15 11:26:02', 0, 0, '', NULL, '2023-09-15 11:26:02', NULL, '2023-09-15 11:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37397, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:27:55', '2023-09-15 11:27:55', 0, 0, '', NULL, '2023-09-15 11:27:55', NULL, '2023-09-15 11:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37398, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:28:03', '2023-09-15 11:28:03', 0, 0, '', NULL, '2023-09-15 11:28:03', NULL, '2023-09-15 11:28:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37399, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:29:55', '2023-09-15 11:29:55', 0, 0, '', NULL, '2023-09-15 11:29:55', NULL, '2023-09-15 11:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37400, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:30:03', '2023-09-15 11:30:03', 0, 0, '', NULL, '2023-09-15 11:30:03', NULL, '2023-09-15 11:30:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37401, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:31:55', '2023-09-15 11:31:55', 0, 0, '', NULL, '2023-09-15 11:31:55', NULL, '2023-09-15 11:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37402, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:32:02', '2023-09-15 11:32:02', 0, 0, '', NULL, '2023-09-15 11:32:02', NULL, '2023-09-15 11:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37403, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:33:55', '2023-09-15 11:33:55', 0, 0, '', NULL, '2023-09-15 11:33:55', NULL, '2023-09-15 11:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37404, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:34:02', '2023-09-15 11:34:02', 0, 0, '', NULL, '2023-09-15 11:34:02', NULL, '2023-09-15 11:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37405, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:35:55', '2023-09-15 11:35:55', 0, 0, '', NULL, '2023-09-15 11:35:55', NULL, '2023-09-15 11:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37406, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:36:02', '2023-09-15 11:36:02', 0, 0, '', NULL, '2023-09-15 11:36:02', NULL, '2023-09-15 11:36:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37407, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:37:55', '2023-09-15 11:37:55', 0, 0, '', NULL, '2023-09-15 11:37:55', NULL, '2023-09-15 11:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37408, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:38:02', '2023-09-15 11:38:02', 0, 0, '', NULL, '2023-09-15 11:38:02', NULL, '2023-09-15 11:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37409, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:39:55', '2023-09-15 11:39:55', 0, 0, '', NULL, '2023-09-15 11:39:55', NULL, '2023-09-15 11:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37410, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:40:02', '2023-09-15 11:40:02', 0, 0, '', NULL, '2023-09-15 11:40:02', NULL, '2023-09-15 11:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37411, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:41:55', '2023-09-15 11:41:55', 0, 0, '', NULL, '2023-09-15 11:41:55', NULL, '2023-09-15 11:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37412, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:42:02', '2023-09-15 11:42:02', 0, 0, '', NULL, '2023-09-15 11:42:02', NULL, '2023-09-15 11:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37413, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:43:55', '2023-09-15 11:43:55', 0, 0, '', NULL, '2023-09-15 11:43:55', NULL, '2023-09-15 11:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37414, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:44:02', '2023-09-15 11:44:02', 0, 0, '', NULL, '2023-09-15 11:44:02', NULL, '2023-09-15 11:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37415, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:45:55', '2023-09-15 11:45:55', 0, 0, '', NULL, '2023-09-15 11:45:55', NULL, '2023-09-15 11:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37416, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:46:02', '2023-09-15 11:46:02', 0, 0, '', NULL, '2023-09-15 11:46:02', NULL, '2023-09-15 11:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37417, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:47:55', '2023-09-15 11:47:55', 0, 0, '', NULL, '2023-09-15 11:47:55', NULL, '2023-09-15 11:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37418, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:48:02', '2023-09-15 11:48:02', 0, 0, '', NULL, '2023-09-15 11:48:02', NULL, '2023-09-15 11:48:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37419, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:49:55', '2023-09-15 11:49:55', 0, 0, '', NULL, '2023-09-15 11:49:55', NULL, '2023-09-15 11:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37420, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:50:02', '2023-09-15 11:50:02', 0, 0, '', NULL, '2023-09-15 11:50:02', NULL, '2023-09-15 11:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37421, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:51:55', '2023-09-15 11:51:55', 0, 0, '', NULL, '2023-09-15 11:51:55', NULL, '2023-09-15 11:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37422, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:52:02', '2023-09-15 11:52:02', 0, 0, '', NULL, '2023-09-15 11:52:02', NULL, '2023-09-15 11:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37423, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:53:55', '2023-09-15 11:53:55', 0, 0, '', NULL, '2023-09-15 11:53:55', NULL, '2023-09-15 11:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37424, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:54:02', '2023-09-15 11:54:02', 0, 0, '', NULL, '2023-09-15 11:54:02', NULL, '2023-09-15 11:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37425, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:55:55', '2023-09-15 11:55:55', 0, 0, '', NULL, '2023-09-15 11:55:55', NULL, '2023-09-15 11:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37426, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:56:02', '2023-09-15 11:56:02', 0, 0, '', NULL, '2023-09-15 11:56:02', NULL, '2023-09-15 11:56:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37427, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:57:55', '2023-09-15 11:57:55', 0, 0, '', NULL, '2023-09-15 11:57:55', NULL, '2023-09-15 11:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37428, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:58:02', '2023-09-15 11:58:02', 0, 0, '', NULL, '2023-09-15 11:58:02', NULL, '2023-09-15 11:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37429, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 11:59:55', '2023-09-15 11:59:55', 0, 0, '', NULL, '2023-09-15 11:59:55', NULL, '2023-09-15 11:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37430, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:00:03', '2023-09-15 12:00:03', 0, 0, '', NULL, '2023-09-15 12:00:03', NULL, '2023-09-15 12:00:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37431, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:01:55', '2023-09-15 12:01:55', 0, 0, '', NULL, '2023-09-15 12:01:55', NULL, '2023-09-15 12:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37432, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:02:02', '2023-09-15 12:02:02', 0, 0, '', NULL, '2023-09-15 12:02:02', NULL, '2023-09-15 12:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37433, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:03:55', '2023-09-15 12:03:55', 0, 0, '', NULL, '2023-09-15 12:03:55', NULL, '2023-09-15 12:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37434, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:04:02', '2023-09-15 12:04:02', 0, 0, '', NULL, '2023-09-15 12:04:02', NULL, '2023-09-15 12:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37435, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:05:55', '2023-09-15 12:05:55', 0, 0, '', NULL, '2023-09-15 12:05:55', NULL, '2023-09-15 12:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37436, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:06:02', '2023-09-15 12:06:02', 0, 0, '', NULL, '2023-09-15 12:06:02', NULL, '2023-09-15 12:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37437, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:07:55', '2023-09-15 12:07:55', 0, 0, '', NULL, '2023-09-15 12:07:55', NULL, '2023-09-15 12:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37438, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:08:02', '2023-09-15 12:08:02', 0, 0, '', NULL, '2023-09-15 12:08:02', NULL, '2023-09-15 12:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37439, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:09:55', '2023-09-15 12:09:55', 0, 0, '', NULL, '2023-09-15 12:09:55', NULL, '2023-09-15 12:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37440, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:10:02', '2023-09-15 12:10:02', 0, 0, '', NULL, '2023-09-15 12:10:02', NULL, '2023-09-15 12:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37441, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:11:55', '2023-09-15 12:11:55', 0, 0, '', NULL, '2023-09-15 12:11:55', NULL, '2023-09-15 12:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37442, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:12:02', '2023-09-15 12:12:02', 0, 0, '', NULL, '2023-09-15 12:12:02', NULL, '2023-09-15 12:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37443, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:13:55', '2023-09-15 12:13:55', 0, 0, '', NULL, '2023-09-15 12:13:55', NULL, '2023-09-15 12:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37444, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:14:02', '2023-09-15 12:14:02', 0, 0, '', NULL, '2023-09-15 12:14:02', NULL, '2023-09-15 12:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37445, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:15:55', '2023-09-15 12:15:55', 0, 0, '', NULL, '2023-09-15 12:15:55', NULL, '2023-09-15 12:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37446, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:16:02', '2023-09-15 12:16:02', 0, 0, '', NULL, '2023-09-15 12:16:02', NULL, '2023-09-15 12:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37447, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:17:55', '2023-09-15 12:17:55', 0, 0, '', NULL, '2023-09-15 12:17:55', NULL, '2023-09-15 12:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37448, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:18:03', '2023-09-15 12:18:03', 0, 0, '', NULL, '2023-09-15 12:18:03', NULL, '2023-09-15 12:18:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37449, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:19:55', '2023-09-15 12:19:55', 0, 0, '', NULL, '2023-09-15 12:19:55', NULL, '2023-09-15 12:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37450, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:20:02', '2023-09-15 12:20:02', 0, 0, '', NULL, '2023-09-15 12:20:02', NULL, '2023-09-15 12:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37451, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:21:55', '2023-09-15 12:21:55', 0, 0, '', NULL, '2023-09-15 12:21:55', NULL, '2023-09-15 12:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37452, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:22:04', '2023-09-15 12:22:04', 0, 0, '', NULL, '2023-09-15 12:22:04', NULL, '2023-09-15 12:22:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37453, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:23:55', '2023-09-15 12:23:55', 0, 0, '', NULL, '2023-09-15 12:23:55', NULL, '2023-09-15 12:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37454, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:24:02', '2023-09-15 12:24:02', 0, 0, '', NULL, '2023-09-15 12:24:02', NULL, '2023-09-15 12:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37455, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:25:55', '2023-09-15 12:25:55', 0, 0, '', NULL, '2023-09-15 12:25:55', NULL, '2023-09-15 12:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37456, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:26:02', '2023-09-15 12:26:03', 0, 0, '', NULL, '2023-09-15 12:26:03', NULL, '2023-09-15 12:26:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37457, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:27:55', '2023-09-15 12:27:55', 0, 0, '', NULL, '2023-09-15 12:27:55', NULL, '2023-09-15 12:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37458, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:28:02', '2023-09-15 12:28:02', 0, 0, '', NULL, '2023-09-15 12:28:02', NULL, '2023-09-15 12:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37459, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:29:55', '2023-09-15 12:29:55', 0, 0, '', NULL, '2023-09-15 12:29:55', NULL, '2023-09-15 12:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37460, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:30:02', '2023-09-15 12:30:02', 0, 0, '', NULL, '2023-09-15 12:30:02', NULL, '2023-09-15 12:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37461, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:31:55', '2023-09-15 12:31:55', 0, 0, '', NULL, '2023-09-15 12:31:55', NULL, '2023-09-15 12:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37462, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:32:02', '2023-09-15 12:32:02', 0, 0, '', NULL, '2023-09-15 12:32:02', NULL, '2023-09-15 12:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37463, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:33:55', '2023-09-15 12:33:55', 0, 0, '', NULL, '2023-09-15 12:33:55', NULL, '2023-09-15 12:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37464, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:34:02', '2023-09-15 12:34:02', 0, 0, '', NULL, '2023-09-15 12:34:02', NULL, '2023-09-15 12:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37465, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:35:55', '2023-09-15 12:35:55', 0, 0, '', NULL, '2023-09-15 12:35:55', NULL, '2023-09-15 12:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37466, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:36:02', '2023-09-15 12:36:02', 0, 0, '', NULL, '2023-09-15 12:36:02', NULL, '2023-09-15 12:36:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37467, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:37:55', '2023-09-15 12:37:55', 0, 0, '', NULL, '2023-09-15 12:37:55', NULL, '2023-09-15 12:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37468, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:38:02', '2023-09-15 12:38:02', 0, 0, '', NULL, '2023-09-15 12:38:02', NULL, '2023-09-15 12:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37469, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:39:55', '2023-09-15 12:39:55', 0, 0, '', NULL, '2023-09-15 12:39:55', NULL, '2023-09-15 12:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37470, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:40:02', '2023-09-15 12:40:02', 0, 0, '', NULL, '2023-09-15 12:40:02', NULL, '2023-09-15 12:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37471, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:41:55', '2023-09-15 12:41:55', 0, 0, '', NULL, '2023-09-15 12:41:55', NULL, '2023-09-15 12:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37472, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:42:02', '2023-09-15 12:42:02', 0, 0, '', NULL, '2023-09-15 12:42:02', NULL, '2023-09-15 12:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37473, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:43:55', '2023-09-15 12:43:55', 0, 0, '', NULL, '2023-09-15 12:43:55', NULL, '2023-09-15 12:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37474, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:44:02', '2023-09-15 12:44:02', 0, 0, '', NULL, '2023-09-15 12:44:02', NULL, '2023-09-15 12:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37475, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:45:55', '2023-09-15 12:45:55', 0, 0, '', NULL, '2023-09-15 12:45:55', NULL, '2023-09-15 12:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37476, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:46:02', '2023-09-15 12:46:02', 0, 0, '', NULL, '2023-09-15 12:46:02', NULL, '2023-09-15 12:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37477, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:47:55', '2023-09-15 12:47:55', 0, 0, '', NULL, '2023-09-15 12:47:55', NULL, '2023-09-15 12:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37478, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:48:03', '2023-09-15 12:48:03', 0, 0, '', NULL, '2023-09-15 12:48:03', NULL, '2023-09-15 12:48:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37479, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:49:55', '2023-09-15 12:49:55', 0, 0, '', NULL, '2023-09-15 12:49:55', NULL, '2023-09-15 12:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37480, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:50:02', '2023-09-15 12:50:02', 0, 0, '', NULL, '2023-09-15 12:50:02', NULL, '2023-09-15 12:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37481, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:51:55', '2023-09-15 12:51:55', 0, 0, '', NULL, '2023-09-15 12:51:55', NULL, '2023-09-15 12:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37482, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:52:02', '2023-09-15 12:52:02', 0, 0, '', NULL, '2023-09-15 12:52:02', NULL, '2023-09-15 12:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37483, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:53:55', '2023-09-15 12:53:55', 0, 0, '', NULL, '2023-09-15 12:53:55', NULL, '2023-09-15 12:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37484, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:54:02', '2023-09-15 12:54:02', 0, 0, '', NULL, '2023-09-15 12:54:02', NULL, '2023-09-15 12:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37485, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:55:55', '2023-09-15 12:55:55', 0, 0, '', NULL, '2023-09-15 12:55:55', NULL, '2023-09-15 12:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37486, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:56:03', '2023-09-15 12:56:03', 0, 0, '', NULL, '2023-09-15 12:56:03', NULL, '2023-09-15 12:56:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37487, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:57:55', '2023-09-15 12:57:55', 0, 0, '', NULL, '2023-09-15 12:57:55', NULL, '2023-09-15 12:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37488, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:58:02', '2023-09-15 12:58:02', 0, 0, '', NULL, '2023-09-15 12:58:02', NULL, '2023-09-15 12:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37489, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 12:59:56', '2023-09-15 12:59:56', 0, 0, '', NULL, '2023-09-15 12:59:56', NULL, '2023-09-15 12:59:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37490, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:00:02', '2023-09-15 13:00:02', 0, 0, '', NULL, '2023-09-15 13:00:02', NULL, '2023-09-15 13:00:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37491, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:01:55', '2023-09-15 13:01:55', 0, 0, '', NULL, '2023-09-15 13:01:55', NULL, '2023-09-15 13:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37492, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:02:02', '2023-09-15 13:02:02', 0, 0, '', NULL, '2023-09-15 13:02:02', NULL, '2023-09-15 13:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37493, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:03:55', '2023-09-15 13:03:55', 0, 0, '', NULL, '2023-09-15 13:03:55', NULL, '2023-09-15 13:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37494, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:04:02', '2023-09-15 13:04:02', 0, 0, '', NULL, '2023-09-15 13:04:02', NULL, '2023-09-15 13:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37495, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:05:55', '2023-09-15 13:05:55', 0, 0, '', NULL, '2023-09-15 13:05:55', NULL, '2023-09-15 13:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37496, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:06:02', '2023-09-15 13:06:02', 0, 0, '', NULL, '2023-09-15 13:06:02', NULL, '2023-09-15 13:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37497, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:07:55', '2023-09-15 13:07:55', 0, 0, '', NULL, '2023-09-15 13:07:55', NULL, '2023-09-15 13:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37498, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:08:02', '2023-09-15 13:08:02', 0, 0, '', NULL, '2023-09-15 13:08:02', NULL, '2023-09-15 13:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37499, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:09:55', '2023-09-15 13:09:55', 0, 0, '', NULL, '2023-09-15 13:09:55', NULL, '2023-09-15 13:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37500, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:10:02', '2023-09-15 13:10:02', 0, 0, '', NULL, '2023-09-15 13:10:02', NULL, '2023-09-15 13:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37501, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:11:55', '2023-09-15 13:11:55', 0, 0, '', NULL, '2023-09-15 13:11:55', NULL, '2023-09-15 13:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37502, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:12:02', '2023-09-15 13:12:02', 0, 0, '', NULL, '2023-09-15 13:12:02', NULL, '2023-09-15 13:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37503, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:13:55', '2023-09-15 13:13:55', 0, 0, '', NULL, '2023-09-15 13:13:55', NULL, '2023-09-15 13:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37504, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:14:02', '2023-09-15 13:14:02', 0, 0, '', NULL, '2023-09-15 13:14:02', NULL, '2023-09-15 13:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37505, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:15:55', '2023-09-15 13:15:55', 0, 0, '', NULL, '2023-09-15 13:15:55', NULL, '2023-09-15 13:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37506, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:16:02', '2023-09-15 13:16:02', 0, 0, '', NULL, '2023-09-15 13:16:02', NULL, '2023-09-15 13:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37507, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:17:55', '2023-09-15 13:17:55', 0, 0, '', NULL, '2023-09-15 13:17:55', NULL, '2023-09-15 13:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37508, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:18:02', '2023-09-15 13:18:02', 0, 0, '', NULL, '2023-09-15 13:18:02', NULL, '2023-09-15 13:18:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37509, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:19:55', '2023-09-15 13:19:55', 0, 0, '', NULL, '2023-09-15 13:19:55', NULL, '2023-09-15 13:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37510, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:20:02', '2023-09-15 13:20:02', 0, 0, '', NULL, '2023-09-15 13:20:02', NULL, '2023-09-15 13:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37511, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:21:55', '2023-09-15 13:21:55', 0, 0, '', NULL, '2023-09-15 13:21:55', NULL, '2023-09-15 13:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37512, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:22:02', '2023-09-15 13:22:02', 0, 0, '', NULL, '2023-09-15 13:22:02', NULL, '2023-09-15 13:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37513, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:23:55', '2023-09-15 13:23:55', 0, 0, '', NULL, '2023-09-15 13:23:55', NULL, '2023-09-15 13:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37514, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:24:02', '2023-09-15 13:24:02', 0, 0, '', NULL, '2023-09-15 13:24:02', NULL, '2023-09-15 13:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37515, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:25:55', '2023-09-15 13:25:55', 0, 0, '', NULL, '2023-09-15 13:25:55', NULL, '2023-09-15 13:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37516, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:26:02', '2023-09-15 13:26:02', 0, 0, '', NULL, '2023-09-15 13:26:02', NULL, '2023-09-15 13:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37517, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:27:55', '2023-09-15 13:27:55', 0, 0, '', NULL, '2023-09-15 13:27:55', NULL, '2023-09-15 13:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37518, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:28:02', '2023-09-15 13:28:02', 0, 0, '', NULL, '2023-09-15 13:28:02', NULL, '2023-09-15 13:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37519, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:29:55', '2023-09-15 13:29:55', 0, 0, '', NULL, '2023-09-15 13:29:55', NULL, '2023-09-15 13:29:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37520, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:30:02', '2023-09-15 13:30:02', 0, 0, '', NULL, '2023-09-15 13:30:02', NULL, '2023-09-15 13:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37521, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:31:55', '2023-09-15 13:31:55', 0, 0, '', NULL, '2023-09-15 13:31:55', NULL, '2023-09-15 13:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37522, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:32:02', '2023-09-15 13:32:02', 0, 0, '', NULL, '2023-09-15 13:32:02', NULL, '2023-09-15 13:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37523, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:33:55', '2023-09-15 13:33:55', 0, 0, '', NULL, '2023-09-15 13:33:55', NULL, '2023-09-15 13:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37524, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:34:02', '2023-09-15 13:34:02', 0, 0, '', NULL, '2023-09-15 13:34:02', NULL, '2023-09-15 13:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37525, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:35:55', '2023-09-15 13:35:55', 0, 0, '', NULL, '2023-09-15 13:35:55', NULL, '2023-09-15 13:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37526, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:36:02', '2023-09-15 13:36:02', 0, 0, '', NULL, '2023-09-15 13:36:02', NULL, '2023-09-15 13:36:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37527, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:37:55', '2023-09-15 13:37:55', 0, 0, '', NULL, '2023-09-15 13:37:55', NULL, '2023-09-15 13:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37528, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:38:02', '2023-09-15 13:38:02', 0, 0, '', NULL, '2023-09-15 13:38:02', NULL, '2023-09-15 13:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37529, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:39:55', '2023-09-15 13:39:55', 0, 0, '', NULL, '2023-09-15 13:39:55', NULL, '2023-09-15 13:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37530, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:40:02', '2023-09-15 13:40:02', 0, 0, '', NULL, '2023-09-15 13:40:02', NULL, '2023-09-15 13:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37531, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:41:55', '2023-09-15 13:41:55', 0, 0, '', NULL, '2023-09-15 13:41:55', NULL, '2023-09-15 13:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37532, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:42:02', '2023-09-15 13:42:02', 0, 0, '', NULL, '2023-09-15 13:42:02', NULL, '2023-09-15 13:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37533, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:43:55', '2023-09-15 13:43:55', 0, 0, '', NULL, '2023-09-15 13:43:55', NULL, '2023-09-15 13:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37534, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:44:02', '2023-09-15 13:44:02', 0, 0, '', NULL, '2023-09-15 13:44:02', NULL, '2023-09-15 13:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37535, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:45:55', '2023-09-15 13:45:55', 0, 0, '', NULL, '2023-09-15 13:45:55', NULL, '2023-09-15 13:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37536, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:46:02', '2023-09-15 13:46:02', 0, 0, '', NULL, '2023-09-15 13:46:02', NULL, '2023-09-15 13:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37537, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:47:55', '2023-09-15 13:47:55', 0, 0, '', NULL, '2023-09-15 13:47:55', NULL, '2023-09-15 13:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37538, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:48:02', '2023-09-15 13:48:02', 0, 0, '', NULL, '2023-09-15 13:48:02', NULL, '2023-09-15 13:48:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37539, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:49:55', '2023-09-15 13:49:55', 0, 0, '', NULL, '2023-09-15 13:49:55', NULL, '2023-09-15 13:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37540, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:50:02', '2023-09-15 13:50:02', 0, 0, '', NULL, '2023-09-15 13:50:02', NULL, '2023-09-15 13:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37541, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:51:55', '2023-09-15 13:51:55', 0, 0, '', NULL, '2023-09-15 13:51:55', NULL, '2023-09-15 13:51:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37542, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:52:03', '2023-09-15 13:52:03', 0, 0, '', NULL, '2023-09-15 13:52:03', NULL, '2023-09-15 13:52:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37543, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:53:55', '2023-09-15 13:53:55', 0, 0, '', NULL, '2023-09-15 13:53:55', NULL, '2023-09-15 13:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37544, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:54:03', '2023-09-15 13:54:03', 0, 0, '', NULL, '2023-09-15 13:54:03', NULL, '2023-09-15 13:54:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37545, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:55:55', '2023-09-15 13:55:55', 0, 0, '', NULL, '2023-09-15 13:55:55', NULL, '2023-09-15 13:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37546, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:56:03', '2023-09-15 13:56:03', 0, 0, '', NULL, '2023-09-15 13:56:03', NULL, '2023-09-15 13:56:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37547, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:57:55', '2023-09-15 13:57:55', 0, 0, '', NULL, '2023-09-15 13:57:55', NULL, '2023-09-15 13:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37548, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:58:03', '2023-09-15 13:58:03', 0, 0, '', NULL, '2023-09-15 13:58:03', NULL, '2023-09-15 13:58:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37549, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 13:59:55', '2023-09-15 13:59:55', 0, 0, '', NULL, '2023-09-15 13:59:55', NULL, '2023-09-15 13:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37550, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:00:03', '2023-09-15 14:00:03', 0, 0, '', NULL, '2023-09-15 14:00:03', NULL, '2023-09-15 14:00:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37551, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:01:55', '2023-09-15 14:01:55', 0, 0, '', NULL, '2023-09-15 14:01:55', NULL, '2023-09-15 14:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37552, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:02:03', '2023-09-15 14:02:03', 0, 0, '', NULL, '2023-09-15 14:02:03', NULL, '2023-09-15 14:02:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37553, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:03:55', '2023-09-15 14:03:55', 0, 0, '', NULL, '2023-09-15 14:03:55', NULL, '2023-09-15 14:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37554, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:04:03', '2023-09-15 14:04:03', 0, 0, '', NULL, '2023-09-15 14:04:03', NULL, '2023-09-15 14:04:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37555, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:05:55', '2023-09-15 14:05:55', 0, 0, '', NULL, '2023-09-15 14:05:55', NULL, '2023-09-15 14:05:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37556, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:06:03', '2023-09-15 14:06:03', 0, 0, '', NULL, '2023-09-15 14:06:03', NULL, '2023-09-15 14:06:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37557, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:07:55', '2023-09-15 14:07:55', 0, 0, '', NULL, '2023-09-15 14:07:55', NULL, '2023-09-15 14:07:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37558, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:08:02', '2023-09-15 14:08:02', 0, 0, '', NULL, '2023-09-15 14:08:02', NULL, '2023-09-15 14:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37559, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:09:55', '2023-09-15 14:09:55', 0, 0, '', NULL, '2023-09-15 14:09:55', NULL, '2023-09-15 14:09:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37560, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:10:02', '2023-09-15 14:10:02', 0, 0, '', NULL, '2023-09-15 14:10:02', NULL, '2023-09-15 14:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37561, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:11:55', '2023-09-15 14:11:55', 0, 0, '', NULL, '2023-09-15 14:11:55', NULL, '2023-09-15 14:11:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37562, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:12:02', '2023-09-15 14:12:02', 0, 0, '', NULL, '2023-09-15 14:12:02', NULL, '2023-09-15 14:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37563, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:13:55', '2023-09-15 14:13:55', 0, 0, '', NULL, '2023-09-15 14:13:55', NULL, '2023-09-15 14:13:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37564, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:14:02', '2023-09-15 14:14:02', 0, 0, '', NULL, '2023-09-15 14:14:02', NULL, '2023-09-15 14:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37565, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:15:55', '2023-09-15 14:15:55', 0, 0, '', NULL, '2023-09-15 14:15:55', NULL, '2023-09-15 14:15:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37566, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:16:02', '2023-09-15 14:16:02', 0, 0, '', NULL, '2023-09-15 14:16:02', NULL, '2023-09-15 14:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37567, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:17:55', '2023-09-15 14:17:55', 0, 0, '', NULL, '2023-09-15 14:17:55', NULL, '2023-09-15 14:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37568, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:18:03', '2023-09-15 14:18:03', 0, 0, '', NULL, '2023-09-15 14:18:03', NULL, '2023-09-15 14:18:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37569, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:19:55', '2023-09-15 14:19:55', 0, 0, '', NULL, '2023-09-15 14:19:55', NULL, '2023-09-15 14:19:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37570, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:20:02', '2023-09-15 14:20:02', 0, 0, '', NULL, '2023-09-15 14:20:02', NULL, '2023-09-15 14:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37571, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:21:55', '2023-09-15 14:21:55', 0, 0, '', NULL, '2023-09-15 14:21:55', NULL, '2023-09-15 14:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37572, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:22:02', '2023-09-15 14:22:02', 0, 0, '', NULL, '2023-09-15 14:22:02', NULL, '2023-09-15 14:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37573, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:23:55', '2023-09-15 14:23:55', 0, 0, '', NULL, '2023-09-15 14:23:55', NULL, '2023-09-15 14:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37574, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:24:03', '2023-09-15 14:24:03', 0, 0, '', NULL, '2023-09-15 14:24:03', NULL, '2023-09-15 14:24:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37575, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:25:55', '2023-09-15 14:25:55', 0, 0, '', NULL, '2023-09-15 14:25:55', NULL, '2023-09-15 14:25:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37576, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:26:04', '2023-09-15 14:26:04', 0, 0, '', NULL, '2023-09-15 14:26:04', NULL, '2023-09-15 14:26:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37577, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:27:55', '2023-09-15 14:27:55', 0, 0, '', NULL, '2023-09-15 14:27:55', NULL, '2023-09-15 14:27:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37578, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:28:03', '2023-09-15 14:28:03', 0, 0, '', NULL, '2023-09-15 14:28:03', NULL, '2023-09-15 14:28:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37579, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:29:56', '2023-09-15 14:29:56', 0, 0, '', NULL, '2023-09-15 14:29:56', NULL, '2023-09-15 14:29:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37580, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:30:03', '2023-09-15 14:30:03', 0, 0, '', NULL, '2023-09-15 14:30:03', NULL, '2023-09-15 14:30:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37581, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:31:55', '2023-09-15 14:31:55', 0, 0, '', NULL, '2023-09-15 14:31:55', NULL, '2023-09-15 14:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37582, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:32:03', '2023-09-15 14:32:03', 0, 0, '', NULL, '2023-09-15 14:32:03', NULL, '2023-09-15 14:32:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37583, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:33:55', '2023-09-15 14:33:55', 0, 0, '', NULL, '2023-09-15 14:33:55', NULL, '2023-09-15 14:33:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37584, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:34:03', '2023-09-15 14:34:03', 0, 0, '', NULL, '2023-09-15 14:34:03', NULL, '2023-09-15 14:34:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37585, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:35:55', '2023-09-15 14:35:55', 0, 0, '', NULL, '2023-09-15 14:35:55', NULL, '2023-09-15 14:35:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37586, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:36:03', '2023-09-15 14:36:03', 0, 0, '', NULL, '2023-09-15 14:36:03', NULL, '2023-09-15 14:36:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37587, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:37:55', '2023-09-15 14:37:55', 0, 0, '', NULL, '2023-09-15 14:37:55', NULL, '2023-09-15 14:37:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37588, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:38:03', '2023-09-15 14:38:03', 0, 0, '', NULL, '2023-09-15 14:38:03', NULL, '2023-09-15 14:38:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37589, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:39:55', '2023-09-15 14:39:55', 0, 0, '', NULL, '2023-09-15 14:39:55', NULL, '2023-09-15 14:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37590, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:40:03', '2023-09-15 14:40:03', 0, 0, '', NULL, '2023-09-15 14:40:03', NULL, '2023-09-15 14:40:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37591, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:41:55', '2023-09-15 14:41:55', 0, 0, '', NULL, '2023-09-15 14:41:55', NULL, '2023-09-15 14:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37592, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:42:02', '2023-09-15 14:42:02', 0, 0, '', NULL, '2023-09-15 14:42:02', NULL, '2023-09-15 14:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37593, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:43:55', '2023-09-15 14:43:55', 0, 0, '', NULL, '2023-09-15 14:43:55', NULL, '2023-09-15 14:43:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37594, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:44:02', '2023-09-15 14:44:02', 0, 0, '', NULL, '2023-09-15 14:44:02', NULL, '2023-09-15 14:44:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37595, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:45:55', '2023-09-15 14:45:55', 0, 0, '', NULL, '2023-09-15 14:45:55', NULL, '2023-09-15 14:45:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37596, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:46:03', '2023-09-15 14:46:03', 0, 0, '', NULL, '2023-09-15 14:46:03', NULL, '2023-09-15 14:46:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37597, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:47:55', '2023-09-15 14:47:55', 0, 0, '', NULL, '2023-09-15 14:47:55', NULL, '2023-09-15 14:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37598, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:48:02', '2023-09-15 14:48:02', 0, 0, '', NULL, '2023-09-15 14:48:02', NULL, '2023-09-15 14:48:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37599, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:49:55', '2023-09-15 14:49:55', 0, 0, '', NULL, '2023-09-15 14:49:55', NULL, '2023-09-15 14:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37600, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:50:03', '2023-09-15 14:50:03', 0, 0, '', NULL, '2023-09-15 14:50:03', NULL, '2023-09-15 14:50:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37601, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:51:56', '2023-09-15 14:51:56', 0, 0, '', NULL, '2023-09-15 14:51:56', NULL, '2023-09-15 14:51:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37602, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:52:02', '2023-09-15 14:52:02', 0, 0, '', NULL, '2023-09-15 14:52:02', NULL, '2023-09-15 14:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37603, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:53:55', '2023-09-15 14:53:55', 0, 0, '', NULL, '2023-09-15 14:53:55', NULL, '2023-09-15 14:53:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37604, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:54:02', '2023-09-15 14:54:02', 0, 0, '', NULL, '2023-09-15 14:54:02', NULL, '2023-09-15 14:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37605, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:55:55', '2023-09-15 14:55:55', 0, 0, '', NULL, '2023-09-15 14:55:55', NULL, '2023-09-15 14:55:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37606, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:56:02', '2023-09-15 14:56:02', 0, 0, '', NULL, '2023-09-15 14:56:02', NULL, '2023-09-15 14:56:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37607, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:57:55', '2023-09-15 14:57:55', 0, 0, '', NULL, '2023-09-15 14:57:55', NULL, '2023-09-15 14:57:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37608, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:58:02', '2023-09-15 14:58:02', 0, 0, '', NULL, '2023-09-15 14:58:02', NULL, '2023-09-15 14:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37609, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 14:59:55', '2023-09-15 14:59:55', 0, 0, '', NULL, '2023-09-15 14:59:55', NULL, '2023-09-15 14:59:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37610, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:00:02', '2023-09-15 15:00:02', 0, 0, '', NULL, '2023-09-15 15:00:02', NULL, '2023-09-15 15:00:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37611, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:01:55', '2023-09-15 15:01:55', 0, 0, '', NULL, '2023-09-15 15:01:55', NULL, '2023-09-15 15:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37612, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:02:03', '2023-09-15 15:02:03', 0, 0, '', NULL, '2023-09-15 15:02:03', NULL, '2023-09-15 15:02:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37613, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:03:56', '2023-09-15 15:03:56', 0, 0, '', NULL, '2023-09-15 15:03:56', NULL, '2023-09-15 15:03:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37614, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:04:02', '2023-09-15 15:04:02', 0, 0, '', NULL, '2023-09-15 15:04:02', NULL, '2023-09-15 15:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37615, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:05:55', '2023-09-15 15:05:55', 0, 0, '', NULL, '2023-09-15 15:05:56', NULL, '2023-09-15 15:05:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37616, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:06:02', '2023-09-15 15:06:02', 0, 0, '', NULL, '2023-09-15 15:06:02', NULL, '2023-09-15 15:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37617, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:07:56', '2023-09-15 15:07:56', 0, 0, '', NULL, '2023-09-15 15:07:56', NULL, '2023-09-15 15:07:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37618, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:08:02', '2023-09-15 15:08:02', 0, 0, '', NULL, '2023-09-15 15:08:02', NULL, '2023-09-15 15:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37619, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:09:56', '2023-09-15 15:09:56', 0, 0, '', NULL, '2023-09-15 15:09:56', NULL, '2023-09-15 15:09:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37620, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:10:02', '2023-09-15 15:10:02', 0, 0, '', NULL, '2023-09-15 15:10:02', NULL, '2023-09-15 15:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37621, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:11:55', '2023-09-15 15:11:56', 0, 0, '', NULL, '2023-09-15 15:11:56', NULL, '2023-09-15 15:11:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37622, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:12:02', '2023-09-15 15:12:02', 0, 0, '', NULL, '2023-09-15 15:12:02', NULL, '2023-09-15 15:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37623, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:13:56', '2023-09-15 15:13:56', 0, 0, '', NULL, '2023-09-15 15:13:56', NULL, '2023-09-15 15:13:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37624, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:14:02', '2023-09-15 15:14:02', 0, 0, '', NULL, '2023-09-15 15:14:02', NULL, '2023-09-15 15:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37625, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:15:56', '2023-09-15 15:15:56', 0, 0, '', NULL, '2023-09-15 15:15:56', NULL, '2023-09-15 15:15:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37626, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:16:03', '2023-09-15 15:16:03', 0, 0, '', NULL, '2023-09-15 15:16:03', NULL, '2023-09-15 15:16:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37627, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:17:55', '2023-09-15 15:17:55', 0, 0, '', NULL, '2023-09-15 15:17:55', NULL, '2023-09-15 15:17:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37628, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:18:02', '2023-09-15 15:18:02', 0, 0, '', NULL, '2023-09-15 15:18:02', NULL, '2023-09-15 15:18:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37629, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:19:56', '2023-09-15 15:19:56', 0, 0, '', NULL, '2023-09-15 15:19:56', NULL, '2023-09-15 15:19:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37630, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:20:02', '2023-09-15 15:20:02', 0, 0, '', NULL, '2023-09-15 15:20:02', NULL, '2023-09-15 15:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37631, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:21:55', '2023-09-15 15:21:55', 0, 0, '', NULL, '2023-09-15 15:21:55', NULL, '2023-09-15 15:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37632, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:22:02', '2023-09-15 15:22:02', 0, 0, '', NULL, '2023-09-15 15:22:02', NULL, '2023-09-15 15:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37633, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:23:56', '2023-09-15 15:23:56', 0, 0, '', NULL, '2023-09-15 15:23:56', NULL, '2023-09-15 15:23:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37634, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:24:02', '2023-09-15 15:24:02', 0, 0, '', NULL, '2023-09-15 15:24:02', NULL, '2023-09-15 15:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37635, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:25:56', '2023-09-15 15:25:56', 0, 0, '', NULL, '2023-09-15 15:25:56', NULL, '2023-09-15 15:25:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37636, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:26:02', '2023-09-15 15:26:02', 0, 0, '', NULL, '2023-09-15 15:26:02', NULL, '2023-09-15 15:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37637, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:27:56', '2023-09-15 15:27:56', 0, 0, '', NULL, '2023-09-15 15:27:56', NULL, '2023-09-15 15:27:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37638, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:28:02', '2023-09-15 15:28:02', 0, 0, '', NULL, '2023-09-15 15:28:02', NULL, '2023-09-15 15:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37639, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:29:56', '2023-09-15 15:29:56', 0, 0, '', NULL, '2023-09-15 15:29:56', NULL, '2023-09-15 15:29:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37640, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:30:02', '2023-09-15 15:30:02', 0, 0, '', NULL, '2023-09-15 15:30:02', NULL, '2023-09-15 15:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37641, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:31:55', '2023-09-15 15:31:55', 0, 0, '', NULL, '2023-09-15 15:31:55', NULL, '2023-09-15 15:31:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37642, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:32:02', '2023-09-15 15:32:02', 0, 0, '', NULL, '2023-09-15 15:32:02', NULL, '2023-09-15 15:32:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37643, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:33:56', '2023-09-15 15:33:56', 0, 0, '', NULL, '2023-09-15 15:33:56', NULL, '2023-09-15 15:33:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37644, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:34:02', '2023-09-15 15:34:02', 0, 0, '', NULL, '2023-09-15 15:34:02', NULL, '2023-09-15 15:34:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37645, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:35:56', '2023-09-15 15:35:56', 0, 0, '', NULL, '2023-09-15 15:35:56', NULL, '2023-09-15 15:35:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37646, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:36:02', '2023-09-15 15:36:03', 0, 0, '', NULL, '2023-09-15 15:36:03', NULL, '2023-09-15 15:36:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37647, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:37:56', '2023-09-15 15:37:56', 0, 0, '', NULL, '2023-09-15 15:37:56', NULL, '2023-09-15 15:37:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37648, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:38:02', '2023-09-15 15:38:02', 0, 0, '', NULL, '2023-09-15 15:38:02', NULL, '2023-09-15 15:38:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37649, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:39:56', '2023-09-15 15:39:56', 0, 0, '', NULL, '2023-09-15 15:39:56', NULL, '2023-09-15 15:39:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37650, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:40:02', '2023-09-15 15:40:02', 0, 0, '', NULL, '2023-09-15 15:40:02', NULL, '2023-09-15 15:40:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37651, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:41:56', '2023-09-15 15:41:56', 0, 0, '', NULL, '2023-09-15 15:41:56', NULL, '2023-09-15 15:41:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37652, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:42:02', '2023-09-15 15:42:02', 0, 0, '', NULL, '2023-09-15 15:42:02', NULL, '2023-09-15 15:42:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37653, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:43:56', '2023-09-15 15:43:56', 0, 0, '', NULL, '2023-09-15 15:43:56', NULL, '2023-09-15 15:43:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37654, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:44:03', '2023-09-15 15:44:03', 0, 0, '', NULL, '2023-09-15 15:44:03', NULL, '2023-09-15 15:44:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37655, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:45:56', '2023-09-15 15:45:56', 0, 0, '', NULL, '2023-09-15 15:45:56', NULL, '2023-09-15 15:45:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37656, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:46:02', '2023-09-15 15:46:02', 0, 0, '', NULL, '2023-09-15 15:46:02', NULL, '2023-09-15 15:46:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37657, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:47:56', '2023-09-15 15:47:56', 0, 0, '', NULL, '2023-09-15 15:47:56', NULL, '2023-09-15 15:47:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37658, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:48:02', '2023-09-15 15:48:02', 0, 0, '', NULL, '2023-09-15 15:48:02', NULL, '2023-09-15 15:48:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37659, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:49:56', '2023-09-15 15:49:56', 0, 0, '', NULL, '2023-09-15 15:49:56', NULL, '2023-09-15 15:49:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37660, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:50:02', '2023-09-15 15:50:02', 0, 0, '', NULL, '2023-09-15 15:50:02', NULL, '2023-09-15 15:50:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37661, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:51:56', '2023-09-15 15:51:56', 0, 0, '', NULL, '2023-09-15 15:51:56', NULL, '2023-09-15 15:51:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37662, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:52:02', '2023-09-15 15:52:02', 0, 0, '', NULL, '2023-09-15 15:52:02', NULL, '2023-09-15 15:52:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37663, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:53:56', '2023-09-15 15:53:56', 0, 0, '', NULL, '2023-09-15 15:53:56', NULL, '2023-09-15 15:53:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37664, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:54:02', '2023-09-15 15:54:02', 0, 0, '', NULL, '2023-09-15 15:54:02', NULL, '2023-09-15 15:54:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37665, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:55:56', '2023-09-15 15:55:56', 0, 0, '', NULL, '2023-09-15 15:55:56', NULL, '2023-09-15 15:55:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37666, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:56:02', '2023-09-15 15:56:02', 0, 0, '', NULL, '2023-09-15 15:56:02', NULL, '2023-09-15 15:56:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37667, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:57:56', '2023-09-15 15:57:56', 0, 0, '', NULL, '2023-09-15 15:57:56', NULL, '2023-09-15 15:57:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37668, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:58:02', '2023-09-15 15:58:02', 0, 0, '', NULL, '2023-09-15 15:58:02', NULL, '2023-09-15 15:58:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37669, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 15:59:56', '2023-09-15 15:59:56', 0, 0, '', NULL, '2023-09-15 15:59:56', NULL, '2023-09-15 15:59:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37670, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:00:02', '2023-09-15 16:00:02', 0, 0, '', NULL, '2023-09-15 16:00:02', NULL, '2023-09-15 16:00:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37671, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:01:56', '2023-09-15 16:01:56', 0, 0, '', NULL, '2023-09-15 16:01:56', NULL, '2023-09-15 16:01:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37672, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:02:02', '2023-09-15 16:02:02', 0, 0, '', NULL, '2023-09-15 16:02:02', NULL, '2023-09-15 16:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37673, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:03:56', '2023-09-15 16:03:56', 0, 0, '', NULL, '2023-09-15 16:03:56', NULL, '2023-09-15 16:03:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37674, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:04:02', '2023-09-15 16:04:02', 0, 0, '', NULL, '2023-09-15 16:04:02', NULL, '2023-09-15 16:04:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37675, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:05:56', '2023-09-15 16:05:56', 0, 0, '', NULL, '2023-09-15 16:05:56', NULL, '2023-09-15 16:05:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37676, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:06:02', '2023-09-15 16:06:02', 0, 0, '', NULL, '2023-09-15 16:06:02', NULL, '2023-09-15 16:06:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37677, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:07:56', '2023-09-15 16:07:56', 0, 0, '', NULL, '2023-09-15 16:07:56', NULL, '2023-09-15 16:07:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37678, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:08:02', '2023-09-15 16:08:02', 0, 0, '', NULL, '2023-09-15 16:08:02', NULL, '2023-09-15 16:08:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37679, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:09:56', '2023-09-15 16:09:56', 0, 0, '', NULL, '2023-09-15 16:09:56', NULL, '2023-09-15 16:09:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37680, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:10:02', '2023-09-15 16:10:02', 0, 0, '', NULL, '2023-09-15 16:10:02', NULL, '2023-09-15 16:10:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37681, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:11:56', '2023-09-15 16:11:56', 0, 0, '', NULL, '2023-09-15 16:11:56', NULL, '2023-09-15 16:11:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37682, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:12:02', '2023-09-15 16:12:02', 0, 0, '', NULL, '2023-09-15 16:12:02', NULL, '2023-09-15 16:12:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37683, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:13:56', '2023-09-15 16:13:56', 0, 0, '', NULL, '2023-09-15 16:13:56', NULL, '2023-09-15 16:13:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37684, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:14:02', '2023-09-15 16:14:02', 0, 0, '', NULL, '2023-09-15 16:14:02', NULL, '2023-09-15 16:14:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37685, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:15:56', '2023-09-15 16:15:56', 0, 0, '', NULL, '2023-09-15 16:15:56', NULL, '2023-09-15 16:15:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37686, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:16:02', '2023-09-15 16:16:02', 0, 0, '', NULL, '2023-09-15 16:16:02', NULL, '2023-09-15 16:16:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37687, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:17:56', '2023-09-15 16:17:56', 0, 0, '', NULL, '2023-09-15 16:17:56', NULL, '2023-09-15 16:17:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37688, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:18:02', '2023-09-15 16:18:02', 0, 0, '', NULL, '2023-09-15 16:18:02', NULL, '2023-09-15 16:18:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37689, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:19:56', '2023-09-15 16:19:56', 0, 0, '', NULL, '2023-09-15 16:19:56', NULL, '2023-09-15 16:19:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37690, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:20:03', '2023-09-15 16:20:03', 0, 0, '', NULL, '2023-09-15 16:20:03', NULL, '2023-09-15 16:20:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37691, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:21:55', '2023-09-15 16:21:55', 0, 0, '', NULL, '2023-09-15 16:21:55', NULL, '2023-09-15 16:21:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37692, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:22:02', '2023-09-15 16:22:02', 0, 0, '', NULL, '2023-09-15 16:22:02', NULL, '2023-09-15 16:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37693, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:23:04', '2023-09-15 16:23:04', 0, 0, '', NULL, '2023-09-15 16:23:04', NULL, '2023-09-15 16:23:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37694, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:05', '2023-09-15 16:23:05', 0, 0, '', NULL, '2023-09-15 16:23:05', NULL, '2023-09-15 16:23:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37695, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1uk30w3Qhum13fpr1w3YNx6X0uk30R\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:23:05', '2023-09-15 16:23:05', 0, 0, '', NULL, '2023-09-15 16:23:05', NULL, '2023-09-15 16:23:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37696, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37697, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37698, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37699, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37700, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37701, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37702, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/10358 token/b18669ff6b5621f6d3d75696ed543232 runtime/2', '2023-09-15 16:23:11', '2023-09-15 16:23:11', 0, 0, '', NULL, '2023-09-15 16:23:11', NULL, '2023-09-15 16:23:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37703, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:23:55', '2023-09-15 16:23:55', 0, 0, '', NULL, '2023-09-15 16:23:55', NULL, '2023-09-15 16:23:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37704, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:24:02', '2023-09-15 16:24:02', 0, 0, '', NULL, '2023-09-15 16:24:02', NULL, '2023-09-15 16:24:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37705, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:25:47', '2023-09-15 16:25:47', 0, 0, '', NULL, '2023-09-15 16:25:47', NULL, '2023-09-15 16:25:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37706, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1MZYFa1mpo2G0a3OIa1y2l8j2MZYFc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:25:47', '2023-09-15 16:25:47', 0, 0, '', NULL, '2023-09-15 16:25:47', NULL, '2023-09-15 16:25:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37707, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:47', '2023-09-15 16:25:47', 0, 0, '', NULL, '2023-09-15 16:25:47', NULL, '2023-09-15 16:25:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37708, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37709, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 401, '账号未登录', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37710, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37711, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37712, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37713, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37714, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37715, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:25:51', '2023-09-15 16:25:51', 0, 0, '', NULL, '2023-09-15 16:25:51', NULL, '2023-09-15 16:25:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37716, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:25:56', '2023-09-15 16:25:56', 0, 0, '', NULL, '2023-09-15 16:25:56', NULL, '2023-09-15 16:25:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37717, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:25:57', '2023-09-15 16:25:57', 0, 401, '账号未登录', NULL, '2023-09-15 16:25:57', NULL, '2023-09-15 16:25:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37718, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:26:02', '2023-09-15 16:26:02', 0, 0, '', NULL, '2023-09-15 16:26:02', NULL, '2023-09-15 16:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37719, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:26:06', '2023-09-15 16:26:06', 0, 0, '', NULL, '2023-09-15 16:26:06', NULL, '2023-09-15 16:26:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37720, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1qC7000mD9HQ1FlY100gPVze2qC700\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:26:07', '2023-09-15 16:26:07', 0, 0, '', NULL, '2023-09-15 16:26:07', NULL, '2023-09-15 16:26:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37721, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:07', '2023-09-15 16:26:07', 0, 0, '', NULL, '2023-09-15 16:26:07', NULL, '2023-09-15 16:26:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37722, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:26:08', '2023-09-15 16:26:08', 0, 0, '', NULL, '2023-09-15 16:26:08', NULL, '2023-09-15 16:26:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37723, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37724, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37725, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37726, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37727, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37728, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/9 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:26:09', '2023-09-15 16:26:09', 0, 0, '', NULL, '2023-09-15 16:26:09', NULL, '2023-09-15 16:26:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37729, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:26:23', '2023-09-15 16:26:23', 0, 0, '', NULL, '2023-09-15 16:26:23', NULL, '2023-09-15 16:26:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37730, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:31', '2023-09-15 16:27:31', 0, 0, '', NULL, '2023-09-15 16:27:31', NULL, '2023-09-15 16:27:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37731, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a13Kdnl2NCf4c4ZJull2XWod543Kdnc\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:31', '2023-09-15 16:27:31', 0, 0, '', NULL, '2023-09-15 16:27:31', NULL, '2023-09-15 16:27:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37732, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/10 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:31', '2023-09-15 16:27:31', 0, 0, '', NULL, '2023-09-15 16:27:31', NULL, '2023-09-15 16:27:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37733, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/10 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:31', '2023-09-15 16:27:31', 0, 0, '', NULL, '2023-09-15 16:27:31', NULL, '2023-09-15 16:27:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37734, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37735, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37736, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37737, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37738, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37739, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37740, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:32', '2023-09-15 16:27:32', 0, 0, '', NULL, '2023-09-15 16:27:32', NULL, '2023-09-15 16:27:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37741, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:27:56', '2023-09-15 16:27:56', 0, 0, '', NULL, '2023-09-15 16:27:56', NULL, '2023-09-15 16:27:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37742, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:57', '2023-09-15 16:27:57', 0, 0, '', NULL, '2023-09-15 16:27:57', NULL, '2023-09-15 16:27:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37743, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/14 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:27:57', '2023-09-15 16:27:57', 0, 0, '', NULL, '2023-09-15 16:27:57', NULL, '2023-09-15 16:27:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37744, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1W4IFa1FZ62G0iwrFa1oJmeY0W4IFT\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:57', '2023-09-15 16:27:57', 0, 0, '', NULL, '2023-09-15 16:27:57', NULL, '2023-09-15 16:27:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37745, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:27:59', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37746, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37747, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37748, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37749, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37750, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37751, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:00', '2023-09-15 16:28:00', 0, 0, '', NULL, '2023-09-15 16:28:00', NULL, '2023-09-15 16:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37752, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:28:02', '2023-09-15 16:28:02', 0, 0, '', NULL, '2023-09-15 16:28:02', NULL, '2023-09-15 16:28:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37753, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:28:04', '2023-09-15 16:28:04', 0, 0, '', NULL, '2023-09-15 16:28:04', NULL, '2023-09-15 16:28:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37754, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:28:30', '2023-09-15 16:28:30', 0, 0, '', NULL, '2023-09-15 16:28:30', NULL, '2023-09-15 16:28:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37755, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/17 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:31', '2023-09-15 16:28:31', 0, 0, '', NULL, '2023-09-15 16:28:31', NULL, '2023-09-15 16:28:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37756, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f18gxGa1SIJ0G0dJbGa1UCLpi38gxG5\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:28:31', '2023-09-15 16:28:31', 0, 0, '', NULL, '2023-09-15 16:28:31', NULL, '2023-09-15 16:28:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37757, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:28:31', '2023-09-15 16:28:31', 0, 0, '', NULL, '2023-09-15 16:28:31', NULL, '2023-09-15 16:28:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37758, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37759, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37760, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37761, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37762, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37763, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:28:32', '2023-09-15 16:28:32', 0, 0, '', NULL, '2023-09-15 16:28:32', NULL, '2023-09-15 16:28:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37764, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:28:36', '2023-09-15 16:28:36', 0, 0, '', NULL, '2023-09-15 16:28:36', NULL, '2023-09-15 16:28:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37765, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:29:05', '2023-09-15 16:29:05', 0, 0, '', NULL, '2023-09-15 16:29:05', NULL, '2023-09-15 16:29:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37766, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:29:10', '2023-09-15 16:29:10', 0, 0, '', NULL, '2023-09-15 16:29:10', NULL, '2023-09-15 16:29:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37767, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:29:56', '2023-09-15 16:29:56', 0, 0, '', NULL, '2023-09-15 16:29:56', NULL, '2023-09-15 16:29:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37768, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:29:59', '2023-09-15 16:29:59', 0, 0, '', NULL, '2023-09-15 16:29:59', NULL, '2023-09-15 16:29:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37769, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:31:56', '2023-09-15 16:31:56', 0, 0, '', NULL, '2023-09-15 16:31:56', NULL, '2023-09-15 16:31:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37770, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:31:59', '2023-09-15 16:31:59', 0, 0, '', NULL, '2023-09-15 16:31:59', NULL, '2023-09-15 16:31:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37771, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:33:56', '2023-09-15 16:33:56', 0, 0, '', NULL, '2023-09-15 16:33:56', NULL, '2023-09-15 16:33:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37772, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:33:59', '2023-09-15 16:33:59', 0, 0, '', NULL, '2023-09-15 16:33:59', NULL, '2023-09-15 16:33:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37773, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:35:56', '2023-09-15 16:35:56', 0, 0, '', NULL, '2023-09-15 16:35:56', NULL, '2023-09-15 16:35:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37774, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:35:59', '2023-09-15 16:35:59', 0, 0, '', NULL, '2023-09-15 16:35:59', NULL, '2023-09-15 16:35:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37775, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:37:56', '2023-09-15 16:37:56', 0, 0, '', NULL, '2023-09-15 16:37:56', NULL, '2023-09-15 16:37:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37776, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:37:59', '2023-09-15 16:37:59', 0, 0, '', NULL, '2023-09-15 16:37:59', NULL, '2023-09-15 16:37:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37777, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:00', '2023-09-15 16:38:00', 0, 0, '', NULL, '2023-09-15 16:38:00', NULL, '2023-09-15 16:38:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37778, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:13', '2023-09-15 16:38:13', 0, 0, '', NULL, '2023-09-15 16:38:13', NULL, '2023-09-15 16:38:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37779, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:31', '2023-09-15 16:38:31', 0, 0, '', NULL, '2023-09-15 16:38:31', NULL, '2023-09-15 16:38:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37780, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:37', '2023-09-15 16:38:37', 0, 0, '', NULL, '2023-09-15 16:38:37', NULL, '2023-09-15 16:38:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37781, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:45', '2023-09-15 16:38:45', 0, 0, '', NULL, '2023-09-15 16:38:45', NULL, '2023-09-15 16:38:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37782, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37783, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37784, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37785, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37786, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37787, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37788, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37789, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37790, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:47', '2023-09-15 16:38:47', 0, 0, '', NULL, '2023-09-15 16:38:47', NULL, '2023-09-15 16:38:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37791, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:38:49', '2023-09-15 16:38:49', 0, 0, '', NULL, '2023-09-15 16:38:49', NULL, '2023-09-15 16:38:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37792, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:39:55', '2023-09-15 16:39:55', 0, 0, '', NULL, '2023-09-15 16:39:55', NULL, '2023-09-15 16:39:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37793, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:40:47', '2023-09-15 16:40:47', 0, 0, '', NULL, '2023-09-15 16:40:47', NULL, '2023-09-15 16:40:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37794, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:41:46', '2023-09-15 16:41:46', 0, 0, '', NULL, '2023-09-15 16:41:46', NULL, '2023-09-15 16:41:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37795, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:41:48', '2023-09-15 16:41:48', 0, 0, '', NULL, '2023-09-15 16:41:48', NULL, '2023-09-15 16:41:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37796, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:41:56', '2023-09-15 16:41:56', 0, 0, '', NULL, '2023-09-15 16:41:56', NULL, '2023-09-15 16:41:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37797, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:42:47', '2023-09-15 16:42:47', 0, 0, '', NULL, '2023-09-15 16:42:47', NULL, '2023-09-15 16:42:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37798, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:43:29', '2023-09-15 16:43:29', 0, 0, '', NULL, '2023-09-15 16:43:29', NULL, '2023-09-15 16:43:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37799, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:43:38', '2023-09-15 16:43:38', 0, 0, '', NULL, '2023-09-15 16:43:39', NULL, '2023-09-15 16:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37800, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:43:56', '2023-09-15 16:43:56', 0, 0, '', NULL, '2023-09-15 16:43:56', NULL, '2023-09-15 16:43:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37801, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:44:47', '2023-09-15 16:44:47', 0, 0, '', NULL, '2023-09-15 16:44:47', NULL, '2023-09-15 16:44:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37802, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:45:56', '2023-09-15 16:45:56', 0, 0, '', NULL, '2023-09-15 16:45:56', NULL, '2023-09-15 16:45:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37803, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:46:17', '2023-09-15 16:46:17', 0, 0, '', NULL, '2023-09-15 16:46:17', NULL, '2023-09-15 16:46:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37804, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/21 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-15 16:46:17', '2023-09-15 16:46:17', 0, 0, '', NULL, '2023-09-15 16:46:17', NULL, '2023-09-15 16:46:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37805, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1gcJFa1XXa2G0w4HGa1Q6Qkc2gcJFW\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:46:17', '2023-09-15 16:46:17', 0, 0, '', NULL, '2023-09-15 16:46:17', NULL, '2023-09-15 16:46:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37806, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:46:42', '2023-09-15 16:46:42', 0, 0, '', NULL, '2023-09-15 16:46:42', NULL, '2023-09-15 16:46:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37807, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1pCAll2pVE2c4pKHkl2jtciQ0pCAlT\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-15 16:46:43', '2023-09-15 16:46:43', 0, 0, '', NULL, '2023-09-15 16:46:43', NULL, '2023-09-15 16:46:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37808, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/30479 token/db6d7d3b6ad7c88f25c5787baa5d6ecb runtime/2', '2023-09-15 16:46:43', '2023-09-15 16:46:43', 0, 0, '', NULL, '2023-09-15 16:46:43', NULL, '2023-09-15 16:46:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37809, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:46:48', '2023-09-15 16:46:48', 0, 0, '', NULL, '2023-09-15 16:46:48', NULL, '2023-09-15 16:46:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37810, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:40', '2023-09-15 16:47:40', 0, 0, '', NULL, '2023-09-15 16:47:40', NULL, '2023-09-15 16:47:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37811, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1unhGa19ZI2G0FTSGa1eza7o3unhG3\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:40', '2023-09-15 16:47:40', 0, 0, '', NULL, '2023-09-15 16:47:40', NULL, '2023-09-15 16:47:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37812, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:40', '2023-09-15 16:47:40', 0, 0, '', NULL, '2023-09-15 16:47:40', NULL, '2023-09-15 16:47:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37813, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37814, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37815, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37816, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37817, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37818, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37819, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:42', '2023-09-15 16:47:42', 0, 0, '', NULL, '2023-09-15 16:47:42', NULL, '2023-09-15 16:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37820, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:47:54', '2023-09-15 16:47:54', 0, 0, '', NULL, '2023-09-15 16:47:54', NULL, '2023-09-15 16:47:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37821, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:47:55', '2023-09-15 16:47:55', 0, 0, '', NULL, '2023-09-15 16:47:55', NULL, '2023-09-15 16:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37822, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:48:03', '2023-09-15 16:48:03', 0, 0, '', NULL, '2023-09-15 16:48:03', NULL, '2023-09-15 16:48:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37823, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"oHux265Iu9R5pMKk1O3U_J6TtMC4\",\"encryptedData\":\"F21mcMG8NAH/UqU56VVrtueM4xtC93+fdr6TmE1lRkdx/NLLENeMbz0l79k1BpvsetoxACy55P4z8tdLXFoSwYAA2JQ5uoTBpb1+WDhCbyTpv9fvtKe4F+2ltjD3Ualxbs8t8dDBUNXsTT+tI7KA7leJlLrgTqnBTKu24jqVHY8YA/utINzQn8OXfoebUYgTs54sa1bvnvgUH7ukiUcf/w==\",\"iv\":\"8KYENFhEBC1uOuiQYIsuyA==\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:48:16', '2023-09-15 16:48:16', 0, 0, '', NULL, '2023-09-15 16:48:16', NULL, '2023-09-15 16:48:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37824, '', 14, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:48:18', '2023-09-15 16:48:18', 0, 500, '系统异常', NULL, '2023-09-15 16:48:18', NULL, '2023-09-15 16:48:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37825, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:49:02', '2023-09-15 16:49:02', 0, 0, '', NULL, '2023-09-15 16:49:02', NULL, '2023-09-15 16:49:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37826, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:49:55', '2023-09-15 16:49:55', 0, 0, '', NULL, '2023-09-15 16:49:55', NULL, '2023-09-15 16:49:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37827, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:51:02', '2023-09-15 16:51:02', 0, 0, '', NULL, '2023-09-15 16:51:02', NULL, '2023-09-15 16:51:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37828, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:51:56', '2023-09-15 16:51:56', 0, 0, '', NULL, '2023-09-15 16:51:56', NULL, '2023-09-15 16:51:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37829, '', 14, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:52:14', '2023-09-15 16:52:14', 0, 500, '系统异常', NULL, '2023-09-15 16:52:14', NULL, '2023-09-15 16:52:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37830, '', 14, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1PEhGa1bhI2G0aEAGa15FkDK0PEhGV\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:52:16', '2023-09-15 16:52:16', 0, 0, '', NULL, '2023-09-15 16:52:16', NULL, '2023-09-15 16:52:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37831, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:06', '2023-09-15 16:54:06', 0, 0, '', NULL, '2023-09-15 16:54:06', NULL, '2023-09-15 16:54:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37832, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:06', '2023-09-15 16:54:06', 0, 0, '', NULL, '2023-09-15 16:54:06', NULL, '2023-09-15 16:54:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37833, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1MFJFa1TAa2G0OdrJa1asdy23MFJFu\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:06', '2023-09-15 16:54:07', 0, 0, '', NULL, '2023-09-15 16:54:07', NULL, '2023-09-15 16:54:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37834, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37835, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37836, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37837, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37838, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37839, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37840, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:09', '2023-09-15 16:54:09', 0, 0, '', NULL, '2023-09-15 16:54:09', NULL, '2023-09-15 16:54:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37841, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"oHux265Iu9R5pMKk1O3U_J6TtMC4\",\"encryptedData\":\"/8yunnfsPYF15kT/1UZMwcF60EXDR1SpTr841BY0As3++vY1QsE/cjDa5pTXDncGncPmDttdxUv2GPWW9AMByIhh6UWYsogZNsO+Spxd8wy7Qz4fI+5wg6KzB2P8jG1is4/27NE3yAWWDzZxK2++2TelNnzPTpV1AH1/3B2A3S1hIemPBR3CDOQfoLGub+Uhhy43M5rcKFKxRjBcT5m6GQ==\",\"iv\":\"dVH0jefym7oX4491JEucnA==\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:16', '2023-09-15 16:54:16', 0, 0, '', NULL, '2023-09-15 16:54:16', NULL, '2023-09-15 16:54:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37842, '', 1, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:18', '2023-09-15 16:54:18', 0, 500, '系统异常', NULL, '2023-09-15 16:54:18', NULL, '2023-09-15 16:54:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37843, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:55:03', '2023-09-15 16:55:03', 0, 0, '', NULL, '2023-09-15 16:55:03', NULL, '2023-09-15 16:55:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37844, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 16:55:56', '2023-09-15 16:55:56', 0, 0, '', NULL, '2023-09-15 16:55:56', NULL, '2023-09-15 16:55:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37845, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:01:03', '2023-09-15 17:01:03', 0, 0, '', NULL, '2023-09-15 17:01:03', NULL, '2023-09-15 17:01:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37846, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:29', '2023-09-15 17:01:29', 0, 0, '', NULL, '2023-09-15 17:01:29', NULL, '2023-09-15 17:01:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37847, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:29', '2023-09-15 17:01:29', 0, 0, '', NULL, '2023-09-15 17:01:29', NULL, '2023-09-15 17:01:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37848, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1RUs1w3IsGl13L5f1w3LBN3G0RUs1R\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:29', '2023-09-15 17:01:30', 0, 0, '', NULL, '2023-09-15 17:01:30', NULL, '2023-09-15 17:01:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37849, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37850, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37851, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37852, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37853, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37854, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37855, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:31', '2023-09-15 17:01:31', 0, 0, '', NULL, '2023-09-15 17:01:31', NULL, '2023-09-15 17:01:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37856, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"oHux265Iu9R5pMKk1O3U_J6TtMC4\",\"encryptedData\":\"S6625todEHtOA17J0C1jdOudaFLZ0Saxh8icCCl0+cQ4kG7P0iPky5sU1BRL15NGCSTbmlC8afwcZOeJgGPhQiWXzn/21ubc0c5HwHIsSYx2x4T4B+v+L/2RiAefIBWewNVqjxyCWUHUZ4Ixmb15AYvVmZzyS4Zoc9twKuY9o66TaIyXJbSAx50NzOqC78wvud5EvhL+BcUg8+oRUQMKXQ==\",\"iv\":\"igHCpC6oWaq+j2zvXmmPig==\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:37', '2023-09-15 17:01:37', 0, 0, '', NULL, '2023-09-15 17:01:37', NULL, '2023-09-15 17:01:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37857, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:39', '2023-09-15 17:01:39', 0, 0, '', NULL, '2023-09-15 17:01:39', NULL, '2023-09-15 17:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37858, '', 0, 1, 'yshop-server', 'POST', '/app-api/infra/file/upload', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:54', '2023-09-15 17:01:54', 0, 0, '', NULL, '2023-09-15 17:01:54', NULL, '2023-09-15 17:01:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37859, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:54', '2023-09-15 17:01:54', 0, 0, '', NULL, '2023-09-15 17:01:54', NULL, '2023-09-15 17:01:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37860, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:01:55', '2023-09-15 17:01:55', 0, 0, '', NULL, '2023-09-15 17:01:55', NULL, '2023-09-15 17:01:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37861, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:01:56', '2023-09-15 17:01:56', 0, 0, '', NULL, '2023-09-15 17:01:56', NULL, '2023-09-15 17:01:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37862, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/user/update-nickname', '{\"query\":{\"birthday\":\"\",\"gender\":\"0\",\"nickname\":\"yshop用户_2\",\"mobile\":\"15136175246\",\"avatar\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:00', '2023-09-15 17:02:00', 0, 0, '', NULL, '2023-09-15 17:02:00', NULL, '2023-09-15 17:02:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37863, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:04', '2023-09-15 17:02:04', 0, 0, '', NULL, '2023-09-15 17:02:04', NULL, '2023-09-15 17:02:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37864, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:12', '2023-09-15 17:02:12', 0, 0, '', NULL, '2023-09-15 17:02:12', NULL, '2023-09-15 17:02:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37865, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:20', '2023-09-15 17:02:20', 0, 0, '', NULL, '2023-09-15 17:02:20', NULL, '2023-09-15 17:02:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37866, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:20', '2023-09-15 17:02:20', 0, 0, '', NULL, '2023-09-15 17:02:20', NULL, '2023-09-15 17:02:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37867, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:20', '2023-09-15 17:02:21', 0, 0, '', NULL, '2023-09-15 17:02:21', NULL, '2023-09-15 17:02:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37868, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:21', '2023-09-15 17:02:21', 0, 0, '', NULL, '2023-09-15 17:02:21', NULL, '2023-09-15 17:02:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37869, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:21', '2023-09-15 17:02:21', 0, 0, '', NULL, '2023-09-15 17:02:21', NULL, '2023-09-15 17:02:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37870, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:21', '2023-09-15 17:02:21', 0, 0, '', NULL, '2023-09-15 17:02:21', NULL, '2023-09-15 17:02:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37871, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:55', '2023-09-15 17:02:55', 0, 0, '', NULL, '2023-09-15 17:02:55', NULL, '2023-09-15 17:02:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37872, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:02:55', '2023-09-15 17:02:55', 0, 0, '', NULL, '2023-09-15 17:02:55', NULL, '2023-09-15 17:02:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37873, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:03:02', '2023-09-15 17:03:02', 0, 0, '', NULL, '2023-09-15 17:03:02', NULL, '2023-09-15 17:03:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37874, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"shop_id\":\"2\",\"pagesize\":\"10000\",\"page\":\"1\",\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:05', '2023-09-15 17:03:05', 0, 0, '', NULL, '2023-09-15 17:03:05', NULL, '2023-09-15 17:03:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37875, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:08', '2023-09-15 17:03:08', 0, 0, '', NULL, '2023-09-15 17:03:08', NULL, '2023-09-15 17:03:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37876, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:13', '2023-09-15 17:03:13', 0, 0, '', NULL, '2023-09-15 17:03:13', NULL, '2023-09-15 17:03:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37877, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1fbtFa1gCS1G0vDiHa1L1VVp2fbtFd\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:14', '2023-09-15 17:03:14', 0, 0, '', NULL, '2023-09-15 17:03:14', NULL, '2023-09-15 17:03:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37878, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:17', '2023-09-15 17:03:17', 0, 0, '', NULL, '2023-09-15 17:03:17', NULL, '2023-09-15 17:03:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37879, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:18', '2023-09-15 17:03:18', 0, 0, '', NULL, '2023-09-15 17:03:18', NULL, '2023-09-15 17:03:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37880, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:20', '2023-09-15 17:03:20', 0, 0, '', NULL, '2023-09-15 17:03:20', NULL, '2023-09-15 17:03:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37881, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:20', '2023-09-15 17:03:20', 0, 0, '', NULL, '2023-09-15 17:03:20', NULL, '2023-09-15 17:03:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37882, '', 2, 1, 'yshop-server', 'POST', '/app-api/coupon/receive', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:27', '2023-09-15 17:03:27', 0, 0, '', NULL, '2023-09-15 17:03:27', NULL, '2023-09-15 17:03:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37883, '', 2, 1, 'yshop-server', 'POST', '/app-api/coupon/receive', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:31', '2023-09-15 17:03:31', 0, 1008018001, '优惠券已经领取过', NULL, '2023-09-15 17:03:31', NULL, '2023-09-15 17:03:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37884, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:33', '2023-09-15 17:03:33', 0, 0, '', NULL, '2023-09-15 17:03:33', NULL, '2023-09-15 17:03:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37885, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:34', '2023-09-15 17:03:34', 0, 0, '', NULL, '2023-09-15 17:03:34', NULL, '2023-09-15 17:03:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37886, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:36', '2023-09-15 17:03:36', 0, 0, '', NULL, '2023-09-15 17:03:36', NULL, '2023-09-15 17:03:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37887, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:39', '2023-09-15 17:03:39', 0, 0, '', NULL, '2023-09-15 17:03:39', NULL, '2023-09-15 17:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37888, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:41', '2023-09-15 17:03:41', 0, 0, '', NULL, '2023-09-15 17:03:41', NULL, '2023-09-15 17:03:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37889, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:42', '2023-09-15 17:03:42', 0, 0, '', NULL, '2023-09-15 17:03:42', NULL, '2023-09-15 17:03:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37890, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:42', '2023-09-15 17:03:42', 0, 0, '', NULL, '2023-09-15 17:03:42', NULL, '2023-09-15 17:03:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37891, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:43', '2023-09-15 17:03:43', 0, 0, '', NULL, '2023-09-15 17:03:43', NULL, '2023-09-15 17:03:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37892, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"2\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:44', '2023-09-15 17:03:44', 0, 0, '', NULL, '2023-09-15 17:03:44', NULL, '2023-09-15 17:03:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37893, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:51', '2023-09-15 17:03:51', 0, 0, '', NULL, '2023-09-15 17:03:51', NULL, '2023-09-15 17:03:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37894, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:53', '2023-09-15 17:03:53', 0, 0, '', NULL, '2023-09-15 17:03:53', NULL, '2023-09-15 17:03:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37895, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:54', '2023-09-15 17:03:54', 0, 0, '', NULL, '2023-09-15 17:03:54', NULL, '2023-09-15 17:03:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37896, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:03:55', '2023-09-15 17:03:55', 0, 0, '', NULL, '2023-09-15 17:03:55', NULL, '2023-09-15 17:03:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37897, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:03:56', '2023-09-15 17:03:56', 0, 0, '', NULL, '2023-09-15 17:03:56', NULL, '2023-09-15 17:03:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37898, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/getBill', '{\"query\":{\"pagesize\":\"20\",\"page\":\"1\",\"type\":\"0\"},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:04:01', '2023-09-15 17:04:01', 0, 0, '', NULL, '2023-09-15 17:04:01', NULL, '2023-09-15 17:04:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37899, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 17:04:03', '2023-09-15 17:04:03', 0, 0, '', NULL, '2023-09-15 17:04:03', NULL, '2023-09-15 17:04:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37900, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:05:03', '2023-09-15 17:05:03', 0, 0, '', NULL, '2023-09-15 17:05:03', NULL, '2023-09-15 17:05:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37901, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:05:56', '2023-09-15 17:05:56', 0, 0, '', NULL, '2023-09-15 17:05:56', NULL, '2023-09-15 17:05:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37902, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:07:02', '2023-09-15 17:07:02', 0, 0, '', NULL, '2023-09-15 17:07:02', NULL, '2023-09-15 17:07:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37903, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:07:56', '2023-09-15 17:07:56', 0, 0, '', NULL, '2023-09-15 17:07:56', NULL, '2023-09-15 17:07:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37904, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:09:03', '2023-09-15 17:09:03', 0, 0, '', NULL, '2023-09-15 17:09:03', NULL, '2023-09-15 17:09:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37905, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:09:56', '2023-09-15 17:09:56', 0, 0, '', NULL, '2023-09-15 17:09:56', NULL, '2023-09-15 17:09:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37906, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:11:02', '2023-09-15 17:11:03', 0, 0, '', NULL, '2023-09-15 17:11:03', NULL, '2023-09-15 17:11:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37907, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:11:56', '2023-09-15 17:11:56', 0, 0, '', NULL, '2023-09-15 17:11:56', NULL, '2023-09-15 17:11:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37908, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:13:02', '2023-09-15 17:13:02', 0, 0, '', NULL, '2023-09-15 17:13:02', NULL, '2023-09-15 17:13:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37909, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:13:56', '2023-09-15 17:13:56', 0, 0, '', NULL, '2023-09-15 17:13:56', NULL, '2023-09-15 17:13:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37910, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:15:02', '2023-09-15 17:15:02', 0, 0, '', NULL, '2023-09-15 17:15:02', NULL, '2023-09-15 17:15:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37911, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:15:56', '2023-09-15 17:15:56', 0, 0, '', NULL, '2023-09-15 17:15:56', NULL, '2023-09-15 17:15:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37912, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:17:02', '2023-09-15 17:17:02', 0, 0, '', NULL, '2023-09-15 17:17:02', NULL, '2023-09-15 17:17:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37913, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:17:56', '2023-09-15 17:17:56', 0, 0, '', NULL, '2023-09-15 17:17:56', NULL, '2023-09-15 17:17:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37914, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:19:03', '2023-09-15 17:19:03', 0, 0, '', NULL, '2023-09-15 17:19:03', NULL, '2023-09-15 17:19:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37915, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:19:56', '2023-09-15 17:19:56', 0, 0, '', NULL, '2023-09-15 17:19:56', NULL, '2023-09-15 17:19:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37916, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:21:03', '2023-09-15 17:21:03', 0, 0, '', NULL, '2023-09-15 17:21:03', NULL, '2023-09-15 17:21:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37917, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:21:56', '2023-09-15 17:21:56', 0, 0, '', NULL, '2023-09-15 17:21:56', NULL, '2023-09-15 17:21:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37918, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:23:02', '2023-09-15 17:23:02', 0, 0, '', NULL, '2023-09-15 17:23:02', NULL, '2023-09-15 17:23:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37919, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:23:56', '2023-09-15 17:23:56', 0, 0, '', NULL, '2023-09-15 17:23:56', NULL, '2023-09-15 17:23:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37920, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:25:03', '2023-09-15 17:25:03', 0, 0, '', NULL, '2023-09-15 17:25:03', NULL, '2023-09-15 17:25:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37921, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:25:56', '2023-09-15 17:25:56', 0, 0, '', NULL, '2023-09-15 17:25:56', NULL, '2023-09-15 17:25:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37922, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:27:03', '2023-09-15 17:27:03', 0, 0, '', NULL, '2023-09-15 17:27:03', NULL, '2023-09-15 17:27:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37923, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:27:56', '2023-09-15 17:27:56', 0, 0, '', NULL, '2023-09-15 17:27:56', NULL, '2023-09-15 17:27:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37924, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:29:03', '2023-09-15 17:29:03', 0, 0, '', NULL, '2023-09-15 17:29:03', NULL, '2023-09-15 17:29:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37925, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:29:56', '2023-09-15 17:29:56', 0, 0, '', NULL, '2023-09-15 17:29:56', NULL, '2023-09-15 17:29:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37926, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:31:03', '2023-09-15 17:31:03', 0, 0, '', NULL, '2023-09-15 17:31:03', NULL, '2023-09-15 17:31:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37927, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:31:56', '2023-09-15 17:31:56', 0, 0, '', NULL, '2023-09-15 17:31:56', NULL, '2023-09-15 17:31:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37928, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:33:02', '2023-09-15 17:33:02', 0, 0, '', NULL, '2023-09-15 17:33:02', NULL, '2023-09-15 17:33:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37929, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:33:56', '2023-09-15 17:33:56', 0, 0, '', NULL, '2023-09-15 17:33:56', NULL, '2023-09-15 17:33:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37930, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:35:02', '2023-09-15 17:35:02', 0, 0, '', NULL, '2023-09-15 17:35:02', NULL, '2023-09-15 17:35:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37931, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:35:56', '2023-09-15 17:35:56', 0, 0, '', NULL, '2023-09-15 17:35:56', NULL, '2023-09-15 17:35:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37932, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:37:02', '2023-09-15 17:37:02', 0, 0, '', NULL, '2023-09-15 17:37:02', NULL, '2023-09-15 17:37:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37933, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:37:56', '2023-09-15 17:37:56', 0, 0, '', NULL, '2023-09-15 17:37:56', NULL, '2023-09-15 17:37:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37934, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:39:03', '2023-09-15 17:39:03', 0, 0, '', NULL, '2023-09-15 17:39:03', NULL, '2023-09-15 17:39:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37935, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:39:56', '2023-09-15 17:39:56', 0, 0, '', NULL, '2023-09-15 17:39:56', NULL, '2023-09-15 17:39:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37936, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:41:03', '2023-09-15 17:41:03', 0, 0, '', NULL, '2023-09-15 17:41:03', NULL, '2023-09-15 17:41:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37937, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:41:56', '2023-09-15 17:41:56', 0, 0, '', NULL, '2023-09-15 17:41:56', NULL, '2023-09-15 17:41:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37938, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:43:03', '2023-09-15 17:43:03', 0, 0, '', NULL, '2023-09-15 17:43:03', NULL, '2023-09-15 17:43:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37939, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:43:56', '2023-09-15 17:43:56', 0, 0, '', NULL, '2023-09-15 17:43:56', NULL, '2023-09-15 17:43:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37940, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:45:03', '2023-09-15 17:45:03', 0, 0, '', NULL, '2023-09-15 17:45:03', NULL, '2023-09-15 17:45:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37941, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:45:56', '2023-09-15 17:45:56', 0, 0, '', NULL, '2023-09-15 17:45:56', NULL, '2023-09-15 17:45:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37942, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:47:03', '2023-09-15 17:47:03', 0, 0, '', NULL, '2023-09-15 17:47:03', NULL, '2023-09-15 17:47:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37943, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:47:56', '2023-09-15 17:47:56', 0, 0, '', NULL, '2023-09-15 17:47:56', NULL, '2023-09-15 17:47:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37944, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:49:03', '2023-09-15 17:49:03', 0, 0, '', NULL, '2023-09-15 17:49:03', NULL, '2023-09-15 17:49:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37945, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:49:56', '2023-09-15 17:49:56', 0, 0, '', NULL, '2023-09-15 17:49:56', NULL, '2023-09-15 17:49:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37946, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:51:03', '2023-09-15 17:51:03', 0, 0, '', NULL, '2023-09-15 17:51:03', NULL, '2023-09-15 17:51:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37947, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:51:56', '2023-09-15 17:51:56', 0, 0, '', NULL, '2023-09-15 17:51:56', NULL, '2023-09-15 17:51:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37948, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:53:02', '2023-09-15 17:53:02', 0, 0, '', NULL, '2023-09-15 17:53:02', NULL, '2023-09-15 17:53:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37949, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:53:56', '2023-09-15 17:53:56', 0, 0, '', NULL, '2023-09-15 17:53:56', NULL, '2023-09-15 17:53:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37950, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:55:03', '2023-09-15 17:55:03', 0, 0, '', NULL, '2023-09-15 17:55:03', NULL, '2023-09-15 17:55:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37951, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:55:56', '2023-09-15 17:55:56', 0, 0, '', NULL, '2023-09-15 17:55:56', NULL, '2023-09-15 17:55:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37952, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:57:02', '2023-09-15 17:57:02', 0, 0, '', NULL, '2023-09-15 17:57:02', NULL, '2023-09-15 17:57:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37953, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:57:56', '2023-09-15 17:57:56', 0, 0, '', NULL, '2023-09-15 17:57:56', NULL, '2023-09-15 17:57:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37954, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:59:03', '2023-09-15 17:59:03', 0, 0, '', NULL, '2023-09-15 17:59:03', NULL, '2023-09-15 17:59:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37955, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 17:59:56', '2023-09-15 17:59:56', 0, 0, '', NULL, '2023-09-15 17:59:56', NULL, '2023-09-15 17:59:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37956, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:01:03', '2023-09-15 18:01:03', 0, 0, '', NULL, '2023-09-15 18:01:03', NULL, '2023-09-15 18:01:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37957, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:01:56', '2023-09-15 18:01:56', 0, 0, '', NULL, '2023-09-15 18:01:56', NULL, '2023-09-15 18:01:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37958, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:03:03', '2023-09-15 18:03:03', 0, 0, '', NULL, '2023-09-15 18:03:03', NULL, '2023-09-15 18:03:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37959, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:03:56', '2023-09-15 18:03:56', 0, 0, '', NULL, '2023-09-15 18:03:56', NULL, '2023-09-15 18:03:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37960, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:05:03', '2023-09-15 18:05:03', 0, 0, '', NULL, '2023-09-15 18:05:03', NULL, '2023-09-15 18:05:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37961, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:05:56', '2023-09-15 18:05:56', 0, 0, '', NULL, '2023-09-15 18:05:56', NULL, '2023-09-15 18:05:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37962, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:07:02', '2023-09-15 18:07:02', 0, 0, '', NULL, '2023-09-15 18:07:02', NULL, '2023-09-15 18:07:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37963, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:07:56', '2023-09-15 18:07:56', 0, 0, '', NULL, '2023-09-15 18:07:56', NULL, '2023-09-15 18:07:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37964, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:09:02', '2023-09-15 18:09:02', 0, 0, '', NULL, '2023-09-15 18:09:02', NULL, '2023-09-15 18:09:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37965, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:09:56', '2023-09-15 18:09:56', 0, 0, '', NULL, '2023-09-15 18:09:56', NULL, '2023-09-15 18:09:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37966, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:11:03', '2023-09-15 18:11:03', 0, 0, '', NULL, '2023-09-15 18:11:03', NULL, '2023-09-15 18:11:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37967, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:11:56', '2023-09-15 18:11:56', 0, 0, '', NULL, '2023-09-15 18:11:56', NULL, '2023-09-15 18:11:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37968, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:13:02', '2023-09-15 18:13:02', 0, 0, '', NULL, '2023-09-15 18:13:02', NULL, '2023-09-15 18:13:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37969, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:13:56', '2023-09-15 18:13:56', 0, 0, '', NULL, '2023-09-15 18:13:56', NULL, '2023-09-15 18:13:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37970, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:15:03', '2023-09-15 18:15:03', 0, 0, '', NULL, '2023-09-15 18:15:03', NULL, '2023-09-15 18:15:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37971, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:15:56', '2023-09-15 18:15:56', 0, 0, '', NULL, '2023-09-15 18:15:56', NULL, '2023-09-15 18:15:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37972, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:17:02', '2023-09-15 18:17:02', 0, 0, '', NULL, '2023-09-15 18:17:02', NULL, '2023-09-15 18:17:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37973, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:17:56', '2023-09-15 18:17:56', 0, 0, '', NULL, '2023-09-15 18:17:56', NULL, '2023-09-15 18:17:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37974, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:19:03', '2023-09-15 18:19:03', 0, 0, '', NULL, '2023-09-15 18:19:03', NULL, '2023-09-15 18:19:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37975, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:19:56', '2023-09-15 18:19:56', 0, 0, '', NULL, '2023-09-15 18:19:56', NULL, '2023-09-15 18:19:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37976, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:21:03', '2023-09-15 18:21:03', 0, 0, '', NULL, '2023-09-15 18:21:03', NULL, '2023-09-15 18:21:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37977, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:21:56', '2023-09-15 18:21:56', 0, 0, '', NULL, '2023-09-15 18:21:56', NULL, '2023-09-15 18:21:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37978, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:23:03', '2023-09-15 18:23:03', 0, 0, '', NULL, '2023-09-15 18:23:03', NULL, '2023-09-15 18:23:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37979, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:23:56', '2023-09-15 18:23:56', 0, 0, '', NULL, '2023-09-15 18:23:56', NULL, '2023-09-15 18:23:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37980, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:25:56', '2023-09-15 18:25:56', 0, 0, '', NULL, '2023-09-15 18:25:56', NULL, '2023-09-15 18:25:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37981, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:27:56', '2023-09-15 18:27:56', 0, 0, '', NULL, '2023-09-15 18:27:56', NULL, '2023-09-15 18:27:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37982, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:29:56', '2023-09-15 18:29:56', 0, 0, '', NULL, '2023-09-15 18:29:56', NULL, '2023-09-15 18:29:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37983, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:31:56', '2023-09-15 18:31:56', 0, 0, '', NULL, '2023-09-15 18:31:56', NULL, '2023-09-15 18:31:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37984, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:33:56', '2023-09-15 18:33:56', 0, 0, '', NULL, '2023-09-15 18:33:56', NULL, '2023-09-15 18:33:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37985, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:35:56', '2023-09-15 18:35:56', 0, 0, '', NULL, '2023-09-15 18:35:56', NULL, '2023-09-15 18:35:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37986, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-15 18:37:56', '2023-09-15 18:37:56', 0, 0, '', NULL, '2023-09-15 18:37:56', NULL, '2023-09-15 18:37:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37987, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:15', '2023-09-18 10:53:15', 0, 0, '', NULL, '2023-09-18 10:53:15', NULL, '2023-09-18 10:53:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37988, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:15', '2023-09-18 10:53:15', 0, 0, '', NULL, '2023-09-18 10:53:15', NULL, '2023-09-18 10:53:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37989, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"wxapp\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:18', '2023-09-18 10:53:18', 0, 0, '', NULL, '2023-09-18 10:53:18', NULL, '2023-09-18 10:53:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37990, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"aliapp\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:20', '2023-09-18 10:53:20', 0, 0, '', NULL, '2023-09-18 10:53:20', NULL, '2023-09-18 10:53:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37991, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"wechat\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:21', '2023-09-18 10:53:21', 0, 0, '', NULL, '2023-09-18 10:53:21', NULL, '2023-09-18 10:53:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37992, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"h5\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:22', '2023-09-18 10:53:22', 0, 0, '', NULL, '2023-09-18 10:53:22', NULL, '2023-09-18 10:53:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37993, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"pc\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:23', '2023-09-18 10:53:23', 0, 0, '', NULL, '2023-09-18 10:53:23', NULL, '2023-09-18 10:53:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37994, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:23', '2023-09-18 10:53:23', 0, 0, '', NULL, '2023-09-18 10:53:23', NULL, '2023-09-18 10:53:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37995, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"app\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:23', '2023-09-18 10:53:23', 0, 0, '', NULL, '2023-09-18 10:53:23', NULL, '2023-09-18 10:53:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37996, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"h5\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:24', '2023-09-18 10:53:24', 0, 0, '', NULL, '2023-09-18 10:53:24', NULL, '2023-09-18 10:53:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37997, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:26', '2023-09-18 10:53:26', 0, 0, '', NULL, '2023-09-18 10:53:26', NULL, '2023-09-18 10:53:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37998, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"wxapp\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:37', '2023-09-18 10:53:37', 0, 0, '', NULL, '2023-09-18 10:53:37', NULL, '2023-09-18 10:53:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (37999, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:53:54', '2023-09-18 10:53:54', 0, 0, '', NULL, '2023-09-18 10:53:54', NULL, '2023-09-18 10:53:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38000, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:55:23', '2023-09-18 10:55:23', 0, 0, '', NULL, '2023-09-18 10:55:23', NULL, '2023-09-18 10:55:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38001, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:55:54', '2023-09-18 10:55:54', 0, 0, '', NULL, '2023-09-18 10:55:54', NULL, '2023-09-18 10:55:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38002, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:57:24', '2023-09-18 10:57:24', 0, 0, '', NULL, '2023-09-18 10:57:24', NULL, '2023-09-18 10:57:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38003, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:57:54', '2023-09-18 10:57:54', 0, 0, '', NULL, '2023-09-18 10:57:54', NULL, '2023-09-18 10:57:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38004, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:59:38', '2023-09-18 10:59:38', 0, 0, '', NULL, '2023-09-18 10:59:38', NULL, '2023-09-18 10:59:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38005, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 10:59:54', '2023-09-18 10:59:54', 0, 0, '', NULL, '2023-09-18 10:59:54', NULL, '2023-09-18 10:59:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38006, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:01:38', '2023-09-18 11:01:38', 0, 0, '', NULL, '2023-09-18 11:01:38', NULL, '2023-09-18 11:01:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38007, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:01:54', '2023-09-18 11:01:54', 0, 0, '', NULL, '2023-09-18 11:01:54', NULL, '2023-09-18 11:01:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38008, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:03:38', '2023-09-18 11:03:38', 0, 0, '', NULL, '2023-09-18 11:03:38', NULL, '2023-09-18 11:03:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38009, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:03:54', '2023-09-18 11:03:54', 0, 0, '', NULL, '2023-09-18 11:03:54', NULL, '2023-09-18 11:03:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38010, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:05:39', '2023-09-18 11:05:39', 0, 0, '', NULL, '2023-09-18 11:05:39', NULL, '2023-09-18 11:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38011, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:05:54', '2023-09-18 11:05:54', 0, 0, '', NULL, '2023-09-18 11:05:54', NULL, '2023-09-18 11:05:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38012, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:07:39', '2023-09-18 11:07:39', 0, 0, '', NULL, '2023-09-18 11:07:39', NULL, '2023-09-18 11:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38013, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:07:54', '2023-09-18 11:07:54', 0, 0, '', NULL, '2023-09-18 11:07:54', NULL, '2023-09-18 11:07:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38014, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:09:38', '2023-09-18 11:09:38', 0, 0, '', NULL, '2023-09-18 11:09:38', NULL, '2023-09-18 11:09:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38015, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:09:54', '2023-09-18 11:09:54', 0, 0, '', NULL, '2023-09-18 11:09:54', NULL, '2023-09-18 11:09:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38016, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:11:38', '2023-09-18 11:11:38', 0, 0, '', NULL, '2023-09-18 11:11:38', NULL, '2023-09-18 11:11:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38017, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:11:54', '2023-09-18 11:11:54', 0, 0, '', NULL, '2023-09-18 11:11:54', NULL, '2023-09-18 11:11:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38018, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:13:38', '2023-09-18 11:13:38', 0, 0, '', NULL, '2023-09-18 11:13:38', NULL, '2023-09-18 11:13:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38019, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:13:54', '2023-09-18 11:13:54', 0, 0, '', NULL, '2023-09-18 11:13:54', NULL, '2023-09-18 11:13:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38020, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:15:38', '2023-09-18 11:15:38', 0, 0, '', NULL, '2023-09-18 11:15:38', NULL, '2023-09-18 11:15:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38021, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:15:54', '2023-09-18 11:15:54', 0, 0, '', NULL, '2023-09-18 11:15:54', NULL, '2023-09-18 11:15:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38022, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:17:38', '2023-09-18 11:17:38', 0, 0, '', NULL, '2023-09-18 11:17:38', NULL, '2023-09-18 11:17:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38023, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:17:54', '2023-09-18 11:17:54', 0, 0, '', NULL, '2023-09-18 11:17:54', NULL, '2023-09-18 11:17:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38024, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:19:38', '2023-09-18 11:19:38', 0, 0, '', NULL, '2023-09-18 11:19:38', NULL, '2023-09-18 11:19:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38025, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:19:54', '2023-09-18 11:19:54', 0, 0, '', NULL, '2023-09-18 11:19:54', NULL, '2023-09-18 11:19:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38026, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:21:38', '2023-09-18 11:21:38', 0, 0, '', NULL, '2023-09-18 11:21:38', NULL, '2023-09-18 11:21:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38027, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:21:54', '2023-09-18 11:21:54', 0, 0, '', NULL, '2023-09-18 11:21:54', NULL, '2023-09-18 11:21:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38028, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:23:38', '2023-09-18 11:23:38', 0, 0, '', NULL, '2023-09-18 11:23:38', NULL, '2023-09-18 11:23:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38029, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:23:54', '2023-09-18 11:23:54', 0, 0, '', NULL, '2023-09-18 11:23:54', NULL, '2023-09-18 11:23:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38030, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:35', '2023-09-18 11:25:35', 0, 0, '', NULL, '2023-09-18 11:25:35', NULL, '2023-09-18 11:25:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38031, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:40', '2023-09-18 11:25:40', 0, 0, '', NULL, '2023-09-18 11:25:40', NULL, '2023-09-18 11:25:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38032, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:42', '2023-09-18 11:25:42', 0, 0, '', NULL, '2023-09-18 11:25:42', NULL, '2023-09-18 11:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38033, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:42', '2023-09-18 11:25:42', 0, 0, '', NULL, '2023-09-18 11:25:42', NULL, '2023-09-18 11:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38034, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:42', '2023-09-18 11:25:42', 0, 0, '', NULL, '2023-09-18 11:25:42', NULL, '2023-09-18 11:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38035, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"routine\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:43', '2023-09-18 11:25:43', 0, 0, '', NULL, '2023-09-18 11:25:43', NULL, '2023-09-18 11:25:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38036, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"h5\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:46', '2023-09-18 11:25:46', 0, 0, '', NULL, '2023-09-18 11:25:46', NULL, '2023-09-18 11:25:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38037, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:47', '2023-09-18 11:25:47', 0, 0, '', NULL, '2023-09-18 11:25:47', NULL, '2023-09-18 11:25:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38038, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:25:54', '2023-09-18 11:25:54', 0, 0, '', NULL, '2023-09-18 11:25:54', NULL, '2023-09-18 11:25:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38039, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:25:57', '2023-09-18 11:25:57', 0, 0, '', NULL, '2023-09-18 11:25:57', NULL, '2023-09-18 11:25:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38040, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:25:58', '2023-09-18 11:25:58', 0, 0, '', NULL, '2023-09-18 11:25:58', NULL, '2023-09-18 11:25:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38041, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1BzUGa1Bxc1G0yQkJa1nBchh3BzUGE\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:25:57', '2023-09-18 11:25:58', 0, 0, '', NULL, '2023-09-18 11:25:58', NULL, '2023-09-18 11:25:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38042, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38043, '', 2, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38044, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38045, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38046, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38047, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38048, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38049, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38050, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:00', '2023-09-18 11:26:00', 0, 0, '', NULL, '2023-09-18 11:26:00', NULL, '2023-09-18 11:26:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38051, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:03', '2023-09-18 11:26:03', 0, 0, '', NULL, '2023-09-18 11:26:03', NULL, '2023-09-18 11:26:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38052, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:35', '2023-09-18 11:26:35', 0, 0, '', NULL, '2023-09-18 11:26:35', NULL, '2023-09-18 11:26:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38053, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1WvmGa1uwK1G04WhJa1Y7a3f3WvmGp\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:35', '2023-09-18 11:26:35', 0, 0, '', NULL, '2023-09-18 11:26:35', NULL, '2023-09-18 11:26:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38054, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38055, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38056, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38057, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38058, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38059, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:26:38', '2023-09-18 11:26:38', 0, 0, '', NULL, '2023-09-18 11:26:38', NULL, '2023-09-18 11:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38060, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/member/user/updateMony', '{\"query\":{},\"body\":\"{\\\"id\\\":2,\\\"ptype\\\":1,\\\"money\\\":\\\"10000\\\",\\\"itype\\\":1,\\\"integral\\\":\\\"0\\\"}\"}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:26:59', '2023-09-18 11:26:59', 0, 0, '', NULL, '2023-09-18 11:26:59', NULL, '2023-09-18 11:26:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38061, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"loginType\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:26:59', '2023-09-18 11:26:59', 0, 0, '', NULL, '2023-09-18 11:26:59', NULL, '2023-09-18 11:26:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38062, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:27:08', '2023-09-18 11:27:08', 0, 0, '', NULL, '2023-09-18 11:27:08', NULL, '2023-09-18 11:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38063, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:27:08', '2023-09-18 11:27:08', 0, 0, '', NULL, '2023-09-18 11:27:08', NULL, '2023-09-18 11:27:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38064, '', 2, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:27:24', '2023-09-18 11:27:24', 0, 0, '', NULL, '2023-09-18 11:27:24', NULL, '2023-09-18 11:27:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38065, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:27:42', '2023-09-18 11:27:42', 0, 0, '', NULL, '2023-09-18 11:27:42', NULL, '2023-09-18 11:27:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38066, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1zAmGa172L1G0YneHa1NooNN2zAmGx\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:27:48', '2023-09-18 11:27:49', 0, 0, '', NULL, '2023-09-18 11:27:49', NULL, '2023-09-18 11:27:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38067, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:27:54', '2023-09-18 11:27:54', 0, 0, '', NULL, '2023-09-18 11:27:54', NULL, '2023-09-18 11:27:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38068, '', 2, 1, 'yshop-server', 'POST', '/app-api/address/addAndEdit', '{\"query\":{\"realName\":\"胡萝卜\",\"isDefault\":\"0\",\"address\":\"河南省漯河市源汇区交通路602号附近 富豪花园\",\"phone\":\"15136175212\",\"latitude\":\"33.5607274581116\",\"detail\":\"86号\",\"longitude\":\"114.03841284847353\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:28:00', '2023-09-18 11:28:00', 0, 500, '系统异常', NULL, '2023-09-18 11:28:00', NULL, '2023-09-18 11:28:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38069, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:29:42', '2023-09-18 11:29:42', 0, 0, '', NULL, '2023-09-18 11:29:42', NULL, '2023-09-18 11:29:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38070, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:29:54', '2023-09-18 11:29:54', 0, 0, '', NULL, '2023-09-18 11:29:54', NULL, '2023-09-18 11:29:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38071, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1TCOFa1oLi2G0WSpGa1F4AOK3TCOFt\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:30:02', '2023-09-18 11:30:02', 0, 0, '', NULL, '2023-09-18 11:30:02', NULL, '2023-09-18 11:30:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38072, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:31:42', '2023-09-18 11:31:42', 0, 0, '', NULL, '2023-09-18 11:31:42', NULL, '2023-09-18 11:31:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38073, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:31:54', '2023-09-18 11:31:54', 0, 0, '', NULL, '2023-09-18 11:31:54', NULL, '2023-09-18 11:31:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38074, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:33:42', '2023-09-18 11:33:42', 0, 0, '', NULL, '2023-09-18 11:33:42', NULL, '2023-09-18 11:33:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38075, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:33:54', '2023-09-18 11:33:54', 0, 0, '', NULL, '2023-09-18 11:33:54', NULL, '2023-09-18 11:33:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38076, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f136nGa1F9L1G0CDiGa1RmYEx436nGP\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:08', '2023-09-18 11:36:08', 0, 0, '', NULL, '2023-09-18 11:36:08', NULL, '2023-09-18 11:36:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38077, '', 2, 1, 'yshop-server', 'POST', '/app-api/address/addAndEdit', '{\"query\":{\"realName\":\"胡萝卜\",\"isDefault\":\"0\",\"address\":\"河南省漯河市源汇区交通路602号附近 富豪花园\",\"phone\":\"15136175212\",\"latitude\":\"33.5607274581116\",\"detail\":\"86号\",\"longitude\":\"114.03841284847353\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:10', '2023-09-18 11:36:10', 0, 0, '', NULL, '2023-09-18 11:36:10', NULL, '2023-09-18 11:36:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38078, '', 2, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:12', '2023-09-18 11:36:12', 0, 0, '', NULL, '2023-09-18 11:36:12', NULL, '2023-09-18 11:36:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38079, '', 2, 1, 'yshop-server', 'POST', '/app-api/address/getDistanceFromLocation', '{\"query\":{\"lat2\":\"33.57093831826829\",\"lng\":\"114.03841284847353\",\"lat\":\"33.5607274581116\",\"lng2\":\"114.04877877439665\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:16', '2023-09-18 11:36:16', 0, 0, '', NULL, '2023-09-18 11:36:16', NULL, '2023-09-18 11:36:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38080, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:17', '2023-09-18 11:36:17', 0, 0, '', NULL, '2023-09-18 11:36:17', NULL, '2023-09-18 11:36:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38081, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takeout\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"1\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:32', '2023-09-18 11:36:32', 0, 0, '', NULL, '2023-09-18 11:36:32', NULL, '2023-09-18 11:36:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38082, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703613951591317504\",\"from\":\"routine\",\"paytype\":\"yue\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:33', '2023-09-18 11:36:33', 0, 0, '', NULL, '2023-09-18 11:36:33', NULL, '2023-09-18 11:36:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38083, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:36:33', '2023-09-18 11:36:33', 0, 0, '', NULL, '2023-09-18 11:36:33', NULL, '2023-09-18 11:36:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38084, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:36:39', '2023-09-18 11:36:39', 0, 0, '', NULL, '2023-09-18 11:36:39', NULL, '2023-09-18 11:36:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38085, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:38:38', '2023-09-18 11:38:38', 0, 0, '', NULL, '2023-09-18 11:38:38', NULL, '2023-09-18 11:38:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38086, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:40:38', '2023-09-18 11:40:38', 0, 0, '', NULL, '2023-09-18 11:40:38', NULL, '2023-09-18 11:40:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38087, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:41:02', '2023-09-18 11:41:02', 0, 0, '', NULL, '2023-09-18 11:41:02', NULL, '2023-09-18 11:41:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38088, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1DZZ0w3TAom1334k1w3na6gz0DZZ08\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:41:03', '2023-09-18 11:41:03', 0, 0, '', NULL, '2023-09-18 11:41:03', NULL, '2023-09-18 11:41:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38089, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:15', '2023-09-18 11:42:15', 0, 0, '', NULL, '2023-09-18 11:42:15', NULL, '2023-09-18 11:42:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38090, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1EF8ll2p0g2c4QYIll28mSIa1EF8lu\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:16', '2023-09-18 11:42:16', 0, 0, '', NULL, '2023-09-18 11:42:16', NULL, '2023-09-18 11:42:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38091, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:26', '2023-09-18 11:42:26', 0, 0, '', NULL, '2023-09-18 11:42:26', NULL, '2023-09-18 11:42:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38092, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:26', '2023-09-18 11:42:26', 0, 0, '', NULL, '2023-09-18 11:42:26', NULL, '2023-09-18 11:42:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38093, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takeout\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"1\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:30', '2023-09-18 11:42:30', 0, 0, '', NULL, '2023-09-18 11:42:30', NULL, '2023-09-18 11:42:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38094, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703615452900491264\",\"from\":\"routine\",\"paytype\":\"yue\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:30', '2023-09-18 11:42:30', 0, 0, '', NULL, '2023-09-18 11:42:30', NULL, '2023-09-18 11:42:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38095, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:31', '2023-09-18 11:42:31', 0, 0, '', NULL, '2023-09-18 11:42:31', NULL, '2023-09-18 11:42:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38096, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:42:38', '2023-09-18 11:42:38', 0, 0, '', NULL, '2023-09-18 11:42:38', NULL, '2023-09-18 11:42:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38097, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:40', '2023-09-18 11:42:40', 0, 0, '', NULL, '2023-09-18 11:42:40', NULL, '2023-09-18 11:42:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38098, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"undefined\",\"kw\":\"\",\"lat\":\"undefined\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:42:45', '2023-09-18 11:42:45', 0, 400, '请求参数类型错误:Failed to convert value of type \'java.lang.String\' to required type \'double\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"', NULL, '2023-09-18 11:42:45', NULL, '2023-09-18 11:42:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38099, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:08', '2023-09-18 11:44:08', 0, 0, '', NULL, '2023-09-18 11:44:08', NULL, '2023-09-18 11:44:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38100, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:08', '2023-09-18 11:44:08', 0, 0, '', NULL, '2023-09-18 11:44:08', NULL, '2023-09-18 11:44:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38101, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:09', '2023-09-18 11:44:09', 0, 0, '', NULL, '2023-09-18 11:44:09', NULL, '2023-09-18 11:44:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38102, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/25 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:44:09', '2023-09-18 11:44:09', 0, 0, '', NULL, '2023-09-18 11:44:09', NULL, '2023-09-18 11:44:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38103, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/25 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:44:09', '2023-09-18 11:44:09', 0, 0, '', NULL, '2023-09-18 11:44:09', NULL, '2023-09-18 11:44:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38104, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/25 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:44:09', '2023-09-18 11:44:09', 0, 0, '', NULL, '2023-09-18 11:44:09', NULL, '2023-09-18 11:44:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38105, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:21', '2023-09-18 11:44:21', 0, 0, '', NULL, '2023-09-18 11:44:21', NULL, '2023-09-18 11:44:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38106, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:21', '2023-09-18 11:44:21', 0, 0, '', NULL, '2023-09-18 11:44:21', NULL, '2023-09-18 11:44:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38107, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:44:21', '2023-09-18 11:44:21', 0, 0, '', NULL, '2023-09-18 11:44:21', NULL, '2023-09-18 11:44:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38108, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:44:38', '2023-09-18 11:44:38', 0, 0, '', NULL, '2023-09-18 11:44:38', NULL, '2023-09-18 11:44:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38109, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1Qdw000LgDHQ1Fdc300UoWGT0Qdw0v\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:44:42', '2023-09-18 11:44:42', 0, 0, '', NULL, '2023-09-18 11:44:42', NULL, '2023-09-18 11:44:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38110, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:45:16', '2023-09-18 11:45:16', 0, 0, '', NULL, '2023-09-18 11:45:16', NULL, '2023-09-18 11:45:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38111, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/21 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:45:16', '2023-09-18 11:45:16', 0, 0, '', NULL, '2023-09-18 11:45:16', NULL, '2023-09-18 11:45:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38112, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:45:24', '2023-09-18 11:45:24', 0, 0, '', NULL, '2023-09-18 11:45:24', NULL, '2023-09-18 11:45:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38113, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:45:25', '2023-09-18 11:45:25', 0, 0, '', NULL, '2023-09-18 11:45:25', NULL, '2023-09-18 11:45:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38114, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:45:25', '2023-09-18 11:45:25', 0, 0, '', NULL, '2023-09-18 11:45:25', NULL, '2023-09-18 11:45:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38115, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1DIEGa1fKu1G0epWGa1jv82d1DIEGR\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:45:32', '2023-09-18 11:45:32', 0, 0, '', NULL, '2023-09-18 11:45:32', NULL, '2023-09-18 11:45:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38116, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:45:38', '2023-09-18 11:45:38', 0, 0, '', NULL, '2023-09-18 11:45:38', NULL, '2023-09-18 11:45:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38117, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:45:54', '2023-09-18 11:45:54', 0, 0, '', NULL, '2023-09-18 11:45:54', NULL, '2023-09-18 11:45:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38118, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:37', '2023-09-18 11:46:37', 0, 0, '', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38119, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:37', '2023-09-18 11:46:37', 0, 0, '', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38120, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1BDPFa1Jzk2G0LZ5Ja15qy1Y2BDPF-\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:37', '2023-09-18 11:46:37', 0, 0, '', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38121, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38122, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38123, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38124, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38125, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38126, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:44', '2023-09-18 11:46:44', 0, 0, '', NULL, '2023-09-18 11:46:44', NULL, '2023-09-18 11:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38127, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:46', '2023-09-18 11:46:46', 0, 0, '', NULL, '2023-09-18 11:46:46', NULL, '2023-09-18 11:46:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38128, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:46', '2023-09-18 11:46:46', 0, 0, '', NULL, '2023-09-18 11:46:46', NULL, '2023-09-18 11:46:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38129, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:46', '2023-09-18 11:46:46', 0, 0, '', NULL, '2023-09-18 11:46:46', NULL, '2023-09-18 11:46:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38130, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:49', '2023-09-18 11:46:49', 0, 0, '', NULL, '2023-09-18 11:46:49', NULL, '2023-09-18 11:46:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38131, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:49', '2023-09-18 11:46:49', 0, 0, '', NULL, '2023-09-18 11:46:49', NULL, '2023-09-18 11:46:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38132, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:49', '2023-09-18 11:46:49', 0, 0, '', NULL, '2023-09-18 11:46:49', NULL, '2023-09-18 11:46:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38133, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:54', '2023-09-18 11:46:54', 0, 0, '', NULL, '2023-09-18 11:46:54', NULL, '2023-09-18 11:46:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38134, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:56', '2023-09-18 11:46:56', 0, 0, '', NULL, '2023-09-18 11:46:56', NULL, '2023-09-18 11:46:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38135, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:56', '2023-09-18 11:46:56', 0, 0, '', NULL, '2023-09-18 11:46:56', NULL, '2023-09-18 11:46:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38136, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:56', '2023-09-18 11:46:56', 0, 0, '', NULL, '2023-09-18 11:46:56', NULL, '2023-09-18 11:46:56', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38137, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:46:59', '2023-09-18 11:46:59', 0, 0, '', NULL, '2023-09-18 11:46:59', NULL, '2023-09-18 11:46:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38138, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:47:19', '2023-09-18 11:47:19', 0, 0, '', NULL, '2023-09-18 11:47:19', NULL, '2023-09-18 11:47:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38139, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:47:19', '2023-09-18 11:47:19', 0, 0, '', NULL, '2023-09-18 11:47:19', NULL, '2023-09-18 11:47:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38140, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:47:19', '2023-09-18 11:47:19', 0, 0, '', NULL, '2023-09-18 11:47:19', NULL, '2023-09-18 11:47:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38141, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:47:35', '2023-09-18 11:47:35', 0, 0, '', NULL, '2023-09-18 11:47:35', NULL, '2023-09-18 11:47:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38142, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:47:35', '2023-09-18 11:47:35', 0, 0, '', NULL, '2023-09-18 11:47:35', NULL, '2023-09-18 11:47:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38143, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:47:42', '2023-09-18 11:47:42', 0, 0, '', NULL, '2023-09-18 11:47:42', NULL, '2023-09-18 11:47:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38144, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"oHux265Iu9R5pMKk1O3U_J6TtMC4\",\"encryptedData\":\"aN+0amhxU3XzuYyYDVOo4FeVo9IIKylKwa2DCSezjfz82S+HfOoOodMAZIJhthApB5VGY+338FBXUTNj/0OzvkuRQ5V759y4nVH/Ff7bhps0AdzzBdMDbmIleXECjGt4XWyEkWeNswlijQryHv1pzkMbJtyAiXcuIMwvgAKRVWXPEWu8A1quHpp0bL9gGobRZJ2PD41OUJZqaFQlEjarcQ==\",\"iv\":\"TlhYcD7MydTnIiSRey4pSQ==\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:48:16', '2023-09-18 11:48:16', 0, 0, '', NULL, '2023-09-18 11:48:16', NULL, '2023-09-18 11:48:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38145, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/25 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:48:22', '2023-09-18 11:48:22', 0, 0, '', NULL, '2023-09-18 11:48:22', NULL, '2023-09-18 11:48:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38146, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:48:23', '2023-09-18 11:48:23', 0, 0, '', NULL, '2023-09-18 11:48:23', NULL, '2023-09-18 11:48:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38147, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/28 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:48:23', '2023-09-18 11:48:23', 0, 0, '', NULL, '2023-09-18 11:48:23', NULL, '2023-09-18 11:48:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38148, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:49:42', '2023-09-18 11:49:42', 0, 0, '', NULL, '2023-09-18 11:49:42', NULL, '2023-09-18 11:49:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38149, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:50:58', '2023-09-18 11:50:58', 0, 0, '', NULL, '2023-09-18 11:50:58', NULL, '2023-09-18 11:50:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38150, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1EKl100iSNGQ1EUC100uScic2EKl1N\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:50:58', '2023-09-18 11:50:58', 0, 0, '', NULL, '2023-09-18 11:50:58', NULL, '2023-09-18 11:50:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38151, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:52:38', '2023-09-18 11:52:38', 0, 0, '', NULL, '2023-09-18 11:52:38', NULL, '2023-09-18 11:52:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38152, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:54:38', '2023-09-18 11:54:38', 0, 0, '', NULL, '2023-09-18 11:54:38', NULL, '2023-09-18 11:54:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38153, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:56:38', '2023-09-18 11:56:38', 0, 0, '', NULL, '2023-09-18 11:56:38', NULL, '2023-09-18 11:56:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38154, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:57:06', '2023-09-18 11:57:06', 0, 0, '', NULL, '2023-09-18 11:57:06', NULL, '2023-09-18 11:57:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38155, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1HJYll2WOq1c4Es7ll2raZJr1HJYlb\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:57:19', '2023-09-18 11:57:20', 0, 0, '', NULL, '2023-09-18 11:57:20', NULL, '2023-09-18 11:57:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38156, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:40', '2023-09-18 11:57:40', 0, 0, '', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38157, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1om7Ga1FX22G0yqAIa1Iv7f83om7Gu\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:40', '2023-09-18 11:57:40', 0, 0, '', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38158, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/26 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:57:40', '2023-09-18 11:57:40', 0, 0, '', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38159, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38160, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38161, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38162, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/29 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38163, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/29 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38164, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/29 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:57:42', '2023-09-18 11:57:42', 0, 0, '', NULL, '2023-09-18 11:57:42', NULL, '2023-09-18 11:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38165, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:57:45', '2023-09-18 11:57:45', 0, 0, '', NULL, '2023-09-18 11:57:45', NULL, '2023-09-18 11:57:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38166, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/31 desktopapp miniprogram port/18401 token/2cd9e8232d0e6629715989b051fba051 runtime/2', '2023-09-18 11:57:46', '2023-09-18 11:57:46', 0, 0, '', NULL, '2023-09-18 11:57:46', NULL, '2023-09-18 11:57:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38167, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:23', '2023-09-18 11:58:23', 0, 0, '', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38168, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f13jzFa1lvC2G01W8Ja1lBmP433jzF0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:23', '2023-09-18 11:58:23', 0, 0, '', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38169, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/1 desktopapp miniprogram port/14998 token/d0350e9c7ce8851c887bfd9092826a01 runtime/2', '2023-09-18 11:58:23', '2023-09-18 11:58:23', 0, 0, '', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38170, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38171, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38172, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38173, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/14998 token/d0350e9c7ce8851c887bfd9092826a01 runtime/2', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38174, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/14998 token/d0350e9c7ce8851c887bfd9092826a01 runtime/2', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38175, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/14998 token/d0350e9c7ce8851c887bfd9092826a01 runtime/2', '2023-09-18 11:58:25', '2023-09-18 11:58:25', 0, 0, '', NULL, '2023-09-18 11:58:25', NULL, '2023-09-18 11:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38176, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:58:29', '2023-09-18 11:58:29', 0, 0, '', NULL, '2023-09-18 11:58:29', NULL, '2023-09-18 11:58:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38177, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/4 desktopapp miniprogram port/14998 token/d0350e9c7ce8851c887bfd9092826a01 runtime/2', '2023-09-18 11:58:30', '2023-09-18 11:58:30', 0, 0, '', NULL, '2023-09-18 11:58:30', NULL, '2023-09-18 11:58:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38178, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 11:58:38', '2023-09-18 11:58:38', 0, 0, '', NULL, '2023-09-18 11:58:38', NULL, '2023-09-18 11:58:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38179, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:11', '2023-09-18 11:59:11', 0, 0, '', NULL, '2023-09-18 11:59:11', NULL, '2023-09-18 11:59:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38180, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1GKqll21g02c401Rkl24WvPe0GKql0\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:11', '2023-09-18 11:59:11', 0, 0, '', NULL, '2023-09-18 11:59:11', NULL, '2023-09-18 11:59:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38181, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 11:59:11', '2023-09-18 11:59:12', 0, 0, '', NULL, '2023-09-18 11:59:12', NULL, '2023-09-18 11:59:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38182, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.01681\",\"kw\":\"\",\"lat\":\"33.58149\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:13', '2023-09-18 11:59:13', 0, 0, '', NULL, '2023-09-18 11:59:13', NULL, '2023-09-18 11:59:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38183, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:13', '2023-09-18 11:59:13', 0, 0, '', NULL, '2023-09-18 11:59:13', NULL, '2023-09-18 11:59:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38184, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:13', '2023-09-18 11:59:13', 0, 0, '', NULL, '2023-09-18 11:59:13', NULL, '2023-09-18 11:59:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38185, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 11:59:14', '2023-09-18 11:59:14', 0, 0, '', NULL, '2023-09-18 11:59:14', NULL, '2023-09-18 11:59:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38186, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 11:59:14', '2023-09-18 11:59:14', 0, 0, '', NULL, '2023-09-18 11:59:14', NULL, '2023-09-18 11:59:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38187, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/3 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 11:59:14', '2023-09-18 11:59:14', 0, 0, '', NULL, '2023-09-18 11:59:14', NULL, '2023-09-18 11:59:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38188, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"2\"},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 11:59:20', '2023-09-18 11:59:20', 0, 0, '', NULL, '2023-09-18 11:59:20', NULL, '2023-09-18 11:59:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38189, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/5 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 11:59:20', '2023-09-18 11:59:20', 0, 0, '', NULL, '2023-09-18 11:59:20', NULL, '2023-09-18 11:59:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38190, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:00:39', '2023-09-18 12:00:39', 0, 0, '', NULL, '2023-09-18 12:00:39', NULL, '2023-09-18 12:00:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38191, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:02:38', '2023-09-18 12:02:38', 0, 0, '', NULL, '2023-09-18 12:02:38', NULL, '2023-09-18 12:02:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38192, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:04:38', '2023-09-18 12:04:38', 0, 0, '', NULL, '2023-09-18 12:04:38', NULL, '2023-09-18 12:04:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38193, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:06:38', '2023-09-18 12:06:38', 0, 0, '', NULL, '2023-09-18 12:06:38', NULL, '2023-09-18 12:06:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38194, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:08:38', '2023-09-18 12:08:38', 0, 0, '', NULL, '2023-09-18 12:08:38', NULL, '2023-09-18 12:08:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38195, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:10:38', '2023-09-18 12:10:38', 0, 0, '', NULL, '2023-09-18 12:10:38', NULL, '2023-09-18 12:10:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38196, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:12:38', '2023-09-18 12:12:38', 0, 0, '', NULL, '2023-09-18 12:12:38', NULL, '2023-09-18 12:12:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38197, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:14:38', '2023-09-18 12:14:38', 0, 0, '', NULL, '2023-09-18 12:14:38', NULL, '2023-09-18 12:14:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38198, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.51', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:16:39', '2023-09-18 12:16:39', 0, 0, '', NULL, '2023-09-18 12:16:39', NULL, '2023-09-18 12:16:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38199, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:20:38', '2023-09-18 12:20:38', 0, 0, '', NULL, '2023-09-18 12:20:38', NULL, '2023-09-18 12:20:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38200, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:22:39', '2023-09-18 12:22:39', 0, 0, '', NULL, '2023-09-18 12:22:39', NULL, '2023-09-18 12:22:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38201, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:24:38', '2023-09-18 12:24:38', 0, 0, '', NULL, '2023-09-18 12:24:38', NULL, '2023-09-18 12:24:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38202, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:26:38', '2023-09-18 12:26:38', 0, 0, '', NULL, '2023-09-18 12:26:38', NULL, '2023-09-18 12:26:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38203, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:28:38', '2023-09-18 12:28:38', 0, 0, '', NULL, '2023-09-18 12:28:38', NULL, '2023-09-18 12:28:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38204, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:30:38', '2023-09-18 12:30:38', 0, 0, '', NULL, '2023-09-18 12:30:39', NULL, '2023-09-18 12:30:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38205, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:32:38', '2023-09-18 12:32:38', 0, 0, '', NULL, '2023-09-18 12:32:38', NULL, '2023-09-18 12:32:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38206, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.180', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 12:34:39', '2023-09-18 12:34:39', 0, 0, '', NULL, '2023-09-18 12:34:39', NULL, '2023-09-18 12:34:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38207, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:41:54', '2023-09-18 15:41:54', 0, 0, '', NULL, '2023-09-18 15:41:54', NULL, '2023-09-18 15:41:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38208, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:41:55', '2023-09-18 15:41:55', 0, 0, '', NULL, '2023-09-18 15:41:55', NULL, '2023-09-18 15:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38209, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1fhIHa1EoP4G0UEnHa1msKp42fhIHo\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:41:54', '2023-09-18 15:41:55', 0, 0, '', NULL, '2023-09-18 15:41:55', NULL, '2023-09-18 15:41:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38210, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:41:58', '2023-09-18 15:41:58', 0, 0, '', NULL, '2023-09-18 15:41:58', NULL, '2023-09-18 15:41:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38211, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:00', '2023-09-18 15:42:00', 0, 0, '', NULL, '2023-09-18 15:42:00', NULL, '2023-09-18 15:42:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38212, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:02', '2023-09-18 15:42:03', 0, 0, '', NULL, '2023-09-18 15:42:03', NULL, '2023-09-18 15:42:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38213, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:03', '2023-09-18 15:42:03', 0, 0, '', NULL, '2023-09-18 15:42:03', NULL, '2023-09-18 15:42:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38214, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:03', '2023-09-18 15:42:03', 0, 0, '', NULL, '2023-09-18 15:42:03', NULL, '2023-09-18 15:42:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38215, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:04', '2023-09-18 15:42:04', 0, 0, '', NULL, '2023-09-18 15:42:04', NULL, '2023-09-18 15:42:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38216, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:04', '2023-09-18 15:42:04', 0, 0, '', NULL, '2023-09-18 15:42:04', NULL, '2023-09-18 15:42:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38217, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:04', '2023-09-18 15:42:04', 0, 0, '', NULL, '2023-09-18 15:42:04', NULL, '2023-09-18 15:42:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38218, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:09', '2023-09-18 15:42:09', 0, 0, '', NULL, '2023-09-18 15:42:09', NULL, '2023-09-18 15:42:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38219, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:09', '2023-09-18 15:42:09', 0, 0, '', NULL, '2023-09-18 15:42:09', NULL, '2023-09-18 15:42:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38220, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:31', '2023-09-18 15:42:31', 0, 0, '', NULL, '2023-09-18 15:42:31', NULL, '2023-09-18 15:42:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38221, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:31', '2023-09-18 15:42:31', 0, 0, '', NULL, '2023-09-18 15:42:31', NULL, '2023-09-18 15:42:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38222, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"15\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\" 请放门口\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:37', '2023-09-18 15:42:37', 0, 0, '', NULL, '2023-09-18 15:42:37', NULL, '2023-09-18 15:42:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38223, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703675877960712192\",\"from\":\"routine\",\"paytype\":\"yue\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:37', '2023-09-18 15:42:37', 0, 0, '', NULL, '2023-09-18 15:42:37', NULL, '2023-09-18 15:42:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38224, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:37', '2023-09-18 15:42:37', 0, 0, '', NULL, '2023-09-18 15:42:37', NULL, '2023-09-18 15:42:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38225, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:42:38', '2023-09-18 15:42:39', 0, 0, '', NULL, '2023-09-18 15:42:39', NULL, '2023-09-18 15:42:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38226, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:42', '2023-09-18 15:42:42', 0, 0, '', NULL, '2023-09-18 15:42:42', NULL, '2023-09-18 15:42:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38227, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:52', '2023-09-18 15:42:52', 0, 0, '', NULL, '2023-09-18 15:42:52', NULL, '2023-09-18 15:42:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38228, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:52', '2023-09-18 15:42:52', 0, 0, '', NULL, '2023-09-18 15:42:52', NULL, '2023-09-18 15:42:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38229, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"3人|特辣\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:58', '2023-09-18 15:42:58', 0, 0, '', NULL, '2023-09-18 15:42:58', NULL, '2023-09-18 15:42:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38230, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703675968628981760\",\"from\":\"routine\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:59', '2023-09-18 15:42:59', 0, 500, '系统异常', NULL, '2023-09-18 15:42:59', NULL, '2023-09-18 15:42:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38231, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:44:38', '2023-09-18 15:44:39', 0, 0, '', NULL, '2023-09-18 15:44:39', NULL, '2023-09-18 15:44:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38232, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:46:30', '2023-09-18 15:46:30', 0, 0, '', NULL, '2023-09-18 15:46:30', NULL, '2023-09-18 15:46:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38233, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:46:44', '2023-09-18 15:46:44', 0, 0, '', NULL, '2023-09-18 15:46:44', NULL, '2023-09-18 15:46:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38234, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/get', '{\"query\":{\"id\":\"3\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:47:04', '2023-09-18 15:47:04', 0, 0, '', NULL, '2023-09-18 15:47:04', NULL, '2023-09-18 15:47:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38235, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:47:43', '2023-09-18 15:47:43', 0, 0, '', NULL, '2023-09-18 15:47:43', NULL, '2023-09-18 15:47:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38236, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/pay/merchant-details/update', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wx001e2dc50bf532df\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"keyPublic\\\":\\\"\\\",\\\"keyCert\\\":\\\"\\\",\\\"keyCertPwd\\\":\\\"\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"\\\",\\\"signType\\\":\\\"MD5\\\",\\\"seller\\\":null,\\\"subAppId\\\":null,\\\"subMchId\\\":null,\\\"inputCharset\\\":\\\"UTF-8\\\",\\\"isTest\\\":0,\\\"detailsId\\\":\\\"3\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:48:47', '2023-09-18 15:48:47', 0, 0, '', NULL, '2023-09-18 15:48:47', NULL, '2023-09-18 15:48:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38237, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:48:47', '2023-09-18 15:48:47', 0, 0, '', NULL, '2023-09-18 15:48:47', NULL, '2023-09-18 15:48:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38238, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:02', '2023-09-18 15:49:02', 0, 0, '', NULL, '2023-09-18 15:49:02', NULL, '2023-09-18 15:49:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38239, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"3人|特辣\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:05', '2023-09-18 15:49:05', 0, 0, '', NULL, '2023-09-18 15:49:05', NULL, '2023-09-18 15:49:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38240, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703677507523313664\",\"from\":\"routine\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:05', '2023-09-18 15:49:06', 0, 0, '', NULL, '2023-09-18 15:49:06', NULL, '2023-09-18 15:49:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38241, '', 0, 1, 'yshop-server', 'POST', '/app-api/order/payBack3.json', '{\"query\":{},\"body\":null}', '121.51.58.170', 'Mozilla/4.0', '2023-09-18 15:49:11', '2023-09-18 15:49:11', 0, 0, '', NULL, '2023-09-18 15:49:11', NULL, '2023-09-18 15:49:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38242, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:14', '2023-09-18 15:49:14', 0, 0, '', NULL, '2023-09-18 15:49:14', NULL, '2023-09-18 15:49:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38243, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:14', '2023-09-18 15:49:14', 0, 0, '', NULL, '2023-09-18 15:49:14', NULL, '2023-09-18 15:49:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38244, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1PwCGa1aQ84G0bhFHa1MwYS82PwCGI\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:14', '2023-09-18 15:49:14', 0, 0, '', NULL, '2023-09-18 15:49:14', NULL, '2023-09-18 15:49:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38245, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1KkwFa14E23G02eCHa1b5jX02KkwFn\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:49:15', '2023-09-18 15:49:15', 0, 0, '', NULL, '2023-09-18 15:49:15', NULL, '2023-09-18 15:49:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38246, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:49:42', '2023-09-18 15:49:42', 0, 0, '', NULL, '2023-09-18 15:49:42', NULL, '2023-09-18 15:49:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38247, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/account/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:51:19', '2023-09-18 15:51:19', 0, 0, '', NULL, '2023-09-18 15:51:19', NULL, '2023-09-18 15:51:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38248, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/account/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:51:38', '2023-09-18 15:51:38', 0, 0, '', NULL, '2023-09-18 15:51:38', NULL, '2023-09-18 15:51:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38249, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/tag/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:51:38', '2023-09-18 15:51:38', 0, 0, '', NULL, '2023-09-18 15:51:38', NULL, '2023-09-18 15:51:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38250, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/user/page', '{\"query\":{\"accountId\":\"5\",\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:51:38', '2023-09-18 15:51:38', 0, 0, '', NULL, '2023-09-18 15:51:38', NULL, '2023-09-18 15:51:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38251, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:51:42', '2023-09-18 15:51:42', 0, 0, '', NULL, '2023-09-18 15:51:42', NULL, '2023-09-18 15:51:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38252, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:52:05', '2023-09-18 15:52:05', 0, 0, '', NULL, '2023-09-18 15:52:05', NULL, '2023-09-18 15:52:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38253, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:52:11', '2023-09-18 15:52:11', 0, 0, '', NULL, '2023-09-18 15:52:11', NULL, '2023-09-18 15:52:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38254, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1RyNFa1JZj3G0dTTHa1AP2qn4RyNFW\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:52:11', '2023-09-18 15:52:11', 0, 0, '', NULL, '2023-09-18 15:52:11', NULL, '2023-09-18 15:52:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38255, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:52:13', '2023-09-18 15:52:13', 0, 0, '', NULL, '2023-09-18 15:52:13', NULL, '2023-09-18 15:52:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38256, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/order/store-order/update', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1703677507523313664\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":2,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1695023351000,\\\"payType\\\":\\\"weixin\\\",\\\"status\\\":0,\\\"refundStatus\\\":0,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":null,\\\"refundReasonTime\\\":null,\\\"refundReasonWap\\\":null,\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1003,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1695023345000,\\\"id\\\":4,\\\"createTime\\\":1695023345000,\\\"userRespVO\\\":{\\\"username\\\":null,\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_2\\\",\\\"avatar\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg\\\",\\\"mobile\\\":\\\"15136175246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":9959.97,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"223.91.183.134\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":2,\\\"createTime\\\":1694768497000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"未发货\\\",\\\"updateType\\\":\\\"orderSend\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:52:15', '2023-09-18 15:52:16', 0, 1008007012, '订单状态错误', NULL, '2023-09-18 15:52:16', NULL, '2023-09-18 15:52:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38257, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:53:42', '2023-09-18 15:53:43', 0, 0, '', NULL, '2023-09-18 15:53:43', NULL, '2023-09-18 15:53:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38258, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:55:43', '2023-09-18 15:55:43', 0, 0, '', NULL, '2023-09-18 15:55:43', NULL, '2023-09-18 15:55:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38259, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:57:42', '2023-09-18 15:57:42', 0, 0, '', NULL, '2023-09-18 15:57:42', NULL, '2023-09-18 15:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38260, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 15:59:43', '2023-09-18 15:59:43', 0, 0, '', NULL, '2023-09-18 15:59:43', NULL, '2023-09-18 15:59:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38261, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:02:39', '2023-09-18 16:02:39', 0, 0, '', NULL, '2023-09-18 16:02:39', NULL, '2023-09-18 16:02:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38262, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:04:39', '2023-09-18 16:04:39', 0, 0, '', NULL, '2023-09-18 16:04:39', NULL, '2023-09-18 16:04:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38263, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:06:39', '2023-09-18 16:06:39', 0, 0, '', NULL, '2023-09-18 16:06:39', NULL, '2023-09-18 16:06:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38264, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:08:39', '2023-09-18 16:08:39', 0, 0, '', NULL, '2023-09-18 16:08:39', NULL, '2023-09-18 16:08:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38265, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:10:39', '2023-09-18 16:10:39', 0, 0, '', NULL, '2023-09-18 16:10:39', NULL, '2023-09-18 16:10:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38266, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:12:39', '2023-09-18 16:12:39', 0, 0, '', NULL, '2023-09-18 16:12:39', NULL, '2023-09-18 16:12:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38267, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:14:16', '2023-09-18 16:14:16', 0, 0, '', NULL, '2023-09-18 16:14:16', NULL, '2023-09-18 16:14:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38268, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1oX5Ga15qC3G0qsHJa1RQ8844oX5GR\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:14:17', '2023-09-18 16:14:17', 0, 0, '', NULL, '2023-09-18 16:14:17', NULL, '2023-09-18 16:14:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38269, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:14:39', '2023-09-18 16:14:39', 0, 0, '', NULL, '2023-09-18 16:14:39', NULL, '2023-09-18 16:14:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38270, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:15:30', '2023-09-18 16:15:30', 0, 0, '', NULL, '2023-09-18 16:15:30', NULL, '2023-09-18 16:15:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38271, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a188EGa16ya4G0FNZGa1t1eqq388EG4\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:15:30', '2023-09-18 16:15:31', 0, 0, '', NULL, '2023-09-18 16:15:31', NULL, '2023-09-18 16:15:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38272, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:15:43', '2023-09-18 16:15:43', 0, 0, '', NULL, '2023-09-18 16:15:43', NULL, '2023-09-18 16:15:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38273, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:17:43', '2023-09-18 16:17:43', 0, 0, '', NULL, '2023-09-18 16:17:43', NULL, '2023-09-18 16:17:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38274, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:19:43', '2023-09-18 16:19:43', 0, 0, '', NULL, '2023-09-18 16:19:43', NULL, '2023-09-18 16:19:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38275, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:22:11', '2023-09-18 16:22:11', 0, 0, '', NULL, '2023-09-18 16:22:11', NULL, '2023-09-18 16:22:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38276, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/order/store-order/update', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1703677507523313664\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":2,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1695023351000,\\\"payType\\\":\\\"weixin\\\",\\\"status\\\":0,\\\"refundStatus\\\":0,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":null,\\\"refundReasonTime\\\":null,\\\"refundReasonWap\\\":null,\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1003,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1695023345000,\\\"id\\\":4,\\\"createTime\\\":1695023345000,\\\"userRespVO\\\":{\\\"username\\\":null,\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_2\\\",\\\"avatar\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg\\\",\\\"mobile\\\":\\\"15136175246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":9959.97,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"223.91.183.134\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":2,\\\"createTime\\\":1694768497000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"未发货\\\",\\\"updateType\\\":\\\"orderSend\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:22:13', '2023-09-18 16:22:13', 0, 0, '', NULL, '2023-09-18 16:22:13', NULL, '2023-09-18 16:22:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38277, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:22:13', '2023-09-18 16:22:13', 0, 0, '', NULL, '2023-09-18 16:22:13', NULL, '2023-09-18 16:22:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38278, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:22:19', '2023-09-18 16:22:19', 0, 0, '', NULL, '2023-09-18 16:22:19', NULL, '2023-09-18 16:22:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38279, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:22:20', '2023-09-18 16:22:21', 0, 0, '', NULL, '2023-09-18 16:22:21', NULL, '2023-09-18 16:22:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38280, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1VAVGa1fws4G0pQCHa1qmMkQ0VAVGT\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:22:22', '2023-09-18 16:22:22', 0, 0, '', NULL, '2023-09-18 16:22:22', NULL, '2023-09-18 16:22:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38281, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:21', '2023-09-18 16:23:21', 0, 0, '', NULL, '2023-09-18 16:23:21', NULL, '2023-09-18 16:23:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38282, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/order/store-order/update', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1703675877960712192\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":2,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1695022957000,\\\"payType\\\":\\\"yue\\\",\\\"status\\\":0,\\\"refundStatus\\\":0,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":null,\\\"refundReasonTime\\\":null,\\\"refundReasonWap\\\":null,\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\" 请放门口\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1001,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1695022957000,\\\"id\\\":2,\\\"createTime\\\":1695022957000,\\\"userRespVO\\\":{\\\"username\\\":null,\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_2\\\",\\\"avatar\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg\\\",\\\"mobile\\\":\\\"15136175246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":9959.97,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"223.91.183.134\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":2,\\\"createTime\\\":1694768497000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"未发货\\\",\\\"updateType\\\":\\\"orderSend\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:22', '2023-09-18 16:23:22', 0, 0, '', NULL, '2023-09-18 16:23:22', NULL, '2023-09-18 16:23:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38283, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:22', '2023-09-18 16:23:22', 0, 0, '', NULL, '2023-09-18 16:23:22', NULL, '2023-09-18 16:23:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38284, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:23:26', '2023-09-18 16:23:26', 0, 0, '', NULL, '2023-09-18 16:23:26', NULL, '2023-09-18 16:23:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38285, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:37', '2023-09-18 16:23:37', 0, 0, '', NULL, '2023-09-18 16:23:37', NULL, '2023-09-18 16:23:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38286, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/order/store-order/update', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1703615452900491264\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":2,\\\"realName\\\":\\\"胡萝卜\\\",\\\"userPhone\\\":\\\"151****5212\\\",\\\"userAddress\\\":\\\"河南省漯河市源汇区交通路602号附近 富豪花园 86号\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":20.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1695008550000,\\\"payType\\\":\\\"yue\\\",\\\"status\\\":0,\\\"refundStatus\\\":0,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":null,\\\"refundReasonTime\\\":null,\\\"refundReasonWap\\\":null,\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takeout\\\",\\\"numberId\\\":1000,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1695008550000,\\\"id\\\":1,\\\"createTime\\\":1695008550000,\\\"userRespVO\\\":{\\\"username\\\":null,\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_2\\\",\\\"avatar\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg\\\",\\\"mobile\\\":\\\"15136175246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":9959.97,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"223.91.183.134\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":2,\\\"createTime\\\":1694768497000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"未发货\\\",\\\"updateType\\\":\\\"orderSend\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:38', '2023-09-18 16:23:38', 0, 0, '', NULL, '2023-09-18 16:23:38', NULL, '2023-09-18 16:23:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38287, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:38', '2023-09-18 16:23:38', 0, 0, '', NULL, '2023-09-18 16:23:38', NULL, '2023-09-18 16:23:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38288, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:23:42', '2023-09-18 16:23:42', 0, 0, '', NULL, '2023-09-18 16:23:42', NULL, '2023-09-18 16:23:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38289, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:42', '2023-09-18 16:23:42', 0, 0, '', NULL, '2023-09-18 16:23:42', NULL, '2023-09-18 16:23:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38290, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"\",\"payStatus\":\"\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:23:59', '2023-09-18 16:23:59', 0, 0, '', NULL, '2023-09-18 16:23:59', NULL, '2023-09-18 16:23:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38291, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:24:00', '2023-09-18 16:24:00', 0, 0, '', NULL, '2023-09-18 16:24:00', NULL, '2023-09-18 16:24:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38292, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:24:00', '2023-09-18 16:24:00', 0, 0, '', NULL, '2023-09-18 16:24:00', NULL, '2023-09-18 16:24:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38293, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:24:00', '2023-09-18 16:24:00', 0, 0, '', NULL, '2023-09-18 16:24:00', NULL, '2023-09-18 16:24:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38294, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:24:06', '2023-09-18 16:24:06', 0, 0, '', NULL, '2023-09-18 16:24:06', NULL, '2023-09-18 16:24:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38295, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:35', '2023-09-18 16:24:35', 0, 0, '', NULL, '2023-09-18 16:24:35', NULL, '2023-09-18 16:24:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38296, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:38', '2023-09-18 16:24:38', 0, 0, '', NULL, '2023-09-18 16:24:38', NULL, '2023-09-18 16:24:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38297, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:38', '2023-09-18 16:24:38', 0, 0, '', NULL, '2023-09-18 16:24:38', NULL, '2023-09-18 16:24:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38298, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:39', '2023-09-18 16:24:39', 0, 0, '', NULL, '2023-09-18 16:24:39', NULL, '2023-09-18 16:24:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38299, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:40', '2023-09-18 16:24:40', 0, 0, '', NULL, '2023-09-18 16:24:40', NULL, '2023-09-18 16:24:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38300, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:48', '2023-09-18 16:24:48', 0, 0, '', NULL, '2023-09-18 16:24:48', NULL, '2023-09-18 16:24:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38301, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"2\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:52', '2023-09-18 16:24:52', 0, 0, '', NULL, '2023-09-18 16:24:52', NULL, '2023-09-18 16:24:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38302, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:52', '2023-09-18 16:24:52', 0, 0, '', NULL, '2023-09-18 16:24:52', NULL, '2023-09-18 16:24:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38303, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:52', '2023-09-18 16:24:53', 0, 0, '', NULL, '2023-09-18 16:24:53', NULL, '2023-09-18 16:24:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38304, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:54', '2023-09-18 16:24:54', 0, 0, '', NULL, '2023-09-18 16:24:54', NULL, '2023-09-18 16:24:54', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38305, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:57', '2023-09-18 16:24:57', 0, 0, '', NULL, '2023-09-18 16:24:57', NULL, '2023-09-18 16:24:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38306, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1UKVGa1dGs4G0sF3Ga1bEs0f3UKVGX\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:24:58', '2023-09-18 16:24:58', 0, 0, '', NULL, '2023-09-18 16:24:58', NULL, '2023-09-18 16:24:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38307, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:01', '2023-09-18 16:25:01', 0, 0, '', NULL, '2023-09-18 16:25:01', NULL, '2023-09-18 16:25:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38308, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1AUpll2ztz3c499Iml29XuEM2AUplX\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:02', '2023-09-18 16:25:02', 0, 0, '', NULL, '2023-09-18 16:25:02', NULL, '2023-09-18 16:25:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38309, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:09', '2023-09-18 16:25:09', 0, 0, '', NULL, '2023-09-18 16:25:09', NULL, '2023-09-18 16:25:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38310, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1Gjh1w3JgOo13gWn3w3ZVQKS3Gjh1M\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:10', '2023-09-18 16:25:10', 0, 0, '', NULL, '2023-09-18 16:25:10', NULL, '2023-09-18 16:25:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38311, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:15', '2023-09-18 16:25:15', 0, 0, '', NULL, '2023-09-18 16:25:15', NULL, '2023-09-18 16:25:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38312, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:15', '2023-09-18 16:25:15', 0, 0, '', NULL, '2023-09-18 16:25:15', NULL, '2023-09-18 16:25:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38313, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1DaNml2IIW4c4L90ll2arAJw2DaNmo\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:16', '2023-09-18 16:25:16', 0, 0, '', NULL, '2023-09-18 16:25:16', NULL, '2023-09-18 16:25:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38314, '', 2, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38315, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38316, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38317, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38318, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38319, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38320, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38321, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38322, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:17', '2023-09-18 16:25:17', 0, 0, '', NULL, '2023-09-18 16:25:17', NULL, '2023-09-18 16:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38323, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/getBill', '{\"query\":{\"pagesize\":\"20\",\"page\":\"1\",\"type\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:20', '2023-09-18 16:25:20', 0, 0, '', NULL, '2023-09-18 16:25:20', NULL, '2023-09-18 16:25:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38324, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:25', '2023-09-18 16:25:25', 0, 0, '', NULL, '2023-09-18 16:25:25', NULL, '2023-09-18 16:25:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38325, '', 2, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"27\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:27', '2023-09-18 16:25:27', 0, 0, '', NULL, '2023-09-18 16:25:27', NULL, '2023-09-18 16:25:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38326, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:29', '2023-09-18 16:25:29', 0, 0, '', NULL, '2023-09-18 16:25:29', NULL, '2023-09-18 16:25:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38327, '', 2, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:30', '2023-09-18 16:25:30', 0, 0, '', NULL, '2023-09-18 16:25:30', NULL, '2023-09-18 16:25:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38328, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:32', '2023-09-18 16:25:32', 0, 0, '', NULL, '2023-09-18 16:25:32', NULL, '2023-09-18 16:25:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38329, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:37', '2023-09-18 16:25:37', 0, 0, '', NULL, '2023-09-18 16:25:37', NULL, '2023-09-18 16:25:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38330, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:25:42', '2023-09-18 16:25:42', 0, 0, '', NULL, '2023-09-18 16:25:42', NULL, '2023-09-18 16:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38331, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/take', '{\"query\":{\"uni\":\"1703615452900491264\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:42', '2023-09-18 16:25:42', 0, 0, '', NULL, '2023-09-18 16:25:42', NULL, '2023-09-18 16:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38332, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:42', '2023-09-18 16:25:42', 0, 0, '', NULL, '2023-09-18 16:25:42', NULL, '2023-09-18 16:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38333, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:45', '2023-09-18 16:25:45', 0, 0, '', NULL, '2023-09-18 16:25:45', NULL, '2023-09-18 16:25:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38334, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/detail/1703615452900491264', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:25:49', '2023-09-18 16:25:49', 0, 0, '', NULL, '2023-09-18 16:25:49', NULL, '2023-09-18 16:25:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38335, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:02', '2023-09-18 16:26:02', 0, 0, '', NULL, '2023-09-18 16:26:02', NULL, '2023-09-18 16:26:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38336, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:03', '2023-09-18 16:26:03', 0, 0, '', NULL, '2023-09-18 16:26:03', NULL, '2023-09-18 16:26:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38337, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:07', '2023-09-18 16:26:07', 0, 0, '', NULL, '2023-09-18 16:26:07', NULL, '2023-09-18 16:26:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38338, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:07', '2023-09-18 16:26:07', 0, 0, '', NULL, '2023-09-18 16:26:07', NULL, '2023-09-18 16:26:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38339, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:11', '2023-09-18 16:26:11', 0, 0, '', NULL, '2023-09-18 16:26:11', NULL, '2023-09-18 16:26:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38340, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:26:21', '2023-09-18 16:26:21', 0, 0, '', NULL, '2023-09-18 16:26:21', NULL, '2023-09-18 16:26:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38341, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:27:00', '2023-09-18 16:27:00', 0, 0, '', NULL, '2023-09-18 16:27:00', NULL, '2023-09-18 16:27:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38342, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d168Yll2RG74c49jfol2XdpQW268Yl3\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:27:00', '2023-09-18 16:27:00', 0, 0, '', NULL, '2023-09-18 16:27:00', NULL, '2023-09-18 16:27:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38343, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:27:11', '2023-09-18 16:27:11', 0, 0, '', NULL, '2023-09-18 16:27:11', NULL, '2023-09-18 16:27:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38344, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:27:12', '2023-09-18 16:27:12', 0, 0, '', NULL, '2023-09-18 16:27:12', NULL, '2023-09-18 16:27:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38345, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:27:43', '2023-09-18 16:27:43', 0, 0, '', NULL, '2023-09-18 16:27:43', NULL, '2023-09-18 16:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38346, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:27:43', '2023-09-18 16:27:43', 0, 0, '', NULL, '2023-09-18 16:27:43', NULL, '2023-09-18 16:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38347, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:27:43', '2023-09-18 16:27:43', 0, 0, '', NULL, '2023-09-18 16:27:43', NULL, '2023-09-18 16:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38348, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:28:19', '2023-09-18 16:28:19', 0, 0, '', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38349, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/4 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:28:19', '2023-09-18 16:28:19', 0, 0, '', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38350, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1tLPFa11wm3G0yjwJa16dRRl3tLPFG\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:28:19', '2023-09-18 16:28:19', 0, 0, '', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38351, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:29:43', '2023-09-18 16:29:43', 0, 0, '', NULL, '2023-09-18 16:29:43', NULL, '2023-09-18 16:29:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38352, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:30:03', '2023-09-18 16:30:03', 0, 0, '', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38353, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1hg2Ia1fs91G0fveGa1mAfJ72hg2IH\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:30:03', '2023-09-18 16:30:03', 0, 0, '', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38354, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/8 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:30:03', '2023-09-18 16:30:03', 0, 0, '', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38355, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:30:50', '2023-09-18 16:30:50', 0, 0, '', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38356, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/10 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:30:50', '2023-09-18 16:30:50', 0, 0, '', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38357, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c167WGa1X1s4G0liqJa1rw2R4367WGg\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:30:50', '2023-09-18 16:30:50', 0, 0, '', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38358, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/10 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:30:51', '2023-09-18 16:30:51', 0, 0, '', NULL, '2023-09-18 16:30:51', NULL, '2023-09-18 16:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38359, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:31:07', '2023-09-18 16:31:07', 0, 0, '', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38360, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/11 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:31:07', '2023-09-18 16:31:07', 0, 0, '', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38361, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a18AJ0w3pjfo13Iyw0w3F50av18AJ0o\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:31:07', '2023-09-18 16:31:07', 0, 0, '', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38362, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:31:28', '2023-09-18 16:31:28', 0, 0, '', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38363, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/12 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:31:28', '2023-09-18 16:31:28', 0, 0, '', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38364, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1p07Ga1MHC3G0LEkJa10Pty74p07Gx\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:31:28', '2023-09-18 16:31:28', 0, 0, '', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38365, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:31:43', '2023-09-18 16:31:43', 0, 0, '', NULL, '2023-09-18 16:31:43', NULL, '2023-09-18 16:31:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38366, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:32:26', '2023-09-18 16:32:26', 0, 0, '', NULL, '2023-09-18 16:32:26', NULL, '2023-09-18 16:32:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38367, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:32:27', '2023-09-18 16:32:27', 0, 0, '', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38368, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c12YyFa10A43G0G88Ha13bXR142YyFX\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:32:26', '2023-09-18 16:32:27', 0, 0, '', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38369, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/13 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:32:27', '2023-09-18 16:32:27', 0, 0, '', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38370, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:32:44', '2023-09-18 16:32:44', 0, 0, '', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38371, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/14 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:32:44', '2023-09-18 16:32:44', 0, 0, '', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38372, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1iJ01w3Slwo13kSXZv3TM1Cv2iJ01o\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:32:44', '2023-09-18 16:32:44', 0, 0, '', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38373, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:00', '2023-09-18 16:33:00', 0, 0, '', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38374, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/15 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:33:00', '2023-09-18 16:33:00', 0, 0, '', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38375, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b1dEs0w3FgYn13Ktg0w3umjB91dEs0b\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:00', '2023-09-18 16:33:00', 0, 0, '', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38376, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:18', '2023-09-18 16:33:18', 0, 0, '', NULL, '2023-09-18 16:33:18', NULL, '2023-09-18 16:33:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38377, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:33:19', '2023-09-18 16:33:19', 0, 0, '', NULL, '2023-09-18 16:33:19', NULL, '2023-09-18 16:33:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38378, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1Sm9ll2CZh3c4uerml2vpAwm2Sm9lQ\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:19', '2023-09-18 16:33:19', 0, 0, '', NULL, '2023-09-18 16:33:19', NULL, '2023-09-18 16:33:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38379, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:33', '2023-09-18 16:33:33', 0, 0, '', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38380, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/18 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:33:33', '2023-09-18 16:33:33', 0, 0, '', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38381, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1g5QFa1W4m3G0C6DIa1hm2Zw0g5QFF\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:33', '2023-09-18 16:33:33', 0, 0, '', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38382, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:50', '2023-09-18 16:33:50', 0, 0, '', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38383, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1l97Ga1kbD3G0RBzHa1ACfAj3l97GZ\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:33:50', '2023-09-18 16:33:50', 0, 0, '', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38384, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/20 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:33:50', '2023-09-18 16:33:50', 0, 0, '', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38385, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:34:05', '2023-09-18 16:34:05', 0, 0, '', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38386, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1ILf0004noIQ1SU9300tCAEs3ILf0Y\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:34:05', '2023-09-18 16:34:05', 0, 0, '', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38387, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/21 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:34:05', '2023-09-18 16:34:05', 0, 0, '', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38388, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:34:39', '2023-09-18 16:34:39', 0, 0, '', NULL, '2023-09-18 16:34:39', NULL, '2023-09-18 16:34:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38389, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:34:42', '2023-09-18 16:34:42', 0, 0, '', NULL, '2023-09-18 16:34:42', NULL, '2023-09-18 16:34:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38390, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1E9QFa1A4m3G0dN1Ha19M1jc2E9QFa\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:34:43', '2023-09-18 16:34:43', 0, 0, '', NULL, '2023-09-18 16:34:43', NULL, '2023-09-18 16:34:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38391, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/22 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:34:43', '2023-09-18 16:34:43', 0, 0, '', NULL, '2023-09-18 16:34:43', NULL, '2023-09-18 16:34:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38392, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:35:16', '2023-09-18 16:35:16', 0, 0, '', NULL, '2023-09-18 16:35:16', NULL, '2023-09-18 16:35:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38393, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/2 desktopapp miniprogram port/10515 token/bb3bda2b2de09db2f0cbb1cc28ec8568 runtime/2', '2023-09-18 16:35:17', '2023-09-18 16:35:17', 0, 0, '', NULL, '2023-09-18 16:35:17', NULL, '2023-09-18 16:35:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38394, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1L8zFa17Y43G0jyhHa1UsI9e1L8zF-\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:35:17', '2023-09-18 16:35:17', 0, 0, '', NULL, '2023-09-18 16:35:17', NULL, '2023-09-18 16:35:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38395, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:35:38', '2023-09-18 16:35:38', 0, 0, '', NULL, '2023-09-18 16:35:38', NULL, '2023-09-18 16:35:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38396, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:35:45', '2023-09-18 16:35:45', 0, 0, '', NULL, '2023-09-18 16:35:45', NULL, '2023-09-18 16:35:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38397, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:35:46', '2023-09-18 16:35:46', 0, 0, '', NULL, '2023-09-18 16:35:46', NULL, '2023-09-18 16:35:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38398, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1wYN000bkWIQ1W4L200JpLS60wYN0V\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:35:52', '2023-09-18 16:35:52', 0, 0, '', NULL, '2023-09-18 16:35:52', NULL, '2023-09-18 16:35:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38399, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/my', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:36:28', '2023-09-18 16:36:28', 0, 0, '', NULL, '2023-09-18 16:36:28', NULL, '2023-09-18 16:36:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38400, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:36:28', '2023-09-18 16:36:28', 0, 0, '', NULL, '2023-09-18 16:36:28', NULL, '2023-09-18 16:36:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38401, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:36:29', '2023-09-18 16:36:29', 0, 0, '', NULL, '2023-09-18 16:36:29', NULL, '2023-09-18 16:36:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38402, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:36:39', '2023-09-18 16:36:39', 0, 0, '', NULL, '2023-09-18 16:36:39', NULL, '2023-09-18 16:36:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38403, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:37:58', '2023-09-18 16:37:58', 0, 0, '', NULL, '2023-09-18 16:37:58', NULL, '2023-09-18 16:37:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38404, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e3UizFa1jr63G0HCZHa1nMp180UizFz\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:37:58', '2023-09-18 16:37:59', 0, 0, '', NULL, '2023-09-18 16:37:59', NULL, '2023-09-18 16:37:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38405, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:00', '2023-09-18 16:38:00', 0, 0, '', NULL, '2023-09-18 16:38:00', NULL, '2023-09-18 16:38:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38406, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.032322\",\"kw\":\"\",\"lat\":\"33.562271\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:11', '2023-09-18 16:38:11', 0, 0, '', NULL, '2023-09-18 16:38:11', NULL, '2023-09-18 16:38:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38407, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:11', '2023-09-18 16:38:11', 0, 0, '', NULL, '2023-09-18 16:38:11', NULL, '2023-09-18 16:38:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38408, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:11', '2023-09-18 16:38:11', 0, 0, '', NULL, '2023-09-18 16:38:11', NULL, '2023-09-18 16:38:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38409, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:12', '2023-09-18 16:38:12', 0, 0, '', NULL, '2023-09-18 16:38:12', NULL, '2023-09-18 16:38:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38410, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:12', '2023-09-18 16:38:12', 0, 0, '', NULL, '2023-09-18 16:38:12', NULL, '2023-09-18 16:38:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38411, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:12', '2023-09-18 16:38:12', 0, 0, '', NULL, '2023-09-18 16:38:12', NULL, '2023-09-18 16:38:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38412, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:13', '2023-09-18 16:38:13', 0, 0, '', NULL, '2023-09-18 16:38:13', NULL, '2023-09-18 16:38:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38413, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38414, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38415, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38416, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38417, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38418, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:14', '2023-09-18 16:38:14', 0, 0, '', NULL, '2023-09-18 16:38:14', NULL, '2023-09-18 16:38:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38419, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/content', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:38:20', '2023-09-18 16:38:20', 0, 0, '', NULL, '2023-09-18 16:38:20', NULL, '2023-09-18 16:38:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38420, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:38:39', '2023-09-18 16:38:39', 0, 0, '', NULL, '2023-09-18 16:38:39', NULL, '2023-09-18 16:38:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38421, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:04', '2023-09-18 16:39:04', 0, 0, '', NULL, '2023-09-18 16:39:04', NULL, '2023-09-18 16:39:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38422, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38423, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38424, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38425, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38426, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38427, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38428, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:05', '2023-09-18 16:39:05', 0, 0, '', NULL, '2023-09-18 16:39:05', NULL, '2023-09-18 16:39:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38429, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"30\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:07', '2023-09-18 16:39:07', 0, 0, '', NULL, '2023-09-18 16:39:07', NULL, '2023-09-18 16:39:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38430, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:39:42', '2023-09-18 16:39:42', 0, 0, '', NULL, '2023-09-18 16:39:42', NULL, '2023-09-18 16:39:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38431, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:41:42', '2023-09-18 16:41:42', 0, 0, '', NULL, '2023-09-18 16:41:42', NULL, '2023-09-18 16:41:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38432, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:43:42', '2023-09-18 16:43:42', 0, 0, '', NULL, '2023-09-18 16:43:42', NULL, '2023-09-18 16:43:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38433, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:44:12', '2023-09-18 16:44:12', 0, 0, '', NULL, '2023-09-18 16:44:12', NULL, '2023-09-18 16:44:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38434, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/service/get', '{\"query\":{\"id\":\"29\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:44:14', '2023-09-18 16:44:14', 0, 0, '', NULL, '2023-09-18 16:44:14', NULL, '2023-09-18 16:44:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38435, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:41', '2023-09-18 16:45:41', 0, 0, '', NULL, '2023-09-18 16:45:41', NULL, '2023-09-18 16:45:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38436, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1GC51005HeJQ1DyV000xe1fJ2GC51g\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:41', '2023-09-18 16:45:41', 0, 0, '', NULL, '2023-09-18 16:45:41', NULL, '2023-09-18 16:45:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38437, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:45:42', '2023-09-18 16:45:42', 0, 0, '', NULL, '2023-09-18 16:45:42', NULL, '2023-09-18 16:45:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38438, '', 2, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:43', NULL, '2023-09-18 16:45:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38439, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:43', NULL, '2023-09-18 16:45:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38440, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:43', NULL, '2023-09-18 16:45:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38441, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38442, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38443, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:43', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38444, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:44', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38445, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:44', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38446, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:45:43', '2023-09-18 16:45:44', 0, 0, '', NULL, '2023-09-18 16:45:44', NULL, '2023-09-18 16:45:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38447, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:47:43', '2023-09-18 16:47:43', 0, 0, '', NULL, '2023-09-18 16:47:43', NULL, '2023-09-18 16:47:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38448, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:48:00', '2023-09-18 16:48:00', 0, 0, '', NULL, '2023-09-18 16:48:00', NULL, '2023-09-18 16:48:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38449, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/23 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:48:01', '2023-09-18 16:48:01', 0, 0, '', NULL, '2023-09-18 16:48:01', NULL, '2023-09-18 16:48:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38450, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1vmIll2x9R3c4aDMnl2cq26h0vmIlt\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:48:01', '2023-09-18 16:48:01', 0, 0, '', NULL, '2023-09-18 16:48:01', NULL, '2023-09-18 16:48:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38451, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:48:31', '2023-09-18 16:48:31', 0, 0, '', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38452, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/24 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 16:48:31', '2023-09-18 16:48:31', 0, 0, '', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38453, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1niall2qTi3c48sdll2QWO2B4nialc\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 16:48:31', '2023-09-18 16:48:31', 0, 0, '', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38454, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:49:43', '2023-09-18 16:49:43', 0, 0, '', NULL, '2023-09-18 16:49:43', NULL, '2023-09-18 16:49:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38455, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:52:39', '2023-09-18 16:52:39', 0, 0, '', NULL, '2023-09-18 16:52:39', NULL, '2023-09-18 16:52:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38456, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:54:39', '2023-09-18 16:54:39', 0, 0, '', NULL, '2023-09-18 16:54:39', NULL, '2023-09-18 16:54:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38457, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:56:10', '2023-09-18 16:56:10', 0, 0, '', NULL, '2023-09-18 16:56:10', NULL, '2023-09-18 16:56:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38458, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:56:21', '2023-09-18 16:56:21', 0, 0, '', NULL, '2023-09-18 16:56:21', NULL, '2023-09-18 16:56:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38459, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:56:21', '2023-09-18 16:56:21', 0, 0, '', NULL, '2023-09-18 16:56:21', NULL, '2023-09-18 16:56:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38460, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:41', '2023-09-18 16:56:41', 0, 0, '', NULL, '2023-09-18 16:56:41', NULL, '2023-09-18 16:56:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38461, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1gi6100yjgJQ1EDy200YOq4h0gi610\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:41', '2023-09-18 16:56:41', 0, 0, '', NULL, '2023-09-18 16:56:41', NULL, '2023-09-18 16:56:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38462, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:51', '2023-09-18 16:56:51', 0, 0, '', NULL, '2023-09-18 16:56:51', NULL, '2023-09-18 16:56:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38463, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:51', '2023-09-18 16:56:51', 0, 0, '', NULL, '2023-09-18 16:56:51', NULL, '2023-09-18 16:56:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38464, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:59', '2023-09-18 16:56:59', 0, 0, '', NULL, '2023-09-18 16:56:59', NULL, '2023-09-18 16:56:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38465, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:56:59', '2023-09-18 16:56:59', 0, 0, '', NULL, '2023-09-18 16:56:59', NULL, '2023-09-18 16:56:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38466, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:57:04', '2023-09-18 16:57:04', 0, 0, '', NULL, '2023-09-18 16:57:04', NULL, '2023-09-18 16:57:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38467, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 16:57:38', '2023-09-18 16:57:38', 0, 0, '', NULL, '2023-09-18 16:57:38', NULL, '2023-09-18 16:57:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38468, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:57:42', '2023-09-18 16:57:42', 0, 0, '', NULL, '2023-09-18 16:57:42', NULL, '2023-09-18 16:57:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38469, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f3h8d0w3gCKn13e8K0w35U1iB2h8d0F\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:58:10', '2023-09-18 16:58:10', 0, 0, '', NULL, '2023-09-18 16:58:10', NULL, '2023-09-18 16:58:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38470, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Linux; Android 10; MI 9 SE Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/7103 MicroMessenger/8.0.41.2441(0x2800293E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', '2023-09-18 16:58:15', '2023-09-18 16:58:15', 0, 0, '', NULL, '2023-09-18 16:58:15', NULL, '2023-09-18 16:58:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38471, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38472, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38473, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38474, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38475, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38476, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38477, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:25', '2023-09-18 16:58:25', 0, 0, '', NULL, '2023-09-18 16:58:25', NULL, '2023-09-18 16:58:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38478, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:47', '2023-09-18 16:58:48', 0, 0, '', NULL, '2023-09-18 16:58:48', NULL, '2023-09-18 16:58:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38479, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:51', '2023-09-18 16:58:51', 0, 0, '', NULL, '2023-09-18 16:58:51', NULL, '2023-09-18 16:58:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38480, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:51', '2023-09-18 16:58:51', 0, 0, '', NULL, '2023-09-18 16:58:51', NULL, '2023-09-18 16:58:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38481, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:53', '2023-09-18 16:58:53', 0, 0, '', NULL, '2023-09-18 16:58:53', NULL, '2023-09-18 16:58:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38482, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:55', '2023-09-18 16:58:55', 0, 0, '', NULL, '2023-09-18 16:58:55', NULL, '2023-09-18 16:58:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38483, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:58', '2023-09-18 16:58:58', 0, 0, '', NULL, '2023-09-18 16:58:58', NULL, '2023-09-18 16:58:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38484, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:59', '2023-09-18 16:58:59', 0, 0, '', NULL, '2023-09-18 16:58:59', NULL, '2023-09-18 16:58:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38485, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:59', '2023-09-18 16:58:59', 0, 0, '', NULL, '2023-09-18 16:58:59', NULL, '2023-09-18 16:58:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38486, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:59', '2023-09-18 16:58:59', 0, 0, '', NULL, '2023-09-18 16:58:59', NULL, '2023-09-18 16:58:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38487, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:59', '2023-09-18 16:58:59', 0, 0, '', NULL, '2023-09-18 16:58:59', NULL, '2023-09-18 16:58:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38488, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:58:59', '2023-09-18 16:58:59', 0, 0, '', NULL, '2023-09-18 16:58:59', NULL, '2023-09-18 16:58:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38489, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:59:03', '2023-09-18 16:59:03', 0, 0, '', NULL, '2023-09-18 16:59:03', NULL, '2023-09-18 16:59:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38490, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:59:08', '2023-09-18 16:59:08', 0, 0, '', NULL, '2023-09-18 16:59:08', NULL, '2023-09-18 16:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38491, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703695133590945792\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:59:08', '2023-09-18 16:59:08', 0, 0, '', NULL, '2023-09-18 16:59:08', NULL, '2023-09-18 16:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38492, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 16:59:11', '2023-09-18 16:59:12', 0, 0, '', NULL, '2023-09-18 16:59:12', NULL, '2023-09-18 16:59:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38493, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 16:59:21', '2023-09-18 16:59:21', 0, 0, '', NULL, '2023-09-18 16:59:21', NULL, '2023-09-18 16:59:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38494, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 16:59:42', '2023-09-18 16:59:42', 0, 0, '', NULL, '2023-09-18 16:59:42', NULL, '2023-09-18 16:59:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38495, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:00:32', '2023-09-18 17:00:32', 0, 0, '', NULL, '2023-09-18 17:00:32', NULL, '2023-09-18 17:00:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38496, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:02:02', '2023-09-18 17:02:02', 0, 0, '', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38497, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/25 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 17:02:02', '2023-09-18 17:02:02', 0, 0, '', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38498, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0c1VORFa186p3G0FEzHa15IyzX1VORFe\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:02:02', '2023-09-18 17:02:02', 0, 0, '', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38499, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:07', '2023-09-18 17:02:07', 0, 0, '', NULL, '2023-09-18 17:02:07', NULL, '2023-09-18 17:02:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38500, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:24', '2023-09-18 17:02:24', 0, 0, '', NULL, '2023-09-18 17:02:24', NULL, '2023-09-18 17:02:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38501, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38502, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38503, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38504, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38505, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38506, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38507, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:26', '2023-09-18 17:02:26', 0, 0, '', NULL, '2023-09-18 17:02:26', NULL, '2023-09-18 17:02:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38508, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:34', '2023-09-18 17:02:34', 0, 0, '', NULL, '2023-09-18 17:02:34', NULL, '2023-09-18 17:02:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38509, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:37', '2023-09-18 17:02:37', 0, 0, '', NULL, '2023-09-18 17:02:37', NULL, '2023-09-18 17:02:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38510, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:37', '2023-09-18 17:02:37', 0, 0, '', NULL, '2023-09-18 17:02:37', NULL, '2023-09-18 17:02:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38511, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:02:38', '2023-09-18 17:02:38', 0, 0, '', NULL, '2023-09-18 17:02:38', NULL, '2023-09-18 17:02:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38512, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:39', '2023-09-18 17:02:39', 0, 0, '', NULL, '2023-09-18 17:02:39', NULL, '2023-09-18 17:02:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38513, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:40', '2023-09-18 17:02:40', 0, 0, '', NULL, '2023-09-18 17:02:40', NULL, '2023-09-18 17:02:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38514, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"113.9202\",\"kw\":\"\",\"lat\":\"33.54528\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38515, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38516, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38517, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38518, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38519, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:46', '2023-09-18 17:02:46', 0, 0, '', NULL, '2023-09-18 17:02:46', NULL, '2023-09-18 17:02:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38520, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:50', '2023-09-18 17:02:50', 0, 0, '', NULL, '2023-09-18 17:02:50', NULL, '2023-09-18 17:02:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38521, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:58', '2023-09-18 17:02:58', 0, 0, '', NULL, '2023-09-18 17:02:58', NULL, '2023-09-18 17:02:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38522, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703696098238922752\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:58', '2023-09-18 17:02:58', 0, 0, '', NULL, '2023-09-18 17:02:58', NULL, '2023-09-18 17:02:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38523, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:02:58', '2023-09-18 17:02:58', 0, 0, '', NULL, '2023-09-18 17:02:58', NULL, '2023-09-18 17:02:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38524, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:04:20', '2023-09-18 17:04:20', 0, 0, '', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38525, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b16aDkl2ukN2c4UGGll2eQL8906aDkW\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:04:20', '2023-09-18 17:04:20', 0, 0, '', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38526, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/26 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 17:04:20', '2023-09-18 17:04:20', 0, 0, '', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38527, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:04:28', '2023-09-18 17:04:28', 0, 0, '', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38528, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0e1Dgbll2Mml3c4TEJnl2lJFBA3Dgblm\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:04:28', '2023-09-18 17:04:28', 0, 0, '', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38529, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/27 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 17:04:28', '2023-09-18 17:04:28', 0, 0, '', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38530, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:04:39', '2023-09-18 17:04:39', 0, 0, '', NULL, '2023-09-18 17:04:39', NULL, '2023-09-18 17:04:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38531, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:06:39', '2023-09-18 17:06:39', 0, 0, '', NULL, '2023-09-18 17:06:39', NULL, '2023-09-18 17:06:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38532, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:03', '2023-09-18 17:07:03', 0, 0, '', NULL, '2023-09-18 17:07:03', NULL, '2023-09-18 17:07:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38533, '', 0, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:05', '2023-09-18 17:07:05', 0, 400, '请求参数缺失:shop_id', NULL, '2023-09-18 17:07:05', NULL, '2023-09-18 17:07:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38534, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:05', '2023-09-18 17:07:05', 0, 0, '', NULL, '2023-09-18 17:07:05', NULL, '2023-09-18 17:07:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38535, '', 0, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"undefined\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:16', '2023-09-18 17:07:16', 0, 401, '账号未登录', NULL, '2023-09-18 17:07:16', NULL, '2023-09-18 17:07:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38536, '', 0, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"undefined\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:16', '2023-09-18 17:07:16', 0, 401, '账号未登录', NULL, '2023-09-18 17:07:16', NULL, '2023-09-18 17:07:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38537, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136176246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:25', '2023-09-18 17:07:26', 0, 0, '', NULL, '2023-09-18 17:07:26', NULL, '2023-09-18 17:07:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38538, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136176246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:29', '2023-09-18 17:07:29', 0, 0, '', NULL, '2023-09-18 17:07:29', NULL, '2023-09-18 17:07:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38539, '', 3, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:34', '2023-09-18 17:07:34', 0, 400, '请求参数缺失:shop_id', NULL, '2023-09-18 17:07:34', NULL, '2023-09-18 17:07:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38540, '', 3, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:36', '2023-09-18 17:07:36', 0, 0, '', NULL, '2023-09-18 17:07:36', NULL, '2023-09-18 17:07:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38541, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:36', '2023-09-18 17:07:36', 0, 0, '', NULL, '2023-09-18 17:07:36', NULL, '2023-09-18 17:07:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38542, '', 3, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38543, '', 3, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38544, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38545, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38546, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38547, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38548, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38549, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:37', '2023-09-18 17:07:37', 0, 0, '', NULL, '2023-09-18 17:07:37', NULL, '2023-09-18 17:07:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38550, '', 3, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:41', '2023-09-18 17:07:41', 0, 0, '', NULL, '2023-09-18 17:07:41', NULL, '2023-09-18 17:07:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38551, '', 3, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:46', '2023-09-18 17:07:46', 0, 0, '', NULL, '2023-09-18 17:07:46', NULL, '2023-09-18 17:07:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38552, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 401, '账号未登录', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38553, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38554, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38555, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38556, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38557, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38558, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38559, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:07:47', '2023-09-18 17:07:47', 0, 0, '', NULL, '2023-09-18 17:07:47', NULL, '2023-09-18 17:07:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38560, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:01', '2023-09-18 17:08:01', 0, 0, '', NULL, '2023-09-18 17:08:01', NULL, '2023-09-18 17:08:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38561, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:04', '2023-09-18 17:08:04', 0, 0, '', NULL, '2023-09-18 17:08:04', NULL, '2023-09-18 17:08:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38562, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:04', '2023-09-18 17:08:04', 0, 0, '', NULL, '2023-09-18 17:08:04', NULL, '2023-09-18 17:08:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38563, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:06', '2023-09-18 17:08:06', 0, 0, '', NULL, '2023-09-18 17:08:06', NULL, '2023-09-18 17:08:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38564, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:08', '2023-09-18 17:08:08', 0, 0, '', NULL, '2023-09-18 17:08:08', NULL, '2023-09-18 17:08:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38565, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:08', '2023-09-18 17:08:08', 0, 0, '', NULL, '2023-09-18 17:08:08', NULL, '2023-09-18 17:08:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38566, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"113.9202\",\"kw\":\"\",\"lat\":\"33.54528\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38567, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38568, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38569, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38570, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38571, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:13', '2023-09-18 17:08:13', 0, 0, '', NULL, '2023-09-18 17:08:13', NULL, '2023-09-18 17:08:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38572, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:16', '2023-09-18 17:08:16', 0, 0, '', NULL, '2023-09-18 17:08:16', NULL, '2023-09-18 17:08:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38573, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:24', '2023-09-18 17:08:24', 0, 0, '', NULL, '2023-09-18 17:08:24', NULL, '2023-09-18 17:08:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38574, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703697465292619776\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:08:24', '2023-09-18 17:08:24', 0, 0, '', NULL, '2023-09-18 17:08:24', NULL, '2023-09-18 17:08:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38575, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:08:38', '2023-09-18 17:08:38', 0, 0, '', NULL, '2023-09-18 17:08:38', NULL, '2023-09-18 17:08:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38576, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:10:39', '2023-09-18 17:10:39', 0, 0, '', NULL, '2023-09-18 17:10:39', NULL, '2023-09-18 17:10:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38577, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:11:05', '2023-09-18 17:11:05', 0, 0, '', NULL, '2023-09-18 17:11:05', NULL, '2023-09-18 17:11:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38578, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:11:21', '2023-09-18 17:11:21', 0, 0, '', NULL, '2023-09-18 17:11:21', NULL, '2023-09-18 17:11:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38579, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:12:39', '2023-09-18 17:12:39', 0, 0, '', NULL, '2023-09-18 17:12:39', NULL, '2023-09-18 17:12:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38580, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:13:38', '2023-09-18 17:13:38', 0, 0, '', NULL, '2023-09-18 17:13:38', NULL, '2023-09-18 17:13:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38581, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:14:15', '2023-09-18 17:14:15', 0, 0, '', NULL, '2023-09-18 17:14:15', NULL, '2023-09-18 17:14:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38582, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:14:38', '2023-09-18 17:14:38', 0, 0, '', NULL, '2023-09-18 17:14:38', NULL, '2023-09-18 17:14:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38583, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:16:07', '2023-09-18 17:16:07', 0, 0, '', NULL, '2023-09-18 17:16:07', NULL, '2023-09-18 17:16:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38584, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/get', '{\"query\":{\"id\":\"3\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:16:17', '2023-09-18 17:16:17', 0, 0, '', NULL, '2023-09-18 17:16:17', NULL, '2023-09-18 17:16:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38585, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:17:43', '2023-09-18 17:17:43', 0, 0, '', NULL, '2023-09-18 17:17:43', NULL, '2023-09-18 17:17:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38586, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:18:29', '2023-09-18 17:18:29', 0, 0, '', NULL, '2023-09-18 17:18:29', NULL, '2023-09-18 17:18:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38587, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:19:12', '2023-09-18 17:19:12', 0, 0, '', NULL, '2023-09-18 17:19:12', NULL, '2023-09-18 17:19:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38588, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:16', '2023-09-18 17:19:16', 0, 0, '', NULL, '2023-09-18 17:19:16', NULL, '2023-09-18 17:19:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38589, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:16', '2023-09-18 17:19:16', 0, 0, '', NULL, '2023-09-18 17:19:16', NULL, '2023-09-18 17:19:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38590, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:16', '2023-09-18 17:19:16', 0, 0, '', NULL, '2023-09-18 17:19:16', NULL, '2023-09-18 17:19:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38591, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:21', '2023-09-18 17:19:21', 0, 0, '', NULL, '2023-09-18 17:19:21', NULL, '2023-09-18 17:19:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38592, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:21', '2023-09-18 17:19:21', 0, 0, '', NULL, '2023-09-18 17:19:21', NULL, '2023-09-18 17:19:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38593, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:21', '2023-09-18 17:19:21', 0, 0, '', NULL, '2023-09-18 17:19:21', NULL, '2023-09-18 17:19:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38594, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:19:22', '2023-09-18 17:19:22', 0, 0, '', NULL, '2023-09-18 17:19:22', NULL, '2023-09-18 17:19:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38595, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:19:32', '2023-09-18 17:19:32', 0, 0, '', NULL, '2023-09-18 17:19:32', NULL, '2023-09-18 17:19:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38596, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:19:42', '2023-09-18 17:19:42', 0, 0, '', NULL, '2023-09-18 17:19:42', NULL, '2023-09-18 17:19:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38597, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/get', '{\"query\":{\"id\":\"3\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:20:13', '2023-09-18 17:20:13', 0, 0, '', NULL, '2023-09-18 17:20:13', NULL, '2023-09-18 17:20:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38598, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:17', '2023-09-18 17:21:17', 0, 0, '', NULL, '2023-09-18 17:21:17', NULL, '2023-09-18 17:21:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38599, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:21', '2023-09-18 17:21:21', 0, 0, '', NULL, '2023-09-18 17:21:21', NULL, '2023-09-18 17:21:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38600, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:21:22', '2023-09-18 17:21:22', 0, 0, '', NULL, '2023-09-18 17:21:22', NULL, '2023-09-18 17:21:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38601, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:21:26', '2023-09-18 17:21:26', 0, 0, '', NULL, '2023-09-18 17:21:26', NULL, '2023-09-18 17:21:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38602, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:42', '2023-09-18 17:21:42', 0, 0, '', NULL, '2023-09-18 17:21:42', NULL, '2023-09-18 17:21:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38603, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:44', '2023-09-18 17:21:44', 0, 400, '请求参数不正确:签名方式,目前已实现多种签名方式详情查看com.egzosn.pay.common.util.sign.encrypt。MD5,RSA等等不能为空', NULL, '2023-09-18 17:21:44', NULL, '2023-09-18 17:21:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38604, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:52', '2023-09-18 17:21:52', 0, 400, '请求参数不正确:签名方式,目前已实现多种签名方式详情查看com.egzosn.pay.common.util.sign.encrypt。MD5,RSA等等不能为空', NULL, '2023-09-18 17:21:52', NULL, '2023-09-18 17:21:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38605, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:21:57', '2023-09-18 17:21:57', 0, 400, '请求参数不正确:编码类型,大部分为utf-8不能为空', NULL, '2023-09-18 17:21:57', NULL, '2023-09-18 17:21:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38606, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:22:12', '2023-09-18 17:22:12', 0, 400, '请求参数不正确:编码类型,大部分为utf-8不能为空', NULL, '2023-09-18 17:22:12', NULL, '2023-09-18 17:22:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38607, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:23:17', '2023-09-18 17:23:17', 0, 0, '', NULL, '2023-09-18 17:23:17', NULL, '2023-09-18 17:23:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38608, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:23:21', '2023-09-18 17:23:21', 0, 0, '', NULL, '2023-09-18 17:23:21', NULL, '2023-09-18 17:23:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38609, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:23:42', '2023-09-18 17:23:42', 0, 0, '', NULL, '2023-09-18 17:23:42', NULL, '2023-09-18 17:23:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38610, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:25:17', '2023-09-18 17:25:17', 0, 0, '', NULL, '2023-09-18 17:25:17', NULL, '2023-09-18 17:25:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38611, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:25:21', '2023-09-18 17:25:21', 0, 0, '', NULL, '2023-09-18 17:25:21', NULL, '2023-09-18 17:25:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38612, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:25:42', '2023-09-18 17:25:42', 0, 0, '', NULL, '2023-09-18 17:25:42', NULL, '2023-09-18 17:25:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38613, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:25:51', '2023-09-18 17:25:51', 0, 0, '', NULL, '2023-09-18 17:25:52', NULL, '2023-09-18 17:25:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38614, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:27:16', '2023-09-18 17:27:16', 0, 0, '', NULL, '2023-09-18 17:27:16', NULL, '2023-09-18 17:27:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38615, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:27:21', '2023-09-18 17:27:21', 0, 0, '', NULL, '2023-09-18 17:27:21', NULL, '2023-09-18 17:27:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38616, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:27:42', '2023-09-18 17:27:42', 0, 0, '', NULL, '2023-09-18 17:27:42', NULL, '2023-09-18 17:27:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38617, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:27:43', '2023-09-18 17:27:43', 0, 0, '', NULL, '2023-09-18 17:27:43', NULL, '2023-09-18 17:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38618, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/28 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 17:27:43', '2023-09-18 17:27:43', 0, 0, '', NULL, '2023-09-18 17:27:43', NULL, '2023-09-18 17:27:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38619, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b15Zv0w3iJ0o13SdG1w3ZblaW35Zv0H\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:27:43', '2023-09-18 17:27:44', 0, 0, '', NULL, '2023-09-18 17:27:44', NULL, '2023-09-18 17:27:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38620, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:28:12', '2023-09-18 17:28:12', 0, 0, '', NULL, '2023-09-18 17:28:12', NULL, '2023-09-18 17:28:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38621, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/29 desktopapp miniprogram port/36630 token/70f98270087ff0960d127c0793bb5537 runtime/2', '2023-09-18 17:28:13', '2023-09-18 17:28:13', 0, 0, '', NULL, '2023-09-18 17:28:13', NULL, '2023-09-18 17:28:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38622, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0f1kCEkl20YL2c4Nlpml2WP6hV1kCEkx\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-18 17:28:12', '2023-09-18 17:28:13', 0, 0, '', NULL, '2023-09-18 17:28:13', NULL, '2023-09-18 17:28:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38623, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:29:17', '2023-09-18 17:29:17', 0, 0, '', NULL, '2023-09-18 17:29:17', NULL, '2023-09-18 17:29:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38624, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:29:21', '2023-09-18 17:29:21', 0, 0, '', NULL, '2023-09-18 17:29:21', NULL, '2023-09-18 17:29:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38625, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:29:43', '2023-09-18 17:29:43', 0, 0, '', NULL, '2023-09-18 17:29:43', NULL, '2023-09-18 17:29:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38626, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 17:32:24', '2023-09-18 17:32:24', 0, 0, '', NULL, '2023-09-18 17:32:24', NULL, '2023-09-18 17:32:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38627, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:32:24', '2023-09-18 17:32:25', 0, 0, '', NULL, '2023-09-18 17:32:25', NULL, '2023-09-18 17:32:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38628, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:32:32', '2023-09-18 17:32:32', 0, 500, '系统异常', NULL, '2023-09-18 17:32:32', NULL, '2023-09-18 17:32:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38629, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:32:37', '2023-09-18 17:32:37', 0, 500, '系统异常', NULL, '2023-09-18 17:32:37', NULL, '2023-09-18 17:32:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38630, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:33:17', '2023-09-18 17:33:17', 0, 0, '', NULL, '2023-09-18 17:33:17', NULL, '2023-09-18 17:33:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38631, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:33:21', '2023-09-18 17:33:21', 0, 0, '', NULL, '2023-09-18 17:33:21', NULL, '2023-09-18 17:33:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38632, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:33:42', '2023-09-18 17:33:42', 0, 0, '', NULL, '2023-09-18 17:33:42', NULL, '2023-09-18 17:33:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38633, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:35:17', '2023-09-18 17:35:17', 0, 0, '', NULL, '2023-09-18 17:35:17', NULL, '2023-09-18 17:35:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38634, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:35:21', '2023-09-18 17:35:21', 0, 0, '', NULL, '2023-09-18 17:35:21', NULL, '2023-09-18 17:35:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38635, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:35:43', '2023-09-18 17:35:43', 0, 0, '', NULL, '2023-09-18 17:35:43', NULL, '2023-09-18 17:35:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38636, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:37:17', '2023-09-18 17:37:17', 0, 0, '', NULL, '2023-09-18 17:37:17', NULL, '2023-09-18 17:37:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38637, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:37:21', '2023-09-18 17:37:21', 0, 0, '', NULL, '2023-09-18 17:37:21', NULL, '2023-09-18 17:37:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38638, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:38:39', '2023-09-18 17:38:39', 0, 0, '', NULL, '2023-09-18 17:38:39', NULL, '2023-09-18 17:38:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38639, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:39:21', '2023-09-18 17:39:21', 0, 0, '', NULL, '2023-09-18 17:39:21', NULL, '2023-09-18 17:39:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38640, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:39:38', '2023-09-18 17:39:38', 0, 0, '', NULL, '2023-09-18 17:39:38', NULL, '2023-09-18 17:39:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38641, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:40:39', '2023-09-18 17:40:39', 0, 0, '', NULL, '2023-09-18 17:40:39', NULL, '2023-09-18 17:40:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38642, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:41:21', '2023-09-18 17:41:21', 0, 0, '', NULL, '2023-09-18 17:41:21', NULL, '2023-09-18 17:41:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38643, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:41:38', '2023-09-18 17:41:38', 0, 0, '', NULL, '2023-09-18 17:41:38', NULL, '2023-09-18 17:41:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38644, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:42:38', '2023-09-18 17:42:38', 0, 0, '', NULL, '2023-09-18 17:42:39', NULL, '2023-09-18 17:42:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38645, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:43:21', '2023-09-18 17:43:21', 0, 0, '', NULL, '2023-09-18 17:43:21', NULL, '2023-09-18 17:43:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38646, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:43:39', '2023-09-18 17:43:39', 0, 0, '', NULL, '2023-09-18 17:43:39', NULL, '2023-09-18 17:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38647, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:44:39', '2023-09-18 17:44:39', 0, 0, '', NULL, '2023-09-18 17:44:39', NULL, '2023-09-18 17:44:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38648, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:45:21', '2023-09-18 17:45:21', 0, 0, '', NULL, '2023-09-18 17:45:21', NULL, '2023-09-18 17:45:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38649, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:45:39', '2023-09-18 17:45:39', 0, 0, '', NULL, '2023-09-18 17:45:39', NULL, '2023-09-18 17:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38650, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:46:38', '2023-09-18 17:46:38', 0, 0, '', NULL, '2023-09-18 17:46:38', NULL, '2023-09-18 17:46:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38651, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:46:48', '2023-09-18 17:46:48', 0, 0, '', NULL, '2023-09-18 17:46:48', NULL, '2023-09-18 17:46:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38652, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:46:50', '2023-09-18 17:46:50', 0, 0, '', NULL, '2023-09-18 17:46:50', NULL, '2023-09-18 17:46:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38653, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:46:50', '2023-09-18 17:46:50', 0, 0, '', NULL, '2023-09-18 17:46:50', NULL, '2023-09-18 17:46:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38654, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:47:21', '2023-09-18 17:47:21', 0, 0, '', NULL, '2023-09-18 17:47:21', NULL, '2023-09-18 17:47:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38655, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:47:38', '2023-09-18 17:47:38', 0, 0, '', NULL, '2023-09-18 17:47:38', NULL, '2023-09-18 17:47:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38656, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"detailsId\\\":\\\"4\\\",\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:47:55', '2023-09-18 17:47:55', 0, 500, '系统异常', NULL, '2023-09-18 17:47:55', NULL, '2023-09-18 17:47:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38657, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"detailsId\\\":\\\"4\\\",\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:48:33', '2023-09-18 17:48:33', 0, 500, '系统异常', NULL, '2023-09-18 17:48:33', NULL, '2023-09-18 17:48:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38658, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:48:49', '2023-09-18 17:48:49', 0, 0, '', NULL, '2023-09-18 17:48:49', NULL, '2023-09-18 17:48:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38659, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:49:21', '2023-09-18 17:49:21', 0, 0, '', NULL, '2023-09-18 17:49:21', NULL, '2023-09-18 17:49:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38660, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:49:38', '2023-09-18 17:49:38', 0, 0, '', NULL, '2023-09-18 17:49:38', NULL, '2023-09-18 17:49:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38661, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:50:50', '2023-09-18 17:50:50', 0, 0, '', NULL, '2023-09-18 17:50:50', NULL, '2023-09-18 17:50:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38662, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:51:21', '2023-09-18 17:51:21', 0, 0, '', NULL, '2023-09-18 17:51:21', NULL, '2023-09-18 17:51:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38663, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:51:39', '2023-09-18 17:51:39', 0, 0, '', NULL, '2023-09-18 17:51:39', NULL, '2023-09-18 17:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38664, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:52:50', '2023-09-18 17:52:50', 0, 0, '', NULL, '2023-09-18 17:52:50', NULL, '2023-09-18 17:52:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38665, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:53:39', '2023-09-18 17:53:39', 0, 0, '', NULL, '2023-09-18 17:53:39', NULL, '2023-09-18 17:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38666, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:53:39', '2023-09-18 17:53:39', 0, 0, '', NULL, '2023-09-18 17:53:39', NULL, '2023-09-18 17:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38667, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"detailsId\\\":\\\"4\\\",\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:56:33', '2023-09-18 17:56:33', 0, 0, '', NULL, '2023-09-18 17:56:33', NULL, '2023-09-18 17:56:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38668, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:56:33', '2023-09-18 17:56:33', 0, 0, '', NULL, '2023-09-18 17:56:33', NULL, '2023-09-18 17:56:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38669, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:56:50', '2023-09-18 17:56:50', 0, 0, '', NULL, '2023-09-18 17:56:50', NULL, '2023-09-18 17:56:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38670, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:01:39', '2023-09-18 18:01:39', 0, 0, '', NULL, '2023-09-18 18:01:39', NULL, '2023-09-18 18:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38671, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:01:39', '2023-09-18 18:01:39', 0, 0, '', NULL, '2023-09-18 18:01:39', NULL, '2023-09-18 18:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38672, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:30', '2023-09-18 18:02:30', 0, 0, '', NULL, '2023-09-18 18:02:30', NULL, '2023-09-18 18:02:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38673, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:31', '2023-09-18 18:02:31', 0, 0, '', NULL, '2023-09-18 18:02:31', NULL, '2023-09-18 18:02:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38674, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:35', '2023-09-18 18:02:35', 0, 0, '', NULL, '2023-09-18 18:02:35', NULL, '2023-09-18 18:02:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38675, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:36', '2023-09-18 18:02:36', 0, 0, '', NULL, '2023-09-18 18:02:36', NULL, '2023-09-18 18:02:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38676, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:36', '2023-09-18 18:02:36', 0, 0, '', NULL, '2023-09-18 18:02:36', NULL, '2023-09-18 18:02:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38677, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:36', '2023-09-18 18:02:36', 0, 0, '', NULL, '2023-09-18 18:02:36', NULL, '2023-09-18 18:02:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38678, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:36', '2023-09-18 18:02:36', 0, 0, '', NULL, '2023-09-18 18:02:36', NULL, '2023-09-18 18:02:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38679, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:36', '2023-09-18 18:02:36', 0, 0, '', NULL, '2023-09-18 18:02:36', NULL, '2023-09-18 18:02:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38680, '', 0, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:42', '2023-09-18 18:02:42', 0, 401, '账号未登录', NULL, '2023-09-18 18:02:42', NULL, '2023-09-18 18:02:42', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38681, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:55', '2023-09-18 18:02:55', 0, 0, '', NULL, '2023-09-18 18:02:55', NULL, '2023-09-18 18:02:55', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38682, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:02:59', '2023-09-18 18:03:00', 0, 0, '', NULL, '2023-09-18 18:03:00', NULL, '2023-09-18 18:03:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38683, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:03:02', '2023-09-18 18:03:02', 0, 0, '', NULL, '2023-09-18 18:03:02', NULL, '2023-09-18 18:03:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38684, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:03:06', '2023-09-18 18:03:06', 0, 0, '', NULL, '2023-09-18 18:03:06', NULL, '2023-09-18 18:03:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38685, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703711231535218688\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:03:06', '2023-09-18 18:03:06', 0, 0, '', NULL, '2023-09-18 18:03:06', NULL, '2023-09-18 18:03:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38686, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:03:09', '2023-09-18 18:03:09', 0, 0, '', NULL, '2023-09-18 18:03:10', NULL, '2023-09-18 18:03:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38687, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:03:23', '2023-09-18 18:03:23', 0, 0, '', NULL, '2023-09-18 18:03:23', NULL, '2023-09-18 18:03:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38688, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:03:35', '2023-09-18 18:03:35', 0, 0, '', NULL, '2023-09-18 18:03:35', NULL, '2023-09-18 18:03:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38689, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:03:38', '2023-09-18 18:03:38', 0, 0, '', NULL, '2023-09-18 18:03:38', NULL, '2023-09-18 18:03:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38690, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:03:39', '2023-09-18 18:03:39', 0, 0, '', NULL, '2023-09-18 18:03:39', NULL, '2023-09-18 18:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38691, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:04:50', '2023-09-18 18:04:50', 0, 0, '', NULL, '2023-09-18 18:04:50', NULL, '2023-09-18 18:04:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38692, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:05:21', '2023-09-18 18:05:22', 0, 0, '', NULL, '2023-09-18 18:05:22', NULL, '2023-09-18 18:05:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38693, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:05:38', '2023-09-18 18:05:38', 0, 0, '', NULL, '2023-09-18 18:05:39', NULL, '2023-09-18 18:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38694, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:06:50', '2023-09-18 18:06:50', 0, 0, '', NULL, '2023-09-18 18:06:50', NULL, '2023-09-18 18:06:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38695, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:07:21', '2023-09-18 18:07:21', 0, 0, '', NULL, '2023-09-18 18:07:21', NULL, '2023-09-18 18:07:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38696, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:07:38', '2023-09-18 18:07:38', 0, 0, '', NULL, '2023-09-18 18:07:39', NULL, '2023-09-18 18:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38697, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:09:39', '2023-09-18 18:09:39', 0, 0, '', NULL, '2023-09-18 18:09:39', NULL, '2023-09-18 18:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38698, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:09:39', '2023-09-18 18:09:39', 0, 0, '', NULL, '2023-09-18 18:09:39', NULL, '2023-09-18 18:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38699, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:09:39', '2023-09-18 18:09:39', 0, 0, '', NULL, '2023-09-18 18:09:39', NULL, '2023-09-18 18:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38700, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:13:39', '2023-09-18 18:13:39', 0, 0, '', NULL, '2023-09-18 18:13:39', NULL, '2023-09-18 18:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38701, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:13:39', '2023-09-18 18:13:39', 0, 0, '', NULL, '2023-09-18 18:13:39', NULL, '2023-09-18 18:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38702, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:13:39', '2023-09-18 18:13:39', 0, 0, '', NULL, '2023-09-18 18:13:39', NULL, '2023-09-18 18:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38703, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:14:51', '2023-09-18 18:14:51', 0, 0, '', NULL, '2023-09-18 18:14:51', NULL, '2023-09-18 18:14:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38704, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:15:21', '2023-09-18 18:15:22', 0, 0, '', NULL, '2023-09-18 18:15:22', NULL, '2023-09-18 18:15:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38705, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:15:39', '2023-09-18 18:15:39', 0, 0, '', NULL, '2023-09-18 18:15:39', NULL, '2023-09-18 18:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38706, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:00', '2023-09-18 18:16:00', 0, 0, '', NULL, '2023-09-18 18:16:00', NULL, '2023-09-18 18:16:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38707, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38708, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38709, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 401, '账号未登录', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38710, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38711, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38712, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38713, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38714, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38715, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38716, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:01', '2023-09-18 18:16:01', 0, 0, '', NULL, '2023-09-18 18:16:01', NULL, '2023-09-18 18:16:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38717, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:13', '2023-09-18 18:16:13', 0, 0, '', NULL, '2023-09-18 18:16:13', NULL, '2023-09-18 18:16:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38718, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:14', '2023-09-18 18:16:14', 0, 0, '', NULL, '2023-09-18 18:16:14', NULL, '2023-09-18 18:16:14', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38719, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:16', '2023-09-18 18:16:16', 0, 0, '', NULL, '2023-09-18 18:16:16', NULL, '2023-09-18 18:16:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38720, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:18', '2023-09-18 18:16:18', 0, 0, '', NULL, '2023-09-18 18:16:18', NULL, '2023-09-18 18:16:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38721, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38722, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38723, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38724, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38725, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38726, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:19', '2023-09-18 18:16:19', 0, 0, '', NULL, '2023-09-18 18:16:19', NULL, '2023-09-18 18:16:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38727, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:23', '2023-09-18 18:16:23', 0, 0, '', NULL, '2023-09-18 18:16:23', NULL, '2023-09-18 18:16:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38728, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"15\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:25', '2023-09-18 18:16:25', 0, 0, '', NULL, '2023-09-18 18:16:25', NULL, '2023-09-18 18:16:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38729, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703714583388094464\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:25', '2023-09-18 18:16:25', 0, 0, '', NULL, '2023-09-18 18:16:25', NULL, '2023-09-18 18:16:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38730, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 18:16:26', '2023-09-18 18:16:26', 0, 0, '', NULL, '2023-09-18 18:16:26', NULL, '2023-09-18 18:16:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38731, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:16:50', '2023-09-18 18:16:50', 0, 0, '', NULL, '2023-09-18 18:16:50', NULL, '2023-09-18 18:16:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38732, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/get', '{\"query\":{\"id\":\"4\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:16:57', '2023-09-18 18:16:57', 0, 0, '', NULL, '2023-09-18 18:16:57', NULL, '2023-09-18 18:16:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38733, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:17:22', '2023-09-18 18:17:22', 0, 0, '', NULL, '2023-09-18 18:17:22', NULL, '2023-09-18 18:17:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38734, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:17:38', '2023-09-18 18:17:38', 0, 0, '', NULL, '2023-09-18 18:17:38', NULL, '2023-09-18 18:17:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38735, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:18:50', '2023-09-18 18:18:50', 0, 0, '', NULL, '2023-09-18 18:18:50', NULL, '2023-09-18 18:18:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38736, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:19', '2023-09-18 18:19:19', 0, 0, '', NULL, '2023-09-18 18:19:19', NULL, '2023-09-18 18:19:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38737, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:20', '2023-09-18 18:19:20', 0, 0, '', NULL, '2023-09-18 18:19:20', NULL, '2023-09-18 18:19:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38738, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:19:22', '2023-09-18 18:19:22', 0, 0, '', NULL, '2023-09-18 18:19:22', NULL, '2023-09-18 18:19:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38739, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38740, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38741, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38742, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38743, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38744, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38745, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:24', '2023-09-18 18:19:24', 0, 0, '', NULL, '2023-09-18 18:19:24', NULL, '2023-09-18 18:19:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38746, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:19:39', '2023-09-18 18:19:39', 0, 0, '', NULL, '2023-09-18 18:19:39', NULL, '2023-09-18 18:19:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38747, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:41', '2023-09-18 18:19:41', 0, 0, '', NULL, '2023-09-18 18:19:41', NULL, '2023-09-18 18:19:41', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38748, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:44', '2023-09-18 18:19:44', 0, 0, '', NULL, '2023-09-18 18:19:44', NULL, '2023-09-18 18:19:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38749, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:44', '2023-09-18 18:19:44', 0, 0, '', NULL, '2023-09-18 18:19:44', NULL, '2023-09-18 18:19:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38750, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:46', '2023-09-18 18:19:46', 0, 0, '', NULL, '2023-09-18 18:19:46', NULL, '2023-09-18 18:19:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38751, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:48', '2023-09-18 18:19:48', 0, 0, '', NULL, '2023-09-18 18:19:48', NULL, '2023-09-18 18:19:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38752, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.03245058101821\",\"kw\":\"\",\"lat\":\"33.56217435159432\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:51', '2023-09-18 18:19:51', 0, 0, '', NULL, '2023-09-18 18:19:51', NULL, '2023-09-18 18:19:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38753, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:51', '2023-09-18 18:19:51', 0, 0, '', NULL, '2023-09-18 18:19:51', NULL, '2023-09-18 18:19:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38754, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:52', '2023-09-18 18:19:52', 0, 0, '', NULL, '2023-09-18 18:19:52', NULL, '2023-09-18 18:19:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38755, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:52', '2023-09-18 18:19:52', 0, 0, '', NULL, '2023-09-18 18:19:52', NULL, '2023-09-18 18:19:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38756, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:52', '2023-09-18 18:19:52', 0, 0, '', NULL, '2023-09-18 18:19:52', NULL, '2023-09-18 18:19:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38757, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:19:52', '2023-09-18 18:19:52', 0, 0, '', NULL, '2023-09-18 18:19:52', NULL, '2023-09-18 18:19:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38758, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:20:00', '2023-09-18 18:20:00', 0, 0, '', NULL, '2023-09-18 18:20:00', NULL, '2023-09-18 18:20:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38759, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"15\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:20:03', '2023-09-18 18:20:03', 0, 0, '', NULL, '2023-09-18 18:20:03', NULL, '2023-09-18 18:20:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38760, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703715497381462016\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:20:03', '2023-09-18 18:20:03', 0, 0, '', NULL, '2023-09-18 18:20:03', NULL, '2023-09-18 18:20:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38761, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', '2023-09-18 18:20:06', '2023-09-18 18:20:06', 0, 0, '', NULL, '2023-09-18 18:20:06', NULL, '2023-09-18 18:20:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38762, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:20:50', '2023-09-18 18:20:50', 0, 0, '', NULL, '2023-09-18 18:20:50', NULL, '2023-09-18 18:20:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38763, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:21:38', '2023-09-18 18:21:39', 0, 0, '', NULL, '2023-09-18 18:21:39', NULL, '2023-09-18 18:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38764, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:21:39', '2023-09-18 18:21:39', 0, 0, '', NULL, '2023-09-18 18:21:39', NULL, '2023-09-18 18:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38765, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:23:39', '2023-09-18 18:23:39', 0, 0, '', NULL, '2023-09-18 18:23:39', NULL, '2023-09-18 18:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38766, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:23:39', '2023-09-18 18:23:39', 0, 0, '', NULL, '2023-09-18 18:23:39', NULL, '2023-09-18 18:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38767, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:23:39', '2023-09-18 18:23:39', 0, 0, '', NULL, '2023-09-18 18:23:39', NULL, '2023-09-18 18:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38768, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:25:22', '2023-09-18 18:25:22', 0, 0, '', NULL, '2023-09-18 18:25:22', NULL, '2023-09-18 18:25:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38769, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:25:39', '2023-09-18 18:25:39', 0, 0, '', NULL, '2023-09-18 18:25:39', NULL, '2023-09-18 18:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38770, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:25:39', '2023-09-18 18:25:39', 0, 0, '', NULL, '2023-09-18 18:25:39', NULL, '2023-09-18 18:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38771, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{\"mobile\":\"15136175246\",\"scene\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:30:51', '2023-09-18 18:30:51', 0, 0, '', NULL, '2023-09-18 18:30:51', NULL, '2023-09-18 18:30:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38772, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{\"code\":\"9999\",\"mobile\":\"15136175246\",\"from\":\"h5\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:30:58', '2023-09-18 18:30:58', 0, 0, '', NULL, '2023-09-18 18:30:58', NULL, '2023-09-18 18:30:58', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38773, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:30:59', '2023-09-18 18:30:59', 0, 0, '', NULL, '2023-09-18 18:30:59', NULL, '2023-09-18 18:30:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38774, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:01', '2023-09-18 18:31:01', 0, 0, '', NULL, '2023-09-18 18:31:01', NULL, '2023-09-18 18:31:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38775, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:03', '2023-09-18 18:31:03', 0, 0, '', NULL, '2023-09-18 18:31:03', NULL, '2023-09-18 18:31:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38776, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:03', '2023-09-18 18:31:03', 0, 0, '', NULL, '2023-09-18 18:31:03', NULL, '2023-09-18 18:31:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38777, '', 2, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"0\",\"lng\":\"114.038282\",\"kw\":\"\",\"lat\":\"33.560685\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:06', '2023-09-18 18:31:07', 0, 0, '', NULL, '2023-09-18 18:31:07', NULL, '2023-09-18 18:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38778, '', 2, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:07', '2023-09-18 18:31:07', 0, 0, '', NULL, '2023-09-18 18:31:07', NULL, '2023-09-18 18:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38779, '', 2, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"shopId\":\"2\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:07', '2023-09-18 18:31:07', 0, 0, '', NULL, '2023-09-18 18:31:07', NULL, '2023-09-18 18:31:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38780, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:08', '2023-09-18 18:31:08', 0, 0, '', NULL, '2023-09-18 18:31:08', NULL, '2023-09-18 18:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38781, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:08', '2023-09-18 18:31:08', 0, 0, '', NULL, '2023-09-18 18:31:08', NULL, '2023-09-18 18:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38782, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:08', '2023-09-18 18:31:08', 0, 0, '', NULL, '2023-09-18 18:31:08', NULL, '2023-09-18 18:31:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38783, '', 2, 1, 'yshop-server', 'GET', '/app-api/coupon/count', '{\"query\":{\"shop_id\":\"2\",\"type\":\"1\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:12', '2023-09-18 18:31:12', 0, 0, '', NULL, '2023-09-18 18:31:12', NULL, '2023-09-18 18:31:12', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38784, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"weixin\",\"productId\":\"17\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"10ml\",\"addressId\":\"0\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:15', '2023-09-18 18:31:15', 0, 0, '', NULL, '2023-09-18 18:31:15', NULL, '2023-09-18 18:31:15', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38785, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703718316423512064\",\"from\":\"h5\",\"paytype\":\"weixin\"},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:15', '2023-09-18 18:31:16', 0, 0, '', NULL, '2023-09-18 18:31:16', NULL, '2023-09-18 18:31:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38786, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', '2023-09-18 18:31:20', '2023-09-18 18:31:20', 0, 0, '', NULL, '2023-09-18 18:31:20', NULL, '2023-09-18 18:31:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38787, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:31:22', '2023-09-18 18:31:22', 0, 0, '', NULL, '2023-09-18 18:31:22', NULL, '2023-09-18 18:31:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38788, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:31:39', '2023-09-18 18:31:39', 0, 0, '', NULL, '2023-09-18 18:31:39', NULL, '2023-09-18 18:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38789, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:31:39', '2023-09-18 18:31:39', 0, 0, '', NULL, '2023-09-18 18:31:39', NULL, '2023-09-18 18:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38790, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:37:17', '2023-09-18 18:37:17', 0, 0, '', NULL, '2023-09-18 18:37:17', NULL, '2023-09-18 18:37:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38791, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:37:21', '2023-09-18 18:37:21', 0, 0, '', NULL, '2023-09-18 18:37:21', NULL, '2023-09-18 18:37:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38792, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:39:39', '2023-09-18 18:39:39', 0, 0, '', NULL, '2023-09-18 18:39:39', NULL, '2023-09-18 18:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38793, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:39:39', '2023-09-18 18:39:39', 0, 0, '', NULL, '2023-09-18 18:39:39', NULL, '2023-09-18 18:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38794, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:41:39', '2023-09-18 18:41:39', 0, 0, '', NULL, '2023-09-18 18:41:39', NULL, '2023-09-18 18:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38795, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:41:39', '2023-09-18 18:41:39', 0, 0, '', NULL, '2023-09-18 18:41:39', NULL, '2023-09-18 18:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38796, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:43:39', '2023-09-18 18:43:39', 0, 0, '', NULL, '2023-09-18 18:43:39', NULL, '2023-09-18 18:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38797, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:43:39', '2023-09-18 18:43:39', 0, 0, '', NULL, '2023-09-18 18:43:39', NULL, '2023-09-18 18:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38798, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:45:39', '2023-09-18 18:45:39', 0, 0, '', NULL, '2023-09-18 18:45:39', NULL, '2023-09-18 18:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38799, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:45:39', '2023-09-18 18:45:39', 0, 0, '', NULL, '2023-09-18 18:45:39', NULL, '2023-09-18 18:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38800, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:47:39', '2023-09-18 18:47:39', 0, 0, '', NULL, '2023-09-18 18:47:39', NULL, '2023-09-18 18:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38801, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:47:39', '2023-09-18 18:47:39', 0, 0, '', NULL, '2023-09-18 18:47:39', NULL, '2023-09-18 18:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38802, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:49:39', '2023-09-18 18:49:39', 0, 0, '', NULL, '2023-09-18 18:49:39', NULL, '2023-09-18 18:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38803, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:49:39', '2023-09-18 18:49:39', 0, 0, '', NULL, '2023-09-18 18:49:39', NULL, '2023-09-18 18:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38804, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:51:39', '2023-09-18 18:51:39', 0, 0, '', NULL, '2023-09-18 18:51:39', NULL, '2023-09-18 18:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38805, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:51:39', '2023-09-18 18:51:39', 0, 0, '', NULL, '2023-09-18 18:51:39', NULL, '2023-09-18 18:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38806, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:53:39', '2023-09-18 18:53:39', 0, 0, '', NULL, '2023-09-18 18:53:39', NULL, '2023-09-18 18:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38807, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:53:39', '2023-09-18 18:53:39', 0, 0, '', NULL, '2023-09-18 18:53:39', NULL, '2023-09-18 18:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38808, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:55:39', '2023-09-18 18:55:39', 0, 0, '', NULL, '2023-09-18 18:55:39', NULL, '2023-09-18 18:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38809, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:55:39', '2023-09-18 18:55:39', 0, 0, '', NULL, '2023-09-18 18:55:39', NULL, '2023-09-18 18:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38810, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:57:40', '2023-09-18 18:57:40', 0, 0, '', NULL, '2023-09-18 18:57:40', NULL, '2023-09-18 18:57:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38811, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:57:40', '2023-09-18 18:57:40', 0, 0, '', NULL, '2023-09-18 18:57:40', NULL, '2023-09-18 18:57:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38812, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:59:39', '2023-09-18 18:59:39', 0, 0, '', NULL, '2023-09-18 18:59:39', NULL, '2023-09-18 18:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38813, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 18:59:39', '2023-09-18 18:59:39', 0, 0, '', NULL, '2023-09-18 18:59:39', NULL, '2023-09-18 18:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38814, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:01:39', '2023-09-18 19:01:39', 0, 0, '', NULL, '2023-09-18 19:01:39', NULL, '2023-09-18 19:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38815, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:01:39', '2023-09-18 19:01:39', 0, 0, '', NULL, '2023-09-18 19:01:39', NULL, '2023-09-18 19:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38816, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:03:39', '2023-09-18 19:03:39', 0, 0, '', NULL, '2023-09-18 19:03:39', NULL, '2023-09-18 19:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38817, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:03:39', '2023-09-18 19:03:39', 0, 0, '', NULL, '2023-09-18 19:03:39', NULL, '2023-09-18 19:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38818, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:05:39', '2023-09-18 19:05:39', 0, 0, '', NULL, '2023-09-18 19:05:39', NULL, '2023-09-18 19:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38819, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:05:39', '2023-09-18 19:05:39', 0, 0, '', NULL, '2023-09-18 19:05:39', NULL, '2023-09-18 19:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38820, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:07:39', '2023-09-18 19:07:39', 0, 0, '', NULL, '2023-09-18 19:07:39', NULL, '2023-09-18 19:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38821, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:07:39', '2023-09-18 19:07:39', 0, 0, '', NULL, '2023-09-18 19:07:39', NULL, '2023-09-18 19:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38822, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:09:39', '2023-09-18 19:09:39', 0, 0, '', NULL, '2023-09-18 19:09:39', NULL, '2023-09-18 19:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38823, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:09:39', '2023-09-18 19:09:39', 0, 0, '', NULL, '2023-09-18 19:09:39', NULL, '2023-09-18 19:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38824, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:11:39', '2023-09-18 19:11:39', 0, 0, '', NULL, '2023-09-18 19:11:39', NULL, '2023-09-18 19:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38825, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:11:39', '2023-09-18 19:11:39', 0, 0, '', NULL, '2023-09-18 19:11:39', NULL, '2023-09-18 19:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38826, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:13:39', '2023-09-18 19:13:39', 0, 0, '', NULL, '2023-09-18 19:13:39', NULL, '2023-09-18 19:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38827, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:13:39', '2023-09-18 19:13:39', 0, 0, '', NULL, '2023-09-18 19:13:39', NULL, '2023-09-18 19:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38828, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:15:39', '2023-09-18 19:15:39', 0, 0, '', NULL, '2023-09-18 19:15:39', NULL, '2023-09-18 19:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38829, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:15:39', '2023-09-18 19:15:39', 0, 0, '', NULL, '2023-09-18 19:15:39', NULL, '2023-09-18 19:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38830, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:17:39', '2023-09-18 19:17:39', 0, 0, '', NULL, '2023-09-18 19:17:39', NULL, '2023-09-18 19:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38831, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:17:39', '2023-09-18 19:17:39', 0, 0, '', NULL, '2023-09-18 19:17:39', NULL, '2023-09-18 19:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38832, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:19:39', '2023-09-18 19:19:39', 0, 0, '', NULL, '2023-09-18 19:19:39', NULL, '2023-09-18 19:19:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38833, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:19:39', '2023-09-18 19:19:39', 0, 0, '', NULL, '2023-09-18 19:19:39', NULL, '2023-09-18 19:19:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38834, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:21:39', '2023-09-18 19:21:39', 0, 0, '', NULL, '2023-09-18 19:21:39', NULL, '2023-09-18 19:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38835, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:21:39', '2023-09-18 19:21:39', 0, 0, '', NULL, '2023-09-18 19:21:39', NULL, '2023-09-18 19:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38836, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:23:39', '2023-09-18 19:23:39', 0, 0, '', NULL, '2023-09-18 19:23:39', NULL, '2023-09-18 19:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38837, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:23:39', '2023-09-18 19:23:39', 0, 0, '', NULL, '2023-09-18 19:23:39', NULL, '2023-09-18 19:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38838, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:25:39', '2023-09-18 19:25:39', 0, 0, '', NULL, '2023-09-18 19:25:39', NULL, '2023-09-18 19:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38839, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:25:39', '2023-09-18 19:25:39', 0, 0, '', NULL, '2023-09-18 19:25:39', NULL, '2023-09-18 19:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38840, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:27:39', '2023-09-18 19:27:39', 0, 0, '', NULL, '2023-09-18 19:27:39', NULL, '2023-09-18 19:27:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38841, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:27:39', '2023-09-18 19:27:39', 0, 0, '', NULL, '2023-09-18 19:27:39', NULL, '2023-09-18 19:27:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38842, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:29:39', '2023-09-18 19:29:39', 0, 0, '', NULL, '2023-09-18 19:29:39', NULL, '2023-09-18 19:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38843, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:29:39', '2023-09-18 19:29:39', 0, 0, '', NULL, '2023-09-18 19:29:39', NULL, '2023-09-18 19:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38844, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:31:39', '2023-09-18 19:31:39', 0, 0, '', NULL, '2023-09-18 19:31:39', NULL, '2023-09-18 19:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38845, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:31:39', '2023-09-18 19:31:39', 0, 0, '', NULL, '2023-09-18 19:31:39', NULL, '2023-09-18 19:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38846, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:33:39', '2023-09-18 19:33:39', 0, 0, '', NULL, '2023-09-18 19:33:39', NULL, '2023-09-18 19:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38847, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:33:39', '2023-09-18 19:33:39', 0, 0, '', NULL, '2023-09-18 19:33:39', NULL, '2023-09-18 19:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38848, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:35:39', '2023-09-18 19:35:39', 0, 0, '', NULL, '2023-09-18 19:35:39', NULL, '2023-09-18 19:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38849, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:35:39', '2023-09-18 19:35:39', 0, 0, '', NULL, '2023-09-18 19:35:39', NULL, '2023-09-18 19:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38850, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:37:39', '2023-09-18 19:37:39', 0, 0, '', NULL, '2023-09-18 19:37:39', NULL, '2023-09-18 19:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38851, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:37:39', '2023-09-18 19:37:39', 0, 0, '', NULL, '2023-09-18 19:37:39', NULL, '2023-09-18 19:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38852, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:39:39', '2023-09-18 19:39:39', 0, 0, '', NULL, '2023-09-18 19:39:39', NULL, '2023-09-18 19:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38853, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:39:39', '2023-09-18 19:39:39', 0, 0, '', NULL, '2023-09-18 19:39:39', NULL, '2023-09-18 19:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38854, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:41:39', '2023-09-18 19:41:39', 0, 0, '', NULL, '2023-09-18 19:41:39', NULL, '2023-09-18 19:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38855, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:41:39', '2023-09-18 19:41:39', 0, 0, '', NULL, '2023-09-18 19:41:39', NULL, '2023-09-18 19:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38856, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:43:39', '2023-09-18 19:43:39', 0, 0, '', NULL, '2023-09-18 19:43:39', NULL, '2023-09-18 19:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38857, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:43:39', '2023-09-18 19:43:39', 0, 0, '', NULL, '2023-09-18 19:43:39', NULL, '2023-09-18 19:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38858, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:45:39', '2023-09-18 19:45:39', 0, 0, '', NULL, '2023-09-18 19:45:39', NULL, '2023-09-18 19:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38859, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:45:39', '2023-09-18 19:45:39', 0, 0, '', NULL, '2023-09-18 19:45:39', NULL, '2023-09-18 19:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38860, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:47:39', '2023-09-18 19:47:39', 0, 0, '', NULL, '2023-09-18 19:47:39', NULL, '2023-09-18 19:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38861, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:47:39', '2023-09-18 19:47:39', 0, 0, '', NULL, '2023-09-18 19:47:39', NULL, '2023-09-18 19:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38862, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:49:39', '2023-09-18 19:49:39', 0, 0, '', NULL, '2023-09-18 19:49:39', NULL, '2023-09-18 19:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38863, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:49:39', '2023-09-18 19:49:39', 0, 0, '', NULL, '2023-09-18 19:49:39', NULL, '2023-09-18 19:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38864, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:51:39', '2023-09-18 19:51:39', 0, 0, '', NULL, '2023-09-18 19:51:39', NULL, '2023-09-18 19:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38865, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:51:39', '2023-09-18 19:51:39', 0, 0, '', NULL, '2023-09-18 19:51:39', NULL, '2023-09-18 19:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38866, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:53:39', '2023-09-18 19:53:39', 0, 0, '', NULL, '2023-09-18 19:53:39', NULL, '2023-09-18 19:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38867, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:53:39', '2023-09-18 19:53:39', 0, 0, '', NULL, '2023-09-18 19:53:39', NULL, '2023-09-18 19:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38868, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:55:39', '2023-09-18 19:55:39', 0, 0, '', NULL, '2023-09-18 19:55:39', NULL, '2023-09-18 19:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38869, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:55:39', '2023-09-18 19:55:39', 0, 0, '', NULL, '2023-09-18 19:55:39', NULL, '2023-09-18 19:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38870, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:57:39', '2023-09-18 19:57:39', 0, 0, '', NULL, '2023-09-18 19:57:39', NULL, '2023-09-18 19:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38871, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:57:39', '2023-09-18 19:57:39', 0, 0, '', NULL, '2023-09-18 19:57:39', NULL, '2023-09-18 19:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38872, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:59:39', '2023-09-18 19:59:39', 0, 0, '', NULL, '2023-09-18 19:59:39', NULL, '2023-09-18 19:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38873, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 19:59:39', '2023-09-18 19:59:39', 0, 0, '', NULL, '2023-09-18 19:59:39', NULL, '2023-09-18 19:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38874, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:01:39', '2023-09-18 20:01:39', 0, 0, '', NULL, '2023-09-18 20:01:39', NULL, '2023-09-18 20:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38875, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:01:39', '2023-09-18 20:01:39', 0, 0, '', NULL, '2023-09-18 20:01:39', NULL, '2023-09-18 20:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38876, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:03:39', '2023-09-18 20:03:39', 0, 0, '', NULL, '2023-09-18 20:03:39', NULL, '2023-09-18 20:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38877, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:03:39', '2023-09-18 20:03:39', 0, 0, '', NULL, '2023-09-18 20:03:39', NULL, '2023-09-18 20:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38878, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:05:39', '2023-09-18 20:05:39', 0, 0, '', NULL, '2023-09-18 20:05:39', NULL, '2023-09-18 20:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38879, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:05:39', '2023-09-18 20:05:39', 0, 0, '', NULL, '2023-09-18 20:05:39', NULL, '2023-09-18 20:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38880, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:07:39', '2023-09-18 20:07:39', 0, 0, '', NULL, '2023-09-18 20:07:39', NULL, '2023-09-18 20:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38881, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:07:39', '2023-09-18 20:07:39', 0, 0, '', NULL, '2023-09-18 20:07:39', NULL, '2023-09-18 20:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38882, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:09:39', '2023-09-18 20:09:39', 0, 0, '', NULL, '2023-09-18 20:09:39', NULL, '2023-09-18 20:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38883, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:09:39', '2023-09-18 20:09:39', 0, 0, '', NULL, '2023-09-18 20:09:39', NULL, '2023-09-18 20:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38884, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:11:39', '2023-09-18 20:11:39', 0, 0, '', NULL, '2023-09-18 20:11:39', NULL, '2023-09-18 20:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38885, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:11:39', '2023-09-18 20:11:39', 0, 0, '', NULL, '2023-09-18 20:11:39', NULL, '2023-09-18 20:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38886, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:13:39', '2023-09-18 20:13:39', 0, 0, '', NULL, '2023-09-18 20:13:39', NULL, '2023-09-18 20:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38887, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:13:39', '2023-09-18 20:13:39', 0, 0, '', NULL, '2023-09-18 20:13:39', NULL, '2023-09-18 20:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38888, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:15:39', '2023-09-18 20:15:39', 0, 0, '', NULL, '2023-09-18 20:15:39', NULL, '2023-09-18 20:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38889, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:15:39', '2023-09-18 20:15:39', 0, 0, '', NULL, '2023-09-18 20:15:39', NULL, '2023-09-18 20:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38890, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:17:39', '2023-09-18 20:17:39', 0, 0, '', NULL, '2023-09-18 20:17:39', NULL, '2023-09-18 20:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38891, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:17:39', '2023-09-18 20:17:39', 0, 0, '', NULL, '2023-09-18 20:17:39', NULL, '2023-09-18 20:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38892, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:19:39', '2023-09-18 20:19:39', 0, 0, '', NULL, '2023-09-18 20:19:39', NULL, '2023-09-18 20:19:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38893, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:19:39', '2023-09-18 20:19:39', 0, 0, '', NULL, '2023-09-18 20:19:39', NULL, '2023-09-18 20:19:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38894, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:21:39', '2023-09-18 20:21:39', 0, 0, '', NULL, '2023-09-18 20:21:39', NULL, '2023-09-18 20:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38895, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:21:39', '2023-09-18 20:21:39', 0, 0, '', NULL, '2023-09-18 20:21:39', NULL, '2023-09-18 20:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38896, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:23:39', '2023-09-18 20:23:39', 0, 0, '', NULL, '2023-09-18 20:23:39', NULL, '2023-09-18 20:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38897, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:23:39', '2023-09-18 20:23:39', 0, 0, '', NULL, '2023-09-18 20:23:39', NULL, '2023-09-18 20:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38898, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:25:39', '2023-09-18 20:25:39', 0, 0, '', NULL, '2023-09-18 20:25:39', NULL, '2023-09-18 20:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38899, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:25:39', '2023-09-18 20:25:39', 0, 0, '', NULL, '2023-09-18 20:25:39', NULL, '2023-09-18 20:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38900, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:27:39', '2023-09-18 20:27:39', 0, 0, '', NULL, '2023-09-18 20:27:39', NULL, '2023-09-18 20:27:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38901, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:27:39', '2023-09-18 20:27:39', 0, 0, '', NULL, '2023-09-18 20:27:39', NULL, '2023-09-18 20:27:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38902, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:29:39', '2023-09-18 20:29:39', 0, 0, '', NULL, '2023-09-18 20:29:39', NULL, '2023-09-18 20:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38903, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:29:39', '2023-09-18 20:29:39', 0, 0, '', NULL, '2023-09-18 20:29:39', NULL, '2023-09-18 20:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38904, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:31:39', '2023-09-18 20:31:39', 0, 0, '', NULL, '2023-09-18 20:31:39', NULL, '2023-09-18 20:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38905, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:31:39', '2023-09-18 20:31:39', 0, 0, '', NULL, '2023-09-18 20:31:39', NULL, '2023-09-18 20:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38906, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:33:39', '2023-09-18 20:33:39', 0, 0, '', NULL, '2023-09-18 20:33:39', NULL, '2023-09-18 20:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38907, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:33:39', '2023-09-18 20:33:39', 0, 0, '', NULL, '2023-09-18 20:33:39', NULL, '2023-09-18 20:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38908, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:35:39', '2023-09-18 20:35:39', 0, 0, '', NULL, '2023-09-18 20:35:39', NULL, '2023-09-18 20:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38909, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:35:39', '2023-09-18 20:35:39', 0, 0, '', NULL, '2023-09-18 20:35:39', NULL, '2023-09-18 20:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38910, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:37:39', '2023-09-18 20:37:39', 0, 0, '', NULL, '2023-09-18 20:37:39', NULL, '2023-09-18 20:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38911, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:37:39', '2023-09-18 20:37:39', 0, 0, '', NULL, '2023-09-18 20:37:39', NULL, '2023-09-18 20:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38912, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:39:39', '2023-09-18 20:39:39', 0, 0, '', NULL, '2023-09-18 20:39:39', NULL, '2023-09-18 20:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38913, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:39:39', '2023-09-18 20:39:39', 0, 0, '', NULL, '2023-09-18 20:39:39', NULL, '2023-09-18 20:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38914, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:41:39', '2023-09-18 20:41:39', 0, 0, '', NULL, '2023-09-18 20:41:39', NULL, '2023-09-18 20:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38915, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:41:39', '2023-09-18 20:41:39', 0, 0, '', NULL, '2023-09-18 20:41:39', NULL, '2023-09-18 20:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38916, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:43:39', '2023-09-18 20:43:39', 0, 0, '', NULL, '2023-09-18 20:43:39', NULL, '2023-09-18 20:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38917, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:43:39', '2023-09-18 20:43:39', 0, 0, '', NULL, '2023-09-18 20:43:39', NULL, '2023-09-18 20:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38918, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:45:39', '2023-09-18 20:45:39', 0, 0, '', NULL, '2023-09-18 20:45:39', NULL, '2023-09-18 20:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38919, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:45:39', '2023-09-18 20:45:39', 0, 0, '', NULL, '2023-09-18 20:45:39', NULL, '2023-09-18 20:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38920, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:47:39', '2023-09-18 20:47:39', 0, 0, '', NULL, '2023-09-18 20:47:39', NULL, '2023-09-18 20:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38921, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:47:39', '2023-09-18 20:47:39', 0, 0, '', NULL, '2023-09-18 20:47:39', NULL, '2023-09-18 20:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38922, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:49:39', '2023-09-18 20:49:39', 0, 0, '', NULL, '2023-09-18 20:49:39', NULL, '2023-09-18 20:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38923, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:49:39', '2023-09-18 20:49:39', 0, 0, '', NULL, '2023-09-18 20:49:39', NULL, '2023-09-18 20:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38924, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:51:39', '2023-09-18 20:51:39', 0, 0, '', NULL, '2023-09-18 20:51:39', NULL, '2023-09-18 20:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38925, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:51:39', '2023-09-18 20:51:39', 0, 0, '', NULL, '2023-09-18 20:51:39', NULL, '2023-09-18 20:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38926, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:53:39', '2023-09-18 20:53:39', 0, 0, '', NULL, '2023-09-18 20:53:39', NULL, '2023-09-18 20:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38927, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:53:39', '2023-09-18 20:53:39', 0, 0, '', NULL, '2023-09-18 20:53:39', NULL, '2023-09-18 20:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38928, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:55:39', '2023-09-18 20:55:39', 0, 0, '', NULL, '2023-09-18 20:55:39', NULL, '2023-09-18 20:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38929, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:55:39', '2023-09-18 20:55:39', 0, 0, '', NULL, '2023-09-18 20:55:39', NULL, '2023-09-18 20:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38930, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:57:39', '2023-09-18 20:57:39', 0, 0, '', NULL, '2023-09-18 20:57:39', NULL, '2023-09-18 20:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38931, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:57:39', '2023-09-18 20:57:39', 0, 0, '', NULL, '2023-09-18 20:57:39', NULL, '2023-09-18 20:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38932, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:59:39', '2023-09-18 20:59:39', 0, 0, '', NULL, '2023-09-18 20:59:39', NULL, '2023-09-18 20:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38933, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 20:59:39', '2023-09-18 20:59:39', 0, 0, '', NULL, '2023-09-18 20:59:39', NULL, '2023-09-18 20:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38934, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:01:39', '2023-09-18 21:01:39', 0, 0, '', NULL, '2023-09-18 21:01:39', NULL, '2023-09-18 21:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38935, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:01:40', '2023-09-18 21:01:40', 0, 0, '', NULL, '2023-09-18 21:01:40', NULL, '2023-09-18 21:01:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38936, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:03:39', '2023-09-18 21:03:39', 0, 0, '', NULL, '2023-09-18 21:03:39', NULL, '2023-09-18 21:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38937, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:03:39', '2023-09-18 21:03:39', 0, 0, '', NULL, '2023-09-18 21:03:39', NULL, '2023-09-18 21:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38938, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:05:39', '2023-09-18 21:05:39', 0, 0, '', NULL, '2023-09-18 21:05:39', NULL, '2023-09-18 21:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38939, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:05:39', '2023-09-18 21:05:39', 0, 0, '', NULL, '2023-09-18 21:05:39', NULL, '2023-09-18 21:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38940, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:07:39', '2023-09-18 21:07:39', 0, 0, '', NULL, '2023-09-18 21:07:39', NULL, '2023-09-18 21:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38941, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:07:39', '2023-09-18 21:07:39', 0, 0, '', NULL, '2023-09-18 21:07:39', NULL, '2023-09-18 21:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38942, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:09:39', '2023-09-18 21:09:39', 0, 0, '', NULL, '2023-09-18 21:09:39', NULL, '2023-09-18 21:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38943, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:09:39', '2023-09-18 21:09:39', 0, 0, '', NULL, '2023-09-18 21:09:39', NULL, '2023-09-18 21:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38944, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:11:39', '2023-09-18 21:11:39', 0, 0, '', NULL, '2023-09-18 21:11:39', NULL, '2023-09-18 21:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38945, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:11:39', '2023-09-18 21:11:39', 0, 0, '', NULL, '2023-09-18 21:11:39', NULL, '2023-09-18 21:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38946, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.200.233', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:13:28', '2023-09-18 21:13:28', 0, 0, '', NULL, '2023-09-18 21:13:28', NULL, '2023-09-18 21:13:28', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38947, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:13:39', '2023-09-18 21:13:39', 0, 0, '', NULL, '2023-09-18 21:13:39', NULL, '2023-09-18 21:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38948, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:13:39', '2023-09-18 21:13:39', 0, 0, '', NULL, '2023-09-18 21:13:39', NULL, '2023-09-18 21:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38949, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '193.112.60.144', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:15:29', '2023-09-18 21:15:29', 0, 0, '', NULL, '2023-09-18 21:15:29', NULL, '2023-09-18 21:15:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38950, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:15:39', '2023-09-18 21:15:39', 0, 0, '', NULL, '2023-09-18 21:15:39', NULL, '2023-09-18 21:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38951, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:15:39', '2023-09-18 21:15:39', 0, 0, '', NULL, '2023-09-18 21:15:39', NULL, '2023-09-18 21:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38952, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:17:39', '2023-09-18 21:17:39', 0, 0, '', NULL, '2023-09-18 21:17:39', NULL, '2023-09-18 21:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38953, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.37', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:17:39', '2023-09-18 21:17:39', 0, 0, '', NULL, '2023-09-18 21:17:39', NULL, '2023-09-18 21:17:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38954, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:19:49', '2023-09-18 21:19:49', 0, 0, '', NULL, '2023-09-18 21:19:49', NULL, '2023-09-18 21:19:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38955, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:19:49', '2023-09-18 21:19:49', 0, 0, '', NULL, '2023-09-18 21:19:49', NULL, '2023-09-18 21:19:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38956, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.254.4', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:20:10', '2023-09-18 21:20:10', 0, 0, '', NULL, '2023-09-18 21:20:10', NULL, '2023-09-18 21:20:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38957, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.50', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:20:26', '2023-09-18 21:20:26', 0, 0, '', NULL, '2023-09-18 21:20:26', NULL, '2023-09-18 21:20:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38958, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:21:39', '2023-09-18 21:21:39', 0, 0, '', NULL, '2023-09-18 21:21:39', NULL, '2023-09-18 21:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38959, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:21:39', '2023-09-18 21:21:39', 0, 0, '', NULL, '2023-09-18 21:21:39', NULL, '2023-09-18 21:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38960, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:23:39', '2023-09-18 21:23:39', 0, 0, '', NULL, '2023-09-18 21:23:39', NULL, '2023-09-18 21:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38961, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:23:39', '2023-09-18 21:23:39', 0, 0, '', NULL, '2023-09-18 21:23:39', NULL, '2023-09-18 21:23:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38962, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:25:39', '2023-09-18 21:25:39', 0, 0, '', NULL, '2023-09-18 21:25:39', NULL, '2023-09-18 21:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38963, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:25:39', '2023-09-18 21:25:39', 0, 0, '', NULL, '2023-09-18 21:25:39', NULL, '2023-09-18 21:25:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38964, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:27:40', '2023-09-18 21:27:40', 0, 0, '', NULL, '2023-09-18 21:27:40', NULL, '2023-09-18 21:27:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38965, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:27:40', '2023-09-18 21:27:40', 0, 0, '', NULL, '2023-09-18 21:27:40', NULL, '2023-09-18 21:27:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38966, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:29:39', '2023-09-18 21:29:39', 0, 0, '', NULL, '2023-09-18 21:29:39', NULL, '2023-09-18 21:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38967, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:29:39', '2023-09-18 21:29:39', 0, 0, '', NULL, '2023-09-18 21:29:39', NULL, '2023-09-18 21:29:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38968, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:31:39', '2023-09-18 21:31:39', 0, 0, '', NULL, '2023-09-18 21:31:39', NULL, '2023-09-18 21:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38969, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:31:39', '2023-09-18 21:31:39', 0, 0, '', NULL, '2023-09-18 21:31:39', NULL, '2023-09-18 21:31:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38970, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '193.112.60.144', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:32:05', '2023-09-18 21:32:05', 0, 0, '', NULL, '2023-09-18 21:32:05', NULL, '2023-09-18 21:32:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38971, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.200.246', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:32:25', '2023-09-18 21:32:25', 0, 0, '', NULL, '2023-09-18 21:32:25', NULL, '2023-09-18 21:32:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38972, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.56', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:33:10', '2023-09-18 21:33:11', 0, 0, '', NULL, '2023-09-18 21:33:11', NULL, '2023-09-18 21:33:11', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38973, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:33:39', '2023-09-18 21:33:39', 0, 0, '', NULL, '2023-09-18 21:33:39', NULL, '2023-09-18 21:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38974, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:33:39', '2023-09-18 21:33:39', 0, 0, '', NULL, '2023-09-18 21:33:39', NULL, '2023-09-18 21:33:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38975, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:35:39', '2023-09-18 21:35:39', 0, 0, '', NULL, '2023-09-18 21:35:39', NULL, '2023-09-18 21:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38976, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:35:39', '2023-09-18 21:35:39', 0, 0, '', NULL, '2023-09-18 21:35:39', NULL, '2023-09-18 21:35:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38977, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:37:39', '2023-09-18 21:37:39', 0, 0, '', NULL, '2023-09-18 21:37:39', NULL, '2023-09-18 21:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38978, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:37:39', '2023-09-18 21:37:39', 0, 0, '', NULL, '2023-09-18 21:37:39', NULL, '2023-09-18 21:37:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38979, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:39:39', '2023-09-18 21:39:39', 0, 0, '', NULL, '2023-09-18 21:39:39', NULL, '2023-09-18 21:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38980, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:39:39', '2023-09-18 21:39:39', 0, 0, '', NULL, '2023-09-18 21:39:39', NULL, '2023-09-18 21:39:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38981, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '129.204.249.78', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:40:29', '2023-09-18 21:40:29', 0, 0, '', NULL, '2023-09-18 21:40:29', NULL, '2023-09-18 21:40:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38982, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:41:39', '2023-09-18 21:41:39', 0, 0, '', NULL, '2023-09-18 21:41:39', NULL, '2023-09-18 21:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38983, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:41:39', '2023-09-18 21:41:39', 0, 0, '', NULL, '2023-09-18 21:41:39', NULL, '2023-09-18 21:41:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38984, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:43:39', '2023-09-18 21:43:39', 0, 0, '', NULL, '2023-09-18 21:43:39', NULL, '2023-09-18 21:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38985, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:43:39', '2023-09-18 21:43:39', 0, 0, '', NULL, '2023-09-18 21:43:39', NULL, '2023-09-18 21:43:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38986, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:45:39', '2023-09-18 21:45:39', 0, 0, '', NULL, '2023-09-18 21:45:39', NULL, '2023-09-18 21:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38987, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:45:39', '2023-09-18 21:45:39', 0, 0, '', NULL, '2023-09-18 21:45:39', NULL, '2023-09-18 21:45:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38988, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:47:39', '2023-09-18 21:47:39', 0, 0, '', NULL, '2023-09-18 21:47:39', NULL, '2023-09-18 21:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38989, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:47:39', '2023-09-18 21:47:39', 0, 0, '', NULL, '2023-09-18 21:47:39', NULL, '2023-09-18 21:47:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38990, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:49:39', '2023-09-18 21:49:39', 0, 0, '', NULL, '2023-09-18 21:49:39', NULL, '2023-09-18 21:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38991, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:49:39', '2023-09-18 21:49:39', 0, 0, '', NULL, '2023-09-18 21:49:39', NULL, '2023-09-18 21:49:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38992, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.50', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:51:07', '2023-09-18 21:51:07', 0, 0, '', NULL, '2023-09-18 21:51:07', NULL, '2023-09-18 21:51:07', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38993, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:51:39', '2023-09-18 21:51:39', 0, 0, '', NULL, '2023-09-18 21:51:39', NULL, '2023-09-18 21:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38994, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:51:39', '2023-09-18 21:51:39', 0, 0, '', NULL, '2023-09-18 21:51:39', NULL, '2023-09-18 21:51:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38995, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:53:39', '2023-09-18 21:53:39', 0, 0, '', NULL, '2023-09-18 21:53:39', NULL, '2023-09-18 21:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38996, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:53:39', '2023-09-18 21:53:39', 0, 0, '', NULL, '2023-09-18 21:53:39', NULL, '2023-09-18 21:53:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38997, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:55:39', '2023-09-18 21:55:39', 0, 0, '', NULL, '2023-09-18 21:55:39', NULL, '2023-09-18 21:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38998, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:55:39', '2023-09-18 21:55:39', 0, 0, '', NULL, '2023-09-18 21:55:39', NULL, '2023-09-18 21:55:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (38999, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.157', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:57:01', '2023-09-18 21:57:01', 0, 0, '', NULL, '2023-09-18 21:57:01', NULL, '2023-09-18 21:57:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39000, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:57:39', '2023-09-18 21:57:39', 0, 0, '', NULL, '2023-09-18 21:57:39', NULL, '2023-09-18 21:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39001, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:57:39', '2023-09-18 21:57:39', 0, 0, '', NULL, '2023-09-18 21:57:39', NULL, '2023-09-18 21:57:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39002, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.157', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-18 21:57:53', '2023-09-18 21:57:53', 0, 0, '', NULL, '2023-09-18 21:57:53', NULL, '2023-09-18 21:57:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39003, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:59:39', '2023-09-18 21:59:39', 0, 0, '', NULL, '2023-09-18 21:59:39', NULL, '2023-09-18 21:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39004, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 21:59:39', '2023-09-18 21:59:39', 0, 0, '', NULL, '2023-09-18 21:59:39', NULL, '2023-09-18 21:59:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39005, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:01:39', '2023-09-18 22:01:39', 0, 0, '', NULL, '2023-09-18 22:01:39', NULL, '2023-09-18 22:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39006, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:01:39', '2023-09-18 22:01:39', 0, 0, '', NULL, '2023-09-18 22:01:39', NULL, '2023-09-18 22:01:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39007, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:03:39', '2023-09-18 22:03:39', 0, 0, '', NULL, '2023-09-18 22:03:39', NULL, '2023-09-18 22:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39008, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:03:39', '2023-09-18 22:03:39', 0, 0, '', NULL, '2023-09-18 22:03:39', NULL, '2023-09-18 22:03:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39009, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:05:39', '2023-09-18 22:05:39', 0, 0, '', NULL, '2023-09-18 22:05:39', NULL, '2023-09-18 22:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39010, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:05:39', '2023-09-18 22:05:39', 0, 0, '', NULL, '2023-09-18 22:05:39', NULL, '2023-09-18 22:05:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39011, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:07:39', '2023-09-18 22:07:39', 0, 0, '', NULL, '2023-09-18 22:07:39', NULL, '2023-09-18 22:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39012, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:07:39', '2023-09-18 22:07:39', 0, 0, '', NULL, '2023-09-18 22:07:39', NULL, '2023-09-18 22:07:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39013, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:09:39', '2023-09-18 22:09:39', 0, 0, '', NULL, '2023-09-18 22:09:39', NULL, '2023-09-18 22:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39014, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:09:39', '2023-09-18 22:09:39', 0, 0, '', NULL, '2023-09-18 22:09:39', NULL, '2023-09-18 22:09:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39015, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:11:39', '2023-09-18 22:11:39', 0, 0, '', NULL, '2023-09-18 22:11:39', NULL, '2023-09-18 22:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39016, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:11:39', '2023-09-18 22:11:39', 0, 0, '', NULL, '2023-09-18 22:11:39', NULL, '2023-09-18 22:11:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39017, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:13:30', '2023-09-18 22:13:30', 0, 0, '', NULL, '2023-09-18 22:13:30', NULL, '2023-09-18 22:13:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39018, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:13:34', '2023-09-18 22:13:34', 0, 0, '', NULL, '2023-09-18 22:13:34', NULL, '2023-09-18 22:13:34', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39019, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2023-09-18 22:13:37', '2023-09-18 22:13:38', 0, 0, '', NULL, '2023-09-18 22:13:38', NULL, '2023-09-18 22:13:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39020, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:13:39', '2023-09-18 22:13:39', 0, 0, '', NULL, '2023-09-18 22:13:39', NULL, '2023-09-18 22:13:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39021, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:15:22', '2023-09-18 22:15:22', 0, 0, '', NULL, '2023-09-18 22:15:22', NULL, '2023-09-18 22:15:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39022, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:15:39', '2023-09-18 22:15:39', 0, 0, '', NULL, '2023-09-18 22:15:39', NULL, '2023-09-18 22:15:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39023, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:17:17', '2023-09-18 22:17:17', 0, 0, '', NULL, '2023-09-18 22:17:17', NULL, '2023-09-18 22:17:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39024, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:17:22', '2023-09-18 22:17:22', 0, 0, '', NULL, '2023-09-18 22:17:22', NULL, '2023-09-18 22:17:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39025, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/dept/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:18:50', '2023-09-18 22:18:50', 0, 0, '', NULL, '2023-09-18 22:18:50', NULL, '2023-09-18 22:18:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39026, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:18:50', '2023-09-18 22:18:50', 0, 0, '', NULL, '2023-09-18 22:18:50', NULL, '2023-09-18 22:18:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39027, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/auth/logout', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:08', '2023-09-18 22:19:09', 0, 0, '', NULL, '2023-09-18 22:19:09', NULL, '2023-09-18 22:19:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39028, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:10', '2023-09-18 22:19:10', 0, 0, '', NULL, '2023-09-18 22:19:10', NULL, '2023-09-18 22:19:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39029, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:17', '2023-09-18 22:19:17', 0, 0, '', NULL, '2023-09-18 22:19:17', NULL, '2023-09-18 22:19:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39030, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"TwFtd+2tE7zo0T6pP/fC+d4EjFC2dnu8lTQHACVat+Y=\\\",\\\"token\\\":\\\"828a5075c3b1408cabd2a0d553fac7cb\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:20', '2023-09-18 22:19:20', 0, 0, '', NULL, '2023-09-18 22:19:20', NULL, '2023-09-18 22:19:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39031, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:21', '2023-09-18 22:19:21', 0, 0, '', NULL, '2023-09-18 22:19:21', NULL, '2023-09-18 22:19:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39032, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"yixiang001\\\",\\\"password\\\":\\\"123456\\\",\\\"captchaVerification\\\":\\\"IPCVX8rETyDcfeE0OPGWnfjbytP9KokVfHZB1yq/aR2ZRjPoqmtMTNZs4yyE+6xu6zZuw8TJzVPhLFWkvKiaVw==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:22', '2023-09-18 22:19:22', 0, 1002000000, '登录失败,账号密码不正确', NULL, '2023-09-18 22:19:22', NULL, '2023-09-18 22:19:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39033, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:22', '2023-09-18 22:19:22', 0, 0, '', NULL, '2023-09-18 22:19:22', NULL, '2023-09-18 22:19:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39034, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:35', '2023-09-18 22:19:35', 0, 0, '', NULL, '2023-09-18 22:19:35', NULL, '2023-09-18 22:19:35', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39035, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"hql9k7GjRovnv66sr2qtBvOZ2APrJNKs0gErpwhnxzM=\\\",\\\"token\\\":\\\"c388aa680f7f4689adfa7cc53b131e4a\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:47', '2023-09-18 22:19:47', 0, 0, '', NULL, '2023-09-18 22:19:47', NULL, '2023-09-18 22:19:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39036, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"yixiang001\\\",\\\"password\\\":\\\"123456\\\",\\\"captchaVerification\\\":\\\"Pl9E6qbxH2zdM3MyO6XpoWZuCSfpBl3R/kIfGfYg1/2+5xd4S9LXm7i7dY17bEVlyi3cjwnK96ORTowmT1cFjg==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:49', '2023-09-18 22:19:49', 0, 1002000000, '登录失败,账号密码不正确', NULL, '2023-09-18 22:19:49', NULL, '2023-09-18 22:19:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39037, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:19:49', '2023-09-18 22:19:49', 0, 0, '', NULL, '2023-09-18 22:19:49', NULL, '2023-09-18 22:19:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39038, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"BJPqqtxEotdUzTIeDsoOYCTTpzhUvSdl1U3st3RxVEk=\\\",\\\"token\\\":\\\"158520e620cb48e2aa692a0c17acb797\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:00', '2023-09-18 22:20:00', 0, 0, '', NULL, '2023-09-18 22:20:00', NULL, '2023-09-18 22:20:00', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39039, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"yixiang001\\\",\\\"password\\\":\\\"123456789\\\",\\\"captchaVerification\\\":\\\"ShzXS/5q4x9Ep6WxnMLL2d+j9A0j1y+w997wI8oS9lFnOFV8JlFbao8RlZ+/mELTbkkAIM6Ls2jFkAt9A31o5Q==\\\",\\\"rememberMe\\\":false}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:01', '2023-09-18 22:20:01', 0, 0, '', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39040, '', 126, 2, 'yshop-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:01', '2023-09-18 22:20:01', 0, 0, '', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39041, '', 126, 2, 'yshop-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:01', '2023-09-18 22:20:01', 0, 0, '', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39042, '', 126, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:01', '2023-09-18 22:20:01', 0, 0, '', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39043, '', 126, 2, 'yshop-server', 'GET', '/admin-api/system/auth/list-menus', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:01', '2023-09-18 22:20:01', 0, 0, '', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39044, '', 126, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:02', '2023-09-18 22:20:02', 0, 0, '', NULL, '2023-09-18 22:20:02', NULL, '2023-09-18 22:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39045, '', 126, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:02', '2023-09-18 22:20:02', 0, 403, '没有该操作权限', NULL, '2023-09-18 22:20:02', NULL, '2023-09-18 22:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39046, '', 126, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:02', '2023-09-18 22:20:02', 0, 0, '', NULL, '2023-09-18 22:20:02', NULL, '2023-09-18 22:20:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39047, '', 126, 2, 'yshop-server', 'POST', '/admin-api/system/auth/logout', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:13', '2023-09-18 22:20:13', 0, 0, '', NULL, '2023-09-18 22:20:13', NULL, '2023-09-18 22:20:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39048, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:20:13', '2023-09-18 22:20:13', 0, 0, '', NULL, '2023-09-18 22:20:13', NULL, '2023-09-18 22:20:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39049, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:21:39', '2023-09-18 22:21:39', 0, 0, '', NULL, '2023-09-18 22:21:39', NULL, '2023-09-18 22:21:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39050, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 22:22:02', '2023-09-18 22:22:02', 0, 0, '', NULL, '2023-09-18 22:22:02', NULL, '2023-09-18 22:22:02', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39051, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:30', '2023-09-18 22:31:31', 0, 0, '', NULL, '2023-09-18 22:31:31', NULL, '2023-09-18 22:31:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39052, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0d1hLmFa1GMW2G0LQdHa1Ip5Oj1hLmFg\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:31', '2023-09-18 22:31:31', 0, 0, '', NULL, '2023-09-18 22:31:31', NULL, '2023-09-18 22:31:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39053, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39054, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39055, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39056, '', 0, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 401, '账号未登录', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39057, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39058, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39059, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39060, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39061, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39062, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:31:32', '2023-09-18 22:31:32', 0, 0, '', NULL, '2023-09-18 22:31:32', NULL, '2023-09-18 22:31:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39063, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1i4cGa1mPL3G0rf7Ja15DUcH0i4cGM\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:08', '2023-09-18 22:34:08', 0, 0, '', NULL, '2023-09-18 22:34:08', NULL, '2023-09-18 22:34:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39064, '', 2, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"oHux265Iu9R5pMKk1O3U_J6TtMC4\",\"encryptedData\":\"cjCOUe0C45gUJX0Y/skUhhRZXVX4CWkSDR51LWoDhrkLNrr7hzS4idSTwqrmYioeGh1QYIC6Z0NfDemjP6o5yP331eEeOHKUbIENo5vRyGe6cZQGRkb6jYiBAd1M425ygKrWGeL+PwfI43+szcrHC8ThlbEvy4K1yZ99xVqss87jB7hqOrd3yjwxoydEac+lDen+tMUR55iocdItQFUMFA==\",\"iv\":\"zENLUYHJg0q/3ofUoldL3Q==\"},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:22', '2023-09-18 22:34:22', 0, 0, '', NULL, '2023-09-18 22:34:22', NULL, '2023-09-18 22:34:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39065, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:25', '2023-09-18 22:34:25', 0, 0, '', NULL, '2023-09-18 22:34:25', NULL, '2023-09-18 22:34:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39066, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:29', '2023-09-18 22:34:29', 0, 0, '', NULL, '2023-09-18 22:34:29', NULL, '2023-09-18 22:34:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39067, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:31', '2023-09-18 22:34:31', 0, 0, '', NULL, '2023-09-18 22:34:31', NULL, '2023-09-18 22:34:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39068, '', 2, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":null}', '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:34:50', '2023-09-18 22:34:50', 0, 0, '', NULL, '2023-09-18 22:34:50', NULL, '2023-09-18 22:34:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39069, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:25', '2023-09-18 22:35:25', 0, 0, '', NULL, '2023-09-18 22:35:25', NULL, '2023-09-18 22:35:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39070, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0b140nFa1WtV2G03yMGa1XDW0k440nFD\"},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:25', '2023-09-18 22:35:25', 0, 0, '', NULL, '2023-09-18 22:35:25', NULL, '2023-09-18 22:35:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39071, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:25', '2023-09-18 22:35:25', 0, 0, '', NULL, '2023-09-18 22:35:25', NULL, '2023-09-18 22:35:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39072, '', 0, 1, 'yshop-server', 'GET', '/app-api/service/list', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39073, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39074, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39075, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39076, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39077, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39078, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '{\"query\":{},\"body\":null}', '221.218.214.16', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 22:35:27', '2023-09-18 22:35:27', 0, 0, '', NULL, '2023-09-18 22:35:27', NULL, '2023-09-18 22:35:27', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39079, '', 0, 1, 'yshop-server', 'GET', '/app-api/ad/list', '{\"query\":{\"shop_id\":\"0\"},\"body\":null}', '106.55.201.130', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:46:05', '2023-09-19 03:46:05', 0, 0, '', NULL, '2023-09-19 03:46:05', NULL, '2023-09-19 03:46:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39080, '', 0, 2, 'yshop-server', 'GET', '/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '{\"query\":{},\"body\":null}', '42.194.133.9', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:46:05', '2023-09-19 03:46:05', 0, 0, '', NULL, '2023-09-19 03:46:05', NULL, '2023-09-19 03:46:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39081, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.202.193', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:46:40', '2023-09-19 03:46:40', 0, 0, '', NULL, '2023-09-19 03:46:40', NULL, '2023-09-19 03:46:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39082, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.201.65', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:48:09', '2023-09-19 03:48:09', 0, 0, '', NULL, '2023-09-19 03:48:09', NULL, '2023-09-19 03:48:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39083, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '42.194.128.22', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:53:50', '2023-09-19 03:53:50', 0, 0, '', NULL, '2023-09-19 03:53:50', NULL, '2023-09-19 03:53:50', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39084, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.202.186', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:55:31', '2023-09-19 03:55:31', 0, 0, '', NULL, '2023-09-19 03:55:31', NULL, '2023-09-19 03:55:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (39085, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '106.55.254.4', '\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"', '2023-09-19 03:58:38', '2023-09-19 03:58:38', 0, 0, '', NULL, '2023-09-19 03:58:38', NULL, '2023-09-19 03:58:38', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_api_error_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_error_log`; +CREATE TABLE `infra_api_error_log` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '链路追踪编号\n *\n * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。', + `user_id` int NOT NULL DEFAULT '0' COMMENT '用户编号', + `user_type` tinyint 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 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 NOT NULL COMMENT '异常发生的方法所在行\n *\n * {@link StackTraceElement#getLineNumber()}', + `process_status` tinyint NOT NULL COMMENT '处理状态', + `process_time` datetime DEFAULT NULL COMMENT '处理时间', + `process_user_id` int DEFAULT '0' COMMENT '处理用户编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1564 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统异常日志'; + +-- ---------------------------- +-- Records of infra_api_error_log +-- ---------------------------- +BEGIN; +INSERT INTO `infra_api_error_log` VALUES (1110, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"password\\\":\\\"admin123\\\",\\\"username\\\":\\\"admin\\\",\\\"captchaVerification\\\":\\\"dvAs6KAuDLzcXpyeV4D8AXns0VNCFXG2I5Bgf0bY/EATbfi/9kqtY884axLWWv1nOcnKKmagS0v1vHf+uyHPAA==\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '2023-05-07 16:32:26', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 6', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 6', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 6\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:177)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy182.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:38)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy182.selectOne(Unknown Source)\n at co.yixiang.yshop.module.system.dal.mysql.user.AdminUserMapper.selectByUsername(AdminUserMapper.java:18)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy182.selectByUsername(Unknown Source)\n at co.yixiang.yshop.module.system.service.user.AdminUserServiceImpl.getUserByUsername(AdminUserServiceImpl.java:208)\n at co.yixiang.yshop.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$feaf8112.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$85a591d7.getUserByUsername()\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.authenticate(AdminAuthServiceImpl.java:77)\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:100)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(AuthController.java:66)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$d0a3562c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$fed07bfc.login()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 177, 0, NULL, 0, NULL, '2023-05-07 16:32:27', NULL, '2023-05-07 16:32:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1111, '', 0, 2, 'yshop-server', 'DELETE', '/admin-api/system/menu/delete', '{\"query\":{\"id\":\"2048\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '2023-05-10 10:30:53', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$f36415aa.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$7919e9af.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa15b1835, L:/127.0.0.1:62111 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@67baa254[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-10 10:30:53', NULL, '2023-05-10 10:30:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1112, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '2023-05-10 17:19:36', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$f36415aa.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$7919e9af.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xcff290c9, L:/127.0.0.1:62115 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@d2b6308[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-10 17:19:36', NULL, '2023-05-10 17:19:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1113, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '2023-05-10 17:19:36', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$f36415aa.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$7919e9af.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x95e9c32e, L:/127.0.0.1:62104 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@41df8f7c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-10 17:19:36', NULL, '2023-05-10 17:19:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1114, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-16 10:42:26', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(co.yixiang.yshop.module.system.controller.admin.auth.vo.AuthLoginReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(co.yixiang.yshop.module.system.controller.admin.auth.vo.AuthLoginReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(co.yixiang.yshop.module.system.controller.admin.auth.vo.AuthLoginReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-05-16 10:42:26', NULL, '2023-05-16 10:42:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1115, '', 1, 2, 'yshop-server', 'GET', '/admin-api/shop/material-group/list', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-16 11:50:36', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.shop.dal.mysql.materialgroup.MaterialGroupMapper.selectList(MaterialGroupMapper.java:29)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy366.selectList(Unknown Source)\n at co.yixiang.yshop.module.shop.service.materialgroup.MaterialGroupServiceImpl.getMaterialGroupList(MaterialGroupServiceImpl.java:79)\n at co.yixiang.yshop.module.shop.service.materialgroup.MaterialGroupServiceImpl$$FastClassBySpringCGLIB$$cef8f2d8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.materialgroup.MaterialGroupServiceImpl$$EnhancerBySpringCGLIB$$eb82cfac.getMaterialGroupList()\n at co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.getMaterialGroupList(MaterialGroupController.java:79)\n at co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController$$FastClassBySpringCGLIB$$ae50f679.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController$$EnhancerBySpringCGLIB$$245ebe6c.getMaterialGroupList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.shop.dal.mysql.materialgroup.MaterialGroupMapper', 'MaterialGroupMapper.java', 'selectList', 29, 0, NULL, 0, NULL, '2023-05-16 11:50:36', NULL, '2023-05-16 11:50:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1116, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-16 11:51:27', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$66a54c2a.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$5ff82f4a.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x6b05aab9, L:/127.0.0.1:58950 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4dd47f65[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-16 11:51:27', NULL, '2023-05-16 11:51:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1117, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-16 11:51:27', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$66a54c2a.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$5ff82f4a.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe952cac8, L:/127.0.0.1:58959 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4d2c2e5c[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-16 11:51:27', NULL, '2023-05-16 11:51:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1118, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material-group/create', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-16 12:00:12', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-05-16 12:00:12', NULL, '2023-05-16 12:00:12', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1119, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/material-group/create', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-16 12:01:57', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.MaterialGroupCreateReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-05-16 12:01:57', NULL, '2023-05-16 12:01:57', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1120, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-16 16:23:58', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$955cd359.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$57c93961.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xe4a983b1, L:/127.0.0.1:59435 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1ced240e[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-16 16:23:58', NULL, '2023-05-16 16:23:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1121, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-17 17:47:24', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 3, column: 18] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO[\"ruleValue\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 3, column: 18] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO[\"ruleValue\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 3, column: 18] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO[\"ruleValue\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 3, column: 18] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO[\"ruleValue\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-05-17 17:47:24', NULL, '2023-05-17 17:47:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1122, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-17 17:58:49', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at co.yixiang.yshop.module.shop.convert.storeproductrule.StoreProductRuleConvertImpl.convert(StoreProductRuleConvertImpl.java:30)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl.createStoreProductRule(StoreProductRuleServiceImpl.java:33)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$e59129cc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$699db6c0.createStoreProductRule()\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleController.java:53)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$FastClassBySpringCGLIB$$d9aad905.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$EnhancerBySpringCGLIB$$cf927384.createStoreProductRule()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-17 17:58:49', NULL, '2023-05-17 17:58:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1123, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-17 18:02:13', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at co.yixiang.yshop.module.shop.convert.storeproductrule.StoreProductRuleConvertImpl.convert(StoreProductRuleConvertImpl.java:30)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl.createStoreProductRule(StoreProductRuleServiceImpl.java:33)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$e59129cc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$699db6c0.createStoreProductRule()\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleController.java:53)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$FastClassBySpringCGLIB$$d9aad905.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$EnhancerBySpringCGLIB$$bcc5a994.createStoreProductRule()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-17 18:02:13', NULL, '2023-05-17 18:02:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1124, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-18 10:09:52', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at co.yixiang.yshop.module.shop.convert.storeproductrule.StoreProductRuleConvertImpl.convert(StoreProductRuleConvertImpl.java:30)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl.createStoreProductRule(StoreProductRuleServiceImpl.java:33)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$e59129cc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$b8453343.createStoreProductRule()\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleController.java:53)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$FastClassBySpringCGLIB$$d9aad905.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor157.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$EnhancerBySpringCGLIB$$7786ce04.createStoreProductRule()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-18 10:09:52', NULL, '2023-05-18 10:09:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1125, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-18 10:18:02', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;\n at co.yixiang.yshop.module.shop.convert.storeproductrule.StoreProductRuleConvertImpl.convert(StoreProductRuleConvertImpl.java:30)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl.createStoreProductRule(StoreProductRuleServiceImpl.java:33)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$e59129cc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$b8453343.createStoreProductRule()\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleController.java:53)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$FastClassBySpringCGLIB$$d9aad905.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$EnhancerBySpringCGLIB$$f4a22229.createStoreProductRule()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-18 10:18:02', NULL, '2023-05-18 10:18:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1126, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/store-product-rule/save/0', '{\"query\":{},\"body\":\"{\\n \\\"ruleName\\\": \\\"图文打印1\\\",\\n \\\"ruleValue\\\": [\\n {\\n \\\"detail\\\": [\\n \\\"A4\\\",\\n \\\"A3\\\",\\n \\\"A5\\\",\\n \\\"A6\\\",\\n \\\"A7\\\"\\n ],\\n \\\"value\\\": \\\"纸张\\\"\\n },\\n {\\n \\\"detail\\\": [\\n \\\"白色\\\",\\n \\\"红色\\\",\\n \\\"菊花色\\\"\\n ],\\n \\\"value\\\": \\\"颜色\\\"\\n }\\n ]\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-05-18 10:21:49', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/shop/dal/mysql/storeproductrule/StoreProductRuleMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.shop.dal.mysql.storeproductrule.StoreProductRuleMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_product_rule ( rule_name, rule_value, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/shop/dal/mysql/storeproductrule/StoreProductRuleMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.shop.dal.mysql.storeproductrule.StoreProductRuleMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_product_rule ( rule_name, rule_value, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy328.insert(Unknown Source)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl.createStoreProductRule(StoreProductRuleServiceImpl.java:34)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$e59129cc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$5c191ea8.createStoreProductRule()\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleController.java:53)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$FastClassBySpringCGLIB$$d9aad905.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController$$EnhancerBySpringCGLIB$$84c8bae4.createStoreProductRule()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy159.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-05-18 10:21:49', NULL, '2023-05-18 10:21:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1127, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-19 15:41:00', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$c69757ea.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3d7cfb1b.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x3c2ac085, L:/127.0.0.1:49218 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7be5f2cc[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-19 15:41:00', NULL, '2023-05-19 15:41:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1128, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-22 22:36:36', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0fd86f41, L:/127.0.0.1:64191 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@4de75547[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-22 22:36:36', NULL, '2023-05-22 22:36:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1129, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-23 00:08:27', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x91f034eb, L:/127.0.0.1:64196 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@687bcd44[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-23 00:08:27', NULL, '2023-05-23 00:08:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1130, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-23 10:53:17', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf4ecb749, L:/127.0.0.1:64182 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@667c3ec[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-23 10:53:17', NULL, '2023-05-23 10:53:17', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1131, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-24 10:59:43', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x18f86808, L:/127.0.0.1:64195 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@530a7206[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-24 10:59:43', NULL, '2023-05-24 10:59:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1132, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-25 15:38:49', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf103c925, L:/127.0.0.1:64201 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7116562b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-25 15:38:49', NULL, '2023-05-25 15:38:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1133, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-25 15:38:49', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x166d1d2c, L:/127.0.0.1:64186 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@70fecfc9[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-25 15:38:49', NULL, '2023-05-25 15:38:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1134, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-25 15:38:49', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6aec0856.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$129a10aa.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4432a780, L:/127.0.0.1:64178 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6670fc36[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-25 15:38:49', NULL, '2023-05-25 15:38:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1135, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/statistics/user-summary', '{\"query\":{\"date[0]\":\"2023-05-19 00:00:00\",\"date[1]\":\"2023-05-25 23:59:59\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-26 13:42:34', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\n at co.yixiang.yshop.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)\n at com.sun.proxy.$Proxy305.getRequiredMpService(Unknown Source)\n at co.yixiang.yshop.module.mp.service.statistics.MpStatisticsServiceImpl.getUserSummary(MpStatisticsServiceImpl.java:35)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController.getUserSummary(MpStatisticsController.java:37)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$e921f8db.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor227.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$8222ddac.getUserSummary()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2023-05-26 13:42:34', NULL, '2023-05-26 13:42:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1136, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/statistics/interface-summary', '{\"query\":{\"date[0]\":\"2023-05-19 00:00:00\",\"date[1]\":\"2023-05-25 23:59:59\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-26 13:42:34', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\n at co.yixiang.yshop.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)\n at com.sun.proxy.$Proxy305.getRequiredMpService(Unknown Source)\n at co.yixiang.yshop.module.mp.service.statistics.MpStatisticsServiceImpl.getInterfaceSummary(MpStatisticsServiceImpl.java:68)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController.getInterfaceSummary(MpStatisticsController.java:64)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$e921f8db.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor227.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$8222ddac.getInterfaceSummary()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2023-05-26 13:42:34', NULL, '2023-05-26 13:42:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1137, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/statistics/user-cumulate', '{\"query\":{\"date[0]\":\"2023-05-19 00:00:00\",\"date[1]\":\"2023-05-25 23:59:59\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-26 13:42:34', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\n at co.yixiang.yshop.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)\n at com.sun.proxy.$Proxy305.getRequiredMpService(Unknown Source)\n at co.yixiang.yshop.module.mp.service.statistics.MpStatisticsServiceImpl.getUserCumulate(MpStatisticsServiceImpl.java:46)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController.getUserCumulate(MpStatisticsController.java:46)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$e921f8db.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor227.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$8222ddac.getUserCumulate()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2023-05-26 13:42:34', NULL, '2023-05-26 13:42:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1138, '', 1, 2, 'yshop-server', 'GET', '/admin-api/mp/statistics/upstream-message', '{\"query\":{\"date[0]\":\"2023-05-19 00:00:00\",\"date[1]\":\"2023-05-25 23:59:59\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-26 13:42:34', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(null) 的 WxMpService,请核实!\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\n at co.yixiang.yshop.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)\n at com.sun.proxy.$Proxy305.getRequiredMpService(Unknown Source)\n at co.yixiang.yshop.module.mp.service.statistics.MpStatisticsServiceImpl.getUpstreamMessage(MpStatisticsServiceImpl.java:57)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController.getUpstreamMessage(MpStatisticsController.java:55)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$e921f8db.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor227.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$8222ddac.getUpstreamMessage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2023-05-26 13:42:34', NULL, '2023-05-26 13:42:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1139, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-27 11:54:46', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$57d90288.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$240a6f18.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x5c36fed5, L:/127.0.0.1:53139 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@b053a58[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-27 11:54:46', NULL, '2023-05-27 11:54:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1140, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-27 11:54:46', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$57d90288.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$240a6f18.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf1e7d70d, L:/127.0.0.1:53151 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6e6332c4[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-27 11:54:46', NULL, '2023-05-27 11:54:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1141, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-27 20:10:07', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$57936cf7.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$b48780a3.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x4352dc12, L:/127.0.0.1:59036 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1cdaf13b[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 20:10:07', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1142, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-27 20:10:07', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$57936cf7.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$b48780a3.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf5d9d6f3, L:/127.0.0.1:59015 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@57e7de1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 20:10:07', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1143, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-27 20:10:07', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$57936cf7.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$b48780a3.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x266bc858, L:/127.0.0.1:59028 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@15df9cae[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 20:10:07', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1144, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/info/0', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-29 11:03:59', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0', 'ParseException: Encountered unexpected token: \"IN\" \"IN\"\n at line 1, column 119.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"CONNECT\"\n \"EMIT\"\n \"GROUP\"\n \"HAVING\"\n \"START\"\n \"[\"\n \"^\"\n \"|\"\n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectBatchIds(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductrule.StoreProductRuleServiceImpl.getStoreProductRuleList(StoreProductRuleServiceImpl.java:69)\n at co.yixiang.yshop.module.product.service.storeproductrule.StoreProductRuleServiceImpl$$FastClassBySpringCGLIB$$fd1f8e8b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductrule.StoreProductRuleServiceImpl$$EnhancerBySpringCGLIB$$e4f33833.getStoreProductRuleList()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.info(StoreProductController.java:127)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor157.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$fa3f755d.info()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor147.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 167 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT id,rule_name,rule_value,create_time,update_time,creator,updater,deleted FROM yshop_store_product_rule WHERE id IN ( ) AND deleted=0\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 173 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \"IN\" \"IN\"\n at line 1, column 119.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"CONNECT\"\n \"EMIT\"\n \"GROUP\"\n \"HAVING\"\n \"START\"\n \"[\"\n \"^\"\n \"|\"\n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 185 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-05-29 11:03:59', NULL, '2023-05-29 11:03:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1145, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"1\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"1\\\",\\\"unit_name\\\":\\\"\\\",\\\"store_info\\\":\\\"\\\",\\\"image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\"],\\\"slider_image\\\":[],\\\"description\\\":\\\"\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"01\\\",\\\"otPrice\\\":0,\\\"stock\\\":0,\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"\\\",\\\"price\\\":2,\\\"cost\\\":0,\\\"ot_price\\\":0,\\\"stock\\\":0,\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-29 18:12:53', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-05-29 18:12:53', NULL, '2023-05-29 18:12:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1146, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"1\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"1\\\",\\\"unit_name\\\":\\\"\\\",\\\"store_info\\\":\\\"\\\",\\\"image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\"],\\\"slider_image\\\":[],\\\"description\\\":\\\"\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"01\\\",\\\"otPrice\\\":0,\\\"stock\\\":0,\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"\\\",\\\"price\\\":2,\\\"cost\\\":0,\\\"ot_price\\\":0,\\\"stock\\\":0,\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-29 18:19:15', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 118] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"image\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-05-29 18:19:15', NULL, '2023-05-29 18:19:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1147, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"1\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"133\\\",\\\"unit_name\\\":\\\"1\\\",\\\"store_info\\\":\\\"222\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"slider_image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\"],\\\"description\\\":\\\"

3333

\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"1\\\",\\\"otPrice\\\":0,\\\"stock\\\":0,\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"price\\\":2,\\\"cost\\\":\\\"2\\\",\\\"ot_price\\\":\\\"3\\\",\\\"stock\\\":\\\"3\\\",\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":\\\"3\\\",\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 09:50:37', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)', 'ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 43.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getOne(ServiceImpl.java:202)\n at com.baomidou.mybatisplus.extension.service.IService.getOne(IService.java:320)\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueServiceImpl$$EnhancerBySpringCGLIB$$32fe9c72.getOne()\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl.insertYxStoreProductAttr(StoreProductAttrServiceImpl.java:139)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$FastClassBySpringCGLIB$$fa2441eb.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$EnhancerBySpringCGLIB$$13c3130a.insertYxStoreProductAttr()\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:463)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$ec2e3bca.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:58)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor163.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$e9936e76.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor145.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 204 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 210 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 43.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 222 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-05-30 09:50:37', NULL, '2023-05-30 09:50:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1148, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"1\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"133\\\",\\\"unit_name\\\":\\\"1\\\",\\\"store_info\\\":\\\"222\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"slider_image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\"],\\\"description\\\":\\\"

3333

\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"1\\\",\\\"otPrice\\\":0,\\\"stock\\\":0,\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"price\\\":2,\\\"cost\\\":\\\"2\\\",\\\"ot_price\\\":\\\"3\\\",\\\"stock\\\":\\\"3\\\",\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":\\\"3\\\",\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 09:54:48', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted FROM yshop_store_product_attr_value WHERE deleted=0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted FROM yshop_store_product_attr_value WHERE deleted=0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getOne(ServiceImpl.java:202)\n at com.baomidou.mybatisplus.extension.service.IService.getOne(IService.java:320)\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueServiceImpl$$EnhancerBySpringCGLIB$$32fe9c72.getOne()\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl.insertYxStoreProductAttr(StoreProductAttrServiceImpl.java:139)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$FastClassBySpringCGLIB$$fa2441eb.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$EnhancerBySpringCGLIB$$13c3130a.insertYxStoreProductAttr()\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:463)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$ec2e3bca.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:58)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor163.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$e9936e76.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor145.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 204 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-05-30 09:54:48', NULL, '2023-05-30 09:54:48', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1149, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"2\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"2\\\",\\\"unit_name\\\":\\\"2\\\",\\\"store_info\\\":\\\"44555\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"slider_image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\"],\\\"description\\\":\\\"

455555

\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"2\\\",\\\"otPrice\\\":0,\\\"stock\\\":\\\"2\\\",\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"\\\",\\\"price\\\":2,\\\"cost\\\":0,\\\"ot_price\\\":\\\"3\\\",\\\"stock\\\":\\\"3\\\",\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 10:16:32', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted FROM yshop_store_product_attr_value WHERE deleted=0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted FROM yshop_store_product_attr_value WHERE deleted=0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getOne(ServiceImpl.java:202)\n at com.baomidou.mybatisplus.extension.service.IService.getOne(IService.java:320)\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueServiceImpl$$EnhancerBySpringCGLIB$$32fe9c72.getOne()\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl.insertYxStoreProductAttr(StoreProductAttrServiceImpl.java:139)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$FastClassBySpringCGLIB$$fa2441eb.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$EnhancerBySpringCGLIB$$13c3130a.insertYxStoreProductAttr()\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:463)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$ec2e3bca.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:58)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor163.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$e9936e76.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor145.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 204 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-05-30 10:16:32', NULL, '2023-05-30 10:16:32', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1150, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"2\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"2\\\",\\\"unit_name\\\":\\\"2\\\",\\\"store_info\\\":\\\"44555\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"slider_image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\"],\\\"description\\\":\\\"

455555

\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"2\\\",\\\"otPrice\\\":0,\\\"stock\\\":\\\"2\\\",\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"\\\",\\\"price\\\":2,\\\"cost\\\":0,\\\"ot_price\\\":\\\"3\\\",\\\"stock\\\":\\\"3\\\",\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 10:34:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)', 'ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 43.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getOne(ServiceImpl.java:202)\n at com.baomidou.mybatisplus.extension.service.IService.getOne(IService.java:320)\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueServiceImpl$$EnhancerBySpringCGLIB$$530f7655.getOne()\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl.insertYxStoreProductAttr(StoreProductAttrServiceImpl.java:139)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$FastClassBySpringCGLIB$$fa2441eb.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$EnhancerBySpringCGLIB$$33d3eced.insertYxStoreProductAttr()\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:466)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$c3f15ad.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:58)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$21caa1d4.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 210 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,product_id,sku,stock,sales,price,image,unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,pink_stock,seckill_price,seckill_stock,integral,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_attr_value \n\n WHERE deleted=0\n\nAND (sku = ? AND product_id = ?)\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 217 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 43.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 229 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-05-30 10:34:53', NULL, '2023-05-30 10:34:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1151, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"imageArr\\\":[],\\\"sliderImageArr\\\":[],\\\"store_name\\\":\\\"2\\\",\\\"cate_id\\\":2,\\\"keyword\\\":\\\"2\\\",\\\"unit_name\\\":\\\"2\\\",\\\"store_info\\\":\\\"44555\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"slider_image\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\"],\\\"description\\\":\\\"

455555

\\\",\\\"ficti\\\":0,\\\"give_integral\\\":0,\\\"sort\\\":0,\\\"is_show\\\":1,\\\"price\\\":\\\"2\\\",\\\"otPrice\\\":0,\\\"stock\\\":\\\"2\\\",\\\"is_new\\\":0,\\\"postage\\\":0,\\\"is_postage\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"id\\\":0,\\\"spec_type\\\":0,\\\"temp_id\\\":\\\"\\\",\\\"attrs\\\":[{\\\"imageArr\\\":[],\\\"pic\\\":\\\"\\\",\\\"price\\\":2,\\\"cost\\\":0,\\\"ot_price\\\":\\\"3\\\",\\\"stock\\\":\\\"3\\\",\\\"seckill_stock\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"pink_price\\\":0,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"integral\\\":0}],\\\"items\\\":[],\\\"header\\\":[],\\\"selectRule\\\":\\\"\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 10:37:47', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, product_id, sku, stock, sales, price, image, `unique`, cost, bar_code, ot_price, weight, volume, brokerage, brokerage_two, pink_price, pink_stock, seckill_price, seckill_stock, integral, create_time, update_time, creator, updater, deleted FROM yshop_store_product_attr_value WHERE deleted = 0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductAttrValueMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, product_id, sku, stock, sales, price, image, `unique`, cost, bar_code, ot_price, weight, volume, brokerage, brokerage_two, pink_price, pink_stock, seckill_price, seckill_stock, integral, create_time, update_time, creator, updater, deleted FROM yshop_store_product_attr_value WHERE deleted = 0 AND (sku = ? AND product_id = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getOne(ServiceImpl.java:202)\n at com.baomidou.mybatisplus.extension.service.IService.getOne(IService.java:320)\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueServiceImpl$$EnhancerBySpringCGLIB$$530f7655.getOne()\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl.insertYxStoreProductAttr(StoreProductAttrServiceImpl.java:139)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$FastClassBySpringCGLIB$$fa2441eb.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductattr.StoreProductAttrServiceImpl$$EnhancerBySpringCGLIB$$33d3eced.insertYxStoreProductAttr()\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:466)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$c3f15ad.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:58)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$ff0ddf4e.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor113.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-05-30 10:37:47', NULL, '2023-05-30 10:37:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1152, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 18:18:59', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.StoreProductRespVO.setIsPostage(Ljava/lang/Byte;)Lco/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.StoreProductRespVO.setIsPostage(Ljava/lang/Byte;)Lco/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.StoreProductRespVO.setIsPostage(Ljava/lang/Byte;)Lco/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.StoreProductRespVO.setIsPostage(Ljava/lang/Byte;)Lco/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO;\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convert(StoreProductConvertImpl.java:131)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertList(StoreProductConvertImpl.java:146)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertPage(StoreProductConvertImpl.java:160)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:102)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$180e999c.getStoreProductPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-30 18:18:59', NULL, '2023-05-30 18:18:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1153, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 18:21:31', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convert(StoreProductConvertImpl.java:131)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertList(StoreProductConvertImpl.java:146)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertPage(StoreProductConvertImpl.java:160)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:102)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$96b49335.getStoreProductPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-30 18:21:31', NULL, '2023-05-30 18:21:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1154, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 18:24:30', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convert(StoreProductConvertImpl.java:131)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertList(StoreProductConvertImpl.java:146)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertPage(StoreProductConvertImpl.java:160)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:102)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$44d37110.getStoreProductPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-30 18:24:30', NULL, '2023-05-30 18:24:30', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1155, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-05-30 18:28:43', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO.getIsPostage()Ljava/lang/Byte;\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convert(StoreProductConvertImpl.java:131)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertList(StoreProductConvertImpl.java:146)\n at co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvertImpl.convertPage(StoreProductConvertImpl.java:160)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:102)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$d7ef7e75.getStoreProductPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-05-30 18:28:43', NULL, '2023-05-30 18:28:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1156, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-01 13:41:16', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$bd5898d7.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2dccf0d.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x47578ee1, L:/127.0.0.1:62826 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@14efba71[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-01 13:41:16', NULL, '2023-06-01 13:41:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1157, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-01 15:46:46', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$37a052be.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2dccf0d.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x03b7dafc, L:/127.0.0.1:63055 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@2a083961[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-01 15:46:46', NULL, '2023-06-01 15:46:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1158, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 09:49:12', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:119)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$3a838a34.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor156.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$6c78dc28.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'getStoreProductPage', 119, 0, NULL, 0, NULL, '2023-06-02 09:49:12', NULL, '2023-06-02 09:49:12', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1159, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 09:50:38', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:119)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$3a838a34.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor156.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$6c78dc28.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'getStoreProductPage', 119, 0, NULL, 0, NULL, '2023-06-02 09:50:38', NULL, '2023-06-02 09:50:38', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1160, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 09:51:17', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:119)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$3a838a34.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor156.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$6c78dc28.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'getStoreProductPage', 119, 0, NULL, 0, NULL, '2023-06-02 09:51:17', NULL, '2023-06-02 09:51:17', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1161, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 09:56:14', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:120)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$3a838a34.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$81d75c5a.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'getStoreProductPage', 120, 0, NULL, 0, NULL, '2023-06-02 09:56:14', NULL, '2023-06-02 09:56:14', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1162, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 09:58:45', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:120)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$de13dc11.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$afd6fe35.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'getStoreProductPage', 120, 0, NULL, 0, NULL, '2023-06-02 09:58:45', NULL, '2023-06-02 09:58:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1163, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product/page', '{\"query\":{\"pageNo\":\"1\",\"cateId\":\"0\",\"pageSize\":\"10\",\"stock\":\"1\",\"isShow\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 10:07:51', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.dal.mysql.storeproduct.StoreProductMapper.selectPage(StoreProductMapper.java:39)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy325.selectPage(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.getStoreProductPage(StoreProductServiceImpl.java:131)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$3a838a34.getStoreProductPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.getStoreProductPage(StoreProductController.java:101)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$8e15441f.getStoreProductPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.dal.mysql.storeproduct.StoreProductMapper', 'StoreProductMapper.java', 'selectPage', 39, 0, NULL, 0, NULL, '2023-06-02 10:07:51', NULL, '2023-06-02 10:07:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1164, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 11:19:45', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9275b362.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2dccf0d.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xa7d9eff7, L:/127.0.0.1:60975 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@283bfda[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-02 11:19:45', NULL, '2023-06-02 11:19:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1165, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 13:51:58', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9275b362.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2dccf0d.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x387c8852, L:/127.0.0.1:60996 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@9f88658[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-02 13:51:58', NULL, '2023-06-02 13:51:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1166, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-02 15:56:00', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9275b362.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2dccf0d.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x0483949a, L:/127.0.0.1:60988 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@38a38cf0[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-02 15:56:00', NULL, '2023-06-02 15:56:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1167, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/shipping-templates/create/37', '{\"query\":{},\"body\":\"{\\\"appoint_info\\\":[],\\\"region_info\\\":[{\\\"region\\\":[{\\\"name\\\":\\\"默认全国\\\",\\\"city_id\\\":0}],\\\"regionName\\\":\\\"默认全国\\\",\\\"first\\\":1,\\\"price\\\":0,\\\"_continue\\\":1,\\\"continue_price\\\":0},{\\\"region\\\":[{\\\"name\\\":\\\"辽宁省\\\",\\\"city_id\\\":210000,\\\"children\\\":[{\\\"city_id\\\":210100},{\\\"city_id\\\":210200},{\\\"city_id\\\":210300},{\\\"city_id\\\":210400},{\\\"city_id\\\":210500},{\\\"city_id\\\":210600},{\\\"city_id\\\":210700},{\\\"city_id\\\":210800},{\\\"city_id\\\":210900},{\\\"city_id\\\":211000},{\\\"city_id\\\":211100},{\\\"city_id\\\":211200},{\\\"city_id\\\":211300},{\\\"city_id\\\":211400}]}],\\\"regionName\\\":\\\"辽宁省\\\",\\\"first\\\":1,\\\"price\\\":0,\\\"_continue\\\":1,\\\"continue_price\\\":0}],\\\"sort\\\":1,\\\"type\\\":true,\\\"name\\\":\\\"指定区域收费\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-06 12:30:41', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:810)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:531)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:506)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-06-06 12:30:41', NULL, '2023-06-06 12:30:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1168, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/shipping-templates/create/37', '{\"query\":{},\"body\":\"{\\\"appoint_info\\\":[],\\\"region_info\\\":[{\\\"region\\\":[{\\\"name\\\":\\\"默认全国\\\",\\\"city_id\\\":0}],\\\"regionName\\\":\\\"默认全国\\\",\\\"first\\\":1,\\\"price\\\":0,\\\"_continue\\\":1,\\\"continue_price\\\":0},{\\\"region\\\":[{\\\"name\\\":\\\"辽宁省\\\",\\\"city_id\\\":210000,\\\"children\\\":[{\\\"city_id\\\":210100},{\\\"city_id\\\":210200},{\\\"city_id\\\":210300},{\\\"city_id\\\":210400},{\\\"city_id\\\":210500},{\\\"city_id\\\":210600},{\\\"city_id\\\":210700},{\\\"city_id\\\":210800},{\\\"city_id\\\":210900},{\\\"city_id\\\":211000},{\\\"city_id\\\":211100},{\\\"city_id\\\":211200},{\\\"city_id\\\":211300},{\\\"city_id\\\":211400}]}],\\\"regionName\\\":\\\"辽宁省\\\",\\\"first\\\":1,\\\"price\\\":0,\\\"_continue\\\":1,\\\"continue_price\\\":0}],\\\"sort\\\":1,\\\"type\\\":true,\\\"name\\\":\\\"指定区域收费\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-06 12:31:11', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Boolean value (token `JsonToken.VALUE_TRUE`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 590] (through reference chain: co.yixiang.yshop.module.product.service.shippingtemplates.dto.ShippingTemplatesDto[\"type\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:810)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:531)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:506)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-06-06 12:31:11', NULL, '2023-06-06 12:31:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1169, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/shipping-templates/get', '{\"query\":{\"id\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-06 12:37:08', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.shippingtemplates.ShippingTemplatesDO.getType()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.shippingtemplates.ShippingTemplatesDO.getType()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.shippingtemplates.ShippingTemplatesDO.getType()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.product.dal.dataobject.shippingtemplates.ShippingTemplatesDO.getType()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.product.convert.shippingtemplates.ShippingTemplatesConvertImpl.convert(ShippingTemplatesConvertImpl.java:66)\n at co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.getShippingTemplates(ShippingTemplatesController.java:72)\n at co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController$$FastClassBySpringCGLIB$$88eb415e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController$$EnhancerBySpringCGLIB$$2b094f12.getShippingTemplates()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-06-06 12:37:08', NULL, '2023-06-06 12:37:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1170, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-06 19:11:11', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9bd434bc.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$de90dc9f.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xb82ba993, L:/127.0.0.1:60114 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@444b52d1[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-06 19:11:11', NULL, '2023-06-06 19:11:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1171, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-08 16:07:14', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$cd2fa1a0.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$fcd41b12.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf6a3536d, L:/127.0.0.1:56297 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@6fa7ea95[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-08 16:07:14', NULL, '2023-06-08 16:07:14', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1172, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-10 10:46:55', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$8174a62e.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ce3ea147.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x516e6c11, L:/127.0.0.1:53258 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@3fc6b970[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-10 10:46:55', NULL, '2023-06-10 10:46:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1173, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/weixin-mini-app-login', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:01:30', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthWeixinMiniAppLoginReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthWeixinMiniAppLoginReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthWeixinMiniAppLoginReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-10 15:01:31', NULL, '2023-06-10 15:01:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1174, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:12:22', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsLoginReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsLoginReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsLoginReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-10 15:12:22', NULL, '2023-06-10 15:12:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1175, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:17:22', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, nickname, avatar, status, mobile, password, register_ip, login_ip, login_date, username, real_name, birthday, card_id, mark, partner_id, group_id, add_ip, last_ip, now_money, brokerage_price, integral, sign_num, level, spread_uid, spread_time, user_type, is_promoter, pay_count, spread_count, addres, adminid, login_type, wx_profile, tenant_id, create_time, update_time, creator, updater, deleted FROM yshop_user WHERE deleted = 0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, nickname, avatar, status, mobile, password, register_ip, login_ip, login_date, username, real_name, birthday, card_id, mark, partner_id, group_id, add_ip, last_ip, now_money, brokerage_price, integral, sign_num, level, spread_uid, spread_time, user_type, is_promoter, pay_count, spread_count, addres, adminid, login_type, wx_profile, tenant_id, create_time, update_time, creator, updater, deleted FROM yshop_user WHERE deleted = 0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:38)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.selectByMobile(MemberUserMapper.java:22)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectByMobile(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUserIfAbsent(MemberUserServiceImpl.java:67)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$bedecb94.createUserIfAbsent()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:93)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor124.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy162.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor122.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor109.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 192 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-10 15:17:22', NULL, '2023-06-10 15:17:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1176, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:34:53', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:38)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.selectByMobile(MemberUserMapper.java:22)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectByMobile(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUserIfAbsent(MemberUserServiceImpl.java:67)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$bedecb94.createUserIfAbsent()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:93)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'register_ip\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor124.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy162.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor122.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor109.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 192 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-10 15:34:53', NULL, '2023-06-10 15:34:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1177, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:35:34', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:38)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.selectByMobile(MemberUserMapper.java:22)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectByMobile(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUserIfAbsent(MemberUserServiceImpl.java:67)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$bedecb94.createUserIfAbsent()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:93)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'login_ip\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor124.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy162.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor122.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor109.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 192 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-10 15:35:34', NULL, '2023-06-10 15:35:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1178, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:36:28', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,nickname,avatar,status,mobile,password,register_ip,login_ip,login_date,username,real_name,birthday,card_id,mark,partner_id,group_id,add_ip,last_ip,now_money,brokerage_price,integral,sign_num,level,spread_uid,spread_time,user_type,is_promoter,pay_count,spread_count,addres,adminid,login_type,wx_profile,tenant_id,create_time,update_time,creator,updater,deleted FROM yshop_user WHERE deleted=0 AND (mobile = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:172)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:38)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.selectByMobile(MemberUserMapper.java:22)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.selectByMobile(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUserIfAbsent(MemberUserServiceImpl.java:67)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$bedecb94.createUserIfAbsent()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:93)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'login_date\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor124.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy162.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor122.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor109.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 192 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-10 15:36:28', NULL, '2023-06-10 15:36:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1179, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:39:29', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user ( status, mobile, password, register_ip, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n; Field \'user_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'user_type\' doesn\'t have a default value', 'SQLException: Field \'user_type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user ( status, mobile, password, register_ip, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n; Field \'user_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy167.insert(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUser(MemberUserServiceImpl.java:84)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.createUserIfAbsent(MemberUserServiceImpl.java:72)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$bedecb94.createUserIfAbsent()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:93)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'user_type\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor124.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy162.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor327.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy160.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor227.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor227.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy159.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor408.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 177 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-06-10 15:39:29', NULL, '2023-06-10 15:39:29', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1180, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15136175246\\\",\\n \\\"code\\\": \\\"9999\\\",\\n \\\"socialType\\\": 10,\\n \\\"socialCode\\\": \\\"1024\\\",\\n \\\"socialState\\\": \\\"9b2ffbc1-7425-4155-9894-9d5c08541d62\\\",\\n \\\"socialCodeValid\\\": true\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 15:40:29', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.xkcoding.justauth.AuthRequestFactory.get(AuthRequestFactory.java:104)\n at co.yixiang.yshop.framework.social.core.YshopAuthRequestFactory.get(YshopAuthRequestFactory.java:52)\n at co.yixiang.yshop.module.system.service.social.SocialUserServiceImpl.getAuthUser(SocialUserServiceImpl.java:156)\n at co.yixiang.yshop.module.system.service.social.SocialUserServiceImpl.authSocialUser(SocialUserServiceImpl.java:69)\n at co.yixiang.yshop.module.system.service.social.SocialUserServiceImpl.bindSocialUser(SocialUserServiceImpl.java:103)\n at co.yixiang.yshop.module.system.service.social.SocialUserServiceImpl$$FastClassBySpringCGLIB$$109959c8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.service.social.SocialUserServiceImpl$$EnhancerBySpringCGLIB$$5e4fb282.bindSocialUser()\n at co.yixiang.yshop.module.system.api.social.SocialUserApiImpl.bindSocialUser(SocialUserApiImpl.java:30)\n at co.yixiang.yshop.module.system.api.social.SocialUserApiImpl$$FastClassBySpringCGLIB$$ddd3ede8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.api.social.SocialUserApiImpl$$EnhancerBySpringCGLIB$$75b4e5c2.bindSocialUser()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:98)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$3b82eff4.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:70)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor181.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$a1666855.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.xkcoding.justauth.AuthRequestFactory', 'AuthRequestFactory.java', 'get', 104, 0, NULL, 0, NULL, '2023-06-10 15:40:29', NULL, '2023-06-10 15:40:29', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1181, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/update-password', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-10 16:01:36', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.updatePassword(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.updatePassword(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.updatePassword(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-10 16:01:36', NULL, '2023-06-10 16:01:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1182, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-10 16:40:55', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$3d2199d0.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a4098664.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0x2e0759ea, L:/127.0.0.1:61738 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@7c475f02[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-10 16:40:55', NULL, '2023-06-10 16:40:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1183, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-10 20:18:55', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$3d2199d0.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a4098664.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xf0a514ad, L:/127.0.0.1:61739 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@1f9168[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-10 20:18:55', NULL, '2023-06-10 20:18:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1184, '', 0, 2, 'yshop-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-10 20:18:55', 'org.springframework.dao.InvalidDataAccessApiUsageException', 'InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'RedisException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]', 'org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]; nested exception is org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52)\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\n at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:735)\n at org.redisson.spring.data.connection.RedissonConnection.setEx(RedissonConnection.java:543)\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:1157)\n at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:337)\n at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:330)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\n at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:325)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.set(OAuth2AccessTokenRedisDAO.java:40)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$aa9c17a3.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$3d2199d0.set()\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:100)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a4098664.checkAccessToken()\n at co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:72)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:49)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.redisson.client.RedisException: ERR invalid expire time in setex. channel: [id: 0xbc247532, L:/127.0.0.1:61726 - R:127.0.0.1/127.0.0.1:6379] command: (SETEX), promise: java.util.concurrent.CompletableFuture@54cfd9cf[Not completed, 1 dependents], params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...], 0, [123, 34, 99, 114, 101, 97, 116, 101, 84, 105, ...]]\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)\n at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n ... 1 more\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 52, 0, NULL, 0, NULL, '2023-06-10 20:18:55', NULL, '2023-06-10 20:18:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1185, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-reply/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '2023-06-13 10:21:36', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC', 'ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 12.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy139.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy350.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy350.selectPage(Unknown Source)\n at co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.selectPage(StoreProductReplyMapper.java:21)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy350.selectPage(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl.getStoreProductReplyPage(StoreProductReplyServiceImpl.java:74)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$acbb2daf.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$7a16ea52.getStoreProductReplyPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController.getStoreProductReplyPage(StoreProductReplyController.java:86)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$FastClassBySpringCGLIB$$7d7773a0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor157.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$EnhancerBySpringCGLIB$$d711dde8.getStoreProductReplyPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor169.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 180 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,uid,oid,unique,product_id,reply_type,product_score,service_score,comment,pics,merchant_reply_content,merchant_reply_time,is_reply,create_time,update_time,creator,updater,deleted \n FROM yshop_store_product_reply \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy159.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 186 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 12.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 198 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-06-13 10:21:37', NULL, '2023-06-13 10:21:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1186, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/products', '{\"query\":{\"news\":\"\",\"current\":\"\",\"isIntegral\":\"\",\"size\":\"\",\"limit\":\"\",\"page\":\"\",\"keyword\":\"\",\"type\":\"\",\"sid\":\"\"},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-13 15:00:19', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl.getGoodsList(AppStoreProductServiceImpl.java:141)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$FastClassBySpringCGLIB$$ea804d82.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$EnhancerBySpringCGLIB$$2dc7768e.getGoodsList()\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.goodsList(AppStoreProductController.java:76)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$3604a5e5.goodsList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl', 'AppStoreProductServiceImpl.java', 'getGoodsList', 141, 0, NULL, 0, NULL, '2023-06-13 15:00:19', NULL, '2023-06-13 15:00:19', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1187, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/detail/15', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 09:34:19', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.detail(AppStoreProductController.java:100)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$795d7228.detail()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController', 'AppStoreProductController.java', 'detail', 100, 0, NULL, 0, NULL, '2023-06-14 09:34:19', NULL, '2023-06-14 09:34:19', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1188, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/detail/15', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 09:40:15', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.detail(AppStoreProductController.java:102)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$abd77ac2.detail()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController', 'AppStoreProductController.java', 'detail', 102, 0, NULL, 0, NULL, '2023-06-14 09:40:15', NULL, '2023-06-14 09:40:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1189, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/detail/15', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 09:43:42', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.getReply-Inline\n### The error occurred while setting parameters\n### SQL: SELECT A.product_score AS productScore, A.service_score AS serviceScore, A.comment, A.merchant_reply_content AS merchantReplyContent, A.merchant_reply_time AS merchantReplyTime, A.pics AS pictures, A.create_Time AS createTime, B.nickname, B.avatar, C.cart_info AS cartInfo FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.uid LEFT JOIN yshop_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.product_id = ? AND A.is_del = 0 ORDER BY A.create_Time DESC LIMIT 1\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.getReply-Inline\n### The error occurred while setting parameters\n### SQL: SELECT A.product_score AS productScore, A.service_score AS serviceScore, A.comment, A.merchant_reply_content AS merchantReplyContent, A.merchant_reply_time AS merchantReplyTime, A.pics AS pictures, A.create_Time AS createTime, B.nickname, B.avatar, C.cart_info AS cartInfo FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.uid LEFT JOIN yshop_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.product_id = ? AND A.is_del = 0 ORDER BY A.create_Time DESC LIMIT 1\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy140.selectOne(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy351.getReply(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl.getReply(AppStoreProductReplyServiceImpl.java:68)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$19bba184.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$ccab3743.getReply()\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl.goodsDetail(AppStoreProductServiceImpl.java:189)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$FastClassBySpringCGLIB$$ea804d82.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$EnhancerBySpringCGLIB$$320da9fd.goodsDetail()\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.detail(AppStoreProductController.java:107)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$518eb5a.detail()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'A.is_del\' in \'where clause\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy163.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor107.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 175 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-14 09:43:42', NULL, '2023-06-14 09:43:42', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1190, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/detail/15', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 10:34:37', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.getReply-Inline\n### The error occurred while setting parameters\n### SQL: SELECT A.product_score AS productScore, A.service_score AS serviceScore, A.comment, A.merchant_reply_content AS merchantReplyContent, A.merchant_reply_time AS merchantReplyTime, A.pics AS pictures, A.create_Time AS createTime, B.nickname, B.avatar, C.cart_info AS cartInfo FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.uid LEFT JOIN yshop_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.product_id = ? AND A.deleted = 0 ORDER BY A.create_Time DESC LIMIT 1\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'', 'SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.getReply-Inline\n### The error occurred while setting parameters\n### SQL: SELECT A.product_score AS productScore, A.service_score AS serviceScore, A.comment, A.merchant_reply_content AS merchantReplyContent, A.merchant_reply_time AS merchantReplyTime, A.pics AS pictures, A.create_Time AS createTime, B.nickname, B.avatar, C.cart_info AS cartInfo FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.uid LEFT JOIN yshop_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.product_id = ? AND A.deleted = 0 ORDER BY A.create_Time DESC LIMIT 1\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy140.selectOne(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy351.getReply(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl.getReply(AppStoreProductReplyServiceImpl.java:68)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$19bba184.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$fffde48f.getReply()\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl.goodsDetail(AppStoreProductServiceImpl.java:189)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$FastClassBySpringCGLIB$$ea804d82.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$EnhancerBySpringCGLIB$$65605749.goodsDetail()\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.detail(AppStoreProductController.java:107)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor156.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$8477884e.detail()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'B.uid\' in \'on clause\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor116.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy163.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor108.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)\n at sun.reflect.GeneratedMethodAccessor157.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 174 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-14 10:34:37', NULL, '2023-06-14 10:34:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1191, '', 0, 1, 'yshop-server', 'GET', '/app-api/product/detail/15', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 10:46:05', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl.goodsDetail(AppStoreProductServiceImpl.java:198)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$FastClassBySpringCGLIB$$ea804d82.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl$$EnhancerBySpringCGLIB$$f0dfaf20.goodsDetail()\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController.detail(AppStoreProductController.java:107)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$FastClassBySpringCGLIB$$bc62238.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.app.product.AppStoreProductController$$EnhancerBySpringCGLIB$$4a13d0ff.detail()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductServiceImpl', 'AppStoreProductServiceImpl.java', 'goodsDetail', 198, 0, NULL, 0, NULL, '2023-06-14 10:46:05', NULL, '2023-06-14 10:46:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1192, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\n \\\"code\\\": \\\"9999\\\",\\n \\\"mobile\\\": \\\"15136175246\\\",\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-14 11:08:36', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 4, column: 2]', 'JsonParseException: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 4, column: 2]', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 4, column: 2]\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'}\' (code 125)): was expecting double-quote to start field name\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 4, column: 2]\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735)\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:659)\n at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleOddName(UTF8StreamJsonParser.java:2096)\n at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parseName(UTF8StreamJsonParser.java:1746)\n at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1075)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:399)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-06-14 11:08:36', NULL, '2023-06-14 11:08:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1193, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/send-sms-code', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-15 11:25:21', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.sendSmsCode(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsSendReqVO)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.sendSmsCode(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsSendReqVO)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.sendSmsCode(co.yixiang.yshop.module.member.controller.app.auth.vo.AppAuthSmsSendReqVO)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-15 11:25:22', NULL, '2023-06-15 11:25:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1194, '', 2, 1, 'yshop-server', 'GET', '/app-api/cart/count', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-17 21:29:50', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/cart/dal/mysql/storecart/StoreCartMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.cart.dal.mysql.storecart.StoreCartMapper.cartSum-Inline\n### The error occurred while setting parameters\n### SQL: SELECT IFNULL(sum(cart_num), 0) FROM yx_store_cart WHERE is_pay = 0 AND deleted = 0 AND is_new = 0 AND uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/cart/dal/mysql/storecart/StoreCartMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.cart.dal.mysql.storecart.StoreCartMapper.cartSum-Inline\n### The error occurred while setting parameters\n### SQL: SELECT IFNULL(sum(cart_num), 0) FROM yx_store_cart WHERE is_pay = 0 AND deleted = 0 AND is_new = 0 AND uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy140.selectOne(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy361.cartSum(Unknown Source)\n at co.yixiang.yshop.module.cart.service.storecart.AppStoreCartServiceImpl.getUserCartNum(AppStoreCartServiceImpl.java:62)\n at co.yixiang.yshop.module.cart.service.storecart.AppStoreCartServiceImpl$$FastClassBySpringCGLIB$$ccd8c74d.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.cart.service.storecart.AppStoreCartServiceImpl$$EnhancerBySpringCGLIB$$529d6f9b.getUserCartNum()\n at co.yixiang.yshop.module.cart.controller.app.cart.AppCartController.count(AppCartController.java:57)\n at co.yixiang.yshop.module.cart.controller.app.cart.AppCartController$$FastClassBySpringCGLIB$$50eec2ec.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.cart.controller.app.cart.AppCartController$$EnhancerBySpringCGLIB$$2e091f76.count()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_cart\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor116.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy163.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor108.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 175 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-17 21:29:50', NULL, '2023-06-17 21:29:50', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1195, '', 0, 1, 'yshop-server', 'POST', '/app-api/cart/num', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-17 21:45:52', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.cart.controller.app.cart.AppCartController.cartNum(co.yixiang.yshop.module.cart.controller.app.cart.param.AppCartNumParam)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.cart.controller.app.cart.AppCartController.cartNum(co.yixiang.yshop.module.cart.controller.app.cart.param.AppCartNumParam)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.cart.controller.app.cart.AppCartController.cartNum(co.yixiang.yshop.module.cart.controller.app.cart.param.AppCartNumParam)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-17 21:45:52', NULL, '2023-06-17 21:45:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1196, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-17 22:32:47', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC', 'ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 453.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy364.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy364.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:21)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy364.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:74)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$6e5a34fd.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$edc02cb5.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 181 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,gain_integral,use_integral,pay_integral,back_integral,mark,unique,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,create_time,update_time,creator,updater,deleted \n FROM yshop_store_order \n\n WHERE deleted=0\n\n\n ORDER BY id DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy160.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 188 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 453.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 201 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-06-17 22:32:47', NULL, '2023-06-17 22:32:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1197, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/computed/5b9076e27f194ef588b0122b97165e53', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"payType\\\": \\\"\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-27 18:41:24', 'org.springframework.http.converter.HttpMessageConversionException', 'HttpMessageConversionException: Type definition error: [simple type, class co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]', 'InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]', 'org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:388)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]\n at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)\n at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1904)\n at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)\n at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1349)\n at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1415)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:352)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 388, 0, NULL, 0, NULL, '2023-06-27 18:41:24', NULL, '2023-06-27 18:41:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1198, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/computed/5b9076e27f194ef588b0122b97165e53', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"payType\\\": \\\"\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-27 18:49:27', 'org.springframework.http.converter.HttpMessageConversionException', 'HttpMessageConversionException: Type definition error: [simple type, class co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]', 'InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]', 'org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:388)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 5]\n at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)\n at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1904)\n at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)\n at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1349)\n at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1415)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:352)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 388, 0, NULL, 0, NULL, '2023-06-27 18:49:27', NULL, '2023-06-27 18:49:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1199, '', 0, 1, 'yshop-server', 'POST', '/app-api/order/confirm', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 11:45:35', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-28 11:45:35', NULL, '2023-06-28 11:45:35', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1200, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/3c7cf5fdf8834b149179a1b65b1d8455', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 12:01:56', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"\"', 'NumberFormatException: For input string: \"\"', 'java.lang.NumberFormatException: For input string: \"\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:592)\n at java.lang.Integer.valueOf(Integer.java:766)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:408)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$81763f5e.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor258.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$c54afe63.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-06-28 12:01:56', NULL, '2023-06-28 12:01:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1201, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/ee63479573604ac899d1396dff83488b', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 15:43:25', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"\"', 'NumberFormatException: For input string: \"\"', 'java.lang.NumberFormatException: For input string: \"\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Long.parseLong(Long.java:601)\n at java.lang.Long.valueOf(Long.java:803)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:423)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$af8f6287.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$9cfe604b.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-06-28 15:43:25', NULL, '2023-06-28 15:43:25', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1202, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/ee63479573604ac899d1396dff83488b', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 15:49:16', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, gain_integral, use_integral, back_integral, mark, `unique`, cost, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n; Field \'pay_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value', 'SQLException: Field \'pay_type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, gain_integral, use_integral, back_integral, mark, `unique`, cost, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n; Field \'pay_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:444)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9a67c3ab.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$18c06a6f.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'pay_type\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 182 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-06-28 15:49:16', NULL, '2023-06-28 15:49:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1203, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/ee31df7d23bc49b899390e8ec71d8a2c', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 16:03:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: co.yixiang.yshop.module.order.dal.mysql.storeordercartinfo.StoreOrderCartInfoMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6\n; bad SQL grammar []; nested exception is java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6', 'org.springframework.jdbc.BadSqlGrammarException: co.yixiang.yshop.module.order.dal.mysql.storeordercartinfo.StoreOrderCartInfoMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6\n; bad SQL grammar []; nested exception is java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:192)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:217)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.executeBatch(ServiceImpl.java:240)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveBatch(ServiceImpl.java:136)\n at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:73)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl.saveCartInfo(StoreOrderCartInfoServiceImpl.java:49)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl$$FastClassBySpringCGLIB$$2a9a968c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl$$EnhancerBySpringCGLIB$$ae1ba7ff.saveCartInfo()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:457)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$dd48c8e4.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$66156a79.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)\n at com.mysql.cj.util.Util.getInstance(Util.java:167)\n at com.mysql.cj.util.Util.getInstance(Util.java:174)\n at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)\n at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3101)\n at com.alibaba.druid.filter.FilterAdapter.statement_executeBatch(FilterAdapter.java:2506)\n at com.alibaba.druid.filter.FilterEventAdapter.statement_executeBatch(FilterEventAdapter.java:273)\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3099)\n at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeBatch(StatementProxyImpl.java:196)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeBatch(DruidPooledPreparedStatement.java:551)\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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:78)\n at com.sun.proxy.$Proxy164.executeBatch(Unknown Source)\n at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:123)\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:129)\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:122)\n at org.apache.ibatis.executor.CachingExecutor.flushStatements(CachingExecutor.java:114)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.flushStatements(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.flushStatements(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:249)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.lambda$executeBatch$1(SqlHelper.java:224)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:182)\n ... 195 more\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,\nis_after_sales,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \' at line 6\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)\n ... 228 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 16:03:31', NULL, '2023-06-28 16:03:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1204, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/ee31df7d23bc49b899390e8ec71d8a2c', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 16:07:37', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: co.yixiang.yshop.module.order.dal.mysql.storeordercartinfo.StoreOrderCartInfoMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.BatchUpdateException: Unknown column \'create_time\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: co.yixiang.yshop.module.order.dal.mysql.storeordercartinfo.StoreOrderCartInfoMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.BatchUpdateException: Unknown column \'create_time\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:192)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:217)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.executeBatch(ServiceImpl.java:240)\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveBatch(ServiceImpl.java:136)\n at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:73)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl.saveCartInfo(StoreOrderCartInfoServiceImpl.java:49)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl$$FastClassBySpringCGLIB$$2a9a968c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeordercartinfo.StoreOrderCartInfoServiceImpl$$EnhancerBySpringCGLIB$$f7eb48f0.saveCartInfo()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:457)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$271869d5.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$5d13036e.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.BatchUpdateException: Unknown column \'create_time\' in \'field list\'\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)\n at com.mysql.cj.util.Util.getInstance(Util.java:167)\n at com.mysql.cj.util.Util.getInstance(Util.java:174)\n at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)\n at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3101)\n at com.alibaba.druid.filter.FilterAdapter.statement_executeBatch(FilterAdapter.java:2506)\n at com.alibaba.druid.filter.FilterEventAdapter.statement_executeBatch(FilterEventAdapter.java:273)\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3099)\n at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeBatch(StatementProxyImpl.java:196)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeBatch(DruidPooledPreparedStatement.java:551)\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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:78)\n at com.sun.proxy.$Proxy164.executeBatch(Unknown Source)\n at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:123)\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:129)\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:122)\n at org.apache.ibatis.executor.CachingExecutor.flushStatements(CachingExecutor.java:114)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.flushStatements(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.flushStatements(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:249)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.lambda$executeBatch$1(SqlHelper.java:224)\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:182)\n ... 195 more\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)\n ... 228 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 16:07:37', NULL, '2023-06-28 16:07:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1205, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create/ee31df7d23bc49b899390e8ec71d8a2c', '{\"query\":{},\"body\":\"{\\n \\\"addressId\\\": \\\"36\\\",\\n \\\"bargainId\\\": \\\"\\\",\\n \\\"combinationId\\\": \\\"\\\",\\n \\\"couponId\\\": \\\"\\\",\\n \\\"from\\\": \\\"yue\\\",\\n \\\"isChannel\\\": \\\"\\\",\\n \\\"mark\\\": \\\"commodo reprehenderit\\\",\\n \\\"pinkId\\\": \\\"\\\",\\n \\\"seckillId\\\": \\\"\\\",\\n \\\"shippingType\\\": \\\"\\\",\\n \\\"useIntegral\\\": \\\"\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 16:09:52', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorderstatus.StoreOrderStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order_status ( oid, change_type, change_message, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorderstatus.StoreOrderStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order_status ( oid, change_type, change_message, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy366.insert(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorderstatus.StoreOrderStatusServiceImpl.create(StoreOrderStatusServiceImpl.java:37)\n at co.yixiang.yshop.module.order.service.storeorderstatus.StoreOrderStatusServiceImpl$$FastClassBySpringCGLIB$$e0d003ec.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorderstatus.StoreOrderStatusServiceImpl$$EnhancerBySpringCGLIB$$b72aed10.create()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:469)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$271869d5.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:105)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$5d13036e.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor116.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 197 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 16:09:52', NULL, '2023-06-28 16:09:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1206, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"h5\\\",\\n \\\"paytype\\\": \\\"yue\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 16:27:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.decPrice-Inline\n### The error occurred while setting parameters\n### SQL: UPDATE yshop_user SET now_money = now_money - ? WHERE uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.decPrice-Inline\n### The error occurred while setting parameters\n### SQL: UPDATE yshop_user SET now_money = now_money - ? WHERE uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.update(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy331.decPrice(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.decPrice(MemberUserServiceImpl.java:116)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$80ecf045.decPrice()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.yuePay(AppStoreOrderServiceImpl.java:516)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$dd48c8e4.yuePay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:166)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$499ccf5.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 194 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 16:27:03', NULL, '2023-06-28 16:27:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1207, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"h5\\\",\\n \\\"paytype\\\": \\\"yue\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 16:37:08', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.decPrice-Inline\n### The error occurred while setting parameters\n### SQL: UPDATE yshop_user SET now_money = now_money - ? WHERE uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper.decPrice-Inline\n### The error occurred while setting parameters\n### SQL: UPDATE yshop_user SET now_money = now_money - ? WHERE uid = ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.update(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy331.decPrice(Unknown Source)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.decPrice(MemberUserServiceImpl.java:116)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$73703f17.decPrice()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.yuePay(AppStoreOrderServiceImpl.java:516)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$cfcc17b6.yuePay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:166)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$17fa4548.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'uid\' in \'where clause\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor118.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 194 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 16:37:08', NULL, '2023-06-28 16:37:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1208, '', 2, 1, 'yshop-server', 'POST', '/app-api/after/applyForAfterSales', '{\"query\":{},\"body\":\"{\\n \\\"orderCode\\\": \\\"1673967434274439168\\\",\\n \\\"productParamList\\\": [\\n {\\n \\\"productId\\\": 16\\n }\\n ],\\n \\\"reasonForApplication\\\": \\\"七天无理由\\\",\\n \\\"serviceType\\\": 1,\\n \\\"applicationDescriptionPicture\\\": \\\"http://dummyimage.com/400x400\\\",\\n \\\"applicationInstructions\\\": \\\"我就是想退款\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 17:16:15', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersalesstatus/StoreAfterSalesStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeaftersalesstatus.StoreAfterSalesStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_after_sales_status ( store_after_sales_id, change_type, change_message, change_time, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersalesstatus/StoreAfterSalesStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeaftersalesstatus.StoreAfterSalesStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_after_sales_status ( store_after_sales_id, change_type, change_message, change_time, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy324.insert(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl.applyForAfterSales(AppStoreAfterSalesServiceImpl.java:153)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$FastClassBySpringCGLIB$$5f600f83.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$EnhancerBySpringCGLIB$$a642aaf1.applyForAfterSales()\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController.applyForAfterSales(AppOrderAfterSalesController.java:40)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$FastClassBySpringCGLIB$$b23b9c02.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$EnhancerBySpringCGLIB$$d728e201.applyForAfterSales()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor156.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor156.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 17:16:15', NULL, '2023-06-28 17:16:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1209, '', 2, 1, 'yshop-server', 'POST', '/app-api/after/applyForAfterSales', '{\"query\":{},\"body\":\"{\\n \\\"orderCode\\\": \\\"1673967434274439168\\\",\\n \\\"productParamList\\\": [\\n {\\n \\\"productId\\\": 16\\n }\\n ],\\n \\\"reasonForApplication\\\": \\\"七天无理由\\\",\\n \\\"serviceType\\\": 1,\\n \\\"applicationDescriptionPicture\\\": \\\"http://dummyimage.com/400x400\\\",\\n \\\"applicationInstructions\\\": \\\"我就是想退款\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 17:24:23', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersalesstatus/StoreAfterSalesStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeaftersalesstatus.StoreAfterSalesStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_after_sales_status ( store_after_sales_id, change_type, change_message, change_time, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersalesstatus/StoreAfterSalesStatusMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeaftersalesstatus.StoreAfterSalesStatusMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_after_sales_status ( store_after_sales_id, change_type, change_message, change_time, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy324.insert(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl.applyForAfterSales(AppStoreAfterSalesServiceImpl.java:156)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$FastClassBySpringCGLIB$$5f600f83.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$EnhancerBySpringCGLIB$$e97e899.applyForAfterSales()\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController.applyForAfterSales(AppOrderAfterSalesController.java:40)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$FastClassBySpringCGLIB$$b23b9c02.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$EnhancerBySpringCGLIB$$d662bcda.applyForAfterSales()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy161.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 181 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 17:24:24', NULL, '2023-06-28 17:24:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1210, '', 2, 1, 'yshop-server', 'GET', '/app-api/after/storeAfterSales/list', '{\"query\":{\"limit\":\"10\",\"page\":\"1\",\"type\":\"-1\"},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-28 17:28:12', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersales/StoreAfterSalesMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) FROM (SELECT id,order_code,refund_amount,service_type,reasons,explains,explain_img,shipper_code,delivery_sn,delivery_name,state,sales_state,user_id,consignee,phone_number,address,create_time,update_time,creator,updater,deleted FROM yshop_store_after_sales WHERE deleted=0 AND (user_id = ? AND state IN ()) ORDER BY create_time DESC) TOTAL\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeaftersales/StoreAfterSalesMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) FROM (SELECT id,order_code,refund_amount,service_type,reasons,explains,explain_img,shipper_code,delivery_sn,delivery_name,state,sales_state,user_id,consignee,phone_number,address,create_time,update_time,creator,updater,deleted FROM yshop_store_after_sales WHERE deleted=0 AND (user_id = ? AND state IN ()) ORDER BY create_time DESC) TOTAL\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy320.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl.salesList(AppStoreAfterSalesServiceImpl.java:221)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$FastClassBySpringCGLIB$$5f600f83.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeaftersales.AppStoreAfterSalesServiceImpl$$EnhancerBySpringCGLIB$$66d55bbe.salesList()\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController.salesList(AppOrderAfterSalesController.java:68)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$FastClassBySpringCGLIB$$b23b9c02.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.afterorder.AppOrderAfterSalesController$$EnhancerBySpringCGLIB$$83b375f5.salesList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \')) ORDER BY create_time DESC) TOTAL\' at line 7\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor113.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor112.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor108.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor122.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-28 17:28:12', NULL, '2023-06-28 17:28:12', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1211, '', 0, 1, 'yshop-server', 'POST', '/app-api/order/confirm', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-29 11:36:10', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)', 'HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)', 'org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public co.yixiang.yshop.framework.common.pojo.CommonResult co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:163)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor', 'RequestResponseBodyMethodProcessor.java', 'readWithMessageConverters', 163, 0, NULL, 0, NULL, '2023-06-29 11:36:10', NULL, '2023-06-29 11:36:10', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1212, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/confirm', '{\"query\":{},\"body\":\"{\\n \\\"cartId\\\": \\\"150\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-29 11:37:22', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at co.yixiang.yshop.module.member.convert.user.UserConvertImpl.convert3(UserConvertImpl.java:70)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:106)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$5498fce8.getAppUser()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.confirmOrder(AppStoreOrderServiceImpl.java:149)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$b0f4d587.confirmOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(AppOrderController.java:65)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$4a87ae53.confirm()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-06-29 11:37:22', NULL, '2023-06-29 11:37:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1213, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/confirm', '{\"query\":{},\"body\":\"{\\n \\\"cartId\\\": \\\"150\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-29 11:37:32', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at co.yixiang.yshop.module.member.convert.user.UserConvertImpl.convert3(UserConvertImpl.java:70)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:106)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$5498fce8.getAppUser()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.confirmOrder(AppStoreOrderServiceImpl.java:149)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$b0f4d587.confirmOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(AppOrderController.java:65)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$4a87ae53.confirm()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-06-29 11:37:32', NULL, '2023-06-29 11:37:32', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1214, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/confirm', '{\"query\":{},\"body\":\"{\\n \\\"cartId\\\": \\\"150\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-06-29 11:40:43', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO.getIsPromoter()Ljava/lang/Byte;\n at co.yixiang.yshop.module.member.convert.user.UserConvertImpl.convert3(UserConvertImpl.java:70)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:106)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$4b970b02.getAppUser()\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.confirmOrder(AppStoreOrderServiceImpl.java:149)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$a7f2e3a1.confirmOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.confirm(AppOrderController.java:65)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$8e4be952.confirm()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-06-29 11:40:43', NULL, '2023-06-29 11:40:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1215, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-reply/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-29 17:39:19', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.id LEFT JOIN yx_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.deleted = 0 AND B.nickname = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.id LEFT JOIN yx_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.deleted = 0 AND B.nickname = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy346.allReplyList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl.getStoreProductReplyPage(StoreProductReplyServiceImpl.java:78)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$acbb2daf.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$8371a24e.getStoreProductReplyPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController.getStoreProductReplyPage(StoreProductReplyController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$FastClassBySpringCGLIB$$7d7773a0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$EnhancerBySpringCGLIB$$374f3ea7.getStoreProductReplyPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor107.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-29 17:39:19', NULL, '2023-06-29 17:39:19', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1216, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-reply/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-29 17:39:25', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.id LEFT JOIN yx_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.deleted = 0 AND B.nickname = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_store_product_reply A LEFT JOIN yshop_user B ON A.uid = B.id LEFT JOIN yx_store_order_cart_info C ON A.`unique` = C.`unique` WHERE A.deleted = 0 AND B.nickname = ?\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy346.allReplyList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl.getStoreProductReplyPage(StoreProductReplyServiceImpl.java:78)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$acbb2daf.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$8371a24e.getStoreProductReplyPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController.getStoreProductReplyPage(StoreProductReplyController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$FastClassBySpringCGLIB$$7d7773a0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$EnhancerBySpringCGLIB$$374f3ea7.getStoreProductReplyPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yx_store_order_cart_info\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor115.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor107.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor147.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-29 17:39:25', NULL, '2023-06-29 17:39:25', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1217, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-relation/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-30 09:45:50', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC', 'TokenMgrException: Lexical error at line 1, column 345. Encountered: after : \"` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\"', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy343.allRelationList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl.getStoreProductRelationPage(StoreProductRelationServiceImpl.java:80)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$FastClassBySpringCGLIB$$61697c8b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$EnhancerBySpringCGLIB$$90ec6a3f.getStoreProductRelationPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController.getStoreProductRelationPage(StoreProductRelationController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$FastClassBySpringCGLIB$$ef6182c4.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$EnhancerBySpringCGLIB$$ab8827a2.getStoreProductRelationPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.comment,A.merchant_reply_content as merchantReplyContent,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 178 more\nCaused by: net.sf.jsqlparser.parser.TokenMgrException: Lexical error at line 1, column 345. Encountered: after : \"` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\"\n at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:6097)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:31316)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_56(CCJSqlParser.java:26296)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameList_1613_5_325(CCJSqlParser.java:26320)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Column_1626_5_133(CCJSqlParser.java:26266)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_JsonExpression_3962_5_230(CCJSqlParser.java:28366)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3736_11_359(CCJSqlParser.java:28922)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3715_5_139(CCJSqlParser.java:29043)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_3668_5_223(CCJSqlParser.java:29361)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_3638_5_218(CCJSqlParser.java:29504)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_3614_5_472(CCJSqlParser.java:29591)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_3582_5_215(CCJSqlParser.java:29758)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_3559_5_349(CCJSqlParser.java:29782)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_3535_5_132(CCJSqlParser.java:29826)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_156(CCJSqlParser.java:29898)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComparisonItem_3488_3_199(CCJSqlParser.java:29922)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_132(CCJSqlParser.java:30636)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_3092_5_197(CCJSqlParser.java:31002)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3074_9_419(CCJSqlParser.java:31052)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3072_5_191(CCJSqlParser.java:31116)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_123(CCJSqlParser.java:21193)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_123(CCJSqlParser.java:19982)\n at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:9716)\n at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:9696)\n at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:9678)\n at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:9649)\n at net.sf.jsqlparser.parser.CCJSqlParser.JoinerExpression(CCJSqlParser.java:8841)\n at net.sf.jsqlparser.parser.CCJSqlParser.JoinsList(CCJSqlParser.java:8641)\n at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5652)\n at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5867)\n at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5516)\n at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5511)\n at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 190 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-06-30 09:45:50', NULL, '2023-06-30 09:45:50', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1218, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-relation/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-30 09:48:52', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC', 'TokenMgrException: Lexical error at line 1, column 286. Encountered: after : \"` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\"', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy343.allRelationList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl.getStoreProductRelationPage(StoreProductRelationServiceImpl.java:80)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$FastClassBySpringCGLIB$$61697c8b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$EnhancerBySpringCGLIB$$aeeddbf8.getStoreProductRelationPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController.getStoreProductRelationPage(StoreProductRelationController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$FastClassBySpringCGLIB$$ef6182c4.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$EnhancerBySpringCGLIB$$29fc61ef.getStoreProductRelationPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 178 more\nCaused by: net.sf.jsqlparser.parser.TokenMgrException: Lexical error at line 1, column 286. Encountered: after : \"` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\"\n at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:6097)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:31316)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_56(CCJSqlParser.java:26296)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameList_1613_5_325(CCJSqlParser.java:26320)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Column_1626_5_133(CCJSqlParser.java:26266)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_JsonExpression_3962_5_230(CCJSqlParser.java:28366)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3736_11_359(CCJSqlParser.java:28922)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3715_5_139(CCJSqlParser.java:29043)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_3668_5_223(CCJSqlParser.java:29361)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_3638_5_218(CCJSqlParser.java:29504)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_3614_5_472(CCJSqlParser.java:29591)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_3582_5_215(CCJSqlParser.java:29758)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_3559_5_349(CCJSqlParser.java:29782)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_3535_5_132(CCJSqlParser.java:29826)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_156(CCJSqlParser.java:29898)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComparisonItem_3488_3_199(CCJSqlParser.java:29922)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_132(CCJSqlParser.java:30636)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_3092_5_197(CCJSqlParser.java:31002)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3074_9_419(CCJSqlParser.java:31052)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3072_5_191(CCJSqlParser.java:31116)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_123(CCJSqlParser.java:21193)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_123(CCJSqlParser.java:19982)\n at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:9716)\n at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:9696)\n at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:9678)\n at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:9649)\n at net.sf.jsqlparser.parser.CCJSqlParser.JoinerExpression(CCJSqlParser.java:8841)\n at net.sf.jsqlparser.parser.CCJSqlParser.JoinsList(CCJSqlParser.java:8641)\n at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5652)\n at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5867)\n at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5516)\n at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5511)\n at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 190 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-06-30 09:48:52', NULL, '2023-06-30 09:48:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1219, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-relation/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-30 09:51:46', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC', 'ParseException: Encountered unexpected token: \">\" \">\"\n at line 1, column 237.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"CONNECT\"\n \"EMIT\"\n \"GROUP\"\n \"HAVING\"\n \"START\"\n \"[\"\n \"^\"\n \"|\"\n \n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy343.allRelationList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl.getStoreProductRelationPage(StoreProductRelationServiceImpl.java:80)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$FastClassBySpringCGLIB$$61697c8b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductrelation.StoreProductRelationServiceImpl$$EnhancerBySpringCGLIB$$5e54f7d.getStoreProductRelationPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController.getStoreProductRelationPage(StoreProductRelationController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$FastClassBySpringCGLIB$$ef6182c4.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductrelation.StoreProductRelationController$$EnhancerBySpringCGLIB$$7fab9d42.getStoreProductRelationPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select A.id, C.store_name as storeName,B.nickname,A.create_Time as createTime,B.avatar from yshop_store_product_relation A left join yshop_user B on A.uid = B.id left join yshop_store_product C on A.product_id = C.id where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 178 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \">\" \">\"\n at line 1, column 237.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"CONNECT\"\n \"EMIT\"\n \"GROUP\"\n \"HAVING\"\n \"START\"\n \"[\"\n \"^\"\n \"|\"\n \n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 190 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-06-30 09:51:46', NULL, '2023-06-30 09:51:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1220, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/store-product-reply/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"11\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-06-30 09:54:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) FROM (select A.id, A.product_score as productScore,A.service_score as serviceScore,A.comment,A.merchant_reply_content as merchantReplyContent,A.merchant_reply_time as merchantReplyTime,A.pics as pictures,A.create_Time as createTime,B.nickname,B.avatar,C.cart_info as cartInfo from yshop_store_product_reply A left join yshop_user B on A.uid = B.id left join yshop_store_order_cart_info C on A.`unique` = C.`unique` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC) TOTAL\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.storeproductreply.StoreProductReplyMapper.allReplyList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) FROM (select A.id, A.product_score as productScore,A.service_score as serviceScore,A.comment,A.merchant_reply_content as merchantReplyContent,A.merchant_reply_time as merchantReplyTime,A.pics as pictures,A.create_Time as createTime,B.nickname,B.avatar,C.cart_info as cartInfo from yshop_store_product_reply A left join yshop_user B on A.uid = B.id left join yshop_store_order_cart_info C on A.`unique` = C.`unique` where A.deleted=0 >and B.nickname = ? order by A.create_Time DESC) TOTAL\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy346.allReplyList(Unknown Source)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl.getStoreProductReplyPage(StoreProductReplyServiceImpl.java:82)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$FastClassBySpringCGLIB$$acbb2daf.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyServiceImpl$$EnhancerBySpringCGLIB$$4dd03969.getStoreProductReplyPage()\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController.getStoreProductReplyPage(StoreProductReplyController.java:87)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$FastClassBySpringCGLIB$$7d7773a0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController$$EnhancerBySpringCGLIB$$c8ccd956.getStoreProductReplyPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'and B.nickname = \'11\' order by A.create_Time DESC) TOTAL\' at line 1\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor116.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor109.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor126.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-06-30 09:54:16', NULL, '2023-06-30 09:54:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1221, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 11:40:04', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.handleOrderStatus(StoreOrderServiceImpl.java:113)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:99)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$57301e8b.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$f39b5eef.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl', 'StoreOrderServiceImpl.java', 'handleOrderStatus', 113, 0, NULL, 0, NULL, '2023-07-01 11:40:04', NULL, '2023-07-01 11:40:04', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1222, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"-1\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:25:08', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:34)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:94)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$db72fcfd.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$b601c349.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper', 'StoreOrderMapper.java', 'selectPage', 34, 0, NULL, 0, NULL, '2023-07-01 14:25:08', NULL, '2023-07-01 14:25:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1223, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"-1\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:25:23', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:34)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:94)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$db72fcfd.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$b601c349.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper', 'StoreOrderMapper.java', 'selectPage', 34, 0, NULL, 0, NULL, '2023-07-01 14:25:23', NULL, '2023-07-01 14:25:23', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1224, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:25:46', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:205)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:281)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:309)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:95)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$db72fcfd.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$b601c349.getStoreOrderPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-01 14:25:46', NULL, '2023-07-01 14:25:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1225, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:27:05', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setDeleted(Ljava/lang/Boolean;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:205)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:281)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:309)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:95)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$db72fcfd.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$93c42ff7.getStoreOrderPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-01 14:27:05', NULL, '2023-07-01 14:27:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1226, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:31:52', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:34)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:94)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$d7f7c7e7.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$142d4253.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper', 'StoreOrderMapper.java', 'selectPage', 34, 0, NULL, 0, NULL, '2023-07-01 14:31:52', NULL, '2023-07-01 14:31:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1227, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 14:32:09', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:34)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:94)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$d7f7c7e7.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$142d4253.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper', 'StoreOrderMapper.java', 'selectPage', 34, 0, NULL, 0, NULL, '2023-07-01 14:32:09', NULL, '2023-07-01 14:32:09', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1228, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"-1\",\"payStatus\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-01 17:08:59', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:34)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy326.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:94)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$d7f7c7e7.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:86)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor153.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$142d4253.getStoreOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper', 'StoreOrderMapper.java', 'selectPage', 34, 0, NULL, 0, NULL, '2023-07-01 17:08:59', NULL, '2023-07-01 17:08:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1229, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"6\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-02 18:39:22', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:157)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrder(StoreOrderController.java:70)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$1ed3508a.getStoreOrder()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-02 18:39:22', NULL, '2023-07-02 18:39:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1230, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"6\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-02 18:39:38', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:157)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrder(StoreOrderController.java:70)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$1ed3508a.getStoreOrder()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-02 18:39:38', NULL, '2023-07-02 18:39:38', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1231, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"6\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-02 18:57:39', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.admin.storeorder.vo.StoreOrderRespVO.setExtendOrderId(Ljava/lang/String;)Lco/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:157)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrder(StoreOrderController.java:70)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor185.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$1ed3508a.getStoreOrder()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-02 18:57:39', NULL, '2023-07-02 18:57:39', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1232, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"2\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-05 18:33:56', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrder(StoreOrderServiceImpl.java:123)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$cf796b0d.getStoreOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrder(StoreOrderController.java:92)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor157.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$a9da3cf3.getStoreOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl', 'StoreOrderServiceImpl.java', 'getStoreOrder', 123, 0, NULL, 0, NULL, '2023-07-05 18:33:56', NULL, '2023-07-05 18:33:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1233, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/get', '{\"query\":{\"id\":\"2\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-07 11:04:41', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;\n at co.yixiang.yshop.module.member.convert.user.UserConvertImpl.convert(UserConvertImpl.java:239)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.getUser(MemberUserController.java:65)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$543b083b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$b6913b60.getUser()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-07 11:04:41', NULL, '2023-07-07 11:04:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1234, '', 1, 2, 'yshop-server', 'GET', '/admin-api/member/user/get', '{\"query\":{\"id\":\"2\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-07 11:06:52', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO.setLastIp(Ljava/lang/String;)Lco/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO;\n at co.yixiang.yshop.module.member.convert.user.UserConvertImpl.convert(UserConvertImpl.java:239)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.getUser(MemberUserController.java:65)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$543b083b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$c827a51.getUser()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-07 11:06:52', NULL, '2023-07-07 11:06:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1235, '', 1, 2, 'yshop-server', 'DELETE', '/admin-api/pay/merchant-details/delete', '{\"query\":{\"id\":\"undefined\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 17:47:04', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT details_id, pay_type, appid, mch_id, cert_store_type, key_private, key_public, key_cert, key_cert_pwd, notify_url, return_url, sign_type, seller, sub_app_id, sub_mch_id, input_charset, is_test, create_time, update_time, creator, updater, deleted FROM yshop_merchant_details WHERE details_id = ? AND deleted = 0\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT details_id, pay_type, appid, mch_id, cert_store_type, key_private, key_public, key_cert, key_cert_pwd, notify_url, return_url, sign_type, seller, sub_app_id, sub_mch_id, input_charset, is_test, create_time, update_time, creator, updater, deleted FROM yshop_merchant_details WHERE details_id = ? AND deleted = 0\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy141.selectOne(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy277.selectById(Unknown Source)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.validateMerchantDetailsExists(MerchantDetailsServiceImpl.java:57)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.deleteMerchantDetails(MerchantDetailsServiceImpl.java:51)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$FastClassBySpringCGLIB$$31474afa.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$EnhancerBySpringCGLIB$$fadd71e8.deleteMerchantDetails()\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(MerchantDetailsController.java:60)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor157.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$71c98a7d.deleteMerchantDetails()\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.doDelete(FrameworkServlet.java:931)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:534)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor118.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy164.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy162.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy161.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)\n at sun.reflect.GeneratedMethodAccessor158.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 170 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-07-15 17:47:04', NULL, '2023-07-15 17:47:04', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1236, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-15 19:07:06', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)', 'ConnectException: Operation timed out (Connection timed out)', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:167)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$c6846584.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.conn.HttpHostConnectException: Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156)\n at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)\n at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)\n at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)\n at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)\n at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)\n at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: java.net.ConnectException: Operation timed out (Connection timed out)\n at java.net.PlainSocketImpl.socketConnect(Native Method)\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\n at java.net.Socket.connect(Socket.java:606)\n at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)\n ... 189 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-15 19:07:06', NULL, '2023-07-15 19:07:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1237, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-15 19:08:05', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)', 'ConnectException: Operation timed out (Connection timed out)', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:167)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$c6846584.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.conn.HttpHostConnectException: Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156)\n at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)\n at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)\n at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)\n at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)\n at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)\n at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: java.net.ConnectException: Operation timed out (Connection timed out)\n at java.net.PlainSocketImpl.socketConnect(Native Method)\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\n at java.net.Socket.connect(Socket.java:606)\n at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)\n ... 189 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-15 19:08:05', NULL, '2023-07-15 19:08:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1238, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 20:49:02', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 20:49:02', NULL, '2023-07-15 20:49:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1239, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 20:49:49', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 20:49:49', NULL, '2023-07-15 20:49:49', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1240, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 20:55:22', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 20:55:22', NULL, '2023-07-15 20:55:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1241, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 21:04:54', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 21:04:54', NULL, '2023-07-15 21:04:54', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1242, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 21:13:50', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 21:13:50', NULL, '2023-07-15 21:13:50', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1243, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 21:14:06', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 21:14:06', NULL, '2023-07-15 21:14:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1244, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-15 22:38:37', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-15 22:38:37', NULL, '2023-07-15 22:38:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1245, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-16 09:23:20', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-16 09:23:20', NULL, '2023-07-16 09:23:20', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1246, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-16 11:44:21', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-16 11:44:21', NULL, '2023-07-16 11:44:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1247, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-16 22:49:05', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-16 22:49:05', NULL, '2023-07-16 22:49:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1248, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-17 09:06:56', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-17 09:06:56', NULL, '2023-07-17 09:06:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1249, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-17 09:44:26', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$6c747522.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-17 09:44:26', NULL, '2023-07-17 09:44:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1250, '', 1, 2, 'yshop-server', 'GET', '/admin-api/pay/merchant-details/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-17 09:46:16', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO.getIsTest()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convert(MerchantDetailsConvertImpl.java:100)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertList(MerchantDetailsConvertImpl.java:114)\n at co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvertImpl.convertPage(MerchantDetailsConvertImpl.java:128)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.getMerchantDetailsPage(MerchantDetailsController.java:87)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$a3bd42d8.getMerchantDetailsPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-07-17 09:46:16', NULL, '2023-07-17 09:46:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1251, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 09:52:13', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)', 'ConnectException: Operation timed out (Connection timed out)', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:168)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.conn.HttpHostConnectException: Connect to www.egzosn.com:80 [www.egzosn.com/42.193.159.112] failed: Operation timed out (Connection timed out)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156)\n at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)\n at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)\n at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)\n at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)\n at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)\n at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: java.net.ConnectException: Operation timed out (Connection timed out)\n at java.net.PlainSocketImpl.socketConnect(Native Method)\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\n at java.net.Socket.connect(Socket.java:606)\n at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)\n at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)\n ... 189 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 09:52:13', NULL, '2023-07-17 09:52:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1252, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:03:42', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:168)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 178 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 181 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:03:42', NULL, '2023-07-17 11:03:42', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1253, '', 0, 1, 'yshop-server', 'GET', '/app-api/order/payBack3.json', '{\"query\":{},\"body\":\"\"}', '223.91.183.49', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-17 11:10:02', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.payBack(MerchantPayServiceManager.java:228)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.payBack(AppOrderController.java:206)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bad30c38.payBack()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 155 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 158 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:10:03', NULL, '2023-07-17 11:10:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1254, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:11:06', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:171)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bad30c38.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 182 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:11:06', NULL, '2023-07-17 11:11:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1255, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:25:46', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$3111328c.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 182 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:25:46', NULL, '2023-07-17 11:25:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1256, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:27:36', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 182 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:27:36', NULL, '2023-07-17 11:27:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1257, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:28:14', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:119)\n at com.egzosn.pay.spring.boot.core.provider.CacheMerchantDetailsManager.loadMerchantByMerchantId(CacheMerchantDetailsManager.java:22)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 179 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 182 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:28:14', NULL, '2023-07-17 11:28:14', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1258, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:39:50', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 177 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 180 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:39:50', NULL, '2023-07-17 11:39:50', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1259, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:46:20', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=IOException, errmsg=null', 'ProtocolException: Target host is not specified', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=IOException, errmsg=null\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:431)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.getForObject(HttpRequestTemplate.java:278)\n at com.egzosn.pay.common.bean.CertStoreType$6.getInputStream(CertStoreType.java:118)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.http.client.ClientProtocolException\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)\n at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:424)\n ... 177 more\nCaused by: org.apache.http.ProtocolException: Target host is not specified\n at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)\n at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)\n at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)\n ... 180 more\n', 'com.egzosn.pay.common.http.HttpRequestTemplate', 'HttpRequestTemplate.java', 'doExecuteEntity', 431, 0, NULL, 0, NULL, '2023-07-17 11:46:20', NULL, '2023-07-17 11:46:20', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1260, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:54:46', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor160.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 11:54:46', NULL, '2023-07-17 11:54:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1261, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 11:55:35', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor160.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 11:55:35', NULL, '2023-07-17 11:55:35', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1262, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:03:31', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor160.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 12:03:31', NULL, '2023-07-17 12:03:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1263, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:04:28', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor160.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 12:04:28', NULL, '2023-07-17 12:04:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1264, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:13:11', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor160.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 12:13:11', NULL, '2023-07-17 12:13:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1265, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:15:04', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 12:15:04', NULL, '2023-07-17 12:15:04', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1266, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:18:01', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 12:18:01', NULL, '2023-07-17 12:18:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1267, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:18:45', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 12:18:45', NULL, '2023-07-17 12:18:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1268, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:18:57', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getPayService(WxPaymentPlatform.java:101)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 12:18:57', NULL, '2023-07-17 12:18:57', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1269, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:25:38', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxV3PaymentPlatform.getPayService(WxV3PaymentPlatform.java:97)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor153.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 12:25:38', NULL, '2023-07-17 12:25:38', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1270, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:52:03', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxV3PaymentPlatform.getPayService(WxV3PaymentPlatform.java:97)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor153.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 12:52:03', NULL, '2023-07-17 12:52:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1271, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 12:56:52', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxV3PaymentPlatform.getPayService(WxV3PaymentPlatform.java:97)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor153.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$998ddab4.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 12:56:52', NULL, '2023-07-17 12:56:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1272, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:07:45', 'com.egzosn.pay.spring.boot.core.merchant.MerchantNotFoundException', 'MerchantNotFoundException: 不存在的商户列表id:不存在的商户列表id:3', 'MerchantNotFoundException: 不存在的商户列表id:不存在的商户列表id:3', 'com.egzosn.pay.spring.boot.core.merchant.MerchantNotFoundException: 不存在的商户列表id:不存在的商户列表id:3\n at com.egzosn.pay.spring.boot.core.provider.InMemoryMerchantDetailsManager.loadMerchantByMerchantId(InMemoryMerchantDetailsManager.java:140)\n at com.egzosn.pay.spring.boot.core.provider.InMemoryMerchantDetailsManager.loadMerchantByMerchantId(InMemoryMerchantDetailsManager.java:24)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$9af6763b.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.provider.InMemoryMerchantDetailsManager', 'InMemoryMerchantDetailsManager.java', 'loadMerchantByMerchantId', 140, 0, NULL, 0, NULL, '2023-07-17 13:07:45', NULL, '2023-07-17 13:07:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1273, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:10:59', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f6124db5.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 13:10:59', NULL, '2023-07-17 13:10:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1274, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:15:09', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:172)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$3111328c.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 13:15:09', NULL, '2023-07-17 13:15:09', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1275, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:22:40', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.Wap', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.Wap', 'java.lang.IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.Wap\n at java.lang.Enum.valueOf(Enum.java:238)\n at com.egzosn.pay.wx.bean.WxTransactionType.valueOf(WxTransactionType.java:18)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getTransactionType(WxPaymentPlatform.java:120)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:137)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$37b92ab9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.Enum', 'Enum.java', 'valueOf', 238, 0, NULL, 0, NULL, '2023-07-17 13:22:40', NULL, '2023-07-17 13:22:40', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1276, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:27:10', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.h5', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.h5', 'java.lang.IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.h5\n at java.lang.Enum.valueOf(Enum.java:238)\n at com.egzosn.pay.wx.bean.WxTransactionType.valueOf(WxTransactionType.java:18)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getTransactionType(WxPaymentPlatform.java:120)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:137)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bad30c38.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.Enum', 'Enum.java', 'valueOf', 238, 0, NULL, 0, NULL, '2023-07-17 13:27:10', NULL, '2023-07-17 13:27:10', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1277, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:39:43', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5', 'java.lang.IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5\n at java.lang.Enum.valueOf(Enum.java:238)\n at com.egzosn.pay.wx.bean.WxTransactionType.valueOf(WxTransactionType.java:18)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getTransactionType(WxPaymentPlatform.java:120)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:137)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.Enum', 'Enum.java', 'valueOf', 238, 0, NULL, 0, NULL, '2023-07-17 13:39:43', NULL, '2023-07-17 13:39:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1278, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:48:45', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$7997b3de.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 13:48:45', NULL, '2023-07-17 13:48:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1279, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:53:45', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$936111b1.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 13:53:45', NULL, '2023-07-17 13:53:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1280, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 13:59:25', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:174)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$1962ac38.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 13:59:25', NULL, '2023-07-17 13:59:25', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1281, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 14:12:34', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:175)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d7020b9d.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 14:20:00', NULL, '2023-07-17 14:20:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1282, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 14:20:00', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:175)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d7020b9d.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 14:20:00', NULL, '2023-07-17 14:20:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1283, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 14:28:47', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:187)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bad30c38.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 14:28:47', NULL, '2023-07-17 14:28:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1284, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 14:50:27', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:190)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$ec2ab3f7.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 14:50:27', NULL, '2023-07-17 14:50:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1285, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 14:55:51', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:193)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bad30c38.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.MerchantPayServiceManager', 'MerchantPayServiceManager.java', 'getOrderInfo', 139, 0, NULL, 0, NULL, '2023-07-17 14:55:52', NULL, '2023-07-17 14:55:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1286, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:25:53', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.getKeyCertInputStream(CommonPaymentPlatformMerchantDetails.java:327)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxV3PaymentPlatform.getPayService(WxV3PaymentPlatform.java:97)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$70b7a67.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails', 'CommonPaymentPlatformMerchantDetails.java', 'getKeyCertInputStream', 327, 0, NULL, 0, NULL, '2023-07-17 15:25:53', NULL, '2023-07-17 15:25:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1287, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:28:08', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=私钥证书流加载失败', 'IOException: Short read of DER length', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=私钥证书流加载失败\n at com.egzosn.pay.wx.v3.utils.AntCertificationUtil.initCertification(AntCertificationUtil.java:133)\n at com.egzosn.pay.wx.v3.api.WxPayConfigStorage.loadCertEnvironment(WxPayConfigStorage.java:252)\n at com.egzosn.pay.wx.v3.api.WxPayService.initAfter(WxPayService.java:145)\n at com.egzosn.pay.wx.v3.api.WxPayService.(WxPayService.java:118)\n at com.egzosn.pay.wx.v3.api.WxPayService.(WxPayService.java:104)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxV3PaymentPlatform.getPayService(WxV3PaymentPlatform.java:107)\n at com.egzosn.pay.spring.boot.core.merchant.bean.CommonPaymentPlatformMerchantDetails.initService(CommonPaymentPlatformMerchantDetails.java:121)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.lambda$loadMerchantByMerchantId$0(JdbcMerchantDetailsManager.java:167)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)\n at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)\n at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)\n at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:744)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)\n at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:815)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:139)\n at com.egzosn.pay.spring.boot.core.provider.JdbcMerchantDetailsManager.loadMerchantByMerchantId(JdbcMerchantDetailsManager.java:33)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:136)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$70b7a67.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.io.IOException: Short read of DER length\n at sun.security.util.DerInputStream.getLength(DerInputStream.java:589)\n at sun.security.util.DerValue.init(DerValue.java:391)\n at sun.security.util.DerValue.(DerValue.java:332)\n at sun.security.util.DerValue.(DerValue.java:345)\n at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1941)\n at java.security.KeyStore.load(KeyStore.java:1445)\n at com.egzosn.pay.wx.v3.utils.AntCertificationUtil.initCertification(AntCertificationUtil.java:118)\n ... 177 more\n', 'com.egzosn.pay.wx.v3.utils.AntCertificationUtil', 'AntCertificationUtil.java', 'initCertification', 133, 0, NULL, 0, NULL, '2023-07-17 15:28:08', NULL, '2023-07-17 15:28:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1288, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:45:44', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5', 'IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5', 'java.lang.IllegalArgumentException: No enum constant com.egzosn.pay.wx.bean.WxTransactionType.H5\n at java.lang.Enum.valueOf(Enum.java:238)\n at com.egzosn.pay.wx.bean.WxTransactionType.valueOf(WxTransactionType.java:18)\n at com.egzosn.pay.spring.boot.core.provider.merchant.platform.WxPaymentPlatform.getTransactionType(WxPaymentPlatform.java:120)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:137)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor186.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$70b7a67.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.Enum', 'Enum.java', 'valueOf', 238, 0, NULL, 0, NULL, '2023-07-17 15:45:44', NULL, '2023-07-17 15:45:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1289, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:52:15', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:393)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:354)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$9af6763b.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'createSign', 393, 0, NULL, 0, NULL, '2023-07-17 15:52:15', NULL, '2023-07-17 15:52:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1290, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:53:24', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$9af6763b.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 15:53:24', NULL, '2023-07-17 15:53:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1291, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 15:57:17', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d1e7aefb.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 15:57:17', NULL, '2023-07-17 15:57:17', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1292, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:03:10', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$853914b9.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 16:03:10', NULL, '2023-07-17 16:03:10', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1293, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:05:27', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:194)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f6124db5.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 16:05:27', NULL, '2023-07-17 16:05:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1294, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:06:52', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.getKeyPrivate(WxPayService.java:358)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:391)\n at com.egzosn.pay.wx.api.WxPayService.createSign(WxPayService.java:376)\n at com.egzosn.pay.wx.api.WxPayService.setSign(WxPayService.java:335)\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:259)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:192)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d1e7aefb.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-07-17 16:06:52', NULL, '2023-07-17 16:06:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1295, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:21:44', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}', 'PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:192)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d1e7aefb.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-07-17 16:21:44', NULL, '2023-07-17 16:21:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1296, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:22:18', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}', 'PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=null, errmsg=签名错误,请检查后再试\n content:{\"return_msg\":\"签名错误,请检查后再试\",\"return_code\":\"FAIL\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:192)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d1e7aefb.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-07-17 16:22:18', NULL, '2023-07-17 16:22:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1297, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"wechat\\\",\\n \\\"paytype\\\": \\\"weixin\\\",\\n \\\"uni\\\": \\\"1673967434274439168\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-17 16:27:56', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"fgUzdTTUZy4PdxCL\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"E0322DD45B9B129DB95585540A028B01\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"JSAPI支付必须传openid\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"fgUzdTTUZy4PdxCL\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"E0322DD45B9B129DB95585540A028B01\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"JSAPI支付必须传openid\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"fgUzdTTUZy4PdxCL\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"E0322DD45B9B129DB95585540A028B01\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"JSAPI支付必须传openid\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:192)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$d1e7aefb.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-07-17 16:27:56', NULL, '2023-07-17 16:27:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1298, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/express/getLogistic', '{\"query\":{\"logisticCode\":\"78692190526720\",\"shipperCode\":\"ZTO\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-20 10:17:23', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 业务错误[没有可用套餐]', 'IllegalArgumentException: 业务错误[没有可用套餐]', 'java.lang.IllegalArgumentException: 业务错误[没有可用套餐]\n at cn.hutool.core.lang.Assert.lambda$isTrue$0(Assert.java:54)\n at cn.hutool.core.lang.Assert.isTrue(Assert.java:37)\n at cn.hutool.core.lang.Assert.isTrue(Assert.java:54)\n at co.yixiang.yshop.module.express.kdniao.util.KdniaoUtil.getLogisticInfo(KdniaoUtil.java:36)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController.getLogistic(ExpressController.java:136)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController$$FastClassBySpringCGLIB$$9d00ec67.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController$$EnhancerBySpringCGLIB$$83bfbb86.getLogistic()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$isTrue$0', 54, 0, NULL, 0, NULL, '2023-07-20 10:17:23', NULL, '2023-07-20 10:17:23', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1299, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/printOrder', '{\"query\":{\"electId\":\"2\",\"id\":\"7\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-23 19:24:29', 'java.lang.IndexOutOfBoundsException', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'java.lang.IndexOutOfBoundsException: Index: 1, Size: 1\n at java.util.ArrayList.rangeCheck(ArrayList.java:659)\n at java.util.ArrayList.get(ArrayList.java:435)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.printOrder(StoreOrderServiceImpl.java:226)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$510c15e2.printOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.printOrder(StoreOrderController.java:139)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor153.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$be41fe01.printOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.util.ArrayList', 'ArrayList.java', 'rangeCheck', 659, 0, NULL, 0, NULL, '2023-07-23 19:24:29', NULL, '2023-07-23 19:24:29', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1300, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/printOrder', '{\"query\":{\"electId\":\"2\",\"id\":\"7\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-23 19:26:43', 'java.lang.IndexOutOfBoundsException', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'java.lang.IndexOutOfBoundsException: Index: 1, Size: 1\n at java.util.ArrayList.rangeCheck(ArrayList.java:659)\n at java.util.ArrayList.get(ArrayList.java:435)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.printOrder(StoreOrderServiceImpl.java:227)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$ddaa35c3.printOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.printOrder(StoreOrderController.java:139)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$a17e80c3.printOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.util.ArrayList', 'ArrayList.java', 'rangeCheck', 659, 0, NULL, 0, NULL, '2023-07-23 19:26:43', NULL, '2023-07-23 19:26:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1301, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/printOrder', '{\"query\":{\"electId\":\"2\",\"id\":\"7\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-23 19:29:24', 'java.lang.IndexOutOfBoundsException', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'IndexOutOfBoundsException: Index: 1, Size: 1', 'java.lang.IndexOutOfBoundsException: Index: 1, Size: 1\n at java.util.ArrayList.rangeCheck(ArrayList.java:659)\n at java.util.ArrayList.get(ArrayList.java:435)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.printOrder(StoreOrderServiceImpl.java:228)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$b1ea046e.printOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.printOrder(StoreOrderController.java:139)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$6107e28a.printOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.util.ArrayList', 'ArrayList.java', 'rangeCheck', 659, 0, NULL, 0, NULL, '2023-07-23 19:29:24', NULL, '2023-07-23 19:29:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1302, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/printOrder', '{\"query\":{\"electId\":\"2\",\"id\":\"7\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '2023-07-23 20:27:48', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.printOrder(StoreOrderServiceImpl.java:280)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$fac0a9eb.printOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.printOrder(StoreOrderController.java:139)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$95ea671.printOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl', 'StoreOrderServiceImpl.java', 'printOrder', 280, 0, NULL, 0, NULL, '2023-07-23 20:27:48', NULL, '2023-07-23 20:27:48', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1303, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\n \\\"from\\\": \\\"h5\\\",\\n \\\"paytype\\\": \\\"yue\\\",\\n \\\"uni\\\": \\\"1683752888607703040\\\"\\n}\"}', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', '2023-07-25 16:17:44', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.paySuccess(AppStoreOrderServiceImpl.java:512)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.yuePay(AppStoreOrderServiceImpl.java:459)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:417)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$e85d5c73.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:162)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor162.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$ed0440f5.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'paySuccess', 512, 0, NULL, 0, NULL, '2023-07-25 16:17:44', NULL, '2023-07-25 16:17:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1304, '', 1, 2, 'yshop-server', 'POST', '/admin-api/store/shop/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"意向餐饮店\\\",\\\"mobile\\\":\\\"18000000000\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"address\\\":\\\"源汇区人民东路\\\",\\\"addressMap\\\":\\\"河南省漯河市源汇区团结路50号-20\\\",\\\"lng\\\":114.04877877439665,\\\"lat\\\":33.57093831826829,\\\"distance\\\":\\\"0\\\",\\\"minPrice\\\":\\\"10\\\",\\\"deliveryPrice\\\":\\\"20\\\",\\\"notice\\\":\\\"新店开张\\\",\\\"status\\\":1,\\\"adminId\\\":[1,100],\\\"uniprintId\\\":\\\"1\\\",\\\"startTime\\\":\\\"2023-08-06T01:14:49.000Z\\\",\\\"endTime\\\":\\\"2023-08-06T12:14:49.000Z\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 10:55:25', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 189] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 189] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 189] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 189] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-06 10:55:25', NULL, '2023-08-06 10:55:25', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1305, '', 1, 2, 'yshop-server', 'POST', '/admin-api/store/shop/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"意向餐饮店\\\",\\\"mobile\\\":\\\"18000000000\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"address\\\":\\\"源汇区人民东路\\\",\\\"addressMap\\\":\\\"河南省漯河市源汇区团结路50号-20\\\",\\\"lng\\\":114.04877877439665,\\\"lat\\\":33.57093831826829,\\\"distance\\\":\\\"0\\\",\\\"minPrice\\\":\\\"10\\\",\\\"deliveryPrice\\\":\\\"20\\\",\\\"notice\\\":\\\"新店开张\\\",\\\"status\\\":1,\\\"adminId\\\":[1,100],\\\"uniprintId\\\":\\\"1\\\",\\\"startTime\\\":\\\"2023-08-06T01:14:49.000Z\\\",\\\"endTime\\\":\\\"2023-08-06T12:14:49.000Z\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 11:43:58', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 675] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"adminId\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 675] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"adminId\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 675] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"adminId\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 675] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"adminId\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-06 11:43:58', NULL, '2023-08-06 11:43:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1306, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 11:48:43', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:90)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertList(StoreShopConvertImpl.java:118)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertPage(StoreShopConvertImpl.java:132)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShopPage(StoreShopController.java:87)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$FastClassBySpringCGLIB$$ab3b6a84.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$EnhancerBySpringCGLIB$$8628f06.getShopPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 11:48:43', NULL, '2023-08-06 11:48:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1307, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 11:49:21', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopRespVO.setImages(Ljava/lang/String;)Lco/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO;\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:90)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertList(StoreShopConvertImpl.java:118)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertPage(StoreShopConvertImpl.java:132)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShopPage(StoreShopController.java:87)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$FastClassBySpringCGLIB$$ab3b6a84.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$EnhancerBySpringCGLIB$$8628f06.getShopPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 11:49:21', NULL, '2023-08-06 11:49:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1308, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 12:00:56', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:90)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertList(StoreShopConvertImpl.java:118)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertPage(StoreShopConvertImpl.java:132)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShopPage(StoreShopController.java:87)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$FastClassBySpringCGLIB$$ab3b6a84.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$EnhancerBySpringCGLIB$$fd412f22.getShopPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 12:00:57', NULL, '2023-08-06 12:00:57', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1309, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 12:02:58', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getImages()Ljava/lang/String;\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:90)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertList(StoreShopConvertImpl.java:118)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertPage(StoreShopConvertImpl.java:132)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShopPage(StoreShopController.java:87)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$FastClassBySpringCGLIB$$ab3b6a84.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$EnhancerBySpringCGLIB$$81b08fec.getShopPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 12:02:58', NULL, '2023-08-06 12:02:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1310, '', 1, 2, 'yshop-server', 'POST', '/admin-api/store/shop/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"yshop\\\",\\\"mobile\\\":\\\"18000000000\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\",\\\"images\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"address\\\":\\\"67号\\\",\\\"addressMap\\\":\\\"北京市东城区\\\",\\\"lng\\\":116.40403593222032,\\\"lat\\\":39.91643892263258,\\\"distance\\\":\\\"0\\\",\\\"minPrice\\\":\\\"1\\\",\\\"deliveryPrice\\\":\\\"2\\\",\\\"notice\\\":\\\"2222\\\",\\\"status\\\":1,\\\"adminId\\\":[100],\\\"uniprintId\\\":\\\"2\\\",\\\"startTime\\\":\\\"2023-08-06T05:09:13.000Z\\\",\\\"endTime\\\":\\\"2023-08-06T07:09:13.000Z\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 13:10:44', '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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\'); 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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 179] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])', '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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 179] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])', '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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\'); 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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 179] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\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 (\'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 179] (through reference chain: co.yixiang.yshop.module.store.controller.admin.storeshop.vo.StoreShopCreateReqVO[\"images\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1728)\n at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1353)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromString(StdDeserializer.java:311)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.handleNonArray(StringCollectionDeserializer.java:284)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:192)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:182)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:25)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-06 13:10:44', NULL, '2023-08-06 13:10:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1311, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/get', '{\"query\":{\"id\":\"3\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 13:32:02', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getStartTime()Ljava/time/LocalDateTime;', 'NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getStartTime()Ljava/time/LocalDateTime;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getStartTime()Ljava/time/LocalDateTime;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getStartTime()Ljava/time/LocalDateTime;\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:120)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShop(StoreShopController.java:70)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$FastClassBySpringCGLIB$$ab3b6a84.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$EnhancerBySpringCGLIB$$297bbfcd.getShop()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 13:32:02', NULL, '2023-08-06 13:32:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1312, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/ads/create', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":\\\"1\\\",\\\"shopId\\\":[0]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 18:21:56', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 166] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO[\"shopId\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 166] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO[\"shopId\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 166] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO[\"shopId\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 166] (through reference chain: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO[\"shopId\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-06 18:21:56', NULL, '2023-08-06 18:21:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1313, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/ads/create', '{\"query\":{},\"body\":\"{\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\",\\\"isSwitch\\\":1,\\\"weigh\\\":\\\"1\\\",\\\"shopId\\\":[0]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-06 18:25:48', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO.getShopId()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO.getShopId()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO.getShopId()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO.getShopId()Ljava/lang/String;\n at co.yixiang.yshop.module.shop.convert.shopads.ShopAdsConvertImpl.convert(ShopAdsConvertImpl.java:31)\n at co.yixiang.yshop.module.shop.service.shopads.ShopAdsServiceImpl.createAds(ShopAdsServiceImpl.java:33)\n at co.yixiang.yshop.module.shop.service.shopads.ShopAdsServiceImpl$$FastClassBySpringCGLIB$$257ba9d4.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.shopads.ShopAdsServiceImpl$$EnhancerBySpringCGLIB$$1149f459.createAds()\n at co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.createAds(ShopAdsController.java:44)\n at co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController$$FastClassBySpringCGLIB$$399ddffd.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController$$EnhancerBySpringCGLIB$$8e37845a.createAds()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-06 18:25:48', NULL, '2023-08-06 18:25:48', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1314, '', 1, 2, 'yshop-server', 'POST', '/admin-api/shop/service/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"积分签到\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\",\\\"type\\\":\\\"pages\\\",\\\"pages\\\":\\\"/\\\",\\\"weigh\\\":\\\"1\\\",\\\"status\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-08 11:08:21', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'content\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.shop.dal.mysql.service.ServiceMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_service ( name, image, type, pages, weigh, status, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'content\' doesn\'t have a default value\n; Field \'content\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'content\' doesn\'t have a default value', 'SQLException: Field \'content\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'content\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.shop.dal.mysql.service.ServiceMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_service ( name, image, type, pages, weigh, status, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'content\' doesn\'t have a default value\n; Field \'content\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'content\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy321.insert(Unknown Source)\n at co.yixiang.yshop.module.shop.service.service.ServiceServiceImpl.createService(ServiceServiceImpl.java:34)\n at co.yixiang.yshop.module.shop.service.service.ServiceServiceImpl$$FastClassBySpringCGLIB$$851e197e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.service.service.ServiceServiceImpl$$EnhancerBySpringCGLIB$$d0a49360.createService()\n at co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceController.java:44)\n at co.yixiang.yshop.module.shop.controller.admin.service.ServiceController$$FastClassBySpringCGLIB$$5579d313.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor158.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.shop.controller.admin.service.ServiceController$$EnhancerBySpringCGLIB$$3112fb79.createService()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'content\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor119.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 170 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-08 11:08:21', NULL, '2023-08-08 11:08:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1315, '', 1, 2, 'yshop-server', 'POST', '/admin-api/coupon/create', '{\"query\":{},\"body\":\"{\\\"shopId\\\":[2],\\\"title\\\":\\\"意向优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"10\\\",\\\"value\\\":\\\"2\\\",\\\"startTime\\\":1691510400000,\\\"endtIme\\\":1693324800000,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"6666\\\",\\\"distribute\\\":\\\"100\\\",\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"limit\\\":\\\"1\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 10:13:15', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO.getShopId()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO.getShopId()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO.getShopId()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO.getShopId()Ljava/lang/String;\n at co.yixiang.yshop.module.coupon.convert.coupon.CouponConvertImpl.convert(CouponConvertImpl.java:28)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl.create(CouponServiceImpl.java:42)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl$$FastClassBySpringCGLIB$$7293b49c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl$$EnhancerBySpringCGLIB$$1e21ac77.create()\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponController.java:44)\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController$$FastClassBySpringCGLIB$$c44b85d5.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController$$EnhancerBySpringCGLIB$$f8b0169c.create()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-09 10:13:15', NULL, '2023-08-09 10:13:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1316, '', 1, 2, 'yshop-server', 'POST', '/admin-api/coupon/create', '{\"query\":{},\"body\":\"{\\\"shopId\\\":3,\\\"title\\\":\\\"意向优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"10\\\",\\\"value\\\":\\\"2\\\",\\\"startTime\\\":1691510400000,\\\"endtIme\\\":1693324800000,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"6666\\\",\\\"distribute\\\":\\\"100\\\",\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"limit\\\":\\\"1\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 10:43:22', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 11] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO[\"shopId\"])', 'MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 11] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO[\"shopId\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 11] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO[\"shopId\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 11] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO[\"shopId\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.handleNonArray(StringCollectionDeserializer.java:286)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:192)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:182)\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:25)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-09 10:43:22', NULL, '2023-08-09 10:43:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1317, '', 1, 2, 'yshop-server', 'POST', '/admin-api/coupon/create', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"100\\\",\\\"value\\\":\\\"10\\\",\\\"startTime\\\":1691510400000,\\\"endtIme\\\":1693411200000,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"666\\\",\\\"distribute\\\":\\\"100\\\",\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\\\",\\\"limit\\\":\\\"1\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 11:13:13', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n### The error may exist in co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.coupon.dal.mysql.coupon.CouponMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_coupon ( shop_id, shop_name, title, is_switch, least, value, start_time, endt_ime, type, exchange_code, distribute, instructions, image, limit, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n### The error may exist in co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.coupon.dal.mysql.coupon.CouponMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_coupon ( shop_id, shop_name, title, is_switch, least, value, start_time, endt_ime, type, exchange_code, distribute, instructions, image, limit, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy386.insert(Unknown Source)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl.create(CouponServiceImpl.java:43)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl$$FastClassBySpringCGLIB$$7293b49c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.service.coupon.CouponServiceImpl$$EnhancerBySpringCGLIB$$41c669fd.create()\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponController.java:44)\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController$$FastClassBySpringCGLIB$$c44b85d5.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor163.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController$$EnhancerBySpringCGLIB$$ab72a6b6.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor241.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor241.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 170 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-08-09 11:13:13', NULL, '2023-08-09 11:13:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1318, '', 1, 2, 'yshop-server', 'GET', '/admin-api/coupon/user/list', '{\"query\":{\"couponId\":\"2\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 11:55:59', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, shop_id, shop_name, title, least, value, starttime, endtime, createtime, updatetime, type, score, instructions, image, user_id, status, coupon_id, exchange_code, create_time, update_time, creator, updater, deleted FROM yshop_coupon_user WHERE deleted = 0 AND (coupon_id = ?) ORDER BY id DESC\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, shop_id, shop_name, title, least, value, starttime, endtime, createtime, updatetime, type, score, instructions, image, user_id, status, coupon_id, exchange_code, create_time, update_time, creator, updater, deleted FROM yshop_coupon_user WHERE deleted = 0 AND (coupon_id = ?) ORDER BY id DESC\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy388.selectList(Unknown Source)\n at co.yixiang.yshop.module.coupon.dal.mysql.couponuser.CouponUserMapper.selectList(CouponUserMapper.java:43)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy388.selectList(Unknown Source)\n at co.yixiang.yshop.module.coupon.service.couponuser.CouponUserServiceImpl.getUserList(CouponUserServiceImpl.java:71)\n at co.yixiang.yshop.module.coupon.service.couponuser.CouponUserServiceImpl$$FastClassBySpringCGLIB$$8279645c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.service.couponuser.CouponUserServiceImpl$$EnhancerBySpringCGLIB$$2d6dff10.getUserList()\n at co.yixiang.yshop.module.coupon.controller.admin.couponuser.CouponUserController.getUserList(CouponUserController.java:78)\n at co.yixiang.yshop.module.coupon.controller.admin.couponuser.CouponUserController$$FastClassBySpringCGLIB$$7edf9e15.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.controller.admin.couponuser.CouponUserController$$EnhancerBySpringCGLIB$$606f6a3c.getUserList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'createtime\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor118.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor110.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor143.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-08-09 11:55:59', NULL, '2023-08-09 11:55:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1319, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 15:30:02', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: Broken pipe', 'IOException: Broken pipe', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351)\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:784)\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:687)\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:386)\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:364)\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeNumber(UTF8JsonGenerator.java:990)\n at com.fasterxml.jackson.databind.ser.std.NumberSerializer.serialize(NumberSerializer.java:81)\n at co.yixiang.yshop.framework.jackson.core.databind.NumberSerializer.serialize(NumberSerializer.java:32)\n at co.yixiang.yshop.framework.jackson.core.databind.NumberSerializer.serialize(NumberSerializer.java:16)\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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 Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351)\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:784)\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:687)\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:386)\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:364)\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\n ... 122 more\n Caused by: java.io.IOException: Broken pipe\n at sun.nio.ch.FileDispatcherImpl.write0(Native Method)\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:768)\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:593)\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:537)\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\n at org.apache.coyote.Response.doWrite(Response.java:603)\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:338)\n ... 132 more\nCaused by: java.io.IOException: Broken pipe\n at sun.nio.ch.FileDispatcherImpl.write0(Native Method)\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:768)\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:593)\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:537)\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\n at org.apache.coyote.Response.doWrite(Response.java:603)\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:338)\n ... 148 more\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 351, 0, NULL, 0, NULL, '2023-08-09 15:30:03', NULL, '2023-08-09 15:30:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1320, '', 1, 2, 'yshop-server', 'POST', '/admin-api/score/product/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"50qq\\\",\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"desc\\\":\\\"

555

\\\",\\\"score\\\":\\\"10\\\",\\\"stock\\\":\\\"100\\\",\\\"isSwitch\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 17:11:34', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-09 17:11:34', NULL, '2023-08-09 17:11:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1321, '', 1, 2, 'yshop-server', 'POST', '/admin-api/score/product/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"50qq\\\",\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"desc\\\":\\\"

555

\\\",\\\"score\\\":\\\"10\\\",\\\"stock\\\":\\\"100\\\",\\\"isSwitch\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 17:16:16', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 156] (through reference chain: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO[\"images\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-09 17:16:16', NULL, '2023-08-09 17:16:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1322, '', 1, 2, 'yshop-server', 'POST', '/admin-api/score/product/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"50qq\\\",\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"desc\\\":\\\"

555

\\\",\\\"score\\\":\\\"10\\\",\\\"stock\\\":\\\"100\\\",\\\"isSwitch\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 17:22:48', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO.getImages()Ljava/lang/String;', 'NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO.getImages()Ljava/lang/String;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO.getImages()Ljava/lang/String;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO.getImages()Ljava/lang/String;\n at co.yixiang.yshop.module.score.convert.scoreproduct.ScoreProductConvertImpl.convert(ScoreProductConvertImpl.java:30)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl.createProduct(ScoreProductServiceImpl.java:33)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$FastClassBySpringCGLIB$$e8472008.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$EnhancerBySpringCGLIB$$b2e8a31c.createProduct()\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductController.java:44)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$FastClassBySpringCGLIB$$a49a62c1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$EnhancerBySpringCGLIB$$1e2f9d8b.createProduct()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-09 17:22:48', NULL, '2023-08-09 17:22:48', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1323, '', 1, 2, 'yshop-server', 'POST', '/admin-api/score/product/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"50qq\\\",\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"desc\\\":\\\"

555

\\\",\\\"score\\\":\\\"10\\\",\\\"stock\\\":\\\"100\\\",\\\"isSwitch\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 17:35:24', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n### The error may exist in co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_score_product ( title, image, images, desc, score, stock, is_switch, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4', 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n### The error may exist in co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_score_product ( title, image, images, desc, score, stock, is_switch, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy392.insert(Unknown Source)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl.createProduct(ScoreProductServiceImpl.java:34)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$FastClassBySpringCGLIB$$e8472008.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$EnhancerBySpringCGLIB$$98f35b41.createProduct()\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductController.java:44)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$FastClassBySpringCGLIB$$a49a62c1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$EnhancerBySpringCGLIB$$e4f057d8.createProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor118.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-08-09 17:35:24', NULL, '2023-08-09 17:35:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1324, '', 1, 2, 'yshop-server', 'POST', '/admin-api/score/product/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"50qq\\\",\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\\\",\\\"images\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"desc\\\":\\\"

555

\\\",\\\"score\\\":\\\"10\\\",\\\"stock\\\":\\\"100\\\",\\\"isSwitch\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-09 17:41:27', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_score_product ( title, image, images, `desc`, score, stock, is_switch, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_score_product ( title, image, images, `desc`, score, stock, is_switch, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy392.insert(Unknown Source)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl.createProduct(ScoreProductServiceImpl.java:34)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$FastClassBySpringCGLIB$$e8472008.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductServiceImpl$$EnhancerBySpringCGLIB$$8e2ab436.createProduct()\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductController.java:44)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$FastClassBySpringCGLIB$$a49a62c1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController$$EnhancerBySpringCGLIB$$73de5de.createProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor119.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-08-09 17:41:27', NULL, '2023-08-09 17:41:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1325, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-session', '{\"query\":{\"code\":\"0a1QXGkl2ge0Pb4zutml2LhnRb1QXGkU\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '2023-08-11 12:01:31', 'org.springframework.web.HttpMediaTypeNotSupportedException', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'org.springframework.web.HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:211)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver', 'AbstractMessageConverterMethodArgumentResolver.java', 'readWithMessageConverters', 211, 0, NULL, 0, NULL, '2023-08-11 12:01:31', NULL, '2023-08-11 12:01:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1326, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"orIMY4xGhMmipwFZoSL1vOhUNFZ0\",\"encryptedData\":\"nTWfM4Af2Knzbt7QKOGPqybYSv5a1neausyoC6JGREST13zf92y+WMCCVLkOphwHYsimnYt+VPIgY/q/VVRQEwjVStJ9gqcnQPMF3nTqv+wKlYqMhu4dWtmBY/kZjoEhkMxCJLCz+7/d+8ZtT64MJ4Tu0+ZTgGd2VrzV/g/6JgyvCAYBC0cbwKKqsmdcRA3DDNoOVztL/7dMVC9aV6JaNg==\",\"iv\":\"AHcrTA45/ARt85eQ06lrGQ==\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '2023-08-12 09:40:21', 'java.lang.RuntimeException', 'RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'NfnRGFZXKKMCyNJTJksCHA\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"NfnRGFZXKKMCyNJTJksCHA==\"; line: 1, column: 23]', 'JsonParseException: Unrecognized token \'NfnRGFZXKKMCyNJTJksCHA\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"NfnRGFZXKKMCyNJTJksCHA==\"; line: 1, column: 23]', 'java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'NfnRGFZXKKMCyNJTJksCHA\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"NfnRGFZXKKMCyNJTJksCHA==\"; line: 1, column: 23]\n at co.yixiang.yshop.framework.common.util.json.JsonUtils.parseObject(JsonUtils.java:69)\n at co.yixiang.yshop.module.member.dal.redis.order.MiniRedisDAO.get(MiniRedisDAO.java:24)\n at co.yixiang.yshop.module.member.dal.redis.order.MiniRedisDAO$$FastClassBySpringCGLIB$$81b21e28.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.dal.redis.order.MiniRedisDAO$$EnhancerBySpringCGLIB$$362070a5.get()\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.weixinMiniAppLogin3(MemberAuthServiceImpl.java:200)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$a70d9c2b.weixinMiniAppLogin3()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin3(AppAuthController.java:134)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$6c099a84.weixinMiniAppLogin3()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'NfnRGFZXKKMCyNJTJksCHA\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"NfnRGFZXKKMCyNJTJksCHA==\"; line: 1, column: 23]\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:745)\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2961)\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2939)\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._matchToken(ReaderBasedJsonParser.java:2713)\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1979)\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)\n at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4761)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4667)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\n at co.yixiang.yshop.framework.common.util.json.JsonUtils.parseObject(JsonUtils.java:66)\n ... 168 more\n', 'co.yixiang.yshop.framework.common.util.json.JsonUtils', 'JsonUtils.java', 'parseObject', 69, 0, NULL, 0, NULL, '2023-08-12 09:40:21', NULL, '2023-08-12 09:40:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1327, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{\"openid\":\"orIMY4xGhMmipwFZoSL1vOhUNFZ0\",\"encryptedData\":\"pfF27XrRH0cAXoYxUEvcjGLo7aA1XzDUIC1GxYPSmgBjY21TbqlFlRsf92ZUsamJgCz5inGFPA7FlrdqQPZlHwo481kCcN/YfaSW42T/6lTZt8TpdlGj3lbn2ujkVmnkNQTPpZAXXA2NKkCqe0LvwV2z452/8KO4DFynyg0LCtCr8x1i3ODhLd7yai7XZBgVw/9YOlv3kDn2IVQ6/x68/w==\",\"iv\":\"fP65mTatbwIGtWU9rmS7jw==\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '2023-08-12 10:20:13', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.weixinMiniAppLogin3(MemberAuthServiceImpl.java:211)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$98161b04.weixinMiniAppLogin3()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin3(AppAuthController.java:134)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor146.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$33dfa61b.weixinMiniAppLogin3()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl', 'MemberAuthServiceImpl.java', 'weixinMiniAppLogin3', 211, 0, NULL, 0, NULL, '2023-08-12 10:20:13', NULL, '2023-08-12 10:20:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1328, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/category/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"甜点\\\",\\\"picUrl\\\":\\\"\\\",\\\"status\\\":0,\\\"description\\\":\\\"\\\",\\\"shopId\\\":2,\\\"sort\\\":1}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 12:57:42', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.category.ProductCategoryMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_product_category ( shop_id, shop_name, name, pic_url, sort, description, status, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n; Field \'parent_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value', 'SQLException: Field \'parent_id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.product.dal.mysql.category.ProductCategoryMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_product_category ( shop_id, shop_name, name, pic_url, sort, description, status, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n; Field \'parent_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy376.insert(Unknown Source)\n at co.yixiang.yshop.module.product.service.category.ProductCategoryServiceImpl.createCategory(ProductCategoryServiceImpl.java:49)\n at co.yixiang.yshop.module.product.service.category.ProductCategoryServiceImpl$$FastClassBySpringCGLIB$$950b6134.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.category.ProductCategoryServiceImpl$$EnhancerBySpringCGLIB$$fa4f8c2c.createCategory()\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryController.java:38)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$FastClassBySpringCGLIB$$e016393f.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$EnhancerBySpringCGLIB$$e11b3ba.createCategory()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'parent_id\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-15 12:57:42', NULL, '2023-08-15 12:57:42', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1329, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:02:48', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"意向餐饮店\"', 'NumberFormatException: For input string: \"意向餐饮店\"', 'java.lang.NumberFormatException: For input string: \"意向餐饮店\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:580)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convert(ProductCategoryConvertImpl.java:74)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convertList(ProductCategoryConvertImpl.java:96)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.getCategoryList(ProductCategoryController.java:73)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$FastClassBySpringCGLIB$$e016393f.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$EnhancerBySpringCGLIB$$e11b3ba.getCategoryList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-15 13:02:48', NULL, '2023-08-15 13:02:48', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1330, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:04:16', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"意向餐饮店\"', 'NumberFormatException: For input string: \"意向餐饮店\"', 'java.lang.NumberFormatException: For input string: \"意向餐饮店\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:580)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convert(ProductCategoryConvertImpl.java:74)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convertList(ProductCategoryConvertImpl.java:96)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.getCategoryList(ProductCategoryController.java:73)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$FastClassBySpringCGLIB$$e016393f.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$EnhancerBySpringCGLIB$$e11b3ba.getCategoryList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-15 13:04:16', NULL, '2023-08-15 13:04:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1331, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:04:27', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"意向餐饮店\"', 'NumberFormatException: For input string: \"意向餐饮店\"', 'java.lang.NumberFormatException: For input string: \"意向餐饮店\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:580)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convert(ProductCategoryConvertImpl.java:74)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convertList(ProductCategoryConvertImpl.java:96)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.getCategoryList(ProductCategoryController.java:73)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$FastClassBySpringCGLIB$$e016393f.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$EnhancerBySpringCGLIB$$e11b3ba.getCategoryList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-15 13:04:27', NULL, '2023-08-15 13:04:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1332, '', 1, 2, 'yshop-server', 'GET', '/admin-api/product/category/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:07:32', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"意向餐饮店\"', 'NumberFormatException: For input string: \"意向餐饮店\"', 'java.lang.NumberFormatException: For input string: \"意向餐饮店\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:580)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convert(ProductCategoryConvertImpl.java:74)\n at co.yixiang.yshop.module.product.convert.category.ProductCategoryConvertImpl.convertList(ProductCategoryConvertImpl.java:96)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.getCategoryList(ProductCategoryController.java:73)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$FastClassBySpringCGLIB$$e016393f.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController$$EnhancerBySpringCGLIB$$9eff22fc.getCategoryList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-15 13:07:32', NULL, '2023-08-15 13:07:32', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1333, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":null,\\\"parentId\\\":0,\\\"name\\\":\\\"饮料\\\",\\\"picUrl\\\":[],\\\"sort\\\":1,\\\"description\\\":\\\"1234\\\",\\\"status\\\":0,\\\"id\\\":1,\\\"createTime\\\":1659170195000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:11:00', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:11:00', NULL, '2023-08-15 13:11:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1334, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":null,\\\"parentId\\\":0,\\\"name\\\":\\\"炒菜\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:14:57', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 67] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:14:57', NULL, '2023-08-15 13:14:57', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1335, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:16:03', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:16:03', NULL, '2023-08-15 13:16:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1336, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:17:35', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:17:35', NULL, '2023-08-15 13:17:35', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1337, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:21:59', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:21:59', NULL, '2023-08-15 13:21:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1338, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:23:58', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:23:58', NULL, '2023-08-15 13:23:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1339, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:24:13', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:24:13', NULL, '2023-08-15 13:24:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1340, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"手机\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 13:28:35', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-08-15 13:28:35', NULL, '2023-08-15 13:28:35', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1341, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":16,\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"shopName\\\":null,\\\"shopId\\\":null,\\\"keyword\\\":\\\"多规格\\\",\\\"price\\\":94,\\\"postage\\\":10,\\\"sort\\\":0,\\\"sales\\\":0,\\\"stock\\\":580,\\\"description\\\":\\\"

多规格

\\\",\\\"cost\\\":200,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":\\\"\\\",\\\"brokerage\\\":0,\\\"price\\\":0,\\\"cost\\\":0,\\\"stock\\\":0,\\\"integral\\\":0,\\\"pic\\\":\\\"\\\",\\\"value1\\\":\\\"\\\",\\\"value2\\\":\\\"\\\",\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":0,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"6寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":99,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":90,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"6寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":98,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":98,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"6寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":97,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":97,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"7寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":96,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"7寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":95,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"7寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":94,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":94,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"store_name\\\":\\\"多规格商品\\\",\\\"store_info\\\":\\\"多规格\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":200,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"尺寸\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"颜色\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"value2\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"action\\\"}]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 17:31:39', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:469)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$473aedc2.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:44)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor154.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$f785938d.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'insertAndEditYxStoreProduct', 469, 0, NULL, 0, NULL, '2023-08-15 17:31:39', NULL, '2023-08-15 17:31:39', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1342, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":16,\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"shopName\\\":null,\\\"shopId\\\":null,\\\"keyword\\\":\\\"多规格\\\",\\\"price\\\":94,\\\"postage\\\":10,\\\"sort\\\":0,\\\"sales\\\":0,\\\"stock\\\":580,\\\"description\\\":\\\"

多规格

\\\",\\\"cost\\\":200,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":\\\"\\\",\\\"brokerage\\\":0,\\\"price\\\":0,\\\"cost\\\":0,\\\"stock\\\":0,\\\"integral\\\":0,\\\"pic\\\":\\\"\\\",\\\"value1\\\":\\\"\\\",\\\"value2\\\":\\\"\\\",\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":0,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"6寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":99,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":90,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"6寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":98,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":98,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"6寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":97,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":97,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"7寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":96,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"7寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":95,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"7寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":94,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":94,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"store_name\\\":\\\"多规格商品\\\",\\\"store_info\\\":\\\"多规格\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":200,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"尺寸\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"颜色\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"value2\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"action\\\"}]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 17:31:43', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:469)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$473aedc2.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:44)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor154.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$f785938d.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'insertAndEditYxStoreProduct', 469, 0, NULL, 0, NULL, '2023-08-15 17:31:43', NULL, '2023-08-15 17:31:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1343, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":16,\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"shopName\\\":null,\\\"shopId\\\":null,\\\"keyword\\\":\\\"多规格\\\",\\\"price\\\":94,\\\"postage\\\":10,\\\"sort\\\":0,\\\"sales\\\":0,\\\"stock\\\":580,\\\"description\\\":\\\"

多规格

\\\",\\\"cost\\\":200,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":\\\"\\\",\\\"brokerage\\\":0,\\\"price\\\":0,\\\"cost\\\":0,\\\"stock\\\":0,\\\"integral\\\":0,\\\"pic\\\":\\\"\\\",\\\"value1\\\":\\\"\\\",\\\"value2\\\":\\\"\\\",\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":0,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"6寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":99,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":90,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"6寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":98,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":98,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"6寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":97,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":97,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"7寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":96,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"7寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":95,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"7寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":94,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":94,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"store_name\\\":\\\"多规格商品\\\",\\\"store_info\\\":\\\"多规格\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":200,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"尺寸\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"颜色\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"value2\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"action\\\"}]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 17:35:55', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:469)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$473aedc2.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:44)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor154.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$f785938d.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'insertAndEditYxStoreProduct', 469, 0, NULL, 0, NULL, '2023-08-15 17:35:55', NULL, '2023-08-15 17:35:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1344, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":16,\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"shopName\\\":null,\\\"shopId\\\":null,\\\"keyword\\\":\\\"多规格\\\",\\\"price\\\":94,\\\"postage\\\":10,\\\"sort\\\":0,\\\"sales\\\":0,\\\"stock\\\":580,\\\"description\\\":\\\"

多规格

\\\",\\\"cost\\\":200,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":\\\"\\\",\\\"brokerage\\\":0,\\\"price\\\":0,\\\"cost\\\":0,\\\"stock\\\":0,\\\"integral\\\":0,\\\"pic\\\":\\\"\\\",\\\"value1\\\":\\\"\\\",\\\"value2\\\":\\\"\\\",\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":0,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}],\\\"attrs\\\":[{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"6寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":99,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":90,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"6寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":98,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":98,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"6寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"6寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"6寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":97,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":97,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"黑白\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"黑白\\\"},\\\"sku\\\":\\\"7寸,黑白\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":96,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"红色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"红色\\\"},\\\"sku\\\":\\\"7寸,红色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":95,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":95,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0},{\\\"value1\\\":\\\"7寸\\\",\\\"value2\\\":\\\"灰色\\\",\\\"detail\\\":{\\\"尺寸\\\":\\\"7寸\\\",\\\"颜色\\\":\\\"灰色\\\"},\\\"sku\\\":\\\"7寸,灰色\\\",\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"price\\\":94,\\\"cost\\\":200,\\\"ot_price\\\":200,\\\"stock\\\":94,\\\"bar_code\\\":\\\"\\\",\\\"weight\\\":0,\\\"volume\\\":0,\\\"brokerage\\\":0,\\\"brokerage_two\\\":0,\\\"pink_price\\\":0,\\\"seckill_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_stock\\\":0,\\\"integral\\\":0}],\\\"slider_image\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\\\",\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\\\"],\\\"store_name\\\":\\\"多规格商品\\\",\\\"store_info\\\":\\\"多规格\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":200,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":0,\\\"is_postage\\\":0,\\\"give_integral\\\":0,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":0,\\\"spec_type\\\":1,\\\"header\\\":[{\\\"title\\\":\\\"尺寸\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value1\\\",\\\"slot\\\":\\\"value1\\\"},{\\\"title\\\":\\\"颜色\\\",\\\"minWidth\\\":\\\"130\\\",\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"value2\\\"},{\\\"title\\\":\\\"图片\\\",\\\"minWidth\\\":80,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"pic\\\"},{\\\"title\\\":\\\"售价\\\",\\\"minWidth\\\":120,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"price\\\"},{\\\"title\\\":\\\"成本价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"cost\\\"},{\\\"title\\\":\\\"原价\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"ot_price\\\"},{\\\"title\\\":\\\"库存\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"stock\\\"},{\\\"title\\\":\\\"产品编号\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"bar_code\\\"},{\\\"title\\\":\\\"重量(KG)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"weight\\\"},{\\\"title\\\":\\\"体积(m³)\\\",\\\"minWidth\\\":140,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"volume\\\"},{\\\"title\\\":\\\"操作\\\",\\\"minWidth\\\":70,\\\"align\\\":\\\"center\\\",\\\"key\\\":\\\"value2\\\",\\\"slot\\\":\\\"action\\\"}]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '2023-08-15 17:36:00', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl.insertAndEditYxStoreProduct(StoreProductServiceImpl.java:469)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$FastClassBySpringCGLIB$$9e07422b.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl$$EnhancerBySpringCGLIB$$473aedc2.insertAndEditYxStoreProduct()\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductController.java:44)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$FastClassBySpringCGLIB$$96e84524.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor154.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController$$EnhancerBySpringCGLIB$$f785938d.createStoreProduct()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.product.service.storeproduct.StoreProductServiceImpl', 'StoreProductServiceImpl.java', 'insertAndEditYxStoreProduct', 469, 0, NULL, 0, NULL, '2023-08-15 17:36:00', NULL, '2023-08-15 17:36:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1345, '', 6, 1, 'yshop-server', 'POST', '/app-api/address/addAndEdit', '{\"query\":{\"realName\":\"hupeng\",\"isDefault\":\"0\",\"address\":\"河南省漯河市郾城区淮河路10号 漯河市人民政府\",\"lng\":\"114.01681\",\"phone\":\"18000000000\",\"latitude\":\"\",\"detail\":\"66\",\"lat\":\"33.58149\",\"longitude\":\"\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-20 10:55:19', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.useraddress.UserAddressMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user_address ( uid, real_name, phone, detail, longitude, latitude, is_default, address, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.useraddress.UserAddressMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user_address ( uid, real_name, phone, detail, longitude, latitude, is_default, address, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy294.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl.addAndEdit(AppUserAddressServiceImpl.java:58)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$FastClassBySpringCGLIB$$32676407.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$EnhancerBySpringCGLIB$$c33030a8.addAndEdit()\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController.addYxUserAddress(AppUserAddressController.java:73)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$FastClassBySpringCGLIB$$12ff7695.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor142.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$EnhancerBySpringCGLIB$$97af289b.addYxUserAddress()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'address\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor194.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor134.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor134.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor223.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 175 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-08-20 10:55:19', NULL, '2023-08-20 10:55:19', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1346, '', 6, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-20 10:56:45', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"\"', 'NumberFormatException: For input string: \"\"', 'java.lang.NumberFormatException: For input string: \"\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:592)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.userAddressDOToAppUserAddressQueryVo(UserAddressConvertImpl.java:159)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.convertList02(UserAddressConvertImpl.java:123)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl.getList(AppUserAddressServiceImpl.java:100)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$FastClassBySpringCGLIB$$32676407.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$EnhancerBySpringCGLIB$$c33030a8.getList()\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController.getYxUserAddressPageList(AppUserAddressController.java:116)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$FastClassBySpringCGLIB$$12ff7695.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor142.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$EnhancerBySpringCGLIB$$97af289b.getYxUserAddressPageList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-20 10:56:45', NULL, '2023-08-20 10:56:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1347, '', 6, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-20 11:35:28', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"\"', 'NumberFormatException: For input string: \"\"', 'java.lang.NumberFormatException: For input string: \"\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:592)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.userAddressDOToAppUserAddressQueryVo(UserAddressConvertImpl.java:157)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.convertList02(UserAddressConvertImpl.java:123)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl.getList(AppUserAddressServiceImpl.java:100)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$FastClassBySpringCGLIB$$32676407.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$EnhancerBySpringCGLIB$$6c267085.getList()\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController.getYxUserAddressPageList(AppUserAddressController.java:116)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$FastClassBySpringCGLIB$$12ff7695.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$EnhancerBySpringCGLIB$$afd83e58.getYxUserAddressPageList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-20 11:35:28', NULL, '2023-08-20 11:35:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1348, '', 6, 1, 'yshop-server', 'GET', '/app-api/address/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-20 11:37:43', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"\"', 'NumberFormatException: For input string: \"\"', 'java.lang.NumberFormatException: For input string: \"\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n at java.lang.Integer.parseInt(Integer.java:592)\n at java.lang.Integer.parseInt(Integer.java:615)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.userAddressDOToAppUserAddressQueryVo(UserAddressConvertImpl.java:157)\n at co.yixiang.yshop.module.member.convert.useraddress.UserAddressConvertImpl.convertList02(UserAddressConvertImpl.java:123)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl.getList(AppUserAddressServiceImpl.java:100)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$FastClassBySpringCGLIB$$32676407.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$EnhancerBySpringCGLIB$$6c267085.getList()\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController.getYxUserAddressPageList(AppUserAddressController.java:116)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$FastClassBySpringCGLIB$$12ff7695.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$EnhancerBySpringCGLIB$$64dc1163.getYxUserAddressPageList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2023-08-20 11:37:43', NULL, '2023-08-20 11:37:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1349, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"{\\\"type\\\":2,\\\"address_id\\\":37,\\\"shop_id\\\":2,\\\"mobile\\\":\\\"15136175246\\\",\\\"gettime\\\":0,\\\"pay_type\\\":5,\\\"remark\\\":\\\"\\\",\\\"product_id\\\":[15,16],\\\"spec\\\":[\\\"默认\\\",\\\"6寸,黑白\\\"],\\\"number\\\":[1,1],\\\"coupon_id\\\":0}\":\"\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 11:41:55', 'org.springframework.web.HttpMediaTypeNotSupportedException', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'org.springframework.web.HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:211)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver', 'AbstractMessageConverterMethodArgumentResolver.java', 'readWithMessageConverters', 211, 0, NULL, 0, NULL, '2023-08-24 11:41:55', NULL, '2023-08-24 11:41:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1350, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"shop_id\":\"2\",\"number\":\"1,1\",\"coupon_id\":\"0\",\"gettime\":\"0\",\"product_id\":\"15,16\",\"address_id\":\"37\",\"mobile\":\"15136175246\",\"pay_type\":\"5\",\"remark\":\"\",\"type\":\"2\",\"spec\":\"默认,6寸|黑白\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 11:57:17', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: [Assertion failed] - this String argument must have length; it must not be null or empty', 'IllegalArgumentException: [Assertion failed] - this String argument must have length; it must not be null or empty', 'java.lang.IllegalArgumentException: [Assertion failed] - this String argument must have length; it must not be null or empty\n at cn.hutool.core.lang.Assert.lambda$notEmpty$4(Assert.java:279)\n at cn.hutool.core.lang.Assert.notEmpty(Assert.java:258)\n at cn.hutool.core.lang.Assert.notEmpty(Assert.java:279)\n at cn.hutool.core.lang.Assert.notEmpty(Assert.java:296)\n at cn.hutool.core.text.finder.StrFinder.(StrFinder.java:25)\n at cn.hutool.core.text.StrSplitter.split(StrSplitter.java:317)\n at cn.hutool.core.text.StrSplitter.split(StrSplitter.java:254)\n at cn.hutool.core.text.CharSequenceUtil.split(CharSequenceUtil.java:1910)\n at cn.hutool.core.text.CharSequenceUtil.split(CharSequenceUtil.java:1894)\n at cn.hutool.core.text.CharSequenceUtil.split(CharSequenceUtil.java:1880)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:289)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$dd0e3eb5.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$a84f684.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notEmpty$4', 279, 0, NULL, 0, NULL, '2023-08-24 11:57:17', NULL, '2023-08-24 11:57:17', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1351, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"number\":\"1,1\",\"payType\":\"5\",\"productId\":\"15,16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"type\":\"2\",\"couponId\":\"0\",\"spec\":\"默认,6寸|黑白\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 17:06:06', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value', 'SQLException: Field \'mark\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:366)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$77cdcf43.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$b15c7e81.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor120.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 180 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-24 17:06:06', NULL, '2023-08-24 17:06:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1352, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"number\":\"1,1\",\"payType\":\"5\",\"productId\":\"15,16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"type\":\"2\",\"couponId\":\"0\",\"spec\":\"默认,6寸|黑白\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 18:07:42', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value', 'SQLException: Field \'mark\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:366)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$77cdcf43.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$b15c7e81.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor120.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 180 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-24 18:07:42', NULL, '2023-08-24 18:07:42', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1353, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"number\":\"1\",\"payType\":\"5\",\"productId\":\"15\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"type\":\"2\",\"couponId\":\"0\",\"spec\":\"默认\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 18:11:29', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value', 'SQLException: Field \'mark\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:366)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$77cdcf43.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$b15c7e81.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor120.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor237.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor238.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 180 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-24 18:11:29', NULL, '2023-08-24 18:11:29', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1354, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"15\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"type\":\"2\",\"couponId\":\"0\",\"spec\":\"默认\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-24 18:13:08', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value', 'SQLException: Field \'mark\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, coupon_id, paid, pay_type, back_integral, shipping_type, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n; Field \'mark\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:366)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$77cdcf43.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\n at sun.reflect.GeneratedMethodAccessor258.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor161.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$b15c7e81.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'mark\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor120.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor237.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor180.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor238.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 179 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-24 18:13:08', NULL, '2023-08-24 18:13:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1355, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"number\":\"1,1\",\"payType\":\"yue\",\"productId\":\"15,16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"type\":\"2\",\"couponId\":\"0\",\"spec\":\"默认,6寸|黑白\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-25 18:43:00', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n; Field \'unique\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'unique\' doesn\'t have a default value', 'SQLException: Field \'unique\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n; Field \'unique\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:410)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$d5c0d8d9.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor137.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$54187e75.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'unique\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 180 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-08-25 18:43:00', NULL, '2023-08-25 18:43:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1356, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takeout\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"6寸|红色\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-26 11:11:27', 'org.springframework.dao.DuplicateKeyException', 'DuplicateKeyException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, order_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n; Duplicate entry \'\' for key \'yshop_store_order.unique\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'', 'SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'', 'org.springframework.dao.DuplicateKeyException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, order_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n; Duplicate entry \'\' for key \'yshop_store_order.unique\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:247)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:411)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$1e979ef.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$89c832d.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 181 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 247, 0, NULL, 0, NULL, '2023-08-26 11:11:27', NULL, '2023-08-26 11:11:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1357, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takeout\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"16\",\"gettime\":\"0\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"6寸|红色\",\"addressId\":\"37\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-26 11:13:06', 'org.springframework.dao.DuplicateKeyException', 'DuplicateKeyException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, order_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n; Duplicate entry \'\' for key \'yshop_store_order.unique\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'', 'SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'', 'org.springframework.dao.DuplicateKeyException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_store_order ( order_id, uid, real_name, user_phone, user_address, cart_id, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_type, order_type, gain_integral, use_integral, back_integral, mark, cost, shipping_type, shop_id, shop_name, number_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n; Duplicate entry \'\' for key \'yshop_store_order.unique\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:247)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy333.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:411)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$1e979ef.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:108)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$89c832d.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'\' for key \'yshop_store_order.unique\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 181 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 247, 0, NULL, 0, NULL, '2023-08-26 11:13:06', NULL, '2023-08-26 11:13:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1358, '', 6, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-26 11:48:53', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.lambda$handleOrder$1(AppStoreOrderServiceImpl.java:731)\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.handleOrder(AppStoreOrderServiceImpl.java:735)\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.orderList(AppStoreOrderServiceImpl.java:711)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$1e979ef.orderList()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.orderList(AppOrderController.java:154)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\n at sun.reflect.GeneratedMethodAccessor330.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor155.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$89c832d.orderList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'lambda$handleOrder$1', 731, 0, NULL, 0, NULL, '2023-08-26 11:48:53', NULL, '2023-08-26 11:48:53', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1359, '', 6, 1, 'yshop-server', 'GET', '/app-api/order/list', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-26 17:21:44', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.app.order.vo.AppStoreOrderQueryVo.setPayTime(Ljava/util/Date;)Lco/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo;', 'NoSuchMethodError: co.yixiang.yshop.module.order.controller.app.order.vo.AppStoreOrderQueryVo.setPayTime(Ljava/util/Date;)Lco/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.app.order.vo.AppStoreOrderQueryVo.setPayTime(Ljava/util/Date;)Lco/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.order.controller.app.order.vo.AppStoreOrderQueryVo.setPayTime(Ljava/util/Date;)Lco/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo;\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert1(StoreOrderConvertImpl.java:240)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList01(StoreOrderConvertImpl.java:303)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.orderList(AppStoreOrderServiceImpl.java:713)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$e9ef0ef8.orderList()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.orderList(AppOrderController.java:154)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$4514ad67.orderList()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-08-26 17:21:44', NULL, '2023-08-26 17:21:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1360, '', 6, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-30 18:52:27', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC', 'ParseException: Encountered unexpected token: \"NOT\" \"NOT\"\n at line 7, column 25.\n\nWas expecting one of:\n\n \"&\"\n \")\"\n \"::\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"[\"\n \"^\"\n \"|\"\n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy391.selectPage(Unknown Source)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl.getNotList(AppCouponServiceImpl.java:73)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl$$FastClassBySpringCGLIB$$9e695901.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl$$EnhancerBySpringCGLIB$$dea147e2.getNotList()\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController.myNotList(AppCouponController.java:106)\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController$$FastClassBySpringCGLIB$$8d2c81be.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController$$EnhancerBySpringCGLIB$$cb157726.myNotList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor130.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND id NOT IN () AND endt_ime > ?) ORDER BY weigh DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor131.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 182 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \"NOT\" \"NOT\"\n at line 7, column 25.\n\nWas expecting one of:\n\n \"&\"\n \")\"\n \"::\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"[\"\n \"^\"\n \"|\"\n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:9818)\n at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:9696)\n at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:9678)\n at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:9649)\n at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:9037)\n at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5667)\n at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5867)\n at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5516)\n at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5511)\n at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 194 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-08-30 18:52:27', NULL, '2023-08-30 18:52:27', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1361, '', 6, 1, 'yshop-server', 'GET', '/app-api/coupon/not', '{\"query\":{\"pagesize\":\"10\",\"page\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-08-30 18:58:28', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC', 'ParseException: Encountered unexpected token: \"NOT\" \"NOT\"\n at line 7, column 42.\n\nWas expecting one of:\n\n \"&\"\n \")\"\n \"::\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"[\"\n \"^\"\n \"|\"\n', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy391.selectPage(Unknown Source)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl.getNotList(AppCouponServiceImpl.java:76)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl$$FastClassBySpringCGLIB$$9e695901.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.service.coupon.AppCouponServiceImpl$$EnhancerBySpringCGLIB$$d2875189.getNotList()\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController.myNotList(AppCouponController.java:106)\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController$$FastClassBySpringCGLIB$$8d2c81be.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.coupon.controller.app.coupon.AppCouponController$$EnhancerBySpringCGLIB$$96023c75.myNotList()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at sun.reflect.GeneratedMethodAccessor113.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\nCaused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT \n id,shop_id,shop_name,title,is_switch,least,value,start_time,endt_ime,weigh,type,exchange_code,receive,distribute,score,instructions,image,`limit`,create_time,update_time,creator,updater,deleted \n FROM yshop_coupon \n\n WHERE deleted=0\n\nAND (shop_id = ? AND endt_ime > ? AND id NOT IN ()) ORDER BY weigh DESC\n at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)\n at co.yixiang.yshop.framework.datapermission.core.db.DataPermissionDatabaseInterceptor.beforeQuery(DataPermissionDatabaseInterceptor.java:67)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor114.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:78)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n ... 182 more\nCaused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \"NOT\" \"NOT\"\n at line 7, column 42.\n\nWas expecting one of:\n\n \"&\"\n \")\"\n \"::\"\n \"<<\"\n \">>\"\n \"COLLATE\"\n \"[\"\n \"^\"\n \"|\"\n\n at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)\n at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)\n at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:9818)\n at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:9696)\n at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:9678)\n at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:9649)\n at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:9037)\n at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5667)\n at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5867)\n at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5516)\n at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5511)\n at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)\n at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)\n at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\n ... 194 more\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 96, 0, NULL, 0, NULL, '2023-08-30 18:58:28', NULL, '2023-08-30 18:58:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1362, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"15\",\"gettime\":\"10\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"默认\",\"addressId\":\"0\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-05 09:06:59', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:205)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$44c55578.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:76)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$ed42bd9e.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'createOrder', 205, 0, NULL, 0, NULL, '2023-09-05 09:06:59', NULL, '2023-09-05 09:06:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1363, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{\"orderType\":\"takein\",\"number\":\"1\",\"payType\":\"yue\",\"productId\":\"15\",\"gettime\":\"10\",\"mobile\":\"15136175246\",\"remark\":\"\",\"shopId\":\"2\",\"couponId\":\"0\",\"spec\":\"默认\",\"addressId\":\"0\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-05 09:09:36', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:205)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$2223a81f.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:76)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$bdb4f141.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'createOrder', 205, 0, NULL, 0, NULL, '2023-09-05 09:09:37', NULL, '2023-09-05 09:09:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1364, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/take', '{\"query\":{\"id\":\"undefined\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-05 10:02:33', 'org.springframework.web.HttpMediaTypeNotSupportedException', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported', 'org.springframework.web.HttpMediaTypeNotSupportedException: Content type \'application/x-www-form-urlencoded;charset=UTF-8\' not supported\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:211)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver', 'AbstractMessageConverterMethodArgumentResolver.java', 'readWithMessageConverters', 211, 0, NULL, 0, NULL, '2023-09-05 10:02:33', NULL, '2023-09-05 10:02:33', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1365, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"yixiang001\\\",\\\"password\\\":\\\"123456789\\\",\\\"captchaVerification\\\":\\\"vp8XjsxjyMKi/4pVF88c8BVm4zBUik/SPrRQ0X2ng4jnJAWTWhQ2aGv2fxBSj8eFQ1nkSOYPnXInLh1HqNcRQQ==\\\",\\\"rememberMe\\\":false}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-05 14:38:30', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_oauth2_refresh_token ( refresh_token, user_id, user_type, client_id, expires_time, shop_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_oauth2_refresh_token ( refresh_token, user_id, user_type, client_id, expires_time, shop_id, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy152.insert(Unknown Source)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.createOAuth2RefreshToken(OAuth2TokenServiceImpl.java:163)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.createAccessToken(OAuth2TokenServiceImpl.java:57)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$b4d2ea7e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$aaf28a50.createAccessToken()\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:197)\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:108)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(AuthController.java:66)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$d0a3562c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$ea292362.login()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'shop_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor117.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 173 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2023-09-05 14:38:30', NULL, '2023-09-05 14:38:30', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1366, '', 1, 2, 'yshop-server', 'POST', '/admin-api/store/web-print/create', '{\"query\":{},\"body\":\"{\\\"title\\\":\\\"意向餐饮店-打印机\\\",\\\"mechineCode\\\":\\\"4004849210\\\",\\\"msign\\\":\\\"598981636583\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-06 15:41:45', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/store/dal/mysql/webprint/WebPrintMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.store.dal.mysql.webprint.WebPrintMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_web_print ( title, mechine_code, msign, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ? )\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: \n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n### The error may exist in co/yixiang/yshop/module/store/dal/mysql/webprint/WebPrintMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.store.dal.mysql.webprint.WebPrintMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_web_print ( title, mechine_code, msign, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ? )\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\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy143.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy364.insert(Unknown Source)\n at co.yixiang.yshop.module.store.service.webprint.WebPrintServiceImpl.createWebPrint(WebPrintServiceImpl.java:61)\n at co.yixiang.yshop.module.store.service.webprint.WebPrintServiceImpl$$FastClassBySpringCGLIB$$25fd019.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.service.webprint.WebPrintServiceImpl$$EnhancerBySpringCGLIB$$e8c2ce66.createWebPrint()\n at co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.createWebPrint(WebPrintController.java:44)\n at co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController$$FastClassBySpringCGLIB$$ee79bfd2.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController$$EnhancerBySpringCGLIB$$7d9af1b4.createWebPrint()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at sun.reflect.GeneratedMethodAccessor119.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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy166.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy164.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy163.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 171 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2023-09-06 15:41:45', NULL, '2023-09-06 15:41:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1367, '', 1, 2, 'yshop-server', 'POST', '/admin-api/product/store-product/create', '{\"query\":{},\"body\":\"{\\\"id\\\":17,\\\"image\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\",\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"shopId\\\":2,\\\"keyword\\\":\\\"邮费的商品\\\",\\\"price\\\":2,\\\"postage\\\":0,\\\"sort\\\":0,\\\"sales\\\":0,\\\"stock\\\":99,\\\"description\\\":\\\"

邮费的商品

\\\",\\\"cost\\\":10,\\\"ficti\\\":0,\\\"attr\\\":{\\\"sku\\\":null,\\\"brokerage\\\":0,\\\"price\\\":\\\"0.01\\\",\\\"cost\\\":10,\\\"stock\\\":99,\\\"integral\\\":0,\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\",\\\"value1\\\":\\\"规格\\\",\\\"value2\\\":null,\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":100,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0},\\\"items\\\":[],\\\"attrs\\\":[{\\\"sku\\\":null,\\\"brokerage\\\":0,\\\"price\\\":\\\"0.01\\\",\\\"cost\\\":10,\\\"stock\\\":99,\\\"integral\\\":0,\\\"pic\\\":\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\\\",\\\"value1\\\":\\\"规格\\\",\\\"value2\\\":null,\\\"volume\\\":0,\\\"weight\\\":0,\\\"detail\\\":null,\\\"bar_code\\\":\\\"\\\",\\\"brokerage_two\\\":0,\\\"ot_price\\\":100,\\\"pink_price\\\":0,\\\"pink_stock\\\":0,\\\"seckill_price\\\":0,\\\"seckill_stock\\\":0}],\\\"slider_image\\\":[\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\\\",\\\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\\\"],\\\"store_name\\\":\\\"我的甜点\\\",\\\"store_info\\\":\\\"邮费的商品\\\",\\\"bar_code\\\":\\\"\\\",\\\"cate_id\\\":11,\\\"ot_price\\\":100,\\\"unit_name\\\":\\\"个\\\",\\\"is_show\\\":1,\\\"is_hot\\\":0,\\\"is_benefit\\\":0,\\\"is_best\\\":0,\\\"is_new\\\":1,\\\"is_postage\\\":0,\\\"give_integral\\\":10,\\\"is_good\\\":0,\\\"is_sub\\\":0,\\\"is_integral\\\":0,\\\"temp_id\\\":38,\\\"spec_type\\\":0,\\\"header\\\":[]}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-07 09:59:52', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"意向餐饮店\": 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 \"意向餐饮店\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 150] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"shopName\"])', 'InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"意向餐饮店\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 150] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"shopName\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"意向餐饮店\": 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 \"意向餐饮店\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 150] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"shopName\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"意向餐饮店\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 150] (through reference chain: co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto[\"shopName\"])\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:844)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:824)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:531)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:506)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-07 09:59:52', NULL, '2023-09-07 09:59:52', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1368, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1699604846719533056\",\"form\":\"routine\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-07 10:05:47', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:354)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$1230f2a.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$26c34c68.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'pay', 354, 0, NULL, 0, NULL, '2023-09-07 10:05:47', NULL, '2023-09-07 10:05:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1369, '', 6, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1699606288608002048\",\"form\":\"routine\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-09-07 10:11:32', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"oDn9j8SgN5Y5QeOG\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"A84657EE6B6C5E03675751853F8966BF\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"oDn9j8SgN5Y5QeOG\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"A84657EE6B6C5E03675751853F8966BF\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"oDn9j8SgN5Y5QeOG\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"A84657EE6B6C5E03675751853F8966BF\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:342)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$258127bf.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$73112d21.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-09-07 10:11:32', NULL, '2023-09-07 10:11:32', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1370, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:41:15', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 130 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-14 16:41:15', NULL, '2023-09-14 16:41:15', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1371, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:47:34', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 130 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-14 16:47:34', NULL, '2023-09-14 16:47:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1372, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/product/category/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"parentId\\\":0,\\\"name\\\":\\\"主食\\\",\\\"picUrl\\\":[],\\\"sort\\\":2,\\\"description\\\":\\\"

123

\\\",\\\"status\\\":0,\\\"id\\\":4,\\\"createTime\\\":1659170400000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 16:48:17', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 80] (through reference chain: co.yixiang.yshop.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO[\"picUrl\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 130 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-14 16:48:17', NULL, '2023-09-14 16:48:17', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1373, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/coupon/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"0,1\\\",\\\"value\\\":\\\"0.02\\\",\\\"startTime\\\":1691510400000,\\\"endTime\\\":1725033600000,\\\"weigh\\\":0,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"88888\\\",\\\"receive\\\":1,\\\"distribute\\\":100,\\\"score\\\":0,\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\",\\\"limit\\\":1,\\\"id\\\":2,\\\"createTime\\\":1691551029000,\\\"endtIme\\\":1756915200000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:44:13', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])', 'InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$BigDecimalDeserializer.deserialize(NumberDeserializers.java:1010)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$BigDecimalDeserializer.deserialize(NumberDeserializers.java:954)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 130 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-14 17:44:13', NULL, '2023-09-14 17:44:13', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1374, '', 1, 2, 'yshop-server', 'PUT', '/admin-api/coupon/update', '{\"query\":{},\"body\":\"{\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"title\\\":\\\"意向店铺优惠券\\\",\\\"isSwitch\\\":1,\\\"least\\\":\\\"0,1\\\",\\\"value\\\":\\\"0.02\\\",\\\"startTime\\\":1691510400000,\\\"endTime\\\":1725033600000,\\\"weigh\\\":0,\\\"type\\\":0,\\\"exchangeCode\\\":\\\"88888\\\",\\\"receive\\\":1,\\\"distribute\\\":100,\\\"score\\\":0,\\\"instructions\\\":\\\"111\\\",\\\"image\\\":\\\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\\\",\\\"limit\\\":1,\\\"id\\\":2,\\\"createTime\\\":1691551029000,\\\"endtIme\\\":1756915200000}\"}', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-14 17:44:47', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])', 'InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:531)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.math.BigDecimal` from String \"0,1\": not a valid representation\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 95] (through reference chain: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponUpdateReqVO[\"least\"])\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$BigDecimalDeserializer.deserialize(NumberDeserializers.java:1010)\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$BigDecimalDeserializer.deserialize(NumberDeserializers.java:954)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 130 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-09-14 17:44:47', NULL, '2023-09-14 17:44:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1375, '', 13, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 10:24:02', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:131)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$5339f0f2.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor136.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$939311f7.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 131, 0, NULL, 0, NULL, '2023-09-15 10:24:02', NULL, '2023-09-15 10:24:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1376, '', 14, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:48:18', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:131)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$5339f0f2.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor136.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$939311f7.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 131, 0, NULL, 0, NULL, '2023-09-15 16:48:18', NULL, '2023-09-15 16:48:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1377, '', 14, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:52:14', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:131)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$5339f0f2.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor136.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$939311f7.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 131, 0, NULL, 0, NULL, '2023-09-15 16:52:14', NULL, '2023-09-15 16:52:14', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1378, '', 1, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2023-09-15 16:54:18', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:131)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$d5990020.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$4d8c6cf7.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 131, 0, NULL, 0, NULL, '2023-09-15 16:54:18', NULL, '2023-09-15 16:54:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1379, '', 2, 1, 'yshop-server', 'POST', '/app-api/address/addAndEdit', '{\"query\":{\"realName\":\"胡萝卜\",\"isDefault\":\"0\",\"address\":\"河南省漯河市源汇区交通路602号附近 富豪花园\",\"phone\":\"15136175212\",\"latitude\":\"33.5607274581116\",\"detail\":\"86号\",\"longitude\":\"114.03841284847353\"},\"body\":\"\"}', '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 11:28:00', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.useraddress.UserAddressMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user_address ( uid, real_name, phone, detail, longitude, latitude, is_default, address, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n; Data truncation: Data too long for column \'longitude\' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1', 'MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n### The error may exist in co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.member.dal.mysql.useraddress.UserAddressMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO yshop_user_address ( uid, real_name, phone, detail, longitude, latitude, is_default, address, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n; Data truncation: Data too long for column \'longitude\' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy130.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy293.insert(Unknown Source)\n at com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl.addAndEdit(AppUserAddressServiceImpl.java:58)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$FastClassBySpringCGLIB$$32676407.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.useraddress.AppUserAddressServiceImpl$$EnhancerBySpringCGLIB$$591d32dc.addAndEdit()\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController.addYxUserAddress(AppUserAddressController.java:74)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$FastClassBySpringCGLIB$$12ff7695.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor122.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.address.AppUserAddressController$$EnhancerBySpringCGLIB$$f86f5896.addYxUserAddress()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'longitude\' at row 1\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor107.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy166.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor152.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 179 more\n', 'org.springframework.jdbc.support.SQLStateSQLExceptionTranslator', 'SQLStateSQLExceptionTranslator.java', 'doTranslate', 104, 0, NULL, 0, NULL, '2023-09-18 11:28:00', NULL, '2023-09-18 11:28:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1380, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1703675968628981760\",\"from\":\"routine\",\"paytype\":\"weixin\"},\"body\":\"\"}', '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2023-09-18 15:42:59', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"ZeBMoM7IUPW3tNbj\",\"appid\":\"wx604d2ea4702620d2\",\"sign\":\"703AE53C30115417CB214BF5737761FE\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"ZeBMoM7IUPW3tNbj\",\"appid\":\"wx604d2ea4702620d2\",\"sign\":\"703AE53C30115417CB214BF5737761FE\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"ZeBMoM7IUPW3tNbj\",\"appid\":\"wx604d2ea4702620d2\",\"sign\":\"703AE53C30115417CB214BF5737761FE\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:339)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$33633d3.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor113.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$b71cec52.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-09-18 15:42:59', NULL, '2023-09-18 15:42:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1381, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:32:32', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy130.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy278.insert(Unknown Source)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.createMerchantDetails(MerchantDetailsServiceImpl.java:34)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$FastClassBySpringCGLIB$$31474afa.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$EnhancerBySpringCGLIB$$48edf9a2.createMerchantDetails()\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.createMerchantDetails(MerchantDetailsController.java:43)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$957814fa.createMerchantDetails()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy166.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 175 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2023-09-18 17:32:32', NULL, '2023-09-18 17:32:32', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1382, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:32:37', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy130.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy278.insert(Unknown Source)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.createMerchantDetails(MerchantDetailsServiceImpl.java:34)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$FastClassBySpringCGLIB$$31474afa.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$EnhancerBySpringCGLIB$$48edf9a2.createMerchantDetails()\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.createMerchantDetails(MerchantDetailsController.java:43)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$957814fa.createMerchantDetails()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy166.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 175 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2023-09-18 17:32:37', NULL, '2023-09-18 17:32:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1383, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"detailsId\\\":\\\"4\\\",\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:47:55', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy130.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy278.insert(Unknown Source)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.createMerchantDetails(MerchantDetailsServiceImpl.java:34)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$FastClassBySpringCGLIB$$31474afa.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$EnhancerBySpringCGLIB$$48edf9a2.createMerchantDetails()\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.createMerchantDetails(MerchantDetailsController.java:43)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor142.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$957814fa.createMerchantDetails()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor90.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy166.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor121.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 174 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2023-09-18 17:47:55', NULL, '2023-09-18 17:47:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1384, '', 1, 2, 'yshop-server', 'POST', '/admin-api/pay/merchant-details/create', '{\"query\":{},\"body\":\"{\\\"detailsId\\\":\\\"4\\\",\\\"payType\\\":\\\"wxPay\\\",\\\"appid\\\":\\\"wxc061dee8806ff712\\\",\\\"mchId\\\":\\\"1493624002\\\",\\\"certStoreType\\\":\\\"STR\\\",\\\"keyPrivate\\\":\\\"dayouqiantuhupeng8638004yixiangt\\\",\\\"notifyUrl\\\":\\\"https://apidc.yixiang.co/app-api/order/payBack3.json\\\",\\\"returnUrl\\\":\\\"https://dc.yixiang.co/h5/#/pages/take-foods/take-foods\\\",\\\"signType\\\":\\\"MD5\\\",\\\"isTest\\\":0}\"}', '223.91.183.134', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '2023-09-18 17:48:33', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n### The error may exist in co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java (best guess)\n### The error may involve co.yixiang.yshop.module.pay.dal.mysql.merchantdetails.MerchantDetailsMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO merchant_details ( details_id, pay_type, appid, mch_id, cert_store_type, key_private, notify_url, return_url, sign_type, is_test, create_time, update_time, creator, updater ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n; Column \'details_id\' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy130.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy278.insert(Unknown Source)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl.createMerchantDetails(MerchantDetailsServiceImpl.java:34)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$FastClassBySpringCGLIB$$31474afa.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.service.merchantdetails.MerchantDetailsServiceImpl$$EnhancerBySpringCGLIB$$48edf9a2.createMerchantDetails()\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.createMerchantDetails(MerchantDetailsController.java:43)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$FastClassBySpringCGLIB$$17fe4d23.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor142.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController$$EnhancerBySpringCGLIB$$957814fa.createMerchantDetails()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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 co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Column \'details_id\' cannot be null\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3446)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3444)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:152)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor90.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy166.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at sun.reflect.GeneratedMethodAccessor77.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.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy165.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor121.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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 174 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2023-09-18 17:48:33', NULL, '2023-09-18 17:48:33', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1385, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-19 09:58:34', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:124)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$c9254f20.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$3ecab607.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 124, 0, NULL, 0, NULL, '2023-10-19 09:58:35', NULL, '2023-10-19 09:58:35', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1386, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-19 09:58:43', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:124)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$c9254f20.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$3ecab607.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 124, 0, NULL, 0, NULL, '2023-10-19 09:58:43', NULL, '2023-10-19 09:58:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1387, '', 2, 1, 'yshop-server', 'GET', '/app-api/member/user/get-info', '{\"query\":{},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-19 10:01:36', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl.getAppUser(MemberUserServiceImpl.java:124)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$4037f38e.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$c9254f20.getAppUser()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBaseInfo(AppUserController.java:102)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$3ecab607.getUserBaseInfo()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.member.service.user.MemberUserServiceImpl', 'MemberUserServiceImpl.java', 'getAppUser', 124, 0, NULL, 0, NULL, '2023-10-19 10:01:36', NULL, '2023-10-19 10:01:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1388, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1715549852135325696\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-21 10:05:34', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"orfEVTwW4iKyoiXX\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"DD9A14E153A156C16D7BB493C24C1B89\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"orfEVTwW4iKyoiXX\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"DD9A14E153A156C16D7BB493C24C1B89\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"orfEVTwW4iKyoiXX\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"DD9A14E153A156C16D7BB493C24C1B89\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$44c55578.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$4b4120de.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-21 10:05:34', NULL, '2023-10-21 10:05:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1389, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1716272228393287680\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-23 09:56:02', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"rElrLFthLjg0eSi9\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"1E2580A44064B4A4EB297AFC7EFADA6B\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"rElrLFthLjg0eSi9\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"1E2580A44064B4A4EB297AFC7EFADA6B\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"rElrLFthLjg0eSi9\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"1E2580A44064B4A4EB297AFC7EFADA6B\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c9135f4e.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f089202f.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-23 09:56:02', NULL, '2023-10-23 09:56:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1390, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1716277998795096064\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-23 10:18:57', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"BnYZItacFC4W2RtS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"52320A4E60CE03C2AAB05BA74299085E\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"BnYZItacFC4W2RtS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"52320A4E60CE03C2AAB05BA74299085E\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"BnYZItacFC4W2RtS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"52320A4E60CE03C2AAB05BA74299085E\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c9135f4e.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor214.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f089202f.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-23 10:18:57', NULL, '2023-10-23 10:18:57', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1391, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1716278197982593024\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-23 10:19:45', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"4uNUUMQEGMMBkOmS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"F648930F7F4AC289F7BC3ABFDE09111F\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"4uNUUMQEGMMBkOmS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"F648930F7F4AC289F7BC3ABFDE09111F\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"4uNUUMQEGMMBkOmS\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"F648930F7F4AC289F7BC3ABFDE09111F\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c9135f4e.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor214.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f089202f.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-23 10:19:45', NULL, '2023-10-23 10:19:45', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1392, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1716278745859358720\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-23 10:21:55', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"d2AOggQbHuDKw1l8\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"49240C1D88A004EA21E65939DDA9DC55\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"d2AOggQbHuDKw1l8\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"49240C1D88A004EA21E65939DDA9DC55\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"d2AOggQbHuDKw1l8\",\"appid\":\"wx001e2dc50bf532df\",\"sign\":\"49240C1D88A004EA21E65939DDA9DC55\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c9135f4e.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor214.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f089202f.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-23 10:21:55', NULL, '2023-10-23 10:21:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1393, '', 7, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{\"uni\":\"1716279604374667264\",\"from\":\"wechat\",\"paytype\":\"weixin\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', '2023-10-23 10:25:20', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"tYXMnGHjoxTealEl\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"ACAA2C127D8BBE560E18F36E6420CA8D\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"tYXMnGHjoxTealEl\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"ACAA2C127D8BBE560E18F36E6420CA8D\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=FAIL, errmsg=OK\n content:{\"nonce_str\":\"tYXMnGHjoxTealEl\",\"appid\":\"wxc061dee8806ff712\",\"sign\":\"ACAA2C127D8BBE560E18F36E6420CA8D\",\"err_code\":\"PARAM_ERROR\",\"return_msg\":\"OK\",\"result_code\":\"FAIL\",\"err_code_des\":\"appid和openid不匹配\",\"mch_id\":\"1493624002\",\"return_code\":\"SUCCESS\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:350)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$363112a6.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$e3a22d40.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-10-23 10:25:20', NULL, '2023-10-23 10:25:20', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1394, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\\"mobile\\\":\\\"15136175246\\\",\\\"code\\\":\\\"9999\\\",\\\"from\\\":\\\"routine\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-27 17:12:30', '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\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:177)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy284.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:118)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$6bc56166.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:78)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$4ee4a608.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 177, 0, NULL, 0, NULL, '2023-10-27 17:12:30', NULL, '2023-10-27 17:12:30', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1395, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/sms-login', '{\"query\":{},\"body\":\"{\\\"mobile\\\":\\\"15136175246\\\",\\\"code\\\":\\\"9999\\\",\\\"from\\\":\\\"routine\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-27 17:17: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\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:177)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy287.selectOne(Unknown Source)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.smsLogin(MemberAuthServiceImpl.java:118)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$547d8a51.smsLogin()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.smsLogin(AppAuthController.java:78)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$70b10c43.smsLogin()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 177, 0, NULL, 0, NULL, '2023-10-27 17:17:00', NULL, '2023-10-27 17:17:00', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1396, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"10\",\"lng\":\"116.45627\",\"kw\":\"\",\"lat\":\"39.91999\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-29 17:36:28', 'java.lang.IndexOutOfBoundsException', 'IndexOutOfBoundsException: Index: 0, Size: 0', 'IndexOutOfBoundsException: Index: 0, Size: 0', 'java.lang.IndexOutOfBoundsException: Index: 0, Size: 0\n at java.util.ArrayList.rangeCheck(ArrayList.java:659)\n at java.util.ArrayList.get(ArrayList.java:435)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController.getNearby(AppStoreController.java:54)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController$$FastClassBySpringCGLIB$$26055d79.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor171.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController$$EnhancerBySpringCGLIB$$48418b45.getNearby()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.util.ArrayList', 'ArrayList.java', 'rangeCheck', 659, 0, NULL, 0, NULL, '2023-10-29 17:36:28', NULL, '2023-10-29 17:36:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1397, '', 0, 1, 'yshop-server', 'GET', '/app-api/store/nearby', '{\"query\":{\"shop_id\":\"10\",\"lng\":\"116.45627\",\"kw\":\"\",\"lat\":\"39.91999\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-10-29 17:37:22', 'java.lang.IndexOutOfBoundsException', 'IndexOutOfBoundsException: Index: 0, Size: 0', 'IndexOutOfBoundsException: Index: 0, Size: 0', 'java.lang.IndexOutOfBoundsException: Index: 0, Size: 0\n at java.util.ArrayList.rangeCheck(ArrayList.java:659)\n at java.util.ArrayList.get(ArrayList.java:435)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController.getNearby(AppStoreController.java:54)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController$$FastClassBySpringCGLIB$$26055d79.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor171.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.store.controller.app.storeshop.AppStoreController$$EnhancerBySpringCGLIB$$48418b45.getNearby()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'java.util.ArrayList', 'ArrayList.java', 'rangeCheck', 659, 0, NULL, 0, NULL, '2023-10-29 17:37:22', NULL, '2023-10-29 17:37:22', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1398, '', 2, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{},\"body\":\"{\\\"orderType\\\":\\\"takein\\\",\\\"addressId\\\":0,\\\"shopId\\\":2,\\\"mobile\\\":\\\"15136175246\\\",\\\"gettime\\\":0,\\\"payType\\\":\\\"weixin\\\",\\\"remark\\\":\\\"\\\",\\\"productId\\\":[18],\\\"spec\\\":[\\\"默认\\\"],\\\"number\\\":[3],\\\"couponId\\\":0}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-06 10:48:21', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 126] (through reference chain: co.yixiang.yshop.module.order.controller.app.order.param.AppOrderParam[\"productId\"])', 'MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 126] (through reference chain: co.yixiang.yshop.module.order.controller.app.order.param.AppOrderParam[\"productId\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 126] (through reference chain: co.yixiang.yshop.module.order.controller.app.order.param.AppOrderParam[\"productId\"])\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 126] (through reference chain: co.yixiang.yshop.module.order.controller.app.order.param.AppOrderParam[\"productId\"])\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)\n at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\n ... 126 more\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2023-11-06 10:48:21', NULL, '2023-11-06 10:48:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1399, '', 0, 1, 'yshop-server', 'POST', '/app-api/member/auth/auth-miniapp-login', '{\"query\":{},\"body\":\"{\\\"encryptedData\\\":\\\"YaGLKx/hlyw6t5os/IlqI5kP7VtLDO4ZO4JyVVbATfd0ZS0P/KLbEbX7q/0f1FqDSQW4MoH0Za7GB/joIOkOB28Y/ya8oqdq4U1xlBDxdt9TAjgK9g3YNudviPuFI523EnWuWDDId2d9AeFSpl/pgU4f/7IE6YUdvb/umwP8ZkrQEM6XzJr/XtfYjLNDHFpmmclWA3iN+IGycp5jDkXHEg==\\\",\\\"iv\\\":\\\"zoceSKvnBShJemYJhxbOsQ==\\\",\\\"openid\\\":\\\"oHux265Iu9R5pMKk1O3U_J6TtMC4\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-07 17:11:11', 'com.google.gson.JsonSyntaxException', 'JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $', 'IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $', 'com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $\n at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:270)\n at com.google.gson.Gson.fromJson(Gson.java:1058)\n at com.google.gson.Gson.fromJson(Gson.java:1016)\n at com.google.gson.Gson.fromJson(Gson.java:959)\n at com.google.gson.Gson.fromJson(Gson.java:927)\n at cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo.fromJson(WxMaPhoneNumberInfo.java:23)\n at cn.binarywang.wx.miniapp.api.impl.WxMaUserServiceImpl.getPhoneNoInfo(WxMaUserServiceImpl.java:61)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl.weixinMiniAppLogin3(MemberAuthServiceImpl.java:248)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$FastClassBySpringCGLIB$$6d19a3ae.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704)\n at co.yixiang.yshop.module.member.service.auth.MemberAuthServiceImpl$$EnhancerBySpringCGLIB$$a3ce4806.weixinMiniAppLogin3()\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController.weixinMiniAppLogin3(AppAuthController.java:140)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$FastClassBySpringCGLIB$$3fc46cf6.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor301.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.auth.AppAuthController$$EnhancerBySpringCGLIB$$9d431eee.weixinMiniAppLogin3()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $\n at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:395)\n at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:259)\n ... 163 more\n', 'com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter', 'ReflectiveTypeAdapterFactory.java', 'read', 270, 0, NULL, 0, NULL, '2023-11-07 17:11:11', NULL, '2023-11-07 17:11:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1400, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\\"uni\\\":\\\"1722805295765258240\\\",\\\"from\\\":\\\"routine\\\",\\\"paytype\\\":\\\"weixin\\\"}\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 10:36:06', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:321)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c0a1fee6.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\n at sun.reflect.GeneratedMethodAccessor211.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor164.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$3b58c4fc.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'pay', 321, 0, NULL, 0, NULL, '2023-11-10 10:36:06', NULL, '2023-11-10 10:36:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1401, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\\"uni\\\":\\\"1722805676297682944\\\",\\\"from\\\":\\\"routine\\\",\\\"paytype\\\":\\\"weixin\\\"}\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 10:37:37', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=null, errmsg=请求中含有未在API文档中定义的参数\n content:{\"return_msg\":\"请求中含有未在API文档中定义的参数\",\"return_code\":\"FAIL\"}', 'PayErrorException: 支付错误: errcode=null, errmsg=请求中含有未在API文档中定义的参数\n content:{\"return_msg\":\"请求中含有未在API文档中定义的参数\",\"return_code\":\"FAIL\"}', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=null, errmsg=请求中含有未在API文档中定义的参数\n content:{\"return_msg\":\"请求中含有未在API文档中定义的参数\",\"return_code\":\"FAIL\"}\n at com.egzosn.pay.wx.api.WxPayService.unifiedOrder(WxPayService.java:272)\n at com.egzosn.pay.wx.api.WxPayService.orderInfo(WxPayService.java:289)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.getOrderInfo(MerchantPayServiceManager.java:139)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:359)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$c0a1fee6.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$3b58c4fc.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.wx.api.WxPayService', 'WxPayService.java', 'unifiedOrder', 272, 0, NULL, 0, NULL, '2023-11-10 10:37:37', NULL, '2023-11-10 10:37:37', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1402, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\\"uni\\\":\\\"1722902611209748480\\\",\\\"from\\\":\\\"routine\\\",\\\"paytype\\\":\\\"weixin\\\"}\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 17:02:47', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:334)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$cf4a8363.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$706797ca.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'pay', 334, 0, NULL, 0, NULL, '2023-11-10 17:02:47', NULL, '2023-11-10 17:02:47', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1403, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/pay', '{\"query\":{},\"body\":\"{\\\"uni\\\":\\\"1722903189407137792\\\",\\\"from\\\":\\\"routine\\\",\\\"paytype\\\":\\\"weixin\\\"}\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 17:05:05', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.pay(AppStoreOrderServiceImpl.java:334)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$8385fc45.pay()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.pay(AppOrderController.java:88)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$f0e179fc.pay()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'pay', 334, 0, NULL, 0, NULL, '2023-11-10 17:05:05', NULL, '2023-11-10 17:05:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1404, '', 9, 1, 'yshop-server', 'GET', '/app-api/member/user/getBill', '{\"query\":{\"pagesize\":\"20\",\"page\":\"1\",\"type\":\"0\"},\"body\":\"\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 17:13:50', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.member.convert.userbill.UserBillConvertImpl.userBillDOToAppUserBillVO(UserBillConvertImpl.java:154)\n at co.yixiang.yshop.module.member.convert.userbill.UserBillConvertImpl.convertList02(UserBillConvertImpl.java:117)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl.getBillList(UserBillServiceImpl.java:154)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl$$FastClassBySpringCGLIB$$f8ca9888.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl$$EnhancerBySpringCGLIB$$8ccdd91e.getBillList()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBill(AppUserController.java:112)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$3759c3c5.getUserBill()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-11-10 17:13:50', NULL, '2023-11-10 17:13:50', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1405, '', 9, 1, 'yshop-server', 'GET', '/app-api/member/user/getBill', '{\"query\":{\"pagesize\":\"20\",\"page\":\"1\",\"type\":\"0\"},\"body\":\"\"}', '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2023-11-10 17:16:18', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;', 'NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO.getStatus()Ljava/lang/Boolean;\n at co.yixiang.yshop.module.member.convert.userbill.UserBillConvertImpl.userBillDOToAppUserBillVO(UserBillConvertImpl.java:154)\n at co.yixiang.yshop.module.member.convert.userbill.UserBillConvertImpl.convertList02(UserBillConvertImpl.java:117)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl.getBillList(UserBillServiceImpl.java:154)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl$$FastClassBySpringCGLIB$$f8ca9888.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.service.userbill.UserBillServiceImpl$$EnhancerBySpringCGLIB$$515085f2.getBillList()\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController.getUserBill(AppUserController.java:112)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$FastClassBySpringCGLIB$$450556bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.member.controller.app.user.AppUserController$$EnhancerBySpringCGLIB$$ad12c3ca.getUserBill()\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 ... 114 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-11-10 17:16:18', NULL, '2023-11-10 17:16:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1406, '', 1, 2, 'yshop-server', 'POST', '/admin-api/order/store-order/refund', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1726884445237018624\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":9,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1700556562000,\\\"payType\\\":\\\"weixin\\\",\\\"status\\\":0,\\\"refundStatus\\\":1,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":\\\"7777\\\",\\\"refundReasonTime\\\":1700556550000,\\\"refundReasonWap\\\":\\\"协商一致\\\",\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1036,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1700556310000,\\\"id\\\":37,\\\"createTime\\\":1700556310000,\\\"userRespVO\\\":{\\\"username\\\":\\\"15136175246\\\",\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_9\\\",\\\"avatar\\\":null,\\\"mobile\\\":\\\"151****5246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":97.94,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"0:0:0:0:0:0:0:1\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":9,\\\"createTime\\\":1699348665000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"退款中\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-11-21 16:56:18', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.refund(WxPayService.java:617)\n at com.egzosn.pay.wx.api.WxPayService.refund(WxPayService.java:89)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.refund(MerchantPayServiceManager.java:270)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.orderRefund(StoreOrderServiceImpl.java:293)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9ef9e8af.orderRefund()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderController.java:155)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor230.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$95200840.refund()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-11-21 16:56:18', NULL, '2023-11-21 16:56:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1407, '', 1, 2, 'yshop-server', 'POST', '/admin-api/order/store-order/refund', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1726884445237018624\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":9,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1700556562000,\\\"payType\\\":\\\"weixin\\\",\\\"status\\\":0,\\\"refundStatus\\\":1,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":\\\"7777\\\",\\\"refundReasonTime\\\":1700556550000,\\\"refundReasonWap\\\":\\\"协商一致\\\",\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1036,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1700556310000,\\\"id\\\":37,\\\"createTime\\\":1700556310000,\\\"userRespVO\\\":{\\\"username\\\":\\\"15136175246\\\",\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_9\\\",\\\"avatar\\\":null,\\\"mobile\\\":\\\"151****5246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":97.94,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"0:0:0:0:0:0:0:1\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":9,\\\"createTime\\\":1699348665000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"退款中\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-11-21 21:54:02', 'com.egzosn.pay.common.exception.PayErrorException', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'com.egzosn.pay.common.exception.PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n\n at com.egzosn.pay.common.http.ClientHttpRequest.toBean(ClientHttpRequest.java:394)\n at com.egzosn.pay.common.http.ClientHttpRequest.handleResponse(ClientHttpRequest.java:299)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecuteEntity(HttpRequestTemplate.java:427)\n at com.egzosn.pay.common.http.HttpRequestTemplate.doExecute(HttpRequestTemplate.java:399)\n at com.egzosn.pay.common.http.HttpRequestTemplate.postForObject(HttpRequestTemplate.java:251)\n at com.egzosn.pay.wx.api.WxPayService.refund(WxPayService.java:617)\n at com.egzosn.pay.wx.api.WxPayService.refund(WxPayService.java:89)\n at com.egzosn.pay.spring.boot.core.MerchantPayServiceManager.refund(MerchantPayServiceManager.java:270)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.orderRefund(StoreOrderServiceImpl.java:293)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9ef9e8af.orderRefund()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderController.java:155)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor230.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$95200840.refund()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.egzosn.pay.common.http.ClientHttpRequest', 'ClientHttpRequest.java', 'toBean', 394, 0, NULL, 0, NULL, '2023-11-21 21:54:02', NULL, '2023-11-21 21:54:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1408, '', 1, 2, 'yshop-server', 'POST', '/admin-api/order/store-order/refund', '{\"query\":{},\"body\":\"{\\\"orderId\\\":\\\"1726884445237018624\\\",\\\"extendOrderId\\\":null,\\\"uid\\\":9,\\\"realName\\\":\\\"\\\",\\\"userPhone\\\":null,\\\"userAddress\\\":\\\"\\\",\\\"cartId\\\":\\\"\\\",\\\"freightPrice\\\":0,\\\"totalNum\\\":1,\\\"totalPrice\\\":0.01,\\\"totalPostage\\\":20,\\\"payPrice\\\":0.01,\\\"payPostage\\\":20,\\\"deductionPrice\\\":0,\\\"couponId\\\":0,\\\"couponPrice\\\":0,\\\"paid\\\":1,\\\"payTime\\\":1700556562000,\\\"payType\\\":\\\"weixin\\\",\\\"status\\\":0,\\\"refundStatus\\\":1,\\\"refundReasonWapImg\\\":null,\\\"refundReasonWapExplain\\\":\\\"7777\\\",\\\"refundReasonTime\\\":1700556550000,\\\"refundReasonWap\\\":\\\"协商一致\\\",\\\"refundReason\\\":null,\\\"refundPrice\\\":0,\\\"deliverySn\\\":\\\"\\\",\\\"deliveryName\\\":null,\\\"deliveryType\\\":\\\"normal\\\",\\\"deliveryId\\\":null,\\\"gainIntegral\\\":0,\\\"useIntegral\\\":0,\\\"payIntegral\\\":0,\\\"backIntegral\\\":0,\\\"mark\\\":\\\"\\\",\\\"unique\\\":\\\"\\\",\\\"remark\\\":null,\\\"merId\\\":0,\\\"combinationId\\\":0,\\\"pinkId\\\":0,\\\"cost\\\":0,\\\"seckillId\\\":0,\\\"bargainId\\\":0,\\\"verifyCode\\\":\\\"\\\",\\\"storeId\\\":0,\\\"shippingType\\\":1,\\\"isChannel\\\":0,\\\"isSystemDel\\\":0,\\\"orderType\\\":\\\"takein\\\",\\\"numberId\\\":1036,\\\"shopId\\\":2,\\\"shopName\\\":\\\"意向餐饮店\\\",\\\"getTime\\\":1700556310000,\\\"id\\\":37,\\\"createTime\\\":1700556310000,\\\"userRespVO\\\":{\\\"username\\\":\\\"15136175246\\\",\\\"realName\\\":\\\"\\\",\\\"nickname\\\":\\\"yshop用户_9\\\",\\\"avatar\\\":null,\\\"mobile\\\":\\\"151****5246\\\",\\\"addIp\\\":\\\"\\\",\\\"nowMoney\\\":97.94,\\\"brokeragePrice\\\":0,\\\"integral\\\":0,\\\"status\\\":0,\\\"isPromoter\\\":0,\\\"payCount\\\":4,\\\"spreadCount\\\":0,\\\"addres\\\":\\\"\\\",\\\"adminid\\\":0,\\\"loginType\\\":\\\"routine\\\",\\\"wxProfile\\\":null,\\\"birthday\\\":\\\"\\\",\\\"loginIp\\\":\\\"0:0:0:0:0:0:0:1\\\",\\\"lastIp\\\":\\\"\\\",\\\"level\\\":0,\\\"spreadUid\\\":0,\\\"cardId\\\":\\\"\\\",\\\"id\\\":9,\\\"createTime\\\":1699348665000},\\\"storeOrderCartInfoDOList\\\":null,\\\"statusStr\\\":\\\"退款中\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-11-21 22:00:34', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.orderRefund(StoreOrderServiceImpl.java:294)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9ef9e8af.orderRefund()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderController.java:155)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor230.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$95200840.refund()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl', 'StoreOrderServiceImpl.java', 'orderRefund', 294, 0, NULL, 0, NULL, '2023-11-21 22:00:34', NULL, '2023-11-21 22:00:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1409, '', 1, 2, 'yshop-server', 'GET', '/admin-api/score/order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-01 13:52:26', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper.selectPage(ScoreOrderMapper.java:30)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy371.selectPage(Unknown Source)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl.getOrderPage(ScoreOrderServiceImpl.java:86)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$FastClassBySpringCGLIB$$335555a8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9b0109a7.getOrderPage()\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.getOrderPage(ScoreOrderController.java:80)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$FastClassBySpringCGLIB$$87bc4521.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$EnhancerBySpringCGLIB$$1ce05c49.getOrderPage()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper', 'ScoreOrderMapper.java', 'selectPage', 30, 0, NULL, 0, NULL, '2023-12-01 13:52:26', NULL, '2023-12-01 13:52:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1410, '', 1, 2, 'yshop-server', 'GET', '/admin-api/score/order/page', '{\"query\":{\"orderId\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\",\"type\":\"-1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-01 13:57:05', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.ScoreOrderRespVO.setProductId(Ljava/lang/Integer;)Lco/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO;', 'NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.ScoreOrderRespVO.setProductId(Ljava/lang/Integer;)Lco/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.ScoreOrderRespVO.setProductId(Ljava/lang/Integer;)Lco/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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)\nCaused by: java.lang.NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.ScoreOrderRespVO.setProductId(Ljava/lang/Integer;)Lco/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO;\n at co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvertImpl.convert(ScoreOrderConvertImpl.java:87)\n at co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvertImpl.convertList(ScoreOrderConvertImpl.java:146)\n at co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvertImpl.convertPage(ScoreOrderConvertImpl.java:174)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl.getOrderPage(ScoreOrderServiceImpl.java:87)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$FastClassBySpringCGLIB$$335555a8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$EnhancerBySpringCGLIB$$9b0109a7.getOrderPage()\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.getOrderPage(ScoreOrderController.java:80)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$FastClassBySpringCGLIB$$87bc4521.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor159.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$EnhancerBySpringCGLIB$$1ce05c49.getOrderPage()\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 ... 113 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2023-12-01 13:57:05', NULL, '2023-12-01 13:57:05', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1411, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/get', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-01 14:50:03', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrder(StoreOrderServiceImpl.java:213)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$FastClassBySpringCGLIB$$7dbf990c.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$EnhancerBySpringCGLIB$$d7ab5d7c.getStoreOrder()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrder(StoreOrderController.java:100)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$FastClassBySpringCGLIB$$f8c4df45.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor175.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$EnhancerBySpringCGLIB$$1b21e2b1.getStoreOrder()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl', 'StoreOrderServiceImpl.java', 'getStoreOrder', 213, 0, NULL, 0, NULL, '2023-12-01 14:50:03', NULL, '2023-12-01 14:50:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1412, '', 1, 2, 'yshop-server', 'GET', '/admin-api/score/order/page', '{\"query\":{\"orderId\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\",\"type\":\"\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-01 17:16:44', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper.selectPage(ScoreOrderMapper.java:30)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy371.selectPage(Unknown Source)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl.getOrderPage(ScoreOrderServiceImpl.java:93)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$FastClassBySpringCGLIB$$335555a8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$EnhancerBySpringCGLIB$$ae8dec81.getOrderPage()\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.getOrderPage(ScoreOrderController.java:79)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$FastClassBySpringCGLIB$$87bc4521.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor175.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$EnhancerBySpringCGLIB$$90f89dc5.getOrderPage()\n at sun.reflect.GeneratedMethodAccessor317.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.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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper', 'ScoreOrderMapper.java', 'selectPage', 30, 0, NULL, 0, NULL, '2023-12-01 17:16:44', NULL, '2023-12-01 17:16:44', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1413, '', 1, 2, 'yshop-server', 'GET', '/admin-api/score/order/page', '{\"query\":{\"orderId\":\"\",\"pageNo\":\"1\",\"pageSize\":\"10\",\"type\":\"6\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-01 17:18:24', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper.selectPage(ScoreOrderMapper.java:30)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy371.selectPage(Unknown Source)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl.getOrderPage(ScoreOrderServiceImpl.java:93)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$FastClassBySpringCGLIB$$335555a8.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderServiceImpl$$EnhancerBySpringCGLIB$$ae8dec81.getOrderPage()\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.getOrderPage(ScoreOrderController.java:79)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$FastClassBySpringCGLIB$$87bc4521.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor175.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:763)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController$$EnhancerBySpringCGLIB$$90f89dc5.getOrderPage()\n at sun.reflect.GeneratedMethodAccessor317.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.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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper', 'ScoreOrderMapper.java', 'selectPage', 30, 0, NULL, 0, NULL, '2023-12-01 17:18:24', NULL, '2023-12-01 17:18:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1414, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/captcha/check', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\",\\\"pointJson\\\":\\\"8AbbH072u2Gk+kv0tVg4/cPi5IEM9l6crrDKvVAm12I=\\\",\\\"token\\\":\\\"b35ae8e4211f43299d495d1e983431a2\\\"}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-02 09:52:38', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.xingyuv.captcha.service.impl.BlockPuzzleCaptchaServiceImpl.check(BlockPuzzleCaptchaServiceImpl.java:110)\n at co.yixiang.yshop.module.system.controller.admin.captcha.CaptchaController.check(CaptchaController.java:49)\n at co.yixiang.yshop.module.system.controller.admin.captcha.CaptchaController$$FastClassBySpringCGLIB$$25c7d344.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor186.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.system.controller.admin.captcha.CaptchaController$$EnhancerBySpringCGLIB$$2b4e3c70.check()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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.xingyuv.captcha.service.impl.BlockPuzzleCaptchaServiceImpl', 'BlockPuzzleCaptchaServiceImpl.java', 'check', 110, 0, NULL, 0, NULL, '2023-12-02 09:52:38', NULL, '2023-12-02 09:52:38', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1415, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/express/getLogistic', '{\"query\":{\"logisticCode\":\"773257186129334\",\"shipperCode\":\"null\"},\"body\":\"\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '2023-12-02 11:00:58', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.express.kdniao.util.KdniaoUtil.getLogisticBase(KdniaoUtil.java:95)\n at co.yixiang.yshop.module.express.kdniao.util.KdniaoUtil.getLogisticInfo(KdniaoUtil.java:46)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController.getLogistic(ExpressController.java:134)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController$$FastClassBySpringCGLIB$$9d00ec67.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.express.controller.admin.express.ExpressController$$EnhancerBySpringCGLIB$$3790b5d0.getLogistic()\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:502)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.express.kdniao.util.KdniaoUtil', 'KdniaoUtil.java', 'getLogisticBase', 95, 0, NULL, 0, NULL, '2023-12-02 11:00:58', NULL, '2023-12-02 11:00:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1416, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{},\"body\":\"{\\\"orderType\\\":\\\"takein\\\",\\\"addressId\\\":0,\\\"gettime\\\":0,\\\"payType\\\":\\\"weixin\\\",\\\"remark\\\":\\\"\\\",\\\"productId\\\":[17],\\\"spec\\\":[\\\"10ml\\\"],\\\"number\\\":[1],\\\"couponId\\\":0}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/17020043012858970 webdebugger port/41859 token/4a7d768a357b224d2a3f481558985ab3', '2023-12-08 11:05:51', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:177)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$44c55578.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:73)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$39664020.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'createOrder', 177, 0, NULL, 0, NULL, '2023-12-08 11:05:51', NULL, '2023-12-08 11:05:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1417, '', 9, 1, 'yshop-server', 'POST', '/app-api/order/create', '{\"query\":{},\"body\":\"{\\\"orderType\\\":\\\"takein\\\",\\\"addressId\\\":0,\\\"gettime\\\":0,\\\"payType\\\":\\\"weixin\\\",\\\"remark\\\":\\\"\\\",\\\"productId\\\":[17],\\\"spec\\\":[\\\"10ml\\\"],\\\"number\\\":[1],\\\"couponId\\\":0}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/17020043012858970 webdebugger port/41859 token/4a7d768a357b224d2a3f481558985ab3', '2023-12-08 11:08:41', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl.createOrder(AppStoreOrderServiceImpl.java:178)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$FastClassBySpringCGLIB$$c4cdb763.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\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:763)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl$$EnhancerBySpringCGLIB$$11065546.createOrder()\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController.create(AppOrderController.java:73)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$FastClassBySpringCGLIB$$ea4672bc.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.security.core.aop.PreAuthenticatedAspect.around(PreAuthenticatedAspect.java:22)\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.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:763)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\n at co.yixiang.yshop.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\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.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:763)\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:763)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n at co.yixiang.yshop.module.order.controller.app.order.AppOrderController$$EnhancerBySpringCGLIB$$264a5af2.create()\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.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:528)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)\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:53)\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 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 co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:67)\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 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.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 co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\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.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 co.yixiang.yshop.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:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)\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:343)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\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', 'co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderServiceImpl', 'AppStoreOrderServiceImpl.java', 'createOrder', 178, 0, NULL, 0, NULL, '2023-12-08 11:08:41', NULL, '2023-12-08 11:08:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1418, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:12:10', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, title, pic_url, type, content, status, create_time, update_time, creator, updater, deleted FROM system_notice WHERE deleted = 0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, title, pic_url, type, content, status, create_time, update_time, creator, updater, deleted FROM system_notice WHERE deleted = 0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy205.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.dal.mysql.notice.NoticeMapper.selectPage(NoticeMapper.java:14)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.service.notice.NoticeServiceImpl.getNoticePage(NoticeServiceImpl.java:54)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.getNoticePage(NoticeController.java:67)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController$$SpringCGLIB$$0.getNoticePage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\n at jdk.proxy3/jdk.proxy3.$Proxy300.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy240.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 199 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:12:10', NULL, '2024-06-01 13:12:10', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1419, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:12:34', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,title,pic_url,type,content,status,create_time,update_time,creator,updater,deleted FROM system_notice WHERE deleted=0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,title,pic_url,type,content,status,create_time,update_time,creator,updater,deleted FROM system_notice WHERE deleted=0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy205.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.dal.mysql.notice.NoticeMapper.selectPage(NoticeMapper.java:14)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.service.notice.NoticeServiceImpl.getNoticePage(NoticeServiceImpl.java:54)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.getNoticePage(NoticeController.java:67)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController$$SpringCGLIB$$0.getNoticePage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\n at jdk.proxy3/jdk.proxy3.$Proxy300.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy240.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 199 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:12:34', NULL, '2024-06-01 13:12:34', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1420, '', 1, 2, 'yshop-server', 'GET', '/admin-api/system/notice/page', '{\"query\":{},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:13:28', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,title,pic_url,type,content,status,create_time,update_time,creator,updater,deleted FROM system_notice WHERE deleted=0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,title,pic_url,type,content,status,create_time,update_time,creator,updater,deleted FROM system_notice WHERE deleted=0 ORDER BY id DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy205.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.dal.mysql.notice.NoticeMapper.selectPage(NoticeMapper.java:14)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy205.selectPage(Unknown Source)\n at co.yixiang.yshop.module.system.service.notice.NoticeServiceImpl.getNoticePage(NoticeServiceImpl.java:54)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.getNoticePage(NoticeController.java:67)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.controller.admin.notice.NoticeController$$SpringCGLIB$$0.getNoticePage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pic_url\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\n at jdk.proxy3/jdk.proxy3.$Proxy300.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy240.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 199 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:13:28', NULL, '2024-06-01 13:13:28', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1421, '', 1, 2, 'yshop-server', 'POST', '/admin-api/system/auth/logout', '{\"query\":{},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:13:33', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, access_token, refresh_token, user_id, user_type, user_info, client_id, scopes, expires_time, shop_id, tenant_id, create_time, update_time, creator, updater, deleted FROM system_oauth2_access_token WHERE deleted = 0 AND (access_token = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, access_token, refresh_token, user_id, user_type, user_info, client_id, scopes, expires_time, shop_id, tenant_id, create_time, update_time, creator, updater, deleted FROM system_oauth2_access_token WHERE deleted = 0 AND (access_token = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy147.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:222)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy147.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy147.selectOne(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:83)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy147.selectOne(Unknown Source)\n at co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper.selectByAccessToken(OAuth2AccessTokenMapper.java:19)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy147.selectByAccessToken(Unknown Source)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.removeAccessToken(OAuth2TokenServiceImpl.java:136)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$SpringCGLIB$$0.removeAccessToken()\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.logout(AdminAuthServiceImpl.java:213)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController.logout(AuthController.java:79)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$SpringCGLIB$$0.logout()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'user_info\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\n at jdk.proxy3/jdk.proxy3.$Proxy300.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy240.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 204 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:13:33', NULL, '2024-06-01 13:13:33', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1422, '', 0, 2, 'yshop-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"yshop\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"captchaVerification\\\":\\\"a3thmmc5UYQ3fgSD/y2Z1XW5pqe9Mmrg/0rOKARgrmmRMb0q33ruW0v3e3fVe56gN6hHJp7NSMWXAjG4ooXkuw==\\\",\\\"rememberMe\\\":false}\"}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:15:23', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, name, mobile, image, images, address, address_map, lng, lat, distance, min_price, delivery_price, notice, status, admin_id, uniprint_id, start_time, end_time, balance, create_time, update_time, creator, updater, deleted FROM yshop_store_shop WHERE deleted = 0 AND (FIND_IN_SET(\'1\', admin_id))\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, name, mobile, image, images, address, address_map, lng, lat, distance, min_price, delivery_price, notice, status, admin_id, uniprint_id, start_time, end_time, balance, create_time, update_time, creator, updater, deleted FROM yshop_store_shop WHERE deleted = 0 AND (FIND_IN_SET(\'1\', admin_id))\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy158.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:222)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy158.selectOne(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy158.selectOne(Unknown Source)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.getShopId(OAuth2TokenServiceImpl.java:179)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.createOAuth2RefreshToken(OAuth2TokenServiceImpl.java:168)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl.createAccessToken(OAuth2TokenServiceImpl.java:68)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenServiceImpl$$SpringCGLIB$$0.createAccessToken()\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:198)\n at co.yixiang.yshop.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController.login(AuthController.java:69)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.system.controller.admin.auth.AuthController$$SpringCGLIB$$0.login()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'balance\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy240.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy239.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 206 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:15:23', NULL, '2024-06-01 13:15:23', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1423, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/shop/page', '{\"query\":{\"image\":\"\",\"images\":\"\",\"address\":\"\",\"lng\":\"\",\"distance\":\"\",\"addressMap\":\"\",\"mobile\":\"\",\"pageSize\":\"10\",\"uniprintId\":\"\",\"deliveryPrice\":\"\",\"pageNo\":\"1\",\"minPrice\":\"\",\"name\":\"\",\"adminId\":\"\",\"lat\":\"\",\"notice\":\"\",\"status\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:24:40', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.math.BigDecimal co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getBalance()\'', 'NoSuchMethodError: \'java.math.BigDecimal co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getBalance()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.math.BigDecimal co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getBalance()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.math.BigDecimal co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO.getBalance()\'\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convert(StoreShopConvertImpl.java:125)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertList(StoreShopConvertImpl.java:171)\n at co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvertImpl.convertPage(StoreShopConvertImpl.java:185)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.getShopPage(StoreShopController.java:83)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController$$SpringCGLIB$$0.getShopPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:24:40', NULL, '2024-06-01 13:24:40', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1424, '', 1, 2, 'yshop-server', 'GET', '/admin-api/store/web-print/list', '{\"query\":{},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:28:04', 'org.springframework.web.servlet.resource.NoResourceFoundException', 'NoResourceFoundException: No static resource admin-api/store/web-print/list.', 'NoResourceFoundException: No static resource admin-api/store/web-print/list.', 'org.springframework.web.servlet.resource.NoResourceFoundException: No static resource admin-api/store/web-print/list.\n at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585)\n at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\n', 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler', 'ResourceHttpRequestHandler.java', 'handleRequest', 585, 0, NULL, 0, NULL, '2024-06-01 13:28:04', NULL, '2024-06-01 13:28:04', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1425, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, order_id, extend_order_id, uid, real_name, user_phone, user_address, cart_id, freight_price, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_time, pay_type, order_type, status, refund_status, refund_reason_wap_img, refund_reason_wap_explain, refund_reason_time, refund_reason_wap, refund_reason, refund_price, delivery_sn, delivery_name, delivery_type, delivery_id, delivery_time, gain_integral, use_integral, pay_integral, back_integral, mark, `unique`, remark, mer_id, combination_id, pink_id, cost, seckill_id, bargain_id, verify_code, store_id, shipping_type, is_channel, is_system_del, shop_id, shop_name, get_time, number_id, desk_id, desk_number, desk_people, create_time, update_time, creator, updater, deleted FROM yshop_store_order WHERE deleted = 0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, order_id, extend_order_id, uid, real_name, user_phone, user_address, cart_id, freight_price, total_num, total_price, total_postage, pay_price, pay_postage, deduction_price, coupon_id, coupon_price, paid, pay_time, pay_type, order_type, status, refund_status, refund_reason_wap_img, refund_reason_wap_explain, refund_reason_time, refund_reason_wap, refund_reason, refund_price, delivery_sn, delivery_name, delivery_type, delivery_id, delivery_time, gain_integral, use_integral, pay_integral, back_integral, mark, `unique`, remark, mer_id, combination_id, pink_id, cost, seckill_id, bargain_id, verify_code, store_id, shipping_type, is_channel, is_system_del, shop_id, shop_name, get_time, number_id, desk_id, desk_number, desk_people, create_time, update_time, creator, updater, deleted FROM yshop_store_order WHERE deleted = 0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:21', NULL, '2024-06-01 13:32:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1426, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:21', NULL, '2024-06-01 13:32:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1427, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:26', NULL, '2024-06-01 13:32:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1428, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:26', NULL, '2024-06-01 13:32:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1429, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:31', NULL, '2024-06-01 13:32:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1430, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:31', NULL, '2024-06-01 13:32:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1431, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:36', NULL, '2024-06-01 13:32:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1432, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:36', NULL, '2024-06-01 13:32:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1433, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:41', NULL, '2024-06-01 13:32:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1434, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:41', NULL, '2024-06-01 13:32:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1435, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:46', NULL, '2024-06-01 13:32:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1436, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:46', NULL, '2024-06-01 13:32:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1437, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:51', NULL, '2024-06-01 13:32:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1438, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:51', NULL, '2024-06-01 13:32:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1439, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:56', NULL, '2024-06-01 13:32:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1440, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:32:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:32:56', NULL, '2024-06-01 13:32:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1441, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:01', NULL, '2024-06-01 13:33:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1442, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:01', NULL, '2024-06-01 13:33:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1443, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:06', NULL, '2024-06-01 13:33:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1444, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:06', NULL, '2024-06-01 13:33:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1445, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:11', NULL, '2024-06-01 13:33:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1446, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:11', NULL, '2024-06-01 13:33:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1447, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:16', NULL, '2024-06-01 13:33:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1448, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:16', NULL, '2024-06-01 13:33:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1449, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:21', NULL, '2024-06-01 13:33:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1450, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:21', NULL, '2024-06-01 13:33:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1451, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:26', NULL, '2024-06-01 13:33:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1452, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:26', NULL, '2024-06-01 13:33:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1453, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:31', NULL, '2024-06-01 13:33:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1454, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:31', NULL, '2024-06-01 13:33:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1455, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:36', NULL, '2024-06-01 13:33:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1456, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:36', NULL, '2024-06-01 13:33:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1457, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:41', NULL, '2024-06-01 13:33:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1458, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:41', NULL, '2024-06-01 13:33:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1459, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:46', NULL, '2024-06-01 13:33:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1460, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:46', NULL, '2024-06-01 13:33:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1461, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:51', NULL, '2024-06-01 13:33:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1462, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:51', NULL, '2024-06-01 13:33:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1463, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:56', NULL, '2024-06-01 13:33:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1464, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:33:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:33:56', NULL, '2024-06-01 13:33:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1465, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND paid = ?) ORDER BY create_time DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND paid = ?) ORDER BY create_time DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:03', NULL, '2024-06-01 13:34:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1466, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:03', NULL, '2024-06-01 13:34:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1467, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:03', NULL, '2024-06-01 13:34:03', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1468, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:06', NULL, '2024-06-01 13:34:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1469, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:06', NULL, '2024-06-01 13:34:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1470, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND paid = ?) ORDER BY create_time DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND paid = ?) ORDER BY create_time DESC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:07', NULL, '2024-06-01 13:34:07', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1471, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:11', NULL, '2024-06-01 13:34:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1472, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:11', NULL, '2024-06-01 13:34:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1473, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:16', NULL, '2024-06-01 13:34:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1474, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:16', NULL, '2024-06-01 13:34:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1475, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:21', NULL, '2024-06-01 13:34:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1476, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:21', NULL, '2024-06-01 13:34:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1477, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:26', NULL, '2024-06-01 13:34:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1478, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:26', NULL, '2024-06-01 13:34:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1479, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:31', NULL, '2024-06-01 13:34:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1480, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:31', NULL, '2024-06-01 13:34:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1481, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:36', NULL, '2024-06-01 13:34:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1482, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:36', NULL, '2024-06-01 13:34:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1483, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:41', NULL, '2024-06-01 13:34:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1484, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:41', NULL, '2024-06-01 13:34:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1485, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:46', NULL, '2024-06-01 13:34:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1486, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:46', NULL, '2024-06-01 13:34:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1487, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:51', NULL, '2024-06-01 13:34:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1488, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:51', NULL, '2024-06-01 13:34:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1489, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:56', NULL, '2024-06-01 13:34:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1490, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:34:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:34:56', NULL, '2024-06-01 13:34:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1491, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:35:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:35:01', NULL, '2024-06-01 13:35:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1492, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:35:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:35:01', NULL, '2024-06-01 13:35:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1493, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:35:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:35:06', NULL, '2024-06-01 13:35:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1494, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:35:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id,order_id,extend_order_id,uid,real_name,user_phone,user_address,cart_id,freight_price,total_num,total_price,total_postage,pay_price,pay_postage,deduction_price,coupon_id,coupon_price,paid,pay_time,pay_type,order_type,status,refund_status,refund_reason_wap_img,refund_reason_wap_explain,refund_reason_time,refund_reason_wap,refund_reason,refund_price,delivery_sn,delivery_name,delivery_type,delivery_id,delivery_time,gain_integral,use_integral,pay_integral,back_integral,mark,`unique`,remark,mer_id,combination_id,pink_id,cost,seckill_id,bargain_id,verify_code,store_id,shipping_type,is_channel,is_system_del,shop_id,shop_name,get_time,number_id,desk_id,desk_number,desk_people,create_time,update_time,creator,updater,deleted FROM yshop_store_order WHERE deleted=0 AND (refund_status = ? AND status = ? AND (paid = ? OR (order_type = ? AND paid = ?))) ORDER BY create_time ASC LIMIT ?\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.dal.mysql.storeorder.StoreOrderMapper.selectPage(StoreOrderMapper.java:105)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy250.selectPage(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:248)\n at jdk.internal.reflect.GeneratedMethodAccessor264.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'desk_id\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:35:06', NULL, '2024-06-01 13:35:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1495, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:55', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:38:55', NULL, '2024-06-01 13:38:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1496, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:55', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:38:55', NULL, '2024-06-01 13:38:55', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1497, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:38:56', NULL, '2024-06-01 13:38:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1498, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:56', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:38:56', NULL, '2024-06-01 13:38:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1499, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:58', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:38:58', NULL, '2024-06-01 13:38:58', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1500, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:38:59', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:38:59', NULL, '2024-06-01 13:38:59', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1501, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:01', NULL, '2024-06-01 13:39:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1502, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:01', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:01', NULL, '2024-06-01 13:39:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1503, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:06', NULL, '2024-06-01 13:39:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1504, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:06', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:06', NULL, '2024-06-01 13:39:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1505, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:11', NULL, '2024-06-01 13:39:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1506, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:11', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:11', NULL, '2024-06-01 13:39:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1507, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:16', NULL, '2024-06-01 13:39:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1508, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:16', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:16', NULL, '2024-06-01 13:39:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1509, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:21', NULL, '2024-06-01 13:39:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1510, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:21', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:21', NULL, '2024-06-01 13:39:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1511, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 212 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:26', NULL, '2024-06-01 13:39:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1512, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:26', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:26', NULL, '2024-06-01 13:39:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1513, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:31', NULL, '2024-06-01 13:39:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1514, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:31', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:31', NULL, '2024-06-01 13:39:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1515, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:36', NULL, '2024-06-01 13:39:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1516, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:36', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:36', NULL, '2024-06-01 13:39:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1517, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:41', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:41', NULL, '2024-06-01 13:39:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1518, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:41', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:41', NULL, '2024-06-01 13:39:41', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1519, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:46', NULL, '2024-06-01 13:39:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1520, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:46', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:46', NULL, '2024-06-01 13:39:46', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1521, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:51', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:51', NULL, '2024-06-01 13:39:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1522, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:51', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:51', NULL, '2024-06-01 13:39:51', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1523, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:39:56', NULL, '2024-06-01 13:39:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1524, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:39:56', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:39:56', NULL, '2024-06-01 13:39:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1525, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:40:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:40:01', NULL, '2024-06-01 13:40:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1526, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:40:01', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:40:01', NULL, '2024-06-01 13:40:01', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1527, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:40:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 210 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:40:43', NULL, '2024-06-01 13:40:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1528, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:40:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:40:43', NULL, '2024-06-01 13:40:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1529, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:41:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:41:43', NULL, '2024-06-01 13:41:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1530, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:41:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:41:43', NULL, '2024-06-01 13:41:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1531, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:42:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:42:43', NULL, '2024-06-01 13:42:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1532, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:42:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:42:43', NULL, '2024-06-01 13:42:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1533, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:43:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:43:43', NULL, '2024-06-01 13:43:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1534, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:43:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:43:43', NULL, '2024-06-01 13:43:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1535, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:44:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:44:43', NULL, '2024-06-01 13:44:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1536, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:44:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:44:43', NULL, '2024-06-01 13:44:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1537, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:45:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:45:43', NULL, '2024-06-01 13:45:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1538, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:45:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:45:43', NULL, '2024-06-01 13:45:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1539, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:46:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:46:43', NULL, '2024-06-01 13:46:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1540, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:46:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:46:43', NULL, '2024-06-01 13:46:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1541, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:47:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:47:43', NULL, '2024-06-01 13:47:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1542, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:47:43', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:47:43', NULL, '2024-06-01 13:47:43', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1543, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:02', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:02', NULL, '2024-06-01 13:48:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1544, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:02', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:02', NULL, '2024-06-01 13:48:02', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1545, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:06', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:06', NULL, '2024-06-01 13:48:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1546, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:06', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:06', NULL, '2024-06-01 13:48:06', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1547, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:11', NULL, '2024-06-01 13:48:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1548, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:11', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:11', NULL, '2024-06-01 13:48:11', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1549, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:16', NULL, '2024-06-01 13:48:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1550, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:16', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:16', NULL, '2024-06-01 13:48:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1551, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:21', NULL, '2024-06-01 13:48:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1552, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:21', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:21', NULL, '2024-06-01 13:48:21', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1553, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:26', NULL, '2024-06-01 13:48:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1554, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:26', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:26', NULL, '2024-06-01 13:48:26', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1555, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:31', NULL, '2024-06-01 13:48:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1556, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:31', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:31', NULL, '2024-06-01 13:48:31', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1557, '', 1, 2, 'yshop-server', 'GET', '/admin-api/desk/shop-desk/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []', 'SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n### The error may exist in co/yixiang/yshop/module/desk/dal/mysql/shopdesk/ShopDeskMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT COUNT(*) AS total FROM yshop_shop_desk WHERE deleted = 0 AND ((last_order_time < ? OR last_order_time IS NULL OR last_order_status = ?))\n### Cause: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy260.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:52)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:40)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.dal.mysql.shopdesk.ShopDeskMapper.selectPage(ShopDeskMapper.java:50)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy260.selectPage(Unknown Source)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl.getShopDeskPage(ShopDeskServiceImpl.java:138)\n at jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.service.shopdesk.ShopDeskServiceImpl$$SpringCGLIB$$0.getShopDeskPage()\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController.getShopDeskPage(ShopDeskController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.desk.controller.admin.shopdesk.ShopDeskController$$SpringCGLIB$$0.getShopDeskPage()\n at jdk.internal.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Table \'yixiang-drink-open.yshop_shop_desk\' doesn\'t exist\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 209 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 13:48:36', NULL, '2024-06-01 13:48:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1558, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"50\",\"orderStatus\":\"1\",\"type\":\"work\",\"deskStatus\":\"empty\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:36', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:36', NULL, '2024-06-01 13:48:36', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1559, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:48:39', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:48:39', NULL, '2024-06-01 13:48:39', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1560, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:49:18', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:49:18', NULL, '2024-06-01 13:49:18', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1561, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:49:30', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:49:30', NULL, '2024-06-01 13:49:30', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1562, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 13:50:56', 'jakarta.servlet.ServletException', 'ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'', 'jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.lang.NoSuchMethodError: \'java.lang.Long co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO.getDeskId()\'\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convert(StoreOrderConvertImpl.java:222)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertList(StoreOrderConvertImpl.java:307)\n at co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvertImpl.convertPage(StoreOrderConvertImpl.java:335)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:249)\n at jdk.internal.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at jdk.internal.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n ... 143 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1104, 0, NULL, 0, NULL, '2024-06-01 13:50:56', NULL, '2024-06-01 13:50:56', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (1563, '', 1, 2, 'yshop-server', 'GET', '/admin-api/order/store-order/page', '{\"query\":{\"realName\":\"\",\"orderId\":\"\",\"pageNo\":\"1\",\"userPhone\":\"\",\"pageSize\":\"10\",\"orderStatus\":\"1\",\"payStatus\":\"\"},\"body\":null}', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-01 14:18:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, oid, order_id, cart_id, product_id, cart_info, `unique`, is_after_sales, title, image, number, spec, price, add_product_mark, is_order FROM yshop_store_order_cart_info WHERE (oid = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'\n; bad SQL grammar []', 'SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'\n### The error may exist in co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, oid, order_id, cart_id, product_id, cart_info, `unique`, is_after_sales, title, image, number, spec, price, add_product_mark, is_order FROM yshop_store_order_cart_info WHERE (oid = ?)\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'\n; bad SQL grammar []\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\n at jdk.proxy2/jdk.proxy2.$Proxy140.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\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 jdk.proxy2/jdk.proxy2.$Proxy250.selectList(Unknown Source)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl.getStoreOrderPage(StoreOrderServiceImpl.java:253)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.service.storeorder.StoreOrderServiceImpl$$SpringCGLIB$$0.getStoreOrderPage()\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.getStoreOrderPage(StoreOrderController.java:111)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:174)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:198)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)\n at co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController$$SpringCGLIB$$0.getStoreOrderPage()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)\n at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)\n at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)\n at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)\n at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)\n at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\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:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)\n at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)\n at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)\n at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)\n at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)\n at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)\n at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)\n at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at co.yixiang.yshop.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)\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:340)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)\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.base/java.lang.Thread.run(Thread.java:842)\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'add_product_mark\' in \'field list\'\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\n at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\n at jdk.proxy2/jdk.proxy2.$Proxy236.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at jdk.internal.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\n at jdk.proxy2/jdk.proxy2.$Proxy235.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\n ... 192 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 246, 0, NULL, 0, NULL, '2024-06-01 14:18:54', NULL, '2024-06-01 14:18:54', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_codegen_column +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_column`; +CREATE TABLE `infra_codegen_column` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_id` bigint 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) NOT NULL COMMENT '是否允许为空', + `primary_key` bit(1) NOT NULL COMMENT '是否主键', + `auto_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '是否自增', + `ordinal_position` int 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 DEFAULT '' COMMENT '字典类型', + `example` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '数据示例', + `create_operation` bit(1) NOT NULL COMMENT '是否为 Create 创建操作的字段', + `update_operation` bit(1) NOT NULL COMMENT '是否为 Update 更新操作的字段', + `list_operation` bit(1) NOT 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) NOT 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 DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=2426 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表字段定义'; + +-- ---------------------------- +-- Records of infra_codegen_column +-- ---------------------------- +BEGIN; +INSERT INTO `infra_codegen_column` VALUES (1688, 131, 'id', 'BIGINT', '编号', b'0', b'1', '1', 1, 'Long', 'id', '', '9920', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1689, 131, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 2, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1690, 131, 'create_id', 'VARCHAR', '创建者ID', b'1', b'0', '0', 3, 'String', 'createId', '', '29395', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:01:50', b'1'); +INSERT INTO `infra_codegen_column` VALUES (1691, 131, 'type', 'CHAR', '类型1、图片;2、视频', b'0', b'0', '0', 4, 'String', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1692, 131, 'group_id', 'VARCHAR', '分组ID', b'1', b'0', '0', 5, 'String', 'groupId', '', '21579', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1693, 131, 'name', 'VARCHAR', '素材名', b'0', b'0', '0', 6, 'String', 'name', '', 'yshop', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1694, 131, 'url', 'VARCHAR', '素材链接', b'1', b'0', '0', 7, 'String', 'url', '', 'https://www.iocoder.cn', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1695, 131, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 8, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1696, 131, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 9, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1697, 132, 'id', 'BIGINT', '编号', b'0', b'1', '1', 1, 'Long', 'id', '', '1995', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1698, 132, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 2, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1699, 132, 'create_id', 'VARCHAR', '创建者ID', b'1', b'0', '0', 3, 'String', 'createId', '', '24549', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:01:56', b'1'); +INSERT INTO `infra_codegen_column` VALUES (1700, 132, 'name', 'VARCHAR', '分组名', b'0', b'0', '0', 4, 'String', 'name', '', '赵六', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1701, 132, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 5, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1702, 132, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 6, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1703, 131, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 1, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-10 16:01:50', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1704, 131, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 2, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-10 16:01:50', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1705, 132, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 1, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-10 16:01:57', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1706, 132, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 2, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-10 16:01:57', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1707, 133, 'id', 'INTEGER', 'id', b'0', b'1', '1', 1, 'Integer', 'id', '', '2067', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1708, 133, 'rule_name', 'VARCHAR', '规格名称', b'0', b'0', '0', 2, 'String', 'ruleName', '', '赵六', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1709, 133, 'rule_value', 'LONGVARCHAR', '规格值', b'0', b'0', '0', 3, 'String', 'ruleValue', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1710, 133, 'create_time', 'TIMESTAMP', '创建时间', b'1', b'0', '0', 4, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1711, 133, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 5, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1712, 133, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 6, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1713, 133, 'deleted', 'BIT', '删除', b'1', b'0', '0', 7, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1714, 133, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 8, 'Long', 'tenantId', '', '1659', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1715, 134, 'id', 'BIGINT', '商品id', b'0', b'1', '1', 1, 'Long', 'id', '', '1175', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1716, 134, 'image', 'VARCHAR', '商品图片', b'0', b'0', '0', 2, 'String', 'image', '', NULL, b'1', b'1', b'0', '=', b'1', 'upload_image', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1717, 134, 'slider_image', 'VARCHAR', '轮播图', b'0', b'0', '0', 3, 'String', 'sliderImage', '', NULL, b'1', b'1', b'0', '=', b'0', 'upload_image', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1718, 134, 'store_name', 'VARCHAR', '商品名称', b'0', b'0', '0', 4, 'String', 'storeName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1719, 134, 'store_info', 'VARCHAR', '商品简介', b'0', b'0', '0', 5, 'String', 'storeInfo', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1720, 134, 'keyword', 'VARCHAR', '关键字', b'0', b'0', '0', 6, 'String', 'keyword', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1721, 134, 'bar_code', 'VARCHAR', '产品条码(一维码)', b'1', b'0', '0', 7, 'String', 'barCode', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1722, 134, 'cate_id', 'VARCHAR', '分类id', b'0', b'0', '0', 8, 'String', 'cateId', '', '4928', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1723, 134, 'price', 'DECIMAL', '商品价格', b'0', b'0', '0', 9, 'BigDecimal', 'price', '', '18735', b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1724, 134, 'vip_price', 'DECIMAL', '会员价格', b'1', b'0', '0', 10, 'BigDecimal', 'vipPrice', '', '18248', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1725, 134, 'ot_price', 'DECIMAL', '市场价', b'1', b'0', '0', 11, 'BigDecimal', 'otPrice', '', '14818', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1726, 134, 'postage', 'DECIMAL', '邮费', b'1', b'0', '0', 12, 'BigDecimal', 'postage', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1727, 134, 'unit_name', 'VARCHAR', '单位名', b'1', b'0', '0', 13, 'String', 'unitName', '', '李四', b'1', b'1', b'0', 'LIKE', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1728, 134, 'sort', 'SMALLINT', '排序', b'1', b'0', '0', 14, 'Short', 'sort', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1729, 134, 'sales', 'INTEGER', '销量', b'1', b'0', '0', 15, 'Integer', 'sales', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1730, 134, 'stock', 'INTEGER', '库存', b'1', b'0', '0', 16, 'Integer', 'stock', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1731, 134, 'is_show', 'BIT', '状态(0:未上架,1:上架)', b'1', b'0', '0', 17, 'Boolean', 'isShow', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1732, 134, 'is_hot', 'BIT', '是否热卖', b'1', b'0', '0', 18, 'Boolean', 'isHot', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1733, 134, 'is_benefit', 'BIT', '是否优惠', b'1', b'0', '0', 19, 'Boolean', 'isBenefit', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1734, 134, 'is_best', 'BIT', '是否精品', b'1', b'0', '0', 20, 'Boolean', 'isBest', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1735, 134, 'is_new', 'BIT', '是否新品', b'1', b'0', '0', 21, 'Boolean', 'isNew', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1736, 134, 'description', 'LONGVARCHAR', '产品描述', b'1', b'0', '0', 22, 'String', 'description', '', '你说的对', b'1', b'1', b'0', '=', b'0', 'editor', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1737, 134, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 23, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1738, 134, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 24, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1739, 134, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 25, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1740, 134, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 26, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1741, 134, 'is_postage', 'TINYINT', '是否包邮', b'1', b'0', '0', 27, 'Byte', 'isPostage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1742, 134, 'deleted', 'BIT', '是否删除', b'1', b'0', '0', 28, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1743, 134, 'mer_use', 'TINYINT', '商户是否代理 0不可代理1可代理', b'1', b'0', '0', 29, 'Byte', 'merUse', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1744, 134, 'give_integral', 'DECIMAL', '获得积分', b'1', b'0', '0', 30, 'BigDecimal', 'giveIntegral', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1745, 134, 'cost', 'DECIMAL', '成本价', b'1', b'0', '0', 31, 'BigDecimal', 'cost', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1746, 134, 'is_seckill', 'TINYINT', '秒杀状态 0 未开启 1已开启', b'1', b'0', '0', 32, 'Byte', 'isSeckill', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1747, 134, 'is_bargain', 'TINYINT', '砍价状态 0未开启 1开启', b'1', b'0', '0', 33, 'Byte', 'isBargain', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1748, 134, 'is_good', 'BIT', '是否优品推荐', b'1', b'0', '0', 34, 'Boolean', 'isGood', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1749, 134, 'ficti', 'INTEGER', '虚拟销量', b'1', b'0', '0', 35, 'Integer', 'ficti', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1750, 134, 'browse', 'INTEGER', '浏览量', b'1', b'0', '0', 36, 'Integer', 'browse', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1751, 134, 'code_path', 'VARCHAR', '产品二维码地址(用户小程序海报)', b'0', b'0', '0', 37, 'String', 'codePath', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1752, 134, 'is_sub', 'BIT', '是否单独分佣', b'1', b'0', '0', 38, 'Boolean', 'isSub', '', NULL, b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1753, 134, 'temp_id', 'INTEGER', '运费模板ID', b'1', b'0', '0', 39, 'Integer', 'tempId', '', '18065', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1754, 134, 'spec_type', 'BIT', '规格 0单 1多', b'1', b'0', '0', 40, 'Boolean', 'specType', '', '1', b'1', b'1', b'0', '=', b'0', 'radio', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1755, 134, 'is_integral', 'TINYINT', '是开启积分兑换', b'1', b'0', '0', 41, 'Byte', 'isIntegral', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1756, 134, 'integral', 'INTEGER', '需要多少积分兑换 只在开启积分兑换时生效', b'1', b'0', '0', 42, 'Integer', 'integral', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1757, 134, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 43, 'Long', 'tenantId', '', '11014', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1758, 135, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '8611', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:43:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1759, 135, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 2, 'Long', 'productId', '', '15333', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:43:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1760, 135, 'attr_name', 'VARCHAR', '属性名', b'0', b'0', '0', 3, 'String', 'attrName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:43:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1761, 135, 'attr_values', 'VARCHAR', '属性值', b'0', b'0', '0', 4, 'String', 'attrValues', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:43:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1762, 136, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '32554', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:07', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1763, 136, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 2, 'Long', 'productId', '', '11180', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:07', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1764, 136, 'result', 'LONGVARCHAR', '商品属性参数', b'0', b'0', '0', 3, 'String', 'result', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:07', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1765, 136, 'change_time', 'TIMESTAMP', '上次修改时间', b'0', b'0', '0', 4, 'LocalDateTime', 'changeTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:07', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1766, 137, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '30784', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1767, 137, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 2, 'Long', 'productId', '', '9431', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1768, 137, 'sku', 'VARCHAR', '商品属性索引值 (attr_value|attr_value[|....])', b'0', b'0', '0', 3, 'String', 'sku', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1769, 137, 'stock', 'INTEGER', '属性对应的库存', b'0', b'0', '0', 4, 'Integer', 'stock', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1770, 137, 'sales', 'INTEGER', '销量', b'1', b'0', '0', 5, 'Integer', 'sales', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1771, 137, 'price', 'DECIMAL', '属性金额', b'0', b'0', '0', 6, 'BigDecimal', 'price', '', '24382', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1772, 137, 'image', 'VARCHAR', '图片', b'1', b'0', '0', 7, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1773, 137, 'unique', 'VARCHAR', '唯一值', b'0', b'0', '0', 8, 'String', 'unique', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1774, 137, 'cost', 'DECIMAL', '成本价', b'0', b'0', '0', 9, 'BigDecimal', 'cost', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1775, 137, 'bar_code', 'VARCHAR', '商品条码', b'1', b'0', '0', 10, 'String', 'barCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1776, 137, 'ot_price', 'DECIMAL', '原价', b'1', b'0', '0', 11, 'BigDecimal', 'otPrice', '', '1420', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1777, 137, 'weight', 'DECIMAL', '重量', b'0', b'0', '0', 12, 'BigDecimal', 'weight', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1778, 137, 'volume', 'DECIMAL', '体积', b'0', b'0', '0', 13, 'BigDecimal', 'volume', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1779, 137, 'brokerage', 'DECIMAL', '一级返佣', b'0', b'0', '0', 14, 'BigDecimal', 'brokerage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1780, 137, 'brokerage_two', 'DECIMAL', '二级返佣', b'0', b'0', '0', 15, 'BigDecimal', 'brokerageTwo', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1781, 137, 'pink_price', 'DECIMAL', '拼团价', b'0', b'0', '0', 16, 'BigDecimal', 'pinkPrice', '', '27724', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1782, 137, 'pink_stock', 'INTEGER', '拼团库存', b'0', b'0', '0', 17, 'Integer', 'pinkStock', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1783, 137, 'seckill_price', 'DECIMAL', '秒杀价', b'0', b'0', '0', 18, 'BigDecimal', 'seckillPrice', '', '31664', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1784, 137, 'seckill_stock', 'INTEGER', '秒杀库存', b'0', b'0', '0', 19, 'Integer', 'seckillStock', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1785, 137, 'integral', 'INTEGER', '需要多少积分兑换', b'1', b'0', '0', 20, 'Integer', 'integral', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1799, 139, 'id', 'INTEGER', '模板ID', b'0', b'1', '1', 1, 'Integer', 'id', '', '17775', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1800, 139, 'name', 'VARCHAR', '模板名称', b'1', b'0', '0', 2, 'String', 'name', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1801, 139, 'type', 'BIT', '计费方式', b'1', b'0', '0', 3, 'Boolean', 'type', '', '2', b'1', b'1', b'0', '=', b'1', 'radio', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1802, 139, 'region_info', 'LONGVARCHAR', '地域以及费用', b'1', b'0', '0', 4, 'String', 'regionInfo', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1803, 139, 'appoint', 'BIT', '指定包邮开关', b'1', b'0', '0', 5, 'Boolean', 'appoint', '', NULL, b'1', b'1', b'0', '=', b'1', 'radio', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1804, 139, 'appoint_info', 'LONGVARCHAR', '指定包邮内容', b'1', b'0', '0', 6, 'String', 'appointInfo', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1805, 139, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 7, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1806, 139, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 8, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1807, 139, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 9, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1808, 139, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 10, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1809, 139, 'deleted', 'BIT', '是否删除', b'1', b'0', '0', 11, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1810, 139, 'sort', 'INTEGER', '排序', b'1', b'0', '0', 12, 'Integer', 'sort', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1811, 139, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 13, 'Long', 'tenantId', '', '3603', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1812, 140, 'id', 'INTEGER', '编号', b'0', b'1', '1', 1, 'Integer', 'id', '', '11386', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1813, 140, 'province_id', 'INTEGER', '省ID', b'0', b'0', '0', 2, 'Integer', 'provinceId', '', '15786', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1814, 140, 'temp_id', 'INTEGER', '模板ID', b'0', b'0', '0', 3, 'Integer', 'tempId', '', '32249', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1815, 140, 'city_id', 'INTEGER', '城市ID', b'0', b'0', '0', 4, 'Integer', 'cityId', '', '4772', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1816, 140, 'number', 'DECIMAL', '包邮件数', b'0', b'0', '0', 5, 'BigDecimal', 'number', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1817, 140, 'price', 'DECIMAL', '包邮金额', b'0', b'0', '0', 6, 'BigDecimal', 'price', '', '30472', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1818, 140, 'type', 'BIT', '计费方式', b'0', b'0', '0', 7, 'Boolean', 'type', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1819, 140, 'uniqid', 'VARCHAR', '分组唯一值', b'0', b'0', '0', 8, 'String', 'uniqid', '', '4130', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1820, 141, 'id', 'INTEGER', '编号', b'0', b'1', '1', 1, 'Integer', 'id', '', '378', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1821, 141, 'province_id', 'INTEGER', '省ID', b'0', b'0', '0', 2, 'Integer', 'provinceId', '', '20327', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1822, 141, 'temp_id', 'INTEGER', '模板ID', b'0', b'0', '0', 3, 'Integer', 'tempId', '', '22266', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1823, 141, 'city_id', 'INTEGER', '城市ID', b'0', b'0', '0', 4, 'Integer', 'cityId', '', '26577', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1824, 141, 'first', 'DECIMAL', '首件', b'0', b'0', '0', 5, 'BigDecimal', 'first', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1825, 141, 'first_price', 'DECIMAL', '首件运费', b'0', b'0', '0', 6, 'BigDecimal', 'firstPrice', '', '2331', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1826, 141, 'continues', 'DECIMAL', '续件', b'0', b'0', '0', 7, 'BigDecimal', 'continues', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1827, 141, 'continue_price', 'DECIMAL', '续件运费', b'0', b'0', '0', 8, 'BigDecimal', 'continuePrice', '', '21082', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1828, 141, 'type', 'BIT', '计费方式', b'0', b'0', '0', 9, 'Boolean', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1829, 141, 'uniqid', 'VARCHAR', '分组唯一值', b'0', b'0', '0', 10, 'String', 'uniqid', '', '10545', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1830, 142, 'id', 'BIGINT', '用户id', b'0', b'1', '1', 1, 'Long', 'id', '', '16370', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1831, 142, 'username', 'VARCHAR', '用户账户(跟accout一样)', b'1', b'0', '0', 2, 'String', 'username', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1832, 142, 'password', 'VARCHAR', '用户密码(跟pwd)', b'1', b'0', '0', 3, 'String', 'password', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1833, 142, 'real_name', 'VARCHAR', '真实姓名', b'1', b'0', '0', 4, 'String', 'realName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1834, 142, 'birthday', 'INTEGER', '生日', b'1', b'0', '0', 5, 'Integer', 'birthday', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1835, 142, 'card_id', 'VARCHAR', '身份证号码', b'1', b'0', '0', 6, 'String', 'cardId', '', '29961', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1836, 142, 'mark', 'VARCHAR', '用户备注', b'1', b'0', '0', 7, 'String', 'mark', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1837, 142, 'partner_id', 'INTEGER', '合伙人id', b'1', b'0', '0', 8, 'Integer', 'partnerId', '', '4234', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1838, 142, 'group_id', 'INTEGER', '用户分组id', b'1', b'0', '0', 9, 'Integer', 'groupId', '', '12625', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1839, 142, 'nickname', 'VARCHAR', '用户昵称', b'1', b'0', '0', 10, 'String', 'nickname', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1840, 142, 'avatar', 'VARCHAR', '用户头像', b'1', b'0', '0', 11, 'String', 'avatar', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1841, 142, 'phone', 'CHAR', '手机号码', b'1', b'0', '0', 12, 'String', 'phone', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1842, 142, 'add_ip', 'VARCHAR', '添加ip', b'1', b'0', '0', 13, 'String', 'addIp', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1843, 142, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 14, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1844, 142, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 15, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1845, 142, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 16, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1846, 142, 'update_time', 'TIMESTAMP', '最后一次登录时间', b'1', b'0', '0', 17, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1847, 142, 'last_ip', 'VARCHAR', '最后一次登录ip', b'1', b'0', '0', 18, 'String', 'lastIp', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1848, 142, 'now_money', 'DECIMAL', '用户余额', b'0', b'0', '0', 19, 'BigDecimal', 'nowMoney', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1849, 142, 'brokerage_price', 'DECIMAL', '佣金金额', b'0', b'0', '0', 20, 'BigDecimal', 'brokeragePrice', '', '14395', b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1850, 142, 'integral', 'DECIMAL', '用户剩余积分', b'0', b'0', '0', 21, 'BigDecimal', 'integral', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1851, 142, 'sign_num', 'INTEGER', '连续签到天数', b'0', b'0', '0', 22, 'Integer', 'signNum', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1852, 142, 'status', 'BIT', '1为正常,0为禁止', b'0', b'0', '0', 23, 'Boolean', 'status', '', '2', b'1', b'1', b'0', '=', b'1', 'radio', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1853, 142, 'level', 'TINYINT', '等级', b'0', b'0', '0', 24, 'Byte', 'level', '', NULL, b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1854, 142, 'spread_uid', 'BIGINT', '推广元id', b'1', b'0', '0', 25, 'Long', 'spreadUid', '', '5747', b'1', b'1', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1855, 142, 'spread_time', 'TIMESTAMP', '推广员关联时间', b'1', b'0', '0', 26, 'LocalDateTime', 'spreadTime', '', NULL, b'1', b'1', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1856, 142, 'user_type', 'VARCHAR', '用户类型', b'0', b'0', '0', 27, 'String', 'userType', '', '1', b'1', b'1', b'0', '=', b'0', 'select', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1857, 142, 'is_promoter', 'TINYINT', '是否为推广员', b'0', b'0', '0', 28, 'Byte', 'isPromoter', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1858, 142, 'pay_count', 'INTEGER', '用户购买次数', b'1', b'0', '0', 29, 'Integer', 'payCount', '', '16061', b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1859, 142, 'spread_count', 'INTEGER', '下级人数', b'1', b'0', '0', 30, 'Integer', 'spreadCount', '', '4960', b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1860, 142, 'addres', 'VARCHAR', '详细地址', b'0', b'0', '0', 31, 'String', 'addres', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1861, 142, 'adminid', 'INTEGER', '管理员编号 ', b'1', b'0', '0', 32, 'Integer', 'adminid', '', '29490', b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1862, 142, 'login_type', 'VARCHAR', '用户登陆类型,h5,wechat,routine', b'0', b'0', '0', 33, 'String', 'loginType', '', '2', b'1', b'1', b'0', '=', b'1', 'select', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1863, 142, 'wx_profile', 'LONGVARCHAR', '微信用户json信息', b'1', b'0', '0', 34, 'String', 'wxProfile', '', NULL, b'1', b'1', b'0', '=', b'1', 'upload_file', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1864, 142, 'deleted', 'BIT', '删除', b'1', b'0', '0', 35, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1865, 142, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 36, 'Long', 'tenantId', '', '28404', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1976, 151, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '10463', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1977, 151, 'order_code', 'VARCHAR', '订单号', b'1', b'0', '0', 2, 'String', 'orderCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1978, 151, 'refund_amount', 'DECIMAL', '退款金额', b'1', b'0', '0', 3, 'BigDecimal', 'refundAmount', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1979, 151, 'service_type', 'BIT', '服务类型0仅退款1退货退款', b'1', b'0', '0', 4, 'Boolean', 'serviceType', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1980, 151, 'reasons', 'LONGVARCHAR', '申请原因', b'1', b'0', '0', 5, 'String', 'reasons', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1981, 151, 'explains', 'LONGVARCHAR', '说明', b'1', b'0', '0', 6, 'String', 'explains', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1982, 151, 'explain_img', 'LONGVARCHAR', '说明图片->多个用逗号分割', b'1', b'0', '0', 7, 'String', 'explainImg', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1983, 151, 'shipper_code', 'VARCHAR', '物流公司编码', b'1', b'0', '0', 8, 'String', 'shipperCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1984, 151, 'delivery_sn', 'VARCHAR', '物流单号', b'1', b'0', '0', 9, 'String', 'deliverySn', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1985, 151, 'delivery_name', 'VARCHAR', '物流名称', b'1', b'0', '0', 10, 'String', 'deliveryName', '', 'yshop', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1986, 151, 'state', 'BIT', '状态 0已提交等待平台审核 1平台已审核 等待用户发货/退款 2 用户已发货 3退款成功', b'1', b'0', '0', 11, 'Boolean', 'state', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1987, 151, 'sales_state', 'BIT', '售后状态-0正常1用户取消2商家拒绝', b'1', b'0', '0', 12, 'Boolean', 'salesState', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1988, 151, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 13, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1989, 151, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 14, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1990, 151, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 15, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1991, 151, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 16, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1992, 151, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 17, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1993, 151, 'user_id', 'BIGINT', '用户id', b'1', b'0', '0', 18, 'Long', 'userId', '', '24467', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1994, 151, 'consignee', 'VARCHAR', '商家收货人', b'1', b'0', '0', 19, 'String', 'consignee', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1995, 151, 'phone_number', 'VARCHAR', '商家手机号', b'1', b'0', '0', 20, 'String', 'phoneNumber', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1996, 151, 'address', 'VARCHAR', '商家地址', b'1', b'0', '0', 21, 'String', 'address', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1997, 151, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 22, 'Long', 'tenantId', '', '6945', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1998, 152, 'id', 'BIGINT', '主键id', b'0', b'1', '1', 1, 'Long', 'id', '', '27129', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (1999, 152, 'store_after_sales_id', 'BIGINT', '售后id', b'1', b'0', '0', 2, 'Long', 'storeAfterSalesId', '', '12309', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2000, 152, 'product_id', 'BIGINT', '商品id', b'1', b'0', '0', 3, 'Long', 'productId', '', '27833', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2001, 152, 'cart_info', 'LONGVARCHAR', '退货东西的详情信息', b'0', b'0', '0', 4, 'String', 'cartInfo', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2002, 152, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 5, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2003, 152, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 6, 'Long', 'tenantId', '', '32156', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2004, 152, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 7, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2005, 152, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 8, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2006, 152, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 9, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2007, 152, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 10, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2008, 153, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '23233', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2009, 153, 'store_after_sales_id', 'BIGINT', '售后id', b'1', b'0', '0', 2, 'Long', 'storeAfterSalesId', '', '8825', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2010, 153, 'change_type', 'BIT', '操作类型', b'1', b'0', '0', 3, 'Boolean', 'changeType', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2011, 153, 'change_message', 'VARCHAR', '操作备注', b'1', b'0', '0', 4, 'String', 'changeMessage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2012, 153, 'change_time', 'TIMESTAMP', '操作时间', b'1', b'0', '0', 5, 'LocalDateTime', 'changeTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2013, 153, 'operator', 'VARCHAR', '操作人', b'1', b'0', '0', 6, 'String', 'operator', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2014, 154, 'id', 'BIGINT', '购物车表ID', b'0', b'1', '1', 1, 'Long', 'id', '', '11256', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2015, 154, 'uid', 'BIGINT', '用户ID', b'0', b'0', '0', 2, 'Long', 'uid', '', '10667', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2016, 154, 'type', 'VARCHAR', '类型', b'0', b'0', '0', 3, 'String', 'type', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2017, 154, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 4, 'Long', 'productId', '', '1696', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2018, 154, 'product_attr_unique', 'VARCHAR', '商品属性', b'0', b'0', '0', 5, 'String', 'productAttrUnique', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2019, 154, 'cart_num', 'SMALLINT', '商品数量', b'0', b'0', '0', 6, 'Short', 'cartNum', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2020, 154, 'is_pay', 'BIT', '0 = 未购买 1 = 已购买', b'0', b'0', '0', 7, 'Boolean', 'isPay', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2021, 154, 'is_new', 'BIT', '是否为立即购买', b'0', b'0', '0', 8, 'Boolean', 'isNew', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2022, 154, 'combination_id', 'INTEGER', '拼团id', b'1', b'0', '0', 9, 'Integer', 'combinationId', '', '13847', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2023, 154, 'seckill_id', 'INTEGER', '秒杀产品ID', b'0', b'0', '0', 10, 'Integer', 'seckillId', '', '8790', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2024, 154, 'bargain_id', 'INTEGER', '砍价id', b'0', b'0', '0', 11, 'Integer', 'bargainId', '', '21581', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2025, 154, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 12, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2026, 154, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 13, 'Long', 'tenantId', '', '28742', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2027, 154, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 14, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2028, 154, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 15, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2029, 154, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 16, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2030, 154, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 17, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2031, 155, 'id', 'BIGINT', '订单ID', b'0', b'1', '1', 1, 'Long', 'id', '', '31716', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2032, 155, 'order_id', 'VARCHAR', '订单号', b'0', b'0', '0', 2, 'String', 'orderId', '', '20527', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2033, 155, 'extend_order_id', 'VARCHAR', '额外订单号', b'1', b'0', '0', 3, 'String', 'extendOrderId', '', '12452', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2034, 155, 'uid', 'BIGINT', '用户id', b'0', b'0', '0', 4, 'Long', 'uid', '', '8323', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2035, 155, 'real_name', 'VARCHAR', '用户姓名', b'0', b'0', '0', 5, 'String', 'realName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2036, 155, 'user_phone', 'VARCHAR', '用户电话', b'0', b'0', '0', 6, 'String', 'userPhone', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2037, 155, 'user_address', 'VARCHAR', '详细地址', b'0', b'0', '0', 7, 'String', 'userAddress', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2038, 155, 'cart_id', 'VARCHAR', '购物车id', b'0', b'0', '0', 8, 'String', 'cartId', '', '23301', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2039, 155, 'freight_price', 'DECIMAL', '运费金额', b'0', b'0', '0', 9, 'BigDecimal', 'freightPrice', '', '637', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2040, 155, 'total_num', 'INTEGER', '订单商品总数', b'0', b'0', '0', 10, 'Integer', 'totalNum', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2041, 155, 'total_price', 'DECIMAL', '订单总价', b'0', b'0', '0', 11, 'BigDecimal', 'totalPrice', '', '31659', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2042, 155, 'total_postage', 'DECIMAL', '邮费', b'0', b'0', '0', 12, 'BigDecimal', 'totalPostage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2043, 155, 'pay_price', 'DECIMAL', '实际支付金额', b'0', b'0', '0', 13, 'BigDecimal', 'payPrice', '', '19682', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2044, 155, 'pay_postage', 'DECIMAL', '支付邮费', b'0', b'0', '0', 14, 'BigDecimal', 'payPostage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2045, 155, 'deduction_price', 'DECIMAL', '抵扣金额', b'0', b'0', '0', 15, 'BigDecimal', 'deductionPrice', '', '16463', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2046, 155, 'coupon_id', 'INTEGER', '优惠券id', b'0', b'0', '0', 16, 'Integer', 'couponId', '', '3299', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2047, 155, 'coupon_price', 'DECIMAL', '优惠券金额', b'0', b'0', '0', 17, 'BigDecimal', 'couponPrice', '', '22157', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2048, 155, 'paid', 'TINYINT', '支付状态', b'0', b'0', '0', 18, 'Byte', 'paid', '', '11728', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2049, 155, 'pay_time', 'TIMESTAMP', '支付时间', b'1', b'0', '0', 19, 'LocalDateTime', 'payTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2050, 155, 'pay_type', 'VARCHAR', '支付方式', b'0', b'0', '0', 20, 'String', 'payType', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2051, 155, 'status', 'BIT', '订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货;1:待收货;2:已收货;3:已完成;-1:已退款)', b'0', b'0', '0', 21, 'Boolean', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2052, 155, 'refund_status', 'TINYINT', '0 未退款 1 申请中 2 已退款', b'0', b'0', '0', 22, 'Byte', 'refundStatus', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2053, 155, 'refund_reason_wap_img', 'VARCHAR', '退款图片', b'1', b'0', '0', 23, 'String', 'refundReasonWapImg', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2054, 155, 'refund_reason_wap_explain', 'VARCHAR', '退款用户说明', b'1', b'0', '0', 24, 'String', 'refundReasonWapExplain', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2055, 155, 'refund_reason_time', 'TIMESTAMP', '退款时间', b'1', b'0', '0', 25, 'LocalDateTime', 'refundReasonTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2056, 155, 'refund_reason_wap', 'VARCHAR', '前台退款原因', b'1', b'0', '0', 26, 'String', 'refundReasonWap', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2057, 155, 'refund_reason', 'VARCHAR', '不退款的理由', b'1', b'0', '0', 27, 'String', 'refundReason', '', '不喜欢', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2058, 155, 'refund_price', 'DECIMAL', '退款金额', b'0', b'0', '0', 28, 'BigDecimal', 'refundPrice', '', '7547', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2059, 155, 'delivery_sn', 'VARCHAR', '快递公司编号', b'1', b'0', '0', 29, 'String', 'deliverySn', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2060, 155, 'delivery_name', 'VARCHAR', '快递名称/送货人姓名', b'1', b'0', '0', 30, 'String', 'deliveryName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2061, 155, 'delivery_type', 'VARCHAR', '发货类型', b'1', b'0', '0', 31, 'String', 'deliveryType', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2062, 155, 'delivery_id', 'VARCHAR', '快递单号/手机号', b'1', b'0', '0', 32, 'String', 'deliveryId', '', '24798', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2063, 155, 'gain_integral', 'DECIMAL', '消费赚取积分', b'0', b'0', '0', 33, 'BigDecimal', 'gainIntegral', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2064, 155, 'use_integral', 'DECIMAL', '使用积分', b'0', b'0', '0', 34, 'BigDecimal', 'useIntegral', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2065, 155, 'pay_integral', 'DECIMAL', '实际支付积分', b'0', b'0', '0', 35, 'BigDecimal', 'payIntegral', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2066, 155, 'back_integral', 'DECIMAL', '给用户退了多少积分', b'1', b'0', '0', 36, 'BigDecimal', 'backIntegral', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2067, 155, 'mark', 'VARCHAR', '备注', b'0', b'0', '0', 37, 'String', 'mark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2068, 155, 'unique', 'CHAR', '唯一id(md5加密)类似id', b'0', b'0', '0', 38, 'String', 'unique', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2069, 155, 'remark', 'VARCHAR', '管理员备注', b'1', b'0', '0', 39, 'String', 'remark', '', '随便', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2070, 155, 'mer_id', 'INTEGER', '商户ID', b'0', b'0', '0', 40, 'Integer', 'merId', '', '8499', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2071, 155, 'combination_id', 'BIGINT', '拼团产品id0一般产品', b'1', b'0', '0', 41, 'Long', 'combinationId', '', '3865', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2072, 155, 'pink_id', 'BIGINT', '拼团id 0没有拼团', b'0', b'0', '0', 42, 'Long', 'pinkId', '', '8463', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2073, 155, 'cost', 'DECIMAL', '成本价', b'0', b'0', '0', 43, 'BigDecimal', 'cost', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2074, 155, 'seckill_id', 'BIGINT', '秒杀产品ID', b'0', b'0', '0', 44, 'Long', 'seckillId', '', '21525', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2075, 155, 'bargain_id', 'INTEGER', '砍价id', b'1', b'0', '0', 45, 'Integer', 'bargainId', '', '5132', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2076, 155, 'verify_code', 'VARCHAR', '核销码', b'0', b'0', '0', 46, 'String', 'verifyCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2077, 155, 'store_id', 'INTEGER', '门店id', b'0', b'0', '0', 47, 'Integer', 'storeId', '', '12064', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2078, 155, 'shipping_type', 'BIT', '配送方式 1=快递 ,2=门店自提', b'0', b'0', '0', 48, 'Boolean', 'shippingType', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2079, 155, 'is_channel', 'TINYINT', '支付渠道(0微信公众号1微信小程序)', b'1', b'0', '0', 49, 'Byte', 'isChannel', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2080, 155, 'is_system_del', 'BIT', '系统删除', b'1', b'0', '0', 50, 'Boolean', 'isSystemDel', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2081, 155, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 51, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2082, 155, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 52, 'Long', 'tenantId', '', '8311', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2083, 155, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 53, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2084, 155, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 54, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2085, 155, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 55, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2086, 155, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 56, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2087, 156, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '26502', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2088, 156, 'oid', 'BIGINT', '订单id', b'0', b'0', '0', 2, 'Long', 'oid', '', '19739', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2089, 156, 'order_id', 'VARCHAR', '订单号', b'1', b'0', '0', 3, 'String', 'orderId', '', '2153', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2090, 156, 'cart_id', 'BIGINT', '购物车id', b'0', b'0', '0', 4, 'Long', 'cartId', '', '9449', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2091, 156, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 5, 'Long', 'productId', '', '4909', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2092, 156, 'cart_info', 'LONGVARCHAR', '购买东西的详细信息', b'0', b'0', '0', 6, 'String', 'cartInfo', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2093, 156, 'unique', 'VARCHAR', '唯一id', b'0', b'0', '0', 7, 'String', 'unique', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2094, 156, 'is_after_sales', 'BIT', '是否能售后0不能1能', b'1', b'0', '0', 8, 'Boolean', 'isAfterSales', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2095, 157, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '6933', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2096, 157, 'oid', 'BIGINT', '订单id', b'0', b'0', '0', 2, 'Long', 'oid', '', '6551', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2097, 157, 'change_type', 'VARCHAR', '操作类型', b'0', b'0', '0', 3, 'String', 'changeType', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2098, 157, 'change_message', 'VARCHAR', '操作备注', b'0', b'0', '0', 4, 'String', 'changeMessage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2099, 157, 'change_time', 'TIMESTAMP', '操作时间', b'0', b'0', '0', 5, 'LocalDateTime', 'changeTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2100, 158, 'id', 'BIGINT', '用户地址id', b'0', b'1', '1', 1, 'Long', 'id', '', '24169', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2101, 158, 'uid', 'BIGINT', '用户id', b'0', b'0', '0', 2, 'Long', 'uid', '', '25124', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2102, 158, 'real_name', 'VARCHAR', '收货人姓名', b'0', b'0', '0', 3, 'String', 'realName', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2103, 158, 'phone', 'VARCHAR', '收货人电话', b'0', b'0', '0', 4, 'String', 'phone', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2104, 158, 'province', 'VARCHAR', '收货人所在省', b'0', b'0', '0', 5, 'String', 'province', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2105, 158, 'city', 'VARCHAR', '收货人所在市', b'0', b'0', '0', 6, 'String', 'city', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2106, 158, 'city_id', 'INTEGER', '城市id', b'1', b'0', '0', 7, 'Integer', 'cityId', '', '15595', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2107, 158, 'district', 'VARCHAR', '收货人所在区', b'0', b'0', '0', 8, 'String', 'district', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2108, 158, 'detail', 'VARCHAR', '收货人详细地址', b'0', b'0', '0', 9, 'String', 'detail', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2109, 158, 'post_code', 'VARCHAR', '邮编', b'0', b'0', '0', 10, 'String', 'postCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2110, 158, 'longitude', 'VARCHAR', '经度', b'0', b'0', '0', 11, 'String', 'longitude', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2111, 158, 'latitude', 'VARCHAR', '纬度', b'0', b'0', '0', 12, 'String', 'latitude', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2112, 158, 'is_default', 'TINYINT', '是否默认', b'0', b'0', '0', 13, 'Byte', 'isDefault', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2113, 158, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 14, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2114, 158, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 15, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2115, 158, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 16, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2116, 158, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 17, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2117, 158, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 18, 'Long', 'tenantId', '', '16180', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2118, 158, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 19, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2119, 159, 'id', 'BIGINT', '用户账单id', b'0', b'1', '1', 1, 'Long', 'id', '', '22559', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2120, 159, 'uid', 'BIGINT', '用户uid', b'0', b'0', '0', 2, 'Long', 'uid', '', '9419', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2121, 159, 'link_id', 'VARCHAR', '关联id', b'0', b'0', '0', 3, 'String', 'linkId', '', '18439', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2122, 159, 'pm', 'TINYINT', '0 = 支出 1 = 获得', b'0', b'0', '0', 4, 'Byte', 'pm', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2123, 159, 'title', 'VARCHAR', '账单标题', b'0', b'0', '0', 5, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2124, 159, 'category', 'VARCHAR', '明细种类', b'0', b'0', '0', 6, 'String', 'category', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2125, 159, 'type', 'VARCHAR', '明细类型', b'0', b'0', '0', 7, 'String', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2126, 159, 'number', 'DECIMAL', '明细数字', b'0', b'0', '0', 8, 'BigDecimal', 'number', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2127, 159, 'balance', 'DECIMAL', '剩余', b'0', b'0', '0', 9, 'BigDecimal', 'balance', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2128, 159, 'mark', 'VARCHAR', '备注', b'0', b'0', '0', 10, 'String', 'mark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2129, 159, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 11, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2130, 159, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 12, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2131, 159, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 13, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2132, 159, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 14, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2133, 159, 'status', 'BIT', '0 = 带确定 1 = 有效 -1 = 无效', b'0', b'0', '0', 15, 'Boolean', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2134, 159, 'deleted', 'BIT', '删除', b'1', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2135, 159, 'tenant_id', 'BIGINT', '租户编号', b'1', b'0', '0', 17, 'Long', 'tenantId', '', '17966', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2136, 160, 'id', 'BIGINT', '评论ID', b'0', b'1', '1', 1, 'Long', 'id', '', '7419', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2137, 160, 'uid', 'BIGINT', '用户ID', b'0', b'0', '0', 2, 'Long', 'uid', '', '12573', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2138, 160, 'oid', 'BIGINT', '订单ID', b'0', b'0', '0', 3, 'Long', 'oid', '', '5646', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2139, 160, 'unique', 'CHAR', '唯一id', b'0', b'0', '0', 4, 'String', 'unique', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2140, 160, 'product_id', 'BIGINT', '产品id', b'0', b'0', '0', 5, 'Long', 'productId', '', '23509', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2141, 160, 'reply_type', 'VARCHAR', '某种商品类型(普通商品、秒杀商品)', b'0', b'0', '0', 6, 'String', 'replyType', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2142, 160, 'product_score', 'BIT', '商品分数', b'0', b'0', '0', 7, 'Boolean', 'productScore', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2143, 160, 'service_score', 'BIT', '服务分数', b'0', b'0', '0', 8, 'Boolean', 'serviceScore', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2144, 160, 'comment', 'VARCHAR', '评论内容', b'0', b'0', '0', 9, 'String', 'comment', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2145, 160, 'pics', 'LONGVARCHAR', '评论图片', b'0', b'0', '0', 10, 'String', 'pics', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2146, 160, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 11, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2147, 160, 'create_time', 'TIMESTAMP', '评论时间', b'0', b'0', '0', 12, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2148, 160, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 13, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2149, 160, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 14, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2150, 160, 'merchant_reply_content', 'VARCHAR', '管理员回复内容', b'1', b'0', '0', 15, 'String', 'merchantReplyContent', '', NULL, b'1', b'1', b'1', '=', b'1', 'editor', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2151, 160, 'merchant_reply_time', 'TIMESTAMP', '管理员回复时间', b'1', b'0', '0', 16, 'LocalDateTime', 'merchantReplyTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2152, 160, 'deleted', 'BIT', '0未删除1已删除', b'0', b'0', '0', 17, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2153, 160, 'is_reply', 'BIT', '0未回复1已回复', b'0', b'0', '0', 18, 'Boolean', 'isReply', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2154, 160, 'tenant_id', 'BIGINT', '租户ID', b'1', b'0', '0', 19, 'Long', 'tenantId', '', '17849', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2155, 161, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '24658', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2156, 161, 'uid', 'BIGINT', '用户ID', b'0', b'0', '0', 2, 'Long', 'uid', '', '17942', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2157, 161, 'product_id', 'BIGINT', '商品ID', b'0', b'0', '0', 3, 'Long', 'productId', '', '8816', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2158, 161, 'type', 'VARCHAR', '类型(收藏(collect)、点赞(like))', b'1', b'0', '0', 4, 'String', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2159, 161, 'category', 'VARCHAR', '某种类型的商品(普通商品、秒杀商品)', b'1', b'0', '0', 5, 'String', 'category', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2160, 161, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 6, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2161, 161, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 7, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2162, 161, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 8, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2163, 161, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 9, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2164, 161, 'deleted', 'BIT', '删除', b'1', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2165, 161, 'tenant_id', 'BIGINT', '租户ID', b'1', b'0', '0', 11, 'Long', 'tenantId', '', '27955', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2166, 162, 'id', 'INTEGER', '快递公司id', b'0', b'1', '1', 1, 'Integer', 'id', '', '27172', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2167, 162, 'code', 'VARCHAR', '快递公司简称', b'0', b'0', '0', 2, 'String', 'code', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2168, 162, 'name', 'VARCHAR', '快递公司全称', b'0', b'0', '0', 3, 'String', 'name', '', 'yshop', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2169, 162, 'sort', 'INTEGER', '排序', b'0', b'0', '0', 4, 'Integer', 'sort', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2170, 162, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 5, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2171, 162, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 6, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2172, 162, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 7, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2173, 162, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 8, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2174, 162, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 9, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2175, 163, 'details_id', 'CHAR', '列表id', b'0', b'1', '0', 1, 'String', 'detailsId', '', '17552', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2176, 163, 'pay_type', 'VARCHAR', '支付类型(支付渠道) 详情查看com.egzosn.pay.spring.boot.core.merchant.PaymentPlatform对应子类,aliPay 支付宝, wxPay微信..等等', b'0', b'0', '0', 2, 'String', 'payType', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2177, 163, 'appid', 'VARCHAR', '应用id', b'1', b'0', '0', 3, 'String', 'appid', '', '1718', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2178, 163, 'mch_id', 'VARCHAR', '商户id,商户号,合作伙伴id等等', b'1', b'0', '0', 4, 'String', 'mchId', '', '21574', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2179, 163, 'cert_store_type', 'VARCHAR', '当前面私钥公钥为证书类型的时候,这里必填,可选值:PATH,STR,INPUT_STREAM,CLASS_PATH,URL', b'1', b'0', '0', 5, 'String', 'certStoreType', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2180, 163, 'key_private', 'LONGVARCHAR', '私钥或私钥证书', b'1', b'0', '0', 6, 'String', 'keyPrivate', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2181, 163, 'key_public', 'LONGVARCHAR', '公钥或公钥证书', b'1', b'0', '0', 7, 'String', 'keyPublic', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2182, 163, 'key_cert', 'VARCHAR', 'key证书,附加证书使用,如SSL证书,或者银联根级证书方面', b'1', b'0', '0', 8, 'String', 'keyCert', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2183, 163, 'key_cert_pwd', 'VARCHAR', '私钥证书或key证书的密码', b'1', b'0', '0', 9, 'String', 'keyCertPwd', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2184, 163, 'notify_url', 'VARCHAR', '异步回调', b'1', b'0', '0', 10, 'String', 'notifyUrl', '', 'https://www.iocoder.cn', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2185, 163, 'return_url', 'VARCHAR', '同步回调地址,大部分用于付款成功后页面转跳', b'1', b'0', '0', 11, 'String', 'returnUrl', '', 'https://www.iocoder.cn', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2186, 163, 'sign_type', 'VARCHAR', '签名方式,目前已实现多种签名方式详情查看com.egzosn.pay.common.util.sign.encrypt。MD5,RSA等等', b'0', b'0', '0', 12, 'String', 'signType', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2187, 163, 'seller', 'VARCHAR', '收款账号,暂时只有支付宝部分使用,可根据开发者自行使用', b'1', b'0', '0', 13, 'String', 'seller', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2188, 163, 'sub_app_id', 'VARCHAR', '子appid', b'1', b'0', '0', 14, 'String', 'subAppId', '', '13761', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2189, 163, 'sub_mch_id', 'VARCHAR', '子商户id', b'1', b'0', '0', 15, 'String', 'subMchId', '', '10127', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2190, 163, 'input_charset', 'VARCHAR', '编码类型,大部分为utf-8', b'0', b'0', '0', 16, 'String', 'inputCharset', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2191, 163, 'is_test', 'BIT', '是否为测试环境: 0 否,1 测试环境', b'0', b'0', '0', 17, 'Boolean', 'isTest', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2192, 164, 'id', 'BIGINT', '主键id', b'0', b'1', '1', 1, 'Long', 'id', '', '4751', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2193, 164, 'shipper_id', 'INTEGER', '快递公司id', b'1', b'0', '0', 2, 'Integer', 'shipperId', '', '13715', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2194, 164, 'paytype', 'BIT', '运费支付方式:1=现付,2=到付,3=月结,4=第三方付(仅SF支持)', b'1', b'0', '0', 3, 'Boolean', 'paytype', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2195, 164, 'customer_name', 'VARCHAR', '线下网点客户号', b'1', b'0', '0', 4, 'String', 'customerName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2196, 164, 'customer_pwd', 'VARCHAR', '线下网点密码', b'1', b'0', '0', 5, 'String', 'customerPwd', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2197, 164, 'send_site', 'VARCHAR', '网点名称', b'1', b'0', '0', 6, 'String', 'sendSite', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2198, 164, 'send_staff', 'VARCHAR', '网点快递员', b'1', b'0', '0', 7, 'String', 'sendStaff', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2199, 164, 'month_code', 'VARCHAR', '月结编号', b'1', b'0', '0', 8, 'String', 'monthCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2200, 164, 'is_notice', 'BIT', '是否通知揽件:0=通知揽件,1=不通知揽件', b'1', b'0', '0', 9, 'Boolean', 'isNotice', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2201, 164, 'is_return_temp', 'BIT', '是否返回电子面单模板:0=不返回,1=返回', b'1', b'0', '0', 10, 'Boolean', 'isReturnTemp', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2202, 164, 'is_send_message', 'BIT', '是否需要短信提醒:0=否,1=是', b'1', b'0', '0', 11, 'Boolean', 'isSendMessage', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2203, 164, 'template_size', 'VARCHAR', '模板尺寸', b'1', b'0', '0', 12, 'String', 'templateSize', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2204, 164, 'operate_require', 'VARCHAR', '签回单操作要求(如:签名、盖章、身份证复印件等)', b'1', b'0', '0', 13, 'String', 'operateRequire', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2205, 164, 'logistic_code', 'VARCHAR', '快递单号(仅宅急送可用)', b'1', b'0', '0', 14, 'String', 'logisticCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2206, 164, 'start_date', 'INTEGER', '上门揽件开始时间', b'1', b'0', '0', 15, 'Integer', 'startDate', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2207, 164, 'end_date', 'INTEGER', '上门揽件结束时间', b'1', b'0', '0', 16, 'Integer', 'endDate', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2208, 164, 'remark', 'VARCHAR', '备注', b'1', b'0', '0', 17, 'String', 'remark', '', '你猜', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2209, 164, 'exp_type', 'BIT', '快递类型:1=标准快件', b'1', b'0', '0', 18, 'Boolean', 'expType', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2210, 164, 'is_return_sign_bill', 'BIT', '是否要签回单:0=否,1=是', b'1', b'0', '0', 19, 'Boolean', 'isReturnSignBill', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2211, 164, 'company', 'VARCHAR', '发件人公司', b'1', b'0', '0', 20, 'String', 'company', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2212, 164, 'province_name', 'VARCHAR', '发件人省', b'1', b'0', '0', 21, 'String', 'provinceName', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2213, 164, 'city_name', 'VARCHAR', '发件人市', b'1', b'0', '0', 22, 'String', 'cityName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2214, 164, 'exp_area_name', 'VARCHAR', '发件人区', b'1', b'0', '0', 23, 'String', 'expAreaName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2215, 164, 'address', 'VARCHAR', '发件人详细地址', b'1', b'0', '0', 24, 'String', 'address', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2216, 164, 'name', 'VARCHAR', '发件人姓名', b'1', b'0', '0', 25, 'String', 'name', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2217, 164, 'tel', 'VARCHAR', '发件人电话', b'1', b'0', '0', 26, 'String', 'tel', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2218, 164, 'mobile', 'VARCHAR', '发件人手机号码', b'1', b'0', '0', 27, 'String', 'mobile', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2219, 164, 'post_code', 'VARCHAR', '发件地邮编', b'1', b'0', '0', 28, 'String', 'postCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2220, 164, 'title', 'VARCHAR', '自定义名称', b'1', b'0', '0', 29, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2221, 164, 'create_time', 'TIMESTAMP', '创建时间', b'1', b'0', '0', 30, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2222, 164, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 31, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2223, 164, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 32, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2224, 164, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 33, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2225, 164, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 34, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2226, 165, 'id', 'BIGINT', '主键id', b'0', b'1', '1', 1, 'Long', 'id', '', '21777', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2227, 165, 'order_sn', 'VARCHAR', '订单编号', b'1', b'0', '0', 2, 'String', 'orderSn', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2228, 165, 'print_template', 'LONGVARCHAR', '模板', b'1', b'0', '0', 3, 'String', 'printTemplate', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2229, 165, 'kdn_order_code', 'VARCHAR', 'KDNOrderCode', b'1', b'0', '0', 4, 'String', 'kdnOrderCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2230, 165, 'logistic_code', 'VARCHAR', '物流单号', b'1', b'0', '0', 5, 'String', 'logisticCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2231, 165, 'shipper_code', 'VARCHAR', '快递编号', b'1', b'0', '0', 6, 'String', 'shipperCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2232, 165, 'order', 'VARCHAR', '接口返回的json', b'1', b'0', '0', 7, 'String', 'order', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2233, 165, 'customer_name', 'VARCHAR', '线下网点客户号', b'1', b'0', '0', 8, 'String', 'customerName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2234, 165, 'customer_pwd', 'VARCHAR', '线下网点密码', b'1', b'0', '0', 9, 'String', 'customerPwd', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2235, 165, 'status', 'BIT', '状态:0=正常,1=已取消', b'1', b'0', '0', 10, 'Boolean', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2236, 165, 'create_time', 'TIMESTAMP', '创建时间', b'1', b'0', '0', 11, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2237, 165, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 12, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2238, 165, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 13, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2239, 165, 'updater', 'TIMESTAMP', '更新者', b'1', b'0', '0', 14, 'LocalDateTime', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2240, 165, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 15, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2241, 166, 'id', 'INTEGER', '模板id', b'0', b'1', '1', 1, 'Integer', 'id', '', '8445', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2242, 166, 'tempkey', 'CHAR', '模板编号', b'0', b'0', '0', 2, 'String', 'tempkey', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2243, 166, 'name', 'CHAR', '模板名', b'0', b'0', '0', 3, 'String', 'name', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2244, 166, 'content', 'VARCHAR', '回复内容', b'0', b'0', '0', 4, 'String', 'content', '', NULL, b'1', b'1', b'1', '=', b'1', 'editor', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2245, 166, 'tempid', 'CHAR', '模板ID', b'1', b'0', '0', 5, 'String', 'tempid', '', '15656', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2246, 166, 'create_time', 'TIMESTAMP', '添加时间', b'0', b'0', '0', 6, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2247, 166, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 7, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2248, 166, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 8, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2249, 166, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 9, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2250, 166, 'status', 'TINYINT', '状态', b'0', b'0', '0', 10, 'Byte', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2251, 166, 'deleted', 'BIT', '删除', b'1', b'0', '0', 11, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2252, 166, 'type', 'VARCHAR', '类型:template:模板消息 subscribe:订阅消息', b'1', b'0', '0', 12, 'String', 'type', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2253, 167, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '25450', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2254, 167, 'name', 'VARCHAR', '店铺名称', b'0', b'0', '0', 2, 'String', 'name', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2255, 167, 'mobile', 'VARCHAR', '店铺电话', b'0', b'0', '0', 3, 'String', 'mobile', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2256, 167, 'image', 'VARCHAR', '图片', b'0', b'0', '0', 4, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2257, 167, 'images', 'LONGVARCHAR', '多张图片', b'0', b'0', '0', 5, 'String', 'images', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2258, 167, 'address', 'VARCHAR', '详细地址', b'0', b'0', '0', 6, 'String', 'address', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2259, 167, 'address_map', 'VARCHAR', '地图定位地址', b'0', b'0', '0', 7, 'String', 'addressMap', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2260, 167, 'starttime', 'INTEGER', '营业开始时间', b'0', b'0', '0', 8, 'Integer', 'starttime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:59:55', b'1'); +INSERT INTO `infra_codegen_column` VALUES (2261, 167, 'endtime', 'INTEGER', '营业结束时间', b'0', b'0', '0', 9, 'Integer', 'endtime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:59:55', b'1'); +INSERT INTO `infra_codegen_column` VALUES (2262, 167, 'lng', 'VARCHAR', '经度', b'0', b'0', '0', 10, 'String', 'lng', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2263, 167, 'lat', 'VARCHAR', '纬度', b'0', b'0', '0', 11, 'String', 'lat', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2264, 167, 'distance', 'INTEGER', '外卖配送距离,单位为千米。0表示不送外卖', b'0', b'0', '0', 12, 'Integer', 'distance', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2265, 167, 'min_price', 'DECIMAL', '起送价钱', b'0', b'0', '0', 13, 'BigDecimal', 'minPrice', '', '15157', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2266, 167, 'delivery_price', 'DECIMAL', '配送价格', b'0', b'0', '0', 14, 'BigDecimal', 'deliveryPrice', '', '11771', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2267, 167, 'notice', 'VARCHAR', '公告', b'0', b'0', '0', 15, 'String', 'notice', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2268, 167, 'status', 'BIT', '是否营业:0=否,1=是', b'0', b'0', '0', 16, 'Boolean', 'status', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2269, 167, 'admin_id', 'VARCHAR', '管理员id', b'0', b'0', '0', 17, 'String', 'adminId', '', '22251', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2270, 167, 'uniprint_id', 'VARCHAR', '打印机id', b'0', b'0', '0', 18, 'String', 'uniprintId', '', '5596', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2271, 167, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 19, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2272, 167, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 20, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2273, 167, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 21, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2274, 167, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 22, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2275, 167, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 23, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2276, 167, 'start_time', 'TIMESTAMP', '营业开始时间', b'0', b'0', '0', 1, 'LocalDateTime', 'startTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-03 14:59:56', '1', '2023-08-03 14:59:56', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2277, 167, 'end_time', 'TIMESTAMP', '营业结束时间', b'0', b'0', '0', 2, 'LocalDateTime', 'endTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-03 14:59:56', '1', '2023-08-03 14:59:56', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2278, 168, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '24753', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2279, 168, 'image', 'VARCHAR', '图片', b'1', b'0', '0', 2, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2280, 168, 'switch', 'BIT', '是否显现', b'0', b'0', '0', 3, 'Boolean', 'switch', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2281, 168, 'weigh', 'INTEGER', '权重', b'0', b'0', '0', 4, 'Integer', 'weigh', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2282, 168, 'shop_id', 'VARCHAR', '所支持的店铺id用\',\'区分,0代表全部', b'0', b'0', '0', 5, 'String', 'shopId', '', '2901', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2283, 168, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 6, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2284, 168, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 7, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2285, 168, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 8, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2286, 168, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 9, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2287, 168, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2288, 169, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '6335', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2289, 169, 'name', 'VARCHAR', '标题', b'0', b'0', '0', 2, 'String', 'name', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2290, 169, 'image', 'VARCHAR', '图标', b'0', b'0', '0', 3, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2291, 169, 'type', 'VARCHAR', '类型:pages=页面,miniprogram=跳转小程序,menu=菜单,content=内容,call=电话', b'0', b'0', '0', 4, 'String', 'type', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2292, 169, 'content', 'LONGVARCHAR', '详情', b'0', b'0', '0', 5, 'String', 'content', '', NULL, b'1', b'1', b'1', '=', b'1', 'editor', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2293, 169, 'pid', 'INTEGER', '父级id', b'0', b'0', '0', 6, 'Integer', 'pid', '', '25371', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2294, 169, 'app_id', 'VARCHAR', '小程序app_id', b'0', b'0', '0', 7, 'String', 'appId', '', '20728', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2295, 169, 'pages', 'VARCHAR', '页面路径', b'0', b'0', '0', 8, 'String', 'pages', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2296, 169, 'phone', 'VARCHAR', '电话', b'0', b'0', '0', 9, 'String', 'phone', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2297, 169, 'weigh', 'INTEGER', '权重', b'0', b'0', '0', 10, 'Integer', 'weigh', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2298, 169, 'status', 'BIT', '状态:0=下架,1=上架', b'0', b'0', '0', 11, 'Boolean', 'status', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2299, 169, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 12, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2300, 169, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 13, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2301, 169, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 14, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2302, 169, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 15, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2303, 169, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2304, 170, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '27504', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2305, 170, 'name', 'VARCHAR', '标题', b'0', b'0', '0', 2, 'String', 'name', '', 'yshop', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2306, 170, 'sales', 'INTEGER', '销量', b'0', b'0', '0', 3, 'Integer', 'sales', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2307, 170, 'value', 'DECIMAL', '价值', b'0', b'0', '0', 4, 'BigDecimal', 'value', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2308, 170, 'weigh', 'INTEGER', '权重', b'0', b'0', '0', 5, 'Integer', 'weigh', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2309, 170, 'status', 'BIT', '状态:1=显示,0=隐藏', b'0', b'0', '0', 6, 'Boolean', 'status', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2310, 170, 'sell_price', 'DECIMAL', '销售价', b'0', b'0', '0', 7, 'BigDecimal', 'sellPrice', '', '13493', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2311, 170, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 8, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2312, 170, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 9, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2313, 170, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 10, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2314, 170, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 11, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2315, 170, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 12, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2339, 172, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '1582', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2340, 172, 'shop_id', 'VARCHAR', '店铺id,0表示通用', b'0', b'0', '0', 2, 'String', 'shopId', '', '8915', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2341, 172, 'shop_name', 'VARCHAR', '店铺名称逗号隔开', b'1', b'0', '0', 3, 'String', 'shopName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2342, 172, 'title', 'VARCHAR', '优惠券名称', b'0', b'0', '0', 4, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2343, 172, 'switch', 'BIT', '是否上架', b'0', b'0', '0', 5, 'Boolean', 'switch', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2344, 172, 'least', 'DECIMAL', '消费多少可用', b'0', b'0', '0', 6, 'BigDecimal', 'least', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2345, 172, 'value', 'DECIMAL', '优惠券金额', b'0', b'0', '0', 7, 'BigDecimal', 'value', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2346, 172, 'start_time', 'TIMESTAMP', '开始时间', b'0', b'0', '0', 8, 'LocalDateTime', 'startTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2347, 172, 'endt_ime', 'TIMESTAMP', '结束时间', b'0', b'0', '0', 9, 'LocalDateTime', 'endtIme', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2348, 172, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 10, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2349, 172, 'update_time', 'TIMESTAMP', '更新时间', b'0', b'0', '0', 11, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2350, 172, 'deleted', 'BIT', '删除', b'1', b'0', '0', 12, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2351, 172, 'weigh', 'INTEGER', '权重', b'0', b'0', '0', 13, 'Integer', 'weigh', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2352, 172, 'type', 'BIT', '可用类型:0=通用,1=自取,2=外卖', b'0', b'0', '0', 14, 'Boolean', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2353, 172, 'exchange_code', 'VARCHAR', '兑换码', b'1', b'0', '0', 15, 'String', 'exchangeCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2354, 172, 'receive', 'INTEGER', '已领取', b'0', b'0', '0', 16, 'Integer', 'receive', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2355, 172, 'distribute', 'INTEGER', '发行数量', b'0', b'0', '0', 17, 'Integer', 'distribute', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2356, 172, 'score', 'INTEGER', '所需积分', b'0', b'0', '0', 18, 'Integer', 'score', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2357, 172, 'instructions', 'LONGVARCHAR', '使用说明', b'0', b'0', '0', 19, 'String', 'instructions', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2358, 172, 'image', 'VARCHAR', '图片', b'0', b'0', '0', 20, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2359, 172, 'limit', 'INTEGER', '限领数量', b'1', b'0', '0', 21, 'Integer', 'limit', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2360, 172, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 22, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2361, 172, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 23, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2362, 173, 'id', 'INTEGER', 'id', b'0', b'1', '1', 1, 'Integer', 'id', '', '5159', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2363, 173, 'shop_id', 'VARCHAR', '店铺id,0表示通用', b'0', b'0', '0', 2, 'String', 'shopId', '', '32582', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2364, 173, 'shop_name', 'VARCHAR', '店铺名称逗号隔开', b'1', b'0', '0', 3, 'String', 'shopName', '', 'yshop', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2365, 173, 'title', 'VARCHAR', '优惠券名称', b'0', b'0', '0', 4, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2366, 173, 'least', 'DECIMAL', '消费多少可用', b'0', b'0', '0', 5, 'BigDecimal', 'least', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2367, 173, 'value', 'DECIMAL', '优惠券金额', b'0', b'0', '0', 6, 'BigDecimal', 'value', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2368, 173, 'starttime', 'INTEGER', '开始时间', b'0', b'0', '0', 7, 'Integer', 'starttime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2369, 173, 'endtime', 'INTEGER', '结束时间', b'0', b'0', '0', 8, 'Integer', 'endtime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2370, 173, 'createtime', 'INTEGER', '创建时间', b'0', b'0', '0', 9, 'Integer', 'createtime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2371, 173, 'updatetime', 'INTEGER', '更新时间', b'0', b'0', '0', 10, 'Integer', 'updatetime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2372, 173, 'type', 'BIT', '可用类型:0=通用,1=自取,2=外卖', b'0', b'0', '0', 11, 'Boolean', 'type', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2373, 173, 'score', 'INTEGER', '消耗积分', b'0', b'0', '0', 12, 'Integer', 'score', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2374, 173, 'instructions', 'VARCHAR', '使用说明', b'0', b'0', '0', 13, 'String', 'instructions', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2375, 173, 'image', 'VARCHAR', '图片', b'0', b'0', '0', 14, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2376, 173, 'user_id', 'INTEGER', '用户id', b'0', b'0', '0', 15, 'Integer', 'userId', '', '20961', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2377, 173, 'status', 'BIT', '已使用:0=否,1=是', b'0', b'0', '0', 16, 'Boolean', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2378, 173, 'coupon_id', 'INTEGER', '优惠券id', b'0', b'0', '0', 17, 'Integer', 'couponId', '', '23870', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2379, 173, 'exchange_code', 'VARCHAR', '兑换码', b'1', b'0', '0', 18, 'String', 'exchangeCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2380, 174, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '19735', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2381, 174, 'user_id', 'INTEGER', '用户id', b'0', b'0', '0', 2, 'Integer', 'userId', '', '28397', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2382, 174, 'product_id', 'INTEGER', '商品id', b'0', b'0', '0', 3, 'Integer', 'productId', '', '31639', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2383, 174, 'number', 'INTEGER', '数量', b'0', b'0', '0', 4, 'Integer', 'number', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2384, 174, 'score', 'INTEGER', '单个商品积分', b'0', b'0', '0', 5, 'Integer', 'score', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2385, 174, 'total_score', 'INTEGER', '总消耗积分', b'0', b'0', '0', 6, 'Integer', 'totalScore', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2386, 174, 'ip', 'VARCHAR', '下单ip', b'1', b'0', '0', 7, 'String', 'ip', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2387, 174, 'express_number', 'VARCHAR', '快递编号', b'0', b'0', '0', 8, 'String', 'expressNumber', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2388, 174, 'express_company', 'VARCHAR', '快递公司', b'0', b'0', '0', 9, 'String', 'expressCompany', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2389, 174, 'customer_name', 'VARCHAR', '收货名称', b'1', b'0', '0', 10, 'String', 'customerName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2390, 174, 'customer_phone', 'VARCHAR', '收货电话', b'1', b'0', '0', 11, 'String', 'customerPhone', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2391, 174, 'customer_address', 'VARCHAR', '收货地址', b'1', b'0', '0', 12, 'String', 'customerAddress', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2392, 174, 'status', 'BIT', '订单状态:0=取消订单,1=正常啊', b'0', b'0', '0', 13, 'Boolean', 'status', '', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2393, 174, 'have_paid', 'INTEGER', '已支付:0=否', b'0', b'0', '0', 14, 'Integer', 'havePaid', '', '12822', b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2394, 174, 'have_delivered', 'INTEGER', '已发货:0=否', b'0', b'0', '0', 15, 'Integer', 'haveDelivered', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2395, 174, 'have_received', 'INTEGER', '已收货:0=否', b'0', b'0', '0', 16, 'Integer', 'haveReceived', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2396, 174, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 17, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2397, 174, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 18, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2398, 174, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 19, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2399, 174, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 20, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2400, 174, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 21, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2401, 175, 'id', 'BIGINT', 'id', b'0', b'1', '1', 1, 'Long', 'id', '', '8624', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2402, 175, 'title', 'VARCHAR', '产品标题', b'0', b'0', '0', 2, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2403, 175, 'image', 'VARCHAR', '主图', b'0', b'0', '0', 3, 'String', 'image', '', NULL, b'1', b'1', b'1', '=', b'1', 'upload_image', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2404, 175, 'images', 'VARCHAR', '组图', b'0', b'0', '0', 4, 'String', 'images', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2405, 175, 'desc', 'LONGVARCHAR', '详情', b'0', b'0', '0', 5, 'String', 'desc', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2406, 175, 'score', 'INTEGER', '消耗积分', b'0', b'0', '0', 6, 'Integer', 'score', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2407, 175, 'weigh', 'INTEGER', '权重', b'0', b'0', '0', 7, 'Integer', 'weigh', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2408, 175, 'stock', 'INTEGER', '库存', b'0', b'0', '0', 8, 'Integer', 'stock', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2409, 175, 'sales', 'INTEGER', '销售量', b'0', b'0', '0', 9, 'Integer', 'sales', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2410, 175, 'switch', 'BIT', '是否上架:0=否,1=是', b'0', b'0', '0', 10, 'Boolean', 'switch', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2411, 175, 'create_time', 'TIMESTAMP', '添加时间', b'1', b'0', '0', 11, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2412, 175, 'update_time', 'TIMESTAMP', '更新时间', b'1', b'0', '0', 12, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2413, 175, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 13, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2414, 175, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 14, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2415, 175, 'deleted', 'BIT', '逻辑删除', b'1', b'0', '0', 15, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-08-09 15:38:46', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2416, 176, 'id', 'BIGINT', 'id', b'0', b'1', '0', 1, 'Long', 'id', '', '8134', b'0', b'1', b'0', '=', b'1', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2417, 176, 'title', 'VARCHAR', '打印机名称', b'1', b'0', '0', 2, 'String', 'title', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2418, 176, 'mechine_code', 'VARCHAR', '终端号', b'1', b'0', '0', 3, 'String', 'mechineCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2419, 176, 'msign', 'VARCHAR', '终端密钥', b'1', b'0', '0', 4, 'String', 'msign', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2420, 176, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 5, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2421, 176, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 6, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2422, 176, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 7, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2423, 176, 'update_time', 'TIMESTAMP', '更新时间', b'0', b'0', '0', 8, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2424, 176, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 9, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +INSERT INTO `infra_codegen_column` VALUES (2425, 176, 'tenant_id', 'BIGINT', '租户编号', b'0', b'0', '0', 10, 'Long', 'tenantId', '', '9240', b'0', b'0', b'0', '=', b'0', 'input', '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_codegen_table +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_table`; +CREATE TABLE `infra_codegen_table` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `data_source_config_id` bigint NOT NULL COMMENT '数据源配置的编号', + `scene` tinyint 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 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 NOT NULL DEFAULT '1' COMMENT '模板类型', + `front_type` tinyint NOT NULL COMMENT '前端类型', + `parent_menu_id` bigint DEFAULT NULL COMMENT '父菜单编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=177 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表定义'; + +-- ---------------------------- +-- Records of infra_codegen_table +-- ---------------------------- +BEGIN; +INSERT INTO `infra_codegen_table` VALUES (131, 0, 1, 'yshop_material', '素材库', NULL, 'product', 'material', 'Material', '素材库', 'yshop', 1, 20, 2000, '1', '2023-05-10 15:20:54', '1', '2023-05-22 15:04:44', b'0'); +INSERT INTO `infra_codegen_table` VALUES (132, 0, 1, 'yshop_material_group', '素材分组', NULL, 'shop', 'materialgroup', 'MaterialGroup', '素材分组', 'yshop', 1, 20, 2000, '1', '2023-05-10 15:20:54', '1', '2023-05-10 16:26:44', b'0'); +INSERT INTO `infra_codegen_table` VALUES (133, 0, 1, 'yshop_store_product_rule', '商品规则值(规格)表', NULL, 'shop', 'storeproductrule', 'StoreProductRule', '商品规则值(规格)', 'yshop', 1, 20, 2000, '1', '2023-05-17 10:40:31', '1', '2023-05-17 10:47:51', b'0'); +INSERT INTO `infra_codegen_table` VALUES (134, 0, 2, 'yshop_store_product', '商品表', NULL, 'product', 'storeproduct', 'StoreProduct', '商品', 'yshop', 1, 20, 2000, '1', '2023-05-22 13:29:08', '1', '2023-06-12 10:27:01', b'0'); +INSERT INTO `infra_codegen_table` VALUES (135, 0, 1, 'yshop_store_product_attr', '商品属性表', NULL, 'product', 'storeproductattr', 'StoreProductAttr', '商品属性', 'yshop', 1, 20, 2000, '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:43:50', b'0'); +INSERT INTO `infra_codegen_table` VALUES (136, 0, 1, 'yshop_store_product_attr_result', '商品属性详情表', NULL, 'product', 'storeproductattrresult', 'StoreProductAttrResult', '商品属性详情', 'yshop', 1, 20, 2000, '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:07', b'0'); +INSERT INTO `infra_codegen_table` VALUES (137, 0, 1, 'yshop_store_product_attr_value', '商品属性值表', NULL, 'product', 'storeproductattrvalue', 'StoreProductAttrValue', '商品属性值', 'yshop', 1, 20, 2000, '1', '2023-05-27 09:40:31', '1', '2023-05-27 09:44:22', b'0'); +INSERT INTO `infra_codegen_table` VALUES (139, 0, 1, 'yshop_shipping_templates', '运费模板表', NULL, 'product', 'shippingtemplates', 'ShippingTemplates', '运费模板', 'yshop', 1, 20, 2174, '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:39:25', b'0'); +INSERT INTO `infra_codegen_table` VALUES (140, 0, 1, 'yshop_shipping_templates_free', '运费包邮明细', NULL, 'product', 'shippingtemplatesfree', 'ShippingTemplatesFree', '运费包邮明细', 'yshop', 1, 10, 2000, '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:48:50', b'0'); +INSERT INTO `infra_codegen_table` VALUES (141, 0, 1, 'yshop_shipping_templates_region', '运费区域明细', NULL, 'product', 'shippingtemplatesregion', 'ShippingTemplatesRegion', '运费区域明细', 'yshop', 1, 20, 2000, '1', '2023-06-02 14:35:42', '1', '2023-06-02 14:49:08', b'0'); +INSERT INTO `infra_codegen_table` VALUES (142, 0, 1, 'yshop_user', '用户表', NULL, 'member', 'user', 'User', '用户', 'yshop', 1, 20, 2176, '1', '2023-06-09 14:49:08', '1', '2023-06-09 14:59:21', b'0'); +INSERT INTO `infra_codegen_table` VALUES (151, 0, 1, 'yshop_store_after_sales', '售后记录表', NULL, 'order', 'storeaftersales', 'StoreAfterSales', '售后记录', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:45:36', b'0'); +INSERT INTO `infra_codegen_table` VALUES (152, 0, 1, 'yshop_store_after_sales_item', '售后子表', NULL, 'order', 'storeaftersalesitem', 'StoreAfterSalesItem', '售后子', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:54:31', b'0'); +INSERT INTO `infra_codegen_table` VALUES (153, 0, 1, 'yshop_store_after_sales_status', '售后订单操作详情表', NULL, 'order', 'storeaftersalesstatus', 'StoreAfterSalesStatus', '售后订单操作详情', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-18 21:00:27', b'0'); +INSERT INTO `infra_codegen_table` VALUES (154, 0, 1, 'yshop_store_cart', '购物车表', NULL, 'cart', 'storecart', 'StoreCart', '购物车', 'yshop', 1, 20, 2174, '1', '2023-06-09 19:07:42', '1', '2023-06-15 17:43:18', b'0'); +INSERT INTO `infra_codegen_table` VALUES (155, 0, 1, 'yshop_store_order', '订单表', NULL, 'order', 'storeorder', 'StoreOrder', '订单', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-17 21:53:37', b'0'); +INSERT INTO `infra_codegen_table` VALUES (156, 0, 1, 'yshop_store_order_cart_info', '订单购物详情表', NULL, 'order', 'storeordercartinfo', 'StoreOrderCartInfo', '订单购物详情', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:17', b'0'); +INSERT INTO `infra_codegen_table` VALUES (157, 0, 1, 'yshop_store_order_status', '订单操作记录表', NULL, 'order', 'storeorderstatus', 'StoreOrderStatus', '订单操作记录', 'yshop', 1, 20, 2175, '1', '2023-06-09 19:07:42', '1', '2023-06-18 18:04:51', b'0'); +INSERT INTO `infra_codegen_table` VALUES (158, 0, 1, 'yshop_user_address', '用户地址表', NULL, 'member', 'useraddress', 'UserAddress', '用户地址', 'yshop', 1, 20, 2176, '1', '2023-06-09 19:07:42', '1', '2023-06-18 16:24:37', b'0'); +INSERT INTO `infra_codegen_table` VALUES (159, 0, 1, 'yshop_user_bill', '用户账单表', NULL, 'member', 'userbill', 'UserBill', '用户账单', 'yshop', 1, 20, 2176, '1', '2023-06-09 19:07:42', '1', '2023-06-18 20:33:14', b'0'); +INSERT INTO `infra_codegen_table` VALUES (160, 0, 1, 'yshop_store_product_reply', '评论表', NULL, 'product', 'storeproductreply', 'StoreProductReply', '评论', 'yshop', 1, 20, 2174, '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:40:14', b'0'); +INSERT INTO `infra_codegen_table` VALUES (161, 0, 1, 'yshop_store_product_relation', '商品点赞和收藏表', NULL, 'product', 'storeproductrelation', 'StoreProductRelation', '商品点赞和收藏', 'yshop', 1, 20, 2174, '1', '2023-06-09 19:07:42', '1', '2023-06-13 09:39:36', b'0'); +INSERT INTO `infra_codegen_table` VALUES (162, 0, 1, 'yshop_express', '快递公司表', NULL, 'order', 'express', 'Express', '快递公司', 'yshop', 1, 20, 2175, '1', '2023-07-02 10:10:18', '1', '2023-07-02 10:11:22', b'0'); +INSERT INTO `infra_codegen_table` VALUES (163, 0, 1, 'yshop_merchant_details', '支付服务商配置', NULL, 'pay', 'merchantdetails', 'MerchantDetails', '支付服务商配置', 'yshop', 1, 20, 1117, '1', '2023-07-14 14:30:07', '1', '2023-07-14 14:33:17', b'0'); +INSERT INTO `infra_codegen_table` VALUES (164, 0, 1, 'yshop_electronics_order', '电子面单', NULL, 'express', 'electronicsorder', 'ElectronicsOrder', '电子面单', 'yshop', 1, 20, 2243, '1', '2023-07-20 17:46:33', '1', '2023-07-20 17:47:48', b'0'); +INSERT INTO `infra_codegen_table` VALUES (165, 0, 1, 'yshop_store_order_electronics', '订单电子面单记录', NULL, 'order', 'storeorderelectronics', 'StoreOrderElectronics', '订单电子面单记录', 'yshop', 1, 20, 2175, '1', '2023-07-22 16:42:14', '1', '2023-07-22 17:29:35', b'0'); +INSERT INTO `infra_codegen_table` VALUES (166, 0, 1, 'yshop_wechat_template', '微信模板', NULL, 'message', 'wechattemplate', 'WechatTemplate', '微信模板', 'yshop', 1, 20, 2257, '1', '2023-07-25 09:37:06', '1', '2023-07-25 09:43:28', b'0'); +INSERT INTO `infra_codegen_table` VALUES (167, 0, 1, 'yshop_store_shop', '门店管理', NULL, 'store', 'storeshop', 'StoreShop', '门店管理', 'yshop', 1, 20, 2000, '1', '2023-08-03 14:35:03', '1', '2023-08-03 14:41:11', b'0'); +INSERT INTO `infra_codegen_table` VALUES (168, 0, 1, 'yshop_shop_ads', '广告图管理', NULL, 'shop', 'shopads', 'ShopAds', '广告图管理', 'yshop', 1, 20, 2000, '1', '2023-08-06 16:37:45', '1', '2023-08-06 16:51:14', b'0'); +INSERT INTO `infra_codegen_table` VALUES (169, 0, 1, 'yshop_service', '我的服务', NULL, 'shop', 'service', 'Service', '我的服务', 'yshop', 1, 20, 2000, '1', '2023-08-06 17:03:51', '1', '2023-08-06 17:04:15', b'0'); +INSERT INTO `infra_codegen_table` VALUES (170, 0, 1, 'yshop_recharge', '充值金额管理', NULL, 'shop', 'recharge', 'Recharge', '充值金额管理', 'yshop', 1, 20, 2000, '1', '2023-08-06 17:13:12', '1', '2023-08-06 17:13:38', b'0'); +INSERT INTO `infra_codegen_table` VALUES (172, 0, 1, 'yshop_coupon', '优惠券表', NULL, 'coupon', 'coupon', 'Coupon', '优惠券', 'yshop', 1, 20, 2000, '1', '2023-08-08 15:18:05', '1', '2023-08-08 15:19:38', b'0'); +INSERT INTO `infra_codegen_table` VALUES (173, 0, 1, 'yshop_coupon_user', '用户领的优惠券', NULL, 'coupon', 'couponuser', 'CouponUser', '用户领的优惠券', 'yshop', 1, 20, 2000, '1', '2023-08-08 15:18:06', '1', '2023-08-08 15:22:16', b'0'); +INSERT INTO `infra_codegen_table` VALUES (174, 0, 1, 'yshop_score_order', '积分商城订单表', NULL, 'score', 'scoreorder', 'ScoreOrder', '积分商城订单', 'yshop', 1, 20, 2000, '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:07:04', b'0'); +INSERT INTO `infra_codegen_table` VALUES (175, 0, 1, 'yshop_score_product', '积分产品表', NULL, 'score', 'scoreproduct', 'ScoreProduct', '积分产品', 'yshop', 1, 20, 2000, '1', '2023-08-09 15:38:45', '1', '2023-08-09 16:06:52', b'0'); +INSERT INTO `infra_codegen_table` VALUES (176, 0, 1, 'yshop_web_print', '易联云打印机', NULL, 'store', 'webprint', 'WebPrint', '易联云打印机', 'yshop', 1, 20, 2000, '1', '2023-09-06 10:03:12', '1', '2023-09-06 10:07:45', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_config`; +CREATE TABLE `infra_config` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数分组', + `type` tinyint 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 NOT NULL DEFAULT '' COMMENT '参数键值', + `visible` bit(1) NOT NULL COMMENT '是否可见', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='参数配置表'; + +-- ---------------------------- +-- Records of infra_config +-- ---------------------------- +BEGIN; +INSERT INTO `infra_config` VALUES (2, 'biz', 1, '用户管理-账号初始密码', 'sys.user.init-password', '123456', b'0', '初始化密码 123456', 'admin', '2021-01-05 17:03:48', '1', '2022-03-20 02:25:51', b'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', b'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', b'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', b'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', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_data_source_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_data_source_config`; +CREATE TABLE `infra_data_source_config` ( + `id` bigint 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 DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据源配置表'; + +-- ---------------------------- +-- Records of infra_data_source_config +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file`; +CREATE TABLE `infra_file` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件编号', + `config_id` bigint DEFAULT NULL COMMENT '配置编号', + `name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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 DEFAULT NULL COMMENT '文件类型', + `size` int NOT NULL COMMENT '文件大小', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=979 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; + +-- ---------------------------- +-- Records of infra_file +-- ---------------------------- +BEGIN; +INSERT INTO `infra_file` VALUES (912, 4, 'WX20230418-172746@2x.png', '57f8bd2d2d4c31317007637966100d67a538eb545c933b84f0299fe1fb6b3ae1.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/57f8bd2d2d4c31317007637966100d67a538eb545c933b84f0299fe1fb6b3ae1.png', 'image/png', 89177, '1', '2023-05-09 17:33:32', '1', '2023-05-09 17:33:32', b'0'); +INSERT INTO `infra_file` VALUES (913, 4, 'iphone02.jpeg', 'e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 'image/jpeg', 25925, '1', '2023-05-24 14:36:47', '1', '2023-05-24 14:36:47', b'0'); +INSERT INTO `infra_file` VALUES (914, 4, 'iphone03.jpeg', '7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg', 'image/jpeg', 67462, '1', '2023-05-24 14:41:23', '1', '2023-05-24 14:41:23', b'0'); +INSERT INTO `infra_file` VALUES (915, 4, 'iphone04.jpeg', '22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg', 'image/jpeg', 38155, '1', '2023-05-24 14:42:36', '1', '2023-05-24 14:42:36', b'0'); +INSERT INTO `infra_file` VALUES (916, 4, 'iphone05.jpeg', 'f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 'image/jpeg', 36893, '1', '2023-05-24 14:42:55', '1', '2023-05-24 14:42:55', b'0'); +INSERT INTO `infra_file` VALUES (917, 4, 'iphone05.jpeg', 'f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 'image/jpeg', 36893, '1', '2023-05-24 14:45:40', '1', '2023-05-24 14:45:40', b'0'); +INSERT INTO `infra_file` VALUES (918, 4, 'iphone09.jpeg', '67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg', 'image/jpeg', 38301, '1', '2023-05-24 14:45:54', '1', '2023-05-24 14:45:54', b'0'); +INSERT INTO `infra_file` VALUES (919, 4, 'iphone08.jpeg', '6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 'image/jpeg', 23843, '1', '2023-05-24 14:49:02', '1', '2023-05-24 14:49:02', b'0'); +INSERT INTO `infra_file` VALUES (920, 4, 'iphone11.jpeg', 'a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg', 'image/jpeg', 41743, '1', '2023-05-24 14:49:10', '1', '2023-05-24 14:49:10', b'0'); +INSERT INTO `infra_file` VALUES (921, 4, 'iphone02.jpeg', 'e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 'image/jpeg', 25925, '1', '2023-05-29 13:54:36', '1', '2023-05-29 13:54:36', b'0'); +INSERT INTO `infra_file` VALUES (922, 4, 'iphone08.jpeg', '6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 'image/jpeg', 23843, '1', '2023-07-27 18:35:48', '1', '2023-07-27 18:35:48', b'0'); +INSERT INTO `infra_file` VALUES (923, 4, '帮助.png', '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'image/png', 6714, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (924, 4, '客服.png', 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'image/png', 8190, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (925, 4, '我的订单 (1).png', 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'image/png', 4059, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (926, 4, '签到.png', '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'image/png', 4584, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (927, 4, '退出登录.png', '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'image/png', 7604, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (928, 4, '账户.png', '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'image/png', 4856, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file` VALUES (929, 4, '关于我们.png', 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'image/png', 7398, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file` VALUES (930, 4, '导航地址.png', '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'image/png', 6764, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file` VALUES (931, 4, '货币兑换.png', '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'image/png', 9943, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file` VALUES (932, 4, '积分商城.png', '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'image/png', 7028, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file` VALUES (933, 4, 'yZEDv4y4sgDU2acc233399129bf2c2247eb832b4e20e.jpeg', 'a7aa0b433b885372c370119f03ccc2b979702bed41059114e530fc8e8dbb971d.jpeg', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/a7aa0b433b885372c370119f03ccc2b979702bed41059114e530fc8e8dbb971d.jpeg', 'image/jpeg', 2577, '4', '2023-08-12 12:43:36', '4', '2023-08-12 12:43:36', b'0'); +INSERT INTO `infra_file` VALUES (934, 4, 'KUIRTm4vo8xeb8bb6b745a41839f6356792bd8ac0d9c.jpeg', '734790cc67066464a98ba9052024e16e45e325accd56e86dede83de241e21136.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/734790cc67066464a98ba9052024e16e45e325accd56e86dede83de241e21136.jpeg', 'image/jpeg', 2576, '4', '2023-08-12 12:47:06', '4', '2023-08-12 12:47:06', b'0'); +INSERT INTO `infra_file` VALUES (935, 4, 'CqwNcxjJ9Wfr066818a3ac07d9296dbfd02227173da2.jpeg', '083d073d54a9e4dddd361fe5ee5dbe6e6ca6d7c0cda61422e695ceafe0321e68.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/083d073d54a9e4dddd361fe5ee5dbe6e6ca6d7c0cda61422e695ceafe0321e68.jpeg', 'image/jpeg', 2574, '4', '2023-08-12 12:48:07', '4', '2023-08-12 12:48:07', b'0'); +INSERT INTO `infra_file` VALUES (936, 4, 'pFnskEUfcbar8aba2bb84bb6d3127476a7678ee40dd8.jpeg', '5e608900b7e3778efaa4b5b2e545e5c734f2072fc605d6376775db11fc206458.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/5e608900b7e3778efaa4b5b2e545e5c734f2072fc605d6376775db11fc206458.jpeg', 'image/jpeg', 2576, '4', '2023-08-12 12:48:59', '4', '2023-08-12 12:48:59', b'0'); +INSERT INTO `infra_file` VALUES (937, 4, 'Cgn02gnfMgnt83e3cc39c59170886b756716f598df5f.jpeg', 'a83e6e743f60a77f7738bc626fb0c64ef37c16be46e48c4961e7764e7a3087d8.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/a83e6e743f60a77f7738bc626fb0c64ef37c16be46e48c4961e7764e7a3087d8.jpeg', 'image/jpeg', 2575, '4', '2023-08-12 12:51:45', '4', '2023-08-12 12:51:45', b'0'); +INSERT INTO `infra_file` VALUES (938, 4, 'S3KDxr4IUZlO7c32398c905a58f5e847787e880b323a.jpeg', '3b4de1f338a0dd46c67d32b26327aebace126072bf2ec418b7e87ebd7e90e638.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/3b4de1f338a0dd46c67d32b26327aebace126072bf2ec418b7e87ebd7e90e638.jpeg', 'image/jpeg', 2577, NULL, '2023-08-12 15:58:10', NULL, '2023-08-12 15:58:10', b'0'); +INSERT INTO `infra_file` VALUES (939, 4, 'EJQCgM6ygl8B57eca7a8293a0be888e57829f1b5f73f.jpeg', '83b11eeaed5adb01d42db440e81ebc33b28d3ff3e8994771bf2ad24a0bc4019c.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/83b11eeaed5adb01d42db440e81ebc33b28d3ff3e8994771bf2ad24a0bc4019c.jpeg', 'image/jpeg', 2575, NULL, '2023-08-12 16:12:38', NULL, '2023-08-12 16:12:38', b'0'); +INSERT INTO `infra_file` VALUES (940, 4, 'YMfhCnCCWPG46adf4b8252000ca8ab92067ff0b855e7.jpeg', 'fbfa608c1c9122aafedced47b67b44b591de7222bd797688720b1cb72d055b5b.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/fbfa608c1c9122aafedced47b67b44b591de7222bd797688720b1cb72d055b5b.jpeg', 'image/jpeg', 2576, NULL, '2023-08-12 16:59:08', NULL, '2023-08-12 16:59:08', b'0'); +INSERT INTO `infra_file` VALUES (941, 4, 'yWhm3piFCp19f75ad5ee7e6159f9a368bd764e72729b.jpeg', '82514bb4c85a4ac318eb37d8fe1328ad644d351bf7dbcd23dddd8718935ee915.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/82514bb4c85a4ac318eb37d8fe1328ad644d351bf7dbcd23dddd8718935ee915.jpeg', 'image/jpeg', 2576, NULL, '2023-08-12 17:01:50', NULL, '2023-08-12 17:01:50', b'0'); +INSERT INTO `infra_file` VALUES (942, 4, 'nk3Pe02D8Mjgc24b9d6234772079791eeda9714a3433.jpeg', 'a3817f4a7627c41737d0510c4282e62d8f230d6591a7b0125c796ba8b9a7551f.jpeg', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/a3817f4a7627c41737d0510c4282e62d8f230d6591a7b0125c796ba8b9a7551f.jpeg', 'image/jpeg', 2575, NULL, '2023-09-11 16:29:13', NULL, '2023-09-11 16:29:13', b'0'); +INSERT INTO `infra_file` VALUES (943, 4, '退出.png', 'c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png', 'image/png', 7583, '1', '2023-09-12 18:09:42', '1', '2023-09-12 18:09:42', b'0'); +INSERT INTO `infra_file` VALUES (944, 4, '货币兑换.png', '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'image/png', 9943, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (945, 4, '帮助.png', '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'image/png', 6714, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (946, 4, '账户.png', '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'image/png', 4856, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (947, 4, '我的订单 (1).png', 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'image/png', 4059, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (948, 4, '客服.png', 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'image/png', 8190, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (949, 4, '签到.png', '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'image/png', 4584, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (950, 4, '退出登录.png', '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'image/png', 7604, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (951, 4, '关于我们.png', 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'image/png', 7398, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (952, 4, '积分商城.png', '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'image/png', 7028, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (953, 4, '导航地址.png', '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'image/png', 6764, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file` VALUES (954, 4, '帮助.png', '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'image/png', 6714, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (955, 4, '积分商城.png', '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'image/png', 7028, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (956, 4, '关于我们.png', 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'image/png', 7398, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (957, 4, '货币兑换.png', '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'image/png', 9943, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (958, 4, '导航地址.png', '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'image/png', 6764, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (959, 4, '我的订单 (1).png', 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'image/png', 4059, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (960, 4, '退出登录.png', '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'image/png', 7604, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (961, 4, '客服.png', 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'image/png', 8190, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (962, 4, '账户.png', '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 'image/png', 4856, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (963, 4, '签到.png', '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'image/png', 4584, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file` VALUES (964, 4, 'u=1824446573,3306830779&fm=193&f=GIF.jpg', '29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', 'image/jpeg', 52240, '1', '2023-09-14 10:25:14', '1', '2023-09-14 10:25:14', b'0'); +INSERT INTO `infra_file` VALUES (965, 4, 'u=1824446573,3306830779&fm=193&f=GIF.jpg', '44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'image/jpeg', 32246, '1', '2023-09-14 10:27:38', '1', '2023-09-14 10:27:38', b'0'); +INSERT INTO `infra_file` VALUES (966, 4, '帮助.png', '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'image/png', 6714, '1', '2023-09-14 16:35:59', '1', '2023-09-14 16:35:59', b'0'); +INSERT INTO `infra_file` VALUES (967, 4, '客服.png', 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'image/png', 8190, '1', '2023-09-14 16:37:14', '1', '2023-09-14 16:37:14', b'0'); +INSERT INTO `infra_file` VALUES (968, 4, '1.jpg', '576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 'image/webp', 30232, '1', '2023-09-14 17:21:33', '1', '2023-09-14 17:21:33', b'0'); +INSERT INTO `infra_file` VALUES (969, 4, '2.jpg', 'f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 'image/webp', 25414, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file` VALUES (970, 4, '3.jpg', 'ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 'image/webp', 56172, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file` VALUES (971, 4, '4.jpg', '00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'image/webp', 15098, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file` VALUES (972, 4, 'tmp_d01cfa4aa3e6f9dc6a656a5d9ab0cbf3.jpg', '0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', 'image/jpeg', 2576, NULL, '2023-09-15 17:01:54', NULL, '2023-09-15 17:01:54', b'0'); +INSERT INTO `infra_file` VALUES (973, 4, 'yzLmebiCkn5wdff84e1e4dae6dde839353f8b11b1143.jpeg', '0b1d392884121f070d3a51c50e2188bb6d4e10252152a90c34765e66f99ebc96.jpeg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/0b1d392884121f070d3a51c50e2188bb6d4e10252152a90c34765e66f99ebc96.jpeg', 'image/jpeg', 2577, NULL, '2023-10-31 17:32:05', NULL, '2023-10-31 17:32:05', b'0'); +INSERT INTO `infra_file` VALUES (974, 4, 'q4LqPJpierRl1743820e154ef3d9238c9da70f138d40.jpeg', 'c80a0a0199b25c435508550c6f57befffc4f07541e6e5b5ba255498037e03fb9.jpeg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/c80a0a0199b25c435508550c6f57befffc4f07541e6e5b5ba255498037e03fb9.jpeg', 'image/jpeg', 2577, NULL, '2023-10-31 17:33:23', NULL, '2023-10-31 17:33:23', b'0'); +INSERT INTO `infra_file` VALUES (975, 4, 'ENouoS64xanbec4c72af8abe7575620e3bd7a4048738.jpeg', 'f3af3b3680301adf34b2b05d1ba78173db02e9138b2c1d69269208e4b9526cec.jpeg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f3af3b3680301adf34b2b05d1ba78173db02e9138b2c1d69269208e4b9526cec.jpeg', 'image/jpeg', 2576, NULL, '2023-11-02 09:24:26', NULL, '2023-11-02 09:24:26', b'0'); +INSERT INTO `infra_file` VALUES (976, 4, '积分订单.png', '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'image/png', 7894, '1', '2023-11-30 15:55:43', '1', '2023-11-30 15:55:43', b'0'); +INSERT INTO `infra_file` VALUES (977, 4, '积分订单.png', '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'image/png', 7894, '1', '2023-11-30 15:56:27', '1', '2023-11-30 15:56:27', b'0'); +INSERT INTO `infra_file` VALUES (978, 4, '积分订单.png', '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', ' http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'image/png', 7894, '1', '2023-11-30 15:57:41', '1', '2023-11-30 15:57:41', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_config`; +CREATE TABLE `infra_file_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置名', + `storage` tinyint NOT NULL COMMENT '存储器', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `master` bit(1) NOT 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 DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件配置表'; + +-- ---------------------------- +-- Records of infra_file_config +-- ---------------------------- +BEGIN; +INSERT INTO `infra_file_config` VALUES (4, '数据库', 1, '我是数据库', b'1', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\" http://localhost:48081\"}', '1', '2022-03-15 23:56:24', '1', '2023-11-30 15:57:20', b'0'); +INSERT INTO `infra_file_config` VALUES (5, '本地磁盘', 10, '测试下本地存储', b'0', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yshop/file_test\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:57:00', '1', '2023-07-19 15:46:06', b'0'); +INSERT INTO `infra_file_config` VALUES (11, 'S3 - 七牛云', 20, NULL, b'0', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-19 18:00:03', '1', '2023-07-31 09:37:45', b'0'); +INSERT INTO `infra_file_config` VALUES (15, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-10 20:50:41', '1', '2023-07-31 09:38:31', b'0'); +INSERT INTO `infra_file_config` VALUES (16, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-11 20:32:08', '1', '2023-07-31 09:38:53', b'0'); +INSERT INTO `infra_file_config` VALUES (17, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-11 20:32:47', '1', '2023-07-31 09:38:14', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file_content +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_content`; +CREATE TABLE `infra_file_content` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `config_id` bigint 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 DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; + +-- ---------------------------- +-- Records of infra_file_content +-- ---------------------------- +BEGIN; +INSERT INTO `infra_file_content` VALUES (3, 4, '57f8bd2d2d4c31317007637966100d67a538eb545c933b84f0299fe1fb6b3ae1.png', 0x89504E470D0A1A0A0000000D4948445200000322000003C4080600000052508FC100000C62694343504943432050726F66696C65000048899557075853C9169E5B52496881084809BD8922358094105A0401A982A884249050624C082A76745905D72EA258D1551145575740D682886B5D147B5F2CA828EBE22A3654DEA480AEFBCAF7CEF7CD9D3F674ECFCCBD7300D0EBE0CB64F9A83E0005D242794264286B5C5A3A8BF40420C00A50800330E10B14324E7C7C0C803430FF9DDE5C83D2902EBBA96CFD73FDBF92A150A410008064409C2554080A206E06002F11C8E4850010C320DF766AA14C85C5101BC9618010CF54E11C0D5EA6C2591ABC4D2D9394C085B81100328DCF97E700A0DB0AF9AC22410EB4A3FB086277A950220540CF08E22081982F843809E26105059355782EC44E505E06F14E88D9595FD9CCF99BFDAC41FB7C7ECE20D6E4A52672984421CBE74FFF3F4BF3BFA9205F39E0C3010E9A581E95A0CA1FD6F046DEE46815A641DC2DCD8A8D53D51AE27712A1A6EE00A054B1322A59238F9A0B145C583FC084D85DC80F8B86D81CE208697E6C8C969F952D89E0410C770B3A4D52C84BD2EA2E1429C213B536D7CB2727C40DE06C3997A3D5ADE3CBD57E55F2ADCABC648ED6FE0DB1883760FF75B1382915622A0018B54892120BB12EC4468ABCC4688D0C66532CE6C60EC8C89509AAF8ED20668BA491A11AFB5846B63C22412B2F2B500CE48B958A25BC582DAE2C14274569EA83ED12F0D5F19B405C2F92729207EC8814E3620672118AC2C235B9636D2269B2365FEC9EAC303441ABDB23CB8FD7CAE364517EA48A6F03B199A22851AB8B8F2A849B53631F8F9115C62769E2C43373F9A3E335F1E04520067041186001251C596032C80592B6EE866EF84BB31201F8400E728008B86939031AA9EA15297C268262F0074422A018D40B55AF8A4011E47F1AE46A9E6E205BBD5AA4D6C8038F212E00D1201FFE56AAB5A483DE52C023C891FCC3BB00C69A0F876AED9F3C0EE4C46839CA01BB2CBD01496238318C18458C203AE36678101E80C7C067081C1E381BF71B88F68B3CE131A19DF0807095D041B839495222FF269631A003DA8FD0669CF575C6B803B4E98D87E281D03AB48C337133E0867B413F1C3C187AF6865CAE366E55EEAC7F93E760065FD55C2B4771A7A0942194108AD3B79ABA2EBADE83565415FDBA3E9A58B306ABCA1D5CF9D63FF7AB3A0BE11CFDAD24B6103B809DC28E6367B0C358036061C7B046EC3C76448507F7D023F51E1AF096A08E270FDA91FCC31F5FEB535549857BAD7B97FB47ED1A28144D2B541D30EE64D974B924475CC8E2C0AF8088C5930A860F6379B87B7802A0FAA6685E53AF98EA6F05C23CFB8537FF20008147FBFBFB7FF9C28B86EFF4038EF0985FFCC2735C0EDFC5430138BD45A094176978B8EA41806F033D78A24C8125B0054E30230FE0030240080807A3411C4802696022ACB318EE6739980A668279A014948365603558073681AD6027D803F6830670181C07BF8273E022B80A6EC3FDD3099E831EF006F421084242E808033145AC107BC415F140D84810128EC42009481A9289E420524489CC44E623E5C80A641DB205A9417E420E21C79133483B7213B98F74217F211F500CA5A146A805EA808E40D928078D4693D009680E3A052D4617A04BD04AB41ADD8DD6A3C7D173E855B4037D8EF66200D3C1989835E686B1312E1687A563D9981C9B8D9561155835568735C17FFA32D6817563EF7122CEC059B81BDCC35178322EC0A7E0B3F1C5F83A7C275E8FB7E297F1FB780FFE99402798135C09FE041E611C21873095504AA8206C271C249C84A7A993F086482432898E445F781AD388B9C419C4C5C40DC4BDC466623BF121B197442299925C4981A438129F54482A25AD25ED261D235D227592DE9175C856640F7204399D2C2597902BC8BBC847C997C84FC87D147D8A3DC59F12471152A6539652B6519A2817289D943EAA01D5911A484DA2E652E7512BA975D493D43BD4573A3A3A363A7E3A6375243A73752A75F6E99CD6B9AFF39E664873A171691934256D096D07AD997693F68A4EA73BD043E8E9F442FA127A0DFD04FD1EFD9D2E4377B82E4F57A83B47B74AB75EF792EE0B3D8A9EBD1E476FA25EB15E85DE01BD0B7ADDFA147D077DAE3E5F7FB67E95FE21FDEBFABD060C839106710605068B0D76199C31786A483274300C37141A2E30DC6A78C2F0210363D832B80C01633E631BE324A3D38868E468C433CA352A37DA63D466D4636C68EC659C623CCDB8CAF888710713633A3079CC7CE652E67EE635E68721164338434443160DA91B7269C85B93A126212622933293BD26574D3E98B24CC34DF34C979B3698DE35C3CD5CCCC69A4D35DB6876D2AC7BA8D1D080A182A16543F70FBD658E9ABB982798CF30DF6A7EDEBCD7C2D222D24266B1D6E28445B725D332C432D77295E551CB2E2B86559095C46A95D531AB672C63168795CFAA64B5B27AACCDADA3AC95D65BACDBACFB6C1C6D926D4A6CF6DADCB5A5DAB26DB36D57D9B6D8F6D859D98DB19B69576B77CB9E62CFB617DBAFB13F65FFD6C1D121D5E17B870687A78E268E3CC762C75AC73B4E74A760A7294ED54E579C89CE6CE73CE70DCE175D50176F17B14B95CB0557D4D5C755E2BAC1B57D186198DF30E9B0EA61D7DD686E1CB722B75AB7FBC399C36386970C6F18FE6284DD88F411CB479C1AF1D9DDDB3DDF7D9BFBED918623478F2C19D934F22F0F170F814795C7154FBA6784E71CCF46CF975EAE5E22AF8D5E37BC19DE63BCBFF76EF1FEE4E3EB23F7A9F3E9F2B5F3CDF45DEF7B9D6DC48E672F669FF623F885FACDF13BECF7DEDFC7BFD07FBFFF9F016E017901BB029E8E721C251AB56DD4C3409B407EE096C08E20565066D0E6A08E60EB607E7075F08310DB1061C8F690271C674E2E6737E745A87BA83CF460E85BAE3F7716B7390C0B8B0C2B0B6B0B370C4F0E5F177E2FC2262227A236A227D23B7246647314212A3A6A79D4759E054FC0ABE1F58CF61D3D6B746B342D3A317A5DF483189718794CD31874CCE8312BC7DC89B58F95C636C481385EDCCAB8BBF18EF153E27F194B1C1B3FB66AECE384910933134E2532122725EE4A7C93149AB434E976B253B232B925452F2523A526E56D6A58EA8AD48E7123C6CD1A772ECD2C4D92D6984E4A4F49DF9EDE3B3E7CFCEAF19D19DE19A519D726384E9836E1CC44B389F9138F4CD29BC49F74209390999AB92BF3233F8E5FCDEFCDE265ADCFEA1170056B04CF8521C255C22E51A06885E8497660F68AECA73981392B73BAC4C1E20A71B7842B592779991B95BB29F76D5E5CDE8EBCFEFCD4FCBD05E482CC82435243699EB475B2E5E46993DB65AEB25259C714FF29ABA7F4C8A3E5DB15886282A2B1D0085EDECF2B9D94DF29EF1705155515BD9B9A32F5C0348369D269E7A7BB4C5F34FD497144F18F33F01982192D33AD67CE9B797F1667D696D9C8ECACD92D736CE72C98D3393772EECE79D47979F37E2B712F5951F27A7EEAFCA605160BE62E78F85DE477B5A5BAA5F2D2EBDF077CBF6921BE50B2B06D91E7A2B58B3E9709CBCE96BB9757947F5C2C587CF687913F54FED0BF247B49DB529FA51B97119749975D5B1EBC7CE70A8315C52B1EAE1CB3B27E156B55D9AAD7AB27AD3E53E155B1690D758D724D47654C65E35ABBB5CBD67E5C275E77B52AB46AEF7AF3F58BD6BFDD20DC706963C8C6BA4D169BCA377DD82CD97C634BE496FA6A87EA8AADC4AD455B1F6F4BD976EA47F68F35DBCDB6976FFFB443BAA36367C2CED61ADF9A9A5DE6BB96D6A2B5CADAAEDD19BB2FEE09DBD358E756B7652F736FF93EB04FB9EFD94F993F5DDB1FBDBFE500FB40DDCFF63FAF3FC83858568FD44FAFEF6910377434A635B61F1A7DA8A529A0E9E02FC37FD971D8FA70D511E3234B8F528F2E38DA7FACF8586FB3ACB9FB78CEF1872D935A6E9F1877E24AEBD8D6B693D1274FFF1AF1EB89539C53C74E079E3E7CC6FFCCA1B3ECB30DE77CCED59FF73E7FF037EFDF0EB6F9B4D55FF0BDD078D1EF6253FBA8F6A397822F1DBF1C76F9D72BBC2BE7AEC65E6DBF967CEDC6F58CEB1D3784379EDECCBFF9F256D1ADBEDB73EF10EE94DDD5BF5B71CFFC5EF5EFCEBFEFEDF0E938723FECFEF907890F6E3F143C7CFE48F1E863E782C7F4C7154FAC9ED43CF5787AB82BA2EBE2B3F1CF3A9FCB9EF77597FE61F0C7FA174E2F7EFE33E4CFF33DE37A3A5FCA5FF6FFB5F895E9AB1DAFBD5EB7F4C6F7DE7B53F0A6EF6DD93BD3773BDFB3DF9FFA90FAE149DFD48FA48F959F9C3F357D8EFE7CA7BFA0BF5FC697F3D557010C0E343B1B80BF7600404F03807111DE1FC66B7A3E35219A3E558DC07FC29ABE504D3E00D4C149755DE73603B00F0E8710754B025457F5A410807A7A0E0E2D29B23D3D34B668B0E321BCEBEF7F650100A909804FF2FEFEBE0DFDFD9F608F8ADD04A0798AA6D7541111F6069B55BD2EB8B972C25CF00D69FAD0AF72FC7606AA08BCC0B7F3BF0026E588DA75441B5D0000006C655849664D4D002A000000080004011A0005000000010000003E011B0005000000010000004601280003000000010002000087690004000000010000004E00000000000000900000000100000090000000010002A00200040000000100000322A003000400000001000003C400000000A3D6D5E10000000970485973000016250000162501495224F000004000494441547801ECBD07705D579ADFF9211024488208044182390730930A14955BA9D9522BA75607CFDAE371DB333B638FBDEBDA502ED7965D6BEFAECBE5DD75AD773D9E19CF4CB7A65B592D355B2DB5B2444A9448519498C09C894C82044830EDF91FE03CDCF7F01E72788FEFF7A98077EF49F7DCDFBDA0CEFF9DEF3B2767D98A95D7AC1B2BC8CFF3B98593E676538A2C0840000210800004200081A126D05A7BC05FA2A5A565A82F45FB10187202B9437E052E0001084000021080000420000108402081407EC279CAD3A0C0531620030210800004200001084000021080402F093023D24B50148300042000010840000210800004068F40FEDD77DD65EFBDFF7E8F2D8E2D2AEEB10C052000010840000210800004868E404BF399A16B9C962130CC047277EEDA35CC97E4721080000420000108400002108040B613C83D7DFA74B633E0FE21000108400002108000042000816126408CC83003E7721080000420000108400002108080194284B7000210800004200001084000021018760208916147CE0521000108400002108000042000018408EF000420000108400002108000042030EC041022C38E9C0B4200021080000420000108400002BDDE59FD7A41F5E013CF9AE5E4A4BC9DD6F3E7ADA1BECE0E55EFB1A6C6FA94E5C88000042000010840000210800004FA4F20EB8448772244180BC78DB369EE67EAF499B66BC7763B58CD3E2BFD7FBDA809010840000210800004200081E404B24F8824E7D025352737C7AA56AEB2DCBC1CDBBF7B67977C12D28FC03DDFB9DBA64CAE8875ECCBADDB6CF79EBDFEBCBBBC5885113A98505464E3C78FB3D6D60BD6D8D4649553263BBD9C63CDCDE7ACF9DCB911EA55F65C76F4E8D136B1ACD4AE5EB96AA76A6AD2E6C613DF8BB4E958067524D5DF52AAF40CBA35BA0A010840E0BA208010E9E1312E5EB6D297408CF4002A0DB2674C9F66B366CE8CF5E4C0C143B1E3EEF2628546E8407D2B2D29B6E3274E7A213267D64CCBCDCDB563C74F204486E19954944F74EFCD0CCF3A9D8448E27B310C28AEBB4BA4FA5B4A957EDD01E08620000108A4390184482F1E90C4481024BD281E57E4CD179F8F3BE704025102121CC5138A7C52839B0DC1869F40694989BF6863D399E1BF788A2BF25EA400433204200001085C57048665D5AC5BD6ADB3258B17F7199CEAA82E0681EB95404971B19FFDB87CE58A9D3DDB7CBDDE66DADE577E7E9E15158DF7FD6B6C4C1F21C87B91B6AF0C1D830004200081412430E43322EB9C9058BF7EBD5DBB76CD777BD7EEDDBDEABE44C8860D1BBCAFBC6A6EDEBCB957F52804814C2220972CD9993367637F2399D4FF4CEF6B497189FF37E6D2A54B69E506C77B91E96F16FD870004200081DE1018722172C6B99B488428F856C242D69318891321AEAEDAC8162B9F38D1162F5A64C5C5134C83A39ADA5ADBB1E31BBB72F5AA552D5962858563622894DEE6CA249AEACF9C31DD05408FF7DCCFB925894F9D3A65DBBFDE9158B45FE7A9FAB170E1025B306F9E15148CB2DABA7A77BDAF7DC075B8C8CA15CB6DEAD44A1B5B38D64E9FAEB183870EB9B8881321BBCB67F18409B6746995735D9A60E3DC4A66AD175AADB6B6CE4EB8588A63C78F77299F8909A5A5C12DA8FB775C7F3F63C716FA80EAD60B1786E55675CDC23163FC3B74E1E245BBE2666D7A6305A3469902C0F5CE5EBC78C1D5BBDA9B6AB132630B0BFD355B5A5B7B25CEF2F2726DCCE8F67EAACE5577DDDE5A5969BB106C3A93DC2D4B0CC6B87BC9CFCFB70B8EFBA5CB977BDBB42F37CAB328F0F771F1629B5DEE65FD9EDE8B81DCB33AD6DF7EF5E9E63B0A8BE1B87163ED52DB25BBD8D6D6A509B9A1E9DDBE7CE9B2E93DEB8D8D2E28B082D105EEFD6AB3B6246DF6A60DCA4000021080C0C81318722112444798DDE8498C248A908D1B37F6285C461EE3E0F4402B3BADBBE9463FE889B678DBADEB6DE36F7E6BF7DC7D9795B9D57D821D397AD40FCCC3F994C993ED89C71F35899964F61D57FF576FBC69FBF61F4896DDEBB4EFDC7DA75B65A82C56FED4E9D3F6E8C3DFEF72DD9B6E586BAFFEEA0D3BEBBEED57FEB46953637596398121FBE4D34DF6CEBBEFC5D27530DA0D30363CF08077E793A8496612312FBFFA9A9D3B773E597646A469C0AD41AE2C955B9006687366CDB209CE7D282F2FCF97D5C0FEF8C99376F4D8F1B881FA74C7779613A0B24F3FDB1297E713DDAF694E08CE7681D9B24D9F7F111BB4AF59B9C28BDCE3274F79A1A7E0ED8A49E55E10F8C2EE577D7D831D3C7C24E560B162D2249BE1FA1015CBFA12A2A1A13169BD7973E7D8948A49FE197EB36BB7CD77E7254E806B902CF3751B1B6DFF81434905B704CF9CD9B3DC7B5716D7CF06E76275C8F553B30AB35DE0BFDCDE3EDBF2A56F33F1975CA06489F1211A3C4BCC57BA55D82442829D6F69B1C3478EBAC1EF255BB97CA94FFECA7D2170FE7C4B28E23FC56EFAD4A97E801DCDD04A68479C884EF5BC55B6BBF762A0F73C907E45EF23D571F499EEDCB3C77D3131D77F9110DE5D89B97D070E5A93FB37618C13B90A1AD78A65C1C4555FBE1C728C134DCF41EFD764F7CE449F89BEB039EBB8AA5D1D63108000042090390486254644624482223A3322C19168D92C42D6AC5E65B7DEB22EEE7FB0818F06FD8F3CFC909F690869899FE56EE59F679E7AB28B188896D372A08F3FFA885F21289A3ED0E307EEBB37E9758BDCF594F7D0831BE24448F47AB7AEBFC5C501DD1C4DB2679F7ACA347B924A84A8F09CD9B3EDF77EF2633F53125739834EC2B7DE1AC426FBA6B8C07DEBBBD4FD9D68401D0672BA3D7D1B3E73FA343FC88BDEAE06CFE1279A1E3DCE4D5146CB55ABEE2837D85BEE44A2067B3A8FDA4437E05FB278A1BF7E345DC72ABF70FEDC3811A274B5A17A4B972CEAF26E87BEE81BF1C56E366D927B87830889D575EFFE0A37E05799A8E95C7D519DC47E96B95926D5193B76ACCFD37592D97837CB26C6FA7749CB26474D03640D7AA3035EE58F736D562D5E14BBAEAE9D78FD7616F3BA8810D5573C4AD5A2854E70B50B20A5255AAAF762A0F73CD07E25F633D979E2332D2B2D8D7B77253EAA962CF6F7BF62E9923811A2F6F4372F412D011935315EBC70BE17D289CF44EF8CC4CC8A65554EDCB40BFB685D8E2100010840207D09747ED537C47DEC6966249B45C88CE9D3FD803D7140235798AB57AFB9C159BE153937AB542681F1ECD34F594947BC412877DEB964A98D09CEB52958A1FB16FEA9271EB79F3DFF0B3BE9DCB506C3D47F99BECD4C140FFA963C98BEADD42022F13E172F5C689B367FE68B2D5FB6D466BB6FB9A356DFD0E002B9CF3AB1531E0B2C56BE04DA223780DDBAEDAB68F18C390E71008D29DC82F4EDB506C947DCCC876248E48222973D0DD2F2DDEC88F24F9E3A3DA8B10D1AACCACE38DE35CE0DAED9CD384D70EF5E4545B99B9529F203F185CEFD6ED7DEEA18670DAA359B21BBE85C6BD45F05DE6B90AF3EAA4DBD774B162DB06F76EEF6F714ABEC0EE4B633CE7DD6B919177D1B2EF72AB9EFCD9E3523363B30B5728A5FCE38D4D3F5C2DF8466C54EBBFD3FCEB86FC5C7B9192489130D80C3BD843A899F61C02FD7C54BCE2D2898EAE97A323117633DA351F9A3ACD4B97255BA9947CD2C253389A0C042EFFB0957576E5F1211A58E93DAF582C2B1D8F1ED2ED3B5132DD57B31907B1E8C7E25F6B3BB733D53D929E782A9F748FF86E9DF02090689956555ED5F44C985D32F99EC020135B325F6E233D5EDA5A39927BDFF32CD4E05F126D1A867A2F744EF80EAE9DF02B9114EABACB4FD070FF93AFC820004200081F427306C424428528911E505D72DFD8F279BDCB174EF4BAB96F8419B8E836DFEEC73FB64D326EF6AB07AD52ABBEF9EEF74F95638945DBB768DFF1F7138D7E7EFDE7DDF3EFEF4539FA4D985871F7A30565FF11637DD7883BDE6DCA606C334587BE5B5D7FDE681BA9707377CD70F3CA36D7FF4F127F6C1871FB9016D85DD77EF774C331AC126B9C16AB0C92EBFD50D3082ED7103DE683F7FF2A3E7E2EACE766E4B99284434ABA181BDAC3B379DBDFBF6FB789BC043F12112978B16CCF74972651AEC4D0F35B0FF76D79E98DB568B7347AAADAFF7AE48721BD20C87E276245664F3E6CCF6E25242544223C4B0E85365AEBABF69B938A98E069389B30F6A4322647744DC5CB870D174DD35AB57FA81AB963876FAC69B663A2470642A27B7AE107BE1FBEA06B7556EB64462A43B8B0DF81396ED0DAE6B8A35D9B5A73A8EAFFAAEB804CD982433B98A4968EBDFB1DD7BF7C518A9ACC4A406CF0BE7CFF3B304727FFBD6F53D6AA9DE8B81DEF340FB15ED636F8F2516A2A2A0DEB9E8DDB06655CC1D51AE7E7BAAF7C59AD3BBA22F2A24242546246682EBA5D225E82418AB9D6B698803D2F3D7BB73D3DAD57E366D42C752D8B14639800004200081B42630AC424424528991F03FEF6C132162525EDE3910D7F9FE0307EDADB7DFD1A137899212B7D7C1CD4E3C24B37973E7C625EF3F7020264294A120F5596EE0B47AE5CA58B9B97366C78E17CC9F6F951DDF00C712130EB44BB9665892D9D6AFB6C77630FF76E72EE732B3C889ABF6181095570CC9BBEF7FE0AB6A16466D458588BE2D973852FB8A17498C19895E53ED47EB866FB5A36586E3583B336BC0A4BEABDF1A0CE9DBDFA869D0AD6FE81580AB4158D494A7C19606D0679B932FDBDBD2E282F3DDA03AD194B6C00D66F5CDB25C5D06DB2408C2402FB42DF153BDEF402C2E62BC1B24B60F1CF362EE5827DD730E2224D4D3A76299244464AA974C881C4BB26881B8353B3612300A460F56345EF327EDB6FFE0C198080969FADC53BDDF0D4ED724752353BE06B66146252A0415641FDCC34EB8789964224F1B4F4E74222771D0AB36F5ADBC4C758350F3091DBF343BA06FEF353320168996EABD18C83D0F46BF12FBD99B733148B49A9A5A3FBBA1F4D36EF62BD134FBA9BF2B99580621A27F135399449FFE2634DB24D7B9F0FF9254E549870004200081F42130EC4244B79E284694968D3321BA6F5934005DE7FBF6EFD7479C7DFBEDCE9442246C88172A285037D10E3A7785A810D18A5A796E20AC958D348BA15993EE4CF5530991932E703A6A1AA8458588BEF98CDAEEDDEDDFB66B209ECA3478D2B7B8D3A64DF3330772F3D14A3961CF8750CF79E887C361FBF4BBB4770485EBA21A3CB6FF4C70DFD61E8CAD2E25D722C5219C7683AF44211236D1EB6ED9DE6483E070936DEE5B79F9C347634742DE403EF56D7FAA958BE4462481D2FE6D75BB18183F2EE232E80684A984A1848CFA2AC199686A3331D83B94517F649A290816DC7E74AE20E564A6EBB5B4B6C4C4466219CD8668C02AF7A928673DAF60A9DA56FED973E7BA089168DD689BA1BDF0A93C0911091E2D5610E59DEABD18C83D0FA45FEADFBCB9B343D7937E9E3AADF73BFE6F5C023B99288DAEF277DE09ED44D36200C1F47C9299DE050970FD1B919FE77EDC5E30C4862423451A04200081F4273022424458A26244E7D93813A2FBD6FF4CF58D6FD4E4279F68478F1DF3ABFF283620D1C6B86FE5A356EFDC68122D311E4483C932E762A3E570076A72C9899A4465D4BA7CBBEE069E8965A2E535F3B3DE05EE47635BA2F92379ACC1918298650A30AF73DFC46AF02D9725AD56A6CFC3478FBB01F0382F4254EE9C1B78265A88E7495CAD295AAEBB1580AE5EEBFD12B5D1367B3A966B532AD3336B6DBDD01ED3E1BE79968D8FCC4EC8D5A827D337D689A6416BAAF721D97D8636148F22C191CA34A314663D12CB84017F627C4E74C02F2193CA92718AB2D0B55359344F75A24224D57B31907B1E48BFF4EF536095EA7E24A6132DF16F3E31DF9F27FC3B91B44C2471929B399E36B573D62392C5210420000108642881111322E215C448E27186B2EC57B73508D38036B874A891E83798A1518995642244F957B54F4344A004D79250579F723949B468806E62DE489DDFE0DC691EB8FF3EFF6D75621F34B851BC412A0E89E587E25CCF26CCE4EC75EE3F72BF397CF4988F9350A0AD7CF915941D4C62A221210621BA3C6B43C26A4DA15EA67C46BFB3EECD1E1E89A2B53FF779F972BBF8E86936A8BBFCD8803F613775FD3D06D3B7ED4E6E86D3B8CF646D4759C415EE72122FD4437677EFC540EE7920FDD2BE2989B31DA1BFE1B3C589D3A1B6B96E76342C20A06BE9DF01CD0A5EBE72D9B9E65D71334B0543E2A638D4F745FB10800004B29DC0880A11C18F8A916C7D18DA6721BA0A8FF603F97AC737713814E391CAB4D15F74B5AA8949F611511078D4B4B74253C72058C1DE9A71E9CE6AEB063E73D25DFB216FDDCD37C58910C51728C665BF0B50D5A07FF5AA953EF03E941FEE4F798B281E44DFE087D80E092405D0EA7CA65B414CFBA0C8E46622B1A26FEEA316DC97E48E34549BB1E5BAE578AF5CE93AE0CDEFD8A323DA9FE8B184542AD36C50D82324B8D044577D3A78E87097FD3852B5359074B908CAB549DFD64B6027F20D6D476737429A3E3543A0FD38F40C1367A4A2EE87AA1FBDBFB836222E5C215D2B8C05D3FE2F1266C92CCA38C440A85C77EFC540EE7920FD125B05EC8FA4E94B9A2042F4F7A2051CCEB855D9A2B368DA3F472E9318042000010864168111172299856B687A5B5F5F172744B4A7C8372E26E44447EC85064E77DD7147CA8BCB152BEADEB5C4EDACFEC9279FC66D02B762F9B2B8FA0D119F6E0DF6F533D2A6017CA21BC81BBFDE18E73E16960A1EA9BE2A6EE06C73F281996241F4D3BE37C5D5B82561A3FD0DF7982C683B5AAEAFC7D16FF347178C4E3A102E4A32808E5E47CF20316E21E46B601E6683C2803D3A9056F076E2C03ED41DCCCFA838D0EA59DAD831D1D497E82C6334BFCC2DFC20D3003DCA4C69E7221B13CAD54ECF33D134E31856DC8AE645FB25973009D66416DCC534DB1075CBEAEEBD88B6DDD77B8ED6ED4FBF92DDC370A645FF6D5300BC36434CB4B0025D623AE7108000042090DE043A2340D3BB9FD775EFB45E7ED4F42DEF733F78C69E7CFC517BECD187EDEFFDDEEFC5BE2D8D960BC75AE2366A5A0EF7F1C71E35EDC7A1DDCC1FF9FE436E13C3F819956401F1D13646E2F8B25B9A337186608D5BBA5883637DFBADCD0F1305D548F4B3A76BEA1E52B9BDC9A527ACB634D842241AF0AD2576134D4BFD8E771BEAF5648BDCC671417084B20A10D6FE21C1C2803D3A98AE9CD2EEBF1FCA844FB9B3AD59B9DCD6BAD92CED073150938008B121DAD8510B05444D7F3F4BDCFE32A94C2BD0C9C28C60B49CDA0D81E6121B89FDD5AC90365F94D84C34899A10A0AD6FF0C3738E96539C836673645111D7D37B31907B1E48BFA27D1FA963B95F05CB8DB8A086342DD6918C75C8E7130210800004D29700332269F06CE41AA5FD30B4995F3005A746579E92FB8F0641FA49B4CFB77CE156B699630B17740EBEB4D19F7E92D971B754EA471FB7EF31922C7FA4D2B4829782EAA3CBF3CA554B7123CE8BC66F8A36527D1BACEB4A0C68D95D0D0EBB5B95A93FD7D337DF7257D13BA2807ABD335A9A36CFAD2A54ECF62C91EB8AAEDD93E95B73ED1EAE4513D4A6CE27BBCDE8E46E24D337FDD1A5690F1C3CECE36214BB53E57650D70C8502982566B4CA99DC66348BA0BE29B87FA0A6B81BB9E72C59B4D0DFAB36C7D3A05E7DD52C48911B9806C612B051D3CEF16129DC54F139DADB62A59B415459099D0A271ECE369F75ABCC398EEEF9A94D3DBFC4B6751DB9A7857E490C856FF0E52AA7B8146DB82793E0897E01D1D37B31907BD6F5FADB2FD51D69D3FE21E1BDD646876211DE6B6D1229B198ECDFC591EE37D78700042000819E09C4FF5FBAE7F294182202AFBFF1A65FC677DAD4F61599A297D1FF843FFCE863BB65DDCD4983CE55F685975EB1E79E7D3A6E101F6D231C9F767B5DFCED2F5F701BC10D7D8069B8665F3EBFF8729B73539B1617F3121DF0691F820A17149EA916DC6FE45EA2E73A9826E171D02DDDACC05E89006DBA97B8F19EF65B08FB3424BBB67CEF1507A281B17E124DB121D509CB4B373436DA0137009F3767B65F6239EC2C1EADAB7B3D72F4585277B168B9DE1E6B39640DE4C34A5D725F8CAE0E55535BE7C542882D08ED4A0C68D0AA6564A33312215F9FDA246FB78B8B58EA048E048D96861D33A6F39DD3CCD309279817CC9B1BADE68F1B9CF0DB77E0A0CF93F852FF662594120BEDD5127599EACD7BD1DF7BD6E5FBDBAF84AE8FC8A982D1B547CD5437E3A67F0BF49ED99CCEAE88A7C4B17658C7200001084020B3082044D2E479E91BD6BFFAEB9FD98D37DE6073E7CCF1DF426BB024F7912FB66EB5436EA0272192CA54FF172FBC681B1E78C0CF84246E74A76F11FD4689BF7D3BE5002C55DB89E98903E8BE9EABBD547576EEDAE5BEF16C733BC9DFE377F00E2E427277FAFA9B6F6CAFDBAD5A822B58B49D6B57E307F6BDCD0B6D0DC767882DE88D5B56FCDDC4F7AEF3DEE24BE91B78319BE2C45AF41D502C82F697515E7742449CF59ECC7622A6CC2D4B1C350D84F5CDFA15ADD29660DA45DB3D542722A7FA817BC89638D2C0FDE0E1C35D6680C23DC4DF41A8D9F1D99199ACCCD1E327FCCC8C84A966422430B4BCB0C496BE4597204BB4D8803F6125B3C4729AF1D9BA6DBB4D71DFC06B534A0D80255094AEB8914436D1FACA77286CFAB44ABF9C73344F6E5F9A314A8CA5E9ED7BD19F7B0ED7EF4FBF42DDDE7EF6F44C43BEDA4BF64CA389D1B29A75D32A59DA7855FB0905D352C812DF127DDD0991A4D74AD587D0389F108000042030E4047296AD5899EADF687FF102E7D6211B5B14EF87ED13F935280434608C0E1AB5524D6BC28A3BF26BFF933FFA47B1EBE97FD2FFDBBFFBF7496736145331B572AA77235105ED63A1016AB2BD0F620DA6E1815617D26A62DAD44E81FB125B996C726D5AB37285BF85CFBFD81AB798C050DC975686F2AB4A397191187B9378BDB5AB57FAC1BC06F1724D92296E41B301DA345233685A69AD37A681E2A882517E5969C54C440794BDA93F5865E422A5780C09882F9CFBA3ECE61BD6F841ABEE51F7DA5F9BE606C4DA7053B665EB36FF8E266B4BCFC0C793388F38FD5D278B1D1ACCF722D93DF7B75FC9EAA5435AD8DC54CB9EF7F45EA7437FE90304069B404BF319DF64A6FD3F7DB039D0DEF54180199134788EDABCEFF65BD7C77A72C67D9BFB976E762404D396974FB4FBEFBD3796AF03F9E0A772AFD2C0FDE0A14371E533F144FFC856BB5880EBC5C26A4D72C9D16CD7509BAE3190EB288E211A00DFDBFE6A80A89FA1327DFBBDD4C5A2C814C4AD199C4493800AAE659A1D9129D625C4AA24CE4844EB6B302F312FE12B17AAB0874728A399172D0821D3170661F7F7901FFDECCD33E8CD7BD1DF7B8EF6257ADC9B7E45CBA7D3B1C40702249D9E087D81000420D07F020891FEB31BB49A5BDD37AAEB6EBAD10F92D468B10BC0FCC39FFE81F3EB6E749BF7B99D8D9D8B4C6230E6F6AFBF1EB4EBD3D0F010E8AD5BD0F0F42673AF2237436DE2A99592FCE69F6E76503102E7CE9F73AE67795E802836236C3A184447707F927B5477B36B12C06165ABC50B17FAD944D5919B99AE3773C6B4D8A6A3A1ED81D0ECCD7BD1DF7B1E48BFA80B010840000210186A020891A126DC8BF6F58DEDA79B3FF3CBD3865DC3E5935EE1562A4A340D86367FFEB9BDFFE14789599CA73981D1EE5B7AED2C2E81890D8CC061B7EF8D662EF47752E9E238F493CCB4EB7DD819BCB0B0D0F357AC4B7776C2C5BB68F963ED749E2A685FF5F51CD5FE40ADB7EF457FEE79A07DA33E0420000108406028091023329474FBD8F6CC1933ECDE7BEEB6C91593E3568D5233DAA5B9D10DA03EFEF453B7A2CFDE3EB64C7108744F60C674B752997379D237FF5A712A134CB1020A489758902009165CCA8EBBB8A82042425E6F3F15D4EF97EE752E58D13D43AEBAD917CD9848CC24DB48B1B7EDF7B7DC50DE737FFB443D0840607809102332BCBCB9DAD01240880C2DDF7EB73E7972854D993CD907FA9E3871D2B99EF43FB0B6DF9DA0220432844008CC97CB55D85470B0BAAE594A2D2671CDFDA7559A462AF83EF17E86F29E13AFC5390420903E041022E9F32CE8C9C009747E8D38F0B66861100968BF0FFD60108040CF048632F85AAB8545F7FCE8B937C3536228EF7978EE80AB400002108040B613C8CD7600DC3F0420000108400002108000042030FC041022C3CF9C2B42000210800004200001084020EB092044B2FE150000042000010840000210800004869F40AF63449A17FEDBE1EF1D5784000420000108400002108811C8FBF2A7B1630E2090E9049811C9F42748FF210001084000021080000420908104102219F8D0E832042000010840000210800004329D004224D39F20FD870004200001084000021080400612408864E043A3CB108000042000010840000210C8740208914C7F82F41F0210800004200001084000021948002192810F8D2E43000210800004200001084020D309204432FD09D27F0840000210800004200001086420815EEF239281F796115D7EFAC65ABBD64D4F5B2EE659DDB951567DBAD01ACEF3B8BA41451604200001084000021080400611604664841F567722445D1B3BFA8ACD9C78C1EE59D2680BA7B48E706FB93C042000010840000210800004068740D60B913B179CB7E5532F0C0ECDA16C25C76CE58C73B6A81231329498691B0210800004200001084060780864B5AFCF9D0BCED9DD8BCEDBB58E69891D27C60C0FF5015C65C5F473BEF69E9385036885AA108000042000010840000210185902592D441473211192E3661B1E5F7DC63F894C11234190F4F5F57961CBA4BE56A13C042000010840000210800004069D40560B91203A2442324D8C0CFA9B4083108000042000010840000210184602592D44C41931328C6F1B97820004200001084000021080400781AC1722E28018E9FEEF61CD8222AB9A35D6F2F372ECD36FCFDADE632DDD5748C8BD776DA9CD9834C66A9BDAEC936FCE58E3B9CB0925529F0EA46EEA56C9810004200001084000021018690208918E278018E9FA2AFED3A766D8BD6BCBACB2AC2096F9C78F5DF34262931324FFF35F1C88A5EBE05FFC78B63D765B7B0CCA8FFED79DF6E8ADE576FF0D65563CAEF3353BD77AC53EDAD164FFC39F0D5EDDB84E7002010840000210800004209011043A478819D1DDA1ED2462A493EF9F3C3EDD7E74EF141F3BD3996A969B9B6313278CB2876E9968A545F9F687FFE7DE58B6F2146B23FBFBDF9B6A77AD2A693F89FC1E5F98671B6E9A68972E5FB37FF19707633903A91B6B840308400002108000042000818C2180104978548811F3B3183FF8CE642F2A2E5FB966EF7DD568DF1C3C6FB94E65AC5D58646B168CB7B163F2ECD665C576C78A12FBF0EBA6048AE64588C4C6D6EA66FB6AFF39CB733BD6AC983BDED7CF7382E5C17513ED48CD45FBB35F9F18D4BA5D1A230102108000042000010840202D092044D2F2B18C6CA7E6562A9EE392EFC467BBCFDABFFA9B43B10EFDC55B27EDDFFD74BEDDB3A6D4A7DDE6C4483221A2CCD73EA9B57FF5B3C3B1BA3AF8D77F77AE172112238FDD569E5488A8DC40EAAA3E060108400002108000042090DE04102209CF47BBAC87E57CB5C7C8CBDB8A63C1EC0945AFDBD3FFF4AB13A69F54F6E247B5F69DD5A57EC664E6E4E49B40EE3AD2D24584A8BDFFE9CF0FD8B239E36C96AB575E3C2AE9250652376983244200021080000420000108A41D018448E4912042223022878FAC2FB7C9A505563436CFC6B9188FB1A3F362B96E6223A91D38D99A345D89476B2F7A21327A54AE3D7C4BB9BDBEA92EAEEC40EAC635C4090420000108400002108040DA124088743C1A4448FC3BAA188EE75C9CC8BCA98536A6C00578F4D1BA1313C79D1009B674F6B83E09919EEA8676F98400042000010840000210486F020811F77C1021F12FE913774CB2FFEEE9997102E442DB556BBD78D52E5EBA6A3A9E3D25B94B567C4BBD384B31A3D28B9A6603A9DBAB0B50080210800004200001084060A80864BD104184747DB59EBEB3222642B4E2D57F7DEB945F392B949C5E3EDA5EFFD72BDC2A5A21A5EBE7DCCAC2AE891D29D3268D8EE57DEB56E34AB481D44D6C8B730840000210800004200081F42490D542041192FCA59CE684864C331FFFF6F9C3A6E0F1A83DE2362AEC4E84A86C7762424246A6D995C4F810A50FA4AEEA631080000420000108400002E94FA0EFCEFFE97F4FBDEE61D9B8CB7EE5A76C5D1D2B1528090459AE7B3B8AC6C66B55C58CDCBBA62C55D558FA929963ED7F7C6E56EC3C1CFCABFF666ECCADABEE4CFB12C1212F7C0EA46E68834F0840000210800004200081F426103FCA4CEFBE0E7AEF3EA81EEFDACCB186F37959B7446F77300F9DBAE0774F2FC8CFB57FFEEC4CFBC06D58B8F3F0795B33BFC8EE5C596261C6A4BB3694F7D86D934CCBFB7EB5AFD9EFC8BED26D6878C3A2225FEDCAD56BF6F2C7B5299B1848DD948D920101084000021080000420903604B25A88E8297C503D2E6D1E46BA74E49DAD8D56356B9C158ECEF5AB666916246A27EBDBAC789C5BC6D7EDAE9ECAAA8FB5D882E9636DDD9209FE27B1DC9B9BEBEDBFFCFA6462B23F1F48DDA40D920801084000021080000420907604B2DA352BED9E469A74E8F9774FDBBF71B12127EA2E9A662E825D75C70A5EFF5FDC4EEB973BD2E5D696CC5EFCB0D67EE7044DAB8B3389DAF90B576CE3E7F5F62FFEF2603439EE782075E31AE20402108000042000010840206D0964FD8CC8483F9917B64C1AE92E24BDFE6B9FD6997E341B724BD5045FE6CBBDCDB1C0F53BFEF1B6A4F542A204CA3FFD4FFBAC747CBEDDB1A2C426951458DD9936DBB4F3AC9D6E6C0BC5927E0EA46ED206498400042000010840000210483B020891B47B24E9D5A1FD275A4D3FFDB5C67397BDA0E94FFD81D4EDCFF5A80301084000021080000420307C0470CD1A3ED65C0902108000042000010840000210E8208010E1558000042000010840000210800004869D00AE59C38EFCFABDE061B7ECEF7617CC2E3BD9D07D1C48228581D44D6C8B730840000210800004200081F42790B36CC5CA14EB1EB577BE20BF7D89D62B6BFF53FADF0D3D84000420000108400002D73181BC2F7FEAEFAEA5A5E53ABE4B6E2D5B08E09A952D4F9AFB840004200001084000021080401A114088A4D1C3A02B108000042000010840000210C8160208916C79D2DC27042000010840000210800004D2880042248D1E065D81000420000108400002108040B610E8F5AA59457BFF79B630E13E210001084000021080405A1220443D2D1F0B9DEA27016644FA098E6A1080000420000108400002108040FF092044FACF8E9A10800004200001084000021080403F092044FA098E6A1080000420000108400002108040FF092044FACF8E9A10800004200001084000021080403F092044FA098E6A1080000420000108400002108040FF092044FACF8E9A10800004200001084000021080403F092044FA098E6A1080000420000108400002108040FF09E4979496755BBBA5F94CB7F9640E8CC0834F3C6B969393B291D6F3E7ADA1BECE0E55EFB1A6C6FA94E5C8800004200001084000021080402611E8F5868699745319D5D76E4488EEA370DC389BE67EA64E9F69BB766CB783D5BB32EAF6E82C0420000108400002108000049211C87A2172CBBA75D6D4D464BB76EF4EC6276DD2727273AC6AE52ACBCDCBB1FDBB77A64DBFD2A923B7ACBBD9C63BD1D6D0D8685F6EDD964E5DA32F10800004200001084000020904B25A88AC732264FDFAF576EDDA358F25DDC5883AB978D94ADF57C488C710F76BED9AD536B1ACCC8E1E3D86108923C309042000010840000210483F02592D44CEB8991089901CE71EB561C306FF7432458C0441D2D757EACD179FEF6B15CA43000210800004200001084060D00964B51009A2432224D3C4C8A0BF093408010840000210800004200081612490D542449C1123C3F8B671290840000210800004200001087410C87A21220E8891EEFF1EF2F3F3AD62D2242B2929B6BABA7AABA9ADEDBE4242EE94C9936D42F1043B76ECB8B5B4B424E49A4D9B3AD58A8A8AECC8D1A349F3132B949595FAFE5CBCD866274E9E307D62108000042000010840000299450021D2F1BC10235D5FDC8251A3EC81FBEFB3254B165BE19831B102E7DDDE26A74ED7D85B6FBF6DB5B575B17489959FFEC1EFFBF33737FEC6C68F1F6FAB56ACF00246898AC7D9BD67AF6D7CEB2D6B39DF6277DC71BBDDB8768D151616FA3A57AF5EB586860697FF5B3B70F0904F8BFE5AB87081DDE5EA544E99124BBE72E58A6FF377EFBD174BE3000210800004200001084020FD09E4CD9C3DE75F76D7CD4B6D177DF6A8D19D03D1EECA67725E5D5D9D5FCA77FEFCF93E66449F5ADA57E943650BAB960F55D349DBADDEF94DD2F464894F3DF9842D5FB6D446B91991A8151414585969A92D59BCD8B3696868F4D99AD5B8C1090BC5DB5CBA74B9436474BE374A9F545E6E932757D8B469D34CCBED8E72622798F2C78E1D6B0B17CCB723C78ED9D9B367439655564EB1675C7F4ADD75A3969B9BEB6747E6CC9E6D9AB9916052BD6DDBB7478B710C010840000210B82E088471D9A54B97AE8BFBE126B29B40FC0833BB59F8BB6766A4FD2578E8C10DB6C8CD40C89A9ACED8CE5DBBECD0E1C34E444CB67973E7DAEC5933DD8CC738FBDE86EFDA7FF8BFFE637BA5C8EFA5554BECDCB9F3F6F9962D76BAA6C616385157E566562434E6CE99E37F2E5EBC689B3EFBDC8E1F3F6E3367CCF0332FE51327FA199295CB97FB6578D5A4EA3CFEE823B19993A34EA4ECD95BED66636A7DBDAA254BACA26252E4EA1C4200021080000420000108A43B018448BA3FA111E89F623AD6AE5EEDAFDCDADA6ABF7CF1253B79EA943FAFDEB7DF3EFEE453FBC98F9E33CD42941417DBCA15CB6DFBD73BE27ADAD6D6662FBDF2AA172FCAD85BBDCF9ACF9DB3BBEFBCC397939BD6CBAFBEE6D395B06FFF01DB7FE080FDDE4F7EECF3E5E615ECE69B6E340914D9891327EDAFFEE6E776F9F2657FAE76BFDEF18DFD9D1FFFD00B169FC82F0840000210800004200081B427909BF63D1CE60ECADD282CE7ABC1F2C68D1B63C1ECC3DC9511BBDCAC993362D7FEF0A38F63222496E80E7EFD9BB76CDB57DBBD0B943825DA511798AE1994A869B773B96CC9EAEBEB63222494397CE4A8353636F95305B707AB9854EE0F1543F2CA6BAFC74448C857F0FC7B1F7C184EF98400042000010840000210C80002CC88441E1222A41DC6944830F83E374B91CCB47AD6EB6FBC992CCBA79DAE39DD254F41EE6D97DA5C5C48BE35BAD89B64D6D8D4E8E2404A2C279239B1AC7D3644B11F754EC024B37D6EA6068300042000010840000210C81C02CC88743C2B4448E74B3BA96306426E59121CFDB12B97AF745B2DD92C4AB20A792E185DC244964ABC28AFE9CC191F93A2630C0210800004200001084020FD092044DC334284C4BFA8D7AEB6BB5A6915AB74B2241E6009DDEBEA22965080530840000210800004200081342190F5420411D2F54D0C1B168E714BE14EAEA8E85A601853AEB8B8903013126646925DBE78C204BF6F49B23CD22000010840000210800004D28F40560B114448F217F2D4E9CEF88E79F3E6262DA4D5B2EEBFF71EFFB364F1A2A465062BB1BEBEC13725B1A15DD593D9FCF9F3922593060108400002108000042090A604B25A881497B8A068E77E94ADAB63A57A270F1F3E12CBBAFDD6F536B5B232761E0E1E74FB87684342FD689F8FA134ED1722D3E6858F3DF2B0296E246A8A69B9FBAE3BA3491C4300021080000420000108A43981AC5E356BF3E6CD7E7526ED9E1E36324CF3E7352CDD936BD6962FBEB41B6F586B72CF7AEAC9C7EDDB9DBBECC0C1837E3F0F6D481866209A9BCFD9576E19DFA1B4CFBFF8C2AADC068913CBCA6CBADB91FDC76E0F136D685853536B5A6A5879E386580C0DE5FDD136042000010840000210C84602592D44F4C0373931827525A07D428A8AC6DBE2458BFCA685B7DEB2CEF413B5D60B17ECB76FBF638AE3184AD30EEDDA3FE4473F78D60BA35933673A013233EE92DA97A4EDD225AB8C2C3D1C5780130840000210800004200081B42210EFE392565DA333234DE095575FB7ADDBBE32098EA8E9FCF09123F6D73FFBB97DB373672C4B1B0E06BB9A6289ABB022578A6CEF26A7361297F73D7EFC84BDF6AB37EDF4E99A7009FFA96BEEDCB5CB9EFFC50BB1CD1213EBC655E00402108000042000010840202D08E4DC76E7DDDDAE79DAD27CC677746C51715A74984E0C3F818251A3ACC2AD9EA51912EDD771F2E4A9E1EF44E48AE5E5135DD07A9969AF92E3274ED88504A11429CA21042000010840E0BA2210C6652D2D2DD7D57D7133D94920EB5DB3B2F3B1F7EDAEE5F274ECF8F1BE551AC2D2DA64B1BF1B2D0E61B7681A02108000042000010840A00F0470CDEA032C8A42000210800004200001084000028343002132381C690502108000042000010840000210E8030184481F60511402108000042000010840000210181C020891C1E1482B10800004200001084000021080401F082044FA008BA210800004200001084000021080C0E01040880C0E475A8100042000010840000210800004FA400021D2075814850004200001084000021080000406870042647038D20A04200001084000021080000420D0070208913EC0A22804200001084000021080000420303804102283C3915620000108400002108000042000813E104088F40116452100010840000210800004200081C1218010191C8EB40201084000021080000420000108F4810042A40FB0280A010840000210800004200001080C0E0184C8E070A41508400002108000042000010840A00F0410227D804551084000021080000420000108406070082044068723AD40000210800004200001084000027D2090DF87B2141D02020F3EF1AC594E4ECA965BCF9FB786FA3A3B54BDC79A1AEB539623030210800004200001084000029944002132D24FAB1B11A2AE158E1B67D3DCCFD4E9336DD78EED76B07AD748F798EB43000210800004200001084060C004B25E88DCB26E9D353535D9AEDDBB070C73281BC8C9CDB1AA95AB2C372FC7F6EFDE399497CAD8B64B8A8B6DF9F265565A526279F97976E8D061DBF6D5F68CBD1F3A0E010840000210800004AE6702592D44D63911B27EFD7ABB76ED9A7FC6E92E46D4C9C5CB56FABE22463C86D8AFC58B16DAC30F3D68858585B1B4FCBC7C84488C060710800004200001084020BD0864B51039E366422442729C7BD4860D1BFC93C914311204495F5FA7375F7CBEAF5532A2FC3D77DF1D1321172FB6D9899327ECE4C95319D1773A09010840000210800004B29140560B91203A2442324D8C64E3CB9AEA9E2714155979F9449F7DEAF469FBCBBFFA6B9318C12000010840000210800004D29740560B113D16C448FABE9CBDED5945C5A458D103070E224262343880000420000108400002E94B20EB85881E0D62A4FB17343F3FDF2A264DB2929262ABABABB79ADADAEE2B74E446EBB5B65EB0DABA5A3B77EE7CAFEA86427366CFB6BCBC5C3B76FC845DB8702124C77DE6E6766E8773B6B9392E8F130840000210800004200081F4248010E9782E8891AE2F68C1A851F6C0FDF7D992258BAD70CC985881F36E6F9353A76BECADB7DFB6DADABA587A38183DBAC01EB8EF3E5BBC78515CBDAB57AFDA91A3C7EC838F3EF22B5A85F2FA7CFAC9274C01E7B57575F6F3E77FE103CF2BA756C6EA2B96E7F091A3F69BB77E6BA76B6A7CD507EEBBD76EBEE946EF5617DAFAAEEBAFD2659B3EFBCCDE7EE7DD90C52704200001084000021080401A11E8FC2A398D3A35525D9118D9B871635C00FB92C58B47AA3B237EDDC71F7BD4D6AC5E151303A143E3DCBE26F3E6CEB19FFCF087B660FEBC901CFB7CC2D55BBD6A65977A9AB9983D6BA63DE9F22B2BA7C4CAEB40798AD3D12CCA534F3E6E735DFB51F1A33CD5FDE173CFDAD8B1637DDD9C8E3A710DB91395D54F6E0EAF77221BCE21000108400002108040BA10C89B397BCEBFECAE3397DA2EFAEC51A33BBF11EFAE7CA6E7D5B96FE4B5AFC8FCF9F3FD60569F3A57FA50D8C2AAE543D16CCA36AB777E93322F9AF1D0831B6CF9B2A53EA9A9E98C6DDDF6957DF4C927CE2DABCE8B06B969151414D88C1933ECB3CFB7C4AA3EF2FD876C69D5127FDED0D0685FAADEC79FB855AC4E9AB95592CBCACA7CBDB973E6D89EEAEA98BBD5B2A54BAD7CE244BFF29582CFB507C8279B36DBC79F7CEAEB2A0E648C9B9519EDAE39CA89957DFBF7FB67B2676FB59D7601EAF3E7B50B22D579EFFD0F6CFBD73B6CFFFE0376E162FBFB1BEB2007108000042000810C2610C665972E5DCAE0BBA0EB106827806B166F42170253264FB6B5AB57FBF4D6D656FBE58B2FD9C953ED4BE156EFDBEFC5C14F7EF49C297E439B08AE5CB1DC0FFC2BA74CB1552B57F87AE75B5AEC6F5F7821E6BAB5CF890209961F3CFD942D5CB8C04A4B4B6CFDBA9BEDD7BF79ABCBF50F1E3A643FFBF9DFDA15E7CA253B7AEC98BFFEDFFD3B3FF12268AA73D992359D39E37F0A0A46F973FD6A763122870E1F8E9D730001084000021080000420909E04F05D49782E72C50ACBF92A2E41AE5A217E24A1E8757B3A6BE68CD8BD7DF8D1C73111124B74071210DAB57CDBF6EDB10D2167CE981E2BF2FE071FC644482CD11DBCFAAB374CE24636C905C027B3CFB77C11132121FFB80B560FB1219A31C12000010840000210800004329B00332291E78708698731C5CD6C04DB77E040388CFBD4EA59AFBFF1665CDAE4299363E7070F1E8A1D470F2442EA1B1A6CFAB469CE15AB2C9AE58FAF5CB9629A1149660A9297E5BB207A0C0210800004200001084020B3093023D2F1FC10219D2FF2A449E5FE44A24182A3B736A9BCB39EC4462A6B6C6CF259E3C78FB7892E66246A17DBDA52EE0322918241000210800004200001085C1F041022EE392242E25FE66B575D54B933AD3CD517736B55F5AAF83545AD77585FAF11EAF1090108400002108000042090D904B25E882042BABEC061C342AD5235B9A2A26B811429356EC342596161A15B1DAB344529B77256697B9E3637ACABEFFD8C4BCA06C98000042000010840000210C83802592D441021C9DFD7536E39DC60F3E6CD0D87719F5A2DEBFE7BEFF13F4BDCC685B2D3A73AEB6979DE64269112DCB11021C9089106010840000210800004B28340560B91E29212EF7E94ADAB63A57AC50F1F3E12CBBAFDD6F536B5B27DB9DC58A23B7870C377ED16B7FCAE7EC20683DA353DD85D77DC6EE5E513C369ECF391EF3FE8674C94505BDB3E8312CBE40002108000042000010840206B0864F5AA599B376FF6510DDAB030DB96E8EDEE0D976BD6962FBEB41B6F58EB3711D44EE7DFEEDC65070E1EF49B0E6AB6637EC78EEACDCDE7EC2BB78CAF4C7B8D7CB5FD6BBF9788765F7FD6ED19B2D3D53B74E48895BBA0F4796ED3C1850BE6FBB28D8EF9A79B3FF3C7FC8200042000010840000210C83E02592D44F4B8373931827525A07D428A8AC6DBE2458BFCA685B7DEB2CEF413B5D60B17ECB76FBF13B7E7C76B6E9F108990054EA8C805EBF6DB6EB5DBEDD66835D366872FBCF4B2DFB13E2E83130840000210800004200081AC2190D5AE5959F394FB79A3AFBCFABA6DDDF6954970444DE787DD2CC75FFFECE7F6CDCE9DD12C7FFCD22BAFF899910B09F5E402A77A2FBDFCAA9D3CD9BE537BA87CED5AFB2EEA2A93CA425EF80CE5AE76ACF2A5F36B1DBBB1873C3E2100010840000210800004D29340CE6D77DE9D7AE4E7FADCD27CC6F77C6C51717ADE01BD1A7202056E03C10AB77A9666489ACE9CE922225275205AAFADED928F0939DBDC9CAA38E91080000420000108F440208CCB5A9C770106814C2790F5AE5999FE0087A3FF6D972ED9B1E3C7FB7CA9FED6EBF385A8000108400002108000042090710470CDCAB847468721000108400002108000042090F904102299FF0CB903084000021080000420000108641C018448C63D323A0C010840000210800004200081CC278010C9FC67C81D40000210800004200001084020E308204432EE91D161084000021080000420000108643E018448E63F43EE000210800004200001084000021947002192718F8C0E43000210800004200001084020F309204432FF197207108000042000010840000210C8380208918C7B647418021080000420000108400002994F002192F9CF903B80000420000108400002108040C611408864DC23A3C3108000042000010840000210C87C020891CC7F86DC01042000010840000210800004328E004224E31E191D86000420000108400002108040E613408864FE33E40E200001084000021080000420907104102219F7C8E830042000010840000210800004329F004224F39F2177000108400002108000042000818C23909F713DBECE3AFCE013CF9AE5E4A4BCABD6F3E7ADA1BECE0E55EFB1A6C6FA94E5C880000420000108400002108040261140888CF4D3EA4684A86B85E3C6D934F73375FA4CDBB563BB1DACDE35D23DE6FA108000042000010840000210183081AC1722B7AC5B674D4D4DB66BF7EE01C31CCA06727273AC6AE52ACBCDCBB1FDBB770EE5A57ADDF6B2AA2AABAC9C62972F5FB6F73EF8B0D7F52808010840000210800004200081AC1622EB9C0859BF7EBD5DBB76CDBF09E92E46D4C9C5CB56FABEA6831859B468A12D5B5A65972E5D4288F8A7C22F0840000210800004200081DE12C86A2172C6CD844884E438F7A80D1B3678669922468220E9ED830EE5DE7CF1F970C827042000010840000210800004468C40560B91203A2442324D8C8CD81BC385210001084000021080000420300804B25A88881F626410DE229A800004200001084000021080401F0964BD10112FC448F76FCDF8F1E36CCAE4C92E503ECF4E9E3C69CDCDE7BAAF90903B6952B94D2C2BB32B57AE5A9D5B8AB8B1B129A144F2D3FCFC7CAB9834C94A4A8AADAEAEDE6A6A6B93174C482D9E30C1A64E9D6A2D2DE7ED744DAD5DB87021A104A71080000420000108400002234D0021D2F10410235D5FC5F28913EDFEFBEEB57973E7586E6EE7DE97478F1DB3F7DEEF7995ACDB6F5D6F6B56AF7242A224AE71098ACFB77C615F6EDD16971E4E0A468DB207EEBFCF962C596C8563C684643BEFF6543975BAC6DE7AFB6DABADAD8BA58783075C5FAB5C9DA2A222EF6AA7F4AB57AFDAFE0307EC838F3EB6E3C74F84A27C42000210800004200001088C3081BC99B3E7FCCBEEFA70A9EDA2CF1E35BA7340D85DF94CCEABABABF34BF9CE9F3FDF0F64F5A9A57D953E54B6B06AF950359DB4DDEA9DDF244D4F4C1C3DBAC09E7BE6199B3573466C501FCA68C661B15B31ABADADCD8B0C0DF63FFAE4D390ED3FEFBCFD36BBFBAE3B6D4C44488402E3DCBE28F3E7CDB3B367CF3A61713A24C73E9F7AF2095BBE6CA98D723322512B2828B0B2D2525BB278B17F260D0D8D3E5B33273FFEE1737E05AFD1A347C7F557B13F9A8D59B470811D3E72D4CDE634479BE418021080000420905104C2B84C2B566210C874020891842738DC62245D85C8E38F3E6273E6CCF674E44AF5E5B66DF6C9A79B9CAB538D8D723316656E701F663A1285C8DA35ABEDDE7BBEE30581DCA2BEDAFEB57DB26993EDADAEB68B172F5AB973D5CA736E5E9A69517BF50D0DFE3AFAF5D0831BBC08D17153D319DBBAED2B27723E716E59757E56466E5A12243366CCB0CF3EDFA262BEFCBA9B6FF2C7C74F9CB0D77EF5866DFCCD5B76CCCD808C1A956F9AD9519DC2C242FB76271B427A50FC8200042000818C248010C9C8C746A7531088FFCA39452192B38BC0AC9933BD8B93EEBAA5B5D57EF1C28B5E30E87C6FF53E2F007EEF273FB669532B95D4C5EE70B32172E59240F9B513043BBEF93656E6EB1DDF78E171CFDD777941A3B26A53A63894B5AB57FBE35677DD5FBEF8929D3C75CA9F57EFDB6F1FBB59979FFCE8399B337BB6951417DBCA15CB6DFBD73BDCECCA5C5F464B31BFF0E2CB76C6CDB4C8F6ECDDEBDDB29E76332C4545E32D3F3FCFA7F30B0210800004200001084060E4092044129E81DC7EC272BE1AD86EDCB83116CC9E50F4BA3D9D366D6AECDE3EFCF0A398080989DA49FD95575FB37FF80FFEBE9FD908E9FA2C2D2DB1092E4643A6D987A808F189EE970485C483048FDCA682C90D2CD8872EA623889090A64F099BF56E234ACBB1D8469472CD92C90D6BFEFC7971B127EAEBCFFFF6173E9F5F1080000420000108400002E9430021127916889076185AA92AD8FE0307C361DCA7DCA99ACE9C8913122A207111EC845B612B959D7641E72AAB1812091F05924F993225567C9F0B304F665A3DEBF537DE8CCB3A72F4988B5959E4D31EFADE065BBD6AA5EDDED33E1B72F264FB8C4A5C054E2000010840000210800004469C0042A4E31120423ADF45C554C8E41E55575FDF999170D4E882C5A3331ACAAE8C88896481E8A189DAC8020033A64FF74244CBFCCAFC759DE0E8AD6DDAFC994DAEA8F0C1EA8A3D99E696EED58FDCBF14102F77B04F5D19B58B4100021080000420000108A40781CE3559D3A33F23D20B44480276E7F6D41BBB96AC502FEB26AB7AED6A7B8B72B1EAABBDFAFAAFECCFFFF2AFBC1B9D96F90D36C1ADF0759B5B46F80FFFE13FB065555521994F0840000210800004200081112690F5420411D2F50DACEF9805D12A5389331ED1D2652E1E24D1A2AE500A3E4F6593CADB673F947FECD8715F2C6C5828772DCD70F4D5E40AF64B17ACFE7FFCFBFF607FF6177F691F7DFC895F794BED8C1B3BD6EEBBEF9EBE3649790840000210800004200081212290D542041192FCADD252B9C1E6CC991D0EE33ECBCA4A63CBF746330E1F39123BADACEC8CF98825761C4C9EDC2E34B49CEFB1E3ED4224EACA35AF6325ACC47A5A2DEBFE7BEFF13F4B16B7C7852496D1B9624EDE7DFF03FB0FFFF77FB41AB7BBBA4C41F4D1F8179FC82F0840000210800004200081112190D542A4D8EDF82D37A06C5D1D2BD51BA7BD3882DD75E71D166237425A9E5BC440E32D00004000494441549AF7B1471EEEB26296F2B5E7C8D98E4D03E50AB56C695777A85BD7DF120B6A8FC6A01C3EDC2962B42BFBD4CAAECB033FB8E1BB76CBBA9BFDCF5837CB21FB07BFFFF7EC8F9CEBD50F9E79CA9F27FE3ADBDCBE9CEF952B574CFB9A601080000420000108400002234F20AB37343C76EC98D680B56FBEF966C496E84DC70D0DB591A0DCAACACBDD46806EF3C2B96EE3C1F16E37F4DCDC3CBFA3FA3D77DFED36149C1E7B7B133734D492B90BDC32BADA4B64CE9CD9A69DD8F3F2F24D3324EB6EBAC96EBEF1069FA75D6137BEF5DBD88686E75B5ABC0B9502CDB524AF66458AB414B00B1959E076B9BFFDB65B6DE182F9FEBACDCDE7EC3517172211B968E1429B3E7D9A4D7441F672E9D28EEBE7CE9DF302EAAE3B6EB7A5554BBCE03CEA9EF7675BBE88F59B0308400002108040A6116043C34C7B62F4B73B0259BF6AD6A6CD9BBBE393B579DA9DBCB4F4477E60AF38118980DB2334DADADAECE0A1435E044492FDE1175F6EB5714EB8480414BA788F1B6F58EB7FA2E5245E2442C26686214FFB8468F3412DC72B37AC5B6F59E77F42BE3E5BDDACC66FDF7EC7AEB83664DA617DBA5B0258312D72D7D28FDA97100AA600F64F37F1AC030F3E210001084000021080C04813C8EA19919186AFEBA7E38C88FAA5598D23478E5A991321A51D2E6C4A9729A6E38D8DBFB1B18563FD4C845C9EB44961D4E4662531505A5AEAF70A89E6D5B9A57BDFFBE043DBBAEDAB6872ECB8DAEDB42E2153E282E147756C56A84C099013CE6DEC65B799E281839DFB9B343636DA9EEA6AD3B2C3AAA7257CC3CA5BDA195E712B2FBCF4B2EB77A7CB59EC621C40000210800004328800332219F4B0E86A8F04726EBBF3EEA4ABB0869A2DCD67FCE1D8A2E290C46796115090F764BF02D635D346842106A4B718E42E555C52EC3CAC724C2B7245E342BA6B436E6115AEAE6648B479627445AEEEEAC9ADACC489A706B7E9625889ABBBF2E4410002108000043285401897B53877660C02994E002192E94F90FE4300021080000420903504102259F3A8B3E2463B9DE8B3E276B94908400002108000042000010840201D082044D2E129D0070840000210800004200001086419018448963D706E17021080000420000108400002E9400021920E4F813E40000210800004200001084020CB082044B2EC8173BB108000042000010840000210480702089174780AF4010210800004200001084000025946002192650F9CDB850004200001084000021080403A104088A4C353A00F108000042000010840000210C8320208912C7BE0DC2E042000010840000210800004D2810042241D9E027D800004200001084000021080409611408864D903E776210001084000021080000420900E041022E9F014E803042000010840000210800004B28C40EE3FFDD33F35FD60108000042000010840000210800004868B003322C3459AEB400002108000042000010840000231020891180A0E2000010840000210800004200081E1228010192ED25C07021080000420000108400002108811C8B9EDCEBBAFC5CE921CB4349FF1A9638B8A93E4923450020F3EF1AC594E4ECA665ACF9FB786FA3A3B54BDC79A1AEB539623030210800004200081EB9F401897B5B4B45CFF37CB1D5EF704F2AFFB3B4CF71BEC4684A8EB85E3C6D934F73375FA4CDBB563BB1DACDE95EE7744FF200001084000021080000420D02381AC1722B7AC5B674D4D4DB66BF7EE1E618D64819CDC1CAB5AB9CA72F3726CFFEE9D23D9957E5F7BF4E802BBFBCE3BADB8B8D83EDBB2C50E1D3ADCA7B66E5977B38D77A2ACA1B1D1BEDCBAAD4F759755555965E514BB7CF9B2BDF7C187B1BA37DEB0D64A5C7F9A9B9B6DF3E75B62E91C40000210800004200001080C2D81AC1622EB9C0859BF7EBD5DBBD6EE9D96EE6244AFC2E2652BFD1B91896264ED9A3576F34D37FAFE4F985064FFF9BFFC853FEEEDAFB56B56DBC4B2323B7AF4589F85C8A2450B6DD9D22ABB74E9529C1059B962854D9B5A6935B5B50891DE3E08CA41000210800004200081412090D542E48C9B099108C971EE511B366CF03833458C0441D2D777E0CD179FEF6B95412B1F04DFA03548431080000420000108400002194B20AB8548101D122199264632F18DDBBA6D9B4D9830C18ADD6CC8E75F7C9989B7409F2100010840000210800004068940560B1131448C0CD29BD48B662E5E6CB3B77EFB762F4A520402108000042000010840E07A2790F542440F1831D2BBD77CCAE4C936A178821D3B76DC922D1B386DEA542B2A2AB223478F26CDEFDD55CCCACA4AAD62D22493703971F284FFEC6DDDF1E3C799FA999B9767274F9E7441E8E77A5BB5DB72932B2A7CBFDADA2EB978929A416BB7DB8B4632F37273AD627285959694584343A39D3A7D3A92DBF3A102F2A74D9B6A67CF36DBD163C7E22A8C1D3BD6747F858563ACB1B1C96A6A6AECCAD5AB71653881000420000108400002834D0021D2411431D2F96A4904FCF40F7EDF27BCB9F137367EFC785BE582BA4B4ADAF79251ACC7EE3D7B6DE35B6F59CBF916BBE38EDBEDC6B56BDC40B6D0D7B9EA06B10D0D0D2EFFB776E0E0A158C312097FFA277FECCF377DF699BDFDCEBBB13C1D2C5CB8C0EE726D554E99124BBF72E58ABFD6EFDE7B2F9696ECA07CE244BBFFBE7B6DDEDC3996EB06EDC134E87EEFFDCE55B2427A6F3F6FBFED5653907CB173290BA6FB3F7CE488FDEEDDF7EDD8F1E33E5942E1BFFF677F6AA3468DB23D7BABED172FBC188AFBCFA2A2F1F6C77FF487A672870E1FB6BFFA9B9FC7E5E7E7E7DB3FFB27FFD80A0A46F9FBFDE58B2FF97C89B23B6FBFDD16BB60FB828282589DD60B17BC6078E3D71BADAE2E7E7F993FF9A37FE45726FB7AC737BE7F37DD7883898FDC0FF71F38607FF3F3BFF5ED88F377EEBED3E6CE896776EEDC79DBF6D557F6EEFB1FC4AEC701042000010840000210186C0208910851C4483B0C0DE4356895CD993DDBAA962C8E9D2B4D794B162F322DC7AB6FE76F7022246AAA5F5E5E6E4F3EFE983DFFCB17FC2A57CACFCDE96C3737372F5AC52FADFBE8F71F8A89999099E7663696562DB149AEBDA8C008F9FA543F9E78EC519B32657234D91FCF983EDD9E79EA093B79EA5497BC9E12EEB8FD36B7DCF01D5D8AE9FE67CF9AE5EEEF51FBAF7FF3333F8BA01904ADBC357DDA347F2F8995162F5A64F9EE5E649A3992F0D052C2C1E6CF9BEBEF43E7C74F9CF0C92AA3FB9A5A59198AC53E0BC78CB1593367DA8F7FF89CBDF8D22B71B31CE1F94D75AB8169A530314C34CD903CF5C463565A5A9A98E584E7389300932146BAE021010210800004200081412280104900891889072211A06FC83F77FB7E9C762E3B0BE6CFF7C244EE3CFA265D3F172F5EB44D9F7D6EC7DDECC0CC19336C89132EFA065E33242B972F8F0991F8963BCFD4D6E38F3E1213219AC5D0AC42AD1BD8ABBDAA254BACA26252678584A3871F7A282642E45AF4EDAE5DEE9A476D929BD959E466592446241CFA62AB56AE703311B7F92AE7DDEEF65B5C70BD6632B4078AFAA37675FCD4138FFBD98D0B6E86422E6912229A3D91AB9378059B33BBF3FA9AD950FD6F77766E4E295121D36CCB1E37DB24FBDE8607622244332FDBBFDE61A74FD7D8F4E9D36CE18205EE9E66DA04E70AB7EEE61BE38488AFEC7E49BCC9342BA5191CED97D3DADAEA05CF93AEDF4184ECD9BBD776EEDAEDF2CF38E139CBB4B7CA38B75FCB6DB7AEB7A633676CEBB6AF7C3BFC8200042000010840000283490021329834AFC3B6DADADAECA5575EF58370DDDEDEEA7DD67CEE5C6CA64003E7975F7DCDA72B7FDFFE03DEFDE7F77EF2639DFA580F7FD0CD2FED2D22E1223B71E2A41FD887D9025D4F2E467FE7C73F34099644D3005E3336B21637C8964B541000AAFBD9E75B4C7DD15E217D31CD8468664103F7175E7AD90DE48F76543FEAFBF3F4934FF85921B937E9FA1AAC57EFDB6FEBDDDE34B2796E8623F443E7D39C40915D76AE669A199937776E9C1099EA664964F5F5F556E77E6463468F71B323279DD0BB60AFBCF6BA17844A9750DBF6D576E7EAF58F4C3323515736E547EDB32D5FD86F9C8B5CD46E5D7F4B8C87D8AAED6012536AFFE9279FF48245CF062112E8F00901084000021080C06012E874A61FCC5633B8AD258B17FB3D45E47EA341F6C68D1B63C1EC197C5BFDEEFA511798AE9980A86957F34B97DADD8A3470D6803F6A1AB46B6642A6E0F69EAC6252FB37F78A2DD1A0388890504F2E4FD1DDD043BA3E15801DECC30F3F8A1BFC2B5D6DBDE28492624D7A6B252E205CCB0CCB346BD129423A5B78F7BDF763270A8E971D723BC59F73224DA69991609AD5D1CC85DEA7AFDDAC864CB31AC11437A21914997807539CC89FFDF95FD85FFFECF9980809799A81D9EF449F4CFD951B57A2A9CCDB6FBF9398EC83F995A867A8389E44D30C8A62496465CE752B59DB897538870004200001084000027D25D075F4D2D716AEA3F28890AE0FF3744DD7D599E4AAD476A9CD0566E75BA373F749668D4D8DCEF5A7C472926526A44D2C6B9F0D397BF66C6C3620A188ED73B30DC94C81F5C1F61F38180EE33EEB5DE0BC5C8CB42B7B6F4C2E4FC1241E14AC9ECCB44BBB82D3830B94CAC8854AF12095917895050BE6FBEA3535B5B6E39B6F6DCDEA557E0648FD51DFE6BA007BC5B9C80EA4B80705BB4F993CC5B9AF8DF1B320A3DD4C48104B12CD7979B94E74F92662BF74BD64AB5F85FEB6B4B6F8F89B5885C881DA944984CC9C392365BF225538840004200001084000027D228010E9C0850849FEDE5CB9DCFD4C8206EA0331CD0648B0C852891AE5494828564581D4510B2E5D72A10A2E4DD1FC70DCE882EA7B2B44A2AE4E8A97E8C9B4B255B043878F7821A2598AF2F2897E45AB596E464426B727CD2E353737FB658E17B995B03EDDB43916BF2237B8DD2E5E2398D8AC5B77B3AD5EB5D2CF4C047110F27BFABC7C254199B80A6AB3AC43902996E5A1EF6DE8A919EFFA954A20F5589902108000042000010840200501848803830849F1760C7372CF9A2689E8E9CD948BBB8F243553DE5D74C0AF00EE2B4906F4D1CA2D2DADB1D3DDBBF7D8FDF7DEE3E34BE6CF9BE7C5D314174722530C894C31180A785700BD8448880F517C4CD42DEDB1471F76331655BE8E7EC975EDBC5B2EB9ADEDA2FBB9E44599F66DE9AB754C76F8369A9BCFF6585D020983000420000108400002834D20EB85082264B05FA9BEB527D721CD84C85D28CC8C246B41DFDE6B3F9344538C8A96C3D50A5DC1D529B18CCECB3A665D92E525A64597FAFDF0E38F7D6078629954E7679C7B99625A1437A23811CDD4C8854D1B4056EF6B8FA5510C868488E25B344331C56D54283BEC664C8229AE248810D5FDED3BBFB35D6E65AB36E70E16ECFB0F7ECFBB7985F3DE7C8A774363A35F4440AB68FD3FFFDF7FEE4D35CA40000210800004200081412790D5C1EA8890417F9FFAD5607D7D83AF27B11175738A36367FFEBCE869ECB8A6B62E763C67CEECD871F4406DCA55AAB77624B64296F9A57F7B5B2F943B7AF4983FACAC9CE296379EED8FC3C6873AD9E5664D34F331D689A79B6FBEC9C6B8780F9996D10D16EAE9FC6B1757A2A57BA32244E96ABF3F5657D7CE4CAE63C95622EB4F9BD4810004200001084000027D2590D542A4D80D4EE586A338876C5F1DABAF2FCE6096D77E21322D97FBD8230FFB598268FB93DCAA5A77DF75673429761C36FF53C25D6EC95D958D9A661C7C9B4936F58B968B1E2B803CAC7EA55909B95825DA421780AEE573FFC91FFF916966226AFB3A569C2A75EF97F659911D742B6A05D30CC7A953ED8B00AC73CBE3CA342B74F264E7A68B5AF12A58810B884FB4E5CB96C656DA4ACCEBE9FCB40B629789F723DF7FB04B71317BFAC9C7FDBDFDE3FFF60F7DAC4B974224400002108000042000810112C86AD7ACCD9B37FB559DE4A21236321C204FAAF783C0E75F7C61556EE344B956C99DE9C73F7ACE6F68A8559F66B9159B94372EC91E22BA9496CCDDED36005CEC02BF55E699A79EB49D1D4BEE6A13C4C50B17C62DA5DBDBEE7DF8F127B6E181FBADA060941332DFB72FDC92C55A2E57E7DA20F1A61B6FF0331912B1DF7CBB33AED9FD2E16442E597217933B99623BE45615B5436E83412DE11B623C8E4596ED55B9DD7BABEDFEFBEEF54259BBA36BA5B23DD5D57E1665AEDB83E4C6B56BBC9088B6D9DB636DCE58E596A99EEC5CC2B431E273CF3EE33634DCE5779F979B9BF645D13E27322DE35B57D7BEAF496FDBA71C042000010840000210E80D81AC162202B4C989116C640968352CED1FF2A31F3CEB07F7DAA430EC341E7AA65810B9264557B40A79AFFDEA0D175FF2233F43203173FB6DB7DAED21D37D2AD8FAE0A1436E37F38591D4EE0F3558D7F2B8B7B9CDFFE4BE74876B533F519308F9E2CBADBEED68BAE230345313665224A8143B12B5BD4E68A8ED60EA5FD4248EB5DBB976B6D74EECFE9E22D7D7B525C26647766C8FD6EFEE5822499B344AF0C91D6E81737BD34FA26939E5F7DEFF30319973084000021080000420302804B2DA356B50085E878DE81BFC6057DD8037995DBBDA9E9E22DBBBBBA99E06CCC1AE5EEB6CF75AE41ACA3F7EFC84BDF6AB37EDF4E99A50DC7FAA2FFAB6FEF95FBC10DB4431DAA60AC98DE9E5575E73DFDE1F8CBB9EF2149BF10BB73160D86031B1EEB58E3E25A6ABEEEFDE7DCF3E723323CDCDED9B142A4DA6CD111590FEE2CBAFDAAF7FF3567B62C2EFC3878FC652A241E821512B6769496299E24534AB93682FBEFC8A6DFE7C8B0F748FE649A4BCF1EB8D76A043BCA8EFE179A85CB897F019AD1B8EE57EF6E24BAF7811157DDECA97EB98765CFF7FFFECCFBDA00A75F884000420000108400002834920E7B63BEFEE1C292669B9A5B97DB034B6A838492E4910187C020AA2D65E17DAC344330BD178899EAEA61DCC27FB9DCEAF795173D6EDD9315053CC44857363D2ECC1858B174D6E54D1657607DA7E6FEACB8DAAB4A4D4C5923476116BBDA9DF5D196D965831A9C26F5E58535B13136DDDD5210F02108000044686401897E94B230C02994E002192E94F90FE4300021080000420903504102259F3A8B3E24671CDCA8AC7CC4D42000210800004200001084020BD082044D2EB79D01B0840000210800004200001086405018448563C666E12021080000420000108400002E9450021925ECF83DE400002108000042000010840202B082044B2E2317393108000042000010840000210482F020891F47A1EF4060210800004200001084000025941002192158F999B840004200001084000021080407A114088A4D7F3A037108000042000010840000210C80A020891AC78CCDC24042000010840000210800004D28B004224BD9E07BD810004200001084000021080405610408864C563E626210001084000021080000420905E041022E9F53CE80D042000010840000210800004B2820042242B1E333709010840000210800004200081F422801049AFE7416F200001084000021080000420901504102259F198B949084000021080000420000108A4170184487A3D0F7A03010840000210800004200081AC20909F157799C637F9E013CF9AE5E4A4EC61EBF9F3D6505F6787AAF75853637DCA7264400002108000042000010840209308204446FA69752342D4B5C271E36C9AFB993A7DA6EDDAB1DD0E56EF1AE91E737D0840000210800004200001080C9840D6BB66DDB26E9D2D59BC78C02087BA819CDC1CAB5AB9CAE62DAE1AEA4BD13E042000010840000210800004869C4056CF88AC732264FDFAF576EDDA350F7AD7EEDD430E7CA01758BC6CA56F62FFEE9D036D8AFA108000042000010840000210183102592D44CE3435791192E3DCA3366CD8E01F42A688912048FAFAE6BCF9E2F37DAD42790840000210800004200001080C3A81AC162241744884649A1819F4378106210001084000021080000420308C04B25A888833626418DF362E050108400002108000042000810E02592F44C40131D2BBBF87BCBCAB3666CC05BB7A35D72E5C18EDDCDA522F3B1C6D7154FE651B3DA6CD2E5FCEF3F5A279997A9C9777C5B1B8E8575E160BDD1B0601084000021080000420D07B0208910E568891CE9766D4A8CBF69DBB36FB842D5F2EB7B68BA36CF1E203563EB131564803EFC347A6DABEFDB3520A92C915F5366FDE119B50742E56AFAD6D949D3953647BAB675BF3B971B1F4BE1C4C9F7ECA962ED9E7AB7CFEC50A6B6C9C90B4FACAE5BB6DCA943ADFBF77DEBDC5C68D6BB5F5EBB6F9B29F6D59614D4D5DEB8D1FDF62B7DEB2B5A3EDE5AEEDE2B8B6274C38670BE71FB2F2F24E162AA0727BF6CEB126776F180420000108400002108040CF04B27EF9DE282289918D1B37C605B067C2D2BED17B188CE39C9C6BEE9BFEF69FE209CD76CBBAAFE24488AE919F7FC5E6CD3DEA963EDE9FF4925326D7D9EA553BE344880A16145CB249931A6CDDCDDBADC20995FE586D4D99AFA63E4E995C9BB489BCDCABAEFD067F1F35B5657E1627DC53F84C5631E485CF681909991B6FD8D14584A84C69E919BB61ED0E9390C120000108400002108000047A26C08C4802236646E2812C5A78D0271C395A69A76BCAEDE2C5022B2B6BB2D9338FDBD8B1176CE68C9376F6EC783B767C4AAC6269E9595BB17C8F3FD70CC8A1C3D3ACB6AECC34D35231A9DE66B8190DB936AD5EB9CBDEFBE0665399BED8C5B602ABAB2FB1496E5642331EBBF7CCED322B33D1E5E91AB2E32726F7A5F9A46525A06E58F38DC9CD4CAE699AFD501FCC72BC481327893395D9F4D92ACF2969432442000210800004200001087802CC88F022F448E0E0A1E9B673D77CAB7703EF73E7C6DA11E792F5E5D66576E54A7B5C44D592FD7EE62134B4B4AADA72DD8C846248B66D5F62070ECEB0E6E671D6D050EC45C3CE5DF37C51CD3A4C9F762A54EBD3E7F10EE133BAA0CD4A4A9ABBD4ADEC982991C8A9AB2BED92DFD78479738F5861E1057F4F5BB75579B7B4F3E7C7DAF9F385FEF8ABAFDB37C554DC8884160601084000021080000420D03D018448021FB96285E57CB5D1A15CB5C22C4942D1AC38D5605BF11C8976BEA5D0F674A44B748C1DDBEA8BE4BB5988F1E3DADD933413921863A1429AA1D8B97B9E55EF9B6D2DAD63129BEED5B9DCAD428078A27B96FA23B72CD98993155D664B7A7581844225C5ED6247A2A6AEBEABB0A9A99968679BC7FB5A139C3B1B0601084000021080000420D03D015CB3227C102111181D878D2EA03BD5EA586722C1DE138ACEBBD981B15634E17CAC91868440EF58863BD0AC4AD4468F6E8B05A047D3A3C7720F0B2240EE51274F4DF2B30F89EE590AAA1F4CB72CCDDC14B9FB935DBA9CEF5CD3CE44BB153BBE74A9FDCFA9D805B4631080000420000108400002DD13408874F04184247F51CE3A97AA5476CEB92505D3405DC240C1EDC1E4C6D55B53EC454FC1EB750D2E2623321BA19915B94179F72C376321D124933091E9FA72091BA829005DB32CB2A99535FEA7BB3625AA0A465DB2B64B7D8B7DE9AE4DF2200001084000021080C0F5460021E29E282264E0AF758E5DF38D5C8DEC2D92D3BB6D467C3DCD349C3C39A9DB8E9C4F10365A7E57AE5D635DECC69429B55E88483068D960593480BEDB867BC80CF7A662AD6ECF1005ECF7687DB8F71EDBA200042000010840000210B80E0964BD10418474FF56CBE52A958D77CBD9060BF1116723FB68148D3F6F2D2DBD8B01D1E07EFB8EF680EFD0666F3E8F1F9F6C0BE61F76CBF8D6B9589E796E05AB26EF96257732CDD0A4B2DCDC76E19498AFD5B112ED9C7339537B72D13A766C8AED3F3033B108E710800004200001084000027D2490D5C1EA88909EDF96D292B3712B62456B14179F8D9D06172E6D5218624ACADCDE1AA9ACD2CD60CC987E32E99E1CA9EA244B5730BA4CEE5025AEAF9A19916969DDC4998BCB6ED625D898D117C361DC67D4B52C64281E25B878A58A0F0965F98400042000010840000210E81D81AC1622C525256E90ED1C6F581D2BE5DB32CEAD80A59DC4136D9C5B256BE182F6F42B5772DDCC477BBC888E436CC8CC9927FC9E238975254256AED86D4BABF6594944CC2496EBCD79AB73CD0A41F1D3A69E8EB96525DB3B44B33361C961CDA0249A6643522D277CE66CFB8EE913DD1E2A41EC44EB6BB5B0B56E0F91DBD67FE937728CE6710C01084000021080000420D09540E757C45DF3AEFB94CD9B37BBEDE8CC9A9A9AB27A89DE9E1EF49C39C72C37EFAADBD070A2B5F90D0DCFD8EC59C7FD067EAA2B97A8300BA2F36F772EB09B6EFCDA0778AF5EB9DB0E1E6ADFD050F11B729D9A3DFB988AF93AC78E55FAE381FC927B96665FC2FE1D5AD657CBE926B3B367C7B95DD0CFFADDDDB52BFC5177FDAB5773ACD805BBCF9B73D46FD298ACDEFEFD33FD668C9A79D1668DDA2FA4CE6DD2A895B2B44AD61C5757B34732ED9B824100021080000420000108744F20AB8588D06C7262044B4D40AE4F9AC198E56637F493685A52373128BCC9C5896C771BFCAD5EB5D3EDA67EC9CF9C84D993505FEE4EDFEE9C6F179CB019A89D3E5DEE6757C2CA568A0D51FBC96CD79E7976B313495ADE37D93DE95E92CD8AA89F5FB84D1CD7DDB4DDD75DAC1DE73B769D8F5EE794EB4B70178BA6730C01084000021080000420104F20F9682DBE0C67594CA0DE2D97BBE58BE576F66CFB667D0185661DF4CDBF66439299664FB67D55158BAD086554AFDE2DC3FBD9E72BFCC686217D209F97DD0EEF1200C192B965853CDDC797DB969AC452741647F123BBF7CC759B2CCE0A45DD944DFCD2578A13110BED101F35B523773489AFAFDC4EF2180420000108400002108040CF04726EBBF3EEE4CB0775D46D696E0F381E5B143FF8EAB9694A642A01C54A7CE7AEF699A21DDF2C7282A13D207CD4A8CB3E285CB30D175A475B74A9DEEEEE35D453FC88623AD2C534833276EC05BF43FB05B72C6F5F2C3FFF8A77CFBAE6DCBA744FBD65D1976B50160210800004209048208CCB5A5A5A12B3388740C611C87AD7AC8C7B6223D861C54384DDC3FBD28DFED6EBCB35FA5356822A04D6F7B5BE6676FA5BB7AFD7A23C042000010840000210B81E09E09A753D3E55EE09021080000420000108400002694E002192E60F88EE410002108000042000010840E07A24806BD6F5F85407784F579CDBD1C143D37D2BCDCD6307D81AD5210001084000021080000420D0950042A42B93AC4FB9E26227F6EC9D93F51C00000108400002108000042030740470CD1A3AB6B40C01084000021080000420000108A4208010490186640840000210800004200001084060E8082044868E2D2D4300021080000420000108400002290820445280211902108000042000010840000210183A020891A1634BCB10800004200001084000021080400A0208911460488600042000010840000210800004868E004264E8D8D2320420000108400002108000042090820042240518922100010840000210800004200081A1238010193AB6B40C01084000021080000420000108A4208010490186640840000210800004200001084060E8082044868E2D2D4300021080000420000108400002290820445280211902108000042000010840000210183A02F943D7342DF786C0834F3C6B969393B268EBF9F3D6505F6787AAF75853637DCA7264400002108000042000010840209308204446FA69752342D4B5C271E36C9AFB993A7DA6EDDAB1DD0E56EF1AE91E737D0840000210800004200001080C9840D60B915BD6ADB3A6A626DBB57BF780610E650339B93956B57295E5E6E5D8FEDD3B87F252036EFBC61BD65A4971B1353737DBE6CFB70CB83D1A8000042000010840000210B8FE0864B51059E744C8FAF5EBEDDAB56BFEC9A6BB185127172F5BE9FB9ACE6264E58A15366D6AA5D5D4D62244FCD3E21704200001084000021080402281AC162267DC4C8844488E738FDAB0618367932962240892C407DAD3F99B2F3EDF5311F221000108400002108000042030E404B25A8804D1211192696264C8DF0C2E00010840000210800004200081212490D542445C112343F876D1340420000108400002108000045210C87A21222E8891146F474272F1840956515161972E5FB253A74EDB850B17124A0CCE6951D1789BECAE939B9767C78F9FB0F36E09630C02108000042000010840E0FA228010E9789E8891CE17BB62D224FBE91FFCBE4F7873E36FFCEA5777DF79A74D99323956E8D2A5CBB67BCF1EDBF8D66FADB5B53596DED3C1C4B232FBC1B34F5B5969A92FFACEBBEFD9A79B36FB63898FFBEEBDC7E6CC9E65B9B9ED7B6D2A86E7D8F1E3F6FE071FDAFC79F36CDDCD37595B5B9BFD9BFFFDDFF57429F22100010840000210800004D298004224F2701023ED302402143323AB9C32C5BEFBC0FD96EF6627A2366A54BE2D5FB6D4468F2EB0E77FF142342BE5711021FA947DFCC9A73111525858684F3CF6A84D9A541E575FFD98317DBA3DF3D45376F0D021DFAF2052E20A7202010840000210800004209051041022098F0B31120F64ED9AD53E616FF53EDBB77FBF9D397BD6E6CE9E6D4BABAA6CFCF871B670C102BBF79EEFD83BBF7B37BE62C2595959A99F090922E4232742DE7DEFFD58A9C71F7D382642EAEAEB6DD7AEDD76F8C8513F0BB370C17C9B3963862D5AB820569E030840000210800004200081CC268010C9ECE7372CBDDFB96B97BDF0D22BB16BEDDD5BED44C901374BF184E5E7E7DBBA9B6EB48F3EFED82E5E6C8B95891E949696D873CF3C6D3111F2F127F6EEFB1FC48ACC9B3BD7BB5D29A1B9F99C9B61F9A5353434FAFCFD070ED8E6CD9FD94F7EFC432F466295388000042000010840000210C86802ED8EF8197D0B83DBF9258B17FB3D45E412A4F8848D1B37C682D907F74A99D1DA59B73BFAEB6FBCD9A5B39A1DF972EB369F9EE7DCB666CE98D9A58C12BC0879F6199B3871A2CFFF28418428519B1F067BEF830F622224A45DB97AD55E7EE535BB7CF97248E2130210800004200001084020C3092044220F10111281D1715853539B72A64341E4C12A2BA784C3D867C1A8023713F28C9577234254582B71053B70E060388CFB944B586363535C1A271080000420000108400002994B0021D2F1EC1021C95FE27A17AF91CA8EB9A57583552404992BBDA4A4D8CACBDB674234BB54535B1B8AC77D06972D2DD32BC191CA1A1ADBDDB552E5930E010840000210800004209039041022EE592142FAF9C23A71D169EDAB6C759EB71F5D756E5532B9BA7DEFBB0F58B299938B6D177D9951A346F9CF54BF461714A4CA221D0210800004200001084020C30864BD10418474FFC686D88E64A5A64F9F164B4E36DBA1FD3E7EF1E24BB6EDABEDBE9C96E87DFC91874D9F51ABADABF3A7054E684C9B3A359A1577AC95B7300840000210800004200081EB8340560B114448CF2F7145C524BF5748B292D3A6750A9193274F7529D274E68C6985AD377FBDD18E1E3DE6F3CBCBCBEDB147BE1F57F6F4E99AD8F9CA15CB63C7D183654BABACA8A8289AC43104200001084000021080400613C86A21525C52E25D86581D2BF51B3CC10DFEBFFFE0835D0ACC9F37D76EE8D863E4CA952B76E4E8912E6542825FF5EAB5D7ED6C47FCC782F9F3FDDE2321FFD0E1C3A69DDA6537AC5D63AB56AE0859FE53B324DFDBF0DDD8268B71999C4000021080000420000108642481ACDE4764F3E6CDA6C886A6A6A6AC5EA2B7A7377769D512BF5F48F5BE7D6E9F8F669B337BB66986427B88C8367FF679CA95B542DB62FCDAAFDEB0679F7ECA140B72CBCD37594D4D8D7DBDE31BABABABB7FF9FBDF7F0AEEACAF275A72432080984241042880C024CB68926140E186C8CC13854B9EA5675AAD75D5DDD7DDFEBBEEFDE3FE08DFB46DFBE71BCD1B7BA82CB552E631B6C1CC0186393A3C949020448804039A1802490F4D65CD23EDA92CE5140123AE15B350E7B9F95F65ADF3AEEDE3FAD35E7FC76EF5E79F1F9E7ACD87865DD5A59B27891E4E7175883F778E3554BA3A9EB512F3DBE458200042000010840000210087C02212D4474F98E193142F24D2033F3968C1D9B64A39A7B8B6C7E2D3DDD88887DBE3B7095DCCCC894EF4C3475151C2A2CD6BCF0BC141616C9DD7BF7E4FB93A74CAC91E1F2F4FCF9568CA8CB5FC7EDAF76917EFD861122D536A2BBAB4B6E2100010840000210800004029440481FCD0AD0357BA2C3BE9395253B8C8D47CB181E1A5CF0D2E554F9EC8B1DADC6535FDFE0294B8FBCB54C27BE3FE9315E1F306080BCF272D3B1AF5D5F7F6323B85FBD764DB2737224D7EC98A8D0D19D940F3EFCC804986CD91BDF2100010840000210800004029540C8EF88F4F6C2EDDCB6A5B787D0EEF3CF9C3D27FA8935B14234E647CDC3879293932B9595955EDBFEF6DDF7BCE63B991AA9DD5BB4762D4F4D4BB31FA7AEFBAAF62A9AAAAA1ADCFDBACBB88700042000010840000210082C020891C05AAF5E1DADDA6CE8A7BB930A9C37366DB4DDE699FE3F362E7F5BA63189899E182477EF3545746F598FEF1080000420000108400002814100211218EB14D4A35471A347BDE2E3E38D9D488CBCBEF135D1E359199999C675707F639F32599E797A81357257106AB7428200042000010840000210086C020891C05EBFA019FD9163C765ED9A35366649CAB4A9A29F96496D4E4E9D3E23278C613B090210800004200001084020B0092044027BFD7A64F46AFB919A76C5F69DE30A36D8230F6BECF4E2A5CBA2D1D95F7CEE39494818D5CC4DEF4363935254546C8CDCCF21427A7211E81B0210800004200001083C4102614B97AF6CD317516559A91DCEA0C8A827382C1E15EA043476C87063185F5151618225DE09751CCC1F021080000420600938EF65BE1CC68009028144801D91405AAD101AABBAEED50F090210800004200001084020380910472438D79559410002108000042000010840C0AF092044FC7A79181C042000010840000210800004829300422438D79559410002108000042000010840C0AF092044FC7A79181C042000010840000210800004829300422438D79559410002108000042000010840C0AF092044FC7A79181C042000010840000210800004829300422438D79559410002108000042000010840C0AF092044FC7A79181C042000010840000210800004829300422438D79559410002108000042000010840C0AF092044FC7A79181C042000010840000210800004829300422438D79559410002108000042000010840C0AF09F4F1EBD185C0E0D66E7C53242CCCE74C1F54544851618164A65F9592E2429FF5288000042000010840000210804020114088F4F66AB52142746803070F96D1E6939098246917CF4B467A5A6F8F98E7430002108000042000010840A0CB0442FE68D6A2850B65DAD4A95D06D9D31D84858749CAACD932616A4A4F3F8AFE210001084000021080000420D0E304427A4764A111218B172F96FAFA7A0B3AEDCA951E07DED5074C9D31CB7671E34A6A57BBA23D0420000108400002108000047A8D40480B91D292122B42C2CCF1A8356BD6D845081431E20892CEFE72766EDBD2D9267E557F7ACA34993C69921953BDECDABD47AAAAAAFC6A7C0C0602108000042000010840A0630442FA68968A8E5DBB7635132381704CAB634B1B9CB5462724C853336798CF4C19306040704E925941000210800004200081102010D23B22BABECE0E88EE8804DACE4808FC3E992204200001084000021080409012087921A2EB8A18E9D8AF7BD4A89112336CB864E7E448615151B3465143874A6CEC08E9DBB7AF1415174B417E81D4D6D535ABD31B5FE2E3E264F8F0615253F350F2F2F3A4ACACBCC3C3888E8A92D1A313E4FEFD32B99395D5AA5D7C7C9CC40C1F2EC5E6885F5E6E9E5FCCB7D520C9800004200001084000027E4A0021D2B8308891A65F685C6CACFCFC2FFFDC66ECDCF5B57DD94E31B6192A36341D387458F61F3868EF53A64D95258B164942C228FBDDF9A7BCBC5C2E5EBA2CDF7CFB9D93E5B9FEA7FFF04FD2A74F849C3B7F41BED8B1D393EFBEF98FFFF48F46D4F491F3172ECAE75FEE901FBEF9864C9830DEEE5A39F5FEEE177FED7134F0ABDFFC56728D1870D2B2A54B64DEDC399E316BBE3A25B875FBB67CB777BF64DDBDEB54B557ED2BCA088F0B172FD9B2A717CC97113131F679376EDE94F73FF8D0D68B8C1C222FBDF8A2248D499441830679FAA8AEAE96CBA969B2EFC001292FAFF0E4730301084000021080000420E09D0042C4C50531D200233C3CDCF3C29F326D9A8C1F97ECA2D4743B69E24479F59597ED2E48536EC3DD90214364D1C267A46FBFBEB2F3ABAF9B15474434F4AF47E17CA5F0C63A3A164DEE31B9DB387D38F5B4ECD9654B65E5F267DDD5ECBDD64D1E3B5636BDF6AABCF7FE9FA4B8B8C453C7E95F05D58CE929121111E129736E744768F3C6D7243A3ADAC9F25CFBF7EF2F73E7CC16DD2551D18211BD070D37108000042000010840C02B0184480B2C8891E6405484D4D6D6DAE36B77EFDE932AF3977FDD79481C3D5A5E5DDF204274A721352D4D6E66644AB989043F2E3959D4BB55A41123F3E7CE950AB343B0FFE0A1E61D77F2DBD77BF6C8E0418365F6ACA764D653336DEB8FB67EE279E1D7A3519AB47CB911229A2ACC584E9E3A2D99B76ED9DD0E155553264FB2F7AF1B41F187F73FF0B4B70DCC3FB12346D85B9D8BEE9E949863570F1E3CB0790BE6CDF38810DDED397AECB894999D9F491327C8C2679E163D06A6C6F42A48B48C0401084000021080000420E09B0042C4371B4A0C81478F1EC98EAF76D923526E206F6D7E5D060D1C68B34E9E3E2DBBBEFEC6537CED5ABAA4A7A7CB9BA68EDA8C2C59BC480E1F3D66FBF254EAE44DBEB139C99702E3BA77A2A7654E6EAE150A9E0C73A33B21BABBA1E261EB279F1A3171A7B1F88E3D76B579D34613C0728A8C1A3952F458D999B3E7DCCDEDFD8993A7E4EBDD4DF3712A24258DB1B7050585F2E9679F3BD9F68899DACDBCBC76ADD94909972183077BCAB88100042000010840000210F04E0021D2828BBAEF753C68E95FFAD5BDAFB34BD2A26A487CCD32BB206AA7D1328D68DC39D09772B70871EAE98E820A94C52668649F3E7DCC91A824B97EE3A653DC23573D3235B4D18E45ED359A4448D3E3F6EEDB6F8588E68C8C8F6F2A68BCD323557BF67CDB2A5F33FA341ED78A8A1A6A8F60B96D52F4FE37BF7BD76B3B3221000108400002108000045A134088B89820425C301A6FB3B3B35B65AA9176747494CDCFCBCF6F55EE646465DD736E8D317B428F0B11153B4E5211A9C6EADED2C3870FED4E8D730CCB5D272F2FDFA7F7AB7BD939F65897EEF2FCC5CF7E2A376E6648FAF5EB765E7A848B0401084000021080000420D07102089146568810EF3F1A3D9AD5328D4D4AB2C79F34BFB0B0B065B1E77BD6DD2CCFBDDA4FF474D2E3564E5A307F9E73EBF3AA6E7D5BA647B5ADE7EBD4D9F3DD773278F020E3316B8C3566D76362FA51D1A3824CED514E9F39EB54E70A01084000021080000420D00601848881830869E317E2A5A80D67575E6A3FB92CC783963EB1A4A4D418D9FB16155AA7B2B2C1085DEF3B92D4CBD6BBEFFDD1FE5ED4BD6F82F1A2D5AF5F3FEB614C85D6BA97D6C8334F2F908FB77D227A648D0401084000021080000420E09B40C80B114488EF1F87AF92CC5BB7A5CE042B54A3F09898E1BEAA19CF5A899EB2BCBCA6181F4EA63717B95AA6F14A221ADDF63A753B72558371271D3C7C58CE9E3BEF7CEDD6ABDA0CE947C7387EFC38993A658A357C1F306080F5BAF5DCAA55B2E5E3ADDDFA4C3A83000420000108400002C146A0214843B0CDAA83F341847410548B6A95959576C741B335F8A1AF9468A2923BE9EEBD267B919A9A1A9B3DD88777A9E4E4B19E38264E7B6F570D78E84EB73D1EB244C624368920779DEEBCD7C8F1E9D76FC8973BBF3286EABF97870F1B76603496080902108000042000010840A06D02CDDFE4DAAE1B74A551C6CB921EE7C13B56E797B6A0A040D4C642BD67BDF8C2F3ADDCDD6A2C11C74E43ED4C7417C5498545C526DEC6281B73636864A4DC2F2B738AA47FFF7E36F68827A3C58DBEFC3B69FCB871A26E7D9D54585464A29A978B06539C9E9262629B5C3186E4379C627B559B0E1DAFEE66A8172F15111D493A9FB56B5EB055D3AE5C95EF8CF72D77D2676B747515471A6B850401084000021080000420D03681901622C78F1F9730C3473D1E85B28BDEB67F22DE4B0F1D392A8963126D2C91A78D61B8C614B9999161EC2E2A6DF4F219D3A77B22AE1F691143A4B0B0C00A11151D6FBFF9861C35EB505A5A6A3D6B696C0F0D96E82B693D272D9837D71E0FBB772F5BB2B2B2ACB7AB83878FC81A2334FA9988EE1B4CC0C553C678FC86111CFA5D7749D4B6438F50A9F8BC7439D5E9AADDEB6D13DCB05FBFFE12193944169A88F16146C89C32C6E96546448D36E3D5208A438634C40FD1E7912000010840000210800004DA2610D24244D11C332FC1A4CE13C8BA7B573EFBFC4B797DE3062B3866CE982EFA6999D48B54CBA8EA2A6292C78EB5313FF418D386F5AF346BA62E74D545B0F362EF2EBC71F3A68D86AE62222626469E5FFD035BFC6FBFFD9D641BF7BAEAB94A63892C354114B58F67972EB11F771F2A424E9D3E23199999EEEC36EF7527E6C4C993B26AC5721B4F64C9A285A21FC756C6699C93932BA7CFE239CBE1C115021080000420000108F82210D23622BEA0847ABEBE5C3BA9CEBCB4FB4A1A43E3F32F775801D0B24E4545851179276C54F69665EA516AEB27DB458DCBDDEE8155205C4BBF2EDBB66F372FF8B5B699E6B9937AAEFA62C74E73D4EB9615019E3257B5EFF6EE93436667A4ACACDC53AC37B5B5B5D6CDEEB64F3F93AFBEDEDDACCC798E736D56D8F84577763EFC789BE41AC3FB47A62F4D6AB0AF6DEEDFBF6F5DF7FEF6F7EF4991397A468200042000010840000210689B40D8D2E52B5DAF70AD2B5796351C851914D910C0AE750D72202026C061B4F5181511112EA5E6A53CCF441A77DB73F862D4CF04071C63E272A84B600D18A847BB3A9A74C7438F84A99829711DD972DAAB1D489CD971512F5C6AB7919575B799F071EA3DCE55A3C58F36411AFB0FE82F3966DC6E3B97C7E98F36108000042000818E1070DECB3AF3FF2F3BD22F7520D01B041022BD419D6742000210800004200081C7208010790C6834F15B021CCDF2DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF258010F1DBA56160108000042000010840000210085E020891E05D5B6606010840000210800004200001BF25D0C76F471622035BBBF14D91B0309FB37D50512145850592997E554A8A0B7DD6A30002108000042000010840000281440021D2DBABD58608D1A10D1C3C58469B4F426292A45D3C2F19E969BD3D629E0F0108400002108000042000812E13087921B268E14229292991B42B57BA0CB3273B080B0F939459B3253C224C6E5C49EDC9470574DFFDFBF79395CB974B5454949C38795232336F05F47C183C042000010840000210085602212D44161A11B278F162A9AFAFB7EBEBEF6244073975C62C3B56C488C5D0EA9F7973E7CA334F2FB0F9438746CAAF7FFB6EAB3A644000021080000420000108F43E81901622A5662744454898391EB566CD1ABB1A8122461C41D2D99FD0CE6D5B3ADBC4EFEAAF7B698DF4EDDB57EE6465C9A9D3679A8DCF1195CD32F90201084000021080000420E07704425A8838A2434548A08911BFFB253DC101CD9C315DFAF5EB27111111AD84C899B36765E8D0A112657643BE3F75FA098E8A474100021080000420000108748640480B11058518E9CCCFC5FFEB5657D7C8EE6FF6F8FF401921042000010840000210087102212F4474FD11231DFBAF60D4A89112336CB864E7E448615151C71A75A2D6C8F878898E8E92ECEC1C29BD7FBF132D1FBFEAB8E464A937FFCBCABA2B8F1E3D6AD6513F73FC2B3171B48487874BE6ADDBADCA9B556EFC3268D020898F8B9381030748717189E4E5E5496D5D9DB7AAE44100021080000420008190268010695C7EC448D37F0771B1B1F2F3BFFC739BB173D7D712337CB8A4A44C33C79D86DABC03870ECBFE0307E53FFD877F923E7D22E4DCF90BF2C58E9D4D1DB8EEFEE33FFDA3B1E7E823E72F5C94CFBFDC614B162F5A28AB57ADB4F7FFF57FFC4F59B562854C183FCE1EA9729AAAD0F9F6BB7D72E5EA559B35664CA2FCF4C7EFD87B3D46A769BA1953CAB4A9F6FEEAB56BF2D1D64F64C890C1F2EFFFEE9736EFD88913B2E7DBBDF6DEFDCCFFF63FFF973CBF7AB58C37CF1C3470A02D7FF8F0A1F1B2754ABEDBBBCFCE73D5AA15327DDA347BFC4B2B68F9BDEC6CF974FBE772BFAC4CB39AA5512347CAAA95CB65FCB87156B83885E5E51572F6DC39D9BBFF8093C51502108000042000010840C0104088B87E0688910618BA03E0BCECA79897F1F1E3925D949A6E23221AEA39759B4A9AEEC21BEB689F4E0A0F6BEA7FF5AA5532EBA9994E91E7AAE2E7F58D1BE4830F3F961B376F8ABB8DA792B9719EEDF4EFAE171E1EE1A9EACE7F7EF50F64C6F4144F99DEA8F1FBD2C58BACF3021513A31346B52A1F9B94246FBFB959DE7BFF0379F0E081A73CDAB80AD6B10E1B36CC93E7DCA8305AB67489FD8A1871A87085000420000108400002089156BF01C44873242A426A6B6BEDF1B5BB77EF495575B5E4E6E635AFD4856F2A4274F7E3ECB9F372E74E96D9D118220B8DFB5DDD015171B162F9322B44EEDEBB27EFFDF14FF6493F7CEB0DB313D3C7E61F3E72CCE695579477781433A64FB7C7CB4E9F392BD5663E53A74C319FC976F763D992C5B69F82C24239658CDD8B8D67B5C99326C9B4A953C41EBB32C7C7264E182F172F5DB6F5346EC9A68DAF794488EECCA4A65D31B1694A655CF25859307F9E0C360129979A7E4B4A4BE5CCD9731D1E27152100010840000210804030136047249857B71BE6A676133BBEDA658F56754377ADBA28352FE71F7EB455F4C5DF49D7D2D3E56F7EFE57D65E243E2EDE66EB38326FDDB2F7758D36175555D59E3CA76D47AE05058566A7E523D163539A2E5D4E353B1D6FC8A48913ECF73273F44ACBD5C643D3B5F4EB52515121CF2E5B6ABF278C1AE51122F3E7CDF3EC9E5CB87849B67FFE85ADA3FFDCBE73C7BA18DEBC6993A860D1F82608110F1E6E20000108400002100871024DE765421C8433FD6953A7DA98227AE4476352ECDAB5CB63CCEED409A56B96D90551FB8E9E4A6957AF351321FA1C151D37326EDA47AA7D497C7C5CB73E3E352DCD23429C8E2F5EBAE4DC4A8689C6EE881027F3526AAA27F0657474B4932D6A60AFE9E1C347B26BF7379E7CE7E66646A6DDB9D1EFC3CDD12DDDC92141000210800004200001087034ABD96F0011D20C87FD926D0CB47B32DD3347AEBCA5B2B2A6A35603073418947BABF738795977EFB66A565ADAE4A5ABD0B53BE354CCCF2F90075555D6B8DDB14BD1B2D811236C95CA0795D678DEA9EFBE3AF5558424258D919B3733DCC5DC430002108000042000819024C09F671B971D11E2FDF7DFD2A5ADF75A8F9FEB161CEE5E7AF2B9BA7BD156EA6874F60863C332DC18D56B528F621AF1BDBDA4DEB51022ED51A21C02108000042000815020801031AB8C0809859F7ACFCCB1D193B0D4D43C94B2B2A65D155F4FABA9A9F155443E042000010840000210082902212F4410215DFFBD474434B9C975F7A6BB04BA6B10AC4903151615178BC65D2931DEB5FEF5DF7E1DAC53655E108000042000010840A0DB0904EF5B62075021423A00A98D2ACE5FF7D53DADB7946CDCD73AF611DECABB9AE7C40EE96A3F5D695F5050609B8F181163DDFB76A52FDA42000210800004200081502210D24224CA783FC23BD6E3FFDC0B8B8A6DE3D10909323432B25947EAAE76FEDCB9CDF2BAEB8BE3BEB7BBBD693DCEF872F3F26D331545EB5F5EDBAA0BDD11DABCE935F9875FFE42FEFE6FFF4654B090200001084000021080000442DC6BD6F1E3C725CCFC0AF4588D13C8901F45C709141616D8181A2A3A340EC751C353E38224186192326DAA248E1EDDF1CE3A51B3DCC4F4183060807587FBCABAB572C504112C324111353EC8934E274DD0C314E3F2594591063E540EEA1E383B27C7B069E03061FC783B2C8D10DF1B637CD24C781E042000010840000210E8088190B71139665E9E498F47E0D091A3923C76AC0C35B620FA22BE61FD2BCD3ACA33BB051A8D7CC810EF47B79A55EEC4970C139B63444CC3CEC29CD9B3443F1A04718B098CF8A4D383070F64EB279FCA3B3F7ADB7ACED2A0884E6044F758EEDFBF2FFBF61F7467710F010840000210800004429A40481FCD0AE9956F63F2CED127AD5267823AFA4AFAD7FDAD9F6CB77FFD77BBDB55F7B71A8D7CDBF6ED5257576B9BBB5DE2D6D5D779BA743FCB93696E9AD56F8CA4EE94EFDD7F40BE3F75CA78A96A8A35228DC374F75DEF6AE7CEF7F64C779EAF293B63AA778D5FC754687663B6190E19999966BE4D73D3B2CACA4AD188EBBFFACDEFE4AE8F98295A8F04010840000210800004428D40D8D2E52B7DBF691A1A9565A596C9A0C8A85063C37C3B41A05FDFBE3266CC18637323722F3BC7BE8077A2F9635555FB0B27CA79595999D43C7CF858FD7467A3C8C821C68B569C8DA09E979FD72A427B773E8BBE200001084020F408B7E0222D000040004944415438EF65FA872E1204029D40C81FCD0AF405F497F1AB08501B882799D47DAEEE46F853D25D9A663B35FE3438C602010840000210800004FC880047B3FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F082044FC6831180A042000010840000210800004428500422454569A79420002108000042000010840C08F08F4F1A3B184E450D66E7C53242CCCE7DC1F54544851618164A65F9592E2429FF5288000042000010840000210804020114088F4F66AB52142746803070F96D1E6939098246917CF4B467A5A6F8F98E7430002108000042000010840A0CB04425E882C5AB8504A4A4A24EDCA952EC3ECC90EC2C2C32465D66C098F08931B57527BF251BDD2F7AA15CB25222242B2EEDEF3FBB5E815403C140210800004200001080419819016220B8D0859BC78B1D4D7D7DB65F57731A2839C3A63961D6BB08991C58B165A2172FEC24584885D61FE81000420000108400002C14D20A48548A9D909511112668E47AD59B3C6AE74A08811479074F6E7B973DB96CE36A13E042000010840000210800004BA9D40480B114774A808093431D2EDBF043A840004200001084000021080C0132410D242443923469EE0AF8D47410002108000042000010840A09140C80B11E5801869FBBF8701030648D29844A9ABAB93DCBC3C292B2B6FBB81291D3264B08C8C8F973A73F42D3B3B471E3C78D06E1B2A4000021080000420000108840E018448E35A23465AFFE8E7CC9E256A443E7CD830090F6F8A7DA9C2E2E8F1E372E9726BEF5D2346C4C80BAB57CBF8F1E33C6DD40E2723F396ECDDB75F9E9A394316CC9F27353535F29FFFF95F5A3F941C084000021080000420008190208010712D3362A409C60BCFAD96679E5E606D679A721BEE468D1A291BD6BF227DFBF695B3E7CE7B8AFBF7EF271B37BC6A77423C99E646ED6FC68F4B969123DF90CCCC4CFBDD2D6CDC75B98700042000010840000210080D02089116EB8C1811898C1C22F3CDAE850A88FB6565B26FFF01B97A2D5D74B763EA94C9B2E89967EC6EC7B3CB96361322AFAC5BE71121854545929A76456EDFBE6D04C84899327992248E1E2D29D3A6B520CE5708400002108000042000815024801009C5556F67CED3A64C913E26B8A0A643878FC8B9F317ECFD9D3B59A29FF0B070494E1E6BF3A2A3A2A4A4B454C62625199131D5E6555656CA475BB7497E7E81FD7EFDC64DF9FEFB93F2EF7EF28E8C32A2840401084000021080000420000184488BDFC0B4A9536D4C11DD0D50DB865DBB76798CD95B540DDAAF7DCC912B278D494C9453A7CF385FED75F79E6F9B7DD72FA3472778F2F61F3CE411214E66CDC387B2FDF32FE4E77FF1E71EDB11A78C2B0420000108400002108040E8114088B8D61C11D200E3D6ADDB525B5B6B239DAB71F918E3314B8FACDDBC99696D3C6A8DF7AC96292E36D69375F36686E7DE7DA33B24A566F76498317E2741000210800004200001088436018448E3FA23429AFE43B87BEF9EEC3B7050962C5E24038DEBDE61D1D1B278E142FBA9AEAE96ABE9E972F8C8D166BB1E2362626C07EAA657ED437CA5A2E26284882F38E44300021080000420008110228010318B8D0869FD8B3F72F4985CB87851962E592C93264C90682346F4B85AFFFEFDE5A9193324C51C613B76E27BEB92D7B60E6BE8A3BE7557CD72CC69371204200001084000021080000424E4850822C4F77F051AB870D7D7DFC82E5365F8F0613269E244996944C8E88451D2A74F1F5962628CA4A75F973B595952585864F21364D0C081B66E5151B1D78EB51F120420000108400002108000049AA2D485200B4448C7175D85C509E3F9EA37BF7BD7E3454B6381A8FD88A6BCFC7C4F67E392933DF7EE9B98E1C345BD6C9120000108400002108000042010D23B22518DC78D42D53B96AF9FFFC60DEBAD9BDD478F1EC9871F6FB3EE79DD75D55DAF93D455AFA67BF7B29D2C59B9FC595183F782C2424F9EEEA06C78753D1EB33C44B881000420000108400002A14D20A485C8F1E3C7454D1B4A4A4A42CE456F5B3FFBFC824299317DBAADF2C6EB9B64EFFEFD929179CB1EBB9A3E3DC5465CD7C2AAAA2AB97439D5D6CB3011D335E8A1062E1C3C78B0BCB17993A4A6A6C9ADC6808653274FB647BA6C65FE8100042000010840000210087902212D4474F58F1931426A4E40E386CC34424423A98F1C192F6FBFF986D41997BD7A14CB498F8C7BDF23478F8BEE9A38E9B32FBE949F9AA085EACA57BD6869E47577528F5B0546E4B8638EB8CBB98700042000010840000210081D024D6F96A1336766DA0E013D6EF59B77DF953367CF8973F4CA11210F4D60C2ECEC1CF9E8E3AD72F8E8D1663DE90EC9A7DB3F979B19193618A4BB508F6E6DFBF433B95F76DF9DEDB9D7E3719AEAEA5BC728F154E20602108000042000010840206808842D5DBEB24D87AA95650DF600832231320E9A55EFE444D4756F5C5CAC543DA892DB77EE74A875D4D0A1121F1F670489487E41813DFEA60D376F7ACDBA4B5641F3FFFCBFFFDCA1BEA80401084000021080400301E7BDCCF943215C2010C80442FE6856202FDE931ABBDAD0E8A733A9F4FE7DD10F09021080000420000108400002DE087034CB1B15F220000108400002108000042000811E258010E951BC740E010840000210800004200001087823C0D12C6F54C8EB3102B7EF6459BB91478F1EF6D833E81802108000042000010840C0FF092044FC7F8D826A84C74F7C2FFA2141000210800004200001088436018E6685F6FA337B084000021080000420000108F40A018448AF60E7A1108000042000010840000210086D020891D05E7F660F0108400002108000042000815E218010E915EC3C14021080000420000108400002A14D002112DAEBCFEC210001084000021080000420D02B041022BD829D8742000210800004200001084020B4092044427BFD993D0420000108400002108000047A850042A457B0F350084000021080000420000108843601844868AF3FB387000420000108400002108040AF104088F40A761E0A010840000210800004200081D026801009EDF567F6108000042000010840000210E8150208915EC1CE4321000108400002108000042010DA04FA84F6F47B7FF66B37BE291216E673200F2A2AA4A8B04032D3AF4A4971A1CF7A1440000210800004200001084020900820447A7BB5DA10213AB4818307CB68F349484C92B48BE725233DADB747CCF3210001084000021080000420D06502212F44162D5C282525259276E54A9761F6640761E16192326BB6844784C98D2BA93DF9A890EB3B367684CC7EEA293BEF4BA9A9929D9D13720C983004200001084000021078D204425A882C342264F1E2C5525F5F6FB9FBBB18D1414E9D31CB8E1531623174CB3F71B1B1B278D142DB5761511142A45BA8D209042000010840000210689B40480B9152B313A22224CC1C8F5AB3668D25152862C411246D2F6FEBD29DDBB6B4CEF492A32FE74B162FB225E7CE5F908CCC4C2FB5C8F24560DD4B6BA46FDFBE72272B4B4E9D3EE3AB1AF910800004200001084020640984B4107144878A904013233DFD8B8D8E8E92A766CEB08FB9979D8D10E924F09933A64BBF7EFD2422220221D2497654870004200001084020340884B410D125468C84C60F9D594200021080000420000108F81781901722BA1C8891AEFF28A3A3A32576C408090F0F97828202515B8B8EA6FEFDFB49F2D864B95F76DFAB7DC69021C67358C26829AF2897BB77EF75B45B893063193D7AB4F4EFDF5F8A4B8ACDB81EDFFDB1F615171F27C3CC3C8B8A8A252737B7C3E368AFE2A04183243E2E4E060E1C20C5C52592979727B57575ED35A31C0210800004200001080434018448E3F221461A402C7F76992C5FB6D41E55737ED92F3EFF9CBCF0DC6AFBF5BB7DFBE5C8D1634E914C4F99666D49468D1CE9C9D39BFCFC023972EC989CBF70B159FEE64D1B65EA94C9926FC4CAD66D9FCACBEB5E126DABF6149ACACACA449FA1EDC68C4994D52B57DAAB1E9DD3F4E0C103B97A2D5D3EFF7287FDEEFCE3EEF7F77F785F562C5F663D61E9F12827A9403A74E4A85CB878C9C96AF73A7CF830C363991DB3BBAF0755555630ECF86A9747E0E8787FFAE3776C9FCE78954FCAB4A936EFEAB56BF2D1D64F3CCFD479AF5AB95CC68F1B67059C53505E5E2167CF9D93BDFB0F38595C21000108400002108040D0114088B896143122F685D8798976A1F108937057DC93491327C8FA97D7794484BBBEBAC45583EDEAEA6AB972F59AA748774CB4FF3E7DFAC8C60DAFCAC891F19E32BD898C8C9457D6ADB5759EFBC12AD1DD02771A3870A0CC9EF5942DFFEC8B2F3D454EBFBA73F1FAC60D322E39D953E6DC8C303B363AA68A8A4AB971F3A693EDF3EA8C3161D4A85675060E1820639392E49D1FBE2DDB3ED96E8DD2C3C31AE6D6B2B2C353C7E8A4E8A8283BCE61C38639599EABEE002D5BBAC47E478C78B07003010840000210804090114088B458D0501723A78D87A78C8C4C19698E21BD607642341D39765CAE5FBF61EF0B8B1A8E37E95FF3D7BFF2B2152175E618917A86BA7E435FEEEB65E28409327FDE5C2B3654549495992355F79A1FA91ADEF8029E76E5AA5C36B13B069BA08DBA73A02FF7FAC2AE0247D3CD9B1972FEE245EBDD6CEA94293279F224E9630CC0674C4F915DBB771BA15363EB39FFC4C4C4887E7467E5726A9ADC3473D15D0D154D13C68FB7E35DFFF25AF9FD1FDFB747AC9C76DEAE2FAD79411C119275F7AEDDA5C9CDCD93C4C4D13279D224739C2C49861AE1B4F099055688E81CDFFBE39F6C573F7CEB0D3B7F153C878F34EC20E9D1324D7A146DD3C6D7C41121BA53929A76C5C4B32935026AAC2C983FCFF258BA64B1949496CA99B3E76C3BFE81000420000108400002C1440021124CABD90D73B96F5EE0F5D3AF5FC35129ED525FEA336FDD6AD6FBF26797CA60B35BA1EE8F77EFF956BE3F79CA539E6E444BE9FDFBA23B1ABA83A12FD677BF682E44B4B28ABE8FCDF12C27A908FABB5FFE4222870CB159FACC0F3EFCC8632F71F1D265F9D1DB6F194131CE7AA352BB127D896F996A6A6A64DBA79FC9ED3B773C4527BE3F292A0E5424E9AECB621343468F55B59506F41F600454B6113B55B2FDF32F448F4C695297BC67CF9D975FFEE2AF4577469C63698F1E3DF2705271A6A9AAAADA936733CC3FF3E7CD33362F0DBB2C7A4C4CFB76928E59FBDFBC6993152CCF3CBD0021E2C0E10A01084000021080405011683A2B1254D37AFCC94C9B3AD5C614D1E334FA92BD6BD72E8F31FBE3F71A7C2DF59893268D42EE1621CE4C8F9A5D946213A745D38811314E76B3AB8A03775203ED6BC6FEC349972EA77A44889377FD46C3CE8C7EF7D5AF3EDB2D429CB69F7DB1C308832AFB550DEBDB4B1F6FFB447EF3BB77E58F7FDAE211214E1BEDE786DD011251437D3DC6D5D13432BEE138DAC3878FCCAECE37AD9AE92E8E73744C778E3AD377ABCEC8800004200001084000027E4AA0E36F4F7E3A81EE1C1622A46334759743BD4769D2DD877973E7786DA8659A62860F6F55AE47AA6EDD6EDAB1702A945734EC3AE8F79C9CD69EA9DC796112E6346B76BDE923F86285E9BBA8B8D81EB7D2E35A9D49919143CC71B591D6B395EE82F4379FA14387DA2E54B44644848BD910E950724450E5834A6BECEFAD916357A2222429698C3DA2E6AD1E7910800004200001084020500920441A570E11D2F19F70F2D8B11E2F4FC9C6A6413F6DA501E6A53DDED89CA87D85936AEB6A9D5B9FD7BAFA86E34D3E2B782978F8F0A1DCB993E5A5A421ABB851880C31C7BF7427A3A471D7C65B03357C5FB8F01999337B96E8CE84230EBCD5ED689EF639BC5198451921A3C6F3ED253DFAA5B63224084000021080000420104C041022663511219DFB49BB5FC82B2B2BAD4BDDF67AF0B57BD15EBB9E2C371B196DA60DAFBE62762C523C75D4EE433D6ED5D4549BCF4351EF566A6FD2D9E43C57FB2833B153DA4BCECE527BF52887000420000108400002814420E4850822A4F33FD75BB76F5BFB191524D7D2AFB78AE9D1F91EBBAF85C623D1781EBE76451C4F55E5E5E53678A0AF27278D19E311212AB6BEF9F63B49339EAD6ACC8E8B935E5EFB92CC9D33DBF9DAA1ABDAC1E8F1B0B8D858BB1BF3AFFFF6EB0EB5A312042000010840000210083602216DAC8E08E9D8CF39C2B8CB7527B5B55057B39A1C8F51EEF2DEBE1F9F9CEC7508EA22D8711BACD1D1DB4AE3C7257B8A2F186F5D1A60D12D42B470D4A8919E3ABE6EDCB1439C3A1A5851931ADBB78C93E2D4E10A010840000210800004829D40480B91286323A07FD5C73B56EB9FF9A3DA261B0E279686BB564161433C11B5FD78B631F89EBB7CD8B068F9CB3FFB99FC8371C7FB673FFD89BBA8C7EF172F5A6877455A3E486393A8BD8A268DECDE5672BC6B699D7E8D51DFDDF567CE982EF17171EEAC66F78EFB5EE5D332E5E6E5DBAC8678296B5B168BDA916CDEF49A65F7F77FFB373EBD83B56A4806042000010840000210082002217D34EBF8F1E3D6EF921A2C3B810C0368ED7A74A8F9F90D2FCBFA90F1266EC7EA552B4D70C00CC933F91A4FE3D0E12336B09F7A905AFEEC326B2BA1010D35689F1E6B9A6B0CBC1D17BF67CF5FE8D1B1B6ECBC5F3F1330D0446DD7808619C683967AF89A3471A24C34410D35699C9423C71A820CB66CEB7CBF62DC083FFFDC6A2B543578A2EE025D4D4F9741C663D8781318718109D8E86DB7C369AFDEBF54F4E80E8C0675BC62E29D141515494141A19C3C755A528C9B6815291A18F1ED37DF30010DD3243B27C7C41749B0811D35F8A22675E3AB6D4810800004200001084020D80884B410D1C53C66C408A935818668E8D936F09E8A8D258B17D9CFDE7DFBE5D091A336E8DE973B76CA6BAFAEB7712E3492BA7E5A26B5D5386CEA3FA9A43B191ABF448F8C2D321EAFF4E34EEA55EBF32F77B4691FA2F5559C6AB4F3E929D34C70C77EB2CCECFAE8C749BA8B9699794B7C790CD3E8F4234C84774DEA754B3FD78C90D9F2D1566BDCBFF5934FE59D1FBD2DEA394BA3BEEBA765BA6F8242EEDB7FB06536DF21000108400002108040501008E9A35941B1823D38899D26F2B8EE2AB8BD36D5BB9E9776E5AA8D4E9ED778D4C829D297747D89DE7FE0A0FCEEBD3F98F81A4D0136EA1B5DF26A1D6FA9BE3122B996D5D7B5AEE31C79D2726FEE7DEB4CBFFA92AFE376D7D5FA7A9C4CA3A9DFBC99A15F3DA9CEF51C779B6D9F6E97E3DF9F14355677271529B69FC678253A979663DDBBFF807C7FEA94F18A55DED4D4359D42B33BB2ED93ED76C7C6FD4CADACCFD388EBBFFACDEF4C64F7D611E99B3AE40E021080000420000108042E81B0A5CB57BA5E8F5A4FA4B2ACC12879506454EB4272428240FFFEFD440DBDC3C3C2EDCBBCB7496BD0C218637C5D575B27F7B2B35BBDBC7B6BD39D796F6E7E5DA64C9E24950F1EC83FFFCB7FB35DEBD1A8046350AE3B1AC5C525929BD714C7A4B3CFD66354C3A28799DD96E266F150DAEB47ED3D345E89A6327324ACA5C1BBE66BB0C4B8D838BBB394979FD7EE6E8DB621410002108040681270DECB5AFE912C346930EB402710F247B3027D019FC4F8350ABA7EDA4AFA177EFDF853D2635A37CD11A9EE481A8CD11D90B1A37DAABBDEF6B8E8AE49B39D938E764E3D08400002108000042010C004389A15C08BC7D021000108400002108000042010A804102281BA728C1B021080000420000108400002014C80A35901BC780CBD8980467BAF35B14FAAABAB9B32B98300042000010840000210F05B020811BF5D1A06D61902C78E9FE84C75EA4200021080000420000108F432018E66F5F202F078084000021080000420000108842201844828AE3A73860004200001084000021080402F134088F4F202F078084000021080000420000108842201844828AE3A73860004200001084000021080402F134088F4F202F078084000021080000420000108842201844828AE3A73860004200001084000021080402F134088F4F202F078084000021080000420000108842201844828AE3A73860004200001084000021080402F134088F4F202F078084000021080000420000108842201844828AE3A73860004200001084000021080402F13E8D3CBCFE7F19D2030296586A4A75EB22DD66E7AAB432D776EDBD2A17A54820004200001084000021080C09324C08EC893A4DD8567A908999C32B30B3DD014021080000420000108400002FE430021E23F6BE1732488109F6828800004200001084000021008500208113F5F3844889F2F10C38300042000010840000210782C02D8883C16B627D3289844487C7C9C2C59B4486A6B6BE5E0E1C3525C5CF26420FAD953C68C49944913264854D450A9AF173977FE8264DEBAE567A36438108000042000010840A0E70920447A9EF1633D219844880258BE6C994C9B3AC5B278F4E891ECDCF5F5637109E446CB9F5D26CB962C96888808CF3472727311221E1ADC4000021080000420104A0410227EB8DAC126421A109B3FFF87708A8B8D95A58B177944485959B9E4E5E749517171085361EA108000042000010884320184889FAD7E708A109103070FCB43B31352FBA8568E1C3BEE67D47B7E3863C726499F3E0DFFB9E971ACCFBFDCD1F30FE509108000042000010840C08F092044FC6C71344E88132BC4CF86D6A5E1E4E6E5C9F6CFBEE8521F81DC382A2ACA33FCCBA9699E7B6E20000108400002108040A812408884EACA77D3BC8746464A5C5CAC848787CB9DACBBF2E0C1832EF73C60C000491E3BD61AB6A75FBFDEA1FE060E1C287AFC69D0A04172F7EE5DB95F56D6A1765143874A6CEC08E9DBB7AF3D2655905F20B575751D6AAB95FAF7EF67C69A2C950F2AE5DEDD7B3EDB86878579FA2C282CF4DC730301084000021080000442950042C4CF56BEA311D37B7BD873E7CC96A717CC97F8B838CF50EACC0B7C4969A99CBF70510E1E3AECC9D79B7973E7C8DA352FDABC2D1F6D1547606CDEB451A64E992CF90505F29531605FFD835532323EDE1E63AAA8AC94FFF25FFF7BB37E5A7ED1E7AF5AB942268C1FE7B1BFA837EEA84ACD38326FDD965D5FEF969A870F5B3693946953AD17AF848451CDCACACBCBE5E2A5CBF2CDB7DF35CBD72F7FF78BBF36DEAEA2E4C2C54B72E972AAAC5CF1AC153FCE912B35C2BF78F9B2ECF976AF4790FDF427EFC898C44409730911ED47C7A8C9CDC266F00F04200001084000021008110208911059E8EE9CE6EC594FC9BA97D6347BB9D6FE755764F8B061B272F9B312193944767ED5E4192BC294392FE311114DE16BB48DE60F363B199B5E7B4D860C19DCE1A1EA6EC6EB9B5E9398E1C39BB5D1FEA2A3A365B6F9A850D9B67DBB14153519854F9A38515E7DE565BB0BD2ACA1F93264C81059B4F019E9DBAF6FB3F16B3D67AC91A6CEABEB5FB66376B757413267D62CD171FDF14F5B6C91D3C65D4FEF1D165A4E82000420000108400002A1480021E2E7ABBE67FBC79D1AE1731B3677AA7E672B6B3C90179E5B6D5FA41F999820274E7C2FB76EDF91B0F0301B1F2325659A0C32C7A4E6CF9D6BCA4E4A478F210D1EDC2040F2CDD1A8F41BD7253737AFCDA1E991A8D7CD6E8A2342B2CC71ACAB57D325372F579293C7CA642336468C1821A3468D94E7CC2ECB475B3FB1FD258E1E6D45841EC5D25D89D4B434B9999129E51515322E3959A69BF1ABD0D0F1579457C8FE83875A8D63BCD97DD1B66A747EE3C64D292B2F93F1E3C7CBC2A71748BF7EFD64FCB87176C72535ED8AECD8B94BF4D8988AB7594FCDB47DE958AAAAAAEC7D764E76ABFEC980000420000108400002A1400021120AABDC8D731C111323858DBB0B975353E5D8F1139EDEAF5D4B37C7A06A64F1C285366FE284F11D1622DAE0B611345B3EDEEA7949F774ECE566C1BCF932BAF15855764E8EFCF1FD0F3C47B0D2AFDF90E34620FDC5CF7E667766268C370104CD2E45E9FDFB368E870A254D274F9F3647B7BEF1F4AEE34F4F4F973737BF6E774B961877BB878F1E133D72D532A9E7AFEFF6EEF364AB18ABA9A991D5AB56DABCA4A4242372AE1861D420A8264F9AE8A9ABB1434A4A4233A0A30702371080000420000108843C0184889FFF047A7A87A3B3D3578F4F6D797D3A75FA8C2C7AE619BB6312E7B21FE9C8730E1D39D22111A27D8D1CD9609BA27629DB3FFFC223429CE7689C8E5DBB77CBA44601A047AE5488E82E89A68282C26622C469A7BB232A50544CE951AB64E376F7BAD9F570A79A9A87B27FFF017796BD3FF1FD4959B562B93DC2156D22A79320000108400002108000047C134088F86643490708E851A7A14323453D5DD94FFFFE9E569DB17FD0DD84962FFC9E8EBCDCC48E88B5B9F78DB8D0E35CDE52DA95ABA21F27A947ADE8E80637BA79F9F94E76AB6B56D63D4F5E424242AB71151AAF57DE3C6BE9CE897A0DD363667AF48B0401084000021080000420E09B0042C4371BBF28F1371B118592306A942C7F76A9248D1963C5477780527B938E26DDA9183E7C98AD5E54DCF1234E63CD7129471CA998F095B2EE66798ADC5EC19CCC0755BE5D14D776621E4E7F5C210001084000021080402812408884E2AA7761CE6393C6C85B6F6C36F1339A763ED4F0BAAAAADADA4854D7545B77B55D7844BB4DEBCD712CC7FDAD3B3E477B0D5D1E74DBAB4A3904200001084000021080400F134088F430E0AE76EF6F3622CB962EF18810F538A55EA5DC47A3FA992349FFE11FFF4FCFCE4357E7EFADBD1E8B2A2C2AB2F1468635EE8C78ABD7324FE38AA84D89EE8AC4C43477F9EBAE9B383AD1F335AFD1D8DC93C10D0420000108400002108040B7104088740BC6D0E944830D6AAAAEAE969DBB764BA5093AE84E534C7042E7F8933BBFBBEF55FCE85834B2BB5ED51355CB34C1B8D4D540879A34086183B7AA527BAC4BA3B0FB4A89A3133C4577EF35D98B7832B98100042000010840000210E8320184489711F66C07EDD988F4D48E8906249C3B678E68A4F173E7CE7B8CB3D5A85C8DB1C3C2C245773FDC32448DD5E7CF9BDBED40D4F5ADBAC3BD78E99227BE888A8A9933A65BEF5C1A5CF0DDF7FE60C4518DE7D93AC697D7AEB191D0D5FEE4D49933B6ACC0447057FB12F59EF5E20BCFCBD7BB9BDCF76A058D25B260FE3C5B578DCF7517850401084000021080000420D0FD041022DDCF34287A7CEDD5F5C675ED583B9748B3EBB0FFC0417B9F75F79E0C33D1D3FB99C8E3EB5F596783FAE5E4E4CA98318946B8CC9651234776EBFC351689DAA4689A6D0202FEF7FFF5FFD9B81EA74E9D966953A7887AED5283F2777EF8B6F590A53145C698BCC993275911A2ED328C4B5E27B2FAA1234725D18C5563893C6D04875E6F6664D89D1D9DEF8CE9D33D1EAF8EF88821A27D922000010840000210800004BA460021D2357E3DDEBAA7763CDA1B78ACEBE8D2A8C6E358DAE6DCF9F33271E2041968763FF4C5DD112B4E7F1A113DD2B8F37582063AF98F7B4D4C6CB2D7D05D8ED8D811929D9D63E3867CBCED13F9C98F7E68EC3D624C70C304FB69F91CDD01D9BB6FBF275B23B07FF6F997F2FAC60D5670E8AE8A7E5AA6D367CE7A8DAADEB21EDF21000108400002108000041E8F40F8E335A355B013387FFE82A82B5A8D8B71EEC245CF7435E0DF075B3E12DD0571BBAA552370355EFF68DB36A97DD4E08AB7AEBECED3AEAEBEBEE9DED475527D631DC70B9693EF5CCF5FB860A29097DAAF1A315D4588933468E1D64FB64BFAF5EBCDC6A2E565656526F062AAFCEEBD3FB6B21FD1FA9F7FB9A3595F4E9F151515365AFC8EAF7639599EAB3346E7EA2970DD3865CED529727F57AF5F2408400002108000042010EA04C2962E5FD9F486E885466559C34BE0A0C88640705EAA90D58D04D66E7AAB1B7B13D9B96DCB63F7A73B102A36D43DAFB7A436218E61F73D23105A1AAE7B6BF3B879D151515252DAF05BF4D687062BD4235AFDFBF733C223CF88978EC517898E8E9658632F1211116E23AFE799B6DE82157A7B267910800004200081274DC0792FEBC9FF9FFBA4E7C4F342970047B34277EDDB9DB9EE0EB49554A074261A7A5B7DB557D69608D1B6FA7F90333233DBEBA655B90A968E8A96568DC98000042000010840000210786C021CCD7A6C743484000420000108400002108000041E970042E471C9D10E02108000042000010840000210786C021CCD7A6C743DD3B02B361D3D33227A85000420000108400002108040F7136047A4FB99D22304200001084000021080000420D00E0184483B80288600042000010840000210800004BA9F0042A4FB99D22304200001084000021080000420D00E0184483B80288600042000010840000210800004BA9F0042A4FB99D22304200001084000021080000420D00E0184483B80288600042000010840000210800004BA9F0042A4FB99D22304200001084000021080000420D00E0184483B80288600042000010840000210800004BA9F0042A4FB99D22304200001084000021080000420D00E0184483B80288600042000010840000210800004BA9F0042A4FB99D22304200001084000021080000420D00E813EED9453EC470426A5CC90F4D44B76446B37BDD5A191EDDCB6A543F5A8040108400002108000042000812749801D912749BB0BCF521132396566177AA029042000010840000210800004FC870042C47FD6C2E74810213ED150000108400002108000042010A00410227EBE7088103F5F20860701084000021080000420F05804B011792C6C4FA651B08990299327CBDC39B325372F4FF6EEDBDF6188FDFBF79395CB974B5454949C38795232336F75B82D152100010840000210800004FC930042C43FD745824D8428E6175F784EA28D98983C69A2E4193172E9726A87E8CF9B3B579E797A81AD3B7468A4FCFAB7EF76A81D952000010840000210800004FC970042C40FD726184588C55C5FEF93F6BA97D648DFBE7DE54E56969C3A7DA659BDFA36DA35ABC817084000021080000420008180218010F1B3A50A5A116238EFFA668FCC9D3DDBEB6EC8CC19D3A55FBF7E121111D14A889C397B56860E1D2A516637E4FB53A7FD6CC5180E04200001084000021080C0E31040883C0EB51E6CA371429C58213DF8985EE9FADAB574D14F675375758DEC3622860401084000021080000420103C041022C1B3964F7C266A443E323E5E060D1A6C77390A8B8A9EF818DC0F8C193E5C626347485575B5DCBB7B4F6A1E3E741777E85EE7131D1D25D9D939527AFF7E87DAE833F5D9B5B57552505820C5C5251D6AE7541A356AA4C40C1B2ED93939D292E1A04183243E2E4E060E1C60FB55DB9ADABA3AA7295708400002108000042010B00410227EB6741D8D98DE9BC3EED3A78FBCB4E605993E6D9A3D4EE58C455FC08F1C3B26656565F2E6E6D76DF6968F3E96F4EB37ECFD86F52FCBCC1933A4A6A646FEF33FFF8B8C1993283FFDF13BB62C2C2CCC5EA7A74C93946953EDFDD56BD7E4A3AD9FC8902183E5DFFFDD2F6DDEB1132764CFB77BEDBDF3CFB4A95364F9B2A5126F4484936A6B6BE5CAD56BB26FFF017979DD4B9234668CDCBE73477EFF87F76D95C58B16CAEA552BEDFD7FFD1FFF5356AD582113C68FB347C09C3E54147CFBDD3ED3CF5527ABD975D992C5D60B58747474B3FCBCFC7CF9FEE429397DE66CB3FCB8D858F9F95FFEB9CDDBB9EB6B2B5E52CC7CA3CCB1334D070E1D96FD070EDAFB512347CAAA95CB65FCB871121EDEE465BBBCBC42CE9E3B277BCDBC4810800004200001084020900920440279F57A69ECEB5F5E2733A6A7B47AFAB061D1A246E7172E5D12475884874778EAE90BB5E63B2FD6E1610DDF3D151A6F9ADA36BC80BBEBB9FBD3EA2A66743CFDFBF76FD68DDA9AA8A8193932DE0A1FFB5CF33C27B9FB5CBD6A95CC7AAA75D47ADDE5787DE306F9E0C38FE5C6CD9B4E537B55E1B362F9B3CDF29C2F2A385E7AF105B343522BE7CE5F70B2EDBC9DB9A51811377E5CB2A7CC7DA39EC5F4B9C3860D7367DB7B1565CB962EB1F788915678C8800004200001084020800820440268B1FC61A8CB9F5DE61121950F1EC865E382F7664686399E35C8FEF55E77339E32BB1E1D4977EFDD93F7FEF8275BF5876FBD21BAD3A22FFC878F1CB379E515E56D76A33B09AFAD7FC52342326FDD926BE9D725DFEC488C1D3B5652A64EB5BB0E6D76620A5584E8EEC7D973E7E5CE9D2CB3033344161A77C12A725434AD58BEAC99109937778E3C6B8488A6AAAA2AEB86382333D38E7F5C72B2CC3086F77D8C10523152595969C7642BBBFE5111A24225EDCA15B96B8E91E971B2DCDC3C33977EB269E36B1E11A2BB42A96957A4A4A454C6258F9505F3E7C9E0C18365A9D98D29292D953367CFB97AE516021080000420000108040E018448E0AC955F8C545FD035E94BF48E9D5F9917E9A6634BFA52FCC273AB65E1334F7768AC8F1E3D12150F9AEA1AED1EAAAAAA3D79ED75A22FE5CEB1A85BB76F7B448DB6BB7EE3A69C37BB113F79E7875658B4D557A979A1FFF0A3ADC6BEA3D053ED5A7ABAFCCDCFFFCADA8BC4C7351DF9D20A2A4254A0E898BFFA7AB75CBC74D9D3EEC2C54B56D4FC60E50AEB8E58EBAA386A9974EE3BBEDA25E72F5C6C56B464F122199D30CAE6695FDB3FFFC253AE47CBD4BDF1E64D9BAC60D1D82A08110F1E6E20000108400002100830020891005B306FC32DCCCB95BB776E49517EAE549BBFD0D7D7D719E3E621326CC4086FD51F3B6F7442820C1830C0B6D7976FB708713ADDBDE75BFB977BB7BD8653D6DDD7B8B858DBE523238AB67FD6F4C2EE3C4785C5B77BF7C9ABAFBCEC6479BDA6195B12B708D14A2A146E64DC947973E61841D1C7D89FC4D91D0B3D7E363432D2F6733935AD9908713A3F7CE4A84C9C305EC62625F9DC91C932BB202D4588B65763794D0F1F3E925DBBBFB1F7EE7F6E6664DADD19DD791A6E8E6EE92E928E9504010840000210800004028D004224D056CC35DE8AF272B970FA84112079AEDC86DBF2F2FBA29FEE4C8989A33DDDDDCBCEF6DCB7BCC931478C9E8410898989B18F2E2D29F1E9E14A77463420A2639BD172ACFAFD9E3922E62D9595351D0D1B3860A0ADA2E2C2496D31D063565A5785DBE8D109F6F895D34EAFD93EF8C5368AC7CA0795D6C6C5DDC6B977E6A2222429698CDCBC99E11471850004200001084000020143002112304BD57CA045C60EE2D4B103F2B0E6A1F4372FC9D366CE96C464F5FAD4E0C1E9FEFD12C9CACC90B48BE7CC2EC983E68D1FF39B1A613B292727D7B96D752D28683AE2D4AAB09B32FA9928EC6AD4ADA9D808115FA9A2A2C27AF1D28088BE925B70B8EB78DB69506F564ECAC9F5CD20BFA0C0A9266312135B09116F7D4798E35EC38D81BC26B57F51C3FFF6928E0721D21E25CA2100010840000210F0470208117F5C9576C6A43B218E08491A375196AC7C4EFA9AA8E4EE343C2656F4A302E5C8BE3D723BA3B59D82BB7E47EEABAAAB3CD534AE85AFD47F40730F56BEEA75255F6384E8F12535EED688EC6DA5F6CADB6ADBAA2CAC554EB766347A31369EBE1E1A01D5FE8E96BA4226410002108000042000814024801009C055D3E358BA13A22264F9F32FD9634759B73224F5FC19293076221111E1322C264E662F58287123136C9D03DF7CD56531E2DE05515B066F46D88AD3395ED4D3688B8CA72B0D06E8CDCDADF36C1DA763D7E2E475E5AA810E9DA47D67663618DB3B79CED5CD202BEBAE93DDE65503151615178BEE3C95985D9E7FFDB75FB7599F4208400002108000042010C8049A022B04F22C4268EC05B939D62664C0C081762744ED05CE9E382A7B777D2139F7B2E491D929A8369EA72ACC5FD3070F6930AAD63ABA6BA26DBA926EDDBA6DED2DB48FC99326891E256A99468C883147919A6C495A96B7F7DD8931D25E3D2DCF3751CC35451A77BB33525AC735D1B2B97366EBA5DB927AE772928A205F498DDB35551BB7BC59773B2644B47E41E3912EE5A82E9149108000042000010840205809B47E930CD69906C9BCB2B31A5E84A7CE986D8F63DD313B2117CF9E6C36BBC8A151F2FC2B1BAD10A9282F93BC9C7BB6AEB6E9688A8C1C221A334463663882E3BE8998EED87FA801F61A135DDD9D74E761E386571FEB05DA71DFEBBCC0BBFBF5757FFBF61D4F918EA5655B1DFBFC79733D75BAE346A3C72B074D2A7EBC05765417BC8E517B4B6F5CED8D21372FDF565141B6FEE5B5ADAAEB5A6CDEF49AFCC32F7F217FFFB77F232A584810800004200001084020100970342BC0564D8DD435A961BAA634731CCB9D5A8A906FBEF844861861F2DCBA0DB6CDB993C7DCD57DDEBFF6EA7A4936410135451A77B5FB0F1CB4F75F9AD8211A7C502399AB6BDBC91327498ED9A5E96B8CC713468DB2F61A6AB7D059BB8C726354AE42465DD2BEB26EAD5C3181FCF4E895237CECC35BFC73FACC59FBC23FD304101C64767BFEE2673F3563C9B3B61571B171C6F07B98DDC151C370F530D55DE9D0E1233658A18A8597D6BC2849638CE72AE35657DDFC6A40431D8FA6876677EAE0A1C39D7AECC953A76D20461555BAEBF4F69B6F98808669929D9363E28B2488BAED9D307EBCED53833FB6C5A7530FA63204200001084000021078C204BAEFEDEC090F3C541F57555D69A71E19D9E031AAB0A0C975AF37115276BFD4183E3718993B6D3AC22ED6E5216B54636C0B6DA701F53488DFFA97D7D9A07EBA73121939D1D3655151B1898F714156AE58EEC9EBC84D8679911FD1E88E77CEEC59A21F0D2AB8C5041A6C2B7DB163A70C8B8E16752D1C61A2993704036C0808A8BB2C878F1EB36E70631ABD51B5D55747CB4E9D3E63A39BAF303B46038D78D2C08AFA71277DB6C601F16547E3AEEBBE7F60A2D56FFDE45379E7476F5BCF5993264E10FDB44CF7EFDF977DFB1BC461CB32BE4300021080000420008140208010098455728DB1AEAEDEF54D8C1808B3DF7D89102D6CD9A659073EBE6854728DDCADBB1BE72E5C6C56CB891EBE60DE3C8989196E7747CACC71A53BC628FBA879F19F6D4484B75467E27968D2B81E2DD3DEFD07A4DEFC6FDA94A946D80C69286EAC566702343AA9DEBCE0BB93EE76BCF7FE9FAC109868760A8698B68F8C37ADE292623979EA8CA84D8737FB11779FCEB13077BF7AEF1E67CB3A070E1EB291D5D506C57123ECB4573B8FE3DF9F94B3E7CE3B59F6EAEEC361D1AC42E39742B313B4ED93EDB26AE572BBE3E3B69BA9ACACB451E33570A4DE9320000108400002108040A012085BBA7C65EBB742D76C2ACB4AEDB7418D7F81771571DB0304D66E7AABCD5EF77DBD432A8DDDC7BAD7DFB6EE79F7ECD82EE566D7C36D13A2C7B17427C4492313126D795161BEECD8FA8193DDEE75F0E0C1526BA296579968ED9D49CFAFFE812C5AF88C6DF2EBDFBE2B6D05FE6BD9AFDA40449B1D0E4D2A6ED44D6F57D3FFFD8FFF9775F3ABBB135B3EFAB8ABDDB56A1F1F172751D1511266FE5768A2B977D62EA45587AE0C15657ACC4C8F96E599C0956AA342820004200081D025E0BC97F1C7A8D0FD0D04D3CCD91109B0D5D4D8202A443458A1DECF9AFF8C354A570F596A98DE5284E8F4A6CD6A30D8D6369D491A0CB065FA773FFE910C3102A5BABA46B67EBADDBA9975D7513B8FC9931A8E6A959696764A84683FEAC25677043A92D4187DD1334FDBAA9752D33C762CEEB60B4DB9C61AD1E4F678E5AED3D5FBDCBC3CD14F4F240DB6E82BE0624F3C8F3E210001084000021080C0932280107952A4BBE939A393C64AD6AD9B72E5D2391BAC50E38468F2254266CE592063C68E3371476A6C9BAE0E436D401C8F509B37BE2667CF9F97CC5BB7ACCBE0E4E4B146183C638E6B357872EA8CDBDAC719D78D9B19F2C273ABADA1FCB2258BADB1B8BA18BE7D27CB1ABDCF9A3553E6CC6AF014A6C7ACAE5EBDF6388FA10D04200001084000021080400F104088F400D49EEC72445CBC0956182BC5E69895464C77021AAA10191C39D41AA6D7D6D6C988D87849313B21894684E84BB8D6AD3286D05D4DC74E9CB09EA1A2CD51248DA3E12B96C6ED3B7764CFB77BBBFAB836DB6BD03FF532A5C7C0D48E62F1C285F6D3B2914629FFE6DB6F3BBCD3D2B23DDF2100010840000210800004BA9F003622DDCFF489F6A8D1D5355861DF7E0DC78F5A3E5C77425484DCCEB8DEB2E8B1BF0F34AE72752742BD39B983EEA93176B1110737CD4EC5EE6FF6D863568FFD904E349C36758AAC58FEAC71D73B5CFA18CF594EAA34C24B6D36D4BB544666A693CD1502108000042010B004B01109D8A563E05E082044BC4009B4ACFE0306DA635A1A5B64E8D00643EFFBF74BAC1D49DAC573E6D854D777427C31518F517126E6857AB3D25D10B51DE9ADA486EE0926D0A2465AD7F81A798D31577A6B3C3C17021080000420D0DD041022DD4D94FE7A930042A437E9F36C084000021080000420D0090208914EC0A2AADF1308F7FB1132400840000210800004200001084020E8082044826E499910042000010840000210800004FC9F0042C4FFD7881142000210800004200001084020E8082044826E499910042000010840000210800004FC9F0042C4FFD7881142000210800004200001084020E8082044826E499910042000010840000210800004FC9F0042C4FFD7881142000210800004200001084020E8082044826E499910042000010840000210800004FC9F0042C4FFD7881142000210800004200001084020E808F409BA1905F18426A5CC90F4D44B76866B37BDD5A199EEDCB6A543F5A8040108400002108000042000812749801D912749BB0BCF521132396566177AA029042000010840000210800004FC870042C47FD6C2E74810213ED150000108400002108000042010A00410227EBE7088103F5F20860701084000021080000420F05804B011792C6C4FA6516F8A90552B964B44448464DDBD276957AE3C990977E129B1B12364F6534FD91E2EA5A64A76764E177A6B68FAF482F93269E204B972F59A9C3E73B6CBFDD101042000010840000210804013018448130BBFBAEB4D11A220162F5A6885C8F90B17034288C4C5C6DA31EBD80B8B8ABA2C4454D8BCF0DC6A090F0F97E4B163E5FAF51B527AFFBE764F8200042000010840000210E806021CCDEA0688DDDD456F8B90EE9E4F20F6575F5F1F88C366CC108000042000010840206008B023E2674B8508F18F0529282894DDDFEC91898D47B3D80DF18F7561141080000420000108040F0184889FADA5C609716285F8D9D0426E38DF9F3A2DFA214100021080000420000108743F018448F733EDB51E6B6B1F4979A31DC390A1438D8D47F72E6F84B19718372E59F4D4524E6EAE5454547468AE6A6F11337CB8D4D6D64941618114179774A85D9F3E7D446D3FA2A3A3E4C1832AC92FC897F2F28E3DB3430FE8864A03060C90A4318952575727B97979525656DE6EAF03070EB4F31A3C78B0A95F2679F979525D5DD36E3B778571C9C9667DC3AD3381AAAA2A7711F710800004200001084020200874EF9B6A404CD9BF07D9D188E9CE2C4A8A0A253BEB8E14E6E74A6949B15895A0856161123934CAA9D6A5EBC8F87879E1F9E764D4C878E9DFBFBFED4B5FBCAFDFB829BBF7EC91A222F35C2F69D992C53277CE6C2324A29B95E6E5E7CBF7274FF9F444D5BF7F3F6328FE9C4C9D3A45069A177D27E9336FDFC99203870E4966E62D27BB43D715CB9F9567972EB1758B4B4AE457FFF61BA979F8B0CDB67FFD577F292346C49867DE91DFFFE1FD6675E7CC9E658DE3870F1B660DDA9D42F5D675F4F871B97439D5C9F25C95E3AA952B64FC381511119EFC9A9A87927EFDBA7CB3E75BB96F84893B6DDEB451A64E996C4458817CB0E5237965DD5A199530CAC3456D596EDDBE235FEFFEC60A21775BEE210001084000021080803F134088F8F3EAB431B6AA070FE4C2A9E3929FEBC34DAD79412D2BEDD8CE431B8F91810307C89B9B374954547351A3DEA4264F9A2843CC5FF5DFFBE3FBAD5EEA972F5B2AFAF2EF2DE92EC74B2FBE6076486AE5DCF90BADAA6CDCF0AA719B3BB1557E8307AB24891DF1AAFCE9C38F3AEC196BC5B3CBAC080933E24C45C8871F6F6D35DE560F3319E166C741DBE873DD49BD693DF3F4025BE6CED7FB51A346CA86F5AF48DFBE7DE5ECB9F39E6215639B37BD26C38C706999FAF5EB2BD353A6D99D9F3FFEE98366BB23FA6C1D83EE0EBD6EDA8F4E4868D65CCB92C726C90FDF7E53FEB71157959595CDCAF902010840000210800004FC950042C45F57A68D713DACAE9663FBF748A5391AD5B75F3F99346D868C499E608E6595C8917D7B6CCB252B9F93C8A868B99D7143D2D32EC9C39ACE1DFD711E3F79D2247B7BDBFCD5FD6A7ABAE4E7174852D218993E6D9A79A98E9604F3D7F997D7BD249F6CFFDC6922F3E6CE91678D10D1A4C7867477202333D3BE4CEB91A21933A64B1FB323A062445F9CAFA55FF7B45DFFF23A8F08D19D965413C3E4D6AD5B1213132313C78FB7C6E37AA4E9F5D75E933F9897F612232CDA4A2A88742C8E08D9F2D1C7760E6DB569AB2C327288CC9F3FCFF6A7BB17FBF61F90ABD7D2EDCE89EE5C2C7AE6192B5CF4998E10D1A3586E11A22CAF991D90EC9C1C494A4CB43B1EF166B74445C6A60D1BACC86A3906DD7931C0ED4ED0E5B434C9CDCD93F8F83859B27891441B9118396488E85C77999D111204200001084000021008040208914058A51663BC7AF9A21521C3636265F5BA0D32C0BCE8B64C2A42E24626D8CF8CD9F365EFAECFA5202FB765B50E7DD7E3507F78FF4F526B8E4669D26344972E5F969FFCE88766C764A0CC983E5D8E9F382977EFDDB3E5FA12AE7FC9D7A3545F7DBD5B2E5EBA6CF3F59F0B172FD9381F3F30479474D740EB3A4264D4C891327B564350C20A23503EDCBAD5231AF418D889EF4FCA5B9B5F97C993275911B478E133B67F4FE72D6EB4EFE56637C48A106397F2C1471F897AC3EA4A9A36658A1551DAC7A1C3473C3B3A770C23FD848799B823C963ED2354209494965A61A673D39475F76E3396376F66C8A93367E4673FF9B1DD2D512F5D2946E4A51AB1D132A998FBD3071F7AD6E14E56961533DA5679AB2824410002108000042000814021D0FCCC49A08C3A84C7595F572FF7B2322D81C52B565B1152660CD4BFFE6CABECFE7CAB878CF35DCB54A82C59F582A7AC33370F8D1DC5F6CF3EF7BCFC3A6DF52FF2878E1C75BE4AE2E8862343BA4B323432D2E65F4E4D6B26429CCA874DBB5BB76FDBAF6AC4EE2435FA76D2FE03073D22C4C9D3EB675FEE3086EB0F6C56AC39E2E52B2D33F6207A24AB418414778B08D167F531E2C94963129BC6EBE4ED36761EBFFAF56FED474588A69166E742930AB3ED9F7FD18AA51AE0BB77327C090AB5AB71C4A0EDD0FC73D744BE5723794D0E77FB857F200001084000021080809F134088F8F902B51C5E7575953966F550FA0FE82FC3631B5E704F1D3D287939F7ECD1A7C4B1C9323A699C7D61CECDBE275AA6292A7A986DD3B2BFF6BEAB4D85F342DDB2AEDB603C2EAE612C6393923CD5EE65677BEE5BDEA890D1A45EA746378A9878630CEFA48C8C4CE7B6D9554588464ED73422A649C4B82B4D3346EE2B8D7D8A6727E4C38FBBBC13E2F47FEBD66D6BDBA2DF9F9A39437EF98BBF96E756AF9209E6D8987A15F396468C1861B33516892FC37EDD1979F4E891ADA736342D93DAD3E88E88B7E4782F738B246FF5C883000420000108400002FE4480A359FEB41A1D18CBA3870DB61E03060CF6D4BE7FBFC16BD5E246BB102D5043F5837B768953A67903060C92EAAA6ABDED70F2F5E2AC1DA88D438DB13DE967EC54D4BB9426E70892DEAB8B5F5F49BD4039497716F42FFBB18D2FEC6EB1E1D4715FD5FD6FE2E8D132C4D845E88E8A234C9C3A13274C706EAD0D4A71B177AF5E9E4A9DB8D1E367FBCC6E8DDA66A847AF61C6087DF1C285F6536D6C77D48E46777CD49646938A93E1C31A04535B6E8B75A74305DF08630BE3B0740FABDA70F6E5E257450A09021080000420000108041A01EF7FC20DB45984D078C3C21BDCBED6D535BD7C1ABF4A96807194E549EAD6559353A6F77A34A8F3C9D5A997C6EE67DAE286A178A9D97E5658E33CDAAB592F4D63D25D0F6FC97939D7DD96B56BD778ABF2D879478E1E937FFDD5BF996087A74C4C9462E331B9613CEADAF8A91933E42FFFEC67A26E7A9DE463884E71D3B5695A4D79DC410002108000042000812025C08E48802CECCE6D5B9A8D74E0A0A61D11E7484F8471F1EA2475F7AAC929D37B6D5376BFC16E41BF77240D77D970B4ACAF713134E68726C7085CE3683849CBDDC7B79C7CBD3ABB1F7A9F9575572F92670216AA705003F8E1C387F93CC6643D4899FA6A5B5150D8DAF85C8DE9F71F38243F322E6DB5AF39B366495E5EBE31A8FFDE3EA73BFED1C085BBBEFE467699CE74ACEA6E78A61121A38DC1B8B25FB268A1A41B6F606A50AE3B36F1E6E89AEE9EF84ABA73A2811B351576D1A0DED733C887000420000108400002FE44801D117F5A8D0E8E65B031069FBD60A1AD5D6E844579D97D13F322C218A50FF2F430C0880EF5A4A4655A47D3ACF9CF88B6ED4CD29767F5FEE42D39DEA1B42CAFD160DA3142D73C8DA9E12BA9EB594D7A9C493D4969CACD693ACA357EDC389BD7F21F15168E81BB3711A2F5AF5CBD266A9FA21EBB9C5DA0552B56583B8E96FD75C7773DBEA61EBD7EF3BB773D5EB494FD98461E48CB210000400049444154E3FB82C66368515143ADB72F6FCF1C67E6EB88C75C13F09104010840000210800004829D004224C056F8C73FFF3BD9F8C39FC9C8D1636C34F57D5F7F698F06252669B4EEA6E5D417E1D1264F8F0D691D75DD3B2A31C9B6D53E3A9AD4C5AE06E86B99F42FFCEA99CA4959C6C64393DA4138D1C167A4A418D7BE294E15CF55ED2B1CA376B7985037C14E528F57DE6C25D6BFBCD6EE7268BDFC765ED8357E891EA3D2D4B76F1FD1B6EAD5CB9D342E88BAF8D5D827BE8CCDDDF5376E582FBFF83FFE4A7EFE177FE655A0B90DFB9DE082398D86F9BA26AFAD5FDFEA391A1765CD8BCF7B1E73EF9E6F237F4F256E200001084000021080408013683ACB13E01309C5E1BBED331C3B053787B0F026FB890EDB29B83B68BCD700863F79E7472670DF356B843D56031A1A8131C8EC4E68D238214E0C11FDAEF1353458A1BE78BFB4E645491A33466E1A2F582A06C625279B234CD3B59AA86BE083870EDB7BFD478DDF35D2BAC612D197F3374DCC9054E30238D3B8FA1D618E884D3046E81ACD5D937AF33A7AFC84BD6FEB9FBD26E0A07AF49A62628F449ADDA08DAFBE2ABF3791E09D236BAFBDBADE44261F6BBBD072751BDC56CA37C7A6346E8AA6375EDF247BF7EF37DEAC6E5916CA4423AE6B720239EAFDE933674D6C90A9D6903F3171B4BCF3A3B76D10C45C63CCAF46F7D3A64E3506ED2660A149D76FDCF01A43C416F20F0420000108400002100822020891005BCC3FFCEFFF2183060F11F5909560763856BEF8B26CDFF29EDCBD9D2933E62EB02FFF3AA5DADA3AC9BA95695DD86A9D2143A34CFC91DB72D4445EAFAC28EFF0AC5564A878481E9B643F2D1BEA5FEFBFD8B1B359F6A9D367AC90D05D0DF52CB5C04422D78F3BE991298D9DE1043374CA3E37714254844C3281FDF40896EEBA2C93A69D17ADA7C10EB77EF269BB51D5DD7DFEF4C7EF486CEC086B83B2EEA535F2D9175FDA62772C9251C6A6A5BDA4739B698488EED68C34EE86DF7EF30D7BFC4B4597931E192F56478E1EF7881DF502F6F1B64FE5C73F7CDBEEC8E86E90B323E4B4D1EB5DC372DBA7DBDD59DC43000210800004200081A025D0F4F614B4530CBE89A990387FEAB89D980A8C48F3D117FBAACA0ACF64AB1E544A9D79211E1239D48A102DD0361D1521CE0E4BA97129AB11CEF5D894BAEA75923E2FFDFA0DF9D4043B7476179C32BD1E3878C8EC161CF01A83446D26D47EE3ECB9F3EE269EFB4FB66FB73B23BAABE04E3A26B541F9E4D3CFC46D14AF75EA4CA04727397621CE7715021A4850AF9A663D3553E6CE996DEFCF9B1D18F5B0A565E72E5CB4796DFDA3C7AD7EF3EEBB72E6EC39EB1A58EB3A22447778745C1F7DBC550E1F3DDAAC9B12B383A3E249773C1C8F5E4E056D979A76453EDEBAAD958BDEFAFA064F67CE7A386DDC57A7CCB9BACBB887000420000108400002FE4A206CE9F2954D6F705E465959D660E83C28D2BBC1B29726647581C0DA4D6FB5D9BAA2BC5CF61B9B0F151F1BDEFE77B6EE971FBF2FC54585B26CF58B32D4042ED474DFBCF81EFA76970C1B1E232F6FFE91CDDBFEC1EF3BED35CB366CFC478DA935FA7984318CD71821EA39AA2349ED49A28C472875CF5B68BC5CB9ED42DA6ADFCFD8A7E8B12AB5E3A831411CD526C4B13F69AB5D67CB740746C5414BE1F30FBFFC850C1D3A54EE1811F6BBF7FEE0B5DB6863CC1F17172B550FAA8C58BBE3B54ECB4C7D9E062DD4608E95463CE61A8F5E2D9FDDB20DDF210001084000024AC0792F73EC10A102814026C0D1AC005BBDFAC6F821E18DF14474F8758D7135DC31351C9B10A74CEB397FB9D7FBC749BAF3A1B61E9D4DB9C6A3967E3A9B6ACC4E81E351ABB36D3B53DF894CEE6EA3AE87558468D2A360BE92EE74E8A733499F97613E2408400002108000042010CA04102201B6FA7DFAF6B323AEAA6A7A911D3A7498949A581547F77F2BF1A3128D5D48BDE4DCCDB2F5B4CC49CED124E73BD7D60434B2B9062354837C273D8E8872DA728500042000010840000210F04E0021E29D8BDFE6F61F3050FA0FE82FD555D5525A52648E3C0D97F98B9F959AEA07929B7DCF18AD6778C61E3F2A41162C5E66BF1716E4993ACD6D2E3C15B9F110D0E084D3A64EF17CCFCF2F9063C71BEC713C99DC400002108000042000010874990036225D46D87B1DC4C4C6CBAA975E3171351A0219E6E5DC93AF3FDB6A07F4E2ABAF4BDCC8047BFFC018AE7FB7E333292A24505E7BABA5410857AF5A69A3B6AB1DCC31E322D89B317E7BFD500E010840000210E80902D888F40455FAEC2D02EC88F416F96E786E617EAE7C665CF74E9A364392C64D90B2D2265B05E7FE76C60D494FBB240F5D1EAFBAE1D141DB851AA6BFFBDE1F83767E4C0C021080000420000108F80B017644FC652518070420000108400002106887003B22ED00A238A008104724A0968BC1420002108000042000010840203808204482631D9905042000010840000210800004028A004224A0968BC1420002108000042000010840203808204482631D9905042000010840000210800004028A004224A0968BC1420002108000042000010840203808204482631D9905042000010840000210800004028A004224A0968BC1420002108000042000010840203808204482631D9905042000010840000210800004028A004224A0968BC1420002108000042000010840203808F4098E6984C62C26A5CC90F4D44B76B26B37BDD5A149EFDCB6A543F5A8040108400002108000042000812749801D912749BB0BCF521132396566177AA029042000010840000210800004FC870042C47FD6C2E74810213ED150000108400002108000042010A00410227EBE7088103F5F20860701084000021080000420F05804B011792C6C4FA61122A4739CA3A3A264E6CC19322C3A5A22FA444866E62D397BEEBCC4C7C7C992458BA4B6B6560E1E3E2CC5C5259DEB38846AC7C68E90D94F3D65677C293555B2B3734268F64C15021080000420008127490021F2246977E25988904EC03255A74E992CAFAC5B2B03070EF434EC13D1C70A91E5CB96C9B4A9536CFEA3478F64E7AEAF3D75B8694E202E3656162F5A68330B8B8A1022CDF1F00D02108000042000816E248010E94698DDD51522A4F3247FF0FFB3F7DED1755D579AE746261201222782C8244030E74C90A22892922851A4644AB25C693C1EB7BBECAAAE5E3D6B66FEE8596BA6BAD6AA7255DB5ED5D3DD552ECB922C5A1295455224C54C8A3983000880C839E71CE6EC039E8BFB12F81EF0F0F0F0DEB7BD807BEF49F7DCDFA596EF877DF6D939399A08E9EF1FA09ADA1ADD47F4A8ED03A2070880000880000880000880C0B41280109956BCB60F0E11623BB3B9C1C11411112E3BD6D5D7D3BBEFBD4F2C46945DB8789906852764786898AE5CBDA68A7104011000011000011000011098410210223308DFDCAD394F88CA1562AE1E65A604A2A222B5C29292520311C215F50D0DF4F9175F696D7002022000022000022000022030F304204466FE1D38FD0CBCBDBD896307424343A8A9A9991A1A1BAD9AB3BE5F6F6F1F353635525757B7557D55A3E4A424F2F2F2A4AAEA1AEAEBEB53C506474FCFF1CDDF3A3A3B0DEAACBDF012634489A0760E746F6B6B174BBB6AADED6AD776ECDD6161C5CF5459554DBDBDBD368DCFBC46C5FFAA445F8E87D19BAF8F0F2524C4CBB1CBCA2B4CEAF56D710E02200002200002200002D34D004264BA09DB38BEB519D36D1C7652CDF9C375F7F3BB28337311F9CF99A38DD1DDDD4D75F50D74F2F4696A6C6CD2CAD5899F9F2FEDDEB58B168900717DBF919111AAA8ACA20B972EC91DAD547B3EBE7EF0351970DED8D4441F1EF948069EC7C6C56AFD474747A9BCA292BE3D794A7A38B8CFEE5DCFD1BAB56BC8C3C3832FA5BD20E6CBE56C57AF5FA7D3DF9DA5552B57D0BE3D2FC8B2231F7D4245C5C5F25CFDDABC7123AD5DB38A82850850D62B44CFDDBBF7E8C2C54BF4D7BFF839F9FAFAD0D56B62BC3367551383E3AE9D3B68C3FA75B2ECF8B727E9D6ED3B06F5EAE2ADC33FA0D49464E2E7F9CD7FFBEF42F48CEDE0B572C5723187D5141D15A59A12F36A6B6FA7FB0F1ED2C54B97B5723EE180F2E776E4C8B27FFAF56FE8F9E79EA314316EC0D360FDC1C141BA7EF3169D397B8E42E6CEA51D3BB6D3E2CC4C21EABC641FAE67B1F5D9E75FD264C59B1C08BF40000440000440000440609204C6FF943CC901D0CD75091C78F515E20F64BD98E0A70D0C0C941FD3EFBCF516A5A7A59A00784DF45BB17C99493FFE2B7FD282443A28EA6363630CFA711D0B0AF6A21C3A78407E54EBEFCB75DCF7AD377F40010101B2AFC7D33E0603890B6ECB3F9E1E63FFBCD9DBA1CAD8BBA23716323B72B6198810AEE77BF3C7FEABAFBC2C3D08723C318E25CBCB2F9055DC6E6146BAD966BCA3D782C4F9722EB575F59A0859BE6C29BDB8778F8108E1019849D8BC7994B36D2BEDDB3B26A4D4C0FC6CEA999E7F6E27652FCED24408B7F1112272F3C60DE2D9B60B9EAFD1D2EC6C4D84A8FA058989F4E60F5ED782FCD5D83882000880000880000880802308C023E208CAB3F01E2FEEDBA37D50F352A5BCFC7C2A2B2F173939A285084991A220282890F60A4FC3AF7EF3CFDA13EE7FE945214ED2E4754B4B2BE5151450B9E8171E1E4E69A25F9A102E2C640E1D3840EFFDE143ED635C0DC01FDE247E3807C82371CF7AE179917940C44735E709090E0AA26D5B36D309E119B9263C1405058F29462CA962CF0D1B07A317173F91E7CADB202FCCFC6211C5BB6DF1073D7B1F1EE5E55349E9588C494A4A12656765092FCDD8B6BF66BA1B1455D7D4509D10172CB012E7CFA73942C8182F255B92BD580A04EE58F0F8B1ECCFCFC61E1C9EC390C87372FDFA0DE9F9F1F0F4A0F4D454CACACA940263F5CA95A2EE263535371BDC972FB2172FA6DABA3ABA7DE7AE888FE99773E6ED8CD9FBB165D346D99EFBDDBA759B5A850726233D5D6E67CC828EDF675A6A0A3DCC7D64322E0A40000440000440000440603A0940884C27DD593A768CF8385DB562859C3DC7287C7CF453F9A1CB0545E223FFF295EFE99DB7DF248E476071B06CE912B97C28362686F8AFFB6CDD3D3DF4C74F3ED1966E153F29A1EB376ED2E1D70F5186F018CC9B174A1BC552265EC6646CA56565F4870FFF48C3421CB0555655C9FBFFD98FDE915E8238B1648B8D972DF10F2F9B52D629624458305963ECF1F0F119FB4FE09A1000FA6557F94240B1183AF0CA7E794F6BC6CB17E2828588AFAF2FB1E8B8293EFCF596913E26D07859D4BDFBF76555841068CD42B0B13D12090479F997B2C2C2221A181C109CC6F27AB060302744386EE7C33F7EA4C5DFE43ECA139E8E37346F1533E17A95C8B1B0A8987879DD5621E8D8E26263214414741C4100044000044000041C460042C461A8ADBBD1B1A347AC6B388DAD78F990328E4DE0BFB61B1B0B08F981EC4132DE81EB13E72768CDCE5FB8A88910AD509C7CF1F537F4EF7FFA13B91C285204C09BB31B22B6418910555F2D82D579F72B163B1CD06D0F632F0D5B4343A381085163B38784BD3FBCCCCC1A6371B165D326296E5874E885082FCB624F091B078AABA07DBE07FF58328E35D9B06E9DF49844E9E247F4EDD95BA5C653E50F73733521522A04951221AA9EB3A66FD9BC498E1B2A02F46120000220000220000220E0680210228E263E0BEE17233EF695159794A8538323FF15FEAB6F8E199445C7446BD7A5A565DAB9FE843D2C9CB13B213E9E22C2C3F455F27C582C4F628F8839E3BFE2B3798BF887A91A7B647899171B0B1C4B56555D6DB510E9ECEC92CBD078F999F1F2AC25228683E336D8D8F361C998CBDCB9C17269172FEF9AE3E7A735E5981173C67334B6F6F60EADA8D9CC722EDE648003F239B89D9785C140000440000440000440C0D10420441C4DDCE87EFFEFDA1CA312C75CFE9F37CE59BC51646484AC63D1C082C35A8B8C18EFC762C392F15FE7F9833B480881F0B030294C54DBFE8101933C20AA8E458ABD6C7EC2B8F766A2B972EC872DC6712D2C448C9767A58BB80C361653B946F118BC346ADBD6CD9A78B1E57EDC76707068C22EBC43170C044000044000044000049C8D80F93FB13ADB2C311F8712181D19FB70B5F52FE562AF2AABE6C9792E94D97A0FD56FAA477D7E0E3F11D361C938B0DE167BF830578A0DEEA36242F4CBB238C646BFEC8C97C171BC0D0790B307848D83DC7983005E32C6F1313010000110000110000110704502F088CCF05B3D5EF0808A9AEA695BCA425A1E9768309B7B351574A1E43165444453A168E32996D0BCB27825CD0F355CD2F4A0B68ACE3D198B33F8F9E65D728C5F5D3E2D8FEADA60E0675C70C2C2848478F961CC792D265ABAA41FAA41242C8C8F8F93F11F6161F38877CD326772672C51C1710DE682AFCDF5B17759B988D3600F0BEF2C151131162B62EE1E71316381F1E6EACC95B1C860B1C141FB6A79162FCB5201F5F71F3E34E8C6711A7E4F975F71ACC77991B7449F9B8573B9FCA7FFF81FAC0E9837181C1720000220000220000220E0C404E01199E197B33D55240B141F9B57CB8AA95D97399CCFB9CCDFC797B689366C236289CDF182FBD421B66855D6DCDD45974B1FAB4BBB1CEBEAEBB57152C54E4DE68C77CBE2FC15FC93291217B2D58BED6B95A52427AB5383237B07783916DB4C8910BEF780D8B94A0570C7CB78155331C2F947781B5C5B4D890DB53C4B2DCBE2648DBC1397DE78873236DE76F7D88993062284CB178AFB5B8A0DE17A1808800008800008800008CC5602102233FCE6025868A464D2C0C8309D2D1ECBE5C04B97CE14E5CAB29C9445C46D94F50D0DD1F1FCFB343C3A4203E22FFAC71E3FA0C1A7DBDCAA36533DB2B74019E7A1E0180663E34CE59C499C7F548241CE9AAE6CFBD62D663D0DFB5FDAA725D06B149E97993415FFC101DB9CB890BD0F7A7B71DF5EE9E1D197E9CF79072FCEA89E26F27DE88DC586F26A701E12B55BD663B11DAFB10D889818360F91A0D0F8FEBC546BF5AA95C65D700D022000022000022000022E41004BB39CE0352E8CE4A5579154D2DC488FEA6B84E763842ADB5B295D2CC94A17757A0B0D08A4FAAE763A579C2FB6CD256AEDE9262E6B13477B192FCDE2AD67D7AC5E25976771A67395EC8FF35EB0B78303B2D978A7A87BF7C67262F036BFF7EE3F90CB9238B6E2072267489ED89AB6ACA28222841724557CB0ABB8094EACF7BD2E6786BDE66ECB38274F7F27F37E44896D84596CFDF52FFE92AA6B6A6944083CDE398C1336B25060CF86B1F9F9F9D2DB6F1D96BB4E713E9277DFFB4024221C1770058585C441FF29C949B22B274C549CF46355896D89E789048EBC746BFFCB2F4A7E9C1871BED80A99B3DAB3D88181000880000880000880802B1280107192B79A939A4935ED6D74B9A450F84346E5922C5EB6656C2F672EA38FEFDF948285EBE678FB1097BD77FB7BE3A653BAE63C21C1C141324B372FC3DA243EB6F9476FBCFDEB29F131AF0FBEFE52E4096111C259CB790916C7406CA14DFA6E32D9E1279F7E669255DDA091032E3860FDD3CFBE90C1E23C678ED550C2816FCFCBA53883FB2B2FBF64329BE8A868294254050B07BD10E19C229CB0916350D838E8DCDCEE5CDC8E459DBFF07E242D58207FD4987CE4CCF2C1623B5FF6DAC040000440000440000440C0950860699693BCCD205F3FDA929C417DC383D43F3C44394284E89764A969CEF30FA47D8B969297085CE71F3EE7B2E9B0CFBFF88AEEDCBD27F34DE8C76701C21FDDEFFFE143E2C478C6F6E9E79FCBBFECF3EE4F7AE36D64B91F7FFCD7D61A26491C155E20B689B69A5575EAA8C61E79BACB97EC6F66991AC7D62863CF84DED8FBF32FBFFD1D7166759E5B9388E3A8A8ACA45B77EED0FFF8D7DF9AC474A8BEDCA6A4A4545EB6B6B6D283078641E81CA8CF491895E5E717A85383634969197D78E423622F887E7B629E2707AF7F74F4280D0F8D6D5BCC9E326506E746CFC46DF4CFA97B7CD55D1E1547C57EAC9F6556069D7101022000022000022000025324E0B1795BCEF8978799C17A3ADB6569407088995A144D95803E8F087B427E7DF93B39A4F16E57C6BB60F14E596C4B63C7F26118D71B5FCBC6BA5F13E511D13593A71CBBC059BDD943D2D6DE6E22228CDBAB6B7DBF8181411137D1481D9D9DAA7A561CD3D3D2E8CD1FBC2EE77AF6FC05BA74F98AC1BCD95BC44CCCD94FFE973FA768118CCE9E957FFAF56F2CE647517D39262441EC3AC65623845A4F4F8FAAC211044000044000042401F55D86FF8FC03F08572080A559B3F42D2A01E288E9F30E53E6B2773FEBDE93EDF7AC71ED55CF01F7C9490B84FC233A7DE62C159A09265FBE6C8976BBC222D360734B2284E36B5884B0717C4D7FFF5850BA36989913F620153F293153832210000110000110000110703D021022AEF74E0D9E487946F485C6DE167D9D3B9DB3B852BB52BD2C76C8BA1A71832AC5CE5FBCCD2E07AFAF59BD921666644824BCD48AE3352632DE3D6C61463AC5C5C5D2E2CC4CD9745088B82B57AF4ED40D7520000220000220000220E096042044DCF2B5E3A199C07D11D7B16CE912E115499201F6CFEDC8310BA6BDA383BE3E76DC6C9DBE30263A8A5E7E719F56C4311857C5CE6096123B6A0D7102022000022000022000026E4800312233FCD2F531228E9C8A2D31228E9CD74CDC8B73A5B06724383858E4F3F090536011D129E25938889C77CEB2B4044B3FDF0589F3E9F01BAFD390C8F5C2DB133F7C984B37C436C83010000110000110B01701C488D88B24C6710602F08838C35BC01C6694C0A52BDF13FF70D6F7F8B838F2F6F6A21A914FC4D6C0FAF28A4AFABBBFFFE58C3E0B6E0E02200002200002200002B385003C22B3E54D619E2000022000022000026E4F001E11B7FF27E052009047C4A55E271E06044000044000044000044000046607010891D9F19E304B1000011000011000011000011070290210222EF53AF13020000220000220000220000220303B084088CC8EF7845982000880000880000880000880804B11801071A9D789870101100001100001100001100081D94100426476BC27CC12044000044000044000044000045C8A0084884BBD4E3C0C08800008800008800008800008CC0E021022B3E33D619620000220000220000220000220E0520420445CEA75E26140000440000440000440000440607610F09E1DD3C42C99407A563615E5E54A18FB0E1EB60ACAB1A347AC6A874620000220000220000220000220E04802F0883892F614EEC52224236BC91446405710000110000110000110000110701E021022CEF32E2CCE0422C4221A54800008800008800008800008CC520210224EFEE220429CFC05617A2000022000022000022000029322002132296C8EE90411E218CEB80B088000088000088000088080E3094088389EB955778408B10A131A810008800008800008800008CC520210224EF8E220429CF0A5604A2000022000022000022000027625002162579C531F0C2264EA0C3102088000088000088000088080F313401E11277B479C2744E50A71B2A9613A2000022000022000022000022060370210227643E9BA03797B7B5354642485868650535333353436DAF4B0B1B131143E2F8C6AEBEAA8B9A5C5A06FC8DCB9141919413E3E3ED4D2DA4A4D8D4D343C3262D066A20B3F3F5F4A5A90443DBD3D54535D6353DF89C68D8E8A12CF1B4A5D5D5D5427E66DCB9C62A2A325ABDADA3A6AEFE898E836B28E9F81FB0404045243438309A3670E800620000220000220000220300B09408838D94BB33663BA23A6ED2BC4C1EEE7775166E622F29F3347BB65777737D5D537D0C9D3A7A9510807652C567EF2E3BF9097C74E7C4BE16161949595492C36D82E5CBA4CE72F5C94E75962CC4D1B36505C5CACBC56BFF8C3FF61EE233AF5DD1955A41D7FFEB39F524848083D78984BB98FF22867FB5629905828B10D0D0DD1C3478FE8F47767A9B7B757EB37D1C9C60DEBE9B91D39B2C92FFFEBAF6949F662DAB07E1DCD0D0ED6BAF1F3DEBE7B8FCE9DBFA095F189BEEF3FFEEAD7B463FB764A4D49A6B94F9F97DBB0F0FAEECC392A78FC982F0D8CE7BD77CF6E5A9C9949BEBEBE5A5D6B6B1B5DB97A953A3B3BE907AF1F92E5473EFA988A8A9F686D700202200002200002200002B39D80576252F27F9EE8210607FA65B58FDFF887E844ED51373502F6CE9E3E95655E870EBE263FCC7D9E7EE8AB27E38FE6B079F32873D122E12169A296965659152C3EDE57AF5A491E1E1EE4EDED434B9764D31C3F3FD58DCA2B2AA8ACBC9CD2D3D2E8B557F74BAF8156F9F484C79E9F90404141815454546C50BD510884394210F574F7D0EAD52BA5D0F1F41C0F73E2F3D89818620F0C8B156B6C416222A508F1C073F6F4F2A2ED5BB7909F6ECE3C06CF89DB8D084F4D4545A536ACBE6FA0F0662C5FB6D4A46F80BF3FB1E8AA16DE9A56E1F1D1DBABFB5FA6654B969097B8AFDEFCFDE750467A3A8D8AFFB1A784E7F628AF809A9B9BF5CD700E0220000220E08604D477D9E0E0A01B3E3D1ED9D508C023E2A46FF4D8D123539AD9543D2B2FEEDB430B33D2E51CDADADA292F3F5F8A8868F1619C9A92229643254AB1B077CF0BF4ABDFFCB3C95C53929368787898F20B0AE447785F7F3FD50B2F4A427C3CBDB2FF25B9146B7474548E5B525A465DC2EB909C94448B85072538288856AF5C49DD5DDD74FEE225D3B18570E0BEF7EE3FA0274F4AA8B3AB538889145ABF768D140D29C9C9F2E33F2FBFC0A4EF4405DC7F7070487CF4E7D19392126261C363652FCE926261DB96CD5278E517987A37962D5D22BD1F77EFDDA7CACA2AC12648CE67FEFC0439CEF66D5BE498EAFEDB84E0E171D97A84F7E691F0F09494968AE55901F29E2C5E966667ABE6388200088000088000088080CB11801071B9573AF507E2BFC2AF5AB1420EC44B9C3E3EFAA98CEFE0025E1E74F9CAF7F4CEDB6F4AE1102A964AF147F8FD070F0D6ECCCBA4BE397EC2A4FCB0586AC45E02B69BB76FD3896F4F69FD0A0B8B8417A4482E47E298914D1B37D0E5EFAFCA25575AA3A72757AE5EA33367CF69C5E5C253313030A02DB34A141E0C5B85080F76F6FC79BA76FD86362E7B565ADBDAA4A7843D175B366F12E2CA5488B4B7B7D31F3FFA849A745E8B42F12CFFEE27FFABF4FC4447456B63F2098B1E36166BDF1C3B6E30E61DB10C6CF7AEE768FDBAB5B20D7E81000880000880000880802B12801071F2B7EA75F0E736CD70F8E8AF6C6A6FAEF182C4F95AF14511D7C141E6C676FCDB93B471FD7A220F92DE09E3FA2AB114C9589C709B888808D99483DEF52244F567EF080B141E9B6328D8F3522CBC1E7A1B1818A4F346F11A5C7FFDC64D11A7B14D7A204243C6E252F4FD9E755E2C44965E84A8F6178457264D785C1212E2C592B430556C70CC7F5C682042B892C5D893D21229EA7C7CBC293A3A4A7A85E2E3E2E412336EC3F130E684CDC9D3DF09A1B740F4311430DC070602200002200002200002AE40607C81BD2B3C0D9EC12E0462449C85B262B144C99CB190F8EA9B63F4D5D7C7CCC663D4D6D69A74E36547BCF316DB443B6F5555D5687DE3C447BBB171AC84B95DACF8C35F05A9B347C556ABAE19BFAF71DFBAFA7A59C43B5CC5C79BCEA9C642DFCECE2E6D28FF39639E201634CA6ACC705275BC21000C044000044000044000045C950084C82C7FB3C3E73E21FEB1A7F176BA6CFC51CF826332C6A2C0D838B85B05974F14785D555DA575E56D748DADB7CFF28E58BCD469B236D1873F07E52B4B30238EF48243B5E3A3390EBCBB98B2BABA3181A3AEF5C7C9B2D78F817310000110000110000110705602589AE5AC6F463FAFAE761A29BC4DA3951C9B2076775AB2893C5296E85BD8F57C7464548EC7BB35D9D3EC3C9C3DA766DB58537C90BEFE3EED7EBC439625F39B33BEE398A536280701100001100001100081D94A001E11277F73A3A5B934F2DD0744E50FC93F7290E6840FD0C89DB334F2FD3734DADD415E3987E48F3D1F432D9BE2AD72CD7924267BAFB2F20AB9052EF70F0F371F6BC17509F1097C90C609FE1C65312286C392A9D816AEAFAAAEB6D4CCAA72BD17843706B064914FE3692CD5A31C0440000440000440000466330178449CFCED8DDC3E4341A91E149CE5499EBE639E8AFE060F6ABDF984864F9509CFC832F24C5D4A1434167B618FC751F1103C566A6A0AD59B1103BC5BD6DA35ABE5ED2AABAACC065C1BCFA5A7A787782BE0B0B0793211A171BDBA4ED0C5604C14B7A1DADBEBC841E4968C03CDD9FAFB07E476C496DA59535E2E04196F3FCC1E27CE177245EC0C661CF31211112EF2A98CC79258332EDA80000880000880000880C06C22008F8893BFADF0CD1E14B29C3411C2D3F513DFC451BB3C28306984468BEFD0F0C9DFD3C8F9A334923FBEEDEC541E8B3F94956DD9B491E26263D5A576DC27F287700672FEE120746B4DC55AB087E185DDCF9B744B4E4AA235AB57C9728EAF602F8A3D8C131DEEDAB983D252532D0E979696AA6DABAB6FB455E40FE1248B6C2DAD2DFAAA499D77888CE92AFE8303DFF788ECEA7A634FD46BAFBE6213577D7F9C83000880000880000880C06C20008F8893BFA5391656EE78FA12850A811294EE41DD6263ABDE8A6A1A6E9ADA922185829766DDBC755B0A02FE283E74F08048F2972F13EE458487CB847BFCD1CEC641DAF744123F6BED92C841922092FC712E91B54270F09113F9B1B72469C10291E46FB14C76C8E3B1A7C05CB0B7B5F752ED78A7ABB7DF3A2CEFB571C37A7AF7BD0F64967755AF3FEEC8D94E5122405E9FD07049F662D98403E12F5EBAA26F3EE9F3AF45EE90B70EBF2133B173CE968CB474AAABAF93CFCEC28FB3B9735E143EC240000440000440000440C015094088CCF2B7EA1D481422E2D6439678D0609BD816F7CCD8F2ADA93E16E709090E0EA2450B17122FC3DA243EE0F9476FBD7D7D744AE4BB305E56A46F637CCEF1155F7CF9351D7AED55F9D1CD1FF9EA435FDFF6F69DBB66B3AAEBDB587BCEC904551245EEC3D9CECB2B4C3D2D252287494A7212AD58BE4CFE188FCFF9440A1E9B2633346E67CD352F6763C6FB5F7A51EE24C6AC8383D3B4AE2D2DAD220FCB03CA1179516020000220000220000220E08A0420445CE8ADFA84DAF7613EFFE22BDAFDFC2ECACC5C44FEC233A28C0508079173D2BDDADAF16487232323AA098D8818084B56545C4C5F7EFD8D10361B2836763C6709B7EFEEEE9679494E7D77C6A43BC755B0A9A349035D9DBE4D456525959494524A4A32B5B6B6D203A32CF06A9C4B57AE48AFC4CAE5CBB584835CC7DE9A5B4218B137476F23A3BAE7D53DBBBE8D7E1E7A3EDC86B3B637B7B4D09A55AB64F0BE9F9F9FF03075526555357D2FBC41CB8520828100088000088000088080AB12F0D8BC2DC7F217A378EA9ECE76F9EC01C1F60B86765598F678AE7D070FCB618E1D3D32A5E1EC350E4FC2572407E4E54AFC57FBB6F67603F131A5498ACEA1A1A1C4BB43797979527B47073588247EB678586CB93F7B7678FE7ADBBC7123EDDCB15D16FDFEFD3F88989472F2F2F4140229563E6F5757B7CC2C6F8F2562FAFB5A73FEFC733B650C0EB7FD97DFFE8E264A7E68CD786803022000022030FB09A8EF32FE23190C04663B01784466FB1B74C0FC070607A7BC65ADA569B6B5B5899DB4C49A320798B108B1744B164253DDA2D7D2D8AAFC4FDE799B820203E52E5C9F7CF6B909038ECDC9481F5BAAD52EC4134488228723088000088000088080AB10801071D237A93C1A4E3A3D4C6B8A0438068433CDB3BDFEDA01BA7BFFBEF4C6F4F7F55352D202DAB06E9D58AE152EEBA75B14C99BE0170880000880000880000838980084888381E37620C004AE5EBF4EBC55716868888C93318E95519438BEE5F47767D5258E20000220000220000220E0320420449CEC554E3536C4C91EC7E9A7D3D0D44879F905729E1C28EE286B6C6CA2FFF9DB7FA3DDBB9EA374B115B23E170B07B5B78AE56A1C607FF2D4E9698B9971D4B3E23E20000220000220000220608E0082D5CD5141190838980007D24789ECEDA34284B0178433B8C340000440000440C0980082D58D89E07A361380476436BF3DCCDD65087020BDB5C1F42EF3D07810100001100001100001B726E0E9D64F8F87070110000110000110000110000110981102102233821D370501100001100001100001100001F7260021E2DEEF1F4F0F02200002200002200002200002334200426446B0E3A620000220000220000220000220E0DE042044DCFBFDE3E9410004400004400004400004406046084088CC0876DC1404400004400004400004400004DC9B0084887BBF7F3C3D08800008800008800008800008CC0801089119C18E9B82000880000880000880000880807B13801071EFF78FA70701100001100001100001100081192180CCEA33827D72374DCFCAA6A2BC5CD979DFC1C3560D72ECE811ABDAA111088000088000088000088000083892003C228EA43D857BB108C9C85A328511D015044000044000044000044000049C87008488F3BC0B8B338108B1880615200002200002200002200002B39400848893BF388810277F41981E0880000880000880000880C0A40840884C0A9B633A4184388633EE020220000220000220000220E0780210228E676ED51D2142ACC28446200002200002200002200002B39400848813BE388810277C2998120880000880000880000880805D094088D815E7D4078308993A438C000220000220000220000220E0FC049047C4C9DE11E70951B9429C6C6A980E08800008800008800008800008D88D008488DD50BAEE40C1C141141D15459E5E5E545D5D43DDDDDD363D2CF70D0B9B47030383D4D0D8409D9D5D56F7F7F3F3A5A40549D4D3DB4335E2DEC3232356F79DA861C8DCB91425E6353834487575F5D4D7D7375173833AEE1B171747CDCDCDE2791A0DEACC5D78797A52547414CD0B0DA5B6B676AAA9AD35D70C6520000220000220000220E0560420449CEC755B9B31DD11D36601B1EBB99D949CB4803CC5C734DBE8E828555557D3F90B17292D3595D6AF5B2B04C600FDDDDFFFD2644A5B366FA2552B57107FB82BE3FEE5151574E6EC79398E2AE7E3CF7FF6530A0909A1070F7329F7511EE56CDF4A519191E4ED3DF6CF746868881E3E7A44A7BF3B4BBDBDBDFAAE16CFB9FF4F7EFC17B2FED8896F8508EAA49C6DDB2826265AEB33383844058F1FD38993A70CC635EEEBE7E7472B962DA3F0F030F2F0F090FD7BC43CBEBF7A8DAE7C7F551B4F7FB279E3465ABB66150507076BC5BD42F4DCBD7B8F2E5CBC447FFD8B9F93AFAF0F5DBD769D4E9F39ABB5C10908800008800008800008B83A010811577FC3937C3E7F7F7F7AEDD557283232C26004FE009F9F90406F1C3A44A56565F2835C89147DC3AD5B368B0FFEADFA2279CEFD93162CA083075EA1DF7FF0076A6D6DD3DAF0385C1F1C1444AFEC7F89020302B43A3E6141C2428085CDFB7F38625067E9428DC9F5B13131F4C2EEE7C95B7876F4E6E3E34D4BB217137B5F8E7CF48956A5EFBB2031911667656A824C350A109C9EDB91437EBEBE74F6FC05552C8FEBD6AEA11D39DB34D1A22AFDE7CCA18D1BD64B2F91BA071F6120000220000220000220E04E0420449CF46D1F3B6ADD87B6A5E94FD5B372E095973511D2249620E5E717084F46A5F42464A4A751E2FCF9B43023DDECED972F5B4ADB841061E3655C376FDDA6B2F272E9EDC8CACC94FDD8F371E8B503F4DE071F9A2C8B4A4949969E977BF71FD0932725D4D9D549292929B45E7CD8FB8A0FFE94E464CACA5C4479624EB6187B67D80A8B8AA9F8C9136AEFE8A094A4242130B22828289032D2D3E9B99D3BE83B339E09162AFDFD0374F3F66D2A17CF42E421C44B96F8C9964263ED9AD5B24E2D3B4B4F4BA59D3939B26E442C277B94974F25A5A5728C949424CA16F75CB470A19C0F7E81000880000880000880803B12801071C7B7FE8C674E151FFDBCEC8A8D3FAC8F7CF431B5B4B4CAEB272525744D2C237AE7876F4931220B8D7EB12784FFC2CFCBA73EF9F4332960C69A54CA6557AF1F7C8D32172D941E0A161477C4322563BB22963B9D397B4E2B6611C44BC0D8FBC096283C14B60A11EE97979F2FE6F4399F4A2B2C2C12A2A44478785E931E17163B972E5F968241B5E1232F0BFBF2EBAF29BFE0B156CC62C6D7D74F088A0CE14DF1A384F878AD9E3D1EEC6961BB76FD86C1B2ABFC82022A2B2BA703AFEC37F1B06883E304044000044000044000045C9C00848893BF60AF833FB76986C3477F65537B738DE3E362B5E273172E6822441572C0F8679F7F493FFBE94FB4F80D55172A02B2E73E8D09612F000B08633B7BEEBC14225C1E133D1EABA1DA7150FB79A3654E5C77FDC64DDAB17D9BFC780F0D198F3B51FD9E75EC10F1215F7D73CCA4190B8ADB77EE122FA5F212CBB612E727525171B141BBDABA3A4D64E82B5854B010610B0B0BD3AAC2C3C3E5794343A38108510D980D0BBE15CB97A9221C41000440000440000440C0AD084088B8D5EBB6EE61793729652525A5EAD4E0C8CB9A38BEC33886246941A2D68E03D3D57228ADF0E9C9E0E0A0F018F8506484610C0A57F36E54E676C762AF047B59020303655FE3319F75CDA280975799330EC05F476B64556C6C8C8910A96F6830D7CD20C685E344D8E6CD0B95712E7C6EA91FD7F13D214498040C0440000440000440C01D094088CCF2B73E7C6E2CB8DA2BE790DD9E24FCE95FF639BE830587256B696D3511221C10AE6CCDEA55EAD4E291B7F535B6DE3ECB3B620D0F0F1B37B7FA9A058E25AB125B032B8B320AD0E7F2DE1EF3731A183415361CCCAFACB9A5459D9A1CAB6BC6EF69528902100001100001100001107071021022B3E10577B5D348E16D1AADE4F8040FF25CB2893C52964CDBCCFB07FAE5D8ECB198C8940740DF466D6BCB659C33637878485F6D72DE63E103DFA4E1741708EFCDB8798C9F4EE24CBFB5B039466A48F6ECC040000440000440000440C05D09408838F99B1F2DCDA5D1FB1744028F21F28FF6A05191CFAFEFCE59F2A82B278F655BC99E9E1085A2B1A98978BB5ADEA12A5E24EEB3F4977B73DE0C8EA5507651047DDFBD775F5DCEF851C56D989B484242BC566C4D9242ADB19993F2F20A21C08665BC4944C458AC8899661417331E8B63AE1E6520000220000220000220E0CA0490BCC0C9DFEEC8ED3314B8609862F67A52D806A2F04D44115B8457A4E5098D9C7A8F46EE5F22121E137B5A7DFD783CC4B2A5E63D2FD98BB30C92F4A9FB57E882D3F54B9454FD4C1EA3A22265AE10737388173B5E29ABAD1D1753AACC96E380887F51F95178DC88A781EBFA3138DBBA0A72D797E31C04400004400004400004DC8500848893BFE9F0CD1E14B29CC8D3777CE9909F88258FDAE541814923345A7C87864FFE9E46CE1FA591FC1B76791ACEF9C1D9C6D956AF5A499C17446FEC25D9BBE70593447DDC866322BABABA6473CECFA1B601D6F7E73C247F29B2A8FFD55FFE8C5EDAB7575F35E9738E4DD925728098BB9F1A74AEC86EFED2BE7DEA523BA6A5A6D0EAA73946D893515159A1D54DF644799138E1E1AB22278BAFD132B717C573C7C7C74D7678F40301100001100001100081594F004BB39CFC15CE31DDDD56CED8536CD0142A044A50BA0775978860EA8A6A1A6EAAB6CBD3343535D37767CFD20BCFEF9262E3E517F7D1A68D1BA8B1B189424343285AECAAC5794238AF072FDF32B68B97AFD01E91C1DCD7D7875E1519D26F89AD713931215FB3978493FFCD11D9C57957ADDC4779C6DD6DBEE68CE86FBF7598F8A39FF377BCFBDE0762DB60F36282B3A3738676DE9EB7536CE79B9C24920B0AEF0E97B171CE0F4B3B6BD932B193A7BF23DE7D2B2A3292E26263E9AF7FF19762895B2D8D08A1132344132750B4C4CF96FBA02D08800008800008800008CC56021022B3F5CD3D9DB7B788770E11ABA7429678D0601B51C39971CFC9541EEDC6CD5B141E1E466B57AF9662849717E9971815153F111FD2FD322BB9F17D38933AE712D92CC44B4040006DDDBC49FEE8DBB108B975FB0E959695E98B27751E1D152D4588EA3C7F7E825921C249041788ED853923BCB9ACF085454542809D53C34CE9C801EB9F7EF605BDF3F69B72BB614E7898929CA48DD9DFDF4F274E9EA2575E7E492BC30908800008800008800008B813010811177ADB3EA1F67D9813DF9EA2F2F24A5ABA64B11416EC05696F6F9789FDEEDD7F40AFBDFA8AC51B7256F45191F870F9B265229624486BC74B9F78F9D6858B97659673AD429CB0386153477961F44BD5A9235757545652494929A5A4248BD88C567AF0E0A151AFB1CBCAAA2A7AF8E89110481B65AE0FD588F393143C2EA4E3DF9E5445F23822E6AF6CE4E9DCD4B53A8E8E8C0B3FE3361CF4FE2FBFFD1DAD5FB7567A47028528EB110285CBBF1799E34786C7C757E3E10802200002200002200002EE420042C4C9DF74F5A7E31FBA3331D5BCFC7C13C1A0E6C131176C7D7D63DBFDAA72753C2BB2A35FB87889A2A2A328447848FA8417A0AAAA9AF8C3DF9CFDD7DFFCB3B96283324B6DDEFFF008858684509B104A13D99DBBF7887F381123E74BE1C0F2BABA7AEAE9E931E9C682E1FFFE7FFED6A45C5FF0AC369C8785976999B3F4B434AD98050A0C04400004400004400004DC890084883BBD6D2B9F953FD2DF38F89A6CDD20E2423E3EFAA9494F8EF5E01808B6EA1ACBB1299C219D77A19AEA4E5426133053F02C11A2EFC2F12EFC335DB64F04F327272D209691A7CF9CA5C2C222935B2D5F26D6D43D355E1606030110000110000110000177220021E2A46F7BDFC1C3333633FE4067AF457474B4881309A743AF1DA0C78585329E83631D166664D0BAB56B48253CE4D80B982181AAEA6AB9E31897BE2C76C8BA1A71832A2BAB8873B470F0FA9AD52B2547AE6F696925FD96C95C06030110000110000110000157270021E2EA6F7892CF7745C430ECDBB347E6DDC8CA5C44FC636C1CA7C101E7D745603BCC90C07D11A7C2395878572ECEA0FEDC8E1CC3064FAF78E9D6D7C78E9BAD432108800008800008800008B832018FCDDB72260C42E8E91C5B731F101CE2CA1CF06C6608448BD88E1776EDA2B8B858836D7A07455C05FF15FFEEBD7B4E2F42388E65B7D88698ED519EE57817338F6F97A22D9B364ACF48B098878787871C93051C6F1DCCB129BC73962D4BCAEC32290C020220000220306B09A8EF3273B18DB3F6A13071B7250021E2B6AFDEB607E7DC216122B8BBBBBB5BEE52655B6FB4F617394E3811A4B7B717D5887C221D4288C040000440000440C056021022B612437B672680A559CEFC769C686EF50D0DC43FB0C911E0BC22C54F9E4CAE337A81000880000880000880800B12F074C167C2238100088000088000088000088000083839010811277F41981E08800008800008800008800008B822010811577CAB78261000011000011000011000011070720210224EFE82303D100001100001100001100001107045021022AEF856F14C20000220000220000220000220E0E40420449CFC05617A20000220000220000220000220E08A0420445CF1ADE29940000440000440000440000440C0C909408838F90BC2F440000440000440000440000440C015094088B8E25BC53381000880000880000880000880809313406675277F41FAE9A5676553515EAE2CDA77F0B0BECAE2F9B1A3472CD6A10204400004400004400004400004668A003C223345DEC6FBB208C9C85A62632F340701100001100001100001100001E7240021E29CEFC560561021063870010220000220000220000220E0020420449CFC25428438F90BC2F44000044000044000044000042645C0ED634436AC5F4F6D6D6D945F50302980D3D90922643AE93A66EC0DEBD751506020B5B4B6D2ED3B771D7353DC0504400004400004400004660101B71622EB8508D9B871238D8E8ECA57E54C6204226416FCD763C51457AD5C41E16161545959052162052F34010110000110000110701F026EBD34AB5D78425884787878D09E3D7B2873D122A778F310214EF11A30091000011000011000011000816924E0D61E11E5016111A2C408B356E5D3C8DDE2D0102116D1A0020440000440000440000440C08508B8B510E1F7A84487B38811CE13A27285B8D0BF333C0A088000088000088000088000081810707B21C2349C4D8C18BC2127B8080E0EA2E8A828F2F4F2A2EAEA1AEAEEEEB66956919111324E627878849A9A9BA8B5B5CDA6FE961A87CC9D4B7171B154575F6F764C8ECD8812F36E6868A0E696164BC368E5DEDEDE14151949A1A121D4DBDB478D4D8DD4D565DDB38685CD937DFBFB07A8A6B686F808030110000110000110000110B04C0042E4291B671123D6664CB7FC4AED57C3E263D7733B29396901797A8E8513714C4D5575359DBF7091D2525369FDBAB5343030407FF7F7BF34B9F1964D1B69E58AE5E2C33ED4A0AEA1B1916EDCBC6553F0F6CF7FF6530A0909A1070F73A9B0A888B66DD9421111E1DABC6A6BEBE8C4C95354595545CB962EA1AD9B37138B03651D1D1D74EDC64DBA7AEDBA2AD28E7E7EBEB47BD72E5AB46821F9CF99A3958F8C8C50850832BF70E9129595956BE5FA938C8C74DABE750BC5C6C468C5C3C3C354F0B890CE9C3BA795E1040440000440000440000440C09080576252F27F362C32BC1A1CE897053E7EE31F68862D5CE7AAA9A9496EE59B9696266346F8C85BFB72B9A3CCDED9D327BBCCCBDFDF9FDEFCC11B9490102F59A8E7E7581AF64470607F7F7FBF14032C4E2E5DF95E3591C76D5B3653CEF66D3447F761AF1A048AED6C59C4B038606F8635B6516C83CB63F5F4F4D22A296E420CE6C55E9BB4D4141A1C1AA297F6EDA580007F8361FDFCFC84A04A129E8E5EAAA9A935A87BE3D06BB4382B8B7C8447446FFCACEC1D4917732D2D2F17DE912E7D35C5C6C6D01B075FA379F3C6050F3760D1C69E15BE1F7B5958DCF0B3DEBD7FDFA03F2E40000440000440C05602EABB6C7070D0D6AE680F024E47C0F0CBCBE9A6E7F809398B67443DF9E9CF3F56A7561D77BDFABA55ED9ED5E8C02B2F132FA9626B6A6EA6FCFC022AAFA8A4989868CA484FA3C4F9F369A1F0069833DEB276AB10226C7D7D7D94FB288F4ACBCAE447397F9C67672F266FB1CC6BEF0BBB85B0E8111E8E6273C3982D4B494E22F6385CBB7E834A4ACB28213E4E88884C0A0F0FA7E0E060DAB7E705B9131AE7EC282A7E42F38490604FC782C4442910562C5F46376FDDD6C6DEFFD28B942E04275B4B4B2BE5897C32E54274F0786929299496964A2C9C0E1D3840EFFDE143294CB96D4040001D78653FB16063634FCCE3C2226A14DE1E6693959929968545CA3AFC0201100001100001100001103025002162CAC4ED4B52F9035C7801D83A3BBBE8C8471FCB8F74BE7E525242D7C4F2A6777EF896FCE0E632636311C25E015EDA74FCDB93F430F791D684975671BCC6CE9CEDE4E3E323058B2D4284073A73EEBCB6C4AAA8B8988A9F94D09FFEE8879A87E47B31BFEFCE9CD5EEC94BB2FEE6AF7F4181423C848785939798DBB0981B2FA75ABE6CA96CD72D04D11F3FF944088931EF178F795DF43BFCFA21E2E557F3E685127B65F879D8D6AD5D431142ACB0B187E5BD0F3EA421E18D61E3E7E1E7FC9160C48205060220000220000220000220604A0042C488092F39523B68F192A313274E68C1EC464D1D72692F0F872D938D1701E0CACE5DB8A0891055C61FF19F7DFE25FDECA73F915E0E55CE47FE609F2B3C136C8FF2F20D44882C14BF2E8B655CBC8C8ABD141C506E8BB107C538CE83BD11BCC48B8505BFB39B22FEC4D8D8CBC15E0A5F5F1FB19C2C82EA45007BE2FC04AD19C7BC2811A2158A932FBEFE86FEBD784EF67C448AE556CAA29E7A8B586C7DFEE5579A0851F51C07734E8CC91E1A180880000880000880000880802901B74E68688CC3D94488F1FC1C75CD3B4D292B292955A706C77611F3606EF72B1617CA6A6A0D633154391FEBEB1BE425C77DC48BE555D65AA385781D16286C5D62472F9E9BB135378FEF9AC5B11F6CD1629999B252B1CCCB9C714C89DA712B227C5C34B167858D633F78E99A392B164BC360200002200002200002200002E609C023F2948BB38A90998811515E0ADEA6D7DC47BDFAA7D4D2DAAAC591A832FDEE511305A2EB05C5FC8404B92DB01A63A223C7874C68C22362AD450ACF089B5E6C98EBCB822B213E9E828282A40787373060CF0F5BAB38B7646DEDED72FBDFA0A0404B4D500E022000022000022000026E4B001E11F1EA9D5584CCD4BFCA7EB5539A88E198C8FC7C7D4DABC79C0DA6E54E58E241D64D7694C6C58DF2A6A8C779B6EE19EFABFAE008022000022000022000022040E4F61E11671721331123C2DE0A5E62E52B84467C5C1C55D7D498FD6F459FA74335E07C1ECA62A2A32DE6DF50DE086E5B5555ADBA38F4D8201216F2B2308EFFE067E15DB3CC59D8D3ED7939B9A15A86C59E107E06E51931D78FB739662F0A0C0440000440000440000440C094805B7B449C5D8498BE2EC794A8F80DBE1B27073467D98BB3E476B9C675E515155A11E7D9B064D1D16371289C8B841324CE84D5D78DE73049494E363B0516296AA99A1221DC50C59CB0D83027C8B80D6FFD0B030110000110000110000110304FC0AD3D222122E3372FB57186DDB1CCBF1EA267C5884C87C7A44CEC3035383824B6D7F5A6D5AB5612079DDFBBFF409B227B49F68ADDA08C972971038EA7E8E8EC943B67658B248145622B5BCE23A2B74D1B37488F0B97E93FEE3929E1CA152B64E2C07BF7EECB2D76F5FDEC7DCE59D3957176747EEEA626C3C0F3FD2FEDD37285708E10657CBE686186DCA6F8D5FD2FD3BBBF7FDF60BE9C8385133AC2400004400004400004400004CC13706B2172EDDA351925C0C1C72A91A1794CEE55CA1FE3DF9D3D4B2F3CBF4B8A8D975FDC472C1E787B5BCE341E2D76D5E23C2103030372F996319D4B97AFC86485DC86050B27F8E3E4832C6C38A1E11291D0908DB3C25EBC7459EBCE090293162C90D79C9CD842050D000040004944415490B7D49D4EABADAB93028B738970D2C21F889C217962CBE132E1D58910DB0AA78A5C2A9CBC918D9762717E1265376EDDA22C4EA428DA7120FB0FDF7E5326346C686814224B243414759CB704060220000220000220000220609E805B0B11467255881167B6E9F07858F3BC37442E8E70B15DEDDAD5ABA518E1E47D2A811FF7E7ACE50322A87DB1F07A18DBADDB77E4873D7B19FCC5F6BC6B56AF923FFA769C7FE3C4C9530659D5F5793A62457C8923EC4B9127844548BA5846C5A262CBE64DB4853619DC9A931D7EF2E9675A5675AEE47811CE1FF2F6E11F106F41CC3135FAAD8BB94DB3D8D67740882DFD4E625C0E0301100001100001100001102072EB1811FC039898C0896F4F890FF0CFC55FFA0B89BD079C04B0B0A888F8E3FDC33F7E2496B459EE7FE1E2253A7BFE02F116B6C6D62482E13943F95DB1FC4A6FF7C5F22FDE9E97B7D3BDF7E0A1BE4A2E9FE3025E4667CE4647C6CA2DD58FE8FAB108D2DBA79F7F2E3D237D7D7DFA62792F8E79F9F4B32F481F84AF1A5557D70816C7B49C28AA9CC7CFCBCF1719E93F914BDCB8DCD2BC541F1C41000440000440000440C0DD08786CDE9663FECBEE29899ECEB10FC980E01077633323CFBBEFE061BBDEF7D8D123761D4F3FD89FBEF3434A14CB903A3BBBE81F7FF56B7D95C1392FE50A114BBA78BB5CF612E8E3420C1A8A0BF64EB018311605C6EDA6E3DA576C57CCC91C3956656060502C456B94F12ED6DC2B22225C04AD87D1F0D0B0DC656C26E66FCD3CD106044000044060761350DF652A91EFEC7E1ACCDEDD09B8FDD22C77FF0760EEF939D0FA8D83AFC9AA061117F2F1D14F4D9A711242B52B5675CDC4BB5EB127857FAC314EA23853C6CBA826BB8317C7D51807BACFD473E0BE20000220000220000220301B084088CC86B7E4E0397250FAD0D010458B388D70111B72E8B503727956695919F9F9F9D1C28C0C5AB7768D083E1F4B78585656EEE019E276200002200002200002200002B39D0084C86C7F83D334FF2B57AFD1BE3D7B84F0F0A5ACCC45F2C7F8561CF7C081E9D745603B0C044000044000044000044000046C218018115B68B9595B4E3AF8C2AE5D1417176BB04D2F6FBBCB59C8EFDEBB0711E266FF26F0B8200002200002334B00312233CB1F77B72F010811FBF274D9D138E09C83B13986A3A2B2D2659F130F0602200002200002CE4C0042C499DF0EE6662B012CCDB295989BB6B725E0DC4D11E1B14100044000044000044000046C20803C2236C04253100001100001100001100001100001FB108010B10F478C02022000022000022000022000022060030108111B60A1290880000880000880000880000880807D084088D8872346010110000110000110000110000110B0810084880DB0D0140440000440000440000440000440C03E042044ECC311A3800008800008800008800008800008D8400042C40658680A0220000220000220000220000220601F021022F6E188514000044000044000044000044000046C20002162032C34050110000110000110000110000110B00F016456B70F47878C929E954D4579B9F25EFB0E1EB6EA9EC78E1EB1AA1D1A81000880000880000880000880802309C023E248DA53B8178B908CAC255318015D41000440000440000440000440C07908408838CFBBB0381388108B6850010220000220000220000220304B09408838F98B830871F21784E98100088000088000088000084C8A0062442685CD319D20421CC3D95E77898FAB270FCF516A6F0FA6CECE406D584BE55A03A3130F8F519A3FBF9602037AA9AC3C9E7A7BE718B5B0EF6550500F858676108D125555C7D877708C060220000220000220000216084088580033D3C5102133FD066CBFFFE2AC62F2F41CA1E2270B0C8488A5724B77888C68A1AC454F647540401FDDBEB3D85253BB944784B7D2A2852572ACEA9A681A1DF5B0CBB8180404400004400004400004262280A55913D199A13A88901902EF24B71D25080127791598060880000880000880C034128047641AE14E66688890C95073AD3E4D4DF3282F3F95D81B525E11E75A0F87A70101100001100001100081A70420449CEC9F02E70951B9429C6C6A988E8308F0D2A88A4A081007E1C66D4000044000044000046688009666CD10F8D9745B8E7BE0C0690E6AE6735BCDC76748F60D0CEC216FAF615BBBDBD49E03BD799EBEBE8366FBF1FCB9DECF6FC06CBDB9421E2B38B8DBE298E6FA38AA6C3A9ED75173C77D400004400004400004DC9B003C224EF6FEADCD98EE8869B3805898514271710DE4293EF0D9F8AFF50D0DE1F4B83099C245907356E6131A1CF4A6B3E7D79B4C2926BA8952532AE447BCBEB2A535440674B7B484E88B6D3EE700EB058935D4DA3697EEDCCDA2ECC5451411DE46DEDE4372ACEE6E7F7AF82883DA44FD9C39FDB428A394A2C59CF8E39DADAFCF8F2AAB62E84949A2BCD6FFF2F61EA6E405559428C6670ECAFAFB7D89E79F9797468343D3F39F0F8BA55D3BBF97B7CCCB4F9373E48BE97C5EF57C388200088000088000088080A3084CCF9794A3668FFB4C1B01FE585FB93C8FE6CD6B37B80797F3C77C58581BD5D446C98F7ADEB2D6D862631A69D9D202E362791D26C65CBD32976EDE5A224584D9465614F25CF8C74B7859962F2B1022A4D5A05760602FAD5DFD50DE87E7C262446F7C9D9E562EC620218C0CC508B7E7DDAB8C8D3D29FC6C73858784E7DF278489BD8D43D5F9B9D83C3CC63D50D3F9BCF266F805022000022000022000020E240021E240D8B3E9565999C59A08618F426555AC100DC1142C9635C5C636107B3BD81B61CE58A42C59F25856B107A154E4C2686E9E475EE22FFDEC454949AE92E261D5CA4774EDFA32EAEA0E30378CD5652173BB645BCEB9C1E2C8D76790E2E3EBA56060EFC2BAB5F7657D7575B47C0EFEC4E7F9278A5C1D2C6292932A855764BEB66D6D6A4AA52642EA85F7A742048C778B39CE15F7898D6910CFDF48BCCC6CC1826AE919B27AA2766A68EFE7B5D3B4300C08800008800008800008D8440042C4265CEED13840C483CC4FA8930FCBCB9B6EDDC9A6A1212F79DDD3E34FFC71BE7C59BEFC98374764B158AEC54BB946C432AE3BF7B264823FD5AE4D24FB63E1B142F4E725541962B9D49DBB53CF93C122A4E0718ABA0D3509E1C31FECFC2C6C2C50789996324E3AE823044B82102C5E5E220646784FBABAC6041197373686D1C0A00F3D124BB04646C642A9FA4459A3D8D12A2CAC5DC698840BC1355366CFE79DA967C07D410004400004400004DC9B0082D5DDFBFD9B7D7AFECBBFB2DCBC0C4D84A8323E3ECC5D68B69C83D1D95BC0565A3ADF4084C842F1ABBE3E826AEB22E56548C8F8BD54FD648EFC616E6C1CFFA1AC4A78438C8DE7A18C83F195B1A0B92DC4D1C3DC0C4D84A83A8E91E1A47F6C1CC03E5366CFE79DA967C07D410004400004400004DC9B003C22EEFDFECD3E7D48F0B838E8E80832DB6678D853640F0FD2966FA946FA8F73F67E58325EEEC5B1167EBE03D2BBC04BB838C683974B4D647905A932C85CDF6660C0C7A48CEB794C65BCB4CAD80C978499C6B9707B5EDAE5EFDF473E22789D3D381CB8AEBC2C2A66C3D199C8A7F3798D19E11A04400004400004400004A68B0084C8749175D0B8C78E1EB1FB9D82E78EFDA5BFA7770EB1E0B0641D9D81264244EF4D514B9DCCF5D7D7711F5E0AE52F12F84545359B6BAE9515152FA03EF2D3AEF9442D9D322834BAB0552C448B79242757CAE55D2A70DC68C819BB9C8EE79DB187C18D410004400004400004DC96008488DBBE7ACB0FCEDBF1B2F93CDD06D7524BFDB6B6E36DCC7B16C6EB2D9FB1D7A2B6766CC996A5561CB731DD96915E2602EA2BB5DBF0877F6FAF9FDCAE97D904080F09C794C0400004400004400004400004264F004264F2EC9CAA676D59A94DF3894D4AB6D89E9763F1B229161ABC5DAD7E8993BE93DEFBA1CA3B3AC69763058958915EE15531679C5450995AFEC57945A69A5B448D39D9236FE9AB4408E719B9773F93DA050FBD4785EB59ACC0400004400004400004400004264FC0F2BA9BC98F899EB39C801206FC182C48CC19EF48A50FF0566D3AC5722D65A1A19DEAD4E4181ADA21CB38DEC192D031E9E480027DDE9492D204E23817BD08E129701E14180880000880000880000880C0D40840884C8D9F4BF66621A2B6EB5D28B6D755A2413D2C7B4956AE78A425DD53E57C1C1AF6923937F85CC558F0B9DE38FE42099C8902DAF57D1C753EA45BFAC5D9D58D2D646EA7DCBED7B87C32D7BEBE62FB60B14DB239413799F1D007044000044000044000046613012CCD9A4D6FCB41731D1CF2964B9238E120076AAF5BF3406EC3CBA281975B711E0DDE4D8AE325CCC589E4E5A7D2EA55B93297080B96D2B20491D03054F6898868D3963E0D89FB14165A5E22E6A0C735B84D4BEB5CE901E1E74E4EAA96DE1ACE49C2A2243CAC95162D2C95CF61D06912173CFEC6F577B56CEF172EAEA55EB1140C0602200002200002200002EE420042C45DDEB48DCFC91FDF058F93297351891423EC15D17B4638D33A0B11154FA11FBEB925941E3C5C48CB9616C81893450B4BF4D5F29C03C0395787E116BA26CD1C5E302C3C3A6565F1C29B5325131E2EC92E3498032FD3E2E4887122BBFC548CBD4A1C8FA26C6E482784888281230880000880000880805B108010718BD73CB9872CAF88A7D6D6108A17D9C7799728FE2B3E675AAF151FE2AD220FC84401DB9CB0903FDA53532A4C12FF715FDE86B755781FA664627C36E3180E35A6A57273F5A3343616D73D2E4A96A280C588BF4E2C70FC4BBEC863C24BAA5888188FAFAED5D1F83EFA720E84AF164916992D2F856B12DB172BD3EF3BA69F174DD3F3AA79A9A39A078E20000220000220000220309D043C366FCBD17FF798DCABA7732C30372038C4A40E05F627B0EFE0619B06557944ECB96B96B513582E3C1E3122989DC5C9A52BAB2D7653BB6F7183BE3E5F117F327BF4AFAFCFA0B673D8746C1DEC2532D1B317060602200002200002D61050DF653D3DE3BB4F5AD30F6D40C01909CC9E2F4267A4E7A27362E1B06A65AE7C3ACE805EF038C5E449E788A545E111ADB2BCA969FCAFF9260D45012FE1E29FD9682C3EA64380281610218A048E200002200002200002EE4660767E1DBADB5BB2E179CF5C386FB6F5CE6DDBCD969B2B64D1303CE445E1E16D142A621778C94E5D7D04F1D2242F11A4CEC1EABC9B964A78D8D834CFDC302803011000011000011000011000018B0420442CA271EF8AC2A2245A15FC48C643242755891DA4AA4C80B040792C76BDE2C0761808800008800008800008800008D842003122B6D072E2B6D31123C2F1118BC4AE59916209968F3857C6DBFB728075A948F80711A2A8E00802200002200002D34F003122D3CF1877701C0178441CC77AD6DD896323781B5E368E1BE1ED6679D916EFF8040301100001100001100001100081A9108010990A3D27EA1B9B943CADB399CD01E7D30A06838300088000088000088000084C8A80E7A47AA113088000088000088000088000088000084C810084C814E0A12B0880000880000880000880000880C0E40840884C8E1B7A8100088000088000088000088000084C810084C814E0A12B0880000880000880000880000880C0E40840884C8E1B7A8100088000088000088000088000084C810084C814E0A12B0880000880000880000880000880C0E40840884C8E1B7A8100088000088000088000088000084C810084C814E0A12B0880000880000880000880000880C0E40840884C8E1B7A8100088000088000088000088000084C810032AB4F019EA3BBA6676553515EAEBCEDBE8387ADBAFDB1A347AC6A874620000220000220000220000220E04802F0883892F614EEC52224236BC91446405710000110000110000110000110701E021022CEF32E2CCE0422C4221A54800008800008800008800008CC520210224EFEE220429CFC05617A2000022000022000022000029322002132296C8EE9E42E22C4DBDB9BFCFDFD1D03751AEFE2E5E9E912CF318D88303408800008800008800008680410ACAEA170AE939916212FEDDB4B738383A9B5AD8D8E7F7BD26A38D6F65B9C95492B57ACA0C888080A0C0C200F0F0F79AFC6C646AAADADA3EB376F515F5F9FC97D376DDC4049898926E5960ABE3E769C3A3A3B65B5BEEFF98B97A8BAA6C65237591E1F1747DBB76E91E777EF3FA0BCFC7C93F64B9788D89DF4748A080FA7B0B079C4A2AABDBD9D9A9A9AA9A2AA8A2E5DBE62D227303090F6BFF4227998D4982FA8A8ACA44B57BE375F89521000011000011000011098A50420449CF0C5CDB4086124C94949346F5E28353636D944E859FD020202E8E08157E4F8C60387CD9B47FCB3302383B28450F9EC8B2FA9BEBEC1A0595C6C0CA5A5A51A944D74C19E162544F47D038302E9B7FFF62E0D8F8C58EC3E776EB076AF4A212A8CED85DDCFD3DAD5ABA488D2D785868612FFF03C93162CA02FBEFA8A3A3BBBB4267E7EBE946EC3330C0D0F6B7D710202200002200002200002AE420042C4C9DEA4338890E942C21FE03F7CEB30C544476BB7A8AAAEA6BABA7A1A191D91DE91989818F29F3387A22223E99DB7DE24F668143C2ED4DAEB4FEAEBB9DFA8BEC8E4BCBFBFDFA48C0B62C57D9EDBB9834E9EFECE6CFDB30A0F1E7895D8ABC33622C44C597905353737D3C0E020850BCF48725232F1F3A6242789677E93FEDB7FFF9FB2ADF1AF9E9E1E6AEFE8302E36B86E696931B8C60508800008800008800008B802010811277B8B9C2744E50A71B2A94D793A3B72B66B2284FFCAFFE5975F536E5E9EC1B8E16161B4FFE517697E4202B1F72467FB368B42E4DDF7FF6076F996C180135CAC11DE8C27252554FCA4648256A655BC642B2B7391ACE0E563C74E7C4BB98F0C9F2356786E0EECDF4F1111E15260652E5A48F9058F4D062B2A7E223C265F9B94A300044000044000044000045C9D0082D55DFD0D3BC9F3F10739C78428BB2C62278C4508D7358BBFFEFFFEBD0FA8A6B6563665CF48467A9AEA66D7A3979717ED796137CD111E185B6CFEFC046D39D6E3C2221311C263719CCBB90B17B56117676569E738010110000110000110000110208247C4C9FE15589B31DDC9A6FDCCE9648B0F716FF1E1CF5658544C172E5DB6D887E336BEBF7A4DC492BC2ADBAC5CB15CF6B1D86112153C0716381C93B247C47A7CFEE557568FC24BC794F1722C4BC6C1EDC7BF0D20163C1DCF587E65690C948300088000088000088080AB12801071D537EB64CF959C9CACCDE8FE8387DAB9A5934779F9343834445E9E5ED4D3D36DA9D9A4CB8F8BE554B1B17F42C14141B4247BB15CA2F5E061AE55E3B1D746D992EC6CBA73EF3E75779B9FE3CD5BB755531C4100044000044000044000047404204474309CF1F4F4E71FDB34AD5DAFBE6E537B47350E0D99ABDDAACACC0E545AA5EEA4502C7B9A2EE300F1532250FDC02BFBE532AB5D3B7752454525B589AD779F656565E5D4DBDB2B7386444646D0FFF6E3BF2016571C27525B57F7ACEEA807011000011000011000011010042044F0CFC02104541C46675797B69DEE546FFCD60FDE9870D7AC4A917FE3BBB3E72CDE8685436A4A0A2D5FB69482C476BEFBF6BC407FF8E34716DBAB0ADE0E9897963DFFDC4EF214490C392FC8C60DEBE54F6B6BABCC4F52525A26F38EF4F70FA86E668F2929C9F4A73F7AC76C9D2AFCEAEB6F64EC8CBAC611044000044000044000045C8100848893BF4567F570D882CDD7C7877C7D7D65174EF6672F4B48889F70284B5BF7EA3B7D7BEA94D8A12B9EC2454242CEFBB17EDD5ABA76FD86BE89D9F3EB376ECAB88F2D9B37C9AD8055A37922E6847FB2172FA6E776E4D0C3DC4774F6DC79B9ADAF6AA33FF2D230FE99C8E6F88FC7A44CD40E7520000220000220000220309B084088CCA6B7354BE7CAB93586C576BD1CB4AD0FF49EEAE3F012A989F28858B34C8A3D16C74E9CA4370FBF2183E939933A8F5B2772943CCB783B5EFEE1A4858B1666507C7C1C454745938FCFD87F56BCFDF0BAB56B64FDBBEF7F6076AB610E626F6A1E8F3931774F5E0606030110000110000110000157230021E2E46FD455624438DF062F610A1119C7BDBDBD694804A24FD53E3AFAA9D98F7B5BC72D2D2B935E90CD1B378824847EF4E2DE3DF4AFBF7BD7EA61CACACB4542C372D99E97A0652FCE9201F089F3E7CBB2E8E828913C3187BE3976C264CC52217A9047C4040B0A400004400004400004DC8000F288B8C14B768647ECE919FBAB3E6FE19B103FF192AA9998EF19114B525D5D236FCD9E8D9D6259D5648C05D7ADDB77E877BF7F9F2E5CBCA40D91A2DB354C2BC40908800008800008800008B8310178449CFCE5BB428C0823AE143B65F10E536CC9C9499A0781AFCD99970802DF2A9649797A7810EF70C51FF7D36D5F1F3F4E7FFACE0FA5578463452E5C181712FA7B478878125E6636303840ADAD6DFA2A83F3F34288648BAD81395B7CC8DCF15DC30C1AE10204400004400004400004DC94003C226EFAE21DFDD88F0B0BB55B6E101FF90B1213B56B73271BC532A9AD22107CF3A68D06C1E0E6DADAABACBEBE81CE3FCD86CE9E9B2D9B379A1D9AE3497E22B6ECFDF19FFF995C6E66B6D1D3420ED467B3C752B4A743E200022000022000022000022E41001E11277F8DCF8A11992D1E13CE64CE5E91F909092298DB87F6BFB48F7EFBEE7B661301A6F3EE5522C89B8D83DCAF5EBFEEB0B7744DEC86C55BEAA6A7A5693B7D19DFFCC993125ABD6A25713CC8CE9CEDF4D537C78C9BC86B7E86E0E06079DEDA66D97362B6330A41000440000440000440C0C5094088B8F80B9EEAE3F98BAD63798BDA89ACA9A959EC1E553051135977522410FCD1DB6FCB5DA5788BDB3FFB9377E492AB529173A37FA05FC68E242727D1B2254B647E0EEE545854443CBE39E30FFDE1911173555A196736E7B80D5BECD8F16FE9CFFF6C2CEBBAB97EF71E3CA0552B57C844882B962FA3A8A828BA73F72ED5D6D651577797105BF3297351062DCECAD2BA5BCA261F1E1EF64CBE8D8D4D54F0F8B136164E40000440000440000440C01508408838F95B9C698F4790C871B163FBB60929B1B7C31A21C2C1E09F7FF915BDFCE25EE94D0813628493025AB2070F1F128B024BB64DC4903CCB383BBBAD42C438EBBAF13DF8394E9E3A4D3B727284D7C487E2E362E58F713BBE1E1142E9CAD56B74F59A79AF0E07EE3F2B78BFE07121848839B82803011000011000011098D504204466F5EB9BBEC98F8E8E5A3DB8BEAD3A5747E34158B0747476D01611FB919A9A2A7377E8DB70BFB6B676FAFEDA35B301EA96C6D58FA13F1F1E19D62E555F75D42ACC9CE8B3AE73B571BE92EB376FC95C232FEC7E9EA22223350F8E1A8A05082FC73A7FFE22E5E6E5A962791C19B19E2D77B066BE0637C00508800008800008800008CC02021E9BB7E54CF855D4D33996093B203864163CCEEC9FE2BE8387EDFA10C78E1EB1EB78F61C2C2C6C9EF406848684C8654E8D4D4D545E5169366EC49EF7B5F7587E7EBEC43943626362483C08D5D5D551456595CD9E187BCF0BE3810008800008B81E01F55DD6D3D3E37A0F8727723B02F088B8DD2B779E076E696925FE99EDC6D9D98B8A9FC89FD9FE2C983F08800008800008800008388A00B6EF751469DC07044000044000044000044000044040230021A2A1C009088000088000088000088000088080A308606996A3485B791F678EE9B0F211D00C044000044000044000044000049E49001E91672242031000011000011000011000011000017B138010B137518C070220000220000220000220000220F04C021022CF448406200002200002200002200002200002F6260021626FA2180F0440000440000440000440000440E0990420449E89080D400004400004400004400004400004EC4D0042C4DE44311E0880000880000880000880000880C0330940883C13111A800008800008800008800008800008D89B008488BD89623C1000011000011000011000011000816712801079262234000110000110000110000110000110B0370108117B13C578200002200002200002200002200002CF240021F24C4468000220000220000220000220000220606F02DEF61E10E3D99F80A78F2F45666FA479A94B28286601F906CF933719E86CA5AEBA726A7DF2901A73BFA791C101FBDF1C2382000880000880000880000880C03410F0D8BC2D6774A2717B3ADB65754070C844CD50374D04A2966EA2A45D6F928F7FD0847718ECEDA2B2D31F52C3832B13B643250880000880000880C0EC25A0BECB7A7A7A66EF4360E620F094003C224EF64FC1CBCF9FC2D25752777D29452FDB4671EB5FB06A862C54D25FFE3105462552FDFD0B14189D4C2D457768B8BFD7AAFE6804022000022000022000022000028E240021E248DA56DC2BF3D0CF29242993468687C9D3CBCB8A1E864D58B8C4ACD925FBB697E553EE077F67D8005720000220000220000220000220E0040420449CE025E8A710149B242F272342D438AAAF1A4B95CFD6E3C28C0C5AB96239D53734D0D973E767EB6360DE2000022000022000022000023A0210223A18CE705A77E71CC56FD8AB4D6549943FBDB4701E05F878525BDF301D79D84CD59D6341E99991FEB4717E1005FA78D1E3E65E3A5BDA4183C3E3213F3C962BD80BBB775168480865A4A751831023B98FF25CE1B1F00C20000220000220000220E0D604B07DAF93BDFEB2331F51D5B5137256696173E8ADA51114E0354AE7CF9E21AFFE4EFA776BA328C8D793B28408F9D1B2088AF4ECA347D7CED39684007A6B49B8F63435D78E138FE512363A2EAE5CE279F0102000022000022000022000020421E28CFF088687E4AC9E4F9D2B8F7FF3377F43BB76EDA2DDBB7793A78707ED4C09A14D89C1B26EEFDEBDF4FCF3CFD35FFDD55FD1A2087F0AF71F73728D0C8F38E3934D6A4E274E9DA6C7854574E9F21578432645109D40000440000440000440C0F908606996F3BD13EAEF6891B39AE33DA613ABAAAAE4B53A0688F239DE1E0665AA6E8E58C24562A3AC81AE36277CB2C94DA9508810FE81810008800008800008800008B80E010811277C9783DD1D7256F7EB7A68576A08FDC33FFC03C5C5C5D1A1438764F98DEA2E4A9AE747F1C1BE74E4C811FAE8A38FE817BFF805B5F40E515DD7A06C33D83D96FFC59E8F17131D4D7343E65255553599DBBF3C5ECC313838982A2A2BCDD61BCF65AE681B1515499E9E9E5429C6ECED9DFA56C37E7EBE94B420897A7A7BA8A6BA86864726EF19E2B1F899030202656C4A73CB9840347E0E4BD7919111141E1646C3C23BD5D4DC44ADADAE230E2D3D33CA41000440000440000440C05A021022D6927260BBC19E4E79B73322F83C21C497329392E8D7BFFE3571A4C4F9B20E7AEFBFFCEFE4E3E343A1BFFC47DAB46993FC69EC1EA4F71F34890FEFB1780A35C664A61D1519493FF9F15FC8AEC74E7C4B414141B47CE9520A0D1D4B6A392A62360A1E17D2899327A9A7BB87B66EDD426B56AD247F7F7FD967447CFCB7888FF613274F51496999C9147807ACB56B565374549456C77DDADADBE9FE838774F1D265AD9C4F5EDDFF122DC9CEA6818101FABBBFFFA556F7F39FFD94424410FB8387B972C956CEF6ADC473F7F61EFB673D3434440F1F3DA2D3DF9DB549E470FFBD7B76D3E2CC4CF2F5F5D5EEC742E2CAD5ABD4D9D9493F787D4C141EF9E8632A2A7EA2B5E1932D9B36CA5DBE4243430DCA1B1A1BE9C6CD5B74FBCE5D83725C80000880000880000880803B12801071C2B73EDCDBADCDEAF7F79AC8572CC58A0BF2A1B2B67E5A5A798A868BBE270F9163A4E8E41FE99BA4DDE427EA3BFA87B53E7C32243C029335F65078885814B6642182B2321769D75CC675998B16127B0C5A5A5A69B510217AE3FE11111174F0C0AB74E4E34FA8B2B24AAB5EBE6C29BDB8778FC1785CC97DC2E6CDA39C6D5B855725888E1DFF56EBA3E6C347BDA9F26021945E1162253020405F2D05C98A65CB2864EE5C7AFF0F470CEA26BAD8FFD28B94BD38CBA4C9BC79A172EE0F7273B5F97B7A1AE67AD9B665336D17CF60CE5824ED7D61B7F0900CD3BDFB0FCC35411908800008800008800008B80D010811277CD5C34363DBF3AAA90D0C8D4811C2D7F57353E86FFFAFFF24ABEE7A2651BFD8AEB75F7CD81ADBC8409F71D1A4AE176765525757B7F84BFE4D99C7233D2D4D0A9300F1D19F929C2C7FFAFBFBE9EAF51B545D5D4D89F3E753A6102E11E1E1D243B26CC9124D88444747D1EE5DCFC98FF82131E7EBA24F79452579787A507A6A2A65897B0508AFCAEA952B45DD4DB19CA9D9AA39A7A424137B69F8E3FEC99312EAECEAA49494145ABF768DF468F03C594CE5E5173C73BC6DC2BBA344488F582AF6486C155C525A2A96678D3D2F8FB3547867CCD9AA952B68AB10226C7D7D7DD24B535A562605110BBAECECC5E42D04248B115EDA5658546C6E189481000880000880000880805B10801071B2D7BC2A2596126322A9796490863D7D4C66571F9246991BC63E76BFBD5A6752CF055EA2EF0B99D15451E749B74B6ACDB6B1B69097437DFAF91754565E2EBBF0C773675797F45C70010B80CFBEF852FBA82E1642E0494909FDC93B3F94EDD90BA08CC549B3F0A0B03DCACBA3ABD7AEAB2A198C3E3038401BD7AF976569A929560B11EE70E5EA353A73763C6F0A0B1C9EFB733B72E478898989560911162F6CECB5F8E6D871CA2F782CAFF9D79DBBF7A4905ABF6EAD56A63F6111C25E1A5E6676FCDB93F430F79156CDCBC738C66467CE76B9AC8EDB4288687870020220000220000220E086040CD7BAB82100677BE41D4B53282B2E94C2BAC7973319CFF19F8400E11F4BC67D790C1E6BAAC641E44A84A8B138C66170706C8BE166E1B530FEA06611A002B339B85DD9A3BC7CFAD77FFB9DFCD18B10557FEBF61D296CF83A4A173FA2EA2D1D070606E9FCF90B26D5D76FDC94A2802B4275F33069F8B48083EDE7CC9923AF5844E84588EA73F2F477545F5FAF2EB5232FDBE2E07B367E4EBD08518D2E5FF95E78802AE42507B1C340000440000440000440C09D09C023E2646FFFDAE34AE911694B8F9DF4CCDA0262A9ACB94778441A263D86EA58DF60FAD1DDDDDD4DECBDF0F1F1A6D636F33B41B5B6B5127F9C7BA881CC1C13E2E369EEDC60F9F1CF02608E9F9FD6CA381E44AB3073C262C8DCEE581CACCE3B710506064A2F8499AE06450909F1DA754DAD654F525D7D03458BDDB4F4B640785C944DD4B75EF4E5B6FCBCF1F17162395B8DEA862308800008800008800008B815010811277BDD97F22B28B0CD83966F1AFBCBFC64A637E83587BE7ADC4C9D35637F7D9FCC18AACFF09069FC89AAE3232FCDB2C5E2626369DBD6CD329644791F6CE96FAE6D6F9FE56D7F798995B5A65F465657672AC0D4384D4DA6B12BB13131AA9AEACC784C54656353933AA5F9090910221A0D9C800008800008800008B81B010811277CE3DE7E81539E95D79CA0298F61EF011624CEA7C36FBC2E76DB1AF77C7050775F5FBF8CE7E81FE8971FE7F6BEAFB5E3F5F58F07F8FBFB5B16827E73C6E7AF8D3D91EB476B8413100001100001100001100001450042449170A2A36FE0785CC564A7E5133816AF30D9FED3D16FCBE64D9A08C9CBCFA7F3172F5163E3B887C057E446F94FFFF13FC880EFE9B8FFB3C6D47B413891A171EC8BEA1F29B62636B6DADAF1981DEE5B56566EDC445EEBFB7262481808800008800008800008B82B0104AB3BE19BF709364C84379929FA064D7D8CC9DC77A23EFC81CEC6DBFD1E3B71D2408470F9C28519332642F8FEE5E515DA52B38CF474F232CA5BC26D2222C285D7663C9684CBD854103A9FC7C68E2FD3E26BBDF116C66CCCA04A6C770C030110000110000110000177250021E2846FDE37702C83F954A6E613E07C1E11DE4E97CDC3C393D8FBA1378E17314E8CA8AFB7F739C774ECDAB983D244FE12651D2263BA8AFFE040F23D22BBBADE788EAFBDFA8ACC29A22FE773DE258CFBB365676569B94864C1D35F9B366E9081EA7C696D8E147D7F9C83000880000880000880802B11C0D22C277C9B43BD5D539E953DC698F2248C06A8123B44CD13D9D37D7D7D68FFCB2FCA0484BC1C6AFEFC045AB96239E903BE8DBADAF59233C2BFFDD661993C71E386F5F4EE7B1F681E8DAF45EE90B70EBF219790AD5AB18232D2D245F0799DDC758B03ED7D7D7D653C0B1F8DEDD2E52B325921EFF8B577CF0B3220BFA4B44CEE2EC6090D978884866C83838374F1D265E3EEB80601100001100001100001B7220021E284AFBBA3A270CAB3EAA82C9AF218F61EE0DEFDFB9496964AFEC2B390B46081FCD1DF83B7B60D16DBF97276F5E9B4E8A868837BB010524BAB2AABAA6432C2FD2FBD2897890507075170709A369D169190F1FE830794B37D9B56A64E380F0A6F15BC5D6467E7675CB37A95FC51F57CE46487274E9EB2187FA26F8B7310000110000110000110706502589AE5846FB7A3BA98BA1B26BFF52EF7EDA89ABC10E18F65652316B6E71D1D19DBB6D742B5166BA1DFDE97BD031F1EF988D80BA2DF5697EFC7C1EB1F1D3D4A6ABBE09151D339E8C7E2F9A96B755473D61F559D3A725D456525959494CA66ADADADF4E0C1437D17E22CE8FFF6FBF784E07828E33878CBDD92D252BA20BC18FFE35FFE95FA447C8725BB2002F0CF8AE48A6DEDED264D9AC4389C71FDEEBDFB26752800011000011000011000017723E0B1795BCE8489207A3AC73EA80282A71EB7E06E70A7F2BCC171C994FDC3FF833C7D4C97004D34EE88483498FBFEDF8A1C22631FDA13B59DC93A8EB7481071186C3562C7A99E9E1E874F273424C4AC6078D6449E7F6E276D58BF4E36FB97DFFE4ECCDF7CF2C368911D3E2434442475F4204EBA88B8906791453D0880000880C0B308A8EFB299F8FFCD67CD0DF520602B012CCDB2959883DAAF0E274A7EF03B2A5E74888603C3ACBAAB57770B2D2CF884E688BEE79C3C6137E70F297E5262D5734D5723735E8B3F79E76D0A12CBABFAFB07E893CF3EA736A3CCF12CA032D2C7966AB50BAF872511C273AE6F68903FD3357F8C0B02200002200002200002B39900966639E9DB5B9D1A47B181DED4FACDAFA9E9D1351A1DB19C219CEBB80DB7E53EDC173639021C03121E1E4E7171B1F4FA6B07648C47646404CD0D0EA6A54BB2E9476FBF25EB79746CBF3B39C6E805022000022000022000024C001E1127FD7770F25E31C5CC0BA68292721A2CFAFFC8F7BB23149A924D41B1C9E4E53B16CC3D3CD04B5D3525F4FFB7771ECE555D771EFF8150415D20244493449140121D6C8CE9D536B860E3B67132D9EC66CBECCE647666FF8F9DECEE6476936C36936C42B0B131C6E002C654634C31207A1112426021400510A8EFF99EA773B9EFE9DDA7ABA7D724BE3FCFD3BBF7F4FBB964727EEFFC4AC3B5B3D27ABF41E2E3864A5E6A9CFC50EF09231BA38F16D3CB3A7CE48820C255A632A9423E10A79C20F033D9B57B4F4C3F0B174702244002244002244002B14C803E22B1FC76B8B6A81018AEA276AD5DBD4AA6A8085FC9C9C9D61AE0545FAF4CB5E0E8FEC597BBA4C3E6D46F35E205099000099000098491007D44C2089743479C004F44228E9C13C63A81478F1EC9C79F6CD7CB84437B8ECA86DEA5940E9C82C07784420224400224400224400224D07F025444FACF90230C62027068F7E7D43E881F998F460224400224400224400211214067F58860E62424400224400224400224400224400276025444EC34784D0224400224400224400224400224101102544422829993900009900009900009900009900009D8095011B1D3E035099000099000099000099000099040440850118908664E42022440022440022440022440022460274045C44E83D72440022440022440022440022440021121404524229839090990000990000990000990000990809D0015113B0D5E93000990000990000990000990000944840015918860E6242440022440022440022440022440027602CCAC6EA711E3D7534ACAE4F2B9337A95EB36BEEB6AB53BB66C72D58E8D4880044880044880044880044820920478221249DAFD980B4A4851C9F47E8CC0AE24400224400224400224400224103B04A888C4CEBB705C0995104734AC20011220011220011220011218A004A888C4F88BA31212E32F88CB230112200112200112200112088A007D4482C216994E544222C399B3848640594989E4E58D96F6F676F97ADFFED00CCA51488004488004488004062D012A2231FA6AA3AD84BCBCEE25494F4BF34BA7A3B3436EDFAE93EA1B3572ADB2526F3C7D1B3EBFF039299830C1B7D8F17EFB8E9DD274FFBE63FD8CE96532BDB454D79F3D7F5E4E9E3AEDD8161581D6FFE8F16379F8F0A1DCAEAB93F23367FDAEDF0C6E7F8E0AF5AC87BF3D62AA7AFD2E9A3259E6CF9DABDB353435CA8E9D9F5B7DECE35A85012E7AE313A06BC4AA8A8B8BA4ACB444DADADAA888448C3A272201122001122081814B808A480CBEBB682B2140525850205959998E748A8B8A741D36F41F6EDDA615127BE331EA97F1C99327D98B025E0F1F3E3CA0223277CE1C99307E9C1E23697852AF8A486FEB378B59B962B994979F91DD5FED918ECE4E536C7DDB9F232767549F1491F9F3E6C9E44913F55877EFDEB5C6C4857D5CAF0A879BDEF83874633109900009900009900009C42C012A2231F66A624109B123696B6B572707B7ED45323C69B8A4A7A7C9B061C324252545DEDAF8BA7CFCC9A772F1D225AF76E6A6B6B6563ABBBACCADDFEF969616BFE528CCCE1E29E3C68EB1EAC78E1923B93939527BDB7B5D5603DB05CC84EAEEDCB14AE2E2E2247978B25A77B20C19324452929365C1B3CFC85835FE871F7D2C8D4D4D565BDF8BF4F474993D6BA67C7FF2946F558FFBEC9123953297DFA3DC5F417FF9F81B93652440022440022440022410EB04A888C4D81B429E10932B241696D6D0D020BFFDDDEF7B2C253333535E58B35A8A8BA6485252922C5DB2C85111F9FD1FFF248F953954B082CDFFD0A14FE22A4081983573867CB16B77AF43D6D737C8AF7FFBBB1EEDA0C8CC9B3747E6CE9EAD1592F1E3C6C9FA752FCA9F366DEED1D65E3073C674578AC8BCB973044A8F1BE92F1F3773B00D09900009900009900009C41A8127BBBB585B19D713D304A0A07CB0E543ED6781858E1A354A603E140E299E32450F8B13905B3FFCA0AFA100F54730167C36F61D38680D3379D224993FCFE3D36115FA5C4C183F5EF2468FF629F5BE8D534A53C9B4A9DE8551BC1B9D9B2B458A57B23AFDF12738619A5A5CEC58EFDB273535459B9C61CCB4B454DF6ADE93000990000990000990802B023C11718529728DDC664C8FDC8A9C67824F4555D575C9514AC830F5EB3FFC21E0FC1D4A993471A28C54664E90CB97AF48A79A138A405656964C993C592E5FB9D2AFE9F6ED3FA0CDB38C0232A3AC4C8E1E3BDE63CC8E8E0E7D728293199C76C079DC4966AAD39AB46E477F98B6C5C747E67F66780FFFF0777FAB97B5E3B3CF2535355566CD9821999919BAAC4B99C75DB878493EFBE20B697ED82C4B962C56CEF4732C05126CEFDDBBA7EABF948A6B953D1E0FE6666B56AF9249130BBD4EA8AA6FDC90AFF7324A560F602C200112200112200112084880272201F1B0B23702D8A01B898F8F379721FB46B42C0836C9A7CACBF507D71053A76FFAF167E7E76A63FEE8911E61CC983CBF4EFA8F1E3D96EBD537749BA92A3A544280679D397DBA6E0747FE1B359E3EFD589EEBAE509260B6860F9CF5972E5E6429211804E5D3A616CB6BAFBC2C2FAC5D234B163D6F2921A847FFECEC6CD9F8FA0619DF1D1800E590C4C4047963C36B4AF99BE4A584A00E666D6FBFF986527C52704B2101122001122001122001570422F353ADABA5B0D14024808DBB11DFC850A63CD86F38C39BA853376FDD923B773C91A76ED4DCD411B4F0CB3C148256152EB6BF82B527AB0D3536E363F3C6087C4B7CE5D4E9D352903F419B30CD993D4BBEFDEEA86F139D47C36CE2CF5FB82823468CE8D1261205A525D3E4C18387F2DDD1A3DAA91FA74730178379D6C4C242FD418080C347BE939A9A1AC573BC4C53F538F580891D94A9EA6EC50BEB7D65FD7A193D3A572F1D6C1042B9BABA5A9BE4C14C0ECA4841BE3BE7FC483C3FE7200112200112200112887D02544462FF1DC5E40AE107B17CF932BD81C502EF2A939EAAEBD57ED7FAA377DE0E18350B1BDADD7BBEEED1777A59A9E5B770E9D265AB1ED1B910CA171BE619CA79FCD8F113565DB017757577F4661AFD531DFC1E90BB64D9D22592A1A2674D57265CFE1411E40DC1C9034E6DB02E9832F526C1F209346E6B6BAB0AABFCB1545655E966979459DBFD070F64B95A3F04665A1F7DBC4D500EB972B542AE5654C84F7FF2637D0F332F23F92A1F8CF179C1C9D1E60FB65811CBD0FF8852C8D06FAC4D29357DF94D022440022440022440024E04A88838918952F98E2D9BA234B3FF6911A6F7AD8D6F58956A8F2D498949EA97FE2C15C2375D9763531B28D1DFB87163ADFEFE2E9C42F796AA4CDD907665FE75EA74B9D5F5B432D15AB66489F6BDC00639248A882DC4AF9353371670EEDC79796EC1B38293206CD0ABAE5FB7D605F32524F583A0DC4D7861B40D960FFA3A09924D1A25C4B4397EE27B59B470A1E6861320A384987A289238ED40FE98F40CCFBB451D421B1BD9AF7C6A7C9F0B2192B72AA5E61FFFFEE7AE238599F1F84D0224400224400224F0F412A022F2F4BE7B574F9E9898A8FD0A9C1AE357F603070F0936B94E52595915F044C444C2B2F7C7A943FE84F1BA082726F6ACEB3039BA5E7D5D394D4FD4273208258C285EFD11E44331D2A64E139CE4E8F1E33AB216CCC6E6CE99EDA588CC9E354BE528F1440EEB2DF3BB7DFC60F8D8FBFBBBAEBD5DDBA3183E2BAD6DAD5A11A977E055DF50AF1511A56F5A623F1DB95A71CD2AB75FE044ACA1B1514646C914CDBE165E9300099000099000090C0C025444A2FC9EE236FE222A2BE8D8F24B57F3E2D7EEBB77EF79B5458671981FA1EE7F548E91404900D171B30AF3DBD73C22B354EE106CF621508690E3C32EC85D0241AE0EE419F97AEF3E7B759FAFED9B6D28574E8213830AB51947E8DAA22993B5E9587373B36E8E885B102845A755B676B7120C9FDEC6EE687F1244C05F5B9C62B915F88D401E29B3AC3B3E19E2ED63D4DFABA7226207C26B1220011220011220818004A88804C4C34A6CBCFFEB37BFF502019F86C92A7A121485679E9927BB76EFF1AA0FC5CDD4228F8913C61A9397A73F4EE3A26D7F1511646F37724F6DA803C90995591D8A0814A479EA5464BF3A112A5059D4F3F23CF945CE2AF3AD4125F6E391000FE65EB5093008AB4880044880044880049E1A02544462E455DFD9FA1B7DCA90FEDC8B129FEBED53F1B8E2BC3C387550AF347BC3CFF537DA1BC1E9445C5A96241614CBF089A588D36AAAC2F2BD57F909141616E8D3086426878F06149650097C12727373F47030277AA03EFE24253945878CC5090DA23E5D57265CC1082273656678726DE034A3B771E02C5FA77C4A46A950B765A5A55A11010708F28684C2672598E708571FF89320E9218203C0F40A6658FE6484F22DA190000990000990000990805B025444DC928A403B98CBDC3FBA5B32566C9438B5C9867434D64B73F9E180B3A35F7BD33D693F7D58DAEA6E4AFAB3ABC3AA8CD4DCBC29E7CE5F5091A34AF5A9C0F2A54B7504A6808BEC43E52C951010CA1504D1B49CFC2D904764C3ABAFE876E8D39B02A11BFAFC81D2833110B61782E8516EE4CC99B3B27CD95215BE365B102A17665A10449E82AFC46092DB2AA29891C2C202BF8A088217C0578742022440022440022440026E0930A1A15B52116AD7A99C891F1CD9850C7ED2A97E5D6F528A4967A7B3BD3F4E4846BEFC33C958BC5E86A5A44BEBAD2A795C7531ECABDDBB7FBF20442C041B71933B23141317A99C1710F8249C397BCE71C8B3AAEE61B77F064CC5FA2A30F97AF38DD7AD10C14D4D4DB2EFC00157C31C53CEF926DAD74B2FAC95848404DDEFC4F7CE4EFBAE0676D1284D85175EAAB2A2C3591E6194C32D503C8D207C31942FBB600D50E6E0AF432101122001122001122001B7047822E2965484DAC5A566485B439D3C38795029235DD271BF4150D6F1C0F957F621C3E2243E3B4F92673C2F4D873F9396CA8B92543035AC2B861F054E2A9E993F4F9F26203FC51FFEEFCF7EE75CF0CC7CE9E8CE86EEB7812A3C7AECB876682F9936CD0A0B5C71ED9A768877EA833171020127F1B4D4547D4253AE4E2AEC327C78922C5619C48D0C539BE554D51619C4C7ABB0C2E6E4A54D2545FCFCCBDD3A09A0691BE81B0EEA087F6BCF7572FB769D5CBE72355037BF757DE183015E7FED552B79605A5A9AECDDB7DFEFB8A12A4454AF0B172F0932CAA7A884886FBFB951873146B85F98C5C14767DC586F73C250CDCD71488004488004488004062F012A2231F66ED317AC95C67DDBAC538DA1F18982B2FADDEFF7BAD2F8111EBF8A0E65A61509819376696989DE9C161614E893117F8EDAF8F5BE3741C24244D69A5EE6C91D82F6FEC6F21D076D4CB4AA32B5165F45044AC70A65421548E0DFF2C9A73B7AE4DD08D40775F005C19C4699293FEBAD04F5D6DFD4F7850FFA8CB2251BCCCBF5643B376385EB7BDBF64F5558DFF724372747FB8940B9B3BF559C8E5DABAC94625B908170AD85E39200099000099000090C0E02E1B7EB181C9C22F61471691992FECC2A19AA7C24F0C135CADC4828A31699F0AEE6DBDFFC7024C7498691850B16984B9DB9DBBA7171D1D16D7E56909FAF5B236FC8F90BBD9B98418169ECF6C9405F63AA1468DD2D2DADDAB9BE4285E1DDBE63A7FCEABF7FEDA8849871CCB7FD51E09372F3E62D5D0425CA5F2E15D3CF7C9BFEBEF7A6DCE9DBF041FD297512D5A1923CC274EDA42DD123B2B91BE97408CFDBA54ED9200ED5D67BF35D1F9EEFA3ADDBD409D435AB8D99EB464D8D0ED16C0216F8F635EDF84D02244002244002244002760243162D5D1E70FFDA7CDF631294EC72336C1F9CD7BD133079444C142C13150B91B2204913A7E96FDF7ADF7B346AADAD91A66F764A7C568E642C7B55F773FAE3368F88537F9647970012304219E96B7E9650AC3A5D9983E5EA93982EA9ADBDED956C3214E3730C1220011220016702665F66725839B7640D09C43E019A66C5E83B320A889BE57575744A7B7DAD3CEC0EF19B98FF2407879BFE6C33F008E0342A5A82D32A7BA6FB68AD83F39200099000099000090C6C02544406F6FB137332621E2361F484B03BAA9BB9F84D02244002244002244002244002C112A022122CB918EA87941B7169237442C3A442E5ECDD9D83238696C8A5900009900009900009900009908017012A225E38A277637C439C56E05BEF7BEFD48FE524400224400224400224400224108B0418352B16DF0AD74402244002244002244002244002839C004F44A2FC8219BD2ACA2F80D39300099000099000099000094485004F44A2829D9392000990000990000990000990C0D34D808AC8D3FDFEF9F4244002244002244002244002241015025444A2829D9392000990000990000990000990C0D34D808AC8D3FDFEF9F4244002244002244002244002241015025444A2829D9392000990000990000990000990C0D34D808AC8D3FDFEF9F4244002244002244002244002241015025444A2829D9392000990000990000990000990C0D34D808AC8D3FDFEF9F4244002244002244002244002241015025444A2829D9392000990000990000990000990C0D34D8099D507D0FB9F52522697CF9DD12B5EB7F15D572BDFB16593AB766C44022440022440022440022440029124C0139148D2EEC75C50428A4AA6F76304762501122001122001122001122081D82140452476DE85E34AA88438A261050990000990000990000990C00025404524C65F1C9590187F415C1E0990000990000990000990405004E8231214B6C8748A4525243939599A9B9B230380B390403781E7163C2BA9292972AFBE5E8E9FF89E5C4880044880044880040601012A2231FA12634509193F7E9CCC99354BB2B347CAC8112364F8F0E1F2F0E143B973F7AED4D6DE9603870EC983070F7B507CF5E5F57AE378576D1C3FFFE2CB1EF5BE058B162E94FC09E3A54BFDB7F9FD2DD2D1D9A99B14154D91F973E6E8EB86A646D9B1F373DFAE8EF7A9A929F2CAFA753244FDD7A55A7DF4F13679FCF8B16E1FAE71FD2D2667D42859BD7285AEFAE1F66DF96ACFD7FE9A5965CF2F7C4E0A264CB0EEED17E073AFBE416A6A6AA4E25AA57E17F6FAD9B3664AC9D4A9BAA8FAC60DD97FF090BDBAC73518AD7FE925891B3A543ABB3AE5830FB74A7B7B7B8F76D12E983B67B6FEF7575D7D838A48B45F06E727011220011220811011A022122290A11C265694106C6AD7AE5E2D8989095E8F97A27E99C6275F6D96A74C9E245B3FD92ED820DA65626181A4A7A74B5A6DADBDD8F17ACC983C99ACC6820C519B62E9564446646559E55D5D5D72F2D469B509BFE9388EBD629E5260A64C9E6C15C5C70F538A88E7365CE35A93D92EC0D13CDB04A56C7D73F85B79F4E891AD85F7E598BCD1567BEF1ADBDDFC79D2D1D121BB9552F3ED91EFAC8A1B4A4131EFACA0205FAE5EBB1690D7CAE5CBA558297B9073E7CFC7A412623D1C2F488004488004488004061501FA88C4D8EB8C152504A6302FAF7BC952426EFDF0837C7FEA941C50BFB0979F392B8D8D8D9A5C965214DE7BF71DC91B3D3AEC24870C1922502EDC4A696989ABA6E11AD74C5E34C5B3D1C77D424282CC9A39C354F5FA7DF3E62DA9B979D3FADCAEAB93969616DD2F2E2E4ED6AC5A294B172FB2C6A9ABBB23DF7EE7514C860D1B266B56AEB4EA7C2FA0A8CC985EA68B616EB76BF71EDF26BC2701122001122001122081B011E08948D8D0063730F284985C21C18D109A5E0B9E992FD8A0E314E2E0A16F64CFDE7D5E03C35704E657455326EBCDF54CB5B986B2126EC1D6E94BAA00000EE949444154AFF738A16969690D38D5D4E262C91E3932601B7B65B8C6C589D18811597A2AB004D3696A6D87BF3D629FDEF1FA8F7FDE64999399465030962E592CCF3FB7408FB768D1F3F2DDB1E3D629CB810307656A5191E4E6E6084E60E6CD9D23C78E9F30DDAD6F988B0DC5E9939203EA1D37742B9756035E90000990000990000990401809F044248C7007EAD0D838C3AC0A72E7CEDD1E4A08CAF10BFAF61D3BA4B5D5A31060C31D09818FCA5C17A7223087EA8B846BDCE9659E1387766546557EF6AC5ED2D8B16364D4A8ECBE2CCFAB2D7C38E067527EC693DC72983A19B1F3877FCD975F7DA5ACDB3C7E364BD489094CE9ECB250293163F2F274D18D1B355EE65DF676BD5D171614084E56A01CF94A427CBCC0446FF2A4897EEB7DDBE31EFFF6A6161709C6F53509F4D79E65244002244002244002039740CFDDC3C07D9641B172B719D3C3F9B069A9A9D6F0F50DF5D6B5EF059CD4B76DDFA1949634EDAFE05B1FEAFBB6B676819FC7F4D252ED67E1347E5656A6DE00A3DEF4716A6B6F13EA71B111C7261C525D5D2D274E9C94194A31C129C4EC9933E5CBDD5FE9BA60FF5CBC7445995679925C4E183F5E4E977B14138C5751714DDFC30C0CEF73E5F265F2C9A73BF454194AC9C4690A044ACD17BB76EBEB407FA0B8AC5AB15C37F9B77FFF0F6512B64A264E2C9464A51842DADADAE4C8D1635A41C2F82B562C93D269D304E66310D4DFBC754B3EDABA4D9AEEDFD765F63F081EB04C9DF2D84DFCE00373E1E225F9EAEBC0CEFDF671784D0224400224400224307008F04464E0BCAB88ADF407E5606E7E4DCF9F902FD8E43A091C9CE12C7D549906855BCE5FBCA0A7183D3AD75234FCCD397FEE5CEB17F80B172FFA6BE25516AE71A72BFF0B9CB4402E5EBA2C55D7AFEB6863B8C7C6BBBF828DBA117F27127064BF7FFF816E025F10041780AC5AB95C605A0739FEFD4981837B6F3274C8506D0606D332F8A59429FF1BA384A06FBC52BA16A9685F2B94C2F3E6C637B4C2659410538FF9FFEA9DB72C2666CE3CE59CFF9A32F3B32B21A843FFD29269F2CE9B6F5A2664A60FBF498004488004488004063E012A2203FF1D86FC09E07F01076908CC637EFCA377E5B5575EF632FF09F9A42E063CA39CE471C20199337BB6638F92699EF0B5F805BEA1A1C1B19DA908D7B825EA440002F335735A71E5CA555D8650C8E6B4441704F107E18E8D98E001E61EDF08B3BC77FF7E5D844DFDEA552BD49C93D4E6DEE3C45FAF422BEFE92594B07D3C735DA64EA4E00FF4E9CECFE4C3AD1FCBD973E7AD13B1C5CF2F94B12A021AC23B236CF3A6CDEFEB70BB26F74C6E6EAED77343217AFDB5572DE5042187A140A1DFA16F0E4BBD0A559C93334AB23233CDF4FC260112200112200112182404A8880C921719EAC7D8F5D51ECBF919BFB6CF9C315DFD9AFDB6FCEBBFFC42FFAA0D539DCC8C8C504F1B70BC478F1ECBD58A0ADD063E11C881E12B586746F7BA10DDCB8D84635CB0318A42655595C5F2D4E9721D0000EBC28949B032BDAC543BA1A33F4E46CE9DF79C16F98E77429D7854A810BE90B163C6C886575FB68210ECDEB3575A95C9545F057E437FFECB66AD609C397B4EB67CB455E73431E3DC57A657A887A9D6A5CB57B4C262779637BE2968FFAC0A8A60820A2042D81FFEEFCF5A01413F28247F79FF0326D03460F94D02244002244002838C007D4462EC85EED8B2292656545D7D437EF7FB3FC8DA35ABB4E3B031B381D3337273E0B37CE912B97CE58AECF97A9F657214EEC563630D676684C19DA74CB0F6EEF3FCE26FE69D35C3131A17BFC09F5019B817A95FE8DD48A8C785B3BC6176FEC213F33098BDE10333249C4E40C90B9440102751C64C0ECF0113A88C8C741995FDC4D91DA72DB52A51A2937CB9EB2BF9D94F7FA29919932CF85EC0AC2E18413FDF2496709C370EF3D72AABF449867DEC33E7CEC96215DD0BA65D99B6D38D9C6EA77D3CE3D66D9FF4608170C55FAB77BCEEC517ECC3F19A0448800448800448601010E089C8207889E17A0498D7FC69D366F9CF5FFD97DE0CE297757B223E6CA2A7A92CDE7FAD36B9C8C01E0981E283CD29A44CF90FD8C584AB45D979E51BD2975FFB433D6EB10A9F0B6956890B716A6017FCDA0F818F85C9E361AFB75F23ACF0B4A9C5D607E65C4609C1E61D272CC609DDDECF7E0D25E5C87747AD22BCC35D2AAA56B0E2CFA7A4B1B1C91AEEAEFA77E32BC86FF2A83B9B24941123234778422C373535392AB3C69CCDF4E1370990000990000990C0E020C0139128BFC7B88DBF88CA0A3AB6FCD2F5BCC82FB15FE5A630828D31FC0CF08D0850D850BFB8768DFCFAB7BF334DC2FA0D932B44811AA9F284600DE6C401F932B01E6CD08F1DEB9937A3B745856A5C2865508A201D2A2AD50B6B577B4D9D989068DD23B2144E639CE4F6ED3ACB940B6D10110CA74110F8687C7FF294BEEEEDCFA1C387F58904DA55565DEF7162D15B7F7BBDF1D3B197D9AF912FC58DC4A97785E781D407F0E5C1BF3F9CC0F833C573330FDB900009900009900009C426012A22B1F95E627A55D8F8E303F3AC37DF785D87D485A9111CB0EFDEBBA7D76E36A309B64D77A087EA4BCE88E3CAE40AE167939292042650588B3E9D51890221D755A85C983FF5554235AE310FC3FC69696932378063FD84FC098270B78DEA44C09FFCEF1FFEE895D01059D49729933808FC61DC2A225D9DEE94037F6B884459EFBA4B6CAF3F128C3807099000099000090C3602544462E48DDED9FA1B6D3F9FFEDC8B129F3BD66B558F2B944DFE29CF8944F6869FEB3AB437025397B8B42C492C2896E1134B450D64AA82FAC6C6189B7C2813C60CCADF403067BA78E9A20AE5AAE6548230AC461179ACCC70E0349E99894F66AFD1AB72733C27082D2D2D3DFC047CE78669D1A5CB97750E8DC2C2429D040FFE162669DFC953A77DBBB8BA0FD5B850D0208896E5F44B3F7C3D4664650992114299DABBFF80AB351E3AFCAD208B3DA248211C2E9CD6DD3AE5BB9A20828D9078117C606A664E46FC4D8F7F8FA9A94F72DBF86BC3321220011220011220818147808A480CBD336CFCEF1FDD2D192B364A5C728A5E594763BD34971F0EB84AF46B6FBA27EDA70F4B5BDD4D497F569902F5431959B37A959810B89B3FD8A293CA392DC09809A1DE6459C7357C0610AA154AD254E5E7F0ADCD4701F57629C8CFB79488A6A69EC9EEEC6DCDF5B1E3DFAB4D7899DEC8CF5399D64DAE1384B185DF44B0D2DF71A118A4A57936CD679553F7272AE1A33F8199D12FFEF99FF4490E9CEFDD2A22706CFF462923C6797BC9A245720EE173D5A67E20CADDBBF7B42202650359D5EFDDEB994073B28A9046210112200112200112187C04E8AC1E63EFB4B3AD551E1CD925CAD1413A55CE8C26A59874763E495CE7BB5C9C908C7CF96792B178BD0C4B4997D65B55F2B8EA499426DFF66EEECFDB42C122EA94936D3EC2D342898020842C724B18C126DCC8F2654B75A42B736FFFC629CA86D75EB18A70D2E146906FA2A6C693EB0427046354EE0A887D5E37E3F8B6E9EFB8264707C6457E122781CF43D5F56A5D0D856DFC38F7CEFE08856B4CCFB2B347CA730B3C59D29DE6EA4B394CEC56AFF4E41BE94BBF60DBD675071E806FCF86575F11F88DD865948AAA857F3F14122001122001122081C147C0FBFFF507DFF30DB8278A4BCD90B6863A7970F2A0349F3A241DF71B04658164C8B03889CFCE93E419CFEB662D95FD5344106A15B92020C83DF1F3BFF999206F08940E640A8719D42AB559FDD1BBEF588ED350204C166FF443485913ED08A726D864AE5FF7A2364342DE8832E5ECFEC29AD5F2EE5B6F49BAF2A380D4D6AAE84E479F4477D28501FE9C2AF79C7CC0591E272F382D381A8493BAEF14C18E8BD0B88505057A38FCB25F71ADD27768AF7B7BD677F87BF4450E1C3C64355FF0EC7C2B53BA5518C405FC74DE53C92BF1AE7FF4EEDB5626F6208672DDE5BB63C72C73BE7163C7CA8FDFFB2BA5583D2B93264E94154A0179FBCD8D92D29D05DEF5A06C480224400224400224302008D0342BC65E53FA82B5D2B86F9B75AA31343E515056BFFBFD5E571A3FA23B529332D3EAAF7CBCFD537965DD4BDACF038A027E2577928B972ECBF61D9FF5A84632BA375EDFA0235B411981D3B693E3768D4A66F797F7DFEF919FA2C7A0B602F882C079DBF80F54545CEBD517C5D6DDF132D87167A993998484783DEEE5AB9E0CEA8E93A80AE4DE58B562B9CA5E9F2853A678FC4A02B5B7D721812112251AB3B6654B16CBCECFBFB037E9F3756E4EAE8E80663A22FA57D5F5EBE6362CDF381942FE90F794520BBF24F8BDE0631784034628669CD650488004488004488004060F019E88C4D8BB8C4BCB90F46756C950F50B3F3EB846991B09655C216CEA91D0F0F295ABCAF7A3CDEFF43835C12FF35038E0E8ED2BF05B787FCB87EA94E2B8DF7AB46F531B4C44BDFAD3A6BFF85542BA6CBE0FF6C47EE88B139073172EE052CBF1933DC3E0C27FC648A72D725438C63509FD305FB93A11EA4D5A5A5AE55A65A56E0665AFA85B19316BC6775797B3EFC7BEFD07AD648750828CB3BEBF793BF5581E164E6322DA18DE3BA4BEBE5E4EDB7C6D3A6DEBF07D0F686F2FB3214795254F9ECBFB996062B74DF9D2E044CC2E1813C913376DFE40FD3B69D755660C7B3B5E9300099000099000090C4C0243162D5DFE64A7E6E7199AEF37EAD264979B613F43B02800019347C444C13251B110290B9234D193B4CFB7DEF71E6D5B6B6BA4E99B9D129F952319CB5E4591A3F4258F0806C1AFE330D3821954DD9D3B725DF93738859CF53769828A12855FFD11490BA63688AAD5A414992B572BE4E1C387FEBAB02C4A0432D53B42EE8E68087C5E46A830D01DED1D5273F3A657E8E268AC87739200099040AC1130FBB2E6E6E6585B1AD743027D2640D3AC3E238B4C07A380B899ADABA353DAEB6BE5617788DFC47C4F566F377DDDB6A9AEBE21F8042B30AD39ABA23B51629F40B4941090B973E7AEFEC43E25AE900448800448800448A0BF04A888F4976094FB9B9311B38C84D11324A960AAB9E53709900009900009900009900009C424012A2231F95AFAB628E54AA2FC4846E88486498525FDCA21D2B799D99A044880044880044880044880048223404524386E21EF657C439C06F6ADF7BD77EAC772122001122001122001122001128845028C9A158B6F856B2201122001122001122001122081414E802722517EC17D8D5E15E5E5727A122001122001122001122001120809019E8884042307210112200112200112200112200112E80B012A227DA1C5B62440022440022440022440022440022121404524241839080990000990000990000990000990405F08FC3F0604C885E1632D4C0000000049454E44AE426082, '1', '2023-05-09 17:33:32', '1', '2023-05-09 17:33:32', b'0'); +INSERT INTO `infra_file_content` VALUES (4, 4, 'e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 0xFFD8FFE000104A46494600010101006400640000FFEC00114475636B79000100040000001E0000FFDB0043000E0A0B0D0B090E0D0C0D100F0E11162417161414162C20211A24342E3736332E32323A4153463A3D4E3E32324862494E56585D5E5D3845666D655A6C535B5D59FFDB0043010F10101613162A17172A593B323B5959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959FFC00011080273019003012200021101031101FFC4001B00000203010101000000000000000000000005030406020107FFC4004D1000010302030308060804030605050100010002030411051221314151061361718191A1B114223252C1D115233342436272E1245392F06382931644547383A207253445F1355564B2C2E2FFC400190101010101010100000000000000000000000102040305FFC40023110101010002020203000301000000000000011102032141043112135122323371FFDA000C03010002110311003F00FA4A10840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210841E212EC5717A6C2A3699CDE47FB0C1B4A5CCE5432465D90B2FB8192DF04C35A2424231F7E4CCEA6CBC6C6E1723948DBFB0CEF2986B408488728A3DF178AEC72861FE59EF4C34ED093FD3F00F6A378EB5D0C7694EE7040D90968C6A8CFDF70EC523715A377E2DBAC141790AA0C4290EC9DAA56D4C2ED9333BC20990B80F6BBD9703D457483D4210804210804210804210804210804210804210804210804210804210804210804210804210804210804210804210804210805E2F52CC7AAFD130A99C0D9EF1CDB3ACFF00774189C725188E2334F98965F2C7C328F9ED4A4C6F66AC72BC458586C1B140F559AE61AEA889C05F4E3B933C2F17A47CF9AB221213A02763475714927204646F77AA079F82A3A89401A6AAA3EAD4D061F53107B616653D0BB387501FC0625F82B9D1E1708DF6578CEE51A7470DA122DCC8D7A4AE1D84509D917712BDF4872F0553934C44706A2DCD78EA715CFD0F4E3469900E17BAB1E96EE840AB27704D3149D82C57244D30BEED2C173F43DBD9AA78EC0AFF00A5F405E7A58F7134C2F385D437D8AAEF0BB14D5AC1A549BF412AE7A4B782F3D2187720AA24C5A3D8FCC377AD7520C4B138FDB843FB029B9E6141959C5070DC72A07DA526CE170A7663D07E245230F7A80C9D21705E37B4140D21C52926F66422DC41565B510BB64ADEF59D77346E0C5A6F5C379960B373B07BB736EED886B52859964AD8CDE294B3F4920776CF0565988D4B1DF691CACE0ED0F784C34F9097D2E2714CF11C839A91DA004DC38F4260A28421080421080421080421080421080421080421080421080421080421080421080421083C592E565517D5C74AD3EAC4DCEEFD4767879AD5BDCD630B9C6CD68249E017CEAAE775554493BFDA91C5D6E0370EE44AACE50394CE509DBAECDFD5BD5453AA2D2430EA1A2E6FC4FED655E2631F3B5B96C49DAD242EDEE2E25E76B89257785B39CC4221D2AA36905154C74ACE66BE465C5F2B80701DEBD11E26DFF7A825FD4DB14CAC1B1B41D00017AC048D233651A2B2EC506C8E07757FF21726A3141B68E177E97107E29DF324EC8D069DFF00CB4083E92AB6FDA61B35B8B5C4FC11F4C307DA52CECEEF9A7A69DFBA32BC30BF7B5E8118C669B7B671FF004EFE4BDFA628BEF4AF67EA89E3E09BBA941F6A2BF5B4150BE8623B6167F4840BC62B42ED055C23ADD65332AE9DFEC4F0BAFC240574EC369C9B180765C285F84521DB10F3F34163303B083D46E825C1507E0B427F0F2F5587C144703847D9CD333A9C7E6819171DEB93211B12FF00A2E66FB159381D2E3F35E1A2AD1ECD73FB483F040C39D7715E73CE4B8D36223D9AC07A0C60A8CB3156EF824EB6DBE2819994705C178E164BB9CC487B74D1BBA890BD351543DAA43D84FC905B925DE2E08B10781DCB6D4D2F3D4F149EFB43BC17CE9D5329DB4B27610B73814CC9B09A72C37CADCA46F69E0948648421450842100842100842100842100842100842100842100842100842100842100842E5CE0C69738D9A05C93B9028E52D50870C7460D9F39C83AB7F82C63931C6310FA46B03D82D0B016B2FB4EBB52C2AA2372AB5272C47F37ABF3568AA156EBCA1B7F6478EFF008222B3BD92AF72723E73126F46AA849A34A77C908B35597F0552354F9C7D24C8768680E3D699BA6E0120A6773FCA19F78610DEE4ECED51A762778D8BD350F00B89D06A49E0A15571679661354E1FCB23BF4F8A8AE3FDA188DCB5B316EE7651AF4ED5D7D3F19DD30FF28F9ACCB0DA303A17572AB3AD28C6A23F79E3ADABDFA5E13F89FF0069599CC57B98A62EB49F4AC04FDA0EE2BD18840EFC48CF5959ACC519CA1AD373D0BBDC3D442F0B6277E18EC59ACEBB1211B34434F8C519D970B93034EC90A48277FBCF1D44AEC554C364CFED37434D4D39F7AEBCF4770DE0A5E2BE71F880F5B42EDB8849BC30F7843564C2FBECBF6A85CC236B480AD473739187B7B4702BA2F3BD02FD09B5F5E09E7265DF5550CE0E07C3F6496B1A32E602CE1ADD32E4C4B7A895BB33301B74DFF741A64210A284210804210804210804210804210804210804210804210804210804210804B31E98C585CAD6FB52FD58EDDBE174CD27C6AD2491C67635A5C7B741F1418F734F0519053A34ADBEC513A8DA8984AFB35A4BB4005CF5252E25C4B8ED26F64FB148447006DBD690DBB369499D111B95895567D02D4F241A190BE43B36F82CA541D2C9FE155429B0D7347B4E0401D36548618154C6DAB9EA679031849399E6C36A6A71BA074995952C24F5AC9B689C2212CD23228F717ED3D43695566CE2E630C9621B4B85BCAF6ED50D7D005430DAF717D97042AF8B1E7F0BA8630E67968B346D3A8D8B378362EFA09081774208E7217EA59D23E616C998851CF0B6461616B85C145D64446E005C5BAD194AD673F46EDA1851CDD0BF6C719EC0898C958A355A6930FC3CFAD9435BBC83B11F43519D97EF43199D50B42706A60E0D73880E360EBE84F03D2BC760309D92BC772A633E84ECF27C7DD98F680B8760326E941EC4309D09B7D0737F305FC144EC1AA5BB81ED40BAE8BAB670BAA1F877ED5C1A0A81B622827C35FEBB99C45C26164B69219229C39ED2D6EB727A930CED3BC28B11CEC05A579C9F7F3789B1A77DDBE0BB7B9B6DA154A2904389C6F3A00F04F55F541B942E03DAED8E07A8AED45084210084210084210084210084210084210084210084210084210084210092D77AD5921DC2CD1DDFBA7491DF9C73E4F7DCE23AAFA7820879B5CB98ACDB454EBEAA0A180CD5126466C1BC93C0040931701D54D68DAD65FBCFEC97160523EBE0ADAB99F13AF7B59A7436B0DDD68563354CD24464CCE8F3B4ED69247682ADD153B731718ACC8C66CB7BDF5D07795E94CF0A6339873C8BDE66DFA8027CD50D70FC2E360F48AB024A876A4BB50DE000525761F4D591963A301C3639BA169E82BAF4A042EA3787105655F3BAF8DD4156DCC2CE8DF9241B8B49DA3A2E6FDE9AE054AFA9F4985AEB737670EA2B9E56C439FA8940D0C763D7B949C9FAC65156D54931CACE65B7278DD54F6BAEC32ADA7475D70692B9BB2E987FB41427F18772E863D41FCDF045F0585B5CDB820907685147575B15E3249319B74DB778271F4E61E7F13C150AAC670CF4AB07025CC04E9D3FBA1E113EBEA9F1963EE5A74EAE94458D5698C17825CDBB49E90BAFA630E3BFC11498B61FCECF1888C86E1E328DC45BCC20E863B5036B4AE8728A51B5ABB35F871DB4D37F48519AAC34ED8261FF004D04A3946EDED2BA1CA304D88DAAB1970C3B63987FD32A191D86116064693C63210346E3EC3B429063909DAA87A1D23B64A2E51F464276483BD03318BD33B6D90EAFA57374C97DB6DC957D13C1DDCB8761526E250F270DAAA2780E16B1528342F1670611E2165CD0CD14CE8EE6C4661F15D8A7A81B1C50693D1E84EC0075147A3538F62591BD5210B36195209173A2F73D50DE506A21E7207668AAE4FD2F39814E696A5B52C3B9EDD1CDE0BE7FE9154379EF57307C4AA29F1385D2DF9A90863EFB2C4E87BD0D6F508428A1084201084201084201084201084201084201084201084208E57E485EEF75A4F824EC2D6B5ADD9A01D174C3137E4A293F359BE2BE68FC5AA5D8C1A86CAF6B1AFCA1A0E996FB0841BD7B9AC697BCE56B45C93B00496B994788C83D2A39C002CD734801A3E6AF57C976C116F93D770E816F89094D7445D7923244A3A4D88E088518AF27C528153874CF7E4F58071B93D088A4CF1B5C74CC01B2B0CA978D0DC03A169E2A00007380D80DC752B12BA5D36B9F4713B2B7334B83CB78917B8EE3E0B9B2E5EC6C91963B61DE3683C42A8751CCD7343D8ECD1BB50E1BC2BD4EF27D9172762C9D1BE7A27161749CD137CCC6E669E9CBB8A6E71F9228C4786D249354BB41354372319D207B47A94B165FEA1E5646C7545161C083313CFCE6FA35BB8153D2E0B85D646E7D555C839CB59AC21A2C366A97D5514B43413CF512BE5AD9FD699EFDB6F8740DC12B6D6BC3AF741B06724B02B5DAE91DFAA62A76F25F056FE103D721290D248F92C4B8EA99B18FB5C128A64393F83347D8C7DE818360ACD7988EFC7694B659671EA80494320AE93600DFD4E010C32FA3B066FE047DC8F45C25BB218C76054C61D567DA9636F692BD1864BBEA99D80A698B7CD6183644CEE08C9867F28770554616E3B6AFB9ABA1847FF967FA534C58E6F0DFE5B7FA570EA7C31FB5ACEEB2E06123FE28FF004A3E891BAA8F7208DF85614FD7D93C4388519C0A84FD9D5C8CFF00A8A7FA2BFF00CAF05E1C2DE351383D85057FA02DF6388C83AC82B9FA1B1267D957B1FC3302A6387D40D92B0F6AE4D35733D9D7A9C82B3F0DC6848D7F3903F2822DAEBB14662C5A2F6A918F1F95C15DCD88B3EEC9D9AAF0E215B1FB6D7DBA420A4DA8AB8C932E1F20D2DA0BEF5E3B1160D24A599BD6D2AF0C6A41ED347685D7D32C3ED440A61A5BF49D19D0DDBD62CBC7565239A6D20BDB44C8D75149F69003D80AE5D061538FB18C13D164C35AEA5799296279372F6075FAC29925A4C5A1608E1786358D01A1CD3A0164E41BEA3628AF5084201084201084201084201084201084201084201084204BCA69F98C349D9B5D7EA057CCB0D1CFD6431ED32481BE2B7BCB512CD48D862048CA5CEB75FEC564B927466A31863C37D4A7BBDC7703B877AA8D6D710711B0FB90816EB71F92575EEB43A1DA55E9CE7C52B4EE688D83FA6FF14AEA4471C87421A35CA76128555AAD329DE40BAE182E493D1E4B991E6596E7605286968D769D4A23C5EB58E7B8068249D00DABB6B0BDC18C1771D000BDAEAF6E140C14843AB08B4928D447C5A3A507752DA5C3C66AF97EB0EC863D4F69DC978C76A25944386D332273CE506D7777A54E63E490BDE4B9CEDA4ED5A1C128452D29AA78FAD92ED8FA1BBCFC10775D116615344E7191E2325CE3B5CEDA4AC9DC82B67582F4738E31BBC8AC56F4856B70B378DB7E016829EC6CB33853BEA9AB494AED02558B13D307464B7475B4EB4B30CAF7484B1DED0D13B1AB7459E118831B99ADD8E7175BAF5F8A8A7998B97A1B75CC7A85381A208C34D916525822C822D578415290926358C328473317AD3B86C1A9081849511C1F69206DF60275EE50BB1081BED17B41DE632024185E1D8BE31F5EC9C5353BB5E78DC97EBF76DB7AEF65A383037D345638AD6C8EDF98B4B7FA48288239D93EB1C81C06DB15212EE297D4613346E3343387386A05B21EA047CACBAA5AC766E66A8657EC0E22D73C08DC7C115739C7715E199CBB2146420F1CF63BDA8C3BAC050BA0A5936C201E8D1485ABC0354103B0AA77FB0E7B7B6EA9D46193C6D2E8A4CE06B6D8538602159616869BABA9918C33BDD763F6AD97252B5D5187BA195C5D240ECB73B4B4ECF92CDE294AD6D68923F624D7B77A6DC9BFA8C4F2EE96323B4156FD24FB6B50842CB41084201084201084201084201084201084201084205557692B2507EEB437CFE6B88208E9DA5B1461809B9CA00B9E257A4E6ACA83F9C0EE01764EA1067E3766A9AE79FBD50F03A8580F24B2B9AE927D2C00D35296458BCEDA9A80E79113A67B9A776A4A645C5D67BB5240BAACB86B1AC1C5DC77046ABD2BA8E3324AD601AB8D820F64A8FA3E8F9F1FFA896EC87F28DEEF9247617B93727524ED254F8BD509F107E43F551FA918E81FBAA064B2A2FD243E9153142CF6A47068F9AD2CF943C471E91C6031A3A124E4BB43EAE798FE0C448EB3A0F0BA72752A55886A45E9A61C58EF22B0E16F1C2ED2DE20858422DA244AD1E10EFAB0B474A740B2D83BBD50169E94E89561B3092D486B7D5C681DCE0D3E16F827711BB527C61B96B69DFC45BB8FEEA29AC1AB415642A94FEC05686C41EAF0AF57882B57D5368E8E69DDB236DEDC4EE1DEB0F84523F1EC6DE272E7411FAF50E1F7B5D23BF04EF96957E8F431C635CC4BC8E3946C3DA577C85A6307279B2B87D654C8E90BB791B079144F6D535ED680C680D6B4001A05801B800A2A8ADA681DCDCB3B1B21D8DBDCF76D546BC554E052D0B8472C9ABE53F86CDE474F051368A9F0C88C74E3EB6D7748ED5EEE927E48AB9CEC53B4F3720771B1D554A8A664ED21DB773B78486A313A8639D98F381A7EF6D1D47684C308C5D95844321B4FAD81D0B86FED41669257E634F3FDAB05C3BDE0AC15C55C2E7344D1FDAC7EB0E91BC2EDAF1246D91BB1C2E8395E1DABA5C941230A94EAD23A140C36538D8814D4B334373B63907711AA9E85DCD62544F1BDF90F68217150349C740778851E7E6C432FF2DED7788551B742F17AA28421080421080421080421080421080421080421081246EFAFA9FF009AEF35DB8DF4E2A889B2E215719DA252558E72E8336EA2A7A9C1A1B80C9A3058FEB04837ED5090069B86C57716A58A2AA13C45F1C9211CE358EB3643C4B765EC1530AA395EF3A29A19E7DEC6103ACE810553C664C987363D8647DFB00FDD1085D21BDD465C5784AF1AD2F7E56AA35BC9565B09AB977BE56B2FD007EE991547937FFD01DA65FAF3A6FB58595E2B2A07B43AC2C2C82D238702478ADCEFED589AC6E4AB9DA7748E1E2558531C21DB16A690EC592C25D6900E95A9A43B12A43A83D94AF1F16F477707117EC1F24CA9CE8A963CCBD1077B8F69F02A34B148EBC6D3D17571A91C18B51D335B14D386C81A1C5B624816D14E3941870FC727AA3281BAF12AFF006870EFE6487FE995E7FB45870FBD37FA45067FFF00105E444C1C63F378F92D5615188309A28DA346C2CB0EC0B15CB5C429ABA063A171D0068CC0824DFE456DF0D904985D148363A08C8FE908430A58C08DD27DE909BF50D89163337A3E3D4AC26CC9A2319E17BDC79A7D0C81B4CC1C330F158CE57CB2C98C530A66BE4744C2F218092351AF820A95AD2CE76FA0748187B43BE2AAD3D1CD248D921BB268DC1CC70DA08D8ADE2CF755D130D346647553DAF6B5A2E6E01CC2DD6569792F1455587095CDB4CD2592022C41E9082ED0C8DABA48A702D9C6ADF74EF1DEAA359E8F533C1B0039D9D455BA11CCD6D7D28D1AC7B6468E870D7C428715F52B6925D81F9984F979A0E085C95D15E141EB54C0A85AA51B10519DBFC539A763DA4782AAE19A8DC37D95EABD2A627748BAA918FAB7B0EEB8551AFA2939EA2824F7A369F05612DC09F9F07A7E2D05A7B094C94508421008421008421008421008421008421008421063B1A798B1E972E976B49EBB2F5B53EA8B9DA6CA0C65FCE6355246C690DEE011152E6C92497019EB06DEDDA7E4AA38C55F9EA9AD1B1A093DC00F32A9594B532092A5D6208006A35D6E54683CB04971E93EBE28F73197ED253AB12459673197E6C466FCA72F704450255EA188F333CB6D800BF0B903E255168CCE013665A3C289BFDA4A001D0D69F8B82A1DF2764CD875533DD943BC0FC95FDE947259D7F4D8FF0020778FEE9BA955C958FC505B11A8FF0098E3E2B60762C8E283F8FA8FD6E4851861B4DDAB5748762C8D11B4E16AA90DD5487D4C7451E2CDCD86CFD003BC422989D14D5AD2FA39DA37C67C8ACB4AFC950DBD4E833384649EC23E0B47940DC3B965392D25ABDECDCE881EE27E6B5C82320700BC20705D15C94198E5BE10DC4B057C8D6033D3DDCC3B0DADB153E4A5619F93549C62BC47B0E9E042D74CC0F8DCC3BC2C1608D7615CA1AEC19FA4735E7A7F1D0765C75840CA5C45F4B893E99E6CC959CEC67A468E1F14BEAEA9FCECAF61B3E4001236D86EF157B1DC3DF5948D969C7F154CEE722FCC77B7B424F432B2BC35EC1B3D52D3B5A77828879C9C688EA43DE2E4036E826D73E09FB58DA5C5848D168EAC657DBDF1B0F724942D31CC3705A3606491379CB16B2CFB9D2C46F455061BF296BC0D8D86307AF5F825BCB617C3694662DCF52184B4D8DAC7E499E10054BAAB10DD5527A97F71A2CD4A3973286C58643F7A4A82E1D401F9A1E891F87BE33F535952CFF35D707E928FD8C4643FA80299C83555640A98AC2BF1866C9E392DC5A17631FC5A0F5A4A486563753636365E15E11704714468E7905451C33B4583DA1E3A010B81F6EFE0E371DA3F751E1AEE7793F4FBCB5B94F6123E0BA61FAC693BDA3E5F040EB934FBD14B1EF8E570EC3AA72907270E5A9AD8F896B878A7EA558F508420108420108420108420108420108420178BD55EBA4E668A793DD613E0831D1B7D2F119A43AB5EF73CF55F45571C9649232D69B41B80D339E27A15FC3DA5B4AF2DF6DD6683D3FD950633CC3EA8D131DF5F1C61D947BB7B5C9EB562564802D21D113149B9CDD0F76FED4DF0EAB3550B9B20B4D19CAF0367411D0A27D0B9B73BC2AD46D316379774913AE3A8E8AA43C880E7413EC8F58F52C7D53CC9532C87EF389F15AC95D928EA241A656103ACE9F15909B6A83A8058179EC57AA1A59474C0EC707BEDDA1BFF00F2AA1F523685DBEB193C2DCDEA3A368601C75713E2550E392AFB6232B3F99091DC41F827A76ACC726E760C6E9C03EDE667782B50FD1C7AD4AB1CBB62CAE2ADB6213F4BAFE016A8ACD62EDFE3E63FA7FF00D424297C06D30EC5A9A371B0E2B2CDD1C085A5A17FAAD3D0AA43FA53A057EC1CDCA77E896D2B8E8990D9D4B2D11727CF378AC03897B0F703FF00F2B6BB962A9488B1A2365A7D3C47C56D46C41C15C95D15C941C9592E596172CED82BA8465ADA670744E1A171BDF2F49D2E3B46F5AD2A0A88593C2E8A41763C58F1EB1D281261988418BD0C7594F601FA48CDF1BF7B7E23A155ADC024350710C2DEC86A9DF691BFECE5F91E94ADD055E0BCA0BD306BA5A836920710C8EADBEF30EC0FE238EA34365B3A4999511666B64611A3992348730F023E2345066462159010DA9C1AADB20FE58CC0F5157A9C6278BDA29A07D061FF0088D71FAC9070E80B400291AD54C751B1B1C6D6306563406868D806E581E53D50C479674B4711CCDA261CE77071DBE0B598CE2F161D0BDA1CDE7C30BC8D3EADBEF1F80DE561793703E77D4E293021D50F39336A6D7DE5038935BAA922B6F55644159DB5797D10F5C82AA1CF279F9B0E9E1F725769D040215803461E176F88F9AA1C9D92D555717BC1AF1E20A60ED2E383C791F920B9833F2632E6FF0032236EB042D2ACB50BB263348EF7AEDF02B529563D4210A010842010842010842010842010842012BE504BCDE172377C843077EBE49A2CDF2B1F6146CDF9CB8F75BE2822C398D6C5003BCE73D42E7E0931CB3F2C2ED21C1D441C4B4DC125D7DBD4004FE8C7ACCFC91123AF455A1A483D3CCCD85826D85C3436E9E28886BE16B63246D597A7B3F9412B87B3144469C490B5F8A7B2B23830CF2D74E47B720603D006BE2552AEE24ECB8696EF91FB7A00FDD65ED9A6B705A4C65F682267BADB9EB3FB2CEC5ED39CAA090A89E4B240584B5C058D8EF52ED712750DD4A8092492769D4A065823E4FA5A9257CA723666B6C40F5893B2FD5AAD84E2D2BBA0AC3738EA7ADA58AFF61235CEB7BF719BE03B16F6A80E7DFD654AA81DB120C55B7AC94F437C93F3B126C45B7A997F4B75EC4852620DC27786BAF134A50F6DADD698E16EFAA03868AA34B487409A3756F5A4F4676714DE1D5AA291557D562CF770735FE2D2B6CC37683C403E0B1B8AB00C41A4FDF8FE07E4B5F46ECF4D19E2D0A2BB72E4A90851941C15195215C140BF14C3A9F13A474154DCCD3A870D0B0F10771594999CA3C0BD5A773312A51B335F3B470E3E6B6EE50B8022C751C141843CB0C723240C3676BF735D1123C94C71FE52D5C25D50F8308A723596566575BF28DA4F505A79A8A175EDCE32FB4472B9A3B81B2A6309A1649CE7301F27BCF25C7C55319A8E864C59BCCB79E8F0FCFCE4B2CDF6D52EE24F0E0360EB4FC46C8A26C5134323600D6B46C015C78D2CABBD0577AA722B8F55244151EA2BEAA6915626C554ABD8349931A68DD2465A7B354F26FB49474070EF0B3143264C5695FBB3E53DA085A89EFCEF4B9A478211C97F373D24BEE4ADBF55D6C162AAB5A22E1B5A4382D9C6ECF1B5DEF0050768421450842100842100842100842100842100B21CA7933E271C7B981A3B4927E0B5EB0F8C49CEE372F43EDFD2DB79940CA80973A137F698587BBE61754A3EB5E7A6CB9C35B9799E805DE054949B09E24A229E3EEE6E8E57DFD96937599E4FC6E185C44ED91EE78ED3A79273CB09F9AC227B6D7D9A156A18841040C6EC8E36F80D550AF1E90191F6D97B0EA49A3168AFC55EC5A4BBACA9DAD10EA55946FD22FD67C17548D687195E2EC8C1791C6DB077D82E6A349033DC0076EFF353CF6830BC83DB99E01FD2D173E25BDC8A5A5CEB9793775F313D2BE9123B38649EFB03BC02F9BB45C81C57D0E9CE6C3689C75BC2DF2FD945052CAC6DE679FCADF24CCAA550DCD24A6D7D1BF1502691B63DBB14F861B1737815ECEC2013B9714472D4BDBD45691A3A476C4E203A24948762734E74514BF196DAA69DDB88B788F9AD0E0AFCF85C04EDCB6291636DBD344FF75E7CBF64DB93AFBD139BEE48E03AAF7F8A8A6C546E046CDAA42B8720A8E3537D238FFA8AE1C6ABF971F7956CAE4A0A0E7D50FC161EA7281D3548FF0076BF539317285C8A5AFA99C6DA47F610ABBEB241B69264D5CABBD02A7D791B69A61D8AB3F116EF8661D89AC8A9C8110B5F8947BE29876281D884076891BD6D2AECA1529151C3A66385C1D1547BB5523D5771559AEC38B6489E36B1ED778AD949F690BB75C02B12E3789DD02EB641FCE51C328FBCD6BBC14AB1E3997A47B0ED02CB4F85C9CEE194CFE318F259D1EB73A3893FDF8A71C9C7E6C218DF71CE6F89F9A06C842145084210084210084210084210084210784802E7605802EE76B0BF6B9F99FDE74F25B7AE9043435121FBAC27C162685A4D5EBBB2B47893E681F4432472BB7323CA3B7FF845369183D0BC71B51CA7DF786F705EC7EAC57E84465B95AE3513515283F6B28B8E8B8F82B2E764825771161DA7E4A8628EF48E53D3306C8185E7AEC7E6AD55B8328C8DEF75EFD007EEAC466AB9D9EA6DD2BDC99A56B7A428FED2B3A8DD4F7B39EFF75848EBB5BE2A8A801966B9FBEEBF8A9B1821B253C0DFC38838F5B897791014703497656ED3A0EBDCB8C4DD9B11A8B6C6BCB4750D07928B10C0DBC83A16EB0D767C1290FBA0B3C4AC45334EA42D7F27DCF760995F6CD1CCE1A6CB58590F6B8557736EE9BA9BF1560AE18D04CC4EDB37C8A815CEDDA372A717AB5963BDA9A4ECD494B5E3255C478DC2B129E529D89CD31D02474A762754AED12AC18B36F87BBA0B4F8FEEA7E4BCB9A3999C0877805CD7333E1F30DE1B7F1FD957E4BBF2D5BD9EFC60F6871F9A8AD5151B948B9720897254555594D4603AA678E20ED998D89EA0AA1C6F0C3FEFD0F795172AD951B95538C61C765643DE570EC5B0F3B2B21EF4133940F51BB12A13B2AE1FEA51BF10A23FEF50FF0050547922A72291F5B48765543FEA055A4ABA63B2A61FF5022209951915992A203B268CFF00982AB24B19D92B0FF982A5567AAEF561E41BD883D45567AACD0DD411C42D5614F32E0701DE1801ECD3E0B24C3AAD37275D7C1CB77B1EE691DBFBA9486517B5FA9A0F87EC9A7269D6A7A98FDC989EF012A84DF271B11E3FBA61C9F765AFAD8F886BC78A2B408421450842100842100842100842100842102AE5149CDE1128DEF219E2B37858CD52F76E04DBCBE09DF2A64CB4B4ECF7A4CC7B07EE966194EF8E95AE769248059BC09D9DBAA0BB50EB5340CDEEBBCF7AEDF76C03A5435243AB446DD9180D52D6BF9B8493F7017782231F4C79FC77109F736CC1DFAF929B1776489ADE0DBF8950604D2E82698ED9A527B3FBBAE31C92F33C0D80E51D405BE0AC4A5746DCD2BDDC02EA4079A94F50F1FD94B42DB533DDEF15C4C3EA1C7F3B47815471436F4FA7076191B7EAB84B5EECF239FBDE4B8F7ABF4C72D6C3D64F814B5BB07528B17A8DB78C9E95A8E4FF00FE8AA5A773DA7C0FC967285B786FD2568B93E6DE96CE2D6B877FEE9E93DAF14402EE9BA9BE457A5754C3D69BA9BE4545549D9B46FE09456372CB0BB8393F95835093624DB441DEEB8156157695DB13BA43A048690E80A754A6F64A43270CF03DA7EF348F0294F27DF97118B890E6F803F04E63D400567E809A7C561FC93069F10A2B73B972E5E8D8BC720C6F2D30E6D65652C8FAB8E00232D0D7826FAED161D2B2F4D8319ABF9864EC7581707D880401B755B7E548CACA59AF6CA5EDBF65C788091D37D6E310CB13B46B7292370B902FD965CDDB72BBFA24BC36A08F935296DDB5309E16D525A9C3DE272C1230DB78BAD31C51E268616011BD8E0D31B6FDA6FBF4D0049DD1F3753334FDC796EBD6BC65E53CD7B7474F9DE45E682468D1CCF15E7A04DC5BDE985EE548D4FD963A2F4712F6D0545B4B77AF7E8EA8F741ED0B414B187C5132388485EE2D9086DDCC171A8E02C54D24058C7364879B0C6660ECA4126C342ED877E89F972CD8E7BC386E32AFA091B6CD08D741B1435146C634974719EA0B45259D191DA3AD2F91CC7C52B6F7CF721B97506FC56BAFB2F29E58ECE99C6F864E52EA5AA0F84E5DE2CB459839A1C36380290E26CCB93A096A6F46ECD4101FCA02EDE37C3E6F64CAEC6D5A0E4C3FEA6AA2E0F0EB758FD967F7A71C9A75B10A869D8E60778FEEB5599F67D1E8474388F0FD95DC20E4C71C3DF84F98550699FF005023C7E6A7A677378D51BFDFBB7C0A8AD4A178BD5142108402108402108402108402108419AE508E7F14A580FB21A5C476EBE01491B6C5D3BB632ED60E07795055BF9DE50CC7746C0D1DC2FE6A5A97E4A2633EF381711D65056A5F5E773CEBA955F1FA9E6B0EA87DF5C84056E958590E73BD67394D239F4AD89A759640C551260D106515283A0C81C7CCA4989BF338F49BAD19023A59B2E818CCA3AB62CBD59CF3068DE6CAC4ABB033251306F22E557905E99DFAC7914C276E4883780B2A445E99DD0F6F9144516695B0749B7814BDBB0752BD504B2689E36B5CD37ED54DC2CE23812146A1A61B774047BA53FC1465AC737DF8C83E07E0B3F839079D6EFD085A2C245B108BA730F02AFA4F6BCEDAA5A31774DFE5F22A378B12158A017337F97C8ACB4E276E87C926C519FC2BFA355A091BDC9557464D2CC3A0A42A8D13AF1B6DC13CA476C59FC39D789BD09E521D8AD661CC3B02475368B15989D2CF0F1D1A829DC074497176FF00E60E1EFB34EBB7ECA34DA466EC0788057A541432739470BFDE603E0A72812729E49A2C1DF2C0F7C6E63C1BB4D8DAF6F8AC48AEAB73F9D75448E91A32824EB6E0B7B8FC664C12ADA353933771586A6A1E7E26B9D711B8E5CDB815CBDFCA71FB7D3F8778FE1E7FAE062758E93373DEBDEF9B28BDF8DECA39247BDC5CF399EE25C5DC4EF5186E4738137CA48B8DFAA9A9A9E4A891CD89B99CD69711D037AF3B75F4271E3C7CC72D53B429E9B0EA99A8DD551C59A265EE6E2FD3D6B8A685F3CCD8E26E67B8D805E7CA566F3E3FDFA7AD25BB091D46CBA2F71162E247024953B70FAB35469445F5AD198B6E2D6E2ABC8C74723A39016BD86C5A7682B36729F6F3978DBE2BC2E4B03F9B909B0241D2FBB557C94BE421B33BAD6BAFC54EDE3B08B13398385AD95D757309766C3DA3DD2478FEEAAE22DF59FD5752608EBC13338381F0FD97D1EBBB1F23BF8E725E298E02FCB8B347F323737C8FC12E2ACE1AF2CC5295C37BF2F782B75CF3EDB078B17F55FB8844AEC9514727B9337CD496CD201EF348F055EA89F436BF7B4B5CA469B35EAE1AE0E6870D8402176A28421080421080421080421080421435327354D2C9B32B0BBB820CB533B9CABAD9B7B9E7CCA59CA232CB8AC58753C858F92A237666ED6B5AC1B3BD31C28FF0D313B6E09F057BD0227E36EAE22F206641D1A9D7B912BAA98F98A40DBDC8005F8F4AC862979F18A087735C5E7A86BF05B5AE6E68EC162D9F5BCA3A876D1045901E9247EEA956EB9F930F3AEAF7016E800FC6CB3B4EDE771189BBB35CF52778CBB2C50B37D9CE3DFF00B25983333D7B9E7631A4AA9ED72B4EA94CF5618D7451B7339CE682E26C1BD17E29AD66AED766FEA5E9A58A08DB186873B2B4927712039D6E9B9B75040827E71ED37109205C6590DFB34556D21B97457EDB2D408984DB285D3618F6651DC986B3B4950FA594BDB0DC91620B82718662F23B12A56BE9831AE9402ECD7B6AAE8823FE5852B606348708C6669B8EF40CE71695C3A54F870D66EA6FC571563EB9DD3AA930DF6A4EA6F9B965A4B20EF546A1978DE388299B80D5547B06A833141A02383884F290D884969865AA99BC1E539A53A85AACC3AA7D897E3432D5D3C9BADAF7FEEAF539D02A98F37EA217F0711E1FB2CB477823AF86C2D3B580B55F294F27DE5D4AF1C1C9B1415AAA312D34D19D8F616F82F9D8A9A8A7718293649A16DAFAF10BE94772F9BE77415F34308CB9242D2EDE755CDF238CB36BBBE1DF163C9E8EA69E90668486EF36DE98F262A1D0CEEA67C20B6A3D5E737B743A752734639DA2CB37AC08DEA918C525446E60B35AF045BAD73CE7F8E57BDEFF00D92F0AB3804721A464664310A798E61B43C11B3BD2E8E68F0F9192080F3F14AFCD7D039A469AF14C60303E7AAA7330631D28923783A5C150563E99D51552119DDCE35CCDE1C2FA85E9CB97F8CB1E52EF2BBED7889582290C99E57D23ED28DE6E08EDD523C5FEB24A6A9DF510871EBD8535967A3A08A98C5336489F39706DC1CAC70208B70174B71F10C315153C330979B61F581074BE8B5CE6F16BE3FF00BC2871542A7494F4856C9556AB6B4F42F2E13CBE8764F0535EDBBBAC2870475A599BC5A0F8FEEADD636F94A5F859C988E5E20B7FBEE5DBD57C3E2FC99E4E4AEE07F3753049EE48D3E2B972E1E6D192368D57AB91BFBD8B0F03F150CADCD452B4EEB85D46FE7299AF1F7807782E9CDB8A86F1248EEBFC546DA3C364E730EA67F18DBE4ADA5980BF360F4FF94169EC253350084210084210084210084210097E37273784D41E2DCA3B53049394D25A8A38FF009920409B067B5D254C27EF5ADD82C7C530A7AB6190B1EE0D9D9A3DA4D89E04742434123A3A989ECD733BBC13FBA65594D4F573DA78592F36DB82E1A8B9DC7B154758B635152C458CFAEA97E91C2CD493D5C12AC3A8DD4901E78874F2B8BE470E3B8762B91D253D29269E18E32EDAE68D48EBDABD033380E26C810E3925EA5C07DC01A3BBE68C023FA9A894EF21AAA62B2892A6578D8E7123AAFA26B84C7CDE121C76BCB8AA8AF346EA89DB0B76C8E0CEF207C5589FD695CF1F88E73FB331B78594704823AF8A43F8799FFD2D73BCC05216916076B5AD61EC00208C36D6D34E295D75539F218E336630EA7894E763741736D025D53495068E9E26465C45DCFB5B43FD92BD7AF376BC3B672B3218D249E914CC7EF3B7AF7AB01A7A82E286131D1C51916781A8DF7DEACD808C9E1AF82F3E59BE1E9C373CAD551BE476E2D69F052E1BED4BD2079B9406E68E98BB526317EB53E1BED3FF0048F32B0F55A7280B4665688E3B54763CE71419095BCDE2B3B4F1BA674A6F654B1767378DB87BCD0559A576A0AD7A67D9FD29D028F19666C3EFEEB81F3F9A294E814F5C3361D38FCB7F10B2D39E4E3FD570F79A1DF0F827E762CBF2764B54B587DD23C7F75A83B1046B11574A5B8FD5B40D1D2661DBAADB959EC4581B8D977BCC0EF0FD9737CAB9D7AE8F8FCBF1E57FF166319620D6EE0AAD5805AA78658C389905DAC69765BDB31E0A41140D32195A5D1B8B434EF68702B878F0BD9C659566F1E5B488801727626EDA38452989EDFE21EE786BFA5AA949034608FAAB7AE24B037DDB3CD5FD3CA3AB8F64A4153A487AD4171BBB537C1685989D5C8252323184E5B905D71A7729B0AA0A39B0BE6EA19FC4CF2BA263F7B5C05C792E9E1C2D8E99DFC784CA43750D4FB20F0298617466B7128E99C436E4E6BF01B475ABF2505243518A89A3CCCA6CAE634DCD813B55E3C6FDB7D9DBC78CB192AAB186FC0A534EEE6F138CFE71E3FF00CA7F8AC02074B137D96904756E59C94F3752D7F021DE2BDFAFC5C7CBF91966C685CB876AD23A176EE2B95EEE16CB0A767C2A9CFF00863CBF65747DA3BA5A3CBF64AF93AFCD85423DD0E6F89F9A66DFB569E2D23C7F751A31E4C3AF87C91EF64AE1E47E29D243C9A3696BD9C1ED77783F24F94AB1EA108402108402108402108402CC72B25B3A160DAD639F6E9FEC2D3AC672924CD894A37343583C2E82961CCBD5C2DDCCD7B826A47D64AE3BC81E03E6A8E14D267711B9B6F10ADB1D78CBFDF739C3AAE6DE0AA237ED5138E58DEFF7584F8295CAA57BF2504C7DEB3477EBE010652ACDCD96A79BF47C36067E4175970C32D64518FBCE03C56B71036F546C02CAA4209EA19055B79EB88E4639B7E172DBDFB2E994F3D389DF79E3D493A385B6A5F57132A23E6DDA106ED70DAD297FD1EF1F8ACFF4C207ED9E9CFE347DE14CC9A03AF3D1DFF5059D14125FED63FF004D7430F97F991FFA6834ED92136B4CCFEA0A2AFA9820A295EE959A8B5C107559F187CBEF43DB19F9AB54742E64CC92474272904011DC77281FC1273B8731FB087BBD5D85A2F700F4D8856F0DFB477E91E6555A707D0E5BEA79CCD7DB7B8DB756B0C3F5CF1F9479951578DD716B3B8A98851DBD645663946DCB8AC2FF0079ABCA53B159E5630896964EB0554A53B15F4CFB3EA5D8AEBDB9E9A566DCCD23C12EA53B13488ECBF6A8D11E0B264AC88EE0FB1EA23F65B3DCB0B013056BDBEE3DB7EFB2DC34DDB7E28392B3BCA29053D752CA746B9A5A4F6FEEB46566396ED230FA7987DC90B4F68FD9797770FCB863D7A3FE9257910E76411DF57100157E6707BEA6360F558C01A3F49FDCACC61B8818F9BCEEF5D8459D6B8ED5A07D6CAF2C94399EADC82D1E7D0BE77549D72CAECEDEBB2AC4DEBD4B0B46B1CEC711D0E0079A8CD236AA86A2999331A0891994ED0ECE4DFC1289B1E7D3563E70F8CB9E2C5A765B72491E2D247883EADA18E7BF3021DB0E61C175F1E72F94E3D1CEFD190C4291D53869A6A7E6268646895C0001DB01EB57606B98EAB6335752E20D940E826CB26D7E520B4EAD3709AD3E3B3C38A495C1B1E69459ECD407683E4B52FF005D3CFA6E6715AC4E6A385957482022B1950E7325006CBDF6EDD85307B43F15965DBE91459C347DE3976782CE4D2495158FA89D995D212FB6E5786213324A473400FA76E569F785F61F259FCE69CBA6FE33295E2C0485B301612C61D63B8F0593AC1EB8ED5A9AFAA7554999C037282D0D0B2F57A9BF0365EBC2F9F0E2EDE3670CA7913B3C113B8B5A7C11BD4542ECD4309E02DE2A52BA1C0D1F25DF7A37B3DD95DE413C69F60F02E1E03E4B39C99701E92DDE1ED3E07E4B41B81E0F1E4546A7D2EE02ECB8B55C7EF303BC7F75A1598C35D93944D1FCC888F23F05A752AC7A842100842100842100842100B018AC9CEE233386C3213DC2C3CD6EE57E485EEF75A4F82F9E3DC5D2F65CF5927E4819E1832D34F26FBF902A50D0C89AD1F75A07828E06E5C2C377C86DDE40F252C9728889DBD2EC65E051B1BBDCE27B87EE989BEE49B1E92F2C51FB8CF124FECAC4AA18347CF637003B1A4B8F727B891BC8EB9D12CE4B479AB6798EC8D855AC5E50CD09B179CA0F0E954F4573D41126485B9E4BEA4E81BF35C35B54E1732C63A036EB9A72E738B5ED0C919EA39AD16171A6CF1575A2C82B886AB74D1F6C657420ACDD343FE9956868AA31D24F890905C41192CE826DE775352DC48D82BAFF006D07F4953365929E46C756D0C2FF0065E356BFA8F1E83AA9E1731ED6BD9A822E15E0C64B0BA195A1F1BF6B5DB3F628A9287586668D4583958C34DAAC8E319F31F35530EA1F449A631CC5D03E3D18FD5CC371B0EF1D6ACD09B57B7A58E1E2D45372B93B576B9B6A14524E56309A081FEEBEC94D29D02D0729A3CD8293EEB8159BA53A057D337ECF695C9A40EBD926A576C4DA9CEC4526AA197149DBEF66B775C2D8523F9CA589FEF341593C5464C558F3B1C1A7E1F05A3C1DE5F87457DA2ED51574AAF574D0D653BE0A88C4913C59CD3E7D6A72BC284211C97A160B3649C346C1987C9153C9DA3A8686BE4A90D6EC6B640079278544E58FD7C7F8F5FDBCFF00ACE1E4961A37D4FF00A83E4A37725F0F1B0CFF00EA0F92D1B940F57F18BFBBB3FACFBB939423619BFA828BE85A589D99A64B8D9720A7AF54E44FC21FBBB3FA512E1F1137CCFD34DAAABE918DD8E7F7A6D32A3327EBE3FC4FDDD9FD299689849399FAF485426C2607ED7C9B6FB427322AAF5A9C64FA79F2ECE57C5AA8D8C44C6B182CD68B00B92A57288AD3CCD3938FB564EDF798D3E23E6B5047D5BFA0075BB42C8604E2DC55A3DE8DC3FBEE5B01AB5DD2C3E4A56A7D3D84E4C7689DC496F815AC58E95E195B412EE12B6FD570B62948F508428A108420108420108420A38C4BCD61750EBD896E51DAB0B6224793C40F00B5DCA57DB0F633DF900593A706591BFE23AFDE5214E0B408E9E3D996C6DD40FC4AF1C576F39AABA18C247691F2519447076ACE63920756CA06C6FA9DC2DF05A568BB9BB163ABA42F99EEBFB449F156253CE4B47968AA65F7DC1A0F625F8D499AB5910FBA2E7AD3CC1A3E6302877192EE59DA877A462F2DB6036087A733B4453C136C6CA323FF00501A78792BA174FA615148FA7B8617D8B1CED8D78D84F915569E7733EA6A5A62999A10EDFD4551681CBAF054E91CC9280D8E6707E7701A9DB7D3B95C6BD8740E1AF4851D1530A56BC35D9B39BF0B0DC14AC596D5AA761642D6BB68D4F5DF5F356E376CD8AB03A29038752370C299F794378823A362F6934C421EB737FED3F255A09C472B0DC7ACF6B00EB3AF85D598C5AB61E893E047C514E579BD7BB90A2AB6351F3982CE380BAC6D29F542DD55339CC3EA196DAC3E4B054C6C3A8AB129CD2BB626F4EED89253BB54E29CE81056C7859D4EFE823C7F74E3017DE9A56707DC751D7E295E38DCD4713FDD711E1FB2B7C9E92E5EDE2C047F7D8A29E15E15E95E141C951B948546E4113940F53B942F45567AA922B6F5524414E654A657A65466445391547AB722A8F552ABBD44E52BD44E55959C29D9715A7FCC4B7BC15B382C7283BF4585A57F375B4EFF0076469F15B880900741D14ABC55EB896D1C2FDEC2D3E3FB2DBB4870046C22EB178936F45281F75CEF32B5D44ECF454EFF007A369F008AB084214508421008421008421066B9552D9D0C7B98C73CFF007D89250B7F89887BBAF7057F94D266C45CCDB60D678DD55C35B795EEE0DB78A0BAD75E49780B37C2FF0015C9E94437E68B8FDF739DE3A780411C77AA88667E482693DD6123AEDA79AC74F72EB0EA5ABC51C1B874C7DE21BE3FB2CCD2C667AF8231AE6900F156256C8B453E1D047B39B8C77DB5595C2A33515B2BF6DC937ED5A8C724E6E9263B9AD20251C9A8D8CA6A9A99748E369713D0A2BBA8192FB95491CC9406CAD1206ECCC2F6EA2A0A39FE96AC9A699B789A6CC8CEC03A7894C7E8FA577E033FCB70AA178A6A5FE501D4485E8A3A73B39C6FE990ABDF44D31F679E6FE994A3E8965FD5A9A91C3D607E0862A0A4601EACF52DEA92EBA14927DDAFAA03A434FC15B18511B2AE6ED6B4AE64A09D8E85ACABB99240CF5A21C36ED41E535398E66C934F24EE61B8CD6007604E0B836B5AEDDCE37CC2A9F43556C1591F6C47E6A6A9BB6C4EA5A1AE27A458FC14AA7DE6BC5D10BC2A2A568CD13DBC411E0BE76D1966959C1C42FA342BE7F58CE6F14A967E72AC4AB74E537A675C0492029BD2B908B5898CD85BB834B4F8FEEA1E4EBED333A416156676F3987CECFC848FEFB12CC1A4CB52D3C1E1456C5785745725072546E5215194113940F53B942F45567AAD22B2F55A4414A654A6576654A6445391557AB522AAF552AABD46E533D42E55944496D9C36B482B794EEBB7B560DFEC15B6A17E7858EF798D3E014ABC53D58BD35403C6FE01687027F3982D23BF201DDA7C121A8178E5E9634F9FC935E4B3F360AC6FB8F737C6FF0014F4BECE908428A10842010842010851C8F0C8DCF3B1A0BBC1061F15979CC42677BD21B1E81A7C54941EA4334A7603E42EA8C8E2F9CB8F0BF6926FE49840DFFCBB2ECE709BF690111619710B01DA1A2FD765C952BF6A8950AF1E932D24318FBCE2E23A869E696F2762E771B874B865DE7B958E513BEBA28FDD65CF692A5E48C77ADA8977323B5FA4957D27B5BE52C99689C2FAB881E297CFFC3723DD6D0CF2069E900127C6CA7E54BEFCCC436B9D755794679AC26829C6E8DCF3D64803C942A0E4E32D4CE7ECB9DAA6C5A37FD4C826786991AC0C06C3A4F4AF703665A01D7752E21EB4F4118D6F3663D810331E6B8A61796691DF681DCDDBDD6EEF3BFF00F0A391D3191B1C058D7105C5CF04802E377595C73B33ECF8446CFAA1248E7026FB6C0771D514C46A6FB1456CF88D234EC697BCF736DE6BB6383A36BB5198020762E6000E270DFDC71F1FD9036012BAACEF8EEF6E47B9AE05BB6C754D42593CCCA825F11B86BCB6FD3A6C40EA339A163B8B41F05EEA54744E0FA281DC58DF252A8A960B5D6231F8F9BC76A3F358F82DB43B564F956CCB8D077BEC05589546029A529D894C299D29D5121D53FACDCBC742B3F424B2770E1F34FA94D9222DE6F159A31EF103BD469B763B346D77100A0A830E7E7A085DF97553941C951B9485465046E503D4EE503D155DEAAC8AD3D55910539153995C915399114A4555EADC8AA3D54AAEF50394EF503956513B62D7E0CFCD454C6FB6303BAE3E0B2056A793CECD4100E199BE27E6A55E276F1716E2C23C7F756F922EFE02A23F7263E415577B4CE9CCD3DC3E4BBE493AD3D7C5C1CD70F14F4BEDA74210A2842108042108054718939BC2EA1C3696E51DA6DF157927E52499681B1EF91E020C813791DC010D1DC3E29AB1B68A9A3E2413DC4F9A52C1702DF7893DE5392073EDFC8D36EF03E0AA3D72E5744DD0C179003BCEA832F8D499F1197F2D9A3B004EB927165A0A897DF78683D1659CAE939DAB9A4F7DEE778AD6E00CE6F028776725C7BD5A93EC9B1A3CEE2F04635CA3E2A1E56B6F52D8D82E58191F70B9F356236FA5729EDB838352FC52AA6A8C6AADACA67CA04AEC9908BDAFC3B104F4152CA7A56C6FBDC6F0AC99E92496291DED4772D26FA1DE9339D237ED292A99D7112A3F4A84684BDBFAA3210F2D04AEA4A9004925B2EC2D7106DBC752F1949425C0995EEB0B59D29B5B70B70E848C54D3FF00380EBB85D0A8A771D278FF00A8261AD573F15AE2461ED08A47B1D8B385C7A910F33F3598CEC3AF3ACEBB85DC4E6817CC066F58EA3FBD9A261ADA54B3D229A589B288DCF160E1AD92F6D1BA869B9B3373A2F981B5B2F42CF893FC41FD498618F0FE799983AED076DF7FEEA61AD3E146F87C407DD2E6F738AB897E0D7F4695BC242476807E29859469D47B5677968CB4F4920FBC1CD5A28F6A4FCB48EF434B27BAFB77848959988A634AED425919D42614E750AA43BA6295E2639BC5F37BC1AEF0FD930A676C5471D6DAAA093DE6DBC7F751A6870770348E68D8D71B2BE527C05FF6ACE20387C7C93828392A32A42A37208DCA07A9DDB140FD88AAEF5564569EAAC9A0414E45526572454E6DB6445291557AB726F2AA3D589559EA072B0EE0ABBC80093A01B4AA88CAD1F271DFC18FCB291E0166EE08046A0EC29F7275DF51337DD91A7C0FC9293EDA776C69E0F1E4571C9C764C7AAA3F7E3BF711F35D93F557E969F10A2C2CE4E54307BEC70F0BFC145AD7A1085142108402108402CCF2B26CA6267BAC73FB569963F9459AA714744DD7286B0746B7281652B2F2C4CDC08EE4CA339A599DB6C1AC1E24F9AE440CA78890333F6171F8229EDCDB88FBCE71278EB6F82A890ED5CC9218E1964F718E3E0575D2AB624FC986D43B880D1DA47C1064DFB485BCA760830BA766CCB1B7C96163619276306D7B80F15BBC4DFCD51CBBB23081DCAD4845C9EB3F179EA1DB184BC9E8174830E91D2E30E77124A79845E2C1710986D319603D24DBE291E020BB117BB70BA0D436F61F05D35CD76601C1D94E53637B1E9556A677B32C30FDBCBA378346F71E850E042D46F37B932BBD63BF67C945302D8C02E7B59940B925A08B2052D34AD0E3040E0ED41E6C6C44B1F38DE6EF66BBDAE91BC29C7469D48285561D4220949A4833653621A058DB43DEADD3E05861822CF43039C5A0924742E6A9D6A59785801DA427118CAD6B7800077205E393F849FF00DBA1EE28761343471BA5A5A58E293D92E6DF670558369EBB159F9E9DED735C191B01B070035F15348FAD354F1273C21D6CD0DF52D7D0DF7F4DD05BC15F7150CDED2D3E07E49AD926C19D6AE959EFC77ED07FFF0049D283D668551E55C79F017B86B95C1CAF336AE7198F9DC0EA99BF9B2515F3F8772BF01D425B4E6E02BF01D8AB2714CED8A3C747D440FE0E23C3F65D529D8BAC5D99F0D71F71CD778DBE28A970296D3443DE691FDF7AD01BDB4DBB964F06932BA270FBAE0B5AA293E0F1554334CD98BDD1381273DFD57DF60ECD55AC4B9C34137324892DA11B7A6DD8AE13A28CA817616246D296492195AD2324875CC08048EC3A2CFF002E26A9829A99D012D8F31CC46CBEEBAD6B8E8AB5444C9E32C95A1EC3B5AE170A857854F254E174F34C0891CDD6E2C4D8900F82CA63D555B4FCA8639B9F9B194C6D009045B51F35B87000586800B003600AA4F1B1CE6C85A0BD86ED7100969E2137C967855A90E0256B3DA1703AF72C6F26DF53E9B5515467232173B303A381FDD6CDFA2A7200DCD9406E7B6620005DC2E521610F28DB2BF0EB45736702E036DAC57B471B9B83D1BE5B891ED75C1DB6BE87B931905C10AAC97D01D80580DC0742B12A0A38298D6CD2D467CF90E43F76D63707A6F96CAACCD0F696BB61DAACB940E551ED53A173601037206B2C5BB9A6E74077E9BD5FE4FBAD254B7A1AEF13F34A2E0DEC6F6D0A69809B554E38C57F109527DB580DE99DFA546C7737CA0A193DE706F7821494F6743978B48F0556A9D967A19BDD7B0DFB4291AADCA108514210840210841E2C7D4C8DF4BABA976C2F20750365AD99FCDC2F7FBAD27C1622A2FE8CC6EF76A7FBEB289544C7558B56C74F1CDCD1793771D431A06A40DE7874A4D4989D65156CE207495743138E62FD5CD6DF6E8B4B4B30A386AA60CCF23A2746C68206AE2D17B9D837928FFC3FA285D8754D5C858F1212C70DB61BD699F78B74F3B2A606CD19BB4EEDE0F4AA18F3CB6818CF7DFAF603F35479373911C4CBFD5C8D361D57B782B1CA27FAB4D1F439E7BC0F829ED77C17E0D173F8BD333767CC7B169B943265C3E5E2EB049392F1E6C583F746C714C794EEFA98A307DA7ABEC9F4A72BBD1B92846F9A40DEC0093E412BE4E305E690F52658F46E660F451377B5CE037DC91AF704B70E94D14395A01276DD0F6633D13CCD2D432AA48C96EC681B00D8BCC1A27B70DCC1E4BA404869D8D3ADACB81899DF18520C559BE3F14351D397BE3863863918F12B4BE490137394DEE3AF456F0C6C824BC81E0889A35B8D49713E6A318BC7BD87A57631783DD78EE50D59AC05C21887E24AD16E8D4FC13B739AD0E7BB46B4124F00B3071381D3D3BBD7B46FCE74D6D6B7C534FA728C8D73EBBB2A2EB8C4A4A7A9F4614E58F9DD2020B2D7B74A74FF00598E1C41091C3896194F2192184B1EEDA435596E39487F99DC86BCC334C49BD21CDF0FD93EB2CD534806214F2B7D973C771D3E2B4CA019ED2B133049472C67EF308F055DBB55C8B5622BE5B08CA4B7DD242BF0AAF55198B11A98F66591C3C54F0AAC9AD31572A5BCE61F3B7F213FDF72A14C7626718CD1967BC0B7C114930B7D81B6ED56CD8EBC6D3C40588C32ED9F21E394AD8D138BA8E2BED02C54585D2C958CC6C16B8BA12E6339AB685A76BBB36A68E525D465409A867AB755915243A394BF2B40D632DB6DE8B15EE3555251E13535108BC91B6E3AEFB533B35A5C5AD01CFB5DC06A785CA826635F1B98F176B85883BC2A333C99C4E6C46927F4839A489CDF5B8837DBDCA0E5762351414901A6394C8F20B86E16D89F53D1D3D0C061A68846C2ECC6DB49FECAAF5D4B0D64062A88C3E33AD8A7B3CE2850D43AAF0DA6A877B5236E6DB2E0907C9676BF13A96729DB4F72200E6B32EE7036D7C56B24B656B1AD0D646D0C6B5BA001509218C55C555CD83347ECB8FC78A1E956B83E28EA1ACD6460701D7AA458019E6A7AB3297B9B16521CEB9D49B593F90924926E4EA4AA840635CC60CAD79CC40DE78956255296164B3C3CECAF8E204DCB6F7BDB4F152D746C8EAE664641635C40235087ED50B95478C14F1D13D823B4EE7B5D9B6E61ADCF46D0159C0DD6C408F7A370F0FD95036BDB7AB7841B6290F4DDBE05127DB63466E00556BFFF0044C78DAC2A5A27597954DCD452B7DD711E2548D56D237F39131E3639A1DE0A454B08939DC2691FC6268F05754508421008421051C5E4E6B0AA977E42DEFD3E2B27507D9EA5A1E52BED86860DAF900F8FC165EA65FAB89E36385AFD2AA552C46BA78281F05335DCE3F23DE5B6BBA3CC41681BF60D898D0C82830FC41F0C5E8ED9B0E15124562D11C9EB341B6D048173D492630F6D451E1B2C2724EDA99236BF70003458F68BAD263D13E8791750D95CC7D555BA38DF236E739246B73A9D12FD333EC970B88450D0D86C0CF823944E2710CBEE31A079FC530A18419A18C6C65BB804A71A933E2D527735E583A869F048A67C928FD6AA97806B41463CE326214F10DDEB5959E4B332E1B33CFDF93C82AB38E7F9441A3EEE509ECF4A1CA999E315A6A764BCDF370358465B8B9D6FE2A2184D6900B6AE99C0EC0622157C79E67E554DD12651D42C3E0B40F74ACA6BC1189241601AE3607B55095D85E24360A57F5388F82F061B896FA684F54C131A6AEAD757B29A682365DB9DC5AE24B4713DA98C8FE6E32EB66B5B4E3AA9A633DF47E2036D1DFAA66A050D76FA093FA9A7E2B516E9D8BDB036B7578A698CB41475921796E1F524B5C586D6D08DA36A9FD02BFF00FB6D4F87CD69B0AB3A90C9BE491CFF00152D5D5C748D69782E73CE56B5BB5C7A134C654506207661B53DEDF9A91B87E2235187C83AE468F8AD351D632A8BD9CDBE2963F698F1A8E055B009D89A646718D9206C3CFC66391BB5B706DAE9A85AFDBAF6ACEE2CCFAD1D22C53DA27F3B4704876B98DBF5DB551526F5722D8AA2B3122B038FC462E50548D99C878EE50C3B531E58479318864DCF8FC6E96C2AB3ECCA9CEC4D603A2514C53380A29291CD62B3346E7923BD6AB0C75E0737DD75D65F121931673BDF01DE1FB2D0612FBB8B78B01FEFB9458F7189EAA0100A421A5C4925DB0D86C5762939DA68A6B65E7181F9785C0365310D23D601C36D88BAE5C6EA04D575B51162058D883A9A36B5D23B7804ED0AF3C58907768BB746C320908BB869D04748DFDAA379DE832785F285F5F8C4B4923435A6E23B6DB8BE87B930C5AACD161B515206631B6E074DD77060D4749894B5F14679E783604E8C246A40E3AAEEAA164F03E194668E405A4710A9E48F02C49F8A514B2C8009237069B69706F6F25479498A4D87881B006DE4B92E22FA0B689C50E1F4F86D2BA0A761B3DD9DCE71B93B6C3C557C428A0AD8B9B9DB9803716DA3A95F679C411BF9DA78263A09630F1F1F1090D3D6544BCA034C49C923CB033705A5A9903CB6CD0C631A18D6B740D0068151CAD86A0CF1B4095CC2CCD6D6C5114EA83CC2EC86CE2343C177514ADA68202D984E1E090F1F785F6AF5EA171D2DB86C551CD2B29C54BE5A86927210C23634D8D85BAC84503B2E234C7FC468F151BC80BDA7396AE17707B4F88446CA8CD890A5905E3A86F493E01414E6D3B87495676CB30E201F0596CF7938ECD82538F76EDF129A249C967DF0F919BD9291E013B4A47A8421008421067B9532E5653B77825F6EA0B38C8F9CC3C45F7D80109BF2A64BD606FB9178925298C96B874E96552B252551A3AA75255070844FCFC6E1A969DFD856A317C761C7051D3516775353BC4D34AE6901CE03D568E3B6E54DF46D3D74AE351166CA00074E9BFC15BA6C3A9A9BD88B66C07503B3626A625C398636891E2CE75AC0F05929DE6499EF3B5EE2E3DA56C5EECB14AF3B18C73BC0AC695615B1C0D9CDE0907E6CCEF14BF0AB498ECD31F65AE26FD0136A71E8F84C1F96269F049B0AF528EBE73BA27779D079A8ACEB49A9C739C3A97BCB8F69BAD4C9236285D2BCD9AC69256670B68762C4EE04A7F594AEAB8D9166CB187873DB6F687056A44387911C12D75468FA821C7426C2FEA80ACCD534F2B5B109B2BA4B16B8026C6FA5F86A2DAAEEA2132C6C6B4D9AD7B5C77680EC0AACD42F1234436E60E40F6EC759A6E2C7CEEA2ADC75D4ED88FD617088004969B9D6DA7137D34568BBD5CDB34BD88D529661B3329A78DB246E74AD0D25C09B6A6F6E1B411D2983CF354CEB9CC591BAEE3B4FAA505CC2416E1B003B6CA0C51EE6D7D13A16F393B09223DC475EE56E91A59470B7F2855AB20A86D7C5574F1894B5858584DB8EA3BD07984B8C9555734BEACE5C18E67BA370E953BA6A1AC9035C73B9A4300F5858F05E61B4B244669AA2DCFCCECC40D401FD95E3E8E7CAE7C6E673DE906619AF6B5AC014156A7D14C27D10000589B5FB0EBD49E60E7361715BEE923C4A4F3D03A0024125E36C4185BBC91BD5FE4EBEF4B347EEBEFD840F8840D5588D4365346A2B33CB687D4A59B838B0ACFC2B5DCAF8B3E08F76F8DCD778AC7C26E01E2AA530A73B134A73B12788EA9A53BAE020A58D8B5540FE2D22FDBFBA6784BECE85DC6ED2A863ADBC10C9BDAFB778FD94B86C81B134DED670514EF139A5A7A09A5805E468D3BF6A8F0CA996A695DE90DCB344F31BEDB09B0371DEAE1731C083620ED0579EAB581AD01AD1B00D02816E2B5B251B6110C3CF4923B286ECDCBA8266D4D2C5333D991B9803BB88EF562A2264B96E48730E66B9BA169E2B8CAC646191B4358D160D1B9519EC5B9410D0628CA274772434BDD7F66FB2C13178D6C97631C9FA7C47118AA6490C7601B25B5CC3A3A53190B7312D166EC03A3721E59DA4C722AFC4E5A38E3CA5B7CAEBFB565262152DA3A392A1C33060BDB89BE8B9A2C129E87189ABC3890438C718DCF20DC93C355DD6D3B2A69A4824F65E2C6DB53C1E4BE82B062147E901B96CEC846DB1B689663388CD47510B230329198DC6DD76271434B161F86FA2C61CE7BA42F7BCEFD2C0055AAE920AA2C334798B0DC7C8F42A8E26047680E1D44023CD56A682714CF9659338D0FE8372329ECD55A9DE6491CF75813B86800DC02AEE7D8117B03A91C55440E8A3925673C1C6369B900DB5E2BA9DCC154E745F661F76F55F45E125C6CD05C780175CC94D54D88C9CC481A379088D846E1E927A4956DA7F8A238B07C52F81F98B1FC5AD3E015CBFF16CE961F351B36E4B9B3AB99C1E1D6EC3F25A059BE4E9CB8A55B7DE603E3FBAD22948F508420108420C57285F9F129BF5359E47E0A8C7F6BD5753D7BB9DAC7C9C65711E3F350C43EB09E01545EA5F61FF00A80F01F3567555E8FEC49F79E4F8DBE0AC69D41056C45D930DA93C5A1BDA480B2AD6E79037DE202D263248C35C38C8D1E7F248E8199F10A76F19079AB12B578A3B9AC39E06803034252D7329B00739E6DCE48D60E9DA6DE09863EEFE172EF7B8049B947923C0A8A173412F90BEC7A00D7C54295C71885C5CC3A9D490A715130FBCFEF5361D85D0D45231F25300E3B4B5CE1F1560E0342468276FE998ABA62A7A6CE364851F48D48FC52AD0E4FD30D935501FF36EBDFF0067E0FF008BAC1FE607E09A655518954FF33C02F24C42A248CC6E77AAFD08B6D1BD5BFA023FF8CAAFFB7E488B93ED92AF20AEA90D0CCC4D9B7DBFB27832B918C56868689000D161A047D335DFCDB7F942B839311EFC42ABB9ABBFF65E2DF5D587B40F826C32978C5EBBF9C7B82E86295C7F19FE098379314DBEAAB0FF00987C974393343F7A5AA77FD6B26C32A8C15F532CAD6CB2BDCC24020A7BC9D369EA19C5A0DBA89F9AACCE4FE1F190E6C7239C3505D2B8EBB97783BCC78D65DD235CD3D76B8F252AC696CBB8D7365D336A8A831787D230AA98ED72632475AF9E5212630BE9CE68734B4EC2082BE66C6731533C276C6F737C512AEC5B930A6297315DA7362A8971568761CFFCA43877AA548D13D1CD11170F6116EC4CEA5BCE51CCCE2C3E495E12EBE877A8AEE9E82AC42D2C9A7602011964247715D64C523F66AE4EA7C60A7149291035BEEDDBDC54DCEBBA0F62A845E958AB76C90BBAE323E28F4FC437C709EA247C13DCE0ED6B0AE1EF8DADB9885FB13C1E59D7E2D5972DF456388E12FECB876255676D20FF00502D0030FF00287705EE687F943B82783CB34EAAAB77FBB01FF502E2D5B27E1463FEA13F05A9E7221F843B97A2660D91DBB02783CB2BE815D26F85BFD47E0BB1815549ABA7B0FCB112B4E6A06E6A39F79D8D40929B9310B85E692779DE340130839374119BFA3071E2F24AB8D926BDC315901EE17BD90794D474F058322634706B404AF138A300B196B9041E29CB62D7524A5988B0073401619B775848337467EA203F91BE413071FAF80F4387925F4BA5341D0D0AF487581DF9ADE081AE0AECB8DB87BF11F30B4CB2F869CB8DD39F79AE1E0B50A558F508420170F7E4639C763412BB54F15939AC2EA9FC233E4830B9F348DE905C7BC7C94B07B4EEC1E2AA30FD6F5340F12AD539D1C7858AAC98D30B40C0385CA99454F710C40EE6B6FDCA536452CC79D6A3859EF484F70FDD2EC1599B16A7E839BC15BC79DAC0DE00BBC47C971C9D6DF1407DD6B8ABE93D98634E0E9E08FA4949395EFF00AFA583F97136E3A4927CAC9D558E77186336E50167B950F12E3B2B46A18433B80090A6F86B72D0C43A179575CCA5958E3231D1D8B5ED16243ADA74EEB29E95B920637F28F254EA70E6D4CF2B8C4C6303096B86D7BCEF2A2AED0CA65A60E7C8C7C9B5C18410DE03B959163B0DF7155A9636C7034B62642F73417B5A06DB2A980878A395EE2F25F2920390352BDA0F5AB2A4EE606B075D813E6B826EBAC24DDB52FF007A6778123C82061A0173B86A5209A7A9929A5C49B33D819206C71FDDCB7D6E37A753871A695ADF68B081D76291E76C981D352C4419657E5CA36DEE6F708346C70735AE03470057A97D5C9511CB4D1411078CC35E72D9AC0E87CD5F403DC18D73CEC6824A4B87C85B885148F362E2D24F49FF00E533AE36A2A8FF0096EF2295D6C669CC0E1B9A1C3AC6CF241B22BD6ED5E0735EC0F1ECB8023A97A36A8A982F9FE351731CA2AA6EC1259E3B42FA0058EE58419311A5A81B2469613D2350894BA3D8ADC26C5548F62B31A064CF59B63BF6A4B871C93B99B32B884DE176894B464C5261F9AE8A7D487478E0EBF7856B44BE99CE1290DFBED07C5587CA58093A01B4AA8B166F050CA1B702C954989BDAE395B211C6E17ACC44C8E36BDEDAB5C05C206191BC1191837289B33DCC045883BD715323F9ACA3D52FF5411B471F04105454BDC5CCA60CB8D0BDDA8BF40DEA9BBD39BEB73EC93A0C760AD86B5A0068B0034EA5E10A8EA8ABB3C82278C936E638DC3FF49E3D0534639AE199BB3A768486A226BDB63B768236B4EE215DA1A89658CE6B73AC21921E277390350A68DDB8AA42290ED9085DB20687073892A0B824603B425B88BF349700D83AF98E837264D6301D8A862A343FDEE4832D00B44D1C091FF7156A63F5509FCE3C8AAEC1EB3C709241FF007953541B5337A1CD40D288FF00E6944EFCC47815AD590A33FC6513BFC40B5E955EA108500967284DB03AB3F97E21334BB1D619304AC68DBCD93DDAFC107CFF003DA4FF002856A9DDF52FEA3E452BE77EB01E2D0AED2C9789FD47C8AD313EDA06D80B0D8372ECA8C380BA0BAFD2A344F8E9FAF847F877F12A6E4D37F8C99DC19F155F1937AB67446DF32ADF25C0E7AA09F7479ABE93DAD53344B8DBC9D81C02CBE2503FE9C9CBC682537EF2B5140EB57BE4E2E26EB9E50614F9653594B19933DB9C6B3520DB6DB7A162936BE9EC05C8B74290575393F696EB0525746F6FB514CD3D3190A22F0DDB71D60A1AD17A6D3FF342EBD369CFE333BD66EED758826DC6C57376F1EF4C35A7F4BA7CCDBCACB5F5D46C5D615530328867958D738971048DFAFC565480E396E0DF43D4A6B0F7878261AD8FA7530FC78FFA82AAC930C82A5D331D0B6575EEE07BEC372CBE517F682F4460EC37EC2986B5A714A11F8CC36D9A12B938CD10FC5BF502B30D81E7635E7A9A54828AA0FB304C6FC232990DA735B8C53CB4AE8A32F2E790D1A5B4B8BF8028ACAC8AB236736D20C60039B784AE1C2EB490EF469069B0D82BADA1A989AE7C9165601626E0A1E5B0C3241261B4CE6EBF561BDDA7C15A07549F9392E7C38C7BE390F71B1F32536BACB49DBB120E58C064C25B281730C81DD9B0A79195062907A561B530EF7C6E03AEC830B010403C42B6C2975238F3401D08D0F5ABAC288BF1B950A916C4B37BCD05598DCAB558FE2627F410A29B52BBEB1BAED04782E66CCED06A06A4F4A863366B5C34B104F7AEC685F6E3BB45CBF33B7F5F5EB5C26D70E85AFE19B8F154648CC725C6841B8298E7BB80B5EE40D75B155EAD82FF00B2CFC6EDBCA653945AA392E2DB9DA81D3BD1542F2B3A1AE3DBA2AB4A0D81076102CA79DA448D24920B48B1EB0BB9846FB00493603524EE0B27272B72D616B20CD4E0DB35C8711C56B1CC6CB78DE6CD906527A0AF99574029AA9F11D79B7169237EBB55896BE8D0CD1D5D3B2688E68DE0107A14D48E0CAC6DF6480B0FC122E48B9C70820EC6CAE03AB4F9A716FAD6BB839BE681E87B40F588BAE7D21837DCF405CB61613A8BA99B1B06C680A2A46CC5C016B4954F130F2097580F740D76714C59B02A989FB07A820C9B4FD6CA3FC67F9FEEA595B7A527A5A7C542DFB79C7F8CEF26AB0ED695DD9E682ED2BAD2D29E12B7CC2D9AC4D3FB54C3FC467985B64AAF508428051C9189227C6EF65E0B4F55948841F1CA98DF4950F864167C6E3191D20FC8AB74525C3C741F22B45CB5C09F287E254A2EE0DFAD68E8D8EEE58CC3AA32CC01DEB518B31B1126617ED5D07AA304839A6EBB0594AD9028AA58B1BD58FD03E2AEF271D692A7FE5DD2FC4CDE769E2C1E6558C064CB58E67F323737C15F49ED7691D95C4F4A642A1C0686C1298CD8D95A32B591191E72B5A2E5C765B7A8D2DF3EFDCE556BEBDD4D0E833CAF39236FBC77767159BFA6E692B0C81DCDD3B48B3481EB0BF1DB74DE8A37D44DE9B502CF70CB130FDC67CD05AA2A6104479F22699E7348F70BDCF4742B5923DBCD47FD2170772F4BC01A9B0DE5075959FCB67705EE466DE6D9FD2147CE36D9AE2DC51CEB03735FD5D9741300CFE5B3FA42E81B6C007500A064CC79B34EA1485C00B9D836A09333B71B2EB31E2AAB2763DD607AAE86D4B1D2651BF4BA0B598AE27F5E17B788503EA035D6B136DA7829C3AE2FB9047C9B972CF5101DED0F1D875F30B417594A09053636C0763C9677ECF1B2D393AA9489D8ED54EA935CAD46EB8457CFEBA03478BD5C36B37397B7A8AE98E4CF9614F92AA9AAC0D1E0C6E3D3B92663911798E5CD558B5A7DD7289AF43DD769E8B14176337848DF6D8ACDC73972400F01C09EA54A99FA296F7899B4E5BB48B6CD57877F4CEFE17856B8F2FC6EBB25C3D9171706E2C557AB9352A392179734B00706DC8076DD7228E475DD23B2DB60172BCFE3F45EBF157972953519D9AFB4F1D800576A0B4C79AF72C39BB157A7A702CED806C1D3C5582C046BAAEC6101D42CFE29C9C8EBAA8CD1CC612F377B72DC13C427C6EC76426E0FB2EE23875A345457A1A38E829194F0FB2CDE76B8EF254835998DE2F03C5744853514064979C70D19B3AD030F4860E24EDD17A2771F6232576D6B770523541EC5CF39BAD9AABE231681CE7173AC2DA9B772BCCD8155C4DEC01AD2E01C40B0DFB50640FAB57523FC507FEC6AB20DE177F7BD56A8D2BEA47E66FF00FA05D67B372F121035A419AAE91BC656F9AD92C76140BF12A46F07177702B629563D4210A0108420E480E0411707420AC0729B920E864757612DBB07ACF846D6FE9E8E85F4042163E4F4555CE4563A386D1D3BD5D6CC9E728B9326491D5D86B6D29D64886C7F48E9590F482090EBB5C0D883A107815A9E58B2C5EAE39B9A78D8410B8A29B98AB8A4D81AE17EA51B656CF11889D768EB50072A347200D99D6D97B83D095F282478869A106D14999EE3B01B5B43DF7572926F48A506F77C62C7A46E2A1AA77A68142D631ED0439EE70072751DC5452EC1A83D2E613C83EA2337683F7CF15A907B157898C8A211B059AD16014C0E8A2BB0A2A9378C0E242EC151C80BA460B680DC942A3CDF5418389257A4FD530712494358EB3B437D83BD77CDB8965C68D1AAA8F06AE7BE3F5401A594B0E693579BB6D6B7143C39CDCADD01DA7A178D8DED6B9AD22CED9B7620F5A1AE9CB9A2CD68B76A1D67CCD0D166B36D978C8DED04070E8EB4322735F72ED37850720FF0CE3BDCE571BA340E8B2AED86C7575DA0DC053DD161762576543251A1D08B715A66CCD96364ADD5B23438772CF626CCF4D986D69F056707AACF41CD93EB466D6E83B3C6E97E8F6719D4F14B6296F3B73B57425B15955AC7297D3F089A36EB234666F5858585F7038EF5B986AC0D0958FC569C52E22F0CFB393D76FC42D44AE439759AE0855C397599117607E8131A195BCD4AD22F67781092C6F4CB0B7826707700548AB6E858E3769CBD0BB6358DD8DB9E37BA058AE480B488DE4B1C4169B6ED2EBCE798369B75828963CC2E36850027DE3DE8267BA27820B858EEBEFE214245B6481C3A4D8FC976093B5C57418C3B5072D6B0919A416EBBABAC9A263435B720700544D6B06C0A76E5515D7A47BB1BCF705D07D43B6358DEBD4A1A46E53C40937DC1076D89FA6790F50D0286BA364606516246A779D55974D147ABE403A12BC53108839A756B2DB5DA5D066EA8FF001F527F3347FD8D50F39791A3A57124E249259402048F2E17E1616F25142EBC97551ADE4D47CE620643B238CDBAC95AB49392F4C63C3CCEEF6A637EC1B3E29DACD6A3D421080421080421080599E51725A1C4F35452E586B3693BA4EBF9AD32107C56AE2AAC3AA4C35713E191BB9DBC7107785D36A03FD6DFBD7D4B941494F55854FE914EC9B23496DC5C83C41DCBE7CEC0623EBD34A403B9C6FE2AEB388A92B1D4D287B751B08DC42BD4D27A346E932F394EE373347725A7F38DA3AF62AB1E0554F932403338EEDAA9B269692621921648D3625A7FBBAA34D1CAC95A1D1B839A76106E14C0D967D95F0BDC0CF06576F929CF364F58D87B95D655B0FD9570FD3511107FA9B71E081A02BDBAA8C92770BB5B049FF2E76F91B2EF3D40FF0073A93FA6CE1E05455A057B75539D9FFE0AB3FD22BB12541FF70ACFF4EC82CDD1755B3D47FC0CE3F5168F3282FA9FE431BFAE78C7C505ABAF6E97BE79DBB64A18FF0054C4F90519AC03ED3108474430971EF3640D7305CC93C513734B231838B8D92592B6948D65AC98F0CC231DC35F15D52BE79DE1941411879D8ECB99DFD4E4C34C1F506784F310BE463858BDDEA307F98FC151A09CD3D516DC163BD5246CDBB6FD69AC1C99AFAB767C46AB2377B41CC7E4143CA1C1A3C3228A7A50F30FB32663720EE3F057C7D279FB4E26DB73B10EA94A62A9CD1DEFA8DA78F02874E54C34C0D591BD56AE9055C363F68CD4154DF3288CC41BDD078D72F732E1CE6B8E61B7785CDD04CD7AB14752E8EA4868CC1CCD7500017DA4AA21CBCE7328A93FE0DBFEE083422470198C5306F168CC3BC2F055C7B39E00F070B159BA5AB73482D7969E20D939A6C46420032170FCDAF9AA62F0A8BEC7C6EED50CAE7FB4C683C4021588EA18FF006E181DD710565B1D249ED52407A9B64D3094D5BDBF84FECB23E9078FC17F8279F46E1AFD5D471DFA091F15E8C1F0B3FEE6CFEA77CD5D32918C4E41F827B5C02E862D20DAD8583F34813F660B850D7D021EDB9F8AB51E1D411FB1434C3FE902A6C32B371E28F98E5654B2E774519714C236D6C8008E9EAE5E97DA30B40C0C60B46D630706801481CA6AE10B309C465D5D2C1483F20323BBCAB50F272903C3EADF35649C6675C7726A1EBB0E16B9D81347CEB94F231D8D4EC8C06B630D60034D83555F06A27E235CC859A34EAF3EEB5433F3B8962F2F32D2F92795C5A075FC97D0B04C263C268C463D695DAC8FE27E4AEE44CDA611C6D8626C718CAC680D006E0A442165A08421008421008421008421078945660149505CF841A594EB9A3D84F4B7614E1083310D25661733A4921754B32101F00B9BDB4BB76F75D61E6C2B1395E48C3AAC92493F5276DD7D790AEA63E42CC0B183ECE1D55DADB2B71F26F1D7FF00EDE47EA91A3E2BEA684D31F346724F1A3ED5346DEB9829BFD93C61BB1B1F64ABE8A84D31F3A1C97C6FDD1FEB05D8E4AE32EDB9075CABE8484D3182672371277B73C0D1FA9C7E0A7672267FBF5B18EA612B6C84D323251722211ACB5923B886B4057A2E49616CB6664D21FCD27C93F429AB859160185C5EC51B2FC4924F9AB705153D3B8BE185AC7116B8DAACA100A29E165442F8A5687C6F0439A7610A5420F9AE33864D82D5EF7523CFD5CBC3F2B8F154B9DBAFA8D453C5550BA19D8D92270B39AE170561719E4BD450174B439EA2946A59B5EC1F11E2AEA612991725EA0CEBCCE88ECBCAE99516D1FB38AAF75E1417EE0EA0DC2AD552658A7E98C0F10A28F9C3206440B9EE360D1ADCAA38B56B18FF00478DCD91C05A57376037D838DADB5531D47390AED3D591B4A42CA8077AB0C986E283554F5C34D53482B5BA6AB171CE46F5722AC78DE86B6F1D583BD5B65403BD6320AE77157A1AF720D6B671C548D987159B8EB9C77AB2DAC1BDC115A01305D8942CF1C4E16465EE93D56ED70D814279410F36E918098DBB5EE040ECE3D8A0D4890286B6591F493454C33CEF616B1B7D013A5CF01ADD23C35D8B634E12067A1516E91E3D778FCA3E256A2969A3A58832307A49D4BBA4A8A5F816050E1106879DA978FAC948DBD03804E108402108402108402108402108402108402108402108402108402108402108402108402108402108402108402108409B14E4ED06264BE4673531FC58F427AF8AC9D7F23B10A6BBA99CCAA60D807AAEEEFDD7D15083E33534F3D23F254C3242EE0F690A22F0BECD3431CCCC92C6C9187EEBDA084A6AB92D83D4DF352363277C64B5131F2F99F56295D0D23180CB70F7B4DDC5BEEF40E36DA940C3E5B86C8C737AC2FA8CDC82A171FA9ABA88BAECE509E41C8DD23C5A403818BF754601D85D381188EA333CFB648B01D5BCF5ABB161F4307B4E6554E5A08635D96367EA3B49E81DEB5AEE42D67DDC5233FAA1FDD4679055E7FF0071A7FF0044FCD0651F4B4B04A1AE244648BBB9C05C06FF005469D5AA94D3524719964A9C85C4F370DC175B7171DDE7D0B4C39035A4DDF8A437E220BFC548DFFC3E97EF62EE1FA601F3419C0DA51183CE0610011792F9B8DFB34D148C9A9F9B60D43DCEB922E45B70B6EF35A68B901103F5B8AD53C706B5AD57A2E43E10C3793D2A7E892636F0B20C63AB616C8E1AB5807B440173BEC09D3AD754D552CD30F428A69AC490226971BF4581B7695F41A7E4DE0D4C43A2C369F30DEE6663E299B23646D0C8DA18D1B0345822BE7F0726F14C439B32D3329A267B22776CE9CA2FAF5D969B0DE4DD2D1E592726AE66EA1D26C07A027C85078BD42100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842107FFD9, '1', '2023-05-24 14:36:47', '1', '2023-05-24 14:36:47', b'0'); +INSERT INTO `infra_file_content` VALUES (5, 4, '7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFDB004300090606080605090807080A09090A0D160E0D0C0C0D1A131410161F1C21201F1C1E1E2327322A23252F251E1E2B3B2C2F3335383838212A3D413C364132373835FFDB004301090A0A0D0B0D190E0E1935241E243535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535FFC0001108046803E803012200021101031101FFC4001C0000030101010101010000000000000000000102030405060708FFC4005A100002020102030306050F0A0307030207000102110304210512310613410722516172D114163337711532365254567481919294A1B1B2B317233542537393A2A3C1346383242543445562E1C2D2F02764758226F1456595FFC4001A010101010101010100000000000000000000010203040506FFC4002B1101010100010304000505010101000000000111020312311321415104051471911522323352426123FFDA000C03010002110311003F00FC41887D4547540000000000201D000874348BE5033A1516D120000000000501512469D146BCAA8CE487CE26EC0901D0A88000001D89B0000000004559200362183402000280684003015800020002AC090B018A860C040000034843B036C53E566B3CF71A392CAE62853DD92531102A0188000280A1A2D55198F98072246D8200A0A29229AD80C806C004000003A1C515CA0408A68540201800002194112DA22C7650992508810C0098010C4003101000000000328403001050151400A226A8DB6A33901000005260D9204058000000000500C40003A06804000400000000000000000001000000201D080000602180E80401400340C56000000000800A284086C013A2B98CC00A6C9616000000000000000000342045169589C68B8B542934045050D034412000500000000000D0310C040521301000CA100000000000001003421A603A150D31810036201A0040508000000060201D0A80000000600B728B822A5D088CA86E56110C430010C01201C5977B1141614C1A04C641140534228430A114300000100000001008AE5121D812D086C08100C690123A1D0CA2406C4021A742020A72620028054300040C008100CD3163E790C19D3151E9AD0370BA38F362EED97062031320A4290AC1808000800000000000000200000000A8C6CA70A183300600000000522400A602B00150514818128AA247600016080061400268436090080A6892800060201880000000000076162028698DB240000A51068824000A000290120534480D0E848AB0150306C565401405240480D81048E80615203100D0EC48602621B0403510E52D50E80C9A15172448000AC60343A10EC096806C9650C000201D588B8944B422DA25A2043426082A992C762002912301B62060BA80E84694A8890080068A0A0A29300A801B15042A0180520002218D310AC0A6C56200000000000400143001003028000000EAD24929AB394B849A7B01F411CF0586B63C8D6CD4A6E88EFE5CA6339393DC080003200400036891D800800000620B200000000000B83A2A52546563B006200200000000742A28002800760D8AC00006BA03EA402563AA04C6D944B62B00002A2485816D922B00018868007421ADCA134235EEED1128D0C12000400C5432843402406B1AA2642E60EA048C743A2A20698310536C403010EC4010C000007648C076020403A0A2921B03301B10014913634C01A10DB101499564A06C024EC818D2B0A9A194D124000D202804000218004034C4051698325306C8A18800000122941942114E344D00C0000ABD84C028043A01A28403620A00181026003402A02E8960210C088400003487CA1129F403301B415B14200A0000A1800050218125456E21A7406BCBB194BA95CE437602000200000000008100C54000000000140000000000400000000000EC043018136050C400405800000580201A4363484C090188A0001A44000080638BA648D1474C64A8CB2510A540DD951234845A2295086C40021A40D008A448EC0A06C9B02A060300150142604D0C62A000A1A4524040C248400FA020002D31364EE0031000086900201D0A8AB00174159544B40034C40036C5E203403A131D8980800028A1803010201D00807405082860038F53A2093473274691C9405E48A3168D253B336C09603A001A1890C00100154050C604301B110008002AAC960010800690080BE5258022AC918021D2A1585809A00B00100050000505000C4301311744B402018A8801A15000D882C088000000000000000114A24A294804D125364801718364A37C754065283441D395AA39DF514200180806002006800000000100015626C400000003291230062A0600140C6260243002A0A028960201880B8831260D809800000C430000100EC0430000A10141CC481436EC400034828103640D098589B00000000018050C681A00B1343A130150A863A0246260003484520131142614000001496C48D3286D087626026000000000310000D3012292B0120B2F93625AA0A00068AB00D082C0193450244134053100806002A043178817D512D148520890B000013188006900D005086D880000002860202909F404C4D808006024ACB589BF034D3C39A691EC62D045E2B03C1941A24EFD6E158E4D23858080286881A4268AB25B084000000143A20403A100D15CD4458360394EC90001A012180000003100D200A0188A869034098DB02400006909858591486005400000000000000034C4C000074245581200C280002875B0086140801886C0040860900C4C741451205509A204003286958388E2C72606600FA8100000003B15000EC764801764B013001D8800000000600553B136000014030100C1A01218000806002018A800287452404F42A2C4C406BCDB10F7158C290C00AB00500C293416311026C06002001D04200A000B06C04003421A410310DA10000000000000C00A006800040143A22A4601406DA79F2C8F5F1EBD47151E12745F78EBA951D3ACCEB249B38994E564D10003100050D22F976032A029ADC122201A131581744345589B0240A4AD9D18B4AE6B6407281D3974AE0B7473B54C0403020400055140362082C0028201D08B8812D0A8B64B01000000C54300A1D00260268286D88A0A0682C190200000A18000500014051361640D8800A17894908A880A80A64B001921605098860200020600050A854589A0241751B11030A01A289A18DA1000001014031050310D00F944D5169EC4C809043A1D1420000040D8C400003A01500E8280285452130122AC90018502282A410D824003A294428AA90A1B00A542A281220918DA1008745462371033A029A27C407CA268A4C4C09A29201A6109A24A6C9015050E8280431D014200000A01800862000188080A1F2EC08BBD8A326A80A6AC5CA408028101A42365C9522232A1CA76119C96E03EAC6EA883360362000018158FEB8F6F87A872ABA3C24E99D38B56F1AD9947A7C4143976A3C4C9F5C7466D54B2789CCDDB14210C08100C0012B2BBB638559D318A712B2E4E5A035CAA9EC62027D4698508076201A0150C008000A00A7421D88A0001A082854508042A1B0000000001A40D00800602006080282C6201D8087402A01D000243040D8520A029044D014C9601616014002A1A2AB6020699DBA1E0BC438A4AB43A2D46A2FC71E36D7E5E87BBA6F25FDA7D4A4D70EEED3FED32457FB99BCF8CF35671B5F2A23ED7F921ED47DCD83FC65EE0FE487B51F73E0FF197B8CFA9C3ED7B6BE2C47DB7F243DA7FB9B07F8DFF00C07F241DA8FB9B07F8CBDC3D4E3F676D7C481F6BFC9076A3EE7C1FE32F707F241DA7FB9B07F8CBDC4F5387DAF6F2FA7C550D1F6BFC90F6A3EE7C1FE32F707F243DA7FB9B07F8CBDC5F5387D9DB7E9F1761D4FB4FE487B4FF007360FF00197B83F921ED47DCD83FC65EE1EA71FB3B6FD3E31219F65FC9176A3EE7C1FE32F70FF922ED3FDCD83FC65EE1EA70FB3B6FD3E29851F6BFC91769FEE6C1FE32F707F245DA7FB9B07F8CBDC5F5387D9DB7E9F1407DA7F243DA7FB9B07F8CBDC1FC90F69FEE6C1FE32F70F5387D9DB7E9F1743A3ED3F922ED3FDCD83FC65EE0FE48BB4FF7360FF197B87A9C3ECEDBF4F8B03ED7F923ED3FDCD83FC65EE07E48FB4FF7360FF197B87A9C3ECEDBF4F8903ED7F922ED3FDCD83FC65EE17F243DA7FB9B07F8CBDC4F5387D9DB7E9F1407DAFF00243DA7FB9B07F8CBDC1FC90F69FEE6C1FE32F70F538FD9DB7E9F143B3ED3F921ED3FDCD83FC65EE0FE487B4FF7360FF197B87A9C7ED7B6FD3E2D6E6B08367D82F245DA75FF0096C1FE32F71B43C9476962B7D360FF001BFF0081EA70FB4EDAF8C6A8867DACFC93F69A5D34D83FC6FF00E08FE493B4FF007360FF001BFF00835EA70FB5EDAF8C623ECFF924ED3FDCD83FC65EE0FE48FB4FF7360FF1BFF81EAF0FB5CAF8C1A67D93F249DA7FB9B07F8DFF00C1C9A9F269DA6D2C5B970D7912FECF2465FEE4F5387D995F30F7124766B784EBB86CF975DA3CFA77FF00331B8AFCBD0E6AD8DCB2F8409D09C84C400D9230010C0000563100005000500004087408D22B628C9A0A2E4890A403A001500E8282108AA0A024763486E214455B2DC5519F42AEC2224845B4490200A0A28487614044262A18500A8600408060508060408028280002800699AC72BA301A2A2E52B2443403A13431D011434818201D6C090C5610EB6258DB10520F01D000A86869032A0B158310000010003A0A004C0540000143A010C0602048608028B8C49B294A80525448E4C90A740D0D0D81030680A013185008762A3F47F273E4C27C7A50E25C5E0E1A15E763C4F67957A5FA23FB7E831CF9CE136AC96BE6BB2DD86E2DDABCA9E8F0F77A6BA96A3226A3F8BD2FE83F61ECDF920E0BC21467ABC6F5FA95BB9655693F547A23EE787F0CC3A3D3C30E9F12C58A2928C611ADBFD91EB61D154573F9ABED51E6BCB973F3E1AD9C7C3C9D3F0BC3A782862C58F1C56CA2A3676474526B68E47F42A3D28C618D54525F40FBCF513B625E55E77C065F693FCE0F804BED27F9C7A3CE1CE5C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0097DA4FF383E012FB49FE71E8F38738C9F46D79DF0197DACFF3899689D6F1C8BF159E9F3FA839C76CFA36BE7F55C2706AB1B866C38B2C5ECE328FFB1F07DA5F23FC2389A9E4D0C5F0FD43DD776BCD6FD71E8FF151FADCA30C8AA493FA4E7CDA24E2F93CE5F6AC999EF1A9CAFCBF93BB4DD8EE29D96D438EBB0DE16EA39E1BC1FB9FA99E1A3FAD78A707D3F10D2E4C1AAC31CD8A6B96509C6F6FF73F06F285E4DF2F66B2CB5DC3A32CBC3A4EE51EAF0FBE3FB0EDC3AB77392E4BE1F06C545324EE843A0180A85450511103060002188A1A344CCD15600D886C400000003420B286C918882A2532131B6026084301B64318D2B01243A1B544B6105050AC76412C06C410806200000018800000002800022102002A18020286876483201B1201800C4000C062282C000804C1B00A2804550D442228745F289A22840D0D200896845B44D00218A8004348068A0A01800A828B486D019D086C40343B12022810C0A048AE5123A747A5CBAFD6E1D2E9E3CD973CD420BD6D92DC1F59E4CFB0EFB51C5FE13AB85E834D25CC9F4C92EBCBF42EAFF123FA2743A3862C7086382515B462975F59E37643B3D8380701D36870AA508273978C9F8B7F4B3EBB4B8B921CCFABFD48F1DBDD76BA5FED9915870AC31B7BC9F56539361295B11A60000000000000000000000000000000000000000009B4936DA496EDBF0191931C73629639AB8CD38C97A5354C0FCFBF96EE03F573E09DC6ABE09CFC9F0DA8F275AE6E5BBE5F5F5ADE8FD0D34D269A69EE9AF13F17FE41F5FF00567BBFAA3A6FA97CFF002952EFB92FA72D55D6D775E3EA3F66C78E3871471C154609462BD092A40580000000000000000000000000000000000000000D49A1000B2E159A36B692E8CF1B88F0FC7A8C193166C7194249A9C5AB5B9EDC654CCF558B9E1CD1EA97E544B3565CAFE5BF289D8D9F64F8D37862FE03A86DE17F6AFC63EEF57D07C951FD39DBAECCE2ED1767B51A3925CEE3CF8A75F5B25D1FE27FA99FCCF9B0E4D3EA3261CD171C98E4E128BF069D3476E972D997E1BBF68E5068A54267644858311103EA2188000741402180D14014508040052451203684405086002000000004014544434012228B620268453130130A01A0839496A8BB25902001A402A0A2F9762580A8286302006FA8012030A0C843A040505050000240D020600140040E828131D944D00C40090E8482C0634C92A2AC000BE5D8860162B01110EC42A00180D05154860208A1580055A612764A1A025851741CA0400DA24000743E50123F40F237C11712ED64B5792378F450B5ED4B65FA933E028FDBBC86E8562ECDEAB555E767CED27EA49457FB9C7AB738B7C3CBF58D0E2E79457849DBFA1743D29BF039F451E5E67E8A48DE4EE4CE327B25A4000540000000000000000000000000007C5F944F28D8BB118B0E0C1A75ABE21A88B9C31CA4E308453AE6935BBB7B24BAD3E87CF763BCB3E6E2DC631E878DE8F4F81669A847360E64A127D39949BD9BDAD3DBD05CA3F55000200052928C5CA4D2495B6FA2478EFB65D9C4E9F1EE196BFF00DDC3DE07B2078DF1CFB39FFAFF000BFD2E1EF0F8E7D9CFFD7F85FE970F781EC81E37C73ECE7FEBFC2FF4B87BC3E39F673FF5FE17FA5C3DE07B2078DF1CFB39FF00AFF0BFD2E1EF1C7B61D9E9CD461C77864A527492D54377F940F6004300000000000000000000000000000000000002A0FC091C5D4901E76BB0A8F32AD96EBE87D4FE70F2B1C15709ED9E4CB08D63D645655ED2D9FF00B3FC67F4CEB629F2BF4DC59F8AF973D0A970FE1FAC4BCEC795E36FD4D7BE238DCE72B7C7DE63F1D132AAC1C4F5AA0545342A22100C2804143292089A029A1141621805145210140C431110828741414A828741402A01800845082100E828090A1800A807414112030A024A8B101068E5B19B000100C00403A00250C11410921D0036544B000A00486D021B604850D0E809183EA3404814D134000143011A4081A7406CFA18C8AE7264EC091D02292089A0284D05218800622A8280901D0806862181498EF6242801EE4D1427D401149128A4C04D1FD03E46A0A3D82D2B5FD6C926FF003D9FCFED9FD2BE492BF927E154927E7DBAEBFCEC8E3D59B2352E3EEF47F252F69964E8FE45FB4CA3920000000000000000000000000000003F23F2C9D93D6EB38B69F8D69314B3618E18E2CBCA9BEEDC5B69BADD269F5F068F93EC5F63755C538CE2860C138E25914F26476D42376EE5F474F16CFE8812492A4925E848D4E564C4C9A6FA80019572715E1F0E2BC2357A0C939421AAC32C32943AC549356BF29F967F20F993A5C730D787FD91FF00F71FAF001F90FF0020F9FF00F5CC3FA24BFF00B83F907CFF00FAE61FD125FF00DC7EBC007E43FC83E7FF00D730FE892FFEE0FE41F3FF00EB987F4497FF0071FAF001F90FF20F9FFF005CC3FA24BFFB817906CB2753E398B95ED2AD23BAFCE3F5E0031D269A3A3D161D342529470E38E38B93B6D24926FD7B1B00000000000000000000000000000000000000002EA01E802358BF9A5ED23F26F2D904FB1F7E31D446BF2B3F59D67C8AF691F9C79674BF933CCE95AD4E3DEBFF0078936C6B8DC7F3DC46C8B296E7ADA43116E2430000022150D0C400C4508A10C065080743A0268286D0008600014265098080000403A1008000880690245240546162963A34C6E8D2948A8E371A0A37C9048C5812D0A8A64902180D00A8A4862B013400D80103B10110C00A4544501A344340202A8541405850E8043421A2802806821500D8881300028000000763481A2010D923B0258D08680B8AB29C498B2DBB28C9A1516D0A80902A8540343247603648EC40005505114923FA33C90EAB9BC9C70FC1CBF58E4AEFAFF39267F3AA3FA0BC8FFD8268FDB97EFB38F5AD9235C63F4ED1FC8BF69944E8FE45FB4CA3932000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003D001E802359F24BDA3F30F2D1AAAF27F974FCBF5DA9C6F9AFD13B3F4FD67C8AF68FCA7CB4FD86CBF0887EF125F78D719AFC228A88868F6346CCD9A25629440CC10E80040860103100201820194348068004D12D162680901D024002A2F949682950E8691541115B09A34A2581142A2A840034C91A08B45AC94662605CE7664C62010A87434881508D2886105880680540501464030A221151EA143A02887D4AB2580C41600300B0401422849141422E8960200000001D00843001C594F720A4109A116C920282876200293241328D36A258730AC0180AC6021D000050200029313100533FA0FC8EFD81E8FDB97EFB3F9EEE8FE8BF257A1CDC3BB19A4C1A9518E45536A3252DA4F996EBD4D1E7EBF88DF1F97E8FA3F917ED30C938E2C729E49284229B94A4E924BAB6FC0347F22FDA67CAF956938F92FE38E2DA7F07AD9F83946CE6C3D2F8EBD9AFBE1E15FA663F787C76ECD7DF070AFD331FBCFE4BC5F0758F3F7CB2779C9FCCF255295ABE6BF0E5BE9E3465D6E97EA3A4E9DA3FAE7E3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F916FD48D72AD3FC1703C52C8F3BE6EF94A2B956FE6F2BEAF6EB7E23D3A3FAD7E3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F917F1235D33D3FC261F0BEF3B9DF9BBAAE6E9B55EDD687A747F5AFC76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F22DFA6AC2D5F80F4E8FEBAF8EDD9AFBE0E15FA663F787C76ECD7DF070AFD331FBCFE45B49EF416BD43D3A3FAEBE3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F917F214B97965CD77B574AF5D8F4EA6BFAE3E3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F91938BDB6B375A4C93D24F550C7278714A38F24F6A8CA4A4D2FC7CAFF0020F4E9AFEB2F8EDD9AFBE0E15FA663F787C76ECD7DF070AFD331FBCFE47AF520A5E82FA74D7F5C7C76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F24A58FB995C65DE732E569AAADEED7A7A7EB058EA1DE3E57152E5AE656F6BE9D6BD63D3A6BFADBE3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F91E97A1057A87A74D7F5C7C76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F23D7A81457A10F4A9AFEB8F8EDD9AFBE0E15FA663F787C76ECD7DF070AFD331FBCFE4982829A738F347C52744A4BC521E9535FD71F1DBB35F7C1C2BF4CC7EF0F8EDD9AFBE0E15FA663F79FC8F5E8415F413D3A6BFAE3E3B766BEF83857E998FDE1F1DBB35F7C1C2BF4CC7EF3F91ABD48B9CB1BC58D471A8CA37CD2BBE7DF6DBC296DB0F4E9AFEB6F8EDD9AFBE0E15FA663F787C76ECD7DF070AFD331FBCFE474AFC3A7A854BD087A74D7F5CFC76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F236DE840D34E9AA6BC1A1E9D35FD73F1DBB35F7C1C2BF4CC7EF0F8EDD9AFBE0E15FA663F79FC8DB7A836F1A1E9D57F5CFC76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F23D2BADAC7CABD087A747F5BFC76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F2561C50CD9395E4C58D28B9734DD2D95D7D2FA2F5B15E3E4E8B9AFADF87A07A747F5B7C76ECD7DF070AFD331FBC3E3B766BEF83857E998FDE7F242506FF00ABF94A704B6A43D3AB8FEB5F8EDD9AFBE0E15FA663F79EBE0CF8F518619B064865C5917346709294649F469AD9A3F8C9C15743FA67C8C49CBC95F0AB6DD3CC95F82EF65B19E5C6F1331F69ACF925ED23F29F2D3F61B2FC221FBC7EADACF925ED23F29F2D5F61B2FC221FBC63E635C5F84858C47B15A428A9D5192740E56512FA8A86FA8102A018042001802005D40A180000EC000054086003BD896362A0043B15080A6C96C00004D1481844025B8C101B4209A27242871C948539D81988180050E81752BC00864B2D924448D00201800155090E8A481EC444850148225A117426809A114FA85012343A0A00B04143A282C91D0E805414343A20948743A06809621B04014165512D00EC403089180D1505050E874152229A1500A8A1A40D012C002800603010A8AA0A025FD6BFA19FD43D94C50C3C2F0431C5463DCE074BD2F1C5BFD6CFE5F7F5AFE867F517663FA3F07F73A7FE140F2F5FE1D38FCBEBF47F22FDA67CA7957F9AEE3BF83AFDF89F57A3F917ED33E53CABFCD771CFC1D7EFC4CB0FE65E178B1EAF88E9F459F3C74F8353A8C70CB96515FCDA72A72BF0A526FF0069FADF6D7C93F66382EAFB3F8F4BAECDA38EBF5B1D2E6EF732939C1A6DCD37D1DA4AFA79CB63F187D5953CB3CDCAB2E49CD4572C79A4DF2AF42BE88F465BE07ECBDA7F24DD98E1FDB6ECE70EC1ACCBA4C3C4A79219F0CF3734A4A31B4E2DEEB99F9BF4BD87C57C93F6630794EE15C231EAF2E1D2EAF4D97364D23CD7372835CA949EE94ADBF4F98E8FC773EB73EA7163866CB3C9DD37C8E52B71BAB57D7C1112CD9679BBD9E4C92C969F3B9372DBA3BEA4EDBF68FBEF28BD8DE11D92ED666C1C2A33D66386961A87A39E47278DB9B4F99AF39C6927577BADE8F0B8364D1F0EED8681EB702C5A4D6C3BAD560C9E77750CAA506F7DD526A6AF75B1F3DDFE5EFF00BE597277B77DE733E6BF4DF525B739394DB936EDB6EDB3725CCA6BF4DE07C2B49C0304380F12D2467C53260D76B67395798A18B2E3845A69DDA8CA6B75D533B787E4D3FC3B81F0F9EBF4B3C7978469E52E113D045FC264F4FCDCBDEB8D2727E3769FACFCCF271AE219B893D765D76A67AA941E279E536E6E0E3C8E37E8E56D7D0671E2BAE86B74FAB8EAF32D469630861CAA5E76350551517E092D919ECA3EE74FAACBC2B5DC0F85E8755A7D068753A0D3E74B268FBF8F10CB92B9E334A2DCBCE7285748F2ED4CF4743A2D3F05969A39B41A3CEF453E36A785C6F1CFBA8C6A36F76BAA4DEEACFCFF0043DA9E35C3342F49A2E25A9C1A76DB5084AB95BEAE2FAC6FC6AACC67C7789E46DCF5FA8937DEB7737BF7BF29F9DE3E91DB55F49C7F836978776125AAD07F39A1D6F13C797479A4939F76F0CEF1B7E98C972B5E949F8A3CDEC5F13D1F0EE2B5AAD2F0F965CCE31C5ACE211964C5A4EB7378D6D375557D1D1E33D7EA9F0E8E85EA323D2472BCCB0733E4536A9C92F4D6D66146A71F6C65FB0F19ED0F73C227975FC55713D3A83963D2717ECFAD361D5C7C560C9157175D3F29F926AB2E2CDABCD3D3617A7C13C8E58F0F3B9F246F68DBDDD2DAD9DFC53B49C578DE8345A3E23AECBA8D3E820E182137F5ABD7E975B5BDE92479719384D4A2E9ADD31C78E1A10EF6A124551A46D08E95E961CF2CCB3BCB53A8A7158E96EBC5CAEF6E9546DC1B867D57E3187471C9C91C92773ADD4526DBAF4D239618D4E1924F2421DDC799293DE7BA54BD7BDFD0995A4D565D0EAF1EA34F378F2E395C64BD211FA02F27DC212A72D537E9EF57B83F93FE11F6DAAFF157B8F0E3E50B89AA52C3A47E97C92BFDE097943E25CCF970692ADD5C6575F9C63392EBDD5E4F784B8B927AAA5D5F7ABDC1FC9FF08FB6D57F8ABDC783FCA1F134ADE0D26DFF00B25FFDC746BBB6DC67876B72E9753A6D1473627CB351B924E93EAA54FA8F71EA4FC9EF0A941A864D54255B4BBC4EBF156E7C0EBB492D06BF3E9723529619B836BA3A7D4FA19F941E2B28351C5A5836B692836D7E5747CD64C93CD96593249CE739394A4FAB6FAB3537E510936F64DBEBB2348C71F2F9EE7CFCEB649572D6EEFD3D0D702D569B4D2D6609BC706DE9E528CD26F9A2EE35D69C6EFF0021CE50A7CBDE4BBBBE4B7CBCDD6BC2EBC492E18E59322841394A4E924ADB7E84271A741552E48C22B1C9C9B8A72B554FD1EBF0DC8F00A0A037D0E3EF7590C7DC7C214AD385D3AADDDF8575B7B6DB9EA769F1C619B0F76965828A82D42AF3AA31A86DE854EDEFE77A28F1B1494676EDAE8D5B56BC56C6FACD666D6E48BCD2B508A845254924ABA7E2DC8AFA0ECDEA70F0CECEEA359A8D4EA344B26B716259F498A3932B4A2E5283E66928B4D3EBBB554D2DBD2967CBC138BEAE59A3A7D0F0CC3C4334B2E2C50E67AEDD3EE545ADE2A2D2774A3CCDF5A47C7E878AEBB85B9BD06AF3699E4AE6EEE6D73574BF5AF07E06FA6ED2719D1E178B4DC575B8B1B939B8C33C92726EDBEBD5BDD99ED5D7BDC0736938AF0A870D9E2C9C905084F0B8C562791E7B8C94EEF9A49AC7D368DBBA54799C4742E1C7347A99EA21ABC7AECDCCA4B1B82F372724A3CAFA2554BD55EB4790B539A387BB8E5928778B2D275E7A54A5F4AB7F94D753C4F59ADD64353AAD4E5CD9F1D72CF24ADAA76BF5EE5C1FD55A2EC67019E8B0CA5C2B4D294B1C5B6E3BB748DBE25767FF00F49D2FE61FCE50F2A7DADC78E308717CB18C55249745E837D3F951ED766CAA1F56E50E6BF3F23E58C7C6DBFC5FACE5E9F2FB57B5DB5D262C7E58F2704C52F8370CCBDD639E28528454B15B6AF64EF7BF49E5702E0FC2F886BB8F4789F15C71C7C1F4B970E8E593139439633708E46E2A9D5ECBACA525E83E7F88F69388F14D54F57AE962CDAACF0E59679625DE355CBD5FAB63873CA185CB0E973E49E19C60E771E4529256D57A136D2FCA749C6E2C73B495D36D2E967F4BF916F9AAE17ED66FE2C8FE68F067F4BF917F9ABE17ED66FE2C8E7D5F30AFB4D67C92F691F957969FB0E97E110FDE3F55D67C92F691F957968FB0E7F8443F78E3FF00A8D717E120550A8F628A1514140450514D08090A1D05042A0A18D00A806140140302843A01D154A84550A80403A0084C545A43E520CE8286D0800430A0240AA10080741401426860108100D00512D1A5EC44882068741402A0181424C4D8844431A620A02AC1880210D02180D2B294094CB520138D10CD24ECC99434364A19021A131A00B0B0100D882C68064B2BC04C091A01A2A0680A0A010050042F11A4091A28EC04AD8184B626C290501482A68691541402A0188052FAD97D0CFEA1ECC7F47E0FEE74FF00C281FCC3CB69AF4AA3FA33C9B6BFEA9F6574BA951946D460D4E5CCEE3E6F5F46DB1E5EBCF0DF1F97E83A3F917ED33E53CABFCD771DFC1FFF00AE27D5E8FE45FB4CF94F2AFF0035DC77F075FBF132C3F965F565C5E35866A5093C8DAE5929528AF1B5E37B7D03C78A59B3471E349CA72A8AB4ADFD2C848F54F001CA729D7349BE54A2AFC12E882854542A1AB5F8C2B629534EDB54B6FA4A84BCEEAD2A5F97D401E1B1BCF1472E6CAF490C92C718B9D492E6514B76EB6D88ACA2B17733E773EF2D7224972B5BDDF8FA2BF1903AA7E720011A639455F3454972B4BD4DF46422F14A31CD0964873C1493946EB995EEAFC2FD25448463CD24978BA3B238B479387EAB34B3CB16A63960B069F95C94E0F9B99B97872D47E9B3912F5EE1159714B0E59E3CB170C90938CA3254E2D6CD3246EDBB6DB6FAB61410A8D74FA89E9E3994141F7D8DE3973453A4DA7B7A1ECB7FA486EEB64AB62426802A3BEC936DBA54128B849C649C65174D354D30890E85CA73C8A0A7272508F2C6FC15B75FAD8F2E0C981C565C72C6E71538A92AB8B569AF535D1855E2D3CFE039B52BBA78E338E26A525CF724DA6975FEABB7E175E2603E56A9B5D7A3A00240743BA8D780528CA5092941B8C93B4D3A6992C601080A872A92E78DAF459A6AFB8F85E5F82779F07E67DD77B5CFCBE175B5FD015945B8C934E9AE8353F4AB246002180500143234114E4E526DF57D6B62460756B75FA8E23961935593BC963C50C30F3525184154524B6D918AC6DE373B8D269537BBBBE8BC7A7EC25741963512FEB59FD2DE45FE6AF85FB59BF8B23F9AA4BCD7F41FD2BE45FE6AF85FB59BF8B238757C95F69ACF925ED23F2AF2CFF61F2FC221FBC7EABACF925ED23F2BF2CDF620FF00088FEF1C7E635C5F865051744B47B15003689000A1949010D08B922002800741022B94945A604B422988A043000A543487408A1342298802255EC48201342A2C12222394546AD221A02006C1200A0A1D0044B10D8008002802C4300100000802802250E84876452A01B0410A8063A02406D0A800762001D886915CA110306348A13422DA2480A132D09A026863481A01000C054348069140310040C2806054514D9098DB025EE4D1626153434054500C4CBE513404051541414E27EFDE487EC1B49EDCBF7D9F80A3F7EF243F60DA4F6E5FBECF3F5FC46B8FCBF4DD1FC8BF699F29E563E6BB8E7E0EBF7E27D5E8FE45FB4CF94F2AFF0035DC77F075FBF139B0FE5B686E2E2E9A69AF06A84D5DAF49D1AED66A388EAE5A8D665966CD351529CAADA494574F524BF11EA9E0738C41E0545C723846718D3538F2BB8A7B5A7B7A1EDD5103BBEBE014100051AE2D3E4CF8F34B1C6E3821DE4F74AA36A37EBDDAE80397733D273CB2647A9EF29C5C538F2575BBBBBDABD062563E45963DEA93C7CCB9945A4EAF7ABF1A14B9799F2DF2DED7D6BC2C043A02F2629E1928CEADC549534F66AD742A263D00B8E46B04B1F2C5A7252E66BCE557B27E877BFD08239670C73C71751C94A4BD34ED7EB0950336D1E2C59F578F1EA33AD36293A96570725154F7A5BBF47E332F0DF67E80CD21F9BC8ED3E6B54FC17A42854134EA78F9275285F9D0953574FAA7F4AFD45778A7DECB2A964C99375372DD3BB6DFA6F7FCB629E49E48C2339CA4B1C79609BB5156DD2F42B6DFE3241A1152C8E6E2E4DC9C524ADB7B2E8BF113414C1A72C939C2109CE528E34D4137B45376D2F46FB8945C9D256DEDB050D5A76AC2EB5D568F3F0ED764D36B30CB167C13E5CB8A7B38B5D53A30669394F2E494F24A539C9DCA5276DBF4B6450352C29D58C1BDB976EB602A15169D41AA56DF5150548C280000A924A549DAF4D0A8344874114DBDAD8050301FD0455E28C6534A4F956FBD5F805128B4554CB68BFA0FE93F22FF00357C2FDACDFC591FCDB35E6B7EA3FA4BC8BFCD5F0BF6B37F16470EAF95AFB4D67C92F691F95F965FB107F8447F78FD5359F24BDA47E59E593EC465F8447F78E3F31AE3F2FC3828AA133DAA8689A2D8A882686983420064942A0150E869169019D017244D04003A0A001A421A287449420A5405509A289A1A18100200A081B258C4C04C105000C403A0890A01A0150A8A100A84550F9408A06368410806004243A04040A828634508018200622E84D10482431A01C514C9B15809820B0450DB10E87411363068440D098C450860140034090D201301D08201A2460034C4C10550980008A888A482A9313620001D00141E27EFDE483EC1349EDCBF7D9F801FBDF91DCF8F276274F8E134E58F2494927D1F3375F91A3CFD7F11AE3F2FD4747F22FDA67CA7958F9AEE39F83AFDF89F57A3F917ED33E53CAC7CD771DFC1D7EFC4E4C3F97180C28F54F01050E8BC8B1A8E3EEE537270F3F992494ADECBD2AAB7FA4A8CCB9C60B1C1C66DCDDF34796B97D1BF8DFEAA246B66AF72A084B95BB8A926A9DAFD9E861D5EC8DF51CB9F367CFA7C11C181E4F37129F37769DD4537BBE8F7FCA60109A1B6E52B692FA15007E201A8AE46DCA9A6A95753BB81F02D7F68B8AE2E1FC2F4F2CFA8CAF64B6515E3293F04BC5B3D3E05C2BB3B38E7D471EE39930E2C1351869F49A773CBA8549B716F68AF0B676715EDD471F0CC9C23B29A15C138665DB34A32E6D4EA57FCCC9D6BD4BF2D19DBE20F63B47D9DECEF0CF271AA5C2F935DC4741C43169B53C4574C93945B9461FF00B16CBD74CFCEAB73EC344BFF00D16E28BFFF007383F867C8D0E3F29497537D0E8753C4B5B8B49A2C19351A8CD2E5C78B1AB727EA3D0ECEF0DE13AFD4667C6F8BFD4CD3E18A92E4C2F2E4CADBFAD825E3EB67BB9FB6DA2E07A4C9A2EC46827C39655C997896A24A7ABCABD09ADB1AF52FD45B7E232F632764381F05EC6768347A858F5FDA1D0E921A8D46683B86924E4A2B145F8C92BB7EB3F346B73EC7B1EDCBB1DDB4726DB7A0C4DB6EDB7DE9F20D6EC9C7E75392680D70E28E5CBCB3CB0C4B95BE69DD5A4DA5B7A5AA5EB6472BABE86994D1F5FD8ED2F0ED2F6678FF001DE2BC3B07118E8D60C3A6C19DB519649CB7E9BEC91F2D83077F9791E4C78FCD94B9B23A5B26EBE9754BD6D1F57C413E1BE47384E9EB967C5B88E5D5CBD2E18D7247F15B33CBE9AE3F658FB5DC232F3F77D85E0AF920E72FE7722A8AEAF7647C74E0BF78FC17FC4CBEF3E4A82876C3B9F5BF1D382FDE3705FF00132FBCF138F715D2716D562CBA2E11A4E13084395E3D34A4D4DDDDBBF1F03CC02E485BA4D533AE1C41E3E0D9B87C7061ACD9A19A799C6F279A9A514FC16EDBF4BA3900A4A1A49269DDF55E83E8FB19D9DD3F15D4EA388F1894B1704E17159B5991759FDAE28FFEE93DBE8FC4791C1F846AF8F717D370EE1F8FBDD4EA66A108F82F4B7E8495B6FD08FA0EDAF16D26974B83B2FC0B273F0BE1B26F3664FF00E2F53552C8FD4B74BD5F88CF2FA8D44794EE1BA1E15DBBD569B85E961A4D2AC38670C30E9172C6A4FF005B3E54FB2F2B6BFF00D43D4FE0DA6FE144F8EA1C7C17C90536AC74068D2432E589C5C55C64E5152A83BABF07EBF4A24340696FB88682AA8A44A2D20B113FAC7F41FD25E45FE6AF85FB59BF8B23F9BA7F58FE83FA47C8BFCD5F0BF6B37F16470EAF957DA6B3E457B48FCB3CB27D88CBF088FEF1FA9EB3E497B48FCABCB24E2BB2BC8E4949EA234BD3B9C7E637C7E5F89050E8747B48CDA116C96454B1142A08422A8540052648C01B010C0742A2A28A68A33A1A43A1A015050C0AA40C07404D08BA15044D050D8104B422988040D0D03089455123B08524494F715000050E804BA97E048580A4494C90100C00800B020452102286C00007626000201D0000862010C69051011344ACCD1A4254012811546AE5666C225850E874512301014864D8EC2192D0EC3A81343A1D0C086812298D20A54143620048A42430A286900D00344B2DB219427D19FD2DC13478787F14860D341431F738E4D2556DA4ECFE6997D6BFA0FE9CD0FF004F43F07C5FB11E5EBF98DF1F0FAFD1FC93F699F2BE563E6BB8EFE0EBF7E27D568FE45FB4CF95F2B1F35DC77F075FBF130E6FE5E01A563E5DAFC1753D53C0901B02B25430F002A0F1B01958A3096682CB270C6E494E518F338ABDDA5E3B7801981538F2C9D6EADD3AEA8557B7A4205BA1A46B9734F55A87973CEE736B9A549785745F40A38F9B1CE7CF05CAD79ADF9CEFD0BC6BC7E94223EB345F32FC53FF00E3383F86CF9147D7E8BE6638A7FF00C6707F0D9F298E389E0C8E6E7DEDC7BB492E57BEF7E3D2AA8CF1F92A06902454694936AD27D3D2698AFADEC72FFF00A3BB67FF00F0FC5FC53E45ADCFB3ECCE4867ECCF6E32E1C11D3E39E8B1CA186327258D3CBB4537BB4BD67C6B5B999E697E09753EBBB78BFEEAEC9578F04C7FBECF92A36D56B351AD945EA7364CBC91E582949B508DDF2C5744BD4B61F2CCAC54DC31CD249F32DED5BDB7DBD07DA76F341A89F16E05D9CD069F2E7CFC3F85E1C4F0E28B949E49AE79ECBE947CE766B411E29DA8E1BA39B4A19F558E136DD251E64DFEA4CFBAEDFF006DA3C27B45C574BD99CDCBABD5657F0EE270F949524962C6FF00AB18A4936B76ECCDBEF31AE3E1E0FF00261C43498D4F8E714E0FC11B49F75ACD5AEF2BD98D930F2778F5571E1DDABECEEAF2F862F853C7293F42E654CF94C92964C92C9394A7393B94A4EDB7EB6F7657C226F47F066A0F1BC9DE6F05CD755D7AD57874F13597ECD8EFE3BD96E2FD9AD4471717D0E5D373FD64DD4B1CFD992B4FF29E4D1F51D9AEDB6A783E37C3B89C3EA9F03CDE6E7D0E67CC92F4E36FEB64BAAADBF69876C7B378FB3DC5714B439BE13C2F5D896A743A87D678DF83FF00DC9ECFF17A4B2DF14FFEC7CF35E82B2BC72C8E58A0F1C2979AE5CDD12B77EB76FF0018E514A2AA49B6B755D0FABEC6F0AD2E83479FB57C6F1A9E8387CD474B825FF9CD4F58C3D95D5FD1F48B709EEEA97FFA7BD93E4551ED1F1BC3E73FEB68B4AFC3D539FE54BE83E1A972BFA0ECE2DC4F57C6F8AEA7886BF2BCBA9D4CDCE73F5BF04BC125492F4233E21A986AF552C98B0AC30E58C6304D3A518A8F5495B757F8C922EBEFFCB270FE1D838D62D662E20B3711D443147369125FCCE38E28F2B6FD2DFEAFA0FCE2DD1F65E56FE70F53F8369BF8513E38BC7C45B7DCDB87771AE6E7DF9AEABD55FAEC8F12AA8450E2EB740690C12969B26652828E39462D392526DDD52EAFA3B7E1B7A484829515E03AB8B7B6C241A693C5DDE471E784EBFAD0769FD0C12251510B0B27D64BE867F47F917F9ABE17ED66FE2C8FE71C8BF9B97D0CFE8EF22FF357C2FDACDFC591C3ABE634FB4D67C8AF691F09DA9E15878BCF518F369E3A9962C4E78F14DBE572B7D68FBBD67C8AFA51F333FE9ACDFDD3FF00EA3CFCFE1BE1E5FCCCA3681AA3482F357D02923DD118B132992C2A40600210C288150514800918D22B94A121B62684500C06828A0A18151205505052115426822588A04882684D16C901098C02245453420800680208A29A253A1D854B42A18009A1514140450174011CE3002280043450050D22A82A6806C400000108000007408A444450596D10C076344A1A01B10C4FA800E84985800001500D080076000140C43410342298828431149051431D08A0150C6419CBEB5FD07F4E687FA7A1F83E2FD88FE6497D6BFA0FE9BD0FF4F43F07C5FB11E5EBF98D71F97D7E8FE45FB4CF95F2B1F35FC73F075FBF13EAB47F22FDA67CAF958F9AFE39F83AFDF89961FCC308F345A8C5B924E577B525B9ECF6538C3ECEF165C5BE0DA5D6434E9E39E975124BBC8CD38BA54EEBC5F85FACF1574407AA781799C679653846308CA4DA82E9157B2FF6FC4674501590A327172516E2A9375B2BE9B828BE5E6AF36EAFD6691CB38E09E28CE5186469CE2A4F9675D2D7AADD7D2404A54229AF408A89180E88806908D72648E4EEF9312C7CB0519536F9A4BACB7E97E8E854D7D6E9B1CB1F91CE2B0C9194271E33854A3254D3EEDECD781F2308735AE64AA2DEEEAFD4BD67D869A73CBE46F8AE4C93739CF8CE1727295B6F91EECF8F4678FC94D22B99F238DBE56EEBD6249BBF5154562BEB3B1FF61DDB3FFF0087E2FE29F22FAB3ECBB23082EC3F6BE4B25E496860A50E57E6A59153BE8EEDFD15EB3E3F2352C92718F2C5B751BBAFC66679A9CBC44D0D235C319E6E5D3E2C4A7932CE2A351B937BA497D37D3E813C19569FBE78E7DD73F77CF5B7355D5FA6B7A2B2CA493F0D89E87D3764B84E978B70DED1F7F8166D4697864B53A66DB4E128C95B55D767E27CDBEBB09757E120C745E57096593C7070836DC62E5CDCABD17E25138E72C5914E15CD1DD5A4D7E467D7C26F8AF91BC90CB72C9C0F8947BA937F5B8B32DE3F9DB9F1F47D870B8FC1BC9071ECB24D4757C474B831DF8CA1737FA993935C6BC5ECC767B3F69F8D63D16192C589279751A897D6E0C51DE536FD4BF5D1D3DB2ED161E33ACC1A2E150961E0BC361DCE8B0BF15E391FFEE93DDFE2F59ECF00E2BD9AC1D82CDC2757C435BC375BADCCE5ADCB8349DEBC98E2DF2634ED547C5AF176717D4AEC37DF1F16FF00FE6AF799DF7F75F8F67C83135E6BFA0FB09F0BEC349B94BB49C57D7FF76AF78F2706EC4629CB1E4ED17178CA3B34F86ADBF59AEE5C57956718F945D439C39E2B4DA7B8DD5FF331F13E30FD6BCA2709ECA66ED467D5714E31C474D9B930629430E92338FC9271ADEDF9B4DF82BA3E0F8F68BB35A6D2639702E29AFD6E773A9C353A558A2A34F74D78DD6C4E3CBDA2D9EEF047DDCBBB536BCD6F96FD75600959B4371828C69B72A7CD6B65BED5F8810DC5A8A74E9F475D44F67B3F02350F6A5569D6F6FA850151AF16C341148AC99279A517376E31505B25492A4B6124552C9F272FA19FD1BE45FE6AF85FB59BF8B23F9D327C94BE867F45F917F9ABE17ED66FE2C8E1D5F2B1F69ACF915ED23E667FD359BFBA7FFD47D36B3E457B48F999FF004D66FEE9FF00B9E6E7F0E9C3CBF9AA1F5ABE809047A2FA0247BE78466D12D1742606741455051152D08A62A02463A0A0811689A0B2AA9A20AB10086905148A15051541402A1D00C096229892026846AD19B40488BA0A0880A29A2580A84CA10421850E80901D00420A18D20128D95C948A5487296C064C052020E7A01850521A1A43E5282259143B0A2AC2810D80A85431042A0A2A828091A01A410AC453449021850154C4C622210E82860200180868287454140D0D206809A180D201017CA2A0A48A414345530A01852A1142680892D9FD07F4D687FA7A1F83E2FD88FE676BCD7F41FD31A1FE9F8FE0F8BF623CBD7F31AE3F2FAFD1FC8BF699F2BE563E6BB8EFE0EBF7E27D568FE45FB4CF95F2B1F35DC77F075FBF130E6FE605D06691D3667A596A1629BC309284B228F9B1934DA4DF83693AFA1907AA780865B7078A3150A9A6DCA7CCFCE4EA957856FF004D928ACD218E9578D806690AB719D7A258759974BA1CF2D3E9213D479FAC9C5B708C924F9A9EF1557D2F77B8471CA3CB269494A9D5AE8C372B2E358F34E0A71C8A3271538F4924EAD7A9F51150ABF58D202E316D375B20CBEBB449AF233C513FFD6707F0CF94C52EEB3427C919F2C93E592B52A7D1AF14CF6B4DC73062EC16B3824A195EA351AFC7A98CD25C8A318D34DDDDFE23C8EEE3DC29F791E7E7E5EEE9DD55F35F4ABDABA9985A32C251979F150EF129A8C5ED4F7545E6C8F2C964692B493E58A8AD95787AAAFD66545F2CA1157694D5AF5ABFFE0ACDAFABEC9A5F14BB65CADB8FC03155F5F943E46AD9EE703E378385701E3DA2CF8F2CB2713D2C30E2704A9353E66DDBE95E8B3C37D4CC9EECF2BED16B0E47A79678C5AC719A873DF4934DA5E9E899EB768781AE0F8385CF1669E4C3C47471D6471BEB06FCD69F83769EF5D291E3A4AAED5FA0F6FB47C7B0F17D2703C7A6865C73E1DC3E3A5C8E692E6926DDC69F4DFC68BEE92CC576478BC7B2FDABD3EA75918E4D24E0F16AA117CCA587247CEE9E2934EBD2A8C7B57D99CBD99E2F2D3B7DF68F32EF747A98EF1CD89EF169F8BAA4FD7F88F1CFA1E09DB1C9C3F86FD4AE2BA2C3C638439732D2E76E32C4FC5E39ADE0FF00512FB5D8B2CB32BE72828FAEF80761B88B52C1C5F8A7076FAE2D56916A2317E852834DAFA4EAD0F647B27A99E692ED56A7591D3E09EA32434FC3DE3972415BDE72ABDD24BC5B2F745EDAF95E0FC0F5BC7B573D370EC71CB9E30E758DC9273DD2A8AF176D7D0ADBD91F43DB7CF8385F0EE1DD95E1F9567870AE6CBADCD8FA64D54FEBA9FA23F5B7EE1E6ED968B83E932E8FB1BC3A7C3BBD8B865E21A89A9EAF247D09ADA0BE8FD47C9F3B51714FEB9DC9DEEFE927BDBB4D927B3276DB6DB6DEEDB11ACE4A724F9631A4954575A5D7E97E26746D09EEEC96AA2EBD050356991A8FAEF2B2BFFD42D4FE0DA7FE144F916A1DCC694BBCE676EF6ADA957E5FD47BBDB6E3BA7ED2F6A32F11D263CB8F14F162828E5494AE10517D1B5D51E150E3ED1AB50D6C086D025B947B3DA3C9A35A7E13A6D0711CDAEC7A7D1253E7872470E4949CA5082A4DA4DEEDDDBF13C996494B0C31B51E5836D545276EAEDF57D3F113E3BEE39F2B9C9C63CB16DB51BBA5E8BF1235A929050D06978B97BC8F797C96B9B97AD78D5F89AE4D4E4CB8716194E4F16172EEA2EBCD5276FA78BD8C5149051917F332F659FD15E45FE6AF85FB59BF8B23F9E32E392D2CA4E2D45A693AD9B48FE87F22DF357C2BDACDFC591C7ABE6351F6BACF915ED23E627FD359BFBA7FEE7D36B3E457B48F99C9B71ACD6FFF0009FF00B9E6E7F0E9C3CBF9AD2F357D00D0D7D6AFA019EFF8659B2596D12C0421D0E82A2828D2897122A1A02A8545420294428290C287404D0D0E828A04301805050D03288680A62204D925508210C40026268620C90A860022908680962A298A8210D31D09A0A3984D85004201801800DA0A0D8458922A82268545882950D85880543A1800A8185882114B60100361403402A114C9640810004509805000D2048AE50108AA151514819363B01788D08A4030A18154A869021A456A018D22B942A12068AAA022336B667F49707D5E2D6F18865C135383C18D5AF4A4933F9C248FD4FC8736F3711B6DF9F8FABF533CFD6E3B256A3F70D1FC93F699F2BE563E6BB8EFE0EBF7E27D5E8FE45FB4CF94F2B1F35DC77F075FBF13939BF98E3926B13829494254E514DD36BA36BF1B1047A219EA9E003DABD634B665732EE7939237CDCDCFBF355557A2BC4ACD4050D21D20CD4D6DB1AE5CB1E69AD3C258F1CD4538CA4A6ED55EF5E9B7F46DB99B1064AADA5E92A78E58F24A134E328B6A49F54D754219508D669C5C54A1C8D457834DAEA9EFE94FAFD0425EA2E5294DA7393934924DBBD96C97D08210D051496C466841B8D16B0CE58659638E6F1C1A529A8BA8B7749BF06E9FE40CD4CA4E756EF9552F52124AF7BFC40C137192945B4D3B4D780669C272C6DCA12716D38BAF4354D7E4744D14A2E4FF005EE1411341450829502AF118802EBA3114A2E52518A6DB7492EAD84F1CB1CE509C5C6716D4A2D534D754D010C54694BC4AD462C78A7158B34732708C9B49AE56D6F177E2BF2058C00AA15068A828A94AE95255FAC45589A15141446A1241432F2E49E7CD3CB96729E49BE694A4EDB7E90A81A0A1A41A8A84538B6E495745E91A5B9BE6C3820B02D3E696694F1A792F1F2284DB7715BEF5B6FB5D99CA12C792509AA945B4D7A1A11A195FFD9E6BFF006B3FA17C8B7CD5F0AF6B37F1647F3E4927827CCDA5CAFA7D07F41F916F9AAE15ED66FE2C8E3D5F31A8FB5D67C92F68FCF7B69C67070459A5AA9E5C70D4E378A3931C799C5DB7D3C4FD0B57F22BDA47E5DE57E29F65F9A95ACF1DFF0019C2CDB23A70F67E3142A2E81A3DCC3368868D684E2419A43627B005098D8243682A18921B1A40090994C90A122922A091524A80CC437D428A10E87405402A2A82809A2596C9A20422A84C09622A828254D0A8D144248233A0A1B100A80740D04262A18500080610828620A5403A00316201D06D5145B5B11174CB72D8A2192360408455098058080018862018050E8210C285E2030681154411414502084A237129206042D995626208AB0625D4651034143A010C28A512A92292048A0048A48225A45689218E84C2A644D94C96881367EC1E47F83EB38466D5AD761EE9E7709C17327695A3F1E97D6BFA0FE96D0251E3D04924969F16CBE8479BAF6CC8B1F61A3F917ED33E53CAC7CD771DFC1D7EFC4FAAD1FC8BF699F2BE563E6BB8EFE0EBF7E273737F31456C8ECCD8F48B86E965872CA5AA94B277F069A5049AE4AF077BBB4FD5F4F247EB57D05F2B8D375BAB5BD9EA9E02007BB1A2B142292DC1A8A8C5A77277CCABA7A37F1294E4B1B827E6B69B5EB575FB58653CF258DC149F2B69B5E0DAE9FB48298A821178E0A6E5738C2A2E4B9AFCE6BC17ADF8128A8D5EEB60CBD4C5C321ADD3F0B960B8CF539A5A6CCDBB519269A7EA5C924FFF00E56753E17A4CFC7324B4B8F2CB87CB4AF55861CD7369AE5842FC5F78D44E7E0DC423A7D26AF4DDDE4C99F2A4F49C8979B95A941B77D3CD9BFC691BE8BB430D2F0EC3589CB598B53195A8A8C1E153EF397D4F9FC2AABF213DCF6610E07965278F167D3EB326392C73C5A6CBCD284DBE55769271E6A4DA6D2F4F4674E8FB38F57A6D4BC1A8D36AF2C658B143B8CAEA339E48C15DA569DB49AB5EB3A61DA3C5A4C8F247599F5919CE3587E0F0C2E30BB929492DDD6CAB6BDDF4A31E17AEE17C17BC78F51A9D54B264C2E2D61E4508432466D34DEF269786DB75DF69B53D9C8F80EA1F9B83369B5338E458B243164B78E4EEADB4956CF74DA55D4DF068758F492D2E8B5FA7D46933E55DF77595F7719422E4A53B49D28A934E9AD9D6FB11C078C63E139334E719C9E4704B9126D2B9293DF6BA96D7B5ADCEC7C6B0C238F1CF88EAB3A7954DE5C182381E24A3251692A72926D3ABAA4D27BDA7BA7B3CE5C1679147262D5693269DC65296A2391A84145A4F9AE29A7728D2ADF99559BE5E015A1D2E586A34EE397BE9CF51DE3EE9420E0AFA5A7726AAADB6B63A32F13D0E5D24F499F3BCB3CF1AC9ACC7A558DC69C6504E2A9CD26A56F67E76D743F87F08C1821A4D266CF789E578F599F4D1972B94A0D358EDD79B16AFAA6EEB7DA6D4C8F3355C27369346B54B260CFA7938A8E4C526D34F9A9D349ADE125BAEA8CB57A2968F96397243BE95396256DC538A926DF4FEB5575547D0E9F5BA6E259F1432CF53A9D0E0D14B1EBB2E4C6A14A339648C953A56EA2975DDAF13C3E22FE10B16BA7394B3EB25932658D79B17CED249FD15F46C596B3648F4B8770A8EA34FA2EE387475AB50BF9FD44F34E31C32B69C5B8FD65249DC93BBF41C12E198734E7970EB3060D24F23869E7AB9384B2555EC93AAB49B74ACDB0478765D363CF8F5B3E1BA8C18E10C8A30949E595BF3E0E2D3BF4A7497A77DBBF2F68B16B138AD564D0A86594B7D2C333CB19536DFA26DA6DF83E6EBE99EEB32F9796F8067C38E33D667D368E339CF1C7BFC8D5CA0EA4B64F65B6EF6DD6E6FA8ECD4F0E934F27A9C10CF2797E1109CDA58541A4DB7CB54AF7A6EDB557674F14CDA1E29A2D266D4EAB3E9A739E795CA1DEB941CF65B355255F43BF0A348F6934D91CA4A59F4EE4B2E18FF00351C9C98E4E0E32DDD369E349AADEDB4CBB4F6799A7E09A979167D36AF4AF16383CEB551CAE31828CA29F549A92728ED57BA6ACACDC0F5339A9BD6697366D4C259B0AEF64E5A85BB6D5C7ADA92F3A9B699D3ABE318F2E872E916A336AE53C4E2A7DCC71C5CDE4C6D28C553E90AB7BB6D6C9231C1AA58751A0D5CB165EEB418D60CCF956D36F234BAFAFF00531EE9ECBD676792D53C5A6D460EF67871E5C3A6791BC934F1C64FC29376DA4DDBDB6E870BE0D97BA6FBFD37C2162EFBE0BDE3EF792B9BA555F2EFCB775E07BBC4F57831EAF85F10D52CD865874385E0D33C114F2A8C694F9D3FAD724DDBF3AB6F419EA78EC258E3AA5C427DE64D353D262D3454A19397929E4AE9B736D6E9D7AC6D6B23C2E25C2F2F0ACEB0EA6785E6FEB63C73E6945349A6EB6569F4EBE9A3AB4DC2B4FACE12A5A7C99726B5EA7162717151C7053E655E96EE29DECABD272F15D4C35BC5751A8C49A8659F3454953AA4BFD8BD1710F8168A7185F7DF09C39E0EB6F3399EFF008E4BF597DD66379697876A726AB4BA3C59E39704273C59E5979BBEE44DB528D546D29354F6A49D9E4347B70CBC3B16AB3E7D26A26B26A633C78B1E6C7C91D3F79E6B739DB4D454A554B7D9BAE878CD536934D7A508B52A32717249D27575B593469CF2EEFBBE6972737372DED75575E9A268A138B49369A52E8FD205462E72518C5CA4FA24ADB15068E4927E6B6D7A5AA2A18E538CE518B71824E4D2DA29BA4DFE3691052F4058A4B66FD06B3C33C39678F2479678DD495A74FD1B11B35B2049254B62B4AC9FF0F93D97FB0FE84F22DF357C2BDACDFC591FCF793FE1F27B2FF61FD09E45BE6AF857B59BF8B238757CC6E3ED357F22BDA47E5FE577EC5BFEBC7F69FA86AFE457B48FCC3CAEFD8BFF00D78FED38FCC6F8FCBF1B484D0C0F6B2864B2DA219066C4532481A60D8A828290D30A0A281B00A1D0538BA072B1051403484500860050C281149010D0A8B6491034434684309A4218002626C7426112C450501221B41410A8280020A10C029050C2805403008C280AA04AC3AA465F28A8A26828A0209131B100A8450A805409154546210920A29AA240A51D89712B984D80920602010D024528842B007B088061400542285434804550877B05146915B19A652914535B850BA94BA0022D0922D22B404CAA13415344C916264A3192F35FD07F4B687FA7E1F83E2FD88FE6B9FD6BFA0FE94D0FF4FC3F07C5FB11E4EBF98B3C57D7E8FE45FB4CF95F2B1F35DC73F075FBF13EAB47F22FDA67CAF958F9AEE3BF83AFDF899737F33C275A770E483E669F338F9CA93D93F04EF7FA113E05426FB850E58D36A575BF4AABF47A8145CA4A295B6E91EA9E048CA7071938C9534E9A1159A0DA2D64C38F0E3C09E6E77E7C5C9CA77494797A6CFA56EEFE832D8D61351C4E2A0B9DCA2E392DA942AFA53ADF6FC8AA8ACB39469B524D35B535E24173B726DB6DB76DB7D59246691AE5C39304D432C7964E319A569ECD269EDEA68CC69574419AB86394E33AAA845CE5724B655E9EBD7A752A38A528C9C632928479A4D2FAD5756FD56D7E52B4D9F2693510CF825C9931BB8CA93A755D1EDE24C76872A0CD4D0D00D20CD301D0110A807D4D32C70C6185E1C929CA50BCAA51A5095BD97A5553BF4B611914E739423072938C6F962DECAFAD2F5D04A0E29375E72B5B89042A0455594F0CA315274ADB557BA6BADAEA8A8D16A211D264C4B06393C949E5927CD15B6CBC16EBAF533CF9B26A72BCB9F239E49526DF5D924BF5248A8EA734349934D09B5872CA339C6979CE374EFAED6CCA82684DC5DAB4D6E873AE7752E7F1E6A7BFE50A0A0A25294BEB9B7F4BE84BE850986A201F4FA0A68541A8D755A4CDA2CDDD678A8E4518C9A5252A4D26BA7A9A318C5CE4A3156DBA487E1415B05284BBBC8A5CB19578495A7F4934550341A4C652C725284A5192E8E2E9A12451A63CD2C78B2422A15952526E29B493BD9BE9BADEBAAD82C67434AD375B2114906A35C599E3C7960A307DEC545B946DC55A7B3F07B55FA2FD248916908A535FF67C9EC3FD87F427916F9ABE15ED66FE2C8FE7FD463EEF0CD73C2778B9BCC7695ABA7EB5E27F407916F9ABE15ED66FE2C8E3D5F2DC7DA6B3E497B48FCC3CAEFD8BFF00D78FEF1FA7EB3E457B48FCC3CAE7D8BFFD78FED38FCC74E3F2FC7120A292067B1966C868D192D019D0B94BF106419D00D882905154228543A1D0500A8121D149144F2851A6C2682A28743A1A45024301A4194B44B46DCA4C91064D0A8B689026845D0A8224453422210E800A25A24B64842151541402A0A2921D01290345D12C0901804605458A80AEABB258AC08A430A0A015050C7415022DA25802293A250C321B10C0040550A804145240D044A2D7423C4A0264229A1504229210580E82C56003150D0D20268A43A0455389690A28B8A2AC348B486914A25589A25A34684D12B4C992CD248CD99A224BCD7F41FD29A1FE9F87E0F8BF623F9B65F5AFE83FA4F45FD3F1FC1F17EC4797AFF047D768FE45FB4CF95F2B1F35DC77F075FBF13EAB47F22FDA67CAF958F9AEE39F83AFDF899737F33C63FCD465E06909C638E7196284DCA2D293BB8BB5BAAEBD1ECFD2C8C537070945D4A34D7D286F7DCF54F009C63FD56DA6B74D78D6FF00887972E4CF965932C9E4C92DE5293DDBF58BC3F1891A66B4C918465FCDCDCE14BCE71E5DEB755EA7B7EB09E39E2972E484A125D6324D3F4F464A57D7A1B6573CD8BBFCBA85932392838CA4DCE94553DFC2B65BF85066B062A1DB5D044656B3645A79E14D77739C67254BAA4D277D57562845CE4A314DB7D12121A0CD3BDF6650DE69BD3C70BE5E48CDCD79AAEDA49EFD6B65B74120CD06D2C4B1618B9DF3648A94395A6AADA77E2BA7432A04A8335426FC46D35D4A8E2C93C739C6129431D73C945B51B74ADF85BD8883243BBC8E31C90C89579D06DC5DAF0BFC9F888A1978E11973734F96A2DADAEDF82FFE402538BD3C71AC515352727937E66ABA7A2975F4EE42D8061026D34D3A69DA7E835C5A9C9872CF2C6792395A979F196F6F676FC6D377F49915CB51BDB774194552DBF11A647094EF141C23CA954A5CCEEB77F8DDBAF0105042A0A19B4BBA5A58460D4B249B94DB8538356924EF74D6EF6EB5E82918509A2E84FA06A33683C0D72C211C958A6F246979CE3CBBD6EABD4ED7AFA99B497477B7A3C4364E2D75FA45E06D8F2463872C1E284DE44929BBB853BB5F4F477E064D058902F1B8C32C653C6B2C53DE126D297E35B8A1CB1945CE2E49755757F8C345927DE4B99C631DABCD5489358E450C55182591B773BBF35AAAAE9EBBEA64C28A292122F1E39E49358E129B49C9A8C5BA4BABDBC17A4350D74AF0BB3A3163D3BD1E6C9933B8E78B8AC589636F9D3BB6E5D157E36ECE745A0A597FE1F27B2FF61FD05E45BE6AF857B59BF8B23F01D4E9B363E1EB3CF1CA38B2C64B1CDF4956CEBE86CFDF7C8BFCD570BF6B37F16471EAF98DC7DAEB3E457B48FCC3CAE7D8BFFD78FED3F4FD67C92F691F98795CFB17FF00AF1FDA71F98E9C7E5F8F47A031C7A033D8C2192CA64B02188A684D1152C450A80403028690DA1218520181409875048602A1850D2001A2940545417B1326364B20962A28541125243E5134112D1345B15111341CA6890348A3368968B64BEA04D050C0201D88001B1050C05403003271A268DA68CDA2BAC40515420D1A4020200A44858049920C005434860821D09944B0843F10A001D898051112520681143A25942A08422A85404D0C282821A28490E828B1A26B72D22C55451A45131469146A2C69145A88A08D122B519B44B3568CE4895594BA99B349225C4C519CBEB5FD07F49E8BFA7E3F83E2FD88FE6D6BC0FE81EC77178F68A71E2386138E3508E2B946ADC76D8F375FE08FBFD1FC8BF699F2BE563E6BB8EFE0EBF7E27D5E8FE45FB4CF94F2B1F35DC77F075FBF130E6FE6CC39DE2C338E349472E3509A92527D53B4DADB75D56FE040A0FCC8FD0867AA7807AA8717CAFA27F4958A392526F1737328C9BE574F96B7FC5564D2AE9B959AD74FA7CDA9EF3B8C73C8F1C1E49F22BE58AEADFA95EEC849B74936DEC9257611728EF16D5AAD9D1A72CF0C71E684D26DDC5C27E741A7B5F8A7B5FE46566B17E6DA7B7834F60DA9DA6DED4EFA1A2CF963965956492C93525295EF2E64D3BFA6DD99119A0D71C39949ED515D1CA9BFA3D2438F2B5BA7693D9820CD5354E81205D0D6787260928E5C5284A70528A9C5A6E2F74D7A9AE8C8CD435E81A17894D24DD6E8AC9BB6B7F02F16A7361C397163C938E3CD5DE414AA33A76AD78D3DD0A38F9F1CE4A515C8ADA6E9BDD2DBD2F7E9E8B62863964928422E737B2495B6C889F1BF1BB2A72964C929CDDCA4DB6FD2DF5253F414B2C96394128F2C9A6F657B5D53EABAFE3FC41135B8CBCB92138E350C4B1B8C1464D49BE795BB96FD2F6D96DB1082048754C17A07D4323A824698B1A9F3DE4843922E4B99D735782F5B1500A0A3CD1E7BE5B5CD5D6BC68DF5BF077AC9FC0F165C385528C734939EDE2E9256FAD2314956E5649CF2E4964CB394E72772949DB6FD2D9469A7C58F3734272E5957326E4A2A926DF5F1A5B2F167335E82EBC096A88D4431559B3C2BE0DDEF7B8EF9F93BBBF3AAAF9ABD1E1F499341A56594679A738638E28C9DA845B6A2BD0AF7FCA6650492755B6DB95A89F12A317384F9796A2B9A56D27E8DBD3D7A22595DDAE54DBDDAB8A5BF8F8FA034CC28B861964537049AC71E695C92DAEBC7AF5E8B725155B69F553D3E1CF8E38F14BE1105094A78D4A5149DF9ADFD6B754DADEB6338649E37278E7287345C65CADAB4FAA7EA7E836D0E7C5A5D6432E7D362D5638DDE2CBCDCAED349BA69BA7BD5EF46114458A8A2D22523484253BE48CA5CA9CA54AE97A5FA8348CFF2193D97FB0FE80F22FF00357C2FDACDFC591FCFF9BFE1F27B2FF61FD01E45FE6AF85FB59BF8B238F57CC6F8BED759F24BDA47E61E573EC63FEBC7F69FA7EB3E497B48FCC7CADFD8C7FD78FED38FCC74E3F2FC750C4867B18268968D096066D0A8B689209A1514145545051543E502522A86A23E5022828A684505050E828069149090C0AB25808A1325A2DA25A222463A130864B18984488A0A089B1365512D00992509808286144421A562A2A3B301F26C43546BCDB19BDC0901D0144BDC968A40D1A7767422DA151152031D6C4103A06868096854531A404821B1208AA13416161050A87634822686512C81310C54500C430818A8A295019D0E872100218868028A8A048B48B14E28D62898C4DA31351A5451A2428C4BE534A868CE48D64B633919AAC9A21952643662949ADCFDD3C937D85697DB7FBECFC2ECFDD3C937D85697DB7FBECF3F5BC427CBF4AD1FC8BF699F29E55FE6BB8E7E0EBF7E27D5E8FE45FB4CF94F2B1F35DC73F075FBF139B9BF9A20BF9B8FD087456184A78AE316F9636E9744147AA780E0E2A56F1C64B95AA77575D7E95D4555D471B524D53A7D19D5A8941BD44B3628C3533C8D3C2B1BC6B0EE9DA49D7A63CAD6CB72B35CCDF33BA4BD4951AE8F063D4EB3161CFA9C7A4C53954B3E48CA5182F4B51B6FF17A4C91A69B37C1B530CBDDE2CBC92BEEF2C79A13F535E28ACB271DE5CB7251F14BC3D24F88EDA4D26E9ECF7EA5E7D3E5D2EA2787538A7872E36E3284E2E328BF434C8CD4020296E4669C22A4E9C9455376D3F474DBD3D069BDBADAE9EA1256E96EFC3D635D3D219A7EBF134CD97BD945F778F1D4231A84693A556FD6FAB7E2C875E6D26B6DEDDDB2A10739A8AAB7D2D9592EA6B97532CAB179B8E1DD41413C70516EBC5B5D5FACCDC5C5B4D535D4544426B6B048ADEA84D7E208546FA5D3FC2B5787073C31F7B9230E79BA8C6DD5B7E85764E59ACB9A5358E18949DA84179B1F52B26832BCD8BB8D464C4E519BC7370E683B52A7569F8A744AF480E9A081751D0DC5A6AFC558E8014252B714DD2B74AE97A5828393A4AE95951B49D36AF674FAA0DD012D0937192945B4E2ED35E05509FA82C4E6C93CD3E7C927295256FD0952FD46468D0A78E58E494D53694ABD4D5AFD41A89A1D6DD4121B2B710D6E2E8EE2D9AA841E1949E4A9A9251872BF393BB77D156DF4D99B41A4D14B979256A5CDB72B4F65E9BF487E263CB8DE2C928371934EAE12E64FE87E2151D4B8462E33B9A8B51B8AA6F99DADBD5E2F7F40638B94D4524DB74AC554E82C525B1BE378E38269F79DEC9AE56A4946BC6D756FA57818C578168AD233AFFB3E4F65FEC3FA03C8B7CD5F0AF6B37F1647E039E3FF0065C8FF00F6BFD87EFBE45FE6AB85FB59BF8B238757CC6E3ED759F24BDA47E63E56FEC63FEBC7F69FA76B3E497B48FCC7CADFD8C7FD78FED38FCC749E2BF1D43424523D8C10994260432594D0A8091A185005078949098534320A410988A6854552A0A2A82804348743482051071A2D09EE066D09A2E84D04409A284C88910C282150318151344B45B13088A15162A209A0A1D0503480743A06A4074140D268060546740CAA0A34F421A25A34A134469981542688240188802848A021850D8150A84550504229215151402641AB4434113403A0A0150C742610AC762000B00A00194892900D17144A358A2C55C11D18E3663147462EA6E351B471EC0E146B0E81345572CD184CE9C88E79F533558C8CD9AC8868E65423F75F24DF615A6F6DFEFB3F0D513F73F251B762F4CBFF007BFDF670EB7884F97E93A3F917ED33E53CAC7CD771CFC1D7EFC4FABD1FC8BF699F29E55FE6BB8E7E0EBF7E273737F36479545723972B8AEBD7A7BC0216F1C7E84147AA781B6458B22E6C4961E4C71E68CA6E4F24BA371DB6F4D7853DD98EEDEEEFD614348335B69F2E3C1939B2608675525C936D2DD349ECD3B4DDAF5A30E8B7284CACD0E31EE9494D3936D3872BD96D4EFA3BDFF20B2659E5929649CE6D2493949B697A37132D777DC38B83EF399353E67B2A76ABE9A77EA0CD42A2E316EDA5D15BFA0A96794F1431CEA6B1AE5836B78AB6E95785B6F714724D63963526A1269CA3E0DABA7F8ADFE523348DA79B26AB2279B226E18D422E4ABCD8AA4B65E8D8C922920CD22975150D15932B1E39E5C91C78E2E539C946315D5B6E92FCA4FD00446D8F0C79733CB9218E786AB1493BC8F9A9C5574ADDBBF47A489B8CB2CA4A0A11949B508B6D455F457BEDEB237B1F50874563C72CB9230C7172949D24BAB64D0C22A0DC64A5174D34D35E1EB1CE4E7394E726E4DB72937D5BEAD8D65C9DCBC4A6FBB9494DC7C1C92693FC8DFE52B0669E9F3C32E3E5E783B5CD1525F91ECC2212B2F92AB6EA3C10C72C8A3966F1C29DC94799F4DB6FA6912AFC4235C697739977519BA4D4DCA9C15EF4BC6ED22012B69256FC0AC7073C8A1714E4EAE4E92FA5F800A38DCE4A2AAE4E95BA1648F2CDAAAA75D4A8C9C2519C5D38B4D6D7BA149B936DBB6DDB0463244F2B8BA69C5FA1AA66D2C6BB9E77387D772F25F9DD2EFE8F0273659E7CB2C99672C9925F5D2936DBF0DDB0DC668BCB3795F3492E66F76955FE25D0541456E33E5DC395F2F3785D169D493694ABC1F89125683491B37C9916AB52E6E1834EA5E108B8C234BC16EF7AFCACCBE80A98C79A4A3B6EEB77481AE5934DAD9D5DEC6CE2B1E2E59C21273A929A6EE295DAF46FE3F42271E4962CD1CB8A5C93834E2D25B3F485289685174A91514DBD915A4EA3FE1727B2FF0061FBE7917F9ABE17ED66FE2C8FC0B3FF00C365F65FEC3F7DF22FF357C2FDACDFC591C3ABE637C5F6BACF915ED23F31F2B5F633FF005E3FB4FD3B59F24BDA47E65E567EC67FEBC7F69C7E63A4F15F8ED0D024551EC724850D827B80D62B2270A378CD246591D90D645242A29154512CA6F6242950D00E8062A1D0E8A9A543A0291151431B02A000000A134500466D10CD244B4444500C68226845D072951144B346896822006041203150000C28210E8742E802680605108074234F513150C08A9131B1322A24494C444086891A0063480020A1A4034544B29098208A64B431D01142A3468968090002215050C2804143A1D15134520A1C5055C51AC511046D0566A2C5451BE3444626F8E26E351B411525B0E11D8A92D8AB1C790E699D5951CD339D562C97D4B64D184389FB8F929FB0DD37B6FF007D9F86A3F71F251F619A6F6DFEFB3CFD6F1167CBF49D1FC8BF699F29E563E6BB8E7E0EBF7E27D5E8FE45FB4CF94F2AFF0035DC77F07FFEB898737F36E35FCCC1DADD741D0B1AFE6A3ECA28F4CF024AAA96E9A1E38C672E59E458D537CD24DAE9B2DBD3D3F19A64C8F3284E797264CB552E7DF952DA293BDF6FC9545659CAADF2DD785F52F1E5969F363CBA79CF1E4C75253BA6A4BC5510FA0ADD5159A8DAFD403A1918A54547969DB69D6D4BC7D7FAC543A0942365CAB03E68372934A32E6A51AEBB78ECD7D065145066AA73528C572C572DEE96EFE9F4892114BA065739CB2CA36D374A0B64B65B20CB8E58724B14E35931C9C65E726AD6D5B6DE9DC892A6D3A74EB676816DB04304034822A5352C8DC61CB16ED46DBA5E8BEA374E4DA5CA9BD97A01C528469A6DEEE9F4F57D3EF1C55EC82048742A2D72F27F5B9AFF00157BC2250C121D11158A12C9963187D749A51DEB77EB7D0D314A38E6DCF1C722A6AA6DD26D55ECFAAEA885CBC8953E6B77E8A34C739637CD06E325D249EEB6A7FB4A8238A1F079CB24B2467B774942E3377BDCBC297D3BEDB19CF1CF1BA9C5C5B49A4D56CD5A67561CF871E8B518B2E9FBDCB35158723C8D2C34EE4D47A3B5B6E73493682C67384A3B34D3ABDD7819D1B36D27B276AB757F93D066D06E1CB22963845638479634DC56F3DEEDFAFC3E84886551B41E18E972296294B349AE5973D462BC76ADDFE3A2B71CD4268A6841A4302A854155872BC19A39231849C5DA538A945FD29ECC8487434829A45C5B5D1D129148348D47FC365F61FEC3F7DF22DF357C2BDACDFC591F81EA2BE0B97D87FB0FDF3C8B7CD5F0AF6B37F16471EAF98DF17DA6B3E457B48FCCBCACFD8CFF00D78FED3F4DD67C8AF691F99F957FB1AFFAD1FDA71F98E93C57E3CBA944BEA347B1C4324A649016C4D1486C0801850521514053534348743480121D0243A02680AA0A0A902A84134000E80120635D04CA8864B2D90C89A9603A0A0948A42A00C8910D142025A1514D0A809A0A2A81A02686143A010A8AA0A089A02800864328966DEB8414319150D125C89688A8684D16D134444D01542A0001D05064218868A84C458A881265264D0D14512C762611341431904D02002863A04308545210E205C4DF1994226D146A351B411D38A2618D1D986366E34D230D89C8A91D31C7B19E68523555E7E539721D797C4E5C871E4316496D1346108FDCBC947D85E9BDB7FBECFC3A8FDC3C947D8669BDB7FBECE1D6F1178FCBF49D1FC8BF699F29E563E6BB8EFE0EBF7E27D5E8FE45FB4CF94F2B1F35DC77F075FBF130C3F9C7BDC99B163796729B8C2314E4EE925497D090E38B9F1E4973C22E0935193A72B75B7A7D3F4118BE461ECA28F4CF095346B85E1E4CAB2C7239387F34E1249295AFAEB5BAABE94EE8CC1159B551928BBE58CBD5244517251DB95B7695DAAA7E2BD648629506E9EDE03A0A08E9D266D3421ABF85E19E6C9970B86192924B1E46D3E769ADF6BE95D4E6FA0069064D6CC02ECA872A9A735CD14D5ABAB419A5474E19635A5C8A72C76DBA838B52B5174D4A9ED6FA78EDF4984AB99F2DD5ED7E81046EF51963A3F832CDFCC6492CB282E9CCAD2BF5A4DFE53001845A963EE251706F2392719F36C953B55E37B3BF57ACB8BC1F0549C723CEB25DF32E470AE95D6EFC6EA8C90EBD011726A592528C5422DDA8A7697AB71ED4C7350EF1BC4A6A17E6F334E497AEB6009424994D25275BAF060802001A1A410247460D34F3E3CB384B1A5861CF2E69A8B6AD2A49F57BF45B99CB1CA118B92A535CD1F5ABAFDA98F1C62F9B9A4A3516D5A6EDF82FC7E908917816D0A82C6724451A4896837062C52CD9638F1AB949D25697EB64D1BC31E09E28465394724A6D4E528DC231A54F6DDBBBBDBD0654CAD4426E12528BA71769FA192EDBB7D59ACD4549A8BE65E0EAACCD869343963928C64E2D46574DAD9D75A1953F05CEE514B6EB4AFAEC1A6543A2ABC4A6A1C91A52524DF336F67E8A5E01508A48EDD669B418741A39E975B3D46A72C1CB5389E2718E077B4537F5CFF51C6937D174DC2B7D7711C99F8143453C383974EA6E19230E59B4D6EA4D75DF7B7BFE23F71F22DF357C2BDACDFC591F84E68E17C375329E49472A8D638285A92776DCAF6AFC7767EEDE45BE6AF857B59BF8B238F57E1BE2FB5D67C8AF691F997956FB1BFF00ACBF69FA6EB3E457B48FCCFCAAFD8E7FD65FB4E3F31D278AFC7A5D448A9224F63868006088A02C04008AA122901343A1D0E8AA9A048A00150C743A01243E51A280CE8545313010D200006896509A2B3A864B45B44B444D48E806888542A2C404D09A2E84D04D450A8AA1D03492412483A099534946C7C9B0E25BAA06B2A1514C281A9A029003583114D051A7B103A1D0D222A7944D1A33393022420604050728D14904450A8B6854544D00DA151100050500050C0A10860020002210D050D043486C1032892A222E280DB19BC518C11D18D1A8B1B628EE8EEC1039B0C7A1E8618EC75E2D344AA273E77B1D6D544E3D422F2579F9BAB396675663967D4F3F219886FA92651547EDDE4ABEC374DEDBFDF67E2367EDDE4ABEC374DEDBFDE670EB788D71F97E91A3F917ED33E53CAC7CD771DFC1D7EFC4FABD1FC8BF699F29E563E6BB8EFE0EBF7E26187F37E2F9187B28BA2717C8C3D946B2941E15058D735DCA6DDB7EA5E15FAEFC7C0F4CF0CDAB5A859734B266C18F2B96370518F9893AA524A35BAABF437D4C12359E7CD9334F34F24A59676E536F7937E90C9DD779258B9DC36E573A52F5DD6DE92B1595051541419A25C9DDC1462D4D5F349CAD4B7DA956D4BE9BF512572BABADBD2209481F4DFC4A74DB714D47C2DEE4865AE6CF93539653C8E3CD276F962A2BA25D12A5B244ED5B5F4DC31C941CB9A119DC5A577B37E2ABC500431B8B49369D3E8DAEA2FA0ABB847CF6DA6D72BE915EAFD61123A5B57E30FC63695269DBF1DBA7BC2048D141F2B924F95349BAD937D085D4B4DF2B8DBE56EDABD9B08DB0645A7CDCCF1E1CDE6B5534E51DD55D6DBABB5EB46695024524052845E2949CEA49A4A14F75E2EFC2BFDC1A4AB95B7B6F7E91A69639479139369A93BB55E0BC37FF00635869272D0CF536B961251AEADDF8FA974DDFA69065A475D28F0A968FBAC0E12CAB2F78F1AEF134AA94BAD7A8E611AAC135A8586516A6E4972F57BD57ED0952916D47963CBCD74F9AFA5DF87E235D6E8E7A0D766D3658E484B14DC5C7247964ABD2ADD3F55B21E394631728CA2A6AE2DAAE65756BD3BA61122A2A82A82C652443474563EEE7CFCFCFB7272D575DEFC7A74A326A9D30DC5C5463A69CA58D49CFCD8C9CAB95A69B75E3B6DBFA4D714F4F2D1C74EF1CB1E5965E69EA1CDB5C95B4793E9DEECC258A70C709CA128C7226E2DADA54E9D7D0C92B51A618E9F1CF2FC2E12CC94251847165E5F3DF495D3B8A7BB5E3B1CF8E73C5353C727192B49A74F754CBA1C541E48AC8E518B7BB8AB6BF115A4C6508E9E707894A7269C67CCD72A576ABA3BDBAF4A22114E71536D46D5B4ADA5E25B8A4BAA6DFA3C09A21A24A2A72E47271B7CAE4A9D785FAC543A2A4A2E31E58B4D2F39DDDBBEBEA0BA8A0A1D0E834CB53FF000B97D87FB0FDEBC8BFCD5F0BF6B37F1647E0BA9FF85CBEC3FD87EF7E45BE6AF85FB59BF8B238F53CC74E0FB4D5FC92FA51F9AF9535FF00F4EFFD65FB4FD2B59F22BDA47E6DE5477ECF7FD65FB4E3FF00A8E93C57E3F35B92D1793A907B2BCD2900E812235A542A2C402452150D00E80690E8AA901D0241424348B510A089A06CAA25A025F501D0804300082874341454ACDA21A3668871232CC6368288100D21F284D488741410A84CA130218A8B68968048AEA2A2E2B709A9E5151D0B1DA2270A29AC80A009AC5A0A2A4848D3DC868116D12454B3366AD10D0114145D0344114520A00C90E8121B404315142A00AD8543B002428AA1D1511403622054143000A0A018408006109235822628D628B15A411BE346504746346E2C74E05D0F47047638F4F1DD1E9E086C75E314A4BCD38350EACF532C2A2797AADAC72579F97C4E599D395EE73C8F35193114D08CA048FDBFC95FD8769FDB7FBCCFC4523F6EF257F61DA7F6DFEF338F5BC46B87CBF47D1FC8BF699F29E55FE6BB8EFE0FFF00D713EAF47F22FDA67CA7958F9AEE3BF83AFDF89865FCE3897F310F651709CB1CD4A129464BA38BA68589FF00D9F1ADB68AF0DC0F4473A2BC10E3D502468DC5E28C5638C649B6E69BB95F44D7455EAF4EE566B6D3E7F80EBBBDC5926A78ADE2C989A4D4AB67BAE9E95D4E6FA474370928A6D349F475B3FA033445C52929A94953A4A554FC1BF4AF57EB332FA1A29E05A49C25864F3B9A71C9CFB46293B5CB5BB6EB7BDA8A8C2824D36A925B56DFB418064243043005D4B82836FBC94A3E6BE5E58DEFE09FABD646E1610C693934926DB7492F1116E3C8A128E44DB5CDE6DDC5DF47EBF1D80D1B9A877724D2849BA71A69BD9DF8F874146BC55EC68B559DE9A581E593C53C8B2CA2DDA94E9AE67E374DFE52104345A2522D275696C8250D53AB4C3C2BC0B9E29E350738B8AC91538DF8C5F47FA982E819A490D6DD36AE943BDABC02821DB93B6DB7E96ECADFC5B75B2B7D0514ABC6CDA1C8A29B8B94ADDA7F5B55EADEEC2334AC4D51A524953B25D780566C868D1A21FA906E084B9277CB196CD5495AE84A43A0A2B709AEBB15912C739C3165EF31BAB928B8F378F47BECFF0060A828A2285E3BAD8BA0A21A4F95C9B8AE54DECAEE97D214348740D2492BD8312C6B2A79549C3C545A4FF58E84D585958EB31CF1E9F2A9C6507DDB7524D6CD5A7BF81FBC7916F9AAE15ED66FE2C8FC235772D2E673949B58DD5EEDEDD0FDDFC8B7CD5F0AF6B37F16470EA7976E0FB4D67C92F691F9C794F57C012FF9CBF69FA3EAFE457B48FCE7CA62BE0497FCE5FB4E5FFA8EBF15F90655E71951D19979C62CF6579252A10EC465A021D0E82E91490A8A8955490E810ECA138892DCAB12EA05A13EA34140489A2A84D01014550D46C0CDA0A34712682528969128B4F6096A648868B910FA9194B44D16C922043620B08962285454D2A0A1D0D260D4341468E0C868091C76614303453A44C9D92309A54052009AC2489E86AD19C8DD7BC36431BEA264520AB1800242921D8BA91134145509A0241B1B2580206803A812348741410086C4109A0A2A8282A684531042A1D015410A8280680226D0335136C68B06D0474634658E3B1D38A3B9D22BB34D1DCF5B4F0D8F3F490E87AF821E69DB89ACB3C6A278DABEACF7354AA2CF0F59D598E6B2BCDCBD4C246F97A9CF23CD5750C120292233A123F6BF259F61FA7F6DFEF33F1748FDA7C977D88E9FDB7FBCCE3D6F13F76F87CBF46D1FC8BF699F29E563E6BB8EFE0EBF7E27D5E8FE45FB4CF94F2B1F35DC73F075FBF1308FE73C4BF9887B2BF61542C3F210F657EC2E8EF1CA9243480A45668E57CAE496C9D3653CAE58618E4972E3E669A54F7F4BF1E84D09A2B3A964964B4112030A2A2F0BC71CD179A12C98D3F3A31972B6BE9A75F90849F88E2EAFA6EAB7430843427B56E9DABDBC3D4545369B49D2EBEA00A54342ADCD31B51937724E9D72FA7DC008A8FD72BDD7A0789F24E32E58BE569D495A7EA68692F4846D9258A71B863E49735249AAE5AD97A5BF4BF1262AFF001024545065AC70E37A596479A0B229A8AC34F9A49A7724EAA9578BBDC84A8AE57575B0F93CD52B8EEDAABDD7E2F40657931E1EEF1CB139B7CA96453A5E76FD12DDAAADDF89151E449469ABB95F5F46C1B3AA8F2D2A7BB76FD2308555E25212292D9DADFC1DF4083C0D65A68C7491CD2CB1E69CAA38D6EF95756DF86FB53DDF533A0A0B19CBA519B5BD51AC912B954939A6E37BA4E995D233A0A348414DBB9C61516FCEBDEBC17AD928AD08C1CE55156E9BFC82A1D6C0C2EA686920A1A446743857A069B49A4DA4D53F5A18729135582186591ACF2708F24A9A57E756DF8AE8C2B6357074DA5D0868352B9F55FF000B97D87FB0FDDFC8BFCD570AF6B37F1647E13AB5FF0064CBEC3FD87EEBE45FE6AB85FB59BF8B238F53CBBF4FC3EDB59F22BDA47E73E5295F045FDEFF00B9FA36B3E457B48FCEFCA3ABE0CBFBDFF7397FEA3ADFF1AFC8B3C7CE67348EED4469B38E4B73D95E395030032D698D210C28A1A02920BA690516903468450914D082A90C9452001515414511434E86D0A821376218A88690C008CDA4C968B130CEB36828A68089A8A0A298241134265B25A29A92E04826135B3AA3192DCAE6620BA8A029A0A09A54143A0A0CE801D00359C9333713B7262491CF289BAFA2E7684D1AB444910400E8744100550F9422006D0501342A2C4C08A0A284002A2921D04450D44AA29440CE80B688680968545D09A08918E828224680120348B37C4B739E274E246A0EAC68E9C51DCE7C476605BA3A711E868E1BA3D8C30A89E7E8A1D0F5F1C3CC3AC4D706B15459E06B1EECFA0D72A4CF9DD63DD9CF9AC79D95EE612EA6F93A98B4799A4A46918928D60C20513F67F25FF62383DB7FBCCFC659FB3792FF00B12C1EDBFDE671EB788DF4FE5FA2E8FE45FB4CF94F2B1F35DC77F075FBF13EAF47F22FDA67CA7958F9AEE3BF83AFDF8981FCEDA76E38714924EA2BAAB5D0AA27037F06C6ADD72A757EA34A3BC71AAC1152CF14D41A6FFAF3E48F4F17E04A5B20A1D158B4A8145B8C9AAA5D771D0159D2C78A59B2C61057293A4AD2B7F4BD8CD964B089A1CE729CB9A5BB7E85454A51EE63150A9A936E7CCFCE4EA957455BEFEB20A2E71A8635C918BE4BB8CAF9EDBDDEEE9F856DD3A03973638C6A2B96F74A9BB7E2FC494001CA9E372E749A6928D3B6BD3E8DBFDC719351693693EAAFAFD22DA9EDF40E2034690C7CD09CB9E11E449D374E5BD52F4BF1FA132114822D477E86B8673C5963921B4A2ED3693FD4F61C1E2781B7DE3CEE5B3B5CBCB5E3E377F8878D479D73F372F8F2F500E47074EB64BA3B292124CD2312B3456C05729AC1628E1C9CF19BC8EB91A6B957A6FC7E8A23358D0D74763A1C629C9735A8DEF4B7AF5064A291AC2926DF35FF0055AE977E26691A6384A73508272949D2495B6C04EDBDC4D1AF246309A9B92C8A4928F2ED5BDDBEA9F4F033682C6738FF0036A5CD1BE6AE5F1E9D7E8F03392349221A2B710348D31777DEC7BD8B705F5CA0E9BFC6EF7145B8BB45693B52A4EFC4546D2964D46456B9A54A2946295D2A5B2F12541F2F353A7D1D15353CBB276BE829C9B8A8B4AA375B6E3481C4CB36A5234C595E2726A3097345C7CF8A955F8ABF1F43F02522D42E2DEDB7ACCA6B3B69349B57B322B9A495A56EADF45F49AB899C90595CDAE8F269F3C79A32E58C97345DA7B754FC51FB9F917F9AAE15ED66FE2C8FC4A72C78F4BA87930C73F361C8945C9C795F2BA95AEB5D6BC4FDBBC8B7CD5F0AF6B37F16472EA797ABA3E1F6BACF915ED23F3DF286AF8447FBDFF73F41D5FC8AF691F9FF0094057C2E3FDE7FB9CBFF0051D797F8D7E4FAB8D499C32EA7A9AD879CCF366B73D75E1E3598E8286911BD14143191654A2E24A46914555A068A8AD81A35159B44B468D12D05248B4894520A743A04524110D10D1AB44B41359D09A2DA13225A90182419B4A84CB689ADC8CEA1A1335E5339202402802010C541082874348A9A543A1D0E81A9E5151A522584D4D05141444D4D01540054F2D98C992D833A57D14B2196C866575340550500463669DDEC286C697B04D6328510E26D233604344B34689680CC28AA1D03529143510A09A49141D04D84264B45050353E0263684004B2C9610A869050D202A28E9C48C20B73AB123507462476E9D6E8E4C68EED32DD1D20F63430E87AD18D40E0D043A1EA38D633AC675E3F10E8CF9CD5FD733E8F88F89F3BAA5BB38F36A3CF9ADCCA48DE66323835A82D092294433A68FD9FC97FD8960F6DFEF33F1948FD9BC987D89E0F6DFEF338F5BC474E9FCBF44D1FC93F699F2BE563E6BB8EFE0EBF7E27D568FE45FB4CF95F2AFF35DC77F075FBF130AFE79D3420F46A529B52518F2C796F9BD3BF87FB9A618E39E4E5CB91E38BFEB72F357E25B99E0FF0087C7ECAFD8551E88F3DA75B0E848DF4D8E39734613C98F1465B3C9913718AF4D2DFF002158B58EEBA12D1ACE1CB5EBBA7E9574430CA6517193524D35D5354448B62ABBDD2AF5819B42A18D7ACA1788377D4B58E4F1BC8979AA4A2DFADF45FA993E6CB99B953AB5B757E8F50526D393A54AF65760871C6E791423256FA36E97E57D0D258258A18A73E5ACB1E78D493756D6E974E9D1EE1128D1235D1AD2A964F862CCD7772EEFB9E5F94AF36EFF00AB7D6B722314E4949F2A7D5D5D2F481A6385C1CF9A3B52ABDDDFA1789690B02879DDE36A979BCABABF0BF51D39B1E08A83C19A592E2B9D4A1CAE32ADD2F4A5E9F1F4162328A34485084A724A31727E84AD971419AA50B8B6BC092A81AF4066972DDBDB60AA668DC63914B0B9C7969A72AB4F6BE9EBE9F88969B76FA9193C78E79399C20E5C9172952E89757F40D5C5DA74D7A0490D00DC5B8F36F5756FD24B46B19CB1B8B8CA4B95DC69F47E91454652F3E4E2A9EE95EF5B7EB29183467289B4A2562C11CB873CDE4C7078A2A694E6A2E7BD3515E2F7E9E84C3A472A45A7CAD3493AF4AB438A4B994A2FA6DE1B856C69AD2527CD69D3F4AD8BFEAA4DEDE0AF63A1E95E4C3973E2C7DDE2C3C919A9E45CD6FD5B37BA7D16DE2462C92C4DB855CA2E2EE29ECFAF5FDBD4336A71CE30CBCCF1C26A9AE595D74EBB35D3A939793BC6B1B972F87355FE3354A1DDCAE2DCED54B9A925E2ABC7E9164C9296358EFF009B8C9CA31F43757FB119AC5A8C5152C9152928A6F76FA234C73C5CEFBD8CA50A74A12E5775B3BA7B599A45CF1C6196518E48E48C5D29C53A97AD5D332CEB26B6DCCA66F2E863344595C9AC5FF63CDEC4BF61FBA7916F9ABE15ED66FE2C8FC3359FF079BD897EC3F72F22DF357C2BDACDFC591CB9F97B3A17DABED759F24BDA3E07B7AAF86C7FBCFF0073EFF59F22BDA47C0F6F3FA3A1FDE3FDA739FE51DF97F857E5DAE5BB3CB9ADCF5B5EB767973EA7B2BE6F1AC9A02988C3A4A0028741AD24691211712C5D691299312CD46A25A25C4D284C2B3A1A0654505348AA1A43A08868968D1A25A0CEB368968D289688CDA8A1A062233A6C9188268E6224ECA259135341430068483946865445171421A086D087D47413524B469426826B3A1A4550034A80A4801AE610E86A26DF490D12D1B7293289065414534140D38A2A851468A254D64D12D1B3899B404D12D17414065CA3512F9474067540362226A445D0A81A91594D12C019343006908AA111022912522C35A43A9D7891CB8D1D9891B89ADF1C4F434B1F391C78D1E868E3E723A714D7BBC3E1B23D49C6B19C5C3E1B23D0CDB633A26BE7789BAB3E77552DD9F41C565D4F9AD4BF399C39B71C937B9156CA9751238AAA312A851658674923F64F263B764F07B6FF00799F8EA47EC5E4CB6ECAE0F6DFEF338F5BC475E979AFD0F47F22FDA67CAF957F9AEE39F83AFDF89F57A3F917ED33E53CABFCD771CFC1D7EFC4C34FE7ED2E38CB87C5A7796A2A314A5754DB7B6DE8EBBFEB151D3C178A6AF84775A8D066960CDDD7273C526F95AA6B7329C94D4528C62E2A9B8F596EDDBF5F87D091E89E1E6A88A349439395A9465714FCDBF37D4FD64C5159251972F24392A294BCE6EDF8BDFA5FA039DA8ADC522992CA88A259A28B93A49B6FC110D00431A9A9C9CE31E58DD3BB96EB65EBF1DFD04503DBC40A686BF28A8A105D22E2A9EC249B6690E58C67CD1B6D545F3572BBEBEBDAC8811BE9B0ACF99425931E24D36E792551549BEBEBAA5EB66291A44A2E0ACDA289C297791E7E6E5B5CDCBD6BC6BD66D4B99F2DD5ED7D68B12AF92783234DB84E2E9D4B75F8D0241148B8A2B342889AA745F4474E6E219351A0D3E9278F0A869DC9C651825395BB7CCFABF5118B5C5432E51A4BA6FE8F01244435C9C91A52E6B7CCEF66BC297E52A2FCD6A97D3E24D1482687B9345DF9B54BAD89A29289619AC51C92849426DA8C9ADA4D75A7E34679A38E19DF7129B82A7173A52FD5EB29C9D536E97457B221EE56E52F3724253C9964F2269462E2DF32F1DFC2858E0E73515D64E97D22ADCA51456B4DC7CF6E5BC978BDD8D21A455062D4D0A51A4A9DFA7D45D6E4B466B16A0698E5526AA2952ADBC45466B3A7CAE5749B495B697430C8B73A2339454946524A4AA493AB5E866595C9C546FCD4ED2F5916570EB3FE1337B12FD87EE7E45BE6AF85FB59BF8B23F10D76382E1B926B245CA519A7049DC696CDF86FEAF41FB7F916F9ABE17ED66FE2C8E5CFCBDDF87BB2BED359F22BDA47C176F3FA3A1FDE7FB9F7BACF925F4A3E0BB77FD1F0FEF5FED39FFEA3D1CFFD7C9F99EBD753C9C8B73DAD7476678F9579C7AEBE570ACA828AA1332ED29240D0011B8114892A258BAD226891113446A2CA28968B2648AD6B32909A1A445D5C4A2516566D4B2596C9688CDA8684D16D08336B2689A359221A233A9A01D0E889A968968D1A21A09A8A02A8540D202A828A150D2048A4825A121D0D21D063534268D3949681A8622A8D238EC1ACD203470A021AE243B1501B7D33B06AC48A033710A29850425B16992C1014C868B6CCDB01082C7453403E82008968545B40904450E8AE51510D66E24B46AD10D01143E51A45244359D0A8D1A26826A68A8A0A2A2841B6289D78E273623B31A3AF166D6D8D6E7A5A28F9C8E0C71DCF57410F391D225AFA1E1F0F351D5AADB1B33D043CD46BAD558D9AACCAF94E2B2DD9F39A87E733E838ABF399F3D9DF9CCF3F3758E76090788D1CD74D1690922E2826AA28FD83C99FD8AE1F6DFEF33F22513F5EF26BB765F0FF0078FF00799C7ADE23AF4BCD7E85A3F917ED33E53CABFCD771CFC1D7EFC4FABD1FC8BF699F29E55FE6BB8E7E0EBF7E261B7F3E60FF0085C5EC2FD875C70E5CBA7C7277DD73B845DAAE674DAEBB786FD0E4D3FF00C2E2F617EC345B33BC793979691964D36A14A1378F26395A9425BC5AF14D7ED23ABDD875DC6562A4139479B964D732E5953EABD0FD43637187749A9B736DF3479764BC1DF8F8EDEAF5959D4A7158E77CDCEEB95A7497A6FF001139B277B252E4842A295423CAB65575E9F4BF1652A57693B4D7D1EB2248A688679E3C6E11E54ADBBE44DEEA9EF5755E1F8FA938D43BC87797C8DF9DC95757BF5F115150E5535CE9B8DAE649D36BC69FA41A1CE728AC4A5278D49CA30F5BDAEBD34910D5369A69AEA997094B1E453C6DC6517719274D35D1DFA453729CE529C9CA526DB6DDB6DF56D85D4AD8A5B9A6255833BEFF00BB6E29776A2DBC8AD6D7D12557BFA8BC1A6C9A8B58A3CF2E68C54135CD27274945757BFA0825E29E3AE78B8F32B56BA971DA9D274FA3F114B1CB164963C91719C24E328C9534D6CD3F5951451BA7DE6494F9230E66DF2C15457A92F41AA44E051E492695ECD3F1FF00F3DC6891622925CAFADF8172E5E6B845C62FA26ED9291695959A210E7C918DC63CCEAE4E92FA595DEC963942351849252497D753B4DFFF000140925D43151F5D2DC728A8D553B092E49269A96C9FFF0005EA258A796F04250852F3652E6775BEFE8B232CC68B4A0F0A552EF2DDBB54D7857EB2B14FBB5913C709F3C1C57327716FC557884D4A5B0E18FBC9A8F34617FD69BA4BE9634B613409593E84B469288946DD15A95951518D9A64C4F1E49425CADC1B5716A49BFA56CD045156D2512F97D46918DADD1A3B949CA4DCA52DDB96ED95CAF273B892D53E86CE26725462B179232724B2C9E283841BDA2E5CCD2FA7C44E2D349AF0B1EC0B7666B179172599E58D7A0DD2667963566567279DACFF0083CFFDDCBF61FB7F917F9ABE17ED66FE2C8FC4B5B1FF00B1677FF2E5FB0FDB7C8B7CD570AF6B37F16473E6FA7F84BB2BEDB59F22BE947C0F6F3FA3E1FDEFFB9F7DACF915ED23E07B79FD1F0FEF7FDCE7F31E9EA7FAF93F3AD6AD8F232ADCF6B571F34F1F32F399EBAF8DD3E4E76892E44D197A252A0A1D0D448DCA9A1A2F90496E1AD5C0D628CE26B146A2E9D12D1AA891246975934388DA0488BAA48608612D144B45A13418B59B42A2DA2433A89221A349221A233A918C122268E52651354889206B2A1A89543894D2E4D8968D9F421A21A948690D21A419B4D22A8122E8316A2899235A25A09ACAB7348CA8971242EAE52B020026B968545D0A8DBEB6A6845342A205630A15043A048690151322196C12033A2914E24D005051490D44A9A8A0469C84B89112C43684152C9A2DA1244134348AA0A2A25A25A34A0E520CB94A8A1B5438ADCB135B62476E289CD86277625D0E9C59B5BE286E7ADA0879C8F3B123D7E1D1F391B8C5AFA3D0C3CC44711DB1B3A7450FE6D1CDC51D6365B5257C6F157E733C0CDF5C7B9C51F9ECF0F2ADCE1CABBCF0C0711B408C16AE26B146713581535A451FAE7936FB19C5FDE3FDE67E4A8FD6BC9BFD8C62FEF1FEF33875BC476E8DF7AFD0747F22FDA67CA7958F9AFE39F83AFDF89F55A3F917ED33E57CABFCD771CFC1D7EFC4C3A3F00C58A78F47A7738B4A78A328B7FD65D2D7E34FF2013A7FF85C5EC2FD85D1DE7878B95F75C612942524AD46B99FA2D9AE1C78DF9D3729494A358629DE45E34D74AFF7314690C93C5923931CE509C778CA2DA6BE868AC5ACA5E2D2A5F493E26D8B2CB04D4F1BE5924D2D93EAABC7D4CCF97CDBB8F5AABDFF0027A0ACEA5F425A36C53961CB1C91AE684935714D5AF4A7B3FC6652EA5350D0516A3CEE952D9BDDD1281A4ED6CC453E8144348A837192945B524ED34E9A7EA62A2A2175B639479E52C8A536D3A7CD4D4BD2FD3F478FA4A4E4D28B6A93F411146B0A569C79AE2D2DEA9F83F5FD00D6B8CDE3133879D2B518C55254AFD1EB3A2113512D3EEE514B9934A4AD7AD151415654535D3C0ACDA968DF0E9B1E5C59653CF8F14A10728A9DF9EFED5578BF5EDB18B44B93E818B53C9CD35149B6DD25E9612838B7192A69D3F5307D4088BC727184A29B4A556BD342ADC23B14A5E6B8ED4DA7D370CD0818D09811264F5E854B6A613C93CB9253C92729C9DC9BEADFA4D2EA3A3A66D8E37D46F3E49E08E16D7771939A5CAAEDAAEBD7C3A7437EFB26A1A79E73C8E30508B93B6925497D08ACF2E41F2CA5CD18471AA5E6C5B6BA75DFD3D4394A8C4AAA0E3CB93268C32F5D91D5230C88C573EE72BEA6F8DC1E2929636F26CA124E92DF7B5E37FA8CB97736823352D5286C6396075C16C2C9894B6B4BE9329393C6D746B439FF00BB97EC3F69F22DF355C2BDACDFC591F8E6BE1FF60D47F752FD87EC7E45BE6AB857B59BF8B239F3F2FAFF0081BBC6BED759F24BDA47C176EFFA3E1FDEFF00B9F7BACF915ED23E13B70AF458D7FCD7FB4E57CC7B3ABFEAE5FB3F3FD547CD3C6CF1A933E87518BCC3C5D563A933D6F81D3E4F3DA151ACA344519AF571E4540874223A4AAB1508A456E5544D6067136822C5D5AE84491A2444D1A5959301B4485D521928B4825A075609149073B50E24B46CD19B419D66D11246AD112443598D0304889A76260206900E8282680A1D0E825A4914902452418B4245A4114525419D0E24346962681AC5A21A369233681A8A02D44033AE4A0A2F9428D57D8D64D0516D0510D4D6C2A2E8718D94D4A4268DF9291949019D14A2145012D10D172620122932582612D684345206833AC9A268D5A25A0BACDA029A150340A87400D1400309A868705B8DA2F1C772C4B5D186276E3548E7C11D8EB823A473B5B615BA3DDE1B0F391E2E15E723DFE171B68D473B5F47A55588F3B8BCAA0CF5302AC4791C61F9ACB4E35F19C4A573679191EE7A9C45F9ECF2E7D4E15E9E3E1934090CA48CAD38A36822231DCDE11D8B19B4D44FD67C9BEDD99C5FDE3FDE67E5091FABF938FB1AC5FDE3FDE671EBF88EDD0F35FA068FE45FB4CF95F2B1F35FC73F075FBF13EAB47F22FDA67CAF957F9AEE39F83AFDF89CDD9FCFFA78B5A3C2DA69382A75D763586373B769526F775D0AD2CF1CF83C2197BD9658C60B0FF39E6C22F7979B5BDEDE2BF18B7D93F03BC78395F70921D170C4E528A5E7397449DFE2FA4ACB8BBBD9CBCFE66A50A771AF4BFCBF90AE56B0689A35A5E24BAB7FA8ACEA68528C79555DF8EE58A3CAA49C95A4EDABEA8A6B394651A5255D1AFC62B7CB57B5DD1D1ACC7CBAA9FF0031F07527CF1C5CCE5CB17BA56F77B35BB31A0BA4A5285D49AE654EBC57A0896FD7E83594396317B79CAC8A22E9E5C9DEE473EEF1C364B971C7963B2AE9EBADFD763AE59349A95746BA30C707926A29C5377BC9D2FCA11DC2EB694631C928C6719A8BA528A752F5ABDCA8EC4C11A24DCAD85D7461475257D11CF853555E0764139CADB6DB76DBEAD9A8CDA4A3EA1CE294DF236E37B36BAA3650D88944D316B268868D64889469ECEFD6659B4B0431CF5108E6C8F1E36FCE928F357E2224B7D869B8C935D53B41D777D5EE134959482A9ECD3FA1F41B4B6A77B2F0ADC21A34FADF39A8CBE9DD7E33345E5E5E792C4E5DDDBE5E7ABAF0BADACA9ACB6F1DC9A35CD2C6E4BBAC6E09452772E66DD6EFF1FA3C0CE2FAEC9DFEA06AB1C13BB928D2B5B3DDFA0EAC5824F13C897991928B7EB7D3F6330C71F13B30E0C93C33CD185C31B4A52DB6BE9EB2B972E4396C4D51AE28C6792319CFBB83752972F372AF4D2EA4BE8579EF262D6E679637BD1B497A030E3597518F1B56A5249AE750DBE97B2FC662A4AE06B734819C938C9A7E934C69CBA18AD37C6195521C135D51538392D9366359797C417FDDFA9FEEA5FB19FAFF00916F9AAE15ED66FE2C8FC935F70E1FAA6B67DCCFF633F5BF22DF355C2BDACDFC5918E4FB1F97FBF1AFB5D67C92FA51F0DDB457A5C6BFE63FDA7DCEB3E497B48F87ED92BD3E3FEF19CEF98F6F5FFD5CBF67C76687F3678BABC7E733E87242E0793ABC5BB3D3AFCC70E58F132428C9C4EECB8CE79403D7C79B071151AB893CA4769C99D0D234E5150749C8451B4119451B40B1AD6D18DA23244B8CA9113959A595849126922186B422D108B412D5243121D073B49899544B0C5A86432D90D0350C45315117405022904D2A15161412D4D0E874348336924524091483369AD80115419D49490514904D44A266E26ED09C4277315103650009AE0685468D13457D8D4342A34E51F205D428951545550206893D8C25BB3792D8C6481A9A06021AA89021B4090D080AA13419B4D31B122826A41A2A8397629ACF94394D283C02EB2689A349222826924550D21EC0D456E698A3B8AACDB14772C66D756089D2919618EC6D4748E56B6C1F5C8FA1E14B74781A78F9C8FA4E130E858E76BE831ED87F11E17199AA67BAFCDC3F88F99E353EA2D6B8F97CAEBDDC99E64FA9E86ADDC99C13EA71AF571BECCCA88A8A8A325AD719D10473C0E8C6CD466A9A3F55F273F6378BFBC7FBCCFCB0FD4FC9D7D8DE3FEF1FEF338F5FC477FC3DF7AFBFD1FC8BF699F2BE55FE6BB8E7E0EBF7E27D568FE49FB4CF95F2AFF35DC73F075FBF139BBBF03D3457C0713B5F5A9578F42DA56945B95D7856FE833D2DFC0F0A5F68BF61AC56E778F9BCEFBD6AE12C39A5095C65074D78A6BE82A5CAF1F339373E6FADADAABADFA6FC021B45A5B27D50371E469C6E4DAA95F4F4EC571BC99344F2B94928A6DBD925BB668D6C4AB8CD34DA6B74D3A6986750E2C968DF249E49393518B7E118D2FC866E253598A8BE5134174F0E48472279A0F2E349AE552AF0DA9F853DCCABF29AE5C92CB28B9D79B1505492D92A5D3F699B44594917140B1B4A2E49A5257175D4D6118776EF9B9ED574E5AF1BF1BE9FAC352AE0A1DCFF005BBCE6E94B9796BF2DDFEA36C185E5591A9E38F770E76A7249CB74AA2BC5EFD3D1661147461CB931E3C98F1C9A8E5494D57D724ED7EB456B5D1A58C1E48AC927185EED2B6BF11D9817475B9CBA68367A38A96170E48DF327CFE2974AFA3DC6E33693564385B3A7CDEEDDDDDAAF47ACC24A8AE76B1C91A32923A24D546AF993DEFA7A853CF2EFB2644A38E53BF36114A2AFC127D119ACEB95A268A94AFA97930CB0E49432C5C2714BCD6B7DE9FEC76435329CA6A0A72B508A847D49787EB05422A9AEA8A968454B91E38D7373DBE6BAAAF0AF1BEA0B749578DD84A3D5A4EBA5D15359CA3B751456E555958DBC72E670538EE9DA756D7ED097936C1827965CB8E3CCD45C9EE96C95BEA6D8945C7A6FE0610E9474417A0AF3F3E4DDE1962AE78D732B5EB467257F8F62D46728B928B6A3D5A5B2FA48528AC91738F3C534DC6EAD7A0571B5154E9EDE02CB15C8A96FE2549C799B8AA57B2EB40D5A3148F3B345B91BAD4467A2C18961C58E58B993C914F9B25BBF3B7ADBA22732DCCE3D4E76BA4AE8849BEBBBF59BE4E558D384A5CDD1AAAFD673C16E74579A62D62D79FC461FF766A9FF00C99FEC67EAFE45BE6AB857B59BF8B23F2EE251FF00BAB577FD8CFF00633F52F22DF355C2FDACDFC5919AFB1F975FEDAFB4D67C92F691F11DAF578317F78CFB7D67C92F691F15DAD578B12FF98CC5F31EFEBFFAB9FECF9970B81E6EAF16ECF6942E079FABC7D4ED2BF252BC1CB8CE59C0F4F3C3738B247734EFC79395C4868DA48CA483BF1E4864B45310769C8E28D22888A358963A4A64C8A7D09656E566C9654880D69AEA5C48452096AD14894520E769D132459322B16B2643468C9A06A1A13299245D21A048A481A122A848A419B4A828B481C431A90182444D08B4248A48ACE8A2902896A219D4A4350348C0B50231AC9400D79409A9AF25A151741CA69F6F4A28A695025400D66D0BA1A344340D4B666CD5C49710B2B268545B40A21750D0A8D5C49681A9A15174C28336A544AA1A43A0CEA686141455D431594D10D157499345D07290D4886D081AB8AB3AF042E8E681D9811A8CF2AEBC70D8A63874091B71B5D1A5FAE47D370A5D0F97D2BF3D1F4FC2FA22B9DAF6F23AC3F88F94E333DD9F4BA89D61FC47C9F169DC992B7C6BE7352EE4CE492B3B33AB93399C4E75EAE359729490DA0442D5237819451B41159B5A23F53F275F6378FF00BC7FBCCFCB11FAA793BFB1CC7FDE3FDE671EB788EFF86BFDD5F7FA3F917ED33E53CABFCD771CFC1D7EFC4FABD1FC8BF699F29E55FE6BB8E7E0EBF7E2737A5F83E8A4E1A1C5CAAA4F1C77BF0ADD7E33BA1A5C5A8D662C1A7CB15DE28A73CED4231935E75BF049F89C3A34BE0583FBB8FEC3AE38DE3C519B6AF226945C6FCDE97E8EB6BD3B1DE3E4F52FBD3C18253E78C20E6E29B6E3BD25D5FD1EB21C773A34B18AC896494A1093A94A3D52F1DBC7E8F133C90A9BAB71B74EBAA2BCD692863EEA7CC9B9579BBECBE9399AA91D2D79A60D79C0D15B12E2CD9F9D5692A496CABFFC652D2E69E18E486394A129F7716BC65574905D72D0F91D5D3A2F96B66BA15BA834AD2975DFA835CF3A72B4A97A08A35923368372A94274F66D4526EB7514FD3E8DDA2920C3973471E4C38A53E4CA977908AFAE5176AFE8EA1141A9578FD68EBC71C71C2DE48C9CE54E0D495256EED7FF00D8E68572D72BE6BBBBDABD15FEE6D8D737A36DC35AF4387461932471E49AC4A52DF24ADA8AAF42DCEEC71DB7EBE8383491A923D658D395C1DDB6946B7AF03A463951DD4250C9394F925149C63CBF5CFA57A8E49ABD8EE947D3B27E272644B99A6FA74669CEF2633C5258DCEB64D27F4BBAFD8CCEE1CAF9936F7AA75E1B7EB349EE6133159D60EEC2D972AF0A2688684C776ED94A170725549A5D77FC810846526A52E549377CB7BD6CBF1952D11DCBDDC1ADEBAB57B11129867B93D0A5924B1F76A52E46F99C6F66FD35E90514F9AE4952B569EEFD03791CB1420D46A174D4527BFA5F8958BC978B954A2E71728A6AD274DAFA7C0EBC18BBC8CE5092B524A38DEF295BDAABABF49C51747460C92C7352849C649A69A74D32B9DAE95925A79CA32E683DE324D6EBD4D339A4EDDF434CD39E5CB29E49394E6F9A5293B6DBEADB312573A7156CDA4AA0463493DCD649B462D48E1CD06D375B23185F31D9394A309C549A8CAB995ECE89D1E8B2EAB26458629BC7079249C92F3575ABEBF475395AE929C31D56E9DABDBC3D46AF7DDEDF413046891CEB9DAE3E26BFEEAD5FF713FD8CFD3FC8B7CD570AF6B37F1647E6BC4E1FF746B3FB89FEEB3F4BF22DF355C2BDACDFC5907DAFCB7FC2BED357F22BDA47C5F6A95C317F78CFB4D67C92F691F19DA8FADC5EDC8C72F87D0EBFFA79FECF1231F34E2D5C3A9E8C23E69C9AB8ECCE92BF20F0B511EA706547A9A98EECF3B32371D78571CD18C91D134632457A232649724432BACAA4CB8C8C932E257595A592C0195B951224B6486B421A121D04B551EA688CD169873B4D8985830C6A18A86FA84412A25121A3792466D05D4A18BA003548B4884691418B4C1850504D4B043A1A44674245C50A28D6283369C625A88E3134510E76A6312F9762944742B3AC9A034680C9AF1E8740348DBED6A681A2F941C58359D0B94D395FA07CA45D67C84CA26CF633930B2B9DA048D1A1341750C28AA1A8866D4728729A5028867B91CA2A346886135343A0132ACA9689A2E828AD6A3941A2E81C41AC5A268D6489A06AB1ADCEEC113931ADCEEC08D4639574C764449EE5F810FA9B71B5D1A45E7A3E9F86ED147CEE8E37247D1E85545073B5D7ABC9588F96E252B933E875B92B1B3E675D3B9315D785797956E6124746439E461E9959B56248BA0A216AA08DA28CE06D14562D3A3F52F277F63B8FFBC7FBC7E5C91FA8F93CFB1DC7FDE3FDA70EBF88F4FE16FF00757DFE8FE45FB4CF94F2AFF35FC73F075FBF13EAF47F22FDA67CA7957F9AFE39F83AFDF89CDEB7E13A55296834CDC128AC6A2A4A356EAF77E2F7FD874E38FA8C341094F49A78C1394A508D452B6DD7A0EBC713BC7C3EAF2F7AB51D87DD597186C6B81414A5DE464D72BAE56953F07F47A83CB7939E78AA072B8F9C7AB913C506F9232B4D79CAD2B5D7E93CEE4F382CA4922A6F9E315CB15CAAAD2DFAF8FA4D3BAF353A1F2D2655EE618F04B2648E382B949D25D2D89C291D583264D36659313519A4D26E29F5FA49962F3574DFC3D1F4859C9C138EFB113C528C14DC65CADB4A54E9B5E1674CE152A62CF9B3CB4F0D364C993BAC4DCA18A4DD45CAADA5E97483A4AE584A51771938B69AB4EB67D4D2288513A218324B4D3CF18DE3C728C64ED6CDDD2AEAFA30D4A98F536C7F5CAFA18C534DA69A6BC0ECEE238DCE33CD07250528F77E7A9374EAFC1A4DDFAD3456B5DFC3F1F3E48C5B4ADA567A6A0E136BC53A38B491C71C38678A537977734E34A2EF6A7E3B1E8464F23B95B6DDB6748E7CAFB8924E3BF53872FD76E77E48F9ACE378E5CCF27229C31D4A6B9AAD5D7FF02B16B9A4CC721B6569CDB49453E897819CA368CD635CEC4D97244C24E13528B71945DA69EE9FA41DC7076304BF596E729BB9B727495BF42E819B492F02FBB75BA0C6E9BD93B55BAE9EB5EB377924B13C7FD56EFE8619D733544D34B9B6A6DAEBBFE434922391584D08E8C5E064A274E0E58CE329C652826B9945D36BC527E05D6689D39371549BE97744F2B6F657F41AF739258FBD58E6B0CA4E31935B5ADEAFD3428C24A5E2BF51358B5B695CB179F0ABAA7693B5E2832C9E4C9294AAE4DB75B2DCD634B1462A29357BD6EEFD239F2E68638D3528DDBDAABC3FFC673B535C191753350F3BA1D33853A3371A672B574E26D18918A29A937249AAA5E935835CD68C566B9B8A46B82EB7FB89FEEB3F46F22DF355C2BDACDFC591F9F7196E7C235D2F1783237F9ACFD07C8B7CD570AF6B37F16423EDFE59FE1C9F6BACF925ED23E37B4FD317B723ECB59F24BDA47C6F69FA62F6E46797C3E87E23FD3CFF0067938FEB4E6D52B4CE8C7D0CB50BCD371F8FD787AA5D4F37323D6D547A9E6E689D23AF1AE19A32923A268C648AF471AC5C6C89C68D5EC67924576E2CAE8A8C8CA4F70522BA46EA436CC9487656F4DB1058034E25EC66995612D521928A0E769D8087418D4B1229A15034C968AA130D6B36090DA0481A691AC511146B18918B4828BE50A0CEA2828D39439426A51AC51091A41112B58A348A2611344839D348743430CB39202981355E3F28D229447CA6DF5F4A8A8C2C28A8BA21A4F1D19B546D296C65222EB39193EA69221A0B2A0286D006B4A8A51048D6302B9F2E4CF90746BC82710E379B1923368DDC4CE510B3931622E4886574942565A80A26D1456B51C827135D896175CF28935B9B491140D5625B9DD851C9896E7662D91A8E7CAB57D08F129B256ECD396BBF45F5C8F7F4B3A823E7F49B347B3827500C5BEE7AECBE6B3E7F54EE4CF5F593B4CF1F3EED875E15C7346124754E273CE24AF44ACAC2C4C1192D69066F030823A208AC5AD12D8FD3BC9EFD8F63FEF3FDCFCC6CFD3BC9EFD8F63FEF3FDCE1D7F11EAFC25FEEAFBED1FC8BF699F29E55FE6BF8E7E0EBF7E27D5E8FE45FB4CF94F2AFF35FC73F075FBF139BDAFC37875AD1E0945B8B58E34D3A6B63D6E15A386AF598F0E4CD0C119C945CE6F68A7E2FD4797A358FE09A7EEB9DAEE617CE95DD6F55E1E83D1D2E39E4C8A18E2E527D1455B6779E1F9FEADFEEAE8D5E2C7835593161CB1CF0849C639229A524BC51945D4AFC41C8517B879EF9699B24E585637297226DA8DEC9FA6BF11C918F9DB9D6D73629EC9BAB4EEABDE73ADE5E080D1A72F39BB7B757BB1C611F39CB7A5B24EB7141734D25D5B491AE44E12946497345B4E9DAB5EB5D41AC79635EBBA4ABC0994363B34DF04EE33FC216579B912C1C95CBCD7BF35F857A0CE50B40D71E7EF1E18A7051C6FA72C6949ADAEFC5EFB9C795CA72B9CA527495B76E9743D17151945CA0A694AEA5752F56C71668F9CDD55BE8BC03A71AE6686B62924FCD692B7F5CDBDBF2095BF02BA6AA3D6CE9C6BBCBE48B6E317275E85E272A3486CD15A95ED68778A3D7C34D4528D3F4DF53C8D04BCD48F5B0F81B9E1CEDF7699E1258E3E6B519BA4DF46D753CAD579B92506E2F95B569DA7F433D5D43E68F26DBBA56E923C9D64E53D449C9A6FA37F46C5639573BDD8D4F91DAAB4D356896C4DA32C6A72C9E4C929B514E52726A2A92B77B2F05EA08E494304F1AAE5C8D5DC537B3B54FAAFC417E6B8F2ADDDDD6FF0045FA087E8226A92F36CAAA49ECFD426D4A5718F22F45D971412D3822DC5B1C6068B18D62D60E3E9096354B76A5D5DB54D3E94BF2DFE2357017712F3A5DDB8C22D5BA74AFA7E5A634D4F77CB2AB4FE87674E1C69C3A5FA3E92210475E2F92E5E55D6EFC49AC5A98C5C22E3BD3EA81CE725084A5270826A116F68A6EDD7E336EEED0B931F2D4B9F9F7F05CBE15EBF4FEA25ACEA5275D0CDBDCEA5508BB472E46B99D6C8E7688919491737B9AE5CF85E871C2387973C67272C977CF16957E47661A8C2316926D34A4DA4FD346D0FAE473A97AB66ECD935B5377E266A54F15FE84D6FE0F3FDD67E85E45BE6AB857B59BF8B23F3CE27BF03D77E0F3FDD67E85E45BE6AB857B59BF8B211F6BF2BFF0E5FBBED759F24BDA47C7769FA62F6E47D8EB3E497B48F8DED47D6E2F6E46797C3E8FE23FD3CBF678F8C9CEBCD1E36199F9ACD47E39E4EA63D4F333C7A9EAEA7C4F373789D23A71AE0C88C24746539E469E9E2C64613379984CAEBC58B12299257495698D108A456B548743434AC26950D22B906A219BC8451540916A3618B5143A3558F613806759D0A8D3941A06B3A13469CA2682CAC5A0A2DA15117444DA267146910CD582882283369509944C81A46D8D1CF66D8E5441D5148A328CF6344473AA0B10C6B04C07406755E6245514A03713ABE97733689668D10D117B936265505117B99B443546AD1120D4E4C99345B40A217B95089BC23B1108EE74420579F9F347207767428072079FBDCB2C7B184E3477CA073E4806F8F2714D19B4744E062E21DF8F228A368A338A37822B5DC968868D9C497107730922797736689E5DCABDCAC48EA82A4638A2742548B1CEF2293145EE12143EB8AC6BBF4BD51EAE39544F2F4DE07A117E69631BEECB552B4CF3B26ECEECEECE29ADCAEBC6B9E4B630C88E8C9B1CD9192BBCAE79A2515325195B5AC19D58D59CB8CEAC5D0316AE4A8FD37C9E7D8F63FEF1FED3F32933F4DF279F63D8FF00BC7FB4E3D6F11EBFC15DE75F7BA3F917ED33E57CABFCD7F1CFC1D7EFC4FABD1FC8BF699F29E55FE6BF8E7E0EBF7E2737D07E1FC365CBA1C34A2EF125BABF0FDA77E09B83E68C9A6BC51C1C3A2DE870EE95624F775E07A7A58E7C785EAF1424A18B2462B2D2A8CF7697EA6FF11DE787E77ABFE5539323C9372936E526DB6FAB6FA845EE4CE4E537293B726DB7E96C49EE1C5B37E6D18AA52769BDB6DEA99A7F54CFFAC41B6D515169ED6F6E8FD1EB1C9EDBF81302A4C21A8B8E47192DD3A7BD9A3BE8650EA754638A508F34E519B9A4FCDB4A3E9F4B7EA08C33B7DD460E4F95372517D137E2BF22FC871658DA67A5AA695E184DCF1464DC76ABF0BF4EE92D8E3718D4B9949BE57CB4FC7D7EA2B5C6B832462E4DC138C5BD93774BE921AA3AB241496CB7AAAF48B5D8E519C5BA69C535251E5E65E96BC3FF0080EB2EB96B64F7BF13A714DE5C50C5505CB27252E5F3A4DD6CDADDADB65EB672ADF635C72E47CDBEC56E57B3A0AE58FA7C4F6302D8F1F4D8FBBC8A1CD193493B8BB5BA4FFDCF6F079914E933A4F0E77CA73C5B8375D0F31470CB35E76FBA8EF3506949AE9B5F5775F8ACF535195C539527EAAD8F0B2DCB2546DB7E08562D4F9D55B5D17A8C78E395F73394E14A9C972B7B6FB19A75D439ACCB1A9A638C4AA2A3717644D0A0E8DE6B1CB2B78A32843C149DB5F4B222ACB8ADC9ACDADB1E172C33C8B96A0D269C95EFE85E3D0DB069A59F9B96504E296D2928DDBADAFE931C6B6345D49AC6FBB3CF8A58B24A32FAE8B69EF6B6272E4CBA89A9E6CB3C928C541393E915D17D08D671B5BDA4BC68E7DD0D2D6914FD076615E6F46650D464C9A7C78A7372862BE48BFEADBB675618DA5E826B1C96A1E6F4329AAD9EE8EEEE5F70E76B669578992C58DC324B24DC5A4B9172DF33BE97E1B6E6351C72DA35673CBA9D39692552BBEAABA1CCE9CA9BA3356329589A83C3394A75355CB1E5BE6DF7DFC28A9C5DF5BFA0C6683712A5BD59B419863C53CB9A38F1AE694E49455F56FA1B72CB1CDC27171945D34FC1A2529F126FEA1EB55F4D3E4FDD67E89E45BE6AB857B59BF8B23F3BE22AF81EB9FF00FB7C9FBACFD13C8B7CD570AF6B37F16448FB3F95FF008727DA6B3E497B48F8BED5BAC78BDB91F69ABF915ED23E27B5CEB0E2FEF199E5F0FA3F88FF004F3FD9E2E299791DC4E6C323A1EF1351F8E8F3B52BA9E6E7EA7ABA95B33CAD4789D63A7170E539E4CE8CC72CD95E8E2CE663246D23365768C6488A3692279437A848A48AE41F2953444D20898C4DA110CDAA51D85CA6AA03E50C6B2512E28740135A2AA25A4087444B52D10D1AD12D0359D034550F94ABAC5C49A369448682E9451690922D220686218643224509A0A82E24D151441B6367444E781BC09AE75740914869118A4A206890111C2A2268D397625A3B3D9DEC5A21A367121A22F7B2A0A2F94394877B2688944E87121C03539B9DC4A8C4B702A302979AA11368AA26312D6C1C395D5A0624C76184C8C671B3666722352B97240C250DCEC9AB33EEECAEB39308C0DA3066B0C26CB0FA81DEE6E41381D6F1112C6353BDC6E0358FD474F7638E32AF7B28428D2B634501B8159EF734D0423B9B3C6563C5B94EE6FA75D0ED4FCD39F0C28E9AF34B1CFBBDDCF97730703A668CDA34E9C7938B3468E2C88F4339E7E67466BD1C79309892093DC7132D7734823A20B632C68E984360E779219FA7F93CFB1EC7FDE7FB9F9AB81FA5F93E55D9F87F79FEE71EB788F6FE02EF3AFBCD1FC8BF699F2BE55FE6BF8E7E0EBF7E27D5E8FE45FB4CF94F2ADF35FC73F075FBF130FA8FC4F87C2F87E9F6FF00C38FEC3BA3966B0F74A550DAE2B64EAEAFD3D5F539F86C13E19A77FF002A3FB0DEB73B47E6FA97FBEA64E96DE22E492E6E64A0D454AA4E9B4FA55F51C859B5797361C5866E2E189B717CAAF7AEAFABE8ABD1E0561A62E59CA2B24B922DEF2A6E97A697521F5D822D776952BB6EFC5FA8718DB222F126FA0DBF02F2609E09BC79612C738F58C9535B5F43361151ADFD3E05465B91D071DD9117BBEA4CB6768D2B6DFC0322E49D27192A4F6F5AE8548E69460DEE9D5783F1F031CD8F1F70A9CBBD727CC9C572D52A69FA6ECE871A33CAAE235D25703853DD025F88DA51B1C25DCE784F04A4A51A69B8ADA5E3E9D8D47495E970E5CDCAFD08F770AB8A4F63C4E1DB51F41862F9537E26E7872B7DDCBAD8D42FD278DDFE5D2EAA39B0E4963C907719C5D34CF735CBCD7F41E1658B9656A29B6937495ECBA8B59DF74AC737C89425E7A6E3E6BDD2EB5E92F9296C24E4D42E52F35547CE7493F47A0DB2C2585F2648CA12A4D292AD9F898D4A982A9734973462D732E6A6D7A053E596493845C60DBE58B76D2F057E253C6E32A9AA6BC3E9296372B693A5D5D6DF949ACA63B742D205D559B4BBB7CBDDC5C6A294AE576FC5AF47D066D66AE318A8C395B76B7DBA3349454774EFC76230F2C54B9E0E4DAA8D3AE577D7D7B58FE933ACEB3C926EF7D9F5465E26D269C2B955DDA7E2BD4673C72C724A55BA4FA8D46D831C9C5E45CBCB16934E4AF7F42F13D4D3A525D37F07E83CBC4ADA3DAD0C22A09BDDB7F90CDA95ACB138E25269A52E870E75CB67A59F7C6ADC9F2DD2BD923CCD5489A8E5B4DBE66D2AF039E4E8D323941F2D34FD06127B95A81CDF819E7C9DE6573E58C6FAA8AA5F90A6653EA46A0D9F535C693492FA0C57A0ECEE71C3247BACCB2C5C536D45C69BEAA9FA3D2296FB171085F02D726E9474B92B6FFDACFBFF0022DF355C2BDACDFC591F0DC462BE2F6BDFFF00B6C9FBACFB8F22DF355C2BDACDFC5911F67F2AFF000E4FB5D67C92F691F11DB075831FF78CFB7D67C92F691F0FDB375A5C6FFE6333CBE1F47F11FE9E7FB3E730CF73AB9BCD3CEC33F38EB53F34DBF1D186A65767959DEECF4B3BB3CDCEBA9B8E9C5C3959CD33A72A39E48AF4F164C866CD10E25748C9A1A45720515745072948A8A09694626D0884626B188D62D5463B0389490DA26B1AC5A259AC910D034451A7293146890D353CA4B89BA892E234D61CA3A2DA2686AEB3923368DE48CE510BA845A4248D22869A490E8B510711ACEB3A0E52E8282EB37004A8D6B621ADC9A6AA06D03282378232C55A2D22628D23126B9DA69016A203535CBCBB11289D2E067289D75BEE73CA24389B4A24F28D6A7264A03E4365007026AEB0E525C4DDC05CA55EE73B80D468D9C496A86AEEA56C272093329482B4E72948C398A8C818D5B258263444438D8D40D230B348C069A9840E88E3B42840E88446B17931962329633BA51D8C6511A9AE5EEFD4358CDB90A502EA7731EEC4F19D3C9EA13C65D35CBDD9A4206BDD970C7B9652F23C503671D8BC58B6E85CA1B1A959EE714E26538BA3B5E332C90A46F5BE3C9E5E7F13CFCC7A7A98F53CFCB0B662BD3C39391A765C225726E698E0675BBC9A6281D98B1EC678719DD8B1EC35C7972612C47E89D8255C0E2BFE67FB9F09281F7BD8755C1D2FF99FEE71EB5F68FA1F96DDEA5FD9F73A3F917ED33E53CAB7CD7F1CFC1D7EFC4FABD1FC8BF699F2BE55BE6BF8E7E0EBF7E265F65F8CF0E5FF0076E9BFBA8FEC47572F9A61C3A3FF0076695FFC98FEC47A1A6718C722965789B83E5A8DF33F08FAAFD2758FCC752FF7D714A264E34CEDCD8F1C6758A7DE47953E6E571A75BADFD0F6B31C98E4A29BFADB696FF8DFED2B3A98F32C4D26D464D5AF4D02124EABC0B51A7E90AD54326584B2BE69AFEB49DBAFA5FBC53CD278A38E4DB8C5B714DF46FAD7D24C6538C5C549A52AE649D275D2FD23529424DAAB69A7693D9919D0F164585657097772938A9D6CDA575F4D0E0B7125725CDD175DFC0B7CBDE49E35250B7CA9BB69782BF120D3165787229A519357B495A339BE6774348AE4E675B6E5658B8B69B4BA19C97A4E86E514E9B56A9D3EABD0639554799AEA9B5EBFA09ADCD724E3E70E10B7B9E9F12E138787E4D463C9AB8F7B8F1E19E38723BCBDE4549D7A39535F49C38E2DD52D9B4AEBC4D4AE965971E870F5CD3B7D5BBE87BDA78A728A93718F8BABAFC470E4E1DF5378B67D1F3F7AF06470E64AB9BF11EB618C638DA56DB7E2AB6FF6F1372FB3CF6D9CAEB875BF58EEB65D1F89E166E5595383945F2D3DFEB9F8FD0A8FA5CFA496A71E7945A4B06279656FAA4D2DBD7B9F39AA8AE6F3536D6EC5A4DDD61D59D13C9933B52CD394E4928A7276E92A4BE848CB0F2BCD0E7AE4E65CCDAB557BF43697277925097346DD3AAB57B3AF0316AD56050F394F64E2EBCDB77E1F47D21CD28C5C14A4A2DA6E37B37E0EBD3BB2B0B8C5DB8A96CD53FA0B504D5BFC5EB316B3EEC922E2EA4ABA9D1A9D2AD2E5845CB994F1C6775D2D5D0F362C78B512861977904FCD97A4CEB3658BC39671CDDEC9A9CEEDF3EF7E9BB1EA71CE19A4B26378E576E35557BF4261177756746A22A3C3A137CAE5966D78DC147F534EFF0051353CC79EE2DCAA2ADD323ABDDEE53F3E6A37156FAC9D25F4847239E349F44ED2AF165D65BE9FEBD3F433D9C52726E6AE9BB3C9D3609E5527049F245CE5BA5B2EA7A7A76D615E73A7E17D1992B7CD912C3B753C9D4CF73BB3C9289E66792E6DF6113E5CF2772EA4C91AE9DE1CB9EB5339C214FCE8C6DA75B6DE8BA33574AFA95AC2AD8CA5B493A4F7E8FA1BDBE53272706EAB74D6EAC2AF33C397373E0C0B0269798A4E493ADE9BDF77B9AE18BF039F12DD1DD8A3544A96AB88E36BB39C47D5A5C9FBACFB4F22DF355C2BDACDFC591F1FC53EC7388FE0B93F759F61E45BE6AB857B59BF8B211F6FF2BFF0E4FB5D67C92F691F0BDB775A287F78FF0069F75ACF925ED23E0BB76EB87C1FFCC7FB4CF2F87D2EBFFA79FECF92C79373B213B89E5E39EE76E29DA3A3F1F98D326E8E1CF13B64F6397322C58F3F244E69C773B32230944BAEFC6B0712790E8E4F503C635BEE73F292E074776FD01DD8D5EE73A81A4606AB1171C6352F24C206B18170C66AA1EA1AE7793350070365126495035CF2899D6E6D346740D38A2D21451A240D48996D12D0D4D672268B681446AEA1A265137E526510BAC1477348C028B885D1CA268D285435966E22A34685434D4502896914A2674D4C6346B140A25C624B59B55146D0813089D38A04D73B447181D70C6A809A8E09E3F5184E276CD1CD389D75AD73388943D46AE22AA2EAE9288F90A89A56C4D5D734A066D1D133093DC6B510D19CCD089975A8C646323593319175D2159716665C46AB589A4511046D08935CEAA11358C498A35489AC5AA844DA28CE08D912D6343463246D2327D49A6A546CD14451468917534B95072A2A84D975350D178E16C4959D1861B9654D6D8B1EC54B19B63879A1289B94D72BC473E78523D2E4B472EA71ECCDEACAF0F531DD9C39227A5A98EECE0C91336BD1C2B9F93734844394D71C4C6B76B7C11E877638EC73608EE76E35B0D71B49C2CFB7EC5AAE155FF33FDCF8D8A3ED3B1FB70E7FDE2FDA72EA5DC7D3FCAFFD97F67DAE8FE45FB4CF94F2ADF35FC73F075FBF13EAB47F22FDA67CB7956F9AFE39F83AFDF887DC7E47A078E5C1745C89F3AC3153F47454FD66F8B23829A8BA5354F6F0BBFF00631E1315F52F4976D3C50BAEBD11B4A15275695EC99A95F96EA5FEFAA8E69629A9C2B9A2ED5A4D5FD0CE69429D277EB68DF944E2B97A6F7765D625739A63C529A7CB172E58B94A95D25D5BF50F90A49FAFD05D5D2E5497414934B9A9D3749D6D6549343863738C9A6BCDDDA6EBAFA1789135951D187493C9A5C9A8F3563C728C657249DBBAA5D5F4664E0D178FF60354E35549F4259D19656E318E59E48422945CA3557BB497A2DBFA7A98C97A46A6BA38566C5838B69B2EA703CF871E5529E251E6724B77B78FA6BD47B1ADCFABD6F0CE22B1715C3C674EF0CA6F0E5E6865C35BF791835B72F8A8BAA678BC3B513D2712C19F16658278E6A4B2495A8FD2BC57A51BE7E378D61D44743C374DA3C9A884B1E4CB8E5393E57F5CA2A4DA8A7D36F00F474B9C9C72D7B3ACD363D54F8A619B5159570C8397DAA6A29B5F88F3759C7B5BA5ED067D36093868B0679618E8A9775C919572B8F8B696EFADBBB38F5DC6351996A71DE292D5E3D3F3CA11945C3BB8A492BF1DB77D1F81D18F8FF79A95AACBC3F4B3D7AA7F0A7CD6E4BA4DC2F95CBD75D77A0EBCBABC6F8AFADC9863835BC57558F558B4DA8C9AE78965926DC62A36D2693A6FC5FA11A6B6117A2C12CD9D67D4DEF91424B9A0D5AB6D2BF57A99E1E838AE6D4EAF5397518716686AE6A79313B4B9974717769F5DCF633EB726AE18A0E2B1E3C4AA104DBAF5B6F77B6C6E3CFD4EAF1E52E32D36A3369749C43B9CB2872E9E53497834E3B9E171AD5EB384AD260D264C9A67930C75193263A52CB39DB6DB5D52E95D0F5B2EA5E89CE4A38F3472C250C98E77D36EB55FA99E06A38A6378618755A2C3A986293EEB9A528BC716EF96D3B6AFC193933D3EA4EDCD65C6210C92D16ADC238F26AF4EB2658C2349C94A51724BA2BA4FF2959229766F4D495FC2B2EF5FFB2072EB759975FA9EFB372A6A2A318C1546115B24978246FA5D7AC3A5969B360C7A8C2E7CEA33728B8CAAAD35BEEBA98B4BCA5B5EBF0A518E1E1D278E325C9AA6E2D5A74BC4E7D36AF36B316A71E7CB2C91F834B228C96D092DD38FA3F118C78C6672C3CB8B0C2382338638C62E9292A6BAFF00F9E263833CF03C8E2A2FBCC72C6EFD0FA995BD493247AD394314E7ABC9173C98F06049DEEB996ED37D1EDB3F598E9653D7E972E3D44A5967171709CB771B928D5FAEFF0051CAB886559B9DC2124F14714E0D79B38A5B5FAF6EA12D673E2787161861C6DA72516DB935D2DBF4119BD4E3AF433E6CDA4D6CB1C7CCC78E6E31C3E149D535E974FAEE673C3872E0C3DFC9628F7B34A1BDDBADAFC17A592B5EE525927871CF32FF00C4776DF836BA3671EAB5329E28E39534A5295F8B6FAD913BA30D64F2CB23C79528723AE4514946B6A4650FACA63CFA8967E572AE68C7979BC64974B0528B9371B51F04FA95CADF7690934CF4F04B9A11E55E15F4B3CBC7BBE87A5A4CFDCA528FD76EBFFCF58651A89B8DA7D51E6EA2752DCF4389EAF26AF553CF9A5CD39D7334AAE95781E4669DCBA962C937D9589DEFB59AED4BADDEFE82344F1BCD15994FBBBF39C2B9ABD57B59B72514C577191E9DE6E57DDF37273785D5D7E43927F5C744DB70ADE96F473CBAD322D6B8E2ED1DB8A0E953BAEBB743960DBAE66DBE96DF8781D589B6D28A76FA25E2466AB8ABAECEF11FC1727EEB3EC7C8B7CD570AF6B37F1647C4F17935C1388C2717192D3644D354D79AFC0FB7F22FF355C2BDACDFC5908FB9F95FF8727DA6AFE457B48F80EDFBAE1907FF0037FDCFBFD5FC8AF691F9F7943FE8A8FF007BFEE6797C3E975BFD5CBF67C3E29EE776196C79785EE7A381F43A57E4B94C7575463951AAE844D1256638F244C5C0E99A33E52EB52B2E41F766CA1668B11357B9CAB115DD1D6B0FA8AEE469DCE2EE86A075BC44BC74353594625F294A25514D64CCE46D24672455958491146B246635A544B44245C488744B46826868CE86A25517188D4D4A811389D1CA67388D5D73B40872544855A1928A1A13156E50E289A9A4A25289A288D446A5A98C4D631DC230348C4CD66D54207463813895B3AE305CA44F251D807D00239648C268EA944C6713A6A6B9E48CDA37944CE511AB2A23D4A72A44D5132635A899CACC64CB9332635B81C8CE72B1B2195B887B91289A342635D2565CBB971894A254625D4B55089BC224C226F18D226B9DA491684088C56B036465046D144652D10E26AC4A364D4B53089AA88E1034AD86A6B1688A3592268BAC942275E0898451D38B62CA6BB20BCD264AD8465B15156CDCA968843639F550A8B3BE10D8E6D5AF359BD595F3BAB8D3679F35B9E9EB16ECF3722DCC5AF471A851B368408823A31C4CEB56B6C313AA2A918E246FE04D72B42747DAF639DF0D7FDE2FDA7C433EDBB19FD17FF53FDCE7CFE1F57F2AFF006DFD9F6DA3F917ED33E57CAB7CD871CFC1D7EFC4FAAD1FC8BF699F29E55BE6BF8E7E0EBF7E26DF75F92F0BFE8AD27F730FD88E86BC59870B8FFDD3A477FF00830FD88EC7CAE09461CAD6CDA6DD8D7E53A97FBEA3BA70C928657DDB8A6FCE4DEF5696DE925C4D144A789F77CED351BA4EB66CBAE7AC29B95BB6DF56CE9D2E3C92C92EE20A52509395A4EA35BBDFD5F8FD064A3BAB5D7A1A65E4E7FE69351DBAF52E9AC271FC8699A78B2E6BC181618BAF379DCBF5BF5834AE898B78E56A3196CD5495ADD1174644A129C1C22E4A4973295A55775E0EFD3EA1E374941F2A4E576D7E2EBE826DBA5E82946C6A6B6C9058F24E2A71C8A2DA538F497AD5F81938A65B5CDBB497A90392EED479126A4DF3DBB69D6D5D36FF00706B1942D6C5474EB23CB38F2C2305CF529EF56952F4BDCAE9D0CB22724094A52E7EB6DF4B6EDBF40A11A98A115CC94A5CABC5FA0D541472B51973C53752AABF594D7B9C1F24A1718BA53494BD67BCF0F7534B9A33F3537CBBD5F81E0F0C9A7A758DC5369DA95BB8AF14BE93E83492C6A517923292ADD2746A571B7DF1E7EBA3717F41F2FAC55367D6EBE2B9657B2A6D1F29AD5791FA896AF0F2E58F55E836C714DAB56AF757566518A49B9A924E2F91A5B36BFD8DA0E8C3A6B5847775D0DE115CAEEEFC3D0678E71714B9775D5DF536C317926A29C537B5B74BF291919141606B9AA7CCB962A3D7D36FC0CA3B780E71928A9B5B4AD27E9AEA66E6F96AF6441BC67E6D6DF4F898E5529C64E29BE556FD4BD24C72B8BB463926D8116DC8DE1031C493C9BF43BA2D3DD2A57D3D451114D7A4EB8DBC7CD14950BBA72C2F228F9B174DA5B27E1B97827CB38B6A2E9F492B4FE908E1D437B9C191DB3BF3CB91C926E9ECFD68E29AF38B1A9E1AE95469DB77E074B7BAE66E8E5C0A99D596717154B7F10339BE530EB234C92B223D4A8EBC504F0CA6E714E35E6B7BCADF87D1E25C727234D5A6B74D3DD118B2C23A79E39628CA529271C8DB4E35D52F4A7FEC44A4428E31A89E7E15C432669B9CE5A7C9726EDBF35F53EF7C8B7CD570AF6B37F1647E75C5138F06D636D79DA7C95BFF00ED67E8BE45BE6AB857B59BF8B20FB9F967F8727DA6B3E457B48FCFBCA1FF0044C7FBDFF73F41D67C92F691F9FF0094257C2A2BFE6FFB98E5F0FA3D6FF572FD9F9FE2EA77E17B1C58A3B9DB856C6ED7E4F93AA2F614B708837B196184D1296E6B344A5B8D15081D10C64624756388131C4378CD94452441CD28194951D1368E5C9345844DEE1664E7B87788D34A93329329CAC896E5567264A1B4090550262F104885AD131D0922904D091718892358A2324A244E2742893388D1C3389934756489849175A9490D09229222E9A45C621189AC204D66D1189AC60542068A0359B50A23512F9428887074CDE397639EC5CC0D7573D81CFCE0446F2466E1674CE266D1AD663967031923B251B319C06AEB9648CE48E9940CA712EB72B9A48CDA37944CDC46B72B168968D5C49712EB72B37125C4D7944E23575091A411291A441AD228D3C0CE2CD1062931C428714466B6C66F15B1840E88119B43882896C69119A2312F976048B08C25121A3A25133712EA2626F8D98551709D32EA3AE3237C3BB38E334CEAD3BB66A5477463E69C5AC5E6B3BE2BCC38B59D197563E7F56B7679D38EE7A9AB5BB3CF9C7725AEDC6FB3284773A20888C4DE1033AD5AD71236AD89C71A3464D63591F6DD8CFE8B7FDE7FB9F14CFB5EC67F467FD4FF00733CBE1F5BF2AFF6DFD9F6DA3F917ED33E53CAB7CD7F1CFC1D7EFC4FABD1FC8BF699F2BE55BE6BF8E7E0EBF7E2747DE7E57C2B9A7C1B471F058634BF12377168CF84F74B8268DA7253582177BA7B7EA3AAE32872F2AB6EF9BC52F47D065F92EAFF009D4648E386471C795648D2F3B95C77ADD53FC84CB2371514DA8DDD7ACA94258DB8C93569755E011E5A6A5177551A7E3EB2B9E936E55172E6E4DA3E8481C28A51EB4BA1550EEDDF373F37AAAABF6D8D10B9A708E14DD3927CBB6F2E88CE50E56D78A74CD25C9DDAA8BE7E6BBBDAABA57A6FC486B6D869A8496FEA348C4BE4C3C90F94E6A97352549FF56BFDFF0050A31AEAC69AD2385BC2F2734525251ABF39FE2F47AC9963A49B4D5AB56BAA2927E08A6A4E9B6DED4ADF443535835443566F28368D39929C33E5C78E5192DA31A4B6DB74BA74E9E3F8C692B8943CE4D24EBD2AD1AE3C12E69AEE5AE4C6DB8B9572D25BBBFA7A7AC2497875B2657395C9C9CAEEDBB1A9AF5B84FD7255D4FA6D0E97BFCF1C6E5CB7E3567CCF0A4AD5F43E8F4BA99C752B2B69C974DA97EA352B12CEEF77A1AAE0B82717CD2C9D3D2BDC781A8ECC68E791B73CFF009CBDC7B5A9E2D961864FBB8375B3DE9B3E6B55DA5D4C32B4B0E1FD7EF25AF771E7D0DF0D7E2B68FF00B4CFF9CBDC5AECBE8D7FE267FCE5EE38176A354DFC861FF37BCAF8D1A9DFF98C2FD7E77BC8DF7F47E9E82ECCE9395F2E5CC9F836D3FF0063C3CB89E9F5193149F9D0938B6BD476BED3EADC6962C316FA3DDD7EB3CCEFA52C929CA4DC9B6DB7E2C8E3D5BD3B9D90A6B76CC9B5E3D3C6BA959351178163EEE2A6A6E4F2DBB6AAB97D15E3E931722B87B06C893D8B9648BC0A0B1C79F9ADCEDDD7A3D04460DF50AAC2A1DD4DB9C94D35CB151B4D78DBF0AD8EAC29D6E8C611BEBE8AFC475C25274E526DA492BF04BA2095D1194E385E3526A1269B8DECDAE8E84A0A9B6CE98EB1CB87C707778F693973F2F9CEF6ABF41CD7B502E38752AE473D2DFE8D8E9CFD59CFE26961E354F72E4D736C65CD4813BE9B85690C52CB2928B56A2E54DD5A5E0BD2FD4678D39CD461172949D2495B6C24DAF4FD3444323864528B7169DA69D34C18E849B5BECD095911CFCB192693E677CCF76BD3F945195B09597147FF0074EB3FB89FEEB3F49F22DF357C2BDACDFC591F9BF15729F0AD6CE6DCA4F0646DB76DECCFD27C8B7CD570AF6B37F1641F6FF2CFF0AFB4D67C92F691F03DBE57C360BFE6FF00B9F7FACF915ED23E0BB74AF4305FF35FED39F2F87D1EBFFAB9FECF84C78F73AB1C2888428DD6C8AFC8EE8BA25B09322C88A6C4856544236C675419CB0746D1904D742911396C4F39964C9B0359E6C9471E5CA5E7C870E5C9B9A8E9C66AE59370590E7E72E0ECAE998E98CACB231C6CD79030CDA1516E21CA1359F2971896A035121A4A2348AE50A2269A4691442EA69008D228728EC5C16C39AD80E1CB139E513B32A39E482CAC794B8C4AA2E310BA2103784031C0DE30A233446068A1B12B62EF608CE4A8CDB349B3094806E4473132913606BCC06498107B533268D24C861CB50D1128FA8DB96C1C06AB9250319C0EE940C32406B52B827133944EA9C4C5C0BADCAC1C44E074AC62963A2EB72B95C4968DE5133920BACE8B48122D229A16C5A268B483369A45A4248B8A23369C4DA06691AC51359B545C509235844CEB1A12F51545C605720D4D612336CE8C9139A4B72EA5A9933273A356B6319A2CA95A63C9B9E96925747910DA47A7A37D0A4AF622FCC3835AFA9D907E61C3AC7B31AD3C6D4EED9C728DB3B73FD733150B635A9594319D108151C66B1893575318D0DA2E82AC9ABAC5A3ECFB1BFD1BFF0053FDCF90703EC3B1CAB8735FF33FDC97E1F5FF0029FF006DFD9F69A3F927ED33E5BCAB7CD871CFC1D7EFC4FA9D1FC8BF699F2DE5562E5E4C78E28A6DFC1EF65E0A516CEAFBEFCB38547FEE8D1FF710FDD4767234DA7F8CF1F86768F83E1E17A6C59B5F8A338618C5ADF6924B67B1D5F193823AFF00BD30C7677E6CB6F478187E57ABD1EA5E7738D77C61CF349BABF169BFD9B93DDDAB383E33F064D35C4B0EDE8E6F70D76A78357F48E1FF0037B839FA3D5FF9BFC3BB95AD8390E15DA8E0BCCAF88617F9DEE17C69E1094D478961E5757D77F47803D1EAFF00CDFE1DCE21182BDD6C79FF0019F83FFEA387FCDEE29769B837FEA387FCDEE07A3D5FF9AF4B2C71DC7BA52AE55CDCDE9F1FC41DD4942326A94AE9FA69D33CE5DA8E0A9FF48E07F9DEE0F8D3C177FF00BC30FF009BDC13D1EAFF00CDFE1EB423BDC7C0A9F9CEDA4AFD08F2D76B783F2462F8961A5D367EE0F8D5C15F5E2583FCDEE09E8F57FE6FF0F41A64C5A8C65E626E4A937FD5F5A381F6A7827FEA583FCDEE23E34705BFE91C3FE6F703D0EAFF00CDFE1DD284924DC76F07E92B1E1795B58E2E4D45CA492E892B6FE84707C69E0CD57D51C3EAFAEF710FB49C1DDBFAA3A7A5ED5BFD4589E8F57FE6FF000FA8E130C5BA9CB9766D52BB7E08F5F0BF391F21A2ED8702C6D779C5306CA937CDD3F21E863EDC767A33B7C5B4FF00925EE2C67D0EAEFF0085FE1F47ABB9619249B8A56EBA2F0B3E475CFF00ED0E95BBD951DD9FB79D9F786518F17D3BBEA9737B8F9CD4F6A783CF2B71E2385EFB35CDEE2373A1D5FF009BFC3BE3250D34E12C6BBC534D4DF549269AAFA77FC4651936F7F13CE7DA5E13E3AFC4FF002FB85F19B8528D7C3F0D3EBD7DC1BF47ABFF0037F87AC9D752E38E33C13C9DEC63284A29637772BBDD7D15B9E6E9BB41C0F364E4CDC57061B5B4E4A4D27EBA5E831F8CBC2574D7E2FD7EE2AFA1D4FF009AF51C23C8E4E4B9AD251AEABD3FFE7A4CE4B73CF5DA7E149BAD7E1DD578FB897DA4E15F7761FD7EE07A3D4FF9BFC3D1434799F193857DDF8BF5FB8AF8C9C257FE7F0FEBF705F47ABFF35EC4178F5D8EBC11C33C1273C8E138AB8A4AD49FA1FA36BDCF9F876A7854534B5F895AA7F5DBAF4742A3DA9E11E3C4317EBF704F47ABFF0035EFA692239D2BDE8F223DAAE0F5BF11C3FE6F719E5ED2F09C796515C4704ABFAD1B69FEA349E8757FE6BD2D54F9F24A75157BD45525F88CA717A7CDC9A8C6D3E54F96EBAAB4FF005A679F97B4DC1A58D72EBF1F3B6EFAD7AAB6FA4E6F8C3C2D74D6E2FD7EE2B53A1D4FF9AF55C938A5493BFAEB0C9965E6E3938B5879A29C52DF7B7BAEBBF43C98F68B852C91793578E70524E514DA725E2AEB6143B45C2929C5EAB154BEB5B94BCCDFE8DF6D835E8F53FE6BD7CFACCB970E384A7271C49A82BDA36EDD7E3391669F3C9F33B926A4EFADF53867C7F86786BB13FCBEE325C7786F35FC3317EBF711AF47A9FF0035EE431B585646E2D7372D5EF75E835828EDCB6F6DEFD278B0E3FC2FC75D897E5F71D38FB47C223B3D7E1FD7EE239F2E8F53FE6BB389C6B82EB5FF00C89FEEB3F48F22DF357C2BDACDFC591F96EBBB47C1B2709D5E35ADC59273C192318A724DC9C5A5E1E93F52F231171F255C2B99356F3357E2BBD96E1F5FF2EE1CB870BDD31F69ACF925ED23E17B6CAF470FEF1FED3EEB59F24BDA47C2F6D7FE131FF78CC72F87BFAFFE9E5FB3E33A039049D1161F9036C561D41208A48A40A2572845459AA664951AC489AA31CB747428D91971F9A5847999DF538324B73BF52AACF3B23DCD47A38424F73A312BA39E1B9D786235AE4ECC31B37EEF6274F0B3B162F349AE36B89E31721D72C647206759280721B280F9089AC3944E26EE04B8035924545D0DC41229ADA122E4ECCE08A21AC72239A4B73AE68C2710BAC91B411091A45035B40D6D518C595CC4357634CCB987CC10E6CE79B35933291559B62064D8168022015EBC9893148952DCCBCFAE882B468E0A8CB1B36BD88DCAC67139F244EA9186441638E7132713AA5132944AD324A8991AB899490D6A31919346D24438975A4245A88D44B512E9A848B8C47CA69089359B4288D22D447C8359B491A42362840E8C7033AC5A5181B420690C66B1C7EA26B3511817C9B1A460371D86A6B972C4E49ADCEDCA8E59ADCA5655B19CE27428913897473C63B9E8691551CB186E7669D50D48F422EA071EADDD9D1CD513933CAC6B5AF3B2C6E44C206F38DB1C2034D4C6068B19A46068B193575CEF18B928EB78FD44387A869AC1C763EAFB22AB4325FF00311F3328EC7D3F64F6D14BFBD44BF0FB3F945FFF005BFB3EC747F24FDA639C23921284E2A50926A5192B4D3EA9A0D1FC8BF6994777E85E37C4BECDFDEFF0AFD0F1FB83E25F66FEF7F857E878FDC7B20078DF12FB37F7BFC2BF43C7EE0F897D9BFBDFE15FA1E3F71EC801E37C4BECDFDEFF000AFD0F1FB83E25F66FEF7F857E878FDC7B20078DF12FB37F7BFC2BF43C7EE0F897D9BFBDFE15FA1E3F71EC801E37C4BECDFDEFF0AFD0F1FB83E25F66FEF7F857E878FDC7B20078DF12FB37F7BFC2BF43C7EE0F897D9BFBDFE15FA1E3F71EC801E37C4BECDFDEFF000AFD0F1FB83E25F66FEF7F857E878FDC7B20078DF12FB37F7BFC2BF43C7EE0F897D9BFBDFE15FA1E3F71EC801E37C4BECDFDEFF0AFD0F1FB83E25F66FEF7F857E878FDC7B20078DF12FB37F7BFC2BF43C7EE17C4BECDFDEFF0AFD0F1FB8E0ED4F941E1BD9ACBF048467AFE232A51D260DDA6FA733F0FA377EA3C28CFCA2F68977919693B3FA696F18C92EF2BF1A6FF00619BCA2CE2FACF899D9BFBDFE15FA1E3F707C4BECDFDEFF0AFD0F1FB8F978F62FB5ABCE7DB4CCE7E8E59D7EDFF0063583EDE702F3B264D371CC115BA4973D7E249FED1DDFF00C5ED7D27C4BECDFDEFF0AFD0F1FB83E25F66FEF7F857E878FDC65D9FED7E8F8E4BB89427A3D62DA5A7CBD5BF1A7E3F46CFD47BC5977C258F1BE25F66FEF7F857E878FDC1F12FB37F7BFC2BF43C7EE3D902A3C6F897D9BFBDFE15FA1E3F707C4BECDFDEFF000AFD0F1FB8F6400F1BE25F66FEF7F857E878FDC1F12FB37F7BFC2BF43C7EE3D9003C6F897D9BFBDFE15FA1E3F707C4BECDFDEFF0AFD0F1FB8F6400F1BE25F66FEF7F857E878FDC1F12FB37F7BFC2BF43C7EE3D9003C6F897D9BFBDFE15FA1E3F707C4BECDFDEFF000AFD0F1FB8F6400F1BE25F66FEF7F857E878FDC1F12FB37F7BFC2BF43C7EE3D9003C6F897D9BFBDFE15FA1E3F707C4BECDFDEFF0AFD0F1FB8F6400F1BE25F66FEF7F857E878FDC7AD870E3D3E1862C38E38F1C128C6108A8A8A5D124BA22C3D0046B3E497B48F85EDAFF00C1C3FBC67DD6B3E497B48F85EDB7FC1C3FBC6639FC38F5FF00D3CBF67C4CD91654FA915B91F905C77348C49844E8C701A969C61B0F90DE18CA78C9ACEB9944D6111F2533484426AE10D88CD1F34E88448CD1F3445D785AD55679395F9C7B3AE8F53C6CBF5C6E3D3D3562DD9DF823D0E1C1D4F470780ABCDE869A3476C579A71617475465B1970B4E512790D3A850659720729A3414067CA44A26ED19C91460E20A26BCA0A210A311B45A88F942B09230923AE503194083048D2287CA3489A0A065A43E51AAC86917C83E42A48CDA339237944CA482B0910692336CAD4526067CC015EDE44675B9D13899389CF5E556336B318AA2EF60D43933392B1CA443915A8994519496E692918CA446C34A8C66916E6653915A8CA642EA54D911EA556A9594A21046D188D4D66A26B0887297044D66AA301F21718EC5A899D62D44606F8E3428C0D62A89AC6AE08DA28CE06D143534D44535B17548CF23A039731CCFA9BE6918ADD9AD66D54624CE06D0454A16BA1355C6A34CEAC243C7B9A4361A4692979A72E5766F396C7364765D2D67E26B046696E6D8D0D495AC626B1893046A919D6A52E4D88940DBC04CBAD396713EB7B35A1EEF82C350B25F793B71AE9BD7FB1F2F911F5FD9D9A7D9EC51B4EA5FFD4CD7192DF77D7FCA6DF56FECF7F47F24FDA6591A3F917ED32CECFD2000000000000000000000000000000000000000003E43B75DA7D570F783837034F2717D76D0E5EB8A2F6E6FA5EF5E8A6FC0FADC99238B14B24DD42117293F424AD9F13D8AD1CB89F15E21DA4D5C6F36A323C782FF00A91F1AFC54BF13337E967DBBBB25D89D1F6630F7D3AD5713C96F36AE7BB4DF551BE8BD7D5F89F46202C99E0B740C4054799C63B3FA6E2EBBDA58B571DE19A3B36D744FD3F4F546DC135D9F2E396975D6B558766DFF00597A7E9FFF00B9DA639B07F3F8F5305FCE45D4BD6BFF00CB466CCF78D4BBECEE0175E8334C8000000000000000000000000000000000000F4007A008D63FE697B48F8DED9E91CB83ACFCDF5B96946BADBA3ECB57F22BDA47CB76C1AF8B6D36ADE555F9C6794F6F770FC4DFFF001E5FB3F399C485D4DB2A30F130FC837C675E289C984EFC11BA2566B7C50F51A4B1EDD0D3140D9E3D89ACEBCF9428211DCE99E32638F71A9AAC71166879A6F08D119979A595657CFF00108F53C4CD1F38FA0D7C7A9E2668F9CCDCAF4F4EB3C5B33BB0C8E282DCEAC4E835CABD2C323AE123CEC333AE13238575C594631916A5B06754D8AC9720B09A6D92C1B25C8AA068C9C8B8BB08D522921415974454B46528D9B344322B09408F13791956E40E25A4282345102684CB688682A5994CD24CC66CAB18CCC64CD666322B510D80980D57D44E264D1BCCCA8E5AF2A45265333931AA993336CA6432EAC26CCE4CB7D0CA4C35112663391A4D984D95B89722A067E26B8D155BC11AAD89822DA2322CD7199A89A41532335BC11A28910378A3358A5189690D44A489AC9C11BC118C4DA0353552E87365674496C72E7B49952D71E696E4C3764E57E7158B765635D38D1B72938A26EA1B135B60F19128D1D4E26592034AE49B316ECDF244CB94B2B34A28DF1C4CE303A31C4558D208B1C56C14468A8637B1360951916C7B9D977FF67C8BFE623C2C8F63D6ECC65A967C7E3B49165F77DAFCA3949D6B3EE3EDF47F24FDA65FA4CB4334F997A69A3592A933D2FD200000000000000000000000000000000000000003CFE3EE4B806B547ACB138FE5DBFDCE7ECEE9D697B3DA3C7155E6393FA5B6CF475B87E11A1CD8BEDA0D1CFA08F2F0FC51FB44E3FAFF00F933F2D7C3700034C8000002A3F5B25F8C91F32841B7F412F859E5AC3E4E3F4144C3E4E3F4142783E400015000000000000000000000000000000002EA01156D011ACF925ED23E1FB64FFECF897FEF67DAEB675CABD16D9F01DB1CD7930E3F149C99CF9FC387E27976F43957CA66662B765E596E6717B997E45D78227A3A78F43CDC33DCF474F3E82B3C9E96189BB8F9A6186474DDA32E6E6C91323A3218B4466D38B2333F34B499392368A6BC7D6C6ECF1F3637CCCFA0D462BB3CDCDA7DCD4AEBC7963CD50348AA367868970A35AE9796AF1B3AF1C8E38AA674636473B5D7166A8C319B443218595CA4B89509C8CE721CB6329C8AB29396E6B8E5B9CAE5B9A6296E15E8637B1A186296C6C999536672346673645673327B1729194A606B091AC64722C9B94B2858E96CCE4D19F796272B228948CA5B8DB178148C648CA4744D18CA235A62D01A7281755F4B22686C691C35E567246324744918C9165562D09A35E5264A8BAB18CF6309B379984CAD31933291B4919B456A223137C71338A3780D5691D90C48A488CD5C516894A869EE19ADF19D30472E3923AB1B3159AD121D0E255119A5146F0465146F041986E3B1C9A88ECCED97438B52F66594AF2F36D22B07533CF2F38AC12DCBAC7CBD3C11B475286C72E9E5B23BA1BA33ADC66E06592075B8FA8CE701A579D96063CBB9DD9319CF28532CACD6691AC11091AE388D2358AD8AE52A31D86E21A633326F7379C4C5ADCB11137B1BF06D4FC1B8AC1B7E6CFCD6612473CDB8C934E9A768AF5FE17ADE8F578F37E95A2CBCAE3BECBCD7F4781E8CD789F31C13884757A38646F74B966BFDCFA3D365EF31F2C9F9CBF5A3D1C6EC7ED7659B3C5500E4A988D0000000000000000000000000000000000000C638D636E2B64F746C4CA3CCABF212C595934D3A621CF2462F9726CFC1825CCAE2D497A56E252C201D7A859251C38DCF2CA38E0BACA6E9150D26DEC733CAB55AE8E9F1BB863DE6D74F5FBBF29C39B8B4F5F99E9784C5CDBDA799EC92FF0065EBEBE83D5E1FA286834EB1A7CD27BCE6FF00ACFDC6777C35E1D20006990000000000000000000000000000000000005417893156C9D4E5EEE1CB1FAE7FA901C5AECCA4E4EF67E6AFA3C4FCD3B45AD5AAE299649F9B1F351F5FDA4E2B1D070FC992FCE6B9608FCCF36A1CE4DB76DBB672E576BE67E67D5EDE9CE9CF34B2CF722323294ED978D361F9FB31D58A5B9E8E9A679D8A077614D12B8F27A987251D509DA3CDC72A3AB1CECCB9EBA1EE4F258D32E2653C94718E58AD1B45234504CA3CCCDA7F51C39B4DEA3DFC9853471E6C1655F0F03269FD4613C347B3974E7265C3EA1AB393CDE4A2E0B7369E2DFA0A38F72E9AD319D108D918F1B3AB1631A6A5404F19D6B16C2962F50D1E76481CB9551E9E5C67166C659495C327B978E5B939234C5074CD6B4F43148E98B3831CCEA84F623523693A46192613CAA8E6C997D645C39E430964232643094C3523A3BD2964F59C6A46B0646B1D51995CDB18C59764D4C558C84CAB1A48523368B6C86C295009C80BAAFA2A292222ECD523CFAF3C672464E3B9D125B18B46B4C47299CCDEB630C88BA39E68CA48D991245D6A39E48CDA379232915528D62648D22535A266913348B441A5EC4396E0DEC43619ADE1928E9C590F3F9A8D71E4DFA99ACBD5C72B368EE7161C967663919ACD6B189B422678F7378A22264B638356E933D19AF34F3358F665D4AF1F512A90609F9C46A5F9C678A75234C7CBDCD2CFA1E8E2768F1B4B93A1EA60C96895A8EC4AD0A511425669D48D39A7039B2633BA71319C06B36389C69978CAC9014366351D105B14D11065B635B8CB27439A4D59B6691C9296E54B5527B184CD2EC971B2E8E8E13C425C3B54A4F7C72DA4BFDCFB8D16AD4A3094269A7F5B2FF667E7BC87A3C2B8B4F87CB9325CB03EABD06B8F2EDAFD0FE5BF8E924E8F56FECFD1F1658E68FA1AEA86E2D7D078BA3D7C32E38CF1CF9A3E125D57D27A78B5AA4BCFE9F6CBA1E9965F0FBD636029386457169FD01C9EB28902B9187230240AE461C8C0902B9187230240AE461C8C0902B9187230240AE461C8C0902B9187230339C23923CB38A92F433873709E697369F51930BFCABFD99E97230E464B25596BC49F0AE272D97146A3F43F7910ECBE3C9939F5DABCFA97E8BE55FEECF7B918B93D64ED877563A7D361D2E158F0638E382FEAC551A95C8C3919A44815C8C391812057230E4604815C8C391812057230E4604815C8C391812057230E4604815C8C3BBF4B0246A37F40DF263572697D273E5D6A517C9D3ED9F4035CB963862BC5BE88F275FAD8E2C739E49A496F295FEA467AEE238F4F8A5932E4E48A56E527BB3F37ED376A67C566F0699B8E996D7F6DFF00C1CF972DF68E7D5EB71E871EEE4C7B47C765C5B5EDC1FF003307505E9F59E336D8A29B36862B33E1F98EB756F579DE7C910836CECC387D43C3A73D0C1A7F512D79B95658F0D1D30851AAC34BA0A51A26B8D24E8EAC2ECE173A674E9F212B0EF5D06A5466A5B12E74C897D9D7099D18E479F0C874E2C9612575B568C3240DA2ED13902D70E4C48E5CB84EFC8D1938730337C3CA9E0DC95837E87A39312464A2AC25F6678F07A8EBC58431411D98F1EC4D192C5B742678BD4772C64CB11755E565C470E7C747B7970FA8F3F538B665948F1334699CFD19DDA886ECE39477372BAC54246F1C8E8C228D120D454A6D984DB3571644A035A8E69599B474B810E046A32513482051348A25AAB89424364426E85CC293329482C68E644B219CA6632C9EB2C6A71D6D2C9EB0392597D605C6BB5F61091BC65B1CD1D8D62CF2EBC5152911E236C92EA9BE86394D5BD8C32B2EAB0975131B0A2EAC633463247464473CBA9A95492348C498A358A2E8B8A2B942313451D89A309EC8CA52A3A3244E5C886A54BC85E39EE73C8D3175158AF534F23BF133CDD31E8E15D0C562BB3133AA0B639B123AA1D0CAC4E55E69E56B7C4F572F43CAD678952BC4D4AF399843691D59E3E718A86E6E562C7569E7547A7832F43C8C6E8EBC3968955ECE3C8A8E88CECF2F1663AA194CEAEBA9BB2248519D8DBD868E7CA629D336CA61E2359ADA322B9B639F9A8AE71AB296676734BA9BCDD993565D44A468A22512D22EB510E267289D2E265288D52D2EBB3E83273609B5E98F833DFD0F69F0E4A59EF0CFD2BA33E6E51279772CE56787D1FC37E67D6E87F6DF78FD0307108654A509467EB84A99D51D7492FAE9AFA559F9E61B83B4DC7E8747A187539D2DB51957FF00CD6749D5AFAFC3F37FC3F29FDD2C7DA7D5097DBBFCC0FAA12FB77F987C8FC27535B6AB27EAF7119B886B3BA51C7A8941AEB3E5526FF2EC59D674BF9A7E17EEFF000FB1FAA12FB77F981F5425FDA3FCC3E161C538863C89CB592C89758CB1C69FE4499A7D54D5CE4DACF28A6FA2F02DEB27F55FC2FDDFE1F6DF5425FDA3FCC0FAA12FED1FE61F1F8F57AA975D4E4FD46F1CBA97D75597F57B89EB7FF17FAA7E17EEFF000FA9FAA12FED1FE607D5097F68FF0030F9A8F7EFFF00379BF57B8B51CFF7566FCABDC3D65FEA9F85FBBFC3E8BEA84BFB47F981F5425FDA3FCC3E71C73AFF00CD66FCABDC67396A23D35597F57B8BEA9FD53F0BF77F87D3FD5097DBBFCC0FAA12FB77F987C94B51AA5D35593F519BD66AD74D4CFF00513D6FFE27F55FC2FDDFE1F63F5425FDA3FCC0FAA12FED1FE61F1BF0CD67DD13FD44E5D4EB7263715ACCB8DBFEB46AD7E543D63FAAFE17EEFF000FB4FAA12FB797E607D5097DBBFCC3F38970DD5CA4DBE35C4F7FF9B1F70BEA6EAFFF005AE27FE32F717D54FEADF85FBAFD23EA84BEDE5F981F5425F6F2FCC3F34968356BA71AE27FE32F719BD26B57FF00E67897F8CBDC5F54FEABF86FBAFD3FEA84BEDDFE607D5097DBBFCC3F34C18B5D832A9C78C710935E13C91927F8A8F4BEAA6B52FF00899FEA27AAB3F34FC2DF9BFC3EE7EA84BFB47F981F5425FDA3FCC3E11F17D6AFFCC489FAB5ADFBA243D5AD7F53FC2FDDFE1F7BF5425F6EFF00303EA84BEDDFE61F05F56B5BF744889F1CD747A6A25F907AB57FA97E1BEEFF000FD03EA84BEDDFE607D5097DBBFCC3F36C9DA5E210E99BF519FC6AE257F2CBF217D4BF47F52FC37DDFE1FA6FD5097F68FF00303EA84BFB47F987E6B1ED3F117FF8DFA8A7DA4E23E19BF517BEFD2FF51FC37DDFE1FA47D5097F68FF00303EA84BFB47F987E672ED3F125FF8CBF212FB55C4D7FE32FC83BEFD1FD43F0DF75FA77D5097DBBFCC0FAA12FED1FE61F974BB5DC4E3FF008ABF218CFB69C523FF008B1FC85EEE5F4D4FC77E1EFCBF57FAA12FB77F984CB5D27FD79BFA151F92CBB73C552F9487E6FF00F272E7ED9F16CAA9EA797D988DE4BFADE87FF5FAD67E238F1272C938C2BC652B67CD717EDCE8F4971C127A8CABA5745FEC7E6DA8E29AAD5BFE7F519327A9CB6FC862A7632DF35C3A9F987B674F8BD7E2DC7F59C632B79E6D42F6827B7FF270C15994373A70C6C78F0F91D5EA72E77BB956D8B1D9DD834F7E067A7C5747ABA7C3B2D8E76BC9CAA3169E8ECC5868D218925D0DA3148CEB9319C291C995D1DD97A1E7677D4B12D73649EE6BA7CBBF539334A9860CBE71A631ED47279A673CB4CC6197CD31CB97732CF275C73EFD4EAC19F7EA78CB2EFD4E9C19B7335995F438B2A71EA1925B1C3A7CD696E74395A1AD6FB32C93A642CE97527359C397234256672C7567D42F49CEB35C8E2C999B618F23B152F3DAF67064B3D0C2D34789A7C9D0F574D93A19D6A57A1149A29C2D118E568D9742EB71CD961B1E76AA1D4F572AD8F3755D1974789A9C7BB38724699E86AA54D9E7E49DB352BAC4C7A9A44C148B522EB51B12E89E721CC6B4246726129994A61A8BB1A918738D4C8B8EB8B2E8E784CD94B62233C8734E475645672654D3116329CCC2532E76632351D78C294809A02EBA3EE52DCB5D0481BA3C7AF9B206C5CC44A64A91746ADEC61911A29132DCAAC681EC8D394CF26C8B2AC6392460FA9791EE4C559A9555189B4224C226AB62EAAE312E8CD4A87CE413911CB922754A566335619AE47035C30DCAE5DCD7147716B38EAD3C68EFC4A8E4C3B1D98CC5ACD75E2474C3A1CF88E98F422232F43CBD52BB3D1CD2D8F3750EEC68F372C3732E43AE713371352A630E5A2A32A65388B94BA98E8C590EAC794F3E2E8DB1E420F4E190D54AD1C38F21D109906935664E26B762A06309227A1BCA266E21310F712895434868144A510B1C58D50E267289B325A2EAD73B8096337E540A289ACE2218CE8C6A8231344818A5D0CF22B34F022451C938EE105B9AC959318EE462C74E13AE0F638F1BA378CB60AEB8B344CE684CD39E91656A2E72A39B2641E5CB47165CDB8B59B5AB958AAD98C2767463564665D38E3B1BC46F8E254A1B06E4F67138512E0744E3466C0E69C0CA503AE51329A2CAAC3949923566722EB4C326C734E74CE8CBD0E3CADD962AD642672B46716ECB7D0D353DDC99BA98D6E6F956E66A26E3A45411B25B111897E056A329A32944DE5B8B96CD46A3872A38B2B67A79E1B1E7668EECDC76E11C93918CA4CDA713168D3BC099A411118EE6F089295AE3476605B9CB047561D998AE1C9EAE9629D1EBE9A1B23C8D1CBA1ECE9E5E6A39579B93A3952444A5439E4547265CD5E2462B4C93B38F2C6C1E6B6545A91632F3753068E7C4DA91E9EA30DA38962A99AD474C24F90C7236D9D38F1B7022785D99D73E4C1266B8E4D48B585D7417774CCDACD98F47493BA3D182B89E6691743D6C2AE2675639F2E3B479F9F0BDF63DC962B5D0E7CBA5BF01AB78BE7E785D8A38DA3D79E93D464F4B5E03B98ED72E1B4CF4F4B3E872AC2D33A7045A667563D4C32D8E88BD8E5C3D0E84F6352BA44E57B1E5EB25567A39A5513C7D6E4EA569E56AE7BB3CE9CBCE3AB533B6CE47D4DC7490D328948A1ADC81B224CA64B435A67266526CDA5133712EB518B638C872884624D56D8DD9D78E3673E1859E969F0D98B58AC5E16E272E6C2D781EE7C1BCDE872EA34D5E049C895E0E4C6632C67A7970D3E873CB17A8D4E4E93938FBB03AD62F5017B9AEF7D277A4CB29CAF2FACCE79BD679A3CB8E97944B21C4F37ACA8E5349DAEF8CCA4CE4864F59AAC841B3661958DE4319CACB1594DEE11744CA5B89336AE98C90DCCC2321B90D1A73877861CE352B2A367904E66764B7406AA48DF1B471299B63C84A95E8E2675E2679B8B2A3AF165462B0F4F148DF9FCD38316437EF76221E69EC7065766F9276612DC2630923368DDA21A2AE33E4B13851B45584A1B031CAD0E299AB80280D671509347442660A3452740C7642668A472C246AA44D1A364B27983980190DD152666F7081C8719EE4344951D1DE13CE676C690D35A731517B99A45C56E4D1BC4A6C9822DC4097222531CF6319B2EA073052464D827B8D66D74C266D191CD8ECDE08CE8DE121CB252216C46596C35A679731CB39B6C5967B99F316562FBBA314B73BB0B4CF2E13A675E1CA349ECF57196FA1CD872D9B73EC69D759E4473B546F92473CE44D4293D8C2722A73309486A68948CE4C1B21B2EAEA67BA3932C773B1AB329C0D4ADB9610DCB94691AC718B24691A8DF18E1C8B72628D722DC8A371D21A14989CA8CA790D4696E41CC61DE7AC39F62C6A43CD2B479F9BA9D5927B1C991D9A8E9C5CF3464E06EE36358ECD6BB77318C3736840D6387D468B1512D62F267189B43660A052898B5CED7669A74D1EBE9F2F9A78785D33D0C596A3D4C571AEFCB9E9753CFCFAAF599EA351B753CDCDA86DF52449C75DDF09F3BA9D9A6CBCD47811CCF98F4F4191B9229CB8E3D89439A0733C1E7F43BF0C39B183C3E719B5C2B2C587CD1CB4FEA3B70E1DBA1ABC1EA316B37DDE72D3EDD0CA78299EB3C3B1865C266D4AE5D3429A3D6C0B647162C7523BF0AA489A91D118D8E5893F01C19A6C69D638E7817A0C6784EF9D51CD91AB25671C72C48211A66929227991131D18DD1A77948E5591214B31656A34D465F359E26BB2F5DCEED467D9EE78DACCB766A35C66B8B34ED995939326E66A66E3BCE2E8B0E630EF03BC0D636B1ADCC14CD71C80D1C7633940DE2AC7285934D71B80E38F73A1E31C31EE4D4EE560C7B9EAE960B638B0C28F4303A39DACDAEC8C1729CDA9C5EA3A21354679A49A26A3C8CD8B7E873CB16FD0F432C6D99777B96725D722C3EA03B56302E9AE0793D644A764B6232D60B1C644D14901BC246AA5EB31C68B6E83362DCCCE52173112915036088BDCD11755498A4C1034C6A20A8B0E5635163455EC67365333921A279871C944344DEE5D1D98F31D78B3FACF2A32A37865A3352C7B38B3FACDFBFD8F1E19EBC4D63A82318F45E5B1739C6B37ACA594898E8948CDCB721E421CC0E9848D1BD8E38E4A35596D15A8A93DC22CCE520530CB6D85667DE0B9C895BC646B191CB199AC66131BD8D19466691903154268A4AC1A0632684A25B4090D4C4D1490E809A61A4545136352037816E4A8C14C9965F58D1739184B70964B279AC6B3450E312A2524353170546D1325B14A43571A73196596C5391964764D2B932F532379C6C8E41AC6251A426D31720D45D8D31DB8321D6B26C70614D1D317B0D6A2E7339E7334918C96E5D2A252B336ACD396C7DD974918F2D877766EB196A0595A91CDDD912C6764A348C326C6A37239DC69186566D92691C99721B8DC633EA64DD0E73309E43A474906499CD3C83C93309C8D474917DE7ACA5339F98A52669AC5CE56632565BDC71858D5F0CE38ECDE187D4698B15F81DB8B4D7E066F266F27343017F0775D0F471E9BD468F4DB74337933AF21E16992F1D1E8E4C15E073CE144EE4D73C553355929112544364D44E79B671CF76754D598CA0595A8C631DCF5B8747CE479F0879C7ADC3A1E7216A73BECFA2D263BC68D658AA469A2C7FCDA36C90A673B5E7E5138606CE1B1384D9F431ACE39E71A473E48EE7464951CF396E62D4A5086E6F1D8C63348259522C5C75C7224577A79EF5297892F57EB2CA3BF267491C59B5095EE7366D66DD4F3B3EB77EA5F2B96BD196A77EA47C257A4F21EB6FC45F0BF58C5ECAF61EA57A4CA7AA5E93CC7ABF59864D5FACB23538D77E6D55AEA799A9CF7644F52DF89CB93259A91D38F0C29CF7279C976C5469DA45F38B9C8A609056D191D1899CB04CEAC485ACF275E336E532C48DD2D8E76B9DACDC47145341146759D698F63A612A30844D1BA466D1B77D44CB359CD2C94477A44C6D2958AD19738B9C2BA3990187380D1E72292B222CD606ABAD0A165286E5C522D449ACD1088A5135512BBBB26B35CAE2C8713ADE2F513DD13B91CAA0CD238CE88E1F51AC300EE4D7347117DC9D71C068B07A87726B83B9F509E33D0784CE5889DC6B825064381DAF110F0FA8B392EB89E321E2677F724CB0FA8D4E4BAE0E5A19D32C3EA25E22F71AC549A29646378C9E463531BC321AC667341335441BF392E64A068260E7348E531A0411BBC81CE62160C6DCE0A666994818DA32668A46512C338D54CD2393D672DB053A2263D086445F32670C329AACA355B362E6327909E7223A39C5CE61DE0BBC08E9E60E6318CCAE6541714E643991290931ACD8BB1A624344D31B419AC4E78B36831A634F021CA997E06734352C353D84E5640EC04D0944AB1732061A8A051173A0EF105C6F8D1B2A39639522D665E90637744348C9E642EF4BA3651294519467668A43562A9034856294B6352AA324A91C3A8CB5E274669EC795AACBD7737C7DDA93519B507264CF665972EE73CA67591D6716B3CDEB32964339488B371D645B9599C876266E3721229090EC6AAD236C50B66117B9DDA58DB44B58AE8D3E0B68F4B069F6E84E9B0EC8EF841451CAD72B510C2BD0692C2B97A073A4C72CAB94891E7EA20959C1911DFAA9ADCF3B2CD0184CCDA2E524C12B0ACF92C3B96CE88E3B3786125A9AE28E0DFA1EA6831549131C1BF43BF478AA48C5E4CDAF6F430FE6D1AE78D068E35045EA7645B7D9AB3FB5CF074CA9CF639DE5A7D4CF2EA125D4E7AF39E6CB4724F3ABEA61A8D555EE70E4D66FD498BDBAF49EA2BC4C726ABD67992D67ACC726AFD66A46A71AF467ACAF1309EBBD67979755EB3967AA7E93738BAF1E96BD5CBAFDBA9C19B56DBEA71CF50DF898CB236CE923AF1E963B56A5FA4B8E77E93CF8C9D9B41B16357848EB799FA4CE591B2526CB589B32CE488B6C395B674430366D1D36DD0772EB8943D45776767C1FD41DC13B93B9C7DD877676773EA1775EA1DC7739E303A314071C66D08519BC92D6B8A3B1BA8EC4411AA316B9B3711C61B96D0D5111518D22723A45735230CB3032C9232E71649599DEE1AC6CA765276CCE28D628262A2806B60218F2A3335864382394D2398E963BDE2F4A13378491E64337ACE8C79CC58C5E2F4A146D18A67063CE8E986755D4CE318DDC10BBB44F7E9F8951C89919AD21891B471118E48E98344ACD28E12FBA348516D220E5940C6503AE68C9C48CD73F762784E9502B9101C4F17A8CE58CEE940CE58CBAAE27888962F51DAF1912C65955E7CB190F19DB3C6652851AD560A057297CA265D52486D0AC2CA0A0A0B06C04C42722798A62D32E2CC932E2C26378B2FC0C62CD148886C906C8948262D4A8D2333979F7294C863A79C398C14CA52098D6C5CC4F312E4431B2995CE73A914A40C68E40A466D8948263AA2CB4CE68CCD63322636469091CFCE8A594263B14852DCE7594AEF505C53426E84E68894D7A4261B910F27AC89E4309640B8DA594CDE7F5984F27ACC2794B22CE2EDF847ACB5A8F59E677BBF52D652E2F6BD1EFC71CD679CB31A4330C4ED7A98F259D309EC7998B2FACEA8651898EBE7339E432798C679446B066C9B33CCD54BA9D59B2EC79F9E57675E2D718E3CAF7664D59A4B760A367595DA3171268E8940CA51A372B7124498E4E886CADC1CDB949D9091A4622D4AB82DCF4B451DD1C18E3B9E9E8953466D62BDBD2C3CD4744FCD898E99A512F34D729C9CAB97365A6632D4EDD4CF53937670E4CAD788848D73E7BF138B265164CB7E273CA669B91AF3DB35C6ECE54CDB14B714B1E8625675E3823870CCEDC7951CEB9D74471A3AF4D149A389665E93A30665CC8C32F7F4BF5A4EB1D459969335C7A86BB22EED9BF8759E1E4E7D472C9EE7167D652EA65AECF5267959F54FD26671739C36B6D4EB3AEE70E4D5DF89CD9B3B6FA9CEF236759C5E8E3D38EB7A9F5912D43672F330BB358E93848D2595BF133726C7CB63E42B5ED19EECA50B348E336862F51352D670C47463C2698F17A8EAC788C5E4E57932C783D474E3D3FA8DB162F51D78F1239DAE56D72C34F5E06CB0AA3A963490F95233A9AE37857A0978923AA748C672039E50488714693918CA456A1D149D19398BBC03AA332D6438D651F7BEB1898EB7905DE9C8F289E5F58C5C754B37ACC2796CC5E56C873B184E2B94AC22CCF9871906B1D3165A951CEA60F27AC898E87900E4794018F13BC2965F59CCD8731E9C7B71D91CDEB3786A0F354CB8E5F599ED66F0D7AD0D4FACDA3ABDBA9E34737ACD1673378B17A6F663ABF59B63D5FACF096A1FA4B8EAABC4CF6B17A6FA4C5AA5E93B31EA97A4F97C7ACAF13AB1EBBD662F172BD3AFA686A57A4D56A13F13E6E1C43D66D1E21EB31DAC7658F71E54C4A68F216BD3F1348EB13F1338CDE35EAA9A2B98F3A3AB5E92D6A97A49898EE6D10E8E6F84AF4877E9F88C1BB2655467DED932CABD250B2184CA9E43094F72A9B21D09CC87335154D89B21CC5CC55C5D89B279C894CAB872913CC44A64F31AC5C744596A473C6468A644B1BA916A473A996A619C6AE467264B992E630C3B1A919B90B9C2E3A148A5239D4FD657784C4C6FCE273F5987782EF4618DF9FD654721CBDE0D652E18EA7327BC30EF4879461DAEC594B59BD67077A3EF89876BBBBEF582CFEB387BDF58BBD189DAF4967F595DFF00ACF35661F7A30ED7A3F08F589E6B38166F58FBDF58C3B5D53CBEB3196531965337906138B6964319CC97333948D48DCE2AE71F79EB3072173171AED7477BEB2E197D6727315199713B5E962CDEB3AA39F63C98643A23976276A76BB9EA3D644B35A38E597D64F7DEB1876B7C996FC4E5C92B0964B31948D459312FA9A4119D9A419B696E1B18CE07459325635638A7033E43B258EC9EE8D6B52B9E30368632D62AF03584685E49A50C7475E9DF2B334914A5466D66BD5C39EA23CB9ED753CD8E7A0967B30C62B3E4B3872C8D6792CE7C92B351A9194D99365C89A34DE1A3483A2121DD10C74C32D1BC751479FCF40F2D19B19ECD7A6B53EB37C3AADFA9E1BD4578978F574FA93B53D37D868F58B6DCD757AA52C6F73E674DAFAF13A326B79A1D49899639B5F9AE4CF272E46CEAD4E4E79339251B351D78C73CADB2794E878FD42E435AE92B1502E302F95171434B531C65AC68D228689ACEA563358401171EA4ACD6F8B1D9D118518E2951BA9A3358ADF151D5068E184E8D566F598AC63A9CD233965473CF398CF3930C6F3CBEB39E794CA797D6632CBEB2E2C8D6590CA593D6672C866E66B1B9C5ABC84F7864E42E62E2F6B6EF03BC30E60E6262E37E717399290EFD630C6960D91CC0E4430DC814CCDC89E618B8DFBC25E4F5997392E43167168F201936055C798C929899DDE94D8EC0405730FBC330DC62E2FBC1ACAD1900C4C7447335E26B1D47ACE2DCA5264C4BC63BE3A97E92D6ADAF13814C1CD99ED8CF647A51D63F49B435AFD278EA6CB8E568CDE319BD38F723AE7E9348EBBD6786B33F494B3BF499EC62F4A3DE5AEF59A475BEB3C08EA1FA4D63A8F593B18BD27BF1D5DF883D55AEA78B1D4FACD16A5FA4CF6B1E9BD496A2FC48798F3FBFF58FBE1DA9D8EC7945DE1CBDE87785C3B5D3CE2790E7EF3D61CE317B5BF7827331E7139970ED5B993CE66E41655C6F1994A673A916A4531BAC852C8737315191313B5BBC84BC9EB21BD8CDC8B876B67905CE61CC2E71876BA5640EF0E7E70E71876B77905DE18738B9C62F6BA3BC0E730521F30C3B5BF3B25CCCB98398618D39C39CCB98398618DB9FD61CE63CC3E6186378CCA7339F9A87CE30C6DCE3E730E60E7189DAD9CC9E633E71738C31A3912D92E6439971645364F310E64B9971A9C5A7314A5B98738D4CB863A633A348E539148AE71898E9796C5CCCC548AE62626347225B2798565314997191958D4818E8520E6F5992907314C6EB7348C1339A333786444316E0910F61CA64398D315CC4B990E66729831AF79E862793D673BC84BC831671743C9EB3372B31EF039CABDAD1885CC2E62AE2EC4D93CC44A4167153918CF20A73319CCD48E9C789CB28966AF1319488E62E37DAF4316A1AF13AA3A86D753C884E8E9C790CD8E7CB83B5BE60503384ECDA2CC39660E4467389AB665364232638F5131C4AD6354326C2C262D3294894293A22F6B68E4A358E6F59C2F25788BBEA262F66BD35983BFF0059E6FC23D61DFF00AC987A6F4259BD6672CA71BCE4BCFEB1DA7A6EA964F599BC8733CC4BCA5C5F4DD0F212E673BC82EF0B8BD8E8E607239D64079061DAD5CC39CC1CC14C62F6BA54FD65731CCA6529930ED6EE62E732E61731313B5AD89B21484E4317B57604263B0BDA602B0218F3C43B03B3A109942A0A90A2A828BA2687CA5245244D467CA2E536A172819D051A72072819D0D22E828889450E82804996A4C9A1A44468A6CD1647E93145223363759196A673A2D19C66C6CA65739858D4862637E71F318730F9862636E617398F30730C4C6DCC1CC65CDEB0E629DAD9487CC65CC1CC0C6BCC353A32B0B0637E725C8CB9839818B6C97213910E455ED69CC1CC6762E60BDAD398398CEC2C18D5487CC6561CC0ED6BCC1CC67CC1CC0ED69CC1CC67CC1CC0ED6AA41CC65CC1CC0ED6BCC1CC65CC2E62E2F636E7173FACC5CC4E6317B1B7387398738B9CB89D8DDCC97332E71390C5ED5B98B988B15970ED5F3149998D30635521A99958730C4ED6EA652C873738F9C6276BA3BC177861CE4B98C3B5D3DE0D64395641F78317B1D7DE077872F781DE7AC61D8EA590D239BD670F7A52C8316707777DEB13CBEB38FBD1AC84C5F4DD12C9EB33964F5993C84399717B1A3C9EB25E432722798B8BDADB9FD65299CFCC5290C3B5D0A61CC63CC3E6189DAD1C899488E625C81DA25232932A4C8669B919C990DB3468868ADE08B37C6DD9825B9D18D12B163A71B3A23239A06D1672AE378B56CCE43B25B224E24C2E897225C8AD4E2D3984A7B98B993DE171B9C1D8A6A8CF26439FBD22590B8E938357908790C5CC97318DCE0DBBDF58D6539F9839861DAE97949793D663CC1630ED68F23F48B9CCEC2C276B4E70E733B0B0634E71F319D8D321DABB1D9161613B5A2914999290D48961DAD930B3352072329DAB7217319B90B98ABDADB9839CC39C1CC98BDADF9C0E773018BDAC7987CC65CC3E63A62634B1D99730F986276B5B032E7F58F9C618D514998A9FACA530CE342919738D4FD6431A92C9E7173031604730F98262C744730F98898AA1D13CC1CC0C50C8E60E7226354CB5230E71A98C4C6B61665CE3E71898D398398CF9C398618D398398CF983981DAD6C6999730D4861DAD931D99290F98876B4B1D997387383B5A362B23985CC55ED5F30AC8E60E60D76AEC56473073157B5763B33E61F303B576519A65A903B430B1362B076AAC2C9B2903B458580835388B06C42B2AF686C96C6D92C182C2C4054ED163101530C043443B4C621EC130589B064B2982C39828540C57312D850340C2B1D8A86915A9C45B173154430BDA7CC35320682F6B4E61F319A288B8AE6173084130362B1D12D1530594993434818BB0E62496C876AF985CC4361668C5325B0B25B0B818A82C2C2E1A5B9AC1D192293A254EDD744645AC873738F9FD66713B1D5DE7AC9790E7EF04F20C2706CF212E662E62E718DCE0D253337225B159A6A7157392E44B62B0D48761648EC2E18C4161314164D8584C55859362E62618B0B239839818D2C2C8E60E61876AEC5CC43909C861DAD39839CCB985CC4C5ED6FCFEB1F39CFCC1CE30ED6DCE1CC65CE1CE4C3B5A730B988E61390C59C56E4067605C5ED60A63E7D8E65907CE74C631D3CE1DE1CDCE1CE30ED74F783EF0E6E70E71898E9EF07DE1CDCE3E7189DAEA5903BC3979C7DE13B4ED757781DE1CBDE0779EB1876BAFBC0EF0E5EF43BC1DA9DAEBEF43BD393BC0EF0769DAED5943BD391651F784ED3B5D7DE0BBC39BBC0EF09DA76BABBC1F7872F783590625E2EAEF07CE72A9FAC7CE319ED74F3877873F781DE0C3B5D1DE077873F780A64C5ED74A994A673298D4C9876BA7BC0E739D4C7CE313B5D1CFEB0E730E60E618BDADF9C39FD663CC1CC17B5B738B9CCF984E4171A738F9CC79839818DB987CC63CC3520B8DB9CA533052293098D7987CC6698590C6AA452662A452910C6AD89B22C2C18AB158AC4170362002E9800045D4C31580BC418763B2406A62EC2C9B18D4C3B1082C186164D8594C558591CC2E60B8D36023983982C8BB245CC1656A4008562E60B8D131D99F30D48898B026C760C310AC2C261D050AC761303258DB25B2C6B099360D89B34B8762B26C2C1876162B0B062AC76458EC8B8AB0E6F593616170F983984221876162185C1600140C26268A62686AE240622EAE0B0B109830DB1592D8AC18AE60E621B2798B8634E60E633E61730C31AF307399730B98B8B8D5CFD62E732721730C31AF307319730730C5C6DCC2E633E60E62618D398398CF98398618D7990599730F9898634B033E6018B8E1E60E633E61A676C631A730731161630C5F30F98CC6319C5F30F988018634E60E622C5630C69CC1CC6763B1862F983988B01898BE61F319D85831AF30D4CCAC7630C6CA43E63052294898635E61A9197309E44898978B7531F31CDDF2F494B2A261DAE8E71731877C86B22630ED6DCC35232E6294898635521A919A6522531A29156422919A98AB1D9252466A61D8EC122944CE989B1596E22E51A626C2C74145D5C16342A1A4354D3290245244D4C34C76248744D302290922D21A9800A487CA4D5C4032F945CA4D5C40517CA1CA5D4C408D3945CA5D11414572850D4C4D05174143511432A85435312C965B25975709898D92CBAB84D8AC188AB8763B206164558AC4035A9058580243570EC762A01A98A521F3198EC698BB1362B136359C573073322F71D8314E44360D92D962E06C5626C4D9A8B876164D8594C558593616431563B22C2C2E2EC2C8B0B0B8BB0B26C645C50123434C500864D305899541CA4D5C434265B42E51AB886265D09A2E98CD92CD1A21A3529886C96CA64B34613626C192D94C3B1589B1360C3B159361655558593616315561CC45858C1763B6676164C5C69CC3E633B0B2618D3980CF980618F2BE10BD2690CE99E2F7D3FB6FD435A9CABA4BF51DF1DAF45EF46699699E0AD6E75D27FA914B88EA574C9FE55EE1DACFA15EE8ACF0FEA96A7FB5FF002AF707D52D4FF69FE55EE276A7A1C9EEA6559E07D52D4FF69FE55EE1FD52D57F6BFE55EE1DB53F4FC9EE39519CB251E33E23A97D727F957B897ADCEFACFF00522F6ACE857B3DF6E6B09D9E07C3337DBFEA452D7EA23D327F9513B69E857D05859E0FD52D57F6BFE55EE0FAA5AAFED7FCABDC3B6A7A1C9EF58ACF0BEA9EABFB5FF2AF70BEA96A7FB4FF002AF70ED3F4FC9EF73112CB4789F54753FDA7F957B897AECF2EB93F522F69FA7AF6BBF56691CDEB3E7FE179BEDFF52296BB3AFEBFEA44ED6BD0AF6E79EBC4E7C9ABAF13CB7ACCD2EB3FD48879A6FACBF50ED59D17A6B57BF5348EAB6EA78FDE4BD23EFE6BFADFA876B5E8C7AFF0ADFA9B63CE785DFE4FB6FD45AD6665D27FA90ED4BD17BCF535E2543529F89F3CF5799F59FEA435ACCCBA4FF5227633E83EA31E54CDE2ECF948F13D547A65AFFF00957B8B5C675B1E99BFC91F719BD3AC7E9EBEB625A3E47EAE6BD7FE3FF923EE0FABBC43FB7FF247DC67D2A7E9F93EBD168F8EFABFC43FB7FF00247DC1F18388AFFCC7F923EE337A3C93F4DC9F68917189F13F18B897DD1FE9C7DC57C64E26BFF33FE9C7DC67D0E47E9B93EDB948713E33E32F13FBA7FD38FB85F193897DD3FE9C7DC3D0E5F67E9B93ECDA151F1BF18B897DD1FE9C7DC1F18B897DD1FE9C7DC5F4391FA6E4FB3E51A47C5FC62E25F747FA71F707C63E27F74FFA71F70F4391FA6E5F6FB7512944F87F8C9C4FEE9FF4E3EE0F8CBC53EE9FF4E3EE1E8723F4DCBEDF734147C37C65E29F74FF00A71F707C65E29F74FF00A71F713D0E47E9B97DBEE9148F83F8CDC53EE9FF004E3EE1FC66E29F74FF00A70F70F4391FA6E5F6FBE4551F9FFC68E2BF757FA70F70FE34F16FBABFD387B87E9F91FA6E5F6FBFA0A3E03E34F16FBABFD387B83E34F16FBABFD387B89FA7E47E9F93EFF94394F80F8D3C5BEEAFF4A1EE0F8D5C5BEEAFF4A1EE1FA7E5F67E9B93EFE84D1F03F1AB8B7DD5FE9C3DC1F1A78AFDD5FE9C3DC5FD3F24FD3727DDB159F09F19F8A7DD3FE9C3DC2F8CBC53EE9FF4E3EE2FA1C8FD372FB7DDD8731F09F19789FDD3FE9C7DC1F19789FDD3FE9C7DC3D0E47E9797DBEEF9909C8F85F8C9C4FEE9FF004E3EE0F8C9C4FEE9FF004E3EE1E8723F4BCBEDF6EE44B91F13F18F897DD1FE9C7DC2F8C5C4BEE8FF004E3EE1E8723F4DC9F6D64B67C5FC61E23F747FA71F707C61E23F747F923EE2FA3C97F4DC9F66D88F8CF8C3C47EE8FF00247DC1F18388FDD1FE48FB87A3C8FD3F27D981F1BF18388FDD1FE9C7DC1F18388FDD1FE9C7DC3D1E4BFA7E5F6FB31F81F17F187897DD1FE48FB87F187897DD3FE9C7DC3D1E4BFA7E4FB348A48F8AF8C5C4BEE9FF004E3EE0F8C7C4FEE9FF004E3EE1E8F25F4393ED684D1F17F18F89FDD3FE9C7DC1F18F897DD3FE9C7DC3D1E49E8727D9823E33E30F12FBA7FD38FB83E31712FBA3FD38FB87A3C8FD3F27DA12D1F1BF18B897DD1FE9C7DC1F18B897DD1FE48FB87A3C93F4FC9F63433E33E30F12FBA3FC91F707C61E25F747FA71F717D1E47E9F93EC992CF8FF008C3C47EE8FF4E3EE17C60E23F747F923EE1E9724FD3F27D7B133E47EAFF10FEDFF00C91F707D5EE21FDBFF00923EE2FA757F4FC9F5AC567C97D5ED7FF6FF00E48FB83EAEEBFF00B7FF00247DC5F4E9FA7E4FAD1D9F23F577887F6FFE48FB83EAEF10FBA3FC91F70F4EAFE9F93EBAC567C97D5DE21FDBFF00923EE0FABBC43FB7FF00247DC3D3ABE8727D68D1F23F577887F6FF00E48FB83EAEF10FEDFF00C91F713D2A7A1C9F5E33E43EAF710FBA3FD38FB83EAF710FBA3FC91F70F4B91E8727D80D1F1DF57F88FDD1FE48FB87F18388FDD1FE9C7DC4F4B91E8F27D921A47C67C60E25F747F923EE1FC61E25F74FFA71F713D1E4BE8F27DA243A3E2BE31F12FBA7FD38FB83E31F13FBA7FD38FB87A3C8F46BED1A0A3E2FE31F13FBA7FD38FB83E31712FBA7FD38FB87A3C97D1AFB3A25A3E3BE31712FBA7FD38FB85F187897DD1FE9C7DC3D1E47A55F5F2467247C9BE3FC45F5D47F923EE17D5DE21F747F923EE35E9723D2AFAA910CF97FAB9AFF00EDFF00C91F70BEAD6B9FFE37F923EE35E9D3D2AFA66C96CF9AFAB3ADFEDBFC8BDC1F5635BFDB7F957B8BD94F4ABE91B259F3BF55F59FDB7F957B85F55B57FDB7F917B87654F46BE882CF9DFAADABFEDBFC8BDC1F55B57FDB7F957B8BD87A35F4562B3E7BEAAEAFFB6FF22F707D55D5FF006BFE55EE1DB57D2AFA10B3E7BEAAEAFF00B5FF002AF707D55D5FF6BFE55EE1D94F4ABE82C2CF9EFAABABFED7FCABDC1F55757FDAFF00957B87655F4ABE86C398F9FF00AABABFED7FCABDC1F55757FDAFF957B89D94F4ABE82C0F9EFAABABFED7FCABDC03B29E95721F5DD95EC3CBB43C2E3A89CA78BE11ADC5A4C59935C98A2E718CE724EADDCE0A31B4E4DCBED59F227DF76075BA4D2F0CBD467E150F826A1F1294727C216A64F0AB824D358DABB493B7737B1D5E861A9EC67047C3652D3F1870D469F4D9B2CDCF368A71CD2846538C5461A994A2DD28ECA5BB4E91CDC07B3BC2F59D98C5AFD56396A3539355970CB1BE35A5D0284611C6E2D2CD16E4DB9CBA3DB957A4FD31F68F1EABB4B0D16932F16CD934DC571FC22187887998B14755AA5394E2B1ED892EEED36972CB1AB5CA9BF81ECE76F789E7E1F0E0DA9D7F1AC99A79BBCC5A8C7C7D689462A14A0E59232496CDF549B6978203CAED5702E1DC2F8570ED56854B166D4E6CF8F2E1FAA9A7D728C60B138C94F0C5256E7254F7F351E160E1BAAD4F0FD56B716272D3691C1669DAF339DB51DBABB69F43EBFB6FC5F52B83E974BF5738B67C9A994DEAB479F8F4788E2508F23C6DCB1C546DCB99D6F5CA9ED67C860D3E9B270FD566CBAC58B5189C3B9C1DDB977D6DF379CB68D2A7BF5BD809D0E8B3F12D7E0D1E931BCB9F3CD63C705E2DBA47BFDAFECF70BE01AAE111D06B336A74FABD22CD9B3B49A949659E393C6A979AF92D26EF7DD9E6F67B8EFC5FD765D4AD169F59DEE09E0E4CF29C5454D537170945A756AEFA499EEF6978EF05ED0693B39A2C1A7D2F0E8E1C11C5A9D4635A89FC153CB91B825293E68A5253B49BBD93F0039F53C0B82EB3B3D8B8A70896BF0C63C421A1CB8F57384DE4E78B929C1C62AAB95DA7756B735EDA767385F66FB41F5396838DE870E3D54B1CB57AB9C722CD8A32A73C70EEE17B6EBCE6BC2FC4AED4CF84E68E8749C2B8F68E5C2B4B9563C5830E0D4779152FAFCF939F1C54A4E95A4FD092A42E21ADE1D8BB278380438E4388CB37118EA65AAEEB32C3A5828CA0FEBA2A6DBE6B6A317F58AAD81CBDA2E03C3343A9E06F8565D64F4DC4F4B1CF27A9E4534DE59C1D28ECB682756FE937EDC767787766F8DCF87E2E1DC6B471C5A99E3F84EB724671CF8E2EB9F1C56385DECFAB5BFE32FB53F51F53C3FB3D8B49C7F4BA97A2D3C747A8EEB0674E179724DE45CF08A714A4955DDF87895ACD670CC7D97D3767DF1E5AF59F89C35393571C197BAD263517074A71526DF3733497F51756042ECBF0DE39C274BA9ECEFC3B166CDC4F1F0DEEB5B384D649648B719C5C62AAB9775BD5ADCE1ED5707D0F0678B168F47C5A09CA4A3ABD6C5431EAA2B6E7C71E54D2BDFEBA5B347BDACE39C3381F1CE09AAE0FC5B49ACE17C1F5709E1D0E0C79E3966AD39E59CA78E3173972A4F7DB64952387B45C5F40BB2D978669B8BE4E339753C4BE1CB2CB14E1DCC54251A7CE93E793926EAD79AB7607C71D7C2F86EA78CF15D370FD163EF353AAC8B1E38DD5B6FF0052390EFE07DCAE39A37AA8609E15962E70D46470C7249EEA5249B49FA80FAACDD85E1F87B5BA4E0FADD4F10E1CF8864C587457A68E49CDB9776F26484A709628CA4B9A2A9BE57EADFCED1766787716E233C1C27276875F8F0C1BCD2D37068E59C25694572C733D9F9DBB6B74953BB5F4F8A1A6E2DDBDE0DC7B06BF81AC78388E3C9ADCB1D7F75CAA1384B68EA251938A8ECB92096D4AEA9783C2B45A7ECDF14D4EB38B711D360CD3C1963A29E933E2D628E4979AE52EEA6F95A8C9B5756D2F4303AA1D83D0E9B47C5E5AED7CF43930E8A19B0438B68751A5CD89BCF8E1DE4A108CD38B4E7155293B7BA54DAF2F53D879F0F8EA1F12E35C2F44B06B72E853CAB513EF278D41C9C79314B6FE723D69F5D8F6357A2E14F85E4D3767F59A6EF38F2C2B933E7860583162DF23939CEA3CD9629C62DDD45F5B57C7DA2ED86973719E2DA6FA95C3B8AE8A5C5F55ABD3E5D44F3ADB238C76EEF24366B1C5EF603ED0761B4787B4BC6B47C2B8DF0E97C065A9C91D1C96A7BD58F1294DC5C9E2E472518BFEB537E276697B29D98C9930E97366CD1D67C0316B32472F10963B4F4B1D44E4947499128A4E549C9B7CBD3756BB65DA8C3C37B79DA3C7A6E05C363A8C99B57A596AF9F50F2B5914F1CA54F2B85B527FD5AF4247D0E872CF87EA34DA9C7DA3D4E8F167E0FA783D261D76971C14E7A0862591C67AA84B9A2EA5BC13F3553E8C0F8AE3BC1BB3F0ECE67D7F04CD9B2E4D3EAB06194BE14F2E36B243336AA5A7C52525DD2F4AA97A4E0D07008EA3B353E23965379751AB8E87438A328C54F25294E526F6E549C5755BCD3BA4EFEABB6D79BB37C4F58F882D6FC2B88E89ABD5E2CD2838E2D52692867CCD4774D5C975692D8F039BEA87933C78F03BCFC23884F2E582EBDD668C22A7F42963E56FC39A3E903CBCDD9CE298349AFD4E5D1CA38786EA169B552728FF003791B6947AEFBC5EEAD74F4A3AB3F62B8EE0E21A2D164D0B5A9D7E57874F05960F9E6B96E2DA9545AE68DDD559F672ED9767F5DC530E9F59A994786F15C2F53C5A5DCC9F26A64B149C6AAE553C0A9ADBF9C7EB3C9D076D7065E13C6F55AFCD287157AACDABE1E945BB9EA212C7969A551E54E12575F5BB6E07CE60ECAF17D4E9357A9C5A36F168E592399BC908B8BC71E69A49BB74B7749863ECB717CB2E1EA3A397FDE78E7974B738A59231BE676DED5CADEF5B6FD1A3EBB5DDB3E14FB51C173E9B2B7A1CB2CBA9E289639479726A9726A2355E75412AAB4FC05A9ED8F0A7C2B8AE1C5A994B2E820F4BC19F7725DE62C98A1A7C92E9E6F998F9A9D3B9BF1B03E438576678A71AD166D5E874F09E9B04E38F2E59E6C78E3094936ADCA4AAF95EFD2E975693B5D92E30F833E26B47FF006558BBEBEF21DE77775CFDDDF3F25FF5AABD6774F5FA0D1F6135FC2B4FAFF8467D46B749A849629439A2B0E4E75BAAF367351EBBD5AD8F7B89F6CB4FAAE090CFC3F8970FD2667C2E1A1CDA49F0A8CB52DAC4B149473727D6492BB734D2755B01E6F623B09ADE2FC7F8364D7E8164E19ABCF17384B3C6193262E6A94941494DC7AF9C956CF73C9E1FD8EE33C6307C2341A353C33C92C78B9F3431BCB25D638D49A736B6DA29B3EB78571CECF64ED8767FB45ABE32F46B45874D8B3E8BE0D925384B14142E2D271707CBCDD6F76A9B3CBC3C4382F16D0F019EB38BBE1997832963C985E0C9379A3DF4B2A9E2714D733E6A6A4E3BA4EC0F0386765F8AF178669E934A9434F358F2E4CF96182119BE91E69B4B9B67E6DDFA8EAD3F613B41ABD361CF8341CF0CF8A59B0AEFF1A9658C5C93E48B95C9AE576926FA3AA6AFD8D7F1CE15DAEE1BABC3ABD74782E57C5F53C460B2619E4C79219B97CDF3137CF1E5DAD5352EA8BE1DDA6E19A6ED2F623513D635A7E138610D5CFBB9FF0036D67C927B55BF36517B5F5A03E4385F09D671AD72D270EC12CF99A72A4D2518A56DB6E9249756DA47762EC8F17D4711CFA3C5A7C53C9A682C99B22D562EE611754DE5E6E4577F6C7A1D9ED670AD0C35FA4D4F1078B1F18E1F2C33D447049FC1322CCA4A324B7945AC71B714F69F474CBE1F978462E0BC5BB3D978CE2843539706A30F108E0CBDD4E58D4D384A3CBCF5FCE5A7CBD63D3703CE8762F8EE4D76AB48B412EFB498A39B327920A31C726929A9374E3E72DD36AB7E89B3A3F93CED22C9287D4EB92873C12CF89F7D1E5E6BC5E77F3BB6FE659ECEB7B4FC2D705E21C374FAB964EEB82E0E1D8333C728FC2671D4ACB26955C524E497356D15E2E89E1BDA7E1D83B47D87D4E5D5B8E0E138210D5CB926FBA6B3E4935556FCD947A5FA00F9DD5707C3F14F49C63493C8EF3CB49AB84DA7C9912E6838D25E6CA37B3DD383DF7478C7D4EA651D07935869F234B3714E24B558A1E2B0E284E1CD5E09CB2492F619F2C07B9D89E1DA6E2FDB7E11A0D763EFB4BA9D5431E587338F345BDD5A69AFC4C9E27D93E2FC2F432D76A749C9A68E4509B8E584DE293BA592316DC1BAE9248AEC4F12D3708EDBF08D7EBB2F73A5D36AA1932CF95CB9629EEE926DFE247AAF5FC2382702E310D1F14FAABA8E2CF14638FB89C3BA8472AC8E591C924E4DC52A8B92DDEE078DAEEC9718E1BC33E1FABD1F77A75CBCFF00CE4253C7CCAE3CF04DCA17E1CC959E871DEC26B381E97846596A345965C4A11D96B30563C929CE295A9BB8D45379368A6E9B4D1ECF6D7B5F838AE0E299B86714D0771C5A51964D1C3854716A52E653E5C995417372C92DD4A4DD23C2ED06B741C4BB31C02783591F866874AF479B492C73525FCEE59A9A9572B8D492ABBBF0036ED0F93FE23C135B93161960D643168A3ACC92C5A8C4E5187263736E2A6DD279124FFAC9732B56D795A5E1B8B498F49AEE378B52B87EAE33961F834E0A79795F2BABBE5576ADA7D1D27BD7D57D5AD06A3B7BC138868B53F0BC7AFD3E0D06B3471C535931C5E18609C5DAA95A726A9BE8AE8CB59F50B51DBBF80715E218F0F08E07A75A4C0E50C8E3A99E3D9A6F1C64E2A791CE4DA5D1BADE80CB2F63785AD643591D46B31F075C25714CB09F2BCF04E6F1AC5CD4A2DB9D54A96D2BA38B88704E09871709E298F3EBF0F08E21DF47241C619B3E1C98AAE29F9B1927CD069ED4A4F675BFA1F56B473E37C5B0F14E35A6D569B8D685607AAD1E9F2C71E96519C658E3C928465CB1EEE2AA29D26AADAA3838966E19A9D0F07ECFE9B8B615A6D1BCF9B3F10C9872AC4F264ADA315173692C7057CBD5BD92DC0E3ED7F04D2F05ED2BD170C7A8CB825834F971F7D4F23EF314274E925D655B1DBDAAEC9E93B3DD9DE159F1EA32E5D7E6CD9F06B62DAEEF1E482C6F9234AEE3DE72B6DBDE2EB63BBB45C7787F0FEDB70FE3BC2359A2E33DC60C30EE658B3C14278B0431A93E68C1FD72728B4FFAAAEBA1871DED470AE25D84D06834DC2F49835B0D567C928E39EA24F029775534E736A4E7CB24D3BAAD926ED87C7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001DFC278CEB7816AE5A9E1D963833CA0F1F79DDC6528A6D3B8B69F2CB655254D783385B6DDBDD800080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFD9, '1', '2023-05-24 14:41:23', '1', '2023-05-24 14:41:23', b'0'); +INSERT INTO `infra_file_content` VALUES (6, 4, '22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg', 0xFFD8FFE000104A46494600010101006000600000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828FFC0001108022303A903012200021101031101FFC4001C0000020203010100000000000000000000000102030405060708FFC4004B10000201030204020703090506060203010001020304110521061231415161071322718191A13242521423436292B1C1D1F015337282E108245363A2F116254473B2C234D235549364FFC400190101000301010000000000000000000000000203040501FFC4002C110100020202010401030402030000000000010203110431210512324151222371131442813391B1E1F1FFDA000C03010002110311003F00E8C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C061009BC27296C9756DE17CC0360C2347A871770EE9D371BCD6ACE335D611A8A525F05934957D29709537857D5EA79C2DA7FC5203B7C21E0E123E95B855BC4AE2F23E6ED6467D9FA44E14BA788EB14A93F0AD0953FDE80EB3018312C751B1BF8A958DEDB5C27D1D2AB197EE665B4D75FA806030080030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000030180000C06000060300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040030100B70DC0602001EC2C806007901000C04003164031E19F100C90AD569D0A33AB56A429D282CCA7378515E2DBE870FC5DE92B47D07D65BDA496A37EB6F57465EC41FEB4FF823C5B8A38BB58E26ADFF00995D35413CC6DA97B34E3F0EFF001DC0F56E2CF4B5A7D839DBE81495F575B7AE936A8C7DDDE4792EBFC55AD6BF524F53D42B54837B5184B929AF7457F13480025B74C2F71210C058419C770180529CA954E7A527092E9283E57F34745A4F1CF12E97CB1B5D5EE5C17E8EB3F591FF00ABF99CE760F701EA5A57A64D529623AA69B6B751EF3A5274A5FC51D7E97E96F872EF0AF15D5849FF00C4A7CF14FDF13E7F8C652961636F11A83E7718B59C67279EE84BD92FABB4BD7F48D5629E9DA9D9DC37F76155297C9EE6D1E5754D7C0F8F1465196526A4BBAEA6EF4AE2CE20D270AC757BBA715F725539E3F262276F352FAA101E0DA57A61D72DF0B51B4B3BD8F7924E94BE6B6FA1D7E95E98341B8C4750B6BCB193EFCAAA417C53CFD0F5E3D280D2695C55A0EAB8561ABDA5593FB8EA72CBF65E19BB59C67B3EE0000810000C0040030100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C0040300100C00403001806030000180C00006030000180C00006030000180C00006030000180C00006030000180C00006030000180C00006030000180C00006030000180C0000604FDE002C8F01801218603002186030000180C0000600000301D80406B35FD774BE1FB4FCA357BCA76F079E58BDE737E118ADDFF005B9E35C61E95B51D4BD65AE811969D6AF6759EF5E6BDFF0073E1BF981EA7C59C69A370C4251BFB8F59778CC6D28EF51FBFF0AF36789F17FA44D6B88F9E842A3B0B097FE9E84BEDAFD797DEF774F238E9CE752729D49394E4F32949B6DBF16FB8202292C0D741800B025E04BB11EFB01916D0A0D7355A99935951DD2FE6DF974F30B98DBC331A7294A7E4D34BDEFBBF76DE66380020049B592EA54975646D6884AB49B2A8A6DAC7864B79542196B77D09528F349BC791672F3D551ED1FDE5537DAFAE388574A1CB0DFE24ADE19E69BEFD0B251E692A6975EA59CBCD8847E2FC110F72D8AAAA31FB753A2E88152CC378A6E6F6CF645F18296DD29C7AF996462B79CBDC97F5E247DC9453F2C495AC252C4535B767DC8FE452739AA735ECED968CF8C1D38F3359A92794978FFA162A388AA307ED3599CBC108CB31F64E0ACFD34CED6AA829FAB6E2DE135BE7DC6C34CE20D6F4897FE5FAA5EDB25F7554972FC53D8CD496F512F621B535E7D33FC097E4FCD185269369664DF45E2DFBC94723F284F1227A96FF004AF4B9C4569857B0B4BE82EAE74F925F38E3F71D8697E99349AC92D534FBBB497795371AB1FE0FE8795CB4EB7AB871A6A2E7F670F188AEB265153464D668D592CEE94A39786F0BA7764E33D7ED5CF16F1D797D17A571AF0DEA8D46CF58B5E77D21565EAE5F2960E82125382941A945F78BCA3E4BABA4DDC72A318D55FAAF3BFBBE84EC752D634792767777B68D7FC3A9249FC3A16C5EB6EA54DB1DABDC3EB24C0F9E34AF4AFC4D67CB1B8AB6F7D05D557A78963FC51C7EE3AFD2BD3358D4C4755D26E283EF3B7A8AA2F93C32483D6323CF91CB695C7DC2FA9E150D5A8D29BE90B84E93CFC763A5A1529DC53E7A1521560F752A72525F402C4C05B744C780000C06003618B0180180B0180180B0180180B018F30180B7040300000000F880007C43E20000000000000000001F10C00006030000180C00006030000180C00006030000180C000060300301E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0402C82E8090F00201E0300201E040001800001645B201E70808C9A8C5CA4D28A596DBD92F13CE78BFD2A699A57ACB6D1231D4EF16CE6A58A107E72FBDF0DBCC0F40BEBDB5D3ED2A5CDF5C52B7B7A7F6AA559A8C57C5FEE3C9B8BFD2F25CF6DC2D4549F477B5E1B2F3843F8BF91E63C43C41AAF115D7AFD5EEE75DA7EC53FB34E9AF08C7A235880BF50BDBBD4AEE775A85CD5B9B89BF6AA5497337FE9E48C7EC31600100D4E518B8C64D27BBC772FB7542341C9CA1EB54B0954CF2E3C70BABF7EC063650CC8AD5693B6708E2756524DCD41452493D97C5EFEE463A001012842529258C6773C99D3D8899E90C76C6E591A5952727D1E305F18284338274E18A2F3DDF3155B27E17D717E554A188E12EBB1638E20C9B8E7925EEC939C32A3B759156D7C55184542965ED844A9C3D5D1E692DFAB2CAB0FCDA8FE2691655865535E324887B938AA98C1D3A7BEF399646938BE44F7C666FC0BE70FF79A4FCDA26A2E2EE1B5BAC24426C9C554C60A52E55B423F565908293E779E45BC578AEECB7D5E210A7BFB6D27FBDB2D504EB36F68528FB5E197D88CD938AA8A716B15251CD497D98F82F326A9E2128A96F9FCE4FF007A3229D39EED24AAD57ECA6BECC49C69C54309374A1B25DE72CFF321364E2AAA14FDAA788EC97B10FF00ECC94609C7F1A72DFF00E6CBC3FC2642A79E6527BCBEDB5B6CBEEAF0F37FC4B1437949EC94536D6DCABB25E0D91F7A71563AA6DB9737B4DBC49AFBCFC1792EECB234F32CECDFC965757EE5D0C985269AF6526B6E55D13EAA3EE5D5B250A5B613CAC24B2BAA5BFC9BDFDDEF23374E2AC78D27B633D161FDE59EFEF7DBC116469296DECE36DBAC525D17B975F37E465428E7AF8E7DF9FEBFA46453A3DCAE72692F67E5A8A9A45A57DEA5BC33E2B67E5FD7898D57852DEA67D4D6AB4DF83F691D3D2A0B1D3AEC6553A1BE7079FDD5E9D4BC9E2E3BF70F3FAFC23A8462FD4CA8D64BB7372BF933129D1D73449F3D057D68D7DEA52925F4D8F55A7476DD33269D278DB24E3D52F5F946D4DBD3296F8CE9C0E99E9438A6C311A97B0BD8476E5BAA6A4F1EF5B9D7E95E9A69ECB56D1E50F19DAD4CAF948CCB8D12C2F57FBDD950A9E6E0B3F346AAEBD1DE93739743F28B597EA4B997C9E7F797D3D5F0CFCA2619AFE95963E33B771A57A49E15D47096A5F93547F76EA9B87D77475569756F794FD65A57A37117F7A94D4D63E0CF9D352E01B8A35671B0BDA37315F8E2E197F534F2D0B88349A9EB28DBDDD371DFD65B49BFFE26DC7CBC393E36865BF13363F9565F5526B23C9F3469DE9178B34A97AB7A94EBC63FA3BCA6A7F57BFD4EBB4AF4D35A3CB1D5B47A735DE76B55C5FECCB3FBCD113B6698D76F690386D2BD2970ADFE155BBAB6551F6BAA4E297F99651D7E9FA8D8EA34F9F4FBCB6B98FF00C9A9197EE60650063C80000301800000C00007C8780100F0180100F0180100F0180100F0180100F0180106E3C060032190C060032190C0600003018C000007C00000360001EDE4180100F0003C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C0606002C00C4D809A1243180B1E618F31800B1E618F3188031E647E219167C403717C479D8D3711F12E95C3B454B53B9E5AB2FEEEDE9AE6AB53DD1FE2F6037293E8B7394E27E38D2B4194EDE9B9EA1A847FF004B6CF2E2FF005E5D23FBFC8E0F8838CB5AD779E8D194B4AB096DEAA94BF3F517EBCD7D9F7239DA3469D0A7C94A0A2B39DBAB7E2D8187C61C5BC45C4529D3BFF596D659DAD68C5AA7FE67D64FDFB791C8E39767B7963077AB2B38233A709E79E1197BE2981C22633B09E9F69533CD6D4DF9A587F431A7A259CBECA9C3DD30398037D3D020F3EAEE26BCA514CC79E835D6792B5397BF280D4761791B09E917B0CFE694BFC324CC69D9DCC3EDDBD55FE560500937D0B614F7CCF29F8742C92585E194576BEBA5B5C533E651A74945A6F76594E399C9F9E0B231DB24A847EDBF06513699F2D35A6906B3CAB7DF778F033EC34DB8D41568DBA84634A1EB2ACE6F1184738CF8BF818D08F227397B92664DA55AD67275E856A94AAA5F6E1269AF8F811F727156CEA70D5DCA34A36F3A35AAB8BA8ADE2DC6B382FBDC9249E36CFB8D428F3D6496EA2B7C7899D4AFAF2146AA775552A9994FDADE4DF5CBEAFE642C650B792AD5A842B24F32A736D27E4DADC84CC7D2CAD67ED4F2F3578AC6D0597EF2C8C154AF17D5437CF99914D50A765525255237339A71E5C7224FEBB7F032656314ABD3B5B9A55214E2A52A92FCDB978F2A7BB6426538861412727525B461D3CDF4FF0042C8D26E0A2D7B551E5AF05E064D5B5A945D1F5D4654E9497343997DBF0C78A1A83E5AADED292597E0BB2F7909B2C885496F2ACB74972C17896C2928B8D396F187B751F8BF3FDFF02E8D34A71CAF669ACE17896428371C4E3BB7CD3FE5FB915FB938AAA84774E7B369D49F92EC89D3A728C60FEF27D3F59F6F8232A342A733724B99BCBCF8F6F822C8D0979ECBE3BF7F8909B271563469C52F18ECF0BC176F7365B1A6D3EBBE72DF5F6BC7E1DBCCC854649EEBFAFEBF81646961BCAF776FEBC3DD92B9B2C8AB1E14B6E985D3C7FEF9F1FE05D0A5E2B3FCFF00AFEBA9930A3E5E1B7897D3A2BDE426E94558D0A5FF007FEBFAFA1934E81911A49B7B1910A6536BA715514E8A5D11914E9742DA74FC8CAA345B28B64595AAAA5476F232E950CF6D8B5429D0839D6928AF3EAFDC63D5D424D38DAC1C7B73C965FC17633DAFB5B5AB2E6A8DB439ABCD457658DDFB918373793B84E14A2E9D2F0FBCFDEFF818F1A72A9372A927293EADBC9974A8F914DAF10B2B45346878A32E9D24BC8B69516FB1930A185BF528B5E6566A1AFB9D3ED2EE3CB776B46BAF0A94D4BF79A3BDE01D0AEF2E36B3B693EF42A34BE4F27674ADFBE0C9A76FE429CDCD8A7F45E610B71F1648FD75897925F7A2BA9ED3D3B525E51AF4B1F559FDC682E780F89F4D9FADB7B49D5E5DD54B4A996BE5867D010B6F23229DB67B1BF0FAF72ABF2D4FF3FF00A60CBE95C7B75E1F3C5A719F18F0FCD53A97F7B051FD1DE439D7FD4BF89D4E95E9A2FE9A51D534AB6B85D1CE84DD397C9E51EC73B1A55E9F25C538558778D48A9AFA9A2D4BD1DF0BEA4A4EBE954A94DFDFB793A6FE9B1D7C3EBF4B7FC9498FE3CB9997D266BF0B6DA9D2BD2C70C5EF2AB9A9736337B62B52CC7F6A393AFD335AD2B5382969DA8DA5CAF0A7562DFCB393CF352F42563554A5A56AF716EFB46E20AA2F9AC3391D4FD10714D849D4B28DB5EA8EEA56D5B967F2787F53A98BD438F97AB7FDF860BF172D3B87D05D3AA6BE00B1E2CF9AA3AAF1DF0A4B96B55D5AD611EB1B884A70FAE57D4DEE93E99757A388EA56369791EF2A6DD397D3635C5A2DE62544C4C76F78F882F79E6DA5FA5FE1EBAC46FA9DE58CDF79C1548FCE2763A5712E89AAA5FD9FAAD9D793FBAAA252F93C33D78DCE3CC31E64775BBCE1F4624C09E3CC31E6473D4398078F31E3CC591640963CC31E62E60E601E3CC31E61941900C79863CC321900C79863CC32832018F30C798C0058F30C798064031E618F31800B1E618F31800921800083E23002403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C0600403C06004264B04700201E0300201E0300210DA238002AB8AF4ADADEAD7B8AB0A5469C5CE75272E58C52EEDF816E3B1E49E9B753AD5350D1F4284E51B5ACBF28B88A7F6FDAC462FCB6CE00B788FD225D5FB9DBF0BAFC9ED97B32D42AC3329FFED41F45FACCE2E9D251AB52B4E752B5C5479A95EAC9CAA4DF9B7FB8B1614528A492D92F0408012EA0313EA02176631302F51A1EA23EDD34DAF6A52CB927E118FF0012BAD2A2E2952A728B4DE5B79CAC6DB7CCAC5D32025B0024DBF22518A5D48CDA212AD265151CB595D4B211C2C2E80D7B2F3F32C82F7E0AAD6DAFAD22152845E6338A7EF4990AB6169562F9EDE9BC774B05F059936D79164D748FE26437E5644301691693A69F2CE2DA5F665FCCA5E874BD5CE54EB4D665F7A29F4372F2A2DAEBE04A294692F0C1099590D0D5D0EB4A11F55569C96CD279442B69574E949A82925BFB3247474A2E308AEEFE84E304B30FBB8C95CAC872F5ACEBC60A52A35165A5D33DC5529BF62124D6658795E075B1DE18EADBD89B8A972A9453C3EFFF0062129C3958414EBC135B4567E3D113845BA5FAD525CDBF6FE91D33B4A13F5AE54619692FB38232D32D9AF66128A6B9572CB08AE76B634D35B57A96F710AD42A4E9CA117CB252DD67FD0BA12E6B78D29D3A4A3093AB29A82E7937F779BAB3653D229FE7392ACD3E9BA4C9C74A9AE750AB06FD992CA6BA15CCCA71A6350B6599FACC479712A8DF45E4FC7DC6CACAC2A56B8A16F4A855AD7355F342DE9C39EACDBE9B748F77BF626AC2AB8568FB389CD548CB394A5E1237FC3BA85D687C471D5A95B39D49D2746AD09BE56E2F09B84BA3E9B7C8F235BF2F677AF0C8ABC0B7D616F1ABAC5DE97A5A92DA3737599BCF5DA2921D9708CB51A8E9E95AB68F7955F4A54EE2719F82D9E7F71B2E20A7C3DC537EAFEEB56BAD26EF9230946EAD652834B38E8F0BAF6787E02D178778434FBDA175A8715D5BC54671A91A16367539A4E2F29736ED74EDBF993988DEA35AFE55C5A62373DFF0E7B54D02F349BB85B6A56B3B5AF532E9FACC72555E31A91D9FCBC0C095A28E5B4E3C8F9669ADE2FCD78799E81E9278B69716CED2D685ACAD74FB7AAEAA7570EBD59358DA2BECAC78BF7F638FAEDD4A97351A4A75528B8E72A315F89F899B34D62D3159F0D1866D6AC4DA352D63A2E2DED86BAAF0F32C8430654E29B7E184967BA274E8EC63B5F4D315534E9F4C1914A8B7DB632214634E3CD51A8AF322EBA5B508FF009A4BF7233DB22C8AAC8D38D38F354928C7CCAE778D655BC71DB9A5FC115AA72A93E69B729776FA9914A863B19ED916C53F2C454E5527CD36E4FBB6CC8A56DB6FD0CDA743F54C9A5432FA14DB26D3E9854EDF1D119746DCCCA543C519742DD49F4582A9BBDDB128DBED9C1934EDFC8CE8505E05D0A25733326E23B6253A0BC0C88505E065429AF02D8C304A98B6AAF9B5D298505E05AA9A5EE262CF99AE986196D9A6472AC024B20B726A1DDEC68AE2867BE5D7724B7E84D258EB91ECB642345716D8F26712DE0E3249C5F552DD7C8D06ABC1FC37AAF33BFD16CE736B79C61C92F9C706FB996E572963A33A1C7C36ACFE9973F2E68FB799EADE86787EE39A5A75E5F5949F48B92AB05F06B3F538BD57D0CEB76CDCF4EBDB2BE4B7596E8CFEB95F53DEA73EBB944EA753B9829927B973B267F6F4F9CBF27E3FE14CF24757B6A51EAE19AB4FE9946CF4BF4C1C416AF9750B7B3BD4BAB7174E7F38FF0023DCE755ACE1E3E269F55D2B4BD4D3FED1D3ED6E5F8D4A49BF9F5FA9BEBC69B29FEFA23E50E534AF4C9A2DC623A9595E59C9F59471563F4C33B1D278C387755C7E45ABDA4E6FA4273E497CA58388D4FD1AF0EDD65DBD3B8B393FF85579A3FB32CFEF395D4BD155CD3CBD3F52A1592E91AF0707F35942787963A8DACAF370DBEF4F7E8C938F32794FA35DC7947CD50D2B8DF86DB958CB50A74E3DED6B3A90F926D7CD1B1D3FD2B71469B254F51A742ED45EEAE28F24BE6B1FB8A2D8ED5F943457256DF19DBE84D86794695E99B4DAD88EA9A5DCDB4BBCE8C9548FF06761A4F1CF0CEA9CAADB58A11A92FD1D76E9CBFEAC64826E9C0852946AC14E9CE3383E9283CAFA12DBA6770180B3E61F101A6C32008000360DBC80790CFB836001E40580C00C04860000B03C0080780C0130180080600201800806002018008060020180080600201800806002018008060020180084484C04C43CEE302204800883189BDC08B10FB86408BEBE6786FA6D83871A59D4BBA557F269D9C395C1E1B4A4D3E57E29E3F89EE0E5D7C8CDD5380B4BF483C06ECAFE52B7BBB7B8A8ED2F211E6951934B29AFBD17DE3F15B81F31DAD7A93A4E549FE5D497E968C7F391FF001D3EA9FBB28BADEE28D7CFA9AB19C9758E7DA5F0EA59C6BE8C78B3832E275AF2C2A57B4836E17F63CD52935E2DADE1FE64BDE72CB58AF52295DC685EC16CA55A3992F74D61FD40EA9BF98BC4D150D56D9ECAA5DDABE98962E29AF9E24BE66C2DEEAA55FEE5DB5DF7C50ABCB3FD89E1BF830337B31331DDE5184D53AF295BD4FC15E2E0DFCFA97E76CAE8FB806E24B2F71A58936BBFD432BAA7B91B6D3AFB7ECD26BA752714A498470D0E1B4E59F12995F1A0A394E2C9C77587D45158A8893596BB34C8CA71012E593F093F9139ADA2FBA61D5A4FA3DFE24A49A8A7E1FB88ED3884A4BF38B1D7F80DC7ECAE98682A47107F42D9AE6C45BEAF0FC8AF6B22092CCE19F796457B537B7640B7A8E5E0B089457D084CA7102114A2B396A3D0B2115CA97559CFBC22B0BFAEA5B18ED821329C4049E5B6F7E8CB29C764BB741C63B2EE5918E3B15CCAC88118BF7BC60B6117EE41158F2C96456CCAE6CB2212A6E49E73D3A3EE6552AAE2B0B65E5D3E5D0C78AD8B63121364E21934ABB4B0B6F76C5929427F6E2A4BCF3FCCAA9C19934A8E4AAD6D2510A95BD26B118B8A7DA2F03FECF8C96232925E667D3A292CCB6459EB147EC2CBF1667BDE165625811D31C379558A5E32D884A9558ED420A4FF00137FC0CE6A5379936DF6C96429F97C0CB6985F0D33B6ACDE6A464FCDEE4E145A7BC5E7CD1BDA54BC3E86442927D564CF64FDED153A3B7F232A951E86E236F4DFDC89646D297E1C7B8A66932F7FA90D6D2A28C9853466AB587552921D3B39D5A8A14E49B7E2BA11F649EF8534693A93E58AE9D7C8D851A2A29248CBA166A8535182E67DDF8B2C74E7DE3847BFD29FB576CDF863C29E3A9351C22CE46B7626FC0B6B894DB2A296037F812C3EE3506DF8234D31B35F2EBCCA18F21AA6DEFD11728A8864D54C2C97E47E114947A03F78F3D7C48B7DD9AB1E0DB1E4CE4C8B60E4B0CAA523A18789BFA61C9C8D1B914CE7E0139F531AA543AF878910E764E46CE753A98D3A9E646753A98D39F99D3C5834C57CBB4E73EBB98F52A75149B6552925FCCDD4C4CD6C8729616FD4A673C7723526634E7D4D35A694CCED29CF76FBF89837B4685D45C6EA8D2AD1F0A9052FDE5952663CE7D49CD627B4AB331D39FBFE10D0AE9B6ACFD449F7A3371FA6E8E76FBD1F4377657EFCA35A19FAA3BC94BA94CA466BF130DFBAB663E4E6AF5679BD2D138A344A9CFA657AD149F5B5B86BFE936965E9278C3486A9DFC95C453DD5DD0C3FDA583AE93F128ACD4E2E3351947A624B2BEA63BFA6527E33A6CA73EDFE509695E9A2DA692D5749AB4BC676D554D7C9E19D8693E91385F52E554B558509BFB973174DFF0023CD2F744D32E9B752CE9A93FBD0F65FD0D25DF08DACB3F93DC54A7FAB34A48C97F4ECB5EBCB5539B8EDDF87D1D6D714AEA9FACB6AD4EB43AF3529A92FA1667AF91F2EC743D634CA9EB34DBA926BA3A159C1FC8DBD9F1EF1A68CD46E2E27714D7DDBAA2A6BF6BA996F83253E555F5CB4B752FA31363C9E33A57A697B4756D23DF3B6ABFF00D64761A57A4DE16BFC277F2B49BFBB754DC3EAB28A963B6C818B637F697D4D4ECAE68DC41F7A3514FF007191CDD4098F2453EC1902404723C80FE0340980125D004832C0B70181E03002C060780C00B0181E03002C060780C00B0181E03002C060780C00B0181E03002C060780C00B0181E03002C060780C00B0181E03002C060780C00B0181E03002C0B04B0180218186030000180C009A22C9342C01122FA326D1092F640A2A4B099DCFA3E9F3E8974BF0DC35F4383AFD19D57A38BEA51FCBAC26D2AB392AB4D3FBD8586979AEBEE03B2949A6F0DEFD7CCE2F89BD1CF07F124A75355D0ADBF28975B8B65EA2AB7E2E50C67E393B1A9DFCCA5B03C0F887FD9CACEA7354E1BD7EB506B754750A5EB239FF001C30D7C62CF31E21F43BC71A1F3CE5A33D428477F5BA7CD575EFE55EDAF91F646770DB39EEBA303E0657FA8E9F395AD6A95A938BC4ADEE23B7C61345B4B52A19CD4B4F54DF59DA5474BFE9DE2FE48FB9759D1F4BD7283A5AD69D67A853F0BAA31A8D7C5EEBE0CF35E20F40DC1DA9F34F4E57BA3D57FF00F5AAFACA7FB13DFF00EA03E73A37F4E4FF00357F4DFEADDD374DFEDC731F9E0CBF5F5634FD656B6AAA9FFC5A78AB4FF6A39C7C4EDB883FD9F7896C79A7A1DF586AB05BA8393A155FC25B3F833CDB58E1BE24E15B87FDABA56A3A6CD7E91D39462FFCD1D981B5A17146BFF735613F28BDFE45CA728BCEFF0013978EAF56AAFF007BA76F7897DEA94D73FEDC70FF0079934353B6D946A5D5AB5D9B55E1FC24BEA3444EBA7450ADBE651CFB8B235A0E51DF0FBE4D4DBDCD4ABFDCCADAEFFF0062AF2CFF00625864E5794A13E5AFCF6F3FC35A0E1F57B109C712B2B96D0DDED2C61AC67B1292CBC799AA849E39A0F6F14CBA175562D65A925F89155B0CFD2EAE78FB6D161EEFFEC4A09E777930A95FC1FF007916BDDB9974ABD1AAFD8AB16FC3A145A968FA69A64ADBA95D05ECF4DBA16423E0822B62C8ADBA144CAFAC1C6392C8ADFE88228B22B6DCAE656441C62B6EF92C4B0C8A5E64E3DCAE6564251EA591F32304CBE10CAF32132941D38BE9832A952C8E851CF632E11505B2CB28BDF49D63674686D97B2F12E528C5620B2FC5905992DFA13843DFFC5996F91756A3DA93DF764E10CF6CE7EA4E30CAED8FA7FA97C29F5CFBB7FE3FC919ED7590AA14FBFC3FAF1F71914E963CFF00AFEB6270863A7BBFD3FEDF32E8C0AA6766D1A70CAFEBFAFEBE25F086E38C4B62923CD3CD946292DC980BAA3C7A6B32694565BD92F1373696CA8D3DF1CEFED3FE053A5DAE23EBE7D5FD94FC3C4D82585B1663C7F72CF972FD422A20F6242C37934D71B2DB220F7054D3EB15F22784BCC5934530FE59EF9515469AEDB89D38F66D12E622D9AA9863EA192F965074FF005883A725D30CB5B20E5E26AA6065BE55325259CA2A94F1D9FC8BA73C64A653F337E2E3B164CCAA53299D4C174A4BBE3E4634F95BE87570E08873F265995552A75C98D39B79C22F9C239786CC79C1EF891D2C7858AF9254C9F8B2994D244EA465BEE998CE35252518425393D928ACB6FC91B298E2144DA64A7516E634EA6722A92716D34D3E9868C69CD78974561184AA5431E73EA4673CF7289489271094E796533975C8A522994BC48ED656A729F52A94B614A453527B10995B1073998F39EEC252289482673914CA48252EA53291EC402522A94B67FCC2522B7227108CCE98F73656B71975EDE9C9F8E30FE871FAC5B50B6BF952B69F3431ED26F3CAFC33DCDDEB9ABAA19B7B597E77A4A4BEE2F0F79CBBCEF9CF89C3F51CD8A67D948F3F9753858F2447BAD3E3F09D0A956DAA73DB55A9466BA4A9C9C5FD0EA34BF485C55A6F2AA7AAD4AF4D7DCB98AA8BE6F7FA9CFD0B3955865D5A54A5D142A3716FCD0AA585D528E65424E3F8A1ED2FA1CA741EA1A57A68BAA788EADA452AA9759DBD4707F2794763A4FA54E17BEC46B5C56B19BED7149A5F35947CEB87BA69A7E62492E807D79A76A563A8D2F59A7DDDBDCC1F7A5514BF71999EC7C776D5AB5AD5556DAB54A351749D3938BF9A3B6E1EF4A5C45A4B8C2EAB4751B75D6170BDAC794D6FF303E8FEC3C9C8F0771DE8FC50953A151DB5EA5ED5BD6694BFCAFEF1D6A0243C105B12CF9017E0303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC037F00160303DFC189B00C013A34EA579F251A73A93FC318E5FD0DAD0E1BD5EB2CAB474D3FF008928C7F881A5DC0E8D707EA78DE56D1F7D46FF008119F08EA914DC55BCFDD53FD00E787836771A0EAB6E9B9D9559457570C4D7D0D6CE32849C6719464BB4961FC98116470C9E4800B72125B1690680C3AD1DB635D55D4A35235294E50A91798CA2F0D3F146DA71DBA1875E9392036FA671FDC5BC553D5EDDD74BF4D470A7EF71E8CE9F4EE28D17516A36F7F4A351FE8EAFE6E5F26797DCDB653D8D55CD9E729C73F003DF329A4FB3EFDBE62CAF89E036979AA6972CE9F7F736F8ED09BC7C9EC6F6C3D22EB96988DED0B7BC8776E3EAE5F35FC80F6211C1E9DE93B47AD885FD0BAB29F76E3EB22BE2B7FA1D4E99AEE95AA25FD9FA85B576FEEC6A2E6F93DC0D9FCB707974A54E5874DECE1249C5FF0095EC47E61D80E3F887D19706EBFCD3BFD06DA9D6975AF699A13CF8FB3B3F91E69C41FECEB6D3E69F0E6BF5294B3954350A5CCBDDCF1DD7C51EF79165F603E39E22F43FC6DA24673ABA34EFA84565D6B192AEBF657B4BE471DF966A3A7D495B54A95E9CA3B3A15E2FEB19A3EF74F0F2B67E28C0D6747D2F5CA3EAB5AD36CEFE9F85CD18CDAF736B2BE007C374B51A3CD9AB68A94BF1DACDD27F18EE8CEA37D4E5FDD5EC3FC1774F91FEDC76FA1F477107A08E0FD494A7A6BBDD26ABE8A854F5B4B3E709E7E8D1E67C43FECFFC4D63CF3D12F2C755A6BA4549D0ABFB32CC7E52038855EAA8F355B6A9EAFF00E2516AAC3E71FE23A17146BAFCCD584DF827BFC8D66B5C3BC43C2F5FFF0036D2F50D3649E14E74A518BF74D7B2FE0CC35AA55AA97E550A176BB3AB05CDFB4B0FEA07534AE6BD1CFABAB24BC1B33A86B3560F15A9427E6B6672346FE8748CEEAD7CB2AB43E52C34BE266D1B9A9536A53B6B9F2A553927FB13C7D190B63ADBB8595CB7A752EC686AD69530A729537FAEBF89B1A338555CD4E519AF18BC9C0CAEE9424A35D4EDE7F86B41C3EAF6FA9914AA38E274A7CBFAD197F1335F8759F8CB5539D68F943BB8ADFC4BA31F2C9C6DBEB37D47AD45552ED5167EBD4DC5971350CA8DDDBCE19EF4DF37D1EE65BF17257A8DB553998EDDCE9D151A4E5D8CDA549471E260D86ADA75D6150BAA69BFBB27CB2F9336B15B74C239B96D6AF898D37E38ADA3713B38ADBF816C63B8A11F265D0865676C7D0C56BB4454453FF52E843AA78F35FCDFF0250A78F7FD4C8A74F65FD60CF6BA48420D6FBA6BC76C7F2FDE5F0A6BC09C2182D8C36D8AFDC4A14E18DCB2305DC94563A2C938C72F7248945752696362518EC4E303CD6DE6F4AF0CC9B1B7F5F57DAFB11DDFF2231865E126DB7836B6B4951A38EEF77EF2DC78B72A3265D42F5B74D9760F222D916F2CDD4C6C36C89E52E8432473E026CD34C6CB7C89648F31072DF622E785D4D54C4CD7C8B32911722AE7F1627335E3C2C993227CD8C954EA6DB32139EECA652583A18B0315F32739F5DCA9CB6232979954A5B33A58B030E4CA729F52B94B09F89194FA93B4A51B8A92F5952318C7EEF3A8CA5BE30B3B2F37F47D0DF4C7158DB2CDFDD3A3B2A0AE6AA53A91A54B38954976F25E7FF72DBFD22742DDD785D509D249C9C9BC2EBD9F46FCBC4DAFE574EC6C652E58C28F450C61CA58FB315DFBF978E3A1CC5CD7ABAA5ECBD4D385286768C72A3059C65E3C3BBC12A7BAD3BEA1EDA2B58D772C65CD56AC69D359949A8C5652DDB332DE1F92F3FAE8B551ACB9CA328F2472D3C4BA72B6D26FAE42DE5534E8D4ACADA8D7843325594D2715D1A4D3D9E5AF3C671E26BB54D495CA54E8D35468AFBA9FDACEEF2BA633D17D596F9B4EA3A79588AF99ECF55D4235DCA14A31E578F593697354945BC3CF54B1F3EE6A2ACA297B4E2974CB15493C3C61BEC9F89E88E852B2E11B4BDE10D3EDEFAE1E15D579D255AB53DB7F65F7CE76C6DB6DDC64BC6288888ED3C78E724CCCB958683A3DF462B4EE23B2F5CD24E95DC5D06DF93E8635FF00056B96B4DD55A7D4B8A3FF0016D24AB45FEC85F7126B37D6F5ACEE9D3946A2E5705670534B3D1351CAF81D5E99C2D474AE0EB5D66FF5CBFE1FBFAD3EAF2A2B2F115C8BDAE9BE7AAEFB145F35F1EB73DFFBFF00C69A298AB7EA1E5F5E84A95470A9CD09AEB19A717F26513A535E07ABDF5C7185AD92AD73434CE2AD2574AEA946E22D79B8E268D05AF1470842DAF5DDF055257752938250B86E9297B9EF0DF1971DC4726D68F15DFF0013FF00C4FF00A158EE74F3E9A9F87CB731A6DACED8332ACD49C9E1472DBC2EDE463CE7D7734C4ABD31672289C8CB9B5BE7063CA30796D2250F258F2960AA522F9422FC5154A9FEB7CCB2B084A96FDC68F5CD5D50E6B7B697E77A4A4BEE797BCB35CD4656FCD6F6B24EB3FB525F73CBDE72B2A73CB6D37DCE573B9FEDFDBC5DFE5BF89C4F77EBBA2FBB7DCCAB0A74253E6AD528E574A7539927F1315A6BAC5FC85EF386EABA487ACE4F67D77274F6251AF0F93DD1451AF6B675EA579D693A8FA538539534BE069212941E69C9C5AEE9E09D6AD56BB4EB549D46961393CE0095E5CCEEEBBA95125D945748AF02A10C041818B3B812B6AD56D6BC2B5BCDD3A94DF3464B6C33E98F46DC455388787E9D4B9DEE69A4A6FF0012ECFF0087C8F9AAD684AE2B461152DDA4F0B2FE5E2FA23DB7D0B5683BCD5AD28B4E169469424E2F399B9372C3EF8514BE0C0F568EE4B1E4410C0CB01E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E0300201E031E402177EC5B42854B8AAA950A72A9525D23059675BA3F083DAAEAB3C2EBEA29BFFE52FE080E5F4FB0BAD42B7ABB3A32A8D756BA47CDBEC75FA5F085BD14A7A8D475E7FF000E0DC60BF8B3A5B7A346DA82A56F4A14A947A420B0916600AA850A56D4D53B6A70A505F7609244FE23C6108041B8D91CEE01E7DCA6E2DE8DCC1C6E6953AABF5E2A5FBCB85D80E7AF78574FAFCCE87ACB797EA4B31F93FE6682FB85350A1CD2B774EE20BF0BE597C99DF001E4B5E856B69B85C53A94E6BB4E38297B9EB95A942B41C2B421523E128A68D2DE70CE9B71974E9CADE5DDD296DF26079CB442504F275979C1F774F2ECEB52AF1FC2FD897F23417B617566DABAB6AB4BCE51DBE7D00D4CE8A79D8C4AB6F9CE51B5E558DD109535BAC01A1AD699EC6156B1DB383A59515E0533A0B1D80E4AB69FB3D8D7D6D3B7CA5892E8FBA3B59DB2DF6316ADA2DF6034561AF7106958567A9DC722FB951FAC8FCA593A4D3BD296A341A5AA69D46E17473A3274E4FE0F28D655B15BEC61D6D3D6FB01E91A6FA48E1EBCE58DC56AB6537B62E29EDFB4B28EA6CAFAD2FA9A9D95D51AF07DE954523E7FAFA72CBF64C38D9D6B6A9EB2D6A54A335F7A9C9C5FD00FA573D85E478369DC67C4DA6622AF9DD535B725CC79FEBD4EA34DF4AF1DA3ABE972878D4B79E57ECB03D443C4E6B4AE37E1ED4B11A3A8D3A751FE8EBFB0FEA7434EA42A414E94E338BE8E2F2BE6058F7A73A72DE9CB6706B3197BD746717C41E8BF82F5EE795DE836F42B3FD35966DE7EFF0067D97F189D975101E05C41FECED49A94F8735F9431D28EA1472BFF00F487F189E6BC43E89B8D74355275F45A9796F0EB5AC64ABC71E388EEBE28FB1D7505B34D369AE8D3C303E095777D6529509D4AD4B1B3A3556DEEE492FE0594EFA9A79A96B184BBCEDE6E93F96F1FA23EE1D6B44D275DA4E9EB5A5D9DFC7FFF00A28A9497BA5F6BEA79C6BDE82384751E69E992BED26B3DF146A2AB4B3FE196E97C40F9C295F45FF7778B1F86E69E3FEA8E5196AE2A72734EDE6E1F8E935561F43BAD7FD0171458B94F46BAB2D5A9ACB5184FD4D57FE596CFE679BEB3C3DAEF0DD76B57D32FB4F9AFBF3A5282F8496CFE606C28DC51ADB53A91935DB3BFC8D8D9EA77D62FFDD6EAAD34BA47395F27B1C8AD42ACE2BD7C695CC7C6AC549FED2C3FA97D2BDA4B64EE2DDF8292AB1F93DC8DA95B78B4255B5AB3B897A2D871ADDD1C2BCB6A55D2EF17C92FE28E9B4DE32D1AE30AB54A96B3FF009B1D97F99651E414AEE73DA9CA8575D9425C92FD997F32DFCB29C64956E7A32F0AB1E5CFB9F43066F4CC193EB5FC3663F50CD4FBDBE83B2AD6F770F59695E956878D39A960CD8431FBCF9E2DEB4E9CD54B5AB283ED3A5269FCD1D169BC6FAED8AC3BB5734D7DDB88737D56E72F37A1DE3CE3B6FF0096EC7EAB59F178D3DA2289A89E7DA67A4CB69B51D4B4FAB45F79D0973AF93DCEB34BE27D1352C2B5D46873BE94EA3F572F9339D93839F0FCAAD94E562C9F1B3730896463B118EC93ECFA7996C71F16531494A6FA384762D8433B25BB2CA56F39632B9579F532E9D38D25B2CBF12FA619965BE542DE8AA6F9A58E77F42EC91C89BD8DB8F1698EF952E6F022DF513645B35D3132DF29B96DB1172F1645CB62B72CB35D3132DF227296FB15B7D48B7F32B94BB1AF1E165BE54B392329E3A1172C14CA5E674316061C999394F6656E7E64252DBA95CA6FB33A18B0B15F2A4E65729ECF72B9CFA94CE7866EA63D335ADB4E750C79CFAEE4673EBB98F39F897C550DAF519D449B6E34B2E3CF2788A7DD67A7FA9B28D4A76F4E1592F55469A9535CF1E7936D36B9270C6EFBF749BC330296AF529A5174E29A83A7095293838A7D70BA65F8B35D7D72AE6B3A8A94292494528A59C79BEEDF76426B36F13D2DACC563C2ED4B5077AE2E74E10E5DF649B6FDF8E8BB2E8BCDEE2D2F47D4F5772FECEB3AB5A317894D6D18BF393D8C39D0B88DBC6E1D0ACA84BA55F56F95FB9E0EAF48D7F4EBDE0F7C3D7F752D36A470A9DCC22E54E6B9B389E37DFA3F12192D34AFEDC2EC748B5BF5B5F4785B51A1734EA5CD1B0B8A74DF355A1F97D38B9456ED379CAF8185AB6B560AAD0ADC396771A4568ED52A42E9FB7E0B67D3CFBF816FFE0EBAAB26ED750D0EE29BFD246F611F9A96E8EA348B9D0782F86351A1A9DCE99ABEA574F9A36B422AAC524B0A329FE14F2DFD0A2F963C4FCA7F10D34C73D750E5AC78B78B2EAE68D9DA6AD7752BD692A708E619937D3DA6B6F7E4C7E34D2F89EC2AD1AFC54AE64EAE553AB5ABAAAB3D709A784FBE11B5D3EC785F8B6F6959E9F4EEF43D56B3C428A4EBDB4DF5D9F58F8E7B1CF71AE91AAE81A9AB1D62EE3735630E6838DCBAB88BE994DE639F03CA5AB39222B1113F8D794A693ECDCCEFFDB7FC0BC55A27086917B7D4ADEEEE7886B45D38466B968462DF8A7BF8BCEEFA2C1C2EAFA8DD6ADA95C5F6A157D75D57939D49B58CF963B2F231652D994CE5B799753156B69B4772F2724CC457EA0AA4BAEECA5CBC473963253297897442B91296EF252E5D5F71B7B3C95C9E164B22109926FE46935CD57F2752B7B697E79ED292FB9E5EF1EB7AB2B78BA16D2CD67B4A5F83FD4E59B6DE5E5F7CB397CEE77B3F6F1F7F96EE2F17DDFAEE7BBCE77CEE2635D3622FA9C3754FB1178F043447B811E48BEA85EAD3F12C1015BA7FACC8F23F145C45F502AE59780E9D394E5849F9F9162DDF5C7BDF4336A545A5D3E5867F2D92CA4FF43FACFF005FCBEEFBC075EAAD329FE4D6CBFDFA5B49ADDD2CECD6DF7DF47E0B65BE59EF5E8A384EA70B70E735EC79351BE6AAD683EB4E2BEC41F9ACB6FCDE3B1A2F441E8F1D8468EBDAFD1FF7D9627696F35BD15D5549AFC5E0BB75EB83D4EE649564BF557D72C09296E4B3EF2B834D12C819F80C0F0180160303C0600580C0F0180160303C0600580C0F0180160303C0600580C0F0180160303C0600580C0F0002C0603A1B6D2340BDD4F138C7D4DBFF00C5A8B09FB9770352936D249B6DE30745A3F0A5CDDE2ADF395B51FC2D7B6FE1DBE3F23ABD2342B2D2D295287ACAF8DEAD4597F05F74DA7703134FD3ED74EA5EAED28A827D65D652F7B323BB24FDE0900806C4002E8364401F422806047B8000090020023D84BB8C4C0883598B8C92717D53594FE0362EA80D45EF0FE9976DCA56CA94DFDFA2F91FF2668AF7832A24DD95D427FAB5572BF9A3B3E9917B80F2DBDD1F50B1CFE556956315F792CC7E68D738AC7823D8936BA3C1817BA469F7B9771694DC9FDF87B32F9A03CA6504552A6BC0EFAF78329CB9A56375283FC155657CD7F239FBDE1BD52D14A4ED9D582FBF49F32F975407392A2BC0A676EB7CA3633834DC651C49754D6E42505BA6069EA5AA79D8C5A9651DF637D2A7E254E8EFD80E6AAD8279D8C2ADA7279D8EB276EB7289DB269EC07155F4D4F398FD02CEBEA7A5CF9F4EBDB8B77FA93697C8EAEA59ADFD9312AD8A7D80B34EF491C416588DE4285EC1779C7965F34757A5FA52D22E1A8EA16F716527DF1CF1FA6E7095B4F4FB1815B4E4F3B6DEE03DE74CD7B4AD4E29D86A16F59BECA6B3F266CB27CCF534F9425CD4F9A325D1AEA8D9E9DC4BC45A4E15B6A35A74D7DCAAF9D7D40FA148B48F25D37D2ADD52C4756D3A151779D07CAFE475DA4FA40E1FD43962EEDDB547F76BC71F503AC6935BACFBC534AA5174EA253A6D61C2694A2FE0CAEDAE68DCD3E7B6AD4EAC1F7849497D0B320719AFFA2FE0CD779A575A1D0B7AF2FD359374259F1C4767F1479AEBFF00ECF14E5CF3E1CD7B0D67968DFD2FFEF0FE47BEFBC59CFF00303E39E22F453C67A173CAE345AB756F1EB5AC9AAF1C78E23ED2F8A38E8DC5D5ACE7479EAD394769529F6F27167DEEB67B36B1D30CD66B7A0E8FAED370D6B4AB2BF5D9D7A319497BA5D57C181F0F42EE1CD9A94229FE3A2DD37F4DBE865D2BD4FECDCFF96BC3FF00B47F91F477107A07E14D414A7A4D6BED26A3E8A13F5F497F967BFCA479B6BDE81B8AAC39E7A4D7B1D5A9AE91A73F5357F62785F26C0E121713716E5424E2B7E7A2D548FD375F2274EE2856788548C9F8677F9181ACE83AD70FDC726B1A5DEE9F517475A8CA0BE12C7EE30D5ED59E155E4B85FF00322A4FE7D7EA0763A6EB9AB694F3617F73457E1E76E3F27B1DA68BE95F53B3518EA161697715D674D7AA9BF9653F91E414AEE9A4F95D6A2FF524AA47E52DD7C19974AEA726B96742BF929724BE52FE0CA2FC6C57F9556572DEBD4BE89D27D2970E5EE237552BD8547B355E198AFF003473FB8EC2C350B3D428FACD3EEA85D41AEB46A297EEE9F13E4B77708BC5753A2FFE6471F27DCC9B6AF3A3355AD6ACA9CD6EA74A6E2D7C519E7D3E9FE329FF007169EDF58A791391F3C693E91389B4D514EFD5DD35F72EA2AA7FD5D57CCECB4AF4B96F3E586AFA654A4FA3A96D3535FB2F0FEACF238B3542D9265EA7CC41BDBA9CFE95C63C3FAAE2369AA50555F4A759FAB9FCA583779CACADD3E8CBA98596F93493641CBA9194B05539E0D98F0B1DF2A729EC54E5D4839E4AE533762C2C9932A72963254E44253F12A733763C4C76C8B253EE5539954E65529BC7535D69A5136DA529F9954A7B752129E17994CE7BB2E88D2294E65139EE4653EA5539924A20E52D8A652F014A455296CC8CCAD8AB71A6F136B3A64153B4BFA8A8AD9519A53863C395EC8CEFFC53A75EFF00FCEF0E595C4BBD6B46E854FA6C729291549AF814DB152DE74D14B5A1D73D3B82F536FF0023D62EF4AAAD7D8BFA0AA535E5CF1FE2594BD1BEB3775697F645C697A85B54924EE2D6E938C17E2947AEDE596713296F97B90A57152DEAAAB6F52A51A89E54E9C9C65F345538EF1F0B7FDAEADAB3F2ABB3B6D5B58F467AA6A7A7C2DF4C9DFD4872BB9FEF2504FA61E765DF95AF37B1C3DEDD56BBB9AB73755A75ABD593954A951E6526FBB646BD59D5A93A956729D49B7294E4DB949BEADBEAD98D2913A638ACFBBEFEE5ECDA6635F473914CA5D45396FD4AA522D885732539752B6F67B836424F6271084CA2D9A4D735656EA542DDE6B35ED4BF07FAFEE1EB7AB2B652A16F2CD77D65F83FD4E5DE5B6DBCB7DCE673B9DECFDBC7DB77178BEEFD77E89E5E5B6DB7DD887D85DD9C375476238DD92120023E2488A006243647385BB01E48B7BEFD3CC8FACF232E3CB634A35EAA8CAE24B9A8D292CA4BFE249775E0BBF57B750973AD369467249DE49295383FD1F84E5E7E0BE2FB1EA5E8BB81216562F8AF8A28B9F247D7DA5AD459727D5549A7E2FECAF3CBEC63FA1FF47B3D52B52E22E22A529DAB97ACB6A15565DC4B3FDE4F3D619EDF79F964F61E2B52A9A5AA4B7F5951737B97FA8147085F5E6A9A654B9BF719559569F2F2AC62395B7C0BEE6AA9DF56E5965736135E4B063C6AC342D22DECE9B8FE5328F363F0E7AC9FC7A18D66DB406DE9BD8B0A68F45B9763CC0D900C0040300100D8B2001B80000000006E0001B86E0001B86E05B6B6F5AEEB2A56D4A752A3FBB15902AFE9197A6E9B77A954E4B4A4E497DA9B788C7DECEA347E1184715754929BEBEA60F6FF0033EFEE475746953A34A34E8C234E9C76518AC24068347E16B5B3E5A976D5CD65BAE65EC47DCBBFBD9D0E30BB0C008F6D831F22718EFB1351EE0558132E9437E8729ADF1E70A68B51D2D4B5DB3A7557E8E13E797FD395F360748238BB3F4A1C1F775953A3ABD3727D3A3FA2964E96C359D33509A859DF50A937D21CDCB36BC546586FE0067081ED94F67E0C0058013180B1D44362010000084C6C5D80484342900988921009A22488B0102934D37BE06440AEEAD2C6F972DE5084FCE71CFD7A9A5BDE08B2AE9CACAACE8B7D93E68FC9EE6F71B826D6E9B4FC80F3FBFE0FD52D9C9D2842E22BF03C3F93341716D5EDA6E3714A74A4BB4E383D96175512C4B135FAC82A3B4B98385C51587D9ACAF9303C4E50DBC33D083A67ABDEF0869578A52B75EAA4F7CD2972FD1EC737A8F035ED1CBB5AD0AA96F89AE57F35B01C3CA96FD0AA7476E86EEF749BEB2CFE536B56097DEE5CC7E6B635EE3F2035D3B7C98D3B54F3B1B8715BA2B953034352CD7E1312AD82FC27492A5B3299D04C0E52B69FB3D8D7D6D3739F64ED276CBC0C6A968B7D80E46DDDF69F539ECAE6B5192E8E1368E8F4CF487C456188DC4E9DE41755563ED3F8854B24D3D8C3AD60BC00EE34BF4A9A756E58EA5695AD66FEF47DA89D7E99C47A46A914ECAFE84DFE172E57F2678556D3D3CE17D0C19D84A9BE6A7CD1978C5E00FA613CACAE9E2811F3C69DC41AFE92D7E497F55C57DD9BE64753A67A54BEA5886A9611AABBCE93C303D771E6184D7974391D27D216817F88CAE1DBD47F76AAC7D4EA2D6EEDEEE0A56B5E9554F74E125202CA908D5A32A552319D2975A738A945FBE2F28E275FF459C17AEF3CAE344A56D5A5D6B58C9D097C9662FE4770BC05F15F103C035FFF0067978954E1DD7738E94AFE8E3E1CF1CAF9A479B710FA2EE32D0A32A975A256B8A0B7F5D678AF07FB3BFD0FA62F750B2BABBA9EBEA6B96F38C9FABB8B6B94B0BFF6B18C7C73E26658DCEA2A59D375CD3F52F0A77B076D5FF6961303E2D8D5B8B593A5CD529B4F0E9CB6F9C5FF002250BA8E73528C33F8A9374DFD36FA1F63EBF474CD42972719F094945FE9AA5B46BC3DEAA4312FA3385BFF00435C11C41CD2E1AD56B5956EBEAA95555A29F9D39E2680F9F29DDAC7B172D795786DFB51FE26446BCF9332A2E51FC545A9A3BED7BD0471569FCF3D2EA596AB4D745467EAAAFECCF6FA9E73AC687AC68170E1AB69D7961513C275A94A09FBA5D1FCC0CB85C51ABECC6A45BCFD97B3F9336DA56BDAB692FF00F2ED46E68457DC536E1FB2F28E4D5DD5925EBB92B47B7AD8A96DE4FA9653BAA496DEBA87F825CD1F930F2637DBD574CF4A7AB51C4751B5B6BC8779457AB9FD366755A77A49D0AF30AEA55EC66FFE34331FDA4784D2AF297D8A946B7C7925F27B7D4B1DC469B5EBA3528B7FF12384FE3D196532DAAA2FC6A5DF4D5A6A1677F4FD658DD51B8878D29A97FA9394F7C7467CD16F59D392AB6F51C24BA4E9CB0FE68E8B4CE37D7EC528ABD7734D6DC971153FAF53762E6563E50E7E5F4EBF7497B84A5B6E5529F5C1E77A7FA4CA53C2D4B4F9D3F19D09732F93FE6749A7F14E8DA86150BFA4A6FEE55FCDCBE4CE961CF8AFF1B39D978D9A9F2AB74E5B954A5D48CA5959FBAFA35D1FC4AA52D8DB10CBA13994CA7E212914B7B6C1388394B665529798A4CAE4F62332B62A529752B93D824F62B94BAA23B5B150E5B154E439331E72CB23B59102732A94824FA94CE6789C409C8A6520948A9B2510F264A6CADBEAC5278C9093271084C9366975BD555AA950A0F35DF57DA1FEA4B5BD555AC5D0B769D77D5F687FA9CAC9B6F396E4DE72CE673B9BECFDBC7DB77178BEEFD77E865B6DB6DB7D5B22081F5387DBAA04310032286FA0801887D88C9E136C04DA4B7652E597EFE829C9C9E3E8655BD2851B7575731E64FF00BAA5FF0011F8BFD54FAF8F45DC09508C2D29C6E6E22A7396F469496D2FD697EAF977F71E87E8A3802AF11DD2D7B88213969AA6E54E9CF67773CF7FD44FABEFD1776637A2FE03AFC5B7F2D5F5A535A553A9BB7ECBB992FB91F08AEED7B96E7D15429428D3853A508D3A74D28C6318E1452E892EC96D80274941374E185CA96C96125D124BB2DB1E491ABE26D56D74AB684AAD3A75AEE5976F4A5BEFF89E3B2FFB16710EB36DA0D83B8AE94AB4FD9A5496CEA4BC3DCBBBF03CCD5C5CEA97F52F2F67CF56A34F6E89764976480DBDB55AD755E75EE2729D5A8F9A527DD9BFB48ECB6353A7D1C25846F6DA38480CCA2B65B1795D25D4B31EF03682C8C580164090011024004409001102400440909BC2DDE00438A949A8C536DBC2496E6E747E1DBDD4B1371FC9E83FD2545BB5E4BB9DB691A359E98B36D4F9AAE30EACFEDBFE4BDC072BA3F09DC57C55D464EDE97FC35F6E5FFEBFBCEC6C6CADAC287AAB4A31A70EF8EAFCDBEE65204024BC77F780FB080372C8408C16E6453492014618398E34E3AD138428B5A857752F1C79A16947DAAB2F36BEEAF37836DC4B757367A05F57B19455D4694BD4B92CA53C6CDF967E1E27C91AD2BBFCB2BCB51F5CEF27272AAEB36E6E59DDCBC5F9FCB6028F4A1E99B89B892A56B4B2A75B4ED3DFB3EAE9C64B2B3DDE1397C76F08F73C66B5C3AB524EACE552A3EB9CB67A3EA09B8B49BC77C781ACBDB3956A0BF22E492EF8C378F881C4249FE8E7F183375A3F136B5A4C71A76A7710A59FEEA72E7A79F384B2BE87434F4CB3A772A318D795BFABCCEA578C6128CFC124DED939ED76368A508DBF2CAB27EDCA1D963A37DD9ECC69E44EE36F4FE14F4F9AEE9708D1D460EAD18E16693E658FFDB9B6BE11944F7DF47DE9374DE31A71A7452A772E2E5151CF254E5FB4B0F78C965662FB6E9B47C57A46937BABDCC6958D19CF99F2F324F19F0DBABF247D3BE86FD1D55E168C2FF507285C61B8517B49392C394FC3C9781E3D7B7C6E13DB25F09651A7B7CE51B4A19E55902EEC2431008018900D914484C088343620111EE484C008B4340FC8089124C40223D8909802441A27D858022B6DD3DCBA9DCD686CA6DAF07B95080CAFCA695458AD457BE26BAF787F47D41B6E953537DD2E597CD17080E6B50E02924E565712C7E19AE65F35BFD0E66F786F54B4E672B67522BACA93E75F2EABE47A753AF560FD9935F12F579CD8F5F4E33F3EE0789CE0E326A49A7E0D61FC8ADC3A9ED17563A5EA09AB8A3079FF008914FEBD4D15FF0002DA558B959559D37D945F3C7E4F703CC5D34CADD2CA3ADBFE10D4ED9CBD5C615D2FC2F0FE4CD0DCDAD6B69B8DCD2A94A5FAF1C01AA9514533B74FB1B370C9170034B52D7C8C6A9669E7637F2A4B0552A2BC00E66AD8279D91855B4F5E075B3A0B1D0C7A96C9E76038BADA6E73B10A0EFAC27CD67735A94974E5933AEAB66BC0C4AB629E7601699E9078874F4A15E51BBA6BB4D6E75BA5FA53B0AB88EA36D52DE5D1CA3BAFEBE270F56C134F6302AE9C9F603D72171A36B1375B4DD468294DE5D3A9B6FE2992ABA4D68A6E745CA3F8A0F997D3F91E2B2B19D2973527284BC62F06C74EE22D774A6BF26BDA8E0BEECB7407AF5855BBB36D59DD56A4BBC2326E3F18F4F992BFA36BAAD170D534BB3AD3E8AE29D354EAC7CD636CFC11C2D87A4DAF951D62C29D64BACE2B73A7D3B8BF40D463CB4AEE76955F4E74A5CBF3032B8035DA9A954D574DBA9BA956C271E59C9E64E9CB2A2A4FBB4D3C67B1D756846AD2952AB18D4A72DA50A91528BF7A668384348D2749A1752D2ABFE5356EEA7AEB8B89CD4A7567D9BC7449745D8E83CBB81C3EBFE8AF8335BE6955D1E9DA5797E96C64E8CB3E3CABD97F1479B6BFFECF734A73E1CD7613DB6A37D4B95FEDC33F547D000F7FFB01F1BF107A31E32D094E779A1DC56A11EB5ED315E9E3DF0CE3E27234EBD7B79384673A6D6CE0F6DFCD33EDBADA9EAEAB4AA69DA55B6A1462F1285B5FC3F2887938F4CF964D1EB377C1DAE4FF0027E2ED2616D70F6C6AB66E9CD7BAAAFF00F603E44573193CD4A1072FC54F30967E1B7D0C8A77117F62E249FE1AD0CFFD51FE28FA2757F415C2BABD295C70F6A175639DD7AA9C6EA8FD70D7CD9E77AE7A0BE2BB0E796993B2D5A92ED42A7254FD89E3E807011AB51ACBA7EB22BACA8C94D7C52DD0E15E954D94D67F0BD9A29D5F45D5F42AEE9EAFA75ED8D44FF4F4A50F93317F2AAB28FE7396B2FF0099152FAF5FA81D0586ADA869CF365795E8E3B467B7C9EC74363C79A8D2C2BCA146E63F892E493F8ADBE87034EE29765568BFD497347E4FF997C2ACA4FD8A946B67B3F625F265D8F91971FC6CA6FC7C793E557AB5971B69573B57F5B6B2EFEB2398FCD7F23796D7B6D790E7B4B8A55A3E34E69FFD8F1095654FFBE854A4FF005A3B7CC9D1A8D4954A33C4BAA941E1FCD1BB1FAA5E3E71B63BFA6E39F8CE9EDB2922B94B2797D9F13EAD6BB2BA75A0BEED65CFF5EBF537967C6D06946F6CDC7C6546595F266BC7EA18AFDF867B707257AF2EC1BEA55291ADB4D7F4CBCC2A3770527F727ECCBE4CCC94B2B29E578AE869AE4ADFCD654CD26BE260E73EA52DF5094BAE0A252EA4A12881396C532975094B62B6FA92884664A722B93093EACAE4F664E2119926CD36B7AAAB48BA36ED3B87D5F687FA8F5AD555A45D1A0D3B86B77DA1FEA72D26DCB99B6DB796DBDF27379DCE8A7EDE3EDB78BC5F7FEBBF44DB936DB6DB796DF522FA8FA2C11EACE13AA102018098903E82DC052E82437D108008CB18CB1BD93C92A508F23AF71956F178518BC4AA4BF0AFE2FB7BF601D1A54E31775769FAACF2C29AD9D69782F25DDFC3A9D87A36E0AB9E34D5657DA973D2D268C92AB38FB2EA35FA2A7E1B757D12F3C18DE8FF0083EF78DF57954AFCD434AA0D2AD560B092ED4A9A7F79AF92DD9F4AE9B636DA75850B3B1A30A16B463C94E9C3A457F5D5F56F702DB2B6A36B6B4ADED68C2950A3154E9D3A6B118C5744BCBFEE55ADEAB6BA269B52EEF25ECA7CB0827ED5493FBB1FE7D96EC96A7A85AE95A7D6BCBEA8A1469ADFBB93ED14BBB7E07916AFAA5DF11EA8EEAE538538FB3468A7954E3E1E6DF77DC07777977AEEA73BDBD7ED3DA305F669C7B457F597D5F6377A6DAE12D8C5D36D318D8E8ECA8612D80C8B4A3848D9D186114D0863B19705B01643E85BB11874278F30363B787D436F0FA8F018016DE1F50DBC3EA3C06005B787D436F0FA863CC36F10106DE60201EC2C9759D9D7BDAFEA6D294EACDF68AFDEFB2F33B1D1F84295251ABA9C9559F5F5517EC2F7BEB2FA20396D2F4ABCD4E78B4A4DC17DAA92DA0BE3FC8EDB47E19B3B0C55AF8B9AEBEF497B31F72FE2CDED38429C1429C1421158518AC2449A0238FF00B0F001EF016007EE178808486201A7865B09E0A4698192DC2516A493CEDB9CC6BDC15A26B54DC2EAD61BF4C47A7BBC3E06FF009BA8D4BC00F0DE27F41D0A8A73D1EEE507DA12F697D77FA9E51AFF00A2AE2BB0AB2E5B18D75F8A9C9C5FD51F644A6F053564E49F503E17AFE8FB8B272E49E8B798E9ED664BE5B9D570A7A0ED6EFEAC2AEB308D95B75C55F672BCA0B77F447D655632DF0DA31A54252977038CE14E0ED1F8628461A6DBA957E5C3B89A5CFF00E5FC2BC91D351A0E4D6C67D3B3F132E950515D00C5A341421CD2692F3664D19C24F960D67CF63CD3D2F718EA9C2956D616DA6D7AB6D5D7FF0098A2FD542597ECB9748BEEDBEBD8F38BDE2CE20AD6F52ACB88ED2CF0DFB305151D9F9C64DE7B3EE7933A34FA6654E715ED45A20784FA2FE32E34D6756B6A1611FCBAC972BBAAF38A853A0B3BC6A7DDE66BA28EFD365B9EEF51A736D2C2CF4F03D0848625DC004C62602EC24310081F41890110060BA009A12E8364404C5D893E82EC0207D000083024D11EE00D08911F10220D6C4BB11EC0208CE707ECC9AF706058032617D512C544AA47C248751D95D41C6BD2C27D9A525F266276101877BC1DA5DE272B74A9C9F7A52E5FA7439CD4381EF28B94ADAAC6A2ED1A8B95FCFA1D87338BCA6CBA95E56A6B0A7CCBC1EE07935EE937D659FCA6D6AC12FBD8CC7E68C070DB6DCF6DFCAA8D4DAB51C78B898379C3FA3EA396E953E77DD2E597CD01E3AE9F8A212A6BC0F44D43809C732B3B892F2A91E65F35BFD0E6EF786F53B5E6E6B67562BACA8BE6C7C3AFD00E6A5493CEC552A0BC0D94A938B719C5C64BAA7D7E456E9A03553B64FB64C79DA27D8DD4A9ECCAA54901A0A964B7D8C3AB609E7313A69D04552B75BEC07235B4F4F3B1815B4D5F84ED6A5B279D8C5A968B7D80E4EDEA6A1633E6B4BAAB4DAF06745A67A41D7AC128DC4A3714D7692DFEA2AB649E7630EB69E9E7D903BAD2FD28D856E586A16F2A127D649EDF23ACB2E20D2353A4D50BDA6D4D61A93C3DD1E175B4E4D3CC4C4FC8EA51973519CE0D778BC01EB579A055B7A9CF4A97AC847EC55A5D71F0DD0E96ABAB5BD3F513BB77147A3A17B05562FCB12DCF34B0E21D6F4C6BD4DD4E515DA4FF0089D1597A459CA2A1ABD8C2AAEF271CFEE03A08C7469D5F595748AFA65C67FF00C8D1EE1D2DFC5D37B336D6775A82C474DE24B2D423DADF57A2E8D5FF00FD16D934B65AEF0EEA492A55E76D51FDDCF32F93E86C1E9B0B8866DAB5BDD43C14B0FE4D81BAB8D5EE68DBBA7C45C3F774ADE5B39C231BAB7672FA87007A3BE2BE69DBDADB50B896FCD6355D0A99F3A6FAFC8CCA0AFF004AA9CD6B717566DF68C9C62FFF00AB2DAF7AAF16358D2AC2FD3FD2287A9A9F09470BE8C0F35E20FF0067BAD0727A06B909B5D285FD27097EDC76FA1E6DC43E8CF8BF41529DE689715682FD35B255A0FF00677F9A3E96B595B5149699AD6A7A5F851BB8AB9A1F3C3DBE08DA5BDF6BF462E6AC6CF56A2BF4BA657E59FC612CFF00003E298D4AF6F39538CE74E517870CE3E717FC892B88C9B752853935F7A1984BE383EBED5AB7076BFF0099E27D36DE956E9FF995AFAA9AF7555B7CA4729ACFA09E18D4E93AFA15F5DE9FCCB30E59AB8A3F5DFF00EA03E72856863D8B8943CAB472BF697F22E4EA63FBAF58BF1517CDF4EA7A06BFE8378B74DE69E9CAD355A4BA7E4F5392A63FC13C7D1B3CEB56D1F53D12BFAAD5F4FBCB1AB9E9714A54DFBD36B702C8D6A73F679967A72CB67F2665DADF5D5A3CDADC55A7E4A5B7C8D47E5555C7151AAB1FF99152270AD4BF0D4A2FC69CB997C9FF0033D8B4D7CC4BC9889EDD5DAF14DE5358B8A74EBAEEF1CB2FA1B3B7E25B1AC92ABEB28CBF59657CD1C3C66DBC53AB46A7EAC9F24BEBB7D4739BA6FF003D09D3CF794767F13563E6E5A7DED45F8B8EDF4F47A37346BACD1AB0A9FE1965FC86DEE79CC26B3CD4E5F18B33EDF57BEA0B0ABB9AF09E246EC7EA75FF003864BF067FC65D94A5D4D3EB5AAAB48BA341A770D6EFF02F1F79A9ABAEDFCE388CA943CE30DFE6CD5B93949CA4DB6DE5B7D5B1C9F5289AFB713DC3C298B6F206DCA4E526DB6F2DBEEC8B2445F538DDF6E902286FDC240300176013223624027D760064ADA8BB8727393850835CF531F28A5DE4FF00D58050A51ACA756AC9C6DA0F0E4BACDFE18F9FEE5B9D27057095F71AEB2A9C736FA75BA5EBAB457B34A1DA104FAC9F65F17B0B85386EFB8B758858D8C150B6A293AB55ACC2DE9E7ABFC527E1DDF91F48683A3D9685A550D3B4CA3EAADE96FBBCCA72EF293EF27E3F0E9802CD1F4DB4D274EB7B0D3684685A508F2D3A6BEADBEEDBDDBEEFE08CABBBAA1616756EAEEA46950A51E69CDF6FFBF65DC954A94EDEDEA57B8A91A7469C5CE7393C4629756791F15F1056E25BE54E8F353D368CBF354FA39BFC72F3F05D80AF8835AB8E26D495492953B3A4DAA145BFB2BF13F193FA743274DB3C25B14E9D678C6C747656E92405D656C925B1B6A14D248AEDE960CDA71D80B29C519104570897C17BC094512C21C50F97DE06C30181E1F90B0018103C8800490FE28DD689C3977A962A4B342DDFE924B797F8577FDC06969C2552718538CA5393C4631596FDC8EA747E10AD5B1575293A30C67D545FB6FDEFB7EF3AAD2747B4D2E18B5A5F9C6BDAA92DE6FE3D8D972B7DBE4062D9DA5BD8D0F53694634A9AED15BBF7F897631D4B141872A5DC0AD0C18B3B000BB8648E7701881EC200EE3000010C4027E02C8FC4480322781910138A6C3957812100805D460466938CA3249C5AC34D6535E6BB9A0ABC1DC335E6E75787F4C936F99FFBAC719CF874FA1D03EA47C40AAD6DE85A50850B5A34A85186D1A74A0A118FB925845AFA0C4FB8084313000000228187707D0042EE317701300001322488B40044921011EE03620175D84C9608B4002C0C4021771898011ECC90808F8899262011125D0402131A00274EE2AD2FB1368BD5F29ED714A33F3EE61BEAC480C9B9B3D3351838D7A7079ED5619FAF53457FC0B6B5B33B49CE9F8724B997C9EE6D7038549D3CF249AF881C2DFF00086A36CDFABE4ACBC13E597C99A1BAB3AF6B3E5B9A35294BC27168F61A7A8554B15146A47C248739D8DC41C2B53704FB758BF8303C55D3D88386CCF58BCE10D2EF332A118464FA3A4F91FCBA1CE6A1C0F75472EDABA9AF0A91C3F981C34A92DCAE547AEC6F2F746BFB3CFAFB5A8A2BEF457347E68D738754BE5E006BA543C8A276D9C9B6702B74D340692769D76462D4B2CE763A1951F22A950CE40E62AD8279D8C0ADA7ADFD93B095B67B18D3B55BEC0717574EDF68EE142BEA36324EDEE6A471D1379475752CF39D8C4A9639CEC0474FE3BD62CD72DCA55E1DF3BE7E66FEC78DF48BB695DDBFE4F53BB83E4FF4396ADA7A7D8C0ADA6A7F740F55B6AFA7DE473697D4A59FBB57D97F32D763383557D5CD35D2A5379C7C63D0F1B56B5EDE4E542A4E9BFD57836361C47AD69D25C95E534BB3D981EB71D42F5D370AB5A9DE52E9C97505576F0CFDAFA9871B2D27D6CAA52B3BAD26E1BCBADA657714DF9C364FE39393B1F48319E23AA5A27FAFCBBFCD1D1E9FC43A3DFC53A174E93FC33C497F303716D5B58A2F161AC58EA71ED4AFA97A8ADEEE68E32FFCACB6E75C70A0EDF88F42BCA145AC4BF34AEA863CF09FD62632A51AF0FCDAA75E3FF2DA7F464E8D4AB6CF96DEE2AD1C7DC6FD9F93D80E76F3D1EFA3AE2D539E9F6F6D46B6332969B5BD4CE3E6E9BCAFFA51C2EBFF00ECFD714F9E7C3FAE51AA96EA8DED374E5EE538E53F8A4767E916E2BD969F4358A7EAE8DDDBD58F256A5050949BE8BCCF48B1AB3B8B1B6AD563C952A5284E514B186E29B407C7BC41E8E78BB4084E57FA25CCA847AD6B74AB53F9C738F89CB53AD56849C2139C1F78EEBE699F78C731798B69F8A7834DAEF0B683AF465FDB3A3D95D37FA49D24A7FB71C303E2AF5F093CD5A3079FBD1F61FCD6DF42C8D4A6F3C95E70F2AB1CAF9AFE47D17AEFA08E1DBCE7968F7B7BA6CDF484F15E9FD7123CE75DF423C5BA7A9CF4F8DAEAB497476D53967FB12C303CFE3EB70E4A9AA915F7A94B9BE9D48C6AD36F1CD89783D986A9A4EA5A3DC3A7AA58DD59554F18AD4A5079F26FF998EAEAB38E2A38D58F6551732F9F5032FB75C8BBB31A356977854A4FC69CB2BE4CB232CE553AF4A7E53CC18163E822327522BDBA534BC57B4BE688AAD4DEDCD8F781689B20AAC3F1222EB534BED0127BB06D2EACA5DC477E54DB29A95672F25E40665BD2FCAAA72F3A8524D73D46BA7825E2DF87FA9D370D68179C49AA51D334BA7C94E2B9A5397D9A30FBD39BF1FDEF091A6E0ED0F51E23D76DAC74DA6E72CB94A526D42947BCE4FB2FDFD11F5170970DD970CE931B3B24E526D4AB5792C4AB4FC5F82F08F6F7812E19D02CB87348A5A7E9B06A117CD5272FB7567DE72FEB65B236D2C538394E4A318A72949BC28AEED934924CF2BE3AE287ABD5A9A5E9751FE411962AD55FA792ECBF557D7DC063F19712CF5FB976562DC74CA52CE7A7AF92E927E5E0BE2FB187A759F4D8AF4DB2D96C749656B85D00B2C6DB096C6E6DA92496C576F470BA19F46004E9C3064422469C4BA11025045D0446312D8A604A2863489600CC13C8DB688EE020F767E01BB66F782ECA379ADC5D48A70A11F5B87DDE7080DD70CF0C421085DEA7052A8FDA8517D22BB3978BF2EC76118AE835D58C0492C0C18900316068605328EC41A3230884A09818F9C8C94A0D7421D8000486000000026323DC04C018000BB83E8240310C402EA01E20026457724D8BC400431009000009002001310DF713012131F706B601087E2268004D02E80047A0002022471824C580013435D00080C189003224BB0BC405E22687D4402EC21BEA2C0098892177022BA8C3B30022C8F99322FA800020022860002CB5BA6D3F22FA57D5E9AFB795E1228645F4033E37942A7F7F4526FEF436312F345D27515EDC293976E64A2FE68AC59680D2EA1C091C37675A70EE94973AFE67397DC2FA9DAB78A2AB4577A4F2FE4F73D0695C55A4FD89B58ED9D8C98EA2E4B15E942A2F1C6181E395A84E94DC2AC25097752587F2652E9E0F68AD4B4DBD838D6825FAB51292FA9A7BDE0AB1B98B95AFB0FB3A53DBE4C0F2C953F22B952CF63B3D43832FADDB74670A8BB464B925F37B3F99A0BBD32F2CF3F94DB5482FC5CB95F34069A547A954A826BA1B270F020E19EA80D4D4B6EBB18B52D1781BD9534CAA5476E8073B56C73D8C4AB60B7F64EA25413EC533B75BEC071F574E5BEC60D4D39C5F34329F8AD8ED6A5AA7D8C5A9669FDD0399B6BED52C249D0B99E13D93DFFD4E834FE3FD428250BEA3EBA1D1B7ED7EF2AAB62B7F64C2AFA7A79DBE8076363C4FC37A9DC51AB796B4A3714DE60EA473CAFC527D19DE695A95ADDD2C50B8A736BA624B2CF03AFA6F5F67E8554D5E59BCDAD7AB0C744A5B7C981F49219E19A5F1D6BDA7623527F94535F766B3FBCEBF49F49F6159C63A8D0A9425B7B51DD7C981E86470BBEE6BB4DD734DD4A29D95E52A8DFDDCE25F266CB3E2055734695D51746EA953AF49F5856829C5FC19C36BBE89B83759E697F663B0ACD7F796351D3C79F2E397E877AD8981F3F6BDE806EA1CF3E1FD6E8575F7695ED374E5FB51CA7F23CFF5AF467C63A34672B9D0EEAB525FA4B54ABC71E3ECE5AF8A3EBF7DCADEDD1B4FC80F85ABD3A96B5254EB4274AA2EB19A717F269143CBCBCB7F53EE4BFB6B6BD8385EDBD0B98BED5A946A2FAA398BEE07E14B86DD5E1ED372F76E14543FF8E00F9615AD1E48BF54B3CA8A6A518477508AC791F534FD1FF08A4B1A0DA74E999FEEE62B870870D5ACB34340D362D7795052FF00E5903E5AB7B5AF7B5952B2A156E2A3E90A30737F248EDB867D15EB1A8D5855D612D32D7396A7895692F282E9FE6F91EF51A74EDE1EAEDA9D3A34F18E5A505058F7244611F6B6029E10D074EE1EB2859E954152A6DA739BDE7565F8A4FBFBBA2EC74EA3F3306C61EDC73E2721E9078ADD0F59A369151FE50FD9B8AF07FDDAFC117F8BC5F65E6060FA40E2A7733A9A368F53F37F62E6BC1FDAFF009717E1E2FE08E634DB25B7B3B74D88E9B6384BD9C23A5B1B4492D80958DAE12D8DCDBD1496302B6A092E86C2953C7600A50F23269C42102E847C8071897450423E45B18F90045791645045162401144B1E4348963C80B8893EC2F1022F06FF00816EA36FAE724DE235A9B8E7CD3CA39F6CB74FAEA8EA1426F64A693F73D9FEF03D91342C9CED8EB0EDDFA9BACCA0B653EAD7BCDCD3B88D4829D3719C1FDE8BD80C94C32551AB17DC9A927D00791E44003C916C6002F1212A69AD8B000C6941A6C89978212A6A5DB70280252A6E3E6400189798361D804FA80000114484800000088000088F7242EE000000440620120000022890BBB01310DF4100BB8030022861DC008B22B624C8BF10062EC4BB11F101788000099126C800C8B24BA098088E0921301310FB080484C9310114B601A13400459242023D049E497612E800457424260045921302227D18D800801F50022FA128549C1E63269F931080CBA5A8D782C49A9C7C248B55CDA56F66AD1E46FAB8B35CC8816DDF0EE95A8664A345C9F74B925F3473FA8702CE3995AD69A5D9545CCBE6B73769B5D326451BCAF4BECD478F07B81E7579C39A9DB379B77562BBD27CDF4EA69EA529425CB522E12F092C33D9A3A8C6A2FF0079A109F9A5B90AD6DA5DFC1C6AA8EFDAA4534078CB8752B74D781EA37BC0F655D395A3707FF2A595F267377DC1BA85BE7D4CA155784BD87FC80E3A54FC8AA547766E2EF4EBAB4CAB9B6AB4BCDC36F9AD8C370F701AD9504FB1454B55E06DDC163A15BA7E0068AA5A2DF6316AD9279C23A374B3D8A654136F60396AB60B0F6302AE9D9CFB27653B74FB18D52D13EC0716ECEAD19735194E125DE2F06E74CE2EE21D2711A774EBD35F72B2E646CAA592DF630EAD827D80EA74BF4A36F2C4757B1A9425DEA517CCBE4767A4EBFA56AC93D3EFA8D597E0E64A5F2678B56D3D7E1306A69DCB2E6826A49ECD3C3F981F44378EBD484B0D753C434CE25E21D2528D0BE9D6A4BF4770B9D7CFAA3A7B0F497D23AAE9938BEF3B79657BF95FF303D067BB662D578CEE69ECF8CB42BE5EC5FC294DFDCAE9D37F5DBEA6C237346BC39ADEB52A89F784D4BF701754FB260D6DDBC99B51371E92E9E061D58BC378697B80C0A8B7781D38EE635FEA763649BBABAA54F1DB9B2FE4B7395D5B8AEBDC465434784A8C1ECEBCD624FF00C2BEEFBC0DA717F13BD3A12D3F4A9A77F258A9523BFA85FF00EDFB96EFB1C3E9F64DBCCB2DF76F766459587B596B2DEEDBDDB3A0B2B2492D80AAC6D1452D8DD5B504BB13B6B7492D8CFA34BC8054A9E0C98C074E1B17C23E404611D8B6111C62B1D0B611D802312C4B038C4B12F700A28B1208A26900912C7931A44B7F101B13E8C96DE0290154B658463559E3ECF5EDE4CC8A9DCC0B9972E581DBD2ACAE2D28575F7E1197C704ADEEAB5ACF9A854941F82E8FDE79DE95C7567A56BF4787F5CAB0B6A5754F9EC2E66F10E7CE254A4FB6FBC5F4DF1E07793D9BEA80DFDA6B909251BBA6E3FAF4D6DF236F6F5615E1CF6F563517EAB386CEE4E9559D29A9D39CA325DE2F0C0EF1559C5EFD3B1642BC5BDF6396B3D7EBD3C46E60AB47C7A4BE7DCDD5A6A16779854AAF24DFDC9FB2C0D9C669F46493461BA738741C6B4A2F0F70331304510AD17D5E1962604C08A634C03088B827D8926190289527D995CA2D75465E511714FB018A05D2A49EEBA954A0E20440400300002201DD80084C627D004310C0880D8804C01800098C4C04C48911EE026086201301B23D801F723D890980BB116890980B0243EC2EEC0089213404507618011F10F11B120178898D8980BB097418805D0018011F11830023813D8911004268680088C43022C8A26C8809A112100112426027D08742645A01002001086003A75674FEC4A4BDCCCBA5A9D782C4F9671EEA48C25DC00D9ABAB2AEB1568F237F84C1BBE1AD2750CB8469733EE9724BE68A37DC13717ECB680D2EA1C07386656B5A69784E3CCBE6BF91CE5E70DEA56AE59B7F5B15F7A93E6FA753D1A8DFDC52C72CDEDD99951D4E15162E68467E6078CD4A52A7271A917192EAA4B0CADC36D91ECF5EDF4ABF8B8D58C77ED523CDFBCD3DE703D8DC273B57C8DF7A53FE0FF981E5AE9AC107493C9D96A1C1B7B6F974671A8BC269C1FF002FA9A0BBD3AEAD24D5CDBD4A7E6D6DF303512A0BC0A656E9F6367C845D34069EA5A26BA18D3B24D3F64DF3A4883A2BC00E6AA58279D8C5A9A7279D8EAE56E9F62A95AE574038DA9A667EEA651FD9AE0F30CC5F8A6D1DA4ACD37D0ADD92F003938D3BE82F62EEE563C2ACBF98A56D7357FBDB8AF35FAD51B3ABFC8567A128D8ACBD80E56869693CF2EFEE3656DA7E31B1BEA764BC0C9A56A97603596B658C6C6D285BA4BA1954A825D8C985249014D2A58EC6442092E9B164608B630404211582C8C3C89C63845918EC046312C8C7C894624E31ED801457626921A4B04924024B04D2F21A44B0024830892487CBE402688C913F89192D9EE05135B3C981751D9EE6CA51D8C4AF0CA6079AFA4AE1AFFC45A3BA549C637941BA94252E8DE378BF26B1F1C1C070AFA50E2BE0AADFD9D7EA5776B45F2BB4BDCB9D35FA93EA9787547B8DED06D338CE27E1BB1D629725F5BC66E3F62A4769C7DCD01D470AFA63E15D754695CDC4B4ABB96DEAAEF68B7E535B7CCF44A35E9D6A51AB4AA42A5397D99C249C5FB9A3E40D73D1F5E5A394B4DAAAE6976A73C467F0ECFE86AB47E22E26E0EBBE5B1BDBCB0927BD19E7924BFC2F6607DB0A5B8D4B6ECD1F3DF0B7A7DA90E4A5C4FA629AE8EE6CDE1FBDC1EDF267AF70CF1B70EF12C17F63EAB42AD47FA09BE4A8BCB95EFF00203B6B3D56EED768557287E19EE8DDDAEBB6D5972DCD374A5F896F139152C673B138CF1B81DEC230AB1E6A152335E4C49CE99CBD2B0D6FD47E53A5D3B59E1ED4E770E0E7E3ED453517EF4FCF04E1C56EC671A3AFDB56D3E6DA4BF2C8A8C25FE1AB16E0FE2D3F203A98575F7D17465192D99AFA375697114E15141C96529746BC53F02D7094375BAF14066A7E63C9870AED3C4B72E8558CBDE05D90C893001EC2C0C00AA54D4BC9954A9B5D3732400C4136654A09F6299D17F75815200C34C004C4C7DC4FA00000009886C400C43120000002284FA8FBB060213EA313010BA12100818C404060C008886C00400004589324C880086201311217760211222024263E820022484C008B2427D008F700040260323DC00431340240FA3000100001107D06C404060FA080191448402C076189011EEC1809F50131670C627D40192855A94DFB136BDC444D819F4755AF4D626D4E3DD48B957B0BB8B8D6A2A0DF5C74F91A864407A9F06D9DE46552C67184DF4E4DB3EF5DCE2757D16F34AA8E3754DF23785512F65FF23B8A55EA529661268CF8EA50AF46546FE942B5296D2525903C9FD5EFD03D5F5D8DE7116954F4EBC4ED64E569577A6DF58F8C5F9AFA9AA51EA063BA645D2465720D400C4F53E083D42F0331531FABFEB20617A85E04A341197EAC9AA7FD3030E3417645B1A264AA649400A214F62C54CB63026A2056A04E30458A3B7525180108C11351F12718EC4D470046312518928C494620251C125125CA34980921A43E524A202511E0690F00431B916898981535B14D4864C8645AD80D6D6A394F635773689E763A19433931AAD14DBD80E3AEEC339D8D0EA7A352B9A52A75E8C2A41FDD9C728F44AB6D9CEC6BEBD9279D80F12D5F802D2A394EC6552D67E1F6A1F27BFD4E3B51E1AD5F4B9FAD5467523079556836DAFE28FA2EE74E4D3F64D4DD6979CB51DC0F2CE16F4B1C59C3CE349DEFE5D6D0DBD45E273C2F052FB48F5DE17F4E3C3FA9C550D6E8D6D2AB4961CFFBCA4F3FACB75F14721ACF0AD95F65DCDAC5CFF1C572CBE68E2755E03AD45B969F5D4D76A75561FCC0FA3748B9A96E9DE70DEA99A2DED5AD2AA9425FE25BAF9A3AED37D20DF5387A9D6EC69DED092E594E8A519B5E717ECBF9AF71F12D0A9AE70C5E7ADB7AB79A7D65F7E9CDC53F8AD9FC4EF787FD31EA96DCB4F5EB2A3A853EF569FE6AAFBFC181F56E9F4385B569B7C39A854D1AF24F2E8527EAE2DF9D19E60FDF149F99B097FE25D19E6A5B53D4EDD7E92C9F254C78BA337BFF00964FDC784E85C6FC2FC44A14E85F42DEBBFF00D3DE2F572CF93E8CEF34CD6F5AD1D463697B39D1C6D4ABFE720D79677F9303D0B4EE28D3EFAABB79CBD5DCADA5467174AAC5F9D39619B883A751BF535149AEB1E8D7C0E1FF00F18693AC5185B7156911496CAAC63EB231F34FED43DE8D95A68D1AF47D7F096BEAAD15BAB6BA97AFA6BC94BEDC3EA07531A9383C3F91910AF1975783919EB1AA694B1ADE9D5A1497FEA28E6E28FBF31F6A3F146CF4FD62C750A3EB2DAB4270EF2A72538FC71D3E20740A49AD8964D6D3A8F979A124E3E2B745F0B8FC7F3032F232A8D48C96CC9A604842C8F202714D6E8A67457DD2F0030E50927BA20CCE6B3D772A9518BE9B018A04E549C724001890C4803B0862000000239EC1D8780EC047C401800909F41800800008B11264404C4897623DD80BB80D8800892130228300860444C6C4C05DC3C4103EE04580C5DC05DD89F41B0EC020164004D0BC49323E2000D0076023E21D80C2BABDF5551C694154717ED36DA51F2F7FD3A019825D0C2A7A9D0692AAA549F8C9657CD19709C6A479A9CA338F8C5E500D8879100C892134047AF523D099160044600210D916F6017517761D98BB0098912C648E7600647236FA916027D083636DE190603C916F1B8B245BC65B030B5CC4F4D9E5EF19C24BDF9FFB9CDA89B7D66E54E3EA63D22F327E7BEDF0DCD5C3C40490D449C564928815A892502C489600A941EFB12502D5163516056A2494362D51635102B5124A058A3E434808463E04D47C4925E4494408A43512696C34808A44944924302381A44B034B6DC0490C9200100C008B23D89FC44056F7225AC8B4054F621259592E6B241F74063CE9A68A67493EC65B5B906BA81ADA9413EC6256B34D3D8DD38A6552A6BBAC81CD5C58279F64D5DC69B94F6C1D94E8A316ADB27903CFEF3498CE128CA0A517D549657C8E3F57E06B0B872951A72B6A9E34FECFC9EC7B1D6B24F3B1AFB8D3D3CEC07CF7AA7086A566DBA508DCD3F1A7B4BF6592D078C788F86A7EAACB50AF0A717ED5B5C2E7A7F18CBA1EDB73A6269EDF4343AAF0F5ADE4796E6DE15576CADD7B9F602BE1FF004CF675B969711E9D3B693D9D7B5F6E1EF706F2BE0CF49D0357D2B58C5D70FEA74AAD558966DEA38D58FBE3B497C8F05D5780E31E6969F5A507DA151657CFA9CADDE95A9E915956953AD46507ECD6A2DEDE6A4BA01F6C699C65ADE9EF96E1D3D428AC27EB3D9A8BCB99757EF3670BFE12D7AB2A9774A7A4EA2FF4F17EA679FF00DC8ECFE27C83C39E9638974950A779569EAB6EB6E5BACF3A5E0AA2DFE793D3B87FD2BF0CEAF1852D41D4D2EBBDB17294A9E7CA6BA7C7007BED4D275FB08AADA55E5BEAF6EF751AAD51ACD79548A7193F7C7E2534F8B68DAD756FAD52ADA6DC37CAA17D0F54A4FC235137097C259F238DD22FABDAD38DCE85A8CA14658945D1A8A74A5F0DE2CEA2D38D6A4E8BB5D7F4DA5776F25CB39524B75E7096CFE7F003AAA17B46A63967CB27BA5278F97899B4EE25DF75E4CE32CF45E1ED45B7C27ABD6D1EE1EEED69BCD26FCEDEA6D8FF00072FBC5735389787E329EA5630BEB282CCAEB4E6DB8C7F14A84DF32F17C8E4077B0AD192EA589A672563AF5BDCDBD2AD0946A51AB153855A4F31927D1A3716B7D0A9FDCD58CBCB206D80C6A77119755865D1926B679027F11241960980CAE54E2F259900316745ACF2EE52D63A99E4654D4BAA03040C89D07BF294CA2E3D50110167030022BA1212022FB00D8900980D8808F7183EE24004490B1B0097422C6002EC25DC62001318302181809300624488A010893101113EA4989F701090C4D0084BA0D740EE00470484C080049A8C6526D24B76DF65E260D594AE60F29C6DF1D1ECEA7BFC23E5D5FB80752F967F314DD55D39F99462FDCFBFC36F331AA5D4A5BD6B6A724BA35269FCF02E4A9795654ADE5C94A2F96A56496DB7D987672FA2EFBEC41CAD294B142D54A9E3FBDF58D4A7FAC9BDDFBDBDC0849DA54EB39509BED51657ED2FE2553B0AF4D7ADA0F2BB4E9BFE2BF916B8DAD66942ABA537D235572E7DCD6C5356CAEAD5BA94B9A2BF1C1E33F15B3F880A3AA5DDBFF7CA3522BAB9ECFF00697F13716173F9659D3AEA9CE9A9ACA53EAD78FB9F631B4D8D7BBB694F53A10945BFCDC6AC173B8F8C979BE8BAE3A9B101218BB8C0446431302200201313191602EE2EAC7D43A00B6429607D8837DC08B22D8F241B014990C8DBEA41B0137B1AAD4EFF00D5E69517EDBEAFC096A97FEA93A545A737D5F81A58A6DE5B6DBDF202AF2E4A505F8A4FFAFA8539657531354AFC97346967750E67F17FE84EDAA26BA819F12C895D2F12F80092249128A251F78114BC4925E089A44A2BC008609244D4478F0604127DC924492249010486975278D800490D2DB03486900974E818278181140480040300100D0C08B17626D09A02045A2785962680AF0464B6F32D688E00A9EE8ADAC64B9C48E1600A5A2382DE55822E20512592128A65EE3E245C577031254934F631E7413EC6C1C71920E29BF3035156D53CEC60D7B24F3B7D0E8654D14D4A29F60393B9D393CFB26A6EB4C4F3EC9DD54B74CC3AD669E7603C9F58E0EB1BBE693A1EAAA3FBF4BD97F2E8CE3753E0BBEB67295A4E3711F0C72CFF00D4F7BB8B04D3F651ABB8D3534F6D80F05D3354D6F866EF9F4FBBBBD3EAA7BC62DC62FDF17B3F91E95C37E9B6F68F2D2E22D3A9DDC16CEBDB3F5753E317B3F860DB6A3A251B883857A30A917DA51C9C76ABC0D6F3729594A5425F85FB51FE607B4E81C65C2FC4CA31B1D428C6E3AFA8AFF9AA89F927D7DE8E9757E20BBD2F43A94EE2E2A56A6E71F52A7272A919378C47BC93F0DF1D4F90F52E1DD4AC5B73A0EA41749D2F6B1FC51B5E1CF481C49C3F382B6BEF5F469BDA85E47D6C63E4B3BC7E0C0FA77D1F7E5B6FA65DC2F69FAAA752EA756DE937ED4212DDA7E1BE5E0EBA33DF29EFE278770A7A71D1EE142971058D5D36A74F5D4735697C57DA5F53D6F44D6B4DD6EDBF28D1EFEDEF6977950A8A4D7BD755F14074B6DA9DC52C273E75E13DFEA6D6D758A72DA79A72FA1CBC65E19CB27EBE9538E6BDCDBDBC5ECAA579F2C73FC40EEA85E46A472A4A4BC5332A15232E9B9C84B45D5E9415D68DA9D96A14A4BFBAAB0504FF00C3520F6F8A663CB892A699254F5EB3B8D3649E3D65C479A8BF7568FB3FB4901DD2609B34B67ABD1AD4A1523522E9CF78CD3528CBDD25B33654EE2138E535BF4F003240829656C49301F6138A6B7430031E7413E853284A3D5333858CF5035F911993A2A59C144E8CA3BE32054244BA672201090D098011EE49742203131898110012016030362010078800B047C49B447000449213010BB8FB09F4013EE21A0604418DF423F10120636240241D87DC00A2BD18D68A8CF384D4B1D56578A7D4AAA46B6EF119BCE731787F27FCCCA64581AA6A543D9A339D24963931ECFECBDBE58212B85278B8A0A4FAB9527CAFDFCAF666E1A528E24935E0D64C7AB674AA2784E3EEDD7C981ABFC9E85C371B7AD1E67D69CD72CBEBD4C8D22C6B5AD5A952B54E54D72C2941EC967ABED97E5D116DB69B4E8DD7AF9CDD49C76A6B188C3C5FBDF4CF86C8CE0238043100801800991649907D005D843647B00107D76259D812C7BC012C0804DEC045F56424F6259EA5727D408B7D48364A4FA953600D9ACD4EFD508BA749A751FD096A77EADE2E14DE6ABFA1A0CB9C9CA4DB93DF201BCA4DBCB6FBF896271A7094EA4E308C5394A527B452EADFB90423E5E47947A41E2B96B778F87743AADDA3972DD5C41ED530F78C7F55777DDEDD00E8E86B11D62E1DE524E3426DFA94FAFAB5B45BF36B7F89D058BCA4723A2D154E95384162114A292F0475D611D901B7A3D0C98A463D08EC65416E04D22514115B93490092C934B61A489456DD0058DBA0D25D892591A4900920C6C4921A404708782581A5B0114B61E0781E00403C060040180C00060781E00403001604D799310104B6C648E0B302C015E04D772CC3C11C015E08B896E3AE08E18153890712F6B245A7802871C90712F71138B0319C70B6E845C76321C7A90700287120E25EE2F047940C670212A5E465389171C2030276E9E76316ADAE73B1B6712B70C81CFD6B24D3D8D7DC69C9A7B1D5CA926BA18F52DF390387B9D33AEDF039CD5F85ECEF72EBDBC5CBF1C7D997CD1EA15AD13CEC6057B14F3B01E19A9F04DC5272958D6535F82A7B2FE6B639F8C354D06F235A94AE6C2E22FD9AB4E4E0FE124F07D0371A6A79D8D3DEE9119C251942328BFBAD6501CCF0BFA6DE24D2F9696B14E8EB14175954FCDD6C7F8D757EF4CF4DB2F49BC29C59694A8CEEDE9D79196550BE4A0A4DF54A7F67EA99E55AAF055A56E695084ADE7E30DE3F27FC0E4751E15D42D1C9C20AE29AEF4FAFC9EE07D45A74EF34C9AAFA4DE56B6CEE9D19FB32F7AE8D1D8697E90350A30F53ADD8D2BCA2D6253A4B964D79C5FB2FE87C57A17136BDC3953934DBFB8A093DE84FDAA6FC9C25B1E97C39E9A22DC69711E9B87B66BD9BFAB837FB981F4ADAD8F096B55A55741BDADA1EA353771B697A9737FAD4A5984FE4FDE3BDA3C4FC3C9D4AD4EDF56B45D6AD9BF51718F3A327CB37FE192F2479AE85AF70FF0012D24B4BBFB6B9935BD19351A8BDF09619D056D46EB4FD1AF2956A952B5B429B9463524DBA2D778B7D17671E9803BAD2789A8DDDA51BAA1355A8545ECCE09AE8F0D34FA34D61AEA9ECCDF59EAB6F5D2E5A893F07B33C2FD1A5E5E55BDD6EAD584E36571529D6A6E4B117570D4F97DE945BF33BF5303D1233525D479387B4D4AE6DF1C951B5E0F746DED38822F0AE69B8F9ADD01D1263C9896D7942E1669548CBCB2642604F22781263C8109538C974289D06B789941E206BDC5C7394233E51525868A276FDE206309F464E509473944004862EC3023F0177649917B0011F11E721DC08B4086C40026313022860FA8011E80C6FA0808F760D0FB80115E62EE499160212242013122447B801164C8B010077002230120064592EC4405D801F41301117E04990EE0264592638C7956FD404A38EBD418FCC8E408BEAC83649EC8ADB013656DEEC6DF52B930149F535DA9DEC6DA0E3169D57D3C89EA57B1B5A788B4EABE8BC0E6E72955A8E737993EA01294A7272936E4DF72708BE8108F936CF3DF493C68EC554D1B45A99BD9AE5AF5E1FA14FEE47F59F7F0F78189E92F8CA529D4D0743A999CB34EEAE29BE9E34E2D7FD4FE1E268B8634856D0CF2A75258E6697D179189C39A3F23552A47351FF00D2BC0EFB4BB0E58C76EC0656996DCB15B1D1D9D2C2316CEDF957436B6F0C203228C7632608AA9AD8BE298128AF3271428AD89C56C034B724979824F04E28058249750498D278012892C0D0D011C0F03C0600580C0F00900B0225860900920489000B0181800B01818000BC7A9200201825817C408E08E0B031E00578161F813F88B0056D7522D7916E058F0029E5CA22D7917E08E3C40A5C5EE45C59738F5C11680A1C4838F9191CA45C40C77120E264F291710319A22E2643890C30287120E0643445C7E280C4953C954E8A7D8CE7120E206AEA5B279D8C2AD649A7B1BE94136553A5D40E5ABE9E9E7D935773A6673EC9DB54B74FB18B56D53CEC079A6ABC396D79071B8B784FCDADD7C7A9C6EA9C0EE2DCAC6B4A2F7C42AEEBE68F6FAD629E7635B73A7279C2D80F9EAF74BD434CAAA75A8D4A6E2FD9AB07B2F735D0E8F45F491C43A7D1A76F7B5A3AAD8C5A7F93DE3724F1D3DA4F3F0793D32EB4A4D35CBB7860E5757E0FB2BA6E5EA7D5547F7A97B3F4E80779C23E98B866F39296A74EAE8F59ED99AE7A39F294775F147AB69D7D6D7F6B1B9B0B9A3756ED6D528D4538FCD1F1EEA5C1D7D6DCCED9C6E23E18E59E3DDDCD6E9BA96B1C397DEB74DBBBBD3EE22F7F57270CF938F4607DC0A5D46A5D4F9BB85FD3BEAD69CB4B892C696A14D6CEBD0C52AABCDAFB2FE87AF70B7A48E16E24508596A70A1732E96D75F9AA99F059DA5F06076D4E6E2F29B8BF14CD95A6B575436949548F848D427D9E531A96DD40EBED75DB6ABB554E94BCF746D295585559A538C97933CF948B6857A94A59A53943DCC0EFD31A672B69AFD7A6B15E2AAC7C7A337169AC5A5C6173F249F6901B3C8762119292CC5A6BC531A01B49A69F4299D08CBA6C5C83B01853A528E7C0ABBB36382B9D28CB3B6E06176132F9D069B6B7452D35D408770631008893ECC8B400000045A121B12CE580089110064512EC2013EE218BC40421B409009098076001318808BE80864500C8F725D88F70022C911602627D07DC8B7B00990F224FAE07158DC0518E376191B22C04C83791B7E05727E00293CE4ADB1C9F645727E0026FAE0C1D46F216B4DBCE66FA2257F790B4A6DC9E64FA47C4E62BD59D7AB2A9565BFEE40152A4EB5573A8F32624D2928B7BBE8BC8718F6393F483C5D4B876D55AD928D4D5EB47D858CAA307F7E4BF72EFD5EC062FA45E32FEC6A52D334A9A96A9523ED4E3BFE4F17DFF00C6FB2EDD5F63CF340D2A52A9EBEBE65564F397BBCBEFEFF32BD1F4EAB73712B9BB73AB56A49CA529B6DC9B7D5B3BDD1F4F51E5CA02ED234FE58AC44EA2D2D7963D05616AA2BA1B5A54F0B1802346972A32A9C7708C705B05D409C11747A908752D88128F526BA8A24E2035DC92E81EE251005BE4781A0F88091205F118080608041824002018008060020180080600030C0008303C06008E0304B02C00B0BC111C13C0600AF08304F01802BC11E52CC072815388B1E25B8D84D014B8EC45C7C8BB9458C75028715822E25FCA84E0063B8A645C71D5190E247940C670F020E06538EC43940C57122E3E064B86E45D3EAC0C66911E5321C12E845C40C770C95BA6BC8CA7122A2B7030A7453EC6354B64F3846D1C48382034556CD3CFB28D7DC69F179F64EA25472533B74F3B01C4DCE969A7EC9A4D4743A5714E50AF461521E128E4F47AB6A9A7B1835AC13CEC078AEABC11465CD2B39CA8BFC32F6A3FCD1C9EA3C3FA8D8F33AB6F29C13CF3D35CCBE2BA9F425CE9A9E7D935573A52DF11C01E51C2DE90B8A3865429E9DA9D59DB47FF004D73F9DA5F27BC7E0D1EB9C2FE9E34DBAE4A5C49A7D5B1AAFADC5B66AD37E6E3F697D4E5756E15B3BBCBAB6F152FC705CAD7C4E3B53E0BB9A39959D555175E4A8B0FE7D181F59E87AEE97AEDB2AFA36A16D794FABF555136BDEBAA66CA323E1A51D4745BC5560EE6CEE63F66A41CA12F8491E87C31E9AF89B4970A7AA7AAD5ADD617E7FD8AA9794D75F8A03EA4526C69F89E6FC2FE97F8575BE4A571753D2EEA5B7AABC588B7E535B1E834AAC2AD18D5A538D4A52FB3384938BF735B01B0B6BDB8B679A356497867637169C432DA3734D35F8A1D7E47379F324981DD5AEA36B72BF355639F096CCCAC9E78A4F3B3DCCEB4D56EADB0A155CA3F865BA03B64C0D0DA710D296D734DC1FE28EE8DBDBDD50B859A35632F24F7F9017909D38CD6E890018D3B7EAE2CC79C2517BA36446514D6EB206B44664EDD3DE3B18D3A728F55B015E006201342242C008400024263002284FA921301761218BCC04D0B0484BA011EE306004589ADC93E847BB002248880320FE84991EC02EE2C3791F2B6BC87E4024B1FCC4C7922C04C83636F6641B013782B6F660D906FC404DF530EFAEA16B49CE6F2FEEAF1257B730B6A4EA547FE15E272D777152EAACA751FB9764046EAE275EACEAD6974F17D11C4E91C590E21E2CAFA769A94F4FB6A6A4EAAFD2D4E64B2BF57AFBCE43D25F1B3D42AD5D1343A8DDB27CB715A1D6ABFC11F2F1F1347C17AFD3E13BABA9C6D7F2AAD529A8E39F9630926DA4FC7CF1EE407AF71CF15D0E19B0E5A7C95752AE9FA8A4F7515F8E5FAABEBEE3C8B4FB4B8D4AF6ADEDFCE75AB56973CA5379736FBB15085DEB5A9D5BFD46A4AB57AB2E69C9ED9F72EC976476BA369BCA96C05BA3E9C928EC75F6168A296C57A7D9A8A5B1BBB7A4A2BA012A14D45743262922318E1128EEC09C51641772305B32D8A02715B16C56C422BB16C56E034B62C8A125B934BA8047B9248122490024090F009000C30180112C0241800C060780C00B0181E03002C060780C00B0181E03002C060780C006186090010C3027816008E0303C30402C0B048008E031E6485801608F2B27F00C015E3A89AC166030057CAC4D1663C85CA054E2271F32DC0B0054E3E245C4B9A172BF002971F122E3E25EE2FC08F2818EE0C8B8190E2C8B8818EE0C838192E045C7C5018AE041C4CB7120E1E4063723F120E264B87C88383031F944E05FCA45C700634A9E4A674535D0CD7122E3B74035B52D93CEC8C4AB669A7B2376E09F54572A49F50398B8D3D3CEC6AEE74B4D35CA7693A09E4C6A96A9E7603CEEFB468D48B8D4A719C5FDD92CA391D57826D2AE656EA76F3FD5DE3F267B2D6B14F3B1ADB9D353CFB3F403E7FD4B85F52B3E670A6ABD3F1A7BBF8A170F7146BFC315F9B46D4AEAD397ED52E66E0FDF07B1ED975A5279F67E873FAAF0E5B5DC5FE516F19E3EF630D7B9F6033385FD3DD487251E28D2D4FC6E6CBD97F1A6F67F068F5CE1AE34E1EE26A717A3EA942B556B7A137EAEAAFF2BDFE593E65D4F81E507276359AF08545B7ED2397BCD2EFF4EA8A75E854A6E2F2AA47A7BD4901F7267769F55DBC3DE34CF92385FD2BF15F0FA85277DFDA1691D950BDCD449794BED2F9E3C8F5CE16F4E1C3DA97252D6A8D7D26BBD9CA5F9CA2DFF892CA5EF5F103D753F02509CA12CC64D3F266069DA859EA56B1B9D3AEE85D5BC96554A3514E2FE465640DBDA6B5774128CA5EB63E12FE66E2D35EB6AB85593A4DF77BA3904F624A5D7007A0D2AB4EB4734A7192F14C9E4F3FA35EA517CD4A728BF18BC1B6B4E20B9A7B564AAC7E4C0EAD09A58DCD75AEB5695F673F572F091B18494E398494978ADC0A6A508CBA6CCC69D19473B64D80600D53DBA81B0A94633EAB731AA5B4A39E579031DF9115D09B4D3C49608F88084340D010604BA91010BB8FA098009741910060180C6C026458D8B002176258D858D8083EA3487E22400C8776C6D91C80320D92932A93EA0127B15C98E4CADBDC0527D4C5BBB9A76F45D4A8F0974F32773710B7A52A951E12FA9CA5FDDCEF2B394B682E8BC008DE5D54BBACE73E8BA47C0F3DF4C3AB5CE9BC3D6D6B6751D29DF5474EA4D3C3F56965A4FB67647A042193CBBD375774AE745A5059ABC956A45F686E9652EEFC3C00F2EA54FF00254A9C36B8E926BF46BC17EB7EEF79B2D1F4D75E516D620B6F7F910D2F4F957A98C7B2BA9DEE8BA628A8A51C2F701668DA66147D93B1D3ACD452D8869B63CA96C6FADE825101DBD2E5C19718E050584496E00BA9645118A2E84409423B16C23F30822C8A01C6259088A08B1201C5326979892D89200489636048780160924086804181825EF00C30C12002380C12002380C12002380C12002380C12002380C1200180F6FE986DFD30100F6FE986DFD3010B04B6FE986DFD302004F6FE98B080401805BF54002C0F018023D80960300445824D06008630182780C015B422CE5172815E04E259842E540558160B5A172F96C054E3D48345EE227178031F04794C8E5447977031DC48B8192E288722DC0C6E520E3D4CA7022E2062B8B21CBF0329C3C88B82C74031B04706472608B8A0319C51170325C4872A03125453EC6354B74D74D8D9F211704068EADA269EC6057B04F3EC9D34A92792A9D04F3B01C5DCE989A7ECEE6A2EB494D4BD8D9ED83D0AA5AA79F64C1AD629E7603C8356E0DB3B87294693A351FDEA5B7CD746721A97085FDB394ADF96E20B7C2DA4BE1FC8F7EB8D3A2D3F67735575A5A79F632078169DA8EABC3F7BEBB4FBABAD3EE22F2DD39B83F8AE8FE27A870C7A75D66C546971059D2D4A92D9D5A7F9AAA979F67F4361A9E8346E60E15E8C2A47B292C9C76ABC0F49B72B2A92A32EAA32DE3FCD01EFDC2DE93385B88F929DAEA31B6BA963FDDEED7AA9E7C13E8FE67669AE55BAC3E8FB3F733E22D4B41D42C73EBADDCE9A7F6E1ED2FF4369C31C7DC4DC34E31D2F54AAEDD7FE9EBBF594BDDCAFA7C00FB2931E7078870BFA79B2AFCB478974D9DA4FA3B8B57CF0F8C5EEBE07AC681C45A4710D0F5BA2EA36F791C65AA53F6E3EF8BDD7C80DCA917DBDDD7B779A35651F24F63113CACA634F603A1B5E22AB1C2B9A719FEB47666E2D755B4B9DA155465E13D8E1D3DC6981E8A9A6B2BA06C70B6BA8DCDB7F755A58F06F28DC5A711745754FF00CD07FC00DFCE9C66B75931AA5AF78B1DB6A16B72BF35562DBECF6665640D5CE128B794451B494632EAB28C7A96A9E791E18184C5D8B674E506F9915AEA045889317B80878889313010305DC3B009897406002CE04FA07BC1809911B22026FA9064B6C15C98037D7056D8DB20DE0052663D7AD1A34A53A8F115F5275AAC69C2539BC4577393D4EFE77B57116D528F45E204751BD9DED67DA9AFB28A29C029C3E5E24AF6EADB4CB1AF797F5551B6A31CCE72EDE58EEFC17702AD5750B3D174CAD7FA8D554E8525BE3AC9F68C5776FC0F09D7B54BCE2ED76579730F574A2B929525BAA50CE52F37DDBF12FE2AD7EF38C3568CDA952B1A4DFE4F433F657E27E327E3F046D343D2D4545463B01668BA5A8C6294764769A65928A5B11D32C5462B63A2B4B7518A00B6A0A3146645248718A487EE0175D89C16E248B61101C117410A112E8C500E08B221048B22900E2B625141144D258004492048925EF00403C04500218603002EE484B1B92DBFA60201EDFD30DBFA60201EDFD30DBFA60201EDFD30DBFA60201EDFD30DBFA60201EDFD30DBFA60201EDFD30DBFA6000480088120022048008860900110C120023862C131011C79863CC90B002C79863CC6002E5F062C3240044304B0180218172B2786259EE04301CBE64C580218163258D790B0057CA45C4B71E40D79014B8F911E52FC11E5F2028E4EA45C0BF97C858F2031DC08B83EE647289C7C80C5E422E0653891710311C190706654A3E445C00C570C91E5D8C971F222E0063387517217B8F911716063B814CA8E76335ADB723CA06BA76F9CEC6255B34FB1B97020E9A7D80E6AE2C13CEC8D6DCE989A7ECA3B1A94726354B64D3D80E02EB4AEB889CCEAFC2767799955B7519FE387B32FA1EB35ACD3CEC6BEE34E4D3D80F04D4F82EEA8394ACEAC6AC57DD9E22FE7D0E7A54EFB49BA8D4FF78B4AF1DE338B706BDCD753E87B9D2D3CEC696FF4585584A1529C6707D6325940725C31E99F8A347E4A5A8CE9EAD6CB0B172B1531E535BBF8E4F5CE17F4C9C2DAD7253BCAD534AB996DC975F633E5516DF3C1E41AB7045AD4E695BA95BCDEFECEF1F93391D4786351B2CBF54ABC17DEA5BB4BDDD501F695BD7A5714635ADEA42AD19AF6674E4A51979A6BA96A793E26E1FE24D7386EE1CF46D46E6CE59F6A1197B32F7C1E53F91EB1C2FE9EAE29F252E27D3215E2BADC5A3E49FBDC1ECFE0D01F412619398E18E38E1CE268C5693AA519D67FFA7A8FD5D55FE57D4E9338D9F7F102D52C3CA6CCEB4D56EEDF6855728FE196E8D6A781A680EA2D38869CB0AE69B83EEE3BA36F6F776F72BF335632CF64F7F91C0A2509B8BCC1B4FC501E84D27B3DCC7AB6D196F0D99CADA6B5776F84E6AA47C266E2D7882DEA24AE212A4FC7AA0322A529C3398B2A46CA8D7A3711CD2A919A7E0CAEADAC65F6767E00603116D4A52867996C56C08747E40C62EA80883E83647002621F62202641926D63A906D6E0459093DC932B7D008B65556A461094A6F118F764AA4D538394E494577395D5B5295DD474A93C515F5021AAEA12BCA8E9D3DA8A7B799894E9B0A70C992B929529D4AB250A704E53949E1452EADBEC05756A51B4B5AB73755214A8528F3CE7378514BBB3C438D389EE38B7528D0B7E7A7A5D19668D36B0E4FF00E24D78F82EDEFC993C7DC5B5789EF3FB3F4D94A3A55296DDBD7C97DE97EAAECBE2CA743D2B096D97DD816E87A528A8FB3E79F13B7D2EC3952D88E95A7A8C53C1D2D9DBA8A5B005ADB72A5B19F0828A0845244BDC02EA38A634B2590880A1165F08788423E45D05E4011816C23E2115E459140118B2718B08A269600697B8693C8D263480121E07D86045264947CC7F000163CC319EE31A012404800881200220480088120022048008812002204800603C0600403C0600403C0600403C0600403C0600403C0600403C06004268780C0114809603080400D30DC00581E0300471E4182580C0111344B9430FB011C0B04B0180218F2160B302E502BC035E44F945CBE6056E24705CD11E502AC11E52EE5172814389069191CA2710319C48B8992E041C7C40C7E4F220E1D4C97022E0062B8B23CA6538107058790315C7C84E264387811705DC0C771F1442505DCC87022E3B818B2A597B228A96EB0F633DC48B881A8AB689E76306BD8279D8E85D32A9D1EBB01C85C6989E71135375A565BF64EFAA5B26BA1875ACD3CEC0795EADC336B789FE536D09BFC4D625F338CD5381EA4332B1ACFCA157F99EEF5F4F8CB3EC9AAB9D2D3CEC07CEB7BA6DF69F3FF79A13A6D749A595EF524757C2FE94B8AB879469D3BF7796B1DBD45E7E7238F293DD7CCF48BBD222E328B8AC78636392D5F82ECAE1CA50A4E8547F7A96CBE5D00F40E17F4E5A1EA1CB4B5DB6ADA5D7784EA47352937EF5BA3D434BD4EC755B6571A5DE50BBA2FEFD0A8A497BF1BA3E40D4B84750B5E695BA5710FD5DA5F27FCCD4585EEA5A1DEFADB1B8B9B1BA83FB54E52A7203EE34C699F3470C7A72D774FE4A5AEDB51D5282D9D45F9AAC97BD6CFE28F5CE17F4A5C2BC42E14E9DFF00E45752FD05E7E6DB7E0A5F65FCC0EEF234CAD4938A69F326B29AE8C69E00B69D49425CD4E4E2FC533696BAEDDD1C29B8D587EB75F99A64FC58F2075D6DAEDA575CB5D4A93EF959465FAAA55E3CF6F38C97EABC9C3E4B28D6A949F352A928BF14C0EAA70942589220B666A68EB9711DAE231AD1F192C3F99994F52B4AA93729517E12595F3406491EC4A128D459A75213FF000CB22945A7BA6BDE9A022C83E9B137EF20FA0106419293493CBF9B316BDEDBD14DD4AB158F302D93EA635CD7A76F4DCEACD452F33517DC434E398DB41CE5E2FA1CF5CDD57BCA9CD5A6DF82EC80CFD53549DE49C2966347F79854A0DA23460DBE866D1A7D3C4054A0A29B6D24B76DF448F1EF48BC632D76BCB49D1A6FFB3612C55A91FF00D4497FF45F5EA657A4AE3477F3A9A1E8755BB54F92E6BD37FDEBEF08B5F77C5F7E9D0E7742D2B0D39472DF96DF002CD0B4A6B0E4B32EECEEF4AD3D452F648693A728A8EDF43A8B3B6518AD80959DB28C56C6CA9C12414A0922C7D008BF2147763C138440211C9742210817462011896C63908C4B631F1014516450244E31008A26812CFC09240244921A5E618400348121E0004304BC401218243C0080780C0080780C0080780C0080780C0080780C0080780C0080780C000120022048008812002204800881200220480088120022048008812002204800860098010EC04B02C0080600445826004444C0080B089E1F88808601A2C1600AF9458F02CC0B080AB1E42E55E05D82386052E22C170600C7714271F02F71F2238EA050E3D4838F8193822E3F00319C3AA22E064B8F5C91710311C11171F1DCCBE520E3E4062389171D8CA717D91071DC0C6E522E26438F911E5F0031DC163A154A92F0331AEB920E3D40C09D04D6C8C6A96A9E7636CE3E3D08CA09E76039EAF629A7EC9ACB8D353CFB275D2A29A663CEDB3D80E12EB4A4F3ECFD0D0EA9C3F42EA9CA173421557EB47FAC1E9D5ACD3CEC6057D3D3CEC0786EABC0D0CCA56356549F5E59FB51F9ADCE4B51D0B50B0E675EDE4E0BEFC3DA89F45DCE969A7ECFD0D45DE93B3F67E4078EF0C71C71270D492D2753AD1A29FF00F8F51FACA4FCB95ECBE183D6F863D3CDB55E4A5C4DA64A8CBA3B8B36E71F7B83DD7C1B39DD5F846CAEF9A53B751A8FEFD3F65FD3638DD4F82AF2DDB767515687684FD9901F5670FF001368BC4547D668DA95B5D6D97084B138FBE2F75F23719C3C3EA7C353A57BA5DD467255ED6BC5FB334DC249F948EFB863D3171468DCB4AF2B4354B68EDC975F6D2F29ADFE7903EA74F234F63CC7867D32F0C6AFC94AFE75749B896DCB70B34DFBA6BA7C4F46B5B9A3756F1AF6B5A9D6A2D6554A72528BF8A02F6FC496762AE6C936F097B808C9B8BCA7861F965CD3FB171552FF0013C109B299B02F96A779D1D793F9154B51BA6B7AD2F818D2EAC837E005952E6B4D3E7AB279F365151E6326FAF8B2592135ECBF70180967B16D3A797D050C6F9665D0A69ADB7F7012A14B38DB73CD3D26F1B65D6D0B42AD97F62EEE69BE9D9D3835F57F05DC7E90F8FA308D5D23876B73547985CDE41FD9F1841F8F672EDD11C3E85A53938CA71DFB2F0FF502CD0B4A79529C5733FA1DEE91A728C57B24348D3B097B3F43ABB0B4E58AD80958DAA8A5B1B6A54D4574151A6A28BD6CB0047A0121C62028C5B2E8470118E0BE11014225918928C4B144051896456FD0122C48049124B234B24900A2892434860204864920100C004B71A1AD9020101200220480088120022048008812002204800881200220480030181800B0181800B0181800B0181800B0181800B0181800B0181800B0181800B0181800B0181800B0181800B0181800B02C120023862C1310111E18603B80605818011C79863CC900110F892C0B004700D3C1240057CA2E5F32CC0B0043948E0B702C01572A17216E3E688B4054E3B1171EE5F85DC4E3E0051C9E0C8B8F897F2E08B4063B81070325C511E50319C08B8192E3E288B8018AE9E33820E065B8909400C6E47E243976325C08B8EDD32063383EC45C1190E3E027103125493299D05BFF00233B97245C00D4D5B54DBD8C3AD629E7646FDC178154A92680E52E34E524F646A6EB4A4F3989DD4EDD35D0C4AB6A9A7B7D00F36D4344A75A9B855A719C3F0CA3938ED5781AD6A734AD5CEDE5E0BDA87C8F6CAD609A7B7D0D65CE989E7603E77D4786752B1E67EA7D7D35F7A96FB79AEA53A1EBFABF0FDCFACD2350B9B39A7971849F2BF7C5EC7BC5D6929A7B1CE6AFC31697AA5F945B4272ED34B12F83D808F0D7A76BFB750A5C47A753BB87475ED9FAB9FC63D19EB1C3DE91785F5E8C15A6A94E8D692FEE2E7F352FAECFE67CEDAA702548734AC2BE7F52AFFF00B25FC0D0DE697796504AEADEA422B6E64B31F981F67B929414A2F307D24B74FE253367C7BA5712EB9A34B3A5EAB796E97DD8557CBF27B1D4D97A64E2CB58A55EA59DDA5DEAD0C3F9C5A03E9393EAC836782D1F4E7AAA4FD768B6137E31AB523FC59911F4DD7F53EC68566B3DDD7A8FF8203DC5788DACA924B2F1D0F0B9FA5AE20B8CAA16BA7DBE7BAA729B5FB5235B7FC5DC43AA50A91BAD56E15369E6149AA71E9E11480F62D7B89B47D060FF00B46F69C6AA5B51A6F9AA4BDD15D3E383CB78A38FB50D7633B5D3E32B1B097B328C65F9DAABF59AE8BC91C5D85956B99669C2526DEF27FC59D768BA1AA7CB29AE79F8E365EE4051A1E91294A33AB1F747C0EF348D37187825A569BCA96DF13AAB1B3E58AC80EC2D1452D8DC50A4A2856F4545194A384028C7018C92434B20454725D180E31F716C62046102E8C4231D8B63101463D8B14469138AD80518F992516DF51A5D8924024B7269021F4004812CF71ADC6B60124186300124C690D0C0580C0C00580C0C00580C0C00580C0C00580C0C00580C0C00580C0C00580C0C00580C0C0060000000000000000000000000000000000000000000000000000000000000000000000180000C09A1800844BE01802203E9D80048303002380242C00B026890808E360C2241802BC0B94B1A16008608E1160B0056E24797C8B70202A691171F02E7122E3B814B810E55DD190D11E5DC0C77023C86438EF922E20633810E4325C48B8818AE045C4CA7021C9D760319C48B8EC64381070031A51F22B9413EC65B8909440C1951587B18F52DD35D0D94A04250DBA01A4AB669A7B1815EC136F63A5953CF6289D04FB01C75CE969A7EC9AAB9D253E6C47AFD4EFAA5B266254B34F3B01E59A9709D8DCB6EADA439BF14572BFA1CFDDF015BC9B742BD7A5EF4A5FC8F67ABA7A79D8C4A9A62C7D903C465C057117ECDEC5AFD6A6CBA87065C41FB5730FD867B0BD2D7E123FD96B38E503CCED785B93EDD59BF25148DBDAE814E1B38397F89E4EE29E96BF09954B4D4BEE81CB5A692A384A3B2E88DF5869AA38F64DC50B04BB7D0D8DB5A25D80A6C2CD452D8DCD0A292DD0E851C2E865C638E80461148961124878020A3E08B231DBA128C0B63101422BC0B147C89463844E31014625915E409138A008C4920489A5B00922690A2B62480120C64068030031000D20487F00000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000020C20001300001000000FB00009A04000205D40003044000189F400020C68000585B91C7500022C4FA30002044000585B95C8000534B057800022D22B925800020D6C431D40008348834B7D8000AE515BEC5334B38C000154E2BC0AA508F800010708E3ECA17AB8FE140004A308F822D84239E88000BA115BEC65D18AC7400032A9F42DE8BE00000BAB2510002D5B22C8F460005B1268000924B7240004A3D09A0002420001A41E200003400031800000000000000000000000000000000000000000000000000001FFD9, '1', '2023-05-24 14:42:36', '1', '2023-05-24 14:42:36', b'0'); +INSERT INTO `infra_file_content` VALUES (7, 4, 'f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828FFC0001108022702F203012200021101031101FFC4001C0000020301010101000000000000000000000102030405060708FFC4004610000103020502040306050205020505010100020304110512213141516106132271324281142352C1D1F06291A1B1E1073324437282F115B2536392A2C208163444D273FFC4001A010101010101010100000000000000000000010203040506FFC4002A11010100020203000105010100010500000001021103210412314105132251613271231415425281FFDA000C03010002110311003F00FABEC95F44CA4BF08FD4047BEE9A110AE8BDD076D10760A6D023B26926C0774D2404DA9A10843410914281A384B94D008421505B64210A59408426126B4120147280374804210AD004D201348046E842A0B2612BA6A00A1164249B0149347D56B48452522914D1B44A89521BA166F5F550B28962B6C8214D8AB25F74C3429809A04D6EBAA9102C9F0A2E759342A91A2C562A92D8DB9DC0968DEDBD96B92403658AA640E041E524ECB3A6A86074EC05BE8837B1D091C5D681541BFF000D46C2F70D0BADA05C7A398B4F912CA590B8F1F295D9616B008A8D8077B683BAF6E3D4E9F3F3DCBDAE883699BE925F3BF7772EF6EC938061F32A4B5CF1A861F847BF52AB74CD81BA1CF29D09EFD954058F9950733B70DFCD74B9EFAC5CBD6CFABC974DEB9096C5D4EEE544B52F97EEA900647C9FDEE54DD1BE5FBDA876560D9BD54435D25990B43231C91C2E776D7C263C53B72C44BA57E97E4A958305E6703C8683A7D505AD8CF9700CCF3FCCFE8AAADA9A4C2E133621207BC6CD3B0526EF54FAD2C6BA467993131C7C13BBBD8745E6B1FF0016454CD7D2E1AD6B9E342E27D2D3DCF2BCAF8C3C6CF95AF1E6BA1A72340D3F7920F7E17CC24F12CF2D6E595BE5D293A31BADBB93CAED31CB29AC5DB8F837FF004FA739B5330655C9F7B13DC7CC79DC7D3A775D2C3611472B4B7D546FEBAB838F04FEEEB87E10C4CFFB2E224649B8BDEE3F35EC60A06BDA443FED3F71D0AE124C5339EB75590C7F63C43CCA575E23F147D09DC2EA50C1089B340D7B2227D45DB35C52A3A2A98E573679A295AED6305B675F91DD7568FC819984019B470B7C49F9ED9D6A06524B4E40CB7849BDBF01ECB630BA0764203A270B90EDDA88E57C4C31E60E8C7C24EF654E574E0DC86C63778DBE8BA4C7576C5C8DCF748F2D81B7772780982DA7E8F94EEE3C760917D808A0166FBD8BBBA00111DF3C9C76575AF8CD9B4C37E79F63F2F5F7E813B3A5D6E5B18E9F924196F5CDA9DEC426D2F9FF0085BC7F8567FA89DC5B2463F973EE83921B5FD521E39466B9F2E06FAB92A40360F5139E53FBD15D6C211FFCCAA37B6CCFD54C669866272443FF00BBD92C81BEAA8372350DFD50734E733C96C7C0EBECAC850642F1929C06306E7F558711C46970A85CE9A419ADCFC47D960F1078861C319E4D3D9F29D036FB7BAF9B62F8B4B51519EA1C669CFC2C1B37DD632CBD5D78F8AE6E97887C412D738991C62A607D2C1BB979D6B26AF76A3241C3473EEAFA4A196AA512D49B9E9C0EC17A1A4A30C0328D179793937F1F430E3984E99A8281910003405D6869C0E15D0C3A6816A8E3DB45C64DFD6B2C95C5100B5363D136B7452D82D562D005B7517BC0692E21A072546576421BBB8ECD6EE55F05258892ACDCFCB18E3DFBAE7AB95E9CF2CF4AA185F52333FEEA0F7D5CB7410E768640C0C886EEB2BA381D27AE6F4C7C354A498B9DE452802DB9F94772BB61C73079F2CEE41CF8A95A191DDCF3A69CAACB7CB21F5633CA756C2366FBA8B4B6127C9BC929D1D291FD1BD15818D87D731CCF3B37727DCADEEDE99B0ECE98F993BBD27A0B5FB0439EE9748ACD60E6DE91EDD548B1D210FA8BB59C342A9D2BEA0965380C8DBA17F4FF002B56FAC491232087D1130BA576C393DCF451C8C83EF67707CDDFE16A5E6C54AC2210E748EDDD6BB9C7B2E7D54EC86374F52F6B5ADD40BE83F53DD72CB36B19B5F34A657173890D3C9DCFBF41D9793F10789190034F42733C685FC37D972BC43E247D487454E4C74E3723772F3B0D3CB58FD8B63BEC39EE5670E3B7BCDE8C38D192696AE625A5CE738FA9E57570DC2F2805E353CF55BF0FC39B18682D1A2ECC34F940D174CB3FC62EF269845132DB042EB79450B91BAF7A8421534484D208042684FA11472846FAA9A0D08495E83425D934D402453429B0210856010842011742136040420274194041486AA06828B261044269A0AA1268D8236D140C0B26A28564FCD3497D6CA8AAA8869223254C8236F17D6FEC392B0D6E2996534F42C13D48F888D191FB959A1C35D24C27AC799E73C9D037B01C2F7F8DE0F27377F238F2736382BA8C6EA6536A0A5B30ED24DCFB01F9AE7CB2E3729B9AD7C7D98D0DFEEBD1B295A2CAC1037A05F6F0FD338F1C7B8F0E5E5E57E3CAB64C7A275D95A6403896369FC96887C49594843716A2BB2FACD05F4FFB4DFF00BAF4A299BD1464A164832B9B7078B267FA6716535A671F2739F4A8EAE9EB6013524AD9633F334EDD8F42AFF75E5EB709A9C22A1D5D849B1DE582FE9785DAC2F138711A66CB11208D1CC3BB4F42BE1797E165E3DFF1EFE2E79C91BB4E10804708BAF13B8404894AE9B40F2A891D656B967945C145669A458269169A8DF45CDA871D42C56A0328D41170785D6A0AC9646883D2741637B5C2F3E6FCECAD86521C1AE75BF093C15BE3E4FC5639B87DA6E3D4C10BDAF25C4B9C7677E816B2D653FAE6199F6B88BA7BAC3418819226C7131DF69B59C4EA47B74F75B1B0B29C79954E6B9FBD8FC37EFD4AF6CC71C7FE5F36EFF2035D30F36A24B4636E9F4EA82F7CA2D0B7CB84736BDD555552DF2CCF52FF002A01CBCDBFA2F15E21F163E50E8A8DDE4D38D33F2EF60B396527D6B8F8F2CABBD8DF88E9F0A63A0A4026A83F16B7D7F88F1ECBE618E63551593B9CE779F37BFA59ECA1219EB090CBB232753CBBDD6DA4C31B180005C72E5FEDEEE3E093BAF2B3E1934E5D24A5CE79D4DFF2ECB818961CE8EE729D17D5BEC4329D2CB918A613E63490D5D387C9B2BAE5259A788F0D62CEC3AA9B0D43C886E32BBF0AFBBE0920C4F0FBB5C7CDB02E2C768EEEBE1589E12E648486FD3AAFA07FA3D2E28FA87D308A47D145FF003CFC2CFE1BF3FE17A3971C793F9E2F372CF59DBE9787CD79E4A79DAE3330E60E3F305B66F29AECE5A339D81EAA72C99A4CB1B334C40B9036F7406B69BD4E39E6EBC05CA63A78F2BFD10659B9EA340750CE4FE8A7EA9EE6D9221FC92C85C7CCA836075CBC9FD13BBE7B58E58C7EF4EEB77E3261C07DDC0DFAF253B32117B12FE50DB0FBB846A7F9FB952F44167484979E9BA7CE844459BD731B01ADBF55301F51FEDFA221A66FD1023CDEBA9395A350C1F9A982FA86DC1F2E11A77FA2D4C75F52D36FA7EE699BA8DDDF9941CB09BB4E798F3FA289901FBAA6166F27AFBACF55574F87C2E9277807A94B9691A1C5B1832D4BC7520EDF55E43C45E2971CD050B85FE690ECD5C6F117885F561EECEE8A9B6DF577B2F2A7CFC41F9580B29FA5B53EEB967CBA7AF8783DBBA95556C9532B9B4E5CF7BB474A4EBF45B30DC2DACB178BB8EA4F27DD6CC3B0E6C6D6FA576A086C346AF1E7C96BDB24C66A28A7A60068345BE286C068AD647A2BD8D5225A83196D15E1A8D945EE01A5C7D2D1B952D8CECF52EB3428667C8EC94EDCCED8BB86A7031F522E06487A9DDCB646C2FF00BBA66D9A34276FDFD5598EDC73CD5C11369C80C1E64C773DD6F8A264033CE43A5DEC760A39A3A4606B3590EE793EDD12F2C0024AC2093AB62E07BAED8CD38E5761EF7D4D9C1DE5D38F9EDF17B051F8DBE540D2D8B7E97EE50D0EA976671B46341C5BB00AF89A64FBBA76E560DDC567572BD336E95B436321910CF29D2FD3F4566465302F9DE1F20D75E139258E94797002F94E97B6A5672D0CBC93D9EFDF2DF41EFDD759AC227D0E0FA939E625B09D6D7D4AAA69EE3CA8AC001CEC3DFAA524CF9ADA96B3F1727D979AC7BC450D134C1481AF9B6D3E16FEAB8656E57A74C70ADF8AE2B4B86425F312E94ECD26E4FE817CFF001AC66A2BE6BCC6C3E4882C73D54D593B89719252757BB66FB2E8E1985EA1D2025DC92B53198F75EAC38A4ED8E8B0E92A1CD7CC3D80D82F494744D8C01956AA6A4006D65BE38ADB2CE595C9D2DFC453140001A2D51C6AD647A2B6D60A699AAFCB42966EC8534CEE3D6A4847755B1BEA9A10804210A20486E9845ADA8D95AA12414C6C81268490084202CD0D0840540845D08042109A0C20A5C276D15070842140CA413084D81A994821017D5083B2C35F88B29888A36BA6A977C31337FF000174C38EE77A4BD7D6B9E68E9E274B33DAC8DBA97136B2E3BA6AAC56EDA72FA6A1E5F6B3E41DBA0EEAD830D92AA56D4624EF31E356443E08FDBBAEC3630DE2CBEEF87FA67CCF95E1E7F2BFFC7063A3A18A9630C85818DE83F5E56B6B00D958001B23D97DBC7098CD47832B72EEA16EC9B5AA76521B2D328E5D558C60FF002B357D7D3E1D4FE755CA18CD8725CEE001C9ECB0328EB31AF5E24D928B0FF9691AEB4B28EB2387C23F845D5FBF52DD36B2A1B5D33A0C3DBE635A6D2545BEED87A03F31F6D3AAE1E29833F059CD75039EF8CB8BA56B8DF7E7DBF617B1858C8626C7131B1C6D166B182CD68EC3F2527B1B2B0B1E01074D45D72E6E29CB8DC698725C2EE3CBD1D5B2A236BDA74E9D3DFF005E56C6B971F14A19305AC2F881FB2487AFC27A5FFB7D472B6535409180B4DC1FDFD3D97E4BC9F16F065DBECF0F2CE49D375EEA2545AEB8530578EC7645DB2A9CAD3B28385D45619D9BAE74D1DCECBB32B5639A252C6B7A71A4658ECA0ED46AB74B16AB248DB5F45CEE2E92EE2EA0AB9609418DD9641B1EA3A2D155E22A489B9E6266AB1FF24036695CEF2C902DBACAFC30CB50F95EE2E73CAED8F37AE3A70CF826596DCFC5B14ABC465BCEECDF8631F0B7DD608B0F7CCF0E978E381ECBD1330E6B75215A29ADA5963F72DAEB8E3319D397052359A0016D8E0B0171A2D4D86CAD6C6A696E4CA211D1425A7041D2DEEBA2C8DCF706B01738EC02EBD1E1B1C2D12D590E906CCE07BF75D78B8EDAE1C9C9318F2D45E0E8B1095B35738C54BBD87C4FF6ECBDA5152C50C0CA6A08994F4D10B0CA2C1BFA95732232FAE7F4C63669DCFBF456343AA3D315DB10E780BE8612638EA3C1C9CB73FAA9C72111528D0FC5F89C7AF60A4032017790F97FA37D958F7321FBB805DC772372A366C2DBBECE79E9B0F652C73D9642E39E626DC37AA7EA97469CAD1CF1EC9B18E78CD29CAD3C1DD3BBA73921686C4342E2902CC1A7CA80173D4C35B07AA439E5FEA10D219F754CDCCEE4F098C94E6E49926EA78F657E7D0F25C892A79D433F5507BDF3DFE58C6810E005DF524EBAD8AF3B8E788036F0D16AE1A661C7B7759CAFF6B26FE37E2F8BD3E1D1640733FF000F2BE798EE32E925CF52E2F90FC1103FDFB2B9864AE9E46B24BC83791DC7B2DF4F85C35B4E20998195516CEB6AB8DB6BBF1CC71BDBC9C3493D74AD96AAE6DB346CD1D97A3A3A26B1A0596A868CC2E2C736CE6E842DB1456B68BCB95B6E9EF9975D2A8A00360B6471D82936356B45935B4A41B6DD48D80BA0924E566AE3B048DC1C908124DCBBE56FB2BAB5CF2CB48C8E11805E2E7E56379538E98D84B5A76F862FF1CAB208DB013FF36776A4AD91C0D67DED510E75BE13B0571C27E5C72CFF00A42385D51673EEC886DFC5FAAB4C8737D9E91BAFF6EE5565F2D61FBB779700D0C874BF6014BCD0C6F9348C2382EE5DDD6E6A395DDA67CBA4399C7CC9CFCDD3D945B1E6264A83BECDE4A71442370DA498F6D02D6D6329DA64A821CFDF2DF4498DCBEF512D9F8463833B33CDE88C0D19D5572D417FDCD280D60D09E0284B24952497DDB177D0BBDBB2ACBAE44710161CEC1BEFDD74F6F49AC524FEC39ED81A72DDCF76EE3A93EDFA2CD3BC318E92A1C1AD1AE5274FAFE8A8C4B12A5C322324B25E5B6E773EC385F3BC7F1D9ABA47024B23F92269E3BAE1DE57A76C30B5D4F11F89DD2E7868DF922D8BEFF17B7E8BCAC51CD5A40687065F52772B45161F254BC3A61A703A2F4D4542D8DA0596AD98FC7AA63EB18F0DC31913468176E0832DB4D15D14361B2D4C8B458EEF6B6F48323B2BDACD149AC0068A61A49CAD172AD62DD7D476215AD8B4CD2FA5A3FAABE281B139A5E333CECD1D56BC8D88E69ECE906CCE1BEFDD74C78EDFAF367CDF88CA1AE2016C0F23842DBE64A75064B1E885D7F6E397BD7410842F2BE891404243748249145D0AD4084C24A2829037D5347080DF547B6C9A1008EA84226C8A3841D13BA286A3D908406B6D50108081840D909B77D900130876C920652E5085749B07849EE0D692E2001BDD515959151B33CA753F0B1A3339C7B0595943518910FC409869B76D38372EFF00A8FE4BD7E3F89C9CD758B1C9C938FF00E907D5CF883CC58580D8EF67D511768FFA47256DC3B0D8A8DAECB7748ED5D238DDCEF72B7471B238DAD8DAD6B40B6502C02912BF47E2F838704FF5F3397C8CB3BD22001B267745D46EBDD23CE0EDAA06C8BEAA13CD153C2F9AA246450C63339EF36007BF0B4CED68DB5DBAAE6566284559A2C361FB6578F898D3664238321D87B5892B3366ADC785A88CB4185BB4354E6DA69C7FF2DA7E11FC4753C2EDE1F434B8753369E8A26C510D6C09249EAE27527B9BDD0DB261B83886A3ED95F37DB7103FF39CD2191FF0C6DF9477D4F53D3AE0DF6FD6CA3BA93765594C5F9526BB55109ACA52ACA68EAE9DF14CD0E6385883B2F0F5104B83D718A52E740ED5AE26F987BF5EBD743BDD7BD61E0ECB362B874588D23E295A6FBB5C3420F51DD79BCAF1E73E1ABF5D38796F15DBCEC52DC03BDF9B69F45A01BAE14666C3AADD4956007037076DF91D8F038D46D65D689FA2FC973F0E5C595C728FB7C794CE6E347284029D979F4DA05BD552F602B491AA896DD45732685647D35CAEDBA3B8D557E4858AD4BA7321A4D6F65B0538CBB2D6D8C70A6D6A9EA5CAB9B2538B6CB33E0B70BB8E8C159E58858E8559136E3F976E1594F4CFA87D982C3971D82E84747988749E966F61B9F65A5918983638406B19F30D9BFA95E9E3E2B7BAF3F2736BA88C10C54803606192676EEE7FF0B406B62FBC988749D381FAA799B17A61697C8EF9B9726D6B6139E621D20D6DC37DFBAF549AEA3C56DCAEEA6D63A519EA0E561D9BD50E7BA63E5C003231A5FA2896BA7379090CE9C9FF000A40979F2E01668E780BA4B2334F48BD310CCE76E6FA9410D85A5F3905FC049EF6C1E88879929DDDCA191067DE54BB33EDA0E8A6577F1436374C3CC9C9645BD8EEA60BA6F4C5E8846998A916BA40249DD963E1AA0E73A7D180322089B01E18D115383EFC955CD2C34113A49241986A4F0164C5314A7C36022E331D9B7D4AF0D89623355BF3CE5C184E8CDEDEFD173CB38DE38EDD1C6F1C96ADCF11931C0373CB97161A79EB2164B4E7EEC1B963B77F63D16B8A8648DCDAB71748C1F1476F80750BB14F4ED8489E2B189FABEC34FF00A963EFD6E593E29A5A6654431CB0002466801E7A82B6B29CCC1B2C40B6766DF982B40A6F26515116AC76B201FDD745B0B6E6468195DAB87E8AEBFA4FFD619693ED3079B1B6D237423F55898CB1B1162371D17A26C619267D83B723958F15A50D8FCF66806AE1D571E5C67D7A38793BD5732C01507B9A39B0EAA12481A2EEBDB80372AC869B3E57D48B307C318D2FEEBCDDE574ED965221044FAA7DD976440EAF3CFB2DF1C649F2E99BE91BB9CAD8A174F6B10C887015924C19FF000F4ACBBCF00EFDD7A30E3F59DBCD967BF88931518D0E794EE46FF455F945FF007959A3788F93DCAB1BE553973A473649BE6D3E1ECA1E5991DE6D412D61D436FA94DFAB107AEA4D9968E16E9BE802B62667FBBA66D872F705632274E2EEBC708D00E4FEAA33D4DCF9146D171C8D8772B738F5FCB34DDA9BA58E8DB959EB95DA5F927B2A482487D47A9DC37A7BA80C94C0B8B83E4E5C7F2553E50D065A8B35AD17CAE3607DFA0532E49F17D7FA58F739C0924867E2B5C9EC179FC7FC430D030C14F674BBE506FAF571E572BC45E29CF9E2A271E8E978F60385E39AD9AADFE92ECA4DDCE3B95CB56DEFE3D1C7C5FDADACAF9EBAA0B8B9CF94EE786FB2D986E17A87C84971DC9DD6CC3B0C6461BE904EF75DC829C0B59AAEFF00FD5E9D493A534B4818DD02E8C715ADA29C71D86CB546C59D316ED5B235735B6E133A056C3097FA9DA379298CBF8672CBD50646E90FA76EAB5C11D8648002FDCB8E96EEA51C79DBE9FBA80685E3527DBBAB012F1E540CCACFC37FEAE3CAF4E1C7AEEBC7C9C9ED748B5CD88E58FD4F3A17DB53D8740A4C89B192E9802E1B36F76B7DD4B3360B65399E7E7DC9F6520C6C633D46E35F2EDB7BAEDF3EB95233B89B864DF4621527107DCE5CD6E2C859DABA8530921785F51242482AC01404908867643B60809A8A413421442283BA0A5CA29F29A10A8108428114C6C84040C20A0EA5309B004210345600A0EE8BDD57513C74F119267B58C1CB8E8B58E3EC69677D82E7CF5B24933A9B0F609671A39DF247EE7AF64A365562BB67A5A13CED2483DBE50BAB4B4D152C4228226C6C1C0FDEABEBF87FA65E4FE59FC7939BC998758FD64A0C2D90C867A8719EACEF238683D8701741DBFF00945D4495FA0E3E39C73523E6E795CAEED052BF74289BAEBA9F8605D1ADF446BCEDCEB65C57621558A48EA7C08332B0E592BE46E68A33D1A3679F6D3AABA1AF11C521A073216B1F3D64A3EEA9A11791FF00901DCE8AAA5C1E5ACA8655E3EE64EF69CD1523358213C120FC6E1D4E9D3BEEC2709A6C39AF7459E4A894DE5A895C1D2487A93D3B68070BA1B6E8CDA36F7E7B9EAA406890B290B70886809809940290486E9FD1544C6EAC69B1ECAA6A985934E678870766274A4B6CDA860BB1F6BFD0F65E4E86774723A9AA439B2B3D243B53EC7BF7E458F503E86D37FF00C2F3FE2BC13ED719ABA46DAAA31A807578E3FEEE9C75D17CFF003BC49CF8EE7FD3D1E2F3DE3BABF18A37DFA2BC2E361D57E6B6CED246E846DFCBF31C1D1752375C2FCB7271DC32B2BECE394B3717709D9441530B8D8D1591652083DD5368D94AC10080A25C14A6C38D96799C32BADD1134805D619E7EFC2B353EA8C2E71293055C8ED0E80EE4745D9BBA5FBA81A191B74DAC07BF75E4AA0DE40F69B386C7BAF4185573AB60108686399A1E9EEBD9C79CCA69F3F9B0B8DDB6DDB17A61F53CEEEBEA7D944344633CB62EE1BD3FCA95DB11B306791DFD7DBA26630CFBC9CDDC38E8B75C49AC7CDEA93D31F4E54BCC7C9F754ADB306EEE13CAF9ECE90F950F43B95369328C94C3246DD0B96A626D068641E98DB9E53CA996B6139A676790EB946C101F1C07CB80E690EEE3B955C8E8A95AE967233B75D7609F048B4C979267651C05E7FC41E238E941829ACE96DA01B35723C47E297C9E6474CE11C407AA53A00BE47E24F11CD367870F739AC3A3E6B6AEF6E893795D476E3E2B9775EEA3C41B5F88863A7124C4FA89370DED75DBA0A43472E596F24727C2E773FC257C2304C4E5C2EB84809F2DCEBBF9B1EB7EABEF7E18AF8B18C3D8D790E25A09039EE14E4E1F5ADE78FAFC74A96034D2B437D503FE1EADFE12B7434BF677FDD8BC2F3703F095652416698A4173C1FC43F55BA1659B95C6E0EC7AAE6E3FF88D3C421393FE59DBF84AD11B0444308B30FF0044D8CBB4B1F6BF0561AEC4DB4D13A168CD28E780A5CA63F564B97C69A89D946CCB26B71E9683A83D979EACAB9AA5ED89BEA3C306C3DD459F68AE79398869D0BCEFF45AE26B61B434CD7171DDC579EDB9D75C758A9869DB4F67CB692A0EC37CBECBA1053E9E6D4EC06C4A41B1D234BA476697FB7F9EEA258E96D2D63CC711D432FEA77F85BC64C59CADA9F992D492CA72190B7790ECD08696B1BE4D2077AB473FE77FD7852687D47A5AD6B216E807CADF753CED60F2E985DC7771FDECB525CBEB36EBA40C6C81BA80E94EC06C3F52AD644D6DE6AB7073B70D3B2ACBD9034B9CE2E94F246B7E8156D85F2DA4A8B866EC8EFA9EE55964F9DB3DD4A6924AA37638B221F3F5F655492B22688E106E7A6EEEE546695EF716B2C00D2E468172718C5E9F0A85CD73B3CE766724F7E8172CB3BF874C71DB5D5D5C347179F52E682013A6B6F6FD5780C7FC432D738B0131D3DF46B4EAFF00758716C4EA710A826576779F8583E16A9E1F8697BF3CB72E3D78F659924EEBD5871B2D2514B56E0E90598360BD25161ED8DA00016AA4A40D6D805D18A2B58594B95C9D6DD751553C406965AE38D4D916AAE02DD935A67B2636CA637B0DD0D697BACD175B228831C1AD697CA76B70B58E372AE3C99FAAB642D8C074BB9F9472B508ACDCF50001BB631CFBF44C9644EBDC493F2EF95BD875526437264A927AE42757773D17AB0C24792E76F750687D43AE748C680EF6EC14CEBF754ECF7B6C7DFAA900FA975DA43631A661B01D07455C93865A0A669738F4DCF75AB74CC37BD94C3317E794EEE3F928470193EFAB0D9A75115B7F74DB132987993B9AF98741E96FB77EEA25AE949967716B3702FF0012E76FF75A5DFF00A831BA03A0D0590A8F3E31A088D909EC74EA8414016415E67D30105010ED940AFAA10108813490A299491B237510C268B24AA9A41252402108081842116B27404239426B61841FD8512F0C638B9C1AD03524AC2D92A31271650031538D1D52E1F17FD039F75DB87833E5BEB8C673CA61375655D708A410C2C74F54EF86366E3DFB29D2E16E74ADA9C4DE269C6AC637E08FDBBF75B2868A0A28CB616FA8FC4F71BB9E7A93CAD175FA3F13F4EC7864B9775F379BC9B9F588BEBC7D02893AA09BA8B97D391E5F809D352969C20200BADE92DD91EEB2E215F4F87C1E7554991A4D9ADB5CB8F000E4F658EB7157BEA9F4184C3F6CC41BF1807EEE9C706470FEC355AB0AC15B4B3FDB6BA7359899FF009CE1E98FF8636ECD1FD4F374676CB1E1F578CB83F156BA930F3F0D08367CBFFF00D5C3E1FF00A42EEC31321899144C6B236001AD68B003A01C7D15A3A74FAA6888DB54C0D534592A52B6F75216E1042614424EC984F7540845D482AA1AA4A29F0889B55CC3D45FF3ECA80745634A8963CA78A70534F23B11A1D3995A1BFF00DD6FE8E1BF2350B0D15509A304696DC74FD7DF95EF800F696B81208D86A4AF0BE20C2DF84558AAA617A579D5A36693C761D0F0743A15F1BF51F06724F7C3EBDDE2791AFE3936B1D75602B9F4B3B6460703A6DEDEFDD6D691C2FCDE52CEABEA4F9B583645F4481472B2A44AA653A1B2B49553F64186771D573AA242BA53B172EA59EA3659B1AC585EF24EF6EEACA7A97C5287C6E735EDE87755C8C2AA766B5C1B11B2639FA56B3C267355EE282BA09E00F8838CB6F5348D415A84794096AF53F2B46C3DFBAF15866212D24D9E226FF336DBF75ECA966A7961152E90484FC2D0740BE8E19CCE6DF2F978FD2AD2D7D43B3CE7244366F5519252F1E54032B06E76B28B8BA639A47E48F75C6C731B8A8186285A1CFE18DD40F756E4C48DF5D88D3E1B0973DC3311BDB7ED6E02F9FF008871F7D46674AF2C84ECC0752B9F8BE2B2CB297CA4CB33B668D9BEFD173E9E8A4A99BCDA8399E78E07B2E39F248F5F178FF9C9CFA96D462640702CA71B307E6B1D66043CBB868D3A2F6D4F46D68B65573E8C16919571C79B29771EBEA4D47C6ABF0E7C6E2435773C03E207E0B88C31D439C29CBBD24FC87F45EA718C183B339A385E36AF0C31C87D3A7B2F761CD33C7D6B9DC264FD1F452C5594F1C91D8822E16D69688DCF71003772785F26FF004BF1AAE89E68268E59A18C7A651F28E87BAF755B55254C9603526C18CD87BF75C33CA4BA7932E3B8E5A69AFC4B334B612430F37D5C7B2E7C74AF7FDE541C91DEF94EE55D144DA66E697D73BB50D3C7E8B4C74EE9079B544867CA3B7B70171B8FB7D3727C4238DD503246DF2E11B9234B7E6AE74B1C03CAA66E691DA1EFEE9891F52E1152B432266EEBE83BA4E91910115236EE3A3A4B6A4F65A9A936CFDA4236537DE541124DF8770D4E36BA53E6D412D8F8BEEEF6E8A4C844243A719A5DC33F0FEAB4B62CDF7952ED37CA131C6E5DA5BA560BA5606C60471374D741FE5552CA233E4D3B4BA43F2DB7F7EC9C934B52E31D3D9ADD8BFF000FF9407C54ADC90825CEF89DF338F6572BA492D0D8DB4E5D24E44935BFED676543E47CE4B9E72B7A1DCFBAAEA25642C74B50E680DD7F847EA578AF10F892499B2474CF3141CC9C9F65CAE5BBFC5D31C37F1D4C7FC471D287535010F9B62FBE8C5E19F24D5733ACF2F7B8FADE4FF64430C95AEB652C8CF1C9F75E870FC3D91B5A004BA9F1EAC3098C63C370C0CD5C2EE3C9DCAEF53D386D800AD860B6C16B8E3B5B458FB5D2D4228BB2D2C6D94A360D6DBA9AD7FE317FB00585D4E38CC86F601BD5591C20B73486C3A2D91C59981F25D9170DE5CB78E1964E19F36BA8853C79AED84003E6793A05638B45E38012E76E7E63F54F33A4F4476644DD2F7B01EFDD01CD8CE4881713BE9ABBDFA7B2F449AEA3CD95DF74E26B299B99C5AF9782766FB752A422F301927CCD66E1A7777BA8D9901CF31BBF86F0D498D92ACE799CE6437DF97FB765AB949D4FACEBFB27492549F2E001B1B742E3F0B7DD178E95B929C173DFBB8EE7F40A72481C7C8A6686B1BA586CDF75512C8886B0E795DCFE8B9E52B52405A23B3E725CFE01D826D8CCAD124C72B7868DCFB76526B041792770749D0F1EEA2E05E33CEE7061D437E677BF45AC7193BA96FE13FB542340D874FE1BA161763942C716FDA6986536B7442D7B44F5AEE95129842F0EDF54C20A48BA80424530AA50828E50A681CA1050AA028401A26146804D086A04549085016B6A84C239E3EAB5A52B73D167AAAA8E9AC1D7748EF86368BB9CA0269AB2634F86B43CB4D9D3B87DDC7FAAEA5061B0D082FBBA6A976AE95E6E49EDD02FA5E27E9F973779751E6E6F271E3EA7D73E0C2E5AB2D9B16F83765334E9FF0071E4AEB68D6B5AC0035A2CD005BF9052712EDC8B1DD63C5844FC2EAE3924C8F7C2431DAE849036E772BF45C3E3E1C38EB17CCE4E4CB92EF2499510C9239914D13DECF89AD78247B8DC2983AAF8D60BE0275278869A4A72EA6F264CE272EC8E94022FB1246FD02FB4553191D448C8DD998D759A6FB8FCD75E2CE678EE39FCAAC94822D75CDC5718830E923A66C7255E2130FBBA4845DEFEE78681D4E81752D6DAAA88A969DF3D4CB1C50B05DCF90D9A0772B8B13F10F116B4A66C3B093FFF0060B6D51503F807C8DFE23AF45A68F029AB2A23ADF113E3A89D87343491EB041DCDFE377F16DD2CBD19D06F7FDFEF64DB3B64C3A82970EA46D350C2C8616EB66F27A93F313D4DC95A0A9211924C22DAA2C8A130828288612098EDB215421BA9DF44822DD90308F64B8D5485B840C5F94D08088029B742A2A41416B48BE9BA73C11D4D3BE299A1D1BC59C0EC556DECAD69297E693E3E7D88D24D825764766753BCFA1D6D5C3A7FD63FA8FAAD94F2870041BDC020F55EBB13A08B11A5741303676C5BA169EA3BAF02629F0EAD34950D249D5B9740E07E61D8F4E0FB85F03F51F0757DF08FA7E2F91B9EB93B21C9F0B2C525F9EFFBFE4B434E8BE0E534FA12EE1A8B9489BA4B0BA6791B7582A22B82BA6E1AAA268EE15274E14D1EBA2C92348DC2ED4F0DF858268F5D02C5C5D71C9CF208F501FE56FC3311751B8C9943D807A9875595CD3CAA9D0975EC48B82345BE3CEE09CBC53923A38A78BA3AA7F9186DCB8B4667DBE01D02F29593C951296C235FC4361ECBAACC39D9036C434057C340D61F856B2E6B7E3971F04C3EB8B478706FA9C0971DC9E575E1A60D1A05B2382DC2BC456E2CB9FDFAE96A88E1ECADF2BB2BDADB293B4565D335CE9A9C381242E4C9E1E6564D99EE0C8B9237FE7C2F44EB1D5DA0EAAEA6A674DEB9BD10F4E4A4CADF8C6597AC5384D1C514429E8A26C513772353F53CFD5746ED872C74E33C9B66B5FF00FA5591B1D2910D334B63EA071DD5CF31520C9002F99DA13C9EC17A26375D3C9965BBB4228594A3CDA8BBE5DC36F7B1F7E4A76350D74D56E7320F940DDC9989B0012D59CF21D432FA0F7EFEDFD544364AB779D29CB0F53A123B7EAAFCE9346647CDF714AC0D88743603B92A6C6B61F443EB90E85F6DBDBA298BBC79700C910E6D627DFAA724ACA768646DCCF3C0E5263F9A96981152B3CC95D99FD55273D47AE625908FE654D91063BCEAC22496D76C7C35669657CEE04121BD40D4FB74F74CB3D4E898ED396A368A1681978B68DF7EAB9B886214F86B0C93BC991DB36F771FD02C18AE34CA3062A52D74A3906ED6AF371B27C59D24AC7E67FE23C7B2F3C99675D7E4518E63135649699C6D7BB216EDF558A8E864A978927B9E8DE8BD4330786AA06C8C665A98C58D87C4AC8A90305ADF4E8B594B83D1C5963674CB4946D6001AD5D28A2B70AD8E2ECAF6B2CB334DD4591DB857B589B5A0017538D85E74D1BD55D6FE316EBE9652E3668B95A628DB1105C0BE4E00528A2CDF7710CCE3B9E8AFCC29C7DD12E90E85DC8F65DF0E2FEDE6E4E5B9750830446F38CD2EE197D07BF7526B5D33849339D90EDF89DD8043621182F9802F1A86DEF6F7EA7B2618F9C97BDC5917276FA00BD1AD3CF7FC17333FCB85B66B74D361DFBFBA8CF3C54A3243ABC9D5DDD4259CBC8A7A46FB5B4FA929B5ACA5D879951C91C1EDFAAE76CFC353FD28E00D1E6D66AEDDB0F1F5527992A9C4B8E58C6C7823A0408F29CF504176F9771F52A6D63E605EFB3231FD7D94C71BF82DFED00E73BEEA95A2DC93C77536363A73962BCB39DC9D0FB0E89B9D99C63A66E51CBB603B95CEC4B13A7C3699CE7C80DF737D5FD82DC931FF00D4FF00C69A89E3A58CCB52E697B75B9D037DFA95E17C47E257D4B648E9A42CA7D9D25B57FB2E663F8DCB5AFBCAE2D87E481BCF72B9B4B452D6481F30B01B37A058CB39F97A38F8BF359CD636FA42E23A9E50BD08C363B0F4A173FDC8F4FA62FADA1085C5B011CA0A4A80A1329288108420684859343461351472A0925CA57B2135B3692636487D4FB2A1F3BDF37D9E8E3F3AA0F00D9ADEEE2B7C7C7967758FD2D98CDE4B2A278E9E3CF338003FAF61DD2A5C3AAB1401F579E9A8B8881FBC9077E8ADA98A87C3D874F8C63B3891D4EC2F73DDA359D9A17E60FF0050FF00D5BC77C4D592C743532E1F8582432185D95CE1D5C46EBEEF89FA74C359E7375F3FC8F2EDEA3F5AC4C86188434AD8DB1B340D670A2FD17E12A5C6312A599B3C15F55148350F6CAFBAFBA7FA2DFEA957625884781788E633BA416A7A9768F07F0BADF103AEA755F670924D3C1EFB7DD0958319C369F16A175355676B7307B5F1BB2B98E1B381DAFEFECB71DED6B76FC9446FA6EBAE96FC789C23C014D43893AB27C46AAA4937C84640ED6FAEA474D805ED3468BE80347D2CB1E2F8A526154C26AD932071CB1B1A0BA491DC35AD1A93ECB9D0E155FE2077998FB0D1E1B705986B1C33C83ACCE1FF00B07D6EA638CC67496A2713ACC6E47D3F86F20801C92627234989879118F9DDDF61FD176305C169307649F670F92A25379AA6621D2CA7A93D3B68070BA7144C8A2647131AC8D832B5AC6E56B47000E3D858208576840774EC8E53B59111B208D5306DB22C41D502E35DD05492E55004D2E764F84D2072024840CA6120A41542520914C6C81F098D90130812904949100530A213445AC22FAAC18F612CC5296C086CECD637DB507B8E4751D16C06CAE8DCB3963ED35496E3771F3A8E4918F7C350D2C9E2395ED27D5FCF93D0F23B82B6C525FF007B2EEF89F05FB6C62AA9465AB8C683F18BEDD8F43D405E4A9A6CDA96E537B399B169BF4E3DB83DAC4FE77F50F0FD6FB631F57C6E7DCD57581D14AEA88DF71B8215ADD97C4B1EE80A896F6530870D1419258EF75826835D175DCDBAACC40A2CBA70DD4C4BB657414963621753C917D958D8C0D96326FD990528B6DA2A9F4D6E1758334D92746084911C530D8ECA2596E17524886BD9639ECCDD6B7233599E6C3BAA5C4970005C9E15B1B1F51286C5A0E4ECB5C6D8E980118CF21DDDFA7452637272CB934AE0A66B0892A4DDE368FA2D70C4FA876791D9631B1EBECA5153B434CD546FC8675F741F32A1B983BC9A71BBED6BFB05E898C91E7B95A9094B89A6A26DEDBBB6B772505CDA71F7367CE74329DC1E83A20389020A58F2339E3EA4A980CA769B105FB5FF007B2DEADEA33F158A7634799564BDC4DDB19FCD5A43A6767934670361FC920328749390DB7075CAA03CCAD049718A9C7CDCBBDBA27CEA25A4E95D33FC9A3172DD0B8ECCEEAD1E551B2CD7174A7E27EE49ECA0E9191B7ECF4CC02C36BE83B92B1D7554387C266A89017DB73BFB37A2CE59E975BF8B6636065A921AC1A96E6B01EFD4AF298EF887CC6BE2A5716C7B3A41A5FD973F17C5A6C4256B5C5CD849B3231CF72AEC3E8BECF501D541B24528B34F0DECB330F6EEB7F23353D049331954EBBA1B9CEC03D5EEBBB05208DADA8A6000B7A9A3656D2D33A827636C5D4EF166DFA742BA90D37D9E56BA3D607EDFC2BB638E9CBDAA10C59C36783477214EB28C3A2FB4443FEB6F7EAB6450FD9DE4B47DDBB71D16AF2FC922468CD19D1C3DD6AE3329AAB8E5EB771E79AC5222DBADF88D1F90F0F8BD51BCD80E41E8550C8DB1FAA4F51FC2BCB30DDD3D9FB935B2861CCD0F94E58FA755A58C3202E178A16FCDCFD148460343EAAD73AB621F9A6D6CB51EB71F2E26EC4EC3B05E9C3091E4CF3B9536BF3010D3B086F4DBEA54C39900BB4E690E85FC9F61F9A799A008606DCF4BEAEF7E8A123E3A4F539C1F372EBEDFE56EDF5FAC1E4CA03EA74D6ED88F1EEAA73E5AE79F2DD9226E85E766F609089D51F7D56E73623B37E67FF853323E62191011C2DD34D80ECB172B9350676C43C9A569BF2797773D121680DC12E94F4E0A632B488A0D5EED1C472ADF452EA4974A79E898E16A5BA4990656F995041235CBC7D545EE74E336B1C4342EDBF90519080DCF52E039C9C1EE578EF11F8A335E0A022CDD1D21D9BECBA5CB5D44C71B93A5E21F104542C34F4C039E740C6FF72BE7B5D5F254545F379D39EFA33FCAA1D2CD59239B0E6398FAE476EEF6ECBB185E18D8C0BB493C95C32CBB7B78F8A49DB1E1D8639F28927BBDE75D57A2A5A60D60165A61A7CADB655AE286C068B95EFEBADBF88CFE48E885BBCBEC84D447AD4C2498596C20A0A5A20108405368130808280424913AA1B492BEA95D36EC818428936D11044FAB9D90C62E5C40FAED6FD7B5D75E2E2BCB94C6319E730C7DA9D352D4E273BA1A439216FF00B9393F08E83BAF474B494D8743E4D2B32FE279DDC7A95D16D3C787D236088036D5CE1F31E49F7B7F21D82E74AED485FABF1BC4C7826A47CAE4E7CB96FF008F957FFA909666FF00A712189C434D431AF00EE09002FCAB45136476A36E17EE1F17E034DE24F0FD5E1956DCCD998435D9AD95DC1BFBAFC5F8EE0F5FE18C6E7A0AC8DCD9E07107D360F1C1B5B95E99A95E5CFB469E36CC5F1BA2680DE42EAFFA6F1CCEFF00517028A91CE6BDD58C6666F00EE7E82E5708D6CD20736089AD73B72D6AFAA7FA1FE11986203C498A39B47855202EFB44D6687F6693B83B170E2E35BADFDF8C4C6BF490B9636FB902FD6F65C5AEC5E492B1D8760B036B7101A486F6869BBCAF1CF61A94A215BE24847926A70CC25C3FDEB64A8A81C860FF0096DEFB9BE965E870FA1A5C3A8994B410320819B35A373D49DC93D4EBD6EB4E9B72F08F0F4549546BEB6675762AF16754CA3460FC31336637FA9E6EBB5FB1CD91642810DD229F2825341009F3A256E42353A94D20D6FAA3AA3D91AF2AE82427F9A1148DF9469C2684D84374D3085508052095936EE805208422184C2026804C0493444821013089A0149A75493B283430DC58EDD1795F1560AE639D88D134E6DE78DA2F987E203B7F517B6B65E95AE5734822C45C74BD9673C26735566571BD3E694556D91CE1A80DB5AE6E083A820F23BFFE0746375C6E8F1460A30EAA15B003F647389786E9E59E7D9A77E808B9D165824B581F6BDAD7B69FCF7B8EABF2BE678997165BFC3ED707363C93FD6F1A68A7BAA98E055817CDB3F2F49591652E1014110D4C05245EC50D9EDBA892145CE54CB2D9274BB391C2F75E7637BA6AF30554818CCC6C6DA9ECBA351516BAE357164A492002394EBF2CE58F4EE173434434CD01BD06B7EE4AB5B9297D4E19E5E00DD73F0AAD32B3C98E23F686EFADB4EABA21CCA505D984951F8CEAD69E8DEABAE3A93B79329FDA792CE12566A4EAD85A6D7F7E898325538BDC72C63419741EC07E69329CBBEF2A6E2FAE43FF00E5FA2B4669B6D23E001FD96A4B97D66EA1B5C47DDC0DD7AFE67AFBA8492474E0BAE5D23B6B6A4FB744A59C37EE6986693F981FA9516C4DA72E7CC43E6E9BD8FEF85A9BBD467FF4A38CCB696AAC23DDACD82B8B9D2B49692C89BF374EC127B465F36B0D9BB88CEE7DFA2F21E25F1636373A0A321CF68D4FCAC5AF935164F6BD3A98DE3B4D8646E6B45E53F0B075EEBC4FDB65C62B8B6596F274DC31785F107882696495B4CF7BE4768E9CEFFF006AE3F873199B08AF0F2E3E4B9D771BDF29EB7FEEBA63E2DCA7B3BFA7AC7DC30BA36460D256346627E3B6FD17529E9CC65D4B522E383F9ACF8254438CD044E6119F282D20FEF4E8BD0D2C2278BCB98012C7A025664DCD38676B3D1C3763A9AA0DC7C8E3B9EEB653B0C6E753480B9BC5F9528E33234B36923E390B4C2DF3E3B385A56745772305132C4C52004707A849F38A4063702EB8D070AAAAAC1E508DADF58DDD7D02E7B049512BB2B8E51BBC8D162DF6EA350DCE7BDC1AC2E7B8F17F87FC2B58C8E985DC73CDD786A9303583CAA66DDC7771DCFBA63253DDCE21CFDAE45C0FA7256B0C749B022B9CF524DCEA19D7BF60A41CF9DC1AC20319A13F2B7DBAA8819DA649C964675B13773BDD56E99F3CBE553B4586FD0056E5A44E595915E2A60E2E76F6DDC542381B09F32A087CBB869D9BEFDD49A594ACCB17AE67EEFBEAEF648B437D73904F0381EEB17BFF00A5FF00C3FF0079C649890CFC3D7FC29343EA3467DDC239E14591BAA2D24A72C40FC23E6F6563A574DA460358DD09E1BECB58637ED4BD7C48B9917DD5334179E7AFBF659AB2A21A081F34F20CE05CB8ECDEC163C5B18A5C2A9C907348E1A0DDCE2BE738D62F355CB79CE677C9083A0F7572CF5F1BC38EE4E9788BC4525635CD63DD1D36DFC4F5C08209AB9C2F7642366F5F75A28B0E92A24F36A2E49D8703D97A4A4A46C6D166ECB85C9ECC30983250E1ED85A2C340BAF04205AC3456C715B4B6CB4B23B059D7F6DA0C8ECAF6B3452637853B65D166A588E54295BB214ECDC7A34148F646BCA36026904D4004729045D349A33BA38482680D5050876E884A2EDFB26541EED122A12C961AAEF782210FAC129DDAC7CBFD9A3FFC9796A892D7B15EA3C0538156C8CE81F4CE00F76C9AFF004785F5FF004AC77CBBAF1F9BB9C6F45881F590785C897E2D976EBD97712B8F385FA3C63E5C6624AE4E39816138E46D8F19C3E9AB1ADD1A66602E67B3B70BA72B801726C00B93D179B6E2B598F4EEA7F0D060A563B2CB8AC8D26269E4423FE63BBFC22DCADFD5BD38151E11F06E075714747E1D86B3149758291A0C8E71EA438D9807E23A7D6CBD4E1DE1D92A2782B7C44E86A27875828E21FF000D4BD2CDF9DFFC47E965D6C1B07A5C26173695AF7CB21CD2D44A734B2BBAB89D7E9B0E2CB79EE9AD32093C927B93BFF9F651720D86C82A1A44A5CA914950AC9109F28542B5B74B43A8522928008E516B2655D05EC91BF29A110909A153663D9074D12B276436414D4794C6BAA0683BA171B1EF13E0D803F2E275F1432DAE226DDCF3F40A6D9FAED8415C4F0E789F0AF1179C30AA8748F8BE363D858E038362176F4E150C2681B20207C290510984449092610DA4D56B0AA8293542AF92364D13A395A1CC70B1045D780C630D7E115423F59A479FB97345EC46CDEE46DD48D37017BE8DCA18851C388D1C94F50CCEC78D47E9DD73E5E29CB8FAE4DF1E778EEE3C0432106C48EC41B83EDDB6B1EEB6B1D7E562ACA59E86B1D49527EF07AA394E81EDB8D7A0BF3C02736CEB09C3213A104104E84588EDFE17E4FCBF172E2CBBF8FB3C3CB39236B76FAA91D556D2A775E1B1E80A2548E8A04A82B90E8B054BCEAB749B158A7668551C9A979D755CE91E6EBA354CDD73E5615CEC75C35F9289EE8E46BE3711203A1BEFD97A7C2E786589B2075E51F15F42C3DBA7BAF26F0082395A30EAD7D1D409596B8DC1E4765BE3CB775938F3F15BDC7B3734652F94E568D6C78F73C2CEE9A5A9798E981644342EDBFF000ABA777DBDAD99EE1E4F001BDBDC2D41CE901652E56423E290EC3F55E99DCEDE1EA0664A6022A7697CA7A687FC2A6A278685AE9E79186568B977CACF6EA564C5718A4C269DD62731D7F89FEEBE718D63353894BF78486FCB1B7F34B9EFA6F0E3B9574BC4BE2792ABCC8E07BA384E85DCBD79134D2D7DDA46587F08F9BDD75E8B0C7CCE0F9C0BF03A2EDC144D6000342C7EE7E1EBC38E60F0788E041B1DD8DE1794AEA2744482DB05F6B9A883C10468BCAE3B820B38B58BD1C5CF67D6AF6E37FA75E27760D5CCA5AC3FF0721B35CED987BF65F7FA67B6763268CDDC45EFD470BF345461C58F22CBEA3FE9463D55924C3AAA39648A103CB946A1A3A13D56B9ACBFCF170E4E2B3BAFA94E1A182761B3DBB93B2E756D5798F2E6073011EAD7577BAA2A2773DF63726FE960E149B13611E64F6749B86703DFBAE327B3CDAD211C45C03E73963E1ADF88ABC669AC1A03231FFD23DFAA4C619BD72B8B587A0F53BB00A599D31F2A060681D361DEFC95D24D7C66997B58C1140D249D0DF777F8438474CD124F95F20D9BC0507CF1D2348888748742FEEA9F26D696B2E5C751113AFF00DDFA26594FC126D2065AC7191CE31C1F8F6BF601580E6FB8A56E48DBBDFF00B95168927B3E570645C5F427B00A4D6BA5262A5686B46E78FAAE7DD0896426F1832487E6DFF929C70868F36AC82E1B47C37DFAFB2BF3474B1E58EEE7B86A4727B2A9C5B0C667AA734102E2FB37DFBAE9EB27D21BAF2FAA4716C7C65DDDEC385E73C45E22652834F461AE95A2C003E967D7AAE6F88FC4AE9B3B291E5916CE94FE4BC7344B5CE2C8839B113EA71F89EA659F5A76E3E3B97D4EAEB66ABA877965D2CEE3EA909D1BD82DD86613621F27A89D6E775B30DC319135A32ECBB904161B2E372DBD327AF514D2D386B740B74716DA2B238ECAF6B7AACE96D418CEC55C06898002645C8B0B9E9D54C99A44E8AFA7A7CCDF324395838EA9B6264203E7F5487E18C2D8D88B8996AF43F2C6D1B7BF75A98571CF977D44016D85A2D10AEFB47488D90BA7A571DD6A4708BA179EBE88E10842804708402A8108429A4B09371BA483D5108AAA53E92A6556FD922B9D54458DD3C1F14761D58D9C7A8D349E6B9A37746465781FD0FD11500826CB95505F116CD15BCC88DEC75047208E45B75EDF139BF6B9265F873E6E3F7C34FB67991D544D96270731E2ED70E45B75E7BC438852E114A6A2B5E5A09B358C05EF90F0D6B46A4F65E3B03F14CF85D28A3A3A7356D9FF00FE0E77E5119275648EE1AD278D483DD7D128E8DE29207560825AD6B6F24AC6685DCE5E43471C2FD5F1E533C658F8B9E378EEABC38C12BFC472365F11B5D49855F3478531DEA946F7A878FF00D8DD3ADD7AB8D8C8E164713032260CAC634001A06C001A0F60B5BD997DBBAA1C355D63155FB28EBCA991D52D38411B7290D948A895542564C8B6A926911401A29247454241D7545D1CA885EFBA13B5D23B2013E52E109A07298D101006880BA1309FF5EC9B1152DB7DBA755CFC5F16A4C2299B355C84179B451B1A649253D1AD02E578CF11F8C3C4D87533AB62F0D0A6C3DA47DE54B839FAED99AC232DFF00A5D2DD1A7A8C5EAEA6A310660F864BE4D43A312D4D4DAFF678AF6161B6771B817DAC4F0A54D8260B83515448FA6A76C594BEA2A2A407BDE2DA97BDDA93FA85E5F0476398AD48F13604685ACC4616C55349585F6618C900B5C05C83AFF35E81B8154E232B25F12D632AE3638399454EC31D383C170372FF00A903B6CA7D1E7FFD2BC0FECD362B8DB207535357B8B68E022D961CC483FDACBE86DDCA00D34DB6D804C0B2ACDA68404D543098DD252428B6A984826544486E9A8B5495136AB637EA152D5369B2833E3785C589D19638864CCF54720172C23B72382390485F3D94CD495B2455599AF0431CD26F90F163CB4DAE0FB8E093F5163EDBECB8BE27C146234E6581A05546DB004D848DDF293C7163C100F0BC7E5F8B39F1BFDBD1C1CF78EF7F1E621915E0E8B934D298E4F29E1D704DB30B1B8DC11C3873D77E42E8B1F70BF29CDC5971E5EB7EBED619CCA4B17DD44A40A6B8D6D5BB50A8902D2541C3A6CA0E554C37B95CD9E3DD77E465D60A884159B1A95C2919655B9BD375D09A1B5CD96495B6D963E3ACBB8B30FAC6D34E0C9E6181C7EF238CEEB563BE288A289B0D159EEB681A3467F95CC30B9DB6EB341829CEE73BD598DF4160175FDCBAD579F2E096EDC694CF5D397C84BE43BBBA2DD43860690E70F56F7EABB7161E22D0356A64161AA9BB5BEB19A8C70D386DAC16C8E1D15CD880D95AD66AACC7F296ED9BC9EAB3555235ED208D174DC072A4C801F5CBA37A755B96FE18B97AFD7908FC282BE7CD29F2A9C1F51EBD97ACC36862A689B4B87C42389BB9B5ADDCF55AD91BA66E6738454EDFE67B0526174C7C9A6686C638BEFDC95DB19BFAF2E7CB9677FC498F64232C04BE5D8BED7FE4AD631B10CD2E5749BE5DC0F73D546CCA761F2CDDDCC9BDFD94BCB646C12559D7E565F6F75B934E5774343A725EF716C437713BFB76554D525EE14F48D163C0D2FDC9E8A0F926AE368FD108DDC4E8026C21A3CAA5612E3F1388D49EFD966E7F88B31FECDA194DEAD25A93C9F97DBF54F281EA9CEBB86DEF7F748E480FA3EF26D89E87B2D10D365FBDAAD5E750CFD531C76B6C8238DD53EB9496C7C719BD82B1D28B7934CDB0FEDDCA8B9EF9C92DF44405AE3FB05C6C63198A821F2A1F5C87668E7B95D2DF59D313BADF5B5D4F86C0E9667DDD6D4DF5F60BC078831E92ADC7CD73990FCB10DDC8AB96AF107BDE1A6691BC0D9A3A7BAD2CC0E1AB863AB80B9D201690137D7F25CF2B6F6EFC73197B79EA7A49AB640E945983E160E3DFBAF474544C89A2CDD96BA6A40C6D80B2DB14565C2DB5EBD7F4AE1872EC375AA38C5949ACE2CAE6B6DBA440C68E15805B84680A40973ECC172ADBF866DD7D302E6C0807BECB430081A083EA26D703527A0508A22F7110667F5796E84F6E8B5C0218DEF69689E5B58BEDF08E8D1F9F298616DEDE7E4E4DFC37BDB431F9AF60131DAFA96761DD3823325A5AB75ADA865FFBAAA28AD9AA6BAC6507D315EE23F7EF6B29D331D58D2F702DA7077234F65E8CB1B32D470DAE388C6340D6DBB310AD1530B7D21BA0D10B5AC93D9621085E2D3EA8482026A0108486EAEC3421097B0245348A8CA2556F56950235418AA58B9B3B37FD1765EDB82B0544563B2DC57118F6D2CAF86A038D0541F586EEC770E6F71FD76E57D1BC178EBE43FF00A5E232B5D531B418E6BDC4EC3B381FDEB7EEBC0D5421ED735D6B1EAA9A19DF1BE3A574A629E3717D24EE36C8EFC27F84EDEF65F6BF4FF32CBE995793CAE1994DBED93C7A5C7F7589EDB2CBE13C71B8C511128F2EAE2F44D19F95DCFD3F7C2E9544762BEFEDF27E5D561235512AD7B555754164884C245508A498B6B748841146FAA684D08946DAA10095505D1BA2FAA09BA03B2564235453B211FDD4269638227CB33DB1C4C05CE7B8D80037B944583F765C2F18F88A2F0D60FF006E929A4A8BB831AD60F4827F13B8D9639AAF1DC7585D8179585D0385D95B551E69651D591E995BD09FE4178D81DE2183C77178731BAF38BD0D536D3C6F1E87445A4E602DE9237D3959B7F03DFF00874E1F8BBBFF005FA27BE792A1818D749A9A768DE303E5D7536DC9E42E678A6A5DE238E6F0E60A44A6421B5D540DE3A765C1CB7D8BCDB4036D57CF6BB0993C13E278E96BC5655E0156F3664333E3F341D2CE0D3AB9B7D8EE2E17DAA869A9A8E922828A08E0A702EC646DCA00B0D6D6D0FBEA93B28C36869F0DA0A7A3A36E5A78182360EC393D49BEAB49486AA405956404C2131ECA813493E111209A8A9040C276414C2A86100213E140C290E1209A098362AF61BD9660AC695079BF16E07E6075751B1C6402F2B1BBBADB387F101C722E395E6A8E7CE2C72E6001BB7620EC476FF3DC0FA7B4DC6B6FAAF0FE2CC13EC529ADA41969DCEBBC5B48DC7736FC04EFD342BE6F9FE14E5C7DB1FAF6789E45C6FAE5595AEBAB015CFA59C3C6D620E52D3B83D0F53FBE84ED69057E5F3C2E3D5FAFAF2F5B4D04688163B2645973552F6DC159E58EE16DCAAB735071E7849BAC669893F55DF7439B70A229C2CD8D4CB4E5D3515B70B78A5681A05A9918D95CD68534B7272DF4E06C02A8C4BB0F8C159DF105B9D32E764B232EBA0DD68737520288B9764846790AD497272CF3F5561AD8FE31777015DE565B49542E7E58BAFBA9B32D3DDD70F98EEE3B34F6EA549B16BE6D41249D729362EFFA8F0BBE3869E6CB2F6BDAB0C7D49CF2BF2C434BFE41585DA0869A3DF665F7F74C992A0FA48631BF3116CA3A0519666C23CAA705CE76E7E6715AF8C1973295B7243E7DEE0683D9526174C7CEAA25B19D436FAB958C85908F32A487CBB807E16FBA892E9CE79096B3B9D4FF00852F7F561FAA73959963859D4E88CCE70FB3D2022FB92353EFD901AFA92238BD310DDC06DDD5CE9590B7CAA66937E79777570C52DD1B591D202E273CBF8BA7B2ADD620CB504866ED6F27DD573CD151B0CD52F1986B6E02F238C63525738B18E2C849B686C5CB572FE9263BEEBA38D63E4E6868CD80162FD8347E6BCE3609A47C7290E740F3EA96FA9FF0AFA2A3F3E67C15F1E46BBE06ED71D4AEF50D38A273A96705D03FE175B84C65AD5BAF8CF4D40DA0226A669303BE268E3BADED80D3482AE97D5149AC8C6EDFF505AA9E014AFF0025E6F03FE13D16AA680D2CA596BC2F3A76EC14CA33B63A8A5680268EC627FF00455B196D868BB0C884072100D3C9B7F0F658EAE98D3C9D587E12B8E73FA7AB8B937D565CA384F62A4753602EAF6C4D8DA1F28BBB86AE71D72CFD518612F199EEB315EC6B5D60C65A31BF75A1901747E6540C91EE1BB5FE8A2E73AA8B8447CAA76E85DF92EF8E12775E4CB92E5527E6980829CE9B9B0D07EAAEA66B296273997CD7B3A4E5C7B7458FCC7861828F3173BE27DB52AE2E348CFBD7F9B52ED9A0E6CBDBFF002BA63665DFF4E5945B58D6B2213D60377D8B6168B93F458DB535159365637ECF102743C0EDD56CC86261A9AF05F31D1B1836D165AAAD92AACC8E211B068D75B61D1BDD5E4B2F76FF00FC5C65F897930F2E613D4942A3C8A31A10C27925FAA171DE3FEB5E8EAA45348AE2FA4026A237DFE8995034B94903750490848AA04248E5464CA890A7EFBA894DADAADC75B2CF2B3302B5155BC226DC99E2D572EBE9CCB191B386A395E8668EEB9D3C76BAEB8E5ABB59AFCB260F89D4D3D5C75301FF008E80659184FF00BEC1C7B81CF3AF45F5BC23118317C3E2A9A5702C737AEA3B2F8D56C2E6BC4D092D91BADC1B1FFCFE6BABE18C7CE1757F6A68FF008595C054C434119DB3B7B1E4707DC2FD1781E57BE3E993E6F95C1DFB62FA94B1D8959C8E16D8DF1D4C0C921707B48B823959A4691BAFAD1E0FF19C8D52B5CA911AA481148A675488B2A6C944E8A496C80BA49F092A11424426544052081B6BB2E3E2B88D57DACE1D83C51CB888687492487EEA99A7673B924F0D1F926C767403D4406DF5257CE715F1654D0F8C25C2BC5345037059C344443039B6BDDB213CDC8D4706CADF15782FED583D6D6E278F62151570C4E9733C86C3E917B640341A755CFF0009F861FE21FF004E9B0628E7B6532BE5A095F773A269000EF94907458B6B5A7B6ACF135031C60C39E314C41C3D34F46E126BFC4E176B4772543C3B8249495B538BE2AF64D8BD5801E5A6EC858368D9D86973C95C4FF4B29F19C3E86B30FC5285B053C121114960D24F234F88721DDEDD17BA0B527E59A8BE28E53197B18F319CCCCC2F67751DED7531F5FE850130AE90709A436526AA86364212281A9148A2D60A224134826A860290482615434F8494829A0C269052080E14828A90D5136B18ED55AF8DB346E648016B858822E2C775434AB58EE89DFC1F3AF10E13260F581D0026964368F923FF00977FC43769FF00B7A284133646873082D76A3F7F50BE8D5D4B0D7D249054303D8F162D3FBD3DD7CD311A29B06AD7C5312E61D43ED7CEDFC7DDDB67EB7CDD57C3FD47C2F6FF00E4C23E978BE46FF8E4DCD3A2982B2C525C69B7BDFF00AFEF75A015F9EB1F4A549164C14D65A42DAA32F3653404080521A2145C510DC7458311AB8A9620F94D9B7B5D5B34D942E3628E654C0F89E743B7BA165B1B210EA96B8B08644377B94C380021A56BB5E6F773FDFA2E4615592C8F6D254CA1A19A31CEE8BB2D918CFBBA70E7388E7E23EFD02F571D9AE9E2E4965ED3686D3B49796BA41A13BE5F6EE9F965EC325492D8CEB906EEFD522D6530CF39124B6D1BC0540F36B5DE648F31C43E6B6FD8057DA46244DF2C952FF269D8006E84F0DEE54C64A66DA239E676EFBEA7D90D77A7C9A56063071F992A0E73203A7AE5769F5ECB3F3B5B4019017CE466DC37F549AD754FA9E5CCA6DB36CE77B74F7561A66B2D2551CCE1AE4074FAA93C199A1D33B243C5B7776016A617ED4DFF0040B8399E553811C0CD09E1BFAAE76298A536170BBD633DB437B977E8B163FE218E91BE45359D20D1AC1A86FBAF9378A3C50E63E4653BC4D54777DEED61E83A95BC65CFAC637861BEEBDAD557D462B559342FB7A630741EEB7E1985C7571659864AD8BE175B51ECBE57E0BF11CB062419572173E43A3DDF37BF75F6DA411D6D345554CEFBF0D1AFE2572E2BC796B2339AF829E0F3A2F26A1B9278B63D0F50B6D3B3ED309A7A805AF66CAE2C35313668B4A866E3A8E42BC42248DB345A386E0709F1CA4DA3471DDA619C0CCDE5698D800313C9FE12A5E59A88DB247612B7856C596566BA3870B39653F0D68A068CAE8661707AA84D91B13E9E705CDB5DA539650F1907FB8DEBB058E57BA498B18E2F7ECB959FD2CEBB530C623D7574874016E8A210DA59C874BC661A3540BA3A5682F39A63B346A6EA41B265F32A080E3A86DB6FF2B58632769965693DBE6FDE54B8E4DC36FABBDD56E125510C8DA1910FE43F557322F37D5212D66F6E4A46674CE305236CC6E85F6D1AB77195274AA59E3A36F954C2F23B775AEE3FBE8B3D348EA673A694B1BD79FF00C95A246470021A333B9772EFD150620D226A9B17EED8F86AE39E55A9259DA75331AC22439D91FE279B13F44E9BCA7B408DA4B356B5D6B0EF97F54793E6B7CDAABB633B3793DBD95B1895CD73D80464E8C16F802DCB72BEDAED358C9A5ED8E918D0D192C05B572163FB3D28D1CFBB86E7BA13F733FE9358B70472842F369F5026147629850329141405405084728041D77425C221DEE3B20249A802A0ED14D44AA29736EB1D447BADCE55C8DBDD5FF071268D72676BA8E7F3A2F836737A83D7B75ED75E8EA62E8B9B3C77B870D176E3E4B865BC52CDF4EE7823C42DA19A3A299E7EC529B40E26E633F80FF5B1E46ABE8B2B43DA08B58EA17C21CC14D2398FB9824DFB1EDDC6EBE91E06F107DA636E1F5D25EA18D19243AF98DE0DFAF5FF00CAFD3F87E4E3CB8C9F97C9F2787D2EE3D23DB62A972DD3334BAC8E6AF6CAF2C57D944EA54CFBA81EFBAAA2C92117D42A82D7D12BF09F7486EA80A5CA6524403E20BE7DE13F12C386D3D5D26374D5D1E32EAA925998CA5924F34B9DE92D2D074B0007B2FA0A7775ACB3A3E3CAD45157F89DCD8F12824C3B050439D4CE23CEA9B6A33D890C6FF0EE57A78DAD646C646D0D63400D6B4583474EC3A052D8D930A869268550930841E2E8194C242DC206C88904D454900A41454B94409F280A4150C260EAA37B290536877526ECA2982A8904D209A81A9051E1482218531BA88520945CC3D7658F1AC322C568CC2EBB6469063906EC77047EF6BAD2D56B1FA853F1A3767C7CA5F1CD8754BE9EA1818E69B16817C97BD88FE13636E9623804ED63C11AFF00E57B0F13E08DC52943E20DFB546DB30BC583DBCB1DD8FF003BD88D42F030BDD0C861943DA412D19FE2046ED77F10D3DC1079B0FCDFEA1E15C3F9E1F1F5BC5F22673D6FD7501526ECA98DD75734AF91717BA2484905674A44ACF33EC0AB5DB2CD3EC6CAE9582AA72015C6AA9CDF75D1AB0755C7A90736AB19378B3C921DF91A85E870BC563FB2868691516F53B72EEE179B22C953D4494952D962700E6F5D95C3934C73714CA6DED19013692B07710DEF7F756B49A9399DE98473B69D0058E82A62ACA6150F783F8983707BAD6C64954331FBA81BF373F45E9C71DFC7832E92F54BF754AD000F89DF9953022A51761CF31D0BEFFD933200DFB3D230803F772B1D756C386C46591ED32DBE23A91D805D7AC676C7FD34C8E1030C9536CC05F21D87BAF1DE21F1339F9E3A4786B07C531E3D972F1DC7A5AC24C8F2C83E563777FEAB8B1524B5C4191B963F9583F3EEB9E596DE8E3E2FCD73EB679EB8BA2A6CCD8CFC721DDFFE170310C15D083A1FAAFA5D2E1CC8DA006A2B70D1246416A63C971F8F47AC8F8ACF4EF85E08B820E846EBEA5FE9678A0B9E286ADE33DF427670ECB818DE0A58E7587D579D8E19A8E764B092D96337690BD7739CB8EBF2C5E3DBF5144D0D2268BE13BABDCDF29DE7C5AB1DF1B7F35E27FD3AF14B314A46C350436767A5CD27F7A745EE98FF0024FF00F2CAF3EF5D57972C2E349CDF24B658C7A4F23654CEF6B9E6585D95805DEEBE8A3513321638B9C5B013E96F2EEC1671199C366AFBC74C3E0807CDEEB1DD6768073EAC910FDDD3B7E294E9753F35ADB53D132EE3F35B7EE7B2938CB56E0C8C08E36F1F28082F6530F2A98173CEE77713FBE15F5D7D0DB1C74BF7923849507771D9AA6C697FDECE0D8EA19CBBDFA2ADAD6C5F79390F946A2FA869FCCA9E57CDF793DDAC3F2FCCEF7E898A5325D524D8E485BB91FD9067CDF734CD21BC9EAA0EF32A5C1B159B0B773C01DBAA97991C60454CC2E2791BB8A5EE8893E40CCE19E43B008113A3B495243E53AB631B05692CA3619662D33B869DBB054B039C5D3CF66B37D794CB504E38DD2BB3C849BFCDFA2E5E3D8FD3E11098A1B1948FF6C1B927A95CCF11F89DB034C146E05E059CF06C1ABC386CF884C5F2176576E4EE7DD267309D3A71F15CAF6D52788ABDF239DF6ECB724D870857370B6003D285CFDDE9FDA8FAA84F948A385C6BB9940491B268329210804CA4840147084289414708422041421595512AB705690A242946795970573EA61D57548EAA89981CD216A51E7AAA11235CC70F49E9BFD173E964929E7633398E663B34526D63FA2EFD4445B75CAAEA6F3A336B878D411C2F4F8FCD7872DC673C267355F50F0AE3ACC6688878C95517A658CF07AFD575658ECBE3382E2351455AD9E0396AA1033B07FCC6F4FA71DAEBEBF84E210E2D411D4C0EBB5CD1A5F51D8AFD578FCD8F2E12C7C6E6E2BC791385956775A64658AA08ECBD1B7142E83A208B14BEAAC11DD4804215010926920894D1EC8D5128E5051F5422184D4384D454905209AA814824100222413423D901C277485F94D1121D5350BE8A413624D4D4548222402900A21486CA8614828354C28184D013464C15250526A2985369B28A6DDD134D0C20EFA775E5FC5F817DA98EAEA561338B7991B7D25E06C47F18E3822E0E857A36AB9A730B7D56393099E3EB97C6B0CAE1771F2AA59C9F4B882EB5EE340E1C1B71CE9C1B8E16D63974BC61827D99CEAFA51961738BA503FE5936BBC763F30DF4B8D42E0D3CC5D70E195E0D9CDE87F4B58FD57E5BCEF12F0E7B9F1F6BC7E6FDCC5D0BDD05401D14815F3EFF0071E9D12A2517571D9408536B1CBA98AF75C8A98775E8E565EEB9B530DEFA2CB51E7A565B6543DA08B10BA93C3625619184158F5D3B4BBFA850553A86A5AF2D0F8C1D587E65ECE9AB0E2313248DC190F7D2DDACBC53D81C0ACE6A6A685E1F4EE7071D37B85DB0E4F579B9F83DBB8F5D8C637061D0F9501CD21E06E5782C46BA7AC9899097BF60DE1AAF6D34D3B8B8DCBDDAB893AAE8D1618D8EC5C355ACB93D98E3E298FD7268B0C74B279B3FA9C7FA7B2EFD35286B746AD51D386EC1696476E1474DFF004A190F51AA998775B18CD148305B4088F3D8961AD9986C05D78AC57072C90FA57D51F082D370B0C9839AF9431A2CDE5F7D95C72B3E2EF5F5F36F0E61F5E31780E191974E0EA2F61979CDDBFC2FB589DF0431472912D491A31BB7F95870FA3870F61A4C2E20E91DFEECB6E56E8F25134E5CAFA977C6F3C2E9DDFAF272E7ED7A4DB1885DE7D61F3AA9DAB59C3138E37D53FCD99E4379775EC128A10D699EACE561D72BB42EF748B9F57A9CD1C038E4FEABA5BEAE29BA4325A1A5F4C6DD0BF603F7D544797080DA704B9DF35B53EDD02980E796C3036C3A71EE4F2B4B1B1D1B49F8A53BFF008531C6E5F52F4AA381B05A5A819A4E180E83DD465265BC933ED1FF00EEF6527924F993EAE3AB5AB33992D43EE480DFC4761DBDD6F2B24E9677F49D3BEA088A9E3B307CA3FB956666D39CB17DE4EED33DB4FA22C037CA8186DF35CEA7BBBA2AEA2AA0A084CB3481A39793A9EC171D7F6D7FE2CC91D334D4D5B839E3525C740BC4F89BC4F2543E48E9E473623A5F97FB2A71DC56AB12127911BBC86ED1F5EE5726870F748F124C4B8FF64CEC934EBC5C72F754D3D24954F0F947A6F703F55DEA4A46C6DD05ACAEA6A66B40B0FE8B7B1806802E3ADBD7FE33880590B6F9485743D4261242CDAD1A124281A2DA5D20995408290470A010847089A013491BEA868D083B24A1B34149011112AB785695172A5629A2B82B9B3C36DF65DA736EB24F16EACAB1E62BA95C5FE7C571337A0DD753C2D8EBB0CAC12DFF00E1647013301F80FE21D8A278B52B91531BA9E5F3A2F84FC4DEABE8F87E55E2BDDE9CB9B8E7247DBE3919530B648DC1CD70BE61CF454C8DB1D5780F03F884524EDA1A87FF00C3BCFDD13F29FC3DFB7D57D1A401CDB8B11D57E9B8F299CDC7C6E4C2E196AB190385022DCAB5EDB2ACF60BA7C6087BA0EE8F748ECAA1A3651E505543BE89124A020A28D794142114C048ED640DD4946481D934B94D50C26144689DD348681BA6805512F7DD0912994121BA6A2D520A690C2697B27AF28692053482904430A41442682610520984430A41454820613E108F74826D2A6D2AB16E149AAD45CE0D9232D7805A45883B2F9CF89305930AAB6C94C2F4CF3963BE994DFF00DA3FCFD278272EC42FA2B4A8D653455B4B243511892278B39A45C10B873F163CB8FAE4EBC5C978EEE3E634F3891A1CDD88FDDFDAC47ECAD20DD66C62827C1B107325BC91905C1F6BF98D1BBBBB9A3E21C819B70538A4040E6E37EBFBBAFC9F93E3DE1CB57E3EDF0F2CE4C771A4ECA253690427B2F2D75FAADC3459648F35D6C2156E6DD4D2FC716A61DD7327875D97A5961BF0B1C94D727D2A58D4AE036024EAB5C187670090BA91510B8365BA184345ACB163573E9CA65006699420C05BC2ED18AEA97C1AAD473BDB9822563197D2CB598ACA3E5F65ADB2A5AD53B586AA67456B22644CF36AAC1BC307CCB531DA6594C508A9CCAD2E7B83211A97156303AA5A5905A1A61BBCFCCA4D63AA2D2D490CA71F0B392A4E9249DE2285AD01BA588F4B3DFAAEB8E323CB9E772A4F7889820A36900E971BBBFC29B58CA36074D67CFC346C3DBF5417B2941641EB9DDA171D6C7F7C24C60638BE67174877275B7EFA2DEE4F8E6031F29F3AA49037636FA7D5591B64A87D99E968DCDAC00EDD11144FA8717C872C7BEBB9FD55B24B9879503741FD95C71FCE49B332B20688A9C5DE773C92AABE4399E43A5FE8D4839ACD2325C5DBBB977B290688DB9E4373DF8FF2ADBBF868A3666BBE6B8E80F3EFD94B3BA53667A5A39E9ECA04F9BEA75DACDEDC95C4C731E652B4C54D632751B0F7EEA6FA6A4DB5E2B89D3E1D1160F548468CFC5DCAF155B5351884CD965B98EF6CC0E8C442C92BAB8C75B9C0901F593ABBD97568A9461CFF00B2CEC06070FBB711A5BBAC4FBDAEF4AE9A8C50B84F082F85FF00EE37A1EAB74B46C16920F81DAABA084D2BF21B989DB5FF00B15B29A1103CB0D8C0ED01E9D95CB197EB5867639CC8D5CD6E8B654D2981D7DDA762A822DAAE367AF4F6637736859082F17429ED176F448E1010B35B08421640842100104D91A59229B0EFA2361642119011C2024555DD342108008421440914D08AADC35553C6855E556E0839B530DCDECB9B3442C41171D177E465FF0092E754C475D345BD9B79F9E088400C01ED7443EF5AE766E747B7B1FE8405EFFC0BE22FB64428AB1E3ED0C160E3F38FD7AAF1950D731C248F2F9B1E9AEA1CDE41EC42C45DF679A3AAA37160CD76127D51B86ED777EFC8B15F7FC1F2A6B4F1791C3BBDBEDB2334B81A15988D573BC278EC78CD135CE01B3B347B2FB15D6959A85F6A597E3E6652E37559C8E9B24755270D52B2DC4202C829A4ED9134477486C9EE522514C27EE923DD03D38090DD336E121BA26CD1F54D0886130A2344D444826A2DDD490014868A2135741A9051BA90443E148289D9309A124C6C9206C8890D948288521A2BB12099D920A4A69004DA8081A26848268BA10482905168525A4482B18ED82A429B4ACD36CF8D61B162B44E86505AE04399237E26386A083D57CBE5825C22B5F4952D0D0C363F846F670FE027FF00A4DC6C42FAEB5D62171BC51823316A4BC618DAA8C3BCB73868472D77569D8FF3E1793CBF1B1E7C7B7A3C7E6BC55E2237122DCF45682B994EF7D3CBF679C3D8E04B00937046EC71FC434D7E6041EA06F63AE07E657E539B8AF1E5EB5F6F8F299CDC5CA2475402A4B8EB4DA0584A898C595E020A9B148600149AD53B2900A7D520DD12737AA95FAA44822EAA297B02CF200D5A1EF00AE3630E32C4031C4106FA2869BCB9B4E2F23334A7E166D97B953642E2E135612E79D5B1EDA7E4173F07AC83212F25F54399385D58A2F30196AC9642750D27D4F5E8C31DC78F3BDF68B1AFABCC6E1B10D0BF8B741D1124E2DF66A16D85B575ED7EE4F014A491F556631A2385BA76FAF54DA1915990B0B9C7E51C9EEB7AB7AC5CBA4591B299999C6E4FCD6D7D82BE3840024AA04347C315BFBA906B28FEFAA4B5F35AE07CACFF002AACAFAA779B5376C5F84EEE1DFA7B2B24C7AFCA7D0F95F524E539606FCDFA2839D7B47182013A01BBBDD5AF0E91C03059A34EC10F788BD110BB8EE55BFE8418D806671CD211B0D6CAB91ED60F32736D3E1BA8CF3474B1BA49DE330E4EC17CFF00C4DE2A89D30844A1A5C4D9B7D4F7F659EEFF00CB58E36BBD8CE3A6471868AE4EDE9DC7B2E350E1E6BD8F74A4B276BAE1A783DD5F87508C9057D39F3081773495DD34ED9DADABA6D241B8EA92356EBA65A781B5503A194797347F09FC256CA563AAA37D3558CB3334046FD8ABDB07DA5ADA8885A666E3F25A8C0276B658C16CCCDBBF50B5ADC61452C44B7ECF55BB763C5BB2D50C760E8A417E08EA15AD88554599B6F318AD8AD237519646AC7F8D48238C399E44A0107E12795CA92825FB4398081183F1AEA48E05A1C7D2D1B93C1ECB3B43EB09682590377772532C7D9A99DC5479542342E048E50B708E85A2D96F6D2E857F6A33FB9924851525E47D20849D7D2C816E10349348A010774D0A05CA107649A9A434D0914D9B342413421147282808969F0842134A4527263741D9136A5C3759E58F32D645D56F681C2B15C3AC8B2DF45CA9008247B9CDCD0BBD32B40D4FF137B8FEBA8E57A5A88AE0AE4554363D0755D78B92F1DDE259ED355870EACA8C131364F0BF3B7426C74959C7D3A7B10BEBB84E210E2944CA881D76B87F23D17C79CD6B41864F444E24B1C7FE5B8F07B13FD6CB5F83FC4470BAC6932B5F4531D729BB46B6BFBDC6ABF49E179532C7D6DE9F37C8E1B7B8FADC8C009557D16886565444D92321CD70B82AA7B57D39FEBC0ADDB206A870E8804AABB2B5823A267651E11934210A9A01080744D100DD3296A81645352E14548A2531A8476515208869F09202824DDD4941482A8613482682413482774A8904F94815240C26935482A86134936A090520A0A414125250520AA241034404C20934AB5A78542B1A50799F19F87C56C6EACA361352D16735A6C6468DADFC6DE0EDC1D0AF174B3ECC7105E05C102C1CDEA071ADEE38371DCFD7410E6D88B83A2F0DE34C0BC97BF11A5168CB8BE6B0BF96EE64B74200CC3722C46A17CCF3BC49CD8FB4FAF678BCFE9755CA6BAE1580AC34D31702D7D848DD1CD06F63BFF2B5AC79056C61BD97E673C6E3D57D7C6EE6D6F28290520B9E9B0023848A5FCD3A3464D9512BEC0A9BF759A73A1436CB575195A6CB8757524E84ADD597BAE2D50372B95DC74C4E9EA5F4F52D9E1B17B0DC03B15EB68AA3FF005285B50F780DB6B63B1E83A2F0E490B5E1758EA6A804E62C27EF1ADDCAEBC5C9F8AE1CFC3F98F6CD25E7CB81B668E6D60DF7EAAE73E3A36E58C6794F3D7D9554D58C9E068A168766EF6B7BA60B62B96BB3487E297FFF002385EC9D751E1FB432200F995273C8350DE1BFE559674CE25D70CEA86C21AD0F98D99B86DB5FAAADCE7CE48B88E11D55FF00949DA45C5EEF2A9C69CBBA2C18857D3E1B039E5F99C34CDCDFA05971AC721C3E0F2E2D491F083EA77BAF9BE2B895562B390C37074CD7D07B2E36BAF1F1DC90F19F8BA57974701CD25BD2C06E1BDDCBE5B572D449566A6491EE9AF7CE4DCFF85F477E04D744730BBB724EE5796C5B09742E360BD3C1CB863D3D7E9EB3A7B4FF004DBC50D78104EEB126C5B7BD97D4E18853CA27835824F885D7E60A5927C3EADB341F1B4EDD4745F7CFF4EFC4B062B87B18F703C107769E87F5E5679B0FDBEE7FCBCFC987E5ECBC8F2DDE741F0BB5B2B44762248F40770A710F23D2EB796ED949D781F6172D770B16E9C6446402270999A7E20A9A973339924BB45B4039509E76C56D6EF3B312641FF3EB1DAFCADE8B1AB4DE918E374FF7939C908F96FBA6E7BAA0F914CDCB10DCF640CF5A4907CBA71A13BA5254003ECD42DBF1FE4F55D3E27D5A29E900B39F21237D5090C2EE2EEA8B38EFEE84EC4931BA485E19DBEA19490856C01EC8D7946FAA3DF75008420F74020A5716D13536184148A3EA89A0842100828F7469C20684909B5D24914041D15D25250729DD0506778D160AA86E0E975D278543D974F88F39570DC16917074CBD579E92919477646C0D809B80DD329EABDA5543BE8B8F554E1D70468BB71725C2ED6C994763C05E237534A30EAB7FA09B31D7DBB7B745F4A3EB6870B6BCF55F069E1742F0093941BB1C38ECBE8FE06F11FDB2214756F1F6866809F982FD4785E4CE59AB7B7CAF2783D6EE3D61D1408FD55AF17D5BCAADD71BAF76F71E322784ADAD9222E5035D15120374385C256D3DF44763C2A807B2691B70840F74249A069F095B440444826126EC98443424530824130A3C260A06148EC9202A89354945352C130A4A00A904448269042A269B544290443298404D405D49AA2134134C2884C2ACA6135152515369D54CE57B72BB5BF0AA0AC69529A7CE7C4F81BF0BA96CB4807D9DE6D18BD83093FEDB8F4249CA76074D8AE7D34C2466617B6D622C411A107EBC71AAFA9D5D345594D24150C6C90C832B9A79074B2F9963786CD835796BCB9F1BBD4D7EE6468DC9FE368DC7205F7057C7FD43C3997FF260FA5E2791AFE392C6B9580DCAC90C8080743C69FBDB55A5A57E7B29DE9F4FFD4D2295F74F8D54595072A1E2EB41B70AB78E8A15CBAA8EF75C6A986C485E96465C15CEAA86E3659B1AC6BCD4ACB13A2A5D7162370BA95306A745CF91965CEC75976E8E0F8A4B4CDF28BFFE1DC7D4C26C1BF55ECE1744C8C48E707BC8BB4B761FAAF9B6AC3980BF65D6A0C6998744F32874916E2DF2AF571F2F4F0F3F0F7BC5EBE47179CF2936E8395E6FC43E21640D745016E61FC99EFDD73715F11C9591E5A7058D234B1B93FA7B2E3D3D0BEA1D9E5B9EC532CF6CF170FE6B1965457CD77E6C84DCDF73EEBA94987358D0036C02E8D352359616B2DCCA70B0F56A4F8E78A516B2E5E2D84B258AF975B2F51E5EB6094900736C56B1E91F19C5F08744F3669BFB2A300ADA8C0F126D4D3DF25FEF180EE3B775F4EC6B0B6CAD240D42C780781DD884C2A2B898A85A7FEE93D97A31E5DCD5329319BC9F41F0D630CC5B0A64B102E61170E1C7EFA71AAD535438B84705E47F27A2A29218DB0328B0D85B0533058641603F55A8F97483CB806698E971C959C70B669E0CF29BE8A364546D2F94E69CA418E9489AAC96C7B86F552F2D94E3CDAA767937CBC050643256932CE724036BEEEF6ECB76FE2301CF92B4F9707A201BBBA056668A919E5C172E7697DCB8A53CD98B60A46D801ED6EEABCCCA6047C729DDDFA7459B7FAFAD4897975275CE0762FD90908AB5C2E216D8EBAA14FE4BA8BCA43641482F2E9F48C21011CA9B00472808E5008421008421440845D0868C212420384211BA010846C8810842A6CCA41051C29B5270BAA9CD577BA89B7089596565C1BAE654C2083A2EC3C68B34F1DC6AB5B23CE5540248CB5C342B94D926A2AC6CB1B8B6661B83F88755E9AA62E81726BA9FCC6F478D97AFC7E6BC796E26787BCD3E91E15C722C5E858ECD69468F1D0AED3DBBF45F12C2B109708AF1511DC37359EC5F61C2B108B12A364F13B3661AAFD4F8DCD8F363ED1F1F9F8BD2B4594485322C75DD44AF43CE40A7749A9954081BA0A10491B28A68801BA90D54531A20901642574D0309851520886536A4A41034210A07C29049AA4AA0526A413088904D209F0A86A6D504D1349A9055DD4814123BA7C240A68240A90500148281A9048215124C248505AC2B2631874389D14904DA13AB5EDF898EE1C0F041E5686AB5A566CEB47CBB8F9256C136175B2C154D032BAEEB0F4EA74781F85C771F29D36216863FF45EEFC4B82B315A4393236AA204C4F73743A1BB5DD5A412085F37667A5A8753CCD7B1CD716657EA5AE1BB09E6DC3BE6163B8207E7FF0051F0FD2FBE0FADE2F91EDFC72748152B7754C6FD06F75705F1ABDC6A24297084550E6ACF3477056D70B82AA7B7A25238B550740B915111B95E9E68F303A6EB9B514B98ECB16352E9E75D19BD93761DF68616B85DA771D5769B43AECBA14F48183658EE56EE5D3CFC184B6303D36E16E6536568165DB300E02A5F05B60B527F6E7B73D91595A1B657F9441D94B2765D368A433928D02B034B9C1A01256A8A18E019E5702E1D760AC96B39E7318A22A169026A90720D9879F7ECB5C713EAC8248653B761C1F65364464FBDAA25AC1A869D3377296796AE511C27CB85BA69F905DF1C63C79E772FAB1EF769051B47728CD1D08D5F9EA1DCF4EC1124CCA6688A9C667BB73C944308A7FBEA939A4DC34EC174B77D4734D94E5D69EB4D9A356C77DBDD464964AA711110C8DBA17703F550739F55EB91D920E49D0BBFC23D53910D336CDE2DB347E4B36EFAC561670D1E4D3B49B9D6FF0031F7E55CD64548CF32539A63A807E543DD1D237245674AEDCF37E814238830F9B50417F03A7F94924F9F4A3ED152ED435F63AA14BED2E3B31F642BBA9B340420AF13EA98E12CD62022E85106C5174908A684AC8510C21084347C248481D510D01174255D99486884206829211070808421D1A124040D23B268415B82A9CD5A156E09B5619E20B975116A745DD7B6E0AC55112D4EC9D3CBE214D9AEF68B9D8B4F23A2D7E13C71D83D6B58F7134B29E78FF3D569A88B53A2E1D7D30612F00E476A6DF29EBFBEABE8F87E55E2CBFC73E6E29C93E3ED74F3B2A606C8C2083ADD33A15F39F03F881D03C50561D2F661EDFA745F466B848D0E690415FA7E3CE678CCA3E2E787A65AA08B848A60590575608EC984BD902E0EA81A11CA10309A413464709FBEE95D36EE82413514C0B2224A43D941486A824984930818D507A24A41031B29354548232921209AA1F0A40A805340D49406F652E10486EA414426889290D944261286A414549A8184C210110C2934A8FD50A2AF691CAF2DE32C07EDD11AAA465EA983D4C1E9F35A0DEDD9C2D70EEA17A6695306E08B03A6C5633C667355AC72B8DDC7C7A92737C8F37781BDB2E6E2F6E0E9A8E0FD09DEC75C2EC78DF00F2DCFC4A85A6D7CD3340B907FF896FF00DC37205C6A179CA49FCD06FA386E2F7FAFD77BF2BF33E6F8997165B9F1F67C7E69C98BA17D135531CAC057CED3D25BA2CA635DD16515439BD554E885D6A2070A16456611007456B5963B2B32F5520070B1622396FA949D182AC1BA4E72AACCF8ECA831B9EEB301255F34960570EAB13929AB834B5A627002E76015DB19EE4DC75C0FB38C996F2BB80752AE8E1108F32A88749C3786FF00950865860883DA44B2BC5F3DF7F6526D3B9F696A9D61B86F55DF19A8F1DB6DED13E6D64999D76C237D7F3E55865208869DBA6DA73EEA2E7C952EC908CB18D2FD15ADCB07DDC0D2E79DF4DD7492DF8C53883691A4C8334A4EFCFB2898C93E65568388FAFBAB5ED6520124FF007936E06E1AA8644EA8719EA096C7BD89DFFC2996FE629886B5F58EDCB621F13C6DF4EEAD7CAD8C7D9E95A09DAE39EE541D23A63E5D300D8C69D82959900C9182E79FE64F7567F1F8B49AD6D3DDCF39A53B93C7B26D6820CB524346E19C0F750964651C466A9702F1AD8ECD5E13C4BE267D5974348E708C9D6DF3ACDBA593D9EC9DE22A4638B7CE6E86DA217CAFC8AB3ADC6BAA1375BFDB7D85228080BCB6BE81A4374D2510D09215D29A5BA1074501D90764EE840AFB2691404434210A68D8BA49A1509348A69505D08482887747084235004FEA92100A2762A491434AC854CADBDD68214085472AA215CBA98B4208B85E8658EF75CDA98772B72E976F27554E619806B88B1BC6EFC97D07C17E2115717D9AA4DA6669AF3FE7AAF2B594ED9185AF1A15C98E49A8EA99246ECB3466F9BF10EABECFE9FE65C3F8E5F1E4F2783DE6E3EE26C76B243405707C2F8D47895237D40483470E415DDE57E82652F71F272C6E3754D0845969908284C204A412421A491BA0202200A63651BD9317D8A225C27751E14BA20904D414820970A41453E50A926124C222413482688613BE8A29F0A890374C24148206A4A21308890520A0131A2513522A00DD341309A85D4814BD21829A48514D58C2AA526A685AE01CD20EA3A755F35F15E04FC26A45551B47D8DE6C1A340C71F94F4692743B0275D1CBE94D2A157047554D2433B1AF8DED2D735DB10B8F3714E5C7D6B7C79DE3BB8F94C1309181C0E849DC6BD2DFBFC96A07454E3985CF8162393D4FA795C7CB71D73B40DAFF008DA2FEE3FE924C6194380734DDA45C1DF4EABF2BE578D7873D3EE70F2CE4C771AC153BAA81BA9072F2BB4BB32911CA904145437D534B6489D14D202E1C6EB3CB2E50549E775CFAC7900A8BA5357576BEAB87592892E0EAADAC71B95CB95C6EB9DBDBAE3269D8C0F126D24E193343DA4D98EBECBD230495AFBBDC5B18FEABE7F9C83AEDCAF4B8062124AF14951306B4FC24F4E83BAF47165B78F9F8BD7B8F48C7173BC9A402C37774F74DD2C748D2C84E798E85C37BAA5D38168291A6FCDB9EE54DAC65202E710F9CF3F8577F6FE9E4D6BE9322C87CEAAF548756B38FAA6D6BEAC92E710C1BBB61F40A4C85D30F32A0E58B71FC4A0647D53BC9A7B3211A661C249A448482FE452B36E5575B554F85C0E9667D9E773F9059316C569708A6C919064235EAE2BE7788D7D562D537739CE1DFE54CAB78E17269C7F1BA8C4E731C570CBE8C1B0F75561D871BF992EAEBF3C2D1875006004EA4F2BB5040069658DBD58E3318CA295B6D90BA3E584235D3D3948A6147AAF2BB1E9C6E8297B20A204D23B26114210822C818DD35128EE81948A394289426059240DF654490923B29B3E1A145309B2D3424134421BA691472954C26144A020690421141512342A6A242ACD52F1B2CD3C60B4ADAE0AA7B742AEC70EAA2D0AE45753091A0B496C8DD410BD3D44599726AA3B13A2E98E5EBDAEF7D389856232E175C2A1976B2F6919D3FC745F5AC27108ABE95B231C0822F6E8BE515D4D725ED6DCDB567E20B4785F187E1758C85EF269E4376B8FEF7EABF41FA7F9BED3F6F2783C9E0FCC7D76FD148159692A1B3C2D7B0820EAB45D7D87CD4B6364D21AA01D15433BA06C902A410309A894C221A90EFBA4108890520A0A42FCA06374D206C9A0904F84826A0904D20A4152C36A65453464D3BA1015126A928B7752503BA90504F844D2684814D5A1F0A40A4130800A6140A9281A92827B20927C285D4814D8982A6D3AAA415305514E2D87418A51BE9EA5A4B1DA820D8B5DC1078375F2CAAA59F08AF7D2D58D3E20E68B023870EC4F1C1ED65F5D6BBA6EB95E25C162C6288B346CECB98A42DBD8F43D41D8F62BC7E578F8F361ABF5DF8396F1DE9F3F8DFC1DD5ED72E744D969F2B676E5CD76EB725AE6E858EBF2343AEE1C0AD71BF6B10BF2DCDC578F2B2BEDE194CE6E345D17D541A530E5C1A49DB2ADCA67B2ACDD054F3A1582AD970BA0E0A895BA1BACFE5775E76AA3B70572A662F4B550820E8B935106BA852C75C6B9076B22379610D71B3568963B2A5CCBF1AAC4B716ECF69AAF538262E32369FCB68948B67BEAF5DF631B10F36A8E77EE19C7D57CE2966741336C4820DC387057ADC27128EA75AE99A246ECDB58382F5F1E72BE773717AD760F995A73CA4B201FF00DDECB918F78829F0F8CC14B6040E3F3583C47E24BB8C14676D0B80D0765E5A1A392A64F32626E4DF5DCADE594678F8ADFAA6592A314A82F909B1E6FF00D97628A85B1B1A000AEA6A56B1A05B45BD91580587A66A75118A1B7016B8DBC2236D95CD6F6466A397B215D95088EB14CE88082BCEF415D08BDF44220420A4969B3423848A29A6A37D53E1136682904B950A9851EA8BA113613E5245F54A1A2F7490A063416420215868C1BA0A485574134922A092124C20109A45508AADE159B949C344D7448CF20FECB05543A2E991BAA6565D2534F3B3C7AE8B8588D306E63A88DC6F71F29EBFBEABD6D541BAE554C22C5A45EEBBF1F26585F687D9A6CF04E3CE8A5FB055BBD40D9A7F7C745F448A40F607020AF895540E825618C9CECD633D7B7EFA2F79E0DF1036B20114AEB4ADD1D7E7FCF55FA8F0BCA9CD8FAFE63E4F93C370BB8F6C0DD4D50C7661A6CAC057BB4F269309FB6C921512098491B1B2268D31EE904D129A90500A636443526A804C7BA0B131B28A0282614944292B10052BA88530868D309202A8904249B764124C6CA3DF459E4A9B1708BD45BBDC282E9A7116E333C8B8012A77BCB4CB29688CEA1B6B7F355B99144F74CF0EF590729BDAFEC9889D2C9790BB2EB6D77E9A7B21A5F0543657BDAD6BBD36F55B472BAEA0DB34585C01C2903AAA9A490100DD350175209008554D30A2A4144309A8FF0064F402EFDBA7541637D5ADECAE63AECB0D1BB7BAC79CBC8BE8DE07EAAF88ACD8AF35E34C258F8DD58DF434E56CCE1F2DBE193FED3BF62578785EE6973246E5958E2D7B7F091A11FBFCD7D8678DB340F8A401CC7B4B4B4F20AF8DE22D34B893A371CC4668DCEFC4E8DC597FAB430FD4AF91FA9F07B61EF3F0FA1E17277EB5BD8FD2EA60DD62824BAD2C3A2FCFD7D35A9B944152E1415BB6553DB75790A042962ED8E48EE0AE7D4C1AECBB0E6DD67923B8534B2BCDD441BDC2E7CB1D8AF495105EFA2E64D4E780B363A4C9C931E616B5D572D14F38636376500DCBBB2ED53D1173B5D975E9E89A1A3449133D5FAF3D4D8506904B493D4DEE57463A6B0DB65D734D6E145D15B85D7172B7F0C0D8FB2B5AD5A3CBD3BA61BAADB155B59CAB5ADECA6D6DB80AD6B508A72A15F97B21456B41DD2D7942E0EC60A4508BABB021085102117422847084C22104CA394137407084930A6902108D021A08DB445D0A28298491754492DCDD24214CA453082880212429B53BA1241550EE91470845276CAA70EAAE2A0E43B659981C095CBAA846A42ED10B24F1660745AD8F35574E24616B86857143E6C3EB3ED11921ECFF00700F987E21F9FBAF57530DB60B915D4F985C68F1A82BD3E3F2E5C596E26784CE6ABDEF86B198F11A56904136D75FDE9D17A163AFAF55F14C2ABA4C22B1AF65C40F759CDDF21EDDBA2FAAE138832B2998F61BDC5F75FACE0E7C79B1F6C5F179F8AE193B6D374D50C768AE69BAF438692084908898D90A374D04AF7D14B9510755208184C15152051120A4A20A104C290501ECA5F44DA24A40A8A1049481511B147EF64448143DED6B6EF361D553513B29E32E76A40BE51F115918D92B2412B9D782C086FE13DBFAA6D74DB50D7BD8030E86F7D74D792AA748CA5688E301D29194E838EA979E081152EBDC6B6EFD41F7517CB1D17DDB5CD7D4385F5D2FDC9EE869659D0B1F3547A9EEF900D015AA195B2C61EDFA8BECB152C73CEC0FAB0D6BAFAB6DBFD380B7583459A0003816B209DD3506EBAA7CAA8B0153506A9A8009A49F0AA1847B2002740919037461DB42EFD3AA94893886EFEA7F1DBDD54357663AB8EE7F44C74B6A3FAFBA4D45D26372AE61FE6A90AC6F74AAD17F42F8FF008A5CD763F525B6B0AA9BFF006C57FEABEA789574545452D44EECB1C6D2E71F6D57C55B58FAF9CCCFB5DC5F2BBDDEEBFF0060DFE4BE77EA194C786CBF97AFC3C7796E36C2FBDB55BA2768B9719D56E84AFCCE51F59B9BB2B3854C66E15A365CF6A67BA89B70A4970820EE554E6DECAFB754881C2AACAF841BACEEA604ECBA21A9E550638A9C346CB431807D5581AA6D6A6843CBB855BE2EBBAD36D12CB75A89A8C2E8BA05111DB85B8B140B355A4D33062B1ACD5599148374D94457950A7950A2E88EC95D085C9D420237D5353612134910D17D124229F084BE89F09B02108E136942122926D124210AA98282922EA010108503414930A840A684228421054D268905082AA68709849305420512148A8AABB45C154E6ABFDD41F6B68A768E7D445705726A62B1D375DF91B70560A9877D16E5595E5711A7041786DF4B39BD42BFC318BBF0DAA104AFBC4E3763BA8FD7AADB511589365C2C42972DC824349B823E53D57D0F0BC9BC39777A73E6E29C98BEC34352D9A30587BFBADEC76DAAF9978431C735FF0064A92048D36B9E7FC745F42A79DAF635CD3BAFD4F1E739319962F8B9E170BA6F0EBA6AB6395975D1801489D9441520886A45451CA1A4B8520A0A41112526A8A97088927C2884D04C26A2D4CE9AEFD9544B859AAAA844E11C60BA57E8DE97E88A874AE21B0B4169D893F10E42A69218E85A18E90BDC7D6D0EE97FEFD4A8BA3823731AD9AB5F6905FD2D3BF4FCBF92D304924AFCF96D19DAE0580FDDD5258D716CF33FEE859E2E4F6D1533CB355CA61A72620D76AE2371BEA14AAB2AEADD106B28636BC67CAF009B8BDCE9DF5575351B58734967BBE5B8176ABA081B16A2E5E752493A13BD94E52431E5BF158D95936CDA66563742E1DF4BD94DA439B99A416BB6B1BAE5CA2C4B5A4E5074B7EFD8AD1873047668681E8F55801A836D90D370162A4144A6D55130A4144295D4D8904F4B6626CDE6EA0E7358DCCFE7668DCAA5EE323817FD00D87B226937CB9FD2DF4B3FAB900DAC05B455DEFCA9354AD489DD351E148154494669DB130BDE400D17BF4592BEBA0A181F3543C471B05CB89B5BEABE2FE37F1D4F8D49251618E74546059F25ED987E43FBAE7CBCB8F14F6C9D30E3CB3AE8FF00A83E2EFF00D5A738661EF2EA569FBD901D1C4703B2C587C663A7683F16E570302A304B5E41C83517DC9EA471ECBD332C000068BF35E5F9779EF5F1F5F8B8F1E3C7A5D1EBAAD90F0B244365B21165E1B5D5AE3578D42A23F657B42C56920503543535141160916EA14826AA2164EDD364CA0281594868108E15400A10808A1408D54D20A88E5D0A0036D54D24D88D90A56426D198261228BD8AE4EA92452BA14D0394C25CA15D0924124D40D21CA134022E90422505084D408109A450150D0848AAA0269729A0108470A6902101328A024517470A012D93B24556763BA68422809A484028B829048E89B452E0A991B7165A9C154E09B1C8AA86D75C9A88410411BF5D97A49A305A572AAA1B5F45D255793A985F0C8D745FEE37FDB279FE13F97B2F71E12C75B55035B23BD6DD0FEFAF55E7AAA16BDA5AE1A2E4365970FABFB4467D4D37940F987E2FD7E8BECFE9FE65C2FA657A79BC9E0F69B8FB5C32836B1D16B63AEBC8787B17655D3B1C1E365E96196E345FA1977DC7C7CA59755B90A0C75C296EAA1DD4868A03A2610580A6A213444D4AFD36500A410D263AA6A2A574347C6BFAACFF00F10F90DEEC1B1B1D3DEFCABC6A6C7659A57CF23CC518681D4F451163E46C4E7329D8D323B522FA0E79D52647E4C25F38323AF9CB6DB38F42A7140C8C876EF035715A0EA2C762AAB1C94F34F2913B9AD8B473728B16FEA56C8D8D863CA2E1AD1AF51C7E498D000068365194131B8017EDD51153EA0DD82F94BB6000CC47552A7A912C8E0C767603943EC40256231BBCC2636B9EE793EAE35E7B745AE99A4860CC1CD61B923627A044B12FB1B1AE25AE3A80DB3FD5940BDADFCCAD1146236F527525309A276970A4145AA4D04EDA5B5BF440C6FCFD12925119CADCA651BDFE16FBAAA4989F4C0728E5F7FECAB02C3419471FE7AA2C89824B89712E71DC937FFC296CA0DF752FEE9153014942F7417593E89E61B15C5F11F8828F03A27CF5B28691B346A5DD971BC67E36A3C0A331467CEAD70F4B1BC773D97C471CC56AB12ABFB4E26F7CD33CFA2206C07E817979FCAC38A7FAF47178F73EEFC763C49E22C43C5B54E8DD531505259DE5999F9580806C49E579EF09E1557251D3FF00EA2E25CD739FA1377926FAF1A71B6EBA587E18E9A46CB540176E1A7E51DBA2F4B4B4E183D22C17C4E7F332E4FAFA18716387C5B4B106B001C6960365B2369B8B28C6C5AA362F9F6BA4871B08F65AE36E9B28C4CD169636C162B6930582B5AA2D1A6CA602CAECDAA41453E54534774868535761A5C22C84DA809A3842202841F64903E1084204534708D9502146E84D1A6729210B8BA184D46FA23654306E8292140C212BA1369B308490A298424130A9414774C20A21210843712428A3954DA491491EEA6912084820AAD1FD5052E5350209A11C20116D1229A33A245FBA6845D04F85108528904924F844448517053292ABB677377BAC951182345BDC154F09079FAA840B82B915B4E5EDCCCD1EDDBF4FC97A9A98AE0E8B935109E02EB2EAED77D3CFE175AFC2AADA5A08A77BAC5B7F81DF87F4FAAFA7E0F5EC9E26B81D0EABE6F5F4C0B5C72DDA459CD56F86B157D0D48A5A876661D63770476EFD7FCAFD17E9DE6CCFF864F9DE5705FF00A8FAFC325F4BAD2D3A2E161D5624682083DD75A192E375F5F6F9D634829DD45A6EA489B3E148148681175536B0292AC1526EE824A60E8A0A41048260F748268240DD35152436904C6EA0A4110B231C492D6DD4C5AC00D82413444C26A3B252CAC85BEBBE63B301B13DEFC0465668185CF21AC1C917BFD3959E498CD6162D8F86DEE4FBAA1F23E67E690836D0002C00ECA41CAEDB916E847E49B540298D14131A2144159710AF828699F35548C8E360B973CD87F34E9677F1A9F2063497101A37BAF9A78DFC7E2373E87033E6546AD7CBB861EDDD79CF19F8E6A719749498639D0508D1D21F4970FC82F11135F5A0C3441CC8C9B3A4E5DEDD17CEF27CEC78FF008E3F5ECE1F1FF392724D2CD587D4EA8AC71BBA4273069F7EABAF84E13E51F3262E9253AB9C4AD385E18CA76801BAF24EE7DD76E186DA5B55F0B9796E77BAF749AE908600000B744C014991F40B5471E9DD79ED6A44638D6B8E3D138E3D02BDAD1C2CEDAD131B65701AA41AA6D0A2E8EC9B4F046A82902B2692E530A37BA90DD50D22842AA117BA6840210850228E53420384042110708421142117420C61348265727405205090551226E920211404D446E9A960684826804C5921A260DD401486C99482A94CA57EE91DD48220BA0A0A0AB14729A4840CA4D426A2829A5CA3DB6440374D0845091414901F54C24509F13668EE808281A1209A88144A92456840A810AD5173545657B413A8582AA0BDCD9751CD54C8CBB4AB2A6DE6A78AC4F45C3C4292FA6AC6DEED701AB1DFA2F5B5506F65CAA986E087016235BAEDC7C970CBDA2EB735577853197078A6A8D268F4B7EF8E8BE8147501ED6906E7FB2F8ED5452C52B1F17FBF1EACFE31CB4F70BD8F8671C155136E7D43437DD7EA7C2F2B1E6C7D7F2F93E4F0FADDC7D0E392EAD0B95493E6B6BA2E8C6FB8DD7BA3C8BD350074520554A98D949A5577521FD5116036520AA0A60A0B3DD3B8BE8AB054C2095D48288D94910D3E14534371309B45C81C9E3AA881704E8001A93A59669EA6E0B2025AC3BB8E85DEDD026917CF50223922B3A5EA750DF7EA563172E25C4B9C7724DCFD541A2C2C2F6FDFF35308B226365637FAAA82B1BB69B295A5813BDB755E70DD4AF1FE32F1AD2E0B13A08009AB48F4B01F87DD4CB2984DE5D2E33DAEA3B7E23F10D1E094865AB91B9ADE960172E3D17C4FC51E24ACC7E774B5523A1A2693E5C435FF00C95CDC5B12A8C42A5D558948F9AA1FF0C7D3E9C0FD952A1C3A4A9904D55BFCACE02F8DE5F9F72FE383E870F8F309BAA292924AD2DBB7CBA71B37AF73D57A6A0A3642D018DB00AEA5A40C680000BA314560BE4DCF6F4C9B462879B2D91B344E38D6A8A3D972B935A28A31C85AE36590C6595CC0B35AD063745600802C9B5454804C0D5209A819514D25400A98504C1504D0A20A60A06841292068E1083EE8042574C154084214020A122AA9A1084DA31A1216E135C9D00470984910241342284210A5020728428008BA108182826E922F7DB6543E1083B248CE8FF9A3940284509A48B281DD0524C2A04211CA0130914377453292652E5191742117D114C20A026810414D09A3447648A6522AA682130828BB41C154E0AF2AB705119268EE0AE4D5C362745DC78D34596A22CCD3ECB72AC796ACA70F690E16EE371DD71C49261F55F6960F87FDD68E7F882F5355059722B20CC6EDF8C71D7B2F4F8FCD97165B899E1339A7AEC0B15654C0D735C08E0DD7A9A59C39BAEEBE3585D63B0BAA686DFECAF3A03F21FC3FA7D57D1B09AF12B410EBDD7EAFC7E6C79B1F69F5F1B9B8BD327AD6381F75734AE753CF99AB6B0DC2F43CF56A903D956A60E88261482834A9051131C298558DD4DA8892935453BAB0A9A1C5B1B33CB70CFE64F60AA9276423501F21D99B7D4F6591F23E57E795D99DB761DBB2B535B5B3543A6B0F8631B347F73D4AAC28F29A3726920A41442614DE9560D145F2B62697B880072B26238853D0533E6AA9446C60B92E361F52BE43E2DF1955630648281E60A01F1487D25C3F20B97272E184DD6B0E2BC9F1DFF1A78F72B9F438210F94FA5D334DC34F65F2F9AA2596A1ED8899AADC6EF94EA187F32944C92ADC62A3BB62D9D2FCCEF6E817A0C2F0C8E9DA328D793D7DD7C3F27CCB9C7D1E2E2984D467C270A0CB4931324DCB8F2BD153C0D6F0A50416E16E8E35F32E5BAEF314638C017B2D513351DD4A28F50B5C71DAEB36B5A4638B45A58CB0431961A856868E162AC368B29B39D116520136A13420A804C256420692676491404CA4134344344EE95908877E8804A4845D260DD355F08BA1A58855DD3089A490A284134285D3BAA6CEE845D09A36C6374C142172B5D091F5475429B0D012E5050342122A83DD1F54D081728DB440DD3500848A681848A108802692068AA9A06C8BA0A89A1CA2E90520A84984148A81A1010514212091DD3624840D11757A4051CA10A006EA4A3CA921B228083AA76550210808B4B951214D2289A5442A5EDEAB4B954E08573AAA20E06CB8D550DB65E8E46DD73EB211BADC595E46BE9859C5CDCD1BC59EDE7DC771BAB3C3F8949475229677671BB1FC3875F7EABA15315895C4AEA600D87A5B7BB1E7E477FF00E7AF65F43C1F2BF6B3EFE39F3717BC7D3F0EADF31BA9BAEF53CA1C02F95F86F1676B0CE4B6761B16DF4FDFE4BDE61D579DA0837FAAFD4619CCF19947C5CF0B8DB2BD1B4DD4C7F458E197305A9A745B7358DD94DAAB054C6C88B029055858B14C52970C85AFAA77A9FA45133D4F79E802BA65D07BDB1B4B9C4340E56335A65FF6059BF8F7FE4B991FDA6BDC26AF1E5B77640DE077EA56F160000001C0557D76B19A5FA9D49E4FBF55269B955B4AB029A6BE24980924E90305CEC925AB12BAE2788BC43478252996A5E0388F4B1BA977B2E3F8BFC634F8446E8298B65AB70D1B7DBDD7C9314AF9EAEA9D5188C8E9AA1FF0B0F03A11C05E3F23CBC78A75F5DF8782E5777E37F88B1FABC76733564862A469F44235FE5D4AE6D2D3CB5F61AC74FF00807CD7EBD55B43874952F6CB53F46F45E9296943400D0BE0F37919725DE55F470C263358A9A2A2644C686B40B0D2CBAD0422C3452862B0D96C8A3D978ED6F45145B2D5147AA94712D4C6596371AD23146AF636DC26D6AB1A145002B1A1201359D068473B26AC20E101080AA9949308E5442BA132A28B0C689DEEA298401486E9A10D8421086C2109229A108407084210014828A9048810842BA4D32A11AF292E2E806E9A48281A5A5F4493E10053486C81B26C34920A4A049A453E502E13011B688400420257543099DD242047FA297097098D950813C84D082A69021209940209BA02477510F8420EC90D155D9A5C264DD1C2B431D91AF292140D09029944341365151255448B85B4DD4339E51CA11520FEC9875FA2859309B3695F5513B27C210AA5C151236E085ADC154F6A0E25641A1B2E354C376B9AE17046ABD54ECCC082B93574E413A2DCE9665A791AA8A58E56BE1BFDA22F840FF98DFC3FF50E17AAF0DE2EDA98DAE6B813A03EFCFEFDD72AB29C3C5B63C1E87AAE4991F41526AA30436FFF0010C1B7FD63B15F6BF4EF36E3FC32F8F2791C3EDDC7D8A86A7301AAEB44FB8B2F0182624248DA43BD275B82BD751548734597E85F2B29ABAAEC34E8A60FA56789E2D73B0D4AF35558F4D8BCF251F87240D8584B26C448CCD69E5B1DF473875D815631A7531AC7852CE6870C8DB598A91710E6B3631C190FCA3B1D4ACB85614E82A1D5D88CE6B31393E295C2CD67F0B1BC0FEFCAB709C3A9B0CA7315330DDC733E579BBE477573B93FD96F051A4EFF00CBB8520540152E54DE8ED6853E34546703758713C569F0EA77CB3C8D6B5A2E731B0577B59DFC74A79D90B0BDEECA073D17CD3C5DE38739CEA2C1C873CE86506E07B2E078A3C59558CBDD4F4AE7434837B9B661DFA0ECBCA479EA9EF8691AE0C3E974C7E6F6E817CCF27CE98EF1C3EBD7C3C17EE4B6499C66218E3355B8FA9E4DC34FE6574F0BC2C03E6C977BCF2569C2B0A8E9A26B434DF92772BB90416B582F83C9C973BDBDBAD4D4429E00D02C16F8A1ECA7145D96B8E2ECB85AD4884710D16B8E3160A5145D9686B566B5A0C6582B5ADD130DB052014500295930344D360098490D537B22484B942AB2040284D400299482152921342102109040C249842048299421B090DD3E10114213B5D44A069210880298514C2B10D09215199242170D3A0BF0927F549031EC9A4821341A126A69A0B8D11F54D0A0451CA68565012921254309A10A0108420108404DA6C2108406E8B211C2061092155329008429B408490AFD4D9DD081BA392A58045D08F7DD58A48B7740DD340B7D53F9508E1348411EE8476501A701342385422A2429848A0CEF6DC1596A61CCDD9741C15120DD6A23CE55C16BAE3D6424FA980671A6BB11D0AF5B550870D02E2D4C1671D0596A5F5EE372F4F3F87549C32AA368CDF6494D997DD87969FCBB5D7B8A3C6E9E9295D51553B2285ADBB9EE36B2F1D5D4C0B5E4B7346FD1EDFCC775CB9E4CEC8296A5AD7BA371969E637B3F8F6B8E79FE6BF45FA7F9D339E997D7CFF27837FCA3DD498AD4789FD0FF00328F06FF00E1FC32D48EAEB6AD6F6DCE975E9E81D143032281AC8E360B358D1600761C2F97E158BB98F0C95D678DEEBD750624D7341CE3F9AFAD8DDCDBC1EBA7B3649A6A755735DA6EB834F5AC207A96C655817F52D6E26ABAAD7043A568DCD82E4CB8846C692F7EC178EF12F8C990B5F1D23C3E4B7C5F2B5672CE63DE4B25CBA8F4BE23F13536150FA9C0CA7E163752E5F2AC6F19A9C5E4754564A63A669395A0DEDD9BD4F75CEAEA97CB309ABDF2492C9F0C7B39FEFD02D143874B57379D52411F2B06CD1DBA2F8BE579DEFBC71F8F770F04C7BACF4F4F2E221B66986981B860DCF72792BD3E1F42D898030580575252B58D01A005D3862B2F939676BD511822B0B2D9145A8538A35AE28D72D921431AD51C69B231C6EAF6B7459ADC84C6D82980A4D6E8A4D0A28013B238404D07C202022E0DEDC2077E11B24995361DF5414907DD554909238D9129A0241340CA4848A10C84BB26508A10904D10212E534D9A081A248444AF748A0211A0848A688131B764931B21A08490AECD320D53B2130B8B44852491486E994934D811DD0520887CA691D0277450914D21BA81206BA2650100374CA485409EE8E88EA80E1091D13BA212690DD34408E11C21004A49D909424D2422C34210896042109408421367D24C248443E10914D5D80238420EA14501081BD90AC01DD1A5D1C2025088502159C289419E46020AE7565382090BAE58A9919A15768F2753059C4D970711A56E4707B09809B9CBA39A7823BAF6F574B981202E2D553DAF76DD7499E58DF6C5BFB355E1AA9B2C60195C0B47C33B47A5DD9DD0AB20C5EA28EC5E1C5BC386A0FB15D1AFA49A9DCE929BEAC3CAE1495948C7915104B4D272623607E8345F5B83F50CE4D5EDE5CFC6993D0D3F8B5AD02EFF00E6B5FF00FBC8B9B6883DEFE0345D79115B875B5AC96FD0C6D27FA851762742D368FED150EE038D9BFC805EBFFEE597E3179FFF00A59FDBBD5B8D57D7BBCA05CD077630824FB9D9AB98246365F2E1B4D52DE40BB233D8F27B950A66D6E2166860A783F0305AEBD261985474EC01ADF75E1E6F2F3CEFF2AF461C730FF964C330A2D3E6541324A752495E8A9E9F28D8057410016D16E861165E1B93722A862DADB2D91C372AD8A1D16B8E3D162DDB4AA28ACB5451EAA6C8F45302DC2C01A3B2B5A126A68D4490847086C04D2426D0FDD1616D1201480B22C01084B9454923B269288613490AA9A1228288684243740D092103421228A06E82848F09A44909238E110D0904D14214504E8A2984EE903A04D50AE84D083284210B8A845EE84220E50842AD0BA3DD08441A70984210A0A484288613421024210AB468421129142108837D53421008421005084250210840210854A1084294084210848BA10894EE842114708BE8842010842D7E00842167F2009A10B7444EAA2E1A210B3054F8EEB1545235D7BA10B711CCA9C3C385AC0AE0625E1C8E7BDC01742131CAE3F17EBCECBE0EB3FD2E165BA83C32C848D05FDD085DEF265AFAC7A4DBBF4B87B63D800BA70D281D10859DEE6E97A6B8E0B70B5470210B9D46A6476015CD1A2108A9B47552B0E108412081BA10A350D01084409842101CA02108BF834B942156414C68842802531742155342108A10842254494DA6E108448692108D9A450840EC84211421084290DD0764214421B29F0842D04842151FFFD9, '1', '2023-05-24 14:42:55', '1', '2023-05-24 14:42:55', b'0'); +INSERT INTO `infra_file_content` VALUES (8, 4, 'f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828FFC0001108022702F203012200021101031101FFC4001C0000020301010101000000000000000000000102030405060708FFC4004610000103020502040306050205020505010100020304110512213141516106132271324281142352C1D1F06291A1B1E1073324437282F115B2536392A2C208163444D273FFC4001A010101010101010100000000000000000000010203040506FFC4002A11010100020203000105010100010500000001021103210412314105132251613271231415425281FFDA000C03010002110311003F00FABEC95F44CA4BF08FD4047BEE9A110AE8BDD076D10760A6D023B26926C0774D2404DA9A10843410914281A384B94D008421505B64210A59408426126B4120147280374804210AD004D201348046E842A0B2612BA6A00A1164249B0149347D56B48452522914D1B44A89521BA166F5F550B28962B6C8214D8AB25F74C3429809A04D6EBAA9102C9F0A2E759342A91A2C562A92D8DB9DC0968DEDBD96B92403658AA640E041E524ECB3A6A86074EC05BE8837B1D091C5D681541BFF000D46C2F70D0BADA05C7A398B4F912CA590B8F1F295D9616B008A8D8077B683BAF6E3D4E9F3F3DCBDAE883699BE925F3BF7772EF6EC938061F32A4B5CF1A861F847BF52AB74CD81BA1CF29D09EFD954058F9950733B70DFCD74B9EFAC5CBD6CFABC974DEB9096C5D4EEE544B52F97EEA900647C9FDEE54DD1BE5FBDA876560D9BD54435D25990B43231C91C2E776D7C263C53B72C44BA57E97E4A958305E6703C8683A7D505AD8CF9700CCF3FCCFE8AAADA9A4C2E133621207BC6CD3B0526EF54FAD2C6BA467993131C7C13BBBD8745E6B1FF0016454CD7D2E1AD6B9E342E27D2D3DCF2BCAF8C3C6CF95AF1E6BA1A72340D3F7920F7E17CC24F12CF2D6E595BE5D293A31BADBB93CAED31CB29AC5DB8F837FF004FA739B5330655C9F7B13DC7CC79DC7D3A775D2C3611472B4B7D546FEBAB838F04FEEEB87E10C4CFFB2E224649B8BDEE3F35EC60A06BDA443FED3F71D0AE124C5339EB75590C7F63C43CCA575E23F147D09DC2EA50C1089B340D7B2227D45DB35C52A3A2A98E573679A295AED6305B675F91DD7568FC819984019B470B7C49F9ED9D6A06524B4E40CB7849BDBF01ECB630BA0764203A270B90EDDA88E57C4C31E60E8C7C24EF654E574E0DC86C63778DBE8BA4C7576C5C8DCF748F2D81B7772780982DA7E8F94EEE3C760917D808A0166FBD8BBBA00111DF3C9C76575AF8CD9B4C37E79F63F2F5F7E813B3A5D6E5B18E9F924196F5CDA9DEC426D2F9FF0085BC7F8567FA89DC5B2463F973EE83921B5FD521E39466B9F2E06FAB92A40360F5139E53FBD15D6C211FFCCAA37B6CCFD54C669866272443FF00BBD92C81BEAA8372350DFD50734E733C96C7C0EBECAC850642F1929C06306E7F558711C46970A85CE9A419ADCFC47D960F1078861C319E4D3D9F29D036FB7BAF9B62F8B4B51519EA1C669CFC2C1B37DD632CBD5D78F8AE6E97887C412D738991C62A607D2C1BB979D6B26AF76A3241C3473EEAFA4A196AA512D49B9E9C0EC17A1A4A30C0328D179793937F1F430E3984E99A8281910003405D6869C0E15D0C3A6816A8E3DB45C64DFD6B2C95C5100B5363D136B7452D82D562D005B7517BC0692E21A072546576421BBB8ECD6EE55F05258892ACDCFCB18E3DFBAE7AB95E9CF2CF4AA185F52333FEEA0F7D5CB7410E768640C0C886EEB2BA381D27AE6F4C7C354A498B9DE452802DB9F94772BB61C73079F2CEE41CF8A95A191DDCF3A69CAACB7CB21F5633CA756C2366FBA8B4B6127C9BC929D1D291FD1BD15818D87D731CCF3B37727DCADEEDE99B0ECE98F993BBD27A0B5FB0439EE9748ACD60E6DE91EDD548B1D210FA8BB59C342A9D2BEA0965380C8DBA17F4FF002B56FAC491232087D1130BA576C393DCF451C8C83EF67707CDDFE16A5E6C54AC2210E748EDDD6BB9C7B2E7D54EC86374F52F6B5ADD40BE83F53DD72CB36B19B5F34A657173890D3C9DCFBF41D9793F10789190034F42733C685FC37D972BC43E247D487454E4C74E3723772F3B0D3CB58FD8B63BEC39EE5670E3B7BCDE8C38D192696AE625A5CE738FA9E57570DC2F2805E353CF55BF0FC39B18682D1A2ECC34F940D174CB3FC62EF269845132DB042EB79450B91BAF7A8421534484D208042684FA11472846FAA9A0D08495E83425D934D402453429B0210856010842011742136040420274194041486AA06828B261044269A0AA1268D8236D140C0B26A28564FCD3497D6CA8AAA8869223254C8236F17D6FEC392B0D6E2996534F42C13D48F888D191FB959A1C35D24C27AC799E73C9D037B01C2F7F8DE0F27377F238F2736382BA8C6EA6536A0A5B30ED24DCFB01F9AE7CB2E3729B9AD7C7D98D0DFEEBD1B295A2CAC1037A05F6F0FD338F1C7B8F0E5E5E57E3CAB64C7A275D95A6403896369FC96887C49594843716A2BB2FACD05F4FFB4DFF00BAF4A299BD1464A164832B9B7078B267FA6716535A671F2739F4A8EAE9EB6013524AD9633F334EDD8F42AFF75E5EB709A9C22A1D5D849B1DE582FE9785DAC2F138711A66CB11208D1CC3BB4F42BE1797E165E3DFF1EFE2E79C91BB4E10804708BAF13B8404894AE9B40F2A891D656B967945C145669A458269169A8DF45CDA871D42C56A0328D41170785D6A0AC9646883D2741637B5C2F3E6FCECAD86521C1AE75BF093C15BE3E4FC5639B87DA6E3D4C10BDAF25C4B9C7677E816B2D653FAE6199F6B88BA7BAC3418819226C7131DF69B59C4EA47B74F75B1B0B29C79954E6B9FBD8FC37EFD4AF6CC71C7FE5F36EFF2035D30F36A24B4636E9F4EA82F7CA2D0B7CB84736BDD555552DF2CCF52FF002A01CBCDBFA2F15E21F163E50E8A8DDE4D38D33F2EF60B396527D6B8F8F2CABBD8DF88E9F0A63A0A4026A83F16B7D7F88F1ECBE618E63551593B9CE779F37BFA59ECA1219EB090CBB232753CBBDD6DA4C31B180005C72E5FEDEEE3E093BAF2B3E1934E5D24A5CE79D4DFF2ECB818961CE8EE729D17D5BEC4329D2CB918A613E63490D5D387C9B2BAE5259A788F0D62CEC3AA9B0D43C886E32BBF0AFBBE0920C4F0FBB5C7CDB02E2C768EEEBE1589E12E648486FD3AAFA07FA3D2E28FA87D308A47D145FF003CFC2CFE1BF3FE17A3971C793F9E2F372CF59DBE9787CD79E4A79DAE3330E60E3F305B66F29AECE5A339D81EAA72C99A4CB1B334C40B9036F7406B69BD4E39E6EBC05CA63A78F2BFD10659B9EA340750CE4FE8A7EA9EE6D9221FC92C85C7CCA836075CBC9FD13BBE7B58E58C7EF4EEB77E3261C07DDC0DFAF253B32117B12FE50DB0FBB846A7F9FB952F44167484979E9BA7CE844459BD731B01ADBF55301F51FEDFA221A66FD1023CDEBA9395A350C1F9A982FA86DC1F2E11A77FA2D4C75F52D36FA7EE699BA8DDDF9941CB09BB4E798F3FA289901FBAA6166F27AFBACF55574F87C2E9277807A94B9691A1C5B1832D4BC7520EDF55E43C45E2971CD050B85FE690ECD5C6F117885F561EECEE8A9B6DF577B2F2A7CFC41F9580B29FA5B53EEB967CBA7AF8783DBBA95556C9532B9B4E5CF7BB474A4EBF45B30DC2DACB178BB8EA4F27DD6CC3B0E6C6D6FA576A086C346AF1E7C96BDB24C66A28A7A60068345BE286C068AD647A2BD8D5225A83196D15E1A8D945EE01A5C7D2D1B952D8CECF52EB3428667C8EC94EDCCED8BB86A7031F522E06487A9DDCB646C2FF00BBA66D9A34276FDFD5598EDC73CD5C11369C80C1E64C773DD6F8A264033CE43A5DEC760A39A3A4606B3590EE793EDD12F2C0024AC2093AB62E07BAED8CD38E5761EF7D4D9C1DE5D38F9EDF17B051F8DBE540D2D8B7E97EE50D0EA976671B46341C5BB00AF89A64FBBA76E560DDC567572BD336E95B436321910CF29D2FD3F4566465302F9DE1F20D75E139258E94797002F94E97B6A5672D0CBC93D9EFDF2DF41EFDD759AC227D0E0FA939E625B09D6D7D4AAA69EE3CA8AC001CEC3DFAA524CF9ADA96B3F1727D979AC7BC450D134C1481AF9B6D3E16FEAB8656E57A74C70ADF8AE2B4B86425F312E94ECD26E4FE817CFF001AC66A2BE6BCC6C3E4882C73D54D593B89719252757BB66FB2E8E1985EA1D2025DC92B53198F75EAC38A4ED8E8B0E92A1CD7CC3D80D82F494744D8C01956AA6A4006D65BE38ADB2CE595C9D2DFC453140001A2D51C6AD647A2B6D60A699AAFCB42966EC8534CEE3D6A4847755B1BEA9A10804210A20486E9845ADA8D95AA12414C6C81268490084202CD0D0840540845D08042109A0C20A5C276D15070842140CA413084D81A994821017D5083B2C35F88B29888A36BA6A977C31337FF000174C38EE77A4BD7D6B9E68E9E274B33DAC8DBA97136B2E3BA6AAC56EDA72FA6A1E5F6B3E41DBA0EEAD830D92AA56D4624EF31E356443E08FDBBAEC3630DE2CBEEF87FA67CCF95E1E7F2BFFC7063A3A18A9630C85818DE83F5E56B6B00D958001B23D97DBC7098CD47832B72EEA16EC9B5AA76521B2D328E5D558C60FF002B357D7D3E1D4FE755CA18CD8725CEE001C9ECB0328EB31AF5E24D928B0FF9691AEB4B28EB2387C23F845D5FBF52DD36B2A1B5D33A0C3DBE635A6D2545BEED87A03F31F6D3AAE1E29833F059CD75039EF8CB8BA56B8DF7E7DBF617B1858C8626C7131B1C6D166B182CD68EC3F2527B1B2B0B1E01074D45D72E6E29CB8DC698725C2EE3CBD1D5B2A236BDA74E9D3DFF005E56C6B971F14A19305AC2F881FB2487AFC27A5FFB7D472B6535409180B4DC1FDFD3D97E4BC9F16F065DBECF0F2CE49D375EEA2545AEB8530578EC7645DB2A9CAD3B28385D45619D9BAE74D1DCECBB32B5639A252C6B7A71A4658ECA0ED46AB74B16AB248DB5F45CEE2E92EE2EA0AB9609418DD9641B1EA3A2D155E22A489B9E6266AB1FF24036695CEF2C902DBACAFC30CB50F95EE2E73CAED8F37AE3A70CF826596DCFC5B14ABC465BCEECDF8631F0B7DD608B0F7CCF0E978E381ECBD1330E6B75215A29ADA5963F72DAEB8E3319D397052359A0016D8E0B0171A2D4D86CAD6C6A696E4CA211D1425A7041D2DEEBA2C8DCF706B01738EC02EBD1E1B1C2D12D590E906CCE07BF75D78B8EDAE1C9C9318F2D45E0E8B1095B35738C54BBD87C4FF6ECBDA5152C50C0CA6A08994F4D10B0CA2C1BFA95732232FAE7F4C63669DCFBF456343AA3D315DB10E780BE8612638EA3C1C9CB73FAA9C72111528D0FC5F89C7AF60A4032017790F97FA37D958F7321FBB805DC772372A366C2DBBECE79E9B0F652C73D9642E39E626DC37AA7EA97469CAD1CF1EC9B18E78CD29CAD3C1DD3BBA73921686C4342E2902CC1A7CA80173D4C35B07AA439E5FEA10D219F754CDCCEE4F098C94E6E49926EA78F657E7D0F25C892A79D433F5507BDF3DFE58C6810E005DF524EBAD8AF3B8E788036F0D16AE1A661C7B7759CAFF6B26FE37E2F8BD3E1D1640733FF000F2BE798EE32E925CF52E2F90FC1103FDFB2B9864AE9E46B24BC83791DC7B2DF4F85C35B4E20998195516CEB6AB8DB6BBF1CC71BDBC9C3493D74AD96AAE6DB346CD1D97A3A3A26B1A0596A868CC2E2C736CE6E842DB1456B68BCB95B6E9EF9975D2A8A00360B6471D82936356B45935B4A41B6DD48D80BA0924E566AE3B048DC1C908124DCBBE56FB2BAB5CF2CB48C8E11805E2E7E56379538E98D84B5A76F862FF1CAB208DB013FF36776A4AD91C0D67DED510E75BE13B0571C27E5C72CFF00A42385D51673EEC886DFC5FAAB4C8737D9E91BAFF6EE5565F2D61FBB779700D0C874BF6014BCD0C6F9348C2382EE5DDD6E6A395DDA67CBA4399C7CC9CFCDD3D945B1E6264A83BECDE4A71442370DA498F6D02D6D6329DA64A821CFDF2DF4498DCBEF512D9F8463833B33CDE88C0D19D5572D417FDCD280D60D09E0284B24952497DDB177D0BBDBB2ACBAE44710161CEC1BEFDD74F6F49AC524FEC39ED81A72DDCF76EE3A93EDFA2CD3BC318E92A1C1AD1AE5274FAFE8A8C4B12A5C322324B25E5B6E773EC385F3BC7F1D9ABA47024B23F92269E3BAE1DE57A76C30B5D4F11F89DD2E7868DF922D8BEFF17B7E8BCAC51CD5A40687065F52772B45161F254BC3A61A703A2F4D4542D8DA0596AD98FC7AA63EB18F0DC31913468176E0832DB4D15D14361B2D4C8B458EEF6B6F48323B2BDACD149AC0068A61A49CAD172AD62DD7D476215AD8B4CD2FA5A3FAABE281B139A5E333CECD1D56BC8D88E69ECE906CCE1BEFDD74C78EDFAF367CDF88CA1AE2016C0F23842DBE64A75064B1E885D7F6E397BD7410842F2BE891404243748249145D0AD4084C24A2829037D5347080DF547B6C9A1008EA84226C8A3841D13BA286A3D908406B6D50108081840D909B77D900130876C920652E5085749B07849EE0D692E2001BDD515959151B33CA753F0B1A3339C7B0595943518910FC409869B76D38372EFF00A8FE4BD7E3F89C9CD758B1C9C938FF00E907D5CF883CC58580D8EF67D511768FFA47256DC3B0D8A8DAECB7748ED5D238DDCEF72B7471B238DAD8DAD6B40B6502C02912BF47E2F838704FF5F3397C8CB3BD22001B267745D46EBDD23CE0EDAA06C8BEAA13CD153C2F9AA246450C63339EF36007BF0B4CED68DB5DBAAE6566284559A2C361FB6578F898D3664238321D87B5892B3366ADC785A88CB4185BB4354E6DA69C7FF2DA7E11FC4753C2EDE1F434B8753369E8A26C510D6C09249EAE27527B9BDD0DB261B83886A3ED95F37DB7103FF39CD2191FF0C6DF9477D4F53D3AE0DF6FD6CA3BA93765594C5F9526BB55109ACA52ACA68EAE9DF14CD0E6385883B2F0F5104B83D718A52E740ED5AE26F987BF5EBD743BDD7BD61E0ECB362B874588D23E295A6FBB5C3420F51DD79BCAF1E73E1ABF5D38796F15DBCEC52DC03BDF9B69F45A01BAE14666C3AADD4956007037076DF91D8F038D46D65D689FA2FC973F0E5C595C728FB7C794CE6E347284029D979F4DA05BD552F602B491AA896DD45732685647D35CAEDBA3B8D557E4858AD4BA7321A4D6F65B0538CBB2D6D8C70A6D6A9EA5CAB9B2538B6CB33E0B70BB8E8C159E58858E8559136E3F976E1594F4CFA87D982C3971D82E84747988749E966F61B9F65A5918983638406B19F30D9BFA95E9E3E2B7BAF3F2736BA88C10C54803606192676EEE7FF0B406B62FBC988749D381FAA799B17A61697C8EF9B9726D6B6139E621D20D6DC37DFBAF549AEA3C56DCAEEA6D63A519EA0E561D9BD50E7BA63E5C003231A5FA2896BA7379090CE9C9FF000A40979F2E01668E780BA4B2334F48BD310CCE76E6FA9410D85A5F3905FC049EF6C1E88879929DDDCA191067DE54BB33EDA0E8A6577F1436374C3CC9C9645BD8EEA60BA6F4C5E8846998A916BA40249DD963E1AA0E73A7D180322089B01E18D115383EFC955CD2C34113A49241986A4F0164C5314A7C36022E331D9B7D4AF0D89623355BF3CE5C184E8CDEDEFD173CB38DE38EDD1C6F1C96ADCF11931C0373CB97161A79EB2164B4E7EEC1B963B77F63D16B8A8648DCDAB71748C1F1476F80750BB14F4ED8489E2B189FABEC34FF00A963EFD6E593E29A5A6654431CB0002466801E7A82B6B29CCC1B2C40B6766DF982B40A6F26515116AC76B201FDD745B0B6E6468195DAB87E8AEBFA4FFD619693ED3079B1B6D237423F55898CB1B1162371D17A26C619267D83B723958F15A50D8FCF66806AE1D571E5C67D7A38793BD5732C01507B9A39B0EAA12481A2EEBDB80372AC869B3E57D48B307C318D2FEEBCDDE574ED965221044FAA7DD976440EAF3CFB2DF1C649F2E99BE91BB9CAD8A174F6B10C887015924C19FF000F4ACBBCF00EFDD7A30E3F59DBCD967BF88931518D0E794EE46FF455F945FF007959A3788F93DCAB1BE553973A473649BE6D3E1ECA1E5991DE6D412D61D436FA94DFAB107AEA4D9968E16E9BE802B62667FBBA66D872F705632274E2EEBC708D00E4FEAA33D4DCF9146D171C8D8772B738F5FCB34DDA9BA58E8DB959EB95DA5F927B2A482487D47A9DC37A7BA80C94C0B8B83E4E5C7F2553E50D065A8B35AD17CAE3607DFA0532E49F17D7FA58F739C0924867E2B5C9EC179FC7FC430D030C14F674BBE506FAF571E572BC45E29CF9E2A271E8E978F60385E39AD9AADFE92ECA4DDCE3B95CB56DEFE3D1C7C5FDADACAF9EBAA0B8B9CF94EE786FB2D986E17A87C84971DC9DD6CC3B0C6461BE904EF75DC829C0B59AAEFF00FD5E9D493A534B4818DD02E8C715ADA29C71D86CB546C59D316ED5B235735B6E133A056C3097FA9DA379298CBF8672CBD50646E90FA76EAB5C11D8648002FDCB8E96EEA51C79DBE9FBA80685E3527DBBAB012F1E540CCACFC37FEAE3CAF4E1C7AEEBC7C9C9ED748B5CD88E58FD4F3A17DB53D8740A4C89B192E9802E1B36F76B7DD4B3360B65399E7E7DC9F6520C6C633D46E35F2EDB7BAEDF3EB95233B89B864DF4621527107DCE5CD6E2C859DABA8530921785F51242482AC01404908867643B60809A8A413421442283BA0A5CA29F29A10A8108428114C6C84040C20A0EA5309B004210345600A0EE8BDD57513C74F119267B58C1CB8E8B58E3EC69677D82E7CF5B24933A9B0F609671A39DF247EE7AF64A365562BB67A5A13CED2483DBE50BAB4B4D152C4228226C6C1C0FDEABEBF87FA65E4FE59FC7939BC998758FD64A0C2D90C867A8719EACEF238683D8701741DBFF00945D4495FA0E3E39C73523E6E795CAEED052BF74289BAEBA9F8605D1ADF446BCEDCEB65C57621558A48EA7C08332B0E592BE46E68A33D1A3679F6D3AABA1AF11C521A073216B1F3D64A3EEA9A11791FF00901DCE8AAA5C1E5ACA8655E3EE64EF69CD1523358213C120FC6E1D4E9D3BEEC2709A6C39AF7459E4A894DE5A895C1D2487A93D3B68070BA1B6E8CDA36F7E7B9EAA406890B290B70886809809940290486E9FD1544C6EAC69B1ECAA6A985934E678870766274A4B6CDA860BB1F6BFD0F65E4E86774723A9AA439B2B3D243B53EC7BF7E458F503E86D37FF00C2F3FE2BC13ED719ABA46DAAA31A807578E3FEEE9C75D17CFF003BC49CF8EE7FD3D1E2F3DE3BABF18A37DFA2BC2E361D57E6B6CED246E846DFCBF31C1D1752375C2FCB7271DC32B2BECE394B3717709D9441530B8D8D1591652083DD5368D94AC10080A25C14A6C38D96799C32BADD1134805D619E7EFC2B353EA8C2E71293055C8ED0E80EE4745D9BBA5FBA81A191B74DAC07BF75E4AA0DE40F69B386C7BAF4185573AB60108686399A1E9EEBD9C79CCA69F3F9B0B8DDB6DDB17A61F53CEEEBEA7D944344633CB62EE1BD3FCA95DB11B306791DFD7DBA26630CFBC9CDDC38E8B75C49AC7CDEA93D31F4E54BCC7C9F754ADB306EEE13CAF9ECE90F950F43B95369328C94C3246DD0B96A626D068641E98DB9E53CA996B6139A676790EB946C101F1C07CB80E690EEE3B955C8E8A95AE967233B75D7609F048B4C979267651C05E7FC41E238E941829ACE96DA01B35723C47E297C9E6474CE11C407AA53A00BE47E24F11CD367870F739AC3A3E6B6AEF6E893795D476E3E2B9775EEA3C41B5F88863A7124C4FA89370DED75DBA0A43472E596F24727C2E773FC257C2304C4E5C2EB84809F2DCEBBF9B1EB7EABEF7E18AF8B18C3D8D790E25A09039EE14E4E1F5ADE78FAFC74A96034D2B437D503FE1EADFE12B7434BF677FDD8BC2F3703F095652416698A4173C1FC43F55BA1659B95C6E0EC7AAE6E3FF88D3C421393FE59DBF84AD11B0444308B30FF0044D8CBB4B1F6BF0561AEC4DB4D13A168CD28E780A5CA63F564B97C69A89D946CCB26B71E9683A83D979EACAB9AA5ED89BEA3C306C3DD459F68AE79398869D0BCEFF45AE26B61B434CD7171DDC579EDB9D75C758A9869DB4F67CB692A0EC37CBECBA1053E9E6D4EC06C4A41B1D234BA476697FB7F9EEA258E96D2D63CC711D432FEA77F85BC64C59CADA9F992D492CA72190B7790ECD08696B1BE4D2077AB473FE77FD7852687D47A5AD6B216E807CADF753CED60F2E985DC7771FDECB525CBEB36EBA40C6C81BA80E94EC06C3F52AD644D6DE6AB7073B70D3B2ACBD9034B9CE2E94F246B7E8156D85F2DA4A8B866EC8EFA9EE55964F9DB3DD4A6924AA37638B221F3F5F655492B22688E106E7A6EEEE546695EF716B2C00D2E468172718C5E9F0A85CD73B3CE766724F7E8172CB3BF874C71DB5D5D5C347179F52E682013A6B6F6FD5780C7FC432D738B0131D3DF46B4EAFF00758716C4EA710A826576779F8583E16A9E1F8697BF3CB72E3D78F659924EEBD5871B2D2514B56E0E90598360BD25161ED8DA00016AA4A40D6D805D18A2B58594B95C9D6DD751553C406965AE38D4D916AAE02DD935A67B2636CA637B0DD0D697BACD175B228831C1AD697CA76B70B58E372AE3C99FAAB642D8C074BB9F9472B508ACDCF50001BB631CFBF44C9644EBDC493F2EF95BD875526437264A927AE42757773D17AB0C24792E76F750687D43AE748C680EF6EC14CEBF754ECF7B6C7DFAA900FA975DA43631A661B01D07455C93865A0A669738F4DCF75AB74CC37BD94C3317E794EEE3F928470193EFAB0D9A75115B7F74DB132987993B9AF98741E96FB77EEA25AE949967716B3702FF0012E76FF75A5DFF00A831BA03A0D0590A8F3E31A088D909EC74EA8414016415E67D30105010ED940AFAA10108813490A299491B237510C268B24AA9A41252402108081842116B27404239426B61841FD8512F0C638B9C1AD03524AC2D92A31271650031538D1D52E1F17FD039F75DB87833E5BEB8C673CA61375655D708A410C2C74F54EF86366E3DFB29D2E16E74ADA9C4DE269C6AC637E08FDBBF75B2868A0A28CB616FA8FC4F71BB9E7A93CAD175FA3F13F4EC7864B9775F379BC9B9F588BEBC7D02893AA09BA8B97D391E5F809D352969C20200BADE92DD91EEB2E215F4F87C1E7554991A4D9ADB5CB8F000E4F658EB7157BEA9F4184C3F6CC41BF1807EEE9C706470FEC355AB0AC15B4B3FDB6BA7359899FF009CE1E98FF8636ECD1FD4F374676CB1E1F578CB83F156BA930F3F0D08367CBFFF00D5C3E1FF00A42EEC31321899144C6B236001AD68B003A01C7D15A3A74FAA6888DB54C0D534592A52B6F75216E1042614424EC984F7540845D482AA1AA4A29F0889B55CC3D45FF3ECA80745634A8963CA78A70534F23B11A1D3995A1BFF00DD6FE8E1BF2350B0D15509A304696DC74FD7DF95EF800F696B81208D86A4AF0BE20C2DF84558AAA617A579D5A36693C761D0F0743A15F1BF51F06724F7C3EBDDE2791AFE3936B1D75602B9F4B3B6460703A6DEDEFDD6D691C2FCDE52CEABEA4F9B583645F4481472B2A44AA653A1B2B49553F64186771D573AA242BA53B172EA59EA3659B1AC585EF24EF6EEACA7A97C5287C6E735EDE87755C8C2AA766B5C1B11B2639FA56B3C267355EE282BA09E00F8838CB6F5348D415A84794096AF53F2B46C3DFBAF15866212D24D9E226FF336DBF75ECA966A7961152E90484FC2D0740BE8E19CCE6DF2F978FD2AD2D7D43B3CE7244366F5519252F1E54032B06E76B28B8BA639A47E48F75C6C731B8A8186285A1CFE18DD40F756E4C48DF5D88D3E1B0973DC3311BDB7ED6E02F9FF008871F7D46674AF2C84ECC0752B9F8BE2B2CB297CA4CB33B668D9BEFD173E9E8A4A99BCDA8399E78E07B2E39F248F5F178FF9C9CFA96D462640702CA71B307E6B1D66043CBB868D3A2F6D4F46D68B65573E8C16919571C79B29771EBEA4D47C6ABF0E7C6E2435773C03E207E0B88C31D439C29CBBD24FC87F45EA718C183B339A385E36AF0C31C87D3A7B2F761CD33C7D6B9DC264FD1F452C5594F1C91D8822E16D69688DCF71003772785F26FF004BF1AAE89E68268E59A18C7A651F28E87BAF755B55254C9603526C18CD87BF75C33CA4BA7932E3B8E5A69AFC4B334B612430F37D5C7B2E7C74AF7FDE541C91DEF94EE55D144DA66E697D73BB50D3C7E8B4C74EE9079B544867CA3B7B70171B8FB7D3727C4238DD503246DF2E11B9234B7E6AE74B1C03CAA66E691DA1EFEE9891F52E1152B432266EEBE83BA4E91910115236EE3A3A4B6A4F65A9A936CFDA4236537DE541124DF8770D4E36BA53E6D412D8F8BEEEF6E8A4C844243A719A5DC33F0FEAB4B62CDF7952ED37CA131C6E5DA5BA560BA5606C60471374D741FE5552CA233E4D3B4BA43F2DB7F7EC9C934B52E31D3D9ADD8BFF000FF9407C54ADC90825CEF89DF338F6572BA492D0D8DB4E5D24E44935BFED676543E47CE4B9E72B7A1DCFBAAEA25642C74B50E680DD7F847EA578AF10F892499B2474CF3141CC9C9F65CAE5BBFC5D31C37F1D4C7FC471D287535010F9B62FBE8C5E19F24D5733ACF2F7B8FADE4FF64430C95AEB652C8CF1C9F75E870FC3D91B5A004BA9F1EAC3098C63C370C0CD5C2EE3C9DCAEF53D386D800AD860B6C16B8E3B5B458FB5D2D4228BB2D2C6D94A360D6DBA9AD7FE317FB00585D4E38CC86F601BD5591C20B73486C3A2D91C59981F25D9170DE5CB78E1964E19F36BA8853C79AED84003E6793A05638B45E38012E76E7E63F54F33A4F4476644DD2F7B01EFDD01CD8CE4881713BE9ABBDFA7B2F449AEA3CD95DF74E26B299B99C5AF9782766FB752A422F301927CCD66E1A7777BA8D9901CF31BBF86F0D498D92ACE799CE6437DF97FB765AB949D4FACEBFB27492549F2E001B1B742E3F0B7DD178E95B929C173DFBB8EE7F40A72481C7C8A6686B1BA586CDF75512C8886B0E795DCFE8B9E52B52405A23B3E725CFE01D826D8CCAD124C72B7868DCFB76526B041792770749D0F1EEA2E05E33CEE7061D437E677BF45AC7193BA96FE13FB542340D874FE1BA161763942C716FDA6986536B7442D7B44F5AEE95129842F0EDF54C20A48BA80424530AA50828E50A681CA1050AA028401A26146804D086A04549085016B6A84C239E3EAB5A52B73D167AAAA8E9AC1D7748EF86368BB9CA0269AB2634F86B43CB4D9D3B87DDC7FAAEA5061B0D082FBBA6A976AE95E6E49EDD02FA5E27E9F973779751E6E6F271E3EA7D73E0C2E5AB2D9B16F83765334E9FF0071E4AEB68D6B5AC0035A2CD005BF9052712EDC8B1DD63C5844FC2EAE3924C8F7C2431DAE849036E772BF45C3E3E1C38EB17CCE4E4CB92EF2499510C9239914D13DECF89AD78247B8DC2983AAF8D60BE0275278869A4A72EA6F264CE272EC8E94022FB1246FD02FB4553191D448C8DD998D759A6FB8FCD75E2CE678EE39FCAAC94822D75CDC5718830E923A66C7255E2130FBBA4845DEFEE78681D4E81752D6DAAA88A969DF3D4CB1C50B05DCF90D9A0772B8B13F10F116B4A66C3B093FFF0060B6D51503F807C8DFE23AF45A68F029AB2A23ADF113E3A89D87343491EB041DCDFE377F16DD2CBD19D06F7FDFEF64DB3B64C3A82970EA46D350C2C8616EB66F27A93F313D4DC95A0A9211924C22DAA2C8A130828288612098EDB215421BA9DF44822DD90308F64B8D5485B840C5F94D08088029B742A2A41416B48BE9BA73C11D4D3BE299A1D1BC59C0EC556DECAD69297E693E3E7D88D24D825764766753BCFA1D6D5C3A7FD63FA8FAAD94F2870041BDC020F55EBB13A08B11A5741303676C5BA169EA3BAF02629F0EAD34950D249D5B9740E07E61D8F4E0FB85F03F51F0757DF08FA7E2F91B9EB93B21C9F0B2C525F9EFFBFE4B434E8BE0E534FA12EE1A8B9489BA4B0BA6791B7582A22B82BA6E1AAA268EE15274E14D1EBA2C92348DC2ED4F0DF858268F5D02C5C5D71C9CF208F501FE56FC3311751B8C9943D807A9875595CD3CAA9D0975EC48B82345BE3CEE09CBC53923A38A78BA3AA7F9186DCB8B4667DBE01D02F29593C951296C235FC4361ECBAACC39D9036C434057C340D61F856B2E6B7E3971F04C3EB8B478706FA9C0971DC9E575E1A60D1A05B2382DC2BC456E2CB9FDFAE96A88E1ECADF2BB2BDADB293B4565D335CE9A9C381242E4C9E1E6564D99EE0C8B9237FE7C2F44EB1D5DA0EAAEA6A674DEB9BD10F4E4A4CADF8C6597AC5384D1C514429E8A26C513772353F53CFD5746ED872C74E33C9B66B5FF00FA5591B1D2910D334B63EA071DD5CF31520C9002F99DA13C9EC17A26375D3C9965BBB4228594A3CDA8BBE5DC36F7B1F7E4A76350D74D56E7320F940DDC9989B0012D59CF21D432FA0F7EFEDFD544364AB779D29CB0F53A123B7EAAFCE9346647CDF714AC0D88743603B92A6C6B61F443EB90E85F6DBDBA298BBC79700C910E6D627DFAA724ACA768646DCCF3C0E5263F9A96981152B3CC95D99FD55273D47AE625908FE654D91063BCEAC22496D76C7C35669657CEE04121BD40D4FB74F74CB3D4E898ED396A368A1681978B68DF7EAB9B886214F86B0C93BC991DB36F771FD02C18AE34CA3062A52D74A3906ED6AF371B27C59D24AC7E67FE23C7B2F3C99675D7E4518E63135649699C6D7BB216EDF558A8E864A978927B9E8DE8BD4330786AA06C8C665A98C58D87C4AC8A90305ADF4E8B594B83D1C5963674CB4946D6001AD5D28A2B70AD8E2ECAF6B2CB334DD4591DB857B589B5A0017538D85E74D1BD55D6FE316EBE9652E3668B95A628DB1105C0BE4E00528A2CDF7710CCE3B9E8AFCC29C7DD12E90E85DC8F65DF0E2FEDE6E4E5B9750830446F38CD2EE197D07BF7526B5D33849339D90EDF89DD8043621182F9802F1A86DEF6F7EA7B2618F9C97BDC5917276FA00BD1AD3CF7FC17333FCB85B66B74D361DFBFBA8CF3C54A3243ABC9D5DDD4259CBC8A7A46FB5B4FA929B5ACA5D879951C91C1EDFAAE76CFC353FD28E00D1E6D66AEDDB0F1F5527992A9C4B8E58C6C7823A0408F29CF504176F9771F52A6D63E605EFB3231FD7D94C71BF82DFED00E73BEEA95A2DC93C77536363A73962BCB39DC9D0FB0E89B9D99C63A66E51CBB603B95CEC4B13A7C3699CE7C80DF737D5FD82DC931FF00D4FF00C69A89E3A58CCB52E697B75B9D037DFA95E17C47E257D4B648E9A42CA7D9D25B57FB2E663F8DCB5AFBCAE2D87E481BCF72B9B4B452D6481F30B01B37A058CB39F97A38F8BF359CD636FA42E23A9E50BD08C363B0F4A173FDC8F4FA62FADA1085C5B011CA0A4A80A1329288108420684859343461351472A0925CA57B2135B3692636487D4FB2A1F3BDF37D9E8E3F3AA0F00D9ADEEE2B7C7C7967758FD2D98CDE4B2A278E9E3CF338003FAF61DD2A5C3AAB1401F579E9A8B8881FBC9077E8ADA98A87C3D874F8C63B3891D4EC2F73DDA359D9A17E60FF0050FF00D5BC77C4D592C743532E1F8582432185D95CE1D5C46EBEEF89FA74C359E7375F3FC8F2EDEA3F5AC4C86188434AD8DB1B340D670A2FD17E12A5C6312A599B3C15F55148350F6CAFBAFBA7FA2DFEA957625884781788E633BA416A7A9768F07F0BADF103AEA755F670924D3C1EFB7DD0958319C369F16A175355676B7307B5F1BB2B98E1B381DAFEFECB71DED6B76FC9446FA6EBAE96FC789C23C014D43893AB27C46AAA4937C84640ED6FAEA474D805ED3468BE80347D2CB1E2F8A526154C26AD932071CB1B1A0BA491DC35AD1A93ECB9D0E155FE2077998FB0D1E1B705986B1C33C83ACCE1FF00B07D6EA638CC67496A2713ACC6E47D3F86F20801C92627234989879118F9DDDF61FD176305C169307649F670F92A25379AA6621D2CA7A93D3B68070BA7144C8A2647131AC8D832B5AC6E56B47000E3D858208576840774EC8E53B59111B208D5306DB22C41D502E35DD05492E55004D2E764F84D2072024840CA6120A41542520914C6C81F098D90130812904949100530A213445AC22FAAC18F612CC5296C086CECD637DB507B8E4751D16C06CAE8DCB3963ED35496E3771F3A8E4918F7C350D2C9E2395ED27D5FCF93D0F23B82B6C525FF007B2EEF89F05FB6C62AA9465AB8C683F18BEDD8F43D405E4A9A6CDA96E537B399B169BF4E3DB83DAC4FE77F50F0FD6FB631F57C6E7DCD57581D14AEA88DF71B8215ADD97C4B1EE80A896F6530870D1419258EF75826835D175DCDBAACC40A2CBA70DD4C4BB657414963621753C917D958D8C0D96326FD990528B6DA2A9F4D6E1758334D92746084911C530D8ECA2596E17524886BD9639ECCDD6B7233599E6C3BAA5C4970005C9E15B1B1F51286C5A0E4ECB5C6D8E980118CF21DDDFA7452637272CB934AE0A66B0892A4DDE368FA2D70C4FA876791D9631B1EBECA5153B434CD546FC8675F741F32A1B983BC9A71BBED6BFB05E898C91E7B95A9094B89A6A26DEDBBB6B772505CDA71F7367CE74329DC1E83A20389020A58F2339E3EA4A980CA769B105FB5FF007B2DEADEA33F158A7634799564BDC4DDB19FCD5A43A6767934670361FC920328749390DB7075CAA03CCAD049718A9C7CDCBBDBA27CEA25A4E95D33FC9A3172DD0B8ECCEEAD1E551B2CD7174A7E27EE49ECA0E9191B7ECF4CC02C36BE83B92B1D7554387C266A89017DB73BFB37A2CE59E975BF8B6636065A921AC1A96E6B01EFD4AF298EF887CC6BE2A5716C7B3A41A5FD973F17C5A6C4256B5C5CD849B3231CF72AEC3E8BECF501D541B24528B34F0DECB330F6EEB7F23353D049331954EBBA1B9CEC03D5EEBBB05208DADA8A6000B7A9A3656D2D33A827636C5D4EF166DFA742BA90D37D9E56BA3D607EDFC2BB638E9CBDAA10C59C36783477214EB28C3A2FB4443FEB6F7EAB6450FD9DE4B47DDBB71D16AF2FC922468CD19D1C3DD6AE3329AAB8E5EB771E79AC5222DBADF88D1F90F0F8BD51BCD80E41E8550C8DB1FAA4F51FC2BCB30DDD3D9FB935B2861CCD0F94E58FA755A58C3202E178A16FCDCFD148460343EAAD73AB621F9A6D6CB51EB71F2E26EC4EC3B05E9C3091E4CF3B9536BF3010D3B086F4DBEA54C39900BB4E690E85FC9F61F9A799A008606DCF4BEAEF7E8A123E3A4F539C1F372EBEDFE56EDF5FAC1E4CA03EA74D6ED88F1EEAA73E5AE79F2DD9226E85E766F609089D51F7D56E73623B37E67FF853323E62191011C2DD34D80ECB172B9350676C43C9A569BF2797773D121680DC12E94F4E0A632B488A0D5EED1C472ADF452EA4974A79E898E16A5BA4990656F995041235CBC7D545EE74E336B1C4342EDBF90519080DCF52E039C9C1EE578EF11F8A335E0A022CDD1D21D9BECBA5CB5D44C71B93A5E21F104542C34F4C039E740C6FF72BE7B5D5F254545F379D39EFA33FCAA1D2CD59239B0E6398FAE476EEF6ECBB185E18D8C0BB493C95C32CBB7B78F8A49DB1E1D8639F28927BBDE75D57A2A5A60D60165A61A7CADB655AE286C068B95EFEBADBF88CFE48E885BBCBEC84D447AD4C2498596C20A0A5A20108405368130808280424913AA1B492BEA95D36EC818428936D11044FAB9D90C62E5C40FAED6FD7B5D75E2E2BCB94C6319E730C7DA9D352D4E273BA1A439216FF00B9393F08E83BAF474B494D8743E4D2B32FE279DDC7A95D16D3C787D236088036D5CE1F31E49F7B7F21D82E74AED485FABF1BC4C7826A47CAE4E7CB96FF008F957FFA909666FF00A712189C434D431AF00EE09002FCAB45136476A36E17EE1F17E034DE24F0FD5E1956DCCD998435D9AD95DC1BFBAFC5F8EE0F5FE18C6E7A0AC8DCD9E07107D360F1C1B5B95E99A95E5CFB469E36CC5F1BA2680DE42EAFFA6F1CCEFF00517028A91CE6BDD58C6666F00EE7E82E5708D6CD20736089AD73B72D6AFAA7FA1FE11986203C498A39B47855202EFB44D6687F6693B83B170E2E35BADFDF8C4C6BF490B9636FB902FD6F65C5AEC5E492B1D8760B036B7101A486F6869BBCAF1CF61A94A215BE24847926A70CC25C3FDEB64A8A81C860FF0096DEFB9BE965E870FA1A5C3A8994B410320819B35A373D49DC93D4EBD6EB4E9B72F08F0F4549546BEB6675762AF16754CA3460FC31336637FA9E6EBB5FB1CD91642810DD229F2825341009F3A256E42353A94D20D6FAA3AA3D91AF2AE82427F9A1148DF9469C2684D84374D3085508052095936EE805208422184C2026804C0493444821013089A0149A75493B283430DC58EDD1795F1560AE639D88D134E6DE78DA2F987E203B7F517B6B65E95AE5734822C45C74BD9673C26735566571BD3E694556D91CE1A80DB5AE6E083A820F23BFFE0746375C6E8F1460A30EAA15B003F647389786E9E59E7D9A77E808B9D165824B581F6BDAD7B69FCF7B8EABF2BE678997165BFC3ED707363C93FD6F1A68A7BAA98E055817CDB3F2F49591652E1014110D4C05245EC50D9EDBA892145CE54CB2D9274BB391C2F75E7637BA6AF30554818CCC6C6DA9ECBA351516BAE357164A492002394EBF2CE58F4EE173434434CD01BD06B7EE4AB5B9297D4E19E5E00DD73F0AAD32B3C98E23F686EFADB4EABA21CCA505D984951F8CEAD69E8DEABAE3A93B79329FDA792CE12566A4EAD85A6D7F7E898325538BDC72C63419741EC07E69329CBBEF2A6E2FAE43FF00E5FA2B4669B6D23E001FD96A4B97D66EA1B5C47DDC0DD7AFE67AFBA8492474E0BAE5D23B6B6A4FB744A59C37EE6986693F981FA9516C4DA72E7CC43E6E9BD8FEF85A9BBD467FF4A38CCB696AAC23DDACD82B8B9D2B49692C89BF374EC127B465F36B0D9BB88CEE7DFA2F21E25F1636373A0A321CF68D4FCAC5AF935164F6BD3A98DE3B4D8646E6B45E53F0B075EEBC4FDB65C62B8B6596F274DC31785F107882696495B4CF7BE4768E9CEFFF006AE3F873199B08AF0F2E3E4B9D771BDF29EB7FEEBA63E2DCA7B3BFA7AC7DC30BA36460D256346627E3B6FD17529E9CC65D4B522E383F9ACF8254438CD044E6119F282D20FEF4E8BD0D2C2278BCB98012C7A025664DCD38676B3D1C3763A9AA0DC7C8E3B9EEB653B0C6E753480B9BC5F9528E33234B36923E390B4C2DF3E3B385A56745772305132C4C52004707A849F38A4063702EB8D070AAAAAC1E508DADF58DDD7D02E7B049512BB2B8E51BBC8D162DF6EA350DCE7BDC1AC2E7B8F17F87FC2B58C8E985DC73CDD786A9303583CAA66DDC7771DCFBA63253DDCE21CFDAE45C0FA7256B0C749B022B9CF524DCEA19D7BF60A41CF9DC1AC20319A13F2B7DBAA8819DA649C964675B13773BDD56E99F3CBE553B4586FD0056E5A44E595915E2A60E2E76F6DDC542381B09F32A087CBB869D9BEFDD49A594ACCB17AE67EEFBEAEF648B437D73904F0381EEB17BFF00A5FF00C3FF0079C649890CFC3D7FC29343EA3467DDC239E14591BAA2D24A72C40FC23E6F6563A574DA460358DD09E1BECB58637ED4BD7C48B9917DD5334179E7AFBF659AB2A21A081F34F20CE05CB8ECDEC163C5B18A5C2A9C907348E1A0DDCE2BE738D62F355CB79CE677C9083A0F7572CF5F1BC38EE4E9788BC4525635CD63DD1D36DFC4F5C08209AB9C2F7642366F5F75A28B0E92A24F36A2E49D8703D97A4A4A46C6D166ECB85C9ECC30983250E1ED85A2C340BAF04205AC3456C715B4B6CB4B23B059D7F6DA0C8ECAF6B3452637853B65D166A588E54295BB214ECDC7A34148F646BCA36026904D4004729045D349A33BA38482680D5050876E884A2EDFB26541EED122A12C961AAEF782210FAC129DDAC7CBFD9A3FFC9796A892D7B15EA3C0538156C8CE81F4CE00F76C9AFF004785F5FF004AC77CBBAF1F9BB9C6F45881F590785C897E2D976EBD97712B8F385FA3C63E5C6624AE4E39816138E46D8F19C3E9AB1ADD1A66602E67B3B70BA72B801726C00B93D179B6E2B598F4EEA7F0D060A563B2CB8AC8D26269E4423FE63BBFC22DCADFD5BD38151E11F06E075714747E1D86B3149758291A0C8E71EA438D9807E23A7D6CBD4E1DE1D92A2782B7C44E86A27875828E21FF000D4BD2CDF9DFFC47E965D6C1B07A5C26173695AF7CB21CD2D44A734B2BBAB89D7E9B0E2CB79EE9AD32093C927B93BFF9F651720D86C82A1A44A5CA914950AC9109F28542B5B74B43A8522928008E516B2655D05EC91BF29A110909A153663D9074D12B276436414D4794C6BAA0683BA171B1EF13E0D803F2E275F1432DAE226DDCF3F40A6D9FAED8415C4F0E789F0AF1179C30AA8748F8BE363D858E038362176F4E150C2681B20207C290510984449092610DA4D56B0AA8293542AF92364D13A395A1CC70B1045D780C630D7E115423F59A479FB97345EC46CDEE46DD48D37017BE8DCA18851C388D1C94F50CCEC78D47E9DD73E5E29CB8FAE4DF1E778EEE3C0432106C48EC41B83EDDB6B1EEB6B1D7E562ACA59E86B1D49527EF07AA394E81EDB8D7A0BF3C02736CEB09C3213A104104E84588EDFE17E4FCBF172E2CBBF8FB3C3CB39236B76FAA91D556D2A775E1B1E80A2548E8A04A82B90E8B054BCEAB749B158A7668551C9A979D755CE91E6EBA354CDD73E5615CEC75C35F9289EE8E46BE3711203A1BEFD97A7C2E786589B2075E51F15F42C3DBA7BAF26F0082395A30EAD7D1D409596B8DC1E4765BE3CB775938F3F15BDC7B3734652F94E568D6C78F73C2CEE9A5A9798E981644342EDBFF000ABA777DBDAD99EE1E4F001BDBDC2D41CE901652E56423E290EC3F55E99DCEDE1EA0664A6022A7697CA7A687FC2A6A278685AE9E79186568B977CACF6EA564C5718A4C269DD62731D7F89FEEBE718D63353894BF78486FCB1B7F34B9EFA6F0E3B9574BC4BE2792ABCC8E07BA384E85DCBD79134D2D7DDA46587F08F9BDD75E8B0C7CCE0F9C0BF03A2EDC144D6000342C7EE7E1EBC38E60F0788E041B1DD8DE1794AEA2744482DB05F6B9A883C10468BCAE3B820B38B58BD1C5CF67D6AF6E37FA75E27760D5CCA5AC3FF0721B35CED987BF65F7FA67B6763268CDDC45EFD470BF345461C58F22CBEA3FE9463D55924C3AAA39648A103CB946A1A3A13D56B9ACBFCF170E4E2B3BAFA94E1A182761B3DBB93B2E756D5798F2E6073011EAD7577BAA2A2773DF63726FE960E149B13611E64F6749B86703DFBAE327B3CDAD211C45C03E73963E1ADF88ABC669AC1A03231FFD23DFAA4C619BD72B8B587A0F53BB00A599D31F2A060681D361DEFC95D24D7C66997B58C1140D249D0DF777F8438474CD124F95F20D9BC0507CF1D2348888748742FEEA9F26D696B2E5C751113AFF00DDFA26594FC126D2065AC7191CE31C1F8F6BF601580E6FB8A56E48DBBDFF00B95168927B3E570645C5F427B00A4D6BA5262A5686B46E78FAAE7DD0896426F1832487E6DFF929C70868F36AC82E1B47C37DFAFB2BF3474B1E58EEE7B86A4727B2A9C5B0C667AA734102E2FB37DFBAE9EB27D21BAF2FAA4716C7C65DDDEC385E73C45E22652834F461AE95A2C003E967D7AAE6F88FC4AE9B3B291E5916CE94FE4BC7344B5CE2C8839B113EA71F89EA659F5A76E3E3B97D4EAEB66ABA877965D2CEE3EA909D1BD82DD86613621F27A89D6E775B30DC319135A32ECBB904161B2E372DBD327AF514D2D386B740B74716DA2B238ECAF6B7AACE96D418CEC55C06898002645C8B0B9E9D54C99A44E8AFA7A7CCDF324395838EA9B6264203E7F5487E18C2D8D88B8996AF43F2C6D1B7BF75A98571CF977D44016D85A2D10AEFB47488D90BA7A571DD6A4708BA179EBE88E10842804708402A8108429A4B09371BA483D5108AAA53E92A6556FD922B9D54458DD3C1F14761D58D9C7A8D349E6B9A37746465781FD0FD11500826CB95505F116CD15BCC88DEC75047208E45B75EDF139BF6B9265F873E6E3F7C34FB67991D544D96270731E2ED70E45B75E7BC438852E114A6A2B5E5A09B358C05EF90F0D6B46A4F65E3B03F14CF85D28A3A3A7356D9FF00FE0E77E5119275648EE1AD278D483DD7D128E8DE29207560825AD6B6F24AC6685DCE5E43471C2FD5F1E533C658F8B9E378EEABC38C12BFC472365F11B5D49855F3478531DEA946F7A878FF00D8DD3ADD7AB8D8C8E164713032260CAC634001A06C001A0F60B5BD997DBBAA1C355D63155FB28EBCA991D52D38411B7290D948A895542564C8B6A926911401A29247454241D7545D1CA885EFBA13B5D23B2013E52E109A07298D101006880BA1309FF5EC9B1152DB7DBA755CFC5F16A4C2299B355C84179B451B1A649253D1AD02E578CF11F8C3C4D87533AB62F0D0A6C3DA47DE54B839FAED99AC232DFF00A5D2DD1A7A8C5EAEA6A310660F864BE4D43A312D4D4DAFF678AF6161B6771B817DAC4F0A54D8260B83515448FA6A76C594BEA2A2A407BDE2DA97BDDA93FA85E5F0476398AD48F13604685ACC4616C55349585F6618C900B5C05C83AFF35E81B8154E232B25F12D632AE3638399454EC31D383C170372FF00A903B6CA7D1E7FFD2BC0FECD362B8DB207535357B8B68E022D961CC483FDACBE86DDCA00D34DB6D804C0B2ACDA68404D543098DD252428B6A984826544486E9A8B5495136AB637EA152D5369B2833E3785C589D19638864CCF54720172C23B72382390485F3D94CD495B2455599AF0431CD26F90F163CB4DAE0FB8E093F5163EDBECB8BE27C146234E6581A05546DB004D848DDF293C7163C100F0BC7E5F8B39F1BFDBD1C1CF78EF7F1E621915E0E8B934D298E4F29E1D704DB30B1B8DC11C3873D77E42E8B1F70BF29CDC5971E5EB7EBED619CCA4B17DD44A40A6B8D6D5BB50A8902D2541C3A6CA0E554C37B95CD9E3DD77E465D60A884159B1A95C2919655B9BD375D09A1B5CD96495B6D963E3ACBB8B30FAC6D34E0C9E6181C7EF238CEEB563BE288A289B0D159EEB681A3467F95CC30B9DB6EB341829CEE73BD598DF4160175FDCBAD579F2E096EDC694CF5D397C84BE43BBBA2DD43860690E70F56F7EABB7161E22D0356A64161AA9BB5BEB19A8C70D386DAC16C8E1D15CD880D95AD66AACC7F296ED9BC9EAB3555235ED208D174DC072A4C801F5CBA37A755B96FE18B97AFD7908FC282BE7CD29F2A9C1F51EBD97ACC36862A689B4B87C42389BB9B5ADDCF55AD91BA66E6738454EDFE67B0526174C7C9A6686C638BEFDC95DB19BFAF2E7CB9677FC498F64232C04BE5D8BED7FE4AD631B10CD2E5749BE5DC0F73D546CCA761F2CDDDCC9BDFD94BCB646C12559D7E565F6F75B934E5774343A725EF716C437713BFB76554D525EE14F48D163C0D2FDC9E8A0F926AE368FD108DDC4E8026C21A3CAA5612E3F1388D49EFD966E7F88B31FECDA194DEAD25A93C9F97DBF54F281EA9CEBB86DEF7F748E480FA3EF26D89E87B2D10D365FBDAAD5E750CFD531C76B6C8238DD53EB9496C7C719BD82B1D28B7934CDB0FEDDCA8B9EF9C92DF44405AE3FB05C6C63198A821F2A1F5C87668E7B95D2DF59D313BADF5B5D4F86C0E9667DDD6D4DF5F60BC078831E92ADC7CD73990FCB10DDC8AB96AF107BDE1A6691BC0D9A3A7BAD2CC0E1AB863AB80B9D201690137D7F25CF2B6F6EFC73197B79EA7A49AB640E945983E160E3DFBAF474544C89A2CDD96BA6A40C6D80B2DB14565C2DB5EBD7F4AE1872EC375AA38C5949ACE2CAE6B6DBA440C68E15805B84680A40973ECC172ADBF866DD7D302E6C0807BECB430081A083EA26D703527A0508A22F7110667F5796E84F6E8B5C0218DEF69689E5B58BEDF08E8D1F9F298616DEDE7E4E4DFC37BDB431F9AF60131DAFA96761DD3823325A5AB75ADA865FFBAAA28AD9AA6BAC6507D315EE23F7EF6B29D331D58D2F702DA7077234F65E8CB1B32D470DAE388C6340D6DBB310AD1530B7D21BA0D10B5AC93D9621085E2D3EA8482026A0108486EAEC3421097B0245348A8CA2556F56950235418AA58B9B3B37FD1765EDB82B0544563B2DC57118F6D2CAF86A038D0541F586EEC770E6F71FD76E57D1BC178EBE43FF00A5E232B5D531B418E6BDC4EC3B381FDEB7EEBC0D5421ED735D6B1EAA9A19DF1BE3A574A629E3717D24EE36C8EFC27F84EDEF65F6BF4FF32CBE995793CAE1994DBED93C7A5C7F7589EDB2CBE13C71B8C511128F2EAE2F44D19F95DCFD3F7C2E9544762BEFEDF27E5D561235512AD7B555754164884C245508A498B6B748841146FAA684D08946DAA10095505D1BA2FAA09BA03B2564235453B211FDD4269638227CB33DB1C4C05CE7B8D80037B944583F765C2F18F88A2F0D60FF006E929A4A8BB831AD60F4827F13B8D9639AAF1DC7585D8179585D0385D95B551E69651D591E995BD09FE4178D81DE2183C77178731BAF38BD0D536D3C6F1E87445A4E602DE9237D3959B7F03DFF00874E1F8BBBFF005FA27BE792A1818D749A9A768DE303E5D7536DC9E42E678A6A5DE238E6F0E60A44A6421B5D540DE3A765C1CB7D8BCDB4036D57CF6BB0993C13E278E96BC5655E0156F3664333E3F341D2CE0D3AB9B7D8EE2E17DAA869A9A8E922828A08E0A702EC646DCA00B0D6D6D0FBEA93B28C36869F0DA0A7A3A36E5A78182360EC393D49BEAB49486AA405956404C2131ECA813493E111209A8A9040C276414C2A86100213E140C290E1209A098362AF61BD9660AC695079BF16E07E6075751B1C6402F2B1BBBADB387F101C722E395E6A8E7CE2C72E6001BB7620EC476FF3DC0FA7B4DC6B6FAAF0FE2CC13EC529ADA41969DCEBBC5B48DC7736FC04EFD342BE6F9FE14E5C7DB1FAF6789E45C6FAE5595AEBAB015CFA59C3C6D620E52D3B83D0F53FBE84ED69057E5F3C2E3D5FAFAF2F5B4D04688163B2645973552F6DC159E58EE16DCAAB735071E7849BAC669893F55DF7439B70A229C2CD8D4CB4E5D3515B70B78A5681A05A9918D95CD68534B7272DF4E06C02A8C4BB0F8C159DF105B9D32E764B232EBA0DD68737520288B9764846790AD497272CF3F5561AD8FE31777015DE565B49542E7E58BAFBA9B32D3DDD70F98EEE3B34F6EA549B16BE6D41249D729362EFFA8F0BBE3869E6CB2F6BDAB0C7D49CF2BF2C434BFE41585DA0869A3DF665F7F74C992A0FA48631BF3116CA3A0519666C23CAA705CE76E7E6715AF8C1973295B7243E7DEE0683D9526174C7CEAA25B19D436FAB958C85908F32A487CBB807E16FBA892E9CE79096B3B9D4FF00852F7F561FAA73959963859D4E88CCE70FB3D2022FB92353EFD901AFA92238BD310DDC06DDD5CE9590B7CAA66937E79777570C52DD1B591D202E273CBF8BA7B2ADD620CB504866ED6F27DD573CD151B0CD52F1986B6E02F238C63525738B18E2C849B686C5CB572FE9263BEEBA38D63E4E6868CD80162FD8347E6BCE3609A47C7290E740F3EA96FA9FF0AFA2A3F3E67C15F1E46BBE06ED71D4AEF50D38A273A96705D03FE175B84C65AD5BAF8CF4D40DA0226A669303BE268E3BADED80D3482AE97D5149AC8C6EDFF505AA9E014AFF0025E6F03FE13D16AA680D2CA596BC2F3A76EC14CA33B63A8A5680268EC627FF00455B196D868BB0C884072100D3C9B7F0F658EAE98D3C9D587E12B8E73FA7AB8B937D565CA384F62A4753602EAF6C4D8DA1F28BBB86AE71D72CFD518612F199EEB315EC6B5D60C65A31BF75A1901747E6540C91EE1BB5FE8A2E73AA8B8447CAA76E85DF92EF8E12775E4CB92E5527E6980829CE9B9B0D07EAAEA66B296273997CD7B3A4E5C7B7458FCC7861828F3173BE27DB52AE2E348CFBD7F9B52ED9A0E6CBDBFF002BA63665DFF4E5945B58D6B2213D60377D8B6168B93F458DB535159365637ECF102743C0EDD56CC86261A9AF05F31D1B1836D165AAAD92AACC8E211B068D75B61D1BDD5E4B2F76FF00FC5C65F897930F2E613D4942A3C8A31A10C27925FAA171DE3FEB5E8EAA45348AE2FA4026A237DFE8995034B94903750490848AA04248E5464CA890A7EFBA894DADAADC75B2CF2B3302B5155BC226DC99E2D572EBE9CCB191B386A395E8668EEB9D3C76BAEB8E5ABB59AFCB260F89D4D3D5C75301FF008E80659184FF00BEC1C7B81CF3AF45F5BC23118317C3E2A9A5702C737AEA3B2F8D56C2E6BC4D092D91BADC1B1FFCFE6BABE18C7CE1757F6A68FF008595C054C434119DB3B7B1E4707DC2FD1781E57BE3E993E6F95C1DFB62FA94B1D8959C8E16D8DF1D4C0C921707B48B823959A4691BAFAD1E0FF19C8D52B5CA911AA481148A675488B2A6C944E8A496C80BA49F092A11424426544052081B6BB2E3E2B88D57DACE1D83C51CB888687492487EEA99A7673B924F0D1F926C767403D4406DF5257CE715F1654D0F8C25C2BC5345037059C344443039B6BDDB213CDC8D4706CADF15782FED583D6D6E278F62151570C4E9733C86C3E917B640341A755CFF0009F861FE21FF004E9B0628E7B6532BE5A095F773A269000EF94907458B6B5A7B6ACF135031C60C39E314C41C3D34F46E126BFC4E176B4772543C3B8249495B538BE2AF64D8BD5801E5A6EC858368D9D86973C95C4FF4B29F19C3E86B30FC5285B053C121114960D24F234F88721DDEDD17BA0B527E59A8BE28E53197B18F319CCCCC2F67751DED7531F5FE850130AE90709A436526AA86364212281A9148A2D60A224134826A860290482615434F8494829A0C269052080E14828A90D5136B18ED55AF8DB346E648016B858822E2C775434AB58EE89DFC1F3AF10E13260F581D0026964368F923FF00977FC43769FF00B7A284133646873082D76A3F7F50BE8D5D4B0D7D249054303D8F162D3FBD3DD7CD311A29B06AD7C5312E61D43ED7CEDFC7DDDB67EB7CDD57C3FD47C2F6FF00E4C23E978BE46FF8E4DCD3A2982B2C525C69B7BDFF00AFEF75A015F9EB1F4A549164C14D65A42DAA32F3653404080521A2145C510DC7458311AB8A9620F94D9B7B5D5B34D942E3628E654C0F89E743B7BA165B1B210EA96B8B08644377B94C380021A56BB5E6F773FDFA2E4615592C8F6D254CA1A19A31CEE8BB2D918CFBBA70E7388E7E23EFD02F571D9AE9E2E4965ED3686D3B49796BA41A13BE5F6EE9F965EC325492D8CEB906EEFD522D6530CF39124B6D1BC0540F36B5DE648F31C43E6B6FD8057DA46244DF2C952FF269D8006E84F0DEE54C64A66DA239E676EFBEA7D90D77A7C9A56063071F992A0E73203A7AE5769F5ECB3F3B5B4019017CE466DC37F549AD754FA9E5CCA6DB36CE77B74F7561A66B2D2551CCE1AE4074FAA93C199A1D33B243C5B7776016A617ED4DFF0040B8399E553811C0CD09E1BFAAE76298A536170BBD633DB437B977E8B163FE218E91BE45359D20D1AC1A86FBAF9378A3C50E63E4653BC4D54777DEED61E83A95BC65CFAC637861BEEBDAD557D462B559342FB7A630741EEB7E1985C7571659864AD8BE175B51ECBE57E0BF11CB062419572173E43A3DDF37BF75F6DA411D6D345554CEFBF0D1AFE2572E2BC796B2339AF829E0F3A2F26A1B9278B63D0F50B6D3B3ED309A7A805AF66CAE2C35313668B4A866E3A8E42BC42248DB345A386E0709F1CA4DA3471DDA619C0CCDE5698D800313C9FE12A5E59A88DB247612B7856C596566BA3870B39653F0D68A068CAE8661707AA84D91B13E9E705CDB5DA539650F1907FB8DEBB058E57BA498B18E2F7ECB959FD2CEBB530C623D7574874016E8A210DA59C874BC661A3540BA3A5682F39A63B346A6EA41B265F32A080E3A86DB6FF2B58632769965693DBE6FDE54B8E4DC36FABBDD56E125510C8DA1910FE43F557322F37D5212D66F6E4A46674CE305236CC6E85F6D1AB77195274AA59E3A36F954C2F23B775AEE3FBE8B3D348EA673A694B1BD79FF00C95A246470021A333B9772EFD150620D226A9B17EED8F86AE39E55A9259DA75331AC22439D91FE279B13F44E9BCA7B408DA4B356B5D6B0EF97F54793E6B7CDAABB633B3793DBD95B1895CD73D80464E8C16F802DCB72BEDAED358C9A5ED8E918D0D192C05B572163FB3D28D1CFBB86E7BA13F733FE9358B70472842F369F5026147629850329141405405084728041D77425C221DEE3B20249A802A0ED14D44AA29736EB1D447BADCE55C8DBDD5FF071268D72676BA8E7F3A2F836737A83D7B75ED75E8EA62E8B9B3C77B870D176E3E4B865BC52CDF4EE7823C42DA19A3A299E7EC529B40E26E633F80FF5B1E46ABE8B2B43DA08B58EA17C21CC14D2398FB9824DFB1EDDC6EBE91E06F107DA636E1F5D25EA18D19243AF98DE0DFAF5FF00CAFD3F87E4E3CB8C9F97C9F2787D2EE3D23DB62A972DD3334BAC8E6AF6CAF2C57D944EA54CFBA81EFBAAA2C92117D42A82D7D12BF09F7486EA80A5CA6524403E20BE7DE13F12C386D3D5D26374D5D1E32EAA925998CA5924F34B9DE92D2D074B0007B2FA0A7775ACB3A3E3CAD45157F89DCD8F12824C3B050439D4CE23CEA9B6A33D890C6FF0EE57A78DAD646C646D0D63400D6B4583474EC3A052D8D930A869268550930841E2E8194C242DC206C88904D454900A41454B94409F280A4150C260EAA37B290536877526ECA2982A8904D209A81A9051E1482218531BA88520945CC3D7658F1AC322C568CC2EBB6469063906EC77047EF6BAD2D56B1FA853F1A3767C7CA5F1CD8754BE9EA1818E69B16817C97BD88FE13636E9623804ED63C11AFF00E57B0F13E08DC52943E20DFB546DB30BC583DBCB1DD8FF003BD88D42F030BDD0C861943DA412D19FE2046ED77F10D3DC1079B0FCDFEA1E15C3F9E1F1F5BC5F22673D6FD7501526ECA98DD75734AF91717BA2484905674A44ACF33EC0AB5DB2CD3EC6CAE9582AA72015C6AA9CDF75D1AB0755C7A90736AB19378B3C921DF91A85E870BC563FB2868691516F53B72EEE179B22C953D4494952D962700E6F5D95C3934C73714CA6DED19013692B07710DEF7F756B49A9399DE98473B69D0058E82A62ACA6150F783F8983707BAD6C64954331FBA81BF373F45E9C71DFC7832E92F54BF754AD000F89DF9953022A51761CF31D0BEFFD933200DFB3D230803F772B1D756C386C46591ED32DBE23A91D805D7AC676C7FD34C8E1030C9536CC05F21D87BAF1DE21F1339F9E3A4786B07C531E3D972F1DC7A5AC24C8F2C83E563777FEAB8B1524B5C4191B963F9583F3EEB9E596DE8E3E2FCD73EB679EB8BA2A6CCD8CFC721DDFFE170310C15D083A1FAAFA5D2E1CC8DA006A2B70D1246416A63C971F8F47AC8F8ACF4EF85E08B820E846EBEA5FE9678A0B9E286ADE33DF427670ECB818DE0A58E7587D579D8E19A8E764B092D96337690BD7739CB8EBF2C5E3DBF5144D0D2268BE13BABDCDF29DE7C5AB1DF1B7F35E27FD3AF14B314A46C350436767A5CD27F7A745EE98FF0024FF00F2CAF3EF5D57972C2E349CDF24B658C7A4F23654CEF6B9E6585D95805DEEBE8A3513321638B9C5B013E96F2EEC1671199C366AFBC74C3E0807CDEEB1DD6768073EAC910FDDD3B7E294E9753F35ADB53D132EE3F35B7EE7B2938CB56E0C8C08E36F1F28082F6530F2A98173CEE77713FBE15F5D7D0DB1C74BF7923849507771D9AA6C697FDECE0D8EA19CBBDFA2ADAD6C5F79390F946A2FA869FCCA9E57CDF793DDAC3F2FCCEF7E898A5325D524D8E485BB91FD9067CDF734CD21BC9EAA0EF32A5C1B159B0B773C01DBAA97991C60454CC2E2791BB8A5EE8893E40CCE19E43B008113A3B495243E53AB631B05692CA3619662D33B869DBB054B039C5D3CF66B37D794CB504E38DD2BB3C849BFCDFA2E5E3D8FD3E11098A1B1948FF6C1B927A95CCF11F89DB034C146E05E059CF06C1ABC386CF884C5F2176576E4EE7DD267309D3A71F15CAF6D52788ABDF239DF6ECB724D870857370B6003D285CFDDE9FDA8FAA84F948A385C6BB9940491B268329210804CA4840147084289414708422041421595512AB705690A242946795970573EA61D57548EAA89981CD216A51E7AAA11235CC70F49E9BFD173E964929E7633398E663B34526D63FA2EFD4445B75CAAEA6F3A336B878D411C2F4F8FCD7872DC673C267355F50F0AE3ACC6688878C95517A658CF07AFD575658ECBE3382E2351455AD9E0396AA1033B07FCC6F4FA71DAEBEBF84E210E2D411D4C0EBB5CD1A5F51D8AFD578FCD8F2E12C7C6E6E2BC791385956775A64658AA08ECBD1B7142E83A208B14BEAAC11DD4804215010926920894D1EC8D5128E5051F5422184D4384D454905209AA814824100222413423D901C277485F94D1121D5350BE8A413624D4D4548222402900A21486CA8614828354C28184D013464C15250526A2985369B28A6DDD134D0C20EFA775E5FC5F817DA98EAEA561338B7991B7D25E06C47F18E3822E0E857A36AB9A730B7D56393099E3EB97C6B0CAE1771F2AA59C9F4B882EB5EE340E1C1B71CE9C1B8E16D63974BC61827D99CEAFA51961738BA503FE5936BBC763F30DF4B8D42E0D3CC5D70E195E0D9CDE87F4B58FD57E5BCEF12F0E7B9F1F6BC7E6FDCC5D0BDD05401D14815F3EFF0071E9D12A2517571D9408536B1CBA98AF75C8A98775E8E565EEB9B530DEFA2CB51E7A565B6543DA08B10BA93C3625619184158F5D3B4BBFA850553A86A5AF2D0F8C1D587E65ECE9AB0E2313248DC190F7D2DDACBC53D81C0ACE6A6A685E1F4EE7071D37B85DB0E4F579B9F83DBB8F5D8C637061D0F9501CD21E06E5782C46BA7AC9899097BF60DE1AAF6D34D3B8B8DCBDDAB893AAE8D1618D8EC5C355ACB93D98E3E298FD7268B0C74B279B3FA9C7FA7B2EFD35286B746AD51D386EC1696476E1474DFF004A190F51AA998775B18CD148305B4088F3D8961AD9986C05D78AC57072C90FA57D51F082D370B0C9839AF9431A2CDE5F7D95C72B3E2EF5F5F36F0E61F5E31780E191974E0EA2F61979CDDBFC2FB589DF0431472912D491A31BB7F95870FA3870F61A4C2E20E91DFEECB6E56E8F25134E5CAFA977C6F3C2E9DDFAF272E7ED7A4DB1885DE7D61F3AA9DAB59C3138E37D53FCD99E4379775EC128A10D699EACE561D72BB42EF748B9F57A9CD1C038E4FEABA5BEAE29BA4325A1A5F4C6DD0BF603F7D544797080DA704B9DF35B53EDD02980E796C3036C3A71EE4F2B4B1B1D1B49F8A53BFF008531C6E5F52F4AA381B05A5A819A4E180E83DD465265BC933ED1FF00EEF6527924F993EAE3AB5AB33992D43EE480DFC4761DBDD6F2B24E9677F49D3BEA088A9E3B307CA3FB956666D39CB17DE4EED33DB4FA22C037CA8186DF35CEA7BBBA2AEA2AA0A084CB3481A39793A9EC171D7F6D7FE2CC91D334D4D5B839E3525C740BC4F89BC4F2543E48E9E473623A5F97FB2A71DC56AB12127911BBC86ED1F5EE5726870F748F124C4B8FF64CEC934EBC5C72F754D3D24954F0F947A6F703F55DEA4A46C6DD05ACAEA6A66B40B0FE8B7B1806802E3ADBD7FE33880590B6F9485743D4261242CDAD1A124281A2DA5D20995408290470A010847089A013491BEA868D083B24A1B34149011112AB785695172A5629A2B82B9B3C36DF65DA736EB24F16EACAB1E62BA95C5FE7C571337A0DD753C2D8EBB0CAC12DFF00E1647013301F80FE21D8A278B52B91531BA9E5F3A2F84FC4DEABE8F87E55E2BDDE9CB9B8E7247DBE3919530B648DC1CD70BE61CF454C8DB1D5780F03F884524EDA1A87FF00C3BCFDD13F29FC3DFB7D57D1A401CDB8B11D57E9B8F299CDC7C6E4C2E196AB190385022DCAB5EDB2ACF60BA7C6087BA0EE8F748ECAA1A3651E505543BE89124A020A28D794142114C048ED640DD4946481D934B94D50C26144689DD348681BA6805512F7DD0912994121BA6A2D520A690C2697B27AF28692053482904430A41442682610520984430A41454820613E108F74826D2A6D2AB16E149AAD45CE0D9232D7805A45883B2F9CF89305930AAB6C94C2F4CF3963BE994DFF00DA3FCFD278272EC42FA2B4A8D653455B4B243511892278B39A45C10B873F163CB8FAE4EBC5C978EEE3E634F3891A1CDD88FDDFDAC47ECAD20DD66C62827C1B107325BC91905C1F6BF98D1BBBBB9A3E21C819B70538A4040E6E37EBFBBAFC9F93E3DE1CB57E3EDF0F2CE4C771A4ECA253690427B2F2D75FAADC3459648F35D6C2156E6DD4D2FC716A61DD7327875D97A5961BF0B1C94D727D2A58D4AE036024EAB5C187670090BA91510B8365BA184345ACB163573E9CA65006699420C05BC2ED18AEA97C1AAD473BDB9822563197D2CB598ACA3E5F65ADB2A5AD53B586AA67456B22644CF36AAC1BC307CCB531DA6594C508A9CCAD2E7B83211A97156303AA5A5905A1A61BBCFCCA4D63AA2D2D490CA71F0B392A4E9249DE2285AD01BA588F4B3DFAAEB8E323CB9E772A4F7889820A36900E971BBBFC29B58CA36074D67CFC346C3DBF5417B2941641EB9DDA171D6C7F7C24C60638BE67174877275B7EFA2DEE4F8E6031F29F3AA49037636FA7D5591B64A87D99E968DCDAC00EDD11144FA8717C872C7BEBB9FD55B24B9879503741FD95C71FCE49B332B20688A9C5DE773C92AABE4399E43A5FE8D4839ACD2325C5DBBB977B290688DB9E4373DF8FF2ADBBF868A3666BBE6B8E80F3EFD94B3BA53667A5A39E9ECA04F9BEA75DACDEDC95C4C731E652B4C54D632751B0F7EEA6FA6A4DB5E2B89D3E1D1160F548468CFC5DCAF155B5351884CD965B98EF6CC0E8C442C92BAB8C75B9C0901F593ABBD97568A9461CFF00B2CEC06070FBB711A5BBAC4FBDAEF4AE9A8C50B84F082F85FF00EE37A1EAB74B46C16920F81DAABA084D2BF21B989DB5FF00B15B29A1103CB0D8C0ED01E9D95CB197EB5867639CC8D5CD6E8B654D2981D7DDA762A822DAAE367AF4F6637736859082F17429ED176F448E1010B35B08421640842100104D91A59229B0EFA2361642119011C2024555DD342108008421440914D08AADC35553C6855E556E0839B530DCDECB9B3442C41171D177E465FF0092E754C475D345BD9B79F9E088400C01ED7443EF5AE766E747B7B1FE8405EFFC0BE22FB64428AB1E3ED0C160E3F38FD7AAF1950D731C248F2F9B1E9AEA1CDE41EC42C45DF679A3AAA37160CD76127D51B86ED777EFC8B15F7FC1F2A6B4F1791C3BBDBEDB2334B81A15988D573BC278EC78CD135CE01B3B347B2FB15D6959A85F6A597E3E6652E37559C8E9B24755270D52B2DC4202C829A4ED9134477486C9EE522514C27EE923DD03D38090DD336E121BA26CD1F54D0886130A2344D444826A2DDD490014868A2135741A9051BA90443E148289D9309A124C6C9206C8890D948288521A2BB12099D920A4A69004DA8081A26848268BA10482905168525A4482B18ED82A429B4ACD36CF8D61B162B44E86505AE04399237E26386A083D57CBE5825C22B5F4952D0D0C363F846F670FE027FF00A4DC6C42FAEB5D62171BC51823316A4BC618DAA8C3BCB73868472D77569D8FF3E1793CBF1B1E7C7B7A3C7E6BC55E2237122DCF45682B994EF7D3CBF679C3D8E04B00937046EC71FC434D7E6041EA06F63AE07E657E539B8AF1E5EB5F6F8F299CDC5CA2475402A4B8EB4DA0584A898C595E020A9B148600149AD53B2900A7D520DD12737AA95FAA44822EAA297B02CF200D5A1EF00AE3630E32C4031C4106FA2869BCB9B4E2F23334A7E166D97B953642E2E135612E79D5B1EDA7E4173F07AC83212F25F54399385D58A2F30196AC9642750D27D4F5E8C31DC78F3BDF68B1AFABCC6E1B10D0BF8B741D1124E2DF66A16D85B575ED7EE4F014A491F556631A2385BA76FAF54DA1915990B0B9C7E51C9EEB7AB7AC5CBA4591B299999C6E4FCD6D7D82BE3840024AA04347C315BFBA906B28FEFAA4B5F35AE07CACFF002AACAFAA779B5376C5F84EEE1DFA7B2B24C7AFCA7D0F95F524E539606FCDFA2839D7B47182013A01BBBDD5AF0E91C03059A34EC10F788BD110BB8EE55BFE8418D806671CD211B0D6CAB91ED60F32736D3E1BA8CF3474B1BA49DE330E4EC17CFF00C4DE2A89D30844A1A5C4D9B7D4F7F659EEFF00CB58E36BBD8CE3A6471868AE4EDE9DC7B2E350E1E6BD8F74A4B276BAE1A783DD5F87508C9057D39F3081773495DD34ED9DADABA6D241B8EA92356EBA65A781B5503A194797347F09FC256CA563AAA37D3558CB3334046FD8ABDB07DA5ADA8885A666E3F25A8C0276B658C16CCCDBBF50B5ADC61452C44B7ECF55BB763C5BB2D50C760E8A417E08EA15AD88554599B6F318AD8AD237519646AC7F8D48238C399E44A0107E12795CA92825FB4398081183F1AEA48E05A1C7D2D1B93C1ECB3B43EB09682590377772532C7D9A99DC5479542342E048E50B708E85A2D96F6D2E857F6A33FB9924851525E47D20849D7D2C816E10349348A010774D0A05CA107649A9A434D0914D9B342413421147282808969F0842134A4527263741D9136A5C3759E58F32D645D56F681C2B15C3AC8B2DF45CA9008247B9CDCD0BBD32B40D4FF137B8FEBA8E57A5A88AE0AE4554363D0755D78B92F1DDE259ED355870EACA8C131364F0BF3B7426C74959C7D3A7B10BEBB84E210E2944CA881D76B87F23D17C79CD6B41864F444E24B1C7FE5B8F07B13FD6CB5F83FC4470BAC6932B5F4531D729BB46B6BFBDC6ABF49E179532C7D6DE9F37C8E1B7B8FADC8C009557D16886565444D92321CD70B82AA7B57D39FEBC0ADDB206A870E8804AABB2B5823A267651E11934210A9A01080744D100DD3296A81645352E14548A2531A8476515208869F09202824DDD4941482A8613482682413482774A8904F94815240C26935482A86134936A090520A0A414125250520AA241034404C20934AB5A78542B1A50799F19F87C56C6EACA361352D16735A6C6468DADFC6DE0EDC1D0AF174B3ECC7105E05C102C1CDEA071ADEE38371DCFD7410E6D88B83A2F0DE34C0BC97BF11A5168CB8BE6B0BF96EE64B74200CC3722C46A17CCF3BC49CD8FB4FAF678BCFE9755CA6BAE1580AC34D31702D7D848DD1CD06F63BFF2B5AC79056C61BD97E673C6E3D57D7C6EE6D6F28290520B9E9B0023848A5FCD3A3464D9512BEC0A9BF759A73A1436CB575195A6CB8757524E84ADD597BAE2D50372B95DC74C4E9EA5F4F52D9E1B17B0DC03B15EB68AA3FF005285B50F780DB6B63B1E83A2F0E490B5E1758EA6A804E62C27EF1ADDCAEBC5C9F8AE1CFC3F98F6CD25E7CB81B668E6D60DF7EAAE73E3A36E58C6794F3D7D9554D58C9E068A168766EF6B7BA60B62B96BB3487E297FFF002385EC9D751E1FB432200F995273C8350DE1BFE559674CE25D70CEA86C21AD0F98D99B86DB5FAAADCE7CE48B88E11D55FF00949DA45C5EEF2A9C69CBBA2C18857D3E1B039E5F99C34CDCDFA05971AC721C3E0F2E2D491F083EA77BAF9BE2B895562B390C37074CD7D07B2E36BAF1F1DC90F19F8BA57974701CD25BD2C06E1BDDCBE5B572D449566A6491EE9AF7CE4DCFF85F477E04D744730BBB724EE5796C5B09742E360BD3C1CB863D3D7E9EB3A7B4FF004DBC50D78104EEB126C5B7BD97D4E18853CA27835824F885D7E60A5927C3EADB341F1B4EDD4745F7CFF4EFC4B062B87B18F703C107769E87F5E5679B0FDBEE7FCBCFC987E5ECBC8F2DDE741F0BB5B2B44762248F40770A710F23D2EB796ED949D781F6172D770B16E9C6446402270999A7E20A9A973339924BB45B4039509E76C56D6EF3B312641FF3EB1DAFCADE8B1AB4DE918E374FF7939C908F96FBA6E7BAA0F914CDCB10DCF640CF5A4907CBA71A13BA5254003ECD42DBF1FE4F55D3E27D5A29E900B39F21237D5090C2EE2EEA8B38EFEE84EC4931BA485E19DBEA19490856C01EC8D7946FAA3DF75008420F74020A5716D13536184148A3EA89A0842100828F7469C20684909B5D24914041D15D25250729DD0506778D160AA86E0E975D278543D974F88F39570DC16917074CBD579E92919477646C0D809B80DD329EABDA5543BE8B8F554E1D70468BB71725C2ED6C994763C05E237534A30EAB7FA09B31D7DBB7B745F4A3EB6870B6BCF55F069E1742F0093941BB1C38ECBE8FE06F11FDB2214756F1F6866809F982FD4785E4CE59AB7B7CAF2783D6EE3D61D1408FD55AF17D5BCAADD71BAF76F71E322784ADAD9222E5035D15120374385C256D3DF44763C2A807B2691B70840F74249A069F095B440444826126EC98443424530824130A3C260A06148EC9202A89354945352C130A4A00A904448269042A269B544290443298404D405D49AA2134134C2884C2ACA6135152515369D54CE57B72BB5BF0AA0AC69529A7CE7C4F81BF0BA96CB4807D9DE6D18BD83093FEDB8F4249CA76074D8AE7D34C2466617B6D622C411A107EBC71AAFA9D5D345594D24150C6C90C832B9A79074B2F9963786CD835796BCB9F1BBD4D7EE6468DC9FE368DC7205F7057C7FD43C3997FF260FA5E2791AFE392C6B9580DCAC90C8080743C69FBDB55A5A57E7B29DE9F4FFD4D2295F74F8D54595072A1E2EB41B70AB78E8A15CBAA8EF75C6A986C485E96465C15CEAA86E3659B1AC6BCD4ACB13A2A5D7162370BA95306A745CF91965CEC75976E8E0F8A4B4CDF28BFFE1DC7D4C26C1BF55ECE1744C8C48E707BC8BB4B761FAAF9B6AC3980BF65D6A0C6998744F32874916E2DF2AF571F2F4F0F3F0F7BC5EBE47179CF2936E8395E6FC43E21640D745016E61FC99EFDD73715F11C9591E5A7058D234B1B93FA7B2E3D3D0BEA1D9E5B9EC532CF6CF170FE6B1965457CD77E6C84DCDF73EEBA94987358D0036C02E8D352359616B2DCCA70B0F56A4F8E78A516B2E5E2D84B258AF975B2F51E5EB6094900736C56B1E91F19C5F08744F3669BFB2A300ADA8C0F126D4D3DF25FEF180EE3B775F4EC6B0B6CAD240D42C780781DD884C2A2B898A85A7FEE93D97A31E5DCD5329319BC9F41F0D630CC5B0A64B102E61170E1C7EFA71AAD535438B84705E47F27A2A29218DB0328B0D85B0533058641603F55A8F97483CB806698E971C959C70B669E0CF29BE8A364546D2F94E69CA418E9489AAC96C7B86F552F2D94E3CDAA767937CBC050643256932CE724036BEEEF6ECB76FE2301CF92B4F9707A201BBBA056668A919E5C172E7697DCB8A53CD98B60A46D801ED6EEABCCCA6047C729DDDFA7459B7FAFAD4897975275CE0762FD90908AB5C2E216D8EBAA14FE4BA8BCA43641482F2E9F48C21011CA9B00472808E5008421008421440845D0868C212420384211BA010846C8810842A6CCA41051C29B5270BAA9CD577BA89B7089596565C1BAE654C2083A2EC3C68B34F1DC6AB5B23CE5540248CB5C342B94D926A2AC6CB1B8B6661B83F88755E9AA62E81726BA9FCC6F478D97AFC7E6BC796E26787BCD3E91E15C722C5E858ECD69468F1D0AED3DBBF45F12C2B109708AF1511DC37359EC5F61C2B108B12A364F13B3661AAFD4F8DCD8F363ED1F1F9F8BD2B4594485322C75DD44AF43CE40A7749A9954081BA0A10491B28A68801BA90D54531A20901642574D0309851520886536A4A41034210A07C29049AA4AA0526A413088904D209F0A86A6D504D1349A9055DD4814123BA7C240A68240A90500148281A9048215124C248505AC2B2631874389D14904DA13AB5EDF898EE1C0F041E5686AB5A566CEB47CBB8F9256C136175B2C154D032BAEEB0F4EA74781F85C771F29D36216863FF45EEFC4B82B315A4393236AA204C4F73743A1BB5DD5A412085F37667A5A8753CCD7B1CD716657EA5AE1BB09E6DC3BE6163B8207E7FF0051F0FD2FBE0FADE2F91EDFC72748152B7754C6FD06F75705F1ABDC6A24297084550E6ACF3477056D70B82AA7B7A25238B550740B915111B95E9E68F303A6EB9B514B98ECB16352E9E75D19BD93761DF68616B85DA771D5769B43AECBA14F48183658EE56EE5D3CFC184B6303D36E16E6536568165DB300E02A5F05B60B527F6E7B73D91595A1B657F9441D94B2765D368A433928D02B034B9C1A01256A8A18E019E5702E1D760AC96B39E7318A22A169026A90720D9879F7ECB5C713EAC8248653B761C1F65364464FBDAA25AC1A869D3377296796AE511C27CB85BA69F905DF1C63C79E772FAB1EF769051B47728CD1D08D5F9EA1DCF4EC1124CCA6688A9C667BB73C944308A7FBEA939A4DC34EC174B77D4734D94E5D69EB4D9A356C77DBDD464964AA711110C8DBA17703F550739F55EB91D920E49D0BBFC23D53910D336CDE2DB347E4B36EFAC561670D1E4D3B49B9D6FF0031F7E55CD64548CF32539A63A807E543DD1D237245674AEDCF37E814238830F9B50417F03A7F94924F9F4A3ED152ED435F63AA14BED2E3B31F642BBA9B340420AF13EA98E12CD62022E85106C5174908A684AC8510C21084347C248481D510D01174255D99486884206829211070808421D1A124040D23B268415B82A9CD5A156E09B5619E20B975116A745DD7B6E0AC55112D4EC9D3CBE214D9AEF68B9D8B4F23A2D7E13C71D83D6B58F7134B29E78FF3D569A88B53A2E1D7D30612F00E476A6DF29EBFBEABE8F87E55E2CBFC73E6E29C93E3ED74F3B2A606C8C2083ADD33A15F39F03F881D03C50561D2F661EDFA745F466B848D0E690415FA7E3CE678CCA3E2E787A65AA08B848A60590575608EC984BD902E0EA81A11CA10309A413464709FBEE95D36EE82413514C0B2224A43D941486A824984930818D507A24A41031B29354548232921209AA1F0A40A805340D49406F652E10486EA414426889290D944261286A414549A8184C210110C2934A8FD50A2AF691CAF2DE32C07EDD11AAA465EA983D4C1E9F35A0DEDD9C2D70EEA17A6695306E08B03A6C5633C667355AC72B8DDC7C7A92737C8F37781BDB2E6E2F6E0E9A8E0FD09DEC75C2EC78DF00F2DCFC4A85A6D7CD3340B907FF896FF00DC37205C6A179CA49FCD06FA386E2F7FAFD77BF2BF33E6F8997165B9F1F67C7E69C98BA17D135531CAC057CED3D25BA2CA635DD16515439BD554E885D6A2070A16456611007456B5963B2B32F5520070B1622396FA949D182AC1BA4E72AACCF8ECA831B9EEB301255F34960570EAB13929AB834B5A627002E76015DB19EE4DC75C0FB38C996F2BB80752AE8E1108F32A88749C3786FF00950865860883DA44B2BC5F3DF7F6526D3B9F696A9D61B86F55DF19A8F1DB6DED13E6D64999D76C237D7F3E55865208869DBA6DA73EEA2E7C952EC908CB18D2FD15ADCB07DDC0D2E79DF4DD7492DF8C53883691A4C8334A4EFCFB2898C93E65568388FAFBAB5ED6520124FF007936E06E1AA8644EA8719EA096C7BD89DFFC2996FE629886B5F58EDCB621F13C6DF4EEAD7CAD8C7D9E95A09DAE39EE541D23A63E5D300D8C69D82959900C9182E79FE64F7567F1F8B49AD6D3DDCF39A53B93C7B26D6820CB524346E19C0F750964651C466A9702F1AD8ECD5E13C4BE267D5974348E708C9D6DF3ACDBA593D9EC9DE22A4638B7CE6E86DA217CAFC8AB3ADC6BAA1375BFDB7D85228080BCB6BE81A4374D2510D09215D29A5BA1074501D90764EE840AFB2691404434210A68D8BA49A1509348A69505D08482887747084235004FEA92100A2762A491434AC854CADBDD68214085472AA215CBA98B4208B85E8658EF75CDA98772B72E976F27554E619806B88B1BC6EFC97D07C17E2115717D9AA4DA6669AF3FE7AAF2B594ED9185AF1A15C98E49A8EA99246ECB3466F9BF10EABECFE9FE65C3F8E5F1E4F2783DE6E3EE26C76B243405707C2F8D47895237D40483470E415DDE57E82652F71F272C6E3754D0845969908284C204A412421A491BA0202200A63651BD9317D8A225C27751E14BA20904D414820970A41453E50A926124C222413482688613BE8A29F0A890374C24148206A4A21308890520A0131A2513522A00DD341309A85D4814BD21829A48514D58C2AA526A685AE01CD20EA3A755F35F15E04FC26A45551B47D8DE6C1A340C71F94F4692743B0275D1CBE94D2A157047554D2433B1AF8DED2D735DB10B8F3714E5C7D6B7C79DE3BB8F94C1309181C0E849DC6BD2DFBFC96A07454E3985CF8162393D4FA795C7CB71D73B40DAFF008DA2FEE3FE924C6194380734DDA45C1DF4EABF2BE578D7873D3EE70F2CE4C771AC153BAA81BA9072F2BB4BB32911CA904145437D534B6489D14D202E1C6EB3CB2E50549E775CFAC7900A8BA5357576BEAB87592892E0EAADAC71B95CB95C6EB9DBDBAE3269D8C0F126D24E193343DA4D98EBECBD230495AFBBDC5B18FEABE7F9C83AEDCAF4B8062124AF14951306B4FC24F4E83BAF47165B78F9F8BD7B8F48C7173BC9A402C37774F74DD2C748D2C84E798E85C37BAA5D38168291A6FCDB9EE54DAC65202E710F9CF3F8577F6FE9E4D6BE9322C87CEAAF548756B38FAA6D6BEAC92E710C1BBB61F40A4C85D30F32A0E58B71FC4A0647D53BC9A7B3211A661C249A448482FE452B36E5575B554F85C0E9667D9E773F9059316C569708A6C919064235EAE2BE7788D7D562D537739CE1DFE54CAB78E17269C7F1BA8C4E731C570CBE8C1B0F75561D871BF992EAEBF3C2D1875006004EA4F2BB5040069658DBD58E3318CA295B6D90BA3E584235D3D3948A6147AAF2BB1E9C6E8297B20A204D23B26114210822C818DD35128EE81948A394289426059240DF654490923B29B3E1A145309B2D3424134421BA691472954C26144A020690421141512342A6A242ACD52F1B2CD3C60B4ADAE0AA7B742AEC70EAA2D0AE45753091A0B496C8DD410BD3D44599726AA3B13A2E98E5EBDAEF7D389856232E175C2A1976B2F6919D3FC745F5AC27108ABE95B231C0822F6E8BE515D4D725ED6DCDB567E20B4785F187E1758C85EF269E4376B8FEF7EABF41FA7F9BED3F6F2783C9E0FCC7D76FD148159692A1B3C2D7B0820EAB45D7D87CD4B6364D21AA01D15433BA06C902A410309A894C221A90EFBA4108890520A0A42FCA06374D206C9A0904F84826A0904D20A4152C36A65453464D3BA1015126A928B7752503BA90504F844D2684814D5A1F0A40A4130800A6140A9281A92827B20927C285D4814D8982A6D3AAA415305514E2D87418A51BE9EA5A4B1DA820D8B5DC1078375F2CAAA59F08AF7D2D58D3E20E68B023870EC4F1C1ED65F5D6BBA6EB95E25C162C6288B346CECB98A42DBD8F43D41D8F62BC7E578F8F361ABF5DF8396F1DE9F3F8DFC1DD5ED72E744D969F2B676E5CD76EB725AE6E858EBF2343AEE1C0AD71BF6B10BF2DCDC578F2B2BEDE194CE6E345D17D541A530E5C1A49DB2ADCA67B2ACDD054F3A1582AD970BA0E0A895BA1BACFE5775E76AA3B70572A662F4B550820E8B935106BA852C75C6B9076B22379610D71B3568963B2A5CCBF1AAC4B716ECF69AAF538262E32369FCB68948B67BEAF5DF631B10F36A8E77EE19C7D57CE2966741336C4820DC387057ADC27128EA75AE99A246ECDB58382F5F1E72BE773717AD760F995A73CA4B201FF00DDECB918F78829F0F8CC14B6040E3F3583C47E24BB8C14676D0B80D0765E5A1A392A64F32626E4DF5DCADE594678F8ADFAA6592A314A82F909B1E6FF00D97628A85B1B1A000AEA6A56B1A05B45BD91580587A66A75118A1B7016B8DBC2236D95CD6F6466A397B215D95088EB14CE88082BCEF415D08BDF44220420A4969B3423848A29A6A37D53E1136682904B950A9851EA8BA113613E5245F54A1A2F7490A063416420215868C1BA0A485574134922A092124C20109A45508AADE159B949C344D7448CF20FECB05543A2E991BAA6565D2534F3B3C7AE8B8588D306E63A88DC6F71F29EBFBEABD6D541BAE554C22C5A45EEBBF1F26585F687D9A6CF04E3CE8A5FB055BBD40D9A7F7C745F448A40F607020AF895540E825618C9CECD633D7B7EFA2F79E0DF1036B20114AEB4ADD1D7E7FCF55FA8F0BCA9CD8FAFE63E4F93C370BB8F6C0DD4D50C7661A6CAC057BB4F269309FB6C921512098491B1B2268D31EE904D129A90500A636443526A804C7BA0B131B28A0282614944292B10052BA88530868D309202A8904249B764124C6CA3DF459E4A9B1708BD45BBDC282E9A7116E333C8B8012A77BCB4CB29688CEA1B6B7F355B99144F74CF0EF590729BDAFEC9889D2C9790BB2EB6D77E9A7B21A5F0543657BDAD6BBD36F55B472BAEA0DB34585C01C2903AAA9A490100DD350175209008554D30A2A4144309A8FF0064F402EFDBA7541637D5ADECAE63AECB0D1BB7BAC79CBC8BE8DE07EAAF88ACD8AF35E34C258F8DD58DF434E56CCE1F2DBE193FED3BF62578785EE6973246E5958E2D7B7F091A11FBFCD7D8678DB340F8A401CC7B4B4B4F20AF8DE22D34B893A371CC4668DCEFC4E8DC597FAB430FD4AF91FA9F07B61EF3F0FA1E17277EB5BD8FD2EA60DD62824BAD2C3A2FCFD7D35A9B944152E1415BB6553DB75790A042962ED8E48EE0AE7D4C1AECBB0E6DD67923B8534B2BCDD441BDC2E7CB1D8AF495105EFA2E64D4E780B363A4C9C931E616B5D572D14F38636376500DCBBB2ED53D1173B5D975E9E89A1A3449133D5FAF3D4D8506904B493D4DEE57463A6B0DB65D734D6E145D15B85D7172B7F0C0D8FB2B5AD5A3CBD3BA61BAADB155B59CAB5ADECA6D6DB80AD6B508A72A15F97B21456B41DD2D7942E0EC60A4508BABB021085102117422847084C22104CA394137407084930A6902108D021A08DB445D0A28298491754492DCDD24214CA453082880212429B53BA1241550EE91470845276CAA70EAAE2A0E43B659981C095CBAA846A42ED10B24F1660745AD8F35574E24616B86857143E6C3EB3ED11921ECFF00700F987E21F9FBAF57530DB60B915D4F985C68F1A82BD3E3F2E5C596E26784CE6ABDEF86B198F11A56904136D75FDE9D17A163AFAF55F14C2ABA4C22B1AF65C40F759CDDF21EDDBA2FAAE138832B2998F61BDC5F75FACE0E7C79B1F6C5F179F8AE193B6D374D50C768AE69BAF438692084908898D90A374D04AF7D14B9510755208184C15152051120A4A20A104C290501ECA5F44DA24A40A8A1049481511B147EF64448143DED6B6EF361D553513B29E32E76A40BE51F115918D92B2412B9D782C086FE13DBFAA6D74DB50D7BD8030E86F7D74D792AA748CA5688E301D29194E838EA979E081152EBDC6B6EFD41F7517CB1D17DDB5CD7D4385F5D2FDC9EE869659D0B1F3547A9EEF900D015AA195B2C61EDFA8BECB152C73CEC0FAB0D6BAFAB6DBFD380B7583459A0003816B209DD3506EBAA7CAA8B0153506A9A8009A49F0AA1847B2002740919037461DB42EFD3AA94893886EFEA7F1DBDD54357663AB8EE7F44C74B6A3FAFBA4D45D26372AE61FE6A90AC6F74AAD17F42F8FF008A5CD763F525B6B0AA9BFF006C57FEABEA789574545452D44EECB1C6D2E71F6D57C55B58FAF9CCCFB5DC5F2BBDDEEBFF0060DFE4BE77EA194C786CBF97AFC3C7796E36C2FBDB55BA2768B9719D56E84AFCCE51F59B9BB2B3854C66E15A365CF6A67BA89B70A4970820EE554E6DECAFB754881C2AACAF841BACEEA604ECBA21A9E550638A9C346CB431807D5581AA6D6A6843CBB855BE2EBBAD36D12CB75A89A8C2E8BA05111DB85B8B140B355A4D33062B1ACD5599148374D94457950A7950A2E88EC95D085C9D420237D5353612134910D17D124229F084BE89F09B02108E136942122926D124210AA98282922EA010108503414930A840A684228421054D268905082AA68709849305420512148A8AABB45C154E6ABFDD41F6B68A768E7D445705726A62B1D375DF91B70560A9877D16E5595E5711A7041786DF4B39BD42BFC318BBF0DAA104AFBC4E3763BA8FD7AADB511589365C2C42972DC824349B823E53D57D0F0BC9BC39777A73E6E29C98BEC34352D9A30587BFBADEC76DAAF9978431C735FF0064A92048D36B9E7FC745F42A79DAF635CD3BAFD4F1E739319962F8B9E170BA6F0EBA6AB6395975D1801489D9441520886A45451CA1A4B8520A0A41112526A8A97088927C2884D04C26A2D4CE9AEFD9544B859AAAA844E11C60BA57E8DE97E88A874AE21B0B4169D893F10E42A69218E85A18E90BDC7D6D0EE97FEFD4A8BA3823731AD9AB5F6905FD2D3BF4FCBF92D304924AFCF96D19DAE0580FDDD5258D716CF33FEE859E2E4F6D1533CB355CA61A72620D76AE2371BEA14AAB2AEADD106B28636BC67CAF009B8BDCE9DF5575351B58734967BBE5B8176ABA081B16A2E5E752493A13BD94E52431E5BF158D95936CDA66563742E1DF4BD94DA439B99A416BB6B1BAE5CA2C4B5A4E5074B7EFD8AD1873047668681E8F55801A836D90D370162A4144A6D55130A4144295D4D8904F4B6626CDE6EA0E7358DCCFE7668DCAA5EE323817FD00D87B226937CB9FD2DF4B3FAB900DAC05B455DEFCA9354AD489DD351E148154494669DB130BDE400D17BF4592BEBA0A181F3543C471B05CB89B5BEABE2FE37F1D4F8D49251618E74546059F25ED987E43FBAE7CBCB8F14F6C9D30E3CB3AE8FF00A83E2EFF00D5A738661EF2EA569FBD901D1C4703B2C587C663A7683F16E570302A304B5E41C83517DC9EA471ECBD332C000068BF35E5F9779EF5F1F5F8B8F1E3C7A5D1EBAAD90F0B244365B21165E1B5D5AE3578D42A23F657B42C56920503543535141160916EA14826AA2164EDD364CA0281594868108E15400A10808A1408D54D20A88E5D0A0036D54D24D88D90A56426D198261228BD8AE4EA92452BA14D0394C25CA15D0924124D40D21CA134022E90422505084D408109A450150D0848AAA0269729A0108470A6902101328A024517470A012D93B24556763BA68422809A484028B829048E89B452E0A991B7165A9C154E09B1C8AA86D75C9A88410411BF5D97A49A305A572AAA1B5F45D255793A985F0C8D745FEE37FDB279FE13F97B2F71E12C75B55035B23BD6DD0FEFAF55E7AAA16BDA5AE1A2E4365970FABFB4467D4D37940F987E2FD7E8BECFE9FE65C2FA657A79BC9E0F69B8FB5C32836B1D16B63AEBC8787B17655D3B1C1E365E96196E345FA1977DC7C7CA59755B90A0C75C296EAA1DD4868A03A2610580A6A213444D4AFD36500A410D263AA6A2A574347C6BFAACFF00F10F90DEEC1B1B1D3DEFCABC6A6C7659A57CF23CC518681D4F451163E46C4E7329D8D323B522FA0E79D52647E4C25F38323AF9CB6DB38F42A7140C8C876EF035715A0EA2C762AAB1C94F34F2913B9AD8B473728B16FEA56C8D8D863CA2E1AD1AF51C7E498D000068365194131B8017EDD51153EA0DD82F94BB6000CC47552A7A912C8E0C767603943EC40256231BBCC2636B9EE793EAE35E7B745AE99A4860CC1CD61B923627A044B12FB1B1AE25AE3A80DB3FD5940BDADFCCAD1146236F527525309A276970A4145AA4D04EDA5B5BF440C6FCFD12925119CADCA651BDFE16FBAAA4989F4C0728E5F7FECAB02C3419471FE7AA2C89824B89712E71DC937FFC296CA0DF752FEE9153014942F7417593E89E61B15C5F11F8828F03A27CF5B28691B346A5DD971BC67E36A3C0A331467CEAD70F4B1BC773D97C471CC56AB12ABFB4E26F7CD33CFA2206C07E817979FCAC38A7FAF47178F73EEFC763C49E22C43C5B54E8DD531505259DE5999F9580806C49E579EF09E1557251D3FF00EA2E25CD739FA1377926FAF1A71B6EBA587E18E9A46CB540176E1A7E51DBA2F4B4B4E183D22C17C4E7F332E4FAFA18716387C5B4B106B001C6960365B2369B8B28C6C5AA362F9F6BA4871B08F65AE36E9B28C4CD169636C162B6930582B5AA2D1A6CA602CAECDAA41453E54534774868535761A5C22C84DA809A3842202841F64903E1084204534708D9502146E84D1A6729210B8BA184D46FA23654306E8292140C212BA1369B308490A298424130A9414774C20A21210843712428A3954DA491491EEA6912084820AAD1FD5052E5350209A11C20116D1229A33A245FBA6845D04F85108528904924F844448517053292ABB677377BAC951182345BDC154F09079FAA840B82B915B4E5EDCCCD1EDDBF4FC97A9A98AE0E8B935109E02EB2EAED77D3CFE175AFC2AADA5A08A77BAC5B7F81DF87F4FAAFA7E0F5EC9E26B81D0EABE6F5F4C0B5C72DDA459CD56F86B157D0D48A5A876661D63770476EFD7FCAFD17E9DE6CCFF864F9DE5705FF00A8FAFC325F4BAD2D3A2E161D5624682083DD75A192E375F5F6F9D634829DD45A6EA489B3E148148681175536B0292AC1526EE824A60E8A0A41048260F748268240DD35152436904C6EA0A4110B231C492D6DD4C5AC00D82413444C26A3B252CAC85BEBBE63B301B13DEFC0465668185CF21AC1C917BFD3959E498CD6162D8F86DEE4FBAA1F23E67E690836D0002C00ECA41CAEDB916E847E49B540298D14131A2144159710AF828699F35548C8E360B973CD87F34E9677F1A9F2063497101A37BAF9A78DFC7E2373E87033E6546AD7CBB861EDDD79CF19F8E6A719749498639D0508D1D21F4970FC82F11135F5A0C3441CC8C9B3A4E5DEDD17CEF27CEC78FF008E3F5ECE1F1FF392724D2CD587D4EA8AC71BBA4273069F7EABAF84E13E51F3262E9253AB9C4AD385E18CA76801BAF24EE7DD76E186DA5B55F0B9796E77BAF749AE908600000B744C014991F40B5471E9DD79ED6A44638D6B8E3D138E3D02BDAD1C2CEDAD131B65701AA41AA6D0A2E8EC9B4F046A82902B2692E530A37BA90DD50D22842AA117BA6840210850228E53420384042110708421142117420C61348265727405205090551226E920211404D446E9A960684826804C5921A260DD401486C99482A94CA57EE91DD48220BA0A0A0AB14729A4840CA4D426A2829A5CA3DB6440374D0845091414901F54C24509F13668EE808281A1209A88144A92456840A810AD5173545657B413A8582AA0BDCD9751CD54C8CBB4AB2A6DE6A78AC4F45C3C4292FA6AC6DEED701AB1DFA2F5B5506F65CAA986E087016235BAEDC7C970CBDA2EB735577853197078A6A8D268F4B7EF8E8BE8147501ED6906E7FB2F8ED5452C52B1F17FBF1EACFE31CB4F70BD8F8671C155136E7D43437DD7EA7C2F2B1E6C7D7F2F93E4F0FADDC7D0E392EAD0B95493E6B6BA2E8C6FB8DD7BA3C8BD350074520554A98D949A5577521FD5116036520AA0A60A0B3DD3B8BE8AB054C2095D48288D94910D3E14534371309B45C81C9E3AA881704E8001A93A59669EA6E0B2025AC3BB8E85DEDD026917CF50223922B3A5EA750DF7EA563172E25C4B9C7724DCFD541A2C2C2F6FDFF35308B226365637FAAA82B1BB69B295A5813BDB755E70DD4AF1FE32F1AD2E0B13A08009AB48F4B01F87DD4CB2984DE5D2E33DAEA3B7E23F10D1E094865AB91B9ADE960172E3D17C4FC51E24ACC7E774B5523A1A2693E5C435FF00C95CDC5B12A8C42A5D558948F9AA1FF0C7D3E9C0FD952A1C3A4A9904D55BFCACE02F8DE5F9F72FE383E870F8F309BAA292924AD2DBB7CBA71B37AF73D57A6A0A3642D018DB00AEA5A40C680000BA314560BE4DCF6F4C9B462879B2D91B344E38D6A8A3D972B935A28A31C85AE36590C6595CC0B35AD063745600802C9B5454804C0D5209A819514D25400A98504C1504D0A20A60A06841292068E1083EE8042574C154084214020A122AA9A1084DA31A1216E135C9D00470984910241342284210A5020728428008BA108182826E922F7DB6543E1083B248CE8FF9A3940284509A48B281DD0524C2A04211CA0130914377453292652E5191742117D114C20A026810414D09A3447648A6522AA682130828BB41C154E0AF2AB705119268EE0AE4D5C362745DC78D34596A22CCD3ECB72AC796ACA70F690E16EE371DD71C49261F55F6960F87FDD68E7F882F5355059722B20CC6EDF8C71D7B2F4F8FCD97165B899E1339A7AEC0B15654C0D735C08E0DD7A9A59C39BAEEBE3585D63B0BAA686DFECAF3A03F21FC3FA7D57D1B09AF12B410EBDD7EAFC7E6C79B1F69F5F1B9B8BD327AD6381F75734AE753CF99AB6B0DC2F43CF56A903D956A60E88261482834A9051131C298558DD4DA8892935453BAB0A9A1C5B1B33CB70CFE64F60AA9276423501F21D99B7D4F6591F23E57E795D99DB761DBB2B535B5B3543A6B0F8631B347F73D4AAC28F29A3726920A41442614DE9560D145F2B62697B880072B26238853D0533E6AA9446C60B92E361F52BE43E2DF1955630648281E60A01F1487D25C3F20B97272E184DD6B0E2BC9F1DFF1A78F72B9F438210F94FA5D334DC34F65F2F9AA2596A1ED8899AADC6EF94EA187F32944C92ADC62A3BB62D9D2FCCEF6E817A0C2F0C8E9DA328D793D7DD7C3F27CCB9C7D1E2E2984D467C270A0CB4931324DCB8F2BD153C0D6F0A50416E16E8E35F32E5BAEF314638C017B2D513351DD4A28F50B5C71DAEB36B5A4638B45A58CB0431961A856868E162AC368B29B39D116520136A13420A804C256420692676491404CA4134344344EE95908877E8804A4845D260DD355F08BA1A58855DD3089A490A284134285D3BAA6CEE845D09A36C6374C142172B5D091F5475429B0D012E5050342122A83DD1F54D081728DB440DD3500848A681848A108802692068AA9A06C8BA0A89A1CA2E90520A84984148A81A1010514212091DD3624840D11757A4051CA10A006EA4A3CA921B228083AA76550210808B4B951214D2289A5442A5EDEAB4B954E08573AAA20E06CB8D550DB65E8E46DD73EB211BADC595E46BE9859C5CDCD1BC59EDE7DC771BAB3C3F8949475229677671BB1FC3875F7EABA15315895C4AEA600D87A5B7BB1E7E477FF00E7AF65F43C1F2BF6B3EFE39F3717BC7D3F0EADF31BA9BAEF53CA1C02F95F86F1676B0CE4B6761B16DF4FDFE4BDE61D579DA0837FAAFD4619CCF19947C5CF0B8DB2BD1B4DD4C7F458E197305A9A745B7358DD94DAAB054C6C88B029055858B14C52970C85AFAA77A9FA45133D4F79E802BA65D07BDB1B4B9C4340E56335A65FF6059BF8F7FE4B991FDA6BDC26AF1E5B77640DE077EA56F160000001C0557D76B19A5FA9D49E4FBF55269B955B4AB029A6BE24980924E90305CEC925AB12BAE2788BC43478252996A5E0388F4B1BA977B2E3F8BFC634F8446E8298B65AB70D1B7DBDD7C9314AF9EAEA9D5188C8E9AA1FF0B0F03A11C05E3F23CBC78A75F5DF8782E5777E37F88B1FABC76733564862A469F44235FE5D4AE6D2D3CB5F61AC74FF00807CD7EBD55B43874952F6CB53F46F45E9296943400D0BE0F37919725DE55F470C263358A9A2A2644C686B40B0D2CBAD0422C3452862B0D96C8A3D978ED6F45145B2D5147AA94712D4C6596371AD23146AF636DC26D6AB1A145002B1A1201359D068473B26AC20E101080AA9949308E5442BA132A28B0C689DEEA298401486E9A10D8421086C2109229A108407084210014828A9048810842BA4D32A11AF292E2E806E9A48281A5A5F4493E10053486C81B26C34920A4A049A453E502E13011B688400420257543099DD242047FA297097098D950813C84D082A69021209940209BA02477510F8420EC90D155D9A5C264DD1C2B431D91AF292140D09029944341365151255448B85B4DD4339E51CA11520FEC9875FA2859309B3695F5513B27C210AA5C151236E085ADC154F6A0E25641A1B2E354C376B9AE17046ABD54ECCC082B93574E413A2DCE9665A791AA8A58E56BE1BFDA22F840FF98DFC3FF50E17AAF0DE2EDA98DAE6B813A03EFCFEFDD72AB29C3C5B63C1E87AAE4991F41526AA30436FFF0010C1B7FD63B15F6BF4EF36E3FC32F8F2791C3EDDC7D8A86A7301AAEB44FB8B2F0182624248DA43BD275B82BD751548734597E85F2B29ABAAEC34E8A60FA56789E2D73B0D4AF35558F4D8BCF251F87240D8584B26C448CCD69E5B1DF473875D815631A7531AC7852CE6870C8DB598A91710E6B3631C190FCA3B1D4ACB85614E82A1D5D88CE6B31393E295C2CD67F0B1BC0FEFCAB709C3A9B0CA7315330DDC733E579BBE477573B93FD96F051A4EFF00CBB8520540152E54DE8ED6853E34546703758713C569F0EA77CB3C8D6B5A2E731B0577B59DFC74A79D90B0BDEECA073D17CD3C5DE38739CEA2C1C873CE86506E07B2E078A3C59558CBDD4F4AE7434837B9B661DFA0ECBCA479EA9EF8691AE0C3E974C7E6F6E817CCF27CE98EF1C3EBD7C3C17EE4B6499C66218E3355B8FA9E4DC34FE6574F0BC2C03E6C977BCF2569C2B0A8E9A26B434DF92772BB90416B582F83C9C973BDBDBAD4D4429E00D02C16F8A1ECA7145D96B8E2ECB85AD4884710D16B8E3160A5145D9686B566B5A0C6582B5ADD130DB052014500295930344D360098490D537B22484B942AB2040284D400299482152921342102109040C249842048299421B090DD3E10114213B5D44A069210880298514C2B10D09215199242170D3A0BF0927F549031EC9A4821341A126A69A0B8D11F54D0A0451CA68565012921254309A10A0108420108404DA6C2108406E8B211C2061092155329008429B408490AFD4D9DD081BA392A58045D08F7DD58A48B7740DD340B7D53F9508E1348411EE8476501A701342385422A2429848A0CEF6DC1596A61CCDD9741C15120DD6A23CE55C16BAE3D6424FA980671A6BB11D0AF5B550870D02E2D4C1671D0596A5F5EE372F4F3F87549C32AA368CDF6494D997DD87969FCBB5D7B8A3C6E9E9295D51553B2285ADBB9EE36B2F1D5D4C0B5E4B7346FD1EDFCC775CB9E4CEC8296A5AD7BA371969E637B3F8F6B8E79FE6BF45FA7F9D339E997D7CFF27837FCA3DD498AD4789FD0FF00328F06FF00E1FC32D48EAEB6AD6F6DCE975E9E81D143032281AC8E360B358D1600761C2F97E158BB98F0C95D678DEEBD750624D7341CE3F9AFAD8DDCDBC1EBA7B3649A6A755735DA6EB834F5AC207A96C655817F52D6E26ABAAD7043A568DCD82E4CB8846C692F7EC178EF12F8C990B5F1D23C3E4B7C5F2B5672CE63DE4B25CBA8F4BE23F13536150FA9C0CA7E163752E5F2AC6F19A9C5E4754564A63A669395A0DEDD9BD4F75CEAEA97CB309ABDF2492C9F0C7B39FEFD02D143874B57379D52411F2B06CD1DBA2F8BE579DEFBC71F8F770F04C7BACF4F4F2E221B66986981B860DCF72792BD3E1F42D898030580575252B58D01A005D3862B2F939676BD511822B0B2D9145A8538A35AE28D72D921431AD51C69B231C6EAF6B7459ADC84C6D82980A4D6E8A4D0A28013B238404D07C202022E0DEDC2077E11B24995361DF5414907DD554909238D9129A0241340CA4848A10C84BB26508A10904D10212E534D9A081A248444AF748A0211A0848A688131B764931B21A08490AECD320D53B2130B8B44852491486E994934D811DD0520887CA691D0277450914D21BA81206BA2650100374CA485409EE8E88EA80E1091D13BA212690DD34408E11C21004A49D909424D2422C34210896042109408421367D24C248443E10914D5D80238420EA14501081BD90AC01DD1A5D1C2025088502159C289419E46020AE7565382090BAE58A9919A15768F2753059C4D970711A56E4707B09809B9CBA39A7823BAF6F574B981202E2D553DAF76DD7499E58DF6C5BFB355E1AA9B2C60195C0B47C33B47A5DD9DD0AB20C5EA28EC5E1C5BC386A0FB15D1AFA49A9DCE929BEAC3CAE1495948C7915104B4D272623607E8345F5B83F50CE4D5EDE5CFC6993D0D3F8B5AD02EFF00E6B5FF00FBC8B9B6883DEFE0345D79115B875B5AC96FD0C6D27FA851762742D368FED150EE038D9BFC805EBFFEE597E3179FFF00A59FDBBD5B8D57D7BBCA05CD077630824FB9D9AB98246365F2E1B4D52DE40BB233D8F27B950A66D6E2166860A783F0305AEBD261985474EC01ADF75E1E6F2F3CEFF2AF461C730FF964C330A2D3E6541324A752495E8A9E9F28D8057410016D16E861165E1B93722A862DADB2D91C372AD8A1D16B8E3D162DDB4AA28ACB5451EAA6C8F45302DC2C01A3B2B5A126A68D4490847086C04D2426D0FDD1616D1201480B22C01084B9454923B269288613490AA9A1228288684243740D092103421228A06E82848F09A44909238E110D0904D14214504E8A2984EE903A04D50AE84D083284210B8A845EE84220E50842AD0BA3DD08441A70984210A0A484288613421024210AB468421129142108837D53421008421005084250210840210854A1084294084210848BA10894EE842114708BE8842010842D7E00842167F2009A10B7444EAA2E1A210B3054F8EEB1545235D7BA10B711CCA9C3C385AC0AE0625E1C8E7BDC01742131CAE3F17EBCECBE0EB3FD2E165BA83C32C848D05FDD085DEF265AFAC7A4DBBF4B87B63D800BA70D281D10859DEE6E97A6B8E0B70B5470210B9D46A6476015CD1A2108A9B47552B0E108412081BA10A350D01084409842101CA02108BF834B942156414C68842802531742155342108A10842254494DA6E108448692108D9A450840EC84211421084290DD0764214421B29F0842D04842151FFFD9, '1', '2023-05-24 14:45:40', '1', '2023-05-24 14:45:40', b'0'); +INSERT INTO `infra_file_content` VALUES (9, 4, '67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFDB004300090607080706090807080A0A090B0D160F0D0C0C0D1B14151016201D2222201D1F1F2428342C242631271F1F2D3D2D3135373A3A3A232B3F443F384334393A37FFDB0043010A0A0A0D0C0D1A0F0F1A37251F253737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737FFC00011080320032003012200021101031101FFC4001C0000020203010100000000000000000000000201030405060708FFC4005310000201020302070A0B0309080301010100010203110405310621071236417374B1131432343551617172C115223353545681919394B292A1D1162324253742434452265562638283A2E164C2F04627F1FFC4001A010003010101010000000000000000000000020301040506FFC4003411010100010203070303030403010100000001020311043132121421334151710513342261812352A1154291C15362F0B1D1FFDA000C03010002110311003F00F710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080345B57B4D97ECC65D2C6661537BF8B4A947C2A92F324125B768376DF1388A385A32AD88AB0A74E2BE34E6EC97DA79E67FC2E65784AD2C2E4986AB9A6256BDCD5A11F5B3CC36CB69B37DA1ACEAE7188961305AD3C0D27676FF008BD26A70FDF4E8A8E1E11C1E1F5568EF97A4EDD1E17B57F52596A6CEE71BB71B5D984AD3C7E0F29A6F7A8528F1E46AEAE3F1D5A4DE336A335A8FFE4CB888D153C1C1A6E6EA556F5E3C9DBEE32E961E10DF0C3515FF004DCF470E1719E885CEB61DF10FAC39F7E6C3BE69FD61CFBF32CA20E6924A951B7463A9D45FE0D0FC3457BB63EC5EDE47EF98FD61CFBF34C3BE61F58B3DFCCB17BA54F99A1F8689E3CFE630FF008683BBE3EC3B791BBE21F58B3DFCD077CD3FAC39EFE6590A73FA3E1FF0912A73FA361DFF00DA41DDA7F6B66790EF98FD62CF7F341DF31FAC59EFE698CA73FA2E19FF00DB4329BE7C1E19FF00DB41DDA7F68EDE4AFBE63F58B3DFCD077CC3EB0E7BF9965D19F9F03857FF006C78CE1FEEEC2BFF00A10776FF00D476B36377CC3EB0E7BF9961DF31FAC39EFE68CD84A8F3E55857FF00417D39617FBD92E11FFD28CEEDFF00A0DF52F28D5F7CC7EB0E7BF9A0EF98FD61CF7F346EA13CB52F8DB3F857EA5619D5CA17FF00CF6185FB17FF001DFF0006DB57DBFCC693BEA3F5873DFCD077D47EB0E7BF9A36F2AD9425BB6770EBED29956CB7FBB90E1904E1EFFE3BFE0BBEA4F4FF0031AEEFA8FD61CF7F321DF51FAC39EFE659972AB83E6C9B0CBEC2B7570BFEE9C32FFA4DEEFF00FA33B79FFF00551DF51FAC39EFE643BEA3F5873DFCC96F75C3F3657855FF0048AEAD1FF76617F64DEEF3FB476F32F7D457FF00D0E7BF990EFA8FD61CF7F34C9EED47FDDB85FD80EEF4BFDDD84FD941DDE7F68EDE68EFB5F5873CFCC82C4FC572FE50E78A31F0A4F13648A71398D1A0953865585AB5E69BA74A30DEFD2FCC979D9C8E639829D77DDDD3C4CE2F751A7BA8537EFEC39F56E969738A6133C9D34B35C46224E1956699F62DADCEA3C4B8D35F69652C766D16D62768BBDA4B9BBEAA5497EE95BF71C5D6CCAAD65FD331951C775A8D0564979BD052B1B8785F8982553D35E6E4FEE3872E267A45661FBBBCF85E70F96DABCCA5E9A53925FBEE32CE70EF5DA6CE9BF457B1C0C334A90F93C2E122B9BF9B4C7F86713F3184FC213BD65ED1BF6E7BBBBF8630DF5973CFCC07C3186FACD9DFE60E0FE19C4FCC613F089F86715F3184FC20EF397B41F6E7BBBAF8630BF5973BFCC07C3185FACB9DFE60E17E19C4FCC613F088F86713F3184FC20EF397B41F6E7BBBBF85F0DF5973CFCC07C2F85FACD9E7E60E17E19C4FCC613F083E19C4FCC613F083BCE5ED07DB9EEEEBE17C2FD66CF3F301F0B619E9B4B9E7E619C2FC3389F98C27E1095335A95525570D8592F44120EF397B41F6E7BBBEF8570DF5973CFCC87C2B86FACB9E7E64F3D78D8BFF002787DFFF000877EABF8A61EFADF8BFBC3BCE5ED1BF6E7BBD07E15C37D65CF3F301F0AE1BEB2E79F983CFBBF57D130FA5BC10EFD57BF7A61EFEC8779CBDA0FB73DDE83F0AE17EB2E79F980F8570DF59B3CFCC1E7DDFAB77F44C3EEFF843BF236F13C3F9BC161DE72F683EDCF77A0FC2B85FACD9EFE603E15C37D66CF3F3079F77EEFBF7A61EF7BF83CFE7256363F44C3F9B40EF397B41F6E7BBD03E14C37D66CF7F30C8F8570BF59B3CFCC33CFF00BF23F44C3FDC1DFAAF7EF5C3F9F40EF397B41D89EEF40F8530BF5973DFCC87C2985FACB9EFE60F3F58C56F14A1A5B4E60EFD5F45A1E7D0CEF397B467DB9EEF40F8530BF59B3CFCC87C2985FACB9EFE60F3FEFD57F15A1E7D03BED7D1285AD6D19BDE72F68DFB73DDE83F0A617EB367BF9923E14C2FD65CF7F30700B1ABE8B42FADEC3D2CCA746FDCF0B8657D6F1B99DE72F683B13DDDE7C2785FACB9EFE6182CCF0BF5973DFCC3386F866BFD1B0BF8647C335BE8D84FC246F79CBDA0EC4F7773F09E17EB367BF9961F09E17EB367DF99670FF0C56FA2E13F0C3E18ADF45C27E199DE6FB41F6FF7771F09E17EB367DF9964FC2784FACD9F7E619C37C315BE8B84FC30F862B7D1709F861DE72F683B0EE7E13C27D66CFBF30C3E13C27D66CFBF30CE1BE18ADF45C27E187C2F5BE8984FC30EF397B41D89EEEE166D0834E86D4E75192E79D6BA36383DB0DA0C238CB07B534314B9A962A9A4DFDA79ABCD672F0F07846BD8B0AF1B869BBCF031A6FCF426D30EF1BF3C60EC7EEF72CAF85CAF8594696D2E552A506EDDF586971E1EB67A3E479FE599EE196232BC553AF0B5DA8BDEBD68F92A8661528789E2EA25BEF4AB2BA6BCDE936192E715F038F8E272DC4BCBB169AD1FF3537E9F35CCDB0CF97856F8C7D740703B03C20433DA8B2BCDE9AC266F18DD41B5C5AEBFD507CE77C472C6E376AD97700006340000000000000000000000000000000000000000000000000000000000000000000000060E699861B2BC057C76327C4A1420E7393E647816D2E775F31C655CFB345C5AD38DF09425BD61693D1DBFD72FDD73D07854CC635F1185C9DB7DED4E3DF78C4BFBD14ED08FDAEE799D1C1CB683696183AEFF0098A0BBBE31AD1BFF004FB8F4784D1DB1EDDF543532F1D98B9765DC5C32CE735871A755B785C3CEEEFF00F14BD064429CEB4DCEA3BC9EF66766D5FBF732A8D2B52A7F129C56E4920A34EC8F634F4E63367365494F0E92D0B61492E62C4AC49526E5E2225410C89400AA089505E6189468DCAA9AF312A0B78CB4191A0AA0878C17989434468C1182F30F182B84478EA3C66E78538F98BA34A367B85A6B52F5A19693756E92F315CE9AF31905534128DD892822B94117CCA99A7DD4B8215C11732B62D6ABE2215C0B086C46AB7057D0A711274E3154A9F74AD51F129535FDE93F773BF41926063716B0582C5662FC349D0C3F9D6BC697B97AC8EBEA7DBC2D3618F6AECE7F3DC53A73A996E02A774AF25C6C6E293B71BCF14F9A0BD1AEF39493576A0FE2ADC9E97F49BACE693CB7034B0B37FD33191EED887CF18FF763EFFB4D765D81AB8EAEA9D3DC92BCE4F48AF39F379659EB67E0F470C2F86318D4E9CEA4D429425293E68AB9B5C36CF62EA2BD69428AD6D2777F71BFC1E16860A9A861A367FDEA8FC297FF00BCC5E8F4B47E9D8C9BEA5DEBD0D3E131DBF5B4D4F66E825FCEE26A37FF000C5243AD9CC1FCE557F6A36FBC0E99C268CFF6ABF634E7A351FC9DC17CE55FBD7F027F93982FF5D5FBCDB2D0946F76D1FED8CFB3A7ECD47F26F05F3B5BEF41FC9CC173D5ABF7A36E06775D1FED2DD1C3D9A8FE4E60BE72B7DE88FE4E60FE72AFDE8DC019DDB47FB4B74F0F669FF93983F9DABF7AFE01FC9DC1FCED5FBD7F036E419DDB47FB49F6F0F669FF0093B83F9CADF791FC9EC27CED6FDC6E1906776D2FED2DC31F669FF93F85B7CAD65F718988C82AC13786AAAA2FF4CB736744C46265C2E959C89708E2A719426E138B8C93DE9EE6853A9CD32F8E3693941255E0AF197FA97999CB35C56D35669D9A7CC797AFA174AEDE8859B263194A4A31576F4F31754C3AA508CE7DD38B2D26A3B9FA84A0AF39453B4A51B45BF3F98D861161EA61651C6D4AF3AF05C5A34127BBFF00473DBB12DB1AD9C5C1A4ECD3574D68FD2297E2D2A6E14AE9B846D26B44CA61194E718415E4DA492E7364DCC9A54E7566A9D28B94DE915BD9B6C2E43296FC45654FCF182BB46C32FC1C30749C56FAB2F0E7EE5E83329ADE7ADC3F058C9BEA78D65F06153D9BC1CB5AD58BE3B2D816B7D6AFF7A363491930E73AFBAE8FF6B9F2CEFBB50B64F00EFF00CFD7FBD7F01E3B2197BFF1F11F7AFE06EA259137BB68FF006C432D5CFDDA38EC765CFF00CC623EF5FC078EC5E5AFFC7C47DEBF81BF896445BC368FF6B9B3E235672C9CFC76272D7AE2313F7AFE03C761F2B7FE6313F7AFE0743045B05A89787D2FED73DE2F5BFBAB9C5B0B95BFF3388FBD7F0256C2654FFCC627EF5FC0E962878A27F634BD8BDEF5FF00BAB985B05957D2713F7AFE04FF0020B2AE6C562BF77F03A8486467D8D3FED677CD7FEEAE3ABF07D8692FE8D98D48CBCD529DD7B8D4E3F61737C3294B0CA9E2E1157BD297C6FB8F4727CDE74265C2E9DF4D8F87D435F1E777F978955A33A151D2AD09539A7BE334D3425ECBCEB9EE7B167193E0B39A0E9E3616AB6F89888AF8F07EF5E83CBB3BCA31393636785C524DF8519C7C19AF3A3875B432D3F1F47ADC371786BCDB956DB67332EE92A580C656952945A9E07189FC6C3CF9B7F3C5E8D1F44EC0ED2CF3ECB6A50C7AEE79AE0A5DCB154FCEF9A4BD0F53E5ECB20F111A9421F2F4D3A947D3E78FDA7A86C0E7AF0F8DCBB37527B9C7058D57F0A949A5093F65D8DC7FAB85C6F39C9D17F4D7BEA0153BABA77431CE700000000000000000000000000000000000000000000000000000000000000000000061E695DE1B2CC66223B9D2A339AFB22D8078AE7D99431F9AE698BE3DD54C534E3ADA95256B7DAEE61EC65374767332CDAAAB55C6566949EAE31BFBCD6579BA791622BD9A94B0EE577BAEE726EE7410A3DE7B0396D2D252A3C797FD4CF7F4F093B18B8B2AD1616375C67BDC9B6DFDA66C16E31F0CBE22F523251DD12A09202528C22E7392518ABC9BD10DE8532167568D357AB5A9D34BFD5248C4C6E6786C0C62F14AA54AB35C6A785A5BA6D79E4F991AB8E1B36DA3C4F75C1E4F42565C55DCE9F19457ADDD5CE2D6E374F4BC39D570D2CB2F16F218EC14DDA18CA127E8919116A4BE2C935E74EE69E7B1BB4F868774596C256DFC554E0DAFB12312966F88C05774335C038B56529D14E1382F3F15EABEC25A7F52D3CAED9781F2E1F293C1D22D06460E1330A355D35DD632855F92AAB729BFF4BF34BD06725E73D1C33C739BC73D9B19219682A1A25230F12C86A568B23A8C5ABE99725A955245D1D0CB496A2C5532E2998412B1E654CB6654C6A72083B104A62F68B718562B55D7A8A951A9539A29B30F1787863B35CA72A52E350A5153ABCF76BE34BF7AB176609CA9429A57752AC2165BEF764E54FF00ACF36C55B7D1C34DABEAAED1E57D4B3DB0D9D3C3CF1DDE7FB498A963B3DC657D53A8E30B732E63A0CAB08B07828536AD52569CDF3B7E6FB0E6F2AA5DF59BD352DEA555C9FA933AF6EEDB7ABDE4BE9BA53C73AF6783C39E60D9E4D9577F4E9D5C44A54F0739D4A7C68784E518F1B77A3CE6B2C6E327CE61839509632152A47074EA47094A8A4A2E53BDDCDFDA7A3A9DADBF4BB33DF6F05784C9311531EF09896E0DD055635A95A51F8D7E2B7A6E76B6EE732F37D9A9E5B4E13A8ABA6E54D773924B8B16971A4DF36FBA5BB98C1C0E6D530D4E8777A10C4D4C25370C1393B46936EF795BC2B7327CE6666BB493CC9A75E83AF3A7C4950AD5A5BE135E1292D2506EEECD6EB91CBEF76BF64AF6F76D311B1B81C2CF1D1AF8DC546961A3093A96BB826B7C9F9DDF724BCFA9A9CBF25A18AA586A957BF2952AD5B88B11249526AEF9B5BB5CC6D717B6D394AB56C3D19D4AF55A94556DD0A324BC2FF8BD09EE3032BDA3A185C3C2863B2E8E2234F8D38D452B49D66DBE3DB99EFF00DC89E3F7E4BB927DCDBC5819E658B2BC6AA54EBC2BD0ABC79519ADCF8AA56B3F49AE3639C63E9E3EA617B846A2861E8BA7C7AAEF2A926EEE4EDA6F35E7461DAECCDCD37DBC51CC1A010316820920C254588DC4B0F4984A5B0AD0C2984A5D37F39A4CF32E7272C5D08DD3DF522B55E9379622F67BB7323ABA53531ECD4F2F1713AE85AB115946CAA34AD6F49D1E2B2AC2E25B9715D29BE7868FD363116414EFE333B7B3BCF332E0B525F0F14F6AD15EDAEBF7B6CDEE4D97BA0FBE6BAB4DAF8917CDE932F0B9661B0AD4E317527CD29EFB7A4CB5BFD2CEAE1F84EC5ED67CD888A2DA6B7889175347A38C4F3ABE922F8955345D0433972AB608B61CE5505A97439C1CF9D590D0B225705A16C45AE4CE9E1B91B7A594555956231F886E9C63053A30D5CEF26B7F9AD63172CAF84C371EA62B0D3AF59493A36768C2CEF768DBE3F68218CC16230FDEB284AAC52E3B95D45F19CBDF639B532CF7DB184C661B5B9560E4F81863EBCA9D4AFDCD249F162AF3A8FCD15BBEF6CDCCB21C0B8CD46588A6E3BDCD4D54E2FA5ADDBBCF66CE6E0DC5A945B8C968D3699B2C666D571385A7452E24EDFCE351495F9B896F055B55CE4F3C73B978566196131F18C37464B10E84270A92E3A84650778C9DEC9AF41D3E0F645E22829A9B4B4E34E56E33F3A567B8E5A0DC1A707C5945A71B733B9D1E136AEB50A2A0A3523E74ACD5FD17E6F40BAB35369D81A17477BF719DFC8A7F3B1FC4FF00D1A3CE729797492BC96FE2CA327769F334FCCF79B4FE5957FF009BFB30FE069F36CD2A66534E51695F8CDC9DDC9FB92F32134E6B76BF572535AF0FD9FD1CDAF46AB6A72886719454A6A2BBE70F175284B9FCEE3EA6BF79B51A12E2C94B549A7EB5E62D963329657269E770CA658F38F17CB2BCB0B9961AAADCE3515EFEBDE7719552861732CCF2D9BE2D0C441F72B69F193945FD8EC729B5983F83F68715462AD1553BA46DCC9EF3ACA9F1735CBB15AAAD8587DAE3248F2F4F7C3567CBEA2599E9F6A7ABDF76373079A6CC65D8C95B8D3A294ADE75B9F61BC385E08AA37B3D8BC34AE9E1F1D52093E65B9AED3BA13527673B0F8DDE000011A00000000000000000000000000000000000000000000000000000000000020D3ED7D4EE5B2D9BCD73612A2FBE2D1B8345B75BB63F38EAB3EC371EA8CBC9E1FB491E26CE492D161682FB379D2674ADB2B804B4586A7D88E776A793D53AB50EC3A3CEF92F81EAD4FB11F458F5E3F0E1CB939DC3AF8A8BD14D0D17A8B91D513A95BDAB6F668F37CC9C6BCE1492953C3C94631E6AB59FBA3B99BB94A518CA505795BE2AF3BE6393C5D0950C74B0CA57961E3F6F749BBBEDB1C7C76B5D3D3F0F5574719965E2EB36076429E70F139BE7755BC05293756A4E5675E4B5DFCD046CF33DBFC44DBC16C96128E1B054BE2C6BB86F6BD0B997ADDCB76EE6F29D92C9B20C2274E15E09D669D9B4B7B5F6BB1C7D2A909D4A584556387C3FF7EA5B53C1C676EF8BB646CA3B65B4F4AA373CD14DDF7C274AEBD5A9BFC066F95EDA416559FE129E1F3192BD1AD4DDB8CFCF17E7F43385CCE545627B9E0AA54A946DACD6AFCE8A29D49A5C6849C6AD27C784D6E71927A8B9E3D9BB1E65B1B37CBABECE66788C063539516D3A9C5BA538DF7558F99AED3A2CAB133AF41D3AF252AF4AC9CD6938F34BED361C21A8E67B2B92E7B285AAC9AA737E7525BEFF006EF39AD98ABFD1E9719DDD19BA126B9D3DEBB0F4BE99AF7B7D8AE6E2B09CE3A3432156E76E7191EF4701D16C352B8EA594F51E52D64535A96AD0AA9972D0CA9DA86CA665CD6E29A8188958D2E72B6592E72B66D522B62B198AC4A628AC614C6A283BE679747CF884CAB2ADF87DA3A8FC2704AFE8B9650F2C657D60AF29F11DA3F62278BF52BE31D9C3B82D975C6CC6AC9FF76126BEF3A639BD955FD3711D1BED3A4B1D1C04FE8CFE5EE70BE5A094812E624EC740DF60401630A11204985A820903094A0C920C254000012A0824866129486890B01295A15A188153A8B0B618830B500905864B51A425A22B42FA48AE08BE9ADC3A19D5B045B05A15C1685D05A839B2A787396C16A57045B05A839F3AB22B7A2D822B87396416A2B973AB20B52E8A2B822C8A12A14E8742C50C84A40912080560002400417DC412D8079D70974B8B9D52AABFC5A09BFBD9B7AAFE2ECFCF9DD192FDE6BB84E77C7607A0F7B36357E43677A39F69E56B4DB5BF97D270977E1F1F87AEF0653FE9DB43479A38984BEF8FFE8EF0F3DE0C7CB7B4CBFE751FD2CF42175FCCABE1D31200044E0000000000000000000000000000000000000000000000000000000000000341B75C8FCE3AACFB0DF9A0DBAE47E71D567D86E3D519793C4B6A793D53AB50EC3A3CEF92D81EAF4FB11CE6D4F27AA756A1D87499DF25B03D5E9F61F438F5E3F0E1CB939DA1E0A2E45387F03EC2E475C4E9A3F2B4BDB8F69CBE6B270CFB369A5771C42925E7B1D3C3E5697B71ED398CD1DB3FCDBA63CDFA9F978FCAFC3F55775C24278BCAB22CDA95A54389C5A925BD2725B8E06AABD451A8ECAF6B9D9EC2E7780C5E59576573E94561EADD61AA4DD959BF06FCCD3DE9FA0D6E7BB219BE4F5269E1EA637069BE2622946EEDFF0012F3FA4F0E5F17759E1BC5784C3E5584C1777C4E22356AD9B8422DB7EAF51A89D2951C2D4C4564E2EACBE2439EDA191838558CE2A865989AD55EE51EE4D9DA6CF6CA55A3596D0ED9D4A785C3619774A786A8F72F3397AB9A28B6AEAE1D89E039B1B6EE32CB783FC8B2CAD68E2273849C39EC95DFDC725B28AF4B1FE655E0EDE9DE3ED9ED1CF69B3B96312947094A3DCF0B096E6A37DF27E97A89B25F258FE9A253E9D2CD6C77475EEF85751CEFD63215EAFD6323EA1E61E25D02A896D31895914CB522B8162D19953A25A144CBE5A144C20C58D2E72B65932B632B15B146623129D020C298D2E1FCB1967581329F11DA3F6223E1FCB1967581328F11DA3F622789F52E71D9C3B85D94F1DAFD1BED3A339BD94F1EC4746FB4E94E9E03C89FCBDCE17CB81200B01D8B8241684D852D16000025162090B185A502483095162062009516158C434612D2D88188025A52066282750C8240CD89504A4090F043489E54D4D17C1094D16C16A339F2A7816C16A24516416A639F2AB20B52C82D44822D82D4C73E74F05A16C1685705A96C16A2D736556416A590E7120B52C82D44A8D321D682A190A5000063005C08E6006BEE22F64410D80705C26F8F60BA0F7B3655BE4367BA39F69ACE131FF4EC1741EF66CEAFC86CEF473ED3CAD6F39F47C1FE3E2F57E0C7CB7B4FD351FD2CF423CFB831F2DED3F4D47F4B3D044D7F32BA30E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD0EDD724337EAB3EC371EA8CBC9E23B53C9EA9D5A8761D2677C96C0F57A7D8737B53C9EA9D5A8761D1E77C95C0F57A7D87D0E3D78FC3832FFB73D43C05EA2D2AA1E0AF522D3AE129A1F2B4FA48F69CB66AFF00AFF36E98EA61F294BA48F69CAE6EFF00AFF35E98F37EA7D13E57E1FAAB1A694A2D495D3D533A2C976E73EC9E11A54F110C5508C6D1862536D2F327A9CE36436788ED976772F856CE945F72C060E336BC26DB47299DE7D9A67B554F36C64AB462EF0A295A9C1FA169F69AE6C86CC98C9E306F686FD37373B22FF98C7F4D0F79A4B9BBD91F90C7F4D0F79DBC079F11D6E8AEA7FBCFD6347515EAFD63C4FA47994F12EA6528BA921E12D644342DE6129ADCCB12DC2D46D2CB431EA33224B718F556F371362C799532C97395CB436AB08C463B2B129E16E28C29862E1FCB195F5842E53E23B47EC446C3F9632BEB085CA3C4768FD889E2FD4B9C7670EE17653C7711D1BED3A4B1CDECA78F623A37DA74874703E4C7B7C379701204D8EC5C2400912616D0048184A8209030A8B10483025280580094A162590042D88188313A564343738A04A524012D4D25096A59042C516C10C8E54F045B15CE2416E2C8A073654F045B05A8905A96A408654D05A96C16A2456E2C82D4573E7564116416A2416F2D82D45AE6C8E9164509145911292991242245280B810600D85C86C8B9A05C8E60B8AD9AD709C253BE3B05D0FBD9B4ABF21B3BD14FB4D57092EF8DC1F43EF66D6AFC86CEF473ED3C9D7F3EBE8B83FC7C5EAFC18F97369FA5A3FA59E8479EF063E5BDA7E9A8FE967A113D7F32AF874C480011380000000000000000000000000000000000000000000000000000000000000D0EDD724337EAB3EC37C6876EB9219BF559F60D8F5465E4F11DA9E4F54EAD43B0E8F3BE4AE07ABD3EC39CDA9E4F54EAD43B0E933BE4A607AB53EC3E831EBC7E1C197FDB9DA3E0AF51694D0F017A8B8EB84A687CAD2F6E3DA7299C3FEBFCD7A63AA87CAD3F6E3DA7299D3B6D066BD31E6FD4FA27CAFC3F362DC56CBB0786AF8DC553C2E161C7AD51DA2B44BD2FD05B88C3D1C26227876FBE2B41B8CB8AF726788EC615FD245CCBE2FF00AB0D16BCC9D994CE8C669BA2DA92DF2A6F54014366F363FC5F1FD343DE686E6F763BC5B1FD3C7DE76701E7C4B5BA2BACFEF3F58F142B5BDFAC78739F48F2CF05A97524531322923774F26453459CC2D35A96730BBA16AA92DCCC6AA8CB9ADC62D45A8D29B1AC69954B42D973954B405E2B6232C656CC3C28AC6158A6461FCB39675842653E23B47EC447C3F9672CEB084CA3C4768FD889E37D4B9C76F0EE13657C7711D1BED3A539BD94F1DC4746FB4E94E8E07C88F6F86F2E0250128EC5812B405A1261504800A5A80682C1602541031160254588242C04A515A1AC458094A40C28274A4121602541296F0252DE344B2A982D4BA0B52B8ADECB20B72351CAAC825BCB20B51122C8231CF95590E72C8A120B52C82DC0E7CAAC82D4B20B5122B732C8A12B9B2A7822D82D4482D4B222D46D3C475AB1223210864C9B9006312436430DE000ADD89B8AD9B1A1B15BB12D95C98D235C3708EEF8EC1F43EF66DEAFC86CEF453ED34FC226FC6E13A1F7B37157E43677A29F69E3F11E7D7D0F09F8F8BD5F831F2DED3F4D47F4B3D08F3EE0C7CB7B4FD351FD2CF4127AFE655F0E989000227000000000000000000000000000000000000000000000000000000000000106876EB91F9C7559F61BF38FE13737C3E5BB2F8AA35D49CF174E74A9F16DB9D9BBBBFA86C25B94919793C8F6A393D57AB50EC3A4CF392981EAF4FB0E736A55B67EAAF361E823A3CF392981EAF4FB0FA0C7AF1F87065CBF973987F07EC2E45143C15EA2F475929A1F2B4FA48F69C9676EDB439AF4A75B0F95A7D247B4E433DE51669D29E67D4BCB9F2E8E1FAAADC2626584C04E3876E388C4BE2B9AD547CC5D85871654B0782A6AA626A6E7393DCBFF00DE730D3BAC3B5A38B4BD650E553BAA54E4E335B934ECCF230B25F175B2B34A53C1625D0A93A739A576E9B6D265309F758B9276AB0DE9F9FD06DB01B3D3AB8678CC65454A1157971B726BCF7F39AAC253DF5ABD9AA6A4D46FCE3EA69D9FAB6DA56D8C6C5A5C78D48EE5515FD4CDD6C6F8AE3BA681A5C53B51A3CCF55EA373B1BBF0D8EE9A1EF2DC079F3F9475FA2BACFEF3F596444E77EB1E27D1C795564398C9A4B798F05BCC9A48D4B2AC9A6B732CB6E169ADCCB2DB84DDCD6A99ADC6254E733266256E71A2983165CE5522D97395B35D115CCAD8EC4629E145633D0430C8C33FEB8CB3AC21729F11DA3F622361FCB3967581729F11DA3F62278DF52E71DDC3B85D93F1FC4746FB4E9568735B27E3F88E8E5DA74C8E9E07C98F6787F2C2252D484865A1D6B6E010224C2826C00918CA2C40C4184A8206B10D1A5A815A1AC4189D2B42D8765739C216E334AFE77BD9A4B40AC8756296FE34579E51697EF253BA4D3BAD6EB404EA08188353B50324090D1432591A28B12E62B8B49A4DA4DF9DDAE5B1408647822C82120B52D82073E54F145B045716AE95D5DE8AFBCB60B516B9F3A782D4B10912C88AE6C8F12C4244B222D2534464F5139864C521AE1722E49807A456C1B21B3426E2C9DBD617B7ACADB3646C4B656D92DEE124C690D2388E10DDF1B84F452F7B37557E43677A29F69A4E103C7B09D17BD9BBABF21B3BD14FB4F1789FC8BF2FA0E17C8C5EAFC18F96B69FA6A3FA59E86796F07F9B61F07B5D9D602AA9775C655A6E935BD7C58BBA7E63D489F112CD4BBADA7D2000089C0000000000000000000000000000000000000000000000000000000000004739E71C37AFF6696E4F7BD4F47E73CE386EE4D2F5B2FC3F9B099F4BCF36AFC8157ABD0EC3A4CF392781EAF4FB0E6F6AFC8157ABD0EC3A4CF392581EAF4FB0F6E75E2E2CF97F2E6A8780BD45CB429A1E0AFB0B9687590D4FE5697B71ED390CF9FF00B439A74A75F4FE5697B71ED38FCFDFFB459A74A799F52F2E7CBA386EAAAB0F35383A2E5695F8D06C7A908D67BDF73A9CE9EEBBF3A309B2D58A95B8B522AA45697D51E2BADB2A3183828E33135254D6FE2F19B563270CA8E6B8B861BBA430981A69B94DBB2B2E6F5B349DF1496FEE177E9774535ABCEB2E2CACA1FE95B90F7532B366AECCF134F138CA93A0AD423F169F35D2E7373B17BF0B8DE9A1EF39A6CE9362BC571BD3C0E9E03CF9FCA3AFD15D77F79FACB2227F79FACB23A9F44F26AC823268A31E9EA8CAA0811CD954D6E1EDB85A6B731DE8239AD53516E30EAF399B516E30AA8D2A9A758B2E72B65B32A66BA7154C463B1198A4231497A8A61A0C3F9672CEB02E53E23B47EC449C3F9672BEB04651E23B47EC44F1FEA3E8EEE1B9385D93F1FC4746FB4E991CCEC9F8F623A37DA74C8E8E0BC98F6387F2C0CB4150C75AA944908930242C1624C254582C4D82C05A50B0CD11602D2903342D8094D85C356C662E8E130B0E3E22BCD53A71E6BF9FD48ECB1789C9362A7DE182C0D3CD73A51BE23135EDC4A6DF35BB12DFE935BC1CBA2B6CF03DDAD7E25450BFFAACAC6973B5516799A2AF7EEAB17538F7D6FC664339F7353B17949BFCA36BA25C2263E6D47199365988A0F74E9A859B5E86DBEC29CFF25CB31F923DA5D968CA9E1A12E2E37052D68BE776E6B6BEADE72A763C1E719651B592A9BB09DE8F8F7D38FC57EEB19A9863A53B78787FD92B8CBDD5D69CC02D1BF738DF5B1D364DB3185CC36571B9D56CCE387AF41CB8B45DAD1E2F3496B77E83A33CF1C26F53AE6EF64F57BAF65A9D5E51B2F964F2EC3E679F67F470742B2728D0A6FE3DB7EE6F7EFF00B0E529BBC537169DAF67AA1A30871B8FC58F19F3DB79B9E3965369764AD7A2E5382D8DC76579CD3C9B0756BD5C261A53789C42776ECED67FFA380A2EF4E37776D2DE75DC1E793F6A7A93FD2CE4A82FE6E1EC91D0971CF29BEFC93D4BE12AD82D4B62A6DC614E2E5526F8B08ADEDB6F70905A9D66C3E0A861A962769B3256C260535878BFEFD4F3AF568BD7E829ABA9D8C7B4E6DBB596C6DA1C0E0B20C930995771A75336C44555C4567BDD35CF6EC5F79CEC37166371B5F32C6D7C762DDEB5793935CD15CD1FB16E2B88BA78DC71FD57C5CFAD94CB2F0E4B2258B42B88F11DCD5644B22244646266430A82E2B0D70B8B740D801721B21B21B35A1B16E1715B34224EC5727B899311B1A1E38BDBEF1CC2F45EF66F2AFC86CEF453ED345B7AEF8BC2F45EF66F6AFC86CEF453ED3C4E27F22FCBDEE1BC8C5D7EC72FFF00D3F1BBBFBF4FF4B3DA8F15D8DFED3B1BEDD3FD2CF6A0E33AE29A5D29000391500000000000000000000000000000000000000000000000000000000000011CE79BF0DFC9A5EB7EF3D239CF38E1BB934BD6CBF0FE6C267D2F3CDABF2055EAF43B0E933CE48E0BABD3EC39BDAAF2055EAF44E8F3BE48E0BABD3EC3DB9D78B8B3E5FCB9BA1E0AF517229A1E01723AA129A9FCA52F6E3DA71DB40FFDA2CD3A53B1A7F294BDB8F69C6ED0EEDA2CCFA53CDFA97973E5D1C375560B62DC2E2B678AEB0D8AD85C5B80173A6D8AF13C6F4D03976CEA3627C4F1BD340ECE07CF896BF4575FFDE7EB2C82D44FEF3F58F05A9F40F22AD82DE8CCA28C586A65D1415CFA8CA82DC86B1105B86E612D735AA2A68CC2AA6755D1983579C68B69B1A7B8A65A174F9CA65A1AEAC55B118CC460A420A30AF430C8C2F9672CEB04653E23B47EC449C2F9672CEB088CA7C4768FD889E47D479C76F0DC9C2EC9F8F623A37DA74C8E6764FC7B11D1BED3A645B82F263D8D0E84A24844A3AD64A256808940C4A41625226C612A03524018822C30580B4A23D47685E7349461EBD6C2E228E2B0D3EE75E84D5484FCCD7B8EF2593E1F841C2CB39C1C2AE5999C22A15E5569FF00335ADA34F9FD0CE7763325A79CE72D633C47070EEF88F3497347D4F7DC4DA5DAAC6E795E70C3D59E132A8371C3E1A83704E29EE72B79FCDA239F525CF524C3C2CF5FFA4726DF0DC1966B5ABC69D5CD301085ED2952BCA56F42DDBCC5DABCC30D946025B2392E1B1187A11971B1988C446D3C4BBF379D37ABF36E395A52A946A2A946BD7A7522EF1942A4934FCE7719362A7B739562724CD9C679BE0E9775C0E32C94A6BCCFEDDCFCEB78B9E39E3667A97793F8DBF74EB844BEEE621C537777BFAEC9FD84C5BB3538DA49B8C9799A64AF39DC8DA16F192DE421D02595761C1E793F6A7A9FFF005672743E4A3EA3ADE0F3C9FB53D4FF00FAB392A0BF9B8FA8E7D3F373FE13D4BFA633F29CBABE6B98D0CBF0BBAA57959CBFD11E797D88F44DA9A3B3580C2E032ACCB1956385C2C7E2E070FBDCDF34A5FBFEF343B133593ECFE73B45C5E3568FF3142EBD5FFD99CAB9D4AB56A57AF3752BD56E53A9277726C96585D6D5E7B4C7FF00D4FB734F0E5E35D6D35B0B8C7DC630C665F51BB46ACF725E9BDD9AFCFB20C464B521373588C1D6F91C4C347E87E934AB7A69EF4FCFCE761B115966380C7ECEE2DBA946549D4C3A7FDC7E65F6EF3729968FEA9779EBBA32E3ABFA6CDAFA3978738F11209C5CA12F0A2DC5FD8DA1E274386AC4F78C844C64CC2189B9170B9813721B2086CD02E45F7B0B8AD800D88D837F78AD8D0D10D89264B656DEE1A43C71DB78FF00A6617A2F7B37D57E43677A29F69A0DBAF1BC2F45EF66FEAFC86CEF473ED3C2E27F22FCBDDE1BC98EBF637FB4FC6FB74FF4B3DA8F15D8DFED3F1BEDD3FD2CF6A0E33AE29A5C920007228000000000000000000000000000000000000000000000000000000000000239CF38E1BB934BD6CF47E73CE386EE4D2F5B2FC3F9B099F4BCF36AFC8157ABD0EC3A4CF392182EAF4FB0E6F6AFC8157ABD0EC3A5CEF91F82EAF4FB11ED4EBC5C59728E628F83F617229A1E0AF522E4754253D3F95A5D247B4E3368DFFB4599F4A7674FE5697491ED38BDA47FED1E67D29E77D4BCB8BF0DD558785A15B1789A786C2D3752B54768C173FA4BB1385A782AF2A15E5DD6BC1DA7083DC9F98BB038A9607055278776C5E25F12335AC23E742D38D3A14EDE1547BE537BDDFDECF1A4DDD8C76A9B5BF0924BCE9EF2B9508CA329E1E4E4978517AA2CAF3945EE724F5DFB98425C74EA4375682BEEFEF2F306DB0617A4EA7623C4F1BD3C4E6F1718A9A9C3746A2BDBCC747B0FE258CE9A1EF3AB81F3E7F296BF45761CEFD65B12BFEF3F59640FA078F92EA4B7999451894D6F33682D45B5CDA959505B86B6E220B712C4DDCDBB1EAF398355EA6756E7306AEAC7957D362CD154B42D9954B419D58AA6231D95B7BC14856231D88C0E8C279672CEB0BB0329F11DA3F622184F2CE59D61760651E23B47EC44F23EA3E8EDE1B9385D93F1FC4746FB4E991CCEC9F8F627D87DA74C8AF057FA51EC6874250C885A128EBDD64AD064422506EC4A4482251841BC9041631951621A1AC4580A5685B6F1EC2B4342575BC1CA588A3B41975395B1188C2DE9F9DEBFC51C4514D528C6516A505C5927B9A6B55F61B1CB31F89CA731A19860A4957A2F4774A71E78BF59D462B09B37B5B5E78DC16611C9F34A9BEBE1ABAF8937E7F4FAD6A46DFB59DCAF2BFE10C9C434759C155194F6B258ABDA8E130D39559BDC971AE927DA3C760674DB9E3F6872CA1875BDCE9BBBB7A2EC4CD73DCAF2DC96AE41B25C69D2AFE39984B73ABE74BCF7D3CC906A6A4D5C6E1878EFFE12AE52B4955C5626AC3C0A95A728DBCCDB3A1C9F09B3153657195F35C44A19BC1C9538A934D3FEEA8AF3339D8C6C959596960514DA95937CCEDBD1D1961DA926FB236EC8A6A4E29C95A56DE96971D204864874AD75DC1EAFEAFDA8EA7FFD59C9D0F938FD8751B0B8AC3E1B03B471C456A74A55708D414E49393E2BD0E5E8AB538A7BB72B9CFA7BFDDCFF0084F52FE98ED766612CCB6173ACAB0EB8D89A353BAC60B59ADD256FBAC7254A5C6826B4B7EF33321CDF13926654F1F83B3925C5A94DBB2A91BE8FFF00DA9D355CB321DA5A93C6E4F9853CB71B537D6C257568F1BCF6FE0276AE96777E57C53CA7DCC66DCE3938739D670794FB962F1F9AD47C5A184C3B8B93DC9CB5B0B4F62E186BD5CE33AC251C3AF09D27F19AFB4A33DCF3093C0C325C829CA965B4DFF3951EE9567FC2FBDBE7175339AB3B187AFAA78E1F6EF6F2F46914FBA4E753FD7372FBDB63C4AA2F42C8B3A76DBC1C37C6EE74C64F5113D464C0A6B85C8BA21B3189B9170B8B735A2E4361712E6B761715B06C5B8D0C86CADEF1A4F7B42363434721B73E3786E8BDECDFD5F90D9DE8E7DA73FB71E3786E8BDECE82AFC86CEF473ED3C1E2BF22FCBDCE1BC98EBF637FB4EC6FB74FF4B3DA8F15D8DFED3F1BEDD3FD2CF6A338CEB8A697248001C8A00000000000000000000000000000000000000000000000000000000000008E73CDF86EE4D2F5BF79E91CE79C70DDC9A5EB65F87F36133E979E6D5F902AF57A1D87499EF24307D5E976239BDABF2055EAF43B0E973CE47E0BABD3EC47B73AB1F870E7CA7CB98A1E0A2E45343C15EA2D474C2D371945C64DD92945B7E8B9C66D2C651DA1C7DD5B8D3525E9BA3B19454E1283DEA49A397DA9A52A92A38F49DD2EE15D7FA5AD1FDAAC707D431B969EF3D16E1EED935F177587B68E2FEF29A951A5AD9DEE9BE66361A5C78771BA538BE3536F41A549566F8BBA7FDE83DCD1E1C76B2713869D7C1CB1F8CC54275E4B8B0A71DEDAF3FA0A30D49C1A6FFD0F8DEB1F0D86B3F8EF8B1E7E7337058686698B583A3521468A4E556B4DD925FC594CACBE2D69714ED4282E7777F61BFD8DA9DCB0D283D71189518FA6C99A0CD6BD2AF8D9AC2ABD083E252B7F7BD2755B3182953C5D38BF070549A9BD53AB2D57D891D1C0E37EECB10D7BB615D573BF59640AE25B0E73DD78F92FA4BEF33A82D4C2A267505B85B5CBA8C982DC4B08ADC4CB411CDBB16BE8CC1AA6757D0C0AC3C746931A5CE5332E9B2998CEAC55B2B63CC466AB08D88337CC2818613CB395F584194788ED1FB110C2F9672CEB0194788ED1FB08F27EA3E8EEE1B9386D94F1FC4746FB4E992399D9057CC313D1BED3A8487E12FF004A3D9E1FA1090C91296A4A5A9D3BADB048648121920DD884B5252D464B52520DC9B149B0D60B06E52588659616C332AB14B2C2B46C4EAB2B9C14D5A4935E92E68D965D9155C5E498FCDAACDD2A1878B7423CF5E49D9BF52F39B7298F8D432697B852BA7C45B8668E8325C970D8DC89E655A862B1155E29D154A8548C145593E33BA770CCF67A10C5E4F86C0C6AD0AB995D4A189929772B49ABDD5B75B78BF7B1ED6C8651CFDAE35AC8D9E7782CB70546F81AF8E5594F89DCF19478AABC7E729BF35F99EF32732CB729CB710B0D5FE18AD53B9539CA74609C5F1927BB7735C69AB8D911CA568EC4A466ED0E06394E6B8CC152A92AB0A094A339AB369A6ECCE972BD94CB718F0D4AA4F15DD2A60FBE6751544A37DFF152B7EFB9996B638E332BCAA7D9B6ECE3B8A9B4DABB4EEAFCC323739C65582C1432CAB4AA57A14B16E6AB3AAF8EE0A2DABAB5AE988B0591DFCBD51AEA8FF88D8EAE366F12CB1AD6C46E2A95AE93F35CCAC0C3297294330AD8E527538B4A5878A7171BEE6EFCFE83639D65B94E5189C460EB54CD7BE29AF8929D24A9D4F4A7E632EAE332ECD46E176DE34D0842E9F155CBA2CDC65591E1319430B87C463E387CD315195684545CA31A2BCFA59B77FB0D662238384A1DE38C962A0D37293A4E1C577F4DC31D4C72BB4473C32937A58B1D32A896458C81D3193109B98C35C2E29370625B15B0B8B735A2E45C2E2B633436237F78CDFDE2366C321B1192D8AC68D723B71E3786E8BDECE82AFC86CEF453ED39FDB8F1CC3745EF674157E43677A39F69E0715F937E5EDF0DE4E2EBF63BFB4FC6FB74FF004B3DA8F15D8EFED3F1BEDD3FD2CF6A338CEB8A697248001C8A00000000000000000000000000000000000000000000000000000000000008E73CE386EE4D2F5B3D1F9CF38E1BB934BD6CBF0FE6C267D2F3CDABF2055EAF43B0E973DE4760BABD3EC4735B57E40ABD5E8761D2E79C8EC1F57A7EE3DAFF007E2E1CFD3E5CC50F07EC45A8A70FE0FD85CB43A8B4C8C0CCB0AA6A55543BA539C7895E9FFAD79D7A519C895A0B9E3329B512ED777039965B5700D4E2E5570B277A55D2DDEA7E668A638BBA5DD62AA24B7496E6779530CD71DE1A514A7E1529ABC65F61A1C6E4B1736FE0E9477DDCF0F3B5FEC6791ADC0652EF83AF0D7979B46F1346DE0547E872DC63D7C54EA41C17C483FEE479FD06DD64D06FE260B3072F339248EA72CCBF2EC0461530195378AB5E55F192E3283F3C511C382D4CAF8F81B2D7C2473B926475A82A78DC5D3E2D4978AD092DEDFF00A9AF323B0CBB0B1C1619524EF26DCA727AC9B269D36AA4AB55A8EAD79F85525EEF322F89EB686863A58ED1C1ADAD735912E814C16A5D0E72CE4C991456F467505B8C2A2B799F41096B97519105B825A12B4225A09BB958B5F4302AF399D5F9CC0ADAB1E575E931E6532E72E994CB519D58AA995B1E5A88C65611B14962B60689C2F9672CEB0194F88ED1FB112307E5ACB3AC1394F88ED1FB113CAFA87A3BB86E4E2363D5F30C4F472ED3A94B5397D8C57CC313D14BB4EB1445E1AFF4E3DCE1A7F4E1521922521923A3B4B6C84B5252D46512544DED3364244A88DC52521BB45D896DE4D87B059F304A5B15D85B16B443434A4B14B42B45D611A1E54B252E37B2DF6BAE35B56AE7570CFF0022C452CC3BB65F8DC3A780585A145574E3C54EFC58EFDCDB576DEA730D0AE3A99969E39F34328DAC7174307B3F9665B1A182C755AD56789C42AE9B8E1A4ECA31F5A4B7B33EBE6785CBB33D9CA9FD12A2CBD4DE26380DF4A1C693DF1F3B49DCE65C75B2D7F790A3C5564925E8560FB33D7F7FF28655BCCEB154E191E2F033CE1E7188C4E2D57A334A56C3C37DDDE5A377D1798D8E7398C6B62E33C26D54B0D4FB8528F718539C941A8A4D5D1C928D9EE56BEB6DC1C5B732F504D08E7CB26CB6C6B52C66D06635B09523569558C546A45DD49D9AB9BBC46799750ACB0CAB5592A74A853A788A2B8D1B2BB946DE96ED7F41C9256564ACB9BCC0959592B2F321AE8CB24BE895CEF8D74DB4B5B2EC554CBF0EF3050A10956A929D1BD67463293718F3DDF61AE8E0F22BF97B136F3F793FE06AA292D125EA5618DC74EE336952CB3DFD175A953C6C151AAEAD08D58B8D5946CDABEAD731B8DA1CE2B6231F99E169622188C055ADC6A5C75C6E269BE9B7E0FD868912B72B256486BA732B2DF44AE564B23A9D97DA2C4D3CD68C7195F0B4F0D1A534E6F0F14D351565734F8ACCF179853A6B18E93E236D773A5183BFD9A982B7AD2E874CC9A58CCBB513CB532B8F656458E9952659163A074F71298899266CC3A602A7A920C0D91721B0B9AD1715B0B8AD9AD0D8A4B641AD2B14662B18CE436DFC730FD17BD9D0D5F91D9DF627DA73BB6FE3986E8BDECE8AAFC86CF7473ED3E7F8AFC9BF2F6B87F263AED8FF00ED3B1BEDD3FD2CF6B3C5763BFB4FC6FB74FF004B3DA8CE33AE1F4BA52000722A000000000000000000000000000000000000000000000000000000000000239CF38E1BB934BD6CF47E73CE386EE4D2F5B2FC3F9B099F4BCF36AFC8157ABD0EC3A5CF791D83EAF4FDC735B57E40ABD5E8761D2E7BC8DC1F57A7EE3DAFF7E3F0E1CF94F972F47C1FB8B9685347C1FB8B4EA2D3225682A19016A5129908BB0D42A6266A14D73D9B7A2172CA6337AC92DF0844C64EE6C2792D783A8BBA5394A2AE92BFC7F51AFB38CA509C5C671769464ACD7A04C7530CFA6EECCB1CB1E70F11E2244788C9D5B0E72D822A89744547264D15BD19F416E30682DFE833E82DC4F2AE4D564474165A0D1D059E826EE6F561D7E7306A7399D5F9CC1A8531AEBD2F4634B9CA5B2E973944B9C775E2AD95CB42C656D8CA423118CC5669E2707E59CB3AC1394788ED1FB112305E5ACB3AC22729F11DA3F622793F50F47770DC9C56C56FCC313D14BB4EB92F41C9EC42BE6589E89F69D82892D0BB60F7F859BE942A44A43A892A25FB4E8D8AA23288CA23289BDA2EC54B5254474B52523772ECAF8BB82C5960686ED16C55622C5B6238A34A9D8A5A15C77173890E252547250E243897388AE234A86514B88BC52E7116C3CAE7CA2AB058B2C458695CD945603D88B0C8645B6F279C9B680D0235089409126A59250D162A253353AB13D478B2A4C78B30AB1325312E4A61B30F7016E170D9896C8B811700191707FB886CD6A2E4324535A18AD92D8A336391DB7F1BC3F45EF674357E43677A39F69CF6DBF8DE1FA2F7B3A1ABF21B3BD14FB4F9EE2BF26FCBDAE1FC98EBF637FB4EC6FB74FF004B3DA8F15D8EFED3F1BEDD3FD2CF6A338CEB87D2E49000391500000000000000000000000000000000000000000000000000000000000001E6FC37726D7AD9E90707C2E6558ACC7662ACF09DCDC70E9D4AD19C9ABC2CF47E72BA194C7525A5CE6F1E61B57E40ABD5E8761D2E7BC8CC1F414BDC735B54EFB3F579D77BD0FB8E973DE4660FA0A5EE3DCFF7E3F0E0CF94F972D43C15EA45C5343C15EA45A8E92D321855A1280B52DEE7FB8F40D94C968E23014A6DA5657DFBAECF3FB5D59E8CE9321CF6B528430EA6A328D92BBB2670F1D867969FE85F86CB1C73FD4EE2391E1D4EA54E32714AD08DECE3E96713B6785861B1B4926DCB8B6726AD7FE26F3E12C4D3AF552AD0BB871F8CE4AD247259C665F08D685B8CE9D3BD9CB593F71C5C169EACD5DEDF05F89CF4FEDEDEAC28EA5912B45913D879556C39CBE08A605D0D44A8E55954119F416E460D0D4CFA0B722595716AD5D1D05A9A31D2127A09BA12F8B0EBBD4C0AA67577A981535298BB34B931E65332E994CCA47562AA5A15B1E656C65615B15B24534F1382F2CE59D61760D94F88ED1FB111705E5ACB3AC21B29F11DA3F622797F50F47770DC9C76C3ABE638AE89F69D8A471FB08BFACF15D13ED3B448E5D2CB6C5F47C14DF46152D464864B51944AF69D1D94244A88D143243768B61544144B38BF787146ED17B24B1162CB071469912C56E22D8BB8A4388F2A79455C5178A5CE22F147951CA297121C4BDC45E28F2A19450E22B897B888E252573E514D85B1738D85711A573E515588B16B88AD0F1CD9457621A2C6886868E7C884D809351A54310B424D225730C98A8640C3264A62263260536F26E280035C08B90D804DC5D02E06841048BD86B50F79048ACD3391DB7F1BC3F45EF674557E43677A29F69CEEDB78E61FA2F7B3A2ABF21B3BD1CFB4F9EE2FF26FCBD9E1FC9C5D7EC77F69D8DF6E9FE967B51E45B0D95E2715B7D99E3A93846861A74FBACA4DB727C576497DFBCF5D178BB2E7E0A69F248001CAA00000000000000000000000000000000000000000000000000000000000000D06DD723F38EAB3EC37E6836EB91F9C7559F61B8F5465E4F12DA9E4F54EAD43B0E9F3EE45E0FA0A5EE398DA9E4F54EAD43B0E9F3DE45E13A0A5EE3E83FDF8FC3CFD4E53E5CA50F057A917229A1E0AF51723A616993250A89405A65A136B9089461699DDA49B934B746F27B90C855A0C85253A2C815A2C873994992E8175329817D3276A3932E8233E8ADC60E1CCFA2B72219570EAAE4573D0B11554D18B2A11855F9CC0AA67577A983539CAE35DBA5C98F3299B2E9944D958EBC553118D2623632B08C56C66C566A91381F2DE59D38F94F88ED1FB111303E5BCB3A71F29F11DA3F622799F50F47770EE436057F59E2BA19769DBA4713B00AF9A62BA19769DC2470E1768FA6E067F427F212192D412D770E90FDA755C50912A2325A8C90D3225854B525219446511A644B15F14951B162892A3E71A644B157148E29771487129324EC55615C4BDC48711E648E518FC521C4BF8A2B8FA0A4C90CA2871DC238990E22B88F2A1962C77111C4BDC4571292B9F2C54585712E7115C4A4AE6CA2A685B6F2DE28AD0D2B9B28ADA22DBCB2DCE2B43B9F284B124B44D8D4696C4EF2520008DE48030625122A606835C916E068D92045C01A821B258A6B47A45B836436699C96DBF8E61BA2F7B3A2ABF21B3BD14FB4E776D5DF1987E8BDECE8AAFC86CEF453ED3E778AFC9BF2F6387F263D5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4223AFE65530E98900022700000000000000000000000000000000000000000000000000000000000001A1DBAE4866FD567D86F8D06DD723F38EAB3EC371EA8CBC9E25B51C9FA9D5A8761D367FC8BC1F414FDC733B53C9EA9D5A8761D367DC8AC1F414FDC7D07FBB179DA9CA7CB95A1E096AD0A68F825C7446532250A98CB402D3225100B414B4EB41908864612AC45912B4590E716A792E817D3D4A206452E6256A1933286A6752D0C2A06752D0E7CAB8751615D4D0B798A6AE8C499251835DEA60D4D4CDAEF5306A32F8576E9725132893D4BA5CE512D4B475E2AE4CADB1E5A88D8EB62462363362B631E1B01E5ACB3A72CCA7C4768FD8895E03CB59674E8B329F11DA3F622799C7FA3BB87727C1EAFEB4C5F42FB4EE92386E0F37E6D8AE825DA77A91E6CAFA9FA7F910B143C579C94B519237B4EBB1097DA4A5A8C96BB864B51BB44B0A97A0651192D49B0DDA258551252D47B13C5F40D324EC57C50B167142C3CC92B15F148E296F142DB994992562971178BE72EE291C5298D4B28A1C7708E2643888E256648658B1DC4471DC64B8FDE56E37292B9F28C77111A2F71B0AE252572E78A8B0AD1738896292B9738AAC2DB716B42D8695CD945560B0ED10D0EE7C9090124A5A814AD11CC390D1A0846F25A1468D4AD094C5BA0B9A6D8D70B8B706C1A2E45C96C5B9AD0D89725B20D6B93DB4F1CC3F45EF674757E43677A39F69CDEDA78E61FA2F7B3A4ABF21B3BD1CFB4F9CE2FF0026FCBD7D0F2A3D5F831F2DED3F4D47F4B3D08F3DE0C3CB9B4FD351FD2CF4223AFE65530E98900022700000000000000000000000000000000000000000000000000000000000011E73CD3868CDF1D97E4EA8E16ABA742B529F7551F0A5BD2B7AB7EF3D2CF27E1EFC9547D87FAA257424BA937267C9C76D5AB641557FF1E81D2E7DC8AC27414FDC735B59E41ADD5E89D2E7DC88C27414FDC7B77AB1706A729F2E4A8782BD48B914D1F057A8B91D2CA6432D0544A30B4C895A0A8642EE5A643445432177255912C895C4B2025A9E4BA06452D7798F03229EA472C9CF9B370E67D3D0C1C399D4F439353270EA7358F429ABA32EBEE28ACF73131C938C0AEF5B1833E7332BBD4C29B3AB0AEDD251329932D93299B3A31AEBC553656D964B42B6CA4AB42B656D8CD8B719487CBFCB79674E5B94F88ED1FB112ACBBCB796F4EBB0B729F11DA3F622799C7FA3B78772DC1CABE6D8BE82477A96A707C1B796317D048F408AF41E55BE2FABFA77E3C424325A93143241BBB1090F15ADC98ABBDE325A9BB92A1449511D2D49E28D324EC246237146486511A649D57626C3D89E2EF1E649D8ADC48B16F14871298E4958AB8A438977145E295C724F28A5C45712E7115C4ACC90CA31DC44944C87111C4A6350CA31E512B71321C4471DE5B1AE5CE31DC44E297F14568A4AE4CE28685712EE288D0F2B9338AAC2B458D6F16DA8F1CD912C4A5B89B6F252DC6A654B50686B058250AA48ADA2F9477154E3E81F1AD955B0EC25A16F61D489B91721B22FB8D31AE2DC08B8360B90C3D01606B93DB3F1CC3F45EF674957E43677A39F69CDED9F8E61FA2F7B3A4ABF21B3BD1CFB4F9CE2FF0026FCBD6D0F2A3B2D8ECCB1947849C6E0B0F55C6856A94DD683F064B88F9BCFE93D9CF0DD91FED6715ED53FD2CF72178B92670DA7C9200072A800000000000000000000000000000000000000000000000000000000000021E879470F7E49A5D1BFD513D5DE8793F0F7E4AA3D1BFD512DC3799099F271DB59E42ADD5E81D2E7DC88C1F414FDC735B59E42ABD5E81D2E7FC87C1F434FB11ED5EAC5C1A9CA7CB92A3E0AF517228A1E0AF51723A23299684A153D464652D322510B4250A5A7432110EB516929E25B12A896C49E4964BA06453D4C781914B521939F36750E63369E86161CCE82DC716A737167CCCF428ACF732FE631EBBDCC9E3CC98F36BEBBDECC39BD4CBAEF7B30E6F53B70E4EDD3E4A25CE5327A96CDEE289739D18BAF157262363B65726562D0AD95B63362B63C522CCB9FF5DE5BD3A2ECA7C4768FD8894E5BE5ACB7A7F717651E23B47EC44F378FE51D9C3B98E0D37E718CE825DA7A12479F7064AF9D62FA19769E8896A7919737D5FD3BF1E7F214468A2631D46485DDDB511561D2B92A23A5A06E9D2A4325B8648948694B4AA2371464B5192D46952AAEC4F1770F6E626C3CA9D8AEDF790D16581A29292C57C516C5D616DBCA6353B157144712F684712B8E48E514B456E2643888D16C6A39463B88928990E256E2571AE5CE31E512BE2990E223895C6B9338A2512B68C8712B68A635C59C52D08D17B4235B8A47266A9A04866812E7351A5B0586048D615A2A944C8B0925746CAD9588D58468BA68ADA2B2A98D56C81DA1465254104FA0803416F3B0F500186D9C9EDA78E61FA2F7B3A4ADF21B3DD1CFB4E6F6CFC730FD17BD9D255F91D9DF627DA7CEF15F937E5EA68F951D46C8FF006B58AF5D3FD2CF723C33647FB59C57B54FF4B3DCCCE2FAA7FF007A9B4F90000391400000000000000000000000000000000000000000000000000000000000010793F0F7E49A3EC3FD513D60F26E1E649E5B429A7F1E54E4D2F3DA51B97E1BCC84CFA5C7ED6790AAF57A074B9FF22309D0D3F71CD6D5F906AF57A07499FF0022309D053F71ECDEAC5C1A9CA7CB92A3E0AF516A65343C15F6172D0E86532190A865A0B4B5289442250A5A65A0F111683C45A4A745B0D4AA25B0E72792592F81914B531E99914B521939F36761D686753D1985416866C3C1387539B87337318B5DEE664BD0C5AFA0B8F3663CD815DEF661CDEE66557D598951EE676E1C9DBA7C944D94C9EA5B365327A9D18BAB1552656CB24CADB2B16C4AD95B63315B1E2B16E59E5BCB7A72FCA7C4768FD8898F963FEBBCB7A7464651E23B47EC23CDE3F9475F0EE6B83057CE717D04BB4F474B7EE3CEB82F57CEB19D04BB4F4848F1B52F8BEAFE9DE44FE5090E913143244F776D090C913143A560ED275095C94864B5192FB8D94B4A96A4D87E285879494A96A161EC161E5252582C3582DF71494962BB0389634294953B15DB985B16B44345254B28A5A11A2E68468B6351CA2968ADC4C868AE48B635CD9E2C7944468BE5111C4B635C5A9143895B4643456E25638752296B52B6B52F68468795C99C52D0B62D6AC2D8773D2589489B13634A5B5C5922DB0B240C62CA25324654D7EE299A292A92A868568B1ADE4343EEA62ADA0B0FC522C66EBE24682C3D81C4373C8E436D55B1B87E8BDECE8EAFC86CEF473ED39DDB756C6E197FCAF7B3A2ABF21B3BD1CFB4F9EE2BF26FCBD2D2F2E3A7D91FED6715ED53FD2CF733C2F652518F0B1887276529D38ABF3BE23DC7BA0717D53FFBD469F20000722A0000000000000000000000000000000000000000000000000000000000000397E10B0384C5ECA665531587A7567470F395394D5DC5DB999D42341B75C8FCDFAACFB0DC7C328CAF13DA977D9FA9E7787A1D874B9F721F09D0D3F71CCED4727AA756A1D874D9F721F09D0D3F71EFDEAC5E76A7A7CB91A3E0FD85C9EA5347C15EA2D47432990CB41168327A8B4B4C865A0A865A0A5A6432150C85A4AB116C0AA25B025954B25D0E7326918D4F4664D1D4E7CDCD9B6187D0CC8E861E196E46647438B539B8B312D0C5AEF73329E8CC4C43DCCCC39B316BEBEACC4A8F532AB3D4C4A8CEEC393BB4F9289B29932D9B29932F8BAB156D95B63C995B6562D89588D92C56C78A45B95F9732DE9D19394F88ED1FB1131F2AF2E65BD3A32329F11DA3F62279BC7F28ECD073BC172BE778CE825DA7A5451E6DC15ABE778CEAF2ED3D3123C4D5EA7D4FD3BC89FC848782048B1226EDA84B78C91290C90128489486489B06E52A435864B50B0F29696C0D0D60B0F2909606ADEA1EC458A4A5A4B10D0FE8068A4A4B15B42DB796342D8A4A958ADA15A2DB0AD15C6A59453242345D6DC2B45F1AE6CE31E48AE4B7190D6A57245B171EA452D15B45EE2235BCACAF3F52286B795B45ED08D148E2CE28E28AD1735BC46B70F1CF92AB1290D626DBCD48B621ADC3D81A3431E68A268C99A299A1E1F163B4458B5C45E28DBAB8ABE2858B1A0E299BAF8ABB058B1A22C1BAD1C66DD2B63B0DD0FBD9D055F90D9DE8E7DA6836F15B1D86E87DECDFD5F90D9DE8E7DA781C4FE45F97A1A7E5C7A7F07182C2D6DA4DA2C4D5A14E75E8D5A4A9D46AEE378BD0F4A3CF7831F2DED3F4D47F4B3D089F11E6D361D31200044E0000000000000000000000000000000000000000000000000000000000000343B75C90CDFAACFB0DF1A1DBAE4866FD567D8363D519793C476A393D53AB50EC3A7DA0E43E13A1A7EE398DA9E4F54EAD43B0E9B68390F84E8697B8F7AF562F3B53D3E5C850F057A916AD0A68F82BD45CB42F194CB4190A86429699129EA2AD0642D2D321A22A1E2C5A4AB21CE5B0E72A83D4B624B24B25D032A8EA62C0CAA3A9CF9B97539361875B91951D0C5C39951D0E2CF9B8F24CB430F10F7332DE861625EE0C398C5AFACF7B316A3326B3DECC5A8F79DD83B74D449EA53265B36532E72F8BAF15726572D07656CAC5A15B11B1988C63C5F9579732DE9D7619394F88ED1FB113172AF2E65DD399594F88ED1FB113CFE3F94F9766839FE0A7CB98CE825DA7A725A9E65C13ABE7B8CE825DA7A8A4787ABD4FA8FA7792848748121D224EDA98A252D4948648C284B5252D494864B784A5B4B6246482C3C295A22C3D88687852B44587B10D0F0B496207B1162929292C458720AE29D576DE43458D0AD15952C95342345CD09245B1AE7CD4B5BC468BDADC56D17C5C7A9143423897B456D6F2B2BCED58A6512B68C8712B92DC5657166A648ADA2F9211A1A39725360B6E1DA22C3A351644343A4435B818A26B794491912572A92DE3C3E2A9A16C5B6238A6EEBE0AEC162CB1066EBE246B7116DC584341BAB1C3EDF2B63F0BD0FBD9BEABF21B3BD14FB4D1EDFEECC30BD0FBD9BCABF21B3BD1CFB4F0B89FC8BF2F474BCB8F57E0C7CB7B4FD351FD2CF423CF7831F2DED3F4D47F4B3D089EBF994D874C480011380000000000000000000000000000000000000000000000000000000000000D06DD723F38EAB3EC37E6836EB91F9C7559F61B8F5465E4F12DA8E4F54EAD43B0E9B3FE43E13A1A5D88E676A393D53AB50EC3A6CFF90F84E8697623DFBD58BCED4F4F971F43C15F617265343C15F616A2F194C98C8543214B4C9928543214B4C87888874C4A4AB61CE5B12989753D193C91C97D332A8F318B4CCAA1A9CD9B9B51B0A1A1931D0C7A0B723256871657C5C59225E0983887B8CD96860E25EE66E9F36E1CDAFACF7B316A19155EF31A7AB3BB07769A8994CCB66CAA5A97C5D58AB96856C696A56CAC5B12B1592D8AC68A2FCA7CB99774E8CACA7C4768FD8898B94F9732EE9D19594F88ED1FB113CEE3F9475E8343C12ABE7B8CEAF2ED3D4A29D8F2EE08FCBD8CEAF2ED3D511E26AF53E9BE9FE488A1E2B71090E912775090E91090C9185090D604B519202D401206CA52D81A1AC4343E2C2D881AC0523297985B6F1ADA858A4252B42DB78F6D48B6FD0A629D2344587B116DC562392B68568B2C2B45F143354D6E11ADE5CD0925BCB62E3D452D09245D611AF41695C1AAA1A1248BDA2B68A62E0CE2968ADA2F6846B70F1CB9A9688B16342D8673E45B10D6E1DA15A358A24B7B2BB17490B6BB195C629B058B1A22DB817C55B4458B2DF79160571AAEC4343B44029BB85E1055B31C2F43EF66F2AFC86CEF473ED349C21EECC30BD0FBD9BBABF21B3BD1CFB4F1388F3EFCBD2D1F2E3D63831F2DED3F4D47F4B3D04F3EE0C7CB7B4FD351FD2CF4127AFE653E1D31200044E0000000000000000000000000000000000000000000000000000000000000341B75C8FCE3AACFB0DF9A1DBAE47E6FD567D86E3D519793C476A393D53AB50EC3A6DA0E43613A0A7EE399DA8E4FD4EAD43B0E9B68390D84E829FB8F7EF562F3B5394F971D43C15EA45C9EA5147C15EA2E45994C865A0A98C8C6532190A90C84A4A68A1E2221E22D2D5B0E72D822A873975323925945D0332823121A999411CDA8E6D48CFA1A17C7428A2B72321687165CDC394F124DEE306BF399D3D198388E71F4F99F4E78B5F575662CCC9AAF7B316A33B7077E1144CA665B26532D0E8C6BA318AD95B2C6573291684623633D441E1A464650FF00AF32EE9919794788ED1FB08C4CA3CBB96F4C8CBCA7C4768FD889E771FCA3AF41A2E08BCBD8CEAF2ED3D5628F2BE08BCBD8CEAF2ED3D591E2EAF37D37D3FC91143A5A90864893B0C96A3242A43A42B2A52027980082C04AD0020458824079CD8522C33405630BE722C480F094BCE1626C415C53C8BCCC06B0ACAE28E45B0AD0F622DBCAE2E7CEABB0B2458D08D17C5C9A8A9AD056B716D8468AC70EA2968568B5A11A1E57066A5ADC2345CD08D158E5CD4B42B45DC515A1A397255611A2E6AC2343418CDD4B42B8D8B5A238A32F8C54D58568B5A15AB02B150587685B01A5D88D0AD0ED10D01BB4E0F8445FD6384E87DECDD55F90D9DE8A7DA69B844F28617A1F7B37357E43677A29F69E2711E7DF97ADA1E3A51EAFC18F96F69FA6A3FA59E8479EF063E5BDA6E9A8FE967A113D7F32A9874C480011380000000000000000000000000000000000000000000000000000000000000D0EDD724337EAB3EC37C6836EB91F9C7559F61B8F5465E4F12DA8E4F54EAD43B0E9B68390D85E869FB8E676A393D53AB50EC3A5DA0E42E13A1A5EE3DEBCF179DA9CA7CB8EA2FE2AF517229A5E0A2D5A1714C878E8221D0B586432110C98B4A788E8488F1274956C0BA1CE530E72EA64B24F25F4CCCC39874F53370EB7A39B51CDA8D851D0B968534B42EE63872E6E3CA78ABA9A330312F7333EA68CD7621EA534D4D39E2C1AAF7B3166CC9AAF7B3166CEEC1DD8453365332C9B2A932F8AF8AA988C76CADB2B1490AC463362363C3C64651E5CCB97FCE466653E23B45EC230F26F2EE5DD3233329F11DA3F62279DC7F28E9D0693822F2FE37ABCBB4F554794F043CA0C67579769EAEB43C7D4E6FA5E03C94A43C50A87446BB4C8948843216928250023189007A003010480F88281241490B4104858AC25A5B0344916298A59142C3342B45623952D852CB0B62B8B9F3A4685659615A2D8B973AADA15A2CB0AD148E2D454D08D17342343CAE1D452D0AD16DB70B6291C99A968868B38A45878E7B153456D17B5F608E23A98E2A6D7DC2B562E68468D56455615A2DB08D0056D0B62CB0AD0C3B4ADA11A2C684680BDA705C22F9470BD07BD9B9ABF21B3BD1CFB4D3F08DE53C2F42BB59B8ABF21B3BD1CFB4F1388F3EFCBDBE1BC74317ABF063E5BDA7E9A8FE967A11E7BC19797369FA6A3FA59E844F5FCCAB61D31200044E0000000000000000000000000000000000000000000000000000000000000341B75C8FCE3AACFB0DF9A1DBAE4866FD567D86E3D519793C476A393D53AB50EC3A5DA1E42E13A1A5EE39ADA8E4F54EAD43B0E9768790B84E8A9FB8F7B2E78BCFD4E53E5C6D2F057A8B51551F0516A2C2F33A193110C8CA532D07888B4190958B16A3C4AD16439C4C895644BA1A14C4BA04724F26453D4CEC3ADE99834F433F0EB439751CFA8CFA5A22CE62BA7A16BD0E2C9C9629AAF7335D8966C2ABDCCD6E21EF65B495D38C2AAF798D33226F531A6CEDC1D98C532653265932A932F8AD8AB656C76CAD958A42B158CCAEE31D9593F9772EE9919994F88ED1FB1130B27F2EE5DD3233728F11DA3F611E7F1FCA3A341A4E083CBF8DEAF2ED3D5D7EE3CA7820E50633ABCBB4F5647919F37D2701E4996832156832275DA988CB423986274B5248A8915809000600001E311CC0481585A8B05894892913B4B621A1EC458AC472A5B0B61EC458A4472A4B7A48B0D62195C5CF952B42D87B0B62B2B973A5B0AD0F622C5239352ABE611A2D685B0F1C5A8A6C2D8B9A16C3CAE4C95388BC52DB10E3B98F0B8E1BA9B6F11A2E68468795698ECA1A15A2D6ACC468662A6B708D16B42B46A755342B5F71635F708D0C9DAADAF30962C6BD0458D90B6BCFF0084856CCB0BD07BD9B7ABF21B3BD14FB4D4F094AD996117FC8F7B36D57E43677A39F69E1F11F917E5F43C27E3E2F57E0C7CB7B4FD351FD2CF423CF7831F2DED3F4D47F4B3D089EBF9956C3A62400089C00000000000000000000000000000000000000000000000000000000000006876EB9219BF559F61BE343B75C90CDFAACFB06C7AA32F2788ED4727AA756A1D874BB43C84C27454FDC735B51C9EA9D5A8761D26D1721309D153F71EEDEAC5E7E7CA7CB8EA3E0A2D45343C15EA45A99614E8642A19682D2990C8544C44AC3C4B625512C8894B56C4BA9EE2987397408E49E4C8A5CE67E1F98C1A5AA33F0E72EAB9F519F4B41F984A5A0FCC7157358A2B3DCCD6E21EA6C2BBDCCD6E21EA74692BA718755EA62CD9915198F3676E0EBC6299B2996A5B27A94CB42D1584932B63311B2B0F211B15B1988C6876564FE5DCBBA6466E53E23B47EC44C1C97CB99774C8CECA7C4768FD889E771DCA3A345A5E07F9418DEAF2ED3D591E53C0FF002831BD5E5DA7AB23CBC9F49C079465A0C855A12895761D12B4150CB412C625326E4201589248036312000348C16252044C514C49413625224A4472A5B1161AC458A4432A4B1161DA16C531472A5B0B61EC458AE2865496206B0345239B3A4688686B6F0B0F1C79D56D0AD16588B0F2B9335560B165838A3CA94C7753C515A2E6846878ACC365325BC468B5ADC56D1485B154915B45CD15C90D11C95B456D16B5FB8468788E555342345AD08D1B12B55DBEF0B6A3DBEF212D462EEF3CE12D5B33C2F575DACDAD6F90D9EE8E7DA6B384E56CD30BD5FDECD9D5F90D9DE8E7DA785C47E45F97D2709F8F8BD5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4227AFE655F0E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD06DD723F38EAB3EC371EA8CBC9E25B51C9EA9D5A8761D26D1721309D153F71CDED4727AA756A1D8749B45C84C27454FDC7BF97562F3F3F4F97194BC15EA45C8A28782BEC2E452369E2345888742D299319088788958745912B4C78894B62D832FA65102F892C93AC9A5A9B0C3F31AFA5A9B1C3F31C7AB5CFA919B4F41A5A0B0D0993DC71B9F663577B99ACAEF7B363887B99ADAEF53A7497D38C3A8F798F36645466349EA76E2E9C554CA64CB26F52B96A5A2B15BD4ADB1E656CA43C2B620CD8A346B2B25F2EE5DD3A33B28F11DA3F62260E47E5DCBBA633B29F11DA3F6227071DCA3A745A4E07FCBF8CEAD2ED3D5D1E51C10728319D5A5DA7AB2D0F2EBE8781F28C86420C895769D128544C45AC3A6042D09466CC089210048C32D0082521A16D4A192150F145244F2A948904861E2395290D0E458A4432A4685B16585687886555D88B0ED116DE5223952582C334458A47367484587E6F4858695CB9AB682D72CB0587950ECEEAF8A0D58B2C23DE3C3E386CAA656D16B2B65232C54F9CADA2D92DC232911CAAA68ADA2D68AE5A148E6CAAB656CB188C78E7CA918B6FBC62068996C4A416192D4D81E73C282B66984EAFEF66CAAFC86CEF473ED35DC28AFEB5C27575DACD8D5F90D9DE8E7DA783C4FE45F97D2F07F8F8FC3D5F832F2E6D3F4D47F4B3D08F3EE0C7CB7B4FD351FD2CF4127AFE655F0E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD0EDD724337EAB3EC371EA8CBC9E23B51C9EA9D5A8761D26D172130BD153EC4737B51C9EA9D5A8761D26D1720F0BD153F71EF65CF179F9FF00DB8BA2FE2AF517228A3E0AF522E455B4E864221D0B58643C445A0C84A53C47895C596C44C98B61CE5D0D4A21A97C08649D6551D4D961F435B47536587D0E4D5A866CC868127B82212D0E443661E21EE66B6BBD4D8621EE66B6BBDECEAD15F062D4663CD97CDEA63C9EF3B307462AA6CA65A164B9CAD968A45726231A4C46CA431588D8CC4B8C666647E5DCBBA633B29F11DA3F62260647E5DCBBA633F29F11DA3F62279FC7728E8D1E6D1F043E5FC6F569769EAEB43CA7821E50E33AB4FB4F55479B5F43C0F9465A8CB4150C4EBB0DCC4A153256820327A92B42013D4186B8220946EC5A9250A864342D3450F11623A1A25919226DB884B78C5239F2A80249B0D10CA91A15AB1658568788E555B44587B10C788E549621A1EC4343C73644B1361ED7F5858688D9B92C4DAC35856878D9891892D07624B42B8B2AB96A56FCE592D4AD9488E4AE4B715CB42C96A5727B8AC736755CB52B63B656D9491CB9D232B6CB195B1A214AD012C3418A8B129058060F3AE14BCAD84EAEBB59B0ABF21B3BD14FB4D7F0A7E56C27575DACD855F90D9DE8A7DA783C47E45F97D2F07F8F8FC3D5F831F2DED3F4D47F4B3D08F3DE0CBCB9B4FD351FD2CF4225AFE657461D31200044E0000000000000000000000000000000000000000000000000000000000000343B75C90CDFAACFB0DF1A1DBAE4866FD567D8363D519793C476A793D53AB50EC3A3DA2E41E13A2A7EE39CDA8E4FD4EAD43B0E8F68F90784E8A9FB8F772E78B832F4F971747C15EA2D4CA69782BD48B96851B4E98CB416232D05A5321D15C4788B58745912A896C39C9D62D817D365102FA64724F26550D51B2C39AEA0F7A3638738B550CE3323A0B37B865A0B37B8E5F54B660E25EA6B6B3DE6C310F535B55EA76692F8463D47BD98F365D5198F3675E2B48AA5A15C98F26572D0B4522B6C46C76CAD9486856C51AE20D1ACBC8DFF005F65DD3236194788ED1FB1135F91797B2EE9D1B0CA7C4768FD889C1C7728E8D1E6D1F041CA0C6F569F69EAC9EA794F043E5FC6F569F69EADDA79B5F41C17946432D045A0C25761912854327A89B049288B82664624642A64AD066250C85432376253A1E28588F143C4723A25044948773E412D42C4A44DB51A21996C2D87688686886555B42B4596207472A4B0586E7B1290D11B08A216B0ED7DE40D04C48C463B119482C23125A0D2D04995C52C892D4AE4C793DE5726571736755B6552659265526563973A46F795C98ED95C9948E6C88D8A33620F11A09179EC49AC04A22E17343CE78537FD6D84EAEBB59B1ABF21B3BD14FB4D770A4FFADB09D5D76B36357E43677A29F69E0713F917E5F4DC1FE3E3F0F57E0CBCB9B4FD351FD2CF423CF7831F2E6D3F4D47F4B3D089EBF9957C3A62400089C00000000000000000000000000000000000000000000000000000000000006876EB9219BF559F61BE341B75C8FCE3AACFB0DC7AA32F27896D4727AA756A1D8747B47C83C2F454FB11CE6D4727AA756A1D8747B47C84C27454BB11EF65CF17065E9F2E2A9782BD48B9685343C1FB0B5146D3A1B98443AD04A53263262A190B58B22590E72A45912758BA0CBE1A98F0E73229BDE4722565D0D4D961F466B686A6CA86871EB239464AD05A8EC98CB412ABDC72CE69ECC0C4BD4D7557A99F887A9AEAAF7B3B74A2D8463CD9449EA5D37A98F2675E2B48AE4CAA4F78F2656D958684656C7656D8F0E811BB8CD8B719ACCC8BCBD97F4C6C328F11DA3F6226BB21F2F65DD3236394F88ED1FB113878EE517D1E6D1F043CA0C6F569769EAC91E53C1172871BD5A7DA7AB23CEF47D0705E5263CE8615683211D6944ADC42D013176065A1372105C246197605C54C6D0D9194CB51908B41D1A9E4B2258848738E87911C8E90C91090C91AE7C9296A4DB705B70586886456B7B616188B6E63443223445B78F601D2A5B00CC5B1B19D92B11BE71DB118F8B7623158CC46CA489E447AB2B6C76F7954996C50C8AD95498ED954996C5CB9924F7B2B931A4CAE4CA472E446CADB1DB2B6C7886487CE2B25EA29488D490401A1217446E22E6879E70A2EF9B617ABAED66C6AFC86CEF453ED359C28795B0BD5D76B36757E43677A39F69F3FC4FE45F97D2F07F8F8FC3D5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4227AFE655F0E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD0EDD724337EAB3EC371EA8CBC9E23B51C9EA9D5A8761D1ED1F20F0BD153EC4739B51C9EA9D5A8761D16D2721309D153EC47BD973C5C197FDB8AA2FE2AF516A65347C15EA2E451BEA788D1110E84AC3A1A22458C85AC5912C832B88F1275957439CBE05102F811C8959943536543435B87365434470EAA59325685555EE1D685755EE210BB35F897A9AFAACCEC43D4D7D5676692B8C63CD9449EA5D36512675E2A4572655263B65727BCAC3C2362319B118F1A56292D8A3359B91797B2FE991B1CA7C4768FD889ADC83CBD97F4A6CB28F11DA3F6227071DCA7CAFA3CDA3E0839438DEAD3ED3D591E53C1072871BD5A7DA7AB1C11EFF0005E52568491CC4A6658EC4A7A924027A8BB30C981170466C3732D0942A25686EC5A75A8E8488F11B64F25B02C895C742C89A8E47458B562416A3C51AE7C93CC4F9C2DA035A9A8648B6F22C3058688645B00C2B6342C85B8AD8CC563436C56F795BE719BDE2C99485B08D892633657265314B22499549EE63C9954996C5CF995B2A931E4CA64CAC72E65932A931A4CADBB948E6C90D88D92D95B65623606C86C1B16E344AC4917B11B82EC62EC9B85C56C2E6879EF09FE55C37575DACD9D5F90D9DE8A7DA6AF84DF2B617ABAED66D2AFC86CEF453ED3E7B89FC8BF2FA4E0FF1F1F87ABF063E5BDA7E9A8FE967A11E7BC18F96F69FA6A3FA59E844F5FCCABE1D31200044E0000000000000000000000000000000000000000000000000000000000000343B75C90CDFAACFB0DF1A1DBAE4866FD567D8363D519793C476A393D53AB50EC3A1DA3E41E17A2A5D873DB51C9EA9D5A8761D16D23FF60F09D152EC47BB973C5C37D3E5C4D17F157A8B91452F017A8BA23C14F1193122C742D6190E8443444A1622C8954752D87393AC5B0D4BE96A510E72FA6472E45ACDC39B2A1A1AEC3F31B1A3A1C3AA96517DF714D57B996F314567B8863CD9235F887A9AFA8F7B33712F7B306A33BF494C6289B2897396CDEF299BDECE9C548AA4CADB1E5A95C9948623623198ACA4696E292D8AC60CDC83CBD97F4A8D9653E23B45EC235B90797B2FE991B2CA7C4768FD889C3C7728BE8F3693820E50633AB4FB4F553CAB820E50633AB4FB4F55382727BFC17949245031D460149BFA43606B929889921B0326327A889EA4A605588B21CE5717B8B20F504F25B0E72D455065B0E6351CAAC43C4489647435CF9252D0969EF0E6449A864822C4D81EE349B158AD8CFF00788C683B28B88C67BD08F70D1BB15B2B6C66CAE4CA44F22C995B63499549EA5B14722B6553634995CD95C5CD9926CA66C69BDC5329158E6CA224CADB25B2B6CAC43282E25C1B15B1E23626E45C5BF982E3A560B80BE80B9A4D93721B0B90D9A3679FF098EF9AE17ABAED66D6AFC86CEF453ED353C25BBE6B85EAEBB59B6ABF21B3BD1CFB4F9FE27F22FCBE8B84FC7C7E1EAFC18F96F69FA6A3FA59E8479EF063E5BDA7E9A8FE967A112D7F32AF874C480011380000000000000000000000000000000000000000000000000000000000000D06DD724337EAB3EC37E6836EB91F9C7559F60D8F5465E4F12DA8E4F54EAD43B0E8B69790984E8A9761CEED4727AA756A1D8743B49C83C2F454FB0F772E78B82FA7CB89A5E0AF516A7A94D17F157A8B90C6344B398AE2C788B587432110D11283A2D8739544B224EB1740C8818F066453D48E45ACEC3EA8D8D1D0D76196F46C29688E1D5258BB98C7AEF732F7A18D5DEE64B0E6CD9AEC43DECC1A8CCBC43DECC39BD4EFD3E4A63144DEA5127BCB66CA65A9D389A2B96856D8F2656CA4315B2B63362B1C1456C61460CDD9FF002F65DD3236794F88ED1FB11359B3FE5ECBFA546CF29F11DA3F6227071BCA2FA3CDA4E0879418DEAD3ED3D50F2BE0879438DEAD2ED3D4CE1C793DFE0BCA300B721B35D46B85C4B85C3607B9298972530D9875A0E9FDE5698C983164596C194C596C1EA09E4BA0F722D8EA5307A1740D4325B1E72C4571E72C8A310C8C96A36E21684DCD4A8FB4524566B362B14611B1A0D8AD88DEA33656DD87C594ADEE2A931E4CAA4F7948964593299B2C9B299B2D8A19124CAA721A5231E72D4AE2E6C8B29154A5A932915365B18E7C8362360D88E456446A6E2B62B64363C4AC4B641045C689D86DC45C5034961805B85CD6381E12BCA986E8176B36D5BE4367BA39F69A8E127CA986E8176B36F57E43677A39F69F3DC57E4DF97D070BE462F57E0CBCB9B4FD351FD2CF423CF7831F2DED3F4D47F4B3D0896BF9956C3A62400089C00000000000000000000000000000000000000000000000000000000000006836EB91F9C7559F61BF341B75C90CDFAACFB0DC7AA32F27896D4727AA756A1D8743B49C84C27454FB11CF6D4727AA756A1D8741B4BC84C27454FB11EF65CF170E5E9F2E268F82BD45A8AA8F82BD458B418CB10C98911D6825619683AD444F5190942C89644AA3A96C44AC5D0E732293DE63419914B5239319F867A1B0A7A18187E633E1A1C1A84D9637B8C4AECC993DC61D77B9898091AFAEF7B30EA332ABBDECC39B3BF4CFB299B29932D9B29933A313268E1B1188E377B519D5E2DB8DC5DF625E598FFA1D4FB8DCEC93DF8B57B5DC55C317B47DEF88AD45E11CBB9C9C78DC6D7D2676F2DF691498CDB7AD14F2EC7A4DF7A56B2D775CC393B369A69A7669EE68E970DB490AF5E14A7879535397154D4AF6662ED5D08254B12A295494B8936B771BD2363A97B526519719B6F1A89E0F130A4EB4A84D52B27C76B75BCE639D3E3657D9E96FFF000A3B8E5F990FA79F6A5194D99DB3FE5FCBFA546D329F11DA3F6226AF67F94197F4A8DA651E23B47EC44E5E37A629A3CDA3E0879418CEAD3ED3D4AE7967047CA0C67569F69EA2D9C58F27BFC1F950CD8AD90D90D9AEA35C2E5770B9A165C9522AB929EA63172632762A4C64EE696AF8B2D8331E0CB60F7813264C1E85D4DEA635365F4DEF311CA3222CB114C196C1EA0864B132458B2413A08245B9AC2B12633D188C6808D95C9EA34995C98F896F2249EA55263CD954996C51C95CD94C9EF2C9B31E72B5CAE286449CBD263CA5BD8D29144A45F18E7C84A456D84A456E5A95C5CF906C5BEF6436237BCA44723362DC2E2DC74E9AE45C8B917DE344E988BDC8B85CD2D4DC08B90315C1F08FE54C3742BB59B8ABF21B3BD1CFB4D3708FE54C3741EF66E6AFC86CEF453ED3E778AFC9BF2F7F869FD0C5EB1C18F96F69FA6A3FA59E8279EF065E5CDA7E9A8FE967A111D7F32AB874C480011380000000000000000000000000000000000000000000000000000000000000D06DD723F38EAB3EC37E6836EB91F9C7559F61B8F5465E4F12DA8E4F54EAD43B0E8369790984E8A9F61CFED4727AA756A1D8741B4DC85C2F454FB0F7F2E78B86FF00DB88A5E0AF522D4CA69782BD45C9EA06322C5A15A1A22D61E23C5891190942C89644AA25B127905B0E732696A635332696A4720D861F98CE8686161ADB8CC83DC706A732EC693DC61E21EA6549EE661625EE6661CC48C0ACF7B3126CC8ACF7B3166F53BB032A9B296CB26CAA4CE8C4377B28ED2C57B5131302A2F692BA946324E53DCD5D1390E370F8375FBE66E2A4D38D95EF631B098BA34F3AAB899C9AA326DA95B54C5DAEF92BE1B45B9DA8C73AC2F12318AE2C5D92B2D4B36A9DF094BA4661E698BA388CCE856A5372A70494A4D5AD66367B8DC3E2E8421879B94A33BBBA6B71B25DF11BCDAB3318EF914BA247369EE46E3138EC3CF2B742351BA8E0A3C5B3D4D37314D1964BBB3267ECF72832FE951B4CA7C4768FD889ABD9EF2FE5FD3236994F88ED1FB1139B8DE987D1E6D0F049E5FC67569F69EA0D9E5DC13BB67D8CEAF3ED3D39B38B1E4FA0E0BCA896C86C86C5E30CEA33647184B9173760B38C4A6557254B5358BA2C68CAE529EA32919B176644245D0662C25A975396804CA32A9BDE5F07BCC483DE6441EF33647265419741EA62C197C1823945C894F5160C64CC4EC17158C2B061595C98ECAE5A8F18ADB2A9B2C97394C9EA5212AB9B29932C93D4A26ED72B8A391272316ACB79655958C59CB7EA74631CF91652299486948A64CBE310C8362364498AD9588642E2DC1B16E3C4AA6E43643645C689535C821B06C64EA408018A90208B9A570BC22F9530FD02ED66E6AFC86CEF473ED34BC223BE6987E8176B37557E43677A39F69F37C57E4DF97BDC37918BD5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4225AFE65570E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD0EDD724337EAB3EC371EA8CBC9E23B51C9EA9D5A8761D06D2F21709D0D3EC39FDA8E4F54EAD43B0DFED3721709D153EC3DFCB9E3F0E1FFF00AE228BF8ABD48B514D1F057A8B501AAC8BDE321223A16B0C87422D07893AD3C596C39CA9164751320BA064D2D4C58332683DE8866366C70E66C7430B0E65C5EE383539B76137B9983887A99951EE660E21EA6E9CF11B306ABDECC59B2FA8F7B31A6CEFC02A9B2A93B8F27A9549968092D0ADB1DB2B6CA4051496C56C78102937219A19FB3BCA0CBFA546D729F11DA3F6226AB677CBF97F4C8DAE53E23B47EC44E0E37A62BA5CDCF7052ED9EE31FF00F1A7DA7A5F18F31E0B5DB3DC67579F69E93C63930E4FA1E0BC98B5C85E315B910E43BA8FC60722B72238C685B70522AE313700B94864CA14B51A3202D8C98CAE5B4E5A98B0916C25BCC258CC84B9CC884B9BEE30E9CB73DE5F4E5AEF312CA32E9CB53220CC3A72FB999107A188E519307A8E994C19626625619B0B8730A05D8AC493D4693124F78F18AA6CA26CBA651365314F2553663D476B974DEA625695932D8447251565A98D290F396A63CD9D58473E48948A9BD49932B6CB628E424C46C1B15B29221925B21B16E171E44AA6E4377208B8C9586B85C5B85C64EC300B70B9A5A6B85C5B917358E1B8437FD6787E8176B3795BE4367BA39F69A3E105DF33C3F40BB59BCABF21B3BD1CFB4F9CE2BF26FCBDBE1BC8C5EB1C18F96F69FA6A3FA59E8279F7063E5BDA7E9A8FE967A091D7F32AD874C480011380000000000000000000000000000000000000000000000000000000000000D0EDD724337EAB3EC37C6876EB9219BF559F60D8F5465E4F11DA8E4F54EAD43B0DFED3F21B09D153EC341B51E40A9D5A8761BEDA67FEC3613A2A7D87BD973C7E1C4E2293F8ABD45AB429A5E0AF522D4F531AB223474110C85A0E878B2B4C64C4AD588B62548B63A93C9BB2D81954353160F43268EA4336ECD95032A2EC8C4A0CCA4F71C59B642D47B99873E2B73EE96B2D2FBB799551EE6606258DA5CDBB29A94A9B6DCAA28EE57B3DC998D2A7455F8D2927BECAEBEFFB48A9CE63CEDBCEDC614D5214A3561152528B8B7BDEEBF31577384DFF0038E34E4D7C6E2BDCBD24AA519C62B8CD4A57B596E2B961A4AFF1A17B5FEDF3159F2113A746DBA72DDBED72B74A9BBF164D356D5EA4BC3BBADF14DABA4F5B15CB0F3DF6941FFA79AE3CBFB80E9516DAEE96B6EBBDE98BDCA167795BD0DDD91DCA3C64B8EADC56F8C96E4CAE74A508F19DADCCD739BFC83CA9D3724B8D64D79F41153A6EFF0019AB5ED77AB0951B2DCEEDAE32BAD10AE8BBA5C68BBF83E91B7FDD8CED9C4BE1BCB9AF09D657F41B4CA7C4768FD889ACD9FA5C4CFF002FBCA2EF5798D9E53E23B47EC44E3E33A67CA9A5CDCD7060ED9DE2FABCFB4F44E31E71C1ABB6758A7FFC79769E83C63930E4FA1E0BC98B78C1C62AE307187766CB2E172BE30718D62CB92A455725301B2D4C68CB52A4F519335957C1EA5B097318B096A5B096A04B1974E464425AB30A12FBCC8A72153B19B4E5F71914E461425CC6442574654B28CC832D8331A94AE5E98A8E5162617213DC0042CB52B932C9685531A16AB97398F365F2D0C7994C53C98F55EA60569DDB332BCAC99ADAB2DECEAD38866AA6CA252DE5927BCA64F79D58B9F22C995B64B62365644B24362B60DEF16E5223926E17148BEF1D1A6B904117353B0C02DC2E6A74C1716E1734A6B90D90D91736336711B7EEF99E1FA1F7B37D57E43677A39F69A1DBE77CCA8742BB59BEABF21B3BD14FB4F9CE2BF26FCBDAE1FC98F58E0C7CB7B4FD351FD2CF413CF7831F2E6D3F4B47F4B3D088EBF9955C3A62400089C00000000000000000000000000000000000000000000000000000000000006876EB9219BF559F61BE341B75C8FCE3AACFB0DC7AA32F27896D4727AA756A1D86FB69F90D84E8A9F61A1DA8E4F54EAD43B0DF6D4721F09D0D3EC3DFCB9CF871386A5E0AF516A65545FC55EA45A8C69E23AD195A1D0B5A74C642A1A2C9DAD5907A9640A916C04AD5D4CCAA3AA30E0CCAA3A90CCD1B2A0F723213DC62D07B8C84F71C39733C85A8F7335F887A99B55EE660576534C58C39BD4C793D4BAA3DECC7933B71211CE6A0E0A4D45EA915BAB34EEA4EF6B7D84CDEE2B6CAC850EACD41C2FABBDF9CA9CE566AEECF525B2B6C79181D49F194B8CF8C9597F015CA4D24DEEBDEFE7F48362B1E4605392BEF7BDDDFAC1CE6EFF19EF179C837681B1D9C9379FE02EEFF00CEA36D94F88ED1FB11351B37CA0CBFA546DF29F11DA3F62270F1BCA2BA5CDCA7072ED9C62BA09769DFF18F3EE0F1DB37C4F432ED3BBE358E3C393E8F819FD18BB8C09DCA94B5278C3BB365B70B95A7A937199B2CB9299527A8C980D9626327A95A6327A9AC5B16590914459645EF605B191076B9910958C484B52F83313B1994E574645391854A563269BBA312CA3320F7DCC8A72BA30E9CB53229BB5C44B28C98B26FB8483BDC6BF36BE6312A86572E732961A7C5E35470A51D571DEF6847470FF4A8A7ECBB1B13B5872D0C6A9CE6C2784ABC473A6E1562B7B70776BEC35F55EE7FBCAE04AC1C54ACAC6BAA3DECCCC5CB798151EF3BB4A7839F35337BCAA4C793D4A9B3A7188D856C46C66CAD9489543645C1B16FBCA447282E0D91721B192C9370B8A17191B121721322E6A76181B16E00CD92D91722E45CD1B38CDBD77CCA8743EF66FEAFC86CEF453ED39EDBB7FD6343A25DACE86AFC86CEF453ED3E738AFC9BF2F6343C98F57E0C7CB7B4DD351FD2CF423CF7832F2E6D3F4D47F4B3D088EBF9954C3A62400089C00000000000000000000000000000000000000000000000000000000000006876EB9219BF559F61BE343B75C90CDFAACFB06C7AA32F2788ED4727EA756A1D86F76A390D84E8A9F61A2DA8E4FD4EAD43B0DEED4721F09D153EC3DEBCE7C389C352F07EC45C8A68F82BD45AB43218E98CB4122CB222569931908868895AB625917BCAA2CB20F51299753D59954753129BDE65D12199F18D8517B9175F718F45EE2EBEE38B2E6ACC55D57B8C0AEF7B336ABDCCD7D77A95D29E25CA316A331E6CBA6CA24CECC52AAE5CE5526592654D94852362DC6656D94854315B245B8C03D4525906B1B1D9BE5065FD2A36F94788ED1FB11351B35CA0C074A8DBE51E23B47EC44E1E3394F9574B9B8FD8076CDB13D0CBB4EE948E1360F766B88E865DA76E99C31F4DC04FE84FE5627BC65229521931E5766CB53D494F52B4F5193198B13D464F42A4F51E2CDDD9B2C4C64CAE2C74F53594E99641EA56868B02D8BA0F52E8331E0F52E8BD009632A9BBDCC8A5230E9BB1914DEF312B19906645396E3129B2F83DFEB152CA32E12FFD2F499CBFA328A5152C4C96EDD7505FC4C5C0252ADC796F8D38F1D97D0A8E346A629BBD59BE2C1BE6F48B5CF9FB1A70A54DB78A9CAA56D5C22F4F43652EDDD3BA77BCDD3FF46FB7DE5E977BC609478F89A8AF77BF8A9FBC971C671ADDF10753E6F8DBFD409563429C2ACB8D82A93A75D6FEE7276BFA1328ACBBF6153E2A86329A6DC52B2A897BCC8A89626137C5EE78AA7BDDB771979FD68C6C6D56E951C7C375684946A5B9DF9FED298732D73B8895DBB68615466D7398469E327286E8558AA892D15CD54F9CF474FC64432F1512654CBA5CE5323A714AAB62B634B411948964516E4B15B2911CA0B904117192B137022E45CD4724DC8B917DC06A7626FBC2E2917066C9B8362B64360DD9C76DCBBE6343A25DACE8AAFC86CEF473ED39CDB77FD6343A25DACE8EAFC86CEF473ED3E738AFC8BF2F5B47CA8F57E0C7CB7B4FD351FD2CF423CFB831F2DED3F4D47F4B3D0496BF994F874C480011380000000000000000000000000000000000000000000000000000000000000D0EDD724337EAB3EC37C6876EB9219BF559F60D8F5465E4F11DA8E4FD4EAD43B0DEED4721F07D153EC345B51C9EA9D5A8761BCDA97FEC3E0FA2A7D87BD9739F0E270F4BC15EA4588AA8F82BD48B50A73A1D15C58EB462D69D31931131A2C4A65912C8739522C8895B22E86A65D07BCC48332A83D0E7CD5C633E93DC8B2E5349EE2CBEE392AD22BAAF73302BBDECCCAAF73302BBDECB69426518D37A9449EF65B2653267562858AE4F795B1E4CA9B2B094AD8AD8CD95B63B1043617218CC4360041A1B1D9AF2FE03A546E328F11DA3F6226A366794180E951B7CA7C4768FD889C3C6729F2A697371BB0CED9B623A29769DA27E9389D8776CD311D14BB4ECD3F31C12BEA3E9F3FA13F95A9F9C68B294FCE3C5EF66BB365B1632657163458D2B365898D1DDA09163458CCD96263A2B4F51E2CDDD8B20F51D6E2B459166969E25B06548B6204ABA0CBE9BD0C6832FA6CC4EB2A9BD0C8A6CC4A6F98C8A6CC4AC6CB0524A9E277A4DC375F9F797A5FD1B091FF54AFEBDE6BE8A8CA4949F1637DEF5B7A4CF6FBE27274DF128D08DA327FF00ED58BB39F39E2CA4ED986225FE98BB3F318AE9A5868D6DFC794EC9FA376F1E94B8984AB51BF8D51F155F57E77FB8B2A5376C2E1F9EDC66BD6CC885F012DD99C5B69370BCAFBAFB8D656DD95633CDC75EF3615E11AF571351B6A305BADCEFCC606317172A5BECEAD4BB5E84530E709E8D566FE060D73AA3BFEF351336598D6589AB19422E318C14145EFD39CD74D1E969F8446C63C96F29922F9A2A923A714EC52C4F3A458D08CA62958AD8A3B5BC4652259428AD8CC5191C80B725B20D4AC0D91721B0B9A9D808BEA45C8B98CD92D91721B16E6364723B6CEF9850E8976B3A4ADF21B3DD1CFB4E6B6D1DF31A3D17BD9D2D5F90D9DE8A7DA7CF713F937E5E9E97971EAFC19797369FA6A3FA59E8479EF065E5CDA7E9A8FE967A112D7F329F0E98900022700000000000000000000000000000000000000000000000000000000000001A1DBAE4866FD567D86F8D0EDD724337EAB3EC1B1EA8CBC9E23B51C9EA9D5A8761BCDAAE43E0BA2A7D868F6A393D53AB50EC379B53C88C17454FB0F7B2E73E1C739B85A5E0AF522D4CAA9782BD45898863C475A0911D682D3190D162A196A2D69D16C4AA0C783D49E478BE99954B98C483DE8CBA24335B166D37B866CAE0F70D7DC7355E29AD2DCCC1ACF532EABDCCC2AAF52DA6966C793299BD4B24F52A933A7173D5727B8ADB1E4CADB2B0856C5B8CD88342A1B149640CC4360041A1B1D9AE50603A546E729F11DA3F62269F66794180E951B8CA3C4768FD889C3C6F4C534B9B8AD89F2A623A291D8A671BB14ED9A623A29769D8A7BCF35F55F4EFC79F34E9964594A7BCB22C68ECD9645E83262263458DBB16A6326569D98F177363164478B2B8B1D33652D8B23CE58995C18EB534B5641EA5B12A896C4DDD3AB605D076B14C15916C4C255F07BD1914D98F4DEA5D0DCD0275954D9974AA4AA469E1DCE30A69DDCADCFE7660C1E85F17B811CB1DDB1F1997169FC4A14A364DE8979FD6C7C349A8D4C4D46DB8C78B16F56CC3A736A0E29B516D36B999729CA74E14DDB8B1DEADCFE915CF963E8B2AC7B9E0A14DEE9D57C66FCC8C1CDE51971614DDE9D38F162D73F9CCBA9294E5C69BBBB24BD5E63071ABE2329A7D513D9A3ACB7B312A233AB2DE625447A38259462CD14C96F3264B5289A3A714AA8922B68BA48AE48A44AAB656CB18852259105198AC64B2881408B9A8D88BEE21B06C56CD26C1B16E1722E05D85F7B21B0B8AD986727B67E3F47A25DACE9AB7C86CF7473ED399DB1F1FA3D17BD9D355F90D9DE8E7DA7CF713F917E5E8E97971EB1C18F96F69FA6A3FA59E8279EF063E5BDA7E9A8FE967A112D7F329B0E98900022700000000000000000000000000000000000000000000000000000000000001A0DBAE47E71D567D86FCD06DD723F38EAB3EC371EA8CBC9E25B51C9EA9D5A8761BBDA9E43E0BA1A7D86936A393D53AB50EC375B57C89C1F434FB0F7F2E73E1C71C3D2F057A8B1685347C15EA45C8487321D3DC22193DC2D6C3263A6245EF63216B5622C895447893AA45F4DEF665D130E1A99545E84335B06641EE25BDC2434093DC73BA229AAF7330AABD4CAAAF7330AA3D4BE9A1A8AA4CA65CE593655267462E7AADB11B1E4CADB290856C5B92C5B8D0A86C86C9B8ACD606047301A1B3D99E50603A546E328F11DA3F62269B66394180E951B9CA7C4768FD889C5C674C534B9B89D8CF2A623A29769D8459C7EC6F94EBF452ED3AE8BDECF32F37D57D37F1E7CD58868B11730C8D76AD8B1915A1E2C6942C8B1D15A2C88C55911E2568B2205A74590DE568B61CE6929E1B8B225712D89BBA756C5F316C4AA2B732D873816AE8739741E8514F465D07A06E9D6441EE68BA9BD518F065D066A75934DEA5F0663D37A97C1DD0B50CA2CB18B8C5FCD332D6F4538B8FF352371BFA92682B231268CEAB1D4C5A8B53D2C2A59461CD14CD19335BCA268E8C6A3631DA2A92D4BE4B7954D15952AA588F52C68ADA292A59456C563CB5118F12CA1188C76C466A3615B16E35C4B9A5A2E45C2E2B6697645F790D85C56FCE635CB6D83BE3E9744BB59D3D5F90D9DE8E7DA72FB5FE3F4BA25DACEA2AFC86CEF473ED3E7B89FC9BF2EFD3F2E3D5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4225AFE65369F4C480011380000000000000000000000000000000000000000000000000000000000000D06DD723F38EAB3EC37E6836EB91F9C7559F61B8F5465E4F12DA8E4F54EAD43B0DD6D53FF62B05D0D3EC34BB51C9EA9D5A8761BADAAE4560BA0A7D87BF9739F0E38E1693F8ABD458995D27F157A916264E1CE868BDC22D068B329A1D0D162263216B62C8B2C87395263C593AA45F4F432E9330E9B32A93219AFA719507B8893DC2A765A9127B88AEA6ABDCCC3A8CC8AAF53166F797C239F3552655263C995C9978E7C88D88D8CC46C78428AD8CD8A3950D90D8322E68170021B06367B31CA0C074A8DCE53E23B47EC44D2ECC728301D2A37594788ED1FB1138B8CE98AE973711B19E53C47452ED3AF4F79C76C7BE2E6D557FAA9CD1D823CDAFA8FA6F913E4EB46344488E8C771E23A1223A342C89644AE1CE3C462AC8EA3AD048EA3AD062D5902D89544B6204AB22590E72B896C10275644B625712C8E8612AE87396C39CA69E8CBA1CE6956C19741FDC530E72DA6FCE692B229BDECC8A7CC62C39CC9A4CCA8E519104262237A525E81E1A0D515E0FD42CBE28DE6E7AB477B312A233EBC6D27B8C4A88F4B4EF81328C29A289232E68C79A3A71A86518B245334644D14C91688E4A648A59749154B4292A39456CADB2C96A572D0789523623633623D474EC2DC56EC0D8AD9A4D8362DC1B16E6B361716E1715B358E636B5FF004EA5D17BD9D4D5F90D9DE8A7DA729B54EF8F82E754D76B3ABADF21B3DD1CFB4F9CE27F26FCBBF4FA23D5F831F2DED3F4D47F4B3D08F3DE0C7CB7B4FD351FD2CF4225AFE656E9F4C480011380000000000000000000000000000000000000000000000000000000000008E6345B70AFB219BAFF00E2CFB0DEF31A9DAB8774D99CDA1ADF0953F4B371EA8CAF0ADA8E4F54EAD43B0DCED5F22F03D0D3EC34DB4AEFB3D51AE7C2D07DA6E36A1A96C46024B4EE14FB0F7EF39F0E38E1A9782BD4588AA93F8ABD48B13270E74C75A15A63A62D343263C595A7A8D17B9994F16C474CAA23C593A7C57D37BD1934DEE3169B3229BD48E6E8D38C84F70AD85F70927B8945EC555598937BCBEAB31A6F797C5CDA84932A6C7932B6CB473D2B62364B62B6392948245B8C40D901721B000000D6367B2EBFAFF01E8AA8DCE51E23B47EC44D3ECB797F057E6A88DB6512BD1DA3A6BE694BF79C5C674C534B9B80D97A9C4CF285DD94A5289DC2479BE1AB77BE2E9D6E7854E36ED753D214D544AA41DE334A4BD4CF36BE8FE979CBA771F6A6899786C229D0789C4D68E1F0FC6E2A9B57737E8461BF059D061A14A79C61615945D386162E845E8DFF001B83D0CF2DA30E960F0F896E397E29D4AC95D51AB0E2B97A8C58F3A69A69D9A7B9A6741B4508470B4AAF1547131A91EE2D249B77D0D5E6AA2B31AD6D5D9CBDAB6F0269E7DA63C4788B14344D52AC4591116A3C4D2AC8964445A1644094F12D822B822D8012AC896C4AE08B23A984AB63B8B625712C89B2956C16A5B12A87397439CDDCB62D817D37BCA21A97537BC374EC65D32DB5D14D2664439C9DA8653C5A3C542D392F4B30AA46F736B8F8DAACFEF35B511DFA596F23328C3A88C69A33268C69AB33AF0A8651893451232A68C69A3A31AE7CA289A2965D32996A5314728A595CB52C96E2B96A522562B6C46C69311BDE5212C2C9910A756AB6A8D39D46B5E22BD886CDE6CBCA70A18E9415E495E315FDE76666797666E5D98AB6771D2A7C6E351526AFDCDCB79AAAB46B5176AD46A536DB4B8CAC9B3751A586A994CF32AB8DA91C6A4E4EA71EDC49DDFC5E2FEE1B692AD4AB95602A56569C9DE49F33B3131CF2ED495971F073C2DC1B04D2777A2DECE92393DA5971B34AB677B4523B0ABF21B3BD1CFB4E0B1D57BBE26BD5E69CDB5EAB9DF5457A5B3CB9FB9C9FEF3E5B573EDEB5CA7AD7749B6323D5F83156CE7699F3776A5FA59E8270DC1B52B62B3EABCD3C4C23F747FF00677266BF99461D31200044E000000000000000000000000000000000000000000000000000000000000030F34A2EBE598BA31DEEA519C17DB168CC000F9DF3CA7C7C8B89ABEF3B5BD309491958AABDF7C1BE06A6AE145465F61919E60FBDF178EC0CDEFA18AA949F9B8B517193F55DB35FB25378CD90CC32C9BBD4C25592B3D54657F79EF4CBB531BEF1C7B6D5CAD077827E82E4CC5C33B45C5EE69B4FEF32622C39D3193D444F5193329A1D3253113D464C5A78B22C68B2B4C64C4AA62C8833229BDC62C197C1EE239474E9C5F7B0B290BC6DC24A5B84916B15D496A63499654914C996C6393385932B6C66CADB2B1CF50D8B725B16E32750403628CC00C2E403000100C67E4557B8E6D84A9CD1A89FD9737D97D2EE79E67785BD9CF0D34979ED2472B464E156138BB34D3B9D4E26BC286D2659995ED431D4946525A71A49A6BEF68E6E2F1DF4F7F63E9DDB2796D456AB522F9A6D7EF3B1D94CC162B07DE951FF003F415E09EB287FE8E6B3EC33C1E738DC3CB7716ABB7A7798B87AD530F5A1568CDC2A41DE325AA6798F4385D7BA1A9DAF4F57A6233686268CA8430F8DA739D383BD2AB4DDA74FD1E9473F92E7787CCA2A9CDC6962D2DF06ECA7E95FC0DBA567669A6BCE2BE8B0CF0D5C7B58DDE3610C4E1684D56A3DDF15885E04F10FE2C1F9EDCECC54E5394A736E536DCA527AB6571E72C4C0D26C743C74122878B360A745B0D0AE0B52C8816D5912C895AFDE5B0404A78F98BA0B52B822C82D4C22D873964115C116C4095644B2257045B15BD8316416A5B05A95C16A5B10DD8B208BE994C39CB601B92C64D2664D37B9989499954D8B9239461E631F8E9F9D1ABAB1DECDD63E37845F9B71AAAB1DE74E865E05F460D45A98B5119B5118B511DD854B38C39AD4C79A32AAA31E6B71D38D73E518B3451232268A268B6286518ECAE5CE5B34553E72B12B14CB42B932C96A5732913B08CCCCAF33965DDD6D4954551A7AD9A309BDE2B635C659B52726CE59B60E55FBE2594D375B8D7E3393B37EA28CDB3796634E9D3741525093937C6BB66BDB177BDD6BB09A78CBB96DA86CD567F8EEF6C33C3D37FCF55567E78C7FF65D99E69470319422D54C45B7416F517E77FC0E52AD59D6AB2AB564E5393BB6F9D9C1C77198E18FDBC2F8DFF0A6969EF77A4B6EB2F3D97DE7A3D38F74CCF25C1ADEE9E1E1297FD52470197D1788C761E8C55DCEA25FBCEFB27AF0ABB438CC75D2A38283E2CB99AA716BB523C5D29BEA48E8CAED1ECBC1A45BCAB1F5E5AD6C7D4927E84A291D89A0D87C1D4C0ECBE5F46B2B5574F8F3F5C9B7EF37E66A5ED6768C7C2000010C000000000000000000000000000000000000000000000000000000000000000000F2DE1472FEF5CDF0D8FF00030B9841616B4D2DD4EAA6DD393F5DDAFB0F39C0635E49B4BDD6B2E2E1B1CBB9D78BDCA13BEFFB9FEE3E82DA3C970D9FE4F89CB318AF4EB42C9AD62F9A4BD299F3EED0E5F89A189AF93674B899850D2A3DCB1115E0D48FA6DAFDA7A3C2EB6F8F62F39C90D4C7C776067B83797E6F5E9FF87525C783E67731E12BAD4BE9E2FBF706B018EDD8BC3AB529BD671F37ACC2BCA9DAFBE2F49737FF00F4EDBB5F185DFDD9499299446A26B51D4C5345C992A5A94A992A666C7962F8CB51948C753255533B2A639466425A97427BB53021551646B25CE25D37569EA6319BC7F4893998DDDD79C59565E733EDC52EAE1B2C9C8A65216557D257DD0798C8E4CF394CD8AD8BC715CC6D90B9435C56471C8720D93B52411C6238C6B0C405D11706248BFDA1744718189375414B34C82B6054AD89C2375F0ED6E6E37F8CBEC767EA46938C5D83C555C2D7A75A84F89520F8D093DEAFE67E86B73F58B963329656CF0AC0DA49ACC6961F368AB546BB8E2A3E69C79FED566684EA739A54DF76CC3014FF00A356F8B8CC2F3D1979FD5CE99CC4E3C5764F8D1E67E747919E170BB574E3779B953B3DDBB7DF76A8DDE0369F31C24542738E229ADC955DED7A99A40136574F573D3BBE376763436CB0CEDDF1829C3D34E57ED3329ED7652FC2EF88FAE3738203367563F50D79CF6AF448ED664CB5AB597FDB196D6648BFC6ABF86CF3900D9BFEA3ADED1E931DAFC8D3DF5EAFE1B196D8E44AFF00CFD6FC3679A01A3FD4357F67A7C76CB205FE3D6FC363C76D767D7F98ADF84CF2D0319DFF0057F67AB476DF6796B88AFF0084C75B73B3BF49C47E133C98036677ED5F68F5D8EDE6CE2FF335FF00098F0DBED9A5AE2711F84CF1F00D99DF753DA3D8E3C206CCAFF3388FC16591E10F6616B89C47E0B3C600361DF751ED4B844D975FE6711F82CB23C236CB2BFF004AC47E0BFE07888048CEF9A8F718F091B2ABFCD623F05FF01E3C256CA2D71788FC07FC0F0B00D99DEF51EF30E13B64D7F9BC47E03FE05D0E14F6457F9CC4FE04BF81E0001D985BC4E75EFF005B851D909D3B77E626FD04BF818153848D949698AC4FE03FE078780D8DECF264E2338F689F085B2EF4C5621FFD96513DBED997FE6711F82CF1E02B35B282F11957AD4F6E7671E988AFF84CA25B6BB3EFFCC57FC2679600F38ACE13EE5AF4C9ED9642FF00C7ADF86CA67B5D91B6FF009EADF86CF3901E71BA9096EEF4196D564CFF00C7ADF86CAA5B5193BD2B56FD86706037FA86AFB42DC77770F69729F9EABF86C57B479537F2B53F619C480DFEA3ABED19D88EC9ED1658FF00C4A8FD502A9ED1E5F1D1567FF4D8E4803FD4B5BF62FDBC5D1D5DA7A5BFB8E124FD33958D762F3CC6E222E2A71A307B9AA6AD7FB4D6811CF8DD7CFC2E4D9A78CF41E7F3EBE9600095FF0089CA76C328A9DEB2A98C4AF38AE2504F9E6FF81E85B1392CB112CBF2851E355CC66AAD76D3F8B87834DB7E6E335FBCE2323C2D394E18BC6C64F0D4A4A34A9457C6AF3BEE8C57A7CE7D11C1A6CCD7CAF095B36CDA0A39A63D27282D28525E0D35EA2F87F4F1B9DE7E84B3B57676B4E11A708C22AD18A4922C002070000000000000000000000000000000000000000000000000000000000000000000000001CB6DD6C6E0B6B72F54EB3EE38CA5BF0F898EB07FC0EA09096CBBC0F94768F28CCB67F1AF079FD194249FF358B82DD357D6E62D3751273F9484B59C37A97A5AF39F5466B94E0337C2CF0D9961A9E228C959C671B9E5B9FF00035DCE73C46CBE3A541BDFDED5F7C7EF3B74B899CAA5961BBCAE31A73B712AAA6FFD32DCAE3C68577E0F7397A548DF63F65769F2DA8D661B3F2C4C63FE2E19A69AF51A96E8C5B55F2ECC68C9733A0DA475E3A98DF54FB362A585C53FF0BFF22561715F35FBC5589C325E2F8B4D7FC965F1AD80714E5471D7B73507629DBC3DD9B64ABBD317F37FF9077AE27E6FB0B7BAE5FF00358EFC061DD72FF9AC77E030FB987B8FD4AFBDB13F37FBD11DEF8BF9BFDE8BBBAE03E6B1FF0080FF00891DD701F358FF00C066FDCC7DC7EA55DEF8AF9BFDE43C362DFF0085FF00922EEEB80F99C77E030EED80F9AC7FE03FE267DCC7DDBBE4A3BDB17F35FF009077AE2FE6BFF22FEEB80F9AC7FE5D8775C07CD63FF01876F0F767EA63F7A62BE6BF7A0EF4C5FCD7EF464F75C07CD63FF01FF123BAE5FF00358EFC06676B0F71FA98FDE98AF9AFFC88EF4C5FCD7FE464F76C07CD63FF0001FF00127BAE03E6B1FF0080FF008876B0F71B64C4EF4C5FCD7FE41DE98BF9AFFC8D961A851C527DED82CCEA25AB8E1E4D22EF8367FEEDCD7F2CCCEDE9FB8DB269FBCF17F35FF920EF3C5FCD7FE48DC7C193FF0076E6BF9661F064FF00DDB9AFE59876F4FDC6D934FDE78BF9AFFC90779E2BE6BF79B8F83276F26E6BF96661CE582A7370A943308C96E69E1E49A61DAD3F71B64C3EF3C57CD7EF0EF3C57CD7EF32BBAE03E6B1FF0080FF0088775C07CD63FF000186F87B8FD4A69E1716E49D9D2A8971635534F77FA64B9D7A0D4E2B04E15DD3AB0861EAB775096FA73F4A66F3BAE03E671FF80FF893DDB2F70709E1F19520F58CF0ED93D4C34F39CCD8DCA399A981E237DDA35284BD2B8D17F68BF07D593FE66A50A8B5569A4CDE38C293B65F5317087CDE270EE505E81A34AA49375727EE91D78F4134FF007A47165C3DF4AACCDA17966357F80DFA9DC8F83B1BF45A86F652C1538BE3E07194E4B99C1DBB48856CB5C95E8E252BEFB41DC5EEF9FEC3B71A3F8371DF45A81F06E3BE8B50E8F8D947CDE37F0D871B28F9BC6FE1B0EEF9FEC3B71CE7C1B8EFA2D40F8371DF45A8747C6CA3E6F1BF86C38D947CDE37F0D8777CFF0061DB8E73E0DC77D16A07C1B8EFA2D43A2E3E51F378DFC360A5947352C63F55361DDF3FD876E39DF8371DF45A81F06E3BE8B50E912CADE9431EFD545B0B659F318FFC161DDF3FDBFE476E39BF83B1BF45A81F07637E8B50E92D967CC63FF0585B2CF98C7FE0B0EEF97EC3B71CE7C1D8DFA2D423E0DC77D16A1D25B2CF98C7FE0B0B659F318FFC161DDF2FD876E39BF8371DF45A81F06E3BE8B50E92D967CC63FF0005999472AA3561C7A596E6B28BD24B0D2B333EC65FB7FC8EDC71FF0006E3BE8B503E0DC77D16A1D97C0B1FF75E6BF96907C0B1FF0075E6BF96907D8CBDE7FCB7B71C6FC1B8EFA2D40F8371DF45A8765F02C7FDD79AFE5A42D4CA6952839D4CB7358C56F6DE1E56483EC65EF3FE476E38FF008371DF45A81F06E3BE8B50E91ACB13F90C7FE0B0B659F318FF00C166F77CBF6676E39BF83B1BF45A81F07637E8B50E92D967CC63FF000585B2CF98C7FE0B0EEF97EC3B71CDFC1D8DFA2D40F83B1BF45A87496CB3E631FF0082C2D967CC63FF00058777CBF61DB8E6FE0EC6FD16A07C1D8DFA2D43A4B659F318FF00C1616CB3E631FF0082C3BBE5FB0EDC737F07637E8B503E0EC6FD16A1D25B2CF98C7FE0B0B659F318FF00C161DDF2FD876E39BF83B1BF45A81F07637E8B50E92D967CC63FF0593C5CB3E8F8FF00C161DDF2FD876E39AF8371DF45A81F07637E8B50E92D967CC63FF05954A581526961B18D27BAF4A570EEF97EDFF22671A1596635FF0080D7A5BB11DE1522DF75AD429DB99D44DFEE3A1A71C0CE0DF7963E72BD928D16D19F82C9332C7A4B2BD97C4D4DF653AD1E2F687D8CA73B1BDA8E46960D4DB546352BCBCFC5E2C517E1B013AD89861E9539627132768D0A2AEAFE667AA64DC12E7D99CA32CF7174F0386D5D1A0AF2F57FF99EA1B2FB15926CC51B65B848F75FEF57A9BE72FB4CFD1873F11BDAE43835E0D5E5B3A39BED1716AE3A0BF98C3FF7287D9E73D500096595CAEF4D000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000532A1467BE74A9CBD714CB80031BBC709F46A1F8689EF3C2FD1A8FE1A2F00DE851DE786FA3D1FD841DE785FA351FD846400063F79E17E8D47F610779E1BE8F47F6119001B863F79E1BE8F47F610779E1BE8D47F6119001E23663F79E1BE8D47F610779E1BE8D47F6119001BD1B31FBCF0DF46A3FB083BCF0BF46A3FB08C8001B463F79E1BE8D47F610779E17E8D47F6119001E2094E9C29C78B4E118AF345590E0000000000533C3509CB8D3A34E52F3B8A6CB80031FBCF0BF46A3FB083BCF0DF46A3FB08C800DE863F79E17E8D47F6111DE585FA351FC3464806F431FBCF0BF46A3FB088782C23D70D47F0D19201BD0C37976065E160F0EFD74A3FC08F82F2FFA0617F063FC0CD00DEFBB3661FC1980FA161BF0A3FC03E0CC07D0B0FF00851FE065806F7DC6CC4F83301F42C37E147F807C1980FA161BF0A3FC0CC2037BEE36627C1980FA0E1BF0A3FC0165B815FE4B0CBD54A3FC0CB2437BEE36632C16116985A2BD54D7F027BCF0DF46A3FB08C800DDBB31FBCF0BF46A3FB083BCF0BF46A3FB08C800DC31FBCF0DF46A3F8688EF2C2FD1A8FE1A324037A18FDE785FA351FD845E924ACB72024000000008B5D120018FDE786FA3D2FD844779617E8D47F0D19201E218FDE785FA351FD841DE786FA351FD8464006F431FBCF0BF46A3FB083BCF0BF46A3FB08C800DE863F79E1BE8D47F610779E1BE8D47F6119001E2CD98FDE785FA351FD841DE785FA351FD8464006F5AC7EF3C2FD1A8FEC20EF3C2FD1A8FEC2320037A18FDE585FA3D1FD844778E13E8B47F0D7F03240370A2185C3C3C0A14A3EA8245A959592B2F40C00000000000000000000000000000000000000000000000000007FFD9, '1', '2023-05-24 14:45:54', '1', '2023-05-24 14:45:54', b'0'); +INSERT INTO `infra_file_content` VALUES (10, 4, '6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFFE003E43524541544F523A2067642D6A7065672076312E3020287573696E6720494A47204A50454720763632292C2064656661756C74207175616C6974790AFFDB0043000D090A0B0A080D0B0A0B0E0E0D0F13201513121213271C1E17202E2931302E292D2C333A4A3E333646372C2D405741464C4E525352323E5A615A50604A51524FFFDB0043010E0E0E131113261515264F352D354F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4FFFC000110801E4028A03012200021101031101FFC4001B00010002030101000000000000000000000001020305060407FFC4005210000201020303050A09090508020301000001020311040521061231324151617107131435738191B1B2D122333655727492A1C11516172334525393A2425663D2E1244354626482C2F02544267583F1FFC4001A010101010101010100000000000000000000010203040506FFC400251101010002020203010002030100000000000102110331122104134151142205326133FFDA000C03010002110311003F00E0A5CB7DAC8265CB7DAC823400000000000000020024DF043765FBAFD0140B8EA3765D0FD03765D0FD005B44437D046ECBA1FA06ECBA1FA0204A76D191BAD714FD05941B5C1FA028D73A2A59292E676EC21A6DE89FA008059465C5A7E825C5BE67E8028038C93E0FD04EECBA1FA00804EECBA1FA06ECBF75FA00807BF019363F31A55AAE128A9468DB7DB9A8DAF7B5AEF5E07AE1B299CCE2A51C3C1A6AEBF5B05F8846941BD5B239DBE186A7FCE87BC2D8ECF1F0C353FE743DE0DC6881B1CCF23CC72A8539E368C611A8DA8B8CD4AED7637635DBB2E87E80A00D35C535DA88024000000000000000000000000000132D74D75934E955AB7EF54E73B6AF762DDBB6C5D61312D26B0D59A7CEA9BF7018DBD2CD04AC8CCB098A7C70B5FF0096FDC1E0F16F4585AFFCB7EE08F3B6592B6A5E787AD49275A8D485DD93941ABF65CA36DE88071E7D0277D18B6960ECF4404356D5105AF67661AE740540014000000000000000000000000000000000000000033C792BB0C0678F257601865CB7DAC8267CB7DAC800000000000049B6924DB7A2480CB85C356C5E269E1F0D4E556B54768C62AEDB3E83956C265F97E13C37693131F829395353DDA70EA6F8B7D965DA7B76772CC26C7E413CDB33B2C54E09CAEB58A7C20BADF3F5F52382DA1DA0C6E7D8C75713371A316FBDD24FE0C17E2FA58476588DB4D9CCB2F4727CA6356DA6F469AA717E769B7E83C6FBA4CEFA64D87B735E6FDC70601A779FA48A9F3361BED3F70FD2454F99B0DF69FB8E0C034EF3F49153E66C37DA7EE1FA48A9F3361BED3F71C18069D9E3F6FE78DC0D6C33CAB0F4D558B8B9293BABF3AD0CABBA14E2D3FC9187D39B7DFB8E1F9C96EE81A777FA48A9F3361BED3F707DD1EAC934B27C3AEBDF7EE3834AFD859BB6881A77B81DB8C5633171C3E1724C3D5AD2BEEC5D4B5ECAEF8A36AF3CDA06AEF666834FFC589F33C062A582C6D1C553BEF519A9AB73D9EABCEB43EC143110AD461522F7A138A947AD3574215A98E759FC755B3746DE5A2CBACFB681F0D98A0FFF00ED136AE5BAEE9DD3E621BB7C2870E75D0546AFF2EED07F75E87F3A23F2EED07F76287F3A26DE3554BA9F413BCC0D3ACFF68570D98A0BFF00ED127F383687FBB347F9D136CDF5956C0D5FE706D0FF007668FF003A247E70ED0FF76687F391B46D90E5D615AB7B43B40F8ECCD076FF001911F9C19FFF007630FF00CE46D1C8AB6136D455DADC561B5CD7661C695B59536A492F45BEF2F470DB1DB5B070C3538E1B16D5D28254AA2EBB2D25F79B36D339FCEF66F0F8BBE27036C36322F7938E8A4D70BDB83EB445737B4DB278DC827DF1FEBB06DDA35A2B874292E67F7339F3E9FB2DB44F3175367F6861BD89B382752DFAD496A9F5F5F39C66D6E433C87369518DDE1AAADEA327AE9CE9BE95C3D1D2095A300050000000000000EBB20D81CC333846BE3A4F07877AA4D5E725D4B9BCFE836BB0DB3387C3E1567D9C462A2939518D4D1422BFB4EFF77A7A0D76D46D9E2B34AB3C365B52787C0A6D5D693ABD6DF14BABD2136DBD6CA7617257DEF195DE22B2D1C5D47395FAD42C979CF2BCC36053696535DDB9D45EBFD470E925CC4AB047D0305B45B1F808548E0B038BA31AA929A8C5FC2B5ED7F85D6CF5436BF66E3151861F1C92E0945FF98F9C2B17451F475B65B3CB851C77D97EF225B6591356852C727D717EF3E768BA03B7C5ED06CCE3E9AA78DC1E32B462F7A11945D93B5AFCAEB3C5E15B17F34623EC3FF31CC2B164C0ECA861F65AAD25523B3B8E9C24AEA4A9B69AFB44CF07B337F83B378D4BE83FF314D9AC43AB963A57BF7A9B5E67AAF5B36F049BD78222B54B07B36DDFF3731B6E7B537FE60F09B34E5686CE6352E8DC7FE636B39DDD970262B755DF10358B07B3092BECD639BE77DEDFF987826CB7F7671DFCB7FE63697B90D81ACF04D96FEED63BF96FFCC1E1365ADF26B1BFCB7FE6365717039FCA3019252C0A8667B3F8BAB88DF93725076DD6DB4B94B82B1EEF05D95FEEDE3BF96FFCC6C1B21B03C1E0BB2B6F9378DFE5BFF30F06D94FEEDE37F96FFCC7B9B22E078BC1B653FBB78EFE5BFF0030F07D94FEEDE37F96FF00CC7B1B22E078A543629AB62B2AC4E113FED54A75125E74DA45311B079466786789D9FCC2D7E09CD5485FA2EB55F7F61EF6CD7D5CBDD2AFE179555783C62D77A1C99F549706BCC070D9BE518EC9B15E0F8FA2E127AC64B58CD74A7CFEB3C27D73038DC1ED660AB6519D61D52C75257942F6EC9C1F47FEEA8F99E7B9462324CCEA60B11AEEEB09A56538BE0D7FEE8C11AF00050000000000000CF1E4AEC3019E3C95D80619F2DF6B209972DF6B200000000001D16C26591CCF69682A9152A5874EB4D3E0ED6B27E768E74FA0772E8C2952CD71924BF5708ABF524DBF52095AFEE8F9CCB1D9C7E4FA537DE307A349E929B4AEFCDC3D271E64C4D79E231356BD4779D59B937D2DBBFE26300000A000000000000B269A17B3D4A964D3D18438761F46D8CC72C5646A8B77A98696EBEB8BD57E2BCC7CE78761D0EC563BC173B54652B53C4C771DF85D6ABF15E7057D1145495D3B3E72272496EC7873F5959D48ABA8D937C5A14D27ABF3151782B2BBE24F7C4E56BEA63A952CECB898D26D5F9C0F43646F18235399FA4BB91059B21BD0AB6CAB605DB22E51B21B02CDF590D956C86C0E776B701254E19B611B86230CD394A3A3693D1F6A76F31B6CF5C36A7B9FC7328C578461D77C692D538E935D8D5DFA0CF5A11AD4A74A6AF19A716BA53D0F0773B6DE073AC9EB6AA0DD93EB4E2FD482BE6E04D6ECE4B9D36805000000000DAECC657F9633FC360DA7DEDCB7AA5BF756AFD3C3CE6A8EF3B95D08786E618B97FBAA4A09F426DB7EA412B37746CE37674F23C2350A708A95751D15BFB31D39971B75A384B1E9CCF172C7E698AC6546DBAD56525D4AFA2F32B1E62A04AD0C94283AADB6D429C75949F05FEA6C7058CC2E1E94A10CAE962AA6FB6AA566DA4ACACACB4E903589974CD86371786C4A829E5B4B09252F853A3749AB70B3D38EA78AAD2749A69A945EB192E0C022C994465A54EA5576A509CDAE2A29B7F70128B2656519D39384E0E325C534D32501BED96C46E62EAD16ECAAC2E975AFF46CEA1CB75593BB7CE7099757F07C751AADD929ABF63D1FDCD9DDA8D9DDF3700260ACAEF8966CAB6436455DB2AD956C86C0B37A10D956C86C0B3643655B0D812D90D956C86C0B3645C86CAB6059B0D946C8B81AFCDA956A6E9E67827BB8CC23DF8B5FDB8AE317D29AFC4F6ED8D0A1B45B1F433BC2C7F59462A7A6AD45BB493EC6AFE6659BBAB3E04EC6A53C167991D4D69D36DC13E684D3D3FF007A40F9782651719B8BE29B4FB480A00000000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003E81B074EA53D98CF2A4A2D46A516E0FA528C93FBD33E7E7D2F643E45637EAB3F5D4095F34041214000000003D982C2D3A94DD5AD7DD4DA4AF65A2BB6D9E33D384C5F788B84E2E506EEACECD3E0117C6E1614A11A945BDD6ECD377B6974D3E74D1E34AEEC8F462F15DFD4611838C13BD9BBB6FACF3A7669A03D980CB315984E51C3C55A2B572764AE7BBF3631FFBD47ED3F71E1C26635B09372C3CA506D59A56B3ED4CF5FE7163FF0089FD2BDC0F6CBF9B58F4B59517FF0073F7155B398E4D353A4ADC2D37EE29F9C58FFE27F4AF707B418D7AB9FDCBDC0F6CDF9BB98B5A55A7F6DFB8F3627018FCB2A42A4AA4A2EFF06709B766B53719362331CD956EF78CA74E54AD78CA09B69F3AB23D95720C662EA45E331D09422F9A2F4EC5A2B836DCE4D899E372CA188AD6DE71B49F4B4DA6FCF6B9EB52BCEEDD92D4C34614F0F86861E8C6D4E0925FEBD664516D5DE8822CDA9DDA566BEF215471766526ECECB40E4A564B8DB8819B7AE8872302938BB3D5176C0BB655B28E41BEB02DBC43651C886C2AEE478361B4DABCF12D138B76FF00B8F53679361BE55E79F41FB407CEAB7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9C371C9F3E92766A9269F64667047D0FB9FAFF00F19CE5FF00872F6184AE061C95D85BB4AC392BB0B151D067781C3E0B0D94E128D351AD530EABE22A5DDE4E5AA56E164933CF84C342B53752A4E50A29B8C631766EDA36DF69199E633C74F058AA94E3054A8C683716DDF76EAEEFC1EA4D0AF4E9D1746BDD536DCA1349B566EF676E1ADC2C4E2F0B1A108D484E53A336A2D49DDC5BE0D3E747A727C1E1F199766D87A94D3C450A2ABD1A9777493D55B859AF5B3CD89C453AD4A3468DDD38B529CDA693B704AFD632DCC6A60A9E3EB53A7192C45174136DAB276D574BD0835AB43BEC2C70B92642B133A4E692BC9A576DE977D7ABEC491C023A9C9F69A9D0C22C363A9B9A8A4949ABA6968AFADD3B69D6546C73BA386CC3228E3E14F71B86F42EACD689F3EBAA7C3A4E356A6F33BDA058EA1E0D85838527A376B697E097E2CD12605D33BBCBB11E1197D0AB7BB7049F6AD1FDE70699D4ECCE237B07528B7AD39DD763FF0054C0DDDC86CAB6437D64559B21B2AD91702CD90D90D956C0B361B28DEA45C0B3643655B22E05AE43655B22E059B21B2B721B02CD97D926E3B5D99A5C2585837DA9A4626CC9B24EFB5D98FD523EB407CD712AD89ABA5BE1BF598CD96D1A4B3CC4A4ACAF1F651AD00000A0000000019E3C95D86033C792BB00C33E5BED64132E5BED64000000000107D2B63A7196C663E31926E3869A924EED3BCDEBD1A33E6C779B03F26B3FF26FD890895C1124122280000000000000000000000036FB318BF04CE68A6ED0ABFAB9746BC3EFB1F44924D24B448F9226E2D49369A774D731F4FCB316B1B9750C4A7ACE0AFD4D68FEF4C258F44DADEB241D449596AD093BA6B9CC4D28A5AEAC22DAC9B0DA8AD356577B761D6CAA57777C02AF15CECB3655B21BEB02CD90D946C86C0B3643655B21B02CD9E7D8577DAACEDFFC8FDA32B660D8477DA9CEBE83F680F9E56F8E9FD27EB2A5AB7C74FE93F5950A000000001F44EE7FF26739F272F619F3B3BDEE76DBC933F4DBB2A2ACBA3E0CC2570F0E4AEC2C561C8458A8CD42BAA69C2A477E9CB8AE75D68D8E072EA98AA329E0F1D85569B4A956A8A32B696766B86A6A001B6C7602A61234DE331B879EF49A74E8CD4DA56BDDA5E83C55AB2A968416ED38F05F8BEB3CE8B26059174CA264A605D164F5288BAE205D336DB395FBDE62E0DE9562D5BAD6ABD4CD42666C2D5743134EB2FEC4D303BA6C365379349A774F522E4559B22E55B22E059B22FD655B21BB0166C8B956C8B8166C5CAB655C80B5C3652E437A0166C86CAB9157202EDA33EC8BFF00F2DCC5FF00D247D68F2391E9D8E77DACCC3EA91F5A0386DA3F1EE27B63ECA35A65C5CA53C5D694E4E4DCDDDB777C6C6200000A0000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003BCD81F9359FF00937EC48E0CEF7607E4D67FE4DFB1213B4AE04949B7649B7D09106C7226D66B4DC5B52509B4D71BEE313D96EA3C3DEE76E44BD0C77B9FEE4BD0CEAF0587CE3149355AB5384DA4A7526D71BD9A5CEB468A635E2F0B8EA78758DC438CA9C64E576DABABBB24F81BF072FB6397EF73FDC97A18EF73FDC97A19D73A58CA54EA5278BAD3A8F79C1C5B7A4527ABBE9C7ACD5BC6E35A4962EB6AD7F6DAFC44C0BCD27E34BDEE7FB92F431DEE7FB92F43376F1B8C8B6D62EB3D355BEF4FBC78763783C5565FF7BF797C13EE9FC693BDCFF725E863BDCFF725E866EFC3B189DBC2AB5BE9BF78F0EC627AE2AB7DB7EF1E09F7CFE349DEE7FB92F431DEE7FB92F43377E1D8C5FF00DAACFF00EF65E9E37173A918BC556B3693B4DF01E07DF2FE343DEE7FB92F431DEE7FB92F433A655EB786CA9BC7579538DEFF000DC5DD3B249B7633C29623C36787963F1168AD3F58AEDDD2B2D6CB8DF5278353965FC725DEE7FB92F433ADD8DC54D51AF849A6B71EFC2EB99E8D7A6DE9230D431F5B175A97875670A5BC9B836DB6AE973F0D38F0313C4E230F4F0989F0BAD51556DCE326ECACECD71D47817967F1D5B6CC739356D343CCAACE493536D349AD5F025D49B5ACDFA58F12724BF8CCAF2777C0B5DA479D549A56537E923BE54BE936FB5B1E2BF64FE3D0D9177D0CC2AA546B593F3365255A69D936DF6BB21E27D93F8F436FAC86DF418A954A92AAA136D5DE8D36D7FA1956F3AEA9EFCECDDAF764F13CE2ADBE821B66D9653269358A4AE97F68D7E269BA4A5173DF5756D6F6E22C6A65B79DB2BB05F2A33AF26FDA21B1B03AED3E75E4FF00F232D3E7B5BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF915ECCCE08EF7B9D78933FF0022BD9984AE1E1C8458AC3908B1500000459152C80BA251544A605D32C9EA5132C80B22CBACAA65AE076195D7EFD97519B77696EBED5A7E074F95E4D19C235B189D9EB1A77B69D2FDC72BB09158AC63C3CF58D37DF1AE95FF00FA91F47AB529D1A6E7524A318ABB6DD91068B68E9D1A386A14E953841B93768A4B44BFD4E7DB3D99B63FC3B16E6AEA9C55A09F1B74F9CF036156B86CAB656E059B21B655C887202ED957228E455C80C8E455C8C6E455C80C8E455C8C6E4439017723DDB16EFB55983FFA58FAD1AC72363B10EFB53987D563EB407CEF13FB4D5FA6FD66332627F69ABF4DFACC60000140000000033C792BB0C0678F257601825CA7DAC09729F6B00000000000FA3EC7605E1365734A8EA29AC4E1155492B6EDE3356EBE07CE0FA96CD38BD8FC55A7BCFF0027ABABDF75DA7A757FA8895F2C367B3C9CB3AA1152716D4D26B8AF80F53586D766B5CF70CB9FE1FB2C4ED32EABA17966216AF31ADA70B5FDFDBE92165351C94FC36A3924AD26B556EBBDD1B88C5EF25C1DEC9BF59EAEF3876AD3DE937C5DED73AE7C98E1DBE6FF00B5BDB9D595564A4963EADA4DB7A717D2F53C6B2BEF952D4EA39534ECE6D24BADA5CE75EA8E152E4B4BA148AD2C3E129477631934B85E5C1747031FE460BE39396864D09B9BF089C771D9A942CD7DE5A391C24AF1C4B7FF0067FA9D44E8E1EA47764E6D2BDAED3B75703C92769D9B4DB76563A71F2639F4CDF28D1AC85249F843BDB54E37D7D21E4714B5C4B4BAE0BDE6F62A9A9B95594970B59FA743343C12AD48D349DE4ECAF32E5C98E3755E9E3F8BCBC93CA74E71E44B44B10DEB67682D3EF2F4F269526DD3C5CA2DF3A87FA9D3AC3507292B3BC38FC3FF0043037858ABB8CADF48CFDD84749F0396F4D054C9E756CEA62E73B3BABC13FC4AFE49AD0A93AD4F1AD547D0ACDDFB19BCAB3C338B74DB4D2BD9BBDCC5069BB3838B6AFAF3AE9B9BC72C729B8E1CDC5C9C575934F0C9B10AD3F0B9ABC7E0BB59EADE9C787127F21B718C5E2A4D2BD96E5D2BF1B6A74D83C2D3AB0EF9564ED76928BB79DB3D90CB30D3696ED457D6EE432CB1C66EB9E38E76FA69B058151C1252AEDF7B4D37BBAD970E72F0CB5D5829D5AAD5D5F752D12E6F39BDA19761E9B925BFF095B75CB4ED32AC251A494129B4B44DCAFA1CA72E195F55E89C7949EDA15976EB4DD7928DADAC2F6E82EF2EE9ACD2FA3FEA6DABDA926A0EF19E8D35768C17E8F41D19F6F03CB925F1AFECFF00A98FF275D6FD3AD7BF338D933A6A3975374D3AB2939357693B246479761ECBE14ECBAF819F28DCC32EDCD3CB62A5171ACEC927C9B6BEE0F2F6E5BFDFDDEF7BDB5B9D2ACBB0CD6929BEC643CB6859A539A7D37B8F287864E5DE12B4EB4A0F155128DAC96974F9CC789C2F83D194DCDCDCDA4DB5AE86DB1587952C434A494E1A276D1A7CCCF066AE7E08BBE28A6A492DDB8BAD7A30DF96AB57BC64D8077DA6CE5FF87FF91E77233F73E77DA4CE1FF87FF91C9E97CFAB7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A000004A209405932C8AA25016464A509549A8C136D98D1B7C25254A9A565BCF56C0AD1CB5349D59BBF4457E266794C24BF575249F5ABAFC0F4C199E0053672398E5D9CC5E1E9A6EAC5D3BAB34EFAAE2FA523B4FC9598E3E4A598627723C77559DBCCB4473386A8E956A7522DA709292F33B9F45A53552942A4784D26BB1AB81AB86CF60142D25524FA5CADEA35799E45530D0956C2B7529AD5C5AF8497E275878F31C752CBF0B2AD55DF9A315C64FA00E09C8872189AFDFF113AAE11839B6F762AC976185C88AC8E455C8A39157202EE443918DC8AB90191C8AB914722AE405DC8872D0C6E455CAC0647236BB0CEFB4F8F7FF004B1F5A346E4D9B7D886FF3871CD4ADFECCB5F3A1070F99E16B6131D529E220A1295AA249A7F064AE9E9D4D1E5377B56A7F96177C69CBBC53B34ADA6E2B79ED6348080002800000000678F2576180CF1E4AEC030CF96FB5904CB96FB5900000000000EF7607E4D67FE4DFB123823BCD81F9359FF937EC484ED1C11B5D99BFE5FC35AD7BCB8ABAE4B3546D7669379F6192766F7ACED7B7C162765EABB1A55DCE9D594A94294A151C5A8B6D69CEAE7AF014EA63B12A945EEC526E72E365EF3C38DA6E9505468B6DCDB7393D5BE97DAD99F67713E0B8C942AC9C635928A937A269DD5FB4E5CDAB9495F3AEA6525757470B85A114A1462DAE2E5AB7E922B6130B5E2D4E8A8BE671D1A17A8B9C5EA3E074F0C34F5EA69CE63E9D4C1625D293BC5ADE84B85D7BCC106AA2EF8DBD55D34F4446D162962B1718519EF46945C5C93D1BBEB6EC2983B2A10836AEA2B431C3A99D91E39EF2B274F4432EA999D474A955549C16F5ED7BAE0655B2D8BA69D458FDDDD4DB6A1C17A4F7ECE5D636B5DDFE02F36A749A38B4D269E8D3E0D1D73C65BBAFA9C3CD9618EA74F9B77CC05DB7B4906F9DEE3D4F4E5D94D2CCDD4580CDE159D349C92A6D5AFC389B3DAEFC939465F1861B2BC1CB19897DEE8C7BCC746F46ED6E6BFA4DA6CBE474F24CB545A4F135529569DB9EDC175231E11D67C9CE755A3A9B338AC2C1E2278C538D35BCE3B96BA5CDC4C69DD2D782B2EA475D9A78B713F419C8C5B51E8E63B71C926A3C9F233CB92EF27BF055E11A31A6E29A4DF0E3C4F757C4C30D41CDB6A314DDDBE634D86A0EA4E3529D46A49B4D478AB19F1EBC2B0D568EFA8C9C6CEED36AFC2E7CFF00F91B9CCB193AFD3E1C96DDF6C14F69A12AA9AA2DD38F29A96A974D8E9235615E8C67169C5ABA68F9952C9B34A7889C77E9A8DACE5CF67D0BA4EE32C94E9E163454F90924DAE63CF8DF0CA78DDEDECCF8FF00D6DC9E8AF513B252574F898AE9A4D9470719EF36DB6F9CA626B4E9EEA841CE727C2F64974B3ECCEA6DF3B1F6DE6271B0C2612788A8DEED38DDDB9FA8E26AE3731CF312D3A938C2EF769C1D925F8F9CDF674A788CA2B5385DC9252B2E74B89C9E12B54A0A508CB7549DDBE94664F6EB6FAF4C9196270551D4C2E2AAC2707AA4DF37DCD1D96419CBCCB08DD54957A4D29A5A277E0D2EB39ACCEAE09E114E8B52C4495B762B44BFF798F46CA539D2EFF565A45A515D6D6ACB64FC31B6F6DE6364E58B9B567A2B7A0D5670DF81C5BD1EF2D0D857BCEBB6A76565CD7BB35F9EBB60A37E3BC897A493FDB6D1391EBEE7AEFB479BF93FFC8D7B91EFEE77AED166FE4BFF00230EAE02B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A0000010080B22C8AA25019A824EB413E768DC41DCD35076AD17D0D1B98303D103D103CD067A6007A21AD8EE767EBF7FCAA95DDDD3BC1F9B87DD638681D36CA56F855F0EDF14A6BD4FD680E98E276B3152A99A779BFC1A51492EB6AEDFA8ED8E0F6B694A967529B4F76AC1493EC567EA252350E455CBACA3915720ABB910E5D6637221C80BB9157228E455C80C8E455C8C6E44390177228E455CB42AE4059CAE6EF6123DF36871C93B5B0C9FDE8D06F1BED8272FCBF8E71E3E0CAFE9407118DAF52BE2EA4AB4E53927BA9C9DDA4B44BB12563CED73A326257EBEAB5FBEFD6624ECC000F46C05000000000CF1E4AEC3019E3C95D8061972DF6B209972DF6B200000000001DE6C0FC9ACFFC9BF6247067D37652961E9EC7E3654231539E09CAAB4F572F86B5EBB242257CC4DAECC78FF0BDB2F659AA36BB3094B3FC327C1B92FE962765E9DBE2529C24F79492E167C0C1DEE2D2764D346C2AD24DA7A68ADC2D74786787717F06738AE84F439F3715CEEE3C7C9C772BB8F553CC3174A8D3A34AA6E420AC9249B7DAD94AF8BC5E222E15ABCE517C62AC93F418960E6E8A9F84CEED36D35CEB99159E06A469A97854B4B5EDAB7A1CBEAE4EB6CFD79EB4ABA714AF64925A17B4D50A6A0D437A49395B85EFAEA56961DCACAA4E72E94DE867A529B517DEE2E94DEEAD754FAD74751D7878AE3775AE3E2B2EEB63905E86632A752A26E74EF14ED7767AB3A552B1C6D4A6DD9DDA927A34ECD5B859A292C56611D163B1092FF997B8EF66DE897534F5E3F28C7E3B6E70B8EAB493CBF0D15B92735C52BF0E3C6DE83AB6CE35D6CC62EDF94AB3D6CDDF8697F3959E2331A7249E635DA6AF7BA44D2EE3A7CD6718E5B5F79A578B4AFCEDF31CB59A8A4A12937CCBB09BD7AED3C456AB55AE1BCEE9798CF186EA56BAB70D7546A7A66FB7A3014B7F0B29D24BBE5DA6DF33E6BA3CD86C8152F875AAD5AB59CF7DC9BB272ECE75DA637DF294F7E8D49C25CEE2ED7EDE92215F31A935178EA89D9BBDD5BD44CF199CD58E78E371BB959B03879626B6264DCA3B95372ED2E8BFE2286231B86C4CE962B2BAD357B42A505BCA69F0BDED63CAE963A9549F83E63529C9B5526DA4D49B693BAF712F1D9A2A7150C54E752ED4BE1A515D0D6977D871E3F8F8617727B75CB933CA6AD6DAB29C214D62146129BBEE5EF65D6F9CC3529355155A6D2959269F0691343F58955ACDCE4E366DBE7ED66692B41BE8477B5998EA29DF75E3C4D76272DA1566E74DA836EED5AE9BFC0F4CA94DA6D370D6FA3BA2D0C3CE69C9569455ED67A91B95AFA794D3524EA54BAE88AB5FCE6CE93852A6A9D34A315A248C52A4E31DE7886AE9B5A69A5F9EDD4428356DE9CDAE829B7A60F7A77BF3235D9EFECD26F47DF125D963654A2A2935657E93C1B4892CBE2D257DF4AE66F4927B734E46CFB9D3BED066CFFC2FFC8D3B91B8EE70EF9FE6DE47FF00232E8E06B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A00000000251645516405936B55C53373464A508C9706AE6951B2CBAA6F53706F58F0EC036503D10E279A0CF4C181E881B6C8EBF78CCE8C9BB293DD7D8F4F5D8D4C1F03D149B8C9493B34D34FA181F4446B33CCAE19A61372EA3560EF4E4D707D0FA99EEC35555F0F4EAAE138A7E932B6926DBB203E578EC162B015BBDE2A94A0F99B5A3EC7C19E572365B499A3CC7349B8C9BA349B85357D2CB8BF3BFC0D3B911591C8AB914722AE4064722AE463722AE4064722AE451C8AB90177221C8A39157202EE4745DCFA4A39F63A4F5BE192FBD1CC391D2773E4E79E63ADC7C1D7AD01C5623F68A9F4DFACC1CE6C73DC243039A54A1093927084DB76BDE51526BD2CD7012EF7BB212BBB164D356655A6828D02DC515000000678F2576180CF1E4AEC0304F94FB5812E53ED600000000001F4AD90C5D3C4EC8E634E9C249E1B08E9CDB4926ED3775D566BD07CD4EF3607E4D67FE4DFB1213B4AE08DB6CB7CA1C2F6CBD966A4DB6CBFCA1C276CBD9621F8FA3CD68DB4DD95ECB9CC2A93946ED59BE28F46F6976ADE72EAAD04926AFD6D9D71C6DE9C72CE63DB5F2A2E316E139377B5AFA2BF98BC295469A9B9AB68E37D3D47B5D4C3A6D282567D2C95528C9A4E3C5F1DE66FEBCBF8CFDB8BC4A9C29455E76BE8AEF9CCAA3083B3DD4E4EFC6D766673C3C9A6E0AEAEAF7B98FBDC25393693528A57B7DE62E3676D639CBD2AE37767177EC292A09BBDB9B81EEC261FBFD551DFB420AF2E96B8247B2783A0AAA8A8BB5D6B7679F939F1E3D6FF005D2616B44A84D3BEFCEEF5D5DF5E01525BCA3295E5C526D5FCC6D31D5B2AC056853C4B94653BB4936ECBA5F41E6599E44EABFD634D2E53BD9F61D2672CDC6E716567A79E9616149DA2E4D3B5EDA3EDED32BA4936D277E66DDDA3D9496131B80962B03293506D34F8E9DBC0F3269ABAF43352EDCEE365F6C52A4ACDEAEDD3C4C52A0DE8D3836B827C4F5C6A528F2F57CCAF645954A2DE905E966BC75375CFCF1DE9E1F07692BCE4ED67ABB6ABDC294615139426A76D5B4F9CF73951DD77A4ECD5AF76522F0D0716A9A4D2B2777C3D24C756EA52E5A9BAA61270AABBDB84AC9EF2525A497067A9A846CDBB2E0936625520ACA937149B767ADAFC4CCECDDA493493D58B2CBAADE3659B8AB8277493F798E7424E4AD39456B7B68D9A8C6E6FDFB7A9D38DA9A76BA934DFA0C543359E1E2E34D45C5BBDA4DBB765D9CFCA37E15BF8D082A6ED5277BDAD6D1A7C4429EEA49732B1A379D556DB6A17B5AFAE9F79759ED64D370A4D73AB35F88F28BE0DCCEA2A7250DC94E4D5ED149B4BA4D56D1CA32CAA128DECE6B47C51B3C2626962A9C6BC12BAD1A7AB4F9D3359B5368E58AC925DF170E7356EE3327B728E46EFB9B6B9EE6AFF00C1FF00C8E7DC8DFF00735D73CCD1FF0082BDA32D383ADF1D3FA4FD654B56F8E9FD27EB2A1400257602D7277593A24357D4111BACEF3B9D699267FE457B33384B1DCF73E6964F9EDDB5FA956FB33057130E422C561C8458A800000000944A210405919685574AAA9AD6DC574A31225303A1A1523560A70774FEE3D3039AA15EAD095E9C9ABF15CCCF5ACD7109592827D36FF503A3A7CC7A69F31C64F1788A92BCAB4DBE84EC97A0F461F35C650692AAE6BA26AEBDE07D6B67AB77CCB6306EEE9C9C7CDC57ACF06D6E730C0E0A584A335E11595AC9EB08BE2DF45D688E2F03B579851A752961D53A4E6B5925769AE8BE8B89E0AD5EA56A92A95A729CE4EEE52776D92AC1C8AB914722AE405DC887231B910E405DC887231B9157203239157231B9157203239157231B910E405DC8EAFB9B3BE798E7FF004CBD68E3DC8EBFB993BE758EFAB2F5A0397DA3A946AE713961E6A70EF74D5D3BABA824D799DCD628F4992BBB626AFD37EB6636D806ADC094EFA32A02AD6B3EA2ADA7C094F9986B9D04400126D5C28678F2576180CF1E4AEC030CB96FB5904CF96FB5900000000000EF3607E4D67FE4DFB123833BCD81F9359FF937EC484ED2B8236DB2FF002870BDB2F659A936DB2FF28709DB2F65885E9F42C6D454E84A57B349B34FE1B2D353658F8AA942A41B49493576AF63514F0D468C52AF3756527A3A52D20BA55D6ADF433DDF1ECD5F4F9FF235BF75EAA988AA93AAE2D53949C54B99B464C157556BDEA36A941394DA7CDC12F4FA8F3CE53AEAB5152508B8A5462DD9269E8AFC1369BD7A4A4FE04561E934E3169CE6B8CE5D3D8AF6477F77D69E6964F7B7A7132AF866DCE2D53726A32E6973DD798D861DBEF71DF52524B557E0FACD353AB28C6D5A2EAA8B528293768B4ACBB56BC0D9E1252961E0E726E4D5DB6F56CE1F22598FB7A7E3D96FAAD8E125885524A8B6E56D6CB9AE6673C4B6DBDFBA7ADF8DCC1965451C4546EFAC57ACF3E3F1D8FA79B469D1A6DD17256765BAE3CEDBE667C0F97C173CA595F5F86CB2C61CE68635E268E2EA4273A3156A8946ED2E9B2D59AAA78EC2CE518469D5736E49C541BE2F45E8E07694AB53AA9B84D4ECECDA7C08DE4A2DA493BEAD2B33E8706730C26366DC73995CBD5F4D46594330C2E57516221382A9794A2DABA56E725495ADAF0E2B8236D8C9B783ACAED5E0F5469149A82D1BE84B8970977BFEB395F5A792BE2376BCA09E8AD7D753DB81A91EF7DF5A527C127C1334B8C8B962EA495F5B6BE63D39562E3876E8E22FB8DDD4BA0EBF3B0E4BC1BC27B787833C31E6FF007BE9BCF0BAAF8B76E74D686BF30A8A1BB382DD52E65CCCF6CB13818D3BBC442DD4F534598629E2EB2546EA9C385F9CF95FF1D39F2E5972974F6FCDE6E1BC7A97DBD584C439D669BBE97B1B5DE72A6ACDA76B6873785AAB0B59CE719B8B56724AEA3D6FA8DDA9BDD693D5ABA3EC7C9F57D3CFF17FEAC7F9A49B4DE35EBFF2A27F3422FF00FBF2FB08E9536D478F37319137D7E83E57D97763DBA72EB63E3FF1F2FB0BDE16C7C7FE3E5F617BCEA55FAFD035EBF417CE8E7A865F0CB9C682A8EA385DEF356BDFB0D4ED4292C04DC9B77A91B5DE96B731BFC6BB63E6F5E0B8F61A2DAD7FFC3C5FF888F663778EDCAF6E3DCB43A3EE69E3ACD3C8AF68E59CBACEA7B993BE7399BFF017B41A7095BE3A7F49FACA96ADF1D3FA4FD654285A3CE5498BE608B10DD892B25ADC08D59DE773C8A96499FDD6AA8AB7D999C226EF63BBEE7D2B64F9F2E6747FF1982B8A86B14FA8114B90892A00000000099288250124A211280B04426481299299544819294B76A45F59EB723C2999D4AE93BF312AC65722AE46372B7390E405DC8AB918DC887202EE44397598DC887202EE455C8A39157203239157231B9759572032391D9773077CE31CFF00E9D7AD1C4391DAF72D77CDF1CFFE9D7AD02B8BC4FED357E9BF598CC989FDA6AFD37EB318AA04B505A3CE044884DA560DEA120252BF612DDB40DDB45C42D13D3508349F0E2668A7BABB0C3C755C4CF17F0568F801E79F2DF6B2099F2DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E0CDAECBFCA1C2F6CBD966A8DAECBFCA1C2F6CBD9621F8EFB1893A724D696D4F1AC3A6937ADCD8D68EF5D68D1E09E1ECDEECE715D0A4D23D5C3CB309AAF0FC8E0BC965950F0DAB764EEC470BAA7C122CB04DD253789AA9B4DDB79E9F7F02AF08E3494D622AB7C5C779DD70E3AF59DBFC98F3FF8997F50F0D64DB565D27A70CAD4A2B9AC79E9E1D36B7A739AE8736D1EFA71B452B1C79B9BCE6A3D3F1F82F1DDDAC983A8A9E2249F192B25D25B170788695D2A69BDF56D5AE85CC796BD3DEE7D16BD77ED3CCD566EEB115AD7B5D4DB3C1CDC5965AD57B71CE46EF0D1861E2D51A2A29F1B16751A8B4D34EF7EA34F3A15D38B78FACEEDA694DE9C7DC56AD3AF4EC9632BCD3BAE5B46E6174793718AC445612AE8EFBAD25D2FA11AC7374E86FCE0D3564E3C5DF98C54A2DC929D49CE4B86F36EDD87AA718B8284A2DA7C5257B75B3A6334CDBB78A9D355A73938B524F58B6AFF007177828C924D26971B97AF41392926D4924B793B3D39AFCE79E14A6E4A0F1159372B27BFD3CDAB3D539BD6ABE7E7F1ADCAD8F5782E1B7D5E9D16AD66D37AF1B597A3ACA2C2A766E093B2565C3B4C5DE24AA4A12C6548B8BB2BCF8BF49554AA2935DFAB3B3B6B2689872CC7A4BF1B2BDAD2C3B4DD34D2DF8DA4F8D973DBB4F534A11565649256EA45685251BD936DF16DDDBF399A71BA38F2E5E75EBE1E3FAF1D37F194670A73834E2D269A6655D9F79CBA538AFD5D59C35E119348CD529E261BAFC3711693B3F86F47E9D4F05F8F776CAF4F9C746AFD1F78E7E1F79CCAF08751456331167CFBEFDE4CFBFA9B83C5579AE0EF37AF6967C7BFD3CDECC5CA32C6D47169A564DDEEAE91A2DAF92792C5A69AEF8ACD1B6A50495ACADD069F6BDAFC8A9A565DF1595AC7A64D4D31BDD714E4759DCC35CDF327FE02F68E39C8EC3B97EB9AE63F575ED06AB86ADF1D3FA4FD654B56F8E9FD27EB2A14000164EFC49282ED73845ACBA0EEBB9F46F93E7AF9951BFF004CCE0EECEF7B9D78933FF22BD9982B88A7AC5761668A4392BB0BA7CCCA8261A0D7405AA02000009202024B22A89024944002C08242A5168CB4EC2883764417722AE451C8AB90191C8AB914722AE405DC887231B910D817722AE451B6C054B910DB60003B8EE59E36C77D5FF1470E771DCB3C6D8EFABFE282571789FDA6AFD37EB3199313FB4D5FA6FD6630A04DA00025765B448AA7665B468221A69DC9BDB885A68C70D1F0016D6E8F44792BB0F3A6AD6B99137640629F2DF6B209972DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF62427695C11B6D96F94385ED97B2CD51B5D96F94385ED97B2C43F1F4A9A5CF7B1E79A4EF65E732CDEF4D535A5DDB5356F38A92C44E8E0B2F55D41B5BD2949B76D1BB2E0B434C69EAEF7372694E49AE2932CA94D3574DA5CCDE87829E738BAB5250865D87728DDB4EA495BD22A6698B8CE34E79761AF3E09557AFA02E9B28460E5BA934D73DB47E733452B349A6D714B98D73CDF13867058ECB614A949A4E519BDE5CD749F13631EF70A92DC6AF1766D2B5F9C2689534D3B989D08A56492EC563D3429D373D5BD1372D78BBE87A54685EDDED3F3B3525BED2D91AAEF124DB529D970B4AEC974A4968DC9F3293E06E561E9C95D516D755CA3A7453B3A695B9AEC6A9B8D6528C249B56D38AE865E738D24B79BD785937EAE63D75634771EE2DD6B824F47D479D548C6CEE97327C7892CB3B25DA8E9A661A942A49C6346C9C9D9B6EC92EB35D9C675530988587C3C22E764DB6AFC78248DA61638DA781A75B318414E6EED455B753E09AE9B1C73E698CDE9DE70DB27B63586BA5BF1BC92B59BBDBA9751654657BB95FA6FC7D262C6E367467154D42CD5F58F3DCC547178DC462550A14A33A8D5DC6D6B2E96CE78FC9C6FE38E77C32D57BD41456BEE2EE29AEA3CF87C53AB52A51A9051A94DD9A5C0F439597B8EF865329B84B2CDAAA9ABDADA30E937C6736B9AF27A7615A752729C9A50493B3726F57D563D4AA2695E145BED91A5799506DDDCE6DF4DF51BB1A724A537AF04F53D5DF17F0E8FA6479F10EB28B9D1745349E966EEBA2EC0CCA2958D06DABB648BCA2FC4DCE1ABF7FA51A8E1BB2D5357E0D1A4DB876C893FF00163F88BD13B704E4769DCB75CD331FABAF68E19B3B8EE59E33CC3EAEBDA32D57115BE3A7F49FACA96ADF1D3FA4FD6542800000000775DCFE4E392E7A973D257FB333853BCEE7693C973F6D70A2ADF66612B8A834A0896CA4392BB0B151298B73A090E0EC04304BB5AE1202016B6855AB3025000092482428490082C43D53200189C8AB91134D4DA2A152E4C8BB0000000000000001DC772CF1B63BEAFF008A3873B8EE59E36C77D5FF001412B8BC4FED357E9BF598CC989FDA6AFD37EB3185000005EC00164D35663868F8152C9DF46110926FA8F4C792BB0F3B6923345BDD5D8060972DF6B209972DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF62427695C11B6D97F94384ED97B2CD49B6D97F94384ED97B2C43F1F43DE6B131B3B5A68D0E5589C761713899E1F0AB1146A3B4A2E4E2D4936D34D7DE8DDD4D2BC1AFDE5739EC1636384C45472753953568A4D6B7474C64BEAB9DB67B797172C63C5569E22318569CDCA7157495F824C9862AAC2A52AD4E3053A52525C5A6D3BEA456ABDF6BB9A949A7CF2E26277D75E82DC66D66574DA66F9CD4CCE14A1DE1528426E4FE1B93727C6CDF05D46FDC92AF383B3BA565D3A1C624ECBB7F13AF693AF2934AF7D1F989A93A37B53138C585516DA4E6EC9703D787C6469612388A8AEE6DAA717C34E2CD06D141D4A5452E69B7F71970D2A9E0180AD4676960EA38D44D5D24DDD36BA389E8C71DE32C79F3CE4BADBA4A58E9558C66E6D29BDD8B6F46FA08F0F854A8A8D6BA6DEEA93E317C0D2D7CFB16EB49E1E34D52E1152826EDDBD7C48EFF008ACC561A8BAA935537AB251B3496BBD7E64D73748FAEC62734B75B66C4637BCE25D1A924A5BFBAEEF9EE7A7BE2504DD95B81CC6366B139FBC445B71956BC7B2FA1D1C5B4AE96AB86863966A477E3CA59E9E6AF81C2D7AAEB54A6A552FCABB4D5B811B4999E1F0D9651C165D5DC2B466A535AB76B3BBBBE3AF59E0C6E2274F17512AB28A49595F4304F2AC4629C7118AA8A8A9C25283AB7BC9455DB492D3CE7931F8996EDB7D57A67CAC7D4D7B8A60F1188C4D29CEAD473941A49BE63630C7BC2529C309524E7555EA5792B4DBE85D091E4D9EA54674EA77C492734949A7A2B1B779751DF6B7695DBF829B69B5D29F0D4F1726378F2B8C89786F2DF397B78B289DEB4EEDDED7777C75E736D292B5FA743C546953A552D0A6A12E0EC7A66DD91EBF8F778ED8BC778FD560ACEA4F37AF87A6F71DFE03927BADA49D9BE6324B3ACBB0B270A119E22519A95F7928C1A5AA4F8B5734B9FE36A61730CC161AA4E954A95229CA33FF956B6E66797038B854FF68C4D384EB26D5D2B5FADAE17EB3B1B7510CEB095307E135F0AE9454DD3A7DEE5BE9B92BB7676BD8C38DA90A5878D6C3D653A134A34DA6DCAA3B6AECB85BA0D4E3AAC71187EF7520A9CA2DB859AB27E6D3B4F0E07115A851AF46559F7BA91BDA1515D3EA7CD706DD7E1E69C15959349BEDB234DB6EEF90AF2B1FC4F7E5D2BD15D4EDC7A1235FB6CFF00F815E563F88BD13B7CFCEE7B9678CB30FABAF68E18EE7B9678CB30FABAF68CB55C456F8E9FD27EB2A5AB7C74FE93F5950A000000001DEF73AF1267FE457B333823BDEE75E24CFF00C8AF66612B878721162B0E4AEC2C544AE01F109AB1000B70442564346C05AFADC9E3A316D08E3A300D044AEB21A0049002A45C8B8209B9254018EB2F849F4A31996AABC3B1DCC40800028000000000000771DCB3C6D8EFABFE28E1CEE3B9678DB1DF57FC504AE2F13FB4D5FA6FD66332627F69ABF4DFACC614000000000000E27A2296EAEC3CE678F257601865CB7DAC8265CB7DAC80000000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E0CDAECBFCA1C276CBD966A4DB6CBFCA0C2F6CBD9621F8FA055928CE326EC934D9CA6268CE9622A29C257726D34AE9A6F8A6759555D34786749A6F727382E88C9A474974C39DDDD6FB8FD0C869FEE4B9B999D12A3374E52EF989BAB5ACDB4EF7E7B9925849C70EAA7845672B26D6F68AE3669CE52A552ACE30A70936DF4356D78F51D46B37292E17D35E28F3429B6ED3A9524BA1C9B47AA12B2B24B752F38B4787328BA9082E74EFC4C38675B0B35283B36ACD3D535D0D73A3693C33C449422937276D782EB30CF2C9A9B8A9BB37F05B93575A6BF79DB0E5931F1B1E3E5F8F9659794A46584946F3C23525AB54EA38A7E6B3B15AF5DBA0E8D0A71A34E5C545DDCBA9BE7291CBDAACE13A934ACA49C5B77BBB25CD6F3995E5534D2551B6D276726B5D743739B1DFB73BF172FEB594B0ED6229C9F34AF6378B55C4C50C0F784AA394257764D49B7C6DCFD87A29C54A71A6DA4E4EC9B39727279D7A38386F1CD5BB683133785CE5621A5BA95D5E2A4AE974333E7BB412CC70D0C3504E9D3714EAEBCA7D0B9ECBEF36988CB3C212BC2E9ABAEF8ACF8B56E7E83C7F906126F755276D5BBB565AF5753353931F5B9D37E17DE9AFC8E7BB0AAD6B6A89AF31BCEFF0045A937526937BCE1B8DBD5DDA4EF6B5D713C3472B8421371DF4D4DC5AA69BD52BDDD9AB2EB33ACA6717694D5FA37DF1B376FB99E0E6E2B9E7729FAF771F2E38E331B08547571129B566DB6D5F85DF033D4BEE3B71B6864A597BA2DA53828ABD9B6D5D2576FEE2AE29C6EB54CE9C78784D397267E576F0F7FCAF1AA50C7E0AABA9276956A6EED34ACAEB8AB5D9A4CDF26AF82ACE580854AD425AADD836D5FCDE6E77A5CDDD5C341D47349A974A76665A14AACD6989C4257692551F476F41D1873186C1E638CAF1A73C3D7845E9294A0D24BB6DA769D3D0CBB2DC12546181AD8CAED59B51718ABA5CED5B993F37597A74272C33AAF1789BABBB29BB69E7E0638C672569D5A8D3E29CDB4C0CF8686E4A6B4E5B7A70359B6AFFF00815E563F89B6A315149256EC351B676590A4B877D8FE24BD13B702773DCB3C65987D5D7B470C773DCB3C65987D5D7B465AAE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A04AFBC8004BE3AF0165C504EFC470EC027AF9810F868136F401C7444B764382238B002E5B8221AE80A8B8B822E413717205C03574D3E74607A3B19EE619AB4D810000A0000000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB318AA00000000000019E3C95D86033C792BB00C12E53ED6099F2DF6B200000000001DE6C0FC9ACFFC9BF624706779B03F26B3FF0026FD8909DA38236DB31F2830BDB2F659A936DB31E3FC2F6CBD9621F8FA1BD4A3827CC5AFCFCDCC2F636C30BA09BBDE5E6932161E37BABDF9F5667BEA37B9C0C30A2EF77A19630515AD9B26F6E809809C14A2D3D51865438284A492778A4EC93E948CCDEBA70EB31395A6DA6EEFAC0C4A924ED26FA5BBBBFA4BAC3C2D649DBA2EEC6569356622B757102234A30774B5ED65ED1927749DD59E8639D4BBB2E045DC7506D32A29B4926DB76D66FEFD4A3A09F14D747C2665534F5D09DEBB7A34973B5A3030F83A6B55AF0766D27EFF00392B0F14B44F874B32DC9DE5CC05234A2ACDAD7B5992C55CAC9BB79826DABBD1F3AE8F38112827CC6374537C64BB1B5EA33262E062549DD3DF9F66FBB7ACC8A9A44DD129A680B4558D16D9BBE44FCAC7F13777D789A3DB177C8DF958FE24BD2CEDC19DCF72CF19661F575ED1C31DCF72CF19661F575ED196AB88ADF1D3FA4FD654B56F8E9FD27EB2A14000000003BDEE75E24CFF00C8AF66670477BDCEBC499FF915ECCC2570F0E4AEC2C561C8458A80000129F490009D57027810986C037764A44241EBD804F12169AF313C1117BF61146882783D068D010087A11702C62A8B54CB913D62C0C60000000A000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D80609729F6B027CA7DAC00000000003BCD81F9359FF937EC48E0CEF3607E4D67FE4DFB1213B47046D76674CFF0DDB2F659AA36BB34ED9EE1BFEEF65887E3BE52B21BC62DE175C5A4F4D2FCC6D866DE446F2316F0DE57032B90DE462DE4AEDA777CEFA02927669E80655231C6579DC84FADBBF490AC9DD019B7B9CA4AA26AC8A4AA5959712B17CF277032AD1377D429496AF546293F8574F8852717AA032DF5BC5BEC263513BF4981C92778BB137BA724DA7CCB9883D0E4AFC56A4B95CC11A9CCF8F593BD628CBBC379189B7C383EB414B8EBE6B01994B41BC6172E97C3AC5F4E2066DE221513BD9DCC5BDA13BEDD937A2E1D4067DEB2349B5EEF913F2B1FC4DB6F1A6DAC77C8E5E521F892F4B3B710773DCB3C65987D5D7B470C773DCB3C65987D5D7B465AAE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A0000000004A76640025B17B9013025BBBB04AC85D681BD08A5F990E0885A221BBB021B17045C0361F00C3031F001E8C050000000000000EE3B9678DB1DF57FC51C39DC772CF1B63BEAFF008A095C5E27F69ABF4DFACC664C4FED357E9BF598C28000000000000678F2576180CF1E4AEC030CB96FB5904CB96FB5900000000000EF3607E4D67FE4DFB123833BCD81F9359FF937EC484ED1C11B5D9AF1EE1BFEEF659AA369B39A67987EC9FB0C43F1DAA92B2E371BC62DEFB86F1B61954BAC6F69A79CC5BC37851977AEADF70DE7CECC5BC43936F46924B9D146752BBB5C8DEEB312975852BF0BFA00B49B52E8E827794974329BC55DF4688AC9BD7D1F1E60E57566F55C0C5BD7D39C953696AEC80BC6CF56DAB7358972BE896862954BE88B45D95DB6DF381960F757177E81DF56F5B5B7498253B68AE15AD76D26B99F3951E8DFE9614B5D5E9D079D4DAD19752E367A106652B34D68F988DE316F758DE28CBBC37BACC5BC3780CEA5A1AADA769E45269DFF00591FC4F7A9EA6B769657C92A6897EB21A256E925E9676E34EE7B9678CB30FABAF68E18EE7B9678CB30FABAF68C355C456F8E9FD27EB2A5AB7C74FE93F5950A000000001DEF73AF1267FE457B333823BDEE75E24CFF00C8AF66612B87872176162B0E4AEC2C540000000000000020095C4965586EE828D9019040603000824802AFA482CF81500000A000000001DC772CF1B63BEAFF008A3873B8EE59E36C77D5FF001412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D80619F2DF6B2099F2DF6B200000000001DE6C0FC9ACFF00C9BF624706779B03F26B3FF26FD8909DA382367B39E3BA1D92F619AC367B3DA67345F54FD86217A759BDA8DEB1837F815552EDE8D2E66F9CDED87A37BAC6F1877FB48726DF1D3A0833EF3E7561BC61DE5D361BE594666D37AABF46B61BDC3530A96B6B8DFE8FBCA336F0DE5AD96A60DEB739785674DB4D269F14C1B8BB6DE8B561CDC5D9A69A7C1AE0568621D1C442AD3B6F4249ABABAD196C6E2E78DC4CB1157754E76BA8AB2561B04DDDB95EEC39F418EAE22751C53576959595B423BFB7495376DD4EEB4D441953E76554D5D3B989CEFD81376D7D64567DE6EEDBD58526B8BD0C0E4DDEDAA5C43A89E890A3D0A774378F32959E85F7FA1E8368CDBC37BACC0AA2B7392E6ACACF5E71B19B79AD59E1DA177C92A7948FE267DE5D278F3B95F24ACBA2A43F117A59DB953B9EE59E32CC3EAEBDA3863B9EE59E32CC3EAEBDA30D57115BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF00915ECCCE08EF7B9D78933FF22BD9984AE1E1C8458AC392BB0B15000000000000000010C8E62C5428C20C1040600065592C8600A96B957C400002800000000771DCB3C6D8EFABFE28E1CEE3B9678DB1DF57FC504AE2F13FB4D5FA6FD66332627F69ABF4DFACC61400000000000033C792BB0C0678F257601865CB7DAC8267CB7DAC80000000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E08D96CFE99C51EC9FB0CD69B1C83C6F47E8CFD8621F8E869DEA548C13B6F34AEF98DEC309828C1274B7DA5AB949DDBF49CE52A96AD4DB7C24BD66F70D2856C4D284EA6EC67349B5D072E5CACB24793973B2C919FC1701FF0D1FB4FDE3C1B00D7ECF0FB4FDE7A73DA34309528BC3DA0E49A714EF7EB359DF25A59B38659D975B71CB96E375B7A6784C0CA2D2A2A0DF06A4EEBD2CD1D4F815254DB4F75B57E9364EAEEABB925D7734D56A6F569B4EE9C9BEDD4EDC39DB755D38792E5755B0CB284315886AB36A9C15DA4F57D57375E07975BF668F9E6FDE73D96D7EF75676766D25F79D3E5581863B06F1152AD48DA4E2F752B24B9CFA38E38CC7CAB39E795CFC7161F03CBBFE1A3F6DFBC78265DFF000D1FB6FDE6DE3B3F4651528E2AAB4F8356B3FB8A4B23A1BEE0B1356525C52B69DBA0F2E35D72468730C1613C1A5530F0EF7382BD936D35D0EE68F7CDA63EB77BF08A5BD751728A6F8BE6348A5D7A99E5C24B2CFD6B8792E52EFF001BDCAB0787AB41D6C4A736DB4A37692EBD0F7BC165EFFF00AF1FB4FDE69F2EC52850506F4527A739B284FBE3694D24D37BCF824B9D9DB1E29E32D79F3F9194CAC8B4B09807184D61E293959ADE775F7933A1972FFEB46DD3BEFDE79F138BC3C70CA2A6F7E0DB73DDB295F9BA4F0AAD373DFA89C527A45F375BEB3330C6DD474B9E531DDAB66786A34251A942EA136D6EB77B3EA7D0781CDA765AB667CC310A74A9C13BB4DB3C4A5AA7CD73CFCD3C36F47C7CAE7ADBAFC1E4D82A7420F110756A34AEDCDA49F42499EB593E5F249AC136AF6BA9CBDE79D62138AB3BF0E0CCF3AEFC1A8B4DEADF07D67CC9CF6DAFA9782493D76B3C9F00ECDE0A574B8B9CB87A4C53CA72B706BC1DC5BD2EA6EEBEF2F85AD2788826DEB7E77D06178849BBBE0C979ECD5D98F04BB8E6F1F47C1319528EFEFA4EE9F3B4F81AECDDDF25AD7BDD54871F39EFCE6AA9E6539269AB2D7CC6B33277C96BF1BF7C87AD9EFC32F2C6578F2C7C72B1CE9DCF72CF19661F575ED1C31DCF72CF19661F575ED02B88ADF1D3FA4FD654B56F8E9FD27EB2A14000000003BDEE75E24CFF00C8AF66670477BDCEBC499FF915ECCC2570F0E4AEC2C561C95D858A8000000000000007AF0187C3621D758AC5AC32A7465385E0E5BF25C23A70BF481E420DDD0CB32C865385C66618DC4529625CD4634E8A9A5BAD277D574A21E40E3994F0AF10A749E1258AA35631F8C828B6B47AABD9A615A47C08E63D388C06330B4E3531185AD4A12D14A74DA4DF6B44613058AC6CDC30987AB5A495DAA706ECBAEC079C192AE1EB51ACE8D6A352155349C25169DDF05666696598F8D1956782C42A706D4E4E9B4959D9DDDBA483C8F890CC94A954AF5234E8D39D4A9276518A6DB7D491931781C5E09C562F0D5A8B92BAEF9071BF65F881E72ACB321810000A000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D8061972DF6B209972DF6B200000000001DE6C0FC9ACFFC9BF624706779B03F26B3FF0026FD8909DA38236390E99B53FA13F619AE363915FF002AD3B71DCA96FB0C43F1B8A54A53519B6926D696E27B5529A69A6D2E29A30D271877B4F826AE6DA3184A2A51B34D5D5B81E6F916CB2C7CFF00912DB2BD50AB0CD68428E2AAF7AC5D3568547C26BA1FB89A5B398B9C26EAD75092E46EEA9F5BE84793BD45E8D196352B460E11AD5231E0D29BB1CA67BEE39CD5FF00B46AEB61E71AB3849EF3849A6D3BA7630ACBE725BDDF12BEB669E86D5C2318B6EC92E2CC3069A4D707AA3AF05BBAEBC13595AF1C3072A12BB9A95D5B456B1D7ECB54EF7964A1749F7D6F57D86B329961D629C313184A338D92974DFA7A4D86372CC22929D19B8296AE3D07D499CCB198D5CE658E7728DBBA6A3293A35DD253E5A4D59BE95D0FB0BC372841460D28DEEF5BB6FA5BE739A7974145B8D44D76B4C8A54A54AFB8DABE8270CEF697E465D69ADC6C2156B622318ABCE725BCEEDA6D9E2794CF8AAD05D5666E711051827526AF7D1595DB315F4E36F38E5B2EA4FC5F8F2DDDAF061955C14E508384DB4D5DA6B47D87BF2FA951D1A90C44E30C1C53537BA936F9927C5B6442942BCA566B7D3BDAFCC64784949ADF7751E4C5705FEBD67A26AE126DE4CF2B33BE8C5B8E39D1954852A18283FD5B4D36EDA59F3F98CB8C94EA45554E1BB05783505CCB4D79CC2A849C21072D149DE2D70BF3FDC7A674DBC2469AE2B46498C97665C9964D055A1531755B94D27C5BB71F4157964D34FBF47D0CF76292C3D48C2324E76BB4B9BB4C2EBCD3BDD7A0F1FCAB2CBA7D0F896C92D7B9539A4AD736B4ABD6A1965154ACA5526D6F357B6A528469D6A31A94DA9464B46B53D94A508E17BC55A2A71BB69DEC7E771E5F1CACAFB7C99CCB19A63C3D5C4C316F0D5EA2AAA516D4A2B55A751A7719EF3BB6D5DA37D42A51A1BCE9E19A6D5AEE573C8E82D5B564F51C9CB2EA438B3F1B76E5331A1278A9C9349A4B4B751ABC6BBE4B88BF1EF94FD6CDE6635212C65474DA715649AE0DA3478F5BB966323D1529DBD2CFB1C1FF00CE3C1CB65CED684EE7B9678CB30FABAF68E18EE7B9678CB30FABAF68E8C57115BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF915ECCCE08EF7B9D78933FF0022BD9984AE1E1C95D858AC3908B150000000000000373B39C336FF00F5B5BF034C67C2E2EB613BF778928F7FA52A33BA4EF076BAD78705A81BF75F2EA5B2F94BCC3075710DCABEE2856DC4BE1ABDF477E62D93E6D5715B4153170A70A2A8602A468538DDAA718C1D95DF1E9B9CED5C5D6AB84A1859C93A5877274D5926B79A6F5E7D50C262EB60AA4AA61E4A329D39536DA4EF192B35AF5056DF25C5E27194F34C3E2B1156B539E0AA5471A92725BD1B34D5F834C6655EB60F67B29A582A93A542BD3954AB2836B7EAEF34D36B8D92565D669F0B8BAD84755D0928BAB4E54A7749DE2F46B533E0337C5E068CA853EF55684DEF3A55A9A9C2FD293E0FAD58836EAA54C5E4995E271ADCF110C7AA546A4B594E9AB36AEF5693D13E6BD8C98BCD71FF009F925E15577238DEF4A1BEF77737ED6B70B58D0E2F34C5E33154B115AA2DEA36EF718C1461049DD2514AC95FD2639E37113CC1E3E534F10EAF7D72B2B6FDEF7B70E3CC07518486170583CFAA46B55C2CE18BEF2EA50A6A738536DE8B5564DA49BBF32479E9623073C8F32C3AC5E3F1B4553524AA5049519DFE0CAFBCED7D53E9B9A3A19AE370F8EAB8CA5512AB59B75138A719A6EED38B566AFCD62F8ECE7178DC32C34951A3413DE74A85354E2DF4B496AFB7801AE643E0491CC047380C00000500000EE3B9678DB1DF57FC51C39DC772CF1B63BEAFF8A095C5E27F69ABF4DFACC664C4FED357E9BF598C28000000000000678F2576180CF1E4AEC030CB96FB59025CA7DAC00000000003BCD81F9359FF00937EC48E0CEF3607E4D67FE4DFB1213B47066C720F1C51BFEECFD866B4F5E5789A784C7D3AF5A33708A926A36BEA9AD2FDA21F8E814AEF4E0CBC52492529A5D0A6D1E2FCAD965BE2F15E88FBC959C65ABFDDE2BD11F799CA4AE39E16FE37787C0AAB8375BC2269EB68EFBE6F396960A30C1BACEA55BD934B79D9A695DFDE69219E65F06F7618C57E36B2BFDE64FCBF97EE6E77BC638F0B36ADEB33E13F89F57FE3DC95376BCA4EDCD2936BD06555609729686A3F2D65B7BF7AC5F65A3EF27F2DE59FC1C57A23EF37849171C2C6EA93A755B8C9A692BB572EDD05250556A71492537EF344B3CCB57FBAC57A23EF2567B96A5F138A7F67DE759645B85AEB6A6529694EB549372B26E6D26ADC78F4E878B1786785841CA751CA6DA6BBE3D2CBB4D0ADA0CB970A78CF4AF793F9C1977F0717E76BDE599EBF59BC5BFC6C9CACDC93774B8B6DBFBCABA92971937E735CF3FCB9F1A58A7E68FBC8FCBD96FF000715E88FBC97296EDAC30B269B1B45B52774D689A6D35E83D986C0BC461A55215AB39A6D28A9BB696E2EFD6689E7D973FF00758AF447DE4FE7065FBB6EF78B4BAADEF2CCF53D562F0EEEEC743F91EB7C18BC44DCDBE0A72B2564EEDF9D1E7C4E0A787A2A752BCDBDE5169546ED757D4D33DA0C034BE0632E9F1BAF7879FE5EE3674F16FB777DE5FB3FF4BC33F23DAD463AC6FAF1BBBB655BB9E1FCB996BFF758AF447DE3F2D65B7F89C57A23EF39DB2BA618D934DA422A09EE4E716F8EECDABFA0F7E1B053AF8775A78CAD4E093D5D4765AA5D3D673BF9772EFE162BD11F793F97F2F71DDEF78BB747C1F79E5FA31B7763BDCEC9A8E8E195E2E538A78A9A8369392A9276E1CDCFA35D46B6AB937284AB55924DA69D47AEB6E935CB3FC045A6A38C56565AAD174712AF3BCBBF878AF447DE2FC7C7B916677F5E99370938DF45C0F266693CAB1135CF3A69F99B21E6F96C9DDD3C5FA23EF3CD8FCCF075F2FA987C3C2BA94E71779A56B2BF43EB3D13D4D3959EF6D39DCF72CF19661F575ED1C31DCF72CF19661F575ED05AE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A0000000000949C9A496ADD917EF33BB56575CD7031BBAE61C781E94AA2D1C23A24B577EAFC06F548A6F72293E3676ED03CBCE19EB4E6EE9C22D26D5EFA5FDC522EA2928B841B76D5F9905798739EA7DF559B8C3A6DE877291EF94D38EE24DBBB7D041E7F50E63D72EFD15BA9439D593EA2915520E4B713E769EA95EE079C83D53555C6CE316ACD249F4A09D55271DC82765A5F8AFFD407908E93D538D569C5C6296ADDB9ADC5FDC62542A3BD926D369ABF0B018582F384A0ECD6A500000280164B9D8456CDF31DC772D6A39AE35B76FF67FC51C4DFA0ECFB99DBF2A632EAFFECFCDDA815C7627F69ABF4DFACC666C47ED1534FEDBF5985F10A00000000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003BCD81F9359FF937EC48E0CEF3607E4D67FE4DFB1213B4704480228000000000000000000002C000000016000000058824011624002090001DCF72CF19661F575ED1C31DCF72BF19661F575ED04AE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C3908B158721162A0000000002EFA5FA400253934ECDB4F8D8373B59B76EB2D1E4BE6EB252E7724F8014BC92BA6D222F26EEDBEDB9772D5A4B81583F86B4D1BE0042735A26D5FACAB6EF6BBBAEB32BBA8B77BEABF128B849AD5A22A1B95DA6DDDAB7121B69EADA6FACB415EEDBD522376F249C96BCED810E526ACE4EDDA45E4DDD36D979D3518B7BE9DB9973849A69257D3A38814DE9A7CA69F695BB5C1BF4976AE9DF8A651806DB776DB6F9D957C49643000000B565CA27668B806EC8ED3B97A53CD71A9F0587FC51C54B81DA772F8B96698E49DBFD9FF00140AE3B10DAC4D5FA6FD65347DA64C4ABE22A7D37EB30F060007C580A0000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003B2D8DA38DAB90E732C2E323429C69B7520E8A9B9ADD7A26DAB739C69DEEC0FC9ACFFC9BF62422381248244500000000000000000CB86C3D4C55654E8C6EDEADF325D2CC4759966096132E849A4AA554A527CF67AA5E6411AB595D1A315DF1BA92B6BCC8F26228538B7BB04BB19D14F0F09D275AB565469EF3826E2E4DB4AEEC9745D7A4D76230D816DA798A4DF3BA12B7DCD81A19A5176E6065C7509E1B13528D4B6FC1D9B4EE9F434FA1AB33CF07756E7408B80028000000000000000075FDCEA8E32BE3F1AB058B8E166A8A7272A4AA5D5F859B56D4E40EE7B95F8CB30FABAF682571155355669BBBDE777E72A5AB7C74FE93F5950A000000001D8EC456C6D2CA73A584C242BC254D2A9295650705BB3D52B3BE97F41C71DEF73AF1267FE457B33095C3C3908B15872576162A000000000000253F82D5B5613B3BA2001773D2C93F3B2AA496AF5640025CB8DAFABB917B4AE969D043202A6F6774ADD44369BBA56EA043203254ADC55C800252BF359157C00020864900000142C9F332A022E755DCFEBE330F98E2A581C2C3112746D28CAA2824AEB5BD9DCE4D368EDBB9847BE66B8D57B5B0F7FBD02F4E3ABB6EBD46D59B9BBABDECEE617AB32E25BF09AABFE77EB31012D34AE42B5F5253B68C35CE828D69744164EEAC55AB300000819E3C95D86033C792BB02B0CB96FB5904CB96FB5900000000000EF7B9FC5CB6733F8A576E9D92FF00B2470477FDCAEAC275732C14FF00DE538CADD29369FAD0895C003D198616781CC31184A8AD2A351C5AEC7C4F380000500000000000015AEAE77955A7462D5ADBAADD963833AACA71B1C565F1A727FADA4945A6F569689FFEF4047A31BE2BA3E5AA7AA073F89E2CDECB13DEE9BA73A34EB536F7946775676B5D34D3E0BA6DA1ADC46330E9B6B2DC336B85E751FDDBC07833FF001A56EC87B08D6D3BEF33D18CAD3C462275AABBCE6DB6ED6D7A92E0BA8C305657E7608B000280000000000000000775DCAE2FF286632B68A824DF5DFF00D0E14FA3F73BA3E03B379A669555934D45BE8845B6FD2FEE095F3AABF1D53E93F5950DB6DB7C5BB80A0012BB009365B77AC9E0B422DD210DDEB3BBEE77A64B9FA7C7BCAF666709A1DDF7329C24F33C2CB5EF94E0FB16A9FAD02F4E1E1C8458BD6A32C3E26B61EA26A54AA4A0D3E94DA28540000000000000000000C082196E62A146432590C8000E70239C8279C800413CE4010F880F8800000A1DC772CF1B639FFD3FE28E1CFA17730A0E961735CC27A41454137C344DBF5A112B82C42BE26AFD37EB28925C44E6E55253FDE6DFA5956DB0A96D5884EDD800166B9D156EFC513AA7D44B49A08A804A5A6A150678F2576181A33C792BB00C12E53ED609972DF6B200000000001BAD91CD564FB4586C4D495A8C9F7BAAFF00E57A5FCCECFCC69401DE774BC91D3C54339C3C6F4AB251ACD2D1492B27E7565E6EB3833E91B15B4186CD301F90738DD94B73BDD3737A558FEEB7D2B9BA7B51CFED4EC6E3326AB2C461613C4605BBA924DCA9AE892FC78760472E020140000000000003250AD530F5154A337192E75CFD4CC600DAACD6155255A0E12E76B54FDC79ABE229C9BDD6DF98F180849A93BD80000001400000000000000F4603038ACC7131C3E0A84EB5593D1455EDD6DF32EB611181C1D6C7E3A96130D172AB564A314BD7D896A7D1F6C6AD1D9DD8DA19261A4BBE568AA6F99B8AD6727DAF4F39E8C9326C06C66575332CD2AC1E29C6D292D6D7FEC4573B7F7F623E779FE715F3CCD6A636BDE29FC1A70BDD422B82F5DFADB076D6800285A3CE5494ECEC11621BB6889224B9C0849B3A1D86CC565DB4D41D676A3884E8CDB7A2BB567E948E7937725B6ACD369AD53420EC3BA1E4EF2FCE7C3E945AA18BD5B4B4535C579F8FA4E50FA664598E176CB676795E3DAF0BA514A6F4BBB709AEBE9EBEA67059E6498DC8318F0F8C8374DBFD5D54BE0CD753E9E94078004D3574C1500000000000000C00041247385473000820300086432590C032192C8021800000126DA4936DBB24809846552718538B94A4D2492BB6DF048FA7E614E3B29DCF1E11B4B15888B83B3D5CE77BFA15D7991E5D89D95F004B3BCE62A938272A54EA69B8BF7E57E0FA1737139ADB4DA179F66B7A2DF81D0BC68AE9E993EDB7A1205F6E7800142571209880973104BE212B804B9D92DB7A20DF3049AB843A999E2BE0AD798C17E66678A7BAB5E603CF2E5BED64133E5BED6405000000000000149C64A516D493BA69D9A676B90F741C560E9C70D9B5278BA2959544D29A5D77D1F9EDDA71400FA4622A6C0E75FADA93585AAF56D295277EB56B33C8F67F621B6D67D34BA3BE47DC7040269DEFE6F6C47CFF003FE647DC3F37F623E7F9FF00323EE38200D3BDFCDFD88F9FE7FCC8FB87E6F6C47CFF003FE647DC70401A77BF9BFB11F3FCFF00991F70FCDFD88F9FE7FCC8FB8E08034EF7F37F623E7F9FF323EE1F9BDB11F3FCFF00991F71C1100D3BEFCDFD88F9FE7FCC8FB87E6FEC47CFF3FE647DC70401A77BF9BDB11F3FCFF991F70FCDFD88F9FE7FCC8FB8E08034EF7F37F623E7F9FF00323EE1F9BDB11F3FCFF991F71C10069DEFE6FEC47CFF003FE647DC3F37F623E7F9FF00323EE38200D3BDFCDFD88F9FE7FCC8FB87E6F6C47CFF003FE647DC70401A77BF9BFB11F3FCFF00991F70FCDFD88F9FE7FCC8FB8E08034FA0D2C9B60F0FF0EB66AF1096BBAEABD7CD1499E8ADB6B90E4D86787D9FC0C6A4AD6BA877B8B7D2DB577FFBA9F3600D3639CE778FCEF13DFB1F59C92BEE535A420BA12FC789AE00280000000253E92C50045C86F4B22B77D200CF82C5D7C162A9E230B5654AAD3778CA2F55EF5D47D0F2CDB4CAF37C1AC0ED250841B567371DEA727D3D317FFB73E6C93613B3B3058FA362760F29C6C5D7C8F358C22F5506D548FA534D79EE6BD773BCC2526A398617B5A92FC0E2D3945EF424E2FA53B17588AEFF00DF54BFD37EF069D9FE8DF33F9C309FD5EE1FA37CCFE70C27F57B8E2DE23109FC7D5FB6FDE3C2711FC7ABF6DFBC1A769FA37CCFE70C27F57B87E8DF33F9C309FD5EE38BF09C47F1EAFDA63C2711FC7ABF69834ED3F46F99FCE184FEAF70FD1BE67F38613FABDC717E1388FE3D5FB4C784E23F8F57EDBF7834ED3F46F99FCE184FEAF70FD1BE67F38613FABDC717E1388FE3D5FB4C784E23F8F57ED3069DA7E8DF33F9C309FD5EE23F46F997CE384FEAF71C6784E23F8F57ED31E1388FE3D5FB6FDE0D3B3FD1BE65F38E13FABDC4FE8DB32F9C309FD5EE38BF09C47F1EAFDA63C2711FC7ABF6DFBC1A769FA36CCFE70C27F57B88FD1AE65F38613FABDC719E1388FE3D5FB4C784E23F8F57EDBF7834ECFF0046B997CE184FEAF70FD1AE65F38613FABDC719E1388FE3D5FB4C784E23F8F57ED3069D9FE8D732F9C309FD5EE1FA35CC7E70C27F57B8E33C2711FC7ABF698F09C47F1EAFDA60D3B2FD1AE63F38613FABDC3F46998FCE184FEAF71C6F84E23F8F57ED31E1388FE3D5FB4C0EE287733AFBE9E2B35A108F3EE41B7F7B46D2861B64364977EA9888623171E0DB55269F525A2EDD3B4F994ABD692B4AAD46BA1C9B31834E9B69F6C7179EDF0F453C3E093F8B4EEE7D0E4FF0E07320000005000012BB2CDD9152C9DF461116BABA77279B416B6AB80EB40346AE678DB756BCC79EFD47A22BE0AEC03CF2E5BED64132E5BED6405000000000000000012BB2C92412D09B0445FA10ED41B488DEEA021A4B802D74F8956ACC28000000000000000000000000000000000000000000000000000059256B950059B5CC55B0002659A4F54552B93C1E8110F46096D35D6425761405B4E055AB00000000000000000000000000000000000000000000000000000129DB464F0D5702A13B04592BBBD8CAB82313765A1963C95D8061972DF6B209972DF6B20280000000000000002CB812513B32E1147C752C926B40D5C25602AD589E31EC265C0AABBD105002524D7102000000000000000000000000000000000000000000000000000000005A3C087C584F4B109004AECB36921A2442777A844A49EAC70D18B2B0EA604356E0416E1D8435CE8080005000100005000000010000500000000000000000000000000000F446DBABB0F399E3C95D80609729F6B04CB96FB59000000000000000000094DA20016DE41C9150106C264A4D9364828D26AE885A3D48BD9E85B46820D73952D7B2B32A140000000000000000000000000000000000000000000000040001425344008B3BA77E61C754427CCC9B5B5403AD06ECAE1EAAE88577A013C7B03765A06EC8AA5760126C16D120D26AE80A81C0000005000000000000000100000000500000000000000000CF1E4AEC3019E3C95D8061972DF6B20000000000000000000000000002DCC8AB600008002DC5150000000000000000000000000000000000000000000000000020000000004A60012F4E017000087C495C0000B5B90B8B00099702A000000500010000000050000000000000001000050001000050CF1E4AEC000FFFD9, '1', '2023-05-24 14:49:02', '1', '2023-05-24 14:49:02', b'0'); +INSERT INTO `infra_file_content` VALUES (11, 4, 'a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFDB00430008050607060508070607090808090C130C0C0B0B0C1811120E131C181D1D1B181B1A1F232C251F212A211A1B2634272A2E2F3132311E25363A36303A2C303130FFDB0043010809090C0A0C170C0C1730201B203030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030FFC000110802D002D003012200021101031101FFC4001C0001000105010100000000000000000000000102030506070408FFC4006110000201020303020E0B0C060805040203000102030405061112213107411317223651556171739192B1B2D11415163254748194A1B3D22324333435425256727593C1083762A2C2E3252643536582A4E244456383F0468495E1385764A3D3FFC4001B01010002030101000000000000000000000001020304050607FFC40042110100010301040509060502060301000000010203110405122131133241519106153352617181B1F02253A1C1D1E114163472D2234224354362C2F182A2B292FFDA000C03010002110311003F00EFE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086CC362D99B0BC324E15EE14EAAE34E9ADA97CBD831DCBB45A8DEAE710C96ED5776ADDB7199F6333A93A9A2DCF28715AFB170E935D9AB534FA12678E5CA1620FDE59DB47BFB4FF0099CEAB6BE9299C6F67E12E953B1B59571DDC7C61D1B523539BF4C1C57E0D67E4CBED131E507125EFAD6D1F79497F329E79D2F7CF82FE64D5F7478BA3EA4EA68343944A9AFDF18745AECD3A9A7D0D19BC3339E137B2509D49DAD47C1565A2F1ADC6C5ADA3A6BB38A6BF1E1F36B5DD99ABB519AA8E1ECE3F26C60A2338C927169A6B54D3DCCA93D4E839E900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021BD112CC2E6EC4A5866075EB537A569FDCE9BEC49F3FC8B5663BB722D5135D5CA192D5B9BB5C5BA79CCE1AD674CD951D69E1D85D4D9847A9AD5A2F7B7CF18BE6EF9A4FF0031BF7EBBC1F3FD56AAE6A6E4D75CFECFA2E93496F4B6E28A23DF3DE000D56D80000468481919ECAF99EE306AD1A55A52AB6527D5537BDC3BB1F51D4ADEAC2BD1855A535384E2A5192E0D3E73879D07934C4DD6B3AD87D496AE83DBA7AFE8BE2BE47E73D2EC7D6D5BDD0573C2797E8F2FB6F434EE7F136E3131CFDBED6E808449EA5E4C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010F81A2F2A35F48D85B27C5CEA3F9344BCECDED9CE794F96B8B5AC7B1435F1C9FA8E56D7AB774957B71F375B63D3156B29CF667E4D40CBE5FCB9778EC2B4ED2B51A6A8C9464AA6BBDB5AF318837EE4B3F16C47C2C3D13CB6CEB146A35116EE72E2F5BB46FD7A7D3D572DF38C7CE18DE97D8AFC2ECFF00BDEA1D2F715F85D9FF007BD46C19BB3457C06EEDE8D1B5A75955839B73935A68F4E6309D312F3B5F43F88CEBDDB3B36CD734579CC7BDC8B37F6ADFA22E511189F73CF3C818BC56B1AF6737D8DA92FE460F15C22FF099C637F6EE9A96E8CD3DA8CBBCD798DC308CFCAE6F695BDF59AA30AB3505561536945BDCB54F9B5364CC9634F10C12EEDE6B56E9B945E9C2496A9F8D09D9FA4D45A9AF4D3398479CB59A6BD4D1ABA6313F5D9C1CA309B0AB8A6214ACA84A10A9575D253D76568B5E632B8CE51BEC230F9DEDC57B79D38349C61B5AEF7A7396F223DACD362FB2A6FF00BA6F1CA175AB75DF87A48D5D2E8ED5DD2577AA8E319F937357ADBD675B6EC533F66AC67E33872C360C815DD1CCD463AE8AB4274DF8B55F4A35FE766532A49C73261ED73D648E6692A9A6FD13ED874B574EFE9EB89EE9F93B0478124478127D11F36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F039B729FF00972DFE2CBD291D25F039BF29CBFD336D2ECDBE9FDE671F6CFF004B3EF8767624FF00C5C7BA5A9237EE4AFF0016C47C2C3D134137EE4B3F16C47C2C3D13CFEC7FEAE9F8FC9E936CFF00475FC3E70F0F2A3F952C7C0CFD233795304C2EE72F5957B8B0B7AB5674F594E504DB7ABE2CC2F2A3F94EC7C0CFD236AC97D6B58782FE6CECD8A29AF68DD8AA33C3F4717515D546CCB3344E38FEAE739A6DE95A666BAA36D4E34A9C2A4366115A28EE4F723ADDCA4EDEA6BFA0FCC729CE9D765EF84A7E64757B8FC5EA7ECBF313B3785DD44477FEA8DAB333674F33DDF952E5190FAE8B1EF4FD1379E50BAD5BAEFC3D2468F90FAE9B1EF4FD1377E50BAD5BAEFC3D2460D0FF00CBEEFC7E4DADA3FF0033B3F0FF00F52E5BEB32795FAE3C3BC3C4C63E73279596B98F0ED3FDFC4F3BA7F4D47BE3E6F41A8F435FBA7E4EC2B8124478127D1DF330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043E0683CA8D17D1AC2BF338CE0FC69FACDFD9ADE7FB0779804E74E2E552DA4AAA4BB1C1FD0CD0DA56A6EE96BA63DFE1C5D1D99762D6AE8AA7972F1E0E5C6C993B31DAE034AEA1754AB5475A7192E8693D345A1AD224F1162FD7A7B91728E6F777EC51A9B736EE729673386396F8EDE5BD6B6A7569C6953716AA249BD5EA66B00CE96386E0F6B675ADEE65528C3664E315A3DEF86F34906C51B42F5176ABD1CE5AF5ECEB15D9A6C5513BB4F2E3F5DEF763F7F4F12C66E2F68C270855945A8CF735A24BF91BAD5E5030D9D39455ADDEB24D7BD5EB39E016B685EB3555551FEEE65ED9D62F534515C70A78471F77E8F7E5BBFA784E316F795E339D3A5B5AA86F7BD686C399F37D96318356B2B7A1710A951C5A94E2925A3D7B269E0A5BD75DB56A6CD3CA57BBA2B376ED37ABEB53CBE1393B2673235175B33DAF621B537F22660CDDF931B093AB75884E3D4A4A8C1F65F197F2F196D9F6A6EEA6888EFCF831ED2BB16B4B5CCF763C7837D5C0921127BF7CF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028A9153838C9269EE69F3A2B21AD40E539B72ED4C1AF25568C5CACAACB58497E63FD17FC8C09DC2B50A75E94A9D6846A426B49464B54D778D4317C836D5A52A9865776CDFF00B39ADA87C8F8AFA4F2BADD8F56F4D7638C777E8F59A1DB74EEC5BD4F09EFFD5CF81B05CE4AC6E8B7B1429D64B9E9D45E67A33C73CB78D41EFC36E1F7A3A9C5AB497E99E344F84BBD46B34F5C669AE3C618B064BDCF633DACBAF2095977196FF265CFCB0D0A7F0F7BD49F095FF89B3EBC78C3180CED0C9F8E566BEF3E86BB352697D066B0DE4FA6E4A5895DC5478BA7456ADFFCCFD46C5AD9FA9B93C289F8F0F9B5AEED2D2DA8CCD71F0E3F26AB83617738BDEC6DAD63DD94DF082ECB3AE61563470DB0A5696EB48535A6AF8B7CEDF758C3B0DB4C36DD50B2A31A50E2F4E2DF65BE73D6969CE7ABD9FB3E3494E667354BC86D1DA356B2A8888C531F5994800EA39400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011A12008D10D112008D10D112008D113A00000000000000000000000000000000000000000000000000000669BCA0F28986E4E846DE54E77D8A558ED52B3A4F7E9FA527F9ABCFCC06E3A94CEA421EFE518F7DE8710BCBECE18EAE8F98B30BC0684F7AB0C3925522B994A6F7A6626A607959CB5BCB8BFBF9BE33B8BEA926FC44E07D05ECBB7FF007F4BCB443BCB6F8451D3F6D1F3EAC0B2473D837FFDCD527DA5C8AB8E18DFFF007554607D02AF6D5AD55CD17DEA889F65DB7C2297968F9F560D90D2FC94FE75549F69F21F6A9FCEEA8C0FA07D996DF08A5E5A1ECCB6F8452F2D1F3EFB5190FB54FE77548784E435FF00953F9DD5181F41FB32DBE114BCB43D996DF08A5E5A3E7CF6AB2176A9FCEEA90F0BC85DAA7F3BAA303E84F665B7C22979687B2EDBE114BCB47CF4F0CC85DAA97CEEA91ED7641ED4CBE7954607D0DECBB6F8452F2D0F65DB7C2297968F9E3DAFC81DA997CF2A91EC0C80BFF297F3CAA303E88F65DB7C22979687B2EDBE114BCB47CECEC72076A65F3CAA43B3E4FD7FE532F9E55F50C0FA2BD976DF08A5E5A1ECBB6F8452F2D1F39BB4E4FD7FE532F9E55F5056B9024D46183CE727EF631BCABAB181F45FB2EDBE114BCB4513C46CA9AD6777422BBB511F23663C472DD0BA71C2F098C767F37D9139C577E4DADAFA177CF0D3CD35A31D9F674ACE9FFBBB3A2B77CBB881F62FB6D877C3ADFF008887B6D877C3ADFF00888F8F5666A3AEBEDD637AFECC3D64FBA7A3DBAC73C987AC0FB0562B87BE17B6FF00C444FB6763F0CA1FC447C7BEE9E8F6EB1CF261EB1EE9E976EF1DF261EB03EC2F6CEC7E1943CB44FB6763F0BA1FC447C79EE9E8F6EF1DF261EB1EE9E8F6EB1CF143D607D85ED9D8FC32879687B6763F0CA1E5A3E3DF74F47B778EF8A1EB2CBCD15357A6318AB5CDAE9EB03EC8F6CEC7E1943F8889F6CEC7E1943CB47C6DEEA6AF6E314FA3D63DD455EDC629F47AC0FB27DB3B1F8650F2D11ED9D8FC3287968F8DBDD455EDCE29F47AC9F75157B718A7D1EB03EC8F6CEC7E1743CB43DB3B1F8650FE223E37F75153B718A7D1EB1EEA2AF6E314FA3D607D91ED9D8FC32879687B6763F0CA1E5A3E3C866786CADBC6B1B52E7D950D3CE4FBA7A5DBBC73C987AC0FB0BDB3B1F8650F2D0F6CEC3E1943F888F8F7DD3D2EDDE3BE287AC7BA7A5DBAC73C50F581F617B6763F0CA1E5A1ED9D8FC3287F111F1EFBA7A5DBAC77C987AC7BA7A3DBBC73C987AC0FB0BDB3B1F8650F2D15D2BEB5AAF4A5714A6D734668F8E9E67A5DBBC73C987ACAA19B6AD37ADBE37886AB82B9A4A4BE8607D95A927CB596395FC6B08AD18D5B9E8F435DFABDB83FF95EF5F26877CC8F9DB0FCD968A5424A95CC63B53A5AEBAAECC5F3AFA57381B480800000000000000000000000000000000000000000000000000000000000000000000000000000000000001AFE7BCC6B2C65EAD7D4E9F47BBA92542D2873D5AD2DD18F7B9DF71338B5D619ED4DC3BCC56BCB11CC1752E8D715A6FA884DF3457F67E83A0676AEAFB944C3ED66B6A8E0D6352FDC1F07566F621F427E339F6295255B14B89CDED38CB675F3FD24C0B1373AB273AF37524F7B6D91F20D4A652D250824E552A3D2108AD652EF1227521B3D35E95BD8D1E8D8B5DD3B68A5AEC296AFE5658A38D61535AD961B7B7B05FED216D39C5FCBA6805BD569CC436BB28BEF33E156F24AEB0F769AEED6EAD1C178DA3274B11B4AD4D54A36765520FF003A34A2D01836D770A5B5D94679DDDBFC02D3F83121DDDBFC02D7F851035F6D764A5F70CFBBAB7F805AFF000A25AA93B0ABBAAD8528F769EB17F401839143325778745C5D4B09CAB25BDD297BF5DEEC98BDA528EB1DE8089143454CA181448A2456CA1B028934936F448B38AB9528CECA12749C68F47BFACB8D2A7F9B4D761BDDBB9DBEE1EFC36942B621461574E86A5B73D79E314E4D7D060316771778350515ADCE3974EE27AF3A73D9A71EF717F29122FE40E4F710CF37552E54958613467B33B892DADFC7620BF3A5A71E65CE763C37922C97634A31A986D6BE9AE352E6E25BFE48E891B4E5FC1EDF2F60965845A4546959D254F54B4DA9F19C9F75CB566BFCA46775942DADA95B5BD3B9C46F14A54E155B54E9538F1A92D37BDFB9236A2DD3453BD5346AB95DCAB14AFF004B7C95FAB769E5D4FB43A5BE4AFD5BB4F2EA7DA305913946BEC5B314300CC96146D6F6E21D12DAAD04E319F53B4A328BECC77A68E8CB86E325116EAE50C554D74CE265AB74B7C95FAB769E5D4FB41F26F92BF56AD3CBA9F68DA4868C9D1D1DCAEFD5DED5BA5C64BFD5AB4F2EA7DA21F27192D7FF004D5A79753ED1B4B04F47477237EAEF6ABD2E325FEADDA79753ED11D2E7267EADDA79753ED1B5496E2864F474771BF577B58E97392FF56ED3CBA9F688E973933F56ED3CBA9F68DA0B1797746CE8BAB5E5B31E092E2DF7089B744719856ABB34C666787BDAF74B9C99FAB969E5D4FB4599642C8B196CBC0F0E52EC7479EBE9155FE29738849C615151A3CD15CFDF663A567562B5D95517662F7F88AC5347738D7B6C574CFF00A34CD51DF964FA5DE4D6B55972D347CEA73FB443E4EF26FEAE5A79753ED18FB3BBAF693D6DEACA0F9D6BB9F7D1B2E198AC2F74A7512A75FB1CD2EF7A8BC51476C32E936C51A8AB72A99A6AF7FE6C43E4EF277EAE5A79753D643E4F3277EAE5A79753D66D0CA5A327454773ABBF577B57E97993BF576D7CBA9EB0F93DC9DFABB69E5D4F59B3B5B8A1968B3477237EAEF6B2F93DC9FF00ABB6BE5D4F590F93EC9FFABD6BE5D4F59B332193166DF7135D5DED67A5F650FD5EB5F2EA7ACF3DCF26D93EBC1C5E090A5AFE751AF38B5F4B36C6413D0DBEE47495F7B8B678E492A61D6D5711CB15AB5D52A3173A96B537D58C571716BDF25CEB8F7CC2647C76BE0B56DF15B2AB2A70A35630B98C7FD949FBDA8BFB2F83F95760FA0F57192945E924F54FB0CE2B98F04A183F29175654E0A1618C5252E8696E4AA6E6977A7BD1CFD4D88B7F6A9E4DDD3DE9ABECD4FA6701C529E33855BDF51D12AB1D6514FDECB9D191397FF47DC46AD7CB156C2E64DD6B2AB2A32EFC5ECBFA343A81A4DC00000000000000000000000000000000000000000000000000000000000000000000000000000000000072EC45BA9CA266B9BFF6365674E3DE6DB341B896B7770FB3565E73A05D2FF5F339BE756F6073DAFF008CD7F0B2F39614B6F4D211DB937A462BF39F3226A54AD875C53C370D846F31DBE5D5CF5D234A2BBBF9B08FD3C78B3D987A85BDBD6BFADC2926A3AF36EDECA7937B1AD89D5575AB57F8E5572751F1A36D17B97D0DF7771033795F2553AD73D121456318845EB52F6ED7DC68BFEC45EE5F4CBBC6C57F6982D9B74B18CD54E9D55C69D05AA8F7376A61F3CE698D9CA597F029BB7B2B5FB9D69537D5559FE72DAEC767B2CE7B5EFB7B50F1240748A997EC31984A9E5DCD16D7959AFC5AE168E7DCD38FD0734C7B0CBECB789CA9C2DE5855EAEABA03DF42BAECAD3768FB31F9518CBABDEAF6B7C6717AA6B74A2FB8F8A374CBB8EC73F6115F2AE61ABB588D2A6EB61B7F25D5EB15F9CF9DAE7FD28B7CEB5031D83E2D4B15B47569C5D3AB4DEC56A52E34E5EA3D8E468383DE56C2F3128DCC7A14F6DDA5D43BBAE89FC8D788DE66F4D53E602A94CA2522D56AF4E8D29D5AD38D3A705ACA727BA28D7ABE72B085471A36F735E2BF3D6915E27BC0D8BA238B4E2DA6B8345BBCA4AEB6EE28AFBE22B5AB05FEDA3FA4BFB6BE95DD31F86E33698A465EC5A92538AD654E6B4945767BA8F5C2BCA9558D483D2517AA03C8DA6B54F55D9296CF46214951BA9A82D29CD2A90EF3E6F1EA795B2453228915B65B9017AD1ECC2F26BDF42CEBB5E432E619690A99B723DAC9270D9B36D76773979CB56CFEE37FF11B8F419EFC17AFEC91E0ED3EA988E6AD5D5977993D6727D96CD23950C91719AE959DE6155E9D0C52C54A10559E94EAD36F5D96F99A7BD3E06EFCE0E8D5445718972E9AA699CC3967271C9A62984663863D996BD0E8F6CA5EC6B6A353A275525A6D4A5C125ABD123A968D6E5C0904514451C935D735CE6500921ADC6450D17390D12B72DE0254B2992D5764ADA2381285096AF4348C72FE57D7D2945FDCA2DC69AEC25CFF0029B9DEC9C2CEBCD718D29B5E2673A83D52EF118CD4F3FB6EF554D14DB8E53CFE0F451A8D3D1B323427AA46256BA703D36D55C748B2B5D1987074D7E689C4BD971423596D6E8D4E67D9EF9E38B942A7E8CE2F82E63D91AA9BD13D5F616F2AA987DDDC38CE8DAD69496E7D469AAF94A51331C25B3A8D3F4D1BF6A333EC66F09BDF665BE951FDDA1EFBFB4BB27B0C2E1F87DFDADCC2A7B1E5A70926D70F19997B49FE0AAF926CD32F47B3AEDEAECE3514CC551C38C73F6FD7E68652D09548C7DF29C7F6A0D0528CFDE4A32EE26648986FA96432A7CE4164A92192C82D0AA96732E57E9F43CC1972EA3BA52854A7AFECCE2D79CE9CCE6DCB27E51CB7AFE956F3C4D6D5FA2967D3FA486DBC89AE81993355BC3DE2BE9B4BB1AECB3AD9C9391AEBBB35FC765E8C4EB6719D5000000000000000000000000000000000000000000000000000000000000000000000000000000000000730BAEBEF3A7C5EC0E795DFDF55FC2CBCE743BAEBF33A7C5EC0E775F7DD5C785979CB408CC55654B2556E87B9CDCA1AAE6D59B472555A36F7B88D48689D861C9524B9BFF9B28D47323FF532A785FE68F472758ED2B0CD91A172F4A3885376B2DFBB69EF8AF977AF940D6EB5F4AA53E8939372A9ACE4FB2DBD597AC7DABAD46FE58A5ED4B7F63D3FBDE8D3F7D5EABE0BE57F418ECCB675B04C62EB0DAFAFDC66DD36FF003E9B7AC64BE4DDDF4625DE455685572942AD369A9C77F0E0FBE4D13113998CAB5C4D51889C2F5DCEB5353A573171AB4D6AD3E317D8EF1196B10A9679AB08B8A327B70BCA6B7761BD96BC4D9E4C531395ECE4FAAEA9ED4E737B529BE7726F8B3239070D95FE65B7AD35F7BD93571564F826BDEAF1EFEF2644E33C130F4F29B0850CFB893A2B45370AAFF69C536FE8369855E89469CFF4A0A5F41CFB32625EDC660BDBF8BD6156A3506F9E09689FD06F16D2FBCE82FF00D28F9884B059EAE26E1656717A42B4A5527DDD372F3EA61DD950783DBDC5B5F29DF55AB28BB282EAA9D35AE926F9DBD35EE2D3B26C19970F9E236B4E5434F645BC9CA09BF7C9F15DFEC1AA5292B5BADAAF4AB529C5F55051717F232D4CC44F1856A899E52AACEB4ED6FADAE60B66A46AA8C92FCE4DE8FE866F3525A4A51D783D0D630FB5AB88E214EF2B5BFB1AD69352841AD369AE096BBDF759B04A6DEF6F79559EDBF7B56D6137C5D39C1FC92DDE73C4D9E9BA7AD961FDEABE7479592299328932A916D817ED7F037FF11AFE8332182F5FD91FC1DA7D5331D6AFEE57FF0011AFE8332382F5FD91FC1DA7D5311CE15AFAB2EF5CEC0E7074DCA0027402013A0D00A5A21A2A20210435BCAB420916ABD3E8B42AD2FD384A1E3473486A9B52DCD6E674FE0F55C78982F6BACACAEAB5CD3A5D1EBD49B9C7A26F852D7992E77DD119CF07276968E753BB3138C6583B1C1AEAE292AD5366DADFFDED67B29F797167B21430BB55BA9D5BE9AFCE9BE874FC4B7B2FDE4EAD7A9B75E6E6F9B5E6F90F24A24CC4F6B99D05AB1D4A733DF3C7F0E5F3F7AFAC52E20B66DA346D63D8A34D2FA4A3D93715A5F75B8AD2EFCD9614197A945F60609B972AE1332F6DAEAF8B6FBECC9D24D451E1B487032105A245E1BDA5A6613B738F0934533D99FE129C27DD71DFE325905B112EBD2A5D38FE64E70EC29756BD65128CE0B6A715B3FA717AC7D68B8C88C9C5EB16D31BB31CA56CADEE6B55CE52CBAE30936D694A5D94BA97DF5FCD144E2E32D26B493DEB9F5EF764B457C7124C286736E597F28E5AFDAADE789D28E6DCB2AFF48E5AFDAADE7898B55E8A5974FE921B67235D77E6BF8ECBD189D6CE49C8D75DF9AFE3B2F46275B38CEA8000000000000000000000000000000000000000000000000000000000000000000000000000000000003985DF5F79D3E2D6073AAEFEFAB8F0B2F39D12EFAFBCE9F16B039CD77F7D5C785979CB0B1995E9936AF847E7468D7371B5AEF6B9D34F469F67B8CDDB333FF536AF847E739BD4AADB640DF1660C2B37E1D46C33456F61E2B6EB668620968AA7ED3E1ABE74F737BD34616F7236394E7ADAAB6BEA4FDED4A5554755DE66B0F7F1DE5DA17371416942E2BD25D885471406C16D92B108BE898B57B6C3EDE3BE7295452969DCE6F1956338ED95A616F05CB9AC6DE5BABDCFE756ECE8F8BD79DF637235BAD56AD769D7AB52B7849B979CA0095C4E85427A5AD15FFA71F31CF57137BA32FBDE92FEC47CC05E94CA2551F3BD74E1AEF2872287202A94DB7AB7ABEE94B914391436064AE1FDE161DEABE74795B2FD67F785877AAF9D1E76C910D94489652C0BD69F82BFF88D7F41992C17AFEC8FE0ED3EA998DB3FC1DFFC46E3D0664F05EBFF0024783B4FAA6239AB57565DE5F17DF243E2FBE0E94394003424013A13A119149055A10D1391043D12DE54D685B6F69EBCDCCBF9816EA6B25BB723CB5A9EA8F6736F289C0C94CE3831574E588AF438E88F24E8BD7819BA94933CF3B75AF02D868DCB19625527AF03D1468F0DC7B15B2EC1769D14B791861A74DC514296CA47A34DC231D09D3B259BB6EDEEA96C8264B7EE1A12D8852CA4A9A299702D0944BB2429752E338EDC1EFD9FE6BB0C97EF4A58C44F09113869BE2F6A2DEE7DDEC3EEF9CE69CB37E50CB5A70DAADE789D3232D86F72717B9C5F06736E5AA295FE59945EB172AFC79B7C7733575198B730CF63D244B69E46BAEECD7F1D97A313AD9C9391AEBBB357C765E8C4EB6729D300000000000000000000000000000000000000000000000000000000000000000000000000000000000072FBBEBEF3A7C5EC0E6F71F8CDC785979CE9179D7D674F8B581CDABBFBEAE3C2CBCE5BB079733BFF00542AAFFD46735E73A36687FEA9CD2FF7A739E72245FB0B4AB7F774EDA828F44A8F44E72D98C5717293E6496F6CBD7F0B0B7AEE8D854A97B18EE95792D88D47D98478ECF75EF679A129468D6717A392506FB8DEF464F07A783CACB10589D5ACAED528AB2A54D7533A8F8B9B5CDCCB9B9D934C6F4E2113388CB1F4A9D3AF2E8707D0EABF7AA6FA993EC6BCCCB2D34DA69A69E8D3E665FAF6F5695193AA9E919EC29765E9AE9AF396EE27D16AB9BDEE4937DD7A7122630950B89BB5297DC69FEC2F31A4C78A37184BEE50FD9405C948F661D826338AD155B0CC2AE6EA93DF1A8B48467FB3B4D6D16708A142F71CC36CEF16D5BDC5DD3A5562BF3A2DFBDF974D0EEDD0A16F52373171E81A6CC6318FBDE6514B9B42786332739C380568D5A17156DEE68D5B7B8A2F4AB46AC366707DD5FCF832DB91D1796CB2A11B5C1715A6E0EE2A5CCED3697BE749C1CB65F6545AD5763539AED1589898CC266313865AA3FF0047E1FF00FBBE7458932ECBF26E1FFF00BBE74586CB210CA24CA994303D164FEE77FF0011B8F40C9E0BD7FE47F0769F54CC6597E0EFFE2371E833298275FF0091FC1DA7D5311CD5AFAB2EF5CEFBE4E9B88E77DF2A3A2E5090D0000090486F23424A66F662DB2051537BD95C1711A08AD16FE3C492D04A96B7141708D0942DCA1A96DC0BED14B45E2559859D8EE13B25C71D082728DD851B2342A6404E1435BC8656D14B2D12950CA5A2A6432D08950F8149548A59610CE6BCB3EEC472D2FED56F3C4E94CE6BCB3FE52CB5FB55FCF135F55E8E59AC7A486D9C8D75DD9AFE3B3F344EB4724E46BAEECD5F1D97A313AD9C7750000000000000000000000000000000000000000000000000000000000000000000000000000000000001CBEF7AFACE9F16B0F39CCEE1FDF571E167E73A5DEF5F59D3E2D60733B87F7D5C785979CB760B18952779815E5AADF2D9DB89CDF8EFEC9D2A559D092AC96D462B49A5CF1E7F11A6665C2FD837AEAD0EAAD2E1EDD29AE09BE2BBC448C65B54846528D64DD2A8B667B2B7AEC49778AA74654A5173842BC16F8CE0FA96BBFCDDE2C684A7A707A7780F7DCDD55BF547D96E142D2DE3A429D38E897676571727D9678672DA9CA5A28A6F549737708E7D5F1097AC0BB674FA35C5382DFB5248DA5BD37188C0ED5C7EFAA8B44D694D35C7B2CC9B901353AA8E9B5283D54A3283D25169EA9A7CCD337BC3F955BCA185FB1713C155FD74969736F70A92A8D73CE0D6E7D9D371A0B652D8F60CAE65CC37D992F695C5FAA7469DBC5C2DAD6936E1454BDF3D5EF949F3BF90C56BBCA5C8F459C229BB8ADF81A6F87E9CB9A284460E6C95DFDCE1696FCF4286B2FDA9BD7CDA1E5D497394DCAA54DF52A3DA914B24194325943607AAC5F517FF0011B8F40CA609D7FE47F0769F54CC558FBCBFF88DC7A065704EBFF23F83B4FAA6239AB5F565DF52DE012745CA09D082406800200B7537CE31F95970B51EAA73977742604B441514B24190490488292B209429E3C4A5AD0A9AD087C0B214064B5A320910CA1959449712D0286F790C9E70CB2143297B8AD94B2D0850735E59FF0028E5BFDAAFE789D2D9CD3968FCA196BF6ABF9E260D57A3967B1E921B5F235D7766BF8ECBD189D6CE49C8D75DD9ABE3B3F46275B38EEA00000000000000000000000000000000000000000000000000000000000000000000000000000000041200E555EBD2B8CEB9D6A50A91A90E81651DA8BD56A9E8D7C8CE6970FEFBB8F0B2F39BBE5F94A59833C3949CB495149BE65D11EE346B87F7D5C785979CB0A53DE796A5254E9CE94A92AF67535DAA4F8C3BB1EE770F46A46A06B97B96D54FBA61B5A33873425C6262EAE0F7F49E92B69FC86E9284252DA5D4CBB2829558AD23522D776206930C26F24F4E8128FED6E3DF6B83AA6D4AE13A8D6FD951EA75FE66CFD12AAFCEA6FBF17EB1D16A7628F90FD640C3B52E78CBC452D4BF465E2332EACFF468F92FD652EB4FF468F932F581877197E8CBC42346ACF85393F90CB3AF3FD0A3E4CBD6533AD55F09C21DD85349F8DEA078559AA4B6EEE5B2B9A11E322E28CAA4A33A91518C3753A6B847BBDF2E6CC549CB7CA4FF003A4F561BD4910D94B64B28601B286C96C8607A6C3DE5FF00C46E3D032D827F58191FC1DA7D5331387FBDBFF88DC7A0CCB609D7FE47F0769F54C88E6AD7D5977EEC8049D172800000094046BA16A8FE0D77779767BA9C9F7196E9FE0E3DE26392553E052D1514B250860024410F8924325086B520A8A5F126094496A51A17398A1EE26108652CA882C2D344685525A1497550CA6456F814B2612A19CCF969FCA1967F6ABF9E274D6B4399F2D3F9432D7ED57F3C4C3A9F472CD63D24366E482BD2A59C73342A548C2556FE71A69BDF37B317A2F90EBE70EE4D64D728188A52694B17A9AAD78FDC4EE2B81C775000000000000000000086F40241A872B39A2FB2864BB8C630CA742A5C52AB4A0A35E2E51D25349EE4D73774F5F2738EDD665C97866317F0A50B8BBA6E738D24D413DA6B726DF600D900E26BF9EB37E1D92B029E2D8AAAD3A6A6A9C29D186D4AA4DEBA25CCB83DEC0D8351A986C3B30D9637967DBAC16BC6BDBD4A12AB4E5D86937A497334F734699C8667CC5F3CE1F89D7C6A36D19DAD6A70A7D029B8AD1C5B7AEADF600E980D3ADB94AC02EB3E4F28D0A956ADEC62D745A71DAA7D116AE54F55C1A4B7BE1CDAEA6CD88E236785DA4EEF11BAA36B6F05ACAA559A8C57CAC0F5834ACBBCAA656CC798638260F755EE2E64A6E32E82E34E4A2B56D37DC466B33E6CC0F2ADA7B271DC468DA474EA60DEB39FECC56F6066C1AE649CED83E75B5B9B8C0A75A74EDA6A9D47569B86F6B546C6008D4D3335F28B432DE2F2C3AA65EC7AFE518467D1ACAD554A6F5E6D5C96F35BC7396554B06BD9D9655CC96D731A1374AB5C58C552A73D1E929F57EF53E3DC03ABEA49C4F20F2D57B7580F45C7B01C6313BBE8D35D1B0CB28BA3B3A2D16BB4B7AD5EBDF46D785F2AD6F88E256D64B2AE66B77715234D55AD6718C21ABD3593DBDC80E820C0676CD76B93F06F6CEF6D2EEEE97458D2E876B0539EAF9F46D6EDC689D3FB01FCECBF98925C5FB169FDB03AD6A0F9F32872F9792C4B10A998AC6EEEEC5BFBD69D85B45CA9F54FDFB725CDA7D26D51E5F7016D2597F316FDDF8B53FB60758D46A79AA5DA5864AF6107A2A2EB28CB73F7BAE8CE3F7FCB2E2F3E4BA39AAC70EB3B7B9789AB274AAB95486CEC4A4DEE717AEE4076A1A9CF33872AF87E4EA3844714C3EEEEAE311B58DC2F62A8ECA6F4D575524F8B356B8E5FABD79469E0F92F10B99CB8744A8E3F4460F503B5A7A9269BC99669C6F3458DE56CC180D5C1AAD2AA95284E128AA906B5D5397169F1D3B28DC80000000000000E29977F2FE78FDBA3F58CD1AE1FDF571E165E7379CBDD70679FDBA3F58CD12E1FDF571E165E72D029D486C86C86C0923523521B00D90D90D94B6054D94B643643601B296C3652D80652D86C86043652D92D943601F1297C09652C0F5E1CFA9BEF88DC7A066303EBFF0024783B4FAA66170E7BAFBE2171E8199C0FAFFC8FE0ED3EA9911CE15AFAB2EFFCFF00280F8B0745CA00240201152212A2A2FB94977196294B5A51EF1EA7BF7764C553B850A7B2DEF849C597A2330897B1CB42973463EADFC23F9C79A589C13F7C678B528CB33B686D185589C1BF7C5FA77D097E7227A2932C9ED13C4F1D3B88CB9CBF1A8998E69981748904F5E0471E24190892E7243E04A16C3259048A648B6D17596E48B42254F310C920B0A64732E5A7F28E59FDAAFE789D39F039972D5F9472CFEDD7F3C4C3A9F46CD63D24325C9AFF00583887EF7ABF527725C0E1DC9AFF00581887EF7ABF527715C0E43A800000000000000001CAFF00A40678C4B29E1D855BE0173D0311BCB873D5414DBA705BD68F76F94A2BC67537C0F9E2EA7D327FA42D3A54FEED85E0AF46F8C5C293D64FFE6A8F4D7B1A01B7F2D7ECEE920BDB6A8AADF3F62BB89A82827536A3B5B970DE7930BBDC6F0CFE8E36388E5BB8542F2CEDFA34A4E119B7494E5B7A6BB934B7FC866BFA45FF005597DD9F6450FAC47BF91AA34EE7924C168578ED53AB6D384E2F9D3949302FF23D9AE79BB23D9DEDCD5552F68EB6F74F76AEA479FE54D3F94F6673C732842DEBE099B312B0A31B9A5D5DBDC54516E2F83EE70DCFB28E49C8C5DD4C8FCAB63192EF64E16F77394686D37A39C35941AD7F4A1AF7DA4757CD3C9D658CD588AC431CC3DDC5CC69AA4A5D1651D22B82D13EE81CCF93C595F23D2CC118E7EB0BBB3BC538DADA46B2D34D9EA652D7F3F9B76E7A7C8B5EE42F1AC2AC728665C3AFF31D0C02EAF6508D0B894E2A70EA24B6A29F1EC7CBC53D196F953C072851C528E56C8584FB2B1B9CF5AF5A15E528D0514DB8EF7A37A6F7D84BB2683942DAD2D6B52C671EC2A588E034EE15ADD284DC5C1CE2DA6B4E74936BB3A680771E49A390722D955AF779B308BDC66E75E8F731AE9A8C75F7B0D77E9CEDF16CDB394EE4F972893C1E32C4BD89616AE752A3A71DA954524B4D9E65CFBDEBDE31D83F253C9AE3786D1C430AB085D5AD78EB0AB4EE6A34FE9DCFB9CC74BA34A1468C29535A4211518AEC25B901F31F24D86D1C1F97EAF86DA393A16756F6853737ACB6631925AF7771BD72A1C94D1C5F13CC59BB14C46A3A70B4DBB6B5A4B4D1C2969D549F36AB5D178CD4393EFF00F92D897C6EFF00CD33BB7283D6363BF10ADE8303987F450EB7B1BF8D53F40EDC711FE89FD6F637F1AA7E81DB80E47CAA66DC1DE34B0CAF8CE68C26E2C1B551E1747A8ABB4935ABE7D0E7F8EE37855C60B7D42DF3767ABAAB5284E30A1714BEE751B8BD233FECBE0FB874EFE9138E62980648B6BCC16FABD8DC4AFA14DD4A33D96E2E137A7D08E7787E6EB1AB616D52F394FCD146E674A12AB4E167294613715B493D37A4F55A8180C8188D9619807B1F12CC19B709ADD1A72F63E1B4BEE5A351D25BF9DE9BFBC8DE32A675C0707C6E8DDD4CC79D7145A3A7EC7BCA1B54DB96E4DAEE18DF75584FFF00DA99ABE632F519FF00E8F599B16C7B1BCC14711C66F313B6B750F63CAE65BF6769AD74E66D240740E5133058E178254B4AB986DF00BFBEA4FD8971596BB2D35ABD39F8FD2711CD79A71BB1C0EE2ADBF2A96B8BD492E87EC4B7A1A4E6A5B9EF6B7249BDE759E57B1FC9D805A5B57CD986D2C4EEE519AB3B7951DB94B86D6927BA2B5D9D5F7B733E7CC22DB15CF39C2ADFE0B94EC6E69D9A53961949AA34630D5ECA9755172DFC5F3F780CD72772AD84E5F8D4B0E52B0EC025772E8B56D2549CE516B72DA7D9D17036CB1CC18852BDA152E7964C36B518548CAA53E80D6DC75DEB873A3CD7980670BBB4AD6D3E49301846AC1C1CA9CE309475E74D55DCCD3324664C3B27E237183E75CAD6988D1A15651A93E85195C5BCF5DEB5E125DCD7BCC0FA96588DA62D96AB5FE1D5E1736B5EDEA4A9D587092D1F03E4FC3EF318C57931596B0DCBB7D774A388FB31DED18CA71D541AD8D951E3BF5D75F90FA8B05BCC22FB2246E72F535470B9DA547420A93A6A31D1FE6BE1BF53E75C899E738648C86EEF0CC36CAA6092BD74FD9159EB2E8CE3AECECA927C23C74D3BA07BF944C72FABE25C9FE2B5F04B8B7BCB68452C3EA6BD12A3A55E292F7A9F55B3D8E7E7374E9D39863465523C9CDFAA54F69CA4AACF663A7BED5F43E6DFA98CE5728CB30F289902DE551D1AB79469549CA9EBAC36A6A4DAD37AE0FBC6170BCF13CB1C97668CA58AD471C66D2BD4B4A34E6F7CE355B536B5E29756F5FED203B372579DDE7DCBF5715761EC0E87732B7E87D17A26BA462F5D745FA5F41B89A2721F97E7977938C32857A6E9DCDD27795A2D68D39EF49A7C1A8A8AF90DEC0000000000000E2997BF2FE79FDBA3F5ACD06E1FDF771E165E737DCBFF0097B3D7EDD1FAD668172FEFBB8F0B3F396811A94B643643604EA43635296C09D486C821B00D94EA1B2180652C3652D812CA5B0D94B601B21B2190C032961B29640F6619C2FBE2371E8199C0FAFF00C8FE0ED3EA9984C2F85F7C42E3D033781F5FF91FC1DA7D5311CD5ABAB2FA01F1203E20E8B9412104129449296858BCB9A5696D52E2B7BC82D745C64F992EF911999C42B331119979F19C56DB07B4F645D36DBDD4E943DF547D85FCDF0469D5B1B956D8B9D85495E5255F613D54249B8C96BDF478F1DBCAB7B5EA5CDD4D6BA70D748D38AE65D848D728E336B7D8757859D473786565372D374A955DCDAEE29A5E33B16F4916ADC553CFB5A96AF557AB9888E0CE5CE2926DF5478A7894B5F7C61AB5D36DEF3CF2B8EE9922986FC50D82389B4FDF1EBB7C5649EF91A9AB9EF97295CB5CE376249B6DFECB15D5AD599CB4BD5512DE733B5BF716B79B0619896F8F5462AADB14C4C37CA55355B8BC9EA8C3D85D2A915BCC9D396A9334EBA712889CAE800C694496A8A0B850D010CA248AC82D02CB05724505D552CE65CB5FE50CB3FB55FCF13A734732E5B3F28658FDAAFE789AFA9F46CF63D24323C9AFF583887EF7ABF527725C0E1DC9B7F583887EF7ABF527715C0E53A8000000000000000087C0D770FCB380E55AB89E2F846154EDEE2BD2DBAEA82F7FB3ACB44B826FB9C5E86C644929269AD53DCF503E71E56B963C0F3764EA982E17637F4EBD6AB4E7395C46318C1465ABE0DEAF76875EE46EDAB5A726580D2B9A72A753D8FB4E324D34A4DB5C7B8CCB52CA196A8D6556965FC2A1562F694D59D3D53ECEBA71334B72030F3CAD81D4CC2F1EA9865BD4C53663157338ED4A3B3C34D7727DD5BCE7BCB15E7283798CDB65BCA5692A7677F4B595E506D492E13529BDD4D2EE6F7AEEEC1D6C01CDB20F2656390F2F5FD7A935798BDC5B5455EE9ADD15B2DEC435E0BBBC5FD0693FD19B0BB2C6B2AE65C3F13B785CDADC56A50A94E6B735B12F13EEF31DF2AD38D5A73A7522A509A71927CE998DC032E60F9769D5A78261D42C615A4A551518E8A4D2D1360715BCE4FF003D72738D2B9E4F6F6A5EE19755545DBCFAAE87B4D25D120F734BF4E3BF4E3A1DE6DFA2AB7A6AE1C5D6514A6E2B44E5A6FD3B9A97801C3B27643CCD87F2E37D986F30B952C2AADC5E5485C746A6F58CD4B65ECA96D6FD5731D6738D9DC62395316B2B3A6EADC5C5A55A74E1AA5B5271692D5EE33000E55FD1EF2963994B05C568661B176556BDC4274E2EA427B494746FA96F9CEAA8003917F4A6FEAF2D3F78D3FABA84E56CADCA057CB384D5B3CF546DEDAA5950952A4F0E8CBA1C1D38ECC75D77E8B76BDC3A3665CB984E67B18D8E39650BDB68545554272924A49349EE6B99B3DF656B46C6CE85A5AD354A85BD38D2A705C2318A492DFDC40718C6B12C7B02C46A5862FCADD85A5DD2D1CE954C377AD56ABE83C3FD193A257CC19AEEFA2FB2A139C35B950D9551B9CDEBA736BC743AE63592F2DE397D2BDC5F05B3BCB994541D5AB0D64D2E08C8E0D8361B825AFB1B08B0B7B2A3AED3850A6A09BECBD38BEEB029C5704C3317AB6B5313B1A1772B3ABD16874686D284F4D3548F96ADEE701B7E50B343CC78AE2D86D395DD554A786B6A537D11EAA5A73687D6ACC16179372F617895E621638550A5757ADCABD47AC9CDB7ABDD26D2DFD80380FB67C9D7EB8671F2E67BFF00A3F59E178AE76CD36DA4B11C32BDB351F66476A5561D1168E69F39F423C3ECFE0943F871F51E2C2F2D60D84E23737F8661B6F6B7775AAAD569434954DFAEFF00940C572817B69957937C56AD0853A146D6CA5428534B48A6D6C423E368E158D61F3B0FE8D3843ABC6EB1657097622D544BD13E99BCB6A17B6B52DAF28D3B8A15A2E1529548A946717C534F89E2BBCBD83DEE15430BBBC36D6BD85BECAA56F529A9421B2B48E89F6101F3EE1B992CAF79478E6CC51DC52C132BD952A306E9BDA9D5E87B318A8BE12949C9EFD3DEA6D986C7B0ECC99F710BFE50F0FCB94A187D1AB09AB794769DC461C5B8FF00B4DD1EA9AEF2E07D375F2F60F5ED2EED2AE1B6B3B7BD515714DD35A55D949476BB3A24BC48C850A34EDE8C28D0A71A54A9C5461084546314B824970034EE4B7943B1CFB854EADBDBD5B5BCB5518DCD0716E116F838CF834F47BB8EEE1CE6EA7930FC3ACB0E55A3616946D635EACAB5454A0A2A737C64F4E77A713D60000000000000713C03F2F67AFDBA3F5ACE7D72FEFBB8F0B2F39D0700FCBD9EBF6E8FD6B39E5CBFBEAE3C2CFCE4C0A7521B29D4364896CA5B235235025B235235235025B21B21B21B01A90D90C8D406A430436043643643296C806CA5B25B296C0F6616FF001EF885C7A067704EBFF23F83B4FAA660B0AE37DF10B8F40CE609FD60647F0769F54C473856AEACBBFBE2C07C583A2E52512422A212335BCD373D12AAB78BEA28AD5EFDDB5CEFE446C9292845C9F08A6DFC871CE53F1D95B5846CE8CDAB8BFD6736B8C69EBBFC7C3BC6DE8ADEFDCCF734B55BD5EED9A7FDDF9353CE1989E275E769673FBCA0F4725FED9F67F67B1D931F96AF695962F4FD952D9B4BA8BB5B97FA34E7BB6BFE57B32F90C62424B55A35AA7B9A3BF34C4C6ECBA16EDD36A9DDA5B456857B6AF56D6E969716F374AA2FED2DDAF79F1F94B4E4D110B977D85D2BC6DCABD9A85ADDB7C5C3851AAFE4EA1BECA8F64B6E5AF166A626384B3C715CDBEE92AA34CF339B236DA2704B210AED3E2652C2F1C5ADE6BB1A8F9D6F3D76F5B469A626186A8CBA3E097DAECA6CDB2D2A6D2472FC1AF36671DE740C22E3A2538EF34EED2D6C6259C8EF4494D37AA2AE63496086B544802DE9A06897C42DE48B72287C4B925BCA648BC214339972DBF9432C7ED57F3C4E9AF81CCB96CFCA1963F6EBF9E260D4FA3966D3FA48647935FEB0710FDEF57EA4EE2B81C3B935FEB0710FDEF57EA4EE2B81CA75000000000000000000000019CBF974B6CC14F2FDE62B638FD7C3F0FB2A549AB5B55B13AD51D549B9545BF6746B72F940EA00E77CA0E298AD7A99632B60B7D52C2EB1EA8D56BCA6FEE94A853A6A551C5F349AD747DCEE98FC5B09BAE4D6FF0009C5B0CC6B16BEC3EEAF6958E216B885CBAF1D9A8F45562DA5B324FC7A81D501CEB9748D19E5FC1E1756F52EA84F1BB38D5A14E3B52AB1DA96B04B9DB5BB4311ED3647D7FAB5C73FFC7CFED81D701CEB920A751E45C4A96110F614D6217D0B585783FB87DD1A829475FCDDDAAEE11C9DD1C56C33E666C3717C6EEF189D1A16953A2577A454A719396C4175305DC40746072BB5C0B09CC7CA9E74A78FBAD569D9FB015BC15E55A3186DD06E5A284E3AEBA2273F649CAD85E4AC6AFB0DA75A9DDDB59D5A94A6B12B896CC94773D1D46981D4C18FCBF2FF0040D84A72D5BB6A4DB6FF00B08F774487E9C7C60540E65CAC5BE3B6F73658A53C7EE2DF0F8E236546958DB2E86A5B55129BA935BE5AF34781EDCE32C4732E76B5CA16588DD619614ECDDFE215ECE6A15A69CB6614E32E314DEADBEE6807400735B0B5BCC859E309C2E962D7D88E0B8EF45A51A57F59D69DBD782DA4E327BF65ADDA0E59A95A56BDCA74B11B0AD88DACB1392A96B460E73A8BA0CF728A6B503A503917B4D91F4FEAD71CF984FED9B2F23D2A91E4AB0995BD3DAA91A355C2127C5F449E89FD080DE01C229DC5B57C97738EDF66EC52867384AA4BD8B1BC94674EE2326A36EADB838EBA2D34DFAEA740E506E2F5F24788DC5E295BDECAC212AAA2F65C2A3D9DA5BB86FD40DDC1A0C793BC87384655EDDBA8E29BDAC52E35E1E14F0650C270AC0F959BDB2C053859CB0685570F64CEB2DB7574D75949E9B80E9A0000000000000000010C0E3586DAD4B2CC79E695684A1392B7A9A4B4E12A8DAE1CC733B97F7DDC785979CEBD8A75EB9DBE2B61E738FDD3FBEEE3C2CFCE48A75235235235244B646A46A46A055A94EA46A436054D94EA0A5B025B296086C010D90D91A900D94B0D90D810D94B61B296C0F7613BDDF7C42E3D033D823D33FE487FFA769F54CC0611EFAFBE2171E819FC1BAFEC91E0ED3EA988E6AD5D5977CE8917C776FE72B5BCB082DDBD3D19D3C394F4A24B31AAD7BE5AF751723252E0F52B31816B106D61D76D715465A788F9AF38620F13CC5755B5D6109741A7DC8C771F4962ADC708BF6B8AB6AAFF00BACF95149CFAB6F572EA9B3ABB36385528A68CDCDFEE854490893ACD8CBD785DF4B0EBC55BA1AAD4A7174ABD16F455A94BDF43F9A7CCD26646EE92B69C152A8EB5B568745B6AED7E169EBA6FFED27D4C97335DD3086430ABDA30A52B0C4272858D59F44555476A56B574D3A2C573A7C251E75BF8A315CA33F6A1312ADB21CB42BB9A15AD2BBA17318C6692927096D42717C27197E745ADE99678BD4A4465695C8C8F45296879605FA6261496630EACE325BCE8196AE5C9456A737B27D52378CB337B5035EED3C1AF5B7FB77AC0BC96E3CF69BE07A52DC72AAE12884320A9A29D0848CA34D0ACA64898421EF45B68B88A648B40B5A71398F2DDF9432C7EDD7F3C4EA0D1CC396DFCA1963F6ABF9E261D4FA3965B1E92195E4BEDAAD7CF98BD4A5094A34315A939B496915D0B4D5FCA76C3927235BF3766AF8ECFD189D6CE5BA8000000000000000000001A372E9FD56E33CDF81FAE81BC9455A70AB070A918CE2F8A92D53039AF28CAAE0F88E4ECE31B7A95ED3069CA9DEF428ED4A146B5350DBD39D2D5F8D1E6CDF9930BE506EB05CB9956E618939DFD1BBBCAB4E1274EDE8537B4DC9B5B9B7A24BD6754714E2E2D2716B4D1A2DDBDADBDAED2B6A14A8A93D5AA7051D7C4068DCABC6AE277796302C3EE234711B8C569DDD39B8744E870A0A537371D56A93D95C77EBA192F6A33AEBD76D87FF87FF34CE2C130F58F3C6FD8E9E20EDFD8BD19B6F4A7B5B5A25C16FE7E73CB99F2A60F9A6950A58DDBD4AF1B793953D8AF52934DAD1EF8496A060391A8D5865BC415C558D6ACB17BD53AB18ECA9CBA2BD6496AF44DF36A4E5CD3A6DE6FDFFF0085B1F4646D7836136181E1B470EC26D616B6945350A50E0B57AB7DD7ABE27AD53829CA6A1153969ACB4DEC0E4B46CF2A5DF2B19DFDD6C30B96CFB5FEC7F67CE11FFC3BDAD9DA7FB3AE9DC19FF0BE4DE8E48C6E784D2CBAAFA36755D1742A527536F6776CE8F5D4E83EE470296337F8B56C3685C5E621D0FA3CEBC5544FA1C7663B2A5AA8EEEC71188E4FCBB88D857B2B8C1ACA34AE20E9CDD3A1184B47D8925AA7DD405A860987E61C956985E2F41DC59D6B6A0E74D549435D95192EAA2D35BD2E730B0E46F21C24A51C127AC5EABEFEB8E3FC4376B5A14ED6DA95BD15B34E941422B5D7449688BA068BCB269EE730EE6FF4C597D6A3C79AEF69E4FE526D732E2309D3C1F10B0F605CDD460E51A15633DA839E9BD269B5A9D0EA5385449548C6693D7492D778A94E156128548467092D1C64B54C0E6D3C5ECF3EF287804F2FCFD9986E03D16EEE6F6117D0FA24A3B10A716F8BE77DE3D5CA0C2E716CED95B08C22F29DADFDB4EB6253AB3A5D15528460E11728EAB8B934B7F98DF685BD1B68743B7A54E8C38ECC22A2BC48F1DAE0987DAE33798BD1B751BEBE853A75AAB6DB9461AECA5AF05BF9B8818296139D631DF9BAC344BB4FFE698EE4C95E749CB3560FEFDF62DC7417A71A9B73D97E3360CCF93302CD356855C6ED2A5C4ADD38D3D8B8A94B7369B4D424B5E1CE65B0FB1B6C36C68D9585085BDB5082A74E94169184570480E156171C9D3E4F9DBE31428CB34CA84BA3AA94A4F1095EEFF7B2D36B573E1BF4377CD11C461C835C471D94A5882C2E9AB9737BF6BA9D76BBBD93A03B3B5771EC876F45D65FED3616D78F89631BC2AD31BC2AE30CC469BA96B730D8AB05271DA8F7D01A3C306E49DD383AB4B2C6DECAD7EEB4BB1DF3C792EDB2F5AF2B77B4F2A46C2364F068392B294650DBE8AF8ECBE3A686F5EE532F3D35C0B0D6D2D3576B4DFF00229C3B2AE0B85E355316C36C295A5D55A0ADA7D052841C14B5F7AB76BAF3819A00000000000000000001CAF14EBD33BFC56C3CE71DBA7F7DDC785979CEA345D4F761CA2AAB5253D276DB2E4F5D23D4E8BBC8E5974FEFBB8F0B3F392296C8D4A751A9227523523523502AD4864000D90194B604B652C3652C81252D8D4A5B02594B63529601B296C3652C0F7E0EFAABEF885C7A067F06EBFB24783B4FAA66BF837BFBEF885C7A06C183F5FD923C1DA7D53269E70AD5D597784490B8B2A3A8E5000410A6ED4EB58DD51E3D1285482F960CF956945C69C53DCD2D1F7D1F56C5ECCD4BF45EA7CDB9CB0A96099AB13C3E51D230AF29D3EED39F5517E27F41D0D9F54455552C944B0FA9514E8548EBAE0248246470FBFA5EC75618929CAD22DCA8D5A6B5A96927C5C57E741F3C3E55A32E5E5A55B3A94FA2B854A55A3B742BD27B54EBC7B317DCE74F7AE74628F661B89D5B1854A32A70B9B3AB2DAA96B5B5D893FD24D6F84FFB51DFD9D4C75513CE94C2FC517A9AD597E85951C4359E09567712D3595955695CD3EF73558F763BFB28A6847594A3A3528BD249AD1C5F757318F3944CBDB630EA91BBE5AA7D54371AA61B4756B71BDE5CB6D365E860BBC21AD5CE5B5D9C5A823D5A16E84748A45E38F54E65308650D1590D154AD92D12D10590A0312E3DC2A852728A949F4387E935BDF797393331044656E14E5525B305BF4D5B6F449765BE64732E5D36237D95E14FAA8ED577B6D6F6F58FD075493EA1C29C7621C5A7BDCBBAD9CA7973FCA195F7AF7D5FCF135EFCCCD1C59ECF0AE1B272349FBAECD6F9BD9B2F344EB470CE4B2757A6AE274E35251A5D1EEA52827BA4F669A5AF7B79DCCE7BA4000000000000000086F446959BB949C2F2F5DCACA9519DFDDC3754853928C69BEC396FDFDC499B5E2B5A76D865D57A7BA74A8CE71EFA8B67CB956A4EB54954A92729CDB949BE76F7B34757A8AAD44453CE5EA7C9ED916B68575D77FAB4E3877E5D5BA757FC03FEB3FEC1D3A7FE01FF0059FF0061CA01CEFE32F7ADF27B4FE5CD99F75FFDAAFD5D5FA74FFC03FEB3FEC1D3A7FE01FF0059FF0061CA011FC65EF5BF083F973667DD7FF6ABF5757E9D3FF00FFACFFB0EAB4A5B74E32E1B493D0F94CFAAADBF014FF61798E868EF57777B7E738C3C8F94BB374BA18B5FC353BBBD9CF199E58EF995D001D079001127A2317798CC6CF16B6B1AF6F5946EA2FA1574B584A6B7F437D87A6F5AEE644D511CD7A28AAE4E298CF6F832A0D71E6D8AFF00C8B1DF98CBD67A30ECCB677F637F770A37346387B946BD3AF4F62716A3B4F7779958B94CF0CB3D5A4BF4C6F4D3C19B06BD86E6EC3EFBA2B9D2BAB3852B7574E7774BA1C5D27F9C9B7BD1E6B6CF786BB05777D46F6CE127B9CAD2AC96CB7A41ED2869D52D1E9DD23A5A3BD6FE07539988A27318FC5B5000C8D3000061737E3BEE7304A9897B1BD93B13843A1EDEC6BB4F4E3A3347E9C5FF0002FF00ABFF00B0D8395FEB1EE3C352F4D1C313DDBCD0D45DAE8AF14CBDCEC0D93A3D66926E5FA333BD31CE63B23BA5D53A70FF00C0BFEAFF00EC1D387FE07FF57FF61CAF68873D0D49D55D8EDF93BDFCBBB3BEEFF1ABF5755E9C2BB47FF57FF613D3860B7D4C11A8F3B575ABF16C1C9DD5D0B339CA6F7F0EC14FE32EF7FC93FCB7B3A7FE9FE357EAFA3F2966DC3734DB4AA584A50AD4F4E8942A6E9C3BBDD5DD33E7CF3C965D55B6CF1872A52D15694A94D7662E2DF9D23E855C0EA696F4DDA333CDE0F6E6CDA3676A7A3B73F666331ECF624006CB8600000000E390EBCB944FDAB4FF0009C9EE9FDF771E167E73ABC7AF1E513F6AD3FC2726B97F7DDC7859F9C9814EA46A4024491A821813A8D48D4A5BDE40A9B296C86C301A90C86C86C032086C86C06A52D86C86C03296C6A52D8190C15F577DF10B8F40D8B07EBFB24783B4FAA66B9827E12FBE2171E81B160DD7F648F0769F54C9A7AD0AD7D597794085C49E2751CA095C08098424E6FCB665C95E61F47305A435AD631E857492DF2A0DEE9FFCAFE86747D44A319C6509C63384938CA325AA927B9A6B9D685A8AE6DD515C2D4CE25F2CE9AF718EF9BA728D912A65AAD3BFC3A32A983549752F8BB56FF325FD9FD197C8CD31F0D1F13BF6AED3729DEA5950494B0668912F786B4114DBD126CBF4ED2AD57BA2D77CBC138879D2D5A6B5D53D534F7A7D95D8366C2F18BABA70A58B5AC314847746B4A5D0EE20BB9557BEEF4933C16B87D34D3AB34FB88CBDBBA7429F52946315BD9134455CD8AAAFB9B161F4AC14E2E8621083FF00757ABA1497FCEBA97F41BDE1147A0C631AB0952969AE925C7E535EC89932AE253A589E2F45C6CA3A4E8DBCE3BEBBE69497343B0B9FBC741BDC4B0EB54E37B796D0FEC4A69BF12387ACBF4535F4744E7BD8F1C37AAE0A20969B9A7DE2A68C74F1BC225F8BC2A547D98AD85F496DE22E6FEE50D88F764D9CE9AE3B55E929EF653714B7C4C5BC466B8CA25A962351AD149BF93423A4844DDA5976FB1BCB556BD2A5F85AB18F738CBC48C44EF6A4B8BFA4B3ECAA91DD17B3DEDC566ECF6431CDFA61949DFCD3FBD6DE526B84EA475F14782F94F3D5B8C42ABD67396AF9F548F04AEAA3E3393F94A1D79764C53354B0D5A889E732F5CE1712F7F57FBC739E57A9B862196F6A5AEB2ADE789BD4AE1C5372924BB2CE7DCA9DCC2E312CBEA13DAD8956D74EFC4A579C32692ED13A8A69EDE3F296C3C95FF5AB8AF86BAF3533B99C3392BFEB5714F0F75E8D33B9981E8C0000000000000001E1C7FF0021DFFC5AAFA0CF977D47D458FF00E43BFF008B55F419F2EAFE47236875A97D0FC8EF4777DF1F9A400731EE400003EAAB6FC053FD85E63E553EAAB6FC053FD85E63A9B3FF00DDF0FCDE0BCB2E563FF97FE2BA003ACF0086B5357C0EB549678CCD4E75272A74E167B10726D475A72D745CC6D0CD2A96115312CD59A28D79DD5B5BD7565ACE9370E8B15096D476BB0F83D3798AE6734E3BFF00296FE8E289A2F457388DD8FF00F742EE5ECC146EB316274EACEA468DDD6D9B09CFF0559538ECCD41F676B57A73F12C59FE259EBC3D6FA88994CCF6985DBE014AD2E6C2E276B094614636545CA742496B1947677C74D38FACC5E154AE278066ABC9DB5C50A77D3AD52842B5370A928F4251D5C5EF5AB46198989DD9F6FC9D1B736EBA66ED113113BB1C7D95538F8E238FB78F6F0C7519D1A16F2F66D0B4ACE769615292BDACE9D254953D137A27AE9535EA7BA8C7DA5DDB50BF84238FE1B711B16ABD2B4AF2946D21296BA2A72D5CB58E9F9C9A8EBB919EB0CB58ADD6196F72F158D3B895ADB52A51741C553A51D99B84B496ADB6B46F55B89B1B5CC5EEB714946E30E8D576D6EA5395AD4D892EAF4515B7C573EFEC70316ED5C387D78B7A351671731544E238F19FFB69EDA67B266331C5B95A54A956DA94EB2846A4A09C9425B514DADFA3E75DD3D058B755550A6ABB84AAA8A53705A45CB4DFA2E645F37E393C94F39C000250D379617A646B97FF00AB4BD34707E8B1EC33BBF2C7D62DCF85A5E9A3819C7D6D7317311DCFA7F92719D0CFF74FCA171D54F8228726C8073E6ACBD6446000154B63E4D57FAF184F86FF000C8FA2D703E74E4D7AF9C27C3FF8647D16B81D9D9FE8E7DEF9A795FF00D5D1FDBF9CA400745E3800000001C6D75E3CA2FED5A7F84E4B73F8E5C7859F9CEB319279C3946D1F095A2F44E4972FEFCB8F0B3F39229643646A436055A90D91A8D406A0864012C86C86C86C06A43643643604EA52D91A90D812D94B61B296C03643043032181FE16FBE2171E81B1E0FD7EE48F0769F54CD6F03FC2DF7C42E3D0364C1FAFEC91E0ED3EA9934F3856BEACBBB129B5C0A7B20EB3952AB5D78820908094C8608154A31A94E54EA463384D38CA125AC6517C534F8AEE1CCB36F24B4EBCA773956AD3B793DEEC6BC9F43FF00DB9FE6F79EEEE9D313DE56BB84D15D56A7344AD154C3E61C6708C4F03AEE8E3187DC58CF99D587532EF4D752FC678613D77C5A6BB9BCFAB66A35284A15942747F3A351270F975DC68F986D321294FA2E07697D71CEACE9EC6FEECD348DFA368472AE9F04D57A8A233570710A75671E1E63D14AB549C9453726F992D4DD2FF0AC1EBEAACB00B6B186BC555A9527E36F4FA08A160A8C7668D38D35FD95A19FF8EA31C21CEBDB46DD3C28A73F830369677525ABA7D0D7667B8CF610E9D85455EA5AD0BBB883D693AE9CA9D37D9D8E12977F7770F442CA6D9E9A760B76BBCD6B9ADAAA8C6783995EBB515CFD9E0AEFB1FC67146E377885C548B7EF22F623E245BB5B496D2949ECF3EEE27B28DAA8ADC8F4D2A3A1A337622314F06BCC557277AECE57AD1469F0D5BEE9EF8D6935C4F252A6F5DDA97B7416B2928AEEB356AAB32DCA6E6EC3D0A4C6D33C73BDA105EFDCBB91458AB89BD1F43A697766F52B8962AF596A9E72C9391454AB1A6B59CE305DD663A8AC46FDECDB52AD575DDA5383D0C95A651C4ABB52B9952B68F3B9CB6A5E244E18A9BF7AF7A1B733EDEC792A621456E86D4DF71688F2CEFEBD596C51828B7B928ADA9336DB5CA387D1D1DC4EADD497337B11F1232D6D6942CE3B36B429D15C3A88E8FC7C4B45396C53B3F5573D2D514C7B38CFD7C5A45B65FC56F5A9D5A7D0A0F7ED577A7D1C4D4795AC1E384DE65BD2B3AD3AB2ACA5D4E8968E3C0ED0D73BDE72BE5DF762195FBB3AFE7895BB18A1D6D0ECFB362EC57199ABBE7DCF47257FD6AE29E1EEBD1A67723867258D2E55B145CEEBDD7A34CEE669BD080000000000000003C38FFE43BFF8B55F419F2EAFE47D458FFE43BFF8B55F419F2EAFE47236875A97D0FC8EF4777DF1F9A400731EE400003EAAB6FC053FD85E63E553EAAB6FC053FD85E63A9B3FFDDF0FCDE0BCB2E563FF0097FE2BA03E061B35E3F472DE0F5311B8A552B46328C1429E89B6F871E0756AAA298CCBC25AB75DDAE2DDB8CCCF086641C1F16E52731DFDDD3AD6D55E1D6D27A538528A6A5BD27ACA4B7BEF1DC2954D2DA13A924B482949BDCB86F661B57E9BB33BBD8E8ED0D957F67D344DE98CD59E11C718EFF1EC7A08D11C7F30F2838DE378CCB0CC9F09AA6A4E319D282954ABA7196AF746278EF713E5172DC217D8954B876E9ADAE88A1521BF9A5A6F4629D5D319C44CC476B7A8F27AFD514C575D34D5572A6678F83B6E83435DC919A28669C215D538F42B8A6F62BD2D75D89765771F3185E5233DFB9A51B2C3A30A988548ED373DF1A31E66D73B7CC8CF37A88A3A4CF072EDECED4DCD4FF0914FDBF97B7DCDF01C528CB94DBCB6F67539DF6C4B4925D445B5DC819FE4EF941BBC4312582E618ECDDB6E34AB6CEC39497184A3CCCC54EAA999889898CF7BA17F615EB76AABB6EBA6BDDE714CE661D30006D380D2F963EB16E7C2D2F4D1C10EF7CB1F58B73E1697A68E087135FE97E0FA87925FD0CFF74FCA0001A0F580000D8F935EBE709F0FFE191F45AE07CE9C9AF5F384F87FF0C8FA2D703B3B3FD1CFBDF34F2BFF00ABA3FB7F394800E8BC700000000391DF5AD2B4CE19F5514D2AB46CABCF57AEB26D6BE638CDCBFBF2E7C2CFCE76CC67AF1CF1F14B0F39C46E5FDF973E167E72453A8D486CA7502AD46A53A8D409D48D486C8D409D48D486C8D4096C8643643603521B21B21B00D90D8646A04364361B21B0323817E1AFBF77DC7A06C983F5FB927C1DA7D5335AC077D6BEF885C7A06CB83F5F9923C15A7D53269EB42B5F565DDB9C10DEF24EBB932151492990258039C095C7718CC4B1A8DB3953B582AD556E727EF22FF99934F4D383E6DE6BB7F4ED284DC670AF4B4E64D35F49A97AECD33110C776ADDA77B2C36257379883D6F2BCAAC78A87082FF951E176FCDB3B8CB54A962BF3EA7CAE25BE8968F82D7BF3F518E2B9716E5FB79E3531AADB7EF4551B54DADC64A10751FDC6DE737FD9A7265E584E275D694ACEB453E796905F4978AA65AB3726AEA53357BA18E8DB24B7A49774AB4A50E338FC9BCCAD2CA988D4DF5674692FED4F69FD07BA8E4EA2B7DC5ECE5DCA74F4FA596C14D9D65CEADBC7BE7FF4D69D6A51F7B194BE829776F842114FC66EB432CE154B4D6DE755F66A4DBFA168646DED2DAD9696F6F46969FA30431EC6C53B3755575EB88F77D4341A1638B5EEEA16B7335D950D95E367BEDF2762755A7712A16E9F1DB9ED3F123798D69709B6D15ADFA118986CD3B1ECF3B954D5F1FAF9B57B5C956B0D1DD5DD5ACFB108A8232B6B8161566D3A3634DC97E754EADFD264C86B70C77B7ADE8F4F6BA9447CFE6A382515B97612D111A15321A2D0DA5125B8A1A2EB299770B40B6D6F39472F1F8FE56FDBAFE789D61A393F2F2BFD2195BF6EBF9E252F7559ACF5E197E486C6857CF5986EEA45F46B6BCAAA9B4F829C61B4BE84763392F235D7766BF8ECFCD13AD1A2E880000000000000003C38FF00E43BFF008B55F419F2EAFE47D458FF00E43BFF008B55F419F2EAFE47236875A97D0FC8EF4777DF1F9A400731EE53084AA4946117293E092D5B2E7B1ABFFB8ABE43F516E129D3A919D394A138BD6328BD1A66FF00957952BFC3DC686374FDB1B75BBA2A49558AEFF097CBBFBA65B74D154E2B9C3475977536A9DED3DB8AFD99C4FC384C344F6357FF007157C867D4B6FF0080A7FB2BCC63301C7F08C7EDFA3619734EAE8BAA869A4E1DF8F1465935CC7674D622D44CC4E72F99EDCDAB735F55145CB7B9346784CF7E3D91DCA99E1C5B0AB2C5ED95B62342371414E353A1CB836B86BD9EF1EE06DCC44C625E7E9AAAA2A8AA99C4C38EF2DB469DBE298252A34E34E9C294946104924B6A3B9246EFCA15FCF0EC837B5A936A73A31A516B8ADB6A3FCCD2F974FCB383F8397A68DAF952A12AFC9E5CEC2D5D354AA3EF29475FA0E7F2AAEE3BBF27AFC4576767457CA6A9CFFF00D4317C886154A86037189ECA75EE6ABA6A5A6F508F378F566FF776B4AEED6ADB5CC23529568384E125AA927BB434EE45ABC2A64C54E2F5951B8A919AEC6AF5F333776CD9D3C47454C477389B66BAE7685DAAA9E3157CB97E0E37C924AA6179EF10C29393A72855A6F5E2DD39F52FC5AF8CB381D08E66E576E6A5EADBA546BD5ABB12DE9AA6F662BBDAE8CBFC9DD4779CAB621734D2706EE27AAE1A6D24BF914F27D2F6272AF7F46BF5139CAE69A4F76AF6B5F3239F471A68A7B379EC753334DDD45DA7AFD147E79F943B2E9A1C67962B58E119BAC716B48A855AD0559E9BB59D392DFF002AD0ED1B48E3DCBBD48D4C570CA107B5523466F6571EAA4B4F3337359E8A65E6BC9A99F38534C7298989F763F575CB5A9D1A853AAB85482978D6A5E3CD8753746C6DE93E30A518F891E97B8DB8E4F3F5622670D33963EB16E7C2D2F4D1C0F77651F55D45192D24935D868D6333E70C072EA942EA70AD72B85BD18A94FE5E68FCA686AB4F15CEFD5561EB7616D9B9A5B5FC2DAB335CCCE784FBBD93DDCDF3DEABB2BC60DAF34E7FC531DDBA34542C2CE5BBA0D14B6A4BFB52E2FBDB91AA1C8AE2989C53397D174F5DEAE8DEBD44533DD9CFE500D425ABD113284A2937CE570CF96C5C9AF5F384F87FF0C8FA2D703E74E4D7AF9C27C3FF008647D16B81D8D9FE8E7DEF9AF95FFD5D1FDBF9CA400745E3800000001CA719EBC73CFC52C3CE710B97A5E5C7859F9CEDD8D75E19E7E2961E7387DD7E3973E165E72453A91AA208D409D46A46A43604EA1B29D43603521B2186C011A86CA5B027521B23521B00D90C11A8021821B0325803FBB5F7EEFB9F40D97088EDE7CC9116F44E95A2FF00FD4CD6700FC3DF7EEFB8F40DA304EBFF0023F83B4FAA64C73856BEACBB7B73A52D9ABC39A45C4CBF28C669C66B5479674A743AA87574FCC756272E52E045309A9AD62F52A2C84A248248044E89AD1A52EFAD482532B31911D068F1E814B5F068B905187BD84177A28A53276915DD844444725D551FE93F18DA5D93CF3AAA2B7966572BB24C5194E5EFDB414918F574BB2571B84F9C99B7265EED49D4F2C2B265D8D44CA6ECC195DD49849C7870EC14290D4ACC25E84D496A992588C9C5EA997632525AAF11498C252D1495EA53A08429653A153219642868E4DCBD7E50CADFB55FCF13AD34726E5F3F28656FDBAFE7898EEF559EC75E19EE467AEDCD5F1D97A313AD1C9791AEBBB357C765E8C4EB469BA20000000000000000F0E3FF0090EFFE2D57D067CBABF91F5163FF0090EFFE2D57D067CBABF91C8DA1D6A5F43F23BD1DDF7C7E69001CC7B900005DB4BAB8B2B88DC59D7A942B41EB19D3938C97CA8E9595395AAD4B62DF31D2E8D0E1ECAA31D24BF6A3C1F7D788E6046866B77ABB539A65CFD6ECED36BA9DDBF4E7DBDB1EE9FA87D458562D618BDAAB9C36EA9DCD27F9D07AE9DC6B999ECDA3E5DC2B14BFC22E95D61B7556DAB2FCE83E3DC6B9D77CEA595395AA15B62DB31D15427C15D515AC1FED478AEFAD5778EAD9D6D35F0AF84BC06D1F26351A7CD7A6FB74F776F876FC3C1E2E5D3F2CE0FE0E5E923A75ED952C4F04A9635D6B4EE2874397CB12C57C3F03CC54E8DE56B6B4C46097DCAAB4AA2D38EE665211518A8C7725B96867A2D62BAAA9E52E46A75DBFA7B1629898AAD67C6673F838665FC6711E4DB305D58E236D3AD6D51F5704F4DBD3DED4837B9EEFFE6E33B98F95BA37185D5B7C16CEE28DC558B8746AFB2BA1A7CE926F5674CC4F08C3F15A2A96256746EA0B82AB04F4EF760F05864FCBF615E35ED309B5A7563C24E1B4D77B530C58BB446E51570752ADADB3F515C6A3556266E463389E1331DFFF00A9F8B56E46F2D56C2F0DAD89DF52952AD7A92A7096E71A6B7EAFB1ABFA12303CA86117D80668A599F0B8C9539CE352534B554EAADDD57724BF9A3B1EC96EA52855A728558A9C24B47192D534649D3474516E27934ADEDABB4EBAAD6574E62AE131D98EE736A1CB161EECE2EE30BBA573B3BE34DC761BEE36F5D3E435ECB56B8872819E3DB7BEA5B16742719CF4D766318FBCA69F3BECFCA74C9E48CB13ABD16582DA6D37ABD21A2F1702EE2B8C607952C231B9AB46CE9C57DCE8538ADA97ECC518E6D57389BD54621BB46D0D2DB8AA9D9966AE92B8C6678E227BA38B39AE8F7983CCB9B707CBB49FB6174BA369AC6853EAAA4BE4E6EFB397E69E55711C476ADF0483C3EDDEEE88F7D692EFF08FC9E3340AB52A55A92A956729CE4F594A4F56DF7598EEEBA2385BE2DCD9DE4A5CB98AF593BB1DD1CFE33CA3F1F8376CD5CA762F8C6DD0C3BFD1B68F77DCDEB524BBB2E6EF2F1B34793726E526DB7BDB6F8849B7A245D8516FDF6E3995575DD9CD5397BAD36934FA3A372C5314C7D739ED5A5ABE0B52EC2837BE5B917A10515B9151314C4334D7DCA6308C7822DDD7BD8F7CBC59BAF7B1EF8AB92B4F1A99CE4D7AF9C27C3FF8647D16B81F3A726BD7CE13E1FF00C323E8B5C0E9ECFF00473EF7CF3CAFFEAE8FEDFCE52003A2F1C00000000E518DF5E19E7E2961E7386DD3FBF2E7C2CFCE772C6FAEFCF3F14B0F39C32E9FDF973E167E72451A8D4A751A812D90D90D91A812D8291AE804EA43646A46A04B652D86C80248D414B604B64363529D4092351A90C0C965FF00C35F7EEFB8F40DA705EBFF0023F83B4FAA66AD97FF000D7DFBBEE7D0369C17FAC0C91E0ED3EA9931CD5AFAB2EF7AEF655128F59523A4E52C55B5D5EDD0EA65C74E665A854DFB335B32EE9EF451568C2B2EAD6F5C1AE2898AB1CC79C945B942A507D52DA876517232525BB797424824894B4E0109E05AAB55451152A6CF398FBAAFA739928A328994DC5CEF7BCF2CAE37F13C75EBB6F8963A2B366298846193570FB25C85C774C52AA5C8D57D92703334EE3BA7A695C2DC60E9D67D93D34EB3EC949B712659CA75932F467AF3987A55FBA7AA95C7659AD55BC2625915244A7A34D3DE8F3C2A6A8B8A6619A567AE12535D86B989679A32DFAAE2B9CBF4E6A6BB0D731866309494B456CA4914B392F2F9F9432B7EDD7F3C4EB6CE4BCBE7E50CADFB55FF00C263BBD565B1D7867391AEBBB357C767E8C4EB4724E46BAEECD5F1D9FA313AD9A8E900000000000000003C38FF00E43BFF008B55F419F2EAFE47D458FF00E43BFF008B55F419F2EAFE47236875A97D0FC8EF4777DF1F9A400731EE400000000000193C0731629805C745C2EEE74757D5438C27DF8BDC757CA7CAAE1D88EC5BE371587DCBDDD135D68C9F7F8C7E5DDDD38A846C5AD4576B94F071F686C6D2EBE33729C55DF1CFF7F8BEAAA7561569C674A719C24B5528BD5345C4F547CDD96B37E319726BD8170E5435EAADEAF554DFC9CDF21D5F2E72A1826256ED6233F6B2E211DA946ABD612FD992E3DEE3DF3AD675745CE13C25F3EDA1E4EEAF473BD446FD3DF1CFE31FFB6F2D9E0C671BC3B04B67718A5DD3B7A7CDB4FAA97712E2FE439A66AE56E5273B7CB74745C3D955E3BFFE587F37E239A6217F77895CCAE6FEE6A5C569719D496AFF00FD18EF6BA9A7851C65B9B3BC96BF7F15EAA7729EEEDFDBEB83A1669E566EAE5CEDF2F5176B4B87B22AA4EA3EF2E11FA5F78E7577735EEEBCEBDD56A95AACDEB29D493937E32D28B7C117234FF499CCAEBB97A7354BDEE8F67E9B434EED8A71EDED9F7CADA4DBDC5C8D26FDF15A49702A8EA22888E6DC9ABB9318463C11526016629E2904124202C5CF08F7CBE58B9E11EF915725A9E6CEF26BD7CE13E1FF00C323E8B5C0F9D3935EBE709F0FFE191F45AE074B67FA39F7BE79E57FF5747F6FE729001D178E00000000727C73AF0CF3F14B0F39C2EEBF1CB9F0B3F39DD31CEBBF3D7C52C3CE709BA7F7EDCF859F9C914B646A46A46A0544323521B027521B21B1A806C86C11CC0350407DF0040646A0087C4100491A8D486064F2FF00E1EFBF77DCFA06D382F5FF00923C1DA7D53356CBDBEBDEFEEFB9F40DA705EBFB24783B4FAA64C73856BEACBBD152295C49474DCA5C4C9298F0251515773999E7A969ABDAA2D45FE8BE72F95223331C92F0394A2DC669C648A273D0F75D3A10A152A5D4A30A54E2E529BFCC5D9358B2CC3875F57951DB9DAB72D29BADA2535CDBF99F719B16E2AAE26A88E4C75554C4E265EDB8ABA231773575D5EA7B310A75A8A729C7587E92E061EB4F536A9C6382B8E2B7527BCA36CA66CB6DB3242EBCA65719F60F36D1319138461ED84CBD4EA68786332EC27C0843254EAF7779E9A557BA62A132FC2A34F8959843314AB1EBA55B5D37985A557BA7AE955DE61AADE5312CB4648B91934F55C51E0A554F5467A9AD550B44BDF4E6A71D571E7419E584DC5A71E3D8EC9E98C94E2A51E735E6312B0D1C9397DFCA395BF6ABF9E275CE7391F2FDBB10CADFB75FCF1315DEAB358EBC339C8D75DD9ABE3B3F46275A3927235D7766AF8ECFD189D6CD57440000000000000001E1C7FF0021DFFC5AAFA0CF9757F23EA2C7FF0021DFFC5AAFA0CF9757F2391B43AD4BE87E477A3BBEF8FCD20197C0EC695CD95FD6B9B1AF734A9412E8B42694A849BDCDC5F18BE0DF31CEA69DE9C43DA5DBB16A9DFABEB3C18806FF006D94ADA5875CD6AB81DEF47B7E86A34DE214FEEADB6A5BD2DDA69A984A183455FDE42E32FE2B5A3092D885A54E89D0B55AE92928B4DF39966C5518CF6FBFF4685BDA966E6F6EF67B69F67FDDEDFA96B60DC29E5FC3A5856213AD2786D6E8F4634E9DED3AAEAD08BDADCF48AD76B4DDBB98AB03CB14BA3E2F6F7F875CDFCB0E938744B5AAE2E73E11828E8F8EF6DF3243A0AA704ED4B314D554C4F0FDB96784F388E7F834D06EB88E57B6B7B95B5655AD234A76DD44EAB9C6B46ACF47BDA4E3A68D35D93C96F82DB57CC18C5B430ABCBBA56D73285385B568C3A1C549AD1ED27AF01362A89C269DA766AA66A8EC8CF67B3B738ED8EDFC783550740C432ADA5AD3B79DBE5CC4AE1D6A0AA493BD8AE852D5AD97D4EFDC93F94C0658C0E5885B62B792B49DC42DA9742A34B7EB2AF37B305BB8E9BDF884D8AA2705BDA766BB737639463B639CCE3B267B7BF0D7B4239CDBFDA0C33D8CB0475E0B1E6FA2746DBFB929F0F63ED70D74DFAF0D77184A382DECA777056D3752CA0EA5C45E89D34B8B7AB23A1AA196DEBAD5CCF1C63BF8663B263D93D8C7460D95C6925C7795EE32585E1F4F11B2BC8D29CFD9F423D1A953E6AB4D7BF4BFB496FEF2664A6DC76335CBD1446F55C98EA7094E718538B94A4D2518AD5B7CC91B35C642C6ACF00B8C5EFE14ED695086DF41A92FBA35AA5C16E5C79CC7621691C0AA61EE3393C4A0A3735A0D6B1A2F5528434E7969A37DFD0DE6CF18BFC73931CC77989D775AB39B8ADDA28AEA7724B823628A299CC55CDC6D76B2FD116EE58C6E4D51139E7C671C3D9EDF069F95327E27999D49D9AA74ADE93D99D6AADA8A7D85D967B731E40C5B01B195F39D0BBB487BFA941BD61DD69F3774D8F0BB6BBC5F921859604F6EEA9D692B8A5096929AE88DB5E4B8F7F43DFC9BE058C61F8062D6B8DD0950B4AF07D0A8D469B4F47B4D2E64F7788CB4D9A662231CE39B97A8DAD7EDD572EEFD311455BBB9DB319C6739CFB63861CFF2B655C4F32D6A8AC2308D1A7A2A95AABD211EE775F70C9660E4F716C1B0F9DF46A50BDB7A6B5A8E8B7B505D9D1F1467F2BD0B9C4B92ABCC3B029FDFF0AF25561196CCA71DA4F4D7BB1DDF2687BB92AC071BC329E214B16B79DBD8D7A7A4695492DF2E76A3CDBBF911459A6622313C7B4D4ED5BD6AABB762BA6228AB1B93CEA8E1C739CF1ECC461CF32CE5BC4B32DD4E8E1D4E2A34D2752AD47A421DFEEF70CD637C9BE33865854BCA35ADEFA9524DCD51D76A2971DCF899DC9546ADCE42C7B0BC0E7D0F118579A5A4B66528EA92DFCDAC538EBD92FF0025180E3F84E2174F11B69DB5855A7A4A9D592EAA7AAD1A8AD79B5D58A2CD331118E7DBDC6AB6ADEB755DB94D74D316E6237679D51C38E739E3D988F7B94EAD96AE3847BE7BB15A51A18ADE51A6B6614EBD484576129348F0DC708F7CD2AE3112F5B6EADEC551DACF726BD7CE13E1FF00C323E8B5C0F9D3935EBE709F0FFE191F45AE074367FA39F7BE79E57FF5747F6FE729001D178E00000000727C77766ECF5F13B0F39C22EDFDFB73E167E73BBE3DD7767AF89D879CE0D77F8EDCF859F9C9146A1B23523502752351A91A812D91A8D4802590DEE0400D486C1004EBB8A492006A413CC401049000CA65EFC3DF7EEFB9F40DAB05EBFB23F83B4FAA66A9977F0F7DFBBEE7D036AC1BAFEC91E0ED3EA9931D6856BEACBBCAE72511CEC26751C95C8B251422A4552AB52A4F71492B81594B52E51EFE51A16B87537A2ACFA355D39D27A4578F7FC8693526A1069EFD7899FE502B7FAC95137BA9D0A714BBE9B351B9AFABE27A0D25114D9A71EF732EC4D772595C3335621843D8A728DCDB2FF6155BD12FECCB8C7CC6C987E2182E64D23655BD817CF8DB56D136FB9CD25DD5BFB8737AB5353CB51ED7149E9BD16B9A7A6BE31C25B56E66230E958858DD58CF66EA938C53D14D6F8BF97D67975D0D6705CFF8C60D256D78D62D61C152B97F7482EC46A73F7A5A9B86177F97333B51C26F161F7D2DEECAE348B6FF00B2B84BFE57F21A75535DBEBC70EF86C63B9E4099E9BEC3AEF0F9357546518F0DB8EF8FFF00AF94F32DFC044C4F18557148AE32659D742A8B2C87AA12DC5E84CF1C245D8C8ACA1EEA733D34AA18E84CBF4EA68CA8CA51A87AE9553154A68F5D3998EAA7232909EA7A2854D99EF7D4C9E8FB8F99FF00231B4AA6EE27A612525A3E0D686A5CA1789649EE39272FFF009432B7EDD7F3C4EB1427B74949FBEF7AFBE727E5FF00F28656FDBAFE789A573AAD8B3D766B91AEBBB357C765E8C4EB6724E46BAEECD5F1D97A313AD9AAE800000000000000003C38FF00E43BFF008B55F419F2F7A8FAA6EE8C2E2DAAD1A9EF2A41C25A761AD0F9AB32E037997715AB657B4DC545BE853D3A9A91E6699CADA14CFD9A9EF7C8FBD4474B6A67ED4E27E6C5998CBF6D19596317B5E752146DACDC75A7371DAA936A308BD38AE2DAEE1871BF46937A3E3BF89CCA671397B9BD44DCA376271CBE7C5D1EE30FA963195861D976D2BD95DD1B79D59CEE9C6551ECA96BA39A6B7C9F03C54A85960D8AE63A56F885BD86CD476B6F4AB4EA68A2DF552DC9B7D4AD3E53469CE7396D4E5294B76F6F789CA73939CE52949BD5B6F56CD89BD1CE21CAA366D789A6BB9CF9F3E3398E339998ECC728E0E8977844BA1FB1F069BBD86217B4AF692553570B782D356E5BF4DA934BB88A30AB686239BF11BAAF85D3BBB27884D3B89DCA8D3824DADF16F4973339F394DE9ACA4F45A2DFC1760A77F7474D19CE3EBC111B32BDC9A66E7198C67139ECEEAA38E223F3CB7FB3B7AFEC958761F86A92A93A15B62D6F55CC68C615759396FEA75D78189BBAB677199B13B7F699E29735AFAB3A6E9D7945C96D704A2B7F3BF94D5D6D2E1AAEF134F74936DAEF159BB9C463EBC19A8D06E55354D5CE3B37A38F0E333BD9EC8ED6EF9AEB61F692C26DAF7006EB42C21F7395D4E2E8ADB9E90692F977EFDE5AC02E2BDC6078F5A5953953A3B31A942DE0DC9C672A905A6D717C16F3578ADDAEBAF74AE329C135094A29F1D1E9A9977FED658FF8188B516F3998989E3998E139E53338EE6E97324B16C52D54A329596053B79CA2F5EAE305B4BE47BBE4353B6B5F6642EAA4EEA95274693A9A5596FAAFF463D9679D4A7172719496D2D25BF8A7D9297C1EA4555EF4AF634D366311577767773F15BD0CFE47C5296178D529D6A95A92A9529C76E9F43D12DADFB4E49E8B47CDA33004E9D92D13BB396D5FB34DFB736EBE52CD672C4A9E298BD4A946A56A8A139C5CAA743DFD5718EC25AAEFEACD9F2CFF0054598BC23FF09CF5EEE07A28DF5E52B3AB694AEEBD3B6ABF84A31A8D427DF8F065A2BC4CD52D3BFA18AEC5166DCE2299A67C272CBE50A3992A5D569E57770A71495574A714B47C3694B733A156BAC4B2B654BFBDCD1893BAC4EF61D0A85073D543735A2D34ECEADE9CC8E598662D88E15D13DAEBCAD6AEAFBF74A5A6D1E7BCBBB9BDADD1AF6E2ADC55D34DBAB373978D96A2E4511C39FE0D5D56CEAF577B35EEC51C3947DA9C764CF6467BBB193CA3473054BEA8F2CBB8F645382DB74669753AE9BF57A3DE74CB4B8C572B6057B8B66FC4E57179561D0ADADF6D349F6169A2D5BD35EC24725C3714BFC2AA4EA61B7756D6735B32953969AAEC16EF2FAF2FEAF45BEBAAF735386D569B9BFA49A2E4511C39FE09D6ECDAF597715EEC51C33C3ED4FB33D91EE6432CC71DB8C59CB2F3AEEFA307524E8CD45B8EAB56F56935AB5B8EA183CF17CBB875D6399D7139549C69743B7B6734F7BEE2D1393D12E7D16A722C3711BDC2EE1D7C3AE6A5B56717073A6F47A3D1E9F4222FB10BDC46A2A97F775EEA6B83AB51CDAF1F0228B91447B7F035DB3ABD6D7BB3BB1470CCE3ED7BB3D90A2B5695C57A95AABD67564E72EFB7AB3CF71C23DF2BD0A2E3DEC75EC9AD5F276E98889888677935EBE709F0DFE191F45AE0710E4772E5CDEE3D4B18AB4E50B3B3D5C66F77449E9A24BB3A6AF53B81D2D0D334DBCCF6BE6DE55DEA2E6B629A273BB4E27DF9990006FBC98000000039363DD7767BF89D879CE0D76FEFDB8F0D3F39DE71FEBB73D7C4EC3CE705BBFC76E3C2CFCE48A3521B0D90DB0275208D46A01B1A91A8D4036082009D481A800D8218D4030C8D48025F1206A00CA65DFC3DF7EEFB9F40DAB06EBFB24782B4FAA66AB977F0F7DFBBEE7D0369C1FAFDC91E0AD3EA9934F5A15AFAB2EF1A952651D9251D572559545E8524A2B295654994AE0132A9734E5375A59936B9AADB5392F935469956A6A6FF00CAF5B6CFB597AB83DBB793EEFBE5FCCE71525A9E834956F59A5AB347DA944E7A969B1296A52CD9648858BB8ED414B9E2791A8C969249AD75DFCC6424969A3E0786A47626D08965A78F06D397B3FE3983423467563895A25A741BB6DB4BB119F15DE7AA36FC3F31E54C7DA8BAD3C12F65FECABE8A0DF725EF5FD07274C97BD68F4D3B0CC35E9A8AA731C27D89765BDC0AFAD62A7D0D5C527BD54A5BF55DEF518D4F7B5C1AE2B9CD0303CC98CE02D7B538855A34F5DF425F74A52EFC1EE5F2686E563CA3D85F4553CCD832D783B9B37AE9DDD97BFC4D9AB559BB4766F47B3F4461908B2EC1E87AEC6DF07C6A3B597B1AA172FF00DCD49695177365E8FE828BAC32FAD1B55EDAA24BF3A2B691877E9CE279A30B717A32F425C0F341A7B93F90BB064CAAF65299EBA73DE63E12D0F4D29F0D4A8C8D29EEDC7A695431D4A7DD3D34E6BB263AA32333613D7A247BCCE5DCBFFE51CADFB75FFC274FC2A0FA14AAC96E9EE8F752E73987F480FCA195BF6ABFF84E55FEDC366C75E19BE46BAEECD5F1D9FA313AD1C9791AEBB7357C765E8C4EB469BA2000000000000000087BD1E6BDB1B5BFA3D06F6DA8DCD3FD0AB0535E267A5BD1181CCB9C306CB7A4711B97D1E4B58D1A6B6A6D7674E65DF2B54D34C66AE4CD62D5DBB7229B313357B39AF2CA5977B4586FCD61EA1EE4F2EF68B0DF9AC3D46A5D38F04E6C3F10F269FDA1D38F05ED7E21E4D3FB46B74DA7EF876FCDBB63D5ABC7F76DBEE4F2EF68B0DF9AC3D43DC9E5DED161BF3587A8D4BA71E0BDAFC43C9A7F688E9C78276BF10F153FB43A6D3F7C1E6DDB1EAD5E3FBB6EF727977B4586FCD61EA1EE4F2EF68B0DF9AC3D46A5D39305ED7E21E2A7F688E9C78276BF10F153FB43A6D3F7C1E6DDB1EAD5E3FBB6EF727977B4586FCD61EA1EE4F2EF68B0DF9AC3D46A5D38F05ED7E21E4D3FB43A71E0BDAFC43C9A7F6874DA7EF83CDBB63D5ABC7F76DAB29E5E5C302C357FF6B0F513EE572F768F0DF9B43D46A3D38F05ED7E21E4D3FB43A71E0BDAFC43C9A7F6874FA7EF83CD9B63D5ABC7F76DDEE572FF0068F0EF9B43D43DCAE5FED1E1DF3687A8D47A71E0BDAFC43C9A7F6874E3C17B5F887934FED0E9EC77C1E6CDB1EAD5E3FBB6EF72997BB4586FCD61EA23DCA65EED161BF3587A8D4BA71E0BDAFC43C9A7F6874E3C17B5F887934FED0E9EC77C1E6CDB1EAD5E3FBB6EF72997BB4586FCD61EA23DCA65EED1E1BF3587A8D4BA71E0BDAFC43C9A7F6874E3C17B5F887934FED0E9EC77C1E6CDB1EAD5E3FBB6EF72997BB4786FCD61EA1EE532F768F0DF9AC3D46A3D38F05ED7E21E4D3FB43A71E0BDAFC43C9A7F6874F63BE0F366D8F56AF1FDDB77B94CBDDA2C37E6B0F50F72997BB4586FCD61EA351E9C782F6BF10F269FDA1D38F05ED7E21E4D3FB44F4F63BE0F366D8F56AF1FDDB77B94CBDDA3C37E6B0F50F72B97BB4586FCD61EA351E9C782F6BF10F269FDA1D38F05ED7E21E4D3FB4474F63BE0F366D8F56AF1FDDB77B94CBDDA3C37E6B0F5059572FC5A6B04C3935BD3F634377D06A3D38F05ED7E21E4D3FB47A30FE56B2F5D5754EBC2EECD37A6DD5A69C577F65BD098BD62786615AB676D7A63334D7E3FBB7AA54A34A0A14E118422B4518AD1245C2CDB5C51BAA10AF6F523569545B509C1EAA4BB29978D987066262713CC0012800000000726C7FAEDCF7F13B0F39C12EDFDFB73E167E73BDE60EBB33DFC4EC3D23815D7E3B73E167E7245035219004EA081A800431A800412C086C73108360491A904810000001006572EFE1EFBF77DCFA06D383F5FB923C15A7D53355CB9F87BEFDDF73E81B5611D7EE48F0569F54C9A7AD0AD7D597765CE551650BF99523ACE4AB4C9D4A225699591526545B4548ACA581E50B0E9625942F614D6D55B64AEA9F7E1EF9793A9C4DCF69269EE7C0FA3168F7492945EE69F3A7C51C0B336152C0F1EBCC39FBDA3535A4F4F7D4E5BE2FC5BBE43A7B3EE709B73EF56A8CCE58E643646A4367501B2C5C47696BCE8BAD9449F10B477BCC9EA11335A3D5105E272B4AA08844A2C855A272526BAA5C24B8AF94CFE119D331614A30B5C52B4E947852B94AB43FBDBD78CD7D712A456AA29AE3154655741B6E53A15D28E3997ADEE3B356D2A6C4BC997ACCADBE69C9979A6B777B86CDF357A4DC57CAB53952654BB86BCE8ED4F5731EE9FD72899766B6960B72FEF2CCB8754D79AA54507F49ED861DCF1C430E9AECAB98FACE19A465EFA317DF44741A5FEEE1E231CE8A7B2BFC3FF0046F4773B9D6F60D9ADABDC6F0BB78FF6AE137E247A32C62397F19BAAF42C310F67D6B64A528283A7169FE72D77C96BB8E08A1087BD84577A27B709C4AEF09C4686216153A1DD5BCB6A127C1F6632ECA6B73452BD04D54CC457C7C3EBC48AE23B1F4B789736E3917F480FCA395BF6EBFF0084E8D957305AE64C1A9DFDA752FDE56A2DF5546A2E317E74F9D1CE7FA407E51CADFB75FF00C279ABB4CD19A6A8C4C366CF5E19AE46BAEDCD5F1D9FA313AD9C9791BEBBB357C765E8C4EB46ABA00000000000000000C7E60C46384E0B797F25B4ADA94AA25D9696E5E33E65BFBCB8C42F6B5DDDD4955AF5A4E7394B9D9F43F28FD6462FF177E747CE2F8B391B42A9DE8A5F45F23ED51D0DCBB8E39C7C31FBA4739BD7279932CF1CB29E2189CEA4A9AA8E9C295396CEBA716DF1E73A460385E58B0AB528D86194615E8EE94A50DB92EEEB2E3F218AD68EBB91156710E8EBFCA5D368EE5566299AAA8F8478FECE2385E5AC6B1596961865CD55FA5B1A457CAF71B7617C90E3370E32C46EEDACA0F8A8FDD66BC5A2FA4EC4EE20A2B616AB98A1D79CDE8BC48DDA3416E3AD39797D4F959ACB9C2CD314C78CFE3C3F069769C92E5FA16F285D57BBB8A925F84DB50D9EF24BCFA9AFE3DC92742A53AB826232AF28AD551B88A4E5DC525BB5F90EA8A95497BE6977CB91A14D7BE6E4FC466AB4B6AA8C61CCB5B7F685AAF7FA599F64F18FDBE187CB75212A73942A45C6717B328BE29F6083259AB4F7518BE8B45ECDADBBFE7663FA1D45BDD3925FB2CE0CC62661F5DB5737E8A6A9ED8CA905F56176FD8E95AD6D6EBF01D43FBAEFD3A9ECEFEC166709427284E2E328BD1C5AD1A7D82312BC574CF29402010B652081A832904006520B96B6D5EEEE29DBDB529D5AD565B308416AE4FB088AF46ADBD69D1AF4E54EAD3938CE125A38B5C5327138CABBF4E7773C54020BB0B6B8A96F52E2146A4A8D2D154A8A2DC61AF0D5F31099AA239AD8237F637172142B4E2A51A351C5F06A2DA04D511CD402E2B7AEDB4A8D46E3C7A87B8A6A539D3969521283E3A49344E11BD13C1D3790EC76B46FABE095A6E5427075A8A7F9925EF92EE34F5F90EC2704E463AF6A5F17ABE6477B3B7A2AA6AB5C5F2AF2A2D536F684CD318CC44CFBFEA0001BAF3200000000E4B983AECCF7F13B0F39C0AEDFDF973E167E73BF661EBAF3DFC4AC3CE700BAFC76E7C2CFCE48B7A8D4001A91A808002193CC046A4F1208D409D48000000001CC400D40006532EFE1EF7F77DCFA06D58475F9927C15A7D53356CB9F87BEFDDF73E81B4E13D7E649F056BF54C9A7AD0AD7D597744CA8B7CECA933AEE4AB2A4CA1152640AC94CA5324AC8AD339F72C383746B3B6C6E8C7ABB67EC7B8D39E9C9F5327DE96EF94E8312D5EDAD0BFB3AF67770E896F714DD2A91ECC5AFFE326DDC9B55C571D89E7C1F39EA4367AF1AC2EE305C5EE70DBBEAAADB4F654FFDE438C66BBEB47E33C67A289898CC2A86513E054CB73E0C95E14BE051C195321889C2E131652BB04F03242930A9EF09E8221F1250A894CA5324B2AAC94CA1489D49CAB856F794EBA3EE93A9125CE25567B25667AF95F18575152A96955285D518FE7C399AFED478AF951B1F2EF5E8DD57CA5716B5635A855E8B529D48BDD28BD9699CF9329C4B11B8ADED2E1D566A56F6B56AD4A5AF186D38ED47BDAEFD0E2ED5D3C556FA68E71CDB3A6ABEDC43B17235D7766AF8ECFD189D68E4BC8D75DD9ABE3B3F46275A3CBBA80000000000000000D77947EB2317F8BBF3A3E75B5B7A975754EDE8476AAD59A8423AE9AB67D15CA3F5918BFC5DF9D1F3FE078A54C1B1385ED1A70A93A6A4B667C1EAB4391AEC7494E793E8BE4B4DC8D0DE9B519AB338CF7E230EB192ECEEF2FE031B4BBA7075BA2CA6F49EAA29FF0033390F62DADDD4AD194954ADBA4949C971E3A731AF652BEAD983058DEDFA5B74EE5CD7435B315B3A68BBBC79F89B0BB7551C5B96BA34F489D0B3D48DDE4F17B462BFE2AE74FD6CCE71CB2CBD9E9284B6B7E8F723D2A7A2DDB9770F1DBEE8BD1717A979333B9CBEA44A916132A4C0F9C733BD732E2AFB3775BD36768B8AF5AE2588DB5594256C9D4A0A97428F056F4E7AEBA6BC66CE2B997AE2C53E3557D36759C4EEA4F2E5DE2B6D6F59BBAA75AE3D8EDA55A9C254634A353675F7BAC35EF338BA79C4D7F5DEFA6ED8A37A8D3FBA623DF3BB8F932B4ACDDBCE14ECF09B7A74B0E9C95ACA76F51BA4DCD6D4A3BFAA4E0F55A73A7D8342CC36D97AC73A5A55C66CEA5AD8CECA37152DA9D39273AADBDD24DEABBBDED0D8EAC30DB456946ADD5B46A4E8529B5738ADCC2A3728A6DE89E9DE355C7B2CD4C673FE2384D85D469CA85252A30B9AD29B9E914F6232936F9DB32DE99988C444F173F66D34D372A9B95D54C6ECCCCF2E1C3339CCF6CE7977CB298057C3737D3C42D2EF2D5AD859D0B7955A579422E0E8B5EF54A4F737EA7B8D672D62780E118455B9B8B0589E332A8952A55A0FA15387677717FF00E8DBB244B325DBAD82666B1ABED253B6942ABB9A3D0D53515D4E92DDAFFF0019A961597B158D82CC5976AABA95ADCB82A7422E7569E9AE9271D37AD34F1986ACCC5354471E3D9F97B1D2B336A2ABB66BAB14E69C4455331C73889AB9C6F638C7BB9E59CC77D81532D61399EA60B470EBC57D184E8463A53B9A6B56DECBE6DDA7CA633943C0E9C33951A585D38C6DF1454AA5BA824A3D5E91DC9777CE65F344AFF13E4E96219AEDFA062546E553B49CE3D0EA4E0FDF271F1F8B533193616F8CE0781E3977249E5E8D68566F8B8C63AC7E44B7FC85E688B93B9DF89FD5AF6F535E92DC6A7398A66BA719998E319A6227B63318CFB70C6F29583E14B0073C1EDE952A9835C46D2E1C21A392705A37A71DFF00CCC553A36781F2716379756146E6EF12BCDB4AAC37BA517BE3AF149ECF3764AB225E4F30DE660C2AEA4B6F1AA352B4549EE5593DA8F9FE82C72AB711A18B58E0B6F2FB96116B4E8A6BF4DA4DBF16C95AE62626F447B3EBE0CFA7A2E53768D9B5D533BB3BD339E74E3BFF00BE7F06C186D5C22CF0378FE2D95ECAC16BAD8D2A6E6EB579ADE9AFD18F77FF008E1D7A78F6157B8E4F2A58D7BDA53DAAF6F51548D4953D3F089F097797609B3CD198A8645C4717C5EF2546771B1470EEA231937CF24B9D69CFDF2DE66CD18EDA613952BD9E215215AEEDF6EB3D135525AC52725A6FE2CCBBD4C53C79633CA3DD9FAEC68459BD55DC4446F4D53113BF5E3111BD34F2CE38626739DEF76185C916B87663CCF88CEAE0F49D08D9CEB51B2A73928EDA714927C77EFF0019B761B62E395717A7EE22A5BEDCE8FDE5D1A5F7CF55C75E6D9E26BB80AA19573B635471FBF841D4B29A955A31D9DA94F665A45733D1996C22FB01A993B1BA942FF1E9DB42743A34E6D3AD0EAB76C755C3B3DC2B6B11189E7C7B993684D75D7155BCCD1FE9E3AF31CE3B731FAFB62585CEB835A5AE4EB7C4165F782DE4AF7A0BA6E729370D993D77F67432B97EF2E5E52C2ADA8D4CC3632A119B94ACEC6552155396A9ED73A3CB51E199A32DD6C1308BBC476AC9CF119D6C429ED6B18C74D9D54BFB5BBE532B97F14C2F07CB186DFD378D5695CC5D3A71D5D68D19412527B1B4925ABDC4D311BFBD13C31F5C917EBAE74D16ABA66AAE2B9C44E679C4E3AD9ECCF3CB294AD2FAE312C46346AE23864B16AB0BCA15A951DEA11A7B2E13D77464DF3339F72A35EADCE25613A94AFE2A95AC683AB7941D3955945BD65D87F21BA51C4AEF08BEC72A63189E2188DA51BB85BBA34A8A94A4E54F6B55A34E1A7719A972A4ACA3530DF62D5C4A73AF455CA8DE567354E12E1149EF4F5E22FF001B73F5DA8D931553ADA33198C70988E1D58ED9889E58FA9C451C8C75ED4BC055F323BD9C13918EBDA9780ABE6477B36343E8BE2E4F959FD7C7F6C7CE4001BCF2800000000E4B987AEBCF7F13B0F39C06EDFDFB73E167E73BF662EBAB3DFC4EC3CE700BBFC76E7C2CFCE48B618200124000400000000000010000000004E806532E7E1EFBF77DCFA06D18575F9927C15AFD53357CBBF87BEFDDF73E81B4615D7DE49F056BF54C9A7AD0AD7D59772E76548A13DECA91D97255A2A4CA13251515A2B45B4CA932B22B4F42A4504EA56612D1795DC01DE6190C6AD60DDC584766BA8F19D0D78FFC8F7F79B3943D34DDBCFA4B48C96938A945EE7192DD24F734CE199EF2EBCB58E4A8528BF605CA75AD25D88EBD553EFC5FD0D1D2D0DEE1D155F0263B5AF32DC8AD96E6F43A69850D90010C871256F4413DE26270898132B2D92B899544F02A4C14BDCC9570AC264459210A932A2DA654996CAB3035A33C776FFD298777E5E747B789E1BBFCAB8777E5E7473F697F4D5FC3E70CDA7F490EDDC8D75DB9ABE3B3F46275A392F235D76E6AF8ECFD189D68F1AEA800000000000000035DE51FAC8C5FE2EFCE8F9C1F167D25CA0519D7C998B53A517293B793497737FF0023E6D7C7538FAFEBC7B9F49F2427FE16E47FDDF943ACF2569FB9852DA9251BA9EBA70E0B89B7C7A32D6A4614EAC34D6296E96A73EE49B30D9D9DB5C6197B714EDE52A9D1A94EA4B6632D524D6BCCF727F29D128F4495CCE6D45D192D69CE3A6F5D8D51BFA5AA2AB54E1E476F59AED6BEECD718899CC7B57B0DAEEE2D55494361B6D347AD16235230A52A9566A308FBE949E8977DB35CC6B941C0B0BD610B877D596ED8B6DEBE5970F399ABAE9A23354E1CDD3E92F6A6ADDB344D53EC6D679B11C4ACF0BB795C621734ADE9C56BACE5A37DE5C5BEF1C8F1BE53F18BD52A787469E1D49EED61D5D47FF33E1F2234DBBBBB8BDAEEB5E57AB7155F19D49393F1B346E6BE98E14465EAF47E495FB98AB5356EC774719FD23F15DBEBD75F17B8BEA4B4E895E55A2A493D3596AB55CE7AEE732E2F718BD5C5257B52375560E9394772506B4D94B825A7318A07277A7BDF439D3DB9C66989C4638F777366972839952A51A588741A74A1184610A71D9D12D39D33118A6357B89E313C56B54E877739296DD1EA3469689AD38703C0099B95D5189962B5A2D3D9AB7ADD1113CB8447265B10CD18E6236BEC6BDC56EAB506B47094F7497774E3F29E4C2B16C4308ACEAE19795AD6725A49D3969B5DFEC9E4046FD5339CB2469ACD344DB8A62299ECC463C1ECC5718C4717AAAA627795AEA51F7BD127AECF7970445A62D7F676571676B775695BDCAD2AD38CB48CF769BCF201BD39CE56E82DC53146EC623B31C17AC2F2E70FBAA775655A742BD3DF0A907A35BB42EC314B9F6DA389D79AB9B95515594AB253536BF493E279011133099B345533331C6631F0EE64F30E60C4B30DDAB8C4EE1D4715A4209690A6BB115CC64709CF98FE1787D2B1B5BA8740A2B4A6AA528C9C57613EC1AD82F172B89DE89E2C156874F5DB8B5551134C728C4621E8C46FAE712BEAB797B55D6B8AD2DA9CDF3B3DB97B31E27976AD59E1771D0BA3251A919454A32D386E7DF7E33140AC55313BD13C596BD3DBAEDF45553134F763878366C47940CC58858D5B4AF7918D2AC9C6A2A74A30724F8AD51E6B0CE58EE1D8650C3F0FBE95B50A0E524A9C526F57AEF7CE60816E96BCE732C11B3F4B4D3B916E9C6738C4632D8FDDD63F1AD795A85DAB7AB7B5635AACE94126DA8ECA4BB0B431B8F63B7F8F5C51AF89D5556AD2A4A929A8A4DA5CEF4E2F798E044DCAA63132BDBD169ED5515D14444C76E38F77C9BAF231D7B52F0157CC8EF6708E45694EA673538C5B8D3B7A8E4FB1AE891DDCEC687D17C5F36F2AE73AF8FED8FCC001BCF2A00000000E4B98BAEACF7F13B0F39F3FDDFE3B71E167E73E80CC4FFD6ACF9F13B0F39F3FDDFE3973E167E7245B6C929080964192C1303BAC6E55D5A5C61F43A028ED3BDBB8DBA7B5AE9B3B5C786FEC1563780DD60B0A12BBBAC36E1576D45595E42E1AD3F4B67DEF73B2062C024080352000000000000340252016E006532F7E1EFBF77DC7A06D18575F5927C15AFD53358CBBF87BEFDDF73E81B3E17D7D64AF0569F54C9A7AD0AD7D5976FD742B4CB6BF99527B8ED392ACA932844902E224A132A4CA0AD32A2DA656889152662736E014332E0B52C2AC952AA9F44B7ACD6BD0AA2E0FBCF83EE332A4A2B99A677A9E6987CDD7B42BD95D56B4BCA2E85C509BA7569BFCD92FE5D87CE9A3CADEACEBFCABE52962B69EDCE1949CEFAD61A57A515BEBD25CEBB328FD2B773238F2DE934F54D6A9A3BB62F45EA37BB5929849288489D0CE9C800224435BC26490CB5356384AB30A93275E66508932AA702A4C80F712AE15A64942654A410A91E3BCFCAB8777E5E747ACF1DDFE55C3FBF2F3A34368FF004B5FC3E70CB63D243B6F235D76E6AF8ECFD189D6CE49C8D75DB9ABE3B3F46275B3C73A80000000000000000B75611A94E509C54A325A34F834711CE9C9A62586DED5B8C1284AF2C66DCA3086F9D2EE35CEBBA8EE443D0C17AC537A3153A9B376A5FD9B726BB5C6279C4F297CBEF01C5FB557CBFF00B69FA8F7E194B34E152DAC3E862B6FD950A35365F7D69A33E90449A91A08A673153D0D7E56D5729DDAECC4C7B67F67CDF8AACD78B68B11A38A578AE109509A8AFF00952D0F07B438BF6AEFBE6D3F51F4F813A18AA733516FCACAAD53BB6EC4447744E3F27CC1ED0E2FDABBEF9B4FD43DA1C5FB577DF369FA8FA7C11E6FA7D664FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA1ED0E2FDABBEF9B4FD47D3E079BE9F58FE71BBF751E3FB3E60F68717ED5DF7CDA7EA3D187E53C7B10AEA8DB61377B4DF1A949C22BBEE5A23E972098D9F4FACAD5E585E98C536A33EF96A7C9DE4E8655C3E6EB4A356FEE3475A71E114B845773CE6DC46A49BF4511453BB4F278FD4EA2E6AAED57AECE6A90005D8000000001C933175D59EFE2761E73E7FBAFC72E3C2CFCE7D0198FAEACF7F13B0F39F3FDD7E3971E1A7E7245B081280DC7937B2577698F54B5C3B0EBEC56DE95095ABC523195B52839B551BDA6A2A5C34D4F367AA18B50A565EDBD8E5CB44E53E86F0654939BD16BD1361BDDD8D7BA5590652BCB6C6704A983CF16B3BD852AF5D46E95AC683A527B339D492D127AE9A1E4CE584D8E0F52D28D9E035F099D68BA9D1657F1BBA5730E0BA1CE2B4DCF8F7C0D7DB1A900000000000000004480001280CA65DFC3DF7EEFB9F40D9B0CEBEB25782B5FAA66B397BF0F7DFBBEE7D0366C33AF9C95E0AD7EA996A3AD0AD7D5976D4F47F2957316CAA2CEDE1C95D4C94CB7A95C5951595265B4CA915915A2A4CA132A4545699250B89526566054A4D34D369AE0CE41CA964E584DCCB1AC329E987DCCFEEF4E2B75BD57CEBB1093F13EF9D78A6B53A55E8D4A3714E3568D58B854A735AC6717C535D82F6AE4D9AB7A16897CD49681A366CF5946AE58BF4E8EDD4C32E25F7B5596F707FEEA4FF0049733E75DD35B4B71DDA2BA6BA62AA792CA1A2965C653345C52398105560944105A2AC226156A4A7D9294C9D4C99512C27A710869A96CAAAD33C975F9570EEFCBCE8F42D533CD72FFD2B8777E5E74686D1FE96BF87CE196C7A4876EE46BAEECD5F1D97A313AD9C9791AEBB7357C767E8C4EB478F74C00000000000000010F81A5E3F9E674B149E0F96F0F9E2F8853FC26CBD29D2EFB5C7FF009BCCF66EBF9E1796711BDA3BAA51A12941F61F04FE9311C97E11470FCA5695E31D6E2FA0AE6B547C64E5BD6BDE460AEAAA6A8A299C76BA9A5B76ADD8AB557A9DEC4EEC472899C666671C7111D9DB963D627CA537BB05C1D2EC3A8FFF00FA0F6CB94BED2E0FFC4FF30DF5474247433EB4FD7C13E72A7EE2DF84FF009341F6CB94BED2E0FF00C4FF00307B65CA5F69707FE27F986FC07433EBCFD7C0F3953F716FC27FC9A0FB65CA5F69707FE27F983DB2E52FB4B83FF13FCC378B8B8A36D0DBB8AB4E9435D36A72515AFCA617DD8612F337B470AF195656BECB9D65521D0A11DAD9516F5F7CF7EE5CC87433EBCFD7C0F3953F716FC27FC981F6CB94BED2E0FF00C4FF00307B65CA5F69707FE27F986EF6F776D75B5EC6AF4AB6CF1E87352D3C46233766FC1B28D9D2B9C6EE7A12AD5153A708ADA9CDF3B4BB096F6F987433EBCFD7C0F3953F716FC27FC9AFFB65CA5F69707FE27F983DB2E52FB4B83FF13FCC328B949C96F8667C2FE711366A7523569C6A5392946694A2D7069F38E867D79FAF81E72A7EE2DF84FF009345F6CB94BED2E0FF00C4FF00307B65CA5F69707FE27F986D76D98706BBC425616B8AD8D6BC8B6A54217119545A71EA53D4B39833461397EE2C28629774E84EFEB741A7B538AD3737B52D5AD23D4E9AF65A1D0CFAF3F5F03CE54FDC5BF09FF26B5ED97297DA5C1FF89FE60F6CB94BED2E0FFC4FF30C9CB946CAF05894A789D354F0DA90A556716AA2939A4D38ECEAE4B5925AF6771EECB79BB04CCD52E29E0B78EE276CA2EAC5D29C1C54B87BE4BB03A19F5E7EBE079CA9FB8B7E13FE4D7BDB2E52FB4B83FF0013FCC1ED97297DA5C1FF0089FE619FCDB9C306CA54ED278D5CF415775951A692D5F764FB115CEF988C2F3BE57C5AFA9D961B8F61F757555B50A54ABA94A5A2D772E71D0CFAF3F5F03CE54FDC5BF09FF2607DB2E52FB4B83FF13FCC1ED97297DA5C1FF89FE61BB5EDE5BD8DA55BABCAD0A16F460E752A4DE918C5716D9A8DC72B19328E276B64B1AB6AAAE23393B8A7522E8D1D9D374E5AEE6F57A7798E867D79FAF81E72A7EE2DF84FF93CFED97297DA5C1FF89FE60F6CB94BED2E0FFC4FF30D9F02CCD82661956582629697EE824EA2A1514F635D74D74EF3F11961D0CFAF3F5F03CE54FDC5BF09FF002685ED97297DA5C1FF0089FE60F6CB94BED2E0FF00C4FF0030DF80E867D79FAF81E72A7EE2DF84FF009341F6CB94BED2E0FF00C4FF0030B75734675C223EC8C732E5BD6B48EFA92B2A8DCA0BB3EFA474229D91D0D5D95CFE079C2DCF0AF4F463D9BD13E3BCC765FC6EC71FC369DF61D57A2529EE69AD250973A6B9999339EE054638072A77F8659AD8B3C46D95DAA4BDEC26BB1E2978CE845AD5735471E71C1835DA7A2C5C8E8FAB5445519E789EC9F772000656880000000392E64EBA73DFC4AC3D23E7EBBFC72E3C2CFCE7D01993AE9CF7F12B0F48F9FAEBF1CB8F0B3F39228D4101019FCAF5ED6BD862D81DF3BAA54B128D2AB1AF6D41D69539D293694E0B7B83D7E47A15E6695BD960F8660964AF2AD1B6A95AEA573756F2A0AA4E7A271A7096F50496FECB65395B1EA78159DFC955A946E6AD6B59C7A127B5569427AD486AB86AB7E9CE5DCDD8951BAB3B5B4A78ACB17A90BAAF74ABB726A9539E9B14F596FD776AD70406B4C0000000000009D0680000001200194CBBF87BEFDDF73E81B2E19D7CE4AF056BF54CD6B2F7E1EF7F77DCFA06CB86F5F192BC0DAFD532D475A14AFAB2ED7D9253294F89276DC95C8CB52A2D27A1722F51302B4F52A45B4F42A4F52A95699526504A656605C253D0A132A2B22A4CA8B69954489816B11B1B5C52C2BD8DFD155EDABC766707E74F99AE29F31C3B37E59BACB588F40ACDD6B5ABABB6B9D37558AE67D89AE75F2A3BC1E5C570EB4C5F0FAB63885155ADEAF15C2517CD28BE692E6665B17E6CD5EC4BE756B4EF14B467F36E58BBCB57EA8D77D1ADEAEAEDEE52D1555D87D89AE75F2ADC60DAF11DBA6A8AE9DEA79262565A20B8D6A50E24AD12A594B2B21A2168953A92990C86DA262704C655EA4A6529EE2533244E58E6151E5B9DF8AE1FDF979D1E93CD70FF00D2B87F7E5E74696D0FE9ABF87CE192CFA48770E46BAEDCD5F1D9FA313AD1C9791AEBB7357C767E8C4EB47907480000000000000001AEF28FD6462FF177E745FC8DD6760DF13A5E8A2C728FD6462FA7C1DF9D17722352C9B8368FFF00074BD1460FFADF0FCDD59FF96C7F7FFE30CE800CEE5000039CF2EAED565EC21E2149D6B4F6EECFA3D3D873DBA7B52DA5B2B7BD56AB45C4C2F44E4A35EB4EB7FF0083AFF60D9F95DB5C46E70AC1A78461F5710B9B6C6ACEE3A0D34F7A8C9BD652D1ECC786B27B96BA975E3F9E7F51A87FF99A7F600C1F2532C1259D3333CB562EC6C150B4D9A52B69506A5A4F69ECC9266BF9A6D562F982FE76D63EC3C5A370DD0C5716C72952766E2F451A7463B4FA1F17A35BF5DE6ED9228E3B573A661C4F1DC19E15EC9A16B4E9C55755A32D853D749A4B5E3C398C2E2F845E5E635531CC5326D0861F6F7328FB0EDAD68DCDEE20DEB1E895252D231A7CFA27A81AAD257B895C4711C6710C13385A594DD3861EEEE9E1A95683D253D871D9A9DC72693EC1BCE7DCD1750E486FF16A76D530AAB5A31B782556151D38CEA2A7B71941B4D68DB5A184C0393CBBAF96617B4309C370DC49DEDCDCC6C711B2A75615294E6DC29D4696D4345C365EED781B7DD65EAB99B9379E097F86D1C06BD5A5B10B7A528D4A76D384B5838ECEE6B58A7A7600D37D91816116B832C63215C6198251AD455A630A74D55854E11A952307B704DEFD5B7AEBBD19CE5AEDE13A1976B46DA756BAC51414A8D942EAAECBA355B4A9C9692ECE9DCD798F3E3984677CDD83DB65CC630CC3B0EB3E8B49DEDFD3BBE8BD1A34E4A5F73A7B29C5B715C4C8E7FCADEE8B1EC1EDE9612E6A0D4EB62352B4953B7A3096FA718464B5A92D5A4F4DC9B7AF6039DDAD074F06CC55E9535697AB1EC3A34EADED8C6D654F7D26B6E9C74D98EBBF45C789BE727F52FEAF28399258ADED8DF5C7B0ECB5AB63171A7A7DD345A36F7F1D77F3A3035793BAF4B33D0C2960F4EA61956F96215EFA152A4A356DE9EF8DBD584DB8B9B968B5E78AEFA364E4E70E9C3336398A5BE5CAD97F0FB9A16D468DBD6A30A5294E1B7B72D8836BF396FE7D00D3A9DB5E43942CC5531DCF38758DF5AAA34E954BAB3A32FB94E2E7B14E3525D4A5B93D38BDECC358E2779EE6679E6B676C2E96608D954E87612B6B772A7153694211D7A9724937A2D77E86FB8F6178AE7DBCB8B2865DA58161CE6E95CE277D469CAEEBC13D971A31DFB29E9BA6DF07AA31197F02AF94163785CB2056C5294F10B8AF63734A9D0A915425A7438EB37AEED3801BCF28D2955E4CF1C9BDF2961B51EE5C5B81C7AC71C9C6C6DD3CC138B8D28AD3DD6DAC74DCB768E86EEF731D46B58E6CBCC8B8161959CA9E25733A31C52E7A2436ADE9A7B53E1BA4DE8A3BBB26B97384E294F11C468E2597F18B99D0C7278861B7B87C684E30B76A2953D2725BB4DA4D35BB501C89DCCAEB37E66AD2BB777ADB59A551DFC2F38744DDD12118AF934DC75D468194F0FCD946FB0BC5EF6951A2AF21568E2561D4535420A72950A9151FCF49A8C96AF5D7B9A9BFC780120000000342B9FEBA6D7F75BF3C8DF4D06E1EBCB4DBE9BF4C2DEBE391BF182CFF00BBDF2EAED2E563FB29FCC0019DCA00000000724CC9D74E7BF89587A47CFD77F8E5C785979CFA073275D39F3E2761E73E7EBBFC72E3C2CBCE48B610080CCE59B8BDA73BAA385E231B3BDAEA0A9529D3528DCB5AF51B4D3D997639995E66B8BE9C6DEDF17C455DDF5272955A10A7151B6D52D22E492D66F9D704636CAFEBD953B88DAB8D39DC45425574EAE11E7517CDAF38BABEAD7942853B9D9A93A09C6359AFBA38F3464FF392E66F781E6640600000004020240000944129000094064F2F7E1EFBF77DCFA06CB8775F192FC0DAFD5335ACBDF87BEFDDF71E81B261FD7BE4BF036BF54CB51D6856BEACBB427BD95A65AD7795464769C85C2514A6544E4569EA54B71693DE569EA2612B89F64A8B69EF2A4CA8AD32A4CA352532B302B275294C9D4A8AD3278941527B88C0B189585A6296356CB10A11AF6D5575507D9E669F335CCCE359CB285E65CB8E88B6AE70EA92D9A57296F4FF00426B9A5F43E63B6A6535A953AF46746BD3855A5523B33A738EB192EC3465B37AAB33C39770F9BE51297DD46FF9CB93EAD87AA97D82295C59AEAA7438D4A2BFC51EEF15CE688E299D8B7729B94EF5298A96651D7814E9D92F3894B5D92EB44AD3452D6A5D7123409CAD3413EC95C914B19C2DCD28F357FCAB8777E5E747A229F36E2C5C27EDAE1DDF979D1A7AFAB3A6AA3DDF385AD47FA90EE1C8D75DD9ABE3B3F46275A392F235D76E6AF8ECBD189D68F28E800000000000000003CB895A52BFB0AF675D6B4EBD374E5DE6B439F656CC32C9751E5ACD4E56F4E8C9FB0EF365BA7529B7AA5AFF00F34E0F4D0E9679311C3ACB12B7E81885AD1B9A5FA3560A4977BB062B944CCC554CE261BFA5D5516E8AAC5FA77A8AB8F0E13131DB1F5C5E18669CBF25AFB7B86EFF00FF00CA87ACAFDD465FEDEE19F3BA7EB31BD2FB2AB6DBC1A8F953FB44F4BDCABDA7A3E5CFED15CDEEE8FC59B7766FAD73C29FD591F75197FB7B867CEE9FAC7BA8CBFDBDC33E774FD663BA5EE55ED3D1F2E7F6874BDCABDA7A3E5CFED119BDDD1F89BBB37D6B9E14FEAC87BA8CBFDBDC33E774FD64FBA8CBFDBDC33E774FD663BA5EE55ED3D1F2E7F6874BDCABDA7A3E5CFED139BDDD1F89BBB37D6B9E14FEAC87BA7CBDDBDC33E774FD63DD3E5EEDEE19F3BA7EB31FD2F72AF69E8F973FB43A5EE55ED3D1F2E7F6866F7747E26EECDF5AE7853FAB21EEA32FF6F70CF9DD3F58F75197FB7B867CEE9FACC7F4BDCABDA7A3E5CFED0E97B957B4F47CB9FDA19BDDD1F89BBB37D6B9E14FEAC87BA7CBDDBDC33E774FD63DD465EEDEE19F3BA7EB31FD2F72AF69E8F973FB43A5EE55ED3D1F2E7F6866F7747E26EECDF5AE7853FAB21EEA32FF006F70CF9DD3F58F75197FB7B867CEE9FACC7F4BDCABDA7A3E5CFED0E97B957B4F47CB9FDA19BDDD1F89BBB37D6B9E14FEAC87BA8CBFDBDC33E774FD63DD465FEDEE19F3BA7EB31FD2F72AF69E8F973FB43A5EE55ED3D1F2E7F6866F7747E26EECDF5AE7853FAB21EEA32FF6F70CF9DD3F58F75197FB7B867CEE9FACC7F4BDCABDA7A3E5CFED0E97B957B4F47CB9FDA19BDDD1F89BBB37D6B9E14FEAC87BA8CBFDBDC33E774FD63DD465FEDEE19F3BA7EB31FD2F72AF69E8F973FB43A5EE55ED3D1F2E7F6866F7747E26EECDF5AE7853FAB23EEA32FF006F70CF9DD3F58F75197FB7B867CEE9FACC774BDCABDA7A3E5CFED0E97B957B4F47CB9FDA2337BBA3F137766FAD73C29FD591F75197FB7B867CEE9FACC76319F32EE196D2AB2C52DEEA497534ADA6AA4A4FB1BB72F9474BDCABDA7A3E5CFED1E9C372765EC36BAAF6784DB42AC5EAA4E2E6D3EE6D37A0FF005BD9F8A63CD94F1FB73ECFB31F8E67E4C1640C3F10BFC5AF735E3345DBD6BE4A16D424B7D3A4B83F9745F4BE737B00CB451B91869EAB533A9B9D24C62384444764470880005DAA00000000E47999E99AB3D2ECD9D879CF9FEEBF1CB8F0B3F39DF734BD9CDF9DA3FA56562FE4D4E0575F8E5CF85979C916C00000000000000009D08448000013A0000123980193CBDF87BDFDDF71E81B1D8BD33B64B6F8742B5FAB66BB97BF0F7AB9DD85C25E4191C4AF561F8E651BED53851A36736FB9A24FF9934F0AA255AA334CC3BB73BEF95265335A549AE3BD84CEDB92B8A456996532E260564A6531649642B522A4CB6995A7BC8984AE264EA51AF60A932A2B4C94CA132752302E6A4EA5B4CAB52B815A635652993A91817232D1A69E8D73A351CDB912C71973BAC3F62CAFE5BDB4B4A755F75733EEA36BD49D49A2AAADCEF5324C679BE7FC5B0ABDC22EE56B895BCA8555C35DF197762F9CF1B81F41E2761678A5ABB6C42DE17149F3496F5DE7CC73ACC5C9BDCDB6DD7C0EABBAA2B7F40A8F4A91EF3E73A76B574D7C2AE12A6669E6E7B281435B8F6DC5AD5A155D2AF4A74AA47738CE3A33CF529B46DAD1544BCCD6A4A8A2E28152810C995B51EE1E5BB5A62B86F7E5E7464630E0637117A661B1A3CF0A7B4D77E4BD4696BF869EAF87CD7B139B90EDDC8D75DB9ABE3B3F46275A392F230B6B356699477C7D9B2DFF00244EB4796748000000000000000000000000000000000000000000000000000000000000000000000000000000000001CA73E5B4A872815E1A691C7307952A7DDAD465AE9DFD1A3E7ABD8B862575092D1AA8DF8CFAAB953CBF758CE030BCC257FA5B09AAAF2D3FB6D2EAA1FF0034755DFD0F9B337D3A1885658F6131FB957DD716FC276F53F3A328F7F5D1923060884E3523AC5956804024800000000024000092090000D009402250193CAF28AC7ADA9D4DD0B8DBB77FF3C5C57D2D1633145D7CAB874E6BEEB64E565557E8B849E9F43FA0F22728B528371945A69AE66B7A666316A94EE68D6BB692B3C59257092FC05D47F3BB9AF1EEA6FB040EB7C9CE63A59972B5AD7E889DE5AC236F770D7AA524B48CFBD24B5D7B299B2EA7CB58163789E57C595DE195DD0B8A7AC26BDF4671E78C9709459D470CE5B2CA74A2B16C1AB52ABC1CAD2A2717DDD996F5E33A16B5118C54D0B962A89CD3C9D5515239CF4E6CB6BFF0989F910F592B967CB7F04C4FC887ACCFD3DBEF62E8ABEE7474CA9339BAE5A32DFC0F13F221EB27A74E5BF81E27E443D63A7B7DE7455F73A52211CDD72D59697FE0F13F221EB27A75E5AF81E27E443D64FF00116FBCE8ABEE74A8B2A4FB0733E9D7967E078A7910F59574ECCB3F03C4FC887AC8E9EDF79D157DCE989E9C494F5399AE5B72CFC0F14F221EB27A77659F81E29E443D6474F6FBCE8ABEE74CD49D4E67D3C32CFC0F14F221EB27A78658F81E29E443D6474F6FBCE8ABEE74D4F712A4732E9E1963E078A7910F585CB8E57F81E29E443D6474D6FBD3D157DCE9E0E63D3C72BFC0F15F221EB1D3CB2BFC0F15F221EB23A6A3BD1D157DCE9FA8D779CC7A79657F81E2BE443D63A79657F81E2BE443D6474D4779D157DCE858A615618B53D8BFB6855EC4F4D24BE5347C6F931A951CA7835FD3EE51BA5B3E2923CDD3CF2B7C0F15F221EB1D3CF2B7C0F15F221EB3251ACE8F853523A0AB39C35EBCC8F99AD1BE8983D6AB1FD3B7946A27E27A9E7A59671EA93D986098839776835E736A5CBA6575C2CF15D7B9087ACB179CBD6050A6FD8985E2571539954A91A71F97899FCE58E7109E86BEE5BC3B21DDD0B6AB88665AF4B07B0B783AB5A53929D4515C772DCBB0B5E7E639CE1D77431DCF55EFADE8FB1AC612DB841BD7A1D1870D5F3BD23ABEEB65BCF9CA46339CB4A170E16787465B51B3A0DECB7D9937BE4FBFBBB08F3E58B3AD56DDE1D6A9FB2711D15692DFD0A8A7C3BF2F52E739FA9D65CD4709E5DCDBB3622DF19E6EF9FD1EEDEA55C1EFF15AA9A77F713ADBFF00B52DDF42FA4EAE60B24E091C032EDA5928284A304E4BB0F4E1F2233A693640000000000000000000000000000000000000000000000000000000000000000000000000000000000010721E53F929B8BDC42AE3F93A34A9DF54DF73653D230B8ECB8F326F9D3DCFBE75F23403E4CBBC1307AB74E8DF2AD97B115F84B5BC4E0B5E7D89BDCD1763905D44A5431284E2F838B84BE94CFA8F12C2AC314A3D0B12B2B7BCA7FA35E929AFA4D66BF25391ABCDCE7972D62DFF00BB7282F145A2723832E4EAE1F0BDFA23EB2AE96D76F85E7D11FB4773E945917F57E97F1AA7DA1D28B227EAFD2FE354FB43238674B6BBF867A1F6874B5BBF867D10FB4773E947917F57E8FF0016A7DA1D28F22FEAFD1FE2D4FB4070CE96D75F0CFA21F6874B6BBF867A1F68EE7D28F22FEAFD1FE2D4FB43A51644FD5FA3FC5A9F680E19D2DAEBE19E87DA27A5BDDFC33D0FB4772E945917F57E8FF16A7DA1D28B227EAFD1FE2D4FB432386F4B6BAF862FEE7DA1D2DEEBE1ABFB9F68EE2F923C8BDA0A4BFF0076A7DA3D0B92EC91A69EE72CFF00BDEB191C1FA5BDCFC357F73ED11D2E2E7E1ABFB9F68EF3D2BB247EAE59FF007BD65BABC93E47A92DA797ADD6EE119CD2FA2432385F4B7B9D3F1D5FDCFB44F4B8B9F86AFEE7DA3B874A3C8BFABF47F8B53ED13D28F22FEAF51FE2D4FB43238774B9B9F86AFEE7DA3D16990EF6D3A228DD42AD2AB1D9A946A38EC545CDAE8F735CCD703B43E48F22BFFE9FA3FC5A9F6874A3C8BFABF47F8B53ED01F36E3993AE2D6E9C2145CF9FA0ED2735DE6B749775788C0D5C1A10938CEBCA849718D5A6D347D61D29322EEFF57E8EEE1F75A9BBFBC5FABC9AE5A9C14216B569C17E6AAD297A5A903E45F69E976C2878991ED3D2ED850F133EB7E95D963E0B3F1C7D43A57658F82CFC6BD407C93ED3D2ED850F258F69E976C287899F5B74AECB1F059F8D7A874AECB1F059F8D7A80F923DA7A5DB0A1E264FB4F4BB6143C967D6DD2BF2C7C127E35EA1D2BF2C7C127E35EA03E48F69E9F6C287898F69E9F6C287899F5C74AFCB1F0497F77D43A58657F81BFEEFA80F923DA7A7DB0A1E263DA6A7DB0A1E267D6FD2C32BFC0DFF0077D47AE9727994E104A58159D47FA5386AD81F1EFB4D4FB6143C963DA6A7DB0A1E4B3EC5E97F94BF57EC3F8443E4FB2935D6FD8FF0C0F8EFDA6A5DB0A1E2647B4F4BB6143C4CFAEA7C98E5694DC9582827F9B1D345F414F4AFCAFF00037FDDF501F247B4F4BB6343C4C7B4F4FB6143C4CFADFA57E57F81BFEEFA874AFCAFF037FDDF501F247B4F4BB6343C4C7B4F4BB6343C4CFADFA57E57F81BFEEFA874AFCAFF00037E35EA03E47F69E976C687898F69E9F6C28792CFAE3A57E57F81BFA3D43A57E57F813FEEFA80F923DA6A5DB0A1E26551C1A937F8F427DC841B67D6BD2BF2BFC0DFD1EA2ED0E4DF2D5196AACE525FA3B7A2FEEE807CB385E53B9BDAF4E95BDBD46E6F4529C1B94BF660B7B3E82E4A7933865F8C310C5296972F49428CB4728BE694FBAB9A2B72EEBE1D070BC170DC262D61D6546DDBE32847AA977E5C59EFD00224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003FFFD9, '1', '2023-05-24 14:49:10', '1', '2023-05-24 14:49:10', b'0'); +INSERT INTO `infra_file_content` VALUES (12, 4, 'e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 0xFFD8FFE000104A46494600010101006400640000FFEC00114475636B79000100040000001E0000FFDB0043000E0A0B0D0B090E0D0C0D100F0E11162417161414162C20211A24342E3736332E32323A4153463A3D4E3E32324862494E56585D5E5D3845666D655A6C535B5D59FFDB0043010F10101613162A17172A593B323B5959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959FFC00011080273019003012200021101031101FFC4001B00000203010101000000000000000000000005030406020107FFC4004D1000010302030308060804030605050100010002030411051221314151061361718191A1B114223252C1D115233342436272E1245392F06382931644547383A207253445F1355564B2C2E2FFC400190101010101010100000000000000000000000102040305FFC40023110101010002020203000301000000000000011102032141043112135122323371FFDA000C03010002110311003F00FA4A10840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210840210841E212EC5717A6C2A3699CDE47FB0C1B4A5CCE5432465D90B2FB8192DF04C35A2424231F7E4CCEA6CBC6C6E1723948DBFB0CEF2986B408488728A3DF178AEC72861FE59EF4C34ED093FD3F00F6A378EB5D0C7694EE7040D90968C6A8CFDF70EC523715A377E2DBAC141790AA0C4290EC9DAA56D4C2ED9333BC20990B80F6BBD9703D457483D4210804210804210804210804210804210804210804210804210804210804210804210804210804210804210804210804210805E2F52CC7AAFD130A99C0D9EF1CDB3ACFF00774189C725188E2334F98965F2C7C328F9ED4A4C6F66AC72BC458586C1B140F559AE61AEA889C05F4E3B933C2F17A47CF9AB221213A02763475714927204646F77AA079F82A3A89401A6AAA3EAD4D061F53107B616653D0BB387501FC0625F82B9D1E1708DF6578CEE51A7470DA122DCC8D7A4AE1D84509D917712BDF4872F0553934C44706A2DCD78EA715CFD0F4E3469900E17BAB1E96EE840AB27704D3149D82C57244D30BEED2C173F43DBD9AA78EC0AFF00A5F405E7A58F7134C2F385D437D8AAEF0BB14D5AC1A549BF412AE7A4B782F3D2187720AA24C5A3D8FCC377AD7520C4B138FDB843FB029B9E6141959C5070DC72A07DA526CE170A7663D07E245230F7A80C9D21705E37B4140D21C52926F66422DC41565B510BB64ADEF59D77346E0C5A6F5C379960B373B07BB736EED886B52859964AD8CDE294B3F4920776CF0565988D4B1DF691CACE0ED0F784C34F9097D2E2714CF11C839A91DA004DC38F4260A28421080421080421080421080421080421080421080421080421080421080421080421083C592E565517D5C74AD3EAC4DCEEFD4767879AD5BDCD630B9C6CD68249E017CEAAE775554493BFDA91C5D6E0370EE44AACE50394CE509DBAECDFD5BD5453AA2D2430EA1A2E6FC4FED655E2631F3B5B96C49DAD242EDEE2E25E76B89257785B39CC4221D2AA36905154C74ACE66BE465C5F2B80701DEBD11E26DFF7A825FD4DB14CAC1B1B41D00017AC048D233651A2B2EC506C8E07757FF21726A3141B68E177E97107E29DF324EC8D069DFF00CB4083E92AB6FDA61B35B8B5C4FC11F4C307DA52CECEEF9A7A69DFBA32BC30BF7B5E8118C669B7B671FF004EFE4BDFA628BEF4AF67EA89E3E09BBA941F6A2BF5B4150BE8623B6167F4840BC62B42ED055C23ADD65332AE9DFEC4F0BAFC240574EC369C9B180765C285F84521DB10F3F34163303B083D46E825C1507E0B427F0F2F5587C144703847D9CD333A9C7E6819171DEB93211B12FF00A2E66FB159381D2E3F35E1A2AD1ECD73FB483F040C39D7715E73CE4B8D36223D9AC07A0C60A8CB3156EF824EB6DBE2819994705C178E164BB9CC487B74D1BBA890BD351543DAA43D84FC905B925DE2E08B10781DCB6D4D2F3D4F149EFB43BC17CE9D5329DB4B27610B73814CC9B09A72C37CADCA46F69E0948648421450842100842100842100842100842100842100842100842100842100842100842E5CE0C69738D9A05C93B9028E52D50870C7460D9F39C83AB7F82C63931C6310FA46B03D82D0B016B2FB4EBB52C2AA2372AB5272C47F37ABF3568AA156EBCA1B7F6478EFF008222B3BD92AF72723E73126F46AA849A34A77C908B35597F0552354F9C7D24C8768680E3D699BA6E0120A6773FCA19F78610DEE4ECED51A762778D8BD350F00B89D06A49E0A15571679661354E1FCB23BF4F8A8AE3FDA188DCB5B316EE7651AF4ED5D7D3F19DD30FF28F9ACCB0DA303A17572AB3AD28C6A23F79E3ADABDFA5E13F89FF0069599CC57B98A62EB49F4AC04FDA0EE2BD18840EFC48CF5959ACC519CA1AD373D0BBDC3D442F0B6277E18EC59ACEBB1211B34434F8C519D970B93034EC90A48277FBCF1D44AEC554C364CFED37434D4D39F7AEBCF4770DE0A5E2BE71F880F5B42EDB8849BC30F7843564C2FBECBF6A85CC236B480AD473739187B7B4702BA2F3BD02FD09B5F5E09E7265DF5550CE0E07C3F6496B1A32E602CE1ADD32E4C4B7A895BB33301B74DFF741A64210A284210804210804210804210804210804210804210804210804210804210804B31E98C585CAD6FB52FD58EDDBE174CD27C6AD2491C67635A5C7B741F1418F734F0519053A34ADBEC513A8DA8984AFB35A4BB4005CF5252E25C4B8ED26F64FB148447006DBD690DBB369499D111B95895567D02D4F241A190BE43B36F82CA541D2C9FE155429B0D7347B4E0401D36548618154C6DAB9EA679031849399E6C36A6A71BA074995952C24F5AC9B689C2212CD23228F717ED3D43695566CE2E630C9621B4B85BCAF6ED50D7D005430DAF717D97042AF8B1E7F0BA8630E67968B346D3A8D8B378362EFA09081774208E7217EA59D23E616C998851CF0B6461616B85C145D64446E005C5BAD194AD673F46EDA1851CDD0BF6C719EC0898C958A355A6930FC3CFAD9435BBC83B11F43519D97EF43199D50B42706A60E0D73880E360EBE84F03D2BC760309D92BC772A633E84ECF27C7DD98F680B8760326E941EC4309D09B7D0737F305FC144EC1AA5BB81ED40BAE8BAB670BAA1F877ED5C1A0A81B622827C35FEBB99C45C26164B69219229C39ED2D6EB727A930CED3BC28B11CEC05A579C9F7F3789B1A77DDBE0BB7B9B6DA154A2904389C6F3A00F04F55F541B942E03DAED8E07A8AED45084210084210084210084210084210084210084210084210084210084210092D77AD5921DC2CD1DDFBA7491DF9C73E4F7DCE23AAFA7820879B5CB98ACDB454EBEAA0A180CD5126466C1BC93C0040931701D54D68DAD65FBCFEC97160523EBE0ADAB99F13AF7B59A7436B0DDD68563354CD24464CCE8F3B4ED69247682ADD153B731718ACC8C66CB7BDF5D07795E94CF0A6339873C8BDE66DFA8027CD50D70FC2E360F48AB024A876A4BB50DE000525761F4D591963A301C3639BA169E82BAF4A042EA3787105655F3BAF8DD4156DCC2CE8DF9241B8B49DA3A2E6FDE9AE054AFA9F4985AEB737670EA2B9E56C439FA8940D0C763D7B949C9FAC65156D54931CACE65B7278DD54F6BAEC32ADA7475D70692B9BB2E987FB41427F18772E863D41FCDF045F0585B5CDB820907685147575B15E3249319B74DB778271F4E61E7F13C150AAC670CF4AB07025CC04E9D3FBA1E113EBEA9F1963EE5A74EAE94458D5698C17825CDBB49E90BAFA630E3BFC11498B61FCECF1888C86E1E328DC45BCC20E863B5036B4AE8728A51B5ABB35F871DB4D37F48519AAC34ED8261FF004D04A3946EDED2BA1CA304D88DAAB1970C3B63987FD32A191D86116064693C63210346E3EC3B429063909DAA87A1D23B64A2E51F464276483BD03318BD33B6D90EAFA57374C97DB6DC957D13C1DDCB8761526E250F270DAAA2780E16B1528342F1670611E2165CD0CD14CE8EE6C4661F15D8A7A81B1C50693D1E84EC0075147A3538F62591BD5210B36195209173A2F73D50DE506A21E7207668AAE4FD2F39814E696A5B52C3B9EDD1CDE0BE7FE9154379EF57307C4AA29F1385D2DF9A90863EFB2C4E87BD0D6F508428A1084201084201084201084201084201084201084201084208E57E485EEF75A4F824EC2D6B5ADD9A01D174C3137E4A293F359BE2BE68FC5AA5D8C1A86CAF6B1AFCA1A0E996FB0841BD7B9AC697BCE56B45C93B00496B994788C83D2A39C002CD734801A3E6AF57C976C116F93D770E816F89094D7445D7923244A3A4D88E088518AF27C528153874CF7E4F58071B93D088A4CF1B5C74CC01B2B0CA978D0DC03A169E2A00007380D80DC752B12BA5D36B9F4713B2B7334B83CB78917B8EE3E0B9B2E5EC6C91963B61DE3683C42A8751CCD7343D8ECD1BB50E1BC2BD4EF27D9172762C9D1BE7A27161749CD137CCC6E669E9CBB8A6E71F9228C4786D249354BB41354372319D207B47A94B165FEA1E5646C7545161C083313CFCE6FA35BB8153D2E0B85D646E7D555C839CB59AC21A2C366A97D5514B43413CF512BE5AD9FD699EFDB6F8740DC12B6D6BC3AF741B06724B02B5DAE91DFAA62A76F25F056FE103D721290D248F92C4B8EA99B18FB5C128A64393F83347D8C7DE818360ACD7988EFC7694B659671EA80494320AE93600DFD4E010C32FA3B066FE047DC8F45C25BB218C76054C61D567DA9636F692BD1864BBEA99D80A698B7CD6183644CEE08C9867F28770554616E3B6AFB9ABA1847FF967FA534C58E6F0DFE5B7FA570EA7C31FB5ACEEB2E06123FE28FF004A3E891BAA8F7208DF85614FD7D93C4388519C0A84FD9D5C8CFF00A8A7FA2BFF00CAF05E1C2DE351383D85057FA02DF6388C83AC82B9FA1B1267D957B1FC3302A6387D40D92B0F6AE4D35733D9D7A9C82B3F0DC6848D7F3903F2822DAEBB14662C5A2F6A918F1F95C15DCD88B3EEC9D9AAF0E215B1FB6D7DBA420A4DA8AB8C932E1F20D2DA0BEF5E3B1160D24A599BD6D2AF0C6A41ED347685D7D32C3ED440A61A5BF49D19D0DDBD62CBC7565239A6D20BDB44C8D75149F69003D80AE5D061538FB18C13D164C35AEA5799296279372F6075FAC29925A4C5A1608E1786358D01A1CD3A0164E41BEA3628AF5084201084201084201084201084201084201084201084204BCA69F98C349D9B5D7EA057CCB0D1CFD6431ED32481BE2B7BCB512CD48D862048CA5CEB75FEC564B927466A31863C37D4A7BBDC7703B877AA8D6D710711B0FB90816EB71F92575EEB43A1DA55E9CE7C52B4EE688D83FA6FF14AEA4471C87421A35CA76128555AAD329DE40BAE182E493D1E4B991E6596E7605286968D769D4A23C5EB58E7B8068249D00DABB6B0BDC18C1771D000BDAEAF6E140C14843AB08B4928D447C5A3A507752DA5C3C66AF97EB0EC863D4F69DC978C76A25944386D332273CE506D7777A54E63E490BDE4B9CEDA4ED5A1C128452D29AA78FAD92ED8FA1BBCFC10775D116615344E7191E2325CE3B5CEDA4AC9DC82B67582F4738E31BBC8AC56F4856B70B378DB7E016829EC6CB33853BEA9AB494AED02558B13D307464B7475B4EB4B30CAF7484B1DED0D13B1AB7459E118831B99ADD8E7175BAF5F8A8A7998B97A1B75CC7A85381A208C34D916525822C822D578415290926358C328473317AD3B86C1A9081849511C1F69206DF60275EE50BB1081BED17B41DE632024185E1D8BE31F5EC9C5353BB5E78DC97EBF76DB7AEF65A383037D345638AD6C8EDF98B4B7FA48288239D93EB1C81C06DB15212EE297D4613346E3343387386A05B21EA047CACBAA5AC766E66A8657EC0E22D73C08DC7C115739C7715E199CBB2146420F1CF63BDA8C3BAC050BA0A5936C201E8D1485ABC0354103B0AA77FB0E7B7B6EA9D46193C6D2E8A4CE06B6D8538602159616869BABA9918C33BDD763F6AD97252B5D5187BA195C5D240ECB73B4B4ECF92CDE294AD6D68923F624D7B77A6DC9BFA8C4F2EE96323B4156FD24FB6B50842CB41084201084201084201084201084201084201084205557692B2507EEB437CFE6B88208E9DA5B1461809B9CA00B9E257A4E6ACA83F9C0EE01764EA1067E3766A9AE79FBD50F03A8580F24B2B9AE927D2C00D35296458BCEDA9A80E79113A67B9A776A4A645C5D67BB5240BAACB86B1AC1C5DC77046ABD2BA8E3324AD601AB8D820F64A8FA3E8F9F1FFA896EC87F28DEEF9247617B93727524ED254F8BD509F107E43F551FA918E81FBAA064B2A2FD243E9153142CF6A47068F9AD2CF943C471E91C6031A3A124E4BB43EAE798FE0C448EB3A0F0BA72752A55886A45E9A61C58EF22B0E16F1C2ED2DE20858422DA244AD1E10EFAB0B474A740B2D83BBD50169E94E89561B3092D486B7D5C681DCE0D3E16F827711BB527C61B96B69DFC45BB8FEEA29AC1AB415642A94FEC05686C41EAF0AF57882B57D5368E8E69DDB236DEDC4EE1DEB0F84523F1EC6DE272E7411FAF50E1F7B5D23BF04EF96957E8F431C635CC4BC8E3946C3DA577C85A6307279B2B87D654C8E90BB791B079144F6D535ED680C680D6B4001A05801B800A2A8ADA681DCDCB3B1B21D8DBDCF76D546BC554E052D0B8472C9ABE53F86CDE474F051368A9F0C88C74E3EB6D7748ED5EEE927E48AB9CEC53B4F3720771B1D554A8A664ED21DB773B78486A313A8639D98F381A7EF6D1D47684C308C5D95844321B4FAD81D0B86FED41669257E634F3FDAB05C3BDE0AC15C55C2E7344D1FDAC7EB0E91BC2EDAF1246D91BB1C2E8395E1DABA5C941230A94EAD23A140C36538D8814D4B334373B63907711AA9E85DCD62544F1BDF90F68217150349C740778851E7E6C432FF2DED7788551B742F17AA28421080421080421080421080421080421080421081246EFAFA9FF009AEF35DB8DF4E2A889B2E215719DA252558E72E8336EA2A7A9C1A1B80C9A3058FEB04837ED5090069B86C57716A58A2AA13C45F1C9211CE358EB3643C4B765EC1530AA395EF3A29A19E7DEC6103ACE810553C664C987363D8647DFB00FDD1085D21BDD465C5784AF1AD2F7E56AA35BC9565B09AB977BE56B2FD007EE991547937FFD01DA65FAF3A6FB58595E2B2A07B43AC2C2C82D238702478ADCEFED589AC6E4AB9DA7748E1E2558531C21DB16A690EC592C25D6900E95A9A43B12A43A83D94AF1F16F477707117EC1F24CA9CE8A963CCBD1077B8F69F02A34B148EBC6D3D17571A91C18B51D335B14D386C81A1C5B624816D14E3941870FC727AA3281BAF12AFF006870EFE6487FE995E7FB45870FBD37FA45067FFF00105E444C1C63F378F92D5615188309A28DA346C2CB0EC0B15CB5C429ABA063A171D0068CC0824DFE456DF0D904985D148363A08C8FE908430A58C08DD27DE909BF50D89163337A3E3D4AC26CC9A2319E17BDC79A7D0C81B4CC1C330F158CE57CB2C98C530A66BE4744C2F218092351AF820A95AD2CE76FA0748187B43BE2AAD3D1CD248D921BB268DC1CC70DA08D8ADE2CF755D130D346647553DAF6B5A2E6E01CC2DD6569792F1455587095CDB4CD2592022C41E9082ED0C8DABA48A702D9C6ADF74EF1DEAA359E8F533C1B0039D9D455BA11CCD6D7D28D1AC7B6468E870D7C428715F52B6925D81F9984F979A0E085C95D15E141EB54C0A85AA51B10519DBFC539A763DA4782AAE19A8DC37D95EABD2A627748BAA918FAB7B0EEB8551AFA2939EA2824F7A369F05612DC09F9F07A7E2D05A7B094C94508421008421008421008421008421008421008421063B1A798B1E972E976B49EBB2F5B53EA8B9DA6CA0C65FCE6355246C690DEE011152E6C92497019EB06DEDDA7E4AA38C55F9EA9AD1B1A093DC00F32A9594B532092A5D6208006A35D6E54683CB04971E93EBE28F73197ED253AB12459673197E6C466FCA72F704450255EA188F333CB6D800BF0B903E255168CCE013665A3C289BFDA4A001D0D69F8B82A1DF2764CD875533DD943BC0FC95FDE947259D7F4D8FF0020778FEE9BA955C958FC505B11A8FF0098E3E2B60762C8E283F8FA8FD6E4851861B4DDAB5748762C8D11B4E16AA90DD5487D4C7451E2CDCD86CFD003BC422989D14D5AD2FA39DA37C67C8ACB4AFC950DBD4E833384649EC23E0B47940DC3B965392D25ABDECDCE881EE27E6B5C82320700BC20705D15C94198E5BE10DC4B057C8D6033D3DDCC3B0DADB153E4A5619F93549C62BC47B0E9E042D74CC0F8DCC3BC2C1608D7615CA1AEC19FA4735E7A7F1D0765C75840CA5C45F4B893E99E6CC959CEC67A468E1F14BEAEA9FCECAF61B3E4001236D86EF157B1DC3DF5948D969C7F154CEE722FCC77B7B424F432B2BC35EC1B3D52D3B5A77828879C9C688EA43DE2E4036E826D73E09FB58DA5C5848D168EAC657DBDF1B0F724942D31CC3705A3606491379CB16B2CFB9D2C46F455061BF296BC0D8D86307AF5F825BCB617C3694662DCF52184B4D8DAC7E499E10054BAAB10DD5527A97F71A2CD4A3973286C58643F7A4A82E1D401F9A1E891F87BE33F535952CFF35D707E928FD8C4643FA80299C83555640A98AC2BF1866C9E392DC5A17631FC5A0F5A4A486563753636365E15E11704714468E7905451C33B4583DA1E3A010B81F6EFE0E371DA3F751E1AEE7793F4FBCB5B94F6123E0BA61FAC693BDA3E5F040EB934FBD14B1EF8E570EC3AA72907270E5A9AD8F896B878A7EA558F508420108420108420108420108420108420178BD55EBA4E668A793DD613E0831D1B7D2F119A43AB5EF73CF55F45571C9649232D69B41B80D339E27A15FC3DA5B4AF2DF6DD6683D3FD950633CC3EA8D131DF5F1C61D947BB7B5C9EB562564802D21D113149B9CDD0F76FED4DF0EAB3550B9B20B4D19CAF0367411D0A27D0B9B73BC2AD46D316379774913AE3A8E8AA43C880E7413EC8F58F52C7D53CC9532C87EF389F15AC95D928EA241A656103ACE9F15909B6A83A8058179EC57AA1A59474C0EC707BEDDA1BFF00F2AA1F523685DBEB193C2DCDEA3A368601C75713E2550E392AFB6232B3F99091DC41F827A76ACC726E760C6E9C03EDE667782B50FD1C7AD4AB1CBB62CAE2ADB6213F4BAFE016A8ACD62EDFE3E63FA7FF00D424297C06D30EC5A9A371B0E2B2CDD1C085A5A17FAAD3D0AA43FA53A057EC1CDCA77E896D2B8E8990D9D4B2D11727CF378AC03897B0F703FF00F2B6BB962A9488B1A2365A7D3C47C56D46C41C15C95D15C941C9592E596172CED82BA8465ADA670744E1A171BDF2F49D2E3B46F5AD2A0A88593C2E8A41763C58F1EB1D281261988418BD0C7594F601FA48CDF1BF7B7E23A155ADC024350710C2DEC86A9DF691BFECE5F91E94ADD055E0BCA0BD306BA5A836920710C8EADBEF30EC0FE238EA34365B3A4999511666B64611A3992348730F023E2345066462159010DA9C1AADB20FE58CC0F5157A9C6278BDA29A07D061FF0088D71FAC9070E80B400291AD54C751B1B1C6D6306563406868D806E581E53D50C479674B4711CCDA261CE77071DBE0B598CE2F161D0BDA1CDE7C30BC8D3EADBEF1F80DE561793703E77D4E293021D50F39336A6D7DE5038935BAA922B6F55644159DB5797D10F5C82AA1CF279F9B0E9E1F725769D040215803461E176F88F9AA1C9D92D555717BC1AF1E20A60ED2E383C791F920B9833F2632E6FF0032236EB042D2ACB50BB263348EF7AEDF02B529563D4210A010842010842010842010842010842012BE504BCDE172377C843077EBE49A2CDF2B1F6146CDF9CB8F75BE2822C398D6C5003BCE73D42E7E0931CB3F2C2ED21C1D441C4B4DC125D7DBD4004FE8C7ACCFC91123AF455A1A483D3CCCD85826D85C3436E9E28886BE16B63246D597A7B3F9412B87B3144469C490B5F8A7B2B23830CF2D74E47B720603D006BE2552AEE24ECB8696EF91FB7A00FDD65ED9A6B705A4C65F682267BADB9EB3FB2CEC5ED39CAA090A89E4B240584B5C058D8EF52ED712750DD4A8092492769D4A065823E4FA5A9257CA723666B6C40F5893B2FD5AAD84E2D2BBA0AC3738EA7ADA58AFF61235CEB7BF719BE03B16F6A80E7DFD654AA81DB120C55B7AC94F437C93F3B126C45B7A997F4B75EC4852620DC27786BAF134A50F6DADD698E16EFAA03868AA34B487409A3756F5A4F4676714DE1D5AA291557D562CF770735FE2D2B6CC37683C403E0B1B8AB00C41A4FDF8FE07E4B5F46ECF4D19E2D0A2BB72E4A90851941C15195215C140BF14C3A9F13A474154DCCD3A870D0B0F10771594999CA3C0BD5A773312A51B335F3B470E3E6B6EE50B8022C751C141843CB0C723240C3676BF735D1123C94C71FE52D5C25D50F8308A723596566575BF28DA4F505A79A8A175EDCE32FB4472B9A3B81B2A6309A1649CE7301F27BCF25C7C55319A8E864C59BCCB79E8F0FCFCE4B2CDF6D52EE24F0E0360EB4FC46C8A26C5134323600D6B46C015C78D2CABBD0577AA722B8F55244151EA2BEAA6915626C554ABD8349931A68DD2465A7B354F26FB49474070EF0B3143264C5695FBB3E53DA085A89EFCEF4B9A478211C97F373D24BEE4ADBF55D6C162AAB5A22E1B5A4382D9C6ECF1B5DEF0050768421450842100842100842100842100842100B21CA7933E271C7B981A3B4927E0B5EB0F8C49CEE372F43EDFD2DB79940CA80973A137F698587BBE61754A3EB5E7A6CB9C35B9799E805DE054949B09E24A229E3EEE6E8E57DFD96937599E4FC6E185C44ED91EE78ED3A79273CB09F9AC227B6D7D9A156A18841040C6EC8E36F80D550AF1E90191F6D97B0EA49A3168AFC55EC5A4BBACA9DAD10EA55946FD22FD67C17548D687195E2EC8C1791C6DB077D82E6A349033DC0076EFF353CF6830BC83DB99E01FD2D173E25BDC8A5A5CEB9793775F313D2BE9123B38649EFB03BC02F9BB45C81C57D0E9CE6C3689C75BC2DF2FD945052CAC6DE679FCADF24CCAA550DCD24A6D7D1BF1502691B63DBB14F861B1737815ECEC2013B9714472D4BDBD45691A3A476C4E203A24948762734E74514BF196DAA69DDB88B788F9AD0E0AFCF85C04EDCB6291636DBD344FF75E7CBF64DB93AFBD139BEE48E03AAF7F8A8A6C546E046CDAA42B8720A8E3537D238FFA8AE1C6ABF971F7956CAE4A0A0E7D50FC161EA7281D3548FF0076BF539317285C8A5AFA99C6DA47F610ABBEB241B69264D5CABBD02A7D791B69A61D8AB3F116EF8661D89AC8A9C8110B5F8947BE29876281D884076891BD6D2AECA1529151C3A66385C1D1547BB5523D5771559AEC38B6489E36B1ED778AD949F690BB75C02B12E3789DD02EB641FCE51C328FBCD6BBC14AB1E3997A47B0ED02CB4F85C9CEE194CFE318F259D1EB73A3893FDF8A71C9C7E6C218DF71CE6F89F9A06C842145084210084210084210084210084210784802E7605802EE76B0BF6B9F99FDE74F25B7AE9043435121FBAC27C162685A4D5EBBB2B47893E681F4432472BB7323CA3B7FF845369183D0BC71B51CA7DF786F705EC7EAC57E84465B95AE3513515283F6B28B8E8B8F82B2E764825771161DA7E4A8628EF48E53D3306C8185E7AEC7E6AD55B8328C8DEF75EFD007EEAC466AB9D9EA6DD2BDC99A56B7A428FED2B3A8DD4F7B39EFF75848EBB5BE2A8A801966B9FBEEBF8A9B1821B253C0DFC38838F5B897791014703497656ED3A0EBDCB8C4DD9B11A8B6C6BCB4750D07928B10C0DBC83A16EB0D767C1290FBA0B3C4AC45334EA42D7F27DCF760995F6CD1CCE1A6CB58590F6B8557736EE9BA9BF1560AE18D04CC4EDB37C8A815CEDDA372A717AB5963BDA9A4ECD494B5E3255C478DC2B129E529D89CD31D02474A762754AED12AC18B36F87BBA0B4F8FEEA7E4BCB9A3999C0877805CD7333E1F30DE1B7F1FD957E4BBF2D5BD9EFC60F6871F9A8AD5151B948B9720897254555594D4603AA678E20ED998D89EA0AA1C6F0C3FEFD0F795172AD951B95538C61C765643DE570EC5B0F3B2B21EF4133940F51BB12A13B2AE1FEA51BF10A23FEF50FF0050547922A72291F5B48765543FEA055A4ABA63B2A61FF5022209951915992A203B268CFF00982AB24B19D92B0FF982A5567AAEF561E41BD883D45567AACD0DD411C42D5614F32E0701DE1801ECD3E0B24C3AAD37275D7C1CB77B1EE691DBFBA9486517B5FA9A0F87EC9A7269D6A7A98FDC989EF012A84DF271B11E3FBA61C9F765AFAD8F886BC78A2B408421450842100842100842100842100842102AE5149CDE1128DEF219E2B37858CD52F76E04DBCBE09DF2A64CB4B4ECF7A4CC7B07EE966194EF8E95AE769248059BC09D9DBAA0BB50EB5340CDEEBBCF7AEDF76C03A5435243AB446DD9180D52D6BF9B8493F7017782231F4C79FC77109F736CC1DFAF929B1776489ADE0DBF8950604D2E82698ED9A527B3FBBAE31C92F33C0D80E51D405BE0AC4A5746DCD2BDDC02EA4079A94F50F1FD94B42DB533DDEF15C4C3EA1C7F3B47815471436F4FA7076191B7EAB84B5EECF239FBDE4B8F7ABF4C72D6C3D64F814B5BB07528B17A8DB78C9E95A8E4FF00FE8AA5A773DA7C0FC967285B786FD2568B93E6DE96CE2D6B877FEE9E93DAF14402EE9BA9BE457A5754C3D69BA9BE4545549D9B46FE09456372CB0BB8393F95835093624DB441DEEB8156157695DB13BA43A048690E80A754A6F64A43270CF03DA7EF348F0294F27DF97118B890E6F803F04E63D400567E809A7C561FC93069F10A2B73B972E5E8D8BC720C6F2D30E6D65652C8FAB8E00232D0D7826FAED161D2B2F4D8319ABF9864EC7581707D880401B755B7E548CACA59AF6CA5EDBF65C788091D37D6E310CB13B46B7292370B902FD965CDDB72BBFA24BC36A08F935296DDB5309E16D525A9C3DE272C1230DB78BAD31C51E268616011BD8E0D31B6FDA6FBF4D0049DD1F3753334FDC796EBD6BC65E53CD7B7474F9DE45E682468D1CCF15E7A04DC5BDE985EE548D4FD963A2F4712F6D0545B4B77AF7E8EA8F741ED0B414B187C5132388485EE2D9086DDCC171A8E02C54D24058C7364879B0C6660ECA4126C342ED877E89F972CD8E7BC386E32AFA091B6CD08D741B1435146C634974719EA0B45259D191DA3AD2F91CC7C52B6F7CF721B97506FC56BAFB2F29E58ECE99C6F864E52EA5AA0F84E5DE2CB459839A1C36380290E26CCB93A096A6F46ECD4101FCA02EDE37C3E6F64CAEC6D5A0E4C3FEA6AA2E0F0EB758FD967F7A71C9A75B10A869D8E60778FEEB5599F67D1E8474388F0FD95DC20E4C71C3DF84F98550699FF005023C7E6A7A677378D51BFDFBB7C0A8AD4A178BD5142108402108402108402108402108419AE508E7F14A580FB21A5C476EBE01491B6C5D3BB632ED60E07795055BF9DE50CC7746C0D1DC2FE6A5A97E4A2633EF381711D65056A5F5E773CEBA955F1FA9E6B0EA87DF5C84056E958590E73BD67394D239F4AD89A759640C551260D106515283A0C81C7CCA4989BF338F49BAD19023A59B2E818CCA3AB62CBD59CF3068DE6CAC4ABB033251306F22E557905E99DFAC7914C276E4883780B2A445E99DD0F6F9144516695B0749B7814BDBB0752BD504B2689E36B5CD37ED54DC2CE23812146A1A61B774047BA53FC1465AC737DF8C83E07E0B3F839079D6EFD085A2C245B108BA730F02AFA4F6BCEDAA5A31774DFE5F22A378B12158A017337F97C8ACB4E276E87C926C519FC2BFA355A091BDC9557464D2CC3A0A42A8D13AF1B6DC13CA476C59FC39D789BD09E521D8AD661CC3B02475368B15989D2CF0F1D1A829DC074497176FF00E60E1EFB34EBB7ECA34DA466EC0788057A541432739470BFDE603E0A72812729E49A2C1DF2C0F7C6E63C1BB4D8DAF6F8AC48AEAB73F9D75448E91A32824EB6E0B7B8FC664C12ADA353933771586A6A1E7E26B9D711B8E5CDB815CBDFCA71FB7D3F8778FE1E7FAE062758E93373DEBDEF9B28BDF8DECA39247BDC5CF399EE25C5DC4EF5186E4738137CA48B8DFAA9A9A9E4A891CD89B99CD69711D037AF3B75F4271E3C7CC72D53B429E9B0EA99A8DD551C59A265EE6E2FD3D6B8A685F3CCD8E26E67B8D805E7CA566F3E3FDFA7AD25BB091D46CBA2F71162E247024953B70FAB35469445F5AD198B6E2D6E2ABC8C74723A39016BD86C5A7682B36729F6F3978DBE2BC2E4B03F9B909B0241D2FBB557C94BE421B33BAD6BAFC54EDE3B08B13398385AD95D757309766C3DA3DD2478FEEAAE22DF59FD5752608EBC13338381F0FD97D1EBBB1F23BF8E725E298E02FCB8B347F323737C8FC12E2ACE1AF2CC5295C37BF2F782B75CF3EDB078B17F55FB8844AEC9514727B9337CD496CD201EF348F055EA89F436BF7B4B5CA469B35EAE1AE0E6870D8402176A28421080421080421080421080421435327354D2C9B32B0BBB820CB533B9CABAD9B7B9E7CCA59CA232CB8AC58753C858F92A237666ED6B5AC1B3BD31C28FF0D313B6E09F057BD0227E36EAE22F206641D1A9D7B912BAA98F98A40DBDC8005F8F4AC862979F18A087735C5E7A86BF05B5AE6E68EC162D9F5BCA3A876D1045901E9247EEA956EB9F930F3AEAF7016E800FC6CB3B4EDE771189BBB35CF52778CBB2C50B37D9CE3DFF00B25983333D7B9E7631A4AA9ED72B4EA94CF5618D7451B7339CE682E26C1BD17E29AD66AED766FEA5E9A58A08DB186873B2B4927712039D6E9B9B75040827E71ED37109205C6590DFB34556D21B97457EDB2D408984DB285D3618F6651DC986B3B4950FA594BDB0DC91620B82718662F23B12A56BE9831AE9402ECD7B6AAE8823FE5852B606348708C6669B8EF40CE71695C3A54F870D66EA6FC571563EB9DD3AA930DF6A4EA6F9B965A4B20EF546A1978DE388299B80D5547B06A833141A02383884F290D884969865AA99BC1E539A53A85AACC3AA7D897E3432D5D3C9BADAF7FEEAF539D02A98F37EA217F0711E1FB2CB477823AF86C2D3B580B55F294F27DE5D4AF1C1C9B1415AAA312D34D19D8F616F82F9D8A9A8A7718293649A16DAFAF10BE94772F9BE77415F34308CB9242D2EDE755CDF238CB36BBBE1DF163C9E8EA69E90668486EF36DE98F262A1D0CEEA67C20B6A3D5E737B743A752734639DA2CB37AC08DEA918C525446E60B35AF045BAD73CE7F8E57BDEFF00D92F0AB3804721A464664310A798E61B43C11B3BD2E8E68F0F9192080F3F14AFCD7D039A469AF14C60303E7AAA7330631D28923783A5C150563E99D51552119DDCE35CCDE1C2FA85E9CB97F8CB1E52EF2BBED7889582290C99E57D23ED28DE6E08EDD523C5FEB24A6A9DF510871EBD8535967A3A08A98C5336489F39706DC1CAC70208B70174B71F10C315153C330979B61F581074BE8B5CE6F16BE3FF00BC2871542A7494F4856C9556AB6B4F42F2E13CBE8764F0535EDBBBAC2870475A599BC5A0F8FEEADD636F94A5F859C988E5E20B7FBEE5DBD57C3E2FC99E4E4AEE07F3753049EE48D3E2B972E1E6D192368D57AB91BFBD8B0F03F150CADCD452B4EEB85D46FE7299AF1F7807782E9CDB8A86F1248EEBFC546DA3C364E730EA67F18DBE4ADA5980BF360F4FF94169EC253350084210084210084210084210097E37273784D41E2DCA3B53049394D25A8A38FF009920409B067B5D254C27EF5ADD82C7C530A7AB6190B1EE0D9D9A3DA4D89E04742434123A3A989ECD733BBC13FBA65594D4F573DA78592F36DB82E1A8B9DC7B154758B635152C458CFAEA97E91C2CD493D5C12AC3A8DD4901E78874F2B8BE470E3B8762B91D253D29269E18E32EDAE68D48EBDABD033380E26C810E3925EA5C07DC01A3BBE68C023FA9A894EF21AAA62B2892A6578D8E7123AAFA26B84C7CDE121C76BCB8AA8AF346EA89DB0B76C8E0CEF207C5589FD695CF1F88E73FB331B78594704823AF8A43F8799FFD2D73BCC05216916076B5AD61EC00208C36D6D34E295D75539F218E336630EA7894E763741736D025D53495068E9E26465C45DCFB5B43FD92BD7AF376BC3B672B3218D249E914CC7EF3B7AF7AB01A7A82E286131D1C51916781A8DF7DEACD808C9E1AF82F3E59BE1E9C373CAD551BE476E2D69F052E1BED4BD2079B9406E68E98BB526317EB53E1BED3FF0048F32B0F55A7280B4665688E3B54763CE71419095BCDE2B3B4F1BA674A6F654B1767378DB87BCD0559A576A0AD7A67D9FD29D028F19666C3EFEEB81F3F9A294E814F5C3361D38FCB7F10B2D39E4E3FD570F79A1DF0F827E762CBF2764B54B587DD23C7F75A83B1046B11574A5B8FD5B40D1D2661DBAADB959EC4581B8D977BCC0EF0FD9737CAB9D7AE8F8FCBF1E57FF166319620D6EE0AAD5805AA78658C389905DAC69765BDB31E0A41140D32195A5D1B8B434EF68702B878F0BD9C659566F1E5B488801727626EDA38452989EDFE21EE786BFA5AA949034608FAAB7AE24B037DDB3CD5FD3CA3AB8F64A4153A487AD4171BBB537C1685989D5C8252323184E5B905D71A7729B0AA0A39B0BE6EA19FC4CF2BA263F7B5C05C792E9E1C2D8E99DFC784CA43750D4FB20F0298617466B7128E99C436E4E6BF01B475ABF2505243518A89A3CCCA6CAE634DCD813B55E3C6FDB7D9DBC78CB192AAB186FC0A534EEE6F138CFE71E3FF00CA7F8AC02074B137D96904756E59C94F3752D7F021DE2BDFAFC5C7CBF91966C685CB876AD23A176EE2B95EEE16CB0A767C2A9CFF00863CBF65747DA3BA5A3CBF64AF93AFCD85423DD0E6F89F9A66DFB569E2D23C7F751A31E4C3AF87C91EF64AE1E47E29D243C9A3696BD9C1ED77783F24F94AB1EA108402108402108402108402CC72B25B3A160DAD639F6E9FEC2D3AC672924CD894A37343583C2E82961CCBD5C2DDCCD7B826A47D64AE3BC81E03E6A8E14D267711B9B6F10ADB1D78CBFDF739C3AAE6DE0AA237ED5138E58DEFF7584F8295CAA57BF2504C7DEB3477EBE010652ACDCD96A79BF47C36067E4175970C32D64518FBCE03C56B71036F546C02CAA4209EA19055B79EB88E4639B7E172DBDFB2E994F3D389DF79E3D493A385B6A5F57132A23E6DDA106ED70DAD297FD1EF1F8ACFF4C207ED9E9CFE347DE14CC9A03AF3D1DFF5059D14125FED63FF004D7430F97F991FFA6834ED92136B4CCFEA0A2AFA9820A295EE959A8B5C107559F187CBEF43DB19F9AB54742E64CC92474272904011DC77281FC1273B8731FB087BBD5D85A2F700F4D8856F0DFB477E91E6555A707D0E5BEA79CCD7DB7B8DB756B0C3F5CF1F9479951578DD716B3B8A98851DBD645663946DCB8AC2FF0079ABCA53B159E5630896964EB0554A53B15F4CFB3EA5D8AEBDB9E9A566DCCD23C12EA53B13488ECBF6A8D11E0B264AC88EE0FB1EA23F65B3DCB0B013056BDBEE3DB7EFB2DC34DDB7E28392B3BCA29053D752CA746B9A5A4F6FEEB46566396ED230FA7987DC90B4F68FD9797770FCB863D7A3FE9257910E76411DF57100157E6707BEA6360F558C01A3F49FDCACC61B8818F9BCEEF5D8459D6B8ED5A07D6CAF2C94399EADC82D1E7D0BE77549D72CAECEDEBB2AC4DEBD4B0B46B1CEC711D0E0079A8CD236AA86A2999331A0891994ED0ECE4DFC1289B1E7D3563E70F8CB9E2C5A765B72491E2D247883EADA18E7BF3021DB0E61C175F1E72F94E3D1CEFD190C4291D53869A6A7E6268646895C0001DB01EB57606B98EAB6335752E20D940E826CB26D7E520B4EAD3709AD3E3B3C38A495C1B1E69459ECD407683E4B52FF005D3CFA6E6715AC4E6A385957482022B1950E7325006CBDF6EDD85307B43F15965DBE91459C347DE3976782CE4D2495158FA89D995D212FB6E5786213324A473400FA76E569F785F61F259FCE69CBA6FE33295E2C0485B301612C61D63B8F0593AC1EB8ED5A9AFAA7554999C037282D0D0B2F57A9BF0365EBC2F9F0E2EDE3670CA7913B3C113B8B5A7C11BD4542ECD4309E02DE2A52BA1C0D1F25DF7A37B3DD95DE413C69F60F02E1E03E4B39C99701E92DDE1ED3E07E4B41B81E0F1E4546A7D2EE02ECB8B55C7EF303BC7F75A1598C35D93944D1FCC888F23F05A752AC7A842100842100842100842100B018AC9CEE233386C3213DC2C3CD6EE57E485EEF75A4F82F9E3DC5D2F65CF5927E4819E1832D34F26FBF902A50D0C89AD1F75A07828E06E5C2C377C86DDE40F252C9728889DBD2EC65E051B1BBDCE27B87EE989BEE49B1E92F2C51FB8CF124FECAC4AA18347CF637003B1A4B8F727B891BC8EB9D12CE4B479AB6798EC8D855AC5E50CD09B179CA0F0E954F4573D41126485B9E4BEA4E81BF35C35B54E1732C63A036EB9A72E738B5ED0C919EA39AD16171A6CF1575A2C82B886AB74D1F6C657420ACDD343FE9956868AA31D24F890905C41192CE826DE775352DC48D82BAFF006D07F4953365929E46C756D0C2FF0065E356BFA8F1E83AA9E1731ED6BD9A822E15E0C64B0BA195A1F1BF6B5DB3F628A9287586668D4583958C34DAAC8E319F31F35530EA1F449A631CC5D03E3D18FD5CC371B0EF1D6ACD09B57B7A58E1E2D45372B93B576B9B6A14524E56309A081FEEBEC94D29D02D0729A3CD8293EEB8159BA53A057D337ECF695C9A40EBD926A576C4DA9CEC4526AA197149DBEF66B775C2D8523F9CA589FEF341593C5464C558F3B1C1A7E1F05A3C1DE5F87457DA2ED51574AAF574D0D653BE0A88C4913C59CD3E7D6A72BC284211C97A160B3649C346C1987C9153C9DA3A8686BE4A90D6EC6B640079278544E58FD7C7F8F5FDBCFF00ACE1E4961A37D4FF00A83E4A37725F0F1B0CFF00EA0F92D1B940F57F18BFBBB3FACFBB939423619BFA828BE85A589D99A64B8D9720A7AF54E44FC21FBBB3FA512E1F1137CCFD34DAAABE918DD8E7F7A6D32A3327EBE3FC4FDDD9FD299689849399FAF485426C2607ED7C9B6FB427322AAF5A9C64FA79F2ECE57C5AA8D8C44C6B182CD68B00B92A57288AD3CCD3938FB564EDF798D3E23E6B5047D5BFA0075BB42C8604E2DC55A3DE8DC3FBEE5B01AB5DD2C3E4A56A7D3D84E4C7689DC496F815AC58E95E195B412EE12B6FD570B62948F508428A108420108420108420A38C4BCD61750EBD896E51DAB0B6224793C40F00B5DCA57DB0F633DF900593A706591BFE23AFDE5214E0B408E9E3D996C6DD40FC4AF1C576F39AABA18C247691F2519447076ACE63920756CA06C6FA9DC2DF05A568BB9BB163ABA42F99EEBFB449F156253CE4B47968AA65F7DC1A0F625F8D499AB5910FBA2E7AD3CC1A3E6302877192EE59DA877A462F2DB6036087A733B4453C136C6CA323FF00501A78792BA174FA615148FA7B8617D8B1CED8D78D84F915569E7733EA6A5A62999A10EDFD4551681CBAF054E91CC9280D8E6707E7701A9DB7D3B95C6BD8740E1AF4851D1530A56BC35D9B39BF0B0DC14AC596D5AA761642D6BB68D4F5DF5F356E376CD8AB03A29038752370C299F794378823A362F6934C421EB737FED3F255A09C472B0DC7ACF6B00EB3AF85D598C5AB61E893E047C514E579BD7BB90A2AB6351F3982CE380BAC6D29F542DD55339CC3EA196DAC3E4B054C6C3A8AB129CD2BB626F4EED89253BB54E29CE81056C7859D4EFE823C7F74E3017DE9A56707DC751D7E295E38DCD4713FDD711E1FB2B7C9E92E5EDE2C047F7D8A29E15E15E95E141C951B948546E4113940F53B942F45567AA922B6F5524414E654A657A65466445391547AB722A8F552ABBD44E52BD44E55959C29D9715A7FCC4B7BC15B382C7283BF4585A57F375B4EFF0076469F15B880900741D14ABC55EB896D1C2FDEC2D3E3FB2DBB4870046C22EB178936F45281F75CEF32B5D44ECF454EFF007A369F008AB084214508421008421008421066B9552D9D0C7B98C73CFF007D89250B7F89887BBAF7057F94D266C45CCDB60D678DD55C35B795EEE0DB78A0BAD75E49780B37C2FF0015C9E94437E68B8FDF739DE3A780411C77AA88667E482693DD6123AEDA79AC74F72EB0EA5ABC51C1B874C7DE21BE3FB2CCD2C667AF8231AE6900F156256C8B453E1D047B39B8C77DB5595C2A33515B2BF6DC937ED5A8C724E6E9263B9AD20251C9A8D8CA6A9A99748E369713D0A2BBA8192FB95491CC9406CAD1206ECCC2F6EA2A0A39FE96AC9A699B789A6CC8CEC03A7894C7E8FA577E033FCB70AA178A6A5FE501D4485E8A3A73B39C6FE990ABDF44D31F679E6FE994A3E8965FD5A9A91C3D607E0862A0A4601EACF52DEA92EBA14927DDAFAA03A434FC15B18511B2AE6ED6B4AE64A09D8E85ACABB99240CF5A21C36ED41E535398E66C934F24EE61B8CD6007604E0B836B5AEDDCE37CC2A9F43556C1591F6C47E6A6A9BB6C4EA5A1AE27A458FC14AA7DE6BC5D10BC2A2A568CD13DBC411E0BE76D1966959C1C42FA342BE7F58CE6F14A967E72AC4AB74E537A675C0492029BD2B908B5898CD85BB834B4F8FEEA1E4EBED333A416156676F3987CECFC848FEFB12CC1A4CB52D3C1E1456C5785745725072546E5215194113940F53B942F45567AAD22B2F55A4414A654A6576654A6445391557AB522AAF552AABD46E533D42E55944496D9C36B482B794EEBB7B560DFEC15B6A17E7858EF798D3E014ABC53D58BD35403C6FE01687027F3982D23BF201DDA7C121A8178E5E9634F9FC935E4B3F360AC6FB8F737C6FF0014F4BECE908428A10842010842010851C8F0C8DCF3B1A0BBC1061F15979CC42677BD21B1E81A7C54941EA4334A7603E42EA8C8E2F9CB8F0BF6926FE49840DFFCBB2ECE709BF690111619710B01DA1A2FD765C952BF6A8950AF1E932D24318FBCE2E23A869E696F2762E771B874B865DE7B958E513BEBA28FDD65CF692A5E48C77ADA8977323B5FA4957D27B5BE52C99689C2FAB881E297CFFC3723DD6D0CF2069E900127C6CA7E54BEFCCC436B9D755794679AC26829C6E8DCF3D64803C942A0E4E32D4CE7ECB9DAA6C5A37FD4C826786991AC0C06C3A4F4AF703665A01D7752E21EB4F4118D6F3663D810331E6B8A61796691DF681DCDDBDD6EEF3BFF00F0A391D3191B1C058D7105C5CF04802E377595C73B33ECF8446CFAA1248E7026FB6C0771D514C46A6FB1456CF88D234EC697BCF736DE6BB6383A36BB5198020762E6000E270DFDC71F1FD9036012BAACEF8EEF6E47B9AE05BB6C754D42593CCCA825F11B86BCB6FD3A6C40EA339A163B8B41F05EEA54744E0FA281DC58DF252A8A960B5D6231F8F9BC76A3F358F82DB43B564F956CCB8D077BEC05589546029A529D894C299D29D5121D53FACDCBC742B3F424B2770E1F34FA94D9222DE6F159A31EF103BD469B763B346D77100A0A830E7E7A085DF97553941C951B9485465046E503D4EE503D155DEAAC8AD3D55910539153995C915399114A4555EADC8AA3D54AAEF50394EF503956513B62D7E0CFCD454C6FB6303BAE3E0B2056A793CECD4100E199BE27E6A55E276F1716E2C23C7F756F922EFE02A23F7263E415577B4CE9CCD3DC3E4BBE493AD3D7C5C1CD70F14F4BEDA74210A2842108042108054718939BC2EA1C3696E51DA6DF157927E52499681B1EF91E020C813791DC010D1DC3E29AB1B68A9A3E2413DC4F9A52C1702DF7893DE5392073EDFC8D36EF03E0AA3D72E5744DD0C179003BCEA832F8D499F1197F2D9A3B004EB927165A0A897DF78683D1659CAE939DAB9A4F7DEE778AD6E00CE6F028776725C7BD5A93EC9B1A3CEE2F04635CA3E2A1E56B6F52D8D82E58191F70B9F356236FA5729EDB838352FC52AA6A8C6AADACA67CA04AEC9908BDAFC3B104F4152CA7A56C6FBDC6F0AC99E92496291DED4772D26FA1DE9339D237ED292A99D7112A3F4A84684BDBFAA3210F2D04AEA4A9004925B2EC2D7106DBC752F1949425C0995EEB0B59D29B5B70B70E848C54D3FF00380EBB85D0A8A771D278FF00A8261AD573F15AE2461ED08A47B1D8B385C7A910F33F3598CEC3AF3ACEBB85DC4E6817CC066F58EA3FBD9A261ADA54B3D229A589B288DCF160E1AD92F6D1BA869B9B3373A2F981B5B2F42CF893FC41FD498618F0FE799983AED076DF7FEEA61AD3E146F87C407DD2E6F738AB897E0D7F4695BC242476807E29859469D47B5677968CB4F4920FBC1CD5A28F6A4FCB48EF434B27BAFB77848959988A634AED425919D42614E750AA43BA6295E2639BC5F37BC1AEF0FD930A676C5471D6DAAA093DE6DBC7F751A6870770348E68D8D71B2BE527C05FF6ACE20387C7C93828392A32A42A37208DCA07A9DDB140FD88AAEF5564569EAAC9A0414E45526572454E6DB6445291557AB726F2AA3D589559EA072B0EE0ABBC80093A01B4AA88CAD1F271DFC18FCB291E0166EE08046A0EC29F7275DF51337DD91A7C0FC9293EDA776C69E0F1E4571C9C764C7AAA3F7E3BF711F35D93F557E969F10A2C2CE4E54307BEC70F0BFC145AD7A1085142108402108402CCF2B26CA6267BAC73FB569963F9459AA714744DD7286B0746B7281652B2F2C4CDC08EE4CA339A599DB6C1AC1E24F9AE440CA78890333F6171F8229EDCDB88FBCE71278EB6F82A890ED5CC9218E1964F718E3E0575D2AB624FC986D43B880D1DA47C1064DFB485BCA760830BA766CCB1B7C96163619276306D7B80F15BBC4DFCD51CBBB23081DCAD4845C9EB3F179EA1DB184BC9E8174830E91D2E30E77124A79845E2C1710986D319603D24DBE291E020BB117BB70BA0D436F61F05D35CD76601C1D94E53637B1E9556A677B32C30FDBCBA378346F71E850E042D46F37B932BBD63BF67C945302D8C02E7B59940B925A08B2052D34AD0E3040E0ED41E6C6C44B1F38DE6EF66BBDAE91BC29C7469D48285561D4220949A4833653621A058DB43DEADD3E05861822CF43039C5A0924742E6A9D6A59785801DA427118CAD6B7800077205E393F849FF00DBA1EE28761343471BA5A5A58E293D92E6DF670558369EBB159F9E9DED735C191B01B070035F15348FAD354F1273C21D6CD0DF52D7D0DF7F4DD05BC15F7150CDED2D3E07E49AD926C19D6AE959EFC77ED07FFF0049D283D668551E55C79F017B86B95C1CAF336AE7198F9DC0EA99BF9B2515F3F8772BF01D425B4E6E02BF01D8AB2714CED8A3C747D440FE0E23C3F65D529D8BAC5D99F0D71F71CD778DBE28A970296D3443DE691FDF7AD01BDB4DBB964F06932BA270FBAE0B5AA293E0F1554334CD98BDD1381273DFD57DF60ECD55AC4B9C34137324892DA11B7A6DD8AE13A28CA817616246D296492195AD2324875CC08048EC3A2CFF002E26A9829A99D012D8F31CC46CBEEBAD6B8E8AB5444C9E32C95A1EC3B5AE170A857854F254E174F34C0891CDD6E2C4D8900F82CA63D555B4FCA8639B9F9B194C6D009045B51F35B87000586800B003600AA4F1B1CE6C85A0BD86ED7100969E2137C967855A90E0256B3DA1703AF72C6F26DF53E9B5515467232173B303A381FDD6CDFA2A7200DCD9406E7B6620005DC2E521610F28DB2BF0EB45736702E036DAC57B471B9B83D1BE5B891ED75C1DB6BE87B931905C10AAC97D01D80580DC0742B12A0A38298D6CD2D467CF90E43F76D63707A6F96CAACCD0F696BB61DAACB940E551ED53A173601037206B2C5BB9A6E74077E9BD5FE4FBAD254B7A1AEF13F34A2E0DEC6F6D0A69809B554E38C57F109527DB580DE99DFA546C7737CA0A193DE706F7821494F6743978B48F0556A9D967A19BDD7B0DFB4291AADCA108514210840210841E2C7D4C8DF4BABA976C2F20750365AD99FCDC2F7FBAD27C1622A2FE8CC6EF76A7FBEB289544C7558B56C74F1CDCD1793771D431A06A40DE7874A4D4989D65156CE207495743138E62FD5CD6DF6E8B4B4B30A386AA60CCF23A2746C68206AE2D17B9D837928FFC3FA285D8754D5C858F1212C70DB61BD699F78B74F3B2A606CD19BB4EEDE0F4AA18F3CB6818CF7DFAF603F35479373911C4CBFD5C8D361D57B782B1CA27FAB4D1F439E7BC0F829ED77C17E0D173F8BD333767CC7B169B943265C3E5E2EB049392F1E6C583F746C714C794EEFA98A307DA7ABEC9F4A72BBD1B92846F9A40DEC0093E412BE4E305E690F52658F46E660F451377B5CE037DC91AF704B70E94D14395A01276DD0F6633D13CCD2D432AA48C96EC681B00D8BCC1A27B70DCC1E4BA404869D8D3ADACB81899DF18520C559BE3F14351D397BE3863863918F12B4BE490137394DEE3AF456F0C6C824BC81E0889A35B8D49713E6A318BC7BD87A57631783DD78EE50D59AC05C21887E24AD16E8D4FC13B739AD0E7BB46B4124F00B3071381D3D3BBD7B46FCE74D6D6B7C534FA728C8D73EBBB2A2EB8C4A4A7A9F4614E58F9DD2020B2D7B74A74FF00598E1C41091C3896194F2192184B1EEDA435596E39487F99DC86BCC334C49BD21CDF0FD93EB2CD534806214F2B7D973C771D3E2B4CA019ED2B133049472C67EF308F055DBB55C8B5622BE5B08CA4B7DD242BF0AAF55198B11A98F66591C3C54F0AAC9AD31572A5BCE61F3B7F213FDF72A14C7626718CD1967BC0B7C114930B7D81B6ED56CD8EBC6D3C40588C32ED9F21E394AD8D138BA8E2BED02C54585D2C958CC6C16B8BA12E6339AB685A76BBB36A68E525D465409A867AB755915243A394BF2B40D632DB6DE8B15EE3555251E13535108BC91B6E3AEFB533B35A5C5AD01CFB5DC06A785CA826635F1B98F176B85883BC2A333C99C4E6C46927F4839A489CDF5B8837DBDCA0E5762351414901A6394C8F20B86E16D89F53D1D3D0C061A68846C2ECC6DB49FECAAF5D4B0D64062A88C3E33AD8A7B3CE2850D43AAF0DA6A877B5236E6DB2E0907C9676BF13A96729DB4F72200E6B32EE7036D7C56B24B656B1AD0D646D0C6B5BA001509218C55C555CD83347ECB8FC78A1E956B83E28EA1ACD6460701D7AA458019E6A7AB3297B9B16521CEB9D49B593F90924926E4EA4AA840635CC60CAD79CC40DE78956255296164B3C3CECAF8E204DCB6F7BDB4F152D746C8EAE664641635C40235087ED50B95478C14F1D13D823B4EE7B5D9B6E61ADCF46D0159C0DD6C408F7A370F0FD95036BDB7AB7841B6290F4DDBE05127DB63466E00556BFFF0044C78DAC2A5A27597954DCD452B7DD711E2548D56D237F39131E3639A1DE0A454B08939DC2691FC6268F05754508421008421051C5E4E6B0AA977E42DEFD3E2B27507D9EA5A1E52BED86860DAF900F8FC165EA65FAB89E36385AFD2AA552C46BA78281F05335DCE3F23DE5B6BBA3CC41681BF60D898D0C82830FC41F0C5E8ED9B0E15124562D11C9EB341B6D048173D492630F6D451E1B2C2724EDA99236BF70003458F68BAD263D13E8791750D95CC7D555BA38DF236E739246B73A9D12FD333EC970B88450D0D86C0CF823944E2710CBEE31A079FC530A18419A18C6C65BB804A71A933E2D527735E583A869F048A67C928FD6AA97806B41463CE326214F10DDEB5959E4B332E1B33CFDF93C82AB38E7F9441A3EEE509ECF4A1CA999E315A6A764BCDF370358465B8B9D6FE2A2184D6900B6AE99C0EC0622157C79E67E554DD12651D42C3E0B40F74ACA6BC1189241601AE3607B55095D85E24360A57F5388F82F061B896FA684F54C131A6AEAD757B29A682365DB9DC5AE24B4713DA98C8FE6E32EB66B5B4E3AA9A633DF47E2036D1DFAA66A050D76FA093FA9A7E2B516E9D8BDB036B7578A698CB41475921796E1F524B5C586D6D08DA36A9FD02BFF00FB6D4F87CD69B0AB3A90C9BE491CFF00152D5D5C748D69782E73CE56B5BB5C7A134C654506207661B53DEDF9A91B87E2235187C83AE468F8AD351D632A8BD9CDBE2963F698F1A8E055B009D89A646718D9206C3CFC66391BB5B706DAE9A85AFDBAF6ACEE2CCFAD1D22C53DA27F3B4704876B98DBF5DB551526F5722D8AA2B3122B038FC462E50548D99C878EE50C3B531E58479318864DCF8FC6E96C2AB3ECCA9CEC4D603A2514C53380A29291CD62B3346E7923BD6AB0C75E0737DD75D65F121931673BDF01DE1FB2D0612FBB8B78B01FEFB9458F7189EAA0100A421A5C4925DB0D86C5762939DA68A6B65E7181F9785C0365310D23D601C36D88BAE5C6EA04D575B51162058D883A9A36B5D23B7804ED0AF3C58907768BB746C320908BB869D04748DFDAA379DE832785F285F5F8C4B4923435A6E23B6DB8BE87B930C5AACD161B515206631B6E074DD77060D4749894B5F14679E783604E8C246A40E3AAEEAA164F03E194668E405A4710A9E48F02C49F8A514B2C8009237069B69706F6F25479498A4D87881B006DE4B92E22FA0B689C50E1F4F86D2BA0A761B3DD9DCE71B93B6C3C557C428A0AD8B9B9DB9803716DA3A95F679C411BF9DA78263A09630F1F1F1090D3D6544BCA034C49C923CB033705A5A9903CB6CD0C631A18D6B740D0068151CAD86A0CF1B4095CC2CCD6D6C5114EA83CC2EC86CE2343C177514ADA68202D984E1E090F1F785F6AF5EA171D2DB86C551CD2B29C54BE5A86927210C23634D8D85BAC84503B2E234C7FC468F151BC80BDA7396AE17707B4F88446CA8CD890A5905E3A86F493E01414E6D3B87495676CB30E201F0596CF7938ECD82538F76EDF129A249C967DF0F919BD9291E013B4A47A8421008421067B9532E5653B77825F6EA0B38C8F9CC3C45F7D80109BF2A64BD606FB9178925298C96B874E96552B252551A3AA75255070844FCFC6E1A969DFD856A317C761C7051D3516775353BC4D34AE6901CE03D568E3B6E54DF46D3D74AE351166CA00074E9BFC15BA6C3A9A9BD88B66C07503B3626A625C398636891E2CE75AC0F05929DE6499EF3B5EE2E3DA56C5EECB14AF3B18C73BC0AC695615B1C0D9CDE0907E6CCEF14BF0AB498ECD31F65AE26FD0136A71E8F84C1F96269F049B0AF528EBE73BA27779D079A8ACEB49A9C739C3A97BCB8F69BAD4C9236285D2BCD9AC69256670B68762C4EE04A7F594AEAB8D9166CB187873DB6F687056A44387911C12D75468FA821C7426C2FEA80ACCD534F2B5B109B2BA4B16B8026C6FA5F86A2DAAEEA2132C6C6B4D9AD7B5C77680EC0AACD42F1234436E60E40F6EC759A6E2C7CEEA2ADC75D4ED88FD617088004969B9D6DA7137D34568BBD5CDB34BD88D529661B3329A78DB246E74AD0D25C09B6A6F6E1B411D2983CF354CEB9CC591BAEE3B4FAA505CC2416E1B003B6CA0C51EE6D7D13A16F393B09223DC475EE56E91A59470B7F2855AB20A86D7C5574F1894B5858584DB8EA3BD07984B8C9555734BEACE5C18E67BA370E953BA6A1AC9035C73B9A4300F5858F05E61B4B244669AA2DCFCCECC40D401FD95E3E8E7CAE7C6E673DE906619AF6B5AC014156A7D14C27D10000589B5FB0EBD49E60E7361715BEE923C4A4F3D03A0024125E36C4185BBC91BD5FE4EBEF4B347EEBEFD840F8840D5588D4365346A2B33CB687D4A59B838B0ACFC2B5DCAF8B3E08F76F8DCD778AC7C26E01E2AA530A73B134A73B12788EA9A53BAE020A58D8B5540FE2D22FDBFBA6784BECE85DC6ED2A863ADBC10C9BDAFB778FD94B86C81B134DED670514EF139A5A7A09A5805E468D3BF6A8F0CA996A695DE90DCB344F31BEDB09B0371DEAE1731C083620ED0579EAB581AD01AD1B00D02816E2B5B251B6110C3CF4923B286ECDCBA8266D4D2C5333D991B9803BB88EF562A2264B96E48730E66B9BA169E2B8CAC646191B4358D160D1B9519EC5B9410D0628CA274772434BDD7F66FB2C13178D6C97631C9FA7C47118AA6490C7601B25B5CC3A3A53190B7312D166EC03A3721E59DA4C722AFC4E5A38E3CA5B7CAEBFB565262152DA3A392A1C33060BDB89BE8B9A2C129E87189ABC3890438C718DCF20DC93C355DD6D3B2A69A4824F65E2C6DB53C1E4BE82B062147E901B96CEC846DB1B689663388CD47510B230329198DC6DD76271434B161F86FA2C61CE7BA42F7BCEFD2C0055AAE920AA2C334798B0DC7C8F42A8E26047680E1D44023CD56A682714CF9659338D0FE8372329ECD55A9DE6491CF75813B86800DC02AEE7D8117B03A91C55440E8A3925673C1C6369B900DB5E2BA9DCC154E745F661F76F55F45E125C6CD05C780175CC94D54D88C9CC481A379088D846E1E927A4956DA7F8A238B07C52F81F98B1FC5AD3E015CBFF16CE961F351B36E4B9B3AB99C1E1D6EC3F25A059BE4E9CB8A55B7DE603E3FBAD22948F508420108420C57285F9F129BF5359E47E0A8C7F6BD5753D7BB9DAC7C9C65711E3F350C43EB09E01545EA5F61FF00A80F01F3567555E8FEC49F79E4F8DBE0AC69D41056C45D930DA93C5A1BDA480B2AD6E79037DE202D263248C35C38C8D1E7F248E8199F10A76F19079AB12B578A3B9AC39E06803034252D7329B00739E6DCE48D60E9DA6DE09863EEFE172EF7B8049B947923C0A8A173412F90BEC7A00D7C54295C71885C5CC3A9D490A715130FBCFEF5361D85D0D45231F25300E3B4B5CE1F1560E0342468276FE998ABA62A7A6CE364851F48D48FC52AD0E4FD30D935501FF36EBDFF0067E0FF008BAC1FE607E09A655518954FF33C02F24C42A248CC6E77AAFD08B6D1BD5BFA023FF8CAAFFB7E488B93ED92AF20AEA90D0CCC4D9B7DBFB27832B918C56868689000D161A047D335DFCDB7F942B839311EFC42ABB9ABBFF65E2DF5D587B40F826C32978C5EBBF9C7B82E86295C7F19FE098379314DBEAAB0FF00987C974393343F7A5AA77FD6B26C32A8C15F532CAD6CB2BDCC24020A7BC9D369EA19C5A0DBA89F9AACCE4FE1F190E6C7239C3505D2B8EBB97783BCC78D65DD235CD3D76B8F252AC696CBB8D7365D336A8A831787D230AA98ED72632475AF9E5212630BE9CE68734B4EC2082BE66C6731533C276C6F737C512AEC5B930A6297315DA7362A8971568761CFFCA43877AA548D13D1CD11170F6116EC4CEA5BCE51CCCE2C3E495E12EBE877A8AEE9E82AC42D2C9A7602011964247715D64C523F66AE4EA7C60A7149291035BEEDDBDC54DCEBBA0F62A845E958AB76C90BBAE323E28F4FC437C709EA247C13DCE0ED6B0AE1EF8DADB9885FB13C1E59D7E2D5972DF456388E12FECB876255676D20FF00502D0030FF00287705EE687F943B82783CB34EAAAB77FBB01FF502E2D5B27E1463FEA13F05A9E7221F843B97A2660D91DBB02783CB2BE815D26F85BFD47E0BB1815549ABA7B0FCB112B4E6A06E6A39F79D8D40929B9310B85E692779DE340130839374119BFA3071E2F24AB8D926BDC315901EE17BD90794D474F058322634706B404AF138A300B196B9041E29CB62D7524A5988B0073401619B775848337467EA203F91BE413071FAF80F4387925F4BA5341D0D0AF487581DF9ADE081AE0AECB8DB87BF11F30B4CB2F869CB8DD39F79AE1E0B50A558F508420170F7E4639C763412BB54F15939AC2EA9FC233E4830B9F348DE905C7BC7C94B07B4EEC1E2AA30FD6F5340F12AD539D1C7858AAC98D30B40C0385CA99454F710C40EE6B6FDCA536452CC79D6A3859EF484F70FDD2EC1599B16A7E839BC15BC79DAC0DE00BBC47C971C9D6DF1407DD6B8ABE93D98634E0E9E08FA4949395EFF00AFA583F97136E3A4927CAC9D558E77186336E50167B950F12E3B2B46A18433B80090A6F86B72D0C43A179575CCA5958E3231D1D8B5ED16243ADA74EEB29E95B920637F28F254EA70E6D4CF2B8C4C6303096B86D7BCEF2A2AED0CA65A60E7C8C7C9B5C18410DE03B959163B0DF7155A9636C7034B62642F73417B5A06DB2A980878A395EE2F25F2920390352BDA0F5AB2A4EE606B075D813E6B826EBAC24DDB52FF007A6778123C82061A0173B86A5209A7A9929A5C49B33D819206C71FDDCB7D6E37A753871A695ADF68B081D76291E76C981D352C4419657E5CA36DEE6F708346C70735AE03470057A97D5C9511CB4D1411078CC35E72D9AC0E87CD5F403DC18D73CEC6824A4B87C85B885148F362E2D24F49FF00E533AE36A2A8FF0096EF2295D6C669CC0E1B9A1C3AC6CF241B22BD6ED5E0735EC0F1ECB8023A97A36A8A982F9FE351731CA2AA6EC1259E3B42FA0058EE58419311A5A81B2469613D2350894BA3D8ADC26C5548F62B31A064CF59B63BF6A4B871C93B99B32B884DE176894B464C5261F9AE8A7D487478E0EBF7856B44BE99CE1290DFBED07C5587CA58093A01B4AA8B166F050CA1B702C954989BDAE395B211C6E17ACC44C8E36BDEDAB5C05C206191BC1191837289B33DCC045883BD715323F9ACA3D52FF5411B471F04105454BDC5CCA60CB8D0BDDA8BF40DEA9BBD39BEB73EC93A0C760AD86B5A0068B0034EA5E10A8EA8ABB3C82278C936E638DC3FF49E3D0534639AE199BB3A768486A226BDB63B768236B4EE215DA1A89658CE6B73AC21921E277390350A68DDB8AA42290ED9085DB20687073892A0B824603B425B88BF349700D83AF98E837264D6301D8A862A343FDEE4832D00B44D1C091FF7156A63F5509FCE3C8AAEC1EB3C709241FF007953541B5337A1CD40D288FF00E6944EFCC47815AD590A33FC6513BFC40B5E955EA108500967284DB03AB3F97E21334BB1D619304AC68DBCD93DDAFC107CFF003DA4FF002856A9DDF52FEA3E452BE77EB01E2D0AED2C9789FD47C8AD313EDA06D80B0D8372ECA8C380BA0BAFD2A344F8E9FAF847F877F12A6E4D37F8C99DC19F155F1937AB67446DF32ADF25C0E7AA09F7479ABE93DAD53344B8DBC9D81C02CBE2503FE9C9CBC682537EF2B5140EB57BE4E2E26EB9E50614F9653594B19933DB9C6B3520DB6DB7A162936BE9EC05C8B74290575393F696EB0525746F6FB514CD3D3190A22F0DDB71D60A1AD17A6D3FF342EBD369CFE333BD66EED758826DC6C57376F1EF4C35A7F4BA7CCDBCACB5F5D46C5D615530328867958D738971048DFAFC565480E396E0DF43D4A6B0F7878261AD8FA7530FC78FFA82AAC930C82A5D331D0B6575EEE07BEC372CBE517F682F4460EC37EC2986B5A714A11F8CC36D9A12B938CD10FC5BF502B30D81E7635E7A9A54828AA0FB304C6FC232990DA735B8C53CB4AE8A32F2E790D1A5B4B8BF8028ACAC8AB236736D20C60039B784AE1C2EB490EF469069B0D82BADA1A989AE7C9165601626E0A1E5B0C3241261B4CE6EBF561BDDA7C15A07549F9392E7C38C7BE390F71B1F32536BACB49DBB120E58C064C25B281730C81DD9B0A79195062907A561B530EF7C6E03AEC830B010403C42B6C2975238F3401D08D0F5ABAC288BF1B950A916C4B37BCD05598DCAB558FE2627F410A29B52BBEB1BAED04782E66CCED06A06A4F4A863366B5C34B104F7AEC685F6E3BB45CBF33B7F5F5EB5C26D70E85AFE19B8F154648CC725C6841B8298E7BB80B5EE40D75B155EAD82FF00B2CFC6EDBCA653945AA392E2DB9DA81D3BD1542F2B3A1AE3DBA2AB4A0D81076102CA79DA448D24920B48B1EB0BB9846FB00493603524EE0B27272B72D616B20CD4E0DB35C8711C56B1CC6CB78DE6CD906527A0AF99574029AA9F11D79B7169237EBB55896BE8D0CD1D5D3B2688E68DE0107A14D48E0CAC6DF6480B0FC122E48B9C70820EC6CAE03AB4F9A716FAD6BB839BE681E87B40F588BAE7D21837DCF405CB61613A8BA99B1B06C680A2A46CC5C016B4954F130F2097580F740D76714C59B02A989FB07A820C9B4FD6CA3FC67F9FEEA595B7A527A5A7C542DFB79C7F8CEF26AB0ED695DD9E682ED2BAD2D29E12B7CC2D9AC4D3FB54C3FC467985B64AAF508428051C9189227C6EF65E0B4F55948841F1CA98DF4950F864167C6E3191D20FC8AB74525C3C741F22B45CB5C09F287E254A2EE0DFAD68E8D8EEE58CC3AA32CC01DEB518B31B1126617ED5D07AA304839A6EBB0594AD9028AA58B1BD58FD03E2AEF271D692A7FE5DD2FC4CDE769E2C1E6558C064CB58E67F323737C15F49ED7691D95C4F4A642A1C0686C1298CD8D95A32B591191E72B5A2E5C765B7A8D2DF3EFDCE556BEBDD4D0E833CAF39236FBC77767159BFA6E692B0C81DCDD3B48B3481EB0BF1DB74DE8A37D44DE9B502CF70CB130FDC67CD05AA2A6104479F22699E7348F70BDCF4742B5923DBCD47FD2170772F4BC01A9B0DE5075959FCB67705EE466DE6D9FD2147CE36D9AE2DC51CEB03735FD5D9741300CFE5B3FA42E81B6C007500A064CC79B34EA1485C00B9D836A09333B71B2EB31E2AAB2763DD607AAE86D4B1D2651BF4BA0B598AE27F5E17B788503EA035D6B136DA7829C3AE2FB9047C9B972CF5101DED0F1D875F30B417594A09053636C0763C9677ECF1B2D393AA9489D8ED54EA935CAD46EB8457CFEBA03478BD5C36B37397B7A8AE98E4CF9614F92AA9AAC0D1E0C6E3D3B92663911798E5CD558B5A7DD7289AF43DD769E8B14176337848DF6D8ACDC73972400F01C09EA54A99FA296F7899B4E5BB48B6CD57877F4CEFE17856B8F2FC6EBB25C3D9171706E2C557AB9352A392179734B00706DC8076DD7228E475DD23B2DB60172BCFE3F45EBF157972953519D9AFB4F1D800576A0B4C79AF72C39BB157A7A702CED806C1D3C5582C046BAAEC6101D42CFE29C9C8EBAA8CD1CC612F377B72DC13C427C6EC76426E0FB2EE23875A345457A1A38E829194F0FB2CDE76B8EF254835998DE2F03C5744853514064979C70D19B3AD030F4860E24EDD17A2771F6232576D6B770523541EC5CF39BAD9AABE231681CE7173AC2DA9B772BCCD8155C4DEC01AD2E01C40B0DFB50640FAB57523FC507FEC6AB20DE177F7BD56A8D2BEA47E66FF00FA05D67B372F121035A419AAE91BC656F9AD92C76140BF12A46F07177702B629563D4210A0108420E480E0411707420AC0729B920E864757612DBB07ACF846D6FE9E8E85F4042163E4F4555CE4563A386D1D3BD5D6CC9E728B9326491D5D86B6D29D64886C7F48E9590F482090EBB5C0D883A107815A9E58B2C5EAE39B9A78D8410B8A29B98AB8A4D81AE17EA51B656CF11889D768EB50072A347200D99D6D97B83D095F282478869A106D14999EE3B01B5B43DF7572926F48A506F77C62C7A46E2A1AA77A68142D631ED0439EE70072751DC5452EC1A83D2E613C83EA2337683F7CF15A907B157898C8A211B059AD16014C0E8A2BB0A2A9378C0E242EC151C80BA460B680DC942A3CDF5418389257A4FD530712494358EB3B437D83BD77CDB8965C68D1AAA8F06AE7BE3F5401A594B0E693579BB6D6B7143C39CDCADD01DA7A178D8DED6B9AD22CED9B7620F5A1AE9CB9A2CD68B76A1D67CCD0D166B36D978C8DED04070E8EB4322735F72ED37850720FF0CE3BDCE571BA340E8B2AED86C7575DA0DC053DD161762576543251A1D08B715A66CCD96364ADD5B23438772CF626CCF4D986D69F056707AACF41CD93EB466D6E83B3C6E97E8F6719D4F14B6296F3B73B57425B15955AC7297D3F089A36EB234666F5858585F7038EF5B986AC0D0958FC569C52E22F0CFB393D76FC42D44AE439759AE0855C397599117607E8131A195BCD4AD22F67781092C6F4CB0B7826707700548AB6E858E3769CBD0BB6358DD8DB9E37BA058AE480B488DE4B1C4169B6ED2EBCE798369B75828963CC2E36850027DE3DE8267BA27820B858EEBEFE214245B6481C3A4D8FC976093B5C57418C3B5072D6B0919A416EBBABAC9A263435B720700544D6B06C0A76E5515D7A47BB1BCF705D07D43B6358DEBD4A1A46E53C40937DC1076D89FA6790F50D0286BA364606516246A779D55974D147ABE403A12BC53108839A756B2DB5DA5D066EA8FF001F527F3347FD8D50F39791A3A57124E249259402048F2E17E1616F25142EBC97551ADE4D47CE620643B238CDBAC95AB49392F4C63C3CCEEF6A637EC1B3E29DACD6A3D421080421080421080599E51725A1C4F35452E586B3693BA4EBF9AD32107C56AE2AAC3AA4C35713E191BB9DBC7107785D36A03FD6DFBD7D4B941494F55854FE914EC9B23496DC5C83C41DCBE7CEC0623EBD34A403B9C6FE2AEB388A92B1D4D287B751B08DC42BD4D27A346E932F394EE373347725A7F38DA3AF62AB1E0554F932403338EEDAA9B269692621921648D3625A7FBBAA34D1CAC95A1D1B839A76106E14C0D967D95F0BDC0CF06576F929CF364F58D87B95D655B0FD9570FD3511107FA9B71E081A02BDBAA8C92770BB5B049FF2E76F91B2EF3D40FF0073A93FA6CE1E05455A057B75539D9FFE0AB3FD22BB12541FF70ACFF4EC82CDD1755B3D47FC0CE3F5168F3282FA9FE431BFAE78C7C505ABAF6E97BE79DBB64A18FF0054C4F90519AC03ED3108474430971EF3640D7305CC93C513734B231838B8D92592B6948D65AC98F0CC231DC35F15D52BE79DE1941411879D8ECB99DFD4E4C34C1F506784F310BE463858BDDEA307F98FC151A09CD3D516DC163BD5246CDBB6FD69AC1C99AFAB767C46AB2377B41CC7E4143CA1C1A3C3228A7A50F30FB32663720EE3F057C7D279FB4E26DB73B10EA94A62A9CD1DEFA8DA78F02874E54C34C0D591BD56AE9055C363F68CD4154DF3288CC41BDD078D72F732E1CE6B8E61B7785CDD04CD7AB14752E8EA4868CC1CCD7500017DA4AA21CBCE7328A93FE0DBFEE083422470198C5306F168CC3BC2F055C7B39E00F070B159BA5AB73482D7969E20D939A6C46420032170FCDAF9AA62F0A8BEC7C6EED50CAE7FB4C683C4021588EA18FF006E181DD710565B1D249ED52407A9B64D3094D5BDBF84FECB23E9078FC17F8279F46E1AFD5D471DFA091F15E8C1F0B3FEE6CFEA77CD5D32918C4E41F827B5C02E862D20DAD8583F34813F660B850D7D021EDB9F8AB51E1D411FB1434C3FE902A6C32B371E28F98E5654B2E774519714C236D6C8008E9EAE5E97DA30B40C0C60B46D630706801481CA6AE10B309C465D5D2C1483F20323BBCAB50F272903C3EADF35649C6675C7726A1EBB0E16B9D81347CEB94F231D8D4EC8C06B630D60034D83555F06A27E235CC859A34EAF3EEB5433F3B8962F2F32D2F92795C5A075FC97D0B04C263C268C463D695DAC8FE27E4AEE44CDA611C6D8626C718CAC680D006E0A442165A08421008421008421008421078945660149505CF841A594EB9A3D84F4B7614E1083310D25661733A4921754B32101F00B9BDB4BB76F75D61E6C2B1395E48C3AAC92493F5276DD7D790AEA63E42CC0B183ECE1D55DADB2B71F26F1D7FF00EDE47EA91A3E2BEA684D31F346724F1A3ED5346DEB9829BFD93C61BB1B1F64ABE8A84D31F3A1C97C6FDD1FEB05D8E4AE32EDB9075CABE8484D3182672371277B73C0D1FA9C7E0A7672267FBF5B18EA612B6C84D323251722211ACB5923B886B4057A2E49616CB6664D21FCD27C93F429AB859160185C5EC51B2FC4924F9AB705153D3B8BE185AC7116B8DAACA100A29E165442F8A5687C6F0439A7610A5420F9AE33864D82D5EF7523CFD5CBC3F2B8F154B9DBAFA8D453C5550BA19D8D92270B39AE170561719E4BD450174B439EA2946A59B5EC1F11E2AEA612991725EA0CEBCCE88ECBCAE99516D1FB38AAF75E1417EE0EA0DC2AD552658A7E98C0F10A28F9C3206440B9EE360D1ADCAA38B56B18FF00478DCD91C05A57376037D838DADB5531D47390AED3D591B4A42CA8077AB0C986E283554F5C34D53482B5BA6AB171CE46F5722AC78DE86B6F1D583BD5B65403BD6320AE77157A1AF720D6B671C548D987159B8EB9C77AB2DAC1BDC115A01305D8942CF1C4E16465EE93D56ED70D814279410F36E918098DBB5EE040ECE3D8A0D4890286B6591F493454C33CEF616B1B7D013A5CF01ADD23C35D8B634E12067A1516E91E3D778FCA3E256A2969A3A58832307A49D4BBA4A8A5F816050E1106879DA978FAC948DBD03804E108402108402108402108402108402108402108402108402108402108402108402108402108402108402108402108409B14E4ED06264BE4673531FC58F427AF8AC9D7F23B10A6BBA99CCAA60D807AAEEEFDD7D15083E33534F3D23F254C3242EE0F690A22F0BECD3431CCCC92C6C9187EEBDA084A6AB92D83D4DF352363277C64B5131F2F99F56295D0D23180CB70F7B4DDC5BEEF40E36DA940C3E5B86C8C737AC2FA8CDC82A171FA9ABA88BAECE509E41C8DD23C5A403818BF754601D85D381188EA333CFB648B01D5BCF5ABB161F4307B4E6554E5A08635D96367EA3B49E81DEB5AEE42D67DDC5233FAA1FDD4679055E7FF0071A7FF0044FCD0651F4B4B04A1AE244648BBB9C05C06FF005469D5AA94D3524719964A9C85C4F370DC175B7171DDE7D0B4C39035A4DDF8A437E220BFC548DFFC3E97EF62EE1FA601F3419C0DA51183CE0610011792F9B8DFB34D148C9A9F9B60D43DCEB922E45B70B6EF35A68B901103F5B8AD53C706B5AD57A2E43E10C3793D2A7E892636F0B20C63AB616C8E1AB5807B440173BEC09D3AD754D552CD30F428A69AC490226971BF4581B7695F41A7E4DE0D4C43A2C369F30DEE6663E299B23646D0C8DA18D1B0345822BE7F0726F14C439B32D3329A267B22776CE9CA2FAF5D969B0DE4DD2D1E592726AE66EA1D26C07A027C85078BD42100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842100842107FFD9, '1', '2023-05-29 13:54:36', '1', '2023-05-29 13:54:36', b'0'); +INSERT INTO `infra_file_content` VALUES (13, 4, '6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg', 0xFFD8FFE000104A46494600010101004800480000FFFE003E43524541544F523A2067642D6A7065672076312E3020287573696E6720494A47204A50454720763632292C2064656661756C74207175616C6974790AFFDB0043000D090A0B0A080D0B0A0B0E0E0D0F13201513121213271C1E17202E2931302E292D2C333A4A3E333646372C2D405741464C4E525352323E5A615A50604A51524FFFDB0043010E0E0E131113261515264F352D354F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4FFFC000110801E4028A03012200021101031101FFC4001B00010002030101000000000000000000000001020305060407FFC4005210000201020303050A09090508020301000001020311040521061231324151617107131435738191B1B2D122333655727492A1C11516172334525393A2425663D2E1244354626482C2F02544267583F1FFC4001A010101010101010100000000000000000000010203040506FFC400251101010002020203010002030100000000000102110331122104134151142205326133FFDA000C03010002110311003F00E0A5CB7DAC8265CB7DAC823400000000000000020024DF043765FBAFD0140B8EA3765D0FD03765D0FD005B44437D046ECBA1FA06ECBA1FA0204A76D191BAD714FD05941B5C1FA028D73A2A59292E676EC21A6DE89FA008059465C5A7E825C5BE67E8028038C93E0FD04EECBA1FA00804EECBA1FA06ECBF75FA00807BF019363F31A55AAE128A9468DB7DB9A8DAF7B5AEF5E07AE1B299CCE2A51C3C1A6AEBF5B05F8846941BD5B239DBE186A7FCE87BC2D8ECF1F0C353FE743DE0DC6881B1CCF23CC72A8539E368C611A8DA8B8CD4AED7637635DBB2E87E80A00D35C535DA88024000000000000000000000000000132D74D75934E955AB7EF54E73B6AF762DDBB6C5D61312D26B0D59A7CEA9BF7018DBD2CD04AC8CCB098A7C70B5FF0096FDC1E0F16F4585AFFCB7EE08F3B6592B6A5E787AD49275A8D485DD93941ABF65CA36DE88071E7D0277D18B6960ECF4404356D5105AF67661AE740540014000000000000000000000000000000000000000033C792BB0C0678F257601865CB7DAC8267CB7DAC800000000000049B6924DB7A2480CB85C356C5E269E1F0D4E556B54768C62AEDB3E83956C265F97E13C37693131F829395353DDA70EA6F8B7D965DA7B76772CC26C7E413CDB33B2C54E09CAEB58A7C20BADF3F5F52382DA1DA0C6E7D8C75713371A316FBDD24FE0C17E2FA58476588DB4D9CCB2F4727CA6356DA6F469AA717E769B7E83C6FBA4CEFA64D87B735E6FDC70601A779FA48A9F3361BED3F70FD2454F99B0DF69FB8E0C034EF3F49153E66C37DA7EE1FA48A9F3361BED3F71C18069D9E3F6FE78DC0D6C33CAB0F4D558B8B9293BABF3AD0CABBA14E2D3FC9187D39B7DFB8E1F9C96EE81A777FA48A9F3361BED3F707DD1EAC934B27C3AEBDF7EE3834AFD859BB6881A77B81DB8C5633171C3E1724C3D5AD2BEEC5D4B5ECAEF8A36AF3CDA06AEF666834FFC589F33C062A582C6D1C553BEF519A9AB73D9EABCEB43EC143110AD461522F7A138A947AD3574215A98E759FC755B3746DE5A2CBACFB681F0D98A0FFF00ED136AE5BAEE9DD3E621BB7C2870E75D0546AFF2EED07F75E87F3A23F2EED07F76287F3A26DE3554BA9F413BCC0D3ACFF68570D98A0BFF00ED127F383687FBB347F9D136CDF5956C0D5FE706D0FF007668FF003A247E70ED0FF76687F391B46D90E5D615AB7B43B40F8ECCD076FF001911F9C19FFF007630FF00CE46D1C8AB6136D455DADC561B5CD7661C695B59536A492F45BEF2F470DB1DB5B070C3538E1B16D5D28254AA2EBB2D25F79B36D339FCEF66F0F8BBE27036C36322F7938E8A4D70BDB83EB445737B4DB278DC827DF1FEBB06DDA35A2B874292E67F7339F3E9FB2DB44F3175367F6861BD89B382752DFAD496A9F5F5F39C66D6E433C87369518DDE1AAADEA327AE9CE9BE95C3D1D2095A300050000000000000EBB20D81CC333846BE3A4F07877AA4D5E725D4B9BCFE836BB0DB3387C3E1567D9C462A2939518D4D1422BFB4EFF77A7A0D76D46D9E2B34AB3C365B52787C0A6D5D693ABD6DF14BABD2136DBD6CA7617257DEF195DE22B2D1C5D47395FAD42C979CF2BCC36053696535DDB9D45EBFD470E925CC4AB047D0305B45B1F808548E0B038BA31AA929A8C5FC2B5ED7F85D6CF5436BF66E3151861F1C92E0945FF98F9C2B17451F475B65B3CB851C77D97EF225B6591356852C727D717EF3E768BA03B7C5ED06CCE3E9AA78DC1E32B462F7A11945D93B5AFCAEB3C5E15B17F34623EC3FF31CC2B164C0ECA861F65AAD25523B3B8E9C24AEA4A9B69AFB44CF07B337F83B378D4BE83FF314D9AC43AB963A57BF7A9B5E67AAF5B36F049BD78222B54B07B36DDFF3731B6E7B537FE60F09B34E5686CE6352E8DC7FE636B39DDD970262B755DF10358B07B3092BECD639BE77DEDFF987826CB7F7671DFCB7FE63697B90D81ACF04D96FEED63BF96FFCC1E1365ADF26B1BFCB7FE6365717039FCA3019252C0A8667B3F8BAB88DF93725076DD6DB4B94B82B1EEF05D95FEEDE3BF96FFCC6C1B21B03C1E0BB2B6F9378DFE5BFF30F06D94FEEDE37F96FFCC7B9B22E078BC1B653FBB78EFE5BFF0030F07D94FEEDE37F96FF00CC7B1B22E078A543629AB62B2AC4E113FED54A75125E74DA45311B079466786789D9FCC2D7E09CD5485FA2EB55F7F61EF6CD7D5CBDD2AFE179555783C62D77A1C99F549706BCC070D9BE518EC9B15E0F8FA2E127AC64B58CD74A7CFEB3C27D73038DC1ED660AB6519D61D52C75257942F6EC9C1F47FEEA8F99E7B9462324CCEA60B11AEEEB09A56538BE0D7FEE8C11AF00050000000000000CF1E4AEC3019E3C95D80619F2DF6B209972DF6B200000000001D16C26591CCF69682A9152A5874EB4D3E0ED6B27E768E74FA0772E8C2952CD71924BF5708ABF524DBF52095AFEE8F9CCB1D9C7E4FA537DE307A349E929B4AEFCDC3D271E64C4D79E231356BD4779D59B937D2DBBFE26300000A000000000000B269A17B3D4A964D3D18438761F46D8CC72C5646A8B77A98696EBEB8BD57E2BCC7CE78761D0EC563BC173B54652B53C4C771DF85D6ABF15E7057D1145495D3B3E72272496EC7873F5959D48ABA8D937C5A14D27ABF3151782B2BBE24F7C4E56BEA63A952CECB898D26D5F9C0F43646F18235399FA4BB91059B21BD0AB6CAB605DB22E51B21B02CDF590D956C86C0E776B701254E19B611B86230CD394A3A3693D1F6A76F31B6CF5C36A7B9FC7328C578461D77C692D538E935D8D5DFA0CF5A11AD4A74A6AF19A716BA53D0F0773B6DE073AC9EB6AA0DD93EB4E2FD482BE6E04D6ECE4B9D36805000000000DAECC657F9633FC360DA7DEDCB7AA5BF756AFD3C3CE6A8EF3B95D08786E618B97FBAA4A09F426DB7EA412B37746CE37674F23C2350A708A95751D15BFB31D39971B75A384B1E9CCF172C7E698AC6546DBAD56525D4AFA2F32B1E62A04AD0C94283AADB6D429C75949F05FEA6C7058CC2E1E94A10CAE962AA6FB6AA566DA4ACACACB4E903589974CD86371786C4A829E5B4B09252F853A3749AB70B3D38EA78AAD2749A69A945EB192E0C022C994465A54EA5576A509CDAE2A29B7F70128B2656519D39384E0E325C534D32501BED96C46E62EAD16ECAAC2E975AFF46CEA1CB75593BB7CE7099757F07C751AADD929ABF63D1FDCD9DDA8D9DDF3700260ACAEF8966CAB6436455DB2AD956C86C0B37A10D956C86C0B3643655B0D812D90D956C86C0B3645C86CAB6059B0D946C8B81AFCDA956A6E9E67827BB8CC23DF8B5FDB8AE317D29AFC4F6ED8D0A1B45B1F433BC2C7F59462A7A6AD45BB493EC6AFE6659BBAB3E04EC6A53C167991D4D69D36DC13E684D3D3FF007A40F9782651719B8BE29B4FB480A00000000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003E81B074EA53D98CF2A4A2D46A516E0FA528C93FBD33E7E7D2F643E45637EAB3F5D4095F34041214000000003D982C2D3A94DD5AD7DD4DA4AF65A2BB6D9E33D384C5F788B84E2E506EEACECD3E0117C6E1614A11A945BDD6ECD377B6974D3E74D1E34AEEC8F462F15DFD4611838C13BD9BBB6FACF3A7669A03D980CB315984E51C3C55A2B572764AE7BBF3631FFBD47ED3F71E1C26635B09372C3CA506D59A56B3ED4CF5FE7163FF0089FD2BDC0F6CBF9B58F4B59517FF0073F7155B398E4D353A4ADC2D37EE29F9C58FFE27F4AF707B418D7AB9FDCBDC0F6CDF9BB98B5A55A7F6DFB8F3627018FCB2A42A4AA4A2EFF06709B766B53719362331CD956EF78CA74E54AD78CA09B69F3AB23D95720C662EA45E331D09422F9A2F4EC5A2B836DCE4D899E372CA188AD6DE71B49F4B4DA6FCF6B9EB52BCEEDD92D4C34614F0F86861E8C6D4E0925FEBD664516D5DE8822CDA9DDA566BEF215471766526ECECB40E4A564B8DB8819B7AE8872302938BB3D5176C0BB655B28E41BEB02DBC43651C886C2AEE478361B4DABCF12D138B76FF00B8F53679361BE55E79F41FB407CEAB7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9C371C9F3E92766A9269F64667047D0FB9FAFF00F19CE5FF00872F6184AE061C95D85BB4AC392BB0B151D067781C3E0B0D94E128D351AD530EABE22A5DDE4E5AA56E164933CF84C342B53752A4E50A29B8C631766EDA36DF69199E633C74F058AA94E3054A8C683716DDF76EAEEFC1EA4D0AF4E9D1746BDD536DCA1349B566EF676E1ADC2C4E2F0B1A108D484E53A336A2D49DDC5BE0D3E747A727C1E1F199766D87A94D3C450A2ABD1A9777493D55B859AF5B3CD89C453AD4A3468DDD38B529CDA693B704AFD632DCC6A60A9E3EB53A7192C45174136DAB276D574BD0835AB43BEC2C70B92642B133A4E692BC9A576DE977D7ABEC491C023A9C9F69A9D0C22C363A9B9A8A4949ABA6968AFADD3B69D6546C73BA386CC3228E3E14F71B86F42EACD689F3EBAA7C3A4E356A6F33BDA058EA1E0D85838527A376B697E097E2CD12605D33BBCBB11E1197D0AB7BB7049F6AD1FDE70699D4ECCE237B07528B7AD39DD763FF0054C0DDDC86CAB6437D64559B21B2AD91702CD90D90D956C0B361B28DEA45C0B3643655B22E05AE43655B22E059B21B2B721B02CD97D926E3B5D99A5C2585837DA9A4626CC9B24EFB5D98FD523EB407CD712AD89ABA5BE1BF598CD96D1A4B3CC4A4ACAF1F651AD00000A0000000019E3C95D86033C792BB00C33E5BED64132E5BED64000000000107D2B63A7196C663E31926E3869A924EED3BCDEBD1A33E6C779B03F26B3FF26FD890895C1124122280000000000000000000000036FB318BF04CE68A6ED0ABFAB9746BC3EFB1F44924D24B448F9226E2D49369A774D731F4FCB316B1B9750C4A7ACE0AFD4D68FEF4C258F44DADEB241D449596AD093BA6B9CC4D28A5AEAC22DAC9B0DA8AD356577B761D6CAA57777C02AF15CECB3655B21BEB02CD90D946C86C0B3643655B21B02CD9E7D8577DAACEDFFC8FDA32B660D8477DA9CEBE83F680F9E56F8E9FD27EB2A5AB7C74FE93F5950A000000001F44EE7FF26739F272F619F3B3BDEE76DBC933F4DBB2A2ACBA3E0CC2570F0E4AEC2C561C8458A8CD42BAA69C2A477E9CB8AE75D68D8E072EA98AA329E0F1D85569B4A956A8A32B696766B86A6A001B6C7602A61234DE331B879EF49A74E8CD4DA56BDDA5E83C55AB2A968416ED38F05F8BEB3CE8B26059174CA264A605D164F5288BAE205D336DB395FBDE62E0DE9562D5BAD6ABD4CD42666C2D5743134EB2FEC4D303BA6C365379349A774F522E4559B22E55B22E059B22FD655B21BB0166C8B956C8B8166C5CAB655C80B5C3652E437A0166C86CAB9157202EDA33EC8BFF00F2DCC5FF00D247D68F2391E9D8E77DACCC3EA91F5A0386DA3F1EE27B63ECA35A65C5CA53C5D694E4E4DCDDDB777C6C6200000A0000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003BCD81F9359FF00937EC48E0CEF7607E4D67FE4DFB1213B4AE04949B7649B7D09106C7226D66B4DC5B52509B4D71BEE313D96EA3C3DEE76E44BD0C77B9FEE4BD0CEAF0587CE3149355AB5384DA4A7526D71BD9A5CEB468A635E2F0B8EA78758DC438CA9C64E576DABABBB24F81BF072FB6397EF73FDC97A18EF73FDC97A19D73A58CA54EA5278BAD3A8F79C1C5B7A4527ABBE9C7ACD5BC6E35A4962EB6AD7F6DAFC44C0BCD27E34BDEE7FB92F431DEE7FB92F43376F1B8C8B6D62EB3D355BEF4FBC78763783C5565FF7BF797C13EE9FC693BDCFF725E863BDCFF725E866EFC3B189DBC2AB5BE9BF78F0EC627AE2AB7DB7EF1E09F7CFE349DEE7FB92F431DEE7FB92F43377E1D8C5FF00DAACFF00EF65E9E37173A918BC556B3693B4DF01E07DF2FE343DEE7FB92F431DEE7FB92F433A655EB786CA9BC7579538DEFF000DC5DD3B249B7633C29623C36787963F1168AD3F58AEDDD2B2D6CB8DF5278353965FC725DEE7FB92F433ADD8DC54D51AF849A6B71EFC2EB99E8D7A6DE9230D431F5B175A97875670A5BC9B836DB6AE973F0D38F0313C4E230F4F0989F0BAD51556DCE326ECACECD71D47817967F1D5B6CC739356D343CCAACE493536D349AD5F025D49B5ACDFA58F12724BF8CCAF2777C0B5DA479D549A56537E923BE54BE936FB5B1E2BF64FE3D0D9177D0CC2AA546B593F3365255A69D936DF6BB21E27D93F8F436FAC86DF418A954A92AAA136D5DE8D36D7FA1956F3AEA9EFCECDDAF764F13CE2ADBE821B66D9653269358A4AE97F68D7E269BA4A5173DF5756D6F6E22C6A65B79DB2BB05F2A33AF26FDA21B1B03AED3E75E4FF00F232D3E7B5BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF915ECCCE08EF7B9D78933FF0022BD9984AE1E1C8458AC3908B1500000459152C80BA251544A605D32C9EA5132C80B22CBACAA65AE076195D7EFD97519B77696EBED5A7E074F95E4D19C235B189D9EB1A77B69D2FDC72BB09158AC63C3CF58D37DF1AE95FF00FA91F47AB529D1A6E7524A318ABB6DD91068B68E9D1A386A14E953841B93768A4B44BFD4E7DB3D99B63FC3B16E6AEA9C55A09F1B74F9CF036156B86CAB656E059B21B655C887202ED957228E455C80C8E455C8C6E455C80C8E455C8C6E4439017723DDB16EFB55983FFA58FAD1AC72363B10EFB53987D563EB407CEF13FB4D5FA6FD66332627F69ABF4DFACC60000140000000033C792BB0C0678F257601825CA7DAC09729F6B00000000000FA3EC7605E1365734A8EA29AC4E1155492B6EDE3356EBE07CE0FA96CD38BD8FC55A7BCFF0027ABABDF75DA7A757FA8895F2C367B3C9CB3AA1152716D4D26B8AF80F53586D766B5CF70CB9FE1FB2C4ED32EABA17966216AF31ADA70B5FDFDBE92165351C94FC36A3924AD26B556EBBDD1B88C5EF25C1DEC9BF59EAEF3876AD3DE937C5DED73AE7C98E1DBE6FF00B5BDB9D595564A4963EADA4DB7A717D2F53C6B2BEF952D4EA39534ECE6D24BADA5CE75EA8E152E4B4BA148AD2C3E129477631934B85E5C1747031FE460BE39396864D09B9BF089C771D9A942CD7DE5A391C24AF1C4B7FF0067FA9D44E8E1EA47764E6D2BDAED3B75703C92769D9B4DB76563A71F2639F4CDF28D1AC85249F843BDB54E37D7D21E4714B5C4B4BAE0BDE6F62A9A9B95594970B59FA743343C12AD48D349DE4ECAF32E5C98E3755E9E3F8BCBC93CA74E71E44B44B10DEB67682D3EF2F4F269526DD3C5CA2DF3A87FA9D3AC3507292B3BC38FC3FF0043037858ABB8CADF48CFDD84749F0396F4D054C9E756CEA62E73B3BABC13FC4AFE49AD0A93AD4F1AD547D0ACDDFB19BCAB3C338B74DB4D2BD9BBDCC5069BB3838B6AFAF3AE9B9BC72C729B8E1CDC5C9C575934F0C9B10AD3F0B9ABC7E0BB59EADE9C787127F21B718C5E2A4D2BD96E5D2BF1B6A74D83C2D3AB0EF9564ED76928BB79DB3D90CB30D3696ED457D6EE432CB1C66EB9E38E76FA69B058151C1252AEDF7B4D37BBAD970E72F0CB5D5829D5AAD5D5F752D12E6F39BDA19761E9B925BFF095B75CB4ED32AC251A494129B4B44DCAFA1CA72E195F55E89C7949EDA15976EB4DD7928DADAC2F6E82EF2EE9ACD2FA3FEA6DABDA926A0EF19E8D35768C17E8F41D19F6F03CB925F1AFECFF00A98FF275D6FD3AD7BF338D933A6A3975374D3AB2939357693B246479761ECBE14ECBAF819F28DCC32EDCD3CB62A5171ACEC927C9B6BEE0F2F6E5BFDFDDEF7BDB5B9D2ACBB0CD6929BEC643CB6859A539A7D37B8F287864E5DE12B4EB4A0F155128DAC96974F9CC789C2F83D194DCDCDCDA4DB5AE86DB1587952C434A494E1A276D1A7CCCF066AE7E08BBE28A6A492DDB8BAD7A30DF96AB57BC64D8077DA6CE5FF87FF91E77233F73E77DA4CE1FF87FF91C9E97CFAB7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A000004A209405932C8AA25016464A509549A8C136D98D1B7C25254A9A565BCF56C0AD1CB5349D59BBF4457E266794C24BF575249F5ABAFC0F4C199E0053672398E5D9CC5E1E9A6EAC5D3BAB34EFAAE2FA523B4FC9598E3E4A598627723C77559DBCCB4473386A8E956A7522DA709292F33B9F45A53552942A4784D26BB1AB81AB86CF60142D25524FA5CADEA35799E45530D0956C2B7529AD5C5AF8497E275878F31C752CBF0B2AD55DF9A315C64FA00E09C8872189AFDFF113AAE11839B6F762AC976185C88AC8E455C8A39157202EE443918DC8AB90191C8AB914722AE405DC8872D0C6E455CAC0647236BB0CEFB4F8F7FF004B1F5A346E4D9B7D886FF3871CD4ADFECCB5F3A1070F99E16B6131D529E220A1295AA249A7F064AE9E9D4D1E5377B56A7F96177C69CBBC53B34ADA6E2B79ED6348080002800000000678F2576180CF1E4AEC030CF96FB5904CB96FB5900000000000EF7607E4D67FE4DFB123823BCD81F9359FF937EC484ED1C11B5D99BFE5FC35AD7BCB8ABAE4B3546D7669379F6192766F7ACED7B7C162765EABB1A55DCE9D594A94294A151C5A8B6D69CEAE7AF014EA63B12A945EEC526E72E365EF3C38DA6E9505468B6DCDB7393D5BE97DAD99F67713E0B8C942AC9C635928A937A269DD5FB4E5CDAB9495F3AEA6525757470B85A114A1462DAE2E5AB7E922B6130B5E2D4E8A8BE671D1A17A8B9C5EA3E074F0C34F5EA69CE63E9D4C1625D293BC5ADE84B85D7BCC106AA2EF8DBD55D34F4446D162962B1718519EF46945C5C93D1BBEB6EC2983B2A10836AEA2B431C3A99D91E39EF2B274F4432EA999D474A955549C16F5ED7BAE0655B2D8BA69D458FDDDD4DB6A1C17A4F7ECE5D636B5DDFE02F36A749A38B4D269E8D3E0D1D73C65BBAFA9C3CD9618EA74F9B77CC05DB7B4906F9DEE3D4F4E5D94D2CCDD4580CDE159D349C92A6D5AFC389B3DAEFC939465F1861B2BC1CB19897DEE8C7BCC746F46ED6E6BFA4DA6CBE474F24CB545A4F135529569DB9EDC175231E11D67C9CE755A3A9B338AC2C1E2278C538D35BCE3B96BA5CDC4C69DD2D782B2EA475D9A78B713F419C8C5B51E8E63B71C926A3C9F233CB92EF27BF055E11A31A6E29A4DF0E3C4F757C4C30D41CDB6A314DDDBE634D86A0EA4E3529D46A49B4D478AB19F1EBC2B0D568EFA8C9C6CEED36AFC2E7CFF00F91B9CCB193AFD3E1C96DDF6C14F69A12AA9AA2DD38F29A96A974D8E9235615E8C67169C5ABA68F9952C9B34A7889C77E9A8DACE5CF67D0BA4EE32C94E9E163454F90924DAE63CF8DF0CA78DDEDECCF8FF00D6DC9E8AF513B252574F898AE9A4D9470719EF36DB6F9CA626B4E9EEA841CE727C2F64974B3ECCEA6DF3B1F6DE6271B0C2612788A8DEED38DDDB9FA8E26AE3731CF312D3A938C2EF769C1D925F8F9CDF674A788CA2B5385DC9252B2E74B89C9E12B54A0A508CB7549DDBE94664F6EB6FAF4C9196270551D4C2E2AAC2707AA4DF37DCD1D96419CBCCB08DD54957A4D29A5A277E0D2EB39ACCEAE09E114E8B52C4495B762B44BFF798F46CA539D2EFF565A45A515D6D6ACB64FC31B6F6DE6364E58B9B567A2B7A0D5670DF81C5BD1EF2D0D857BCEBB6A76565CD7BB35F9EBB60A37E3BC897A493FDB6D1391EBEE7AEFB479BF93FFC8D7B91EFEE77AED166FE4BFF00230EAE02B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A0000010080B22C8AA25019A824EB413E768DC41DCD35076AD17D0D1B98303D103D103CD067A6007A21AD8EE767EBF7FCAA95DDDD3BC1F9B87DD638681D36CA56F855F0EDF14A6BD4FD680E98E276B3152A99A779BFC1A51492EB6AEDFA8ED8E0F6B694A967529B4F76AC1493EC567EA252350E455CBACA3915720ABB910E5D6637221C80BB9157228E455C80C8E455C8C6E44390177228E455CB42AE4059CAE6EF6123DF36871C93B5B0C9FDE8D06F1BED8272FCBF8E71E3E0CAFE9407118DAF52BE2EA4AB4E53927BA9C9DDA4B44BB12563CED73A326257EBEAB5FBEFD6624ECC000F46C05000000000CF1E4AEC3019E3C95D8061972DF6B209972DF6B200000000001DE6C0FC9ACFFC9BF6247067D37652961E9EC7E3654231539E09CAAB4F572F86B5EBB242257CC4DAECC78FF0BDB2F659AA36BB3094B3FC327C1B92FE962765E9DBE2529C24F79492E167C0C1DEE2D2764D346C2AD24DA7A68ADC2D74786787717F06738AE84F439F3715CEEE3C7C9C772BB8F553CC3174A8D3A34AA6E420AC9249B7DAD94AF8BC5E222E15ABCE517C62AC93F418960E6E8A9F84CEED36D35CEB99159E06A469A97854B4B5EDAB7A1CBEAE4EB6CFD79EB4ABA714AF64925A17B4D50A6A0D437A49395B85EFAEA56961DCACAA4E72E94DE867A529B517DEE2E94DEEAD754FAD74751D7878AE3775AE3E2B2EEB63905E86632A752A26E74EF14ED7767AB3A552B1C6D4A6DD9DDA927A34ECD5B859A292C56611D163B1092FF997B8EF66DE897534F5E3F28C7E3B6E70B8EAB493CBF0D15B92735C52BF0E3C6DE83AB6CE35D6CC62EDF94AB3D6CDDF8697F3959E2331A7249E635DA6AF7BA44D2EE3A7CD6718E5B5F79A578B4AFCEDF31CB59A8A4A12937CCBB09BD7AED3C456AB55AE1BCEE9798CF186EA56BAB70D7546A7A66FB7A3014B7F0B29D24BBE5DA6DF33E6BA3CD86C8152F875AAD5AB59CF7DC9BB272ECE75DA637DF294F7E8D49C25CEE2ED7EDE92215F31A935178EA89D9BBDD5BD44CF199CD58E78E371BB959B03879626B6264DCA3B95372ED2E8BFE2286231B86C4CE962B2BAD357B42A505BCA69F0BDED63CAE963A9549F83E63529C9B5526DA4D49B693BAF712F1D9A2A7150C54E752ED4BE1A515D0D6977D871E3F8F8617727B75CB933CA6AD6DAB29C214D62146129BBEE5EF65D6F9CC3529355155A6D2959269F0691343F58955ACDCE4E366DBE7ED66692B41BE8477B5998EA29DF75E3C4D76272DA1566E74DA836EED5AE9BFC0F4CA94DA6D370D6FA3BA2D0C3CE69C9569455ED67A91B95AFA794D3524EA54BAE88AB5FCE6CE93852A6A9D34A315A248C52A4E31DE7886AE9B5A69A5F9EDD4428356DE9CDAE829B7A60F7A77BF3235D9EFECD26F47DF125D963654A2A2935657E93C1B4892CBE2D257DF4AE66F4927B734E46CFB9D3BED066CFFC2FFC8D3B91B8EE70EF9FE6DE47FF00232E8E06B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A00000000251645516405936B55C53373464A508C9706AE6951B2CBAA6F53706F58F0EC036503D10E279A0CF4C181E881B6C8EBF78CCE8C9BB293DD7D8F4F5D8D4C1F03D149B8C9493B34D34FA181F4446B33CCAE19A61372EA3560EF4E4D707D0FA99EEC35555F0F4EAAE138A7E932B6926DBB203E578EC162B015BBDE2A94A0F99B5A3EC7C19E572365B499A3CC7349B8C9BA349B85357D2CB8BF3BFC0D3B911591C8AB914722AE4064722AE463722AE4064722AE451C8AB90177221C8A39157202EE4745DCFA4A39F63A4F5BE192FBD1CC391D2773E4E79E63ADC7C1D7AD01C5623F68A9F4DFACC1CE6C73DC243039A54A1093927084DB76BDE51526BD2CD7012EF7BB212BBB164D356655A6828D02DC515000000678F2576180CF1E4AEC0304F94FB5812E53ED600000000001F4AD90C5D3C4EC8E634E9C249E1B08E9CDB4926ED3775D566BD07CD4EF3607E4D67FE4DFB1213B4AE08DB6CB7CA1C2F6CBD966A4DB6CBFCA1C276CBD9621F8FA3CD68DB4DD95ECB9CC2A93946ED59BE28F46F6976ADE72EAAD04926AFD6D9D71C6DE9C72CE63DB5F2A2E316E139377B5AFA2BF98BC295469A9B9AB68E37D3D47B5D4C3A6D282567D2C95528C9A4E3C5F1DE66FEBCBF8CFDB8BC4A9C29455E76BE8AEF9CCAA3083B3DD4E4EFC6D766673C3C9A6E0AEAEAF7B98FBDC25393693528A57B7DE62E3676D639CBD2AE37767177EC292A09BBDB9B81EEC261FBFD551DFB420AF2E96B8247B2783A0AAA8A8BB5D6B7679F939F1E3D6FF005D2616B44A84D3BEFCEEF5D5DF5E01525BCA3295E5C526D5FCC6D31D5B2AC056853C4B94653BB4936ECBA5F41E6599E44EABFD634D2E53BD9F61D2672CDC6E716567A79E9616149DA2E4D3B5EDA3EDED32BA4936D277E66DDDA3D9496131B80962B03293506D34F8E9DBC0F3269ABAF43352EDCEE365F6C52A4ACDEAEDD3C4C52A0DE8D3836B827C4F5C6A528F2F57CCAF645954A2DE905E966BC75375CFCF1DE9E1F07692BCE4ED67ABB6ABDC294615139426A76D5B4F9CF73951DD77A4ECD5AF76522F0D0716A9A4D2B2777C3D24C756EA52E5A9BAA61270AABBDB84AC9EF2525A497067A9A846CDBB2E0936625520ACA937149B767ADAFC4CCECDDA493493D58B2CBAADE3659B8AB8277493F798E7424E4AD39456B7B68D9A8C6E6FDFB7A9D38DA9A76BA934DFA0C543359E1E2E34D45C5BBDA4DBB765D9CFCA37E15BF8D082A6ED5277BDAD6D1A7C4429EEA49732B1A379D556DB6A17B5AFAE9F79759ED64D370A4D73AB35F88F28BE0DCCEA2A7250DC94E4D5ED149B4BA4D56D1CA32CAA128DECE6B47C51B3C2626962A9C6BC12BAD1A7AB4F9D3359B5368E58AC925DF170E7356EE3327B728E46EFB9B6B9EE6AFF00C1FF00C8E7DC8DFF00735D73CCD1FF0082BDA32D383ADF1D3FA4FD654B56F8E9FD27EB2A1400257602D7277593A24357D4111BACEF3B9D699267FE457B33384B1DCF73E6964F9EDDB5FA956FB33057130E422C561C8458A800000000944A210405919685574AAA9AD6DC574A31225303A1A1523560A70774FEE3D3039AA15EAD095E9C9ABF15CCCF5ACD7109592827D36FF503A3A7CC7A69F31C64F1788A92BCAB4DBE84EC97A0F461F35C650692AAE6BA26AEBDE07D6B67AB77CCB6306EEE9C9C7CDC57ACF06D6E730C0E0A584A335E11595AC9EB08BE2DF45D688E2F03B579851A752961D53A4E6B5925769AE8BE8B89E0AD5EA56A92A95A729CE4EEE52776D92AC1C8AB914722AE405DC887231B910E405DC887231B9157203239157231B9157203239157231B910E405DC8EAFB9B3BE798E7FF004CBD68E3DC8EBFB993BE758EFAB2F5A0397DA3A946AE713961E6A70EF74D5D3BABA824D799DCD628F4992BBB626AFD37EB6636D806ADC094EFA32A02AD6B3EA2ADA7C094F9986B9D04400126D5C28678F2576180CF1E4AEC030CB96FB5904CF96FB5900000000000EF3607E4D67FE4DFB123833BCD81F9359FF937EC484ED2B8236DB2FF002870BDB2F659A936DB2FF28709DB2F65885E9F42C6D454E84A57B349B34FE1B2D353658F8AA942A41B49493576AF63514F0D468C52AF3756527A3A52D20BA55D6ADF433DDF1ECD5F4F9FF235BF75EAA988AA93AAE2D53949C54B99B464C157556BDEA36A941394DA7CDC12F4FA8F3CE53AEAB5152508B8A5462DD9269E8AFC1369BD7A4A4FE04561E934E3169CE6B8CE5D3D8AF6477F77D69E6964F7B7A7132AF866DCE2D53726A32E6973DD798D861DBEF71DF52524B557E0FACD353AB28C6D5A2EAA8B528293768B4ACBB56BC0D9E1252961E0E726E4D5DB6F56CE1F22598FB7A7E3D96FAAD8E125885524A8B6E56D6CB9AE6673C4B6DBDFBA7ADF8DCC1965451C4546EFAC57ACF3E3F1D8FA79B469D1A6DD17256765BAE3CEDBE667C0F97C173CA595F5F86CB2C61CE68635E268E2EA4273A3156A8946ED2E9B2D59AAA78EC2CE518469D5736E49C541BE2F45E8E07694AB53AA9B84D4ECECDA7C08DE4A2DA493BEAD2B33E8706730C26366DC73995CBD5F4D46594330C2E57516221382A9794A2DABA56E725495ADAF0E2B8236D8C9B783ACAED5E0F5469149A82D1BE84B8970977BFEB395F5A792BE2376BCA09E8AD7D753DB81A91EF7DF5A527C127C1334B8C8B962EA495F5B6BE63D39562E3876E8E22FB8DDD4BA0EBF3B0E4BC1BC27B787833C31E6FF007BE9BCF0BAAF8B76E74D686BF30A8A1BB382DD52E65CCCF6CB13818D3BBC442DD4F534598629E2EB2546EA9C385F9CF95FF1D39F2E5972974F6FCDE6E1BC7A97DBD584C439D669BBE97B1B5DE72A6ACDA76B6873785AAB0B59CE719B8B56724AEA3D6FA8DDA9BDD693D5ABA3EC7C9F57D3CFF17FEAC7F9A49B4DE35EBFF2A27F3422FF00FBF2FB08E9536D478F37319137D7E83E57D97763DBA72EB63E3FF1F2FB0BDE16C7C7FE3E5F617BCEA55FAFD035EBF417CE8E7A865F0CB9C682A8EA385DEF356BDFB0D4ED4292C04DC9B77A91B5DE96B731BFC6BB63E6F5E0B8F61A2DAD7FFC3C5FF888F663778EDCAF6E3DCB43A3EE69E3ACD3C8AF68E59CBACEA7B993BE7399BFF017B41A7095BE3A7F49FACA96ADF1D3FA4FD654285A3CE5498BE608B10DD892B25ADC08D59DE773C8A96499FDD6AA8AB7D999C226EF63BBEE7D2B64F9F2E6747FF1982B8A86B14FA8114B90892A00000000099288250124A211280B04426481299299544819294B76A45F59EB723C2999D4AE93BF312AC65722AE46372B7390E405DC8AB918DC887202EE44397598DC887202EE455C8A39157203239157231B9759572032391D9773077CE31CFF00E9D7AD1C4391DAF72D77CDF1CFFE9D7AD02B8BC4FED357E9BF598CC989FDA6AFD37EB318AA04B505A3CE044884DA560DEA120252BF612DDB40DDB45C42D13D3508349F0E2668A7BABB0C3C755C4CF17F0568F801E79F2DF6B2099F2DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E0CDAECBFCA1C2F6CBD966A8DAECBFCA1C2F6CBD9621F8EFB1893A724D696D4F1AC3A6937ADCD8D68EF5D68D1E09E1ECDEECE715D0A4D23D5C3CB309AAF0FC8E0BC965950F0DAB764EEC470BAA7C122CB04DD253789AA9B4DDB79E9F7F02AF08E3494D622AB7C5C779DD70E3AF59DBFC98F3FF8997F50F0D64DB565D27A70CAD4A2B9AC79E9E1D36B7A739AE8736D1EFA71B452B1C79B9BCE6A3D3F1F82F1DDDAC983A8A9E2249F192B25D25B170788695D2A69BDF56D5AE85CC796BD3DEE7D16BD77ED3CCD566EEB115AD7B5D4DB3C1CDC5965AD57B71CE46EF0D1861E2D51A2A29F1B16751A8B4D34EF7EA34F3A15D38B78FACEEDA694DE9C7DC56AD3AF4EC9632BCD3BAE5B46E6174793718AC445612AE8EFBAD25D2FA11AC7374E86FCE0D3564E3C5DF98C54A2DC929D49CE4B86F36EDD87AA718B8284A2DA7C5257B75B3A6334CDBB78A9D355A73938B524F58B6AFF007177828C924D26971B97AF41392926D4924B793B3D39AFCE79E14A6E4A0F1159372B27BFD3CDAB3D539BD6ABE7E7F1ADCAD8F5782E1B7D5E9D16AD66D37AF1B597A3ACA2C2A766E093B2565C3B4C5DE24AA4A12C6548B8BB2BCF8BF49554AA2935DFAB3B3B6B2689872CC7A4BF1B2BDAD2C3B4DD34D2DF8DA4F8D973DBB4F534A11565649256EA45685251BD936DF16DDDBF399A71BA38F2E5E75EBE1E3FAF1D37F194670A73834E2D269A6655D9F79CBA538AFD5D59C35E119348CD529E261BAFC3711693B3F86F47E9D4F05F8F776CAF4F9C746AFD1F78E7E1F79CCAF08751456331167CFBEFDE4CFBFA9B83C5579AE0EF37AF6967C7BFD3CDECC5CA32C6D47169A564DDEEAE91A2DAF92792C5A69AEF8ACD1B6A50495ACADD069F6BDAFC8A9A565DF1595AC7A64D4D31BDD714E4759DCC35CDF327FE02F68E39C8EC3B97EB9AE63F575ED06AB86ADF1D3FA4FD654B56F8E9FD27EB2A14000164EFC49282ED73845ACBA0EEBB9F46F93E7AF9951BFF004CCE0EECEF7B9D78933FF22BD9982B88A7AC5761668A4392BB0BA7CCCA8261A0D7405AA02000009202024B22A89024944002C08242A5168CB4EC2883764417722AE451C8AB90191C8AB914722AE405DC887231B910D817722AE451B6C054B910DB60003B8EE59E36C77D5FF1470E771DCB3C6D8EFABFE282571789FDA6AFD37EB3199313FB4D5FA6FD6630A04DA00025765B448AA7665B468221A69DC9BDB885A68C70D1F0016D6E8F44792BB0F3A6AD6B99137640629F2DF6B209972DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF62427695C11B6D96F94385ED97B2CD51B5D96F94385ED97B2C43F1F4A9A5CF7B1E79A4EF65E732CDEF4D535A5DDB5356F38A92C44E8E0B2F55D41B5BD2949B76D1BB2E0B434C69EAEF7372694E49AE2932CA94D3574DA5CCDE87829E738BAB5250865D87728DDB4EA495BD22A6698B8CE34E79761AF3E09557AFA02E9B28460E5BA934D73DB47E733452B349A6D714B98D73CDF13867058ECB614A949A4E519BDE5CD749F13631EF70A92DC6AF1766D2B5F9C2689534D3B989D08A56492EC563D3429D373D5BD1372D78BBE87A54685EDDED3F3B3525BED2D91AAEF124DB529D970B4AEC974A4968DC9F3293E06E561E9C95D516D755CA3A7453B3A695B9AEC6A9B8D6528C249B56D38AE865E738D24B79BD785937EAE63D75634771EE2DD6B824F47D479D548C6CEE97327C7892CB3B25DA8E9A661A942A49C6346C9C9D9B6EC92EB35D9C675530988587C3C22E764DB6AFC78248DA61638DA781A75B318414E6EED455B753E09AE9B1C73E698CDE9DE70DB27B63586BA5BF1BC92B59BBDBA9751654657BB95FA6FC7D262C6E367467154D42CD5F58F3DCC547178DC462550A14A33A8D5DC6D6B2E96CE78FC9C6FE38E77C32D57BD41456BEE2EE29AEA3CF87C53AB52A51A9051A94DD9A5C0F439597B8EF865329B84B2CDAAA9ABDADA30E937C6736B9AF27A7615A752729C9A50493B3726F57D563D4AA2695E145BED91A5799506DDDCE6DF4DF51BB1A724A537AF04F53D5DF17F0E8FA6479F10EB28B9D1745349E966EEBA2EC0CCA2958D06DABB648BCA2FC4DCE1ABF7FA51A8E1BB2D5357E0D1A4DB876C893FF00163F88BD13B704E4769DCB75CD331FABAF68E19B3B8EE59E33CC3EAEBDA32D57115BE3A7F49FACA96ADF1D3FA4FD6542800000000775DCFE4E392E7A973D257FB333853BCEE7693C973F6D70A2ADF66612B8A834A0896CA4392BB0B151298B73A090E0EC04304BB5AE1202016B6855AB3025000092482428490082C43D53200189C8AB91134D4DA2A152E4C8BB0000000000000001DC772CF1B63BEAFF008A3873B8EE59E36C77D5FF001412B8BC4FED357E9BF598CC989FDA6AFD37EB3185000005EC00164D35663868F8152C9DF46110926FA8F4C792BB0F3B6923345BDD5D8060972DF6B209972DF6B202800000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF62427695C11B6D97F94384ED97B2CD49B6D97F94384ED97B2C43F1F43DE6B131B3B5A68D0E5589C761713899E1F0AB1146A3B4A2E4E2D4936D34D7DE8DDD4D2BC1AFDE5739EC1636384C45472753953568A4D6B7474C64BEAB9DB67B797172C63C5569E22318569CDCA7157495F824C9862AAC2A52AD4E3053A52525C5A6D3BEA456ABDF6BB9A949A7CF2E26277D75E82DC66D66574DA66F9CD4CCE14A1DE1528426E4FE1B93727C6CDF05D46FDC92AF383B3BA565D3A1C624ECBB7F13AF693AF2934AF7D1F989A93A37B53138C585516DA4E6EC9703D787C6469612388A8AEE6DAA717C34E2CD06D141D4A5452E69B7F71970D2A9E0180AD4676960EA38D44D5D24DDD36BA389E8C71DE32C79F3CE4BADBA4A58E9558C66E6D29BDD8B6F46FA08F0F854A8A8D6BA6DEEA93E317C0D2D7CFB16EB49E1E34D52E1152826EDDBD7C48EFF008ACC561A8BAA935537AB251B3496BBD7E64D73748FAEC62734B75B66C4637BCE25D1A924A5BFBAEEF9EE7A7BE2504DD95B81CC6366B139FBC445B71956BC7B2FA1D1C5B4AE96AB86863966A477E3CA59E9E6AF81C2D7AAEB54A6A552FCABB4D5B811B4999E1F0D9651C165D5DC2B466A535AB76B3BBBBE3AF59E0C6E2274F17512AB28A49595F4304F2AC4629C7118AA8A8A9C25283AB7BC9455DB492D3CE7931F8996EDB7D57A67CAC7D4D7B8A60F1188C4D29CEAD473941A49BE63630C7BC2529C309524E7555EA5792B4DBE85D091E4D9EA54674EA77C492734949A7A2B1B779751DF6B7695DBF829B69B5D29F0D4F1726378F2B8C89786F2DF397B78B289DEB4EEDDED7777C75E736D292B5FA743C546953A552D0A6A12E0EC7A66DD91EBF8F778ED8BC778FD560ACEA4F37AF87A6F71DFE03927BADA49D9BE6324B3ACBB0B270A119E22519A95F7928C1A5AA4F8B5734B9FE36A61730CC161AA4E954A95229CA33FF956B6E66797038B854FF68C4D384EB26D5D2B5FADAE17EB3B1B7510CEB095307E135F0AE9454DD3A7DEE5BE9B92BB7676BD8C38DA90A5878D6C3D653A134A34DA6DCAA3B6AECB85BA0D4E3AAC71187EF7520A9CA2DB859AB27E6D3B4F0E07115A851AF46559F7BA91BDA1515D3EA7CD706DD7E1E69C15959349BEDB234DB6EEF90AF2B1FC4F7E5D2BD15D4EDC7A1235FB6CFF00F815E563F88BD13B7CFCEE7B9678CB30FABAF68E18EE7B9678CB30FABAF68CB55C456F8E9FD27EB2A5AB7C74FE93F5950A000000001DEF73AF1267FE457B333823BDEE75E24CFF00C8AF66612B878721162B0E4AEC2C544AE01F109AB1000B70442564346C05AFADC9E3A316D08E3A300D044AEB21A0049002A45C8B8209B9254018EB2F849F4A31996AABC3B1DCC40800028000000000000771DCB3C6D8EFABFE28E1CEE3B9678DB1DF57FC504AE2F13FB4D5FA6FD66332627F69ABF4DFACC614000000000000E27A2296EAEC3CE678F257601865CB7DAC8265CB7DAC80000000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E0CDAECBFCA1C276CBD966A4DB6CBFCA0C2F6CBD9621F8FA055928CE326EC934D9CA6268CE9622A29C257726D34AE9A6F8A6759555D34786749A6F727382E88C9A474974C39DDDD6FB8FD0C869FEE4B9B999D12A3374E52EF989BAB5ACDB4EF7E7B9925849C70EAA7845672B26D6F68AE3669CE52A552ACE30A70936DF4356D78F51D46B37292E17D35E28F3429B6ED3A9524BA1C9B47AA12B2B24B752F38B4787328BA9082E74EFC4C38675B0B35283B36ACD3D535D0D73A3693C33C449422937276D782EB30CF2C9A9B8A9BB37F05B93575A6BF79DB0E5931F1B1E3E5F8F9659794A46584946F3C23525AB54EA38A7E6B3B15AF5DBA0E8D0A71A34E5C545DDCBA9BE7291CBDAACE13A934ACA49C5B77BBB25CD6F3995E5534D2551B6D276726B5D743739B1DFB73BF172FEB594B0ED6229C9F34AF6378B55C4C50C0F784AA394257764D49B7C6DCFD87A29C54A71A6DA4E4EC9B39727279D7A38386F1CD5BB683133785CE5621A5BA95D5E2A4AE974333E7BB412CC70D0C3504E9D3714EAEBCA7D0B9ECBEF36988CB3C212BC2E9ABAEF8ACF8B56E7E83C7F906126F755276D5BBB565AF5753353931F5B9D37E17DE9AFC8E7BB0AAD6B6A89AF31BCEFF0045A937526937BCE1B8DBD5DDA4EF6B5D713C3472B8421371DF4D4DC5AA69BD52BDDD9AB2EB33ACA6717694D5FA37DF1B376FB99E0E6E2B9E7729FAF771F2E38E331B08547571129B566DB6D5F85DF033D4BEE3B71B6864A597BA2DA53828ABD9B6D5D2576FEE2AE29C6EB54CE9C78784D397267E576F0F7FCAF1AA50C7E0AABA9276956A6EED34ACAEB8AB5D9A4CDF26AF82ACE580854AD425AADD836D5FCDE6E77A5CDDD5C341D47349A974A76665A14AACD6989C4257692551F476F41D1873186C1E638CAF1A73C3D7845E9294A0D24BB6DA769D3D0CBB2DC12546181AD8CAED59B51718ABA5CED5B993F37597A74272C33AAF1789BABBB29BB69E7E0638C672569D5A8D3E29CDB4C0CF8686E4A6B4E5B7A70359B6AFFF00815E563F89B6A315149256EC351B676590A4B877D8FE24BD13B702773DCB3C65987D5D7B470C773DCB3C65987D5D7B465AAE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A04AFBC8004BE3AF0165C504EFC470EC027AF9810F868136F401C7444B764382238B002E5B8221AE80A8B8B822E413717205C03574D3E74607A3B19EE619AB4D810000A0000000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB318AA00000000000019E3C95D86033C792BB00C12E53ED6099F2DF6B200000000001DE6C0FC9ACFFC9BF624706779B03F26B3FF0026FD8909DA38236DB31F2830BDB2F659A936DB31E3FC2F6CBD9621F8FA1BD4A3827CC5AFCFCDCC2F636C30BA09BBDE5E6932161E37BABDF9F5667BEA37B9C0C30A2EF77A19630515AD9B26F6E809809C14A2D3D51865438284A492778A4EC93E948CCDEBA70EB31395A6DA6EEFAC0C4A924ED26FA5BBBBFA4BAC3C2D649DBA2EEC6569356622B757102234A30774B5ED65ED1927749DD59E8639D4BBB2E045DC7506D32A29B4926DB76D66FEFD4A3A09F14D747C2665534F5D09DEBB7A34973B5A3030F83A6B55AF0766D27EFF00392B0F14B44F874B32DC9DE5CC05234A2ACDAD7B5992C55CAC9BB79826DABBD1F3AE8F38112827CC6374537C64BB1B5EA33262E062549DD3DF9F66FBB7ACC8A9A44DD129A680B4558D16D9BBE44FCAC7F13777D789A3DB177C8DF958FE24BD2CEDC19DCF72CF19661F575ED1C31DCF72CF19661F575ED196AB88ADF1D3FA4FD654B56F8E9FD27EB2A14000000003BDEE75E24CFF00C8AF66670477BDCEBC499FF915ECCC2570F0E4AEC2C561C8458A80000129F490009D57027810986C037764A44241EBD804F12169AF313C1117BF61146882783D068D010087A11702C62A8B54CB913D62C0C60000000A000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D80609729F6B027CA7DAC00000000003BCD81F9359FF937EC48E0CEF3607E4D67FE4DFB1213B47046D76674CFF0DDB2F659AA36BB34ED9EE1BFEEF65887E3BE52B21BC62DE175C5A4F4D2FCC6D866DE446F2316F0DE57032B90DE462DE4AEDA777CEFA02927669E80655231C6579DC84FADBBF490AC9DD019B7B9CA4AA26AC8A4AA5959712B17CF277032AD1377D429496AF546293F8574F8852717AA032DF5BC5BEC263513BF4981C92778BB137BA724DA7CCB9883D0E4AFC56A4B95CC11A9CCF8F593BD628CBBC379189B7C383EB414B8EBE6B01994B41BC6172E97C3AC5F4E2066DE221513BD9DCC5BDA13BEDD937A2E1D4067DEB2349B5EEF913F2B1FC4DB6F1A6DAC77C8E5E521F892F4B3B710773DCB3C65987D5D7B470C773DCB3C65987D5D7B465AAE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF0022BD999C11DEF73AF1267FE457B33095C3C392BB0B158721162A0000000004A76640025B17B9013025BBBB04AC85D681BD08A5F990E0885A221BBB021B17045C0361F00C3031F001E8C050000000000000EE3B9678DB1DF57FC51C39DC772CF1B63BEAFF008A095C5E27F69ABF4DFACC664C4FED357E9BF598C28000000000000678F2576180CF1E4AEC030CB96FB5904CB96FB5900000000000EF3607E4D67FE4DFB123833BCD81F9359FF937EC484ED1C11B5D9AF1EE1BFEEF659AA369B39A67987EC9FB0C43F1DAA92B2E371BC62DEFB86F1B61954BAC6F69A79CC5BC37851977AEADF70DE7CECC5BC43936F46924B9D146752BBB5C8DEEB312975852BF0BFA00B49B52E8E827794974329BC55DF4688AC9BD7D1F1E60E57566F55C0C5BD7D39C953696AEC80BC6CF56DAB7358972BE896862954BE88B45D95DB6DF381960F757177E81DF56F5B5B7498253B68AE15AD76D26B99F3951E8DFE9614B5D5E9D079D4DAD19752E367A106652B34D68F988DE316F758DE28CBBC37BACC5BC3780CEA5A1AADA769E45269DFF00591FC4F7A9EA6B769657C92A6897EB21A256E925E9676E34EE7B9678CB30FABAF68E18EE7B9678CB30FABAF68C355C456F8E9FD27EB2A5AB7C74FE93F5950A000000001DEF73AF1267FE457B333823BDEE75E24CFF00C8AF66612B87872176162B0E4AEC2C540000000000000020095C4965586EE828D9019040603000824802AFA482CF81500000A000000001DC772CF1B63BEAFF008A3873B8EE59E36C77D5FF001412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D80619F2DF6B2099F2DF6B200000000001DE6C0FC9ACFF00C9BF624706779B03F26B3FF26FD8909DA382367B39E3BA1D92F619AC367B3DA67345F54FD86217A759BDA8DEB1837F815552EDE8D2E66F9CDED87A37BAC6F1877FB48726DF1D3A0833EF3E7561BC61DE5D361BE594666D37AABF46B61BDC3530A96B6B8DFE8FBCA336F0DE5AD96A60DEB739785674DB4D269F14C1B8BB6DE8B561CDC5D9A69A7C1AE0568621D1C442AD3B6F4249ABABAD196C6E2E78DC4CB1157754E76BA8AB2561B04DDDB95EEC39F418EAE22751C53576959595B423BFB7495376DD4EEB4D441953E76554D5D3B989CEFD81376D7D64567DE6EEDBD58526B8BD0C0E4DDEDAA5C43A89E890A3D0A774378F32959E85F7FA1E8368CDBC37BACC0AA2B7392E6ACACF5E71B19B79AD59E1DA177C92A7948FE267DE5D278F3B95F24ACBA2A43F117A59DB953B9EE59E32CC3EAEBDA3863B9EE59E32CC3EAEBDA30D57115BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF00915ECCCE08EF7B9D78933FF22BD9984AE1E1C8458AC392BB0B15000000000000000010C8E62C5428C20C1040600065592C8600A96B957C400002800000000771DCB3C6D8EFABFE28E1CEE3B9678DB1DF57FC504AE2F13FB4D5FA6FD66332627F69ABF4DFACC61400000000000033C792BB0C0678F257601865CB7DAC8267CB7DAC80000000000779B03F26B3FF0026FD891C19DE6C0FC9ACFF00C9BF6242768E08D96CFE99C51EC9FB0CD69B1C83C6F47E8CFD8621F8E869DEA548C13B6F34AEF98DEC309828C1274B7DA5AB949DDBF49CE52A96AD4DB7C24BD66F70D2856C4D284EA6EC67349B5D072E5CACB24793973B2C919FC1701FF0D1FB4FDE3C1B00D7ECF0FB4FDE7A73DA34309528BC3DA0E49A714EF7EB359DF25A59B38659D975B71CB96E375B7A6784C0CA2D2A2A0DF06A4EEBD2CD1D4F815254DB4F75B57E9364EAEEABB925D7734D56A6F569B4EE9C9BEDD4EDC39DB755D38792E5755B0CB284315886AB36A9C15DA4F57D57375E07975BF668F9E6FDE73D96D7EF75676766D25F79D3E5581863B06F1152AD48DA4E2F752B24B9CFA38E38CC7CAB39E795CFC7161F03CBBFE1A3F6DFBC78265DFF000D1FB6FDE6DE3B3F4651528E2AAB4F8356B3FB8A4B23A1BEE0B1356525C52B69DBA0F2E35D72468730C1613C1A5530F0EF7382BD936D35D0EE68F7CDA63EB77BF08A5BD751728A6F8BE6348A5D7A99E5C24B2CFD6B8792E52EFF001BDCAB0787AB41D6C4A736DB4A37692EBD0F7BC165EFFF00AF1FB4FDE69F2EC52850506F4527A739B284FBE3694D24D37BCF824B9D9DB1E29E32D79F3F9194CAC8B4B09807184D61E293959ADE775F7933A1972FFEB46DD3BEFDE79F138BC3C70CA2A6F7E0DB73DDB295F9BA4F0AAD373DFA89C527A45F375BEB3330C6DD474B9E531DDAB66786A34251A942EA136D6EB77B3EA7D0781CDA765AB667CC310A74A9C13BB4DB3C4A5AA7CD73CFCD3C36F47C7CAE7ADBAFC1E4D82A7420F110756A34AEDCDA49F42499EB593E5F249AC136AF6BA9CBDE79D62138AB3BF0E0CCF3AEFC1A8B4DEADF07D67CC9CF6DAFA9782493D76B3C9F00ECDE0A574B8B9CB87A4C53CA72B706BC1DC5BD2EA6EEBEF2F85AD2788826DEB7E77D06178849BBBE0C979ECD5D98F04BB8E6F1F47C1319528EFEFA4EE9F3B4F81AECDDDF25AD7BDD54871F39EFCE6AA9E6539269AB2D7CC6B33277C96BF1BF7C87AD9EFC32F2C6578F2C7C72B1CE9DCF72CF19661F575ED1C31DCF72CF19661F575ED02B88ADF1D3FA4FD654B56F8E9FD27EB2A14000000003BDEE75E24CFF00C8AF66670477BDCEBC499FF915ECCC2570F0E4AEC2C561C95D858A8000000000000007AF0187C3621D758AC5AC32A7465385E0E5BF25C23A70BF481E420DDD0CB32C865385C66618DC4529625CD4634E8A9A5BAD277D574A21E40E3994F0AF10A749E1258AA35631F8C828B6B47AABD9A615A47C08E63D388C06330B4E3531185AD4A12D14A74DA4DF6B44613058AC6CDC30987AB5A495DAA706ECBAEC079C192AE1EB51ACE8D6A352155349C25169DDF05666696598F8D1956782C42A706D4E4E9B4959D9DDDBA483C8F890CC94A954AF5234E8D39D4A9276518A6DB7D491931781C5E09C562F0D5A8B92BAEF9071BF65F881E72ACB321810000A000000001DC772CF1B63BEAFF8A3873B8EE59E36C77D5FF1412B8BC4FED357E9BF598CC989FDA6AFD37EB31850000000000000CF1E4AEC3019E3C95D8061972DF6B209972DF6B200000000001DE6C0FC9ACFFC9BF624706779B03F26B3FF0026FD8909DA38236390E99B53FA13F619AE363915FF002AD3B71DCA96FB0C43F1B8A54A53519B6926D696E27B5529A69A6D2E29A30D271877B4F826AE6DA3184A2A51B34D5D5B81E6F916CB2C7CFF00912DB2BD50AB0CD68428E2AAF7AC5D3568547C26BA1FB89A5B398B9C26EAD75092E46EEA9F5BE84793BD45E8D196352B460E11AD5231E0D29BB1CA67BEE39CD5FF00B46AEB61E71AB3849EF3849A6D3BA7630ACBE725BDDF12BEB669E86D5C2318B6EC92E2CC3069A4D707AA3AF05BBAEBC13595AF1C3072A12BB9A95D5B456B1D7ECB54EF7964A1749F7D6F57D86B329961D629C313184A338D92974DFA7A4D86372CC22929D19B8296AE3D07D499CCB198D5CE658E7728DBBA6A3293A35DD253E5A4D59BE95D0FB0BC372841460D28DEEF5BB6FA5BE739A7974145B8D44D76B4C8A54A54AFB8DABE8270CEF697E465D69ADC6C2156B622318ABCE725BCEEDA6D9E2794CF8AAD05D5666E711051827526AF7D1595DB315F4E36F38E5B2EA4FC5F8F2DDDAF061955C14E508384DB4D5DA6B47D87BF2FA951D1A90C44E30C1C53537BA936F9927C5B6442942BCA566B7D3BDAFCC64784949ADF7751E4C5705FEBD67A26AE126DE4CF2B33BE8C5B8E39D1954852A18283FD5B4D36EDA59F3F98CB8C94EA45554E1BB05783505CCB4D79CC2A849C21072D149DE2D70BF3FDC7A674DBC2469AE2B46498C97665C9964D055A1531755B94D27C5BB71F4157964D34FBF47D0CF76292C3D48C2324E76BB4B9BB4C2EBCD3BDD7A0F1FCAB2CBA7D0F896C92D7B9539A4AD736B4ABD6A1965154ACA5526D6F357B6A528469D6A31A94DA9464B46B53D94A508E17BC55A2A71BB69DEC7E771E5F1CACAFB7C99CCB19A63C3D5C4C316F0D5EA2AAA516D4A2B55A751A7719EF3BB6D5DA37D42A51A1BCE9E19A6D5AEE573C8E82D5B564F51C9CB2EA438B3F1B76E5331A1278A9C9349A4B4B751ABC6BBE4B88BF1EF94FD6CDE6635212C65474DA715649AE0DA3478F5BB966323D1529DBD2CFB1C1FF00CE3C1CB65CED684EE7B9678CB30FABAF68E18EE7B9678CB30FABAF68E8C57115BE3A7F49FACA96ADF1D3FA4FD654280000000077BDCEBC499FF915ECCCE08EF7B9D78933FF0022BD9984AE1E1C95D858AC3908B150000000000000373B39C336FF00F5B5BF034C67C2E2EB613BF778928F7FA52A33BA4EF076BAD78705A81BF75F2EA5B2F94BCC3075710DCABEE2856DC4BE1ABDF477E62D93E6D5715B4153170A70A2A8602A468538DDAA718C1D95DF1E9B9CED5C5D6AB84A1859C93A5877274D5926B79A6F5E7D50C262EB60AA4AA61E4A329D39536DA4EF192B35AF5056DF25C5E27194F34C3E2B1156B539E0AA5471A92725BD1B34D5F834C6655EB60F67B29A582A93A542BD3954AB2836B7EAEF34D36B8D92565D669F0B8BAD84755D0928BAB4E54A7749DE2F46B533E0337C5E068CA853EF55684DEF3A55A9A9C2FD293E0FAD58836EAA54C5E4995E271ADCF110C7AA546A4B594E9AB36AEF5693D13E6BD8C98BCD71FF009F925E15577238DEF4A1BEF77737ED6B70B58D0E2F34C5E33154B115AA2DEA36EF718C1461049DD2514AC95FD2639E37113CC1E3E534F10EAF7D72B2B6FDEF7B70E3CC07518486170583CFAA46B55C2CE18BEF2EA50A6A738536DE8B5564DA49BBF32479E9623073C8F32C3AC5E3F1B4553524AA5049519DFE0CAFBCED7D53E9B9A3A19AE370F8EAB8CA5512AB59B75138A719A6EED38B566AFCD62F8ECE7178DC32C34951A3413DE74A85354E2DF4B496AFB7801AE643E0491CC047380C00000500000EE3B9678DB1DF57FC51C39DC772CF1B63BEAFF8A095C5E27F69ABF4DFACC664C4FED357E9BF598C28000000000000678F2576180CF1E4AEC030CB96FB59025CA7DAC00000000003BCD81F9359FF00937EC48E0CEF3607E4D67FE4DFB1213B47066C720F1C51BFEECFD866B4F5E5789A784C7D3AF5A33708A926A36BEA9AD2FDA21F8E814AEF4E0CBC52492529A5D0A6D1E2FCAD965BE2F15E88FBC959C65ABFDDE2BD11F799CA4AE39E16FE37787C0AAB8375BC2269EB68EFBE6F396960A30C1BACEA55BD934B79D9A695DFDE69219E65F06F7618C57E36B2BFDE64FCBF97EE6E77BC638F0B36ADEB33E13F89F57FE3DC95376BCA4EDCD2936BD06555609729686A3F2D65B7BF7AC5F65A3EF27F2DE59FC1C57A23EF37849171C2C6EA93A755B8C9A692BB572EDD05250556A71492537EF344B3CCB57FBAC57A23EF2567B96A5F138A7F67DE759645B85AEB6A6529694EB549372B26E6D26ADC78F4E878B1786785841CA751CA6DA6BBE3D2CBB4D0ADA0CB970A78CF4AF793F9C1977F0717E76BDE599EBF59BC5BFC6C9CACDC93774B8B6DBFBCABA92971937E735CF3FCB9F1A58A7E68FBC8FCBD96FF000715E88FBC97296EDAC30B269B1B45B52774D689A6D35E83D986C0BC461A55215AB39A6D28A9BB696E2EFD6689E7D973FF00758AF447DE4FE7065FBB6EF78B4BAADEF2CCF53D562F0EEEEC743F91EB7C18BC44DCDBE0A72B2564EEDF9D1E7C4E0A787A2A752BCDBDE5169546ED757D4D33DA0C034BE0632E9F1BAF7879FE5EE3674F16FB777DE5FB3FF4BC33F23DAD463AC6FAF1BBBB655BB9E1FCB996BFF758AF447DE3F2D65B7F89C57A23EF39DB2BA618D934DA422A09EE4E716F8EECDABFA0F7E1B053AF8775A78CAD4E093D5D4765AA5D3D673BF9772EFE162BD11F793F97F2F71DDEF78BB747C1F79E5FA31B7763BDCEC9A8E8E195E2E538A78A9A8369392A9276E1CDCFA35D46B6AB937284AB55924DA69D47AEB6E935CB3FC045A6A38C56565AAD174712AF3BCBBF878AF447DE2FC7C7B916677F5E99370938DF45C0F266693CAB1135CF3A69F99B21E6F96C9DDD3C5FA23EF3CD8FCCF075F2FA987C3C2BA94E71779A56B2BF43EB3D13D4D3959EF6D39DCF72CF19661F575ED1C31DCF72CF19661F575ED05AE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C3908B15872576162A0000000000949C9A496ADD917EF33BB56575CD7031BBAE61C781E94AA2D1C23A24B577EAFC06F548A6F72293E3676ED03CBCE19EB4E6EE9C22D26D5EFA5FDC522EA2928B841B76D5F9905798739EA7DF559B8C3A6DE877291EF94D38EE24DBBB7D041E7F50E63D72EFD15BA9439D593EA2915520E4B713E769EA95EE079C83D53555C6CE316ACD249F4A09D55271DC82765A5F8AFFD407908E93D538D569C5C6296ADDB9ADC5FDC62542A3BD926D369ABF0B018582F384A0ECD6A500000280164B9D8456CDF31DC772D6A39AE35B76FF67FC51C4DFA0ECFB99DBF2A632EAFFECFCDDA815C7627F69ABF4DFACC666C47ED1534FEDBF5985F10A00000000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003BCD81F9359FF937EC48E0CEF3607E4D67FE4DFB1213B4704480228000000000000000000002C000000016000000058824011624002090001DCF72CF19661F575ED1C31DCF72BF19661F575ED04AE22B7C74FE93F5952D5BE3A7F49FACA85000000000EF7B9D78933FF22BD999C11DEF73AF1267FE457B33095C3C3908B158721162A0000000002EFA5FA400253934ECDB4F8D8373B59B76EB2D1E4BE6EB252E7724F8014BC92BA6D222F26EEDBEDB9772D5A4B81583F86B4D1BE0042735A26D5FACAB6EF6BBBAEB32BBA8B77BEABF128B849AD5A22A1B95DA6DDDAB7121B69EADA6FACB415EEDBD522376F249C96BCED810E526ACE4EDDA45E4DDD36D979D3518B7BE9DB9973849A69257D3A38814DE9A7CA69F695BB5C1BF4976AE9DF8A651806DB776DB6F9D957C49643000000B565CA27668B806EC8ED3B97A53CD71A9F0587FC51C54B81DA772F8B96698E49DBFD9FF00140AE3B10DAC4D5FA6FD65347DA64C4ABE22A7D37EB30F060007C580A0000000019E3C95D86033C792BB00C32E5BED64132E5BED6400000000003B2D8DA38DAB90E732C2E323429C69B7520E8A9B9ADD7A26DAB739C69DEEC0FC9ACFFC9BF62422381248244500000000000000000CB86C3D4C55654E8C6EDEADF325D2CC4759966096132E849A4AA554A527CF67AA5E6411AB595D1A315DF1BA92B6BCC8F26228538B7BB04BB19D14F0F09D275AB565469EF3826E2E4DB4AEEC9745D7A4D76230D816DA798A4DF3BA12B7DCD81A19A5176E6065C7509E1B13528D4B6FC1D9B4EE9F434FA1AB33CF07756E7408B80028000000000000000075FDCEA8E32BE3F1AB058B8E166A8A7272A4AA5D5F859B56D4E40EE7B95F8CB30FABAF682571155355669BBBDE777E72A5AB7C74FE93F5950A000000001D8EC456C6D2CA73A584C242BC254D2A9295650705BB3D52B3BE97F41C71DEF73AF1267FE457B33095C3C3908B15872576162A000000000000253F82D5B5613B3BA2001773D2C93F3B2AA496AF5640025CB8DAFABB917B4AE969D043202A6F6774ADD44369BBA56EA043203254ADC55C800252BF359157C00020864900000142C9F332A022E755DCFEBE330F98E2A581C2C3112746D28CAA2824AEB5BD9DCE4D368EDBB9847BE66B8D57B5B0F7FBD02F4E3ABB6EBD46D59B9BBABDECEE617AB32E25BF09AABFE77EB31012D34AE42B5F5253B68C35CE828D69744164EEAC55AB300000819E3C95D86033C792BB02B0CB96FB5904CB96FB5900000000000EF7B9FC5CB6733F8A576E9D92FF00B2470477FDCAEAC275732C14FF00DE538CADD29369FAD0895C003D198616781CC31184A8AD2A351C5AEC7C4F380000500000000000015AEAE77955A7462D5ADBAADD963833AACA71B1C565F1A727FADA4945A6F569689FFEF4047A31BE2BA3E5AA7AA073F89E2CDECB13DEE9BA73A34EB536F7946775676B5D34D3E0BA6DA1ADC46330E9B6B2DC336B85E751FDDBC07833FF001A56EC87B08D6D3BEF33D18CAD3C462275AABBCE6DB6ED6D7A92E0BA8C305657E7608B000280000000000000000775DCAE2FF286632B68A824DF5DFF00D0E14FA3F73BA3E03B379A669555934D45BE8845B6FD2FEE095F3AABF1D53E93F5950DB6DB7C5BB80A0012BB009365B77AC9E0B422DD210DDEB3BBEE77A64B9FA7C7BCAF666709A1DDF7329C24F33C2CB5EF94E0FB16A9FAD02F4E1E1C8458BD6A32C3E26B61EA26A54AA4A0D3E94DA28540000000000000000000C082196E62A146432590C8000E70239C8279C800413CE4010F880F8800000A1DC772CF1B639FFD3FE28E1CFA17730A0E961735CC27A41454137C344DBF5A112B82C42BE26AFD37EB28925C44E6E55253FDE6DFA5956DB0A96D5884EDD800166B9D156EFC513AA7D44B49A08A804A5A6A150678F2576181A33C792BB00C12E53ED609972DF6B200000000001BAD91CD564FB4586C4D495A8C9F7BAAFF00E57A5FCCECFCC69401DE774BC91D3C54339C3C6F4AB251ACD2D1492B27E7565E6EB3833E91B15B4186CD301F90738DD94B73BDD3737A558FEEB7D2B9BA7B51CFED4EC6E3326AB2C461613C4605BBA924DCA9AE892FC78760472E020140000000000003250AD530F5154A337192E75CFD4CC600DAACD6155255A0E12E76B54FDC79ABE229C9BDD6DF98F180849A93BD80000001400000000000000F4603038ACC7131C3E0A84EB5593D1455EDD6DF32EB611181C1D6C7E3A96130D172AB564A314BD7D896A7D1F6C6AD1D9DD8DA19261A4BBE568AA6F99B8AD6727DAF4F39E8C9326C06C66575332CD2AC1E29C6D292D6D7FEC4573B7F7F623E779FE715F3CCD6A636BDE29FC1A70BDD422B82F5DFADB076D6800285A3CE5494ECEC11621BB6889224B9C0849B3A1D86CC565DB4D41D676A3884E8CDB7A2BB567E948E7937725B6ACD369AD53420EC3BA1E4EF2FCE7C3E945AA18BD5B4B4535C579F8FA4E50FA664598E176CB676795E3DAF0BA514A6F4BBB709AEBE9EBEA67059E6498DC8318F0F8C8374DBFD5D54BE0CD753E9E94078004D3574C1500000000000000C00041247385473000820300086432590C032192C8021800000126DA4936DBB24809846552718538B94A4D2492BB6DF048FA7E614E3B29DCF1E11B4B15888B83B3D5CE77BFA15D7991E5D89D95F004B3BCE62A938272A54EA69B8BF7E57E0FA1737139ADB4DA179F66B7A2DF81D0BC68AE9E993EDB7A1205F6E7800142571209880973104BE212B804B9D92DB7A20DF3049AB843A999E2BE0AD798C17E66678A7BAB5E603CF2E5BED64133E5BED6405000000000000149C64A516D493BA69D9A676B90F741C560E9C70D9B5278BA2959544D29A5D77D1F9EDDA71400FA4622A6C0E75FADA93585AAF56D295277EB56B33C8F67F621B6D67D34BA3BE47DC7040269DEFE6F6C47CFF003FE647DC3F37F623E7F9FF00323EE38200D3BDFCDFD88F9FE7FCC8FB87E6F6C47CFF003FE647DC70401A77BF9BFB11F3FCFF00991F70FCDFD88F9FE7FCC8FB8E08034EF7F37F623E7F9FF323EE1F9BDB11F3FCFF00991F71C1100D3BEFCDFD88F9FE7FCC8FB87E6FEC47CFF3FE647DC70401A77BF9BDB11F3FCFF991F70FCDFD88F9FE7FCC8FB8E08034EF7F37F623E7F9FF00323EE1F9BDB11F3FCFF991F71C10069DEFE6FEC47CFF003FE647DC3F37F623E7F9FF00323EE38200D3BDFCDFD88F9FE7FCC8FB87E6F6C47CFF003FE647DC70401A77BF9BFB11F3FCFF00991F70FCDFD88F9FE7FCC8FB8E08034FA0D2C9B60F0FF0EB66AF1096BBAEABD7CD1499E8ADB6B90E4D86787D9FC0C6A4AD6BA877B8B7D2DB577FFBA9F3600D3639CE778FCEF13DFB1F59C92BEE535A420BA12FC789AE00280000000253E92C50045C86F4B22B77D200CF82C5D7C162A9E230B5654AAD3778CA2F55EF5D47D0F2CDB4CAF37C1AC0ED250841B567371DEA727D3D317FFB73E6C93613B3B3058FA362760F29C6C5D7C8F358C22F5506D548FA534D79EE6BD773BCC2526A398617B5A92FC0E2D3945EF424E2FA53B17588AEFF00DF54BFD37EF069D9FE8DF33F9C309FD5EE1FA37CCFE70C27F57B8E2DE23109FC7D5FB6FDE3C2711FC7ABF6DFBC1A769FA37CCFE70C27F57B87E8DF33F9C309FD5EE38BF09C47F1EAFDA63C2711FC7ABF69834ED3F46F99FCE184FEAF70FD1BE67F38613FABDC717E1388FE3D5FB4C784E23F8F57EDBF7834ED3F46F99FCE184FEAF70FD1BE67F38613FABDC717E1388FE3D5FB4C784E23F8F57ED3069DA7E8DF33F9C309FD5EE23F46F997CE384FEAF71C6784E23F8F57ED31E1388FE3D5FB6FDE0D3B3FD1BE65F38E13FABDC4FE8DB32F9C309FD5EE38BF09C47F1EAFDA63C2711FC7ABF6DFBC1A769FA36CCFE70C27F57B88FD1AE65F38613FABDC719E1388FE3D5FB4C784E23F8F57EDBF7834ECFF0046B997CE184FEAF70FD1AE65F38613FABDC719E1388FE3D5FB4C784E23F8F57ED3069D9FE8D732F9C309FD5EE1FA35CC7E70C27F57B8E33C2711FC7ABF698F09C47F1EAFDA60D3B2FD1AE63F38613FABDC3F46998FCE184FEAF71C6F84E23F8F57ED31E1388FE3D5FB4C0EE287733AFBE9E2B35A108F3EE41B7F7B46D2861B64364977EA9888623171E0DB55269F525A2EDD3B4F994ABD692B4AAD46BA1C9B31834E9B69F6C7179EDF0F453C3E093F8B4EEE7D0E4FF0E07320000005000012BB2CDD9152C9DF461116BABA77279B416B6AB80EB40346AE678DB756BCC79EFD47A22BE0AEC03CF2E5BED64132E5BED6405000000000000000012BB2C92412D09B0445FA10ED41B488DEEA021A4B802D74F8956ACC28000000000000000000000000000000000000000000000000000059256B950059B5CC55B0002659A4F54552B93C1E8110F46096D35D6425761405B4E055AB00000000000000000000000000000000000000000000000000000129DB464F0D5702A13B04592BBBD8CAB82313765A1963C95D8061972DF6B209972DF6B20280000000000000002CB812513B32E1147C752C926B40D5C25602AD589E31EC265C0AABBD105002524D7102000000000000000000000000000000000000000000000000000000005A3C087C584F4B109004AECB36921A2442777A844A49EAC70D18B2B0EA604356E0416E1D8435CE8080005000100005000000010000500000000000000000000000000000F446DBABB0F399E3C95D80609729F6B04CB96FB59000000000000000000094DA20016DE41C9150106C264A4D9364828D26AE885A3D48BD9E85B46820D73952D7B2B32A140000000000000000000000000000000000000000000000040001425344008B3BA77E61C754427CCC9B5B5403AD06ECAE1EAAE88577A013C7B03765A06EC8AA5760126C16D120D26AE80A81C0000005000000000000000100000000500000000000000000CF1E4AEC3019E3C95D8061972DF6B20000000000000000000000000002DCC8AB600008002DC5150000000000000000000000000000000000000000000000000020000000004A60012F4E017000087C495C0000B5B90B8B00099702A000000500010000000050000000000000001000050001000050CF1E4AEC000FFFD9, '1', '2023-07-27 18:35:48', '1', '2023-07-27 18:35:48', b'0'); +INSERT INTO `infra_file_content` VALUES (14, 4, 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900000F9549444154785EED9D7F8C1C6779C7BFCFECD938055225A50DF48F602A9290A4BE592B181227C52901299492861F466467030EB44D1B723B77C48404DAE6DCA21208B177364E5BA456B8F1CD5EE00AC1544AAAB4A481D8E44705B7B34ED3343624162D4205E10635B5F0DDCD53AD6B1C50B89D7766DF1DEFCD7C4FF25FF73CDFF77D3ECF7EB4DEF59D57C02F122081650908D99000092C4F8082F0D141027D0850103E3C488082F0314002D908F019241B37769584000529C9A23966360214241B37769584000529C9A23966360214241B37769584000529C9A23966360214C490DBA7369FF7F2D5AB577922D804C55A003F306C1D9D3251078AFF86621E70DA7EBB7360742E379A37199A203BDE535DEB54B049A1970AF01A284E0770DAB13F82318B388E40E400627DC46F47D75ACC3D11D5F4DC9B04F8C430B24F66A6AAFEEE64BBFB37C3BC43D373EB0EF0070A9C03E06596CE3A0CE0F81F791AAA5F762ABA776277F7694BF92762AC0B1278D51AA013002EB47D59933C3F8CACCED4BA7AFD268DE3074DCE5E91352A670FEB99A4E955DB02BD2A2F2E027958819D7ED869DB3AD3DA8329A85737AAEA0D02BCC3D6E532E6DCEA87D1CD197B5FD01678D53940DF652B6FE47254A7FD76779BED7BB53CF7FD0A0CF5D969D93B2BBE10AB73FBD4ECFCC383CE654590C0ABBE0FD05D835EC646BF00DF6984D19936B2149096E7C636B2463743F7F861F74ADBF70B3C773780BAED5CD33C015455B70D2AFFC0828CE2DFCF2B159C73FD5DD153A63097ABDB51BFE0158E2E7E77D09C91EE57BDD76F77DF6AFB8E81E73E03E095B67333E4FDB31F466FCCD077AC65204102AFFA8F80BE29EBE1C3EA5B92CA591F9AF9E6411BF981E73E0BE0541B59A399A11FF5C3AEF5372002CFFDE1F137654661ECD80FA34A968B641624F0DCDEDF2FDF9FE5D021F73CE987D1B9B6CE08BCF19B01F9735B79A396E338FA6BC378F727F0DCC7006C18A179EFF1C328F5EBE34C8234BDEA7502BD7384863F719558E59AA976C7EAEBA1A05E8DA03A3E8AF30E7427C59FF9EDE84F06CA58A639F0AA3702FAC961640F9099FA0D9CD482ECACAD7FE592C48F023863808B0EA53556DD36D5EE4EDB0E6F79AF3F55F5C77F0CD1ADB6B34F525E2CA2D73466BA770DF3FCA0EEFE35141F18E61969B31D91B74FCC74BE64DA975A90A05EBD0D3A3A0F1401FE4B057FEF406626663A43FFF78AA0B6EE82D8A9BCD414F0A8D58D497C68187FA55A6ECEA03E7E3914EF01641370EC27104EEA972A1E986C4797995E229520CDAB7E7D5C9C4AEFD9638DE901C7EBEE814817311E8B57E3EB93BB3ABD17BE56BE7A6FE7590962C8D009F4DE36B771C81D3577432CF25A403708B019C08BD3E5CA163FECFCAD494FAA0BB73C3750A06112DCAB11E0A0387AEDC4EEEE03A63DAC23813404EEF0AA172F21BE4D2017A5E87BC40F23A3FA5482045EF510A0A6FF0877871F46C632A5188EA524F002024DCFEDFD14C7A78DD118FE888DB1203BBC756F71E0DC6B740191AE3FD3718D6A5944029608B46AE30D15094CE244F4BAC64CF72F936A8D05096AEE2CA4F7622BF9CB89E3732766F73F995CC90A12B04B20F0DCFB005C9E94AAC01727C3E89D4975C682346BE3FF22C75E18257CA97ED86F77CD9FEA92F2F87D124841A0F743B350DD67D0F2EF7E18BD26A9CE589096E71E50E0D549810BEAACDDDA9E3F9454C7EF93C0B008343D77AF001727E42FF861B43AE90EC682049EFBFDC45F78513CE5B7A3DE2FC6F08B044E1A8166CDBD55041F49BAC0E2D2D29937DCFDF877FAD5A5116401E8FF9B800A999D0C3BB5A48BF1FB24304C02CDABDC4BC4C143496748EC5CDA989DFFAA2D4112FF416E583FEA913428BF4F023F4DC0F4F77828081F37A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440410CD73E3D0DE7970E56AF588CE3AA610BCB0624208E73B4A2FAAD8AC6F75FD7DE7F78C0B84CED14C400DB887E0CB1C1CD0B53B2A8C04D9361747BDE13519004E2CD9A3B2582ED792F86E7FD3C02E2F961A79D271B0A92403BF0DCC4FF683BCF8595FC2CE30FCCB4C58982F421D9AC8F5F212A7B6CC166CEE004C68E2EBCF483734FFCCFE049660914A40FA71DB5F16947E4163394ACCA8340BC24AF9ABABBF34C1E67F5CEA0207D48B7EAE37FA82A7F91D732784E2281A37E18BD28B1CA620105E927C87BDDF5BA846F5AE4CDA80108A862E7643B9A182022752B054940D6F4DC2F08F08ED464D9609BC042459DB3AECFF9435D2948C21A3FF3FB17FCC291E716775312DB8FF73479F26F403CE187DDAFA4E9B2514B410C29B6DEEBAE47AC172A9C330C5B58363001FD918AEE9BDCDD7D74E0A88C0114242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000549B1E7DEFFCFBBB4286E8A16960E40A0022C2CE9D2B7A766F73F3C40CC40AD14C4005FAB56F554F4AF00BCC4A09C25F6093C0DC47FE487FB73FD00CFDE18142461993B6AD52D8EE867EDEF9C89A909A8BCD56F77EE4DDD374003054980C74FB91DE0D165BFF52B7E18BDC97EECF28914A40FED9DF5EA9B9754EFCF73213CAB3F01F9E1736B1AF71DFC715E9C28481FD28157FD18A01FCF6B193C279940BC4A5E35B58B9F728B5875DB54BB3B9D8C6C7815CDDA78434482E19DC0E49404D40F232765CF40E57C06E9F70C52AF6E84EABE8108B3D91A01017635C2E81A6B8106411424F945FA03007ED380254B864C40C4A93666E6A3211FF333F1142481F68E2DD5B5CE82CE02B830CFC5F0ACE70908F06CACDA986C77EFCA9B0B0531241ED4AABF03D18D02FC4A0C9CE200470C5B59968180022F53E0DB50D93BD9EECC6588B0D24241AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090149BDDBEF9FCD3C7C656AF4BD1C2D201082C39BA38B6244F4FDC3DFFDD0162066AA52006F85A57AFDFA471BC15C06F1B94B3C43A01F95A2CB8656AA6F3A0F5E884400A9200A8591FBF4254F6E4BD189EF7420202BDA811761FC9930D0549A01D78EE0280B13C97C2B39623A07BFCB07B659E7C28481FDAADFAF86FA8CAD7F25C08CFEA4B60F1F059D18BA6A711E7C58982F4211D78D51B01FD645ECBE039C90416D459BBB53D7F28B9D24E0505E92748DDFD1014B7DB41CD141B04FC30121B39A61914A4EF33C8F86580FC93294CD60D9B80FC9D1F76360FFB949FCEA720C92FD2E70154F35C0ACFFAF90424762E6DCCCE7F354F3E14248176ABE6BE4E45E7003933CFC5F0AC9F25A0C0CD9361746BDE5C288801F1ED9B2F3AC559F5DCEF39221B019CA1C01A00A70870D8A09D25290928708100CF28704881078F1E5D086F9C7BE27B2963AC9453102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C56089C2C41FEB7F75F77F69B2056DD36D5EE4E5B99922124909180B1208AD737DAD163FD8E31FEDC86C073FF13C0AFF60B53C8EC64D8A9659C8B6D24608540F32AF71271F0506298CAD97EBB73C08A202DCF7D5C81F3FB1EAA78CA6F47E7245E8C0524304402CD9A7BAB083E9274C49A78EC97AF9DFDC60FAC0812D4DD87A0B824E9D0BC3F6E2BE93EFC7EF908343D77AF0017274DFE8AA3678FBD7B6E6EC98E205EF563807E3CE950A87ED86F773F9D58C70212180281A05EDD08D57D06D10FF961F486A43AE3D720DBBD75EB2A70BA4981BDEF3B717CEEC4ECFE274D6A5943023609049E7B1F80CB933215D83A1946899F65692C48EFC096E7EE5583A72EA876FD76D74DBA24BF4F023609B46AE30D15094C326571E9D58DCF3DFEADA4DA5482ECA88D4F3B22B724851EFFFE1D7E18350C6B594602031108527DBAB1EEF1C3EE952607A612E4CECDE7BD6471F5AAAF03586712AEC0418DF5DAA9D9EE0326F5AC2181B4048EBFE6B80D40EFA3F68CBE44F40D8D996EF2DBC0005209D23B3DF0C6DF07C82EA39B3C5F744FACDA75E03C7664A1B2EFA6B96F3C9BB29FE524708240D3AB6E00E20D22F25A28DE0DE0C5A67814DA9C0CBB53A6F5A905F97F49DC2F0278BBE921AC23811121F0A440DFDC08BBFF617A9F4C826CDF7CFEE995D595797ECCB22966D68D02818AA3175EBFBBFB689ABB6412A47740CB5B7F9E22FED73487B196044E1A01D1B7F833DD7F487B7E66418E4952735FA7825446A6BD20EB49607002FA513FEC7E224BCE4082F40EBC73CB792F5F5C583503E0B22C17600F090C91C01151B9AED1EEA47D53E9C4950616A497F4D92D6BD7FC68F1177742F181210ECB68124843E07E07F2A71361C7E4C74E96CDB522C84FD2835AF5B7047A830ADE986612D692804502075470FBE44CF4191B995605795E14F76A71F03628DEA6C01A1B17650609F42320902F2B70BF1C95CF37E6E6BF6F8BD65004F9C9E58EFDD5EBE8A957AA2355014EEBFD51D5D30432666B00E6948F800287011C16E070EFA735C6562D7CE983BB9EF8DE30480C5590615C9899249027010A92276D9EB5E208509015B7325E384F0214244FDA3C6BC511A0202B6E65BC709E0428489EB479D68A23404156DCCA78E13C0950903C69F3AC15478082ACB895F1C27912A02079D2E6592B8E000559712BE385F324F07F7090906EB8FB30F20000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (15, 4, '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001D6E49444154785EED9D0DB81C5579C7FFEFECBD81A225A5D40FA8DA5A0CD098ECEC4D14503E04E4534DA91FD1DC9DBD41514109D9D91BE443AD7215AD102077679394864A04B2B3C1062C4522484010118334646783B131D45A8A5FA515A28231B93B6F9FB9F74642723F7677CE3B337BF7CCF3F0E4E1D9F3FECF7BFE677E777676CEBC87A00FED8076605C07487BA31DD00E8CEF8006449F1DDA81091CD080E8D3433BA001D1E78076A03507F415A435DF74548738A001E99089D6C36CCD010D486BBEE9A80E714003D22113AD87D99A031A90D67CD3511DE28006A443265A0FB335073420ADF9A6A33AC4010D484226BA64F5CC64F28F0DD221361ECDBB9BB72624B58E4E430312E3F43BB9CC00D8CF00741C8057ED93CA2F01DEE833AAFD95DA408C697674D71A9018A6DFB13259803F03E0E8C6BAE71FFA842BFBCBB5B58DB5D7AD5439A00151E564833A25CBBC8781331B6CBE6FB37B6CD73BBBC5581DD682031A90164C6B35C4B1CC9F00F88B56E347E37E6CBBDE1121357478830E68401A342A6C332797FE0898FE29AC4E10CFCC1F29546A37AAD0D21A133BA00189E00C59914BCFA9336D52D915A530277F8BB759A5A6D6DADF010D88FC59418E95BE17A0D39476C5D86057BC33946A6AB1FD1CD080089F14C505E96329451B25BAA9338E5D52F1BE2FA1AD35471CD080089F09A59C79113396CB744317D96E75A58CB656D58044700E3896790B803E89AE98E99642A57AAE84B6D6D4579048CE01C7327FD8F803C1A653FA77DBF5FEBAE9281DD0B003FA2B56C356B5D6D0B14C6E2DB2B128DBF5F41C3666554BADB4B92DD9D6789006A471AF92D85203223C2B1A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D16969FB28038B9F459F0E94210DEB59F87842AC037D7D1B57E49F9F127253DD68048BA2BAF3DE5007172E94F80A91FC0E18DD8C7A0BBC1F84AA1525DD748FB66DB4C154056E6E6BC610843EF04D30741F86B66FC86805F0323FF32E846DBADDEDCAC3F496F3FA500712C73058045AD98CE4CEF9780A4DD0171ACD959462A47E0C9CB0D317EC2E0C169E0351756B63CDBCA3C242D664A00E264333340BC0AC029610C9680A49D0129E5329730F3D2663D65C67F93C19FB7CBB52F371B9BB4F66D0F88939D7D0EC808E0D8B774674B5EAB86A45D01295AE94102155A32713488095717CADEE56134E28E6D6B408A967939015F526CE226DBF5DEA44AB31D01295AE6AD047C40890784DBEDB2F73E255A3188B425202B161E73A8EFEF5AC6CC0B253C535998ADDD0029F5A6E7B141772AF595B8D6EDF3C9ED785FD276809472E9137D1FCB8848D95FF9314E066557917603C4B1CCAF0363FC341E9618C20BE4E3947C9B95296A2B409C6C7A018882929B07859DAFC9E2093833EF7AF74ED66EB2CFDB0990C15C7A8EA1B802E4FEFE9065BBD5CA64BE25E5F3B601A4984D2F24A2E87E67671EB02BB5CF859DA87602C4B1CC35007261C73C593C0157E45DEFF393B54BC2E76D0188CAC2CF0D9BDE818014B3E9C784BFBAFEC17E662C2E54BCE0B955A28FC40352CA663EC8C45F89DCC50E04C4C99ADB4038322AAF7DE26CD237054A3420CB2DF3033E706B5413F6927E3A1110CBFC39805747E937C1989F7737DF16659FCDF49558409C6CE61C10DFD1CC6094B6ED444072E6F360F91F40F69DA724439248404A96790603DF547AC2372956A7D40C152B7DDBEC26FD17AA5624346937920A49E20059DE3BFB68DF30827AB6B11D043C9877BD50EBBAF624DF4E809472E655CCB82C2EE3930849A20019188071C876B31ED704EDD56FDE763D255B16B4152056FA38067D2F66FFDF63BBDEBFC49CC31FBA4F14208E657E17C05BE336A78B523316297A91AA9D00097C772CF35100C7C43807FF393484B32EFEAAF7A31873481E20C56CFA8B44F4A9984DF9350356C1F5EE529547DB0192CB0C80F90A55E36F51E72EDBF5E6B518AB342C115790522EBD9039C2A7E4635BF8B44FD4D75FAE3EA8D2E1760324187BD14ADF40A08FAAF4A159ADA42C958F1D10276B9E02C2B79A3550697BA21F1A440B17AFD9FC6F4A7547BEB2B4E5FE20628B169B3198B1D0AE78C1F297D88E5801197ECF9987EE07E875B13900DC55A754BF8A9F74C71A43BB02128CA564990F3070726C734378C6079FD55FAE3D1E570EB101525AFC8603F85707DDA57C7BE4269C64E0BA82EB7DA28990A69BB63320A337EDD703F858D303571410FCE48E5F3D7F56FEEE277FAF48B22999D800295AE9A504BAA4A96CD535FE2D88FBA37867BADD0119862467BE1F8CAFAAB3BF69A595B6EB5DD474948280580059964B9F98627A4841FEAD486C620385C21AEFE156829B8D990A800C7FDDCAA54F64A66F007879B31E2869CFDC6B576A91AFCB8B0590D86E0019B7D36EE3E3F9759B9F5132690D884C154086AF24D9CC0C22BE21A6FB92EA2E834FB8644DEDF9066C57D62472409CAC793E08411592A88FF5B6EBED5F6551388BA9044860D5D5E71DF5C707EC3AF04662CC17B66E7F79C69576C5FB6C94FD460AC8606EEE61C4430F13F057510E12C0FDB6EB9D16719FC3DD4D3540F67858CA656E962A9A31EE3C117ECF4C2716DCEA6351CD65A48094ACF42087ACB5D482318FD8AE777C0B714A42A62A20C3F0E7CC55609CAFC4A88645E836DBAD4676F58A0C10C74ABF1DA0FB1AF641414366FEB742A5F66605522D4B4C65404620C914C16CB76C500B814C7C6EA15CBBA585D0A6432204C40CDEEF38A3E90C5B0C60E0BB05D73BA1C5706561531D90D1AF9141F1BE282B286E7D81FD133E1941FDDF480089BAE80201FF93773D25A548C392D209800C439235AF03614958BF1A8D67C6D5858A7C59D368008978197B3D85D72CB9C5FB69A3664BB6EB1440569D3FB77BE70BBB3780E96D927EBE44DBE0D9F69ADA1392FD890332984BF71A4C91150A63A2330AE5EA0649D39AD1EE1440024F4A232F5C05DE47F43091BE64BB55D15724C40171B2E6BD209CDECC49D5725BE2825DAE392DC70B0476122023F7239945004752EF8A80FF020E4CE7DD47838D7C440E51404A7DE979EC2B2E843C9E0D8C1BEC8A7781884B21443B0D90D1FB91D5207C28846DCD847EDC76BD7F6C26A099B6A28014B3E6BF10E16F9B49A8C5B6DB6997717C944B481ACDB31301B9BE2FFDCA5D6C6C0073BA519F42B4FB8EED7A2785889F30540C90C1BEF4A9864FF74B25BEB72E133E56287B712C5F9974789D08C8F0FD482E633173795283543430E89DF69A6AB09052F921064854859001DC6BBBDE99CA9D5124D8A98004F6152DF37602DEA3C8CAF16508AE5DF6448A6E8B0052CA9AC73021A88E217EA8DAA6402AD14E06C4C965DE0AE6A0528DE841000FC13797B85BB6A8EE480410C7324B0016AB4E765F3D0656155C2FB6B7DD1A195F270332FC55CB32AF65E0E246BC0AD746E6275F11408A96B99D8037841BF024D18467E0D3F176A5BA5DB49F90E29D0E48B082DBE0A1E02AF2FA90564E16BECD76BDA3276BD4ECE7CA0119B4669F6DC010B961DA7B70047C21EF7A9F6976C051B7EF744002BFA37A36E21BFCF6FE3535A51572940312D1D7ABDFD629D52355894425441A1060A440C7CB3C0047A9F4760CADAB6CD7FBA4CA3E940312C5D72B22ACC8973DF17B1C15466B40465C2C66CDBF23C2952A3C9D4043D9E6AB7BFA500A48B1CF3C817C7C47D804D4EBC69B97DCAABEC89B44DE1A901157071764FED2487170153958C2E73D9ABE919AD9BFE67165BB03280524A225CF65DBF5FA244D56A9AD0179D14DC7CAAC04F84295FEEEABC5C49716CAB56B54F5A1149048BE5EB17F7ABEB225D23713C398AD0179D1BD15BD3D6FA91BFE2361FC9C2C56E5DE2E415FCA0029E57A4C66BF3AD900C27C4EA0BBF36EF51D6134A28ED580BCD471C732BF06E0DD92F3B0F3809D075FB67ADB6F54F4A10C90C16C7AC020122D9B4FA0FEBC5B2DAA1878541A1A907D01C99C0BF04D92FEABDC3D57192091ACBB613A32E90F06F79D780DC84B1D59BEA0E7703FE53F0520250609D1F576B9AAE45E47192025CBDCCEB24FCF1FB05DEF54315385843520FB1B1BC14B74CA4A3D290164D5BCB907ED3C7848B42424039F28B8DE7542E7B198AC06640C40ACCCA5005F2D663AF0BCED7A4A5EFB5502C8E8BBC8A29B3F1A75E3CF17DFBAF96782A68A486B40C6BA8264668058740F4255DB782B0224F35106DF2072860D8BD243B65B8DAE5A86C2816840C636D3B1CC1A80D90AAD7E891413BFAF50AEDD1E565F0D2059733913E4F66F60BEC4AED4AE0D3BD838E23520E30022BD59A8A242D74A0071ACCCB701967C2FF8CCBCEBDD1BC7091EB64F0DC8B85790E05948F04C44E420D09D79B77A4E5871458098CF02F893B0C98C17DFD5BDFBB045376DFD8594BEA4AE06646C7707B3B3FFCA20E33F04BDFF2FDBF5FE32AC7E6840562E98F5DAA1542AF85D5BE6203C6397BD57CA88CBAB162DF33902A60BF5F49CED7A8708698BCB162DF3D704FCB154477E371DD27F53F5B930FAA10129657B4E63F2C52A1932E35B858AF7F630838C33D6B1D2770014FA523FD618887047BEEC892EDB90F4AE64990F3170A2541FE41B27E7D76EFE7618FDD08038D9F40210AD0D93C444B10C2E16DC5ABF94BEB46ED1322F2640E40786767D36B4C7F352CE5CCE2CF7E30E31DE9BAF78A1EE73C203225C6A92800FE75D6FB5F4892CA5BF3C9739D9677E4042DF273AA5BF5C7D50423B0A4DF1AAFF8C0BEC8A17EAF14368404A96F959063E276528119F942FD7C45FC292CABF641D7B30B0F309065EABB60F7A6AE701BF9BA56AD5AADADC1A532BF69A279021F7821D337FBA50A9FD7D63D98CDD2A342045CB7408C8874962A258C330DEBC784D7BBC3D38DE381CCB0C5E0F0E4A21293B98B1B850F1222912AD2CE97D844A56CF4C86FF03297D3096D9152F54C9A1D0803839B30C862535C8948F5917ADF5E44C944A7C1F5DC74A6F0048CD46A28C0D76C58B6CB72E298B56CE9FF9EAA169DD3F97D267A65B0A95EAB961F4C30362997703382B4C1213C5FAEC1FD15FD9F26329FD2875553D13B15D2FF4BC4539EEF1FA1A983F73DA21D3BA7F2F950B01EBF321B7FE0E6DB46399DF0720B651A64F5D87F7973789FD95919A9CB17447DFBA0CFEA01CD662BF3F33E09FB558A0C4668BF9840E732C33D8DB43EA59C8A3B6EB1D1726491580044F43C5F63D57F1B0278C4112B1A56CFAE34CF40F4D6A8BEE83D1642ECA9A3B96F913007FA14C706F21E6FFB02BB550153E5500B243B2940BFDEAF903F3773F29761916999806448BBDB3D264189F0786F7F41B6F99CE73007FDB007F662A5D35F6B6C7C99A8F83D0D38065AD3409BDD2400520BB0174B5927D23310FEFF2BAD6AD43BD91B6EDD86660E0E4AE439E7CEE189F718C017FE4AB2A19C1D7D6C79E7DFA4FBE3FF0E08343ED38AE467376643778DD6DBBDEB4467319AB9D0240D2FF0BD0A161929828F6E507EC3CF8C38A2A5448E5A8755B7740B2541403FF5B70BD57B49E9D82B23F4E2EF324988F0893C444B1EDBC9257CA93A9A42BB998938027F3AE37238C5FA1AF2045CBDC44C09C30494C14DBCDFE11174E919F79A53C6A57DD7F9E3F73DACF057FE60510BA566F68404A39F37E6688551B31E0A7A7EA0D6ABB9ED8AAF22E59E9D730E8BF55E98DA173BFED7AA11ECE860644BA521E81DF92776B1B054DD4D23139505A60F6700A8F4B75CFC0D70AAEF7DE30FAE101C999ABC1827B62139F6D976BF78419A48E4DA603CBADD967FBB29B2DADB65DEFC361461F1A90A2951E2450214C1213C512F185F972ED7A297DAD1B9F03452B732181578A654018B4CBDE9230FAA10171B2E92B4034102689096399AEB52BD54BC4F4B5706C0E142DF35A92DCE09379C0AED442BD8A111A90522EDDCB4C15319719B7DB15EF7D62FA5A383607C4EB3933F7DA95DAAD6106181A9015B9F49C3AD3A630494CF8150B783CEF7A73A5F4B56E7C0E3839F371B0D83213500A73F2B7789BC38C3034202BE7CF7CF9D0B46E257B318C3390676DD7FBD33083D4B1C974C0B164CB45ED32F8E597ACA985AA191D1A90C07AC7329F06F0E752D3E077D3EBFB6FAA06AB3EF531451C88A02ED6D3B6EB857ECD590920D20F0B99F923854AEDC629726EE86104BBDE5A998F92683D67847E48184C9412401CCB0C7E86FD98DCCC53C576AB62AFF5CAE5AD95C773C0C9996BC15820E610D3F57625FC263A4A00295999028307C5060BFCD276BD570BEA6BE9681D20276BFE1284502B6D274C99B860976B4ED861290164B9D573B60FFF1B619399F0D72C0555F224F3D3DA8D3BE064CD5340F856E3112DB454B40243092041ED27C6CEE0CD42B943C1431FB9E4B472330E38D25B1F0050F51E91124002731CCB0C16141EDB8C514DB6DDFAEC0C6FF6C000FC26E374F38439E05866F06C222398D646DBF5DEA2425F2120E92F00F46915498DAB6170AFBD26DC9351D1FCB4F8A40E147399D3895974AF1702BE9077BDCF4C9A4C030D940152CC9A67124174D52D33EE2854DAB79A7903F331E59B38961954835C24395002946DB8A40C90D1FB90FF932CE010989A229E7B51B926F60E81E4C475BAF6357DE9971DE0D30FD5D7297ED159660C1974E0A179F7D1A0DE56E8431920412625CBBC878133436735B1C052DBF52E13EE43CB0B3820BEB075E4C1DE37F3AEA7ACD2A75240A2F87582819F1E60F09C8FAFA9FD8FC01C6A4941079C5C7A3D98DE21D805A0F8D74EA58044711F1298CBC0270BAE7795A8D15A5CA903C56C663E11FFB352D131C4987156A1E27D53553F4A0119FD9AB58905AB9C8C0E7C7BD7AEDD7316ADDBFA5B5546681D59078A96F90001274BF64202AF46A8072497F914337F51D288409B98ED7CA5A674CF0DE99C3B55DFB1D2E7027493F4F899E8D3857235D48639FBE6A81C90E5BDB38FF60D23D8CFC31036C47B768637473F3814765981BC93333782451F220759FA4C3CB350AE6D5390F21F24940312283B567A1D4011BC264B17D96E55EEA57F954E77A896C4EE5A6359498475F9B2F77ED536CB0022BCF3ED8B26D05343F5A1132EBEF509C9E263AA3DEF18BD62DFDCD719FED0C392CF3DF69869000B16BBDE57559B2B02C8AAF3E776FFEEF9A1AD0484DA9BA191C1326345A1E2057B00EA23610E44F1D47C74C8DB0F7C59D71B2FB86153B0D380D243049020C362CEBC8A18913CD023364ECF5736DFA7D4192D16CA8128D65CED95E055B6EB7D3254C2E3048B01E26467CF1DDDE742FA663D7830322536B59498E0B834956E5A3AD920D87F935DD9225259470C90919B75F985697BBC23A24BF3E5EA359379A93F9777A06899171370AD7C4FC33D842E2F3A519EB280F4A567C1A760B7A43F8AC22C06E6155CEFAE28FAD27D8CED40A9AFE76D7EDDBF8F486ED7B197F44C74BC5DAE3E22351FA2800C5F45B2E6752084AA8FDAE8E0830D53D0D57556FEE64DC1C6A2FA88D88191D5BAC606062B795969D2F419AE5DF17293B60BD12002403233401C5C45C6DBA83244FA638412BE6E97BDBF512BAAD51A71C0B1CC60654374BF28324EB52BDE038DE4D66A1B714046EE45327F0FB0C8AF0CE30C5C2F896FF58C6831AE944B2F64A69B5B0C6F218C6EB3DDEAFC16029B0A89049062DFCCD791DF1D5C455ED55476E11A8BFDF4172EADA9171D3D1CC38BF122D937261240825362309B1E3088AE88F2F420A094773D3BCA3E3BADAF6236FD6122FA7294E326C21DF97234AF5E470648700337CDA7EF0230A33413C04ADBF52E8AB8CF8EE8AED89B7E2F19745BC483DDC9A0930A6EF5B128FA8D0C906030A56CC662E2721403DBBB0F95552EA2CE3DA9FD0DF6A64F350CBA3FF2FC089FB5CBDE9551F51B2920A337ECEB008E60A5EF4B2DF4993FD75FA9C9ED8415D58C25A09F525F7A1EFB74670CA93C72D8AE234F7AFFBA75F5A8FA8E1C90E282F4B194A287A5AB9F8C65A08624FC6955B2321F65D9AAECE326E913BDABBF5C5D1F7E148D2B440EC8C855C4FC1280CB1B4F53614B26C7AE54C5361D559869E2A44AB9CC1799F9533125B6DC76BD7CD47DC702C8B2F96FFCD3D4B4AEE086FDE8A8071CF447A0B5A9EEEE258B6E7AEC1771F4DF6E7D96E6F7BC82A7D58B006563CA7D7B57F7EE9316DDB435F2F98A0590386FD8F79AE027C074995DA98A56A58FE98452D66D313BFB2422631980D8F68964A0AFE07A91FFB833F2C734C6437C0BE986C6467F67BB55F122130DA592B046C59C790101CBC03828AED4987075A1ECC5F3753C6E4086EF47B266198458778F22D06D75AE5FD65FD9F2E3B84E8484F54B452BBD8C40B1DEAB11B03EEF7AEF8AD39B58AF20C1C047EF4782AF39925B2734E0313DC5CCD7142A5E505CB9630F279B3907C49702786BBC26F05386CF672E5EBBE5DFE3CC23764082C10FFFF46BD03740887FBB67C60682B1B4D35EE11D2DD7740980F3E23C21F7F44D30E6E7DDCD513FA5DF6FE88900242137ED2F3127280651F7EB4B3BA1628A63652E05FC4B013A34097030F0F982EB45BA6E6FBC7127069091FB91F415204AD2D3EE9F03BCDA675E3DD5EE4F569D3FF7A0DFBF30741E07570C464F12C018C9816FB3DD9AF832F646C79B2840862111DF52BA516B5E6CC7C00E22AC06F16A7B4DED89E6159213716DEFDC3FEB36EAE7011C7C953A2A39990D57254F5CF18DC401320AC9D700BC3B51933792CC6E06561B6CDCD66EF728CBFB7ADEE433BF8B99CF23E0B509F4F6FBB6EBC5FC43CDFEAE24129051488227ED31FF9232C169C4D80CF0BF924F77E66FF5824D2913772CEB35DF9832E89D00073F959E98B8045F4C689BED7AB1ACAA98CC93C402320C492EF324988F986C10B17FCED8C0C0DDCCFEC6FEB55BBE17673E83BDB3DFD245C6714C383382DDBE420F9508BFC897BDC3420B0909241A90D12BC96F826DAF85C62F21FB3411BEC78C6FD1507D43FEAB4F885658297D60D611DC953A9D08A73223A826F21A8941C968F24EDBAD455212AAD5FC130FC82824C122B528DF676FD5CFFDE318CF10E1070CDECA307EC084ADA96EFA41FE2B9B9F69A693E08DCC3F0266D519B3E11BB3403C8B81D904BCB2199DE4B4A5FFB3DDEA9F25279FB133690B40462109B6D53A23E98636915F5068F9F9D1FF5E08FEA591FF07130E828F9721F817388880831838B009EDA4374DE40DF958A6B50D20A3F724D780F913499F7D9DDF440E70C5766BB1AEBD6B667EDA0A906060C55CFA12625ADACC2075DB84384018B4CB5E245536558DB8ED0019BE9264CDF34158A5CA04AD138503F425DBADC6F53662CB036C4B4082D12EB7CC0FD48152FBDEA4B63C67ED17A878EFF2280D685B40029306B3998C411C94D97F7B94A6E9BE1A76602BF97C797E6DEDEB0D4724AC615B0312783970F2C95D871CFEDCB520D6151493757295EB295CBEE416EFA7C94AABB96CDA1E903DC37572E98F10D3B50C4C6FCE02DD5AB103BB987179A1E20D2AD68D456ECA0012B8B7A22F7DEC904FD711707C2C6EEA4E37321B97152A9B1F9A2A564C29408249099E3877FBB88240C1DB71FA88CE81A55DBB765FB968DDD6DF46D7A57C4F530E903D969572E9139929D865F79DF23676740F77D589972E29D7BE33155D98B280BC088A79018F6C47FDFAA93881318EE9C74C585A287B53FA79D49407243881962FE8399C53FE650C445EBA32C61358AE6B22C718A2A58B6FDDFC33B94E92A1DC1180FCE16A92ED398DA97E1140E724C3FEF6CA82417732D797F757B6DCD75E99B79E6D4701B2C726276B9E02C28700F4B56E5DE74432619DC1F872DEF5EEED9C518F8CB42301D933C9CB16F4BC2995F23F080CC3125B79CD049F746BC8306ECCAFD9FCED04E7289A5A4703B2C7D9150BCD23EB75FA20C00128AF1675BC1DC499BE4CE4DF98776B1BDB215DC91C35207BB9BB62E13187FA43BBE6F9C4F3089807A05BD2FC6469F37D04633D33D6DB95EAF664E5165F361A9071BC5FDE977E3DD7318F2900854E8B6F8A447BFE0E31D6738AD7B77BBD2F299734200D385BCAF598BEEFCF3388DEC1E0A03042DB1E04FA9E0FBE87D85F6F57B66C6ADB814494B806A449A3AF5B30EBB5DD5DC609CC743C186F0525A96CE71883616C2603DF05F891DD43FEC39D506BB8C9299DB0B90624A49BA50FF5BCC2DF5D3F094C2711701C338E228A6D45F173007EC4C046103F6474A71E6AB67A4A483BA65CB80644604A8BBDB35E05A2A340A9009623E1F35108FE55570B771B183F8241DB007F1BFBFC23306F2BAC7DE29702C3E968490D48C4D3BF6AFEDCE9BF3B10D353FEAEE975DF986EA4683A33A613FBD37DA2E177590CE61D4C4650307B875FE71D29C3DF5137A6EDD8B9133B2E5FB76947C4297774771A908E9E7E3DF8C91CD0804CE690FEBCA31DD08074F4F4EBC14FE68006643287F4E71DED8006A4A3A75F0F7E320734209339A43FEF680734201D3DFD7AF09339A00199CC21FD79473BA001E9E8E9D7839FCC010DC8640EE9CF3BDA010D48474FBF1EFC640E68402673487FDED10EFC3FF9B3195FC4FDF36D0000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (16, 4, '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 0x89504E470D0A1A0A0000000D49484452000000E1000000C808060000001E108684000000017352474200AECE1CE9000012B249444154785EED9D7D901BF579C7BFCFDE9D21431B0A04069B42C13181F0A23DE31492F0E60442200D2114DCFAB4B2139B89DD012CE9480810C8704C81F06EAD6C9A400B26462BD342784D4B7829F100292F89F1AD6C4809D4A149C040884DC980837DDAA7A3B3CF03C6D83A9D76F7B7DAAF6718FE60F779BECFE7D90F274BBA5D01FF900009C44A4062EDCEE6244002A084BC08482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB9340DB251C9876D0B88FF5EC307E830E4DE8126B7C60618204BA1B519340D2088858AF04D0D5DDA2AF6C40CFEAFECAB2D561CC306609CBD9C9C72B82334470B042270042E1C2D8146B9A42E01500AB21F2B40472E79A4F2C7F646000C158C2B524E1B5D30FD9BBDBB26643643A8003C71280E79240920928F04781DEA9908783F5F8E939B7FB2F8F769E5149E8667BBF04D186788D7F7A46DB8CC7934087131852C58F217279D11BFC79B3B3362DA1EBF47E1BD02B9B2DCCE34820B50404EF40E5F282377859330CB62BE175D33EF391AE71EF2C0430BB99823C8604486084803C2AD0CBF29EFFE0B6986C53C205CEA18706B09E06B023C1920009B44640806BF39EFFAD0F3BFB432574B3998B2132D05A5B9E450224F03E028A1B0B557FEED6A86C55C272D63E5C054F1123099040FB08A8E2BBC5AA7FE99615B72A61C9B15F13608FF6B567251220816102A2DF28546AFFF25E1A1F90B0E4F45605DA4764244002ED272080D683E0C8FE252B9ED8FCF6CD7BDB941D7BB60237B5BF352B9200098C1050E0CEA2E79FF6010917CE3C7CB77AFDDD5F00D897B8488004C225A0C08CA2E757865FA18EB47273F62C286E0EB735AB9300096C22E0AFB7F4C8736FADBDBD59C252D6BE4B045F2522122081680804AA97F4576B03C3125E9F3B6CD290D65F88A635BB9000096C7A19FA40DEF34F1C96B09CB5CF53C11544430224102981B7D6EEEFEF322C61C9B15F106052A4EDD98C0448006AE16829CF987CAC06C152F22001128883809C2725C7CE09706B1CEDD993044840EF694878BE00DF230C12208158080C4AC9C95C2F90336369CFA6244002ABA5ECF4DEA3D0AF90050990402C04EA5276EC650A1C164B7B3625011280B859FB750876270B122081780888EBD81A4F6B762501126810A084BC0E482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113E854097F0D6095425709642D141F878589C3FF063E1A3373B62781F711E814095740E4710478A0501DBC675B3B5E3023B35F00EB9312E8690A9C4E296944DC04122DA1081E51C5C282E7DFD50AC8EB66DA7B59437A9A88751AA0C7B45283E790C058092455421F01DCC2127FD158018C9CEF6633058894DA558F7548A05902C99350E0498FD59F5FB4FCF7CD0ED9EC71A5ECA1C758622D56E0AF9A3D87C791C05809244AC2ED3DFB7BAC3036FF5474327703724ABBEAB10E096C8B40622414E05FF39E3F3DAA75BA8E5D06302FAA7EEC935E02C99050F078A1E21F1DF59A5CC7BE1FC08951F765BF74114882842B030D4EE9AFAE5815F56A16CE3C70B7A1FA0E4FF2391D51934F573FF3250C30BB9DEF828E76BDE5ECE4E3558287467B1E8F27816609182D61E373C07CC53FAED961C23ACECDDA7740B0F919E361F561DD7412305A42007FDBEA07F1ED5C673997E953956A3B6BB216098C1030584279B4E00D1E6BC2AA06A61D346ED7713DCF2A9FE168C23A3A2E83B9128A160B959A6B0AF172CEBE4215E7999287393A8780B1120ED5EBFB7CF3B695BF350575A9CF3E4A2C3C664A1EE6E81C02464A28C0D2BCE77FCE24CC0BA64F9E1074052F9B9489593A838099120AEECE57FC534D435C76ECD714D8C3B45CCC936C02664A08DC92F7FC59A6A1751DFB2900879B968B79924DC05009B594F76AFDA6A12D39BD5581F699968B79924DC04809217249A13238601A5A37D73B00D58B4DCBC53CC92660AA846EA13258340D6D39D7FB43559D695A2EE649360123251491C5F9CAE0D74C43EBE6ECC7A038CAB45CCC936C02464A08C17D858AFF15D3D0BA8EDDF888628269B99827D9048C94508067F39E7F884968AFE99BF2B11E6BA8EDB7D4306946668987809112365048170ECB2FF697C783E5835DCB8E3D5B819B4CC9C31C9D43C0580901BDACE0D52E3205B5EB643C40B2A6E48932C7A65B4BBE2182D715F287287BB7D42BC05F4082DD55654F117CBEA51A119E64B284BF2C78B5832264B1CD56AE93F95F40F631254F243904F7495DFF39BFA4765F24FD42685272EC2F8B600E14278750BE2D250D961010C1BC7CC55FD89649C750A49CB3CF56C582319448E2A937173CFF8C2406DF5AE69293B94A20E79A388FD11202787EC79DBA8F987BE3B2FF8B0BDE0D73A6ECFCA7B7871A5F573B20AE0C31F47D52D6BC3D357FFF8BEFC6D03BB49665C75EA4C0D7436BD06261D325842ABE5BACFA97B638DF984F2B65ED8B44F08F632E94A4028AB985AA7F6392223793757EB6B7D71235E6CDBE91CCC64B08604881538B9EFFE36640B7F398D28CCC1108E45101C6B5B3AEF1B534F854A1BA6299F1395B085872EC3705D8B98553433B25091236867F43D6BCFD9751BE3C1A1898DABDCB0B6BFE27756FC6005AF07C2BB42B2EE6C26E2EB3142A46DC3625493F0987B30AF062DEF3F78F6A87AE633F09E088A8FA99D44783BA5D5CB2B26652A67665719DCC1B80ECD6AE7AEDA893949F841B67152CEF0982E3CEACAE58DB8EE13FAC46D9B1572A7070983D4CAEADC08CA2E7574CCED84AB68533ED4FD4EB78BE9573C33C2759126E24F1AAA835235F5DFE70BBC1949DC90701C1BFA559C04D4C2B05CF9FD16EBE71D773B3996F41E4EAB8736CD93F89128ECC70C5BAF5DD579C7F7B7B3EBE70FBEC5962E19B1470D38B0E433EA36D973065C73E418107DA55AF9D75922C61E3D3FC1A145716BCC1966FCCEB3AF6A9AA383B095F6F6AE7E29BA91548F784FECAB2D5CD1C6BF2311B1F65A037016AE4379E922DE1C8E61B3206F8995AC14F8A95DABDDBBA206E983665E73FF5D4A7AA045345E45828269B7C01C59E4D7520B07A6E4CA28CD74E3F64EF2EABEBDB22383B768EDB08D019127E70C05580AE82CA2A08D640B02F14FB02C3FFEC69F2420CCDF60E14CF43F49750FCCAD08C9B63A9C8BEB2F18DB5C6778F77323D6FA74A683A77E62381CD0428212F0612889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113A084312F80ED498012F21A2081980950C29817C0F62440093BEB1A58210A2F80AC0A549FEB5FE23FD759E33537CD0227B39788352900266980A345CC7E929691122AB01EC0224BF53911796D83E82B12E8CB5D6BD7BD1CC57D66E6E7A68CEFD6FAC440756200FDB865C971A63F8D49810B8A9E7F45739769BA8E2A653367885857026AD46D2D46B66096848A352A5864C1BA39EF2D37EAFFE20D31AD60A8F17B697D0239C9B0CBF8AA82E79F675826A3E2B8B9CC8950B9DFA8509BC2182361A07A8974F5DC5CBC75D96F4C04F5DE4CE55CA62F08304F443E6340D6970A9EBF9F01398C8F50CAF6FED0C497A6B14B28C0EB50CB09E39E31615F15E5AC7D91C67D6360D5730BD5DA3561CFDA09F5E73BBD475AD0C74D9B255E0945FFA3FEEE4EA79F73FB13EB4C03D36C1E376BCF81E086668F6FF771027C31EFF90FB6BB6E27D6BB72F6017FBEE3BB3BBE65DA6CF149287249A13238601A9056F294674DDE5DD707AFB772EE58CFD1A0BE6771C9CAD7C65A272DE7BB8EFDDFA63D57242E09070B9EDF51F77629E53207884A63C191FEE9949B314505ADE4D82F083029AA7ECDF48943C2B7D6ADEFDEA75DB72A6C66C8A88E69BC61A32A2DDFF9AD959C0A9C1CC7733A5AC91AF73971BE62D9D6EC914BA8AA5F2B566B8BE35E4858FD5DC7FE3E807F08ABFE96751BEF2AF7576B1DF1B23E6C66E55CEFDFA86AE40F16DADE5C914A98860BA671176F45D0789EE19F6D0F7E9BFEFBDAAE2E7CFAECC5BEF177416BD3BC2D977173F6BD263EB1375209EBD2B5FF3995675E6C9962424E741DFB7B00CE8F2EAEFE53C1AB9D155DBFE4751A7E6C3660E463BF239350805BF29E3F2B79EB1B7DE2EB66DA7B750DA106C1AEA33FBBB5335471B725D685A67DD3A8B569DA77D6757DF6C1DD16AE55E08BEDABDADE4A9149A81A1C5BACAE78B4BDF1CDADE666ED0A044EC409DF04E461085E12E88B7588714F208A824797EA44854E14C824051A5F31FC68147D5BED119584CF173CFFC0564326F1BC522E739AA8DC91C4ECCC1C2D81682454FCA850F54F8F76B4F8BBB959FB0F51BE248D7F62266885402412AA6261B1EACF6B256092CF711DBBF1ADFD13933C03B3874F20120901FD4EC1AB35DE314CD59F92D35B15685FAA86E6B0A32610898481CAACFEEAE02DA34E97F0135C27733D2067267C0CC60F99402412A6F59BFEAE93B914900B43DE21CB279C40241206229FEBAF0C2E4D38AB51C79F9FCD0C5822178FFA449E902A029430C47553C210E17650694A18E232296188703BA834250C7199943044B81D549A1286B84C4A1822DC0E2A4D09435C66CC120E09F01280DF8538A271A5553101C04408BA8D0BF721812861889B8A434255CC932E5DBAE3477A9E9F7BE3B20D218E676CE91BE64CE979679D4EEAAA0F7D2110B950803D8C0D0B801286B89D282554E0D99E7AFDA4B36E5BF9DB10474A5CE9057D871E185856E3B3DA9CA9E12961889B8950C2370B9EBF4B88A324BE74396B2F50C1D9260E420943DC4A54128ACAAC7C0ABF1638DAD5B959FB4108BE30DAF3C23E9E12864838120953FA6B62ADACCDCDF57E16AA3F6BE5DC30CFA18421D28D424255BDB058AD5D1EE2181D53BA3C6FD20EBA66A73F02E83169284A18E236A2905044BE9CAF0CFE7B886374546937673F038551379EA684215E62514898D65F136B756D65C7FE8D027BB77A7E18E751C230A86EAA19858410B9A650193C37C4313AA6F482E99327045DC1CBA60D440943DC482412020F163CDFD8DBF9858877D4A5DD6CEF2910BD7BD427867C02250C1170441202D0CB0A5EEDA21047497CE98169078DDB655CCFAF81E1AFB519F5871286B88EE82404043823EFF93787384EA24BBB39FB31288E327188682454BD24CEE12D40E3E81F0012ED6FD6EB3D01ACABFBBD41E33E0B8B837FA3A7EBF49E05E87CD33E96782F8F48248C6B0129EEBB0AD055007E15287E9F360E5D96B55FE30EDC504C34F1E5E796FBA08469BB4239AF710428A1712B61A0B411A08469DB38E7358E0025346E250C94360294306D1BE7BCC611A084C6AD8481D2468012A66DE39CD7380294D0B8953050DA0850C2B46D9CF31A4780121AB712064A1B014A98B68D735EE3085042E356C2406923D090B0F19BC6C6FD8E55DA16C179534B605D43C25F0098925A041C9C04E225B04ADC9C7D2F1427C79B83DD4920B504FEAB21E10D50CC492D020E4E02311250C195E2663317436420C61C6C4D02A92520963555E6FFFD219FB4BABB9E4B2D050E4E02F11178A5E0F97B49A3BFEBD84F03F8EBF8B2B03309A48F8000B7E43D7FD6B084A56CE63B227259FA3070621288938038056FB03A2CE18219933F1504C1CFE38CC3DE249032028F153CFF98C6CCC3126EFC6968DF2582AFA60C04C725815808A8E8E9C54AED47EF93B09C9D7CBC4AF0502C89D89404D244608B674A6EFE49B8E90D9A5B4D7EB6779AF6C4593B9780881E93AFD41E1B99F07D12969DCCA715F244E78ECFC948205E028D0FE78B15FFFCF7A6789F841B7F1AF65E0EE805F146657712E83C0222B83D5FF1FF6ECBC93E2061E380B2632F52E0EB9D87811391407C0434A8EF595CB2F2B5A624DCF4F7C307009C105F64762681CE211004C167FB97ACD8EA5FF5B6FA937064F4B263FF5481A99D83829390401C04E4A28237F8A15F86D9A6848DB82527739540F838E63876C79E892720A267E62BB5EF6F6B90ED4A382C62CE9E2B8A1F249E08072081A80828D6007A56A15ABB6D7B2D9B9270E3DF117BB3805ECD5B616C0F29FF3B09E0275AD781E26DB5A79A61D1B4848D62F37353C65BC186391069FC1230EF4BD30C611E931A02023C0351375FA92D1ECDD0A39270A4704346041BE65A22DFA08CA3C1CD633B94C0EF1AF2AD7D77A83C70FB73EB473B634B128E34B96EDAC1BB76F7F49CA4D093009C04C1AEA30DC0E349209104861F432E77A815FCE7BA401FB9A0BA626DAB738C49C22D9B961DFB04854C15E878052608305EA11300D9ADD5803C8F046226F02A04AB45E555557D552C595D071EEAAF0C2E6D57AEB64AD8AE50AC430269224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C95260294304DDBE6AC4612A08446AE85A1D2448012A669DB9CD5480294D0C8B530549A0850C2346D9BB31A4980121AB916864A13014A98A66D73562309504223D7C25069224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C952602FF0F715CF37F1EAD8FFC0000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (17, 4, '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000011A249444154785EED9D7B9025575DC77FA707115FBC7C20220FE565DC6C774FC000F2C826A2F24EC09D49A6BB27A080F2C8CEEC04F0C56377799BC0CEED9EE5FD4AD8B9B371B72CB5B4A4D0D24428A580D29D996543298525149496965A52505090E91FD57D6720339999DBDDE777BACFB9F7BBFF6CA5F69CDFF99DEFEF7CF2EDD3F7DC731535F8B39884873CE6DB1B7445177715B87DBEBF7695BBE937CB5C35E906409AA8E67C1F0052B58400A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5D306A4178553E4E5F9D1E5F53F7145191C3571A552DDE7A90548164F1E66CACF11514E4487E7FB6B7FDAFD9486670040866B841603051A0392C5FE6122759689B6D6DB5D9E5253479657FFCC76715B072457EA4ADB45417EBB2BB0B0BC7A475D6D0A3898D459FA3E1C5B21BE439C4FCDAF5CF8F3BA31DB6CDF3A20F3FDB54663B6290AC69251A097F8BFA172758ED4F79C635B6026FAB6E7F1E1B9D3EB7F2133A27C94468B5567930E40E48B6863C4120E2E9DC31B92DFB79868EA687FED2F6D9C0700B1B12A8EE79445C10B5851B1211F06C7D64CBF499E3A3C7F7AF5AF6C9B3A00B1AD228EE7B30947E11C1335A7F28D9CF2A985FE858FD5EC67B43900312AEF78054FE3E0F944A573D485634BA8AF7B4C878FACAC7DDC16E500882D95703C8F4D380AE7B897E654BEA688A6E6FA6B7FAD1947A43B00119171BC8308C2510AC944FF4F4A4D1D5D5EFD9BAE9505205D57C0F1F19792F09A8D9CCF29A5ED1CDB945044FFC7C453F3FDF5BFED522200D2A5FA8E8FBD38135EE3795C3C56FD80A1A9FCAFE7F1D491D3EB7F6728FED0B00064A84468B09B0269145E4D8A8B0DB929383687E5FF215653F32B6B9DDCC30640B0FE6B2BB00947E11CF7AEDDB9490745FFAD94373577FAFCDF37E9AED30780E8A837867DD3E8E0D5A4BCF6E0D8F211A2FF2ACE6E1D5DB9F089366507206DAAEDF858BDC47F1EB13AA7DA728E9D7A29FA4F453C3DB7BCFEC9B6A404206D29EDF838051CAA3895CBF4831D4FE53F3C525347FAABFFD0461E00A40D951D1F239BF59FCB1BE5A9DCAEE1D852F2ABA4D4F4FCF2EA3F9A9616809856D8F1F8D98CFF5CF2CA2F3BDDC7B2A97C25CFF3E98533173E65322F0062525DC7631770B0571E59178143115D64628F485D22238DFAF284974FDF707AFDD332F1EE1905809852D6F1B8BD38788E222AE0F82189A914701079D35E9EAB0DAFF8FC440A12FA92629A9E5B59FB8C449EF77C2FD0202ABE30D5403487BA988263AE7FFECE42865333C101514898FE9D959A3EDA5FFDACB4CC701069451D8F9725E1B399CB4FC8459D630B8E2D79C42121FA37E27C7A7EE5C23F4996008048AAE978AC4D388AC7AA1F9698CAD663D54E388C41C2FCC5DCA3E985E5F57F96C8BF880140A494743CCE62123EDBE3F2E0612B707C0F9217060736EE12DD937C416DD0B573B7AD9D972809009150D1F11869143E8B5409C78F484C659873EC1C239DF52FA5BC782120B47167FA57E579D373CBE7D774E70340741574BC7FD7706CC9270E09D1BF70BE317DF4CCE7D6754A044074D473BCEF523CF9CC0DCA8BB3559D3887712721FEFC06F1B537F62F5C685A2A00D25439C7FB2DC6079FE951792AF74725A652F7B16AAF310D38C99D13394DDF7066ED629379029026AA39DE274DFC6714A7726D83C3D4E316135DF4C89BDEEB6DDA7EE504208E2FF6BAE96FC25138C78FD5EDBB5B7B29E7B87BEC34098F13F33189FCCA184A9D985F5E3DDE241E0069A29AA37D0047FDC20190FA9A39D9A31705BFAE5471F090EF2B310113CED18B83138AE80D12F9E93AC7560E8D00594AC2433973A32FD1E3F26AB1F2570E3480A33C78682D1C591C9C60CBE0289FCE2AAB7CB78600A4896ADDF4C9E2E0D778701DA8B570A451F04652F47A318534F61C3B7300206255B12F50010711155F76BA9F4476261EAB6C86030E22B16A2C8D51C091139D5516C3D18B833729A2D7894928E81CD8838855C5BE40BD24FC55353878787F89EC4C384716076F62CBE1808348AC1ECB62B800471AFB6F2652AF1593CE8073C041C4AA634FA02C9A7C3AABF2A796AD750E97E08083D8B3B6B533D984A378AC7A8076B0C1EBCDF23BE44D8E67EC357E2FF2DFA294FA4389FCCA18069D030E2256A5EE032D46079FEE0DAE03B5168E2C09DFC2CC4EC10107E97E6D6B6790C6FEAFD0E077C81FA81DCC9073A471F85622FE0389FCDA720E2D07C1AD2662A5D60A0438B4E4ABD4B9D1078500A492B6461B2DCDFA576D6CA8E2979D2C768EE06D44F4FB6242B4B0E7D8992B0011AB5E7B811667FDABBCBCD873F08F4B8C6A62439EC6EEC3D1780F0207915896CD62A45170E5E0979D94B570F4A2E0ED4AD1EF359BE12EBD3A700EEC41C4AAD75EA0011CE5A9DC9F9018D58473F492E0ED8A47030E3888C42A6B29460107ABF26C95B570A471F04744F4BB629274E81C7010B12A9A0F547EBD80B8F8F19A9F9418CD84738C221C701089D5663846B9DFCBF92C297BE1E8C5FE4D8AD46BC4A4B0C039E02062D53417289B9DBC8237F2E2979DAC758E2CF66FE21185030E626E6D6B47CE6626AF202F2FBEECF453DAC14C7D421E853793E2574BE457C4C8953AB1D0F0F611A91C76C6C1E720A694D5885BC0917B79B121B7178E24BC9978B4E18083682C62535D7BD1C1A7A9C1C1C307498C616243DE8B837728A25749E4573A07AB130B2BCDEEAD92CA61AF387010D30AD788EF021C591CBC8345E1E0130B2BEB8D2E75AB216DE3A600A4B174B21DB3C47F2A0FAE03B5D639D228782729BA516CE6CCC7E757D64F88C5331008801810B56EC84D388AC7AA9FAEDB77B7F6261EABC6110EEC412456A3668C9389FFD4092EBFCF013834B534D11D0E6242D58A317B33C15394579EAD7A70C52EFB3633E21C497092981624F22B6338F05875F7B90210B1CAD70B0438EAE9D5556B00D281F24B71F8E4F26C15D1CF480C6FC2397AB1BFA8481D95C8CF45E7D89A3700115B01D5022DC6E1933DCBE1C8627F910147595000526D5D8BB44A93F097898B2F3BD9EB1C6914F648F1BCC8841DDC73EC9C3700115B09FB07DA84A378AC7A88C490261EABD224EC11030E6CD22556688D18051CCC5C9CADB2168E5E1CA48A68AEC6B4F66FEAD8DBAABD260307115B11BB073A3533F9A40D2F2F9CE367258632E11C591CA40C38762D0F009158B57BC4589C39F824CF2B0F1E5A0B471A0719111D119361449C036FB1C456C4EE81B2D87F225379B60A7018D6DA6478388801750B388AEB4099E8A112E14D3C56F5A2604929BA4122BF32C68839071C446C656C0F54C091932A36E4D6C29125C11233E0A8B204E0205554AAD8A637EB3F410D6E3C7C58C52EFB3633E11C691C9C22A2574AE437CACE0107115B21834003388A83870A70086BDB6538388880FA59145C5EDC78C8440F170867E4C76BD2D87F17917A85447EE3E01C7010A19552C051DC784856C311BE8B889D83238DFC634DCB24F54D453848D30A10D1C928B87CC27638A2F0DDA4F8E51AD3DCDEB5C5B755591CDCCE44876AE72E982300A9ADFEE69E230E7F490D4EE53EA261886DDD8C6CC893F0DDC46EC25188034024565607317A2EC01107EF21A29789C923F87FE5AA390190AA4A59D46E6976F2F1F9E03A507B9D6304E0808358B4E8ABA652C29197070F7FAE6A9FFDDA9978ACEAC5C17B15D1EF48E4D7F5DB2A38885815CD073A79DDA58F9F9898B01A8E2C0EDECB2302071CC4FC9A161B218D0E3E8E06D781FEBC445013CE9146C1FB48D16F4BE4D7B5736CCD010E22564D73819C802309DE473C5A70C041CCAD69B1C8A712FFB20DF2CE12F32325829A708E5EECBF5F917AA9447EB638071C44AC9AE6022D26FE659EE57064B1FF7E1E5138E020E6D6B676E4ECFA6092EFE273A494B5CE9146FE0748A997684F762B40079F730CCB1D7B90610A75F0EFD975C1244D94070F1F2531BC89C7AA340A3F408A471A0E3888C4EA138E51C0914F943FB56C2D1CBD24F8A0627AB1D8D42D740EEC41C4AA2B1768310A434F9567AB1E2D11D5887324C107694CE0808348AC42A1184EC011071F22A2DF129AB213DF21C71E44ACDACD0365C964C09C17B78FD8EB1C6308071CA4F99A16EB59C2519CAD52F41889A0461EABA2E0C3A4E83725F2B3ED738E617382830C53C8E0BFBF33990CEE05380C2AAC1F1A80E86BD828426FE6325F791BC586FCB18D02ECE864C2397A71F01145F42289FC5C730EBCC512AB7AFD40BD994B7DE595A77201477DF95AED010769556EA2A5F8E04126AFF810F017248636E11C591C7C84C7DC39E02012ABB3668C028EBC385B65311C69ECDF42A45E58736A7B37B7F843C02A738483545149A04D3AEB5F4A797991B4B5CE91C6E12D440C38EE566F0022B0F8878518C051DE7878C9B0B655FEDDC463552F0A6F558AAFAF327EA5368E3B071EB12A5559BF910B706449782B33E0D8ADDA70107D06F68C706A2638B0E195371EFEA2C430269C238D838F12D1AC447EAEBECADD6FEE00446C656C0F747226383001380CA9DB5E58006248EB340E2E5AEE1CA78928119BFE88EC3976EA0140C456C8F640691CB04468438F5580A36271004845A1EA369300C4081C51B04C8AE2BAF3D9B3FD883A07DE6289AD90DD03E90262048E245826061C754A0F07A9A3568DB63A8030D1458FBCE9B9FEF93B6B0CB96FD334F6FB442A928A37AA3F98893D0811CDF7D71AFDE4429DC5D51410C0514765F36DE12086346E0A48AED4950BCBAB7748A5D58BC315453C23156F5C9C037B10B11523BB079104248BC315061C5A95868368C9B777E7AE1D248D8233A4E83AB1E98DF8DBAABD740220622B48E6731009074993E00C31E090282D0091507197185D39482F0E6E5344D78A4D6B4C9D037B10B11564CF1E248B83DB18708856160E222AE7F783B5ED20691CFC31114D8B4D67CC9D030E22B692BA7710C061AE98701043DAB6E520BD2438AB98A6C4A601E7D8262500115B59EDBFC5CA92E02C030E43151C84052086E46DEC20CC27AAA4E4293A40A40E57695BA90D9C6357990048A5D553BF515340EA8F24D00370EC29220011585FBB85700610C0B1EF0A0020E30C08E0185A7D003254A2660DAC7710C051A9B000A4924CF51B590D08E0A85C50005259AA7A0DAD050470D42A2400A92557F5C656020238AA1770B32500A92D59B50ED6010238AA156E472B00D248B6E19DAC0204700C2FD81E2D004863E9F6EF680D208043ABC200444BBEBD3B5B0108E0D0AE2E00D19670F7009D030238442ADB141045746CAEBFF64689241ADD51B59884873CE6DB9B2460F3BD584DE6738F3E804344C62208001193727BA0425843A1F70DCBCC77CCAFAC573A11DC457EAE8D09405CAB18F26D550100D2AADC18CC350500886B1543BEAD2A00405A951B83B9A6000071AD62C8B755050048AB726330D7140020AE550CF9B6AA000069556E0CE69A0200C4B58A21DF56150020ADCA8DC15C530080B85631E4DBAA0200A455B931986B0A8C25208A48EC47325D2B7817F9CEF5D7AE6C3AEE62E41F9F50EA8AA6FD75FB31514844F7AF1BC7E9E3EE75278BF65A0AF07C7FCD6B1AA100C453EA58D3FE5DF503205D29EFDEB80044B366AD7F614A335F74AFA70000A9A7D73D5A03104D012DEF0E40340B04403405B4BC3B00D12C1000D114D0F2EE0044B34000445340CBBB0310CD0201104D012DEFAE05481AF9C748A9E396CF71B78DB5BBD7FEB826B6E3F90210CD02C2413405B4BC3B00D12C1000D114D0F2EE5A80E09374220062F90AD74C4F0B10EC410088E6FAB3BEBB162070900E00C999CBAB393D22CE1B8EBFD5BFF87B2B4611CFC47F5B8FC0900475AE422D1D64F3CF309D8DE8A4D48B88E81175633B7D58B18DCBABEB0A8AF6762A3096DF070120762E461BB302203656053959A30000B1A61448C4460500888D55414ED6280040AC290512B15101006263559093350A00106B4A81446C540080D85815E4648D0200C49A5220111B1500203656053959A30000B1A61448C4460500888D55414ED628309680E44A35BE2BD69ACA2191561498603EC64487EA0EE6F469DEBA93457B2850570100525731B41F2B0500C858951B93ADAB0000A9AB18DA8F95020064ACCA8DC9D6550080D4550CEDC74A01003256E5C664EB2A0040EA2A86F663A5000019AB7263B275150020751543FBB15200808C55B931D9BA0A0090BA8AA1FD58290040C6AADC986C5D0500485DC5D07EAC149004E4BB77F64F9BE7E302150000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (18, 4, 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001FB849444154785EED9D7D9414E595FFBFB77A66044523AE24FA738D31A2BF2C4A572346C4F8965588C1C440B2B0D2D518D08DAE0A5D3D1835C6CD719263A2A242770331F24B224257A3B0AEE6B8495492F50D717D41BA1AC2C668587F498C468849D6A830335D774F0D335964E9AAA7DEBA6A669E3A87C31F7DEF7DEEFD3EF5997A7B5E08F2900A48059A2A40521BA98054A0B9021210797648051C149080C8D3432A200191E78054C09F02F20AE24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C149080B4B8A3BBBAA01CF9DB89237A76BD33B21B078C80951A99A2DE110A52237AB831921ADCDB41A9F72C6EECEA3D20B5AB03DDBBBAD1B1EB50FC71D7BC95AFEE6A71BAC3BE39094804A7C0B7B3E34737526DC7352CEB38101D47CCC711F17116D358028E0AD02483683B2CDE4E84ED0CDA4EA0ED0D6A6C479BB2BD7365ED8F01624BD7FD28200109785A2C999B3934D520D56A582713E1340626137074C0B03EDDE95700FF3B819E81429B0FD8A5D42E5FB7E94F3E8349370012108FA7C16D73D21F1C61D1D4067006012A80D33C8668993901CCC0B3006A0C3CAD74288FE4EFDEBCA365090C81862420029D589C33EEC3C46D53C1CAA7004C05F81001B7249AFC17111E61F0A36DBDD62357DDBBF5D7494C32493949409AF4C692ECF88F92A24C23463F14E84852C785904B376C582C3CDA06E5A1F9D5CDFF3F8498432E840464AF2EBDEBB3130FDC7548F77440F91C80E9C09083A2D909FC67006B99B1B650351F1972677980822420004A59F5934C984EE0E9007D38809E83DE9580A72DE6B560EBBEC29AADBF1BF405052C60580352D6D44B18B80CC0A4803A0E45F79D00AF4D11BE37BF527F7128162852D3B004A49CCD6816F115047C4244A48036F6B7891D04BC09C20E30EF00634783941D0AF0261376B0851DDCC33B0E1ADDF6E6BBDD8D83946E8C49311DCEA9C698868531201A436CFF8F31043ADC626B0C118D0160FF3B30607EAEEE04DCD5205ED1390C411956801473E92F10D31500CE753D2BFC1974037801C006069E1AD9DDF654D4DF216ECF4E38A68DAC338971260893018CF797BAB397FDCAD80256F0300365580052D2D2E702D409E082904F9ED7417881192FB0C51B0E3CB8FDA9CB576CEA09B90D4FE16E9F3DF1F076A5F74C309D4EC4A730F0710007790AE26C6C7F5B59A1907267BEB2D90C316E22430D694016CF3CF130A5A3EDAB045C1D86FA04D8AF421F63D00BC4FC7CBE6A3E1746DC28632C9E397964AAE39DD319F471229C428C0B181811B44D06DE06F0AD8261DE12345692FD872C20F6730688AF67E0C4C01DC058CFE0FB768FD8BDF6BAEFBF649F1883F6589E3B796CAFD5980DC24500C6052F849E045937EB95FAC3C163252FC29003A4AC4D18C76C7D15042D90DC8C1DA4E0BE5EF0DA8595FA53816225D0D91E553CFAE5CC4520BE088CCF064D9180F2AEEE9E9BAF5DB7ED8DA0B192E43FA4002967D35730E826100EF32D326103186B3B14BEEF8AD5F5377DC719448E652D7D1AB3B20716E04301527F9988BE9EAFD48C003112E53A2400B9EBB2891FD8F56EEF2270DF370D3FC79F41B88F186BF386F9A89F0043C1A73C6FC2186BF79EDB2F02D96FC47C1D0CDC5430CCAFF9724E98D3A00764492E738EC2BC087BDED6F83916A558F9B61C8BF47EE996E6D2175AC042309DED475480FFB991A2C2C255E66BFEFC93E135A8012966D54E22DC0AA0DDBB9CF4030BB8ADD3A83DEDDD77F8781473EA7C622C0470AC8FAAB7025CD08DFA4F7DF826C2655002B27CE6B8518DF68EE54C7CB10F155F226051DE30BFEFC37758BA2C9F3BEE889E9EB68504B241497914A1C7FE06A51BB5E51EFD12613EE800296533C713E11E06FBB9475ED463B5DDF6E5359B762642FD41964439AB9ECA0A3AC17DAF883D1D0C2E168CBAFDB176501D830A90F2EC09675B8AB596800F7A5359DE4E79D3CBD9BA7FC88E7D3539DD5B5CFE816ED4ED690483E61834802CC9A5672B4C558FCACADB298F827931EF7F06B441F96B613FA27A3759A75FB3BAFE8EB04F8C86830290524E5D08C61D9E7462FA6E0FA7AE97B7539E54F36C6CDFF232782951DFCC4BD1E36D6A6B9B90BF67D32F451DE2B24B3C20A56CFA461075791388AED38D9AFDEA571E2D5060CF5779B50CE02A2FCDB185330B6BCC0D5E7C5A6D9B68404AB94C17986FF4220A31BE90AF9AFFE2C547DA86A340FF2DD7622FD108CA897963F3362F3EADB44D2C20DEE1A05FB1D5FBD9C29AADF5560A28DB7ABF02C55CFA4262FA81175D920C492201F10C07637DA3E7C0CF2D5CF7CC7B5E3A46DA46A340DF805158FF0EE060C11698A09C94C42B49E200F10A073196E5ABE602C18E90662D52A0FCE9B107F06107D9A314260A36F91B82F2A9A4419228404A5AE68B00AF1414D45E367041A16A2E13B59776AD57A0A865AA049E2DD232033F53A0CC4A12248901E48EDC04B58DAD9A8890B60D5B34B5B0A6B65ED45EDAC5A78097BB0266FCDBC8516DE7C73D757940AD440072E79CF407BB2DE5B7000B8DF321E05239962ABE13DE4FCB252DBD12A02F8AF9F2B775A3EEE995B1585CEF568900A494551F05618A60FA8B74C3BC4ED0569A254881B2A63EC6C0398229E575C35C2A681B9959EC801435F53B045C2E522103FF5230CC2F88D84A9B642A50D2547BA10B91B93B16139D5FA8C47B1B1D2B201EBF92FF5437CCF392D9ED322B2F0A943575ABE0621ADBDA1A8DF3E35C853E3640FA67023E26222C33BF50A8D645FEEA88849336312B60EFC0D503E545103EE2964ADC770DB101E2E17EF4E51EABED7439E8D0ED541A5CBF972F5627580D3C2C32758189AF2D54EAB7C551612C802CC9A6BB1422D731560CBC494433F44A6D631CE2C836A355A0ACA95319B81FC028A79618E866D0DFC6313DBAE58008DF5A11762B6CCD58606CF971B4DD24A3C7A9C0D25C66BAC56C0F2E753C1719785C37CCBFB5D7086E65BE2D0744F8D68A70895E31EF6EA518B2AD7814286AEAD504DCEED63A317F2B5FADDFE06617E6EF2D0544F4D68A406BF2462D1B66A13256B215286BEAC30CF7495744F4997CA5F6C35655D33240966AE3C75B50EC6709C7FB4D003B09CAD9491A8FD3AACE18CEED2CCEA5CF4C59F404C875E7E54D47769F3069D6BA758D56E8D532404A5A6625C0AE430D08D499376AC556142FDB489602A5ACFA0D10DC5764242EE8957AA915D9B70410E14934C43FD22BF5B0F7F068858EB28D1014E89A39AE637447FB136E7BCF13F08A92DA7DDAFC553FFF7D08CD3A86680920252DF304C067B914D36359CAD99D6B363F1375D1327E721528E7321730F3BFBA66C8DCA557EB5F77B50B68103920A55C5A0793EB2D130137E60DF31B01EB91EE434081522E5304B3EE540A033B99AD499DD52DDBA32C39524016CD1C77444747FB73041CED52ECD34F779B67AF5B87963C784529A88C1D5C81F2CC0963B8A3F104407FE372FFB344AF98F6BA5C911D910252CEA9D731C37D8B2EE24F0FD51D8A22EBB9211EB8A465B200BBED33D243294CCAAF3237472547648074CDFDC888D13D1FB013FF9863F28CC57AD50C650FC1A8449271E351A0ACA9773330D7F1EE83B1AC10E19A04910152CEA99733E33B2ED2BED5DB6864AEBE77EBAFE3E902D96A921528E532A783D96D7B8AB7A9AD31217FCFD64856698C0C9092A6DA6FA34E73BE7A5049AFD60A49EE24995BBC0A9434D51EA735C3E51936B21DAD2201A4944D5F04A235AED2B2758A5EDDB2C9D54E1A0C5B05FA07333EE0240001BFEEB6DA4E8E624A44348068AA3D02F77CE7A2E478AB617BD67B2C5CE46E84812F170CD3DB02E70279840E88E07D232C58D33AE55076812E9226A59C7A191877B95C45B6BCF5DAE893BB1E7FBC374CC5C20744536F06F015C724091BF48A79A6D74216CF3CF1B08E916D87F734684C0A076CC91BCFFE97D718D2BEF50A94B5498734B07B7C7B8A7774BFD7BB73E1BA9FBDE5258BC533278F4C75BCFB0BF77D4848D38D9AD73D645C4E552F990AD88A4CC827A679F96AADE90A8A4BB2990C2998A2304FB38031041C0ED0E1FBAE9B45C00F01E55A39F257A063623059365B3DB191E245609AF6FEE6A901F04EFB6BB802EC60C243C4CAC34EFD28B6F81CDDA31B35C7D7C25E6508F50AB2549BF0690BD68F5C9278F50FC79BC77575C11AB02BCE99F861A5D1389389CFE87F76719DCCBF771B1D0A7FE88AD5F537BD162FEDA353A038FBA40F91927AC3630BDBC07898157E82DB94273B57D6FE38E0BF2C3BE1980659AF3AC7E337462B187B7188BB57850A484953EF04F08F8EF78A8CAFE5ABE64DB64DFF9E8373C9E56390ABC88CFBF5AAF977AE76D2A0650A1435F57E023EEFBB41C21BB0A8C2DCBB7A604B8B92A67E0FC0252EE757A8FBC3840688BD35736F47FBCF011CE55040AF456D1F4E9175025B963D18CDF1FDB6A8B84478235F318F14B59776D12B50D4D4DF89AC58229409E35E065692426FBB7D3824E0AEBC613AFE91166AB3DF283440CAB9F46C76D964D34E9E81B100CEF592A488AD6E98A1D522D29EB47156A0A4A9512CAE60EF3962BF9899EAD0FAAB47769F3036AC1987A19D542297BF284F2A094894EA7A8F1D11206289305DA0576B6ECFC242B1C204E43F5C07260AA5E4CF4802E24FB7A8BCE20524BC01B0A100D2BFE5D6CFA2125B24AE044444A5D6D9C40A08B05137CC4F84516D3880888DDCF59A6F03A0A701DE48C475B7E71B09885779A3B577078434304E25C2A90C9C2ABA378C60D63CC26AFBE0E56B36ED14B46F6A160A20252D6D0014781D2B065E03B09E40EB09D69379A3FE1B3B7391D5182520414F8570FDDD00214B3927BF66B3BD4003F67CE3E04F30D8DE23660A39BF09154AD4B26846E79ADA8342C60E462101A2DA1F708EF19D0CE17BCC785039EC9DF5F9A5AFECDE378E04C4B7B2B1397A0164EF24CB0BC61E60BD75D014224C07E352DF0510DDAE576AD7F8F6EF770C0CC8D239E9632D8BFC4D9C673C04E2926ED47FEA548804246837B7DEDF2F207B675AD2D2E7824807E3B33E2A08E5392430202227EFBEC531F0AC425CCA57EAEE7346E42D968F73237E97300019A8A2FF1B9BFD61799287CAF8C8EE13DA837E0F890310CF7B0C8A40289F413C9C3A2D300D139081BB9DA296BE9540C2B74D7B3FE7F82D393020254DB517F9125B0D9179B65EADDFEB3559098857C5E2B78F0090BEA296E4D2B31597111B03D5DBA3BDF386F999206A0402A49455BF0682EB626F04FCC9229E54A8D45FF293AC04C48F6AF1FA4405885DD5D2D9E33F6629CAB3000E71AD32E00A8CBE0129E6325388F951D70443F86823011150396126510232506A319BDE484493DD4A57A04C5B606CF6B511932F40EC19628C5D3F71DBCE97809FE50DF324B702DC7E9780B82994BCDF5B01885D754953ED111CE35C14307BACB6F3FC2CEAE00B109165EA6D3852ED3DE75DB5729BD74933FFAB560948F20070CBA855802CC94D3C52E15EFB8FB5232404FE7F79A37E995BDEFBFEEE19906F67C77FB48752CF01FC570E8DBDC716A616D6981BBC26B43F7B0948182AB63646AB00B1AB2ACE51CF502CAC6760845395C4CA947C75B30D93F0E119905256BD0304E7058343DEE0440222DC9F89316C252076D14BB44C41012F7112C09E745530CC795E44F20448FF366ACFC199D4D5BA615EEC2509375B09889B42C9FBBDD580F43F8FAC0230C7418D1EABB7A176DEB7D59E9A217478024468CE397872DEA8DB33BF423B2420A149D9B2407100B264F6F8C98AD2B70F66D383809BF286E9BECD5B7F046140CAF3268CE16ECB5E9BE85087D6EFD52BE6ECB07B410212B6A2D1C78B0310BBAAB2A6DAF3D7FFBE69858C57778DD895BEEEFB2FBD2DA2823020A59C3A0F8CEF3B068D689F0F0988485726CB262E409668E33FAD40719B6E7B856E986E3B0FF4092A0C485953EF67E7655C42193DB9BF6E968024EBE417C9262E40ECDC8A5A7A23A1F90744223C98AF98422BEA0801B2646EE6234A0FDBB757EDCDC461E0FA8261BAEF2625A2EE3E3612101FA2C5EC122720252D7D3D40DF6A26813DF4A9B7FBC02317AE7BE63D3799840029E7D4F9CC58EA14AC61E1A4856BCC48E6A54B40DCBA3179BFC70AC89CF449B0688BE3C3BAC217E657D71F72534E08905256AD80A0393CF8ACD7ABA6D35A456E7938FE2E0109245F2CCE710262175CD2D2EB013ACFA1F8A5BA61E6DDC41102C475416A42A4BB8D4A40DCBA3179BFC70D48514B2F2150D3DDCB44C709BA02626F3990EA68FBBDE3E50AB8346F98CE6FB802F4A10424807831B9C60DC8D26CFA528BE8BBCEE72D1F3DB03088C3F38AB3827DF382418EE35758E1D30AABEBF6F8FC480E094824B2461A346E40CA5AFA3406D9FB64363D44367172BD821435F56A026E776AA85BE151D784B8E4FCBE6D4940223D9723091E3720FD8BA93B7F0C645CAC57CDD52E7747CEFA1473EA2DC4B8CEC1EA1DDD304745A2727F50094894EA46133B6E40ECAA4A39F51D300E6C5A21E16ABD622E0E044849539701B8CA21C8EBBA61FE9F6864DE13550212A5BAD1C44E04209AFA3A80239A574837EB46EDAB8100296BEADDECBCC1CD4BBA617E2C1A99252051EA1A65EC440092555F02E184A675327F57AFD6BF14089092965907B0D3EE4DCFEB86796A9462CB2B4894EA46133B098014B3E9E789E894661512E3C17CD579C889EB437AC965CF73029ECA1BE659D1C82CAF2051EA1A65EC240052CAA94F8161EF7BB9DF838047F286797EC02B88FA88CB8E3EA66E989928C596579028D58D26763200C998604E37AF90EFD18DBAE3AEB8AE57906236730F113BCD10DCAE1BE671D1C82CAF2051EA1A65EC4400A2A9F69AD1C736AB9319B716AAE657825E416E05706DD346809D05C31C13A5D8F20A12A5BAD1C44E0620E99D00355F5C84A8A0576AA5408094B54C819D26C31376EB15D3713589A05D200109AA60EBFD9301886A6FA5D1E1F0C7FDA28261DE17089052367D11881C576167AB714461CDD6DF45D50D1290A8948D2E6EDC802C9F3BEE88DE9E76FB3B48D34364716BD767109193334534757EA5B63E2AB9457290ABBB47A5BEBFB8710352D6D4A90CD82F989A1E6DDD3D075FB56EDB9F035D41D6CE9C997ABDE317F6A52AD53410F3357AB5EE385ECB9FCCF2213D886E71FAC60D483197B986981735BF7C505DAFD454378D5CAF2076809296790260A76F1DA1AF85B577E2F20AE2D68DC9FB3D6E404A9A6A0F42CC35070477EB15F31237E5840029E732DF64E6A663561878A56098C7BB35E6F77709885FE5E2F38B19102A6BEA2F1818EBF004325F376ACBDD141202A494CD4C03F10F9D82898CAD774BA6D9EF1210BFCAC5E717272022E72B3126E5ABA6BD4AA8E32104C82D33277E60647BEFCB20387DEF109AE3EB96D0FE7E9780F8512D5E9F5801D1D4328005CD1460E0C582614E14514808903DCF21E9E5005DE9D06864B759121091AE4C964D8C8008DC5EE116DD30AF17514C18109193D4629AD759ADAD1469D88B8D48DBF235AF1745A3B78D0B907236339789EF767C1CB0F8DCCE35F57F13514118103B5859531F63E09C668109783C6F989F1469D88B8D04C48B5AC9B08D0B905236FD3888CE7650C1D3FC254F8014B5CC9504767CF2B72C9AD1B9A6F66098DD24010953CDD6C48A0390A5B9CC748BF901A70A99F1B542D5BC4954054F80F4AFF0FE2280BF6EDA0061C3216DA3A7CC5BF9F82ED124DCEC24206E0A25EFF75603B278E6E4916D1DEFDABB4C7DC2E939B983AD53AFAC6EF983A8629E00E97B58CFA5BF0CA6DB1C1B202AE9955AD345BB44931BB0938078552C7EFB560352D6D412038E2B2512A8336FD48A5ED4F10C48D7CC711D8775B43FC3C0C98E0D092CA9229AA8044454A9E4D8B51290722E7D3133DDE3527DED0FDD3D93BAD66DEBF6A2926740FAAE225AFA8B00B9BFAD629AAE576B3FF092D0FE6C252041156CBD7FAB001179EEE8AB9E70895E311DDF6EED4F255F80EC8144B53766779CCF6BDB8DE86E3BF4F2759BFE14A48B242041D48BC7B715802C999B3954E961D7E70926AC2B54CC597E94F00DC8B2D91326F72AD623041CECD6701BA58EBFAAF2E22B6E76CD7E9780F8552E3EBFA801296533C783FAF6AC713BDEB698CEEAACD66A6E86A15E41EC60452DF32502AF106958619AB5A05A5B2762BBAF8D04C48F6AF1FA44094829A7CE02C37126E0FF54CF5FD58DFACD7ED5F07D051968B094CD1441AC8B24A0806E5EE0B292DDFEE2484044D44D964D54809434D53ED91D175AD84B89B5BA6136DFD05340B2C080EC9950F5D2C32E9B95FC25157B9617B175835EDDB24920BF3E130988A852C9B10B1B905276FC4422E59B0C7C4AA44A2FFB103AC50B0C881DBCAC4D1807586B19385124F93E1BC20A58D60A11502420C2AA26C6302C406C30A0289781719987E27EAE1BE6DF78B06F6A1A0A20BE2111044502124657B7364650407C826117C9BA612A61551B1A208120D953CD034CFCE0C11DBB1FB8749F4DDE2520617577EBE2F801A4AC8D3D0474E0747B3C1F11A6FBC8F6B7BA611EE5C32FFA2BC8400BBE6EB7DE9FDE6B001E04F3066AB79ECFDFB3F597129030BBBC35B1440159969D704CAFD2388598EC51E03614BE4E70227E215FA97F3CECEA42BD820C24B7744EFA58B6EC072A9E1D30E11E109E8585E74058E8144BCE0709A874C8EE6E8080E87630DBB3FAECC1854D1777134A8BF1905E352F14B2F56814092003399472691D4CDF047090C7BC3C9B4B403C4B16A9832B20A1B51EEC3B875B1A91026237BE6C4E7A52C3EA83E45CB76482FC2E0109A25EF8BE2D00E4658B6996DF2FE4A215470EC84022F6642B057CA5A757C1A2550090807810AB05A6110312D90221FB4AD33240EC866F9B933EA89D952B89D95EFCE12361F69304244C3583C78A1090C8B7DBD8BBFA960232D0B03D33B1B1BB71554AC105CCCDB7C812EE26E65FEAD5BAC32261C291A461480A9434F597003E1A52B8BF8421F0D179A3FE9BB0E3368B170B207B2753CC8E3F4B21FA0C039F01C8DFD74FE62EBD5AFF7AAB4493EDB82B50CA65BAC07CA3BBA5B8050177E50DF31FC53D825BC60EC8DE25F4ADC84D9804F069009D0BC6016E2546B5928A5BBBF27777054AB9F4E360C71546DC83FCC582FF4337EAE33C3884629A2840F6AEE8AECB26B6BFF75EEF246AF0B94C64CF3919458C51201E05D028027ECDCCAFCA2B4728E7416441EC2B09311FC3C0D104FC89817708789709EF82F95D025DC8C078B70408CACCBCB1F99FDDECC2FE3DB180845DA88C972C05FA273C190044BE7EB7ECADD5BE2A49409275DE0C8B6C16CF3CF1B05447FB032E5B6A0C6851B3DAE9939D2B6B7F8C431C09481CAA0FF336CB9AFAB0E0BC8E7798AD6985EA9627E3924C021297F2C3B4DD92967E10A0CF0995EF732512A1D88246121041A1A45970054A39750D18178945E26FEA46FD9FC46CA3B3928044A7AD8CBC9702652DBD82415F12128570AF5E31838E04176ACACD4802E2A690FC3DB002454DFD0A01A22B8B3C3FC26A9B76F99A4D3B03371C420009480822CA10CD15F0B4440FE32D4EF1B4C2EAFAB349D1540292949E18827994B5F4DF3148782DB4B83E063A492F0119822766124A2A66D55B88709D682E4984C3CE5D0222DA83D24E4881AE73CE691B7DD45B3F165D276DCF4918CF301291822420222A491B21059664331985F83100870A39241C0E790511ED4569E7AA403997D198B9E26AB8974192AF1C0369CA2B88971E95B6FB55C0E37AB97D3188F8CA7CA57E67D225958024BD87129CDF1D7FAF9ED0D6863BD037D94DFC20E0C6BC617E43DC233E4B09487CDA0FEA964B9A3A03E883E3582F85107866DEA8B77C5E87971CF7B69580F855CEC1EFE6ECF8D1235234010D9C1541F8FF1D92F1240E505E6CC590F0522E733A31E719F0B4AD0003AF2B50CECB1B9BB7B54493901A91808424A41DA69CCDCCB5605D464493430CEB25D4468056E846CD6D434B2F31FB6C8BB9F4FF25B67791257B451A8F07FF4437EA533C3A25C25C0212523794B4F47A2FEFFE436AB64998F04EC8BB664F3C7C17F5DA578C3C113EE0356F06CA05C314DA60C96BEC56D84B404250B9A4A9FF19F63A5F21A4F5AA6E989E9E0FF66EB3AB0BCAE857D20B98294F3E96EFE99B7FCEB856AF9A425BF485506F2421242001652D69996B01BE35609888DCE93ADDA82DF21ABCA8A939827D3B25345F7C7FE11F6D28CA0D0B576F7EC16BDB49B3978004E891622E3385981F0D10227257626B4ABEBAE5276E0D75CD1CD731BABDEDF320FAA2C8F6DECDE231F08D826186BA1E965BEE51FE2E0109A06E495317D8CFE60142B4C095E6EB466D79B3868AB3D533883003F63F8FAF6CDF1793B1D922EB864E63CB8F5B5054CB9A90800490BA98559712617E801091BBEEEF21F9CE8BD5A3BAADBED7B433C0382370124C77B6A371C395D52D7F081C2B61012420013AA4A4A9F65FCBF39B85B0577D0C105ED89581739A1A13FF48AFD42FB07F5F92553F9F22CCB280191474D39A3D0D9ACCBCB850ADAF124E7690194A40027498DBD29A16F3D73BABF5AE004DB8BA0AAC81FB18339E23C2AC40B750EFCF643B08CB8FDCDDB36CD6BA6DDDAE490E6203094880CE1B248004A8F0FDAE0CEC24E6653DDCBEFCCB0999331E5A714D02494002283C6C0021EC8685E54A8A972D585DB7BFF90C9B430212A0AB870120EF025845A47C275FD96C06906AD0BA4A400274DDD005847FC5A055C4B44AAFD65E0E20D1A077958004E8C2A10608032F12F1AA768B570DC557B67EBA5A02E247B57E9F2104C8A316D3AACE6ACDDE8E401E7B29200109703A0C6240DE03B011E09F361AA9F50BEF1DFC63A60274A3A3AB042480B283E243E1FFD4F72AC01B0165636F2FAFBFFA3EF317014A1F36AE1290005D3D18869A80713F11DF9B6AEFDD70D5CA6D6F04287758BA4A400274FB6018ACA830FFC3826AFD7B01CA1CD6AE129000DD9FFCE1EEFCFB4637A90BD799AF05287358BB4A4002767F92274C31E3D642D5FC4AC01287B5BB042484EE4FE4945BC2437AC5BC3084F2867508094848DD9FA8451B18EB1B6D98B77095BCB50ADABD1290A00AEEE51FFFB23FF42B66BEAD5035978558D6B00E250189A0FB07168E531A38D36B78CBE396140AC004DA6271E315ABF7E09717AE7BC6FE08288F901490808424A40C33341590800CCD7E955585A480042424216598A1A980046468F6ABAC2A24052420210929C30C4D05242043B35F6555212920010949481966682A2001199AFD2AAB0A490109484842CA3043530109C8D0EC575955480A484042125286199A0A48408666BFCAAA4252E0BF01537E0F8C345B69120000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (19, 4, '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000019F449444154785EED5D0B9414E595FE6EF50C43565716CDC6B8E6E4A1465694AE1E31AB4665D1043446A2EE1191AE8118F1150D5D3D681643B2863D2E9844C374F7C871216A0CD3D560262F1E9A08AE01D14497205D0D6AE0C8C64DD63CD4637495EC00D375F7D43028E0305D555DEFFAEB1C0F72FABFF77EF7FBFF8F7AFEF712C42118100C1C960112DC080604038767400844AC0EC1C0300C088188E521181002116B4030E08C01710671C69BB04A0803422009996891A6330684409CF126AC12C280104842265AA4E98C01211067BC09AB8430200492908916693A634008C4196FC22A210C08812464A2459ACE18100271C69BB04A0803422009996891A6330684409CF126AC12C2801088CF135D9A7D52DB5FFE386AE4A8917BDB8CBD465BBFD4321229A30D756E932835D2846370BD0F29DA8DBAB4BBC5E8EF935AA5DD6FF6B5EEFEAB0FBED997EB7E71B7CF90131D4E08C483E92F4C3FED58108D212975328031C43899C16300987F6F967326603B403B98B00330B69B7F6F256CFF624FED150FD249B4CB66272BD1E4ED4FBED4913E8F992E06700133C610615440C4BC0198A2C1E344FC48AE5CDB18108ED88415027130955DD34E3B454AA5CE23C2050C7C16C0910EDCF861F236010F33E371A35EDFD8F9D0B617FC081AA71842201667B3A4C8930DF06708741E80F116CDC2366C3383374AA09FE6347D6DD8C085118F10C830B35252D267317009489A02E6741827D03126A21AD8584DC09A9C567BDAB19F981B0A811C32C125A57D2C832F01F11430CE8DF9FCEF4B8FF024985613684D4EDBF27C2272B698A410C82051C56CE652483C0B8C2916B98BE730C66A80EE572BD595F14CD05E568917484191A711700D80C9F6A88BFDE8B520DCAF96F5EFC73ED361124CAC400AD9F44C22CC026842921740C3DC9937EC3BA3E83D0DC7C67040E204525032D7117816803363389F5EA6F43488EF57CBB5FBBC0C1236DF891148B79239C720631EF6BDD013874306CCF72A75D09D9D5AF529872E2265167B812C9A7AF6FB5A46FC651E03F30048919A9DF082AD83B0F0A89637177EE1C197FAC20BB37964B116487747E6B2BA617C9588CE689E2AE16108063649440B6797AB3F892B3BB1144861C6F80F4B46BF79D6B821AE1317A6BC1858D25AAF2FB879C5B6DF8509971B586227909292BE8241DF0470821B04091F161920DAC930E6E6CBB51F5AB488C4B05809A4A8641602FC9548301F5B9074A7AA55CDFBBD581CB110485736939188CDB38678D917826549C0A375A6DB3A2BD56A08E0340521F2022964D3B388E81B00DEDF1413C2D8550618784D02E6E634FD01571DFBEC2CB2025972FDF8D6BE5D7B0B00DDE43367229C3D06168F3CA2A5F386A59BF7DA330BC7E8480AE4DE99F2F17BEBF420833F1D0E1A058AE119E0C7EA7BE8EA39BDFACB51632A720229CD94DB616005F3C0FE6E71448501C60E3270556E85BE252A904D9C9112487756BED020982FA506AA7F88236A0C701F812E8DD26EC6C808A498956780B02C6A4B42E01D8201C6CCA87C1D1C09819414F91606EE168B2D460C106E51CBFAA2B067147A811415F94600F7869D4881CF0103841BD4B2BED481A56F26A11648213B6E0291B4C137364420DF1920E20961AEDF155A81943ADA656623F26F627D5F71110CC8A9949C5FF66C2D8CD0432990EE19E98FD50DDA4AC01161244D6072970106DEE23AA53B57545F72D773F3DE42279045534F3D3A35A26535804F369F9EF010150618786A041B536EAA6CFD739830874A20F3274E6C197DFC9F7F0CB3589B3892C70063F5717B4FBEFCCADEDE7A58920F95408A4A6631C0E2DBAAB0AC8E60702C5635FD4BC1847E6FD4D00864F0ABDC4455CC08CB22081B0E026685E52BE0500864713693E927E331808E09DB64093C01304078D530687218F69384422045457E546C760A60218638A4B9E92AA7E917050D3170811415F94E00B7054D84881F460682DFBE1BA8404A4AFB150CA3378C532330858301024FCD69B51F0485263081DC9D6DFF482B198F8BEA23414D7D44E29AD55268CF05F99EE77F1B04E2C00452CCCA4B40B83E88A445CC683160D6DDCA6BBAF9D1AAEF472002292AF2E5007EE47BB62260641990882E0FA282A3EF02316BE54AADBB9E10E54023BB568302BEE9A8D6D113BEF0E07A5F6B01FB2E909222DFC1C0D7826259C48D3003843BD4B27EBB9F19F82A90811604E0274495F58129367B9AEFDCF71FED643676B224ED4C319F00A213C17CA2C17C2299FF0F8CF673518437169955E527A8E5EA2FFCC2E8AB408A1DE98713DC9F631703BDC4D42BA58C1766F7D47E6375924BD34E3B915B5293065FA69A7F86B52FBBD5949C8F637E44ADD4CCDEF4BE1CBE0964B0B353A8B7577AC4F82626EAE57EF4BAB1DF61F1D4B147EE6D6BB940625CC2A0EB3CC21C6EB7C4D7F9D5E9CA37811415D9ECC59DA0B667FC3D22A93757AE3EECD56ADB77C96ADC0450D6AB1821F5FBB4AAE967FB81CD1781EC6B9849DFF323A1A06310F09C61F0D7F3CBFD6B03704F47669201BE891997059DBF6FF17D2A1DE48B408A4A6603C0B1EF266BBED06A93F8F62FF6D45EF16DA11C10A8D091F932317F2B88D8BEC764DEA0566A13BD8EEBB94006FB90AFF03A9120FD33F05F12D3EDB94A550B128719BBA0C81D049815D55B83C6E2797CC234AFFBB87B2E906256361BD29B4F5EE27AFC98A5967CBE677320DF0A0D45EA3D33FFFE98FE7A9B4EC0F171257D30AFB5AAA65FE8658E9E0AA498CD5C0AE2D8367804F0CC916D7D93663DB0FD2D2F27C9A9EF82226F26E074A7F691B063E332B5B275A55758BD154887BC0A8C295E810FD62FFF5632F8C2D9CBB7FE3A581CC3472F2AB25925E46FC28CB1296C8CD56A45FF5C533E8631F64C2025A57D2CC378CE2BE081FA65F483F82255ABFD47A0382C044F42013E434A8DEDEC79F6050B74D81EE299400A59792E11CCD668B13B98F8F3F9722D3295E6E35F199FE6AA5AD593A7779E09A4D8216F04E3DCD8A9033C4FD56AE63661570FB3B73B73FD84542B3D97FBEE96575D750EA0D42177332334E574DCCC8F808D394DF7E4358227022929E9B318F44B37490889AF6D7F7E7974FBFCF5EBFB9BC553CAB67F9A6164413803C04900DEF78E4FC6AB4478CE605EC7293CBDA775F7A6B94D3E082829E90F316823808F368B3D8CF62CF159F99EDA336E63F34420856C7A0111C5A657F67ED209B835A7E9DF6E66124A8A7C0D03E6A7219FB2E1E7F7605E6A48AD4B3BCB9BFF60C3EEA0A1F16E25C10B54ADE6FA360A4F0452ECC8E8604E3B9DC890DAFDCF5EA3A5FDD6E59B5F73826F5F2F77633E40973AB11FB47919C477A9E55AD1A98FA222AF01E0DBD7B04E71DAB663AEA9959A6CDBAE8181EB022929F26406CC3A57B13A08F8B79CA6FF8B93A44A4A266F30CF27C22827F6EFB161FC50ADE85738F155982E9F4B12CC4BADD81D4C34395FAEAE733331D70552CCA60B2052DD0419025F6FD52975FA9CF2B32FDAC552EC90E780D1D465D99031194BD58A7E835D3CE6F86256DE088ADF03140617F25AADD3092787B3715F208A6C36BD71FD54E766D2767D11E39E5C459F6DD7CEEB7AC34E6BD896B299054C1CBB7B4400BAAAE919BBF334DC7857055298797A9AEA75DD4D8061F0E5A44D5869467A0A1BB4CA6BFC06E8DC4EADFA949D38DD1D998906F3CFEDD844652C1B7539BF7C9B6BDDAADC158822DF4231EC464BFDF593720F6D33F78F5B3E8A8A6C3601F2A1CF09AF54B59AED7D20454536DFB5BCDF72425119E872F75C570512D72724C7EDD9DB7665EFF37BACAE11BFCE1EEFE0215CA396F5EF5AC537781FB21C84ABECD84464EC1A55D35DFBFECF6D81BC8D18F6152448A7E6B42DCF5B5D20FE9D3DF623A295AA56B5751689F1E6AA5DAAA6BB56D4C23581C4F5F1AEB90499F9DA7CA576BF158104C4C3DBAAA6FFB5157CFBC7C4791BB49B8F7B5D1348B1237317986FB5334951194BE6673347BF7D7EAEFBC5DD8D301715B9074047A3716EFF4E863431B77C8BE59EF285AC7C21117EE6368E50F863BA5BAD54BFEC0616F704A2C8E67730FFE006A830FA30B7B1E6347DD670D88A1DE96BC1F49D20F0DB6D1310F3CFE0FF53D574572AE8B82990786FCCD9B7EAD74A40CF6C4D2F1F2882C1C7DB66A5FA9B8310871993886FCA956BF75A8DBFF8EAB11FECDFDBEAF8BB2EAB71021AF786AAE9AE54A374452085E9A71D4B52EA8F01911144D85D005E21D01F197C028063830071504CE6F96AA5F6AF56713040254536AC8E8FDAB811121FEB4675197704921D378148B27CFD1B35B2A380970837E6CAFA12AB584BCA994731FADEB43A3E6AE39CBCDC1D2A47570452ECC85C0BE640AEBDA336715EE1B5DB3F63707FC8EFBCC213B45F89F9DAD9169F3C0E87D52D81C4F60956D0136D39BEC4E3D49EDA36ABE3BB669C7E8A64D42DBFDBB1EA372CE3087C574EABFD73B378DC1148565E058A6BF5926629F6C5FE37AAA69BF742968FC28CF4996490592F3996078356E5B56A337B6F06787147208A6C96BE19134BA6A39014D37D6AA56AABD27B292BFF13137E1885F41C62FCB5AAE9A738B47DC7CC2D8170B34084BD730688A549B9CA96C7EC782876C84BC0B16EA2CAAAA64B7638196A6CD30229CD3EA98D5F3FC2D7BE71CD261D277BA77B558A8AFC12808FC4898B4373A1D7778DCCFDB4F1D70FC371D0B440964C1D3FAA6F44BFD94E4C1CFE33F0524BBD3EE1E615DB6C3D8D1A6C85F7A4FF70FD8D4818392AA73DF3BFCD446D5A20F7CE487F608F417F6A0684B075CA0029AA56ADD8B52E7664E683F9EB76EDA2369E46481F68B6C658D302310B9E91D1FFDF51232FEA7819F84A5ED36D57AE5C34F5D4A35323525B00FA70D4396884BFBF5EFFF02D36CFAEEFB94C6B14A4D1EFC56CE6E320DED1689CF8DD1D060860B034D9EE4DF9FEE82545BE8563B8EB7328765B28F5F19B1D14DA38D057D367906E65DC3803926B7B80DD594631F54258DD62D0ED3757AA66610CDBC7FCA963478C1ED1BA05C058DBC65134B0F9F274A8149B17C88CF6330CC3D81445FE2284790D19BC34B7BC66EE73777C943AE41B98F1EF8E1D44CD908D33D4CAD6CDCDC06E5A20712E44D60CB14E6D19788D8057C0FC2A83564AF5FA2ABB0523868ADD7555E6A3526AA092492C6BF30E95B3043A77B6CD8A2FAEDF8308813895C23E3B029E62C632C0D8DCECBF76C3212929F27719B8BA39B4D1B20E8540BAC52596F35563730F87D340A56CE66A26B655F5C469AC50D985E1124BDCA43B5E123955D3BB1D5B5B345C345D3E3525C12C589D984BAB77A809C34DBA78CC6B71A51E3C6CB3AAE9665F104F8F41717C3F314FAD0E6133148F79C58B42076B9CB0542D3B2B3C6D355AD2C561F2148A1785E25313AB4BF6DD71760B2CD88D3058B1C4FC042519EF3B0E4350283E35111F2BDA5DBE8041747E67B9BADEBE65638B8292B98EC00B635977B771FA078D08C5C78AE273779BB3066F04529ADAFEB7DC5A5F08A26BED238AA745283E7737A92D2AB2D83065638DB97D0631CB884A447338667D596C503AD4D0706C981A1488D8726B6336DD12C840A75C32F2B1EC396883CFA18612F0EB5C68B6DC8AA20DB6A6B31981989752465BFD6C32A4292016975387BB4107ADCA85A668438C0B57DB5AF91607DB154857476622019F00F813609C4F716C7C63913BABC30874574EAB86A4EC8F281C6775DE06C639118814D39669B688B33398F83AB55CBBCF8EC9612ED59A75011444E9515B240A81D8A2CBD1E050951E4D60F16A4793B6DF4808A429FA2C1987AA78B589B89095DF20C2284BE8133E4808C4F30510AEF607838F7A63DD40C7CD2915027193CD217D85AF814EA143FE0631E67A9E7A0C020881783E89DF5035FD2B6E44697ACBED7E10E246DDFA74088158E7CAC948B76ED0CDD8AE0964F032EB2D00AEB5E075424E146C089895D3F407AC622D29F2350C58EAB26BD5678CC7BDA56AFA516EE5E7B6401E0270A55BE0E2EA8719F7E42BFA6CABF915B2723711BE64757C92C711F0504ED3AF728B0377059295AF07C1721B30B792889A1F02F49CA667ACE22E66D33A88D256C727791C81AECF6955D7BA9DB92A90B8772D7273E111D1B25CB9FAF9463E8B8ABC0CC08C46E3C4EFFB18900CE394D9CBB79A1FCFBA72B82A90C1FB905F0118EF0ABA983B21E26CAE5C5B7EB8348B4A260BB016731A5C4B8F997F95AFD43EE19A43B76FD24D600525DD4520F3136C71586180B09A997EC6467D4BE7F2ADBFEC9A3EEE6C9252ED04FE0C804BACB8106306192074A9657D8E9B7CB87E062929F264061E7513A4F02518B0C200134DCE97ABEBAC8CB53AC675810C5E6699C5ACC7590521C609069A6680B9A6566A72D37E0E71E089400AD9F402229AE73658E14F307078067881AAD5BEE636439E08A4A4A4CF62D02FDD062BFC09060EC7004B7C56BEA7667E0FE8EAE189404C8405457E9280735C452B9C0906866280F1A45AD1CFF3821CEF049295E712C1768B302F92143EE3CE00CD55B5EAB7BCC8D233819494F6B10CE3392F40C7D0E75A80363358377323900CB0F92E69720C73753D25434A8DEDEC79F605D71D7BF11EE440904545363B228967F9C3CDDC302D1092D28DB6A9854D58AD96F5CF35E5631863CFCE2066CCAEE999CB24897FEC15F8A8FB35A8E5EF3ACB9BFF305C1E5D1DE38F93B8FFF751CFD533FC4C97A995EA4AAFFC7B2A101374312BAF056192570944D6AF8DE6395DD9F47C8928F67DCD1DCCE55A55D32F746067D9C473811414791A012B2C234AC8402229932B6F19B8E768747465331989D8EC4E2B8E0319204C53CBBAD9FFC4B3C373810C9C4594CC068027789645F41CDB2E2A208A621C32C9C41BD4726DA2D753EF8B40CCE2CA44F43DAF93898A7F02D6E734FD7C3B788BD9F47A10FDA31D9B588F65CC542B7A8FD739FA22907D6711F96900677A9D5044FCBFAE6AFA3176B01615F97500A3EDD8C478ECD3AAA69FED477EBE0964B0B1CB523F928A440C1B0D261729E3C6A520991F808AC364C0A5B2A256C8F44D200367918EF4C360BAD80AB0D88F21BA572D576FB292675191EF0570A395B1B11FC3FC885AA97DD6AF3C7D1548B79239C7003F61EE8CF42BC130C7B1F206587C9170E00C521D84096AB9FA0BBFE6D5578198499514F90E065CFF2CD92FC2DC8EC3C094BCA69B7DCCDF7394A6A7A7B044ABDC8E19597F843BD4B27EBB9FF87D17C8A2A967BF4F6ADDF5041179DE27DC4F229B8AC558C7C4CF99DF63997E24F078663A55BC603D88D54D47B58E9EF08507D7F735C5B54D63DF0532702FA2C89703F8914DAC6278821990882E9F5DAEFEC46F0A0211C88048B2F21210AEF73B61112F7A0C30B024AFE9813CA4084C207767DB3FD24AC6E3004E88DE9409C4BE3140B49369CF05F99EE77FEB5BCC03020526907D37ECED57308CDE20121731A3C10081A7E6B4DA0F82421BA84006EF47EE04705B500488B8616680EE54B56AA0C53F0217C8A048CC3A5A62F75C98D7AACFD8087834A7E917F91CF63DE1422190D255723BA7781D40B6BE4F0A9A3C11DF230608AF1A064DEEAC54AB1E45B0EC36140231D116B2E95944D474DB5ECB998B81A165C06EFF142F13098D40F65D6A6516036CE9FB242F4911BE036560B1AAE9A1E985122A81CC9F3A76C4E811AD8F00F854A053248207C4003F36F288D68B6F58BA796F4000C2790F7220AA9292FE1083CCF7231F0F0B4902870F0C3076D45B70C19C65FACB3E44B31C22546790FDA8BB3AD2A74B06FD028436CB998881116680FBA84E9FCCADD043B7EF3E940219B81FE9485F04A69F4678D605748B0C30E3A27C450F65CB8CD00AC4E4B6D4919EC92CF6B25B5C67D11CE6D3DE72A7E4845A208367925BC17497D304855D781920E0D69CA67F3BBC085DEE93EE55A2454536BFE434B79D8A23260C10E1C65C590F7D47E4D09F41F6AF874276DC042269434CD647A2D320E209B9726D631448888C40F6DD93B4CBCCC693008E8C02B902E3210C10DE2248E759AD281906FE22251093B0EE19E98F190695017C320C040A0CD61820E0A97A9D3A3A57545FB266118E5191138849DBA2A9A71E9D6A6B79108C29E1A051A0189601C6EAFADEFEABE7F43E6716BF8BD4114981980CCF9F38B165F4F1AF170112DF6E857BC92D3E6ECFC9EA95BDBDF570C31C1A5D6405F2EECDFBC057C066ABB7F7477102E28A9981D724606E4ED31F88728E91178849FEE26C26D34FFC4DB1E92A1C4BD1DCEC5467BA2D0CFB399A65241602D94F425191C5F6DD665744D3F6C16F936D3A85031CC44A20665E838520CCB389A896E2E64A69E48B6827B1715B9005161A4174F27BEC04629230505208C63C5177CBC992B06F63D6AD82D4B230DFB33990D23CF6115BB788A5400EB8E4BA9C99E78932A7D61784CD919B24A28541543CB489D3F1F0580BC464C5AC05DC32E22FF398F155B301B963A684E1810C180C2C1CD53A7A81DFB572FD9E86C42C18B3F5421DC65709F419BF498E553CE6470C9216766AD5A76295D76192498C40F6E73FD8E96A966807677B793FC3A0FBF35AF53BB62D236C903881BC239481C6A2D22CD17DB7D1EAE527C0749F1F0D331B2109E2F7C40AE4DD338A3C8D18B3442F8E83971F33D69184FBBCEE431EC4A2B71333F102D94F56D7F4CC6592C4E6A5D72576088CDD58C26A1874BF5AA9AE8C5D6E0E121202398434B327A0C1C61410A610708E034EA3674278920DAC91485A9DD3B63C1FBD04BC432C04320CB725257D96C1984244E667F5E3BC9B86003C13D5D830D64884D539AD66F6B017C7100C0881585C1625459ECCCC1783682200D9A259D886E9605E4F448FE4347D6DD8C085118F1088835929CC3C3D8D7A7D1201E7033005738403377E98EC02B09E819F23955A975FF66CCD8FA0718A2104E2C26C0E9C5D882681790233C61061940B6E9DB87803C00E103D41CCEBC459C2098507DB088134CFE17B3C14A69F762C88C68052A6584E86C16360FE098C7129DC76307640A2ED80B19D0DDE01E6EDF9E5DBFEE4927FE166900121109F97C2FCAB3F3AF2B85DC7B4FD5FCBEE9168696BABEFE91F39A2C56883D4D256EF37469A70522D521F8CFEDD06A7FA3895DADD86BD7D525FEBEEDD1F7CB32FD7FDE26E9F21273A9C1048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CDC0FF03B3842241EA0172F60000000049454E44AE426082, '1', '2023-08-11 14:28:45', '1', '2023-08-11 14:28:45', b'0'); +INSERT INTO `infra_file_content` VALUES (20, 4, 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001CA049444154785EED5D099414D5B9FEFEEA0111710105B7671497A8085D0DEE1AA3311A17A22651C4E96A8C1A139F0A5D3D98A87125D1C4A811BA1AF715A5AB07C5981797C4684C4C3C4F9318A4AB67C47D498246C58D888233D3F5BF53C398A7C852B7BABAFB56F5AD73381C0EFFF2FDDFBD5F7775D5BDFF25A84B31A018582303A4B8510C2806D6CC8012889A1D8A81B530A004A2A68762400944CD01C5403006D4374830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680120880BC91DA93185B41E311CC1841E0E1006D0A6004C02340E861D696127829036F6B84C570B170C3C14B2B27CF79754530EA9557141868498158E9D43120F76BCCD88B88F6A871A01631F018803FB83D7D0F4F9FFFF4BB35C653EE1231D03202B132A9FD003E058C63016C52AF3160E6BF69D0F2D952D9AE570E15B7710CC45E20B3A7240F76ABB8084407368E5600442FB1EB5EF6FEEB236E9FF1E8A37D0DCDAD9285C6406C05D2FFBB023C1BC0DEA1B1152CD0DFC1B8D02C397383B92BAF6632104B8158867E3980B39B49EC6A72975DA28E8E62F951C97029386B612056022918C97D009ACBC08EB28E3A83F339BBD2212B3E85EBB30CC44620854CB29D994A511860029E06B4E3B3F6C24551C0DBCA186321908291CA317856C40672990BF7F80EBBEB3711C3DD5270232F102BADFF18840BA33A6A04EAC8DAE57C54F1C71D77A4056265922698223FB918F861CE767E16F7C916C5FA222B907C5A3F8C080F4691F4D56156DF24728E6424055298347E240F729F0661A49CB40642C50CDA3B67979F0CE4AD9CEAC24024056219FAFD0026D68591260625E0C5ACEDECD444082AF52A0C444E20517A9C1B68B6312E314BCE45817C9553E80C444A203327ED36223138F1FCC052F4D0C99024E0DBA6EDC4E9D651125A83C18894402C23790D4067042B353A5EC438365B72EE890EE2F8228D8C40666626EC98E0EAB30012F11D8E959531A8336797D371AF330AF545462056462F82614481D41030BE61DACE9621C451216A64201202B96E4A72548F4B6FD6586BA4DC35D7DD755A6797F78DA9AE2632100981E4D3FA0544B8A4893C353CB57A71D870CA579B301202B1322907CC4939286B140AFE9D69570E6D54369567F50C482F905927A4B6D312FC4A0B0E60B547E38D7F30B7F2610BD62E4DC9D20BC4325267027CB5348C3506C8BB0C3A3767976F6A4C3A95654D0C444020BAF73EE09B2D34840FF5BA6DC6F73B17BCDD42354B5B6A1404F25E3DDBF4C83532748E6997AF900B536BA3915A20B3D2A99446BCB00586683998DACD52F957F5A8B560ECBD51B5FAF108B4B92334C670066DD6BF5C87D9EB22B982495B4AC44BC1FC0E1316E78A95E7EA81238A31A5168895D1A7837155148915C0FC21B9DAC46CE7C23F0AF8ACD1F48649BB6FBC6270DFC14CD89B187B01D81DC04682B13F02D0058203A6C7B52A3D3C6DDEC2D70563C4C25C7681DC0BC651B1607AF5452C07D12166B1FC782D35CE9CB4EFFA89C1CBBF49C064061F5D4BAC35FA329E07E16182766D2B359B905B2086EE7D6AC575C9459F4B74682D7DB2669D94DA44EBE1E9204C6BE0EF3406F85EAAD28FB2F39CD8DFFE4A2B90D82F2F214C368BCE5D413EED3D61247AF902064E073034488C907C1ED0E0FE709ADDD515523CE9C2482B102B9D3A12C40F48C758088088E9E46CA93C2748A87CBBFE25682811B04D10FF3AF8B800CFD5AA89F3E2F83B455E8118A9F301BEB40E03DADC9035EC18CC1BFA25045CD0DC02D6987D3980E9A6ED5C2F29BE40B0241688EE357BCE04AA4A522702DD9BB5CBC788C21B7832751F8003447D1B6F4F770FE9499C7ADAFC054B1B9F3BFC8CF20A24AD3F04428C16EBF1336D3D7D7B9D397FD1329161BC3A3D7EDB2AB9BF05B0B3885F536D895EAA423B7C7AF1A9179B8A2384E4F20AC4D02B00C6855063D34330B094D99DD051EA7A5904CCC02ECA3F45F449DE7BACF111B9B995BF88D42C9BADCC027903C0E6B21116040F11A7B3C54AA788AF954EED04729F8878838A152ED111B53CCA16E1AC1EB6520A84012A187AD53BA7A91E453738E623A6ED1C2292F3DAF4B8E1BDA479EF18B615F193D4F623061D14D58678524EC038BD03E9AB56BF70D6BCEE7F8A4C5ECBD0BDDBAA08FC20F75DD59BD4A38DCBCE5FB8C4B7872486520AA43079EC0EDC9688C30FBC8BB3B6F36391B1B60CBD00F4BF198FDB75BF693B915B3624A54056DE7FF3F3119F21AF99B6F35F2235F41F38EAD223223E91B225FEAE59ACDC1C25CC520A6476FBB85D5C4D7B264A44AE8A9509D37245C7F74EC82BA7243718EC92F7A1B05594EB5E07F6F77BDDB69DA2B4194C4A81148CF16318EED3119E281F547B866E3E7DFE13DEDB655F97E46FC97DD5E0CB88719B59724EF1652B8191940299D9AEEF96D0D02D013F812030E1F25CD139D7AF73FFAADC5EF67EC80FF3EB13653B26DE252A9BB2A41448D40FC761B7AAE73ABBBD179DBEAE96F9F6F8840DC22D66D139D517394D36924E20FD87E30C76BDC9B54593B9099AFE65D376761071B60CDD7BFCB999884FD46DA9471B1585C7BED209C4CAE833C188F239E25798B6738EDF099C37F40C01DEC2CC16BBF83CD3AE5C267BD15209E4F25376DE70C8C743DE02304476E2D6848F89BE962B961FF68BDF3274EF18E8C3FDDAC7C84EF89BB619B54B2590389C1E55ED193AD4EFD3AB1BBEB7FBD0151FF6B56CE74422FE72B65879AC1913DF6F4EA9046219C939007DDB2F78D9EC98F1FB5CC9F9AA5F5C854C6A22337BE72DB6E4C5E07CCEAE487D3B2D9540F2E9E49344B44754670B139F9F2B567EEA17BF95495D09E6EFFBB58FA1DD2BA6ED6C2F735D5209C432F4C500B69699B0B56123C6DED992F357BFF82D437F02C03E7EEDE368E76A89311D739F9276D5846C02790980D49F286B99A4CB4CDBD9D0EF246EF5DF1FFFCF134D35EDF2357E796BB49D54022918FA020626349A8430F289FEFEB0D2FA5740F87D18B9231D83F10BB3E41C276B0D5209246FE816015959C95A072EA1F71F563A7931886644B4D6D06033F056CE76A4DD392A954022DE0BEB5BA6EDFCD2EFCCB10CDDEB52F275BFF671B673AB34BA635EF955196B944A201E4196A1BF0B60B88C64AD0D93E8CE41CBD0BDC58942FB45A2C6895FBC0C9C90B39D3BFDDA37D24E3E81A4F5AB4098DE48126ACEC55862969C517EE35C7DE25E9B56AB1FAB03723E218C31D32C3967F9E5AF9176D209E49A93C66CD1D73BC86B8FB37E2389A831D793A6ED78470DF8BAF299D4A1C4FC902FE3D6307ADCB49DFD652C553A810CDC66797BB2BDBDD991B818B827673BC7FA059B4FEB1D4498E9D7BE05EC841E9137920F2905322092C82CE223C6D5D992E3BBD18215C5DBC83ACF4AC2908DB3F65FFE5DE734C2E1A515885749DE48CE22504EB8AA863B882DDDB68CF8F51DAE957282B69B8C07F3482D907E91B48FDD1C942811E1E05A07A15EFE4CFCED5CB17287DFF805437F9081C3FCDAB7829DE83681467122BD40FA6FB732FAF16048F918D0C347AC1D9A2D2DFC9DDF418BF28A01BF358ADBD149A65DBE5DDCAFBE1E9110C8405303EF3868292FD6781F9126CD515F94598F4160C685B99223DD79309110C8C08FF63F03D8BB1E83536B4CD1260D96A17BED8022BB6BB256BE56E7CFE02B7376E5EC7AC4AE2566640492CF24CF23A69FD4526CBD7C1309EC3CF50EC77727486B65636EAD5E78221957D29785911188CCFD7A09BC4DD6AE787B597C5D96A1B32FC3163292757761640432709B2565D7F35EB76DA4DF769A330E3AA86DF8D6EFF5B6D0DCF755AAE8BB245F4143308A9440F2863E99807921D41D6A0891460D034257DF209F1F816B4CDB991AEAC084102C5202993103DA8817F4E718D83184DA430A41979976F93CBFC1AE99346658DFE0411FF8B56F153B066EC8D9CE7FCB566FA404E29157681F7F206BEEA37210C9CF9876658C089682A19FC2C02D223EAD60EB9DE398D0B443A6CD5DF83799EA8D9C40FA6F5132A91960BEB8D9448AEE639895D97D4B8DFBBC838186361BBBA4F9FF9548AC376EEA1D7F7D47167C9114C8CAFBF8E4A5009DDF4422DF346D47A87FB095D66F05E1E426628E406ABAC0B4CBD23CCE8FAC40FA6FB7D2C9D399C83BA4A6E1EF1488E98E6CA9ECBBC9DDCFDB77DF6C90D6F76633B04640159F82287EDB5ACFFA222D9095BF499247B146DE3AAD066FB0125B3B64197AA4F6B8D473D2AD2BB6E8F6E575C5ABE5FF232F907E916492073093B77F64835AC810F125F0BE59BBE22D7FF175158CE48D0CFAAE2FE35637223EC22C561E9481865808C423326FA4F604F86102366E04B101DE9E7BAB7D7DF7ED6D440DF2E620C3B4CB2519F0C546201E99B332A98334E63F348258EAABEE98BDB3DBEB04E9EB8AE1D9E7BEEA0E64A4BE4102D1E6CBA960E8F31898ECCBB806230D6E729ADDD5E5378465E8EA1BC42F59ECEE6196BA16F835AFA75DACBE41FABF45DAC7EFAB69EEE3F5246D656CB1DB002B93BA16CCA7D71F57F433B4F5F46E78E6FC45CB64A8247602F148B50CBD114DB0AF376DC7F7849F95497D4363F6DD795186C9D1240C2F98B6F3C526E5FE5CDA780A24ADDF0D82EF363CC10683FF61DA956DFDFA5E3925B9C16097A4F854F48BB9297644D799C5F2194DC9BD9AA4B11448DE485E41A01FD49B64D123C40AE9D4ED4C7C62BD714539BE6CCD1BE2299046ED3E143CEFBB71BF8F222B916ED376C6C9843E9602B18CD499007B4B50EA7E899EF7ADBE45D63C242ED1573A8A6549566A0F3C8AA9FB0C6A42022BA39F0CC6AD8D48CDC0A539DBB9D06FAE810E2DDD513E6ACE6FAD4276841BCDA2739A904F038CE3F90D92D6A780E0BB915BAD3C6BAEBBEBB4CEAE67FDC69995494ED098BCB3D447F8F589B9DD03A6ED4879564A2C05D284E6D0DD7DD5EA9167CDEBF6CEFCF0755D9B1E37BC175A070826808D7C39C5CFE805665C972B39B3642D2D9602B132FA0D607CAFC1A4BFC7C08939DB113AF75CF6AE9175E4F00DD376B6AC63FC5042C7532086FE1A80AD4261483008139D9D2B96AFF4EBD6C287E9CC356D47FA47DEB11348DED0BF4E8077FE5FB3AEE74CDBD94524B965E8DE3EECDD457CA26F2BB654A759F5C64E2096A17B0B08C7368B502F2FBBD52D729DDDDEEE415F57C1D02F62E047BE8C636224D37AABB5511A2B814833D10893CDA27397DFB93CDB1837CE8556F16B1F7D3BBADBB4CB93A250476C04626552FB81F97FA5209D719B59724E11C16219BA2710A9DE228BE017B2659A6896CABF16F26992712C04924FA72611B1F7DE43968EE9AF99B62374C473ABEC5967E09F39DBF94293E6BB70DAC80B44DEAEEF7C8869571EF13B223327EDBB7E62F047FF00B0995F9F28DA11B3992D552273406B640532B064C35B4EF24D29270AC1368B4E46049B954E7E1F44BE1F118BC496C4F6CD6ACFD0D1D3E73FE19D8F12892B9202B1D2A92341EC89637399597607D1F08E39E5F745305A86FE2A00DFFB4C446237DB9688D3D962A5B3D93844F2474A2057A7C76FDB47EE4C02BE255264F36C69AA6997AF11C96F19C9AF02E4FBBC4391D84DB5655C62969C8B9A8A2140F24808A46024F761D09900846E5902F011B6CBE2211BB4ED7CDA8D0B3E12095C3092C73168BE888FC4B6CB09F846D6761E9218E31AA1492B90427AFC214CEED103BF31849E08493510443F378B65E1DD8DB38DD4FE2EDC5F01B4A954F5888179DB75B5A33B3A173E21E6268FB53402993969B71189F5DA8E818B89207C0DC086F2D0541B12263E2E57ACFC4234CAEC29C9D1AE8B0700DA55D4B7E9F6442F31250ECECD5DE03D998BECD55481AC7C834C5F67D04402F68F2C8BEB06BE1C8C8966C9116E6A77F9293B6F38A467BD79603A72DD69A4B178B26D50EFD167CE59F4863488020269B840664F491EEC56B5A341ECDD3E8D0E883B926EB5BC03884C6F5FA24AF5E3F5F789D2A3DCB54DA6BA0BE486EFED3EF4E3657D8703740C137FA3853707AD1C07C66966C9B93188C20B86BE808109417C1BE6C3F445B3547EA161F9EA9CA8AE0229A49359269A0160789DEB8852F8156D837A4707B9FD88C0E62AA1667A5118B4BA08C44A274F00D18F01EC1405121A8D9109D372452750D7152BADBF05C2C84663F6934FD3B43D653B63D00FEE86DD62E533C99D89F1CB483E75A99549017F629C9B2D39970BB8FCC7346FA44A046E0FE25B679FE5A6EDC4EEECC5D0BE41AC4CF27030798F32634752D813AB96238FF3867E2E0197858DA9D678043C95B59DD8ED8A0C45208574CA60E262AD24B7907FE036379691FA36C07364E38A40F766EDF231B2E1AA154FCD02195838F840AD405AC99F89CFCF152B3F0D52B3954E1D03E2FF09E25B571FC136AC75C51262F09A0472CDA431C3FA060FF21AA66D1D22A6D887126D34F769420696E0784DE7A4BA6AB96D94AA9055C0D42490423AF513263E4FE60265C346C09D59DB392128AE7CBBFE25D2F05850FFBAF949DA3AB4D67A6B128865E84BE2BE03AE56823FEDCFC03D1B0F5A6A9C3CE7D51541E3E6D3E3BE4CA4FD31A87F1DFD1E326DE7B03AC66F4AE8C002C91BFA6402E6350575F4922E23C6A5411FED7EBA5C895F16BE6CDACE0ED11B9AB5230E2C102BADDF0AC2C9712324E47A7AC0745DA26DF02553EFF8EB3B61C4CE1BC95904CA85112BEC186E954677CC2B7B3B22637305174863CE018C2CD1C474879B485C18F6726FCBD0174BFB50843867162B5664076D35C00309E4B693B61BF2EFDE8D23B3F1BE7103C6EF30D1CDDC47D7D7E393346FA4BE4BE0400B1D1BC481742744D55A772081CC9A326157CDAD2EAA35798CFC1F21E25BEAD990A07F43D9A0B667655D87F5A9B1CC9AB6333B2E631B4820854C6A22330BB5F98F0B61FFA983B1D07B644BAE3677DABC85AFD7BB3ECBD0FF04E0807AE70921FE32EAABA6B277767B477147FE0A24907C469F4A8CD87C4A088CE20B041499A9B3917B1EAC8CDE0946E0772702F58565BA58D3F8CBD3E6565E092B60B3E204128865E8DE4AD4B39B05BAD1798930DF05DD942B961BFA067BA0399EB78C67BF46D71C42BEC5EC5627E63ABB23DD943B984032FACD607C270412650EF106183769AE767D236EA156256266BBBE5B4283771BBB9DCC24AD03DB0A669E9A2B556E896A0DC10462E8F748DBF2B3C69120E069065D69DAE5DB6B0C15D8BD91C758070629E048C06F99DDF3CD52D7020137294C0309A460E87F60E020292A0815045D66DAE5A6AD2DEBDF70E6E206101D186A59F2047B1CC4B7AD18FCF19DE7DCFADC07F2C05A33924002B10CBD0C408F4281BE30329E8746279BC5F2E3BEEC4336F25AAA56A97A364067841C5AD6702B18989700DD3CCD2ECB71A6CB1A980A2A90181DF6C23F31EDCA05CD984985F6F107B2C653013EAE19F9E5C8C9CF3069B725AAD5FB44CE9A6F14F6400229187A3703BB350A641DF39C6EDACEF5758CFFB9D0B332C9099A8BA340E489A2A9672936B26E5FB9885E828BFB09747FB6B4508A06DE81046219FAD300C6F82A5A522302BE93B51DEF0885BA5F85F6E4519CD08E00F35100A2DB67B8EE4C7D26C147E475B927FE75156DF7761417FCABB1E957660B2A90850052CD001C46CE5AB6BCFAC95F98347E2406558F63A28900BE2AD1D1707EE04B6943E0275CA2D260D7B5CF2875BDD72890C10492D61F02E1D046810C330F018F666DE72B61C6F462797D86AB44471193D73D72CFB0E3AB789F6280701F5CBAC52C957F556F5E8209C448DA00A5EB0DAE0EF199A08DCDDA0B435968E9AD6A5EDAB3914144D362F554AF0EC4D727243FC38CABDEEFED9B3B63FEA29E7AE4082490BC91BC8240C2675ED4A3009198DE92916CD1395EC46775B6579FB8D7A6D5BE8F4D104E575B8E6B653314FF37013AA71E2F770309C4CA244F05D34DA194D6D820DF326DE7974153CE98016D93E77593085E5BD56141E328BFFA30C0A0DFC0ED3B39D7D9FD665819020A24B51F98A57EC1B31A823E306D67A3A0C40DEC81990B2076DD03837222A9DFFBE4F289D9CECA7D61E00B2490FE435D3E1EF2EF30003430C6FDA6ED788F5985AF42463F8D190D7D5F220C52397C8601263E2657ACDC5B2B2D8104E225B50CFDCF00F6AE1540A3FC09B8386B3BDEAD91D0954FEB1710E1122127652C03032B9838952B569EAB054C0D0249FE10A040ED336B011CD4D7857B6487DDF51B11FF7C3A358988EF12F151B6F230E0ADCCCEDA4E4DAB15020BC47B19C683DDB7E4A163ED485C7677E82875BDEC17EFC06625EFA4A4CDFCFA283BF91860F09539BB1278735F6081F4DF6645E86996693B42B55A99D40C305F2CDF902B44A20C687093D3ECAE2E513FCF5E68D2AC2EC1EC29E3F770ABEED1D0280D66593BEBBD61DACE9622045986EEADFDD942C447D9CAC900833A737639D08BED9A05F2694A0AC6F8314CD543E1D2014C3880805152504654318B65DFFB57F269FD30223C28057605221406361AB474FD203D914315C8AA955C9B1E37BC4AF8AF2AD16830ED4E84F1CC4811B04D2855FB0DC2FC47B354F1BD035275ADF74B6C74EC34D097826CCEAAAB40D6449FF71E65BDE5437424787B8D693B666C07C21706CE4DDF3E7CDAE96ED32E4FF21BD732F4DF03087D41A3DFFCCA2E7C0698E8EC5CB17CA568E4A608645D20679F307EABEAA0EA369A8B6D5CA66D48C336F0FE86BB35833C21891DD8C39869969CB3D695F793FFB70CFD35005BF9B55776F233C0C09C9CED08375B9752207EE82E18496FE351FF9F7E11118D04F1283046807904116DC6C0A6003681C67B9A732BDD7EE27A3696A1B35F5B651719061E376D677F51B491158868A17EED67B78FDBC5D5B467FCDA2BBBC830F0B6693BC2E7CB2B81AC32BEB38C714768D07E1D996157407D33F05E4FEF7AA2FB46944056A13702470CF89E10CAF0B30CB0D6B6ADE8792D4A209F13887E2E0197A9C9153F0618B457CE2E3F29529912C8E70412CDDD922283DEB2B6C44798C58AD00B60259055668BD51A8DB95B5223C438365B72BCBED2BE2F259055A82A18FA3C0626FB665019468601224E8B9E02A604B2AA4032FA5DCCF0FDD63D32B34301F556E60A370B540251026919E930F3A9A2679528812881B48C4000324CBB5C1229580964D51FE986EE9D86748A0889CA36320C08B77D5202F99C40929702747E64865C01F5CD00B176A868D778259055DF83B4EE09BEBE275A540D45FB1278752A81ACFA1BC43BAA40A39AFB29457512C519B7685F022590D5CC86D95392A35D977C773F89F3848A596DCF9AB6B3AB684DEA1B64358C5986BE0CC006A2642A7BA919B8CBB41DE117C04A20AB178877FC9777F08DBA62C200319F912D55AE132D470964358C15D2FA394CF8992899CA5E5E06D8AD6E11A4EBBB12C8EA043279EC0EDC967851DEE156C8C418E0DB4DBB729298CF4A6B259035B06619BAD7C7F7F020A42A1FA91878A5AF5A3DF0AC79DDFF0C824A09640DAC794FB3AA2ECD254078A37F9081503EA133E035E9B871A3414B6F0AD230EE13344A20EB189742FBF80339E17E995D3E9A88F6087D1855C0B018580E78873A690F6B6EF5DE699D5DCF86115809448045AF53648F96D883D8DD03D02600ECB533DD492084320D810106966AC06297F18206FC99357ACC2C961F0F21F4E742288184C06ABE7D6C524B68BB31B49D89791706BCEE9063D4BB949AC8FD000407CC2F31E17930BD44ECBED8D65B7DEECCF98BBCF7540DB99440EA4873BE7DECE6406227D26807066F4FC0F60C8C26C0EB82AF3AC70360E02D025E26A6E75D0DDD70B95275AB8B82FEA80E7B389540C2665420DECC13F5ADDB7A30CAD5300A84914418452E6DCAC45B78FF06F777C7F79A9D797F3614082D83E9BB60BCCD8425602CD1889730D31B20BC0EE2575D6AFB7BC7DCA7A46FD0A70422C354F289E1AA13C66ED3A6D128683492BDA3259846126853C0DD8AA18D22B027A8CD075AB2FA8CEACFCCBBEF27E0AD814FFCFEBF01BC49C0DB605EA225F0165C5EA20DAA2E3973CEA237FC4595DF4A0944FE310A8470E6A47DD76FC38A6134A43A0C2E0FEB73DB8621C1EBAD2B18B95597800F59A365AE46CB48A30F3BE694DF5F975F5CFF5F0924AE23ABEA0A8501259050685441E2CA8012485C4756D5150A034A20A1D0A882C495012590B88EACAA2B1406944042A15105892B034A20711D595557280C28818442A30A1257069440E23AB2AAAE501850020985461524AE0C2881C47564555DA130A004120A8D2A485C19F83F160E2750087005820000000049454E44AE426082, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file_content` VALUES (21, 4, '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001A2649444154785EED5D7B981C5595FF9DEAC96365453F82F20A2C484009495727115605410427BCF24009245D3D91281F88C974F50409101002AE6FCD74F50402282C1FE9EA3C411E110D288B0BC28226E9EA84C8CBB7A8B84B58D44548A6EBEC5793A0434832FDA85B75ABEAD65FF37D73EFEF9CF33BF7D7B74ED5AD7B09EA12CEC0E2DCC43129F48F01D351048C71C14711680C80A31A34FE1C839F07E8398D30F0771D1DCFCF2F6F78BEC1FEAA598B0C508BFD54B7DD30B06AC6D8E17FEA1831A94EF513403811A0B14D88A0554E9F03780B188FBACC3F7EA5BFBE7ED1EA2DDB5A0553FDDECC8012481B23A27766E670EA702769D02682F9430C4F14E86803B2EDAECCE807E1518DE831B8BCBEEED2869E15D55FB50D9C5000259026136F19E95319389B40A70218DF64F7709A13D598DD8708586BDAB51F86E34434AD2A813490B752563FDE254C21E06C009906BAC8DB84B011C05A72B1365F719E94D751393C5302D9431E7ABB261EA3B9EE14029FCDC087E54897EF5E3C02D05A57D3EEEB59B6E167BEA3C7005009649724F61AE3CFD058BB04842931C86FE32130EE73C95DDA636FFA5EE39DE2DF520964678EFBBAD21F755DED1280CF8D7FDAF71621ADD1347769F7B2DA43C9E66147F489174871967E22A5F019300C3520063140B0B98E9B0ACB9D4793CC4B6205E215DE0C7C068439491E0043C6CEF877265A5AB0AB3F19B26D0C1B244E20C559E30E80965A48403E86F9141712A177E4EB1DD75DBC7AFD2BE28CC8879C288114B3E9D944B410C07BE54B45043CF21E11BB749D59A9DE13016F7D71311102291913C682DC85ACEA0C5F060D12349BC45E20C5ACDE43046FD6D8DF9FD1A150763EDE49C46C125B8114B3E34FD2485BC8C06435A4053210F3D9249602B1721913CC4581C342410F6660A036C1A566C5F98FB811133B815886BE14DEE35B7505CA0001AF31D063DACE4D811A166C2C5602B10CDD7BFB7B8A60CE14FC5E186070B160D77AE242522C04F28D59E3DF374CD3BC65DC07C72531518E8340DFCBDBD533A31CC31BBE475E205676FC349076771C9211B3187E59DFF6B663E7AF7EFC6F518E2BD202B18CCC0280BF1AE504C4DD779769424FA55A8D6A9C91158865E85E21EE15E4EA929C81BA8B71F3973B4F49EEE66EDD8BA44006BED980767F14094FAACFDB593BFC73958DBF8E5AFC9113C88EEF36487D571DB59106F4770CDB7EE8DCDBB7FC314AAE474A2003DF6E6878244A042B5F0731C0FCF361E0E33E5BD9F4725478898C408A46E63802FF18C0B0A890ABFCDC2D033F1CB94FC7D48B6F59FF6A14F88984408AB327A651AFDFE9ED4A180552958F4331C0F7BCFCC27EE72E7AF8E1FEA15A86FD7FE90572C305630FECDFD6B10E44E9B0C952F67D656095693BE7FB8A28004C7A815839BDACBE17179079292079A169D7BE2C852B7B70426A81140DFD0A02A42650E6E446C1370226E76DE701597D955620A55CE62C665E2B2B71CA2F7F18206043FFB6FE8FCD5FFDD4567F10FD45915220C5AE498791DBEFFDAAA86FC7FDCDB794680CFE56C1AE5D24A373520AC43232ABD5066E320E17813E312E362BCE2D022DB4042D9D404A867E0D03D7B5148DEA1465065E4E119F36AF5CDB2053105209A42F979EEA3225664B1999068214BE301E342B4EA714BEEC74422A815846E647009F241341CA97801920BECC2CD7BE11B0D53D9A934620A56C3ACF44962CC4283F426280F0DF290D27CEBBC37936240FDE64560A812C9EAD1F92AAF363001D260329CA87901920DC6A969D0B43F662C0BC1402B172FA623062F3A1BF0C898DBA0FA4F1D4FCB2DA7D61C711BA40FA8CCC092E38D15BEC873D08A4B44F78D42C3BA19FEC15BA402C43BF0BC03952264939152A034CB4A050AE7E3D4C27421548299B3198B81C2601B2D866E04FC47801DA8047A3C178972CBE85E68704057BA8022966D33F21A2F7879680E00DFF19E0B5205ACF9E185CBCC023E8776F1B9E7AE1E25BD66F1FECCEA20B0E1FB96FFF7EA309EEE80EE6D12EF850029D9CBCBD86F946D3AECD0D3E553B2C862690623633838857851578507609788A81EFBA1AAFEBF1E1DCBF5B3FF5DEB7FFDFEB232633D1E9E08163A90F082A9690ECBC4CE074DEAEFD2E0CFBA109C4323277033C2D8CA0C5DBE497C0E87339F540CFF28D8F8BB277F3459386BDFE6ABD935D4C07B1148F4545C44A440BF221D522A108A4D7C89CA0C5F3C9950BA6BEBAA62D995FDEF0BC88C1B227CC52D78493B9EE7683F08920ED06628BB0D12C3B1303B1B58B91500462E5323782F992300216659398EEA014F5752FDBF85351361AC1ED9D95994EC4DD44F86823EDA3D28699CE2B54AAAB83F6377081F475A58FA8BBE410F0F6A08315628F711F6BD45728571F1482DF22A8354B9F431A7A1818DF22846CDDBE63DACEC783762A708194B2FAD54CF842D0818AB0C78C25858AD32D02DB0FCC1B668E3BB49EEA58C2E0A97EE0858DC1A0E3833E8E3A508194CE183382F7DBC789C79782F26F38F0C680B6B2992288CDB00778BBF6C3387B245881E4D2B398A9D22E5161F667601B314E8FDA716356363D1344CBC3E4CE07DB2F0E63F7982077660C5420564EFF36189FF681A8702018CF9A1527B2DFC9EF9CC17F06E0887008F4C32A19A65D0DEC4736588118FA2F011CEE074D2160544DDB9910825DDF4D5A86FE74846F73CBA6ED74F94ECA1E000313486F2EF3118D3992A7A07AEBA40AB6139B37D68B677CF09F52C35F8DC4DEB86F1DB7FC52FAA8FD0E3C655130DB960626906256FF0A112E0F4AF97EDA71EB7444CF8AEAAFFCC40C1B6BE766E04F86ED472BF6837C2712A040A2BA30914F33ED5A2CCF23B172FA1C306E6B659086DC27B0DBAC4004B274B67EC8B63A42596CD64E22097451DEAE7EAB1D0CD9FB5A59FD9B20CC97DDCF37FBC72F99766DFF207C0E4420562E7D2198A236D06E326D2756CB61F6548716B3E927A3F6D941507BFA062290A2A17B677B04BE4CA0D55F18EF5D07DCFA7185E59B6BAD6244A95FC9D03FC5C0AD51F219444BCD72F5B3A27D0E442096A17BB75787880EC62FFC30DED8FAE57BAB38564E7F048C135BED1F42BFCDA6ED085F67265C20C559E30E202D1599831B0978454BE17859F6650A6AE05946260BB01D943D1FECB0693B3B3E501678091748048F6CFE8A693B570AE45C5A68CB483F08D069D23AB88B631D5A6AECDC651BBC9501C22EE10229E6320B89F98BC222F017F845D63A8E2F2C5BFF1B7F61A381D69BD53FAE11EE8C86B7DEF7E23C236FD7D688F457B840ACACBE26325FB9312F322BB544EF2C5F32F4EF4765630802AECDDBCEF5D11688A1FF1CC07B4406E11736B37B72A1B2E93FFDC28B228E65641600FCD588F82EFC2050A13348EF0599776ADB392A87C63F67DACED1111918C2DC2CCDD627701D529DD1B19760853FC9122A102BAB9F02C243C2B2E923300337176CE7333E424616CACAA69D881CBB2DFC49965081140DFD5202A439EB616F2396812905DB5187860288D2F213D14FB2840AA464A4BFC6A0CBA4FF2925FCC52C3BFB4AEF67400E1667E9279286470232D79619D14B4E840AC4CAE9378321E5E9A583B342C0CABCEDCC6C2B5331EB5C34F4170978B7EC61895EFA2E5A20CBC188C0C0A3CB4DBBFA35D9074390FE5939FD5E30A60469B3155BCC7C61A15213B68E4CA8404A46E67E069FD14AE041F6114D7290B1F865CB323237002C7C3160DBFE122E35CBCEE2B671F60020542096A1FF18C0874439EF17AE46744E77B97AB75F7871C0B18CF495007D49FA5888AE33CBD545A2FC142D904D00C68972DE2F5C223E295FAE45A228F52BE6A170ACACDE05C21D43B50BFBFFA2575E0B1548D1D07F43C0A1619338947D82766CDEDEB865A87649FA7F5436D920E0B6BCED08DB4A4AA8404A86FEBF0CBC43F681F5FAB6ED072D58BD25324BF283E073716EE29814D79F0BC2565B3618779A15E7DCB630F6D259A8402C4367518EFB893B729F8EE1BB9EF0E4277E14B14ADD6346F0D67D5E93DF77FE8169D73E26CA4FD102790580F42FE00823DF91B79FF8B32892A3885B9A33E15DBCCDFD53047C17BAEBBB6881FC76E0404AC92F4DE3F7742FAB79BB3EAA6B2703BDB9F4448D697D040811BAB9865081940C7D3303C7CA4EB2A669C7857DF08D6C1CF5E5D2535DA67B64F36B577F18B8BE603BD78AF253B040328F31F883A29CF70B9719A7172ACE3ABFF0E280631999B9002F913F169A67DAD51B44F929582051F93A2DD81DC34525D34F5CCBD0BF0CE00A3F314560457A2D5629A7AF62C60C11C4F88C99376DA7CF67CC48C35959BD0C82217B10E46A1FC92FDFF823517E0A9D41A2721E88CB7C5D4FA5266CB982A8E489C4B572E987C174B2481B7E60BBFDF5B13D2B370BDBD944A8408A397D31317AFC204230C613A6ED7C40B08DC8C0978C7FDD97F19AF7885EFAAB3EB27FD4FC5B9FDA2ACA51A102E9CDA6176944C29E30F8498A4B1D07F794D7FFC14FCCA8621573E94F1093D0ED747CE2A6DFB49D613E61ED1646A8404A46FA5C06057EB6754B8431669B1567594B7D63D6292AB7C6007E6FDA8ED02D6D850AA46FD6F8F7B99A26ECFED0E77119D899133EFBED3B9C65E82F0038D87760FF01851F8B2754201E1F96A16F07D0E13F377E23F24BFB0EDB6FF49CDB1F8EC0FA23BF63FF075EB476A2A17B0B76759A3836BCDD1B055F96A15701E882CDF802AF7636018AD9F4178968A12F840A0661E2AB0AE59AD08FBAC40B2422CFD3BD5C12F85B79BB26FD2613A2C6DDCD174D1AF6DA5FFB9F002122A7F98A3F1E4FB8408A867E0501DE5BD9485CA25F3CC94C8295D3E783F14D997D1CEC5B2A3562FF79773CF992487F8310C8D904DC2732087FB1698D6957A3F0F6DFD7B0BFDE957EF77097FE0BC011BE028B03DB62DA8EF085B0C205D2D7953EC275E917E2781280CC34DDAC54A55FC9EA67E4564EBF1E8CCFFB8929128B81DB0BB63347A48D1DB7DD015C9691FE1F80460560CA2F133F346D273207C9B41BF492D9FAD1F53A9E00F0CE76B102EC1FC8FAB9600492D36F0343B8DAFD4C8ECB34A7A752BDDD4F4C59B14A59BD8F09F364F56F777E05755445300231F47300DC15A50400D84CFDF5E9F9959BBDF34D627B95BAD253D8A57B2316E076C2C8FD83F84C3A108144EC9C90C163E511D3764E8AD8E069D8DD9231612CC3FD0180831AEE244143023D9EB7AB816C481888403C4E8B46FA7E0249BF0DE9AEF927D0BD79C16F6BC31A7396A1FF14C0A4B0ECB76157E877E883FD0A4C20BD46A6A0817BDB2025B4AECC7447A152FD64680E08306C19BAF7E8FD6C01D0E22109E79B6567957843013DC5F202E9CD66321AF1C62082126283B960566A9610EC80414B59FD6A267C2160B37E997BE6A06D471F7BDEEAD575BF00F78613D80CE2396119BA27904C108189B1217E698318BFFF815ACA4E388DC97D50B41D51F8CCFCA542A5769528FCB7DE6207650940C948F732A810A049DF4D694057B7ED947D070E00B068643E4B60613B80041002288589F93B9CC0EE44029D4116E7D21F4E31C5E098E5E81DB813871F27006B4DDB09F4509F4005E2FDC244F569D65B7F1DF9C6978FAA752F5A0437885FCE566D14BBC61E46DCB1144C67B68A214B3F629A930FF8E56DE002E933F49C0BC4E2D35666AC2350B759A94AB90BBA954B9F0EA61280A36419E4ADFAC1C06F5F1FF1DAB197DFF6CC5F5AC568A55FE00259356346EAF7C39FD944A0635A7158B63E0CBCA031FA46FC7347DFC5B7AC7F5506FFBCB555FDFDE8A6882D1FD91B77A20FCAD993EDC005E23912F1C78C7BE27233187D66C5B9252C910CECC8FEBADB0D4277C4161E0E4999063AB1DBAE7A47FA057A8523904F8E3B92EBA91A186F0B34DA608C3D02C292A05E647921795F02FEEDAFFDF3688730A2F23D47C3D920C243F9B2736AC31D7C6C188A403CFF23B4B54CAB747F9F881E4AB978706EA5EA7D97EFFBB5E39D067F94C0931998E8BB014900358D2FEC5E26EEA8E7BD85199E408CF4A900790BE592703904FCA00EFA4E4F9BB7095636338D89A76BC0290CFC4BDCC963C643854A38B387C76D68021998450C7D2580F3E29EE45DE27B91401B98792B085B5DE6AD1AD14BC4B4B54EF5ADDEFE487568A38878145C1A05E2510C1A45E05100792B8B8727892F8D785A77B916DA72FC500552CAEAC733E13100A924255DC5DA18030CAC2CD8CECCC65A8B6915AA4076CE225F05B0404C780A35CA0CA45CED43F3966F7C3CCC184217C8D2AEF4BBB7D5B5C7407C64984428DB7231C08C25858AE33D950BF50A5D205EF4A55CFA1266BA31542694718918E0973AA8E30373CB1B9E0FDB292904B2F356CB7BA215CAB3EEB093A0ECEFC200E11AB3EC48F1BD8A3402E933269CE1C2BD5F0D96C433F0F4C86D1D1FB878F57A290EF091462003B3484EFF36189F4EFC104936019798B673932C14482590E2AC710710690F80282D0B41CA8F40195866DACEEC402D0E614C2A810C14EC86DEC9803AB35CA651128C2F0EBBF5C985E59B5F0CC65C6356A413C8C0AD5636FD39107DBDB11054AB3830C0449D857255BA6FE5A514C8CEA75ADE4755B938245FC5300403CC979995DA3764E4495A81DC70C1D803FBFB87AF03B3AA47641C39FEF9245DDD3138346905A2EA11FF46A0B448C435AEBB9DB2D51D911188E7683197B98C98BF266D9295632D3340C0E4BCED3CD03240001DA59E41DE88DF3274558F0430180235417C995996B3EE88D40CE2397BC305C71DD8BF7D9BF74B333ED0242A63A21888CC99F4919841066EB5B2FA64227C5F54C6146E400C10D53A3AB64D9E7BFB963F0664B12D339111C840D19ECB5CC6AA1E692BE161778E42DD11B95BACC10E5B39BD0C861176A295FDE61920A205F97235522F802335837829E9CD4D3A48E37EAF1E19D77C8A548F1019884CDD11E919C4737EE7969ADF0B31D9CA74730C6C72A963724F79FD1F9AEB167EEBC8CD206F5066199905007BDFB3AB4B720698717AA1E24472016A640532309318691BA0ACE4E323E1EE45EFA888C8DF62BD1140DFCC0907BB29D7FB6552F5888C3224D866D989F482D348CF20AA1E9151157FF769B34B1D9D51AC3B623383BC114831AB5F4E84AF483D5C92E61CF11966B916F917BB919F41FE51B4AB7A441E0D46BBEE88DD0CE205E4D523F594FB0001C7CA335092E809574CBB169B17B9B19941BCA1D86B8C3F4383A6B60E0A4F979BB5BA36B97BC5C6DF87E782BF966325108F9A524EBF9C59D523FE0E9306D1625277C4F2166B705045235321F0AC06D3AA9AF9C00031AEC8579CD8BDB88DDD0CE2E57AF16CFD908E3AD6B1AA477C18FA8D4050C5B4ABB1A93B623F830C14ED6A2BD3464676DB6D08788AEA5A679CEA8E4408C40BB268E85710F0E5B6478102D823031ADC33BBED4DB15D381ACB5BACC1D92C19990AAB7A4488C419B8B2603BB17E419B0081A44733C85BAF3556C828492828839617EC6AEC178AC65E20DEF8B5B2993341FCDD848E6511616FA9A7D039FF0EE70511E03261264220032231D25702F42599C88FAC2F4C6799956A225EC82646200322C9E9CBC108F5D4D4C88A62A7E349A83B12F3146BD7C15832D2A35DE001021D13F5811A8AFF841566D949D40BD844CD20DEA0EACD65CED298D78632C0A26D740B8127E7EDDAEFA21D4673DE274E20AA1E696E80FCBD7582EA8EC4DE620D0EBC68E82B0838BFC5E192B06EBCD0B46B897CE19AC819C41BDDDF9C39EED08E94B60EAA1ED9BBD8135877A819642703A55CE62C56F5C85E04C23F23A03369758712C820068AD9F44222FA62C2EE991A0A9788CECE97AB897EC19AD85BACC123A464E82B58D5236F120D335F55A8D412FF625509C45BF5DB35F630728779EBB5DED7D04F6BCC1B11B0326F3BEA852A0025909D83BD68E86713705FCCC77E23E13DDD5FAF775EBA62F36F1B691CF7364A2083325CCA65163273A2EB115577BC59F24A20BBFC045A86BE12C07971FF65DC5D7C4C7455A15C4D7CDDA19E62ED65F417BB261D466E7F12EB9155A6EDA817A7BB8C0D3583EC462CA559E929ACD1BD099A459EEEA8D73BE7AABAE32D295702D9830A2C237315C0FF9604913030A5603B6A01E76E92AD04B2170524A31EA1AB4DBB9AE807137BFB115402D90B3B4BB213FEA54E03E78FBC37A63389AA3B8648AC12C8100495BAD253D88D653DF20C6B1D9D8565EB7F1353F1FB12961248033416B3FAD544F842034D23D3845C9E9A5F5E532F46D50CE2CF982DE5F455CC98E10F5AD828AAEE6834036A066990A9DE9999C3358DD7817074835DA46C4684D5F9B293C817A1AD244409A409D68AB9F45462BAA7892E7235653CBB1D5AE7E72A1B7F2D9763F27AA304D2646E4A59FD6A8E683D421A4FCD2F537547332957026986AD9D6D2D23BD1AA0735BE81A5A17667CBE507112F1E2D34F9295405A60D3AB47521DBC8E392AF508AF31ED5A4C1E30B490B036BA2881B4489E951D3F0DA4DDDD62F7E0BA119E4DB95AE73C5577B4C4B912484BB4EDE864E5F4CF83717D1B10C2BB32F1B442B996A48597BE72AA04D2269D9691590DB09CF508E31AB3E2C4EA05679BE96ABABB1248D394BDB9435F57FA08D71D387FE4A836A17CEE4E6B4CBBAAEA8E365955026993C0815BAD6C661A8865AA479E73EBD4D9B3A2FA2B1FC24B348412884FE92F1AFA35045CE7135C7B30EC4E372B9BA2FB42B3BDE87DEDAD04E2239D56565F03C2277C846C1E8A708D59567547F3C4EDBE8712885F4C7A474F875D8F30EE342B8E9C0F0C7CE439482825109FD9EE9D9599AE69FC1D9F611B817BCE1D469D3DB7ABBAA311B21A6DA304D228534DB42B19FA351C743DC234DDAC5455DDD1449E1A69AA04D2084B2DB4291AFA9D047CBC85AE4D7761E0DA82ED48FDC2B2E9A024E9A004222811BDD9F1EF4991B68E8131824CEC8025DC699655DD218A63251051CC7A457B2E33DD6571F50801CF93C69DDDCB6ABF141846A2A1954004A7DFCAA6AF05D12211665C97CEE9595E95E905A5883043C5540209807E11F50801D7E655DD213C7B4A20C229064AE78F3B92BDF310898EF4C31C0377156C27DC17927E0412010C259080926419FA3900EE6ADB1CF3CF5D70674F65D32FDAC652004332A004322445FE35E8CD651669CCD7B683A8119DD35D5675473B1C36D35709A419B67C686B19BA378B78B349F317F322B35293634164F3DE47B2871248C0692B7D72D291DCDFFF3080D1CD9826D0BD79BB3AAD993EAA6DFB0C2881B4CF61D308C56CFAD344F4ED663AF6D7EB87A973039B61CC9FB64A20FEF0D8348A95D32F02E3E6863AB2FB7EB3B2697D436D55235F195002F195CEE6C0AC9C7E1E18170138F52D3D09AF33E36E0DDAF5797BE396E690556BBF185002F18BC936704A59FD7817380144C711B84E844789F801B584A40D527DEAFAFFB0D50B415746FC720000000049454E44AE426082, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file_content` VALUES (22, 4, '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE90000200049444154785EED7D7D9C1C5595F673AA6726214808B88B115C8DAB80C4A4ABC78880060CF2A57CEC0ABB21A4AB27464050C9747542A2447D25ACAF0A2461BA3AF123405498AE4E2008460C202C6E24101108E9EA202851C32EF2022B1046490C99E93AEFEF766620C4747D7575577577D5EF377FF5B9E79EF39CFBCCADBA1FE710A227422042A02A02146113211021501D818820D1E88810B040202248343C2204228244632042C01B02D10CE20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141DA24D0919BDE108808E20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141020EF477A64F7CDBEB07741E4C1C1B1B33870E9624300FF100B8E32FBB3ACB030BFA4B3B0236B1ADBB8F0852A7F05F73E1D1078DDED57514404732D151041C09C20480C682F96000E26F2C00C9C684218006001E006180180326782B319E0678AB19EB7C7AE0D9B15B17AD5F3F542757DA5A6D44101FC2DF974C24409846C49388E948C014C418EF836A372AFEC88CAD448238B44992CC077AFB4BDBDC288864FF1E8188202E4745EE53EF1F658E3BF0588AE1236CE244224C0330CEA59AC688339E61C27A227E88107B349DDF6C34A6E3D6E925228883586695C4B1C4E699003E02A213001CE2A0591845B681F06B021E2A9BE65D730B5BFE184623C3645344902AD1C8CE9C1427493A0B44678231354C41F3C516C61088D781E9AE7207D6CDBBD978CE17BD2DA62422C85E01CDA6E24713E82C367116113ED162B1B672670713EE22E6758366E7BAF9AB36BDD446BE5BBA1A110480964CFC2B882F0670763430B09DC1B7494C37A60BC623ED8E475B13444BC9E783711180D3031B08849D600C80E855300F0CDB213EFA47FE4607661BF8A63261E5BC7C6943703604DB735B1224ABC82962BE18441FAF1FFCF43291B90DA06D26F33312631B4BD82651EC25B3CC03348A5E7DE5B5D70716AD7972B7950D3F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC626FA5F257B7953402AD62982B55BD747FFDF00AA7E6B622483619BF48225CC4A8AC44F9F9880FDC5F10D32F20D16670D7B6B4FEEBBFF8D9819DAEBED98971D88D0992C4DDE0CAF793F83BDCAE9D9BDF19B89D9856AA85E25D6EDA35B36C5B104453E47309B89C818FF914AC5740F82F98BC814C7A20BDDAD8EC935E5FD5E42E90BBB9834F62A6930838D9B7E569C26A89A4A5BDFD9B1FF3D5E0102A6B6982E452DD32B37939801E1FB07F1184B5205A3BFA80D8FA4BAFDFB4D3079D0D53B1B8277EE02896A631F85C30CE0570682D9D33B05B225A32346A70E9BC95BF79A5165D616EDB92045979E1D107BDB6FB80CBC13C1FC0819E03C06006D63268ED2894D77EB1B065BB675D216A989D39E91D24C50449C45FAD0B14BF05F152355FBA31442EFA664ACB114453E29F0148CC1A93BDA2C4C04362A6E89078ED9C9B8DA7BDEA698676CB7ABA3FCCCCE732F379003EE0D966E2BB24C2D2DEFED22F3CEB0861C39621C89264F77B3AC8BC8E0011684F0F01B7B3442BD5FEC67F847E3739F91053A2F732617B50870C73C9C46C267C16E0933C01281A312D510BC5059EDB87AC614B106459523EC324EE03E8182FF832681505B88CA9A5128BC07CE588ED44FCD810F385F3F42D5BBCF8536B9B5C523E8F25CC06E31C8FBAEE6533B620B3EAF192C7F6A169D6F404C929890C4390C3FDC3C08F6062656695F1A0FBD6FEB4C82613D389F8D6FD69EB64F3D020BF7B34257E0A40B301A43C78FB82042CE8D58DBC87B6A169D2B4045971C99431BB760EF581718907346F95246971D0CB94CB677DE4EDE5F2EB55CF3D1178715A2F7DC9837FBE3611A79941BC8018D35D2B6EF257AEA62488969C3C05248959E3447701E3A78870753A5FBAD95DBBFA48E794F8F10CFA5535ED0CBA3BA317C531FB503CB9547C16332DF4F0317F2F9BE50599554F34DD2B57D31144531249066B04FC83AB5143B42426755D3DE7E6475E76D5AE8EC25A523E1984AAAB3E04AC4FEB86D8E00BCD5399F5CCDD570C2FA1BBB1EB0530CF550BA5D56E1A052DDB5404C9A5120B98F95A37A011F0F332D1D573F3C5F56EDA3542B619093282CBB254621A335FC1C0192EB14AABBAB1CC659BC0C49B8620594516B346DA0552BB4158A8E68DEB5CB469A86833136404282D159F0FA6C5AE80237C43CD1B5F77D52620E1A6208896946F03E1DF5C60B491D95C98296C79C0459B868BB60241046839453E9D89168339EE144406566474E3F34EE583920B3D4134457E18C0718E0162D2CA83072C9CB7E6577F73DC2620C156218880EFDAE913C78FEAEA1433898B2561BE4DD54BEE57C61A18AF50134453E46701BCCB091E043C6B025FC934D1BA7B2B11E48D57AE647C3EC46CE2F421BE4BCD97CE722ADE68B9D0124453647601C61D4CBC30932FFDCE459BC0455B912023AF5C00AE63E0838E4066DCA7168C5A0F4D3AEACAAD5028099253E4279C82CB843599BC71BE5BC7C320DFAA0411D88A0418602A10F021475833DDA8168A9F7324DB40A1D0112497926F65873BB6CD4C0E11E3562688F0EFEAE9530E3EA06B48DC3EFCA89331CD8CFF932918FFD7896CA364424590BE647C9144F4C6A13D2B1088B026DDA433C79BEFEBCDB751E86560E652F2FDBCE71AB0ED43C45F4CE74BDFB3156C90406808A2A5E479602C75E43743570B868BD512475A1B2ED4EA33C8DE806AC9F8BA4A123E070F335F9C2994563A10ADBB4828089255129F23F0F54EBC6560694637C44DC1A67FDA892022583945D6D8E1662F033D6158910C9C20CB14798609383A9F63325F35B7505AD4F4CC1876A0DD085221492AF14D66FE8A93184A4CE7F7168A6B9CC8D64B2650828853B94CD23D4E0E1EB61A394440DB91202E6792E721F1E96A7FE9897A11C04E6F6004A9DCE7D831748F9323EBAD488E762648C5774516DF1817DA0DD0A08FFC0746102D25AF7074D98968899A6F9D3BCE6FFD706D8F55AC6A24D014F916000EF6B0E8DBAA5E74F45A664738B7BF074210A7D76499B03293374452E9967CDAF5156B2498957D9251836BC10E52C01266A87963BF5793EB39381A4E903D0916205EADEC9E3B54DDF09CA1C44E79187E6F77828818544A4E3089CDC47FB689C933434338E3F25B1A9B86A9A10411A9793AA97CB783EC237F924CF3B4DE555B7E1B86815C2F1B2282EC4136ABC833C8C14A26317E922E1822D95DC39E861224A7C83F660779AB24A027ECD930724AFC5D264B2790C467B0C91325A2B7317010C00731E82002BA1A1645BF3AAA54CEC5FAF2E0D0C2796B1A9B4E544B25C47D12FBFD2DE6456AA174955F2EDBE969184172C984C2C4B6296018C8657443B5333C88DFB3C9C92741923E2D311DCF60BF33C407E1D2FEFB64DCA9168C7F69A4412B2E99D2B9EBB5C1FB1C94A4D841659CD8A884E10D2148C5F91D43227BC7141BD0378E3EB0E3B430258616F5CE47ED1A753E816680705A23074D907D4990CEECD537DFDD481B96CFEC3EA12C99FF09608C55BFA25E495A2F261B615B4308A229892F017C8D8D4383CCE6A961BA269B55125F24B048A3290AD4B4D5C3E01B327AC94BCEB19A70CA26E36922D26C9530CF6C448694BA136479B2FB3D6532C5ECF14E2BA719989FD10D6787156DD1AB4D60F9AC0FBC7DC81C750DED29CFD69E4F80FB4F9A228BBC6596252B08787C68F798A9F5BE5A5D778268C94416C496DF1422354F5A373E198691984B769F0A32AF61A7177DC260741D6C60C6273305E3E775506DABB2B2F46BD20610FED152B8011FEC752588964A7C14CC0FD92122119DDC1B82BC55567972ED7C68A9DF092BD58037681D5E7FD8D1C134F5B242B1582FFCEB4A1047B703039CCAF70635220700A23F80716B50C73AF61DE4D9A47CBF5DBD7A91993F53C70FF6BA1124ABC8671370A735B3F9A9586CF789736EFE6DA0E9406B20C72304364CA6A708F43B32F9F918CA2F75EC18F5F2A577DA97688B360AAD47477666E23492F85EDBD981F8536ABEE4E47486ADAA7D05EA46102D25FFD4AEBE04137F2613702269410E89F816069C6141F833336E9780DBD3BA611F3C8B904404B11FAF5A329E0591DD37EC2D69DDB8C05E9B7B096783C2A55E67B38798CA8D192E55FB2A5E296C69D2AFD861B93602DF2071EC9B730A9BFFDB0F432282D8A328EA29428A3D48C0FB2DA5893EA6E68B1BED35BA93A80B419CCC1EE5B274ECBCD5C19611CE26E35F21A26FDA4146C06F005E94D64BB7D9C9BAF93D228833B47229F952667CDF4A5AFCF34AD761DFC67782389C3DF2AA6EF8519AD919C2FB915AD6137F6FD9A4870938CC1A78410EE9FCB4BEF949CF9D55691811C431A29455E4C72C736C318610E36EBF6F1FFA4E1027B38724F12941574375B23FC3C06FA43A91430C8D88208E09826C4ABE946C67112C4DFB9CD0C3578238993D08F4D3B45EFC57E7D0F82F999B31E97DDC11FBBD9D6692A469E9FECDBFB493F3FA7B441057C891A6C88FDA9CE77B85A58EEE4CFFA6FF71A5D942D8578238993D009CA7EAC61D7E39E0458FA6C822EDBE7572B206ECD2460471173D2D255F02C60ACB563EC7CD37820CDF0CB3BEE044FC4B355F9AE60E16FFA53545BE1D40D58B378D2A7D1611C4756C9DCC22455537BA5D6BAED2C0378238391A404C9F4D178A3FF2CB78AF7A3445FE2B80B7556B4F44A974BEA87BD5EFB45D4410A748BD29E7641631619E3957DFE2CB517DDF08627F2C809E52F5E244F790F8DBA24F99FC290992B8035DED7965F4811DE32FBD7ED3A0BF3DFFBDB688209E1016B38828737164D5D684EBD5BC71A927EDFB34F28520D99993E224C50C2B8388E95BE942F1AB7E185D8B8E6C52BE9A085FB6D0D1AFEAC6AC5AFA70DA36228853A4DE2A9755E27D04CA546DCDF873AC63D4317E5434F687208A7C0501DFB672370C1B83C23EBB5C4C26D1C98DAA881B11C41B41C4950426F33ECBD6C49F53F3A51BBDF5F0662B5F08A2A5E40D604CB530E65E5537DC960BAED5B7FDB6CF26E38F12D187AB29A78E8EF7A76FDAF487BA74BE8FD28820DE51CE2972C9E688D03A5537CEF6DEC39E96351364594FF7874DD314EBD3D55F09099F4FE70DEBE5B95A3D71D85E53122F01FCF6AA043974C7E8F4B2DFBFEE505D4D621141BCC3E7E055196C96E5CCAA274ADE7BF181205A327E25882C32AED3CB5D9239F10BFDA5FFADC5503FDAE694E3C632760D58BDBBAA05C3F2E8891F768CE88808E21DCD6C8F3C954C6CB0FCC70C5C99D68DFFF0DE8B1F0451E45F0038B9FAA00B4FEDB95CAA5B6636ABDE3E13F79CD3BA619779A516BCDFD23622486D50E652F14799ABBF2E03B847D58D4FD5D24B4DAF58DF993D71FCD060E77300240B829CA5168A56CBAAB5D8EFAA6D76D687E2542E5BADB6F9BAC964675C44103B84AC7FD752894560AE5AB28F8101E9951DEF48DFEDFD95B926826415394540BF851BAFEE96F85D0BFA4B3B6A83C29FD6DF993EF16D435D9D6293B0DAF3AAAA1B87F8D39BBD968820F6185949645389D388AD6F1CD67A30B6268268C9C40D20AE9A7D9D8075691F56126A83F1ADAD35457E01C03BAAE9343BE990B93F2ABEEA679FD5744504A90DE5E184842F02A8FA4F8D6AFC0EA98D208A2C72B956DDD164E2AF66F2A56FD50683BFAD3545165956AA96253699BAE7D6314BC6DEDE4404A93DB69A228BBC0756CBB9357D8778268893C3892CF1F199FED2AF6B87C13F0D7649C9187459462F7ED7BF1EAB6B8A08523BCAB994FC65665C5D4D93F80EC9E8C638AF3D792688A6242E0378B945C72FA8BA61994DD1ABD1B5B4B35B966ED4495EE14344905A22B9A76DEE02B99B6378DC4A932449C7F6F67BBBDE5D0341AC8F8C03C12765D81F687DC9444222DE6C0928CC78AFBE654BEDE1B3D61011C41F843545FE7F56A96D093437AD17B35E7AF34C909C226F658B4C13612A06BF2F309A228BA324552B1A35AA686844102F43F6EFDB688A2C56525355B5B1F7BD384F0459B408D2215BE5B2A57B124FF6FB02BD3F708A82F6F13EB63A0D0AFC5582F9B17ACF221141FC89A8A6C8BDE26DABAAB61A2EEA792288930FF4EDCF1DD2B968FDFA217F20F0574BDFCCC4A725896DAEFDF24DAA5E9AED6FCF6FD51611C41F741D64607C5ED58DC3BDF4E68920B999F17358A29F56EB9080DFA775A3FA85162F96FAD8A66F76629C34681A00BDDB4A2D419A9ED637FB9A0B6BEFFE2282F813D4A5174CFAA78E58CC3251C3AE51BBC67EF907BFB3DA24DEAF319E08E2E07AEDCF54DD38C71FF7EBA365B838CE776CB433ED49FB5317924404F12FB659457E8D8003AB693489A7CCCD972C57BBF6D7D61341B28AFC7D02AA5F690C49C6763BF8B34AFC2E02D91D6663669A912914D7D8E973FB7B4410B7885597D714F931AB9440127041AF6EDCE2B6474F04C9A5E4FB99F1098B8F225F6E73B975C6AD7C6E66F7C75932D73B6BC7DF54F5D2D79CC93A938A08E20C2727525A52CE83A0541F93F8BA9A37BEE144D7DE329E08A229F2B300DE55AD333671626695F1A05B638290CF29F16B1924EA103A79EE61D0D7337AD1F2829813454226228853A4ECE5B249F96B44B02280A75C03AE09E2648977D0ECF8C7F9AB36BD64EF56F012E2C0DBEB3B86EE64C0C595605E0BC6EA5A8B484604F12FFE39A5FBDF19A6D56BF00655374E72DBA36B825C37FD8403625D3B775A7434A4EA46A75B438294BF6E967C44AC8C9F0148B8B183082F30435CE92C32F143D2103D1B15D07183A07FB27D33279F204952D5F207041869DD70155F619D6B82EC5922E5ED16AEBDA6EAC641FEB9DE184DC3677AC4C5AEF13EF5C80EF558C5C0A98E7DBB1247C0DFFC637A11643E51A68E87E6E51FB7CD49ECD0EE5089F5F54C3A4632635619F89F5175E3BD6E8D764D906BA74F1C3FAAABF3798B8E5E5275C3BA3AA95B2B1B249F53E4D31908A4B26B835C14DD3CC34C0F10F1636073A35AD8B2A9817DD7ADABBED494774A3C24CE64557BB6ABBA71A85B035C1364B8EEF933161DFD49D58D7F726B4858E4FB52896931E62B19083C87704330615C0F98D7373B511CBCFA9755DDE8708BA97B82CC928F2A9721523FEEF709FB2EBA5380ECEE3B3BD5D334722D40144D91FF06607435CC3B760F1E74D99A275F731313D704719066F409553726BB3122ACB2623691D8CC0014683D9346E1430033E80A552F5EDBA83EFDEC475364F1EA5FF51B522A4B47F4AEDE6CF51AF677E6B82788923896C08F549D41981F4B174AC7FAE978D0BA34257E0A883E0BB6D8880ADA483FFB27AC56F3C64C3F55364297A6C84F01F840B5BE4C2936716EFFE342C6F1E39E2033E5A9245924EC223CA8E68D131D5BD04482D99EF8719249D3C591060644FEACA65BAD730C37E369B5601CED583E04829A22FF0AC0F1D54C89497CFC1C9757C02382D410582D39790A204D21C25126E87009FC4E661C0E82B86ADC0AE4D9A1EA46D53A2A35405797A6E120481BBE62D5259A753C6A22363E3B867004138E00E870B07924883EEE762374D8EF4DAA6E544DF65D2F6CBCE80DC92B966D2D9096F948F71224376D1A7DD4A4EF82C484988469209CCF60BB53CC7BBB72ABAA1B33DCF816846C283ED297B7C9326F2302DC6882ECED93A6249204730E834E70E86BE849128A65DE56DF287438587C110B9220230E6415F92A02BEEEC421223A3B9D2FAE7322DB6899D06C14B6F251934607350C04113E3BDD140D438DFB6A310ACD5193563DACD86872540666523E1904513E62BF4F4393D8A5E29F04936D655806CEC9E88638F91CAA273487151D4C654D77DC3DA84887892002836C329E2622CD120FC69D6AC1F897A030AB3A8384E5B87BAB5D980A32D061234885248AFC6302CEB3C28518C7A50B46D5D31441601A9A0B5395578316BA721B443047FA0C2741AC8F12556C675EA4164A570589DDBE7DE792F2D7380C576E8561AD92B421E8008791207B66914481C05667B11E5675C3E9F2704360D65272DEF2AC1CE3EB6AA141491B5A25ED4F432267D1495809B2AC473EC334718F153E319626CC296CFEEFA0317C63360E53DA9F56481C1786C0869520C3AFD1BF0560715891E6A87AD12EF15EC3600E55E2B8664F3DDAB0A8D97414728258664C672097D10D350C58862EF568B327AF0E43502BFFA543B40FB22F26CB92F18B4CA21B2DB00ACDD113BB629E0C3C9F6964F26A274BBD0871F9838820F608E492F2479860513E8F1E50F5A238211CF813BAF20795952C9B023A3071A1BACAF861E0E885D88030CF207DB31313A441DE6601DF5655378E0A03BCB954E226669E55D5964617D01926C88FD97A43C953AAC73000DE281BC24C90C53DF103BB4CAA9AE08081BF6674636CA3B0B2EAC76E5F0EC419355FB23E2150A503D7370ADF58564BCA9780B0C2C2F0E754DDA89ABF370CC0066D439809B262FA948377750D59D58BFFAB1A02822C9F297FB02CE109AB58D652DADB3341723326BD8F3B629659FA6A312CE8C1DB88FEC34C9065CAE4C92624915675BF4F58D23BE552F12F309355D96E4F09E3469CF64C10A14053E4DF009858154466355D2855AF1DD7885118E23EC24C905C2A711633573DB5CBC04319DD981A34BCD9947C2B3144228DFD3ECCF849A6609CEBD5CEDA089294978230AFFAC7117EAC168C7FF76A5CABB70B3741ACFF3333707B4637FE2DC8182D9A36ADE39023B68B5C58FF50D50EC2E56ADEB8CEAB9DB511449105336FAFDE39BDBCFD2FB1772FBA7393553678AFB6377DBB301324ABC4FBC8AA1230D3F7D442F18B410661594FFC13A649F75BD9506BAD9A9A08B2B8277E58974982C152F55984CE520B4591353D7AF64120CC04D114591C67AF9E003004277A1DDC84DCBE7DF7E0F8456B9EDCED75F0D544903DDF21F1FB003AD5822037AA85E2E7BC1AD8CAEDC24A906517741F6EC6CCE7ACB0279212E9FC6623C8F86493F14789A86A4A2202D6A575E3EC5A6CAC9D20C9F895205A64F59AD5259913BFD05FFADF5A0C6DC5B6612588DDCA10037FCCE8C6FB828C49D62EC3A730CE8759AE6682646D12C9093B89F0F974DEB0DA330912EBC0FA0E234172CA716319BBC41193AA396E199CCDE8A5B98101B76705F5DB00AEB0FEFE28CB99554F545DAA76627FCD04A9BC66A5E40D60582DF9DDABEA868B1A804E4C6F7E993012C441314C80E9D36AA1B836C808E414B9C440D52A027EBC5E55FEB9FBE1A4A6C41702F42D2B5DE5B274ECBCD59B452DEBE81946206C04C9F5C4CF6193C4AAA455A1993F8DDEDD31E9D2359B06820A642ED97D2A93799F65FFC4BE9422F785200E6A868098BE952E14BF1A14A861EC374C04197EA717B382759932E6056AA1B424483CED97A0F1E758C7A863E6DCFCC8CBB5DAE90B418411D9A47C3F113E61F1B1FE94AA17ABEEBAD7EA4833B60F0B41FA928984447C07800936386E1A7D60C709975EBF693040BC49536451E1ECC8AA3610AE57F3C6A57ED8E81B411C5CC315B3C867D385E28FFC30BC15748481205925F145027FC376E6A82C0AF1673285D2CD41629F4DC99712E3FB56369830CF9CAB6FB14D82E7C40FDF08E2E49621887FA9E64BED511CD301FA411264594FFCBD26D3379C56CD22D0DD69BD78A603B7EA2922668F474501238B4E8AAA6E74FB65846F0411066929F9A7609C6363DC79AA6E88E9BCED9F2008A225E31740A2B3C110E50F9C954526FA039787CEAB75C9B4D6803B993DFCD8FBD8DB4E5F099255E4B309B8D30A88302740AE35806EDBD78B20DFEB891FB61B380C26DE61120E9380C398E91842E5D4AB3352BCE9CC8BB19874EE9C9B378BF266413E4E668F5758EAE8CEF46FFA1FBF0CF595204E671149E2537AFB4B559336FBE59C573D95EAB6E2BD9C21B7482935AF50EC64933E9D5955B45E52F5AADD453B27B307014BD3BA31DF855A5B51DF09E264160110DAEBB839A57B22C314F75CDAFDF9AB69D2ACB9AB8A3F0901109455E4C708F850555B18438871B7DA5FB2BC5DE8D617DF09E2741609E3C6A1C85CDFD1B5F351063EE816C8969227FE658CF065B71561EB8581B3D9836F48EBA54BFCB6A12E0471388B8426AFD208A84E363CFD0E40E8F411FAB6BF3E78452D47C4FDF4293B73D23B488A6DB0DCF7101D127D4CCD1737FAD97745ADDF0A47F43959D10AC3BAFADEFEB7F9EBD54630BEAF160C915131348FEDAEF99E417C4B5A372EA887D1752388B359849F8AC5769F38E7E6DFD67C24C00F707E387BDAE8BF0CBEFA3B80DFED87BE66D041C0ED0CE4C3B8F4EEE8CC55E5DF3C7F4ACD972C936D7B8D45DD08220CCAA5E45BD9E2427DC568A6256AA1B8C0AB037EB7ABAC6031FF97DF7AC3A28F19AF106133883603B8A31EAF257EF9AA29F27F0238C54A1F835665F462D2AF3EF7D553578268A9C447C1FC909DF126D1C973F3C5F576728DFA7DF855EB060664020E6C54BFFEF5C32F80E879667A81985F20899E8789270529D2FAE627FDEBA77E9AB249792E11EC922DEC3099A6CE2D148BF5B2A4AE0411466BC94416C49659C019F87946373E592F27C3AAB75E1B8561F5D7A95DCB67C94799656C60B1D969397DD4BFD255DD09325C575DECC2BED3D2D91AD3B338053F4C721141F61F0D4D91C581C81EAB5811F0F8D0EE3153E7ADF9D5DFEA19D3BA13A4328B28892F017C8D8D23BB99CDD332852D0FD4D3E130E98E08F2F7D1B0CDD43ED28479A65A28ADAE773C1B429015974CE9DCB56348CC2256A73085AF1BCBBBC79C5AEFFF0AF506D5A9FE88206F45AA6F4F296771ACC5F2BBAFDE1FE67B5BD51082880E73C984C2C479DBC143A4A9F962C656AE05042282BC19449125F1D023B6DFC780DD75881D54C689E9D5865885ABFBD330825448A2C87625132A0E33D093D10D7B32D51D9EFA761011E44D7CB554623198ED0F1AFA90CAC74D541B4A9025C9EEF77452F96E808EB131F24F4C7C6A265F12572B5BF68908B227B45A4A3E1F8C5BEC024D849FA4F3DE1351DBE9DFDFEF0D2588306059523EC324EB12C3C386DEA1EAC6795E9C6A9636114180BE9E0F1D2399659145FE9F6DE2F6CCD010CEB8FC16E3E946C6B7E104D9F3AA95C830B8CFCE5122AC49E78DF3EDE49AF5F776274825B77399EE01C1FE8A2C61869A376E6D74AC0321C8F0B4BA020CDBE3C9AD4C927627484E496C64F009F6839EBEADEAC5AFD8CBF92F111841565C3265CCAE1D43E280D989766EB52A49DA99209A228B1BA527DBC63EE064118111A4328B24274F6192EE21AB022823083274B560A4EC006DA6DFDB9520392571178345D208BBE779487CBADFB704ED3ADDFBF74009522189924802AC3B319A81A5199FEF1C3BE9B75E32ED48104D914549BE5E47983668B7DCCA96C00952F9684F251630F3B50E415BA4164A5739920DB950BB1124974A7C93991D7D4B30A137933796071DC2501044809055648D80B423401ABC59E4C8260F42ED441057F125BA4ACD172D6ACE7800DB6393D01064CF37897C1B08CE0A43B60049DA85205A4ABE118C8B9C8D51FEAEAA972E73265B7FA9501164CF3789FC3080E31CB94EB444CD87E736A2239BF7126A7568625239000006854944415482AC3867CA98BF8D1DFA0101331C6213BA441EA123C830499E05F02E47A032356D0DC456264825F7AF4937D85D99DD2BC63F5375C32E6DADA321E1A7502809324C1276E1E81D4CBCB0D9CE6EB52A41728A7CBA58710430C9490C99F18B4CC1B0BC7BEE444F3D64424B90CAEA96223FE134891B01CF9AC0579AE914702B12444BC6E78368B18BC11ADA2C9BC2875013A44212279951F68E0693561E3C6061335CBA6A25825C3B7DE2F8AEAECEC50438DECC65E03F32BA71A50B32355C34F4041188F425E38B242237406E64361786FDFA6EAB10A4F24A25660DE6B8D311CCA0CB327AF1BB4EE583926B0A8254BE4952F23C70E5BDD6E9B31B84856ADEB04B1DE3549FEF72AD40102D159F0F76F54A252A555D9C299456FA0E681D14360D4184EF5925F139025FEF060791528889AE0E53DEAD11FB733326BD8F3B62BFAFE60F012BD2BAF17937FE364A76592A318D99AF60C055796F09E8E96DA2DBA24D451011FC658A3CA30C2C7774C0F1ADDF264B621DBBAE0E4B9AD361D32CD3FA13A1371D82E3167BC3B87CD607DE5E36475FE1E87AEC5BD9FA822451BAB7BFB8A65124F6A39FA62348E5752B39790A481217AE6C8FCABF15247E8A1957075D88726F9B72A96E99D9DC5F6640567543F223C87EE9C8A6E2B3887185832BD3FB76792F9BE505419770F38243531244385AB94FB273A8CFC9A5ABFD00732BD8BC562D6CD9E40534BFDB8CFC5726C60719FC1240F7AB7AF126BFFBF1AAEFBA0BBA3F1C8B99227FB2FBDB9D21CBBDEC1683A625C81BEFF10EAFEFEE1718C60F25A295BD7AD1367FB05B605B415E53E2A700341B2E966EF7F2FB450998DF4CDF1BFB8B59D313A4F25D52490421EEB8DB664BA9326EA900983F50F5D2FDAD30B06BF54153E473C1F82CC8B66271B5AEEE6533B620B3EAF152ADB604DDBE25082240142985BAC8BC8E01CF995018B89D9856AA85E25D41072688FE73C9C46C96CCD960FAB8E7FE9BFC00E9BE7EB70C41461CD394C467804A023247E780F63710187808446BCB83BCB6D169663C0F4C8F0D97F5747F9899CF6566F18FE5031ED580C177C7242C0973F5622FBEB51C41040839E5B8B126765D4E8020CA182FC00CB73101AC0568ADD989B5737F547CB5065DA1695AA9A36E9220C4B9004EAFD1B0DF8178899A2FDD58A39E50366F49828C20DD974C2424E2CB3D7E64EE1BB017C17BC8B23B66FE72417F694728235AC5A8C53DF103BBCAD2C759E2F3C8C4B9201C5AA3FD83002D89C5762D0DD9DE528D6EBDB5794B13E44DA2C8E7490441948FFA849E98491E62E28D20DC9FE92FFDDA27BDBEAAC9F6C48F034BA790697E0C44C2F7717E74208A669AA0A519BDF8A81FFAC2ACA32D083212806C327E11115D0CE0789F83F202800798F95E498A3D06EEDA96D67FFD179FFBB054D7373B310EBB3181604E21A2D389701233C6FB6CC31D90E846B5BF7D1631DA8A202383454BCA3D90F8A29A566B6C471EBD4C646E03689BC9FC8CC4D8C612B649147BC92CF3008DA2575F79EDF501BB7AE43F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC980054FE7C991DF6EB16613599E6CA74618B28AAD9564F5B12E40DA288ACE2262E06E1B4C0A24ED809C600885E05F3C0B01D62B08FFC8D0ECC36D04D44E6CA74BEB421381B82EDB9AD09F2C637CACCC4A72531A30067071B8E50F4BE9DC1B7494C37A60BC623A1B02840232282EC057E36153F9A4067B189B388F08900E3D2E8AE7732611D31AF1B343BD7CD5FB5E9A5461B10D6FE228254894C76E6A43849D259203A138CA9610D600D769519542145B903EBE6DD6C3C5783AE966D1A11C44168B34AE25862F34C223A810191AE7FAC8366A11311892D407898191B4C36D7CD2D6CF963E88C0C994111415C0624D7FBFE51FCCA98A96256093B612A995E080F4B4C1B49A2077BFB373FE6D2DDB6178F08E2C310A89C673279AA493C89988E04CCA300F27B0FC2CED23F32632B119E0661334C7A502D14B7DA358A7EB7462022489D46C835171E7DD0E85D5D82284732D151041C0912FB153416CC0703107FE255CDEED6E0104003000F8030408C0113BC95184F03BCD58C753E3DF0ECD8AD8BD6AF1FAA932B6DAD362248C0E117441A3B347AEC60593A182857BE6DCA52C740C7200FECEA2C0F34DB99AF80E1F4BDFB8820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF118808E23BA491C256422022482B4533F2C577042282F80E69A4B095108808D24AD18C7CF11D818820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF11F8FFD068FEAA06B279120000000049454E44AE426082, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file_content` VALUES (23, 4, '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001B2E49444154785EED5D09941C55B9FEFEEA99099B844094D5070A0804A6AB43140451597D44643784747522B22A245D3D117CA020E1890BEB74771295680099AE1E20B2681064131425222FA6AB13020A6A7043901010216466BAFE776AB2906566BA6E757575F5CC5FE7788E9CFCCBF77F75BFB9D555F7FE97209730200C0CCA000937C280303038032210191DC2C0100C88406478080322101903C2803F066406F1C79B788D1006442023E4464B99FE181081F8E34DBC46080322901172A3A54C7F0C8840FCF1265E23840111C808B9D152A63F064420FE7813AF11C280086484DC6829D31F0322107FBC89D70861400432426EB494E98F0111883FDEC46B843020021921375ACAF4C78008C41F6FE23542188894406E3A7FC2366FAFE63D35EEDB134CFB8279C711721F4674991AF03768DA1F41CE8B2BF72EBF386B169CA810D27081E40CFD54006703D80FC0BE51214670348C81D504BCC08C458033CF2C2E5DDC3024001A2690ACA1A768AD308E6A2401923BE20C30E6355228A10B249B4C4C22E22F013834E2B746E0458901C6BC0A233FB3DB7E264C58A10AC41587467C073770E60A935CC91530038C3F708CA765BACA4F051C79D070A10964DDCC71675885499E61CBC04B9AC6A9195DE59F8751612802117184712B47548E37496323DD555E58EFAAEB2E905C32B12F133F49C0D87A1723F147160331473B7C7AF79245F5ACBAFE0249E93781717E3D8B90D823930106EECE58F6E9F5ACBEAE02C9A5E2C783E9817A1620B14736030C4CCD5876A15E2CD4572086FE088063EA055EE20A0300ECADB66D39FC82798BDFAE071B7513482E153F174CDFAF076889290C6CCC000157A62DFB7FEBC14A1D05A23F01C6113E412F27C2330C5AEED35FDC9A8501C739B21F2AD127FD43A6674DAB34CEBFFFE09E751148DE887F96410B7C00FEB606A738C35ABAD487AFB8343103D954FC7462FA1F001FF15306397C52BA3BF8D7BE751148CED0EF0370824AA1CC989129DA73547CC47678313067DAFE3B39CEA81F30E314E5CA18BF328BF6C795FDAA38042E907C72FCB14CCEC32A4009B8396DD9E7A8F888EDF064E0C6A9E33F1C739CA7FD54578FEF22810B2497D40B20186A05F2B1A6557E54CD47AC872B0379233E8F41E7A9D6478C7BD345DBDD3E11D815A840664F1DFF614751FD047A206D953E1D584512A8E919F0338ED6171D8B61BFE9B7D97F088A844005923374F737C4454AE00893CD822D8B1895481BFEC67E671126CCCF14EC738362283081CC9E1AFF80E390FBF6695BCFE008BF320BC1FFB0F29C5F0C23CB402DB34865ABBE9D66CE7FE6B5208A0B4C2039237E35405F5501C5CCE7668AE5F92A3E623B7218F03D8B30AEC914ED4B83602A1081B8CD16DE79ABCF7DEEDB5D0194BD6A5FFBE0286DD057C02EA6213050C32CC2A6656B41400C4420D954FC1262BA56059003EAE8B04A59151FB11D790CF89D45407C8959285F5F2B638108246FE8CB1838D03B18FECBEA9ED6F8A50B16BFE1DD472C472203BE6711C6BFCCA2FDBE5A39AB59205923711E81E72901617CCD2CDA5F57F211E311CB80FF5904679B05FB965A88AB59203943FF3580C31540BC45E0FDD356F96F0A3E623A8219F03D8B103D6B166A5BC4589340F249FD3426DCA572EF187C5DC62A7F59C5476C8501BFB308697C522D7BD76B12482E15FF299894BE823B5A6C5C47D7EF9E955B2E0CA830E07F16A9ED5B9B6F8164A7E847908627548A04F03DD3B2BFA8E823E6C2403F037E6711107DCC2C949EF443A36F81E48CB80550522529310E4D17EDDFAAF888AD30B09E01BFB30811EE4D17FC2D62F42510B7950F8815178471D1B4CA8AAB7C871E1C9D6726F6D262EE0B02DE498651F4186076EC4C71E92F8344E67716F1BB88D19F408CC45C802F542B3CB825ED9D53E3476B0E5D02E078350C62DD0806887145BA685F1D446EBFB30808F34D1F8B18950572D3A409A3DF69EBFB07806DBC164CC08369CB0E6430E792F18B41749DD7DC6217190696ADEAE99D306BC1F29E5A11E552FA0FC050DE60E76711A3B240F286FE75062E5729D271E8D48EEED2BD2A3E03D97626DB3FA891F6C75AE3887F631820E086B4655F5C6B76BFB30813AEC914D416312A0B2467E87F07B09BD72289E8FFD28592AF8DF89BE7C81BFAF50CB84727C8D5A40C10B61A9DB69EFA77ADF0F3867E0B036729C6515EC4A824909CA1CF70DFB62981624C338B769792CF20C6394377D76E6D1F442C89D118061CA65447B164D59ADDEF2CA2BA885149205923BE9C40072814B7C2B4EC0F28D80F6A3AF7AC71BBF4F5B6BE14442C89D14006089D66C19E1904829CA1BB7F78534AB108FF320BDE17317A1648D6D0271370BB0A18065D94B14ADF51F119CA3667E8BD005A828A2771C267800933328560DA3BF99F45BC2F62F42C90BC117F9241872950FA66A5679B9D672E58B45AC16748D3BC912832784A50F1244EF80C30F1FE9942F9F74165F639269E332DDBD393902781CC4E258E74981F53292AC877DFEBF3E68CF83100B90DB1E56A4E06EE312DFBB420A1FB9D45BC2E62F424905C32FE5390DAA2C4368D77FE6257F99520C97063E50CFD360053838E2BF1EACF401F69892F1596D84167CAA6F43B89314929AEC7862155059237C68F63386A278B32E7CC6239A30458C1386FE85731F0350517316D2003CCF8B946FCD5B455FE4D3D60F89D45BC2C62AC2A90ACA1DF428AEF9BA9AFB24FFA8E6575FDA0F79D64FB985E4D9B0476BB82F33E00EF4DD06421643D46A06A4CE2BD1DA63F12506287EFCF74DBBF520DA16A9F35F4BB08507A7CF3B2887148815C3F65C2D856ADEF5F8A600BA665CB23902269625E1B037E67916A8B1887144836A57F9B186E4B7ACF97C334BEA3582A7976104361202006B246E2C7043E49295C95458C430A2467E8EEB1565B7B4D287D76BD322576F560C06F67F8586CCDD8E9B73DB772204C830A2497D26782718352218CA3CDA2ADF43A5829BE180B035518F07536CD108B18071788A1BB4BDA7755B8234F9B967D8882BD980A038133904FEA8730E129C5C0832E621C502059434F11A0B4C090C093D256F9478AC0C45C18089C816C52FF1911FE5B2530137F3953286FB1CF684081E40CDDFD91AD2B24F89369D97B2BD88BA93050370672A9C4E16076FBB579BF0659C4B88540B2A9C471C4FC90F7C8EE01A5F842BA60DFA4E223B6C2403D19C819F187013A5629076DB988710B817426E3B334A22BBD0626E08DB465EFE0D55EEC84813018C8A7E21F6726D58611779A963D79637C9B0864EEA471DBF58D6A2B8159E171892E37ADD237C2285A7208032A0C640DFD3102D69EC3EEEDFAB769D9A3071548A7D13E518376BFB7586BAD1CA2A33A0AA5C7557CC456180883815C523F0A849FABE462D02119ABB4E194DD4D66907C2AF10D66FE8A42C0D5A6657BEE6EA210574C85819A19B83E397ECF567256A80462E0B28C657F7BBDCF2602C919BAFBCCE6F9307606EECE58F6E92A00C456180893819CA1BB0D0EF7F59E931F31ADF271830984BD0702407C9E5928FF40C9478C85811019C82513DF01B14A3FE84D3E1A6E9841E69FBDDF7BFEB3662BA5762CEC54F44CF7B27288F54A2A61408981CEA47E9AA67844474B4FEF7B2E5AB0FC3F6EA20D02B9719ABE7BAC02A5436D2A3DDB6C13E49E73A5CAC55818F0C0809F3ED25A45DB7DC6ED4BDCA556EF0A64F694F6FD1D4DF37C6E07037FCF58F61E1E308A8930D0300618A0BCA13B2A00366E2CB16106515DE445C0E369CB3E4A25B1D80A038D6020978CBF0022CFDFF6367ED5BB4120AA07E210F062DAB2F76A44C19253185061206F249E64B0E796550EE8880EABD4BF966B8340661BEDED0E34A51FDCDBB78ED9FAF3B73EFE8E0A58B11506C2662097D4FF0C82E73FE6150707CDECB6FB1B95BC3B834C9DF05FE4F4BDA8029EA01D98B6962C57F189AAED9C54FCE08A831389DCA31AEAD37D23AAB5AFC795370EDDDEC19AFDB6DE36F6CC05F316BBBB4987C59533E2AB01DACA6B319518F698799BED36697F5720EBCEFD78DD6B10D78E811333967D9F8A4FD46CB3867E2981A761D39EC3EE1B8CDB4CCBBE2C6A78EB8167DD0255F711E4531BE2131682E976D32A15EB9133AC989D672576D07A79954ABE1E8DB7BBA4ABFCD6260271FF2367E84A1F0A89D94C17CB6ADDDE5590D6D93667E86E9FA6438748D3655AF6B43AC36858F84E23F1310D7C2380C17782325F6216CBD7370C648D8955DFCE0278DDB4EC31EBD36EBAD424A53F01C6119E3131EE328BF6673DDB47C8306BC43B0954BDB95D930F90C1289F3D35FE01C7C1D300553DDF919852E9008E2C68C4EDF7B160F13ED3B24F1C582086FE2D0097AA14E2104FE828947FA7E2D368DB5C523F1F04CF1BBC98F9739962D96D793A6CAE9CA1CF0770B697820878A6AFA7EF1333173CF39A17FB28D9E40D3DC740DA2B26625C9A2EDAD70C28907C2A710233ABFDA660BADE2C96DC03359BE2EA9C7AF00131A7B28081031500F73A44A776144A3F55F089AC69CE487C1560B5433509B79B05BBE93AEB670DFD2F04BCDFEBCDD04047CC58F78AD7F5D9E4116BDD0FF53F01D8D16B40007F7B9B9DF865C5A54A3F8414E2076A9A37F4658AE2E8CFCFC02B19CBDE3950300D089633F45301DCED273531E6A48BB67BCA58535CF964FBB14CDAC30A609F372DFB431BDB6FB1E53697D20B60289D674EC417A60BE5EF2A00698869CED01701F8680DC99BBEB591EA8B98CDB972E07CBAC35AFA400D1C86E69A4B26B22036BD2664209FB1EC4DECB710483E953098B9E035E83ABBB7348D4F9AD15556DABDA598C3B7F98D930EDBBAA5EDEDFB596DFBE580F9DCE7F1585B65E245B72CFBAB6F400D70F4B3686F709834DDB44A731B5086E79473A6E8075634B8FB9BBC3F0D114F340BE59F0D3983DC78CE813BC656B73C0F5208BC36E29F34C7396146F7D2E73C5711826167329188117706218E77E1D24A8D70EE8C42ED475B874001661BE3273A7094B65257C7453F22A2ABD37538EFA37AEEEA1639236E0194AC6EB9C1628BC72BF75F06E98B159F0BD0850AC1D79BFE66BB51EF7CEA9C9B7FFFA60FDFC05D72A98409E65900EAD575A58B62E84CDF662F091C7C0001D7FDA674DF4A2ABD99F49E9A56123B57A48BD17ABCCEA6129710F3B5DEEBE897C280CD47061448FE7313F6E6DEBE4520BC572D49BFF53D4C7C5990E7D0A96270978D380E5DC18453547D55ED097887419DD4439DE9054B548F8A504DE7D93E67249200BBC268F7ECE4DFB0E054E88A8EDB4B4AFBBFFDA71BDC73B6A14F76140F9B05F0BCD34A8774DC5ADA6225C9A0BD79D72EC180FB5D44F962E055025D675A2545152BA7DAC4213FF9A0BD9D166D3A314D07857B1A2E012F38A0CE204FF5F5C3467E4AFC448ED179606CF8D8E5278E0F9FBF83F9FB8ED63AAFA3B038F4E3BADD2525D4EB5CE9E9E3EF66C50DB522645081E467EC330AAF6DFB240307FB20ABDF85815FC788AF9D5128FFC46F0C2F7EFD87A7542A278030C3CB97612F31FDDA30F0B8A6F18DE9AEF242BF31FCF8F50B43A3F3017CC68F7F803EFF00F33C402B9AC5D2F301C61D3454672A718AC6EC363B4CA8E663E077BBF57CE89033162CA80CE45BE57C90FE5365DD5FF5B59E4D7EB3E638D705F9033E6FC4F7704029229CA0B43C66080699E90C22BE5395E441EC973361618C69E1C61F9E028ADD1FC6FDC3C08E7332809339884729C27C308F062898E5438C8799F02069FCA0D9555E1664ED6EAC1B26EB1F6A89D1852AAF7237C3D007F0F1A6557E74306CD5CF284CC6D344940BA8387771E0E38EA3FDA4A37B89FB4D42F9CAA7E2D3C0DA5406ABF55DAD9E296D5AF6EC9C11BF0CA06F563757B2F80D132D8C7165E10C6BE95225CFCD8CE724C7EFD987CAC9009D4C84A36B89B599EF63A665BBF12867C4EF0C4C241B92D02F999D0709FCA0595CBAD82FEE1BCE3CE8FD2DB1962900BB2B8F8FF11B679D5FFF3D1F2A465581B8CE7943FF1E0317D4086673F77F02580CC62BEE576AD2F00A815E76DCFFEF54B621D27662D05880F720D03E0E785F02F60918437F3887E8AA8E42C97DDBD57FAD7B5CB97CC855AEFE813CC4C48F30F332EE719EF2B2BE69DD76E88341F82418EE8CE1F9D42F2F3009EE1E18FBF8F5B66BF771D743241BD03C05820DC632AEF06F33B797073CCF63EE59E376A9F4B6ECC58CBD98682F62B88FD1DE17D30E513C0337652CFB0BD5F8F12490FE4193D2EF64D5B3A8AB658FC2BF0FB25AB7FFE3E2A8D5972B769AF453D1F3207E1E4C2B417815CC6FBB7F18883196083B39C04708D8D64F602F3E0CDC9AB1ECCF6F6E1B8248364FF92A80956B5FF0C05D61ECEE00F4BCC9C94BAD1BD96CD1A47A307FCF027103E40CDDDDA77BB82298A89ABBCFC45F332DFB9EA100764E891FAD69E4CE26C3AE4105117D335D287D75B0FAFB4592D26F00A323AA37511597FBE22863D99E67212581AC1389FB11703B556091B227CC6B23BEE28B5DE557BCE25ABB02D6B95C65EBA6D7D80DB02B390E5DD5D1ED6D25C06CA37DA203CDFD23D1EC7F1CDF342D7B7B15BE9505B24E246EFFACFD551245C19619CF681A5F9B2EF8DBDB919D1A3F949CFED9A4D1AF527DD349E06CA555BB6AA08F6243059D75E4912D63F678DD7DE4CC10B0C91101BEC184EA48CF9A56699C6A4A5F027193E453891F32BB7BB99BE062B81B7DB22DBDBD9DEB5B4AD6823A9B8C9F4344EE8AE7E679EC222CA40A7F3FDD5DDBF719773F8DC6950C18EE3797A6B898E9B64CB1F4393F607D0BC44D964DE9D3A97FAD53F56D9B7EC005E0D303A2F9B15ECE4EBFC376BB7C077AF59FA7C29A0152DB1E102888EAC1EE2387E7D52A8CCDD3CC9E1A3FDA61728512F617FBEA15BF6BF132405FAF65E5714D027171ACDB14EFEE28F4B47D53A53ADFB68C15442890E358417E9C1C0C4F76DAC17154FA52044A291E9DEDBBC42A8EAF82E95EC4708FD9550A7815EFA6993BA7B41F16D3E80C06B94797A91C1B5EAFDADDB86F33782EB4D63999AEC57FA92551CD02599F3C976C3F9948BB84818FD502A806DF3E101E701C7E60FBADD6141AB1A2F8FA2913C6B669951483CFACD22DA586320775ED61F0A38076CFD64EEC9E0BBA17BBAF4D43BBE64CDB7FA7BE4ADB64223A1E8C8901ACBE50C7CE5803C22D310773A6AF6BFCA61E64538FC004F2AE50FA1B22B8D36E183F64DF22A2BB1CE687995A1E6DC422B9C16E40DE183F8EC147017C0C18A78006DE5A50E30D5C01F0FD20FA05572ABFC8742F7BB9C67881B877A626EC4ADC778C46741C33BB072CD5ED3B8E0B98087F6050371C5841AFFF0A5C20EB195E7B9C021D4BC42704FB819156329CBB89B57B57F5F63C326BC1F29E40EE6A1D835C73F67EEF19D533EA286272BF829F04606C0DE99E04F83E303F54CB928D1AF22BB9DE39695CDB4BAD6DC71239A730B4D300AEDA66C86382D50CDCA1113F84316FDF9D9EFDC21A8F7E4A667513C8C628AE9B1ADFB6B5A27D5AD3781218FB3368378F44B9DDED9632782981963A444B87C381A1FD82E9DD6E8CC6CE18028F7198C710E0362B1BE330B626A255406515885E63C2AA16A2554E4C5BF5DA9F47AF9AF5F8E37D4A773862C69DA9C4911A733B81DB19E4EE5571FF576D8671F769B8B3E58B606D05B3F38436F6EDFBEA258A8D290B452003DDA3FCC47D465576DE6E57AD0FBB113BBB31685707BC1D082B50E11588B5AD88D22353C4C6D9B082E3FEC1D87ACDA8D1AC6107EEA31DA0D19A9618BFD1D75B7963F4A8B16F34B2417AC30432ACEEB014336C1910810CDB5B2B8505C1800824081625C6B0654004326C6FAD14160403229020589418C3960111C8B0BDB55258100C345C206E73B3356DCEEEC3E528B7206E8AC400B2530E8AB711FDF5C20637456F984072C9F895207237DD7FDC1D106ECF5B07FCF0280DDF52D9C8248369F830909F34FEBDDCE65CC1C0C48DFA0F3C49C0A24A2B5DADBA87250866421788BB4E4743DF6C30DC353A035DCF691A5F14D546D841902E31B664209B6CFF0491E636C43E68107E5E72883F13F6614DA10B2467E86EEBFC0D1D340622C3ED7212D3F8A333BACA7F96C134FC19E84CB67F3046DA2206DE57ADDAD53D2D3B5CBA60F11BD5EC82FAF75005E2F6B462A61F7A02CF94338BA5EA67087A0A2646516620974A64C19ECFF1B8D9B4EC73C2AA275481E48CC42F00FE84D7E27A9D96F75E1CF2BE06AFD8C42E1806FA8FDB78A765A55234A653CC62E9C74A3E3E8DC315482AB11CCC0778C5EA808EE8D8E8BC38AF7E62D73C0CAC6B84E176DC54B8F82BA655F6D5585D2149BF69B8023174B779C28633A8AB8125E09CB465DF5CCD4EFEBD7919C825F5A920289D205C4B130655A6C21608AB007498AFEA289637B40455F115DBE66020974ACCC2DACEEC2AD7FA3EC22A3EBE6C4520BE6813A7A01810816CC4A4EA09AB328304350CA31B4704220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA104420350A24BAB7B63EC83480EB1339A251358DC07CA522BAC74CCB3E5AD1C79739F9F2F2E99433F47F02D8D9A7BBB809036B1960CA99C552260C3AC21548326E83281E4661926318334038DB2CD8B7845161B80249E9DD609C19466192631833A071BBD9555E164685A10A249B8A9F4E4C3F0AA330C9316C192899963D3EACEA4215C8B792ED63B621AD0C608FB00A943CC38C01E65966B17C555855852A10B7A85C2A7E3198AE0BAB40C933AC1878CE69A5C33A6E2DBD1E5655A10B64D6A4716D3BB6B52E62E0E0B08A943CC3830187F9C28E62F9BB615613BA40D6CE2289C399F97E02468759ACE46A5E06089C4D5BE58EB02B688840FA4562E8A732702D01FB845DB4E46B3A066E362DFB9C46A06E9840DC62E79E356E97BEDED6AF00B800405B2308909C9166E06982766DDA5AD2B0379F0D15C8FA5BD339F9A00362AD2D2987F90C9951223D60C302771F03858C65DF1156C2C1F24442201B83737F9FC0718E03D12EEEB21402C6349A24C95F3F0618E801F032885E6607BFEDE3D86317772F7EB57E19D522474E206AF0C55A18A82F032290FAF22BD19B9C01114893DF40815F5F064420F5E557A2373903229026BF8102BFBE0C8840EACBAF446F720644204D7E03057E7D191081D4975F89DEE40C88409AFC060AFCFA322002A92FBF12BDC919108134F90D14F8F5654004525F7E257A9333200269F21B28F0EBCB8008A4BEFC4AF426674004D2E43750E0D7970111487DF995E84DCE8008A4C96FA0C0AF2F032290FAF22BD19B9C81FF073BF4316E702655E80000000049454E44AE426082, '1', '2023-08-11 14:28:46', '1', '2023-08-11 14:28:46', b'0'); +INSERT INTO `infra_file_content` VALUES (24, 4, 'a7aa0b433b885372c370119f03ccc2b979702bed41059114e530fc8e8dbb971d.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9CCC4EA604109864A8F5C1F2855AE196B388CC0354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B01F29CD90DB7126C95203B2736C636CA95E610AB264CA148C958328730A58D7C405957B47CD7C41327AC0CE3573D24F28E9AC664F29322808B9602375D7E19C15780607487A908EB138C222810AA98E655065E1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554D938A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F59BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E50418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FAC928A0E92D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE70362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA64825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C0983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C2740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9320399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, '4', '2023-08-12 12:43:36', '4', '2023-08-12 12:43:36', b'0'); +INSERT INTO `infra_file_content` VALUES (25, 4, '734790cc67066464a98ba9052024e16e45e325accd56e86dede83de241e21136.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9CCC4EA684109864A8F5C1855AE196B3880354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B019CD90DB7126DF295283B2736C636CA95E610AB264CA148C958328730A58D7CC05957B47CD7C41327AC0CE3573D24F28E9AC6649322808B9602375D7E19C157806075F287A908EB138C222810AA98E655065A1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54DB38A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E50418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FAC928A0E92D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C002675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F395A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA24825B03A8619C1E648D8AE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A013538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700712DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A194274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C182E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106864920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, '4', '2023-08-12 12:47:06', '4', '2023-08-12 12:47:06', b'0'); +INSERT INTO `infra_file_content` VALUES (26, 4, '083d073d54a9e4dddd361fe5ee5dbe6e6ca6d7c0cda61422e695ceafe0321e68.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9CCC4E2684109864A8F5C1855AE196B3880354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B019CD90DB7126C95283B2736C636CA95E210AB264CA148C948328730A58D7CC05957B47CD7C41327AC0CE3573D248E9AC6649322808B9602375D7E19C157806074F287A908EB138C222810AA98E655065A1C0C0E25CC52B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554D938A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B6196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FAC928A0E92D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F395A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A013538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8EB1BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDE54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993881D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFBCEE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA413325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F5936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C182E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306864920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB812492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, '4', '2023-08-12 12:48:07', '4', '2023-08-12 12:48:07', b'0'); +INSERT INTO `infra_file_content` VALUES (27, 4, '5e608900b7e3778efaa4b5b2e545e5c734f2072fc605d6376775db11fc206458.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9CCC4EA684109864A8F5C1855AE196B3880354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B01F29CD90DB7126DF295203B2736C636CA95E210AB264CA148C948328730A58D7C405957B47CD7C41327AC0CE3573D24F28E9AC6649322808B9602375D7E19C15780607587A908EB13AC222810AA98E655065A1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54DB38A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B6196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FA4928A0EB2D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C0983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993881D440A814700712DB732D993108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F5936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, '4', '2023-08-12 12:48:59', '4', '2023-08-12 12:48:59', b'0'); +INSERT INTO `infra_file_content` VALUES (28, 4, 'a83e6e743f60a77f7738bc626fb0c64ef37c16be46e48c4961e7764e7a3087d8.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9CCC4EA684109864A8F5C1855AE196B3880354F0E211525D53071E509B312942C4BA8E65D579E25F6F322A9B019CD90DB7126D95203B2736C636CA95E210AB264CA148C958328730A58D7CC05957B47CD7C41327AC0CE3573D248E9AC664F29322808B9602375D7E19C15780607487A908EB138C222810AA98E655065E1C0C0E25CC52B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54D938A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FAC928A0E92D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA64825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C0983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993881D440A814700712DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFBCEE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9320399527C32AAE1720C182E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106864920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, '4', '2023-08-12 12:51:45', '4', '2023-08-12 12:51:45', b'0'); +INSERT INTO `infra_file_content` VALUES (29, 4, '3b4de1f338a0dd46c67d32b26327aebace126072bf2ec418b7e87ebd7e90e638.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9C4C4E2684109864A8F5C1F2855AE196B388CC0354F0E211525D53071E709B312942C4BA8E65D579E25F6F322A9B019CD90DB7126DF295203B2736C636CA95E610AB264CA148C958328730A58D7CC05957B47CD7C41327AC0CE3573D24F28E9AC6649322808B9602375D7E19C157806074F287A908EB138C222810AA98E655065A1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554DB38A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F59BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FAC928A0EB2D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE70362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA64825B03A8619C1E648D8AE8E265769DAE357514F16C05B6F4C7CA6996C0983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A013538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8EB1BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C2740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F5936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C182E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106864920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-08-12 15:58:10', NULL, '2023-08-12 15:58:10', b'0'); +INSERT INTO `infra_file_content` VALUES (30, 4, '83b11eeaed5adb01d42db440e81ebc33b28d3ff3e8994771bf2ad24a0bc4019c.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9CCC4E2604109864A8F5C1F2855AE196B3880354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B019CD90DB7126C95283B2736C636CA95E610AB264CA148C958328730A58D7CC05957B47CD7C41327AC0CE3573D248E9AC664F29322808B9602375D7E19C15780607587A908EB13AC222810AA98E655065E1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54D938A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B6196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FAC928A0E92D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C002675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA64825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44EB2686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C2740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F488E9AEFC30623C4858F1E98F39A4C734B28EA413325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9320399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB812492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-08-12 16:12:38', NULL, '2023-08-12 16:12:38', b'0'); +INSERT INTO `infra_file_content` VALUES (31, 4, 'fbfa608c1c9122aafedced47b67b44b591de7222bd797688720b1cb72d055b5b.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9C4C4E2684109864A8F5C1855AE196B3880354F0E211525D53071E509B312942C4BA8E65D579E25F6F322A9B019CD90DB7126CF295283B2736C636CA95E610AB264CA148C948328730A58D7C405957B47CD7C41327AC0CE3573D248E9AC664F29322808B9602375D7E19C15780607587A908EB13AC222810AA98E655065A1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54DB38A50B603827D0192D6F1220FE2882A576850456A4E70C871D20CC69601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D0C0E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FA4928A0E92D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE70362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDE54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D993108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA413325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9320399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-08-12 16:59:08', NULL, '2023-08-12 16:59:08', b'0'); +INSERT INTO `infra_file_content` VALUES (32, 4, '82514bb4c85a4ac318eb37d8fe1328ad644d351bf7dbcd23dddd8718935ee915.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9C4C4EA604109864A8F5C1F2855AE196B3880354F0E211525D53071E709B312942C4BA8E65D579E25F6F322A9B019CD90DB7126DF295283B2736C636CA95E210AB264CA148C948328730A58D7CC05957B47CD7C41327AC0CE3573D248E9AC6649322808B9602375D7E19C157806074F287A908EB13AC222810AA98E655065E1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54D938A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B6196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F59BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FA4928A0EB2D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8EB1BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFBCEE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F488E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107EB2C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB812492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-08-12 17:01:50', NULL, '2023-08-12 17:01:50', b'0'); +INSERT INTO `infra_file_content` VALUES (33, 4, 'a3817f4a7627c41737d0510c4282e62d8f230d6591a7b0125c796ba8b9a7551f.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD39864AF9C4C4E2604109864A8F5C1855AE196B3880354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B01F29CD90DB7126C95283B2736C636CA95E210AB264CA148C948328730A58D7C405957B47CD7C41327AC0CE3573D248E9AC6649322808B9602375D7E19C157806075F287A908EB13AC222810AA98E655065E1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C665CC54D938A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E60CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E50418936582A4278E5CF98F68EA23A8F09DC3D0C0E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FAC928A0EB2D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F395A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44EB2686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700712DB732D993108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFBCEE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA413325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-09-11 16:29:13', NULL, '2023-09-11 16:29:13', b'0'); +INSERT INTO `infra_file_content` VALUES (34, 4, 'c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001D5949444154785EED9D09B41C5599C7FF5FBDBC0482C081E8083A8222081348578720CA1216D984008E40907475222E04C1BCAE7E913020190CCBB043BA3A0992A022A4AB8344180E106453D0002E43485707228ACBC02828078DA040485ED737A7DE828F2CEFD5F65557F7BB750E27E790EFFEEFF7FD6FFD525DCBBD97A08EA63870EDF4CC7663182783E97006B20074803A01EEE84FC8612687347EACD375EF3EB7BA665D53121DE19DD208AF3FF1F2E79F91FDB0D6E1CE01E82C009D7E13206031697C75D7D2FAEFFDB65171D11D508044F7D0B78295CB98202AF96EB0A540E2A259A95B91345463DF0E28407C5B152DB064E8371170763495775ADF64DACE3931692999211C508024707A5886FE4D005F89B9AB45A6EDCC8A5953C96DE2800244F894B072FA4C1016CB74C3679A76FD56196DA5EA39A000113E0F4A86FE1201BB8A7443F45BB352DB53445B89F63AA000113C11CAB9ACC1C415C12EA0117DB6AB52BB5BB28F91ACAD00111CFDB29159C27D8F73C50E06CA45DB31C53A18E1C20A10C113C032F447001C25D88527FD80693BC70BF73162E5152082436F19FA4F004C16ECC2937ED2B49D4384FB18B1F20A10C1A14F089095A6ED1C2658C688965680080EBF0244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A4152082462B4004CD4D485A012268B40244D0DC84A415208246B73220564E3FD2AC3A8F0ADAD312D20A10C1616A754088B08409179915E70E419B522DAD00111C9E560704841F79F610F0B4CB6C15ABF5DB04ED4AA5F48802C4CA67BE6C56EADF4A6A24DA0590417EFD9C996F2E56EBDF4ECAC366F733220029E73393D9259308E30AB6736452A6B7212003D679F7260B4CDBF9EFA4BC6C563F6D0D4869DA7EEF276D94097037806D08784C01E2EF54F36ED2077E626DB505E34EEAD0161496AEFEB13FD5D68B6A5B40E6E7B2676AC4B3014C1818160588FF13D41720FD7204BE19C0A505BBFE07FF3DB44664DB01B270DAC4837A34F73C024ED974081420FE4FCA2080F4AA327E4DA45D54B0577FDF7F2FE98F6C1B4016CE38705CA3F1F67900CD01B8634BD62B40FC9F908101199066DCD0D83876EEECE53F7DCB7F6FE98D6C0B40CAF9CC3466BA18C03E4359AD00F17F228606A4AF8B27C198DB0E2F1A5B1E102BAFCF06E37A3F43AF00F1E3525F4C44407A7F743130A7683BBEC6C67F66C946B6342065237B0D83E7F8B54C01E2D7A95800E9ED8C886E731B3DE717973DF367FFBDA727B225019977D2A4B13BEDD8B3040C2388950A10FF6EC5700519DC99C344738A95DAC3FE33484764CB01323F37610F0DF410883E1AD44205887FC76206C4FB5C8501CC29B4D84FAE960264BE913D44033FEE7F98DF1DA900F1EF5CDC80BCF3908B30BF5871BCF7532D71B40C2065237B16839744715501E2DF3D294006EE4B0A95DAE7FD67D3BCC89600C4CAEBDF02E34B516D5280F877501290DE2C98EF37ABF529FE336A4E64EA01B10CFD110047C5618F02C4BF8BE280F4A5F2A8693B9FF29F55F291A906A46CE8F73110DBBF320A10FF2758428078093D64DACE71FE334B3632B580940CFDCE2D7D4F15C51E05887FF712040444585EA838A7FBCF2EB9C854025236F45B1838336E1B1420FE1D4D1290BE7B12FA9659AD9DE53FC36422530748D9C8CC675051A27C05887F571307A46F6AEFF505DB39CF7F96F291A902C4CA65BE01A27952652B40FC3BDB0C407A2F24C0378AB673A9FF4C65235303C87C235BD4C0F325CB5580F877B759807819BA2E1FD5BDACDEBB6044B38F5400D23FFBEF1669331420FE1D6E26205E961ADC4C97BD668DFF8C65229B0E8865648E02C87BD7217E2840FC5BDC6C4000FCA9D1810366DFE6FCD17FD6F1473615904553C7BFA7674CE723607C22FED236575480F87739058078C93ED4D830F6DF9B393BB1A98058865E06D0E57FD8A2452A4082F96719FA95002E08D62ADE686F3E4933BFDB6A1A20E57CD660E64ABC760EADA60009EEB695CB9E00E285003E12BC753C2D1838AF5933139B028895CBEE05721F0168B7782CF4A7A200F1E7D3A6518BA68EDF6563E7E8AB897846388568ADBCB9242ED171CD9870D51440CA79FD0E664C8D665BF0D60A90E09E0D6E51CA650AA4D135608C89A614AAB5335AE363CF595A7F2554EB908D1207C4CA65CE03D1B521F38DD2EC4D304D35ABB5FBA3880469DBCA4B8F6EADCED234FD50D2E02D1437E40A32417CF21BDB8CFB914401E95D2397E987003AFD9A1253DC9FA981E30BB73BAB63D2F325D38E807885CFCF65B31AB1B72EEF877D1911631011BA0A15C7BB274AE4480C90F2F17B8EE171DB798F740F4DA4B2FE4E08F88DEB360E6DC6AA1AED0A8867ED0263C204D75B1B00B44B92E309E02597DDC9DDD535BF4BA2DFC400B172FAF520243B1799B1DAAC3AFB2761E496FA686740FAAE2413F6D0487B0AC04E897A9CE097BF8900529A9EF904B9F4B3444D04FDC4B46B8727DBE7BB7B6B7740BC6AAF9D9EF997D12EFD2F806D13F6FA9424B65F4806905CF6D6441F1112FDD6ACD4F64C78C036EB6E2400E215BD78E6A4B1EBDFE8F947DF17EBC91C04FC62970D1B279FBE7CED06C91EC50B6AC2270B2F99B6F34149D3FC6A8F14400641F2865F6F6289639E6756EB97C4A2B515117140127EE7B18E7A1A1F2F7CEF99DF4A9AE6577B2401D2774FD2FB742BC927852FB934EA80EECAAA97FD8E49D0385140ACE9D913E0F28AA049858C7F0B4CA725F99E63B83C471A209E1F565E3F1D8CEF0DE74D6C7F2F7C159105C4D0EF438CAB920C652A314E2D549DBB62333E06A1910888675B39A7CF65C2653158E84742F42A220648D9C89CC6A0E57E2A8C1AC38CFF2C569DCBA3EAC4DD7EA402D27B2531746FCBE8E9717BBA453DC1AB88182096A17B5326E5779425BEDFACA47385BE910CC80D53F7DDB963CCA8FB139AEB2376151101A494CBCC20A25BA5FFF520605D83F8E8EE4AFD69E9BEC2E88F64407AAF227E76CA0D63EC16DA307061D176AE8A49EE1D1919400CFD6784246609D22CD3AE2D8ADB94B8F4463A207D3FB532970374515C9E0EA1F3CCBABD1C7DDE3CB871F6153B20564E9F0E82F7FB53F420825DA83879D14E228A2B40807953C78FDE79F4E8C7187C50443B876FCE9861569DA5C307FA8F9000E4FB209CEA3F85E0910CFCB143E3C95D4BEBBF0FDE3AB9160A903EAFAD7CE6D360FA81B4F3043C58B09D4FC7D94FAC80DC989BB0C746D29E93FE9C9D181714AACED5711A21A1A500F9A7AB563E7B2D98C5574D74353EAA7B697C6B6AC50A4829A77713E10689936D90E633DB6C37EA13672F59F5A6703F91E51520FFB4F0EA2FEEBDFDB66F6FF31803D25F577FC7B49DC87BC90C641E2B2065437F948123229F59430910CE362B4EA49DA644F31B24AE0079B7D3562EFB1910DF2DECFFEB8D0E8C8F6B3DADD80029E7F40399F073C9E2095859B09DC324FB88535B01B2B99B96917918A0A3E3F47973ADF89E6EC60648228FF3089F332BCE1DB2E6C6A7AE00D9DCCB722E6B30892FF7F443D3766281304640746F1DD5FDE23BBD36535A61DACE8982FAB14B2B40B66CA965E8BF00F0F1D80D1F24C8A0038B76ED7FA2F6110B20FD8B8B897EB54B4CF942B566472D38C9F60A902DBB5D3232E71248F4052F115D51A8D422BFA08C059092A1DF44C0D952271F01CFFE752F2713F75B52A97C077415205B7678F14993C6AEDFBE6735081F931B03FEA569D7C747D58F0CC8555327EDB8EDE89E5F02D8356A325B6F4F734DBBF65F72FA32CA0A90ADFB6A19990B01BA42C6F93E55021F54B0EB91D642880C4839A79FC2843B050B7DB393DD09E726B4CC4B9C752404C893A6ED1C1267DE4968CDCF4FDA55E39E67255744215077C1AE95A2D41319102BA75F0AC27F464962C8B6846F9B15E7CB62FA82C271EEF13E449A0F98B673BC601962D29691B101CA897500DC61DACEE7A2E8470724AFDF03C649519218BA2D1F6DDA756F35C6963BCA4666098344776E25A05CB01DB3E5CC015032F43C01B17E5C38D80706FEAF683B9116488F0E88A1BF2478FFB1CAB49D035A71F0BD9C9378E6AF117DB6AB52937E3B2D32040B67EC33AED118F36B003B8B7400A0A3037BCFBACDF1FA0875440264E1347DDF86866742F5ECA31113AE2E569CA66EE0E223CD21434A86FE12493DC048C9FA5F513CB2F27A050C238AC6303FD1BF68569CD0FB5F4602447A131C62ED9842757522FB174A0D9095D36782B058469FCF34EDBAF8CC4D99DCFB54A5CF210616176DE72B616B880488E87ABB8CBF9A55675CD8C2D2D4CE32F46F02083D485BA96591693BB3D25467985C6EF8D2BE3B77AC1FF5BCD4CF2C667EAA58AD877E6B1F0D10437F02C0C1618C19B60DC336ABE99E31386C0D83026286E426D376CE09D27F9A63AD9C5E0189FDCC62D376B4B0F5870664F1CC499DEBDFE879CBBB0F0ADBF950ED5AF1D392E17C28E7320526B2868B1BFA373517CD4A3D9A46A404E26F5CCEEB6733E3A6F895FB145DE2496117F6080D48C9C87E9CC0DE476722476343CFB8D9CB9FFDAB8878134517E626EEDE20770E809941665E12B09834BE3AEDD38CC3582B3D558241338B76CDDB152BF0111E90BC3E8B180B02F7E8AFC1EF4DDBD9C35F686B46792BA2BFFDE6C6CFB84C8713A0A3EF3F6FE7AD812B729D981CD6F8B14ED7BDFBDCEA9A75AD59A9BFAC2D23F32A4022F79C516ED443036219BAF78247665511C2BD66C539D99FB52AAA1D1C909C48C5CC3F2D56EBA1EE95A30022F84D3F5D69DAB5AFB7C3C0AB1AFC39503632D730C8FBE92971FCC1B49D0F85110E0D48D9D07FC7629BCB9361DAB56A9882549BD674C032F4CF02105B7C7CDD5E4E4798E912A101B10CFDEF00DE23311CEC76E8C5654FD725B495663A1D284DDBEFFDA475FC492ABB0ED63E3CABBAFA85A0FAA100B961EA41DB768C7E536CD99DB0B4072D5EC5A7CB01CBD0BD8D8F441ECE10F161854A7D65D08A4301529A3E6937727B02D3E827396FF660C17624E7B6FB4943C534C181B2A13FC0C071125DBB4CF9EE1053B6430162E5264C42DFF6BFB11F0CFE41D1AE9F10BBB0124CBD0396A17B3B539D2E9168D8D5DFC30122B9D62AC13653BE28B5C4002A4D6F7E486609C9CD9FB9CAB49D0B83FA1C0A9005869E77E526BA2C306DA710B41015DFFA0E883EEA25B2CC4AAD18D4A5508048AEC1CBC0A545DBF946D042547CEB3B6019D98B0016D94A8FC03717ECBAF7794FA02314209691BD02E0C0972B5F9951FB7D8CE7AB6E1504CBC87E15E085225684FC3A3C1C20B9ECCD2016594881993F5FACD6C537E0111904251AC901C939EA04DC55B09DC0FBD68403C4C8DC0DD06722B9B195C60C9C54B41D6FFB68758C30074A867E2201F70A951D6AF5979080E8DE34D8A3240A698769B612BE8C04CDB2A11FCBC08332B5F223A65D3F26A8762840CA867E2703A704EDCC4FBC069CD1653BDEF370758C3007CAF9CC346692F9068F70A759714E0B6A6958406E61E0CCA09DF98B8F6F6F077FFDA9A8B43860197A97B78E83483E8C5BCCAAF3C5A0DA6101B118907957C13CCFACD62F095A888A6F7D07AC7C761E98651EF133596635A9F720867E190173858644BD28143236EDB296A17B8F78BF2A9227E332B3EA5C1C543BD415A494CFCE21E66B8276E6279E41CB8A764D72BD563F69A89826385032F4DB0988B496EE56D3669E6356EBD7052D2B2420FAD924B50A05E361B3EA1C1BB41015DFFA0E948DECC30C8E65EBB4CDDC609C6D56836FFE1A0A90F9F9CC344DEA6903B0D6B49D7D5B7FB85505411DB00CDDDB67669FA0ED7CC5334F33ABF5DB7DC50E0A0A0588353D7B025C96DA72ED0DD37644662A063547C527EB8065E8DE24BC6D257AD5A09DD065AFFE4150ED508048AF63B48D3BEA7D672F5BF56AD062547CEB3A509E3AF17D3CDA7D45AA82B09B7A8602E4C6DC849D369226B7A81BBB0798D535ABA4CC52BAE9734072129E57ADDB493B757FB7F6B7A0958702C4EBC4CAEBAF80F1BEA01DFA897719A776571DB1152EFCE4A062927540722B3F025E29D8CEFBC354141E10C185ABE3D85B2E8C19AA4DF31C109E63F444D1760E0D535D6840CA862EF8B909969AB633234C41AA4D6B3A20BA5F61C8CF4C3C27430352CA65BE4E44525B33BF6CDACE075A73A855D6611C90FCC90EF0D74DBB7E6598BC42035236269EC6709787E9D4571B75A3EECBA676085A60640F71C18F4BD5C2C4A7152BF5505B958707243F5167766B524521E4A70162F928613107ACBC7E29586E2B71761B7A71D933A156EA0C0D88F4EA8A20BEDFACD4A7888D8A124E8D0365437F948123A412DAA173A76DBFF0DDC7D687D10F0D88D79965E83F077060988E7DB4D9C86EE343C565CFFCD947AC0A6951076E98A17FB0A3016F954E999DCA889F2A549AB44761D9D02F6120F027C47EC79281E945DBA9F88D5771ADE78095D3A78320B6480733AE2E56C36F251EE90A52CE672633D34FA4868581EF156DE70C297DA5DB7C07CA867E3B4B7DE2EE3DA68DB895782440E6CD83B6D3F3BAB735D80E4256FF436B687B77DDBEFA25217D25DB4407FA7F5EFD0AC076126930F0F7A2EDEC0880C3EA4702A4FF3E446CC1614F9F40330B2137600C6B8A6A978C03565E9F09C662C1DEEE336DE7A428FA910129E5F45944629B797A80DC53B06B226B7045314EB58DEE8095D3EF0121D2093C641631BC2A880CC8FC5C36AB11AF8E6ED756155C1A35EA63855B57799BABA8A34D1C5894DF7FCF1E6E783FAF34A992C27EE23E389FC88078622523B39640FF26552808179B15E732317D259CB8036543BF9801C1D56BF897A65D1F1FB5B05800B1F2D91298CDA8C90CD1FE85C6869EFD672F7F566E0E8A60F24AFADD0E2C9CB1CF38B731661503BB8B79C36C99D57AE0ED0E36CD27164064978CEC4F3986DF936283A184033950CE67E7B0D0AA38038930D1B1C54AEDE140896D213816403CDDB2A13FC380E4620BCF35368CDD7FF6F29FBE15B568D5BE790E2C3E69D2D8F53BF43C0D606FA92C1878B618D33E97B101523232D790DC46F0FD5EAA6549A54EAAA474CB797D16B3DC53CFFE3AAE316DE73FE2A8293640CAD3261ECE9AFB581C496D5583B1DAAC3AFB8BF6A1C4251DA092A13F4D4056B21366F7F062754D2C5F78C4068857B095D39F0661A264F15126BFC8E6A5D48773C03232170274C5707151FE9E81A78BB633298AC6E0B6B10252925DB37720EFD7D9ED985C5CF674A8EFFBE3324EE90473A09C9FA8BBECAE2460FB602D0346875C83776BBDC40A48D9C87C92413F0D5852F070C2ED66C59916BCA16AD12C0744D7DD1D54146BFCC9E2D2BA370D23962356407A7F66E5F57BC0829F0FF497AD01D3BBD4A7F0B19C04D222D29FB4BF933FE35EB3EA9C1C673DB10322BCCFDCE0DAD73636F44C562F0FE33C1DE2D75A38E3C0718DC6FA9590FCD2A23F6D89FD2D630724C9AB0840379A764D663F89F8CF9511A968E5B33782F91CF1E205AE1E5ECE2280247815F166C49C6556EADF121F00D5416007CA46F62C062F09DC30440389AB871820C95E45B00EEC1EA3D6F20D7156093659307DE201ECBA0F31B09360377DD242570F514092BC8A30E3477FFB9873CCBC7970C507437530AC03774C9DDAF1F2E85F7BDF411D396C700C0152570F514012BE8A78732AAF2FDACE7931F8AD24223A5036F4EB18F85A44197FCD05AF1EE280247915F18A71992FE9AED6E7F9735645493820B908F596F295BC7A8803D27B153132DF05E8F31283B1254D0549524E6FDE4F2997994144B726950103DF2DDACE1724FB13798A3538616B7A663FB8F484E0CA279BF9A3B64F903C65B6AC6DE5B22780C4B6E5DB52A7AF77B83878D632E759C96AC501F192979F5EB9B945C438B5A036E1913C77DED1B672FA9120FC2891CE063A49681A7622802C9E3969ECFA377ABCAB88E867CE9B0E904B746477A526FB097EA26745FA3A4BFA3ED37380819ABB61ECC1494C9E4B0410AFA892A1E709589AF410B34BC71697459F7A9974DEADD05FC9C89E4BE04549E74A4CF942B56627D16F6280F4FFD4BA9381539228EC5D7D84DC233BF13C5BA8432B9F9D07E66F249D320377156DE7D4A4FA4D14102B9F3D18CCDE4FADC40F667415ABCEC2C43B6EC30E9B050701DC70B543BA97AD969F52D13F6E8902D27B154960458BAD9D93EA1170745A9B05476FE6C473CC4AFDBAE855F857481C102F35D10D1B87A99D800749D3E6762D5DFD947F9B54A4F76D95EBBADE9E94C736C70DAE9A76DD48BAEFA600523632FFEA020F89AEC638B493AF03986BDACE82A40D6FC5FE2C43EF02707992EFB236F1696DA303C7CEBECDF963D2FE350510AFC8663C1EDCDC5CAE6A1AE6762DADFF3E69E35BA1BFF9B9097B10755C4EE0A64E6F26A2130B95DA8A6678D634407AEF4772FA5C263479CD5D7E11A02B4DDBB9A9190390D63ECBB9CC394CDA0500EFD6DC1C69AE69D7A4B61B1FB6B4A602D27B3F92D3BF0F42628FEDB6EA08E15E80AE322BB5278775AD8D03FA9F345E08E0C4669749A0EF17ECDAD466E6D174406ECC4DD8632369DEE5739F661AD1DFB70BF095A336F45CF5D5E56BFF91827C124B61D1D4F1EFD9D839EA4222BA40724B02BF0579CB8732BB277757D7FCCE6F1B89B8A603D27B3F7246E613D4417701F8804491813509ABE1E226B3EA24325D34707E3137E8DFE9C99B379EE8A7404394F11C413BB560AF5E1B73A981E552018897F5FC7CF6088DF93EA9FDEA023BD3D76015184BDA15142BA7CF04612680D856220CE9F3E066EB08DAA16980C34B2A35800C82E4D1184C8E5BA2AD40492918BD6346D0F64D0B1CA90324E5908008BF7681151DC4F7752DAD27FB797744E4174CCF7CAAC174A2064C61C6C722CA89344F1B1CA90424ED900C3A331C80EF735D5ED1BD6C4D62DF06053933E74F9B7090A6D11480BC27527A90B649C7A6118ED402D242900C9C476B005E09C6CAF76CF3F68A2F7DE7577F4FFA04F3FAF39E4435468D3AD2EDA0230938022CBDD27E3C5512F161854A7D653C6AF1AAA4EA1E64D3D2FAA7EBAE89B764713517C42B99E9010DFC58833A5FE8AEAC7A59A2D705674CFC0077347603E81000C730704C1A1ED106A935ED93DA520D886774D998389EE18ACE3B0E32A021633712F082CB78B1F74FF08B047A95C0AF326B7FD1985FED40E3D5516F8CF90B76057A36BE3DAED1E878AFEBD27B89DC71CCF45E02BD172EEFE66D7CA9117AFF04D019329F5434234D3BA2B074F58F5391CC5692483D208320F945CA1E01A7795C539D1B01EBA1699F4E3B1CA9BE07D97484FBAF24DE7B928FA47AF45572433AC0C02B9AA69DDE0A70B41420035712C0BD4378375D758ACB39F03C88CE6CA5EFDD5AE227D6E0F1F2AE24807B0303C7C98DA3528EDB01061E745D7C6DB6F03A5671E7DD72800C1850CAEB57112396AD7EE33655E96DE6C055A6ED785F08B7DCD1B280784E5BB9CC190CBA86081F6A39E74744C2FCA2063ABFCB76BED7AAE5B634209EE90BA64DD887B58EAB191CEBDE74AD3AA069C99B40F7B8E49E5FACD47F95969CC2E4D1F280BCF393CBD02F21E0E23026A836F13AC0C0A545DB497CCDAC78ABE8536B1B40BC624AF9CCC9C4E4ED113259C22CA5399C03F41326F7FA62A57ECF7091ADF2F76D05C880E965235B74C1E711F0C156198816CFF30F04BABE60D74A2D5EC766E9B725205E95D7E526EEDE49AEB7CB91B7648D3AE41C58C0DAA8EB8A4B57BD28D745F394DB1690014BFB97E6F74099D23C9BDBB2E7152ED175EDBE7A7EDB03F2CE4D7C2EF32522F2E65DA7697A692B92B38A801B0BB6F39D564C3E68CE23069041579434CEC30E3A6ECD886FAB69C77E0D1C71802850FC9E1AEFC48D483006AA1FB18028508605654483A100D9E4FCE8DD018B3185095308D87ED8D3A73D035E27D00A1056142AC9ECE094761B47FC1564D3015A3475FC2E1B3B474DD1884EF06001634CDA0731527E8CB799B0420356ACDFB0F1FEF397AFFD5324BD366BAC00196240BD7729A3B5C609CCDECA206DF798780531AF703B3A57B4EB3B8C38585580F87471616EE2EEAED6389C990E07D1E160FEA8CFA669097B0EE01F11E171977A9E282E5DDB962FF6E2365B0112D2D1F219FA44D6F828263A9A184780D2F6538CD7F7AEACA2E1819E061E6FB5894A218725F6660A90982CED5D5B18EE9E60DA8B813D89684F30EF0560DB98BAD89ACC5B207A9E997FA3119E67F06F883A9E6F9539DFC2DE4496578044B67068816FCED03FB8DEA5BD3C78886977067604680766DE51D3B0033376ECFB7FD881B8F74F30E13500AF13F01A115E735DBC4E44AF01DCFBFF98F80517DA6F58E3E79BB12D99B065A992FF7F4A971C6EAD76DC320000000049454E44AE426082, '1', '2023-09-12 18:09:42', '1', '2023-09-12 18:09:42', b'0'); +INSERT INTO `infra_file_content` VALUES (35, 4, '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000019F449444154785EED5D0B9414E595FE6EF50C43565716CDC6B8E6E4A1465694AE1E31AB4665D1043446A2EE1191AE8118F1150D5D3D681643B2863D2E9844C374F7C871216A0CD3D560262F1E9A08AE01D14497205D0D6AE0C8C64DD63CD4637495EC00D375F7D43028E0305D555DEFFAEB1C0F72FABFF77EF7FBFF8F7AFEF712C42118100C1C960112DC080604038767400844AC0EC1C0300C088188E521181002116B4030E08C01710671C69BB04A0803422009996891A6330684409CF126AC12C280104842265AA4E98C01211067BC09AB8430200492908916693A634008C4196FC22A210C08812464A2459ACE18100271C69BB04A0803422009996891A6330684409CF126AC12C2801088CF135D9A7D52DB5FFE386AE4A8917BDB8CBD465BBFD4321229A30D756E932835D2846370BD0F29DA8DBAB4BBC5E8EF935AA5DD6FF6B5EEFEAB0FBED997EB7E71B7CF90131D4E08C483E92F4C3FED58108D212975328031C43899C16300987F6F967326603B403B98B00330B69B7F6F256CFF624FED150FD249B4CB66272BD1E4ED4FBED4913E8F992E06700133C610615440C4BC0198A2C1E344FC48AE5CDB18108ED88415027130955DD34E3B454AA5CE23C2050C7C16C0910EDCF861F236010F33E371A35EDFD8F9D0B617FC081AA71842201667B3A4C8930DF06708741E80F116CDC2366C3383374AA09FE6347D6DD8C085118F10C830B35252D267317009489A02E6741827D03126A21AD8584DC09A9C567BDAB19F981B0A811C32C125A57D2C832F01F11430CE8DF9FCEF4B8FF024985613684D4EDBF27C2272B698A410C82051C56CE652483C0B8C2916B98BE730C66A80EE572BD595F14CD05E568917484191A711700D80C9F6A88BFDE8B520DCAF96F5EFC73ED361124CAC400AD9F44C22CC026842921740C3DC9937EC3BA3E83D0DC7C67040E204525032D7117816803363389F5EA6F43488EF57CBB5FBBC0C1236DF891148B79239C720631EF6BDD013874306CCF72A75D09D9D5AF529872E2265167B812C9A7AF6FB5A46FC651E03F30048919A9DF082AD83B0F0A89637177EE1C197FAC20BB37964B116487747E6B2BA617C9588CE689E2AE16108063649440B6797AB3F892B3BB1144861C6F80F4B46BF79D6B821AE1317A6BC1858D25AAF2FB879C5B6DF8509971B586227909292BE8241DF0470821B04091F161920DAC930E6E6CBB51F5AB488C4B05809A4A8641602FC9548301F5B9074A7AA55CDFBBD581CB110485736939188CDB38678D917826549C0A375A6DB3A2BD56A08E0340521F2022964D3B388E81B00DEDF1413C2D8550618784D02E6E634FD01571DFBEC2CB2025972FDF8D6BE5D7B0B00DDE43367229C3D06168F3CA2A5F386A59BF7DA330BC7E8480AE4DE99F2F17BEBF420833F1D0E1A058AE119E0C7EA7BE8EA39BDFACB51632A720229CD94DB616005F3C0FE6E71448501C60E3270556E85BE252A904D9C9112487756BED020982FA506AA7F88236A0C701F812E8DD26EC6C808A498956780B02C6A4B42E01D8201C6CCA87C1D1C09819414F91606EE168B2D460C106E51CBFAA2B067147A811415F94600F7869D4881CF0103841BD4B2BED481A56F26A11648213B6E0291B4C137364420DF1920E20961AEDF155A81943ADA656623F26F627D5F71110CC8A9949C5FF66C2D8CD0432990EE19E98FD50DDA4AC01161244D6072970106DEE23AA53B57545F72D773F3DE42279045534F3D3A35A26535804F369F9EF010150618786A041B536EAA6CFD739830874A20F3274E6C197DFC9F7F0CB3589B3892C70063F5717B4FBEFCCADEDE7A58920F95408A4A6631C0E2DBAAB0AC8E60702C5635FD4BC1847E6FD4D00864F0ABDC4455CC08CB22081B0E026685E52BE0500864713693E927E331808E09DB64093C01304078D530687218F69384422045457E546C760A60218638A4B9E92AA7E917050D3170811415F94E00B7054D84881F460682DFBE1BA8404A4AFB150CA3378C532330858301024FCD69B51F0485263081DC9D6DFF482B198F8BEA23414D7D44E29AD55268CF05F99EE77F1B04E2C00452CCCA4B40B83E88A445CC683160D6DDCA6BBAF9D1AAEF472002292AF2E5007EE47BB62260641990882E0FA282A3EF02316BE54AADBB9E10E54023BB568302BEE9A8D6D113BEF0E07A5F6B01FB2E909222DFC1C0D7826259C48D3003843BD4B27EBB9F19F82A90811604E0274495F58129367B9AEFDCF71FED643676B224ED4C319F00A213C17CA2C17C2299FF0F8CF673518437169955E527A8E5EA2FFCC2E8AB408A1DE98713DC9F631703BDC4D42BA58C1766F7D47E6375924BD34E3B915B5293065FA69A7F86B52FBBD5949C8F637E44ADD4CCDEF4BE1CBE0964B0B353A8B7577AC4F82626EAE57EF4BAB1DF61F1D4B147EE6D6BB940625CC2A0EB3CC21C6EB7C4D7F9D5E9CA37811415D9ECC59DA0B667FC3D22A93757AE3EECD56ADB77C96ADC0450D6AB1821F5FBB4AAE967FB81CD1781EC6B9849DFF323A1A06310F09C61F0D7F3CBFD6B03704F47669201BE891997059DBF6FF17D2A1DE48B408A4A6603C0B1EF266BBED06A93F8F62FF6D45EF16DA11C10A8D091F932317F2B88D8BEC764DEA0566A13BD8EEBB94006FB90AFF03A9120FD33F05F12D3EDB94A550B128719BBA0C81D049815D55B83C6E2797CC234AFFBB87B2E906256361BD29B4F5EE27AFC98A5967CBE677320DF0A0D45EA3D33FFFE98FE7A9B4EC0F171257D30AFB5AAA65FE8658E9E0AA498CD5C0AE2D8367804F0CC916D7D93663DB0FD2D2F27C9A9EF82226F26E074A7F691B063E332B5B275A55758BD154887BC0A8C295E810FD62FFF5632F8C2D9CBB7FE3A581CC3472F2AB25925E46FC28CB1296C8CD56A45FF5C533E8631F64C2025A57D2CC378CE2BE081FA65F483F82255ABFD47A0382C044F42013E434A8DEDEC79F6050B74D81EE299400A59792E11CCD668B13B98F8F3F9722D3295E6E35F199FE6AA5AD593A7779E09A4D8216F04E3DCD8A9033C4FD56AE63661570FB3B73B73FD84542B3D97FBEE96575D750EA0D42177332334E574DCCC8F808D394DF7E4358227022929E9B318F44B37490889AF6D7F7E7974FBFCF5EBFB9BC553CAB67F9A6164413803C04900DEF78E4FC6AB4478CE605EC7293CBDA775F7A6B94D3E082829E90F316823808F368B3D8CF62CF159F99EDA336E63F34420856C7A0111C5A657F67ED209B835A7E9DF6E66124A8A7C0D03E6A7219FB2E1E7F7605E6A48AD4B3BCB9BFF60C3EEA0A1F16E25C10B54ADE6FA360A4F0452ECC8E8604E3B9DC890DAFDCF5EA3A5FDD6E59B5F73826F5F2F77633E40973AB11FB47919C477A9E55AD1A98FA222AF01E0DBD7B04E71DAB663AEA9959A6CDBAE8181EB022929F26406CC3A57B13A08F8B79CA6FF8B93A44A4A266F30CF27C22827F6EFB161FC50ADE85738F155982E9F4B12CC4BADD81D4C34395FAEAE733331D70552CCA60B2052DD0419025F6FD52975FA9CF2B32FDAC552EC90E780D1D465D99031194BD58A7E835D3CE6F86256DE088ADF03140617F25AADD3092787B3715F208A6C36BD71FD54E766D2767D11E39E5C459F6DD7CEEB7AC34E6BD896B299054C1CBB7B4400BAAAE919BBF334DC7857055298797A9AEA75DD4D8061F0E5A44D5869467A0A1BB4CA6BFC06E8DC4EADFA949D38DD1D998906F3CFEDD844652C1B7539BF7C9B6BDDAADC158822DF4231EC464BFDF593720F6D33F78F5B3E8A8A6C3601F2A1CF09AF54B59AED7D20454536DFB5BCDF72425119E872F75C570512D72724C7EDD9DB7665EFF37BACAE11BFCE1EEFE0215CA396F5EF5AC537781FB21C84ABECD84464EC1A55D35DFBFECF6D81BC8D18F6152448A7E6B42DCF5B5D20FE9D3DF623A295AA56B5751689F1E6AA5DAAA6BB56D4C23581C4F5F1AEB90499F9DA7CA576BF158104C4C3DBAAA6FFB5157CFBC7C4791BB49B8F7B5D1348B1237317986FB5334951194BE6673347BF7D7EAEFBC5DD8D301715B9074047A3716EFF4E863431B77C8BE59EF285AC7C21117EE6368E50F863BA5BAD54BFEC0616F704A2C8E67730FFE006A830FA30B7B1E6347DD670D88A1DE96BC1F49D20F0DB6D1310F3CFE0FF53D574572AE8B82990786FCCD9B7EAD74A40CF6C4D2F1F2882C1C7DB66A5FA9B8310871993886FCA956BF75A8DBFF8EAB11FECDFDBEAF8BB2EAB71021AF786AAE9AE54A374452085E9A71D4B52EA8F01911144D85D005E21D01F197C028063830071504CE6F96AA5F6AF56713040254536AC8E8FDAB811121FEB4675197704921D378148B27CFD1B35B2A380970837E6CAFA12AB584BCA994731FADEB43A3E6AE39CBCDC1D2A47570452ECC85C0BE640AEBDA336715EE1B5DB3F63707FC8EFBCC213B45F89F9DAD9169F3C0E87D52D81C4F60956D0136D39BEC4E3D49EDA36ABE3BB669C7E8A64D42DBFDBB1EA372CE3087C574EABFD73B378DC1148565E058A6BF5926629F6C5FE37AAA69BF742968FC28CF4996490592F3996078356E5B56A337B6F06787147208A6C96BE19134BA6A39014D37D6AA56AABD27B292BFF13137E1885F41C62FCB5AAE9A738B47DC7CC2D8170B34084BD730688A549B9CA96C7EC782876C84BC0B16EA2CAAAA64B7638196A6CD30229CD3EA98D5F3FC2D7BE71CD261D277BA77B558A8AFC12808FC4898B4373A1D7778DCCFDB4F1D70FC371D0B440964C1D3FAA6F44BFD94E4C1CFE33F0524BBD3EE1E615DB6C3D8D1A6C85F7A4FF70FD8D4818392AA73DF3BFCD446D5A20F7CE487F608F417F6A0684B075CA0029AA56ADD8B52E7664E683F9EB76EDA2369E46481F68B6C658D302310B9E91D1FFDF51232FEA7819F84A5ED36D57AE5C34F5D4A35323525B00FA70D4396884BFBF5EFFF02D36CFAEEFB94C6B14A4D1EFC56CE6E320DED1689CF8DD1D060860B034D9EE4DF9FEE82545BE8563B8EB7328765B28F5F19B1D14DA38D057D367906E65DC3803926B7B80DD594631F54258DD62D0ED3757AA66610CDBC7FCA963478C1ED1BA05C058DBC65134B0F9F274A8149B17C88CF6330CC3D81445FE2284790D19BC34B7BC66EE73777C943AE41B98F1EF8E1D44CD908D33D4CAD6CDCDC06E5A20712E44D60CB14E6D19788D8057C0FC2A83564AF5FA2ABB0523868ADD7555E6A3526AA092492C6BF30E95B3043A77B6CD8A2FAEDF8308813895C23E3B029E62C632C0D8DCECBF76C3212929F27719B8BA39B4D1B20E8540BAC52596F35563730F87D340A56CE66A26B655F5C469AC50D985E1124BDCA43B5E123955D3BB1D5B5B345C345D3E3525C12C589D984BAB77A809C34DBA78CC6B71A51E3C6CB3AAE9665F104F8F41717C3F314FAD0E6133148F79C58B42076B9CB0542D3B2B3C6D355AD2C561F2148A1785E25313AB4BF6DD71760B2CD88D3058B1C4FC042519EF3B0E4350283E35111F2BDA5DBE8041747E67B9BADEBE65638B8292B98EC00B635977B771FA078D08C5C78AE273779BB3066F04529ADAFEB7DC5A5F08A26BED238AA745283E7737A92D2AB2D83065638DB97D0631CB884A447338667D596C503AD4D0706C981A1488D8726B6336DD12C840A75C32F2B1EC396883CFA18612F0EB5C68B6DC8AA20DB6A6B31981989752465BFD6C32A4292016975387BB4107ADCA85A668438C0B57DB5AF91607DB154857476622019F00F813609C4F716C7C63913BABC30874574EAB86A4EC8F281C6775DE06C639118814D39669B688B33398F83AB55CBBCF8EC9612ED59A75011444E9515B240A81D8A2CBD1E050951E4D60F16A4793B6DF4808A429FA2C1987AA78B589B89095DF20C2284BE8133E4808C4F30510AEF607838F7A63DD40C7CD2915027193CD217D85AF814EA143FE0631E67A9E7A0C020881783E89DF5035FD2B6E44697ACBED7E10E246DDFA74088158E7CAC948B76ED0CDD8AE0964F032EB2D00AEB5E075424E146C089895D3F407AC622D29F2350C58EAB26BD5678CC7BDA56AFA516EE5E7B6401E0270A55BE0E2EA8719F7E42BFA6CABF915B2723711BE64757C92C711F0504ED3AF728B0377059295AF07C1721B30B792889A1F02F49CA667ACE22E66D33A88D256C727791C81AECF6955D7BA9DB92A90B8772D7273E111D1B25CB9FAF9463E8B8ABC0CC08C46E3C4EFFB18900CE394D9CBB79A1FCFBA72B82A90C1FB905F0118EF0ABA983B21E26CAE5C5B7EB8348B4A260BB016731A5C4B8F997F95AFD43EE19A43B76FD24D600525DD4520F3136C71586180B09A997EC6467D4BE7F2ADBFEC9A3EEE6C9252ED04FE0C804BACB8106306192074A9657D8E9B7CB87E062929F264061E7513A4F02518B0C200134DCE97ABEBAC8CB53AC675810C5E6699C5ACC7590521C609069A6680B9A6566A72D37E0E71E089400AD9F402229AE73658E14F307078067881AAD5BEE636439E08A4A4A4CF62D02FDD062BFC09060EC7004B7C56BEA7667E0FE8EAE189404C8405457E9280735C452B9C0906866280F1A45AD1CFF3821CEF049295E712C1768B302F92143EE3CE00CD55B5EAB7BCC8D233819494F6B10CE3392F40C7D0E75A80363358377323900CB0F92E69720C73753D25434A8DEDEC79F605D71D7BF11EE440904545363B228967F9C3CDDC302D1092D28DB6A9854D58AD96F5CF35E5631863CFCE2066CCAEE999CB24897FEC15F8A8FB35A8E5EF3ACB9BFF305C1E5D1DE38F93B8FFF751CFD533FC4C97A995EA4AAFFC7B2A101374312BAF056192570944D6AF8DE6395DD9F47C8928F67DCD1DCCE55A55D32F746067D9C473811414791A012B2C234AC8402229932B6F19B8E768747465331989D8EC4E2B8E0319204C53CBBAD9FFC4B3C373810C9C4594CC068027789645F41CDB2E2A208A621C32C9C41BD4726DA2D753EF8B40CCE2CA44F43DAF93898A7F02D6E734FD7C3B788BD9F47A10FDA31D9B588F65CC542B7A8FD739FA22907D6711F96900677A9D5044FCBFAE6AFA3176B01615F97500A3EDD8C478ECD3AAA69FED477EBE0964B0B1CB523F928A440C1B0D261729E3C6A520991F808AC364C0A5B2A256C8F44D200367918EF4C360BAD80AB0D88F21BA572D576FB292675191EF0570A395B1B11FC3FC885AA97DD6AF3C7D1548B79239C7003F61EE8CF42BC130C7B1F206587C9170E00C521D84096AB9FA0BBFE6D5578198499514F90E065CFF2CD92FC2DC8EC3C094BCA69B7DCCDF7394A6A7A7B044ABDC8E19597F843BD4B27EBB9FF87D17C8A2A967BF4F6ADDF5041179DE27DC4F229B8AC558C7C4CF99DF63997E24F078663A55BC603D88D54D47B58E9EF08507D7F735C5B54D63DF0532702FA2C89703F8914DAC6278821990882E9F5DAEFEC46F0A0211C88048B2F21210AEF73B61112F7A0C30B024AFE9813CA4084C207767DB3FD24AC6E3004E88DE9409C4BE3140B49369CF05F99EE77FEB5BCC03020526907D37ECED57308CDE20121731A3C10081A7E6B4DA0F82421BA84006EF47EE04705B500488B8616680EE54B56AA0C53F0217C8A048CC3A5A62F75C98D7AACFD8087834A7E917F91CF63DE1422190D255723BA7781D40B6BE4F0A9A3C11DF230608AF1A064DEEAC54AB1E45B0EC36140231D116B2E95944D474DB5ECB998B81A165C06EFF142F13098D40F65D6A6516036CE9FB242F4911BE036560B1AAE9A1E985122A81CC9F3A76C4E811AD8F00F854A053248207C4003F36F288D68B6F58BA796F4000C2790F7220AA9292FE1083CCF7231F0F0B4902870F0C3076D45B70C19C65FACB3E44B31C22546790FDA8BB3AD2A74B06FD028436CB998881116680FBA84E9FCCADD043B7EF3E940219B81FE9485F04A69F4678D605748B0C30E3A27C450F65CB8CD00AC4E4B6D4919EC92CF6B25B5C67D11CE6D3DE72A7E4845A208367925BC17497D304855D781920E0D69CA67F3BBC085DEE93EE55A2454536BFE434B79D8A23260C10E1C65C590F7D47E4D09F41F6AF874276DC042269434CD647A2D320E209B9726D631448888C40F6DD93B4CBCCC693008E8C02B902E3210C10DE2248E759AD281906FE22251093B0EE19E98F190695017C320C040A0CD61820E0A97A9D3A3A57545FB266118E5191138849DBA2A9A71E9D6A6B79108C29E1A051A0189601C6EAFADEFEABE7F43E6716BF8BD4114981980CCF9F38B165F4F1AF170112DF6E857BC92D3E6ECFC9EA95BDBDF570C31C1A5D6405F2EECDFBC057C066ABB7F7477102E28A9981D724606E4ED31F88728E91178849FEE26C26D34FFC4DB1E92A1C4BD1DCEC5467BA2D0CFB399A65241602D94F425191C5F6DD665744D3F6C16F936D3A85031CC44A20665E838520CCB389A896E2E64A69E48B6827B1715B9005161A4174F27BEC04629230505208C63C5177CBC992B06F63D6AD82D4B230DFB33990D23CF6115BB788A5400EB8E4BA9C99E78932A7D61784CD919B24A28541543CB489D3F1F0580BC464C5AC05DC32E22FF398F155B301B963A684E1810C180C2C1CD53A7A81DFB572FD9E86C42C18B3F5421DC65709F419BF498E553CE6470C9216766AD5A76295D76192498C40F6E73FD8E96A966807677B793FC3A0FBF35AF53BB62D236C903881BC239481C6A2D22CD17DB7D1EAE527C0749F1F0D331B2109E2F7C40AE4DD338A3C8D18B3442F8E83971F33D69184FBBCEE431EC4A2B71333F102D94F56D7F4CC6592C4E6A5D72576088CDD58C26A1874BF5AA9AE8C5D6E0E121202398434B327A0C1C61410A610708E034EA3674278920DAC91485A9DD3B63C1FBD04BC432C04320CB725257D96C1984244E667F5E3BC9B86003C13D5D830D64884D539AD66F6B017C7100C0881585C1625459ECCCC1783682200D9A259D886E9605E4F448FE4347D6DD8C085118F1088835929CC3C3D8D7A7D1201E7033005738403377E98EC02B09E819F23955A975FF66CCD8FA0718A2104E2C26C0E9C5D882681790233C61061940B6E9DB87803C00E103D41CCEBC459C2098507DB088134CFE17B3C14A69F762C88C68052A6584E86C16360FE098C7129DC76307640A2ED80B19D0DDE01E6EDF9E5DBFEE4927FE166900121109F97C2FCAB3F3AF2B85DC7B4FD5FCBEE9168696BABEFE91F39A2C56883D4D256EF37469A70522D521F8CFEDD06A7FA3895DADD86BD7D525FEBEEDD1F7CB32FD7FDE26E9F21273A9C1048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CDC0FF03B3842241EA0172F60000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (36, 4, '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000011A249444154785EED9D7B9025575DC77FA707115FBC7C20220FE565DC6C774FC000F2C826A2F24EC09D49A6BB27A080F2C8CEEC04F0C56377799BC0CEED9EE5FD4AD8B9B371B72CB5B4A4D0D24428A580D29D996543298525149496965A52505090E91FD57D6720339999DBDDE777BACFB9F7BBFF6CA5F69CDFF99DEFEF7CF2EDD3F7DC731535F8B39884873CE6DB1B7445177715B87DBEBF7695BBE937CB5C35E906409AA8E67C1F0052B58400A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5D306A4178553E4E5F9D1E5F53F7145191C3571A552DDE7A90548164F1E66CACF11514E4487E7FB6B7FDAFD9486670040866B841603051A0392C5FE6122759689B6D6DB5D9E5253479657FFCC76715B072457EA4ADB45417EBB2BB0B0BC7A475D6D0A3898D459FA3E1C5B21BE439C4FCDAF5CF8F3BA31DB6CDF3A20F3FDB54663B6290AC69251A097F8BFA172758ED4F79C635B6026FAB6E7F1E1B9D3EB7F2133A27C94468B5567930E40E48B6863C4120E2E9DC31B92DFB79868EA687FED2F6D9C0700B1B12A8EE79445C10B5851B1211F06C7D64CBF499E3A3C7F7AF5AF6C9B3A00B1AD228EE7B30947E11C1335A7F28D9CF2A985FE858FD5EC67B43900312AEF78054FE3E0F944A573D485634BA8AF7B4C878FACAC7DDC16E500882D95703C8F4D380AE7B897E654BEA688A6E6FA6B7FAD1947A43B00119171BC8308C2510AC944FF4F4A4D1D5D5EFD9BAE9505205D57C0F1F19792F09A8D9CCF29A5ED1CDB945044FFC7C453F3FDF5BFED522200D2A5FA8E8FBD38135EE3795C3C56FD80A1A9FCAFE7F1D491D3EB7F6728FED0B00064A84468B09B0269145E4D8A8B0DB929383687E5FF215653F32B6B9DDCC30640B0FE6B2BB00947E11CF7AEDDB9490745FFAD94373577FAFCDF37E9AED30780E8A837867DD3E8E0D5A4BCF6E0D8F211A2FF2ACE6E1D5DB9F089366507206DAAEDF858BDC47F1EB13AA7DA728E9D7A29FA4F453C3DB7BCFEC9B6A404206D29EDF838051CAA3895CBF4831D4FE53F3C525347FAABFFD0461E00A40D951D1F239BF59FCB1BE5A9DCAEE1D852F2ABA4D4F4FCF2EA3F9A9616809856D8F1F8D98CFF5CF2CA2F3BDDC7B2A97C25CFF3E98533173E65322F0062525DC7631770B0571E59178143115D64628F485D22238DFAF284974FDF707AFDD332F1EE1905809852D6F1B8BD38788E222AE0F82189A914701079D35E9EAB0DAFF8FC440A12FA92629A9E5B59FB8C449EF77C2FD0202ABE30D5403487BA988263AE7FFECE42865333C101514898FE9D959A3EDA5FFDACB4CC701069451D8F9725E1B399CB4FC8459D630B8E2D79C42121FA37E27C7A7EE5C23F4996008048AAE978AC4D388AC7AA1F9698CAD663D54E388C41C2FCC5DCA3E985E5F57F96C8BF880140A494743CCE62123EDBE3F2E0612B707C0F9217060736EE12DD937C416DD0B573B7AD9D972809009150D1F11869143E8B5409C78F484C659873EC1C239DF52FA5BC782120B47167FA57E579D373CBE7D774E70340741574BC7FD7706CC9270E09D1BF70BE317DF4CCE7D6754A044074D473BCEF523CF9CC0DCA8BB3559D3887712721FEFC06F1B537F62F5C685A2A00D25439C7FB2DC6079FE951792AF74725A652F7B16AAF310D38C99D13394DDF7066ED629379029026AA39DE274DFC6714A7726D83C3D4E316135DF4C89BDEEB6DDA7EE504208E2FF6BAE96FC25138C78FD5EDBB5B7B29E7B87BEC34098F13F33189FCCA184A9D985F5E3DDE241E0069A29AA37D0047FDC20190FA9A39D9A31705BFAE5471F090EF2B310113CED18B83138AE80D12F9E93AC7560E8D00594AC2433973A32FD1E3F26AB1F2570E3480A33C78682D1C591C9C60CBE0289FCE2AAB7CB78600A4896ADDF4C9E2E0D778701DA8B570A451F04652F47A318534F61C3B7300206255B12F50010711155F76BA9F4476261EAB6C86030E22B16A2C8D51C091139D5516C3D18B833729A2D7894928E81CD8838855C5BE40BD24FC55353878787F89EC4C384716076F62CBE1808348AC1ECB62B800471AFB6F2652AF1593CE8073C041C4AA634FA02C9A7C3AABF2A796AD750E97E08083D8B3B6B533D984A378AC7A8076B0C1EBCDF23BE44D8E67EC357E2FF2DFA294FA4389FCCA18069D030E2256A5EE032D46079FEE0DAE03B5168E2C09DFC2CC4EC10107E97E6D6B6790C6FEAFD0E077C81FA81DCC9073A471F85622FE0389FCDA720E2D07C1AD2662A5D60A0438B4E4ABD4B9D1078500A492B6461B2DCDFA576D6CA8E2979D2C768EE06D44F4FB6242B4B0E7D8992B0011AB5E7B811667FDABBCBCD873F08F4B8C6A62439EC6EEC3D1780F0207915896CD62A45170E5E0979D94B570F4A2E0ED4AD1EF359BE12EBD3A700EEC41C4AAD75EA0011CE5A9DC9F9018D58473F492E0ED8A47030E3888C42A6B29460107ABF26C95B570A471F04744F4BB629274E81C7010B12A9A0F547EBD80B8F8F19A9F9418CD84738C221C701089D5663846B9DFCBF92C297BE1E8C5FE4D8AD46BC4A4B0C039E02062D53417289B9DBC8237F2E2979DAC758E2CF66FE21185030E626E6D6B47CE6626AF202F2FBEECF453DAC14C7D421E853793E2574BE457C4C8953AB1D0F0F611A91C76C6C1E720A694D5885BC0917B79B121B7178E24BC9978B4E18083682C62535D7BD1C1A7A9C1C1C307498C616243DE8B837728A25749E4573A07AB130B2BCDEEAD92CA61AF387010D30AD788EF021C591CBC8345E1E0130B2BEB8D2E75AB216DE3A600A4B174B21DB3C47F2A0FAE03B5D639D228782729BA516CE6CCC7E757D64F88C5331008801810B56EC84D388AC7AA9FAEDB77B7F6261EABC6110EEC412456A3668C9389FFD4092EBFCF013834B534D11D0E6242D58A317B33C15394579EAD7A70C52EFB3633E21C497092981624F22B6338F05875F7B90210B1CAD70B0438EAE9D5556B00D281F24B71F8E4F26C15D1CF480C6FC2397AB1BFA8481D95C8CF45E7D89A3700115B01D5022DC6E1933DCBE1C8627F910147595000526D5D8BB44A93F097898B2F3BD9EB1C6914F648F1BCC8841DDC73EC9C3700115B09FB07DA84A378AC7A88C490261EABD224EC11030E6CD22556688D18051CCC5C9CADB2168E5E1CA48A68AEC6B4F66FEAD8DBAABD260307115B11BB073A3533F9A40D2F2F9CE367258632E11C591CA40C38762D0F009158B57BC4589C39F824CF2B0F1E5A0B471A0719111D119361449C036FB1C456C4EE81B2D87F225379B60A7018D6DA6478388801750B388AEB4099E8A112E14D3C56F5A2604929BA4122BF32C68839071C446C656C0F54C091932A36E4D6C29125C11233E0A8B204E0205554AAD8A637EB3F410D6E3C7C58C52EFB3633E11C691C9C22A2574AE437CACE0107115B21834003388A83870A70086BDB6538388880FA59145C5EDC78C8440F170867E4C76BD2D87F17917A85447EE3E01C7010A19552C051DC784856C311BE8B889D83238DFC634DCB24F54D453848D30A10D1C928B87CC27638A2F0DDA4F8E51AD3DCDEB5C5B755591CDCCE44876AE72E982300A9ADFEE69E230E7F490D4EE53EA261886DDD8C6CC893F0DDC46EC25188034024565607317A2EC01107EF21A29789C923F87FE5AA390190AA4A59D46E6976F2F1F9E03A507B9D6304E0808358B4E8ABA652C29197070F7FAE6A9FFDDA9978ACEAC5C17B15D1EF48E4D7F5DB2A38885815CD073A79DDA58F9F9898B01A8E2C0EDECB2302071CC4FC9A161B218D0E3E8E06D781FEBC445013CE9146C1FB48D16F4BE4D7B5736CCD010E22564D73819C802309DE473C5A70C041CCAD69B1C8A712FFB20DF2CE12F32325829A708E5EECBF5F917AA9447EB638071C44AC9AE6022D26FE659EE57064B1FF7E1E5138E020E6D6B676E4ECFA6092EFE273A494B5CE9146FE0748A997684F762B40079F730CCB1D7B90610A75F0EFD975C1244D94070F1F2531BC89C7AA340A3F408A471A0E3888C4EA138E51C0914F943FB56C2D1CBD24F8A0627AB1D8D42D740EEC41C4AA2B1768310A434F9567AB1E2D11D5887324C107694CE0808348AC42A1184EC011071F22A2DF129AB213DF21C71E44ACDACD0365C964C09C17B78FD8EB1C6308071CA4F99A16EB59C2519CAD52F41889A0461EABA2E0C3A4E83725F2B3ED738E617382830C53C8E0BFBF33990CEE05380C2AAC1F1A80E86BD828426FE6325F791BC586FCB18D02ECE864C2397A71F01145F42289FC5C730EBCC512AB7AFD40BD994B7DE595A77201477DF95AED010769556EA2A5F8E04126AFF810F017248636E11C591C7C84C7DC39E02012ABB3668C028EBC385B65311C69ECDF42A45E58736A7B37B7F843C02A738483545149A04D3AEB5F4A797991B4B5CE91C6E12D440C38EE566F0022B0F8878518C051DE7878C9B0B655FEDDC463552F0A6F558AAFAF327EA5368E3B071EB12A5559BF910B706449782B33E0D8ADDA70107D06F68C706A2638B0E195371EFEA2C430269C238D838F12D1AC447EAEBECADD6FEE00446C656C0F747226383001380CA9DB5E58006248EB340E2E5AEE1CA78928119BFE88EC3976EA0140C456C8F640691CB04468438F5580A36271004845A1EA369300C4081C51B04C8AE2BAF3D9B3FD883A07DE6289AD90DD03E90262048E245826061C754A0F07A9A3568DB63A8030D1458FBCE9B9FEF93B6B0CB96FD334F6FB442A928A37AA3F98893D0811CDF7D71AFDE4429DC5D51410C0514765F36DE12086346E0A48AED4950BCBAB7748A5D58BC315453C23156F5C9C037B10B11523BB079104248BC315061C5A95868368C9B777E7AE1D248D8233A4E83AB1E98DF8DBAABD740220622B48E6731009074993E00C31E090282D0091507197185D39482F0E6E5344D78A4D6B4C9D037B10B11564CF1E248B83DB18708856160E222AE7F783B5ED20691CFC31114D8B4D67CC9D030E22B692BA7710C061AE98701043DAB6E520BD2438AB98A6C4A601E7D8262500115B59EDBFC5CA92E02C030E43151C84052086E46DEC20CC27AAA4E4293A40A40E57695BA90D9C6357990048A5D553BF515340EA8F24D00370EC29220011585FBB85700610C0B1EF0A0020E30C08E0185A7D003254A2660DAC7710C051A9B000A4924CF51B590D08E0A85C50005259AA7A0DAD050470D42A2400A92557F5C656020238AA1770B32500A92D59B50ED6010238AA156E472B00D248B6E19DAC0204700C2FD81E2D004863E9F6EF680D208043ABC200444BBEBD3B5B0108E0D0AE2E00D19670F7009D030238442ADB141045746CAEBFF64689241ADD51B59884873CE6DB9B2460F3BD584DE6738F3E804344C62208001193727BA0425843A1F70DCBCC77CCAFAC573A11DC457EAE8D09405CAB18F26D550100D2AADC18CC350500886B1543BEAD2A00405A951B83B9A6000071AD62C8B755050048AB726330D7140020AE550CF9B6AA000069556E0CE69A0200C4B58A21DF56150020ADCA8DC15C530080B85631E4DBAA0200A455B931986B0A8C25208A48EC47325D2B7817F9CEF5D7AE6C3AEE62E41F9F50EA8AA6FD75FB31514844F7AF1BC7E9E3EE75278BF65A0AF07C7FCD6B1AA100C453EA58D3FE5DF503205D29EFDEB80044B366AD7F614A335F74AFA70000A9A7D73D5A03104D012DEF0E40340B04403405B4BC3B00D12C1000D114D0F2EE0044B34000445340CBBB0310CD0201104D012DEFAE05481AF9C748A9E396CF71B78DB5BBD7FEB826B6E3F90210CD02C2413405B4BC3B00D12C1000D114D0F2EE5A80E09374220062F90AD74C4F0B10EC410088E6FAB3BEBB162070900E00C999CBAB393D22CE1B8EBFD5BFF87B2B4611CFC47F5B8FC0900475AE422D1D64F3CF309D8DE8A4D48B88E81175633B7D58B18DCBABEB0A8AF6762A3096DF070120762E461BB302203656053959A30000B1A61448C4460500888D55414ED6280040AC290512B15101006263559093350A00106B4A81446C540080D85815E4648D0200C49A5220111B1500203656053959A30000B1A61448C4460500888D55414ED628309680E44A35BE2BD69ACA2191561498603EC64487EA0EE6F469DEBA93457B2850570100525731B41F2B0500C858951B93ADAB0000A9AB18DA8F95020064ACCA8DC9D6550080D4550CEDC74A01003256E5C664EB2A0040EA2A86F663A5000019AB7263B275150020751543FBB15200808C55B931D9BA0A0090BA8AA1FD58290040C6AADC986C5D0500485DC5D07EAC149004E4BB77F64F9BE7E302150000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (37, 4, '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE90000200049444154785EED7D7D9C1C5595F673AA6726214808B88B115C8DAB80C4A4ABC78880060CF2A57CEC0ABB21A4AB27464050C9747542A2447D25ACAF0A2461BA3AF123405498AE4E2008460C202C6E24101108E9EA202851C32EF2022B1046490C99E93AEFEF766620C4747D7575577577D5EF377FF5B9E79EF39CFBCCADBA1FE710A227422042A02A02146113211021501D818820D1E88810B040202248343C2204228244632042C01B02D10CE20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141DA24D0919BDE108808E20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141020EF477A64F7CDBEB07741E4C1C1B1B33870E9624300FF100B8E32FBB3ACB030BFA4B3B0236B1ADBB8F0852A7F05F73E1D1078DDED57514404732D151041C09C20480C682F96000E26F2C00C9C684218006001E006180180326782B319E0678AB19EB7C7AE0D9B15B17AD5F3F542757DA5A6D44101FC2DF974C24409846C49388E948C014C418EF836A372AFEC88CAD448238B44992CC077AFB4BDBDC288864FF1E8188202E4745EE53EF1F658E3BF0588AE1236CE244224C0330CEA59AC688339E61C27A227E88107B349DDF6C34A6E3D6E925228883586695C4B1C4E699003E02A213001CE2A0591845B681F06B021E2A9BE65D730B5BFE184623C3645344902AD1C8CE9C1427493A0B44678231354C41F3C516C61088D781E9AE7207D6CDBBD978CE17BD2DA62422C85E01CDA6E24713E82C367116113ED162B1B672670713EE22E6758366E7BAF9AB36BDD446BE5BBA1A110480964CFC2B882F0670763430B09DC1B7494C37A60BC623ED8E475B13444BC9E783711180D3031B08849D600C80E855300F0CDB213EFA47FE4607661BF8A63261E5BC7C6943703604DB735B1224ABC82962BE18441FAF1FFCF43291B90DA06D26F33312631B4BD82651EC25B3CC03348A5E7DE5B5D70716AD7972B7950D3F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC626FA5F257B7953402AD62982B55BD747FFDF00AA7E6B622483619BF48225CC4A8AC44F9F9880FDC5F10D32F20D16670D7B6B4FEEBBFF8D9819DAEBED98971D88D0992C4DDE0CAF793F83BDCAE9D9BDF19B89D9856AA85E25D6EDA35B36C5B104453E47309B89C818FF914AC5740F82F98BC814C7A20BDDAD8EC935E5FD5E42E90BBB9834F62A6930838D9B7E569C26A89A4A5BDFD9B1FF3D5E0102A6B6982E452DD32B37939801E1FB07F1184B5205A3BFA80D8FA4BAFDFB4D3079D0D53B1B8277EE02896A631F85C30CE0570682D9D33B05B225A32346A70E9BC95BF79A5165D616EDB92045979E1D107BDB6FB80CBC13C1FC0819E03C06006D63268ED2894D77EB1B065BB675D216A989D39E91D24C50449C45FAD0B14BF05F152355FBA31442EFA664ACB114453E29F0148CC1A93BDA2C4C04362A6E89078ED9C9B8DA7BDEA698676CB7ABA3FCCCCE732F379003EE0D966E2BB24C2D2DEFED22F3CEB0861C39621C89264F77B3AC8BC8E0011684F0F01B7B3442BD5FEC67F847E3739F91053A2F732617B50870C73C9C46C267C16E0933C01281A312D510BC5059EDB87AC614B106459523EC324EE03E8182FF832681505B88CA9A5128BC07CE588ED44FCD810F385F3F42D5BBCF8536B9B5C523E8F25CC06E31C8FBAEE6533B620B3EAF192C7F6A169D6F404C929890C4390C3FDC3C08F6062656695F1A0FBD6FEB4C82613D389F8D6FD69EB64F3D020BF7B34257E0A40B301A43C78FB82042CE8D58DBC87B6A169D2B4045971C99431BB760EF581718907346F95246971D0CB94CB677DE4EDE5F2EB55CF3D1178715A2F7DC9837FBE3611A79941BC8018D35D2B6EF257AEA62488969C3C05248959E3447701E3A78870753A5FBAD95DBBFA48E794F8F10CFA5535ED0CBA3BA317C531FB503CB9547C16332DF4F0317F2F9BE50599554F34DD2B57D31144531249066B04FC83AB5143B42426755D3DE7E6475E76D5AE8EC25A523E1984AAAB3E04AC4FEB86D8E00BCD5399F5CCDD570C2FA1BBB1EB0530CF550BA5D56E1A052DDB5404C9A5120B98F95A37A011F0F332D1D573F3C5F56EDA3542B619093282CBB254621A335FC1C0192EB14AABBAB1CC659BC0C49B8620594516B346DA0552BB4158A8E68DEB5CB469A86833136404282D159F0FA6C5AE80237C43CD1B5F77D52620E1A6208896946F03E1DF5C60B491D95C98296C79C0459B868BB60241046839453E9D89168339EE144406566474E3F34EE583920B3D4134457E18C0718E0162D2CA83072C9CB7E6577F73DC2620C156218880EFDAE913C78FEAEA1433898B2561BE4DD54BEE57C61A18AF50134453E46701BCCB091E043C6B025FC934D1BA7B2B11E48D57AE647C3EC46CE2F421BE4BCD97CE722ADE68B9D0124453647601C61D4CBC30932FFDCE459BC0455B912023AF5C00AE63E0838E4066DCA7168C5A0F4D3AEACAAD5028099253E4279C82CB843599BC71BE5BC7C320DFAA0411D88A0418602A10F021475833DDA8168A9F7324DB40A1D0112497926F65873BB6CD4C0E11E3562688F0EFEAE9530E3EA06B48DC3EFCA89331CD8CFF932918FFD7896CA364424590BE647C9144F4C6A13D2B1088B026DDA433C79BEFEBCDB751E86560E652F2FDBCE71AB0ED43C45F4CE74BDFB3156C90406808A2A5E479602C75E43743570B868BD512475A1B2ED4EA33C8DE806AC9F8BA4A123E070F335F9C2994563A10ADBB4828089255129F23F0F54EBC6560694637C44DC1A67FDA892022583945D6D8E1662F033D6158910C9C20CB14798609383A9F63325F35B7505AD4F4CC1876A0DD085221492AF14D66FE8A93184A4CE7F7168A6B9CC8D64B2650828853B94CD23D4E0E1EB61A394440DB91202E6792E721F1E96A7FE9897A11C04E6F6004A9DCE7D831748F9323EBAD488E762648C5774516DF1817DA0DD0A08FFC0746102D25AF7074D98968899A6F9D3BCE6FFD706D8F55AC6A24D014F916000EF6B0E8DBAA5E74F45A664738B7BF074210A7D76499B03293374452E9967CDAF5156B2498957D9251836BC10E52C01266A87963BF5793EB39381A4E903D0916205EADEC9E3B54DDF09CA1C44E79187E6F77828818544A4E3089CDC47FB689C933434338E3F25B1A9B86A9A10411A9793AA97CB783EC237F924CF3B4DE555B7E1B86815C2F1B2282EC4136ABC833C8C14A26317E922E1822D95DC39E861224A7C83F660779AB24A027ECD930724AFC5D264B2790C467B0C91325A2B7317010C00731E82002BA1A1645BF3AAA54CEC5FAF2E0D0C2796B1A9B4E544B25C47D12FBFD2DE6456AA174955F2EDBE969184172C984C2C4B6296018C8657443B5333C88DFB3C9C92741923E2D311DCF60BF33C407E1D2FEFB64DCA9168C7F69A4412B2E99D2B9EBB5C1FB1C94A4D841659CD8A884E10D2148C5F91D43227BC7141BD0378E3EB0E3B430258616F5CE47ED1A753E816680705A23074D907D4990CEECD537DFDD481B96CFEC3EA12C99FF09608C55BFA25E495A2F261B615B4308A229892F017C8D8D4383CCE6A961BA269B55125F24B048A3290AD4B4D5C3E01B327AC94BCEB19A70CA26E36922D26C9530CF6C448694BA136479B2FB3D6532C5ECF14E2BA719989FD10D6787156DD1AB4D60F9AC0FBC7DC81C750DED29CFD69E4F80FB4F9A228BBC6596252B08787C68F798A9F5BE5A5D778268C94416C496DF1422354F5A373E198691984B769F0A32AF61A7177DC260741D6C60C6273305E3E775506DABB2B2F46BD20610FED152B8011FEC752588964A7C14CC0FD92122119DDC1B82BC55567972ED7C68A9DF092BD58037681D5E7FD8D1C134F5B242B1582FFCEB4A1047B703039CCAF70635220700A23F80716B50C73AF61DE4D9A47CBF5DBD7A91993F53C70FF6BA1124ABC8671370A735B3F9A9586CF789736EFE6DA0E9406B20C72304364CA6A708F43B32F9F918CA2F75EC18F5F2A577DA97688B360AAD47477666E23492F85EDBD981F8536ABEE4E47486ADAA7D05EA46102D25FFD4AEBE04137F2613702269410E89F816069C6141F833336E9780DBD3BA611F3C8B904404B11FAF5A329E0591DD37EC2D69DDB8C05E9B7B096783C2A55E67B38798CA8D192E55FB2A5E296C69D2AFD861B93602DF2071EC9B730A9BFFDB0F432282D8A328EA29428A3D48C0FB2DA5893EA6E68B1BED35BA93A80B419CCC1EE5B274ECBCD5C19611CE26E35F21A26FDA4146C06F005E94D64BB7D9C9BAF93D228833B47229F952667CDF4A5AFCF34AD761DFC67782389C3DF2AA6EF8519AD919C2FB915AD6137F6FD9A4870938CC1A78410EE9FCB4BEF949CF9D55691811C431A29455E4C72C736C318610E36EBF6F1FFA4E1027B38724F12941574375B23FC3C06FA43A91430C8D88208E09826C4ABE946C67112C4DFB9CD0C3578238993D08F4D3B45EFC57E7D0F82F999B31E97DDC11FBBD9D6692A469E9FECDBFB493F3FA7B441057C891A6C88FDA9CE77B85A58EEE4CFFA6FF71A5D942D8578238993D009CA7EAC61D7E39E0458FA6C822EDBE7572B206ECD2460471173D2D255F02C60ACB563EC7CD37820CDF0CB3BEE044FC4B355F9AE60E16FFA53545BE1D40D58B378D2A7D1611C4756C9DCC22455537BA5D6BAED2C0378238391A404C9F4D178A3FF2CB78AF7A3445FE2B80B7556B4F44A974BEA87BD5EFB45D4410A748BD29E7641631619E3957DFE2CB517DDF08627F2C809E52F5E244F790F8DBA24F99FC290992B8035DED7965F4811DE32FBD7ED3A0BF3DFFBDB688209E1016B38828737164D5D684EBD5BC71A927EDFB34F28520D99993E224C50C2B8388E95BE942F1AB7E185D8B8E6C52BE9A085FB6D0D1AFEAC6AC5AFA70DA36228853A4DE2A9755E27D04CA546DCDF873AC63D4317E5434F687208A7C0501DFB672370C1B83C23EBB5C4C26D1C98DAA881B11C41B41C4950426F33ECBD6C49F53F3A51BBDF5F0662B5F08A2A5E40D604CB530E65E5537DC960BAED5B7FDB6CF26E38F12D187AB29A78E8EF7A76FDAF487BA74BE8FD28820DE51CE2972C9E688D03A5537CEF6DEC39E96351364594FF7874DD314EBD3D55F09099F4FE70DEBE5B95A3D71D85E53122F01FCF6AA043974C7E8F4B2DFBFEE505D4D621141BCC3E7E055196C96E5CCAA274ADE7BF181205A327E25882C32AED3CB5D9239F10BFDA5FFADC5503FDAE694E3C632760D58BDBBAA05C3F2E8891F768CE88808E21DCD6C8F3C954C6CB0FCC70C5C99D68DFFF0DE8B1F0451E45F0038B9FAA00B4FEDB95CAA5B6636ABDE3E13F79CD3BA619779A516BCDFD23622486D50E652F14799ABBF2E03B847D58D4FD5D24B4DAF58DF993D71FCD060E77300240B829CA5168A56CBAAB5D8EFAA6D76D687E2542E5BADB6F9BAC964675C44103B84AC7FD752894560AE5AB28F8101E9951DEF48DFEDFD95B926826415394540BF851BAFEE96F85D0BFA4B3B6A83C29FD6DF993EF16D435D9D6293B0DAF3AAAA1B87F8D39BBD968820F6185949645389D388AD6F1CD67A30B6268268C9C40D20AE9A7D9D8075691F56126A83F1ADAD35457E01C03BAAE9343BE990B93F2ABEEA679FD5744504A90DE5E184842F02A8FA4F8D6AFC0EA98D208A2C72B956DDD164E2AF66F2A56FD50683BFAD3545165956AA96253699BAE7D6314BC6DEDE4404A93DB69A228BBC0756CBB9357D8778268893C3892CF1F199FED2AF6B87C13F0D7649C9187459462F7ED7BF1EAB6B8A08523BCAB994FC65665C5D4D93F80EC9E8C638AF3D792688A6242E0378B945C72FA8BA61994DD1ABD1B5B4B35B966ED4495EE14344905A22B9A76DEE02B99B6378DC4A932449C7F6F67BBBDE5D0341AC8F8C03C12765D81F687DC9444222DE6C0928CC78AFBE654BEDE1B3D61011C41F843545FE7F56A96D093437AD17B35E7AF34C909C226F658B4C13612A06BF2F309A228BA324552B1A35AA686844102F43F6EFDB688A2C56525355B5B1F7BD384F0459B408D2215BE5B2A57B124FF6FB02BD3F708A82F6F13EB63A0D0AFC5582F9B17ACF221141FC89A8A6C8BDE26DABAAB61A2EEA792288930FF4EDCF1DD2B968FDFA217F20F0574BDFCCC4A725896DAEFDF24DAA5E9AED6FCF6FD51611C41F741D64607C5ED58DC3BDF4E68920B999F17358A29F56EB9080DFA775A3FA85162F96FAD8A66F76629C34681A00BDDB4A2D419A9ED637FB9A0B6BEFFE2282F813D4A5174CFAA78E58CC3251C3AE51BBC67EF907BFB3DA24DEAF319E08E2E07AEDCF54DD38C71FF7EBA365B838CE776CB433ED49FB5317924404F12FB659457E8D8003AB693489A7CCCD972C57BBF6D7D61341B28AFC7D02AA5F690C49C6763BF8B34AFC2E02D91D6663669A912914D7D8E973FB7B4410B7885597D714F931AB9440127041AF6EDCE2B6474F04C9A5E4FB99F1098B8F225F6E73B975C6AD7C6E66F7C75932D73B6BC7DF54F5D2D79CC93A938A08E20C2727525A52CE83A0541F93F8BA9A37BEE144D7DE329E08A229F2B300DE55AD333671626695F1A05B638290CF29F16B1924EA103A79EE61D0D7337AD1F2829813454226228853A4ECE5B249F96B44B02280A75C03AE09E2648977D0ECF8C7F9AB36BD64EF56F012E2C0DBEB3B86EE64C0C595605E0BC6EA5A8B484604F12FFE39A5FBDF19A6D56BF00655374E72DBA36B825C37FD8403625D3B775A7434A4EA46A75B438294BF6E967C44AC8C9F0148B8B183082F30435CE92C32F143D2103D1B15D07183A07FB27D33279F204952D5F207041869DD70155F619D6B82EC5922E5ED16AEBDA6EAC641FEB9DE184DC3677AC4C5AEF13EF5C80EF558C5C0A98E7DBB1247C0DFFC637A11643E51A68E87E6E51FB7CD49ECD0EE5089F5F54C3A4632635619F89F5175E3BD6E8D764D906BA74F1C3FAAABF3798B8E5E5275C3BA3AA95B2B1B249F53E4D31908A4B26B835C14DD3CC34C0F10F1636073A35AD8B2A9817DD7ADABBED494774A3C24CE64557BB6ABBA71A85B035C1364B8EEF933161DFD49D58D7F726B4858E4FB52896931E62B19083C87704330615C0F98D7373B511CBCFA9755DDE8708BA97B82CC928F2A9721523FEEF709FB2EBA5380ECEE3B3BD5D334722D40144D91FF06607435CC3B760F1E74D99A275F731313D704719066F409553726BB3122ACB2623691D8CC0014683D9346E1430033E80A552F5EDBA83EFDEC475364F1EA5FF51B522A4B47F4AEDE6CF51AF677E6B82788923896C08F549D41981F4B174AC7FAE978D0BA34257E0A883E0BB6D8880ADA483FFB27AC56F3C64C3F55364297A6C84F01F840B5BE4C2936716EFFE342C6F1E39E2033E5A9245924EC223CA8E68D131D5BD04482D99EF8719249D3C591060644FEACA65BAD730C37E369B5601CED583E04829A22FF0AC0F1D54C89497CFC1C9757C02382D410582D39790A204D21C25126E87009FC4E661C0E82B86ADC0AE4D9A1EA46D53A2A35405797A6E120481BBE62D5259A753C6A22363E3B867004138E00E870B07924883EEE762374D8EF4DAA6E544DF65D2F6CBCE80DC92B966D2D9096F948F71224376D1A7DD4A4EF82C484988469209CCF60BB53CC7BBB72ABAA1B33DCF816846C283ED297B7C9326F2302DC6882ECED93A6249204730E834E70E86BE849128A65DE56DF287438587C110B9220230E6415F92A02BEEEC421223A3B9D2FAE7322DB6899D06C14B6F251934607350C04113E3BDD140D438DFB6A310ACD5193563DACD86872540666523E1904513E62BF4F4393D8A5E29F04936D655806CEC9E88638F91CAA273487151D4C654D77DC3DA84887892002836C329E2622CD120FC69D6AC1F897A030AB3A8384E5B87BAB5D980A32D061234885248AFC6302CEB3C28518C7A50B46D5D31441601A9A0B5395578316BA721B443047FA0C2741AC8F12556C675EA4164A570589DDBE7DE792F2D7380C576E8561AD92B421E8008791207B66914481C05667B11E5675C3E9F2704360D65272DEF2AC1CE3EB6AA141491B5A25ED4F432267D1495809B2AC473EC334718F153E319626CC296CFEEFA0317C63360E53DA9F56481C1786C0869520C3AFD1BF0560715891E6A87AD12EF15EC3600E55E2B8664F3DDAB0A8D97414728258664C672097D10D350C58862EF568B327AF0E43502BFFA543B40FB22F26CB92F18B4CA21B2DB00ACDD113BB629E0C3C9F6964F26A274BBD0871F9838820F608E492F2479860513E8F1E50F5A238211CF813BAF20795952C9B023A3071A1BACAF861E0E885D88030CF207DB31313A441DE6601DF5655378E0A03BCB954E226669E55D5964617D01926C88FD97A43C953AAC73000DE281BC24C90C53DF103BB4CAA9AE08081BF6674636CA3B0B2EAC76E5F0EC419355FB23E2150A503D7370ADF58564BCA9780B0C2C2F0E754DDA89ABF370CC0066D439809B262FA948377750D59D58BFFAB1A02822C9F297FB02CE109AB58D652DADB3341723326BD8F3B629659FA6A312CE8C1DB88FEC34C9065CAE4C92624915675BF4F58D23BE552F12F309355D96E4F09E3469CF64C10A14053E4DF009858154466355D2855AF1DD7885118E23EC24C905C2A711633573DB5CBC04319DD981A34BCD9947C2B3144228DFD3ECCF849A6609CEBD5CEDA089294978230AFFAC7117EAC168C7FF76A5CABB70B3741ACFF3333707B4637FE2DC8182D9A36ADE39023B68B5C58FF50D50EC2E56ADEB8CEAB9DB511449105336FAFDE39BDBCFD2FB1772FBA7393553678AFB6377DBB301324ABC4FBC8AA1230D3F7D442F18B410661594FFC13A649F75BD9506BAD9A9A08B2B8277E58974982C152F55984CE520B4591353D7AF64120CC04D114591C67AF9E003004277A1DDC84DCBE7DF7E0F8456B9EDCED75F0D544903DDF21F1FB003AD5822037AA85E2E7BC1AD8CAEDC24A906517741F6EC6CCE7ACB0279212E9FC6623C8F86493F14789A86A4A2202D6A575E3EC5A6CAC9D20C9F895205A64F59AD5259913BFD05FFADF5A0C6DC5B6612588DDCA10037FCCE8C6FB828C49D62EC3A730CE8759AE6682646D12C9093B89F0F974DEB0DA330912EBC0FA0E234172CA716319BBC41193AA396E199CCDE8A5B98101B76705F5DB00AEB0FEFE28CB99554F545DAA76627FCD04A9BC66A5E40D60582DF9DDABEA868B1A804E4C6F7E993012C441314C80E9D36AA1B836C808E414B9C440D52A027EBC5E55FEB9FBE1A4A6C41702F42D2B5DE5B274ECBCD59B452DEBE81946206C04C9F5C4CF6193C4AAA455A1993F8DDEDD31E9D2359B06820A642ED97D2A93799F65FFC4BE9422F785200E6A868098BE952E14BF1A14A861EC374C04197EA717B382759932E6056AA1B424483CED97A0F1E758C7A863E6DCFCC8CBB5DAE90B418411D9A47C3F113E61F1B1FE94AA17ABEEBAD7EA4833B60F0B41FA928984447C07800936386E1A7D60C709975EBF693040BC49536451E1ECC8AA3610AE57F3C6A57ED8E81B411C5CC315B3C867D385E28FFC30BC15748481205925F145027FC376E6A82C0AF1673285D2CD41629F4DC99712E3FB56369830CF9CAB6FB14D82E7C40FDF08E2E49621887FA9E64BED511CD301FA411264594FFCBD26D3379C56CD22D0DD69BD78A603B7EA2922668F474501238B4E8AAA6E74FB65846F0411066929F9A7609C6363DC79AA6E88E9BCED9F2008A225E31740A2B3C110E50F9C954526FA039787CEAB75C9B4D6803B993DFCD8FBD8DB4E5F099255E4B309B8D30A88302740AE35806EDBD78B20DFEB891FB61B380C26DE61120E9380C398E91842E5D4AB3352BCE9CC8BB19874EE9C9B378BF266413E4E668F5758EAE8CEF46FFA1FBF0CF595204E671149E2537AFB4B559336FBE59C573D95EAB6E2BD9C21B7482935AF50EC64933E9D5955B45E52F5AADD453B27B307014BD3BA31DF855A5B51DF09E264160110DAEBB839A57B22C314F75CDAFDF9AB69D2ACB9AB8A3F0901109455E4C708F850555B18438871B7DA5FB2BC5DE8D617DF09E2741609E3C6A1C85CDFD1B5F351063EE816C8969227FE658CF065B71561EB8581B3D9836F48EBA54BFCB6A12E0471388B8426AFD208A84E363CFD0E40E8F411FAB6BF3E78452D47C4FDF4293B73D23B488A6DB0DCF7101D127D4CCD1737FAD97745ADDF0A47F43959D10AC3BAFADEFEB7F9EBD54630BEAF160C915131348FEDAEF99E417C4B5A372EA887D1752388B359849F8AC5769F38E7E6DFD67C24C00F707E387BDAE8BF0CBEFA3B80DFED87BE66D041C0ED0CE4C3B8F4EEE8CC55E5DF3C7F4ACD972C936D7B8D45DD08220CCAA5E45BD9E2427DC568A6256AA1B8C0AB037EB7ABAC6031FF97DF7AC3A28F19AF106133883603B8A31EAF257EF9AA29F27F0238C54A1F835665F462D2AF3EF7D553578268A9C447C1FC909DF126D1C973F3C5F576728DFA7DF855EB060664020E6C54BFFEF5C32F80E879667A81985F20899E8789270529D2FAE627FDEBA77E9AB249792E11EC922DEC3099A6CE2D148BF5B2A4AE0411466BC94416C49659C019F87946373E592F27C3AAB75E1B8561F5D7A95DCB67C94799656C60B1D969397DD4BFD255DD09325C575DECC2BED3D2D91AD3B338053F4C721141F61F0D4D91C581C81EAB5811F0F8D0EE3153E7ADF9D5DFEA19D3BA13A4328B28892F017C8D8D23BB99CDD332852D0FD4D3E130E98E08F2F7D1B0CDD43ED28479A65A28ADAE773C1B429015974CE9DCB56348CC2256A73085AF1BCBBBC79C5AEFFF0AF506D5A9FE88206F45AA6F4F296771ACC5F2BBAFDE1FE67B5BD51082880E73C984C2C479DBC143A4A9F962C656AE05042282BC19449125F1D023B6DFC780DD75881D54C689E9D5865885ABFBD330825448A2C87625132A0E33D093D10D7B32D51D9EFA761011E44D7CB554623198ED0F1AFA90CAC74D541B4A9025C9EEF77452F96E808EB131F24F4C7C6A265F12572B5BF68908B227B45A4A3E1F8C5BEC024D849FA4F3DE1351DBE9DFDFEF0D2588306059523EC324EB12C3C386DEA1EAC6795E9C6A9636114180BE9E0F1D2399659145FE9F6DE2F6CCD010CEB8FC16E3E946C6B7E104D9F3AA95C830B8CFCE5122AC49E78DF3EDE49AF5F776274825B77399EE01C1FE8A2C61869A376E6D74AC0321C8F0B4BA020CDBE3C9AD4C927627484E496C64F009F6839EBEADEAC5AFD8CBF92F111841565C3265CCAE1D43E280D989766EB52A49DA99209A228B1BA527DBC63EE064118111A4328B24274F6192EE21AB022823083274B560A4EC006DA6DFDB9520392571178345D208BBE779487CBADFB704ED3ADDFBF74009522189924802AC3B319A81A5199FEF1C3BE9B75E32ED48104D914549BE5E47983668B7DCCA96C00952F9684F251630F3B50E415BA4164A5739920DB950BB1124974A7C93991D7D4B30A137933796071DC2501044809055648D80B423401ABC59E4C8260F42ED441057F125BA4ACD172D6ACE7800DB6393D01064CF37897C1B08CE0A43B60049DA85205A4ABE118C8B9C8D51FEAEAA972E73265B7FA9501164CF3789FC3080E31CB94EB444CD87E736A2239BF7126A7568625239000006854944415482AC3867CA98BF8D1DFA0101331C6213BA441EA123C830499E05F02E47A032356D0DC456264825F7AF4937D85D99DD2BC63F5375C32E6DADA321E1A7502809324C1276E1E81D4CBCB0D9CE6EB52A41728A7CBA58710430C9490C99F18B4CC1B0BC7BEE444F3D64424B90CAEA96223FE134891B01CF9AC0579AE914702B12444BC6E78368B18BC11ADA2C9BC2875013A44212279951F68E0693561E3C6061335CBA6A25825C3B7DE2F8AEAECEC50438DECC65E03F32BA71A50B32355C34F4041188F425E38B242237406E64361786FDFA6EAB10A4F24A25660DE6B8D311CCA0CB327AF1BB4EE583926B0A8254BE4952F23C70E5BDD6E9B31B84856ADEB04B1DE3549FEF72AD40102D159F0F76F54A252A555D9C299456FA0E681D14360D4184EF5925F139025FEF060791528889AE0E53DEAD11FB733326BD8F3B62BFAFE60F012BD2BAF17937FE364A76592A318D99AF60C055796F09E8E96DA2DBA24D451011FC658A3CA30C2C7774C0F1ADDF264B621DBBAE0E4B9AD361D32CD3FA13A1371D82E3167BC3B87CD607DE5E36475FE1E87AEC5BD9FA822451BAB7BFB8A65124F6A39FA62348E5752B39790A481217AE6C8FCABF15247E8A1957075D88726F9B72A96E99D9DC5F6640567543F223C87EE9C8A6E2B3887185832BD3FB76792F9BE505419770F38243531244385AB94FB273A8CFC9A5ABFD00732BD8BC562D6CD9E40534BFDB8CFC5726C60719FC1240F7AB7AF126BFFBF1AAEFBA0BBA3F1C8B99227FB2FBDB9D21CBBDEC1683A625C81BEFF10EAFEFEE1718C60F25A295BD7AD1367FB05B605B415E53E2A700341B2E966EF7F2FB450998DF4CDF1BFB8B59D313A4F25D52490421EEB8DB664BA9326EA900983F50F5D2FDAD30B06BF54153E473C1F82CC8B66271B5AEEE6533B620B3EAF152ADB604DDBE25082240142985BAC8BC8E01CF995018B89D9856AA85E25D41072688FE73C9C46C96CCD960FAB8E7FE9BFC00E9BE7EB70C41461CD394C467804A023247E780F63710187808446BCB83BCB6D169663C0F4C8F0D97F5747F9899CF6566F18FE5031ED580C177C7242C0973F5622FBEB51C41040839E5B8B126765D4E8020CA182FC00CB73101AC0568ADD989B5737F547CB5065DA1695AA9A36E9220C4B9004EAFD1B0DF8178899A2FDD58A39E50366F49828C20DD974C2424E2CB3D7E64EE1BB017C17BC8B23B66FE72417F694728235AC5A8C53DF103BBCAD2C759E2F3C8C4B9201C5AA3FD83002D89C5762D0DD9DE528D6EBDB5794B13E44DA2C8E7490441948FFA849E98491E62E28D20DC9FE92FFDDA27BDBEAAC9F6C48F034BA790697E0C44C2F7717E74208A669AA0A519BDF8A81FFAC2ACA32D083212806C327E11115D0CE0789F83F202800798F95E498A3D06EEDA96D67FFD179FFBB054D7373B310EBB3181604E21A2D389701233C6FB6CC31D90E846B5BF7D1631DA8A202383454BCA3D90F8A29A566B6C471EBD4C646E03689BC9FC8CC4D8C612B649147BC92CF3008DA2575F79EDF501BB7AE43F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC980054FE7C991DF6EB16613599E6CA74618B28AAD9564F5B12E40DA288ACE2262E06E1B4C0A24ED809C600885E05F3C0B01D62B08FFC8D0ECC36D04D44E6CA74BEB421381B82EDB9AD09F2C637CACCC4A72531A30067071B8E50F4BE9DC1B7494C37A60BC623A1B02840232282EC057E36153F9A4067B189B388F08900E3D2E8AE7732611D31AF1B343BD7CD5FB5E9A5461B10D6FE228254894C76E6A43849D259203A138CA9610D600D769519542145B903EBE6DD6C3C5783AE966D1A11C44168B34AE25862F34C223A810191AE7FAC8366A11311892D407898191B4C36D7CD2D6CF963E88C0C994111415C0624D7FBFE51FCCA98A96256093B612A995E080F4B4C1B49A2077BFB373FE6D2DDB6178F08E2C310A89C673279AA493C89988E04CCA300F27B0FC2CED23F32632B119E0661334C7A502D14B7DA358A7EB7462022489D46C835171E7DD0E85D5D82284732D151041C0912FB153416CC0703107FE255CDEED6E0104003000F8030408C0113BC95184F03BCD58C753E3DF0ECD8AD8BD6AF1FAA932B6DAD362248C0E117441A3B347AEC60593A182857BE6DCA52C740C7200FECEA2C0F34DB99AF80E1F4BDFB8820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF118808E23BA491C256422022482B4533F2C577042282F80E69A4B095108808D24AD18C7CF11D818820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF11F8FFD068FEAA06B279120000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (38, 4, 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001CA049444154785EED5D099414D5B9FEFEEA0111710105B7671497A8085D0DEE1AA3311A17A22651C4E96A8C1A139F0A5D3D98A87125D1C4A811BA1AF715A5AB07C5981797C4684C4C3C4F9318A4AB67C47D498246C58D888233D3F5BF53C398A7C852B7BABAFB56F5AD73381C0EFFF2FDDFBD5F7775D5BDFF25A84B31A018582303A4B8510C2806D6CC8012889A1D8A81B530A004A2A68762400944CD01C5403006D4374830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680120880BC91DA93185B41E311CC1841E0E1006D0A6004C02340E861D696127829036F6B84C570B170C3C14B2B27CF79754530EA9557141868498158E9D43120F76BCCD88B88F6A871A01631F018803FB83D7D0F4F9FFFF4BB35C653EE1231D03202B132A9FD003E058C63016C52AF3160E6BF69D0F2D952D9AE570E15B7710CC45E20B3A7240F76ABB8084407368E5600442FB1EB5EF6FEEB236E9FF1E8A37D0DCDAD9285C6406C05D2FFBB023C1BC0DEA1B1152CD0DFC1B8D02C397383B92BAF6632104B8158867E3980B39B49EC6A72975DA28E8E62F951C97029386B612056022918C97D009ACBC08EB28E3A83F339BBD2212B3E85EBB30CC44620854CB29D994A511860029E06B4E3B3F6C24551C0DBCA186321908291CA317856C40672990BF7F80EBBEB3711C3DD5270232F102BADFF18840BA33A6A04EAC8DAE57C54F1C71D77A4056265922698223FB918F861CE767E16F7C916C5FA222B907C5A3F8C080F4691F4D56156DF24728E6424055298347E240F729F0661A49CB40642C50CDA3B67979F0CE4AD9CEAC24024056219FAFD0026D68591260625E0C5ACEDECD444082AF52A0C444E20517A9C1B68B6312E314BCE45817C9553E80C444A203327ED36223138F1FCC052F4D0C99024E0DBA6EDC4E9D651125A83C18894402C23790D4067042B353A5EC438365B72EE890EE2F8228D8C40666626EC98E0EAB30012F11D8E959531A8336797D371AF330AF545462056462F82614481D41030BE61DACE9621C451216A64201202B96E4A72548F4B6FD6586BA4DC35D7DD755A6797F78DA9AE2632100981E4D3FA0544B8A4893C353CB57A71D870CA579B301202B1322907CC4939286B140AFE9D69570E6D54369567F50C482F905927A4B6D312FC4A0B0E60B547E38D7F30B7F2610BD62E4DC9D20BC4325267027CB5348C3506C8BB0C3A3767976F6A4C3A95654D0C444020BAF73EE09B2D34840FF5BA6DC6F73B17BCDD42354B5B6A1404F25E3DDBF4C83532748E6997AF900B536BA3915A20B3D2A99446BCB00586683998DACD52F957F5A8B560ECBD51B5FAF108B4B92334C670066DD6BF5C87D9EB22B982495B4AC44BC1FC0E1316E78A95E7EA81238A31A5168895D1A7837155148915C0FC21B9DAC46CE7C23F0AF8ACD1F48649BB6FBC6270DFC14CD89B187B01D81DC04682B13F02D0058203A6C7B52A3D3C6DDEC2D70563C4C25C7681DC0BC651B1607AF5452C07D12166B1FC782D35CE9CB4EFFA89C1CBBF49C064061F5D4BAC35FA329E07E16182766D2B359B905B2086EE7D6AC575C9459F4B74682D7DB2669D94DA44EBE1E9204C6BE0EF3406F85EAAD28FB2F39CD8DFFE4A2B90D82F2F214C368BCE5D413EED3D61247AF902064E073034488C907C1ED0E0FE709ADDD515523CE9C2482B102B9D3A12C40F48C758088088E9E46CA93C2748A87CBBFE25682811B04D10FF3AF8B800CFD5AA89F3E2F83B455E8118A9F301BEB40E03DADC9035EC18CC1BFA25045CD0DC02D6987D3980E9A6ED5C2F29BE40B0241688EE357BCE04AA4A522702DD9BB5CBC788C21B7832751F8003447D1B6F4F770FE9499C7ADAFC054B1B9F3BFC8CF20A24AD3F04428C16EBF1336D3D7D7B9D397FD1329161BC3A3D7EDB2AB9BF05B0B3885F536D895EAA423B7C7AF1A9179B8A2384E4F20AC4D02B00C6855063D34330B094D99DD051EA7A5904CCC02ECA3F45F449DE7BACF111B9B995BF88D42C9BADCC027903C0E6B21116040F11A7B3C54AA788AF954EED04729F8878838A152ED111B53CCA16E1AC1EB6520A84012A187AD53BA7A91E453738E623A6ED1C2292F3DAF4B8E1BDA479EF18B615F193D4F623061D14D58678524EC038BD03E9AB56BF70D6BCEE7F8A4C5ECBD0BDDBAA08FC20F75DD59BD4A38DCBCE5FB8C4B7872486520AA43079EC0EDC9688C30FBC8BB3B6F36391B1B60CBD00F4BF198FDB75BF693B915B3624A54056DE7FF3F3119F21AF99B6F35F2235F41F38EAD223223E91B225FEAE59ACDC1C25CC520A6476FBB85D5C4D7B264A44AE8A9509D37245C7F74EC82BA7243718EC92F7A1B05594EB5E07F6F77BDDB69DA2B4194C4A81148CF16318EED3119E281F547B866E3E7DFE13DEDB655F97E46FC97DD5E0CB88719B59724EF1652B8191940299D9AEEF96D0D02D013F812030E1F25CD139D7AF73FFAADC5EF67EC80FF3EB13653B26DE252A9BB2A41448D40FC761B7AAE73ABBBD179DBEAE96F9F6F8840DC22D66D139D517394D36924E20FD87E30C76BDC9B54593B9099AFE65D376761071B60CDD7BFCB999884FD46DA9471B1585C7BED209C4CAE833C188F239E25798B6738EDF099C37F40C01DEC2CC16BBF83CD3AE5C267BD15209E4F25376DE70C8C743DE02304476E2D6848F89BE962B961FF68BDF3274EF18E8C3FDDAC7C84EF89BB619B54B2590389C1E55ED193AD4EFD3AB1BBEB7FBD0151FF6B56CE74422FE72B65879AC1913DF6F4EA9046219C939007DDB2F78D9EC98F1FB5CC9F9AA5F5C854C6A22337BE72DB6E4C5E07CCEAE487D3B2D9540F2E9E49344B44754670B139F9F2B567EEA17BF95495D09E6EFFBB58FA1DD2BA6ED6C2F735D5209C432F4C500B69699B0B56123C6DED992F357BFF82D437F02C03E7EEDE368E76A89311D739F9276D5846C02790980D49F286B99A4CB4CDBD9D0EF246EF5DF1FFFCF134D35EDF2357E796BB49D54022918FA020626349A8430F289FEFEB0D2FA5740F87D18B9231D83F10BB3E41C276B0D5209246FE816015959C95A072EA1F71F563A7931886644B4D6D06033F056CE76A4DD392A954022DE0BEB5BA6EDFCD2EFCCB10CDDEB52F275BFF671B673AB34BA635EF955196B944A201E4196A1BF0B60B88C64AD0D93E8CE41CBD0BDC58942FB45A2C6895FBC0C9C90B39D3BFDDA37D24E3E81A4F5AB4098DE48126ACEC55862969C517EE35C7DE25E9B56AB1FAB03723E218C31D32C3967F9E5AF9176D209E49A93C66CD1D73BC86B8FB37E2389A831D793A6ED78470DF8BAF299D4A1C4FC902FE3D6307ADCB49DFD652C553A810CDC66797BB2BDBDD991B818B827673BC7FA059B4FEB1D4498E9D7BE05EC841E9137920F2905322092C82CE223C6D5D992E3BBD18215C5DBC83ACF4AC2908DB3F65FFE5DE734C2E1A515885749DE48CE22504EB8AA863B882DDDB68CF8F51DAE957282B69B8C07F3482D907E91B48FDD1C942811E1E05A07A15EFE4CFCED5CB17287DFF805437F9081C3FCDAB7829DE83681467122BD40FA6FB732FAF16048F918D0C347AC1D9A2D2DFC9DDF418BF28A01BF358ADBD149A65DBE5DDCAFBE1E9110C8405303EF3868292FD6781F9126CD515F94598F4160C685B99223DD79309110C8C08FF63F03D8BB1E83536B4CD1260D96A17BED8022BB6BB256BE56E7CFE02B7376E5EC7AC4AE2566640492CF24CF23A69FD4526CBD7C1309EC3CF50EC77727486B65636EAD5E78221957D29785911188CCFD7A09BC4DD6AE787B597C5D96A1B32FC3163292757761640432709B2565D7F35EB76DA4DF769A330E3AA86DF8D6EFF5B6D0DCF755AAE8BB245F4143308A9440F2863E99807921D41D6A0891460D034257DF209F1F816B4CDB991AEAC084102C5202993103DA8817F4E718D83184DA430A41979976F93CBFC1AE99346658DFE0411FF8B56F153B066EC8D9CE7FCB566FA404E29157681F7F206BEEA37210C9CF9876658C089682A19FC2C02D223EAD60EB9DE398D0B443A6CD5DF83799EA8D9C40FA6F5132A91960BEB8D9448AEE639895D97D4B8DFBBC838186361BBBA4F9FF9548AC376EEA1D7F7D47167C9114C8CAFBF8E4A5009DDF4422DF346D47A87FB095D66F05E1E426628E406ABAC0B4CBD23CCE8FAC40FA6FB7D2C9D399C83BA4A6E1EF1488E98E6CA9ECBBC9DDCFDB77DF6C90D6F76633B04640159F82287EDB5ACFFA222D9095BF499247B146DE3AAD066FB0125B3B64197AA4F6B8D473D2AD2BB6E8F6E575C5ABE5FF232F907E916492073093B77F64835AC810F125F0BE59BBE22D7FF175158CE48D0CFAAE2FE35637223EC22C561E9481865808C423326FA4F604F86102366E04B101DE9E7BAB7D7DF7ED6D440DF2E620C3B4CB2519F0C546201E99B332A98334E63F348258EAABEE98BDB3DBEB04E9EB8AE1D9E7BEEA0E64A4BE4102D1E6CBA960E8F31898ECCBB806230D6E729ADDD5E5378465E8EA1BC42F59ECEE6196BA16F835AFA75DACBE41FABF45DAC7EFAB69EEE3F5246D656CB1DB002B93BA16CCA7D71F57F433B4F5F46E78E6FC45CB64A8247602F148B50CBD114DB0AF376DC7F7849F95497D4363F6DD795186C9D1240C2F98B6F3C526E5FE5CDA780A24ADDF0D82EF363CC10683FF61DA956DFDFA5E3925B9C16097A4F854F48BB9297644D799C5F2194DC9BD9AA4B11448DE485E41A01FD49B64D123C40AE9D4ED4C7C62BD714539BE6CCD1BE2299046ED3E143CEFBB71BF8F222B916ED376C6C9843E9602B18CD499007B4B50EA7E899EF7ADBE45D63C242ED1573A8A6549566A0F3C8AA9FB0C6A42022BA39F0CC6AD8D48CDC0A539DBB9D06FAE810E2DDD513E6ACE6FAD4276841BCDA2739A904F038CE3F90D92D6A780E0BB915BAD3C6BAEBBEBB4CEAE67FDC69995494ED098BCB3D447F8F589B9DD03A6ED4879564A2C05D284E6D0DD7DD5EA9167CDEBF6CEFCF0755D9B1E37BC175A070826808D7C39C5CFE805665C972B39B3642D2D9602B132FA0D607CAFC1A4BFC7C08939DB113AF75CF6AE9175E4F00DD376B6AC63FC5042C7532086FE1A80AD4261483008139D9D2B96AFF4EBD6C287E9CC356D47FA47DEB11348DED0BF4E8077FE5FB3AEE74CDBD94524B965E8DE3EECDD457CA26F2BB654A759F5C64E2096A17B0B08C7368B502F2FBBD52D729DDDDEEE415F57C1D02F62E047BE8C636224D37AABB5511A2B814833D10893CDA27397DFB93CDB1837CE8556F16B1F7D3BBADBB4CB93A250476C04626552FB81F97FA5209D719B59724E11C16219BA2710A9DE228BE017B2659A6896CABF16F26992712C04924FA72611B1F7DE43968EE9AF99B62374C473ABEC5967E09F39DBF94293E6BB70DAC80B44DEAEEF7C8869571EF13B223327EDBB7E62F047FF00B0995F9F28DA11B3992D552273406B640532B064C35B4EF24D29270AC1368B4E46049B954E7E1F44BE1F118BC496C4F6CD6ACFD0D1D3E73FE19D8F12892B9202B1D2A92341EC89637399597607D1F08E39E5F745305A86FE2A00DFFB4C446237DB9688D3D962A5B3D93844F2474A2057A7C76FDB47EE4C02BE255264F36C69AA6997AF11C96F19C9AF02E4FBBC4391D84DB5655C62969C8B9A8A2140F24808A46024F761D09900846E5902F011B6CBE2211BB4ED7CDA8D0B3E12095C3092C73168BE888FC4B6CB09F846D6761E9218E31AA1492B90427AFC214CEED103BF31849E08493510443F378B65E1DD8DB38DD4FE2EDC5F01B4A954F5888179DB75B5A33B3A173E21E6268FB53402993969B71189F5DA8E818B89207C0DC086F2D0541B12263E2E57ACFC4234CAEC29C9D1AE8B0700DA55D4B7E9F6442F31250ECECD5DE03D998BECD55481AC7C834C5F67D04402F68F2C8BEB06BE1C8C8966C9116E6A77F9293B6F38A467BD79603A72DD69A4B178B26D50EFD167CE59F4863488020269B840664F491EEC56B5A341ECDD3E8D0E883B926EB5BC03884C6F5FA24AF5E3F5F789D2A3DCB54DA6BA0BE486EFED3EF4E3657D8703740C137FA3853707AD1C07C66966C9B93188C20B86BE808109417C1BE6C3F445B3547EA161F9EA9CA8AE0229A49359269A0160789DEB8852F8156D837A4707B9FD88C0E62AA1667A5118B4BA08C44A274F00D18F01EC1405121A8D9109D372452750D7152BADBF05C2C84663F6934FD3B43D653B63D00FEE86DD62E533C99D89F1CB483E75A99549017F629C9B2D39970BB8FCC7346FA44A046E0FE25B679FE5A6EDC4EEECC5D0BE41AC4CF27030798F32634752D813AB96238FF3867E2E0197858DA9D678043C95B59DD8ED8A0C45208574CA60E262AD24B7907FE036379691FA36C07364E38A40F766EDF231B2E1AA154FCD02195838F840AD405AC99F89CFCF152B3F0D52B3954E1D03E2FF09E25B571FC136AC75C51262F09A0472CDA431C3FA060FF21AA66D1D22A6D887126D34F769420696E0784DE7A4BA6AB96D94AA9055C0D42490423AF513263E4FE60265C346C09D59DB392128AE7CBBFE25D2F05850FFBAF949DA3AB4D67A6B128865E84BE2BE03AE56823FEDCFC03D1B0F5A6A9C3CE7D51541E3E6D3E3BE4CA4FD31A87F1DFD1E326DE7B03AC66F4AE8C002C91BFA6402E6350575F4922E23C6A5411FED7EBA5C895F16BE6CDACE0ED11B9AB5230E2C102BADDF0AC2C9712324E47A7AC0745DA26DF02553EFF8EB3B61C4CE1BC95904CA85112BEC186E954677CC2B7B3B22637305174863CE018C2CD1C474879B485C18F6726FCBD0174BFB50843867162B5664076D35C00309E4B693B61BF2EFDE8D23B3F1BE7103C6EF30D1CDDC47D7D7E393346FA4BE4BE0400B1D1BC481742744D55A772081CC9A326157CDAD2EAA35798CFC1F21E25BEAD990A07F43D9A0B667655D87F5A9B1CC9AB6333B2E631B4820854C6A22330BB5F98F0B61FFA983B1D07B644BAE3677DABC85AFD7BB3ECBD0FF04E0807AE70921FE32EAABA6B277767B477147FE0A24907C469F4A8CD87C4A088CE20B041499A9B3917B1EAC8CDE0946E0772702F58565BA58D3F8CBD3E6565E092B60B3E204128865E8DE4AD4B39B05BAD1798930DF05DD942B961BFA067BA0399EB78C67BF46D71C42BEC5EC5627E63ABB23DD943B984032FACD607C270412650EF106183769AE767D236EA156256266BBBE5B4283771BBB9DCC24AD03DB0A669E9A2B556E896A0DC10462E8F748DBF2B3C69120E069065D69DAE5DB6B0C15D8BD91C758070629E048C06F99DDF3CD52D7020137294C0309A460E87F60E020292A0815045D66DAE5A6AD2DEBDF70E6E206101D186A59F2047B1CC4B7AD18FCF19DE7DCFADC07F2C05A33924002B10CBD0C408F4281BE30329E8746279BC5F2E3BEEC4336F25AAA56A97A364067841C5AD6702B18989700DD3CCD2ECB71A6CB1A980A2A90181DF6C23F31EDCA05CD984985F6F107B2C653013EAE19F9E5C8C9CF3069B725AAD5FB44CE9A6F14F6400229187A3703BB350A641DF39C6EDACEF5758CFFB9D0B332C9099A8BA340E489A2A9672936B26E5FB9885E828BFB09747FB6B4508A06DE81046219FAD300C6F82A5A522302BE93B51DEF0885BA5F85F6E4519CD08E00F35100A2DB67B8EE4C7D26C147E475B927FE75156DF7761417FCABB1E957660B2A90850052CD001C46CE5AB6BCFAC95F98347E2406558F63A28900BE2AD1D1707EE04B6943E0275CA2D260D7B5CF2875BDD72890C10492D61F02E1D046810C330F018F666DE72B61C6F462797D86AB44471193D73D72CFB0E3AB789F6280701F5CBAC52C957F556F5E8209C448DA00A5EB0DAE0EF199A08DCDDA0B435968E9AD6A5EDAB3914144D362F554AF0EC4D727243FC38CABDEEFED9B3B63FEA29E7AE4082490BC91BC8240C2675ED4A3009198DE92916CD1395EC46775B6579FB8D7A6D5BE8F4D104E575B8E6B653314FF37013AA71E2F770309C4CA244F05D34DA194D6D820DF326DE7974153CE98016D93E77593085E5BD56141E328BFFA30C0A0DFC0ED3B39D7D9FD665819020A24B51F98A57EC1B31A823E306D67A3A0C40DEC81990B2076DD03837222A9DFFBE4F289D9CECA7D61E00B2490FE435D3E1EF2EF30003430C6FDA6ED788F5985AF42463F8D190D7D5F220C52397C8601263E2657ACDC5B2B2D8104E225B50CFDCF00F6AE1540A3FC09B8386B3BDEAD91D0954FEB1710E1122127652C03032B9838952B569EAB054C0D0249FE10A040ED336B011CD4D7857B6487DDF51B11FF7C3A358988EF12F151B6F230E0ADCCCEDA4E4DAB15020BC47B19C683DDB7E4A163ED485C7677E82875BDEC17EFC06625EFA4A4CDFCFA283BF91860F09539BB1278735F6081F4DF6645E86996693B42B55A99D40C305F2CDF902B44A20C687093D3ECAE2E513FCF5E68D2AC2EC1EC29E3F770ABEED1D0280D66593BEBBD61DACE9622045986EEADFDD942C447D9CAC900833A737639D08BED9A05F2694A0AC6F8314CD543E1D2014C3880805152504654318B65DFFB57F269FD30223C28057605221406361AB474FD203D914315C8AA955C9B1E37BC4AF8AF2AD16830ED4E84F1CC4811B04D2855FB0DC2FC47B354F1BD035275ADF74B6C74EC34D097826CCEAAAB40D6449FF71E65BDE5437424787B8D693B666C07C21706CE4DDF3E7CDAE96ED32E4FF21BD732F4DF03087D41A3DFFCCA2E7C0698E8EC5CB17CA568E4A608645D20679F307EABEAA0EA369A8B6D5CA66D48C336F0FE86BB35833C21891DD8C39869969CB3D695F793FFB70CFD35005BF9B55776F233C0C09C9CED08375B9752207EE82E18496FE351FF9F7E11118D04F1283046807904116DC6C0A6003681C67B9A732BDD7EE27A3696A1B35F5B651719061E376D677F51B491158868A17EED67B78FDBC5D5B467FCDA2BBBC830F0B6693BC2E7CB2B81AC32BEB38C714768D07E1D996157407D33F05E4FEF7AA2FB46944056A13702470CF89E10CAF0B30CB0D6B6ADE8792D4A209F13887E2E0197A9C9153F0618B457CE2E3F29529912C8E70412CDDD922283DEB2B6C44798C58AD00B60259055668BD51A8DB95B5223C438365B72BCBED2BE2F259055A82A18FA3C0626FB665019468601224E8B9E02A604B2AA4032FA5DCCF0FDD63D32B34301F556E60A370B540251026919E930F3A9A2679528812881B48C4000324CBB5C1229580964D51FE986EE9D86748A0889CA36320C08B77D5202F99C40929702747E64865C01F5CD00B176A868D778259055DF83B4EE09BEBE275A540D45FB1278752A81ACFA1BC43BAA40A39AFB29457512C519B7685F022590D5CC86D95392A35D977C773F89F3848A596DCF9AB6B3AB684DEA1B64358C5986BE0CC006A2642A7BA919B8CBB41DE117C04A20AB178877FC9777F08DBA62C200319F912D55AE132D470964358C15D2FA394CF8992899CA5E5E06D8AD6E11A4EBBB12C8EA043279EC0EDC967851DEE156C8C418E0DB4DBB729298CF4A6B259035B06619BAD7C7F7F020A42A1FA91878A5AF5A3DF0AC79DDFF0C824A09640DAC794FB3AA2ECD254078A37F9081503EA133E035E9B871A3414B6F0AD230EE13344A20EB189742FBF80339E17E995D3E9A88F6087D1855C0B018580E78873A690F6B6EF5DE699D5DCF86115809448045AF53648F96D883D8DD03D02600ECB533DD492084320D810106966AC06297F18206FC99357ACC2C961F0F21F4E742288184C06ABE7D6C524B68BB31B49D89791706BCEE9063D4BB949AC8FD000407CC2F31E17930BD44ECBED8D65B7DEECCF98BBCF7540DB99440EA4873BE7DECE6406227D26807066F4FC0F60C8C26C0EB82AF3AC70360E02D025E26A6E75D0DDD70B95275AB8B82FEA80E7B389540C2665420DECC13F5ADDB7A30CAD5300A84914418452E6DCAC45B78FF06F777C7F79A9D797F3614082D83E9BB60BCCD8425602CD1889730D31B20BC0EE2575D6AFB7BC7DCA7A46FD0A70422C354F289E1AA13C66ED3A6D128683492BDA3259846126853C0DD8AA18D22B027A8CD075AB2FA8CEACFCCBBEF27E0AD814FFCFEBF01BC49C0DB605EA225F0165C5EA20DAA2E3973CEA237FC4595DF4A0944FE310A8470E6A47DD76FC38A6134A43A0C2E0FEB73DB8621C1EBAD2B18B95597800F59A365AE46CB48A30F3BE694DF5F975F5CFF5F0924AE23ABEA0A8501259050685441E2CA8012485C4756D5150A034A20A1D0A882C495012590B88EACAA2B1406944042A15105892B034A20711D595557280C28818442A30A1257069440E23AB2AAAE501850020985461524AE0C2881C47564555DA130A004120A8D2A485C19F83F160E2750087005820000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (39, 4, 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001FB849444154785EED9D7D9414E595FFBFB77A66044523AE24FA738D31A2BF2C4A572346C4F8965588C1C440B2B0D2D518D08DAE0A5D3D1835C6CD719263A2A242770331F24B224257A3B0AEE6B8495492F50D717D41BA1AC2C668587F498C468849D6A830335D774F0D335964E9AAA7DEBA6A669E3A87C31F7DEF7DEEFD3EF5997A7B5E08F2900A48059A2A40521BA98054A0B9021210797648051C149080C8D3432A200191E78054C09F02F20AE24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C149080B4B8A3BBBAA01CF9DB89237A76BD33B21B078C80951A99A2DE110A52237AB831921ADCDB41A9F72C6EECEA3D20B5AB03DDBBBAD1B1EB50FC71D7BC95AFEE6A71BAC3BE39094804A7C0B7B3E34737526DC7352CEB38101D47CCC711F17116D358028E0AD02483683B2CDE4E84ED0CDA4EA0ED0D6A6C479BB2BD7365ED8F01624BD7FD28200109785A2C999B3934D520D56A582713E1340626137074C0B03EDDE95700FF3B819E81429B0FD8A5D42E5FB7E94F3E8349370012108FA7C16D73D21F1C61D1D4067006012A80D33C8668993901CCC0B3006A0C3CAD74288FE4EFDEBCA365090C81862420029D589C33EEC3C46D53C1CAA7004C05F81001B7249AFC17111E61F0A36DBDD62357DDBBF5D7494C32493949409AF4C692ECF88F92A24C23463F14E84852C785904B376C582C3CDA06E5A1F9D5CDFF3F8498432E840464AF2EBDEBB3130FDC7548F77440F91C80E9C09083A2D909FC67006B99B1B650351F1972677980822420004A59F5934C984EE0E9007D38809E83DE9580A72DE6B560EBBEC29AADBF1BF405052C60580352D6D44B18B80CC0A4803A0E45F79D00AF4D11BE37BF527F7128162852D3B004A49CCD6816F115047C4244A48036F6B7891D04BC09C20E30EF00634783941D0AF0261376B0851DDCC33B0E1ADDF6E6BBDD8D83946E8C49311DCEA9C698868531201A436CFF8F31043ADC626B0C118D0160FF3B30607EAEEE04DCD5205ED1390C411956801473E92F10D31500CE753D2BFC1974037801C006069E1AD9DDF654D4DF216ECF4E38A68DAC338971260893018CF797BAB397FDCAD80256F0300365580052D2D2E702D409E082904F9ED7417881192FB0C51B0E3CB8FDA9CB576CEA09B90D4FE16E9F3DF1F076A5F74C309D4EC4A730F0710007790AE26C6C7F5B59A1907267BEB2D90C316E22430D694016CF3CF130A5A3EDAB045C1D86FA04D8AF421F63D00BC4FC7CBE6A3E1746DC28632C9E397964AAE39DD319F471229C428C0B181811B44D06DE06F0AD8261DE12345692FD872C20F6730688AF67E0C4C01DC058CFE0FB768FD8BDF6BAEFBF649F1883F6589E3B796CAFD5980DC24500C6052F849E045937EB95FAC3C163252FC29003A4AC4D18C76C7D15042D90DC8C1DA4E0BE5EF0DA8595FA53816225D0D91E553CFAE5CC4520BE088CCF064D9180F2AEEE9E9BAF5DB7ED8DA0B192E43FA4002967D35730E826100EF32D326103186B3B14BEEF8AD5F5377DC719448E652D7D1AB3B20716E04301527F9988BE9EAFD48C003112E53A2400B9EBB2891FD8F56EEF2270DF370D3FC79F41B88F186BF386F9A89F0043C1A73C6FC2186BF79EDB2F02D96FC47C1D0CDC5430CCAFF9724E98D3A00764492E738EC2BC087BDED6F83916A558F9B61C8BF47EE996E6D2175AC042309DED475480FFB991A2C2C255E66BFEFC93E135A8012966D54E22DC0AA0DDBB9CF4030BB8ADD3A83DEDDD77F8781473EA7C622C0470AC8FAAB7025CD08DFA4F7DF826C2655002B27CE6B8518DF68EE54C7CB10F155F226051DE30BFEFC37758BA2C9F3BEE889E9EB68504B241497914A1C7FE06A51BB5E51EFD12613EE800296533C713E11E06FBB9475ED463B5DDF6E5359B762642FD41964439AB9ECA0A3AC17DAF883D1D0C2E168CBAFDB176501D830A90F2EC09675B8AB596800F7A5359DE4E79D3CBD9BA7FC88E7D3539DD5B5CFE816ED4ED690483E61834802CC9A5672B4C558FCACADB298F827931EF7F06B441F96B613FA27A3759A75FB3BAFE8EB04F8C86830290524E5D08C61D9E7462FA6E0FA7AE97B7539E54F36C6CDFF232782951DFCC4BD1E36D6A6B9B90BF67D32F451DE2B24B3C20A56CFA461075791388AED38D9AFDEA571E2D5060CF5779B50CE02A2FCDB185330B6BCC0D5E7C5A6D9B68404AB94C17986FF4220A31BE90AF9AFFE2C547DA86A340FF2DD7622FD108CA897963F3362F3EADB44D2C20DEE1A05FB1D5FBD9C29AADF5560A28DB7ABF02C55CFA4262FA81175D920C492201F10C07637DA3E7C0CF2D5CF7CC7B5E3A46DA46A340DF805158FF0EE060C11698A09C94C42B49E200F10A073196E5ABE602C18E90662D52A0FCE9B107F06107D9A314260A36F91B82F2A9A4419228404A5AE68B00AF1414D45E367041A16A2E13B59776AD57A0A865AA049E2DD232033F53A0CC4A12248901E48EDC04B58DAD9A8890B60D5B34B5B0A6B65ED45EDAC5A78097BB0266FCDBC8516DE7C73D757940AD440072E79CF407BB2DE5B7000B8DF321E05239962ABE13DE4FCB252DBD12A02F8AF9F2B775A3EEE995B1585CEF568900A494551F05618A60FA8B74C3BC4ED0569A254881B2A63EC6C0398229E575C35C2A681B9959EC801435F53B045C2E522103FF5230CC2F88D84A9B642A50D2547BA10B91B93B16139D5FA8C47B1B1D2B201EBF92FF5437CCF392D9ED322B2F0A943575ABE0621ADBDA1A8DF3E35C853E3640FA67023E26222C33BF50A8D645FEEA88849336312B60EFC0D503E545103EE2964ADC770DB101E2E17EF4E51EABED7439E8D0ED541A5CBF972F5627580D3C2C32758189AF2D54EAB7C551612C802CC9A6BB1422D731560CBC494433F44A6D631CE2C836A355A0ACA95319B81FC028A79618E866D0DFC6313DBAE58008DF5A11762B6CCD58606CF971B4DD24A3C7A9C0D25C66BAC56C0F2E753C1719785C37CCBFB5D7086E65BE2D0744F8D68A70895E31EF6EA518B2AD7814286AEAD504DCEED63A317F2B5FADDFE06617E6EF2D0544F4D68A406BF2462D1B66A13256B215286BEAC30CF7495744F4997CA5F6C35655D33240966AE3C75B50EC6709C7FB4D003B09CAD9491A8FD3AACE18CEED2CCEA5CF4C59F404C875E7E54D47769F3069D6BA758D56E8D532404A5A6625C0AE430D08D499376AC556142FDB489602A5ACFA0D10DC5764242EE8957AA915D9B70410E14934C43FD22BF5B0F7F068858EB28D1014E89A39AE637447FB136E7BCF13F08A92DA7DDAFC553FFF7D08CD3A86680920252DF304C067B914D36359CAD99D6B363F1375D1327E721528E7321730F3BFBA66C8DCA557EB5F77B50B68103920A55C5A0793EB2D130137E60DF31B01EB91EE434081522E5304B3EE540A033B99AD499DD52DDBA32C39524016CD1C77444747FB73041CED52ECD34F779B67AF5B87963C784529A88C1D5C81F2CC0963B8A3F104407FE372FFB344AF98F6BA5C911D910252CEA9D731C37D8B2EE24F0FD51D8A22EBB9211EB8A465B200BBED33D243294CCAAF3237472547648074CDFDC888D13D1FB013FF9863F28CC57AD50C650FC1A8449271E351A0ACA9773330D7F1EE83B1AC10E19A04910152CEA99733E33B2ED2BED5DB6864AEBE77EBAFE3E902D96A921528E532A783D96D7B8AB7A9AD31217FCFD64856698C0C9092A6DA6FA34E73BE7A5049AFD60A49EE24995BBC0A9434D51EA735C3E51936B21DAD2201A4944D5F04A235AED2B2758A5EDDB2C9D54E1A0C5B05FA07333EE0240001BFEEB6DA4E8E624A44348068AA3D02F77CE7A2E478AB617BD67B2C5CE46E84812F170CD3DB02E70279840E88E07D232C58D33AE55076812E9226A59C7A191877B95C45B6BCF5DAE893BB1E7FBC374CC5C20744536F06F015C724091BF48A79A6D74216CF3CF1B08E916D87F734684C0A076CC91BCFFE97D718D2BEF50A94B5498734B07B7C7B8A7774BFD7BB73E1BA9FBDE5258BC533278F4C75BCFB0BF77D4848D38D9AD73D645C4E552F990AD88A4CC827A679F96AADE90A8A4BB2990C2998A2304FB38031041C0ED0E1FBAE9B45C00F01E55A39F257A063623059365B3DB191E245609AF6FEE6A901F04EFB6BB802EC60C243C4CAC34EFD28B6F81CDDA31B35C7D7C25E6508F50AB2549BF0690BD68F5C9278F50FC79BC77575C11AB02BCE99F861A5D1389389CFE87F76719DCCBF771B1D0A7FE88AD5F537BD162FEDA353A038FBA40F91927AC3630BDBC07898157E82DB94273B57D6FE38E0BF2C3BE1980659AF3AC7E337462B187B7188BB57850A484953EF04F08F8EF78A8CAFE5ABE64DB64DFF9E8373C9E56390ABC88CFBF5AAF977AE76D2A0650A1435F57E023EEFBB41C21BB0A8C2DCBB7A604B8B92A67E0FC0252EE757A8FBC3840688BD35736F47FBCF011CE55040AF456D1F4E9175025B963D18CDF1FDB6A8B84478235F318F14B59776D12B50D4D4DF89AC58229409E35E065692426FBB7D3824E0AEBC613AFE91166AB3DF283440CAB9F46C76D964D34E9E81B100CEF592A488AD6E98A1D522D29EB47156A0A4A9512CAE60EF3962BF9899EAD0FAAB47769F3036AC1987A19D542297BF284F2A094894EA7A8F1D11206289305DA0576B6ECFC242B1C204E43F5C07260AA5E4CF4802E24FB7A8BCE20524BC01B0A100D2BFE5D6CFA2125B24AE044444A5D6D9C40A08B05137CC4F84516D3880888DDCF59A6F03A0A701DE48C475B7E71B09885779A3B577078434304E25C2A90C9C2ABA378C60D63CC26AFBE0E56B36ED14B46F6A160A20252D6D0014781D2B065E03B09E40EB09D69379A3FE1B3B7391D5182520414F8570FDDD00214B3927BF66B3BD4003F67CE3E04F30D8DE23660A39BF09154AD4B26846E79ADA8342C60E462101A2DA1F708EF19D0CE17BCC785039EC9DF5F9A5AFECDE378E04C4B7B2B1397A0164EF24CB0BC61E60BD75D014224C07E352DF0510DDAE576AD7F8F6EF770C0CC8D239E9632D8BFC4D9C673C04E2926ED47FEA548804246837B7DEDF2F207B675AD2D2E7824807E3B33E2A08E5392430202227EFBEC531F0AC425CCA57EAEE7346E42D968F73237E97300019A8A2FF1B9BFD61799287CAF8C8EE13DA837E0F890310CF7B0C8A40289F413C9C3A2D300D139081BB9DA296BE9540C2B74D7B3FE7F82D393020254DB517F9125B0D9179B65EADDFEB3559098857C5E2B78F0090BEA296E4D2B31597111B03D5DBA3BDF386F999206A0402A49455BF0682EB626F04FCC9229E54A8D45FF293AC04C48F6AF1FA4405885DD5D2D9E33F6629CAB3000E71AD32E00A8CBE0129E6325388F951D70443F86823011150396126510232506A319BDE484493DD4A57A04C5B606CF6B511932F40EC19628C5D3F71DBCE97809FE50DF324B702DC7E9780B82994BCDF5B01885D754953ED111CE35C14307BACB6F3FC2CEAE00B109165EA6D3852ED3DE75DB5729BD74933FFAB560948F20070CBA855802CC94D3C52E15EFB8FB5232404FE7F79A37E995BDEFBFEEE19906F67C77FB48752CF01FC570E8DBDC716A616D6981BBC26B43F7B0948182AB63646AB00B1AB2ACE51CF502CAC6760845395C4CA947C75B30D93F0E119905256BD0304E7058343DEE0440222DC9F89316C252076D14BB44C41012F7112C09E745530CC795E44F20448FF366ACFC199D4D5BA615EEC2509375B09889B42C9FBBDD580F43F8FAC0230C7418D1EABB7A176DEB7D59E9A217478024468CE397872DEA8DB33BF423B2420A149D9B2407100B264F6F8C98AD2B70F66D383809BF286E9BECD5B7F046140CAF3268CE16ECB5E9BE85087D6EFD52BE6ECB07B410212B6A2D1C78B0310BBAAB2A6DAF3D7FFBE69858C57778DD895BEEEFB2FBD2DA2823020A59C3A0F8CEF3B068D689F0F0988485726CB262E409668E33FAD40719B6E7B856E986E3B0FF4092A0C485953EF67E7655C42193DB9BF6E968024EBE417C9262E40ECDC8A5A7A23A1F90744223C98AF98422BEA0801B2646EE6234A0FDBB757EDCDC461E0FA8261BAEF2625A2EE3E3612101FA2C5EC122720252D7D3D40DF6A26813DF4A9B7FBC02317AE7BE63D3799840029E7D4F9CC58EA14AC61E1A4856BCC48E6A54B40DCBA3179BFC70AC89CF449B0688BE3C3BAC217E657D71F72534E08905256AD80A0393CF8ACD7ABA6D35A456E7938FE2E0109245F2CCE710262175CD2D2EB013ACFA1F8A5BA61E6DDC41102C475416A42A4BB8D4A40DCBA3179BFC70D48514B2F2150D3DDCB44C709BA02626F3990EA68FBBDE3E50AB8346F98CE6FB802F4A10424807831B9C60DC8D26CFA528BE8BBCEE72D1F3DB03088C3F38AB3827DF382418EE35758E1D30AABEBF6F8FC480E094824B2461A346E40CA5AFA3406D9FB64363D44367172BD821435F56A026E776AA85BE151D784B8E4FCBE6D4940223D9723091E3720FD8BA93B7F0C645CAC57CDD52E7747CEFA1473EA2DC4B8CEC1EA1DDD304745A2727F50094894EA46133B6E40ECAA4A39F51D300E6C5A21E16ABD622E0E044849539701B8CA21C8EBBA61FE9F6864DE13550212A5BAD1C44E04209AFA3A80239A574837EB46EDAB8100296BEADDECBCC1CD4BBA617E2C1A99252051EA1A65EC440092555F02E184A675327F57AFD6BF14089092965907B0D3EE4DCFEB86796A9462CB2B4894EA46133B098014B3E9E789E894661512E3C17CD579C889EB437AC965CF73029ECA1BE659D1C82CAF2051EA1A65EC240052CAA94F8161EF7BB9DF838047F286797EC02B88FA88CB8E3EA66E989928C596579028D58D26763200C998604E37AF90EFD18DBAE3AEB8AE57906236730F113BCD10DCAE1BE671D1C82CAF2051EA1A65EC4400A2A9F69AD1C736AB9319B716AAE657825E416E05706DD346809D05C31C13A5D8F20A12A5BAD1C44E0620E99D00355F5C84A8A0576AA5408094B54C819D26C31376EB15D3713589A05D200109AA60EBFD9301886A6FA5D1E1F0C7FDA28261DE17089052367D11881C576167AB714461CDD6DF45D50D1290A8948D2E6EDC802C9F3BEE88DE9E76FB3B48D34364716BD767109193334534757EA5B63E2AB9457290ABBB47A5BEBFB8710352D6D4A90CD82F989A1E6DDD3D075FB56EDB9F035D41D6CE9C997ABDE317F6A52AD53410F3357AB5EE385ECB9FCCF2213D886E71FAC60D483197B986981735BF7C505DAFD454378D5CAF2076809296790260A76F1DA1AF85B577E2F20AE2D68DC9FB3D6E404A9A6A0F42CC35070477EB15F31237E5840029E732DF64E6A663561878A56098C7BB35E6F77709885FE5E2F38B19102A6BEA2F1818EBF004325F376ACBDD141202A494CD4C03F10F9D82898CAD774BA6D9EF1210BFCAC5E717272022E72B3126E5ABA6BD4AA8E32104C82D33277E60647BEFCB20387DEF109AE3EB96D0FE7E9780F8512D5E9F5801D1D4328005CD1460E0C582614E14514808903DCF21E9E5005DE9D06864B759121091AE4C964D8C8008DC5EE116DD30AF17514C18109193D4629AD759ADAD1469D88B8D48DBF235AF1745A3B78D0B907236339789EF767C1CB0F8DCCE35F57F13514118103B5859531F63E09C668109783C6F989F1469D88B8D04C48B5AC9B08D0B905236FD3888CE7650C1D3FC254F8014B5CC9504767CF2B72C9AD1B9A6F66098DD24010953CDD6C48A0390A5B9CC748BF901A70A99F1B542D5BC4954054F80F4AFF0FE2280BF6EDA0061C3216DA3A7CC5BF9F82ED124DCEC24206E0A25EFF75603B278E6E4916D1DEFDABB4C7DC2E939B983AD53AFAC6EF983A8629E00E97B58CFA5BF0CA6DB1C1B202AE9955AD345BB44931BB0938078552C7EFB560352D6D412038E2B2512A8336FD48A5ED4F10C48D7CC711D8775B43FC3C0C98E0D092CA9229AA8044454A9E4D8B51290722E7D3133DDE3527DED0FDD3D93BAD66DEBF6A2926740FAAE225AFA8B00B9BFAD629AAE576B3FF092D0FE6C252041156CBD7FAB001179EEE8AB9E70895E311DDF6EED4F255F80EC8144B53766779CCF6BDB8DE86E3BF4F2759BFE14A48B242041D48BC7B715802C999B3954E961D7E70926AC2B54CC597E94F00DC8B2D91326F72AD623041CECD6701BA58EBFAAF2E22B6E76CD7E9780F8552E3EBFA801296533C783FAF6AC713BDEB698CEEAACD66A6E86A15E41EC60452DF32502AF106958619AB5A05A5B2762BBAF8D04C48F6AF1FA44094829A7CE02C37126E0FF54CF5FD58DFACD7ED5F07D051968B094CD1441AC8B24A0806E5EE0B292DDFEE2484044D44D964D54809434D53ED91D175AD84B89B5BA6136DFD05340B2C080EC9950F5D2C32E9B95FC25157B9617B175835EDDB24920BF3E130988A852C9B10B1B905276FC4422E59B0C7C4AA44A2FFB103AC50B0C881DBCAC4D1807586B19385124F93E1BC20A58D60A11502420C2AA26C6302C406C30A0289781719987E27EAE1BE6DF78B06F6A1A0A20BE2111044502124657B7364650407C826117C9BA612A61551B1A208120D953CD034CFCE0C11DBB1FB8749F4DDE2520617577EBE2F801A4AC8D3D0474E0747B3C1F11A6FBC8F6B7BA611EE5C32FFA2BC8400BBE6EB7DE9FDE6B001E04F3066AB79ECFDFB3F597129030BBBC35B1440159969D704CAFD2388598EC51E03614BE4E70227E215FA97F3CECEA42BD820C24B7744EFA58B6EC072A9E1D30E11E109E8585E74058E8144BCE0709A874C8EE6E8080E87630DBB3FAECC1854D1777134A8BF1905E352F14B2F56814092003399472691D4CDF047090C7BC3C9B4B403C4B16A9832B20A1B51EEC3B875B1A91026237BE6C4E7A52C3EA83E45CB76482FC2E0109A25EF8BE2D00E4658B6996DF2FE4A215470EC84022F6642B057CA5A757C1A2550090807810AB05A6110312D90221FB4AD33240EC866F9B933EA89D952B89D95EFCE12361F69304244C3583C78A1090C8B7DBD8BBFA960232D0B03D33B1B1BB71554AC105CCCDB7C812EE26E65FEAD5BAC32261C291A461480A9434F597003E1A52B8BF8421F0D179A3FE9BB0E3368B170B207B2753CC8E3F4B21FA0C039F01C8DFD74FE62EBD5AFF7AAB4493EDB82B50CA65BAC07CA3BBA5B8050177E50DF31FC53D825BC60EC8DE25F4ADC84D9804F069009D0BC6016E2546B5928A5BBBF27777054AB9F4E360C71546DC83FCC582FF4337EAE33C3884629A2840F6AEE8AECB26B6BFF75EEF246AF0B94C64CF3919458C51201E05D028027ECDCCAFCA2B4728E7416441EC2B09311FC3C0D104FC89817708789709EF82F95D025DC8C078B70408CACCBCB1F99FDDECC2FE3DB180845DA88C972C05FA273C190044BE7EB7ECADD5BE2A49409275DE0C8B6C16CF3CF1B05447FB032E5B6A0C6851B3DAE9939D2B6B7F8C431C09481CAA0FF336CB9AFAB0E0BC8E7798AD6985EA9627E3924C021297F2C3B4DD92967E10A0CF0995EF732512A1D88246121041A1A45970054A39750D18178945E26FEA46FD9FC46CA3B3928044A7AD8CBC9702652DBD82415F12128570AF5E31838E04176ACACD4802E2A690FC3DB002454DFD0A01A22B8B3C3FC26A9B76F99A4D3B03371C420009480822CA10CD15F0B4440FE32D4EF1B4C2EAFAB349D1540292949E18827994B5F4DF3148782DB4B83E063A492F0119822766124A2A66D55B88709D682E4984C3CE5D0222DA83D24E4881AE73CE691B7DD45B3F165D276DCF4918CF301291822420222A491B21059664331985F83100870A39241C0E790511ED4569E7AA403997D198B9E26AB8974192AF1C0369CA2B88971E95B6FB55C0E37AB97D3188F8CA7CA57E67D225958024BD87129CDF1D7FAF9ED0D6863BD037D94DFC20E0C6BC617E43DC233E4B09487CDA0FEA964B9A3A03E883E3582F85107866DEA8B77C5E87971CF7B69580F855CEC1EFE6ECF8D1235234010D9C1541F8FF1D92F1240E505E6CC590F0522E733A31E719F0B4AD0003AF2B50CECB1B9BB7B54493901A91808424A41DA69CCDCCB5605D464493430CEB25D4468056E846CD6D434B2F31FB6C8BB9F4FF25B67791257B451A8F07FF4437EA533C3A25C25C0212523794B4F47A2FEFFE436AB64998F04EC8BB664F3C7C17F5DA578C3C113EE0356F06CA05C314DA60C96BEC56D84B404250B9A4A9FF19F63A5F21A4F5AA6E989E9E0FF66EB3AB0BCAE857D20B98294F3E96EFE99B7FCEB856AF9A425BF485506F2421242001652D69996B01BE35609888DCE93ADDA82DF21ABCA8A939827D3B25345F7C7FE11F6D28CA0D0B576F7EC16BDB49B3978004E891622E3385981F0D10227257626B4ABEBAE5276E0D75CD1CD731BABDEDF320FAA2C8F6DECDE231F08D826186BA1E965BEE51FE2E0109A06E495317D8CFE60142B4C095E6EB466D79B3868AB3D533883003F63F8FAF6CDF1793B1D922EB864E63CB8F5B5054CB9A90800490BA98559712617E801091BBEEEF21F9CE8BD5A3BAADBED7B433C0382370124C77B6A371C395D52D7F081C2B61012420013AA4A4A9F65FCBF39B85B0577D0C105ED89581739A1A13FF48AFD42FB07F5F92553F9F22CCB280191474D39A3D0D9ACCBCB850ADAF124E7690194A40027498DBD29A16F3D73BABF5AE004DB8BA0AAC81FB18339E23C2AC40B750EFCF643B08CB8FDCDDB36CD6BA6DDDAE490E6203094880CE1B248004A8F0FDAE0CEC24E6653DDCBEFCCB0999331E5A714D02494002283C6C0021EC8685E54A8A972D585DB7BFF90C9B430212A0AB870120EF025845A47C275FD96C06906AD0BA4A400274DDD005847FC5A055C4B44AAFD65E0E20D1A077958004E8C2A10608032F12F1AA768B570DC557B67EBA5A02E247B57E9F2104C8A316D3AACE6ACDDE8E401E7B29200109703A0C6240DE03B011E09F361AA9F50BEF1DFC63A60274A3A3AB042480B283E243E1FFD4F72AC01B0165636F2FAFBFFA3EF317014A1F36AE1290005D3D18869A80713F11DF9B6AEFDD70D5CA6D6F04287758BA4A400274FB6018ACA830FFC3826AFD7B01CA1CD6AE129000DD9FFCE1EEFCFB4637A90BD799AF05287358BB4A4002767F92274C31E3D642D5FC4AC01287B5BB042484EE4FE4945BC2437AC5BC3084F2867508094848DD9FA8451B18EB1B6D98B77095BCB50ADABD1290A00AEEE51FFFB23FF42B66BEAD5035978558D6B00E250189A0FB07168E531A38D36B78CBE396140AC004DA6271E315ABF7E09717AE7BC6FE08288F901490808424A40C33341590800CCD7E955585A480042424216598A1A980046468F6ABAC2A24052420210929C30C4D05242043B35F6555212920010949481966682A2001199AFD2AAB0A490109484842CA3043530109C8D0EC575955480A484042125286199A0A48408666BFCAAA4252E0BF01537E0F8C345B69120000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (40, 4, '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 0x89504E470D0A1A0A0000000D49484452000000E1000000C808060000001E108684000000017352474200AECE1CE9000012B249444154785EED9D7D901BF579C7BFCFDE9D21431B0A04069B42C13181F0A23DE31492F0E60442200D2114DCFAB4B2139B89DD012CE9480810C8704C81F06EAD6C9A400B26462BD342784D4B7829F100292F89F1AD6C4809D4A149C040884DC980837DDAA7A3B3CF03C6D83A9D76F7B7DAAF6718FE60F779BECFE7D90F274BBA5D01FF900009C44A4062EDCEE6244002A084BC08482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB9340DB251C9876D0B88FF5EC307E830E4DE8126B7C60618204BA1B519340D2088858AF04D0D5DDA2AF6C40CFEAFECAB2D561CC306609CBD9C9C72B82334470B042270042E1C2D8146B9A42E01500AB21F2B40472E79A4F2C7F646000C158C2B524E1B5D30FD9BBDBB26643643A8003C71280E79240920928F04781DEA9908783F5F8E939B7FB2F8F769E5149E8667BBF04D186788D7F7A46DB8CC7934087131852C58F217279D11BFC79B3B3362DA1EBF47E1BD02B9B2DCCE34820B50404EF40E5F282377859330CB62BE175D33EF391AE71EF2C0430BB99823C8604486084803C2AD0CBF29EFFE0B6986C53C205CEA18706B09E06B023C1920009B44640806BF39EFFAD0F3BFB432574B3998B2132D05A5B9E450224F03E028A1B0B557FEED6A86C55C272D63E5C054F1123099040FB08A8E2BBC5AA7FE99615B72A61C9B15F13608FF6B567251220816102A2DF28546AFFF25E1A1F90B0E4F45605DA4764244002ED272080D683E0C8FE252B9ED8FCF6CD7BDB941D7BB60237B5BF352B9200098C1050E0CEA2E79FF6010917CE3C7CB77AFDDD5F00D897B8488004C225A0C08CA2E757865FA18EB47273F62C286E0EB735AB9300096C22E0AFB7F4C8736FADBDBD59C252D6BE4B045F2522122081680804AA97F4576B03C3125E9F3B6CD290D65F88A635BB9000096C7A19FA40DEF34F1C96B09CB5CF53C11544430224102981B7D6EEEFEF322C61C9B15F106052A4EDD98C0448006AE16829CF987CAC06C152F22001128883809C2725C7CE09706B1CEDD993044840EF694878BE00DF230C12208158080C4AC9C95C2F90336369CFA6244002ABA5ECF4DEA3D0AF90050990402C04EA5276EC650A1C164B7B3625011280B859FB750876270B122081780888EBD81A4F6B762501126810A084BC0E482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113E854097F0D6095425709642D141F878589C3FF063E1A3373B62781F711E814095740E4710478A0501DBC675B3B5E3023B35F00EB9312E8690A9C4E296944DC04122DA1081E51C5C282E7DFD50AC8EB66DA7B59437A9A88751AA0C7B45283E790C058092455421F01DCC2127FD158018C9CEF6633058894DA558F7548A05902C99350E0498FD59F5FB4FCF7CD0ED9EC71A5ECA1C758622D56E0AF9A3D87C791C05809244AC2ED3DFB7BAC3036FF5474327703724ABBEAB10E096C8B40622414E05FF39E3F3DAA75BA8E5D06302FAA7EEC935E02C99050F078A1E21F1DF59A5CC7BE1FC08951F765BF74114882842B030D4EE9AFAE5815F56A16CE3C70B7A1FA0E4FF2391D51934F573FF3250C30BB9DEF828E76BDE5ECE4E3558287467B1E8F27816609182D61E373C07CC53FAED961C23ACECDDA7740B0F919E361F561DD7412305A42007FDBEA07F1ED5C673997E953956A3B6BB216098C1030584279B4E00D1E6BC2AA06A61D346ED7713DCF2A9FE168C23A3A2E83B9128A160B959A6B0AF172CEBE4215E7999287393A8780B1120ED5EBFB7CF3B695BF350575A9CF3E4A2C3C664A1EE6E81C02464A28C0D2BCE77FCE24CC0BA64F9E1074052F9B9489593A838099120AEECE57FC534D435C76ECD714D8C3B45CCC936C02664A08DC92F7FC59A6A1751DFB2900879B968B79924DC05009B594F76AFDA6A12D39BD5581F699968B79924DC04809217249A13238601A5A37D73B00D58B4DCBC53CC92660AA846EA13258340D6D39D7FB43559D695A2EE649360123251491C5F9CAE0D74C43EBE6ECC7A038CAB45CCC936C02464A08C17D858AFF15D3D0BA8EDDF888628269B99827D9048C94508067F39E7F884968AFE99BF2B11E6BA8EDB7D4306946668987809112365048170ECB2FF697C783E5835DCB8E3D5B819B4CC9C31C9D43C0580901BDACE0D52E3205B5EB643C40B2A6E48932C7A65B4BBE2182D715F287287BB7D42BC05F4082DD55654F117CBEA51A119E64B284BF2C78B5832264B1CD56AE93F95F40F631254F243904F7495DFF39BFA4765F24FD42685272EC2F8B600E14278750BE2D250D961010C1BC7CC55FD89649C750A49CB3CF56C582319448E2A937173CFF8C2406DF5AE69293B94A20E79A388FD11202787EC79DBA8F987BE3B2FF8B0BDE0D73A6ECFCA7B7871A5F573B20AE0C31F47D52D6BC3D357FFF8BEFC6D03BB49665C75EA4C0D7436BD06261D325842ABE5BACFA97B638DF984F2B65ED8B44F08F632E94A4028AB985AA7F6392223793757EB6B7D71235E6CDBE91CCC64B08604881538B9EFFE36640B7F398D28CCC1108E45101C6B5B3AEF1B534F854A1BA6299F1395B085872EC3705D8B98553433B25091236867F43D6BCFD9751BE3C1A1898DABDCB0B6BFE27756FC6005AF07C2BB42B2EE6C26E2EB3142A46DC3625493F0987B30AF062DEF3F78F6A87AE633F09E088A8FA99D44783BA5D5CB2B26652A67665719DCC1B80ECD6AE7AEDA893949F841B67152CEF0982E3CEACAE58DB8EE13FAC46D9B1572A7070983D4CAEADC08CA2E7574CCED84AB68533ED4FD4EB78BE9573C33C2759126E24F1AAA835235F5DFE70BBC1949DC90701C1BFA559C04D4C2B05CF9FD16EBE71D773B3996F41E4EAB8736CD93F89128ECC70C5BAF5DD579C7F7B7B3EBE70FBEC5962E19B1470D38B0E433EA36D973065C73E418107DA55AF9D75922C61E3D3FC1A145716BCC1966FCCEB3AF6A9AA383B095F6F6AE7E29BA91548F784FECAB2D5CD1C6BF2311B1F65A037016AE4379E922DE1C8E61B3206F8995AC14F8A95DABDDBBA206E983665E73FF5D4A7AA045345E45828269B7C01C59E4D7520B07A6E4CA28CD74E3F64EF2EABEBDB22383B768EDB08D019127E70C05580AE82CA2A08D640B02F14FB02C3FFEC69F2420CCDF60E14CF43F49750FCCAD08C9B63A9C8BEB2F18DB5C6778F77323D6FA74A683A77E62381CD0428212F0612889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113A084312F80ED498012F21A2081980950C29817C0F62440093BEB1A58210A2F80AC0A549FEB5FE23FD759E33537CD0227B39788352900266980A345CC7E929691122AB01EC0224BF53911796D83E82B12E8CB5D6BD7BD1CC57D66E6E7A68CEFD6FAC440756200FDB865C971A63F8D49810B8A9E7F45739769BA8E2A653367885857026AD46D2D46B66096848A352A5864C1BA39EF2D37EAFFE20D31AD60A8F17B697D0239C9B0CBF8AA82E79F675826A3E2B8B9CC8950B9DFA8509BC2182361A07A8974F5DC5CBC75D96F4C04F5DE4CE55CA62F08304F443E6340D6970A9EBF9F01398C8F50CAF6FED0C497A6B14B28C0EB50CB09E39E31615F15E5AC7D91C67D6360D5730BD5DA3561CFDA09F5E73BBD475AD0C74D9B255E0945FFA3FEEE4EA79F73FB13EB4C03D36C1E376BCF81E086668F6FF771027C31EFF90FB6BB6E27D6BB72F6017FBEE3BB3BBE65DA6CF149287249A13238601A9056F294674DDE5DD707AFB772EE58CFD1A0BE6771C9CAD7C65A272DE7BB8EFDDFA63D57242E09070B9EDF51F77629E53207884A63C191FEE9949B314505ADE4D82F083029AA7ECDF48943C2B7D6ADEFDEA75DB72A6C66C8A88E69BC61A32A2DDFF9AD959C0A9C1CC7733A5AC91AF73971BE62D9D6EC914BA8AA5F2B566B8BE35E4858FD5DC7FE3E807F08ABFE96751BEF2AF7576B1DF1B23E6C66E55CEFDFA86AE40F16DADE5C914A98860BA671176F45D0789EE19F6D0F7E9BFEFBDAAE2E7CFAECC5BEF177416BD3BC2D977173F6BD263EB1375209EBD2B5FF3995675E6C9962424E741DFB7B00CE8F2EAEFE53C1AB9D155DBFE4751A7E6C3660E463BF239350805BF29E3F2B79EB1B7DE2EB66DA7B750DA106C1AEA33FBBB5335471B725D685A67DD3A8B569DA77D6757DF6C1DD16AE55E08BEDABDADE4A9149A81A1C5BACAE78B4BDF1CDADE666ED0A044EC409DF04E461085E12E88B7588714F208A824797EA44854E14C824051A5F31FC68147D5BED119584CF173CFFC0564326F1BC522E739AA8DC91C4ECCC1C2D81682454FCA850F54F8F76B4F8BBB959FB0F51BE248D7F62266885402412AA6261B1EACF6B256092CF711DBBF1ADFD13933C03B3874F20120901FD4EC1AB35DE314CD59F92D35B15685FAA86E6B0A32610898481CAACFEEAE02DA34E97F0135C27733D2067267C0CC60F99402412A6F59BFEAE93B914900B43DE21CB279C40241206229FEBAF0C2E4D38AB51C79F9FCD0C5822178FFA449E902A029430C47553C210E17650694A18E232296188703BA834250C7199943044B81D549A1286B84C4A1822DC0E2A4D09435C66CC120E09F01280DF8538A271A5553101C04408BA8D0BF721812861889B8A434255CC932E5DBAE3477A9E9F7BE3B20D218E676CE91BE64CE979679D4EEAAA0F7D2110B950803D8C0D0B801286B89D282554E0D99E7AFDA4B36E5BF9DB10474A5CE9057D871E185856E3B3DA9CA9E12961889B8950C2370B9EBF4B88A324BE74396B2F50C1D9260E420943DC4A54128ACAAC7C0ABF1638DAD5B959FB4108BE30DAF3C23E9E12864838120953FA6B62ADACCDCDF57E16AA3F6BE5DC30CFA18421D28D424255BDB058AD5D1EE2181D53BA3C6FD20EBA66A73F02E83169284A18E236A2905044BE9CAF0CFE7B886374546937673F038551379EA684215E62514898D65F136B756D65C7FE8D027BB77A7E18E751C230A86EAA19858410B9A650193C37C4313AA6F482E99327045DC1CBA60D440943DC482412020F163CDFD8DBF9858877D4A5DD6CEF2910BD7BD427867C02250C1170441202D0CB0A5EEDA21047497CE98169078DDB655CCFAF81E1AFB519F5871286B88EE82404043823EFF93787384EA24BBB39FB31288E327188682454BD24CEE12D40E3E81F0012ED6FD6EB3D01ACABFBBD41E33E0B8B837FA3A7EBF49E05E87CD33E96782F8F48248C6B0129EEBB0AD055007E15287E9F360E5D96B55FE30EDC504C34F1E5E796FBA08469BB4239AF710428A1712B61A0B411A08469DB38E7358E0025346E250C94360294306D1BE7BCC611A084C6AD8481D2468012A66DE39CD7380294D0B8953050DA0850C2B46D9CF31A4780121AB712064A1B014A98B68D735EE3085042E356C2406923D090B0F19BC6C6FD8E55DA16C179534B605D43C25F0098925A041C9C04E225B04ADC9C7D2F1427C79B83DD4920B504FEAB21E10D50CC492D020E4E02311250C195E2663317436420C61C6C4D02A92520963555E6FFFD219FB4BABB9E4B2D050E4E02F11178A5E0F97B49A3BFEBD84F03F8EBF8B2B03309A48F8000B7E43D7FD6B084A56CE63B227259FA3070621288938038056FB03A2CE18219933F1504C1CFE38CC3DE249032028F153CFF98C6CCC3126EFC6968DF2582AFA60C04C725815808A8E8E9C54AED47EF93B09C9D7CBC4AF0502C89D89404D244608B674A6EFE49B8E90D9A5B4D7EB6779AF6C4593B9780881E93AFD41E1B99F07D12969DCCA715F244E78ECFC948205E028D0FE78B15FFFCF7A6789F841B7F1AF65E0EE805F146657712E83C0222B83D5FF1FF6ECBC93E2061E380B2632F52E0EB9D87811391407C0434A8EF595CB2F2B5A624DCF4F7C307009C105F64762681CE211004C167FB97ACD8EA5FF5B6FA937064F4B263FF5481A99D83829390401C04E4A28237F8A15F86D9A6848DB82527739540F838E63876C79E892720A267E62BB5EF6F6B90ED4A382C62CE9E2B8A1F249E08072081A80828D6007A56A15ABB6D7B2D9B9270E3DF117BB3805ECD5B616C0F29FF3B09E0275AD781E26DB5A79A61D1B4848D62F37353C65BC186391069FC1230EF4BD30C611E931A02023C0351375FA92D1ECDD0A39270A4704346041BE65A22DFA08CA3C1CD633B94C0EF1AF2AD7D77A83C70FB73EB473B634B128E34B96EDAC1BB76F7F49CA4D093009C04C1AEA30DC0E349209104861F432E77A815FCE7BA401FB9A0BA626DAB738C49C22D9B961DFB04854C15E878052608305EA11300D9ADD5803C8F046226F02A04AB45E555557D552C595D071EEAAF0C2E6D57AEB64AD8AE50AC430269224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C95260294304DDBE6AC4612A08446AE85A1D2448012A669DB9CD5480294D0C8B530549A0850C2346D9BB31A4980121AB916864A13014A98A66D73562309504223D7C25069224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C952602FF0F715CF37F1EAD8FFC0000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (41, 4, '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001B2E49444154785EED5D09941C55B9FEFEEA99099B844094D5070A0804A6AB43140451597D44643784747522B22A245D3D117CA020E1890BEB74771295680099AE1E20B2681064131425222FA6AB13020A6A7043901010216466BAFE776AB2906566BA6E757575F5CC5FE7788E9CFCCBF77F75BFB9D555F7FE97209730200C0CCA000937C280303038032210191DC2C0100C88406478080322101903C2803F066406F1C79B788D1006442023E4464B99FE181081F8E34DBC46080322901172A3A54C7F0C8840FCF1265E23840111C808B9D152A63F064420FE7813AF11C280086484DC6829D31F0322107FBC89D70861400432426EB494E98F0111883FDEC46B843020021921375ACAF4C78008C41F6FE23542188894406E3A7FC2366FAFE63D35EEDB134CFB8279C711721F4674991AF03768DA1F41CE8B2BF72EBF386B169CA810D27081E40CFD54006703D80FC0BE51214670348C81D504BCC08C458033CF2C2E5DDC3024001A2690ACA1A768AD308E6A2401923BE20C30E6355228A10B249B4C4C22E22F013834E2B746E0458901C6BC0A233FB3DB7E264C58A10AC41587467C073770E60A935CC91530038C3F708CA765BACA4F051C79D070A10964DDCC71675885499E61CBC04B9AC6A9195DE59F8751612802117184712B47548E37496323DD555E58EFAAEB2E905C32B12F133F49C0D87A1723F147160331473B7C7AF79245F5ACBAFE0249E93781717E3D8B90D823930106EECE58F6E9F5ACBEAE02C9A5E2C783E9817A1620B14736030C4CCD5876A15E2CD4572086FE088063EA055EE20A0300ECADB66D39FC82798BDFAE071B7513482E153F174CDFAF076889290C6CCC000157A62DFB7FEBC14A1D05A23F01C6113E412F27C2330C5AEED35FDC9A8501C739B21F2AD127FD43A6674DAB34CEBFFFE09E751148DE887F96410B7C00FEB606A738C35ABAD487AFB8343103D954FC7462FA1F001FF15306397C52BA3BF8D7BE751148CED0EF0370824AA1CC989129DA73547CC47678313067DAFE3B39CEA81F30E314E5CA18BF328BF6C795FDAA38042E907C72FCB14CCEC32A4009B8396DD9E7A8F888EDF064E0C6A9E33F1C739CA7FD54578FEF22810B2497D40B20186A05F2B1A6557E54CD47AC872B0379233E8F41E7A9D6478C7BD345DBDD3E11D815A840664F1DFF614751FD047A206D953E1D584512A8E919F0338ED6171D8B61BFE9B7D97F088A844005923374F737C4454AE00893CD822D8B1895481BFEC67E671126CCCF14EC738362283081CC9E1AFF80E390FBF6695BCFE008BF320BC1FFB0F29C5F0C23CB402DB34865ABBE9D66CE7FE6B5208A0B4C2039237E35405F5501C5CCE7668AE5F92A3E623B7218F03D8B30AEC914ED4B83602A1081B8CD16DE79ABCF7DEEDB5D0194BD6A5FFBE0286DD057C02EA6213050C32CC2A6656B41400C4420D954FC1262BA56059003EAE8B04A59151FB11D790CF89D45407C8959285F5F2B638108246FE8CB1838D03B18FECBEA9ED6F8A50B16BFE1DD472C472203BE6711C6BFCCA2FDBE5A39AB59205923711E81E72901617CCD2CDA5F57F211E311CB80FF5904679B05FB965A88AB59203943FF3580C31540BC45E0FDD356F96F0A3E623A8219F03D8B103D6B166A5BC4589340F249FD3426DCA572EF187C5DC62A7F59C5476C8501BFB308697C522D7BD76B12482E15FF299894BE823B5A6C5C47D7EF9E955B2E0CA830E07F16A9ED5B9B6F8164A7E847908627548A04F03DD3B2BFA8E823E6C2403F037E6711107DCC2C949EF443A36F81E48CB80550522529310E4D17EDDFAAF888AD30B09E01BFB30811EE4D17FC2D62F42510B7950F8815178471D1B4CA8AAB7C871E1C9D6726F6D262EE0B02DE498651F4186076EC4C71E92F8344E67716F1BB88D19F408CC45C802F542B3CB825ED9D53E3476B0E5D02E078350C62DD0806887145BA685F1D446EBFB30808F34D1F8B18950572D3A409A3DF69EBFB07806DBC164CC08369CB0E6430E792F18B41749DD7DC6217190696ADEAE99D306BC1F29E5A11E552FA0FC050DE60E76711A3B240F286FE75062E5729D271E8D48EEED2BD2A3E03D97626DB3FA891F6C75AE3887F631820E086B4655F5C6B76BFB30813AEC914D416312A0B2467E87F07B09BD72289E8FFD28592AF8DF89BE7C81BFAF50CB84727C8D5A40C10B61A9DB69EFA77ADF0F3867E0B036729C6515EC4A824909CA1CF70DFB62981624C338B769792CF20C6394377D76E6D1F442C89D118061CA65447B164D59ADDEF2CA2BA885149205923BE9C40072814B7C2B4EC0F28D80F6A3AF7AC71BBF4F5B6BE14442C89D14006089D66C19E1904829CA1BB7F78534AB108FF320BDE17317A1648D6D0271370BB0A18065D94B14ADF51F119CA3667E8BD005A828A2771C267800933328560DA3BF99F45BC2F62F42C90BC117F9241872950FA66A5679B9D672E58B45AC16748D3BC912832784A50F1244EF80C30F1FE9942F9F74165F639269E332DDBD393902781CC4E258E74981F53292AC877DFEBF3E68CF83100B90DB1E56A4E06EE312DFBB420A1FB9D45BC2E62F424905C32FE5390DAA2C4368D77FE6257F99520C97063E50CFD360053838E2BF1EACF401F69892F1596D84167CAA6F43B89314929AEC7862155059237C68F63386A278B32E7CC6239A30458C1386FE85731F0350517316D2003CCF8B946FCD5B455FE4D3D60F89D45BC2C62AC2A90ACA1DF428AEF9BA9AFB24FFA8E6575FDA0F79D64FB985E4D9B0476BB82F33E00EF4DD06421643D46A06A4CE2BD1DA63F12506287EFCF74DBBF520DA16A9F35F4BB08507A7CF3B2887148815C3F65C2D856ADEF5F8A600BA665CB23902269625E1B037E67916A8B1887144836A57F9B186E4B7ACF97C334BEA3582A7976104361202006B246E2C7043E49295C95458C430A2467E8EEB1565B7B4D287D76BD322576F560C06F67F8586CCDD8E9B73DB772204C830A2497D26782718352218CA3CDA2ADF43A5829BE180B035518F07536CD108B18071788A1BB4BDA7755B8234F9B967D8882BD980A038133904FEA8730E129C5C0832E621C502059434F11A0B4C090C093D256F9478AC0C45C18089C816C52FF1911FE5B2530137F3953286FB1CF684081E40CDDFD91AD2B24F89369D97B2BD88BA93050370672A9C4E16076FBB579BF0659C4B88540B2A9C471C4FC90F7C8EE01A5F842BA60DFA4E223B6C2403D19C819F187013A5629076DB988710B817426E3B334A22BBD0626E08DB465EFE0D55EEC84813018C8A7E21F6726D58611779A963D79637C9B0864EEA471DBF58D6A2B8159E171892E37ADD237C2285A7208032A0C640DFD3102D69EC3EEEDFAB769D9A3071548A7D13E518376BFB7586BAD1CA2A33A0AA5C7557CC456180883815C523F0A849FABE462D02119ABB4E194DD4D66907C2AF10D66FE8A42C0D5A6657BEE6EA210574C85819A19B83E397ECF567256A80462E0B28C657F7BBDCF2602C919BAFBCCE6F9307606EECE58F6E92A00C456180893819CA1BB0D0EF7F59E931F31ADF271830984BD0702407C9E5928FF40C9478C85811019C82513DF01B14A3FE84D3E1A6E9841E69FBDDF7BFEB3662BA5762CEC54F44CF7B27288F54A2A61408981CEA47E9AA67844474B4FEF7B2E5AB0FC3F6EA20D02B9719ABE7BAC02A5436D2A3DDB6C13E49E73A5CAC55818F0C0809F3ED25A45DB7DC6ED4BDCA556EF0A64F694F6FD1D4DF37C6E07037FCF58F61E1E308A8930D0300618A0BCA13B2A00366E2CB16106515DE445C0E369CB3E4A25B1D80A038D6020978CBF0022CFDFF6367ED5BB4120AA07E210F062DAB2F76A44C19253185061206F249E64B0E796550EE8880EABD4BF966B8340661BEDED0E34A51FDCDBB78ED9FAF3B73EFE8E0A58B11506C2662097D4FF0C82E73FE6150707CDECB6FB1B95BC3B834C9DF05FE4F4BDA8029EA01D98B6962C57F189AAED9C54FCE08A831389DCA31AEAD37D23AAB5AFC795370EDDDEC19AFDB6DE36F6CC05F316BBBB4987C59533E2AB01DACA6B319518F698799BED36697F5720EBCEFD78DD6B10D78E811333967D9F8A4FD46CB3867E2981A761D39EC3EE1B8CDB4CCBBE2C6A78EB8167DD0255F711E4531BE2131682E976D32A15EB9133AC989D672576D07A79954ABE1E8DB7BBA4ABFCD6260271FF2367E84A1F0A89D94C17CB6ADDDE5590D6D93667E86E9FA6438748D3655AF6B43AC36858F84E23F1310D7C2380C17782325F6216CBD7370C648D8955DFCE0278DDB4EC31EBD36EBAD424A53F01C6119E3131EE328BF6673DDB47C8306BC43B0954BDB95D930F90C1289F3D35FE01C7C1D300553DDF919852E9008E2C68C4EDF7B160F13ED3B24F1C582086FE2D0097AA14E2104FE828947FA7E2D368DB5C523F1F04CF1BBC98F9739962D96D793A6CAE9CA1CF0770B697820878A6AFA7EF1333173CF39A17FB28D9E40D3DC740DA2B26625C9A2EDAD70C28907C2A710233ABFDA660BADE2C96DC03359BE2EA9C7AF00131A7B28081031500F73A44A776144A3F55F089AC69CE487C1560B5433509B79B05BBE93AEB670DFD2F04BCDFEBCDD04047CC58F78AD7F5D9E4116BDD0FF53F01D8D16B40007F7B9B9DF865C5A54A3F8414E2076A9A37F4658AE2E8CFCFC02B19CBDE3950300D089633F45301DCED273531E6A48BB67BCA58535CF964FBB14CDAC30A609F372DFB431BDB6FB1E53697D20B60289D674EC417A60BE5EF2A00698869CED01701F8680DC99BBEB591EA8B98CDB972E07CBAC35AFA400D1C86E69A4B26B22036BD2664209FB1EC4DECB710483E953098B9E035E83ABBB7348D4F9AD15556DABDA598C3B7F98D930EDBBAA5EDEDFB596DFBE580F9DCE7F1585B65E245B72CFBAB6F400D70F4B3686F709834DDB44A731B5086E79473A6E8075634B8FB9BBC3F0D114F340BE59F0D3983DC78CE813BC656B73C0F5208BC36E29F34C7396146F7D2E73C5711826167329188117706218E77E1D24A8D70EE8C42ED475B874001661BE3273A7094B65257C7453F22A2ABD37538EFA37AEEEA1639236E0194AC6EB9C1628BC72BF75F06E98B159F0BD0850AC1D79BFE66BB51EF7CEA9C9B7FFFA60FDFC05D72A98409E65900EAD575A58B62E84CDF662F091C7C0001D7FDA674DF4A2ABD99F49E9A56123B57A48BD17ABCCEA6129710F3B5DEEBE897C280CD47061448FE7313F6E6DEBE4520BC572D49BFF53D4C7C5990E7D0A96270978D380E5DC18453547D55ED097887419DD4439DE9054B548F8A504DE7D93E67249200BBC268F7ECE4DFB0E054E88A8EDB4B4AFBBFFDA71BDC73B6A14F76140F9B05F0BCD34A8774DC5ADA6225C9A0BD79D72EC180FB5D44F962E055025D675A2545152BA7DAC4213FF9A0BD9D166D3A314D07857B1A2E012F38A0CE204FF5F5C3467E4AFC448ED179606CF8D8E5278E0F9FBF83F9FB8ED63AAFA3B038F4E3BADD2525D4EB5CE9E9E3EF66C50DB522645081E467EC330AAF6DFB240307FB20ABDF85815FC788AF9D5128FFC46F0C2F7EFD87A7542A278030C3CB97612F31FDDA30F0B8A6F18DE9AEF242BF31FCF8F50B43A3F3017CC68F7F803EFF00F33C402B9AC5D2F301C61D3454672A718AC6EC363B4CA8E663E077BBF57CE89033162CA80CE45BE57C90FE5365DD5FF5B59E4D7EB3E638D705F9033E6FC4F7704029229CA0B43C66080699E90C22BE5395E441EC973361618C69E1C61F9E028ADD1FC6FDC3C08E7332809339884729C27C308F062898E5438C8799F02069FCA0D9555E1664ED6EAC1B26EB1F6A89D1852AAF7237C3D007F0F1A6557E74306CD5CF284CC6D344940BA8387771E0E38EA3FDA4A37B89FB4D42F9CAA7E2D3C0DA5406ABF55DAD9E296D5AF6EC9C11BF0CA06F563757B2F80D132D8C7165E10C6BE95225CFCD8CE724C7EFD987CAC9009D4C84A36B89B599EF63A665BBF12867C4EF0C4C241B92D02F999D0709FCA0595CBAD82FEE1BCE3CE8FD2DB1962900BB2B8F8FF11B679D5FFF3D1F2A465581B8CE7943FF1E0317D4086673F77F02580CC62BEE576AD2F00A815E76DCFFEF54B621D27662D05880F720D03E0E785F02F60918437F3887E8AA8E42C97DDBD57FAD7B5CB97CC855AEFE813CC4C48F30F332EE719EF2B2BE69DD76E88341F82418EE8CE1F9D42F2F3009EE1E18FBF8F5B66BF771D743241BD03C05820DC632AEF06F33B797073CCF63EE59E376A9F4B6ECC58CBD98682F62B88FD1DE17D30E513C0337652CFB0BD5F8F12490FE4193D2EF64D5B3A8AB658FC2BF0FB25AB7FFE3E2A8D5972B769AF453D1F3207E1E4C2B417815CC6FBB7F18883196083B39C04708D8D64F602F3E0CDC9AB1ECCF6F6E1B8248364FF92A80956B5FF0C05D61ECEE00F4BCC9C94BAD1BD96CD1A47A307FCF027103E40CDDDDA77BB82298A89ABBCFC45F332DFB9EA100764E891FAD69E4CE26C3AE4105117D335D287D75B0FAFB4592D26F00A323AA37511597FBE22863D99E67212581AC1389FB11703B556091B227CC6B23BEE28B5DE557BCE25ABB02D6B95C65EBA6D7D80DB02B390E5DD5D1ED6D25C06CA37DA203CDFD23D1EC7F1CDF342D7B7B15BE9505B24E246EFFACFD551245C19619CF681A5F9B2EF8DBDB919D1A3F949CFED9A4D1AF527DD349E06CA555BB6AA08F6243059D75E4912D63F678DD7DE4CC10B0C91101BEC184EA48CF9A56699C6A4A5F027193E453891F32BB7BB99BE062B81B7DB22DBDBD9DEB5B4AD6823A9B8C9F4344EE8AE7E679EC222CA40A7F3FDD5DDBF719773F8DC6950C18EE3797A6B898E9B64CB1F4393F607D0BC44D964DE9D3A97FAD53F56D9B7EC005E0D303A2F9B15ECE4EBFC376BB7C077AF59FA7C29A0152DB1E102888EAC1EE2387E7D52A8CCDD3CC9E1A3FDA61728512F617FBEA15BF6BF132405FAF65E5714D027171ACDB14EFEE28F4B47D53A53ADFB68C15442890E358417E9C1C0C4F76DAC17154FA52044A291E9DEDBBC42A8EAF82E95EC4708FD9550A7815EFA6993BA7B41F16D3E80C06B94797A91C1B5EAFDADDB86F33782EB4D63999AEC57FA92551CD02599F3C976C3F9948BB84818FD502A806DF3E101E701C7E60FBADD6141AB1A2F8FA2913C6B669951483CFACD22DA586320775ED61F0A38076CFD64EEC9E0BBA17BBAF4D43BBE64CDB7FA7BE4ADB64223A1E8C8901ACBE50C7CE5803C22D310773A6AF6BFCA61E64538FC004F2AE50FA1B22B8D36E183F64DF22A2BB1CE687995A1E6DC422B9C16E40DE183F8EC147017C0C18A78006DE5A50E30D5C01F0FD20FA05572ABFC8742F7BB9C67881B877A626EC4ADC778C46741C33BB072CD5ED3B8E0B98087F6050371C5841AFFF0A5C20EB195E7B9C021D4BC42704FB819156329CBB89B57B57F5F63C326BC1F29E40EE6A1D835C73F67EEF19D533EA286272BF829F04606C0DE99E04F83E303F54CB928D1AF22BB9DE39695CDB4BAD6DC71239A730B4D300AEDA66C86382D50CDCA1113F84316FDF9D9EFDC21A8F7E4A667513C8C628AE9B1ADFB6B5A27D5AD3781218FB3368378F44B9DDED9632782981963A444B87C381A1FD82E9DD6E8CC6CE18028F7198C710E0362B1BE330B626A255406515885E63C2AA16A2554E4C5BF5DA9F47AF9AF5F8E37D4A773862C69DA9C4911A733B81DB19E4EE5571FF576D8671F769B8B3E58B606D05B3F38436F6EDFBEA258A8D290B452003DDA3FCC47D465576DE6E57AD0FBB113BBB31685707BC1D082B50E11588B5AD88D22353C4C6D9B082E3FEC1D87ACDA8D1AC6107EEA31DA0D19A9618BFD1D75B7963F4A8B16F34B2417AC30432ACEEB014336C1910810CDB5B2B8505C1800824081625C6B0654004326C6FAD14160403229020589418C3960111C8B0BDB55258100C345C206E73B3356DCEEEC3E528B7206E8AC400B2530E8AB711FDF5C20637456F984072C9F895207237DD7FDC1D106ECF5B07FCF0280DDF52D9C8248369F830909F34FEBDDCE65CC1C0C48DFA0F3C49C0A24A2B5DADBA87250866421788BB4E4743DF6C30DC353A035DCF691A5F14D546D841902E31B664209B6CFF0491E636C43E68107E5E72883F13F6614DA10B2467E86EEBFC0D1D340622C3ED7212D3F8A333BACA7F96C134FC19E84CB67F3046DA2206DE57ADDAD53D2D3B5CBA60F11BD5EC82FAF75005E2F6B462A61F7A02CF94338BA5EA67087A0A2646516620974A64C19ECFF1B8D9B4EC73C2AA275481E48CC42F00FE84D7E27A9D96F75E1CF2BE06AFD8C42E1806FA8FDB78A765A55234A653CC62E9C74A3E3E8DC315482AB11CCC0778C5EA808EE8D8E8BC38AF7E62D73C0CAC6B84E176DC54B8F82BA655F6D5585D2149BF69B8023174B779C28633A8AB8125E09CB465DF5CCD4EFEBD7919C825F5A920289D205C4B130655A6C21608AB007498AFEA289637B40455F115DBE66020974ACCC2DACEEC2AD7FA3EC22A3EBE6C4520BE6813A7A01810816CC4A4EA09AB328304350CA31B4704220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA104420350A24BAB7B63EC83480EB1339A251358DC07CA522BAC74CCB3E5AD1C79739F9F2F2E99433F47F02D8D9A7BBB809036B1960CA99C552260C3AC21548326E83281E4661926318334038DB2CD8B7845161B80249E9DD609C19466192631833A071BBD9555E164685A10A249B8A9F4E4C3F0AA330C9316C192899963D3EACEA4215C8B792ED63B621AD0C608FB00A943CC38C01E65966B17C555855852A10B7A85C2A7E3198AE0BAB40C933AC1878CE69A5C33A6E2DBD1E5655A10B64D6A4716D3BB6B52E62E0E0B08A943CC3830187F9C28E62F9BB615613BA40D6CE2289C399F97E02468759ACE46A5E06089C4D5BE58EB02B688840FA4562E8A732702D01FB845DB4E46B3A066E362DFB9C46A06E9840DC62E79E356E97BEDED6AF00B800405B2308909C9166E06982766DDA5AD2B0379F0D15C8FA5BD339F9A00362AD2D2987F90C9951223D60C302771F03858C65DF1156C2C1F24442201B83737F9FC0718E03D12EEEB21402C6349A24C95F3F0618E801F032885E6607BFEDE3D86317772F7EB57E19D522474E206AF0C55A18A82F032290FAF22BD19B9C01114893DF40815F5F064420F5E557A2373903229026BF8102BFBE0C8840EACBAF446F720644204D7E03057E7D191081D4975F89DEE40C88409AFC060AFCFA322002A92FBF12BDC919108134F90D14F8F5654004525F7E257A9333200269F21B28F0EBCB8008A4BEFC4AF426674004D2E43750E0D7970111487DF995E84DCE8008A4C96FA0C0AF2F032290FAF22BD19B9C81FF073BF4316E702655E80000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (42, 4, '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001A2649444154785EED5D7B981C5595FF9DEAC96365453F82F20A2C484009495727115605410427BCF24009245D3D91281F88C974F50409101002AE6FCD74F50402282C1FE9EA3C411E110D288B0BC28226E9EA84C8CBB7A8B84B58D44548A6EBEC5793A0434832FDA85B75ABEAD65FF37D73EFEF9CF33BF7D7B74ED5AD7B09EA12CEC0E2DCC43129F48F01D351048C71C14711680C80A31A34FE1C839F07E8398D30F0771D1DCFCF2F6F78BEC1FEAA598B0C508BFD54B7DD30B06AC6D8E17FEA1831A94EF513403811A0B14D88A0554E9F03780B188FBACC3F7EA5BFBE7ED1EA2DDB5A0553FDDECC8012481B23A27766E670EA702769D02682F9430C4F14E86803B2EDAECCE807E1518DE831B8BCBEEED2869E15D55FB50D9C5000259026136F19E95319389B40A70218DF64F7709A13D598DD8708586BDAB51F86E34434AD2A813490B752563FDE254C21E06C009906BAC8DB84B011C05A72B1365F719E94D751393C5302D9431E7ABB261EA3B9EE14029FCDC087E54897EF5E3C02D05A57D3EEEB59B6E167BEA3C7005009649724F61AE3CFD058BB04842931C86FE32130EE73C95DDA636FFA5EE39DE2DF520964678EFBBAD21F755DED1280CF8D7FDAF71621ADD1347769F7B2DA43C9E66147F489174871967E22A5F019300C3520063140B0B98E9B0ACB9D4793CC4B6205E215DE0C7C068439491E0043C6CEF877265A5AB0AB3F19B26D0C1B244E20C559E30E80965A48403E86F9141712A177E4EB1DD75DBC7AFD2BE28CC8879C288114B3E9D944B410C07BE54B45043CF21E11BB749D59A9DE13016F7D71311102291913C682DC85ACEA0C5F060D12349BC45E20C5ACDE43046FD6D8DF9FD1A150763EDE49C46C125B8114B3E34FD2485BC8C06435A4053210F3D9249602B1721913CC4581C342410F6660A036C1A566C5F98FB811133B815886BE14DEE35B7505CA0001AF31D063DACE4D811A166C2C5602B10CDD7BFB7B8A60CE14FC5E186070B160D77AE242522C04F28D59E3DF374CD3BC65DC07C72531518E8340DFCBDBD533A31CC31BBE475E205676FC349076771C9211B3187E59DFF6B663E7AF7EFC6F518E2BD202B18CCC0280BF1AE504C4DD779769424FA55A8D6A9C91158865E85E21EE15E4EA929C81BA8B71F3973B4F49EEE66EDD8BA44006BED980767F14094FAACFDB593BFC73958DBF8E5AFC9113C88EEF36487D571DB59106F4770CDB7EE8DCDBB7FC314AAE474A2003DF6E6878244A042B5F0731C0FCF361E0E33E5BD9F4725478898C408A46E63802FF18C0B0A890ABFCDC2D033F1CB94FC7D48B6F59FF6A14F88984408AB327A651AFDFE9ED4A180552958F4331C0F7BCFCC27EE72E7AF8E1FEA15A86FD7FE90572C305630FECDFD6B10E44E9B0C952F67D656095693BE7FB8A28004C7A815839BDACBE17179079292079A169D7BE2C852B7B70426A81140DFD0A02A42650E6E446C1370226E76DE701597D955620A55CE62C665E2B2B71CA2F7F18206043FFB6FE8FCD5FFDD4567F10FD45915220C5AE498791DBEFFDAAA86FC7FDCDB794680CFE56C1AE5D24A373520AC43232ABD5066E320E17813E312E362BCE2D022DB4042D9D404A867E0D03D7B5148DEA1465065E4E119F36AF5CDB2053105209A42F979EEA3225664B1999068214BE301E342B4EA714BEEC74422A815846E647009F241341CA97801920BECC2CD7BE11B0D53D9A934620A56C3ACF44962CC4283F426280F0DF290D27CEBBC37936240FDE64560A812C9EAD1F92AAF363001D260329CA87901920DC6A969D0B43F662C0BC1402B172FA623062F3A1BF0C898DBA0FA4F1D4FCB2DA7D61C711BA40FA8CCC092E38D15BEC873D08A4B44F78D42C3BA19FEC15BA402C43BF0BC03952264939152A034CB4A050AE7E3D4C27421548299B3198B81C2601B2D866E04FC47801DA8047A3C178972CBE85E68704057BA8022966D33F21A2F7879680E00DFF19E0B5205ACF9E185CBCC023E8776F1B9E7AE1E25BD66F1FECCEA20B0E1FB96FFF7EA309EEE80EE6D12EF850029D9CBCBD86F946D3AECD0D3E553B2C862690623633838857851578507609788A81EFBA1AAFEBF1E1DCBF5B3FF5DEB7FFDFEB232633D1E9E08163A90F082A9690ECBC4CE074DEAEFD2E0CFBA109C4323277033C2D8CA0C5DBE497C0E87339F540CFF28D8F8BB277F3459386BDFE6ABD935D4C07B1148F4545C44A440BF221D522A108A4D7C89CA0C5F3C9950BA6BEBAA62D995FDEF0BC88C1B227CC52D78493B9EE7683F08920ED06628BB0D12C3B1303B1B58B91500462E5323782F992300216659398EEA014F5752FDBF85351361AC1ED9D95994EC4DD44F86823EDA3D28699CE2B54AAAB83F6377081F475A58FA8BBE410F0F6A08315628F711F6BD45728571F1482DF22A8354B9F431A7A1818DF22846CDDBE63DACEC783762A708194B2FAD54CF842D0818AB0C78C25858AD32D02DB0FCC1B668E3BB49EEA58C2E0A97EE0858DC1A0E3833E8E3A508194CE183382F7DBC789C79782F26F38F0C680B6B2992288CDB00778BBF6C3387B245881E4D2B398A9D22E5161F667601B314E8FDA716356363D1344CBC3E4CE07DB2F0E63F7982077660C5420564EFF36189FF681A8702018CF9A1527B2DFC9EF9CC17F06E0887008F4C32A19A65D0DEC4736588118FA2F011CEE074D2160544DDB9910825DDF4D5A86FE74846F73CBA6ED74F94ECA1E000313486F2EF3118D3992A7A07AEBA40AB6139B37D68B677CF09F52C35F8DC4DEB86F1DB7FC52FAA8FD0E3C655130DB960626906256FF0A112E0F4AF97EDA71EB7444CF8AEAAFFCC40C1B6BE766E04F86ED472BF6837C2712A040A2BA30914F33ED5A2CCF23B172FA1C306E6B659086DC27B0DBAC4004B274B67EC8B63A42596CD64E22097451DEAE7EAB1D0CD9FB5A59FD9B20CC97DDCF37FBC72F99766DFF207C0E4420562E7D2198A236D06E326D2756CB61F6548716B3E927A3F6D941507BFA062290A2A17B677B04BE4CA0D55F18EF5D07DCFA7185E59B6BAD6244A95FC9D03FC5C0AD51F219444BCD72F5B3A27D0E442096A17BB75787880EC62FFC30DED8FAE57BAB38564E7F048C135BED1F42BFCDA6ED085F67265C20C559E30E202D1599831B0978454BE17859F6650A6AE05946260BB01D943D1FECB0693B3B3E501678091748048F6CFE8A693B570AE45C5A68CB483F08D069D23AB88B631D5A6AECDC651BBC9501C22EE10229E6320B89F98BC222F017F845D63A8E2F2C5BFF1B7F61A381D69BD53FAE11EE8C86B7DEF7E23C236FD7D688F457B840ACACBE26325FB9312F322BB544EF2C5F32F4EF4765630802AECDDBCEF5D11688A1FF1CC07B4406E11736B37B72A1B2E93FFDC28B228E65641600FCD588F82EFC2050A13348EF0599776ADB392A87C63F67DACED1111918C2DC2CCDD627701D529DD1B19760853FC9122A102BAB9F02C243C2B2E923300337176CE7333E424616CACAA69D881CBB2DFC49965081140DFD5202A439EB616F2396812905DB5187860288D2F213D14FB2840AA464A4BFC6A0CBA4FF2925FCC52C3BFB4AEF67400E1667E9279286470232D79619D14B4E840AC4CAE9378321E5E9A583B342C0CABCEDCC6C2B5331EB5C34F4170978B7EC61895EFA2E5A20CBC188C0C0A3CB4DBBFA35D9074390FE5939FD5E30A60469B3155BCC7C61A15213B68E4CA8404A46E67E069FD14AE041F6114D7290B1F865CB323237002C7C3160DBFE122E35CBCEE2B671F60020542096A1FF18C0874439EF17AE46744E77B97AB75F7871C0B18CF495007D49FA5888AE33CBD545A2FC142D904D00C68972DE2F5C223E295FAE45A228F52BE6A170ACACDE05C21D43B50BFBFFA2575E0B1548D1D07F43C0A1619338947D82766CDEDEB865A87649FA7F5436D920E0B6BCED08DB4A4AA8404A86FEBF0CBC43F681F5FAB6ED072D58BD25324BF283E073716EE29814D79F0BC2565B3618779A15E7DCB630F6D259A8402C4367518EFB893B729F8EE1BB9EF0E4277E14B14ADD6346F0D67D5E93DF77FE8169D73E26CA4FD102790580F42FE00823DF91B79FF8B32892A3885B9A33E15DBCCDFD53047C17BAEBBB6881FC76E0404AC92F4DE3F7742FAB79BB3EAA6B2703BDB9F4448D697D040811BAB9865081940C7D3303C7CA4EB2A669C7857DF08D6C1CF5E5D2535DA67B64F36B577F18B8BE603BD78AF253B040328F31F883A29CF70B9719A7172ACE3ABFF0E280631999B9002F913F169A67DAD51B44F929582051F93A2DD81DC34525D34F5CCBD0BF0CE00A3F314560457A2D5629A7AF62C60C11C4F88C99376DA7CF67CC48C35959BD0C82217B10E46A1FC92FDFF823517E0A9D41A2721E88CB7C5D4FA5266CB982A8E489C4B572E987C174B2481B7E60BBFDF5B13D2B370BDBD944A8408A397D31317AFC204230C613A6ED7C40B08DC8C0978C7FDD97F19AF7885EFAAB3EB27FD4FC5B9FDA2ACA51A102E9CDA6176944C29E30F8498A4B1D07F794D7FFC14FCCA8621573E94F1093D0ED747CE2A6DFB49D613E61ED1646A8404A46FA5C06057EB6754B8431669B1567594B7D63D6292AB7C6007E6FDA8ED02D6D850AA46FD6F8F7B99A26ECFED0E77119D899133EFBED3B9C65E82F0038D87760FF01851F8B2754201E1F96A16F07D0E13F377E23F24BFB0EDB6FF49CDB1F8EC0FA23BF63FF075EB476A2A17B0B76759A3836BCDD1B055F96A15701E882CDF802AF7636018AD9F4178968A12F840A0661E2AB0AE59AD08FBAC40B2422CFD3BD5C12F85B79BB26FD2613A2C6DDCD174D1AF6DA5FFB9F002122A7F98A3F1E4FB8408A867E0501DE5BD9485CA25F3CC94C8295D3E783F14D997D1CEC5B2A3562FF79773CF992487F8310C8D904DC2732087FB1698D6957A3F0F6DFD7B0BFDE957EF77097FE0BC011BE028B03DB62DA8EF085B0C205D2D7953EC275E917E2781280CC34DDAC54A55FC9EA67E4564EBF1E8CCFFB8929128B81DB0BB63347A48D1DB7DD015C9691FE1F80460560CA2F133F346D273207C9B41BF492D9FAD1F53A9E00F0CE76B102EC1FC8FAB9600492D36F0343B8DAFD4C8ECB34A7A752BDDD4F4C59B14A59BD8F09F364F56F777E05755445300231F47300DC15A50400D84CFDF5E9F9959BBDF34D627B95BAD253D8A57B2316E076C2C8FD83F84C3A108144EC9C90C163E511D3764E8AD8E069D8DD9231612CC3FD0180831AEE244143023D9EB7AB816C481888403C4E8B46FA7E0249BF0DE9AEF927D0BD79C16F6BC31A7396A1FF14C0A4B0ECB76157E877E883FD0A4C20BD46A6A0817BDB2025B4AECC7447A152FD64680E08306C19BAF7E8FD6C01D0E22109E79B6567957843013DC5F202E9CD66321AF1C62082126283B960566A9610EC80414B59FD6A267C2160B37E997BE6A06D471F7BDEEAD575BF00F78613D80CE2396119BA27904C108189B1217E698318BFFF815ACA4E388DC97D50B41D51F8CCFCA542A5769528FCB7DE6207650940C948F732A810A049DF4D694057B7ED947D070E00B068643E4B60613B80041002288589F93B9CC0EE44029D4116E7D21F4E31C5E098E5E81DB813871F27006B4DDB09F4509F4005E2FDC244F569D65B7F1DF9C6978FAA752F5A0437885FCE566D14BBC61E46DCB1144C67B68A214B3F629A930FF8E56DE002E933F49C0BC4E2D35666AC2350B759A94AB90BBA954B9F0EA61280A36419E4ADFAC1C06F5F1FF1DAB197DFF6CC5F5AC568A55FE00259356346EAF7C39FD944A0635A7158B63E0CBCA031FA46FC7347DFC5B7AC7F5506FFBCB555FDFDE8A6882D1FD91B77A20FCAD993EDC005E23912F1C78C7BE27233187D66C5B9252C910CECC8FEBADB0D4277C4161E0E4999063AB1DBAE7A47FA057A8523904F8E3B92EBA91A186F0B34DA608C3D02C292A05E647921795F02FEEDAFFDF3688730A2F23D47C3D920C243F9B2736AC31D7C6C188A403CFF23B4B54CAB747F9F881E4AB978706EA5EA7D97EFFBB5E39D067F94C0931998E8BB014900358D2FEC5E26EEA8E7BD85199E408CF4A900790BE592703904FCA00EFA4E4F9BB7095636338D89A76BC0290CFC4BDCC963C643854A38B387C76D68021998450C7D2580F3E29EE45DE27B91401B98792B085B5DE6AD1AD14BC4B4B54EF5ADDEFE487568A38878145C1A05E2510C1A45E05100792B8B8727892F8D785A77B916DA72FC500552CAEAC733E13100A924255DC5DA18030CAC2CD8CECCC65A8B6915AA4076CE225F05B0404C780A35CA0CA45CED43F3966F7C3CCC184217C8D2AEF4BBB7D5B5C7407C64984428DB7231C08C25858AE33D950BF50A5D205EF4A55CFA1266BA31542694718918E0973AA8E30373CB1B9E0FDB292904B2F356CB7BA215CAB3EEB093A0ECEFC200E11AB3EC48F1BD8A3402E933269CE1C2BD5F0D96C433F0F4C86D1D1FB878F57A290EF091462003B3484EFF36189F4EFC104936019798B673932C14482590E2AC710710690F80282D0B41CA8F40195866DACEEC402D0E614C2A810C14EC86DEC9803AB35CA651128C2F0EBBF5C985E59B5F0CC65C6356A413C8C0AD5636FD39107DBDB11054AB3830C0449D857255BA6FE5A514C8CEA75ADE4755B938245FC5300403CC979995DA3764E4495A81DC70C1D803FBFB87AF03B3AA47641C39FEF9245DDD3138346905A2EA11FF46A0B448C435AEBB9DB2D51D911188E7683197B98C98BF266D9295632D3340C0E4BCED3CD03240001DA59E41DE88DF3274558F0430180235417C995996B3EE88D40CE2397BC305C71DD8BF7D9BF74B333ED0242A63A21888CC99F4919841066EB5B2FA64227C5F54C6146E400C10D53A3AB64D9E7BFB963F0664B12D339111C840D19ECB5CC6AA1E692BE161778E42DD11B95BACC10E5B39BD0C861176A295FDE61920A205F97235522F802335837829E9CD4D3A48E37EAF1E19D77C8A548F1019884CDD11E919C4737EE7969ADF0B31D9CA74730C6C72A963724F79FD1F9AEB167EEBC8CD206F5066199905007BDFB3AB4B720698717AA1E24472016A640532309318691BA0ACE4E323E1EE45EFA888C8DF62BD1140DFCC0907BB29D7FB6552F5888C3224D866D989F482D348CF20AA1E9151157FF769B34B1D9D51AC3B623383BC114831AB5F4E84AF483D5C92E61CF11966B916F917BB919F41FE51B4AB7A441E0D46BBEE88DD0CE205E4D523F594FB0001C7CA335092E809574CBB169B17B9B19941BCA1D86B8C3F4383A6B60E0A4F979BB5BA36B97BC5C6DF87E782BF966325108F9A524EBF9C59D523FE0E9306D1625277C4F2166B705045235321F0AC06D3AA9AF9C00031AEC8579CD8BDB88DDD0CE2E57AF16CFD908E3AD6B1AA477C18FA8D4050C5B4ABB1A93B623F830C14ED6A2BD3464676DB6D08788AEA5A679CEA8E4408C40BB268E85710F0E5B6478102D823031ADC33BBED4DB15D381ACB5BACC1D92C19990AAB7A4488C419B8B2603BB17E419B0081A44733C85BAF3556C828492828839617EC6AEC178AC65E20DEF8B5B2993341FCDD848E6511616FA9A7D039FF0EE70511E03261264220032231D25702F42599C88FAC2F4C6799956A225EC82646200322C9E9CBC108F5D4D4C88A62A7E349A83B12F3146BD7C15832D2A35DE001021D13F5811A8AFF841566D949D40BD844CD20DEA0EACD65CED298D78632C0A26D740B8127E7EDDAEFA21D4673DE274E20AA1E696E80FCBD7582EA8EC4DE620D0EBC68E82B0838BFC5E192B06EBCD0B46B897CE19AC819C41BDDDF9C39EED08E94B60EAA1ED9BBD8135877A819642703A55CE62C56F5C85E04C23F23A03369758712C820068AD9F44222FA62C2EE991A0A9788CECE97AB897EC19AD85BACC123A464E82B58D5236F120D335F55A8D412FF625509C45BF5DB35F630728779EBB5DED7D04F6BCC1B11B0326F3BEA852A0025909D83BD68E86713705FCCC77E23E13DDD5FAF775EBA62F36F1B691CF7364A2083325CCA65163273A2EB115577BC59F24A20BBFC045A86BE12C07971FF65DC5D7C4C7455A15C4D7CDDA19E62ED65F417BB261D466E7F12EB9155A6EDA817A7BB8C0D3583EC462CA559E929ACD1BD099A459EEEA8D73BE7AABAE32D295702D9830A2C237315C0FF9604913030A5603B6A01E76E92AD04B2170524A31EA1AB4DBB9AE807137BFB115402D90B3B4BB213FEA54E03E78FBC37A63389AA3B8648AC12C8100495BAD253D88D653DF20C6B1D9D8565EB7F1353F1FB12961248033416B3FAD544F842034D23D3845C9E9A5F5E532F46D50CE2CF982DE5F455CC98E10F5AD828AAEE6834036A066990A9DE9999C3358DD7817074835DA46C4684D5F9B293C817A1AD244409A409D68AB9F45462BAA7892E7235653CBB1D5AE7E72A1B7F2D9763F27AA304D2646E4A59FD6A8E683D421A4FCD2F537547332957026986AD9D6D2D23BD1AA0735BE81A5A17667CBE507112F1E2D34F9295405A60D3AB47521DBC8E392AF508AF31ED5A4C1E30B490B036BA2881B4489E951D3F0DA4DDDD62F7E0BA119E4DB95AE73C5577B4C4B912484BB4EDE864E5F4CF83717D1B10C2BB32F1B442B996A48597BE72AA04D2269D9691590DB09CF508E31AB3E2C4EA05679BE96ABABB1248D394BDB9435F57FA08D71D387FE4A836A17CEE4E6B4CBBAAEA8E365955026993C0815BAD6C661A8865AA479E73EBD4D9B3A2FA2B1FC24B348412884FE92F1AFA35045CE7135C7B30EC4E372B9BA2FB42B3BDE87DEDAD04E2239D56565F03C2277C846C1E8A708D59567547F3C4EDBE8712885F4C7A474F875D8F30EE342B8E9C0F0C7CE439482825109FD9EE9D9599AE69FC1D9F611B817BCE1D469D3DB7ABBAA311B21A6DA304D228534DB42B19FA351C743DC234DDAC5455DDD1449E1A69AA04D2084B2DB4291AFA9D047CBC85AE4D7761E0DA82ED48FDC2B2E9A024E9A004222811BDD9F1EF4991B68E8131824CEC8025DC699655DD218A63251051CC7A457B2E33DD6571F50801CF93C69DDDCB6ABF141846A2A1954004A7DFCAA6AF05D12211665C97CEE9595E95E905A5883043C5540209807E11F50801D7E655DD213C7B4A20C229064AE78F3B92BDF310898EF4C31C0377156C27DC17927E0412010C259080926419FA3900EE6ADB1CF3CF5D70674F65D32FDAC652004332A004322445FE35E8CD651669CCD7B683A8119DD35D5675473B1C36D35709A419B67C686B19BA378B78B349F317F322B35293634164F3DE47B2871248C0692B7D72D291DCDFFF3080D1CD9826D0BD79BB3AAD993EAA6DFB0C2881B4CF61D308C56CFAD344F4ED663AF6D7EB87A973039B61CC9FB64A20FEF0D8348A95D32F02E3E6863AB2FB7EB3B2697D436D55235F195002F195CEE6C0AC9C7E1E18170138F52D3D09AF33E36E0DDAF5797BE396E690556BBF185002F18BC936704A59FD7817380144C711B84E844789F801B584A40D527DEAFAFFB0D50B415746FC720000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (43, 4, '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001D6E49444154785EED9D0DB81C5579C7FFEFECBD81A225A5D40FA8DA5A0CD098ECEC4D14503E04E4534DA91FD1DC9DBD41514109D9D91BE443AD7215AD102077679394864A04B2B3C1062C4522484010118334646783B131D45A8A5FA515A28231B93B6F9FB9F74642723F7677CE3B337BF7CCF3F0E4E1D9F3FECF7BFE677E777676CEBC87A00FED8076605C07487BA31DD00E8CEF8006449F1DDA81091CD080E8D3433BA001D1E78076A03507F415A435DF74548738A001E99089D6C36CCD010D486BBEE9A80E714003D22113AD87D99A031A90D67CD3511DE28006A443265A0FB335073420ADF9A6A33AC4010D484226BA64F5CC64F28F0DD221361ECDBB9BB72624B58E4E430312E3F43BB9CC00D8CF00741C8057ED93CA2F01DEE833AAFD95DA408C697674D71A9018A6DFB13259803F03E0E8C6BAE71FFA842BFBCBB5B58DB5D7AD5439A00151E564833A25CBBC8781331B6CBE6FB37B6CD73BBBC5581DD682031A90164C6B35C4B1CC9F00F88B56E347E37E6CBBDE1121357478830E68401A342A6C332797FE0898FE29AC4E10CFCC1F29546A37AAD0D21A133BA00189E00C59914BCFA9336D52D915A530277F8BB759A5A6D6DADF010D88FC59418E95BE17A0D39476C5D86057BC33946A6AB1FD1CD080089F14C505E96329451B25BAA9338E5D52F1BE2FA1AD35471CD080089F09A59C79113396CB744317D96E75A58CB656D58044700E3896790B803E89AE98E99642A57AAE84B6D6D4579048CE01C7327FD8F803C1A653FA77DBF5FEBAE9281DD0B003FA2B56C356B5D6D0B14C6E2DB2B128DBF5F41C3666554BADB4B92DD9D6789006A471AF92D85203223C2B1A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D16969FB28038B9F459F0E94210DEB59F87842AC037D7D1B57E49F9F127253DD68048BA2BAF3DE5007172E94F80A91FC0E18DD8C7A0BBC1F84AA1525DD748FB66DB4C154056E6E6BC610843EF04D30741F86B66FC86805F0323FF32E846DBADDEDCAC3F496F3FA500712C73058045AD98CE4CEF9780A4DD0171ACD959462A47E0C9CB0D317EC2E0C169E0351756B63CDBCA3C242D664A00E264333340BC0AC029610C9680A49D0129E5329730F3D2663D65C67F93C19FB7CBB52F371B9BB4F66D0F88939D7D0EC808E0D8B774674B5EAB86A45D01295AE94102155A32713488095717CADEE56134E28E6D6B408A967939015F526CE226DBF5DEA44AB31D01295AE6AD047C40890784DBEDB2F73E255A3188B425202B161E73A8EFEF5AC6CC0B253C535998ADDD0029F5A6E7B141772AF595B8D6EDF3C9ED785FD276809472E9137D1FCB8848D95FF9314E066557917603C4B1CCAF0363FC341E9618C20BE4E3947C9B95296A2B409C6C7A018882929B07859DAFC9E2093833EF7AF74ED66EB2CFDB0990C15C7A8EA1B802E4FEFE9065BBD5CA64BE25E5F3B601A4984D2F24A2E87E67671EB02BB5CF859DA87602C4B1CC35007261C73C593C0157E45DEFF393B54BC2E76D0188CAC2CF0D9BDE818014B3E9C784BFBAFEC17E662C2E54BCE0B955A28FC40352CA663EC8C45F89DCC50E04C4C99ADB4038322AAF7DE26CD237054A3420CB2DF3033E706B5413F6927E3A1110CBFC39805747E937C1989F7737DF16659FCDF49558409C6CE61C10DFD1CC6094B6ED444072E6F360F91F40F69DA724439248404A96790603DF547AC2372956A7D40C152B7DDBEC26FD17AA5624346937920A49E20059DE3BFB68DF30827AB6B11D043C9877BD50EBBAF624DF4E809472E655CCB82C2EE3930849A20019188071C876B31ED704EDD56FDE763D255B16B4152056FA38067D2F66FFDF63BBDEBFC49CC31FBA4F14208E657E17C05BE336A78B523316297A91AA9D00097C772CF35100C7C43807FF393484B32EFEAAF7A31873481E20C56CFA8B44F4A9984DF9350356C1F5EE529547DB0192CB0C80F90A55E36F51E72EDBF5E6B518AB342C115790522EBD9039C2A7E4635BF8B44FD4D75FAE3EA8D2E1760324187BD14ADF40A08FAAF4A159ADA42C958F1D10276B9E02C2B79A3550697BA21F1A440B17AFD9FC6F4A7547BEB2B4E5FE20628B169B3198B1D0AE78C1F297D88E5801197ECF9987EE07E875B13900DC55A754BF8A9F74C71A43BB02128CA564990F3070726C734378C6079FD55FAE3D1E570EB101525AFC8603F85707DDA57C7BE4269C64E0BA82EB7DA28990A69BB63320A337EDD703F858D303571410FCE48E5F3D7F56FEEE277FAF48B22999D800295AE9A504BAA4A96CD535FE2D88FBA37867BADD0119862467BE1F8CAFAAB3BF69A595B6EB5DD474948280580059964B9F98627A4841FEAD486C620385C21AEFE156829B8D990A800C7FDDCAA54F64A66F007879B31E2869CFDC6B576A91AFCB8B0590D86E0019B7D36EE3E3F9759B9F5132690D884C154086AF24D9CC0C22BE21A6FB92EA2E834FB8644DEDF9066C57D62472409CAC793E08411592A88FF5B6EBED5F6551388BA9044860D5D5E71DF5C707EC3AF04662CC17B66E7F79C69576C5FB6C94FD460AC8606EEE61C4430F13F057510E12C0FDB6EB9D16719FC3DD4D3540F67858CA656E962A9A31EE3C117ECF4C2716DCEA6351CD65A48094ACF42087ACB5D482318FD8AE777C0B714A42A62A20C3F0E7CC55609CAFC4A88645E836DBAD4676F58A0C10C74ABF1DA0FB1AF641414366FEB742A5F66605522D4B4C65404620C914C16CB76C500B814C7C6EA15CBBA585D0A6432204C40CDEEF38A3E90C5B0C60E0BB05D73BA1C5706561531D90D1AF9141F1BE282B286E7D81FD133E1941FDDF480089BAE80201FF93773D25A548C392D209800C439235AF03614958BF1A8D67C6D5858A7C59D368008978197B3D85D72CB9C5FB69A3664BB6EB1440569D3FB77BE70BBB3780E96D927EBE44DBE0D9F69ADA1392FD890332984BF71A4C91150A63A2330AE5EA0649D39AD1EE1440024F4A232F5C05DE47F43091BE64BB55D15724C40171B2E6BD209CDECC49D5725BE2825DAE392DC70B0476122023F7239945004752EF8A80FF020E4CE7DD47838D7C440E51404A7DE979EC2B2E843C9E0D8C1BEC8A7781884B21443B0D90D1FB91D5207C28846DCD847EDC76BD7F6C26A099B6A28014B3E6BF10E16F9B49A8C5B6DB6997717C944B481ACDB31301B9BE2FFDCA5D6C6C0073BA519F42B4FB8EED7A2785889F30540C90C1BEF4A9864FF74B25BEB72E133E56287B712C5F9974789D08C8F0FD482E633173795283543430E89DF69A6AB09052F921064854859001DC6BBBDE99CA9D5124D8A98004F6152DF37602DEA3C8CAF16508AE5DF6448A6E8B0052CA9AC73021A88E217EA8DAA6402AD14E06C4C965DE0AE6A0528DE841000FC13797B85BB6A8EE480410C7324B0016AB4E765F3D0656155C2FB6B7DD1A195F270332FC55CB32AF65E0E246BC0AD746E6275F11408A96B99D8037841BF024D18467E0D3F176A5BA5DB49F90E29D0E48B082DBE0A1E02AF2FA90564E16BECD76BDA3276BD4ECE7CA0119B4669F6DC010B961DA7B70047C21EF7A9F6976C051B7EF744002BFA37A36E21BFCF6FE3535A51572940312D1D7ABDFD629D52355894425441A1060A440C7CB3C0047A9F4760CADAB6CD7FBA4CA3E940312C5D72B22ACC8973DF17B1C15466B40465C2C66CDBF23C2952A3C9D4043D9E6AB7BFA500A48B1CF3C817C7C47D804D4EBC69B97DCAABEC89B44DE1A901157071764FED2487170153958C2E73D9ABE919AD9BFE67165BB03280524A225CF65DBF5FA244D56A9AD0179D14DC7CAAC04F84295FEEEABC5C49716CAB56B54F5A1149048BE5EB17F7ABEB225D23713C398AD0179D1BD15BD3D6FA91BFE2361FC9C2C56E5DE2E415FCA0029E57A4C66BF3AD900C27C4EA0BBF36EF51D6134A28ED580BCD471C732BF06E0DD92F3B0F3809D075FB67ADB6F54F4A10C90C16C7AC020122D9B4FA0FEBC5B2DAA1878541A1A907D01C99C0BF04D92FEABDC3D57192091ACBB613A32E90F06F79D780DC84B1D59BEA0E7703FE53F0520250609D1F576B9AAE45E47192025CBDCCEB24FCF1FB05DEF54315385843520FB1B1BC14B74CA4A3D290164D5BCB907ED3C7848B42424039F28B8DE7542E7B198AC06640C40ACCCA5005F2D663AF0BCED7A4A5EFB5502C8E8BBC8A29B3F1A75E3CF17DFBAF96782A68A486B40C6BA8264668058740F4255DB782B0224F35106DF2072860D8BD243B65B8DAE5A86C2816840C636D3B1CC1A80D90AAD7E891413BFAF50AEDD1E565F0D2059733913E4F66F60BEC4AED4AE0D3BD838E23520E30022BD59A8A242D74A0071ACCCB701967C2FF8CCBCEBDD1BC7091EB64F0DC8B85790E05948F04C44E420D09D79B77A4E5871458098CF02F893B0C98C17DFD5BDFBB045376DFD8594BEA4AE06646C7707B3B3FFCA20E33F04BDFF2FDBF5FE32AC7E6840562E98F5DAA1542AF85D5BE6203C6397BD57CA88CBAB162DF33902A60BF5F49CED7A8708698BCB162DF3D704FCB154477E371DD27F53F5B930FAA10129657B4E63F2C52A1932E35B858AF7F630838C33D6B1D2770014FA523FD618887047BEEC892EDB90F4AE64990F3170A2541FE41B27E7D76EFE7618FDD08038D9F40210AD0D93C444B10C2E16DC5ABF94BEB46ED1322F2640E40786767D36B4C7F352CE5CCE2CF7E30E31DE9BAF78A1EE73C203225C6A92800FE75D6FB5F4892CA5BF3C9739D9677E4042DF273AA5BF5C7D50423B0A4DF1AAFF8C0BEC8A17EAF14368404A96F959063E276528119F942FD7C45FC292CABF641D7B30B0F309065EABB60F7A6AE701BF9BA56AD5AADADC1A532BF69A279021F7821D337FBA50A9FD7D63D98CDD2A342045CB7408C8874962A258C330DEBC784D7BBC3D38DE381CCB0C5E0F0E4A21293B98B1B850F1222912AD2CE97D844A56CF4C86FF03297D3096D9152F54C9A1D0803839B30C862535C8948F5917ADF5E44C944A7C1F5DC74A6F0048CD46A28C0D76C58B6CB72E298B56CE9FF9EAA169DD3F97D267A65B0A95EAB961F4C30362997703382B4C1213C5FAEC1FD15FD9F26329FD2875553D13B15D2FF4BC4539EEF1FA1A983F73DA21D3BA7F2F950B01EBF321B7FE0E6DB46399DF0720B651A64F5D87F7973789FD95919A9CB17447DFBA0CFEA01CD662BF3F33E09FB558A0C4668BF9840E732C33D8DB43EA59C8A3B6EB1D1726491580044F43C5F63D57F1B0278C4112B1A56CFAE34CF40F4D6A8BEE83D1642ECA9A3B96F913007FA14C706F21E6FFB02BB550153E5500B243B2940BFDEAF903F3773F29761916999806448BBDB3D264189F0786F7F41B6F99CE73007FDB007F662A5D35F6B6C7C99A8F83D0D38065AD3409BDD2400520BB0174B5927D23310FEFF2BAD6AD43BD91B6EDD86660E0E4AE439E7CEE189F718C017FE4AB2A19C1D7D6C79E7DFA4FBE3FF0E08343ED38AE467376643778DD6DBBDEB4467319AB9D0240D2FF0BD0A161929828F6E507EC3CF8C38A2A5448E5A8755B7740B2541403FF5B70BD57B49E9D82B23F4E2EF324988F0893C444B1EDBC9257CA93A9A42BB998938027F3AE37238C5FA1AF2045CBDC44C09C30494C14DBCDFE11174E919F79A53C6A57DD7F9E3F73DACF057FE60510BA566F68404A39F37E6688551B31E0A7A7EA0D6ABB9ED8AAF22E59E9D730E8BF55E98DA173BFED7AA11ECE860644BA521E81DF92776B1B054DD4D23139505A60F6700A8F4B75CFC0D70AAEF7DE30FAE101C999ABC1827B62139F6D976BF78419A48E4DA603CBADD967FBB29B2DADB65DEFC361461F1A90A2951E2450214C1213C512F185F972ED7A297DAD1B9F03452B732181578A654018B4CBDE9230FAA10171B2E92B4034102689096399AEB52BD54BC4F4B5706C0E142DF35A92DCE09379C0AED442BD8A111A90522EDDCB4C15319719B7DB15EF7D62FA5A383607C4EB3933F7DA95DAAD6106181A9015B9F49C3AD3A630494CF8150B783CEF7A73A5F4B56E7C0E3839F371B0D83213500A73F2B7789BC38C3034202BE7CF7CF9D0B46E257B318C3390676DD7FBD33083D4B1C974C0B164CB45ED32F8E597ACA985AA191D1A90C07AC7329F06F0E752D3E077D3EBFB6FAA06AB3EF531451C88A02ED6D3B6EB857ECD590920D20F0B99F923854AEDC629726EE86104BBDE5A998F92683D67847E48184C9412401CCB0C7E86FD98DCCC53C576AB62AFF5CAE5AD95C773C0C9996BC15820E610D3F57625FC263A4A00295999028307C5060BFCD276BD570BEA6BE9681D20276BFE1284502B6D274C99B860976B4ED861290164B9D573B60FFF1B619399F0D72C0555F224F3D3DA8D3BE064CD5340F856E3112DB454B40243092041ED27C6CEE0CD42B943C1431FB9E4B472330E38D25B1F0050F51E91124002731CCB0C16141EDB8C514DB6DDFAEC0C6FF6C000FC26E374F38439E05866F06C222398D646DBF5DEA2425F2120E92F00F46915498DAB6170AFBD26DC9351D1FCB4F8A40E147399D3895974AF1702BE9077BDCF4C9A4C030D940152CC9A67124174D52D33EE2854DAB79A7903F331E59B38961954835C24395002946DB8A40C90D1FB90FF932CE010989A229E7B51B926F60E81E4C475BAF6357DE9971DE0D30FD5D7297ED159660C1974E0A179F7D1A0DE56E8431920412625CBBC878133436735B1C052DBF52E13EE43CB0B3820BEB075E4C1DE37F3AEA7ACD2A75240A2F87582819F1E60F09C8FAFA9FD8FC01C6A4941079C5C7A3D98DE21D805A0F8D74EA58044711F1298CBC0270BAE7795A8D15A5CA903C56C663E11FFB352D131C4987156A1E27D53553F4A0119FD9AB58905AB9C8C0E7C7BD7AEDD7316ADDBFA5B5546681D59078A96F90001274BF64202AF46A8072497F914337F51D288409B98ED7CA5A674CF0DE99C3B55DFB1D2E7027493F4F899E8D3857235D48639FBE6A81C90E5BDB38FF60D23D8CFC31036C47B768637473F3814765981BC93333782451F220759FA4C3CB350AE6D5390F21F24940312283B567A1D4011BC264B17D96E55EEA57F954E77A896C4EE5A6359498475F9B2F77ED536CB0022BCF3ED8B26D05343F5A1132EBEF509C9E263AA3DEF18BD62DFDCD719FED0C392CF3DF69869000B16BBDE57559B2B02C8AAF3E776FFEEF9A1AD0484DA9BA191C1326345A1E2057B00EA23610E44F1D47C74C8DB0F7C59D71B2FB86153B0D380D243049020C362CEBC8A18913CD023364ECF5736DFA7D4192D16CA8128D65CED95E055B6EB7D3254C2E3048B01E26467CF1DDDE742FA663D7830322536B59498E0B834956E5A3AD920D87F935DD9225259470C90919B75F985697BBC23A24BF3E5EA359379A93F9777A06899171370AD7C4FC33D842E2F3A519EB280F4A567C1A760B7A43F8AC22C06E6155CEFAE28FAD27D8CED40A9AFE76D7EDDBF8F486ED7B197F44C74BC5DAE3E22351FA2800C5F45B2E6752084AA8FDAE8E0830D53D0D57556FEE64DC1C6A2FA88D88191D5BAC606062B795969D2F419AE5DF17293B60BD12002403233401C5C45C6DBA83244FA638412BE6E97BDBF512BAAD51A71C0B1CC60654374BF28324EB52BDE038DE4D66A1B714046EE45327F0FB0C8AF0CE30C5C2F896FF58C6831AE944B2F64A69B5B0C6F218C6EB3DDEAFC16029B0A89049062DFCCD791DF1D5C455ED55476E11A8BFDF4172EADA9171D3D1CC38BF122D937261240825362309B1E3088AE88F2F420A094773D3BCA3E3BADAF6236FD6122FA7294E326C21DF97234AF5E470648700337CDA7EF0230A33413C04ADBF52E8AB8CF8EE8AED89B7E2F19745BC483DDC9A0930A6EF5B128FA8D0C906030A56CC662E2721403DBBB0F95552EA2CE3DA9FD0DF6A64F350CBA3FF2FC089FB5CBDE9551F51B2920A337ECEB008E60A5EF4B2DF4993FD75FA9C9ED8415D58C25A09F525F7A1EFB74670CA93C72D8AE234F7AFFBA75F5A8FA8E1C90E282F4B194A287A5AB9F8C65A08624FC6955B2321F65D9AAECE326E913BDABBF5C5D1F7E148D2B440EC8C855C4FC1280CB1B4F53614B26C7AE54C5361D559869E2A44AB9CC1799F9533125B6DC76BD7CD47DC702C8B2F96FFCD3D4B4AEE086FDE8A8071CF447A0B5A9EEEE258B6E7AEC1771F4DF6E7D96E6F7BC82A7D58B006563CA7D7B57F7EE9316DDB435F2F98A0590386FD8F79AE027C074995DA98A56A58FE98452D66D313BFB2422631980D8F68964A0AFE07A91FFB833F2C734C6437C0BE986C6467F67BB55F122130DA592B046C59C790101CBC03828AED4987075A1ECC5F3753C6E4086EF47B266198458778F22D06D75AE5FD65FD9F2E3B84E8484F54B452BBD8C40B1DEAB11B03EEF7AEF8AD39B58AF20C1C047EF4782AF39925B2734E0313DC5CCD7142A5E505CB9630F279B3907C49702786BBC26F05386CF672E5EBBE5DFE3CC23764082C10FFFF46BD03740887FBB67C60682B1B4D35EE11D2DD7740980F3E23C21F7F44D30E6E7DDCD513FA5DF6FE88900242137ED2F3127280651F7EB4B3BA1628A63652E05FC4B013A34097030F0F982EB45BA6E6FBC7127069091FB91F415204AD2D3EE9F03BCDA675E3DD5EE4F569D3FF7A0DFBF30741E07570C464F12C018C9816FB3DD9AF832F646C79B2840862111DF52BA516B5E6CC7C00E22AC06F16A7B4DED89E6159213716DEFDC3FEB36EAE7011C7C953A2A39990D57254F5CF18DC401320AC9D700BC3B51933792CC6E06561B6CDCD66EF728CBFB7ADEE433BF8B99CF23E0B509F4F6FBB6EBC5FC43CDFEAE24129051488227ED31FF9232C169C4D80CF0BF924F77E66FF5824D2913772CEB35DF9832E89D00073F959E98B8045F4C689BED7AB1ACAA98CC93C402320C492EF324988F986C10B17FCED8C0C0DDCCFEC6FEB55BBE17673E83BDB3DFD245C6714C383382DDBE420F9508BFC897BDC3420B0909241A90D12BC96F826DAF85C62F21FB3411BEC78C6FD1507D43FEAB4F885658297D60D611DC953A9D08A73223A826F21A8941C968F24EDBAD455212AAD5FC130FC82824C122B528DF676FD5CFFDE318CF10E1070CDECA307EC084ADA96EFA41FE2B9B9F69A693E08DCC3F0266D519B3E11BB3403C8B81D904BCB2199DE4B4A5FFB3DDEA9F25279FB133690B40462109B6D53A23E98636915F5068F9F9D1FF5E08FEA591FF07130E828F9721F817388880831838B009EDA4374DE40DF958A6B50D20A3F724D780F913499F7D9DDF440E70C5766BB1AEBD6B667EDA0A906060C55CFA12625ADACC2075DB84384018B4CB5E245536558DB8ED0019BE9264CDF34158A5CA04AD138503F425DBADC6F53662CB036C4B4082D12EB7CC0FD48152FBDEA4B63C67ED17A878EFF2280D685B40029306B3998C411C94D97F7B94A6E9BE1A76602BF97C797E6DEDEB0D4724AC615B0312783970F2C95D871CFEDCB520D6151493757295EB295CBEE416EFA7C94AABB96CDA1E903DC37572E98F10D3B50C4C6FCE02DD5AB103BB987179A1E20D2AD68D456ECA0012B8B7A22F7DEC904FD711707C2C6EEA4E37321B97152A9B1F9A2A564C29408249099E3877FBB88240C1DB71FA88CE81A55DBB765FB968DDD6DF46D7A57C4F530E903D969572E9139929D865F79DF23676740F77D589972E29D7BE33155D98B280BC088A79018F6C47FDFAA93881318EE9C74C585A287B53FA79D49407243881962FE8399C53FE650C445EBA32C61358AE6B22C718A2A58B6FDDFC33B94E92A1DC1180FCE16A92ED398DA97E1140E724C3FEF6CA82417732D797F757B6DCD75E99B79E6D4701B2C726276B9E02C28700F4B56E5DE74432619DC1F872DEF5EEED9C518F8CB42301D933C9CB16F4BC2995F23F080CC3125B79CD049F746BC8306ECCAFD9FCED04E7289A5A4703B2C7D9150BCD23EB75FA20C00128AF1675BC1DC499BE4CE4DF98776B1BDB215DC91C35207BB9BB62E13187FA43BBE6F9C4F3089807A05BD2FC6469F37D04633D33D6DB95EAF664E5165F361A9071BC5FDE977E3DD7318F2900854E8B6F8A447BFE0E31D6738AD7B77BBD2F299734200D385BCAF598BEEFCF3388DEC1E0A03042DB1E04FA9E0FBE87D85F6F57B66C6ADB814494B806A449A3AF5B30EBB5DD5DC609CC743C186F0525A96CE71883616C2603DF05F891DD43FEC39D506BB8C9299DB0B90624A49BA50FF5BCC2DF5D3F094C2711701C338E228A6D45F173007EC4C046103F6474A71E6AB67A4A483BA65CB80644604A8BBDB35E05A2A340A9009623E1F35108FE55570B771B183F8241DB007F1BFBFC23306F2BAC7DE29702C3E968490D48C4D3BF6AFEDCE9BF3B10D353FEAEE975DF986EA4683A33A613FBD37DA2E177590CE61D4C4650307B875FE71D29C3DF5137A6EDD8B9133B2E5FB76947C4297774771A908E9E7E3DF8C91CD0804CE690FEBCA31DD08074F4F4EBC14FE68006643287F4E71DED8006A4A3A75F0F7E320734209339A43FEF680734201D3DFD7AF09339A00199CC21FD79473BA001E9E8E9D7839FCC010DC8640EE9CF3BDA010D48474FBF1EFC640E68402673487FDED10EFC3FF9B3195FC4FDF36D0000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (44, 4, 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900000F9549444154785EED9D7F8C1C6779C7BFCFECD938055225A50DF48F602A9290A4BE592B181227C52901299492861F466467030EB44D1B723B77C48404DAE6DCA21208B177364E5BA456B8F1CD5EE00AC1544AAAB4A481D8E44705B7B34ED3343624162D4205E10635B5F0DDCD53AD6B1C50B89D7766DF1DEFCD7C4FF25FF73CDFF77D3ECF7EB4DEF59D57C02F122081650908D99000092C4F8082F0D141027D0850103E3C488082F0314002D908F019241B37769584000529C9A23966360214241B37769584000529C9A23966360214241B37769584000529C9A23966360214C490DBA7369FF7F2D5AB577922D804C55A003F306C1D9D3251078AFF86621E70DA7EBB7360742E379A37199A203BDE535DEB54B049A1970AF01A284E0770DAB13F82318B388E40E400627DC46F47D75ACC3D11D5F4DC9B04F8C430B24F66A6AAFEEE64BBFB37C3BC43D373EB0EF0070A9C03E06596CE3A0CE0F81F791AAA5F762ABA776277F7694BF92762AC0B1278D51AA013002EB47D59933C3F8CACCED4BA7AFD268DE3074DCE5E91352A670FEB99A4E955DB02BD2A2F2E027958819D7ED869DB3AD3DA8329A85737AAEA0D02BCC3D6E532E6DCEA87D1CD197B5FD01678D53940DF652B6FE47254A7FD76779BED7BB53CF7FD0A0CF5D969D93B2BBE10AB73FBD4ECFCC383CE654590C0ABBE0FD05D835EC646BF00DF6984D19936B2149096E7C636B2463743F7F861F74ADBF70B3C773780BAED5CD33C015455B70D2AFFC0828CE2DFCF2B159C73FD5DD153A63097ABDB51BFE0158E2E7E77D09C91EE57BDD76F77DF6AFB8E81E73E03E095B67333E4FDB31F466FCCD077AC65204102AFFA8F80BE29EBE1C3EA5B92CA591F9AF9E6411BF981E73E0BE0541B59A399A11FF5C3AEF5372002CFFDE1F137654661ECD80FA34A968B641624F0DCDEDF2FDF9FE5D021F73CE987D1B9B6CE08BCF19B01F9735B79A396E338FA6BC378F727F0DCC7006C18A179EFF1C328F5EBE34C8234BDEA7502BD7384863F719558E59AA976C7EAEBA1A05E8DA03A3E8AF30E7427C59FF9EDE84F06CA58A639F0AA3702FAC961640F9099FA0D9CD482ECACAD7FE592C48F023863808B0EA53556DD36D5EE4EDB0E6F79AF3F55F5C77F0CD1ADB6B34F525E2CA2D73466BA770DF3FCA0EEFE35141F18E61969B31D91B74FCC74BE64DA975A90A05EBD0D3A3A0F1401FE4B057FEF406626663A43FFF78AA0B6EE82D8A9BCD414F0A8D58D497C68187FA55A6ECEA03E7E3914EF01641370EC27104EEA972A1E986C4797995E229520CDAB7E7D5C9C4AEFD9638DE901C7EBEE814817311E8B57E3EB93BB3ABD17BE56BE7A6FE7590962C8D009F4DE36B771C81D3577432CF25A403708B019C08BD3E5CA163FECFCAD494FAA0BB73C3750A06112DCAB11E0A0387AEDC4EEEE03A63DAC23813404EEF0AA172F21BE4D2017A5E87BC40F23A3FA5482045EF510A0A6FF0877871F46C632A5188EA524F002024DCFEDFD14C7A78DD118FE888DB1203BBC756F71E0DC6B740191AE3FD3718D6A5944029608B46AE30D15094CE244F4BAC64CF72F936A8D05096AEE2CA4F7622BF9CB89E3732766F73F995CC90A12B04B20F0DCFB005C9E94AAC01727C3E89D4975C682346BE3FF22C75E18257CA97ED86F77CD9FEA92F2F87D124841A0F743B350DD67D0F2EF7E18BD26A9CE589096E71E50E0D549810BEAACDDDA9E3F9454C7EF93C0B008343D77AF001727E42FF861B43AE90EC682049EFBFDC45F78513CE5B7A3DE2FC6F08B044E1A8166CDBD55041F49BAC0E2D2D29937DCFDF877FAD5A5116401E8FF9B800A999D0C3BB5A48BF1FB24304C02CDABDC4BC4C143496748EC5CDA989DFFAA2D4112FF416E583FEA913428BF4F023F4DC0F4F77828081F37A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440410CD73E3D0DE7970E56AF588CE3AA610BCB0624208E73B4A2FAAD8AC6F75FD7DE7F78C0B84CED14C400DB887E0CB1C1CD0B53B2A8C04D9361747BDE13519004E2CD9A3B2582ED792F86E7FD3C02E2F961A79D271B0A92403BF0DCC4FF683BCF8595FC2CE30FCCB4C58982F421D9AC8F5F212A7B6CC166CEE004C68E2EBCF483734FFCCFE049660914A40FA71DB5F16947E4163394ACCA8340BC24AF9ABABBF34C1E67F5CEA0207D48B7EAE37FA82A7F91D732784E2281A37E18BD28B1CA620105E927C87BDDF5BA846F5AE4CDA80108A862E7643B9A182022752B054940D6F4DC2F08F08ED464D9609BC042459DB3AECFF9435D2948C21A3FF3FB17FCC291E716775312DB8FF73479F26F403CE187DDAFA4E9B2514B410C29B6DEEBAE47AC172A9C330C5B58363001FD918AEE9BDCDD7D74E0A88C0114242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000549B1E7DEFFCFBBB4286E8A16960E40A0022C2CE9D2B7A766F73F3C40CC40AD14C4005FAB56F554F4AF00BCC4A09C25F6093C0DC47FE487FB73FD00CFDE18142461993B6AD52D8EE867EDEF9C89A909A8BCD56F77EE4DDD374003054980C74FB91DE0D165BFF52B7E18BDC97EECF28914A40FED9DF5EA9B9754EFCF73213CAB3F01F9E1736B1AF71DFC715E9C28481FD28157FD18A01FCF6B193C279940BC4A5E35B58B9F728B5875DB54BB3B9D8C6C7815CDDA78434482E19DC0E49404D40F232765CF40E57C06E9F70C52AF6E84EABE8108B3D91A01017635C2E81A6B8106411424F945FA03007ED380254B864C40C4A93666E6A3211FF333F1142481F68E2DD5B5CE82CE02B830CFC5F0ACE70908F06CACDA986C77EFCA9B0B0531241ED4AABF03D18D02FC4A0C9CE200470C5B59968180022F53E0DB50D93BD9EECC6588B0D24241AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090149BDDBEF9FCD3C7C656AF4BD1C2D201082C39BA38B6244F4FDC3DFFDD0162066AA52006F85A57AFDFA471BC15C06F1B94B3C43A01F95A2CB8656AA6F3A0F5E884400A9200A8591FBF4254F6E4BD189EF7420202BDA811761FC9930D0549A01D78EE0280B13C97C2B39623A07BFCB07B659E7C28481FDAADFAF86FA8CAD7F25C08CFEA4B60F1F059D18BA6A711E7C58982F4211D78D51B01FD645ECBE039C90416D459BBB53D7F28B9D24E0505E92748DDFD1014B7DB41CD141B04FC30121B39A61914A4EF33C8F86580FC93294CD60D9B80FC9D1F76360FFB949FCEA720C92FD2E70154F35C0ACFFAF90424762E6DCCCE7F354F3E14248176ABE6BE4E45E7003933CFC5F0AC9F25A0C0CD9361746BDE5C288801F1ED9B2F3AC559F5DCEF39221B019CA1C01A00A70870D8A09D25290928708100CF28704881078F1E5D086F9C7BE27B2963AC9453102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C56089C2C41FEB7F75F77F69B2056DD36D5EE4E5B99922124909180B1208AD737DAD163FD8E31FEDC86C073FF13C0AFF60B53C8EC64D8A9659C8B6D24608540F32AF71271F0506298CAD97EBB73C08A202DCF7D5C81F3FB1EAA78CA6F47E7245E8C0524304402CD9A7BAB083E9274C49A78EC97AF9DFDC60FAC0812D4DD87A0B824E9D0BC3F6E2BE93EFC7EF908343D77AF0017274DFE8AA3678FBD7B6E6EC98E205EF563807E3CE950A87ED86F773F9D58C70212180281A05EDD08D57D06D10FF961F486A43AE3D720DBBD75EB2A70BA4981BDEF3B717CEEC4ECFE274D6A5943023609049E7B1F80CB933215D83A1946899F65692C48EFC096E7EE5583A72EA876FD76D74DBA24BF4F023609B46AE30D15094C326571E9D58DCF3DFEADA4DA5482ECA88D4F3B22B724851EFFFE1D7E18350C6B594602031108527DBAB1EEF1C3EE952607A612E4CECDE7BD6471F5AAAF03586712AEC0418DF5DAA9D9EE0326F5AC2181B4048EBFE6B80D40EFA3F68CBE44F40D8D996EF2DBC0005209D23B3DF0C6DF07C82EA39B3C5F744FACDA75E03C7664A1B2EFA6B96F3C9BB29FE524708240D3AB6E00E20D22F25A28DE0DE0C5A67814DA9C0CBB53A6F5A905F97F49DC2F0278BBE921AC23811121F0A440DFDC08BBFF617A9F4C826CDF7CFEE995D595797ECCB22966D68D02818AA3175EBFBBFB689ABB6412A47740CB5B7F9E22FED73487B196044E1A01D1B7F833DD7F487B7E66418E4952735FA7825446A6BD20EB49607002FA513FEC7E224BCE4082F40EBC73CB792F5F5C583503E0B22C17600F090C91C01151B9AED1EEA47D53E9C4950616A497F4D92D6BD7FC68F1177742F181210ECB68124843E07E07F2A71361C7E4C74E96CDB522C84FD2835AF5B7047A830ADE986612D692804502075470FBE44CF4191B995605795E14F76A71F03628DEA6C01A1B17650609F42320902F2B70BF1C95CF37E6E6BF6F8BD65004F9C9E58EFDD5EBE8A957AA2355014EEBFD51D5D30432666B00E6948F800287011C16E070EFA735C6562D7CE983BB9EF8DE30480C5590615C9899249027010A92276D9EB5E208509015B7325E384F0214244FDA3C6BC511A0202B6E65BC709E0428489EB479D68A23404156DCCA78E13C0950903C69F3AC15478082ACB895F1C27912A02079D2E6592B8E000559712BE385F324F07F7090906EB8FB30F20000000049454E44AE426082, '1', '2023-09-14 10:19:58', '1', '2023-09-14 10:19:58', b'0'); +INSERT INTO `infra_file_content` VALUES (45, 4, '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000019F449444154785EED5D0B9414E595FE6EF50C43565716CDC6B8E6E4A1465694AE1E31AB4665D1043446A2EE1191AE8118F1150D5D3D681643B2863D2E9844C374F7C871216A0CD3D560262F1E9A08AE01D14497205D0D6AE0C8C64DD63CD4637495EC00D375F7D43028E0305D555DEFFAEB1C0F72FABFF77EF7FBFF8F7AFEF712C42118100C1C960112DC080604038767400844AC0EC1C0300C088188E521181002116B4030E08C01710671C69BB04A0803422009996891A6330684409CF126AC12C280104842265AA4E98C01211067BC09AB8430200492908916693A634008C4196FC22A210C08812464A2459ACE18100271C69BB04A0803422009996891A6330684409CF126AC12C2801088CF135D9A7D52DB5FFE386AE4A8917BDB8CBD465BBFD4321229A30D756E932835D2846370BD0F29DA8DBAB4BBC5E8EF935AA5DD6FF6B5EEFEAB0FBED997EB7E71B7CF90131D4E08C483E92F4C3FED58108D212975328031C43899C16300987F6F967326603B403B98B00330B69B7F6F256CFF624FED150FD249B4CB66272BD1E4ED4FBED4913E8F992E06700133C610615440C4BC0198A2C1E344FC48AE5CDB18108ED88415027130955DD34E3B454AA5CE23C2050C7C16C0910EDCF861F236010F33E371A35EDFD8F9D0B617FC081AA71842201667B3A4C8930DF06708741E80F116CDC2366C3383374AA09FE6347D6DD8C085118F10C830B35252D267317009489A02E6741827D03126A21AD8584DC09A9C567BDAB19F981B0A811C32C125A57D2C832F01F11430CE8DF9FCEF4B8FF024985613684D4EDBF27C2272B698A410C82051C56CE652483C0B8C2916B98BE730C66A80EE572BD595F14CD05E568917484191A711700D80C9F6A88BFDE8B520DCAF96F5EFC73ED361124CAC400AD9F44C22CC026842921740C3DC9937EC3BA3E83D0DC7C67040E204525032D7117816803363389F5EA6F43488EF57CBB5FBBC0C1236DF891148B79239C720631EF6BDD013874306CCF72A75D09D9D5AF529872E2265167B812C9A7AF6FB5A46FC651E03F30048919A9DF082AD83B0F0A89637177EE1C197FAC20BB37964B116487747E6B2BA617C9588CE689E2AE16108063649440B6797AB3F892B3BB1144861C6F80F4B46BF79D6B821AE1317A6BC1858D25AAF2FB879C5B6DF8509971B586227909292BE8241DF0470821B04091F161920DAC930E6E6CBB51F5AB488C4B05809A4A8641602FC9548301F5B9074A7AA55CDFBBD581CB110485736939188CDB38678D917826549C0A375A6DB3A2BD56A08E0340521F2022964D3B388E81B00DEDF1413C2D8550618784D02E6E634FD01571DFBEC2CB2025972FDF8D6BE5D7B0B00DDE43367229C3D06168F3CA2A5F386A59BF7DA330BC7E8480AE4DE99F2F17BEBF420833F1D0E1A058AE119E0C7EA7BE8EA39BDFACB51632A720229CD94DB616005F3C0FE6E71448501C60E3270556E85BE252A904D9C9112487756BED020982FA506AA7F88236A0C701F812E8DD26EC6C808A498956780B02C6A4B42E01D8201C6CCA87C1D1C09819414F91606EE168B2D460C106E51CBFAA2B067147A811415F94600F7869D4881CF0103841BD4B2BED481A56F26A11648213B6E0291B4C137364420DF1920E20961AEDF155A81943ADA656623F26F627D5F71110CC8A9949C5FF66C2D8CD0432990EE19E98FD50DDA4AC01161244D6072970106DEE23AA53B57545F72D773F3DE42279045534F3D3A35A26535804F369F9EF010150618786A041B536EAA6CFD739830874A20F3274E6C197DFC9F7F0CB3589B3892C70063F5717B4FBEFCCADEDE7A58920F95408A4A6631C0E2DBAAB0AC8E60702C5635FD4BC1847E6FD4D00864F0ABDC4455CC08CB22081B0E026685E52BE0500864713693E927E331808E09DB64093C01304078D530687218F69384422045457E546C760A60218638A4B9E92AA7E917050D3170811415F94E00B7054D84881F460682DFBE1BA8404A4AFB150CA3378C532330858301024FCD69B51F0485263081DC9D6DFF482B198F8BEA23414D7D44E29AD55268CF05F99EE77F1B04E2C00452CCCA4B40B83E88A445CC683160D6DDCA6BBAF9D1AAEF472002292AF2E5007EE47BB62260641990882E0FA282A3EF02316BE54AADBB9E10E54023BB568302BEE9A8D6D113BEF0E07A5F6B01FB2E909222DFC1C0D7826259C48D3003843BD4B27EBB9F19F82A90811604E0274495F58129367B9AEFDCF71FED643676B224ED4C319F00A213C17CA2C17C2299FF0F8CF673518437169955E527A8E5EA2FFCC2E8AB408A1DE98713DC9F631703BDC4D42BA58C1766F7D47E6375924BD34E3B915B5293065FA69A7F86B52FBBD5949C8F637E44ADD4CCDEF4BE1CBE0964B0B353A8B7577AC4F82626EAE57EF4BAB1DF61F1D4B147EE6D6BB940625CC2A0EB3CC21C6EB7C4D7F9D5E9CA37811415D9ECC59DA0B667FC3D22A93757AE3EECD56ADB77C96ADC0450D6AB1821F5FBB4AAE967FB81CD1781EC6B9849DFF323A1A06310F09C61F0D7F3CBFD6B03704F47669201BE891997059DBF6FF17D2A1DE48B408A4A6603C0B1EF266BBED06A93F8F62FF6D45EF16DA11C10A8D091F932317F2B88D8BEC764DEA0566A13BD8EEBB94006FB90AFF03A9120FD33F05F12D3EDB94A550B128719BBA0C81D049815D55B83C6E2797CC234AFFBB87B2E906256361BD29B4F5EE27AFC98A5967CBE677320DF0A0D45EA3D33FFFE98FE7A9B4EC0F171257D30AFB5AAA65FE8658E9E0AA498CD5C0AE2D8367804F0CC916D7D93663DB0FD2D2F27C9A9EF82226F26E074A7F691B063E332B5B275A55758BD154887BC0A8C295E810FD62FFF5632F8C2D9CBB7FE3A581CC3472F2AB25925E46FC28CB1296C8CD56A45FF5C533E8631F64C2025A57D2CC378CE2BE081FA65F483F82255ABFD47A0382C044F42013E434A8DEDEC79F6050B74D81EE299400A59792E11CCD668B13B98F8F3F9722D3295E6E35F199FE6AA5AD593A7779E09A4D8216F04E3DCD8A9033C4FD56AE63661570FB3B73B73FD84542B3D97FBEE96575D750EA0D42177332334E574DCCC8F808D394DF7E4358227022929E9B318F44B37490889AF6D7F7E7974FBFCF5EBFB9BC553CAB67F9A6164413803C04900DEF78E4FC6AB4478CE605EC7293CBDA775F7A6B94D3E082829E90F316823808F368B3D8CF62CF159F99EDA336E63F34420856C7A0111C5A657F67ED209B835A7E9DF6E66124A8A7C0D03E6A7219FB2E1E7F7605E6A48AD4B3BCB9BFF60C3EEA0A1F16E25C10B54ADE6FA360A4F0452ECC8E8604E3B9DC890DAFDCF5EA3A5FDD6E59B5F73826F5F2F77633E40973AB11FB47919C477A9E55AD1A98FA222AF01E0DBD7B04E71DAB663AEA9959A6CDBAE8181EB022929F26406CC3A57B13A08F8B79CA6FF8B93A44A4A266F30CF27C22827F6EFB161FC50ADE85738F155982E9F4B12CC4BADD81D4C34395FAEAE733331D70552CCA60B2052DD0419025F6FD52975FA9CF2B32FDAC552EC90E780D1D465D99031194BD58A7E835D3CE6F86256DE088ADF03140617F25AADD3092787B3715F208A6C36BD71FD54E766D2767D11E39E5C459F6DD7CEEB7AC34E6BD896B299054C1CBB7B4400BAAAE919BBF334DC7857055298797A9AEA75DD4D8061F0E5A44D5869467A0A1BB4CA6BFC06E8DC4EADFA949D38DD1D998906F3CFEDD844652C1B7539BF7C9B6BDDAADC158822DF4231EC464BFDF593720F6D33F78F5B3E8A8A6C3601F2A1CF09AF54B59AED7D20454536DFB5BCDF72425119E872F75C570512D72724C7EDD9DB7665EFF37BACAE11BFCE1EEFE0215CA396F5EF5AC537781FB21C84ABECD84464EC1A55D35DFBFECF6D81BC8D18F6152448A7E6B42DCF5B5D20FE9D3DF623A295AA56B5751689F1E6AA5DAAA6BB56D4C23581C4F5F1AEB90499F9DA7CA576BF158104C4C3DBAAA6FFB5157CFBC7C4791BB49B8F7B5D1348B1237317986FB5334951194BE6673347BF7D7EAEFBC5DD8D301715B9074047A3716EFF4E863431B77C8BE59EF285AC7C21117EE6368E50F863BA5BAD54BFEC0616F704A2C8E67730FFE006A830FA30B7B1E6347DD670D88A1DE96BC1F49D20F0DB6D1310F3CFE0FF53D574572AE8B82990786FCCD9B7EAD74A40CF6C4D2F1F2882C1C7DB66A5FA9B8310871993886FCA956BF75A8DBFF8EAB11FECDFDBEAF8BB2EAB71021AF786AAE9AE54A374452085E9A71D4B52EA8F01911144D85D005E21D01F197C028063830071504CE6F96AA5F6AF56713040254536AC8E8FDAB811121FEB4675197704921D378148B27CFD1B35B2A380970837E6CAFA12AB584BCA994731FADEB43A3E6AE39CBCDC1D2A47570452ECC85C0BE640AEBDA336715EE1B5DB3F63707FC8EFBCC213B45F89F9DAD9169F3C0E87D52D81C4F60956D0136D39BEC4E3D49EDA36ABE3BB669C7E8A64D42DBFDBB1EA372CE3087C574EABFD73B378DC1148565E058A6BF5926629F6C5FE37AAA69BF742968FC28CF4996490592F3996078356E5B56A337B6F06787147208A6C96BE19134BA6A39014D37D6AA56AABD27B292BFF13137E1885F41C62FCB5AAE9A738B47DC7CC2D8170B34084BD730688A549B9CA96C7EC782876C84BC0B16EA2CAAAA64B7638196A6CD30229CD3EA98D5F3FC2D7BE71CD261D277BA77B558A8AFC12808FC4898B4373A1D7778DCCFDB4F1D70FC371D0B440964C1D3FAA6F44BFD94E4C1CFE33F0524BBD3EE1E615DB6C3D8D1A6C85F7A4FF70FD8D4818392AA73DF3BFCD446D5A20F7CE487F608F417F6A0684B075CA0029AA56ADD8B52E7664E683F9EB76EDA2369E46481F68B6C658D302310B9E91D1FFDF51232FEA7819F84A5ED36D57AE5C34F5D4A35323525B00FA70D4396884BFBF5EFFF02D36CFAEEFB94C6B14A4D1EFC56CE6E320DED1689CF8DD1D060860B034D9EE4DF9FEE82545BE8563B8EB7328765B28F5F19B1D14DA38D057D367906E65DC3803926B7B80DD594631F54258DD62D0ED3757AA66610CDBC7FCA963478C1ED1BA05C058DBC65134B0F9F274A8149B17C88CF6330CC3D81445FE2284790D19BC34B7BC66EE73777C943AE41B98F1EF8E1D44CD908D33D4CAD6CDCDC06E5A20712E44D60CB14E6D19788D8057C0FC2A83564AF5FA2ABB0523868ADD7555E6A3526AA092492C6BF30E95B3043A77B6CD8A2FAEDF8308813895C23E3B029E62C632C0D8DCECBF76C3212929F27719B8BA39B4D1B20E8540BAC52596F35563730F87D340A56CE66A26B655F5C469AC50D985E1124BDCA43B5E123955D3BB1D5B5B345C345D3E3525C12C589D984BAB77A809C34DBA78CC6B71A51E3C6CB3AAE9665F104F8F41717C3F314FAD0E6133148F79C58B42076B9CB0542D3B2B3C6D355AD2C561F2148A1785E25313AB4BF6DD71760B2CD88D3058B1C4FC042519EF3B0E4350283E35111F2BDA5DBE8041747E67B9BADEBE65638B8292B98EC00B635977B771FA078D08C5C78AE273779BB3066F04529ADAFEB7DC5A5F08A26BED238AA745283E7737A92D2AB2D83065638DB97D0631CB884A447338667D596C503AD4D0706C981A1488D8726B6336DD12C840A75C32F2B1EC396883CFA18612F0EB5C68B6DC8AA20DB6A6B31981989752465BFD6C32A4292016975387BB4107ADCA85A668438C0B57DB5AF91607DB154857476622019F00F813609C4F716C7C63913BABC30874574EAB86A4EC8F281C6775DE06C639118814D39669B688B33398F83AB55CBBCF8EC9612ED59A75011444E9515B240A81D8A2CBD1E050951E4D60F16A4793B6DF4808A429FA2C1987AA78B589B89095DF20C2284BE8133E4808C4F30510AEF607838F7A63DD40C7CD2915027193CD217D85AF814EA143FE0631E67A9E7A0C020881783E89DF5035FD2B6E44697ACBED7E10E246DDFA74088158E7CAC948B76ED0CDD8AE0964F032EB2D00AEB5E075424E146C089895D3F407AC622D29F2350C58EAB26BD5678CC7BDA56AFA516EE5E7B6401E0270A55BE0E2EA8719F7E42BFA6CABF915B2723711BE64757C92C711F0504ED3AF728B0377059295AF07C1721B30B792889A1F02F49CA667ACE22E66D33A88D256C727791C81AECF6955D7BA9DB92A90B8772D7273E111D1B25CB9FAF9463E8B8ABC0CC08C46E3C4EFFB18900CE394D9CBB79A1FCFBA72B82A90C1FB905F0118EF0ABA983B21E26CAE5C5B7EB8348B4A260BB016731A5C4B8F997F95AFD43EE19A43B76FD24D600525DD4520F3136C71586180B09A997EC6467D4BE7F2ADBFEC9A3EEE6C9252ED04FE0C804BACB8106306192074A9657D8E9B7CB87E062929F264061E7513A4F02518B0C200134DCE97ABEBAC8CB53AC675810C5E6699C5ACC7590521C609069A6680B9A6566A72D37E0E71E089400AD9F402229AE73658E14F307078067881AAD5BEE636439E08A4A4A4CF62D02FDD062BFC09060EC7004B7C56BEA7667E0FE8EAE189404C8405457E9280735C452B9C0906866280F1A45AD1CFF3821CEF049295E712C1768B302F92143EE3CE00CD55B5EAB7BCC8D233819494F6B10CE3392F40C7D0E75A80363358377323900CB0F92E69720C73753D25434A8DEDEC79F605D71D7BF11EE440904545363B228967F9C3CDDC302D1092D28DB6A9854D58AD96F5CF35E5631863CFCE2066CCAEE999CB24897FEC15F8A8FB35A8E5EF3ACB9BFF305C1E5D1DE38F93B8FFF751CFD533FC4C97A995EA4AAFFC7B2A101374312BAF056192570944D6AF8DE6395DD9F47C8928F67DCD1DCCE55A55D32F746067D9C473811414791A012B2C234AC8402229932B6F19B8E768747465331989D8EC4E2B8E0319204C53CBBAD9FFC4B3C373810C9C4594CC068027789645F41CDB2E2A208A621C32C9C41BD4726DA2D753EF8B40CCE2CA44F43DAF93898A7F02D6E734FD7C3B788BD9F47A10FDA31D9B588F65CC542B7A8FD739FA22907D6711F96900677A9D5044FCBFAE6AFA3176B01615F97500A3EDD8C478ECD3AAA69FED477EBE0964B0B1CB523F928A440C1B0D261729E3C6A520991F808AC364C0A5B2A256C8F44D200367918EF4C360BAD80AB0D88F21BA572D576FB292675191EF0570A395B1B11FC3FC885AA97DD6AF3C7D1548B79239C7003F61EE8CF42BC130C7B1F206587C9170E00C521D84096AB9FA0BBFE6D5578198499514F90E065CFF2CD92FC2DC8EC3C094BCA69B7DCCDF7394A6A7A7B044ABDC8E19597F843BD4B27EBB9FF87D17C8A2A967BF4F6ADDF5041179DE27DC4F229B8AC558C7C4CF99DF63997E24F078663A55BC603D88D54D47B58E9EF08507D7F735C5B54D63DF0532702FA2C89703F8914DAC6278821990882E9F5DAEFEC46F0A0211C88048B2F21210AEF73B61112F7A0C30B024AFE9813CA4084C207767DB3FD24AC6E3004E88DE9409C4BE3140B49369CF05F99EE77FEB5BCC03020526907D37ECED57308CDE20121731A3C10081A7E6B4DA0F82421BA84006EF47EE04705B500488B8616680EE54B56AA0C53F0217C8A048CC3A5A62F75C98D7AACFD8087834A7E917F91CF63DE1422190D255723BA7781D40B6BE4F0A9A3C11DF230608AF1A064DEEAC54AB1E45B0EC36140231D116B2E95944D474DB5ECB998B81A165C06EFF142F13098D40F65D6A6516036CE9FB242F4911BE036560B1AAE9A1E985122A81CC9F3A76C4E811AD8F00F854A053248207C4003F36F288D68B6F58BA796F4000C2790F7220AA9292FE1083CCF7231F0F0B4902870F0C3076D45B70C19C65FACB3E44B31C22546790FDA8BB3AD2A74B06FD028436CB998881116680FBA84E9FCCADD043B7EF3E940219B81FE9485F04A69F4678D605748B0C30E3A27C450F65CB8CD00AC4E4B6D4919EC92CF6B25B5C67D11CE6D3DE72A7E4845A208367925BC17497D304855D781920E0D69CA67F3BBC085DEE93EE55A2454536BFE434B79D8A23260C10E1C65C590F7D47E4D09F41F6AF874276DC042269434CD647A2D320E209B9726D631448888C40F6DD93B4CBCCC693008E8C02B902E3210C10DE2248E759AD281906FE22251093B0EE19E98F190695017C320C040A0CD61820E0A97A9D3A3A57545FB266118E5191138849DBA2A9A71E9D6A6B79108C29E1A051A0189601C6EAFADEFEABE7F43E6716BF8BD4114981980CCF9F38B165F4F1AF170112DF6E857BC92D3E6ECFC9EA95BDBDF570C31C1A5D6405F2EECDFBC057C066ABB7F7477102E28A9981D724606E4ED31F88728E91178849FEE26C26D34FFC4DB1E92A1C4BD1DCEC5467BA2D0CFB399A65241602D94F425191C5F6DD665744D3F6C16F936D3A85031CC44A20665E838520CCB389A896E2E64A69E48B6827B1715B9005161A4174F27BEC04629230505208C63C5177CBC992B06F63D6AD82D4B230DFB33990D23CF6115BB788A5400EB8E4BA9C99E78932A7D61784CD919B24A28541543CB489D3F1F0580BC464C5AC05DC32E22FF398F155B301B963A684E1810C180C2C1CD53A7A81DFB572FD9E86C42C18B3F5421DC65709F419BF498E553CE6470C9216766AD5A76295D76192498C40F6E73FD8E96A966807677B793FC3A0FBF35AF53BB62D236C903881BC239481C6A2D22CD17DB7D1EAE527C0749F1F0D331B2109E2F7C40AE4DD338A3C8D18B3442F8E83971F33D69184FBBCEE431EC4A2B71333F102D94F56D7F4CC6592C4E6A5D72576088CDD58C26A1874BF5AA9AE8C5D6E0E121202398434B327A0C1C61410A610708E034EA3674278920DAC91485A9DD3B63C1FBD04BC432C04320CB725257D96C1984244E667F5E3BC9B86003C13D5D830D64884D539AD66F6B017C7100C0881585C1625459ECCCC1783682200D9A259D886E9605E4F448FE4347D6DD8C085118F1088835929CC3C3D8D7A7D1201E7033005738403377E98EC02B09E819F23955A975FF66CCD8FA0718A2104E2C26C0E9C5D882681790233C61061940B6E9DB87803C00E103D41CCEBC459C2098507DB088134CFE17B3C14A69F762C88C68052A6584E86C16360FE098C7129DC76307640A2ED80B19D0DDE01E6EDF9E5DBFEE4927FE166900121109F97C2FCAB3F3AF2B85DC7B4FD5FCBEE9168696BABEFE91F39A2C56883D4D256EF37469A70522D521F8CFEDD06A7FA3895DADD86BD7D525FEBEEDD1F7CB32FD7FDE26E9F21273A9C1048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CDC0FF03B3842241EA0172F60000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (46, 4, '5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001A2649444154785EED5D7B981C5595FF9DEAC96365453F82F20A2C484009495727115605410427BCF24009245D3D91281F88C974F50409101002AE6FCD74F50402282C1FE9EA3C411E110D288B0BC28226E9EA84C8CBB7A8B84B58D44548A6EBEC5793A0434832FDA85B75ABEAD65FF37D73EFEF9CF33BF7D7B74ED5AD7B09EA12CEC0E2DCC43129F48F01D351048C71C14711680C80A31A34FE1C839F07E8398D30F0771D1DCFCF2F6F78BEC1FEAA598B0C508BFD54B7DD30B06AC6D8E17FEA1831A94EF513403811A0B14D88A0554E9F03780B188FBACC3F7EA5BFBE7ED1EA2DDB5A0553FDDECC8012481B23A27766E670EA702769D02682F9430C4F14E86803B2EDAECCE807E1518DE831B8BCBEEED2869E15D55FB50D9C5000259026136F19E95319389B40A70218DF64F7709A13D598DD8708586BDAB51F86E34434AD2A813490B752563FDE254C21E06C009906BAC8DB84B011C05A72B1365F719E94D751393C5302D9431E7ABB261EA3B9EE14029FCDC087E54897EF5E3C02D05A57D3EEEB59B6E167BEA3C7005009649724F61AE3CFD058BB04842931C86FE32130EE73C95DDA636FFA5EE39DE2DF520964678EFBBAD21F755DED1280CF8D7FDAF71621ADD1347769F7B2DA43C9E66147F489174871967E22A5F019300C3520063140B0B98E9B0ACB9D4793CC4B6205E215DE0C7C068439491E0043C6CEF877265A5AB0AB3F19B26D0C1B244E20C559E30E80965A48403E86F9141712A177E4EB1DD75DBC7AFD2BE28CC8879C288114B3E9D944B410C07BE54B45043CF21E11BB749D59A9DE13016F7D71311102291913C682DC85ACEA0C5F060D12349BC45E20C5ACDE43046FD6D8DF9FD1A150763EDE49C46C125B8114B3E34FD2485BC8C06435A4053210F3D9249602B1721913CC4581C342410F6660A036C1A566C5F98FB811133B815886BE14DEE35B7505CA0001AF31D063DACE4D811A166C2C5602B10CDD7BFB7B8A60CE14FC5E186070B160D77AE242522C04F28D59E3DF374CD3BC65DC07C72531518E8340DFCBDBD533A31CC31BBE475E205676FC349076771C9211B3187E59DFF6B663E7AF7EFC6F518E2BD202B18CCC0280BF1AE504C4DD779769424FA55A8D6A9C91158865E85E21EE15E4EA929C81BA8B71F3973B4F49EEE66EDD8BA44006BED980767F14094FAACFDB593BFC73958DBF8E5AFC9113C88EEF36487D571DB59106F4770CDB7EE8DCDBB7FC314AAE474A2003DF6E6878244A042B5F0731C0FCF361E0E33E5BD9F4725478898C408A46E63802FF18C0B0A890ABFCDC2D033F1CB94FC7D48B6F59FF6A14F88984408AB327A651AFDFE9ED4A180552958F4331C0F7BCFCC27EE72E7AF8E1FEA15A86FD7FE90572C305630FECDFD6B10E44E9B0C952F67D656095693BE7FB8A28004C7A815839BDACBE17179079292079A169D7BE2C852B7B70426A81140DFD0A02A42650E6E446C1370226E76DE701597D955620A55CE62C665E2B2B71CA2F7F18206043FFB6FE8FCD5FFDD4567F10FD45915220C5AE498791DBEFFDAAA86FC7FDCDB794680CFE56C1AE5D24A373520AC43232ABD5066E320E17813E312E362BCE2D022DB4042D9D404A867E0D03D7B5148DEA1465065E4E119F36AF5CDB2053105209A42F979EEA3225664B1999068214BE301E342B4EA714BEEC74422A815846E647009F241341CA97801920BECC2CD7BE11B0D53D9A934620A56C3ACF44962CC4283F426280F0DF290D27CEBBC37936240FDE64560A812C9EAD1F92AAF363001D260329CA87901920DC6A969D0B43F662C0BC1402B172FA623062F3A1BF0C898DBA0FA4F1D4FCB2DA7D61C711BA40FA8CCC092E38D15BEC873D08A4B44F78D42C3BA19FEC15BA402C43BF0BC03952264939152A034CB4A050AE7E3D4C27421548299B3198B81C2601B2D866E04FC47801DA8047A3C178972CBE85E68704057BA8022966D33F21A2F7879680E00DFF19E0B5205ACF9E185CBCC023E8776F1B9E7AE1E25BD66F1FECCEA20B0E1FB96FFF7EA309EEE80EE6D12EF850029D9CBCBD86F946D3AECD0D3E553B2C862690623633838857851578507609788A81EFBA1AAFEBF1E1DCBF5B3FF5DEB7FFDFEB232633D1E9E08163A90F082A9690ECBC4CE074DEAEFD2E0CFBA109C4323277033C2D8CA0C5DBE497C0E87339F540CFF28D8F8BB277F3459386BDFE6ABD935D4C07B1148F4545C44A440BF221D522A108A4D7C89CA0C5F3C9950BA6BEBAA62D995FDEF0BC88C1B227CC52D78493B9EE7683F08920ED06628BB0D12C3B1303B1B58B91500462E5323782F992300216659398EEA014F5752FDBF85351361AC1ED9D95994EC4DD44F86823EDA3D28699CE2B54AAAB83F6377081F475A58FA8BBE410F0F6A08315628F711F6BD45728571F1482DF22A8354B9F431A7A1818DF22846CDDBE63DACEC783762A708194B2FAD54CF842D0818AB0C78C25858AD32D02DB0FCC1B668E3BB49EEA58C2E0A97EE0858DC1A0E3833E8E3A508194CE183382F7DBC789C79782F26F38F0C680B6B2992288CDB00778BBF6C3387B245881E4D2B398A9D22E5161F667601B314E8FDA716356363D1344CBC3E4CE07DB2F0E63F7982077660C5420564EFF36189FF681A8702018CF9A1527B2DFC9EF9CC17F06E0887008F4C32A19A65D0DEC4736588118FA2F011CEE074D2160544DDB9910825DDF4D5A86FE74846F73CBA6ED74F94ECA1E000313486F2EF3118D3992A7A07AEBA40AB6139B37D68B677CF09F52C35F8DC4DEB86F1DB7FC52FAA8FD0E3C655130DB960626906256FF0A112E0F4AF97EDA71EB7444CF8AEAAFFCC40C1B6BE766E04F86ED472BF6837C2712A040A2BA30914F33ED5A2CCF23B172FA1C306E6B659086DC27B0DBAC4004B274B67EC8B63A42596CD64E22097451DEAE7EAB1D0CD9FB5A59FD9B20CC97DDCF37FBC72F99766DFF207C0E4420562E7D2198A236D06E326D2756CB61F6548716B3E927A3F6D941507BFA062290A2A17B677B04BE4CA0D55F18EF5D07DCFA7185E59B6BAD6244A95FC9D03FC5C0AD51F219444BCD72F5B3A27D0E442096A17BB75787880EC62FFC30DED8FAE57BAB38564E7F048C135BED1F42BFCDA6ED085F67265C20C559E30E202D1599831B0978454BE17859F6650A6AE05946260BB01D943D1FECB0693B3B3E501678091748048F6CFE8A693B570AE45C5A68CB483F08D069D23AB88B631D5A6AECDC651BBC9501C22EE10229E6320B89F98BC222F017F845D63A8E2F2C5BFF1B7F61A381D69BD53FAE11EE8C86B7DEF7E23C236FD7D688F457B840ACACBE26325FB9312F322BB544EF2C5F32F4EF4765630802AECDDBCEF5D11688A1FF1CC07B4406E11736B37B72A1B2E93FFDC28B228E65641600FCD588F82EFC2050A13348EF0599776ADB392A87C63F67DACED1111918C2DC2CCDD627701D529DD1B19760853FC9122A102BAB9F02C243C2B2E923300337176CE7333E424616CACAA69D881CBB2DFC49965081140DFD5202A439EB616F2396812905DB5187860288D2F213D14FB2840AA464A4BFC6A0CBA4FF2925FCC52C3BFB4AEF67400E1667E9279286470232D79619D14B4E840AC4CAE9378321E5E9A583B342C0CABCEDCC6C2B5331EB5C34F4170978B7EC61895EFA2E5A20CBC188C0C0A3CB4DBBFA35D9074390FE5939FD5E30A60469B3155BCC7C61A15213B68E4CA8404A46E67E069FD14AE041F6114D7290B1F865CB323237002C7C3160DBFE122E35CBCEE2B671F60020542096A1FF18C0874439EF17AE46744E77B97AB75F7871C0B18CF495007D49FA5888AE33CBD545A2FC142D904D00C68972DE2F5C223E295FAE45A228F52BE6A170ACACDE05C21D43B50BFBFFA2575E0B1548D1D07F43C0A1619338947D82766CDEDEB865A87649FA7F5436D920E0B6BCED08DB4A4AA8404A86FEBF0CBC43F681F5FAB6ED072D58BD25324BF283E073716EE29814D79F0BC2565B3618779A15E7DCB630F6D259A8402C4367518EFB893B729F8EE1BB9EF0E4277E14B14ADD6346F0D67D5E93DF77FE8169D73E26CA4FD102790580F42FE00823DF91B79FF8B32892A3885B9A33E15DBCCDFD53047C17BAEBBB6881FC76E0404AC92F4DE3F7742FAB79BB3EAA6B2703BDB9F4448D697D040811BAB9865081940C7D3303C7CA4EB2A669C7857DF08D6C1CF5E5D2535DA67B64F36B577F18B8BE603BD78AF253B040328F31F883A29CF70B9719A7172ACE3ABFF0E280631999B9002F913F169A67DAD51B44F929582051F93A2DD81DC34525D34F5CCBD0BF0CE00A3F314560457A2D5629A7AF62C60C11C4F88C99376DA7CF67CC48C35959BD0C82217B10E46A1FC92FDFF823517E0A9D41A2721E88CB7C5D4FA5266CB982A8E489C4B572E987C174B2481B7E60BBFDF5B13D2B370BDBD944A8408A397D31317AFC204230C613A6ED7C40B08DC8C0978C7FDD97F19AF7885EFAAB3EB27FD4FC5B9FDA2ACA51A102E9CDA6176944C29E30F8498A4B1D07F794D7FFC14FCCA8621573E94F1093D0ED747CE2A6DFB49D613E61ED1646A8404A46FA5C06057EB6754B8431669B1567594B7D63D6292AB7C6007E6FDA8ED02D6D850AA46FD6F8F7B99A26ECFED0E77119D899133EFBED3B9C65E82F0038D87760FF01851F8B2754201E1F96A16F07D0E13F377E23F24BFB0EDB6FF49CDB1F8EC0FA23BF63FF075EB476A2A17B0B76759A3836BCDD1B055F96A15701E882CDF802AF7636018AD9F4178968A12F840A0661E2AB0AE59AD08FBAC40B2422CFD3BD5C12F85B79BB26FD2613A2C6DDCD174D1AF6DA5FFB9F002122A7F98A3F1E4FB8408A867E0501DE5BD9485CA25F3CC94C8295D3E783F14D997D1CEC5B2A3562FF79773CF992487F8310C8D904DC2732087FB1698D6957A3F0F6DFD7B0BFDE957EF77097FE0BC011BE028B03DB62DA8EF085B0C205D2D7953EC275E917E2781280CC34DDAC54A55FC9EA67E4564EBF1E8CCFFB8929128B81DB0BB63347A48D1DB7DD015C9691FE1F80460560CA2F133F346D273207C9B41BF492D9FAD1F53A9E00F0CE76B102EC1FC8FAB9600492D36F0343B8DAFD4C8ECB34A7A752BDDD4F4C59B14A59BD8F09F364F56F777E05755445300231F47300DC15A50400D84CFDF5E9F9959BBDF34D627B95BAD253D8A57B2316E076C2C8FD83F84C3A108144EC9C90C163E511D3764E8AD8E069D8DD9231612CC3FD0180831AEE244143023D9EB7AB816C481888403C4E8B46FA7E0249BF0DE9AEF927D0BD79C16F6BC31A7396A1FF14C0A4B0ECB76157E877E883FD0A4C20BD46A6A0817BDB2025B4AECC7447A152FD64680E08306C19BAF7E8FD6C01D0E22109E79B6567957843013DC5F202E9CD66321AF1C62082126283B960566A9610EC80414B59FD6A267C2160B37E997BE6A06D471F7BDEEAD575BF00F78613D80CE2396119BA27904C108189B1217E698318BFFF815ACA4E388DC97D50B41D51F8CCFCA542A5769528FCB7DE6207650940C948F732A810A049DF4D694057B7ED947D070E00B068643E4B60613B80041002288589F93B9CC0EE44029D4116E7D21F4E31C5E098E5E81DB813871F27006B4DDB09F4509F4005E2FDC244F569D65B7F1DF9C6978FAA752F5A0437885FCE566D14BBC61E46DCB1144C67B68A214B3F629A930FF8E56DE002E933F49C0BC4E2D35666AC2350B759A94AB90BBA954B9F0EA61280A36419E4ADFAC1C06F5F1FF1DAB197DFF6CC5F5AC568A55FE00259356346EAF7C39FD944A0635A7158B63E0CBCA031FA46FC7347DFC5B7AC7F5506FFBCB555FDFDE8A6882D1FD91B77A20FCAD993EDC005E23912F1C78C7BE27233187D66C5B9252C910CECC8FEBADB0D4277C4161E0E4999063AB1DBAE7A47FA057A8523904F8E3B92EBA91A186F0B34DA608C3D02C292A05E647921795F02FEEDAFFDF3688730A2F23D47C3D920C243F9B2736AC31D7C6C188A403CFF23B4B54CAB747F9F881E4AB978706EA5EA7D97EFFBB5E39D067F94C0931998E8BB014900358D2FEC5E26EEA8E7BD85199E408CF4A900790BE592703904FCA00EFA4E4F9BB7095636338D89A76BC0290CFC4BDCC963C643854A38B387C76D68021998450C7D2580F3E29EE45DE27B91401B98792B085B5DE6AD1AD14BC4B4B54EF5ADDEFE487568A38878145C1A05E2510C1A45E05100792B8B8727892F8D785A77B916DA72FC500552CAEAC733E13100A924255DC5DA18030CAC2CD8CECCC65A8B6915AA4076CE225F05B0404C780A35CA0CA45CED43F3966F7C3CCC184217C8D2AEF4BBB7D5B5C7407C64984428DB7231C08C25858AE33D950BF50A5D205EF4A55CFA1266BA31542694718918E0973AA8E30373CB1B9E0FDB292904B2F356CB7BA215CAB3EEB093A0ECEFC200E11AB3EC48F1BD8A3402E933269CE1C2BD5F0D96C433F0F4C86D1D1FB878F57A290EF091462003B3484EFF36189F4EFC104936019798B673932C14482590E2AC710710690F80282D0B41CA8F40195866DACEEC402D0E614C2A810C14EC86DEC9803AB35CA651128C2F0EBBF5C985E59B5F0CC65C6356A413C8C0AD5636FD39107DBDB11054AB3830C0449D857255BA6FE5A514C8CEA75ADE4755B938245FC5300403CC979995DA3764E4495A81DC70C1D803FBFB87AF03B3AA47641C39FEF9245DDD3138346905A2EA11FF46A0B448C435AEBB9DB2D51D911188E7683197B98C98BF266D9295632D3340C0E4BCED3CD03240001DA59E41DE88DF3274558F0430180235417C995996B3EE88D40CE2397BC305C71DD8BF7D9BF74B333ED0242A63A21888CC99F4919841066EB5B2FA64227C5F54C6146E400C10D53A3AB64D9E7BFB963F0664B12D339111C840D19ECB5CC6AA1E692BE161778E42DD11B95BACC10E5B39BD0C861176A295FDE61920A205F97235522F802335837829E9CD4D3A48E37EAF1E19D77C8A548F1019884CDD11E919C4737EE7969ADF0B31D9CA74730C6C72A963724F79FD1F9AEB167EEBC8CD206F5066199905007BDFB3AB4B720698717AA1E24472016A640532309318691BA0ACE4E323E1EE45EFA888C8DF62BD1140DFCC0907BB29D7FB6552F5888C3224D866D989F482D348CF20AA1E9151157FF769B34B1D9D51AC3B623383BC114831AB5F4E84AF483D5C92E61CF11966B916F917BB919F41FE51B4AB7A441E0D46BBEE88DD0CE205E4D523F594FB0001C7CA335092E809574CBB169B17B9B19941BCA1D86B8C3F4383A6B60E0A4F979BB5BA36B97BC5C6DF87E782BF966325108F9A524EBF9C59D523FE0E9306D1625277C4F2166B705045235321F0AC06D3AA9AF9C00031AEC8579CD8BDB88DDD0CE2E57AF16CFD908E3AD6B1AA477C18FA8D4050C5B4ABB1A93B623F830C14ED6A2BD3464676DB6D08788AEA5A679CEA8E4408C40BB268E85710F0E5B6478102D823031ADC33BBED4DB15D381ACB5BACC1D92C19990AAB7A4488C419B8B2603BB17E419B0081A44733C85BAF3556C828492828839617EC6AEC178AC65E20DEF8B5B2993341FCDD848E6511616FA9A7D039FF0EE70511E03261264220032231D25702F42599C88FAC2F4C6799956A225EC82646200322C9E9CBC108F5D4D4C88A62A7E349A83B12F3146BD7C15832D2A35DE001021D13F5811A8AFF841566D949D40BD844CD20DEA0EACD65CED298D78632C0A26D740B8127E7EDDAEFA21D4673DE274E20AA1E696E80FCBD7582EA8EC4DE620D0EBC68E82B0838BFC5E192B06EBCD0B46B897CE19AC819C41BDDDF9C39EED08E94B60EAA1ED9BBD8135877A819642703A55CE62C56F5C85E04C23F23A03369758712C820068AD9F44222FA62C2EE991A0A9788CECE97AB897EC19AD85BACC123A464E82B58D5236F120D335F55A8D412FF625509C45BF5DB35F630728779EBB5DED7D04F6BCC1B11B0326F3BEA852A0025909D83BD68E86713705FCCC77E23E13DDD5FAF775EBA62F36F1B691CF7364A2083325CCA65163273A2EB115577BC59F24A20BBFC045A86BE12C07971FF65DC5D7C4C7455A15C4D7CDDA19E62ED65F417BB261D466E7F12EB9155A6EDA817A7BB8C0D3583EC462CA559E929ACD1BD099A459EEEA8D73BE7AABAE32D295702D9830A2C237315C0FF9604913030A5603B6A01E76E92AD04B2170524A31EA1AB4DBB9AE807137BFB115402D90B3B4BB213FEA54E03E78FBC37A63389AA3B8648AC12C8100495BAD253D88D653DF20C6B1D9D8565EB7F1353F1FB12961248033416B3FAD544F842034D23D3845C9E9A5F5E532F46D50CE2CF982DE5F455CC98E10F5AD828AAEE6834036A066990A9DE9999C3358DD7817074835DA46C4684D5F9B293C817A1AD244409A409D68AB9F45462BAA7892E7235653CBB1D5AE7E72A1B7F2D9763F27AA304D2646E4A59FD6A8E683D421A4FCD2F537547332957026986AD9D6D2D23BD1AA0735BE81A5A17667CBE507112F1E2D34F9295405A60D3AB47521DBC8E392AF508AF31ED5A4C1E30B490B036BA2881B4489E951D3F0DA4DDDD62F7E0BA119E4DB95AE73C5577B4C4B912484BB4EDE864E5F4CF83717D1B10C2BB32F1B442B996A48597BE72AA04D2269D9691590DB09CF508E31AB3E2C4EA05679BE96ABABB1248D394BDB9435F57FA08D71D387FE4A836A17CEE4E6B4CBBAAEA8E365955026993C0815BAD6C661A8865AA479E73EBD4D9B3A2FA2B1FC24B348412884FE92F1AFA35045CE7135C7B30EC4E372B9BA2FB42B3BDE87DEDAD04E2239D56565F03C2277C846C1E8A708D59567547F3C4EDBE8712885F4C7A474F875D8F30EE342B8E9C0F0C7CE439482825109FD9EE9D9599AE69FC1D9F611B817BCE1D469D3DB7ABBAA311B21A6DA304D228534DB42B19FA351C743DC234DDAC5455DDD1449E1A69AA04D2084B2DB4291AFA9D047CBC85AE4D7761E0DA82ED48FDC2B2E9A024E9A004222811BDD9F1EF4991B68E8131824CEC8025DC699655DD218A63251051CC7A457B2E33DD6571F50801CF93C69DDDCB6ABF141846A2A1954004A7DFCAA6AF05D12211665C97CEE9595E95E905A5883043C5540209807E11F50801D7E655DD213C7B4A20C229064AE78F3B92BDF310898EF4C31C0377156C27DC17927E0412010C259080926419FA3900EE6ADB1CF3CF5D70674F65D32FDAC652004332A004322445FE35E8CD651669CCD7B683A8119DD35D5675473B1C36D35709A419B67C686B19BA378B78B349F317F322B35293634164F3DE47B2871248C0692B7D72D291DCDFFF3080D1CD9826D0BD79BB3AAD993EAA6DFB0C2881B4CF61D308C56CFAD344F4ED663AF6D7EB87A973039B61CC9FB64A20FEF0D8348A95D32F02E3E6863AB2FB7EB3B2697D436D55235F195002F195CEE6C0AC9C7E1E18170138F52D3D09AF33E36E0DDAF5797BE396E690556BBF185002F18BC936704A59FD7817380144C711B84E844789F801B584A40D527DEAFAFFB0D50B415746FC720000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (47, 4, '9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001B2E49444154785EED5D09941C55B9FEFEEA99099B844094D5070A0804A6AB43140451597D44643784747522B22A245D3D117CA020E1890BEB74771295680099AE1E20B2681064131425222FA6AB13020A6A7043901010216466BAFE776AB2906566BA6E757575F5CC5FE7788E9CFCCBF77F75BFB9D555F7FE97209730200C0CCA000937C280303038032210191DC2C0100C88406478080322101903C2803F066406F1C79B788D1006442023E4464B99FE181081F8E34DBC46080322901172A3A54C7F0C8840FCF1265E23840111C808B9D152A63F064420FE7813AF11C280086484DC6829D31F0322107FBC89D70861400432426EB494E98F0111883FDEC46B843020021921375ACAF4C78008C41F6FE23542188894406E3A7FC2366FAFE63D35EEDB134CFB8279C711721F4674991AF03768DA1F41CE8B2BF72EBF386B169CA810D27081E40CFD54006703D80FC0BE51214670348C81D504BCC08C458033CF2C2E5DDC3024001A2690ACA1A768AD308E6A2401923BE20C30E6355228A10B249B4C4C22E22F013834E2B746E0458901C6BC0A233FB3DB7E264C58A10AC41587467C073770E60A935CC91530038C3F708CA765BACA4F051C79D070A10964DDCC71675885499E61CBC04B9AC6A9195DE59F8751612802117184712B47548E37496323DD555E58EFAAEB2E905C32B12F133F49C0D87A1723F147160331473B7C7AF79245F5ACBAFE0249E93781717E3D8B90D823930106EECE58F6E9F5ACBEAE02C9A5E2C783E9817A1620B14736030C4CCD5876A15E2CD4572086FE088063EA055EE20A0300ECADB66D39FC82798BDFAE071B7513482E153F174CDFAF076889290C6CCC000157A62DFB7FEBC14A1D05A23F01C6113E412F27C2330C5AEED35FDC9A8501C739B21F2AD127FD43A6674DAB34CEBFFFE09E751148DE887F96410B7C00FEB606A738C35ABAD487AFB8343103D954FC7462FA1F001FF15306397C52BA3BF8D7BE751148CED0EF0370824AA1CC989129DA73547CC47678313067DAFE3B39CEA81F30E314E5CA18BF328BF6C795FDAA38042E907C72FCB14CCEC32A4009B8396DD9E7A8F888EDF064E0C6A9E33F1C739CA7FD54578FEF22810B2497D40B20186A05F2B1A6557E54CD47AC872B0379233E8F41E7A9D6478C7BD345DBDD3E11D815A840664F1DFF614751FD047A206D953E1D584512A8E919F0338ED6171D8B61BFE9B7D97F088A844005923374F737C4454AE00893CD822D8B1895481BFEC67E671126CCCF14EC738362283081CC9E1AFF80E390FBF6695BCFE008BF320BC1FFB0F29C5F0C23CB402DB34865ABBE9D66CE7FE6B5208A0B4C2039237E35405F5501C5CCE7668AE5F92A3E623B7218F03D8B30AEC914ED4B83602A1081B8CD16DE79ABCF7DEEDB5D0194BD6A5FFBE0286DD057C02EA6213050C32CC2A6656B41400C4420D954FC1262BA56059003EAE8B04A59151FB11D790CF89D45407C8959285F5F2B638108246FE8CB1838D03B18FECBEA9ED6F8A50B16BFE1DD472C472203BE6711C6BFCCA2FDBE5A39AB59205923711E81E72901617CCD2CDA5F57F211E311CB80FF5904679B05FB965A88AB59203943FF3580C31540BC45E0FDD356F96F0A3E623A8219F03D8B103D6B166A5BC4589340F249FD3426DCA572EF187C5DC62A7F59C5476C8501BFB308697C522D7BD76B12482E15FF299894BE823B5A6C5C47D7EF9E955B2E0CA830E07F16A9ED5B9B6F8164A7E847908627548A04F03DD3B2BFA8E823E6C2403F037E6711107DCC2C949EF443A36F81E48CB80550522529310E4D17EDDFAAF888AD30B09E01BFB30811EE4D17FC2D62F42510B7950F8815178471D1B4CA8AAB7C871E1C9D6726F6D262EE0B02DE498651F4186076EC4C71E92F8344E67716F1BB88D19F408CC45C802F542B3CB825ED9D53E3476B0E5D02E078350C62DD0806887145BA685F1D446EBFB30808F34D1F8B18950572D3A409A3DF69EBFB07806DBC164CC08369CB0E6430E792F18B41749DD7DC6217190696ADEAE99D306BC1F29E5A11E552FA0FC050DE60E76711A3B240F286FE75062E5729D271E8D48EEED2BD2A3E03D97626DB3FA891F6C75AE3887F631820E086B4655F5C6B76BFB30813AEC914D416312A0B2467E87F07B09BD72289E8FFD28592AF8DF89BE7C81BFAF50CB84727C8D5A40C10B61A9DB69EFA77ADF0F3867E0B036729C6515EC4A824909CA1CF70DFB62981624C338B769792CF20C6394377D76E6D1F442C89D118061CA65447B164D59ADDEF2CA2BA885149205923BE9C40072814B7C2B4EC0F28D80F6A3AF7AC71BBF4F5B6BE14442C89D14006089D66C19E1904829CA1BB7F78534AB108FF320BDE17317A1648D6D0271370BB0A18065D94B14ADF51F119CA3667E8BD005A828A2771C267800933328560DA3BF99F45BC2F62F42C90BC117F9241872950FA66A5679B9D672E58B45AC16748D3BC912832784A50F1244EF80C30F1FE9942F9F74165F639269E332DDBD393902781CC4E258E74981F53292AC877DFEBF3E68CF83100B90DB1E56A4E06EE312DFBB420A1FB9D45BC2E62F424905C32FE5390DAA2C4368D77FE6257F99520C97063E50CFD360053838E2BF1EACF401F69892F1596D84167CAA6F43B89314929AEC7862155059237C68F63386A278B32E7CC6239A30458C1386FE85731F0350517316D2003CCF8B946FCD5B455FE4D3D60F89D45BC2C62AC2A90ACA1DF428AEF9BA9AFB24FFA8E6575FDA0F79D64FB985E4D9B0476BB82F33E00EF4DD06421643D46A06A4CE2BD1DA63F12506287EFCF74DBBF520DA16A9F35F4BB08507A7CF3B2887148815C3F65C2D856ADEF5F8A600BA665CB23902269625E1B037E67916A8B1887144836A57F9B186E4B7ACF97C334BEA3582A7976104361202006B246E2C7043E49295C95458C430A2467E8EEB1565B7B4D287D76BD322576F560C06F67F8586CCDD8E9B73DB772204C830A2497D26782718352218CA3CDA2ADF43A5829BE180B035518F07536CD108B18071788A1BB4BDA7755B8234F9B967D8882BD980A038133904FEA8730E129C5C0832E621C502059434F11A0B4C090C093D256F9478AC0C45C18089C816C52FF1911FE5B2530137F3953286FB1CF684081E40CDDFD91AD2B24F89369D97B2BD88BA93050370672A9C4E16076FBB579BF0659C4B88540B2A9C471C4FC90F7C8EE01A5F842BA60DFA4E223B6C2403D19C819F187013A5629076DB988710B817426E3B334A22BBD0626E08DB465EFE0D55EEC84813018C8A7E21F6726D58611779A963D79637C9B0864EEA471DBF58D6A2B8159E171892E37ADD237C2285A7208032A0C640DFD3102D69EC3EEEDFAB769D9A3071548A7D13E518376BFB7586BAD1CA2A33A0AA5C7557CC456180883815C523F0A849FABE462D02119ABB4E194DD4D66907C2AF10D66FE8A42C0D5A6657BEE6EA210574C85819A19B83E397ECF567256A80462E0B28C657F7BBDCF2602C919BAFBCCE6F9307606EECE58F6E92A00C456180893819CA1BB0D0EF7F59E931F31ADF271830984BD0702407C9E5928FF40C9478C85811019C82513DF01B14A3FE84D3E1A6E9841E69FBDDF7BFEB3662BA5762CEC54F44CF7B27288F54A2A61408981CEA47E9AA67844474B4FEF7B2E5AB0FC3F6EA20D02B9719ABE7BAC02A5436D2A3DDB6C13E49E73A5CAC55818F0C0809F3ED25A45DB7DC6ED4BDCA556EF0A64F694F6FD1D4DF37C6E07037FCF58F61E1E308A8930D0300618A0BCA13B2A00366E2CB16106515DE445C0E369CB3E4A25B1D80A038D6020978CBF0022CFDFF6367ED5BB4120AA07E210F062DAB2F76A44C19253185061206F249E64B0E796550EE8880EABD4BF966B8340661BEDED0E34A51FDCDBB78ED9FAF3B73EFE8E0A58B11506C2662097D4FF0C82E73FE6150707CDECB6FB1B95BC3B834C9DF05FE4F4BDA8029EA01D98B6962C57F189AAED9C54FCE08A831389DCA31AEAD37D23AAB5AFC795370EDDDEC19AFDB6DE36F6CC05F316BBBB4987C59533E2AB01DACA6B319518F698799BED36697F5720EBCEFD78DD6B10D78E811333967D9F8A4FD46CB3867E2981A761D39EC3EE1B8CDB4CCBBE2C6A78EB8167DD0255F711E4531BE2131682E976D32A15EB9133AC989D672576D07A79954ABE1E8DB7BBA4ABFCD6260271FF2367E84A1F0A89D94C17CB6ADDDE5590D6D93667E86E9FA6438748D3655AF6B43AC36858F84E23F1310D7C2380C17782325F6216CBD7370C648D8955DFCE0278DDB4EC31EBD36EBAD424A53F01C6119E3131EE328BF6673DDB47C8306BC43B0954BDB95D930F90C1289F3D35FE01C7C1D300553DDF919852E9008E2C68C4EDF7B160F13ED3B24F1C582086FE2D0097AA14E2104FE828947FA7E2D368DB5C523F1F04CF1BBC98F9739962D96D793A6CAE9CA1CF0770B697820878A6AFA7EF1333173CF39A17FB28D9E40D3DC740DA2B26625C9A2EDAD70C28907C2A710233ABFDA660BADE2C96DC03359BE2EA9C7AF00131A7B28081031500F73A44A776144A3F55F089AC69CE487C1560B5433509B79B05BBE93AEB670DFD2F04BCDFEBCDD04047CC58F78AD7F5D9E4116BDD0FF53F01D8D16B40007F7B9B9DF865C5A54A3F8414E2076A9A37F4658AE2E8CFCFC02B19CBDE3950300D089633F45301DCED273531E6A48BB67BCA58535CF964FBB14CDAC30A609F372DFB431BDB6FB1E53697D20B60289D674EC417A60BE5EF2A00698869CED01701F8680DC99BBEB591EA8B98CDB972E07CBAC35AFA400D1C86E69A4B26B22036BD2664209FB1EC4DECB710483E953098B9E035E83ABBB7348D4F9AD15556DABDA598C3B7F98D930EDBBAA5EDEDFB596DFBE580F9DCE7F1585B65E245B72CFBAB6F400D70F4B3686F709834DDB44A731B5086E79473A6E8075634B8FB9BBC3F0D114F340BE59F0D3983DC78CE813BC656B73C0F5208BC36E29F34C7396146F7D2E73C5711826167329188117706218E77E1D24A8D70EE8C42ED475B874001661BE3273A7094B65257C7453F22A2ABD37538EFA37AEEEA1639236E0194AC6EB9C1628BC72BF75F06E98B159F0BD0850AC1D79BFE66BB51EF7CEA9C9B7FFFA60FDFC05D72A98409E65900EAD575A58B62E84CDF662F091C7C0001D7FDA674DF4A2ABD99F49E9A56123B57A48BD17ABCCEA6129710F3B5DEEBE897C280CD47061448FE7313F6E6DEBE4520BC572D49BFF53D4C7C5990E7D0A96270978D380E5DC18453547D55ED097887419DD4439DE9054B548F8A504DE7D93E67249200BBC268F7ECE4DFB0E054E88A8EDB4B4AFBBFFDA71BDC73B6A14F76140F9B05F0BCD34A8774DC5ADA6225C9A0BD79D72EC180FB5D44F962E055025D675A2545152BA7DAC4213FF9A0BD9D166D3A314D07857B1A2E012F38A0CE204FF5F5C3467E4AFC448ED179606CF8D8E5278E0F9FBF83F9FB8ED63AAFA3B038F4E3BADD2525D4EB5CE9E9E3EF66C50DB522645081E467EC330AAF6DFB240307FB20ABDF85815FC788AF9D5128FFC46F0C2F7EFD87A7542A278030C3CB97612F31FDDA30F0B8A6F18DE9AEF242BF31FCF8F50B43A3F3017CC68F7F803EFF00F33C402B9AC5D2F301C61D3454672A718AC6EC363B4CA8E663E077BBF57CE89033162CA80CE45BE57C90FE5365DD5FF5B59E4D7EB3E638D705F9033E6FC4F7704029229CA0B43C66080699E90C22BE5395E441EC973361618C69E1C61F9E028ADD1FC6FDC3C08E7332809339884729C27C308F062898E5438C8799F02069FCA0D9555E1664ED6EAC1B26EB1F6A89D1852AAF7237C3D007F0F1A6557E74306CD5CF284CC6D344940BA8387771E0E38EA3FDA4A37B89FB4D42F9CAA7E2D3C0DA5406ABF55DAD9E296D5AF6EC9C11BF0CA06F563757B2F80D132D8C7165E10C6BE95225CFCD8CE724C7EFD987CAC9009D4C84A36B89B599EF63A665BBF12867C4EF0C4C241B92D02F999D0709FCA0595CBAD82FEE1BCE3CE8FD2DB1962900BB2B8F8FF11B679D5FFF3D1F2A465581B8CE7943FF1E0317D4086673F77F02580CC62BEE576AD2F00A815E76DCFFEF54B621D27662D05880F720D03E0E785F02F60918437F3887E8AA8E42C97DDBD57FAD7B5CB97CC855AEFE813CC4C48F30F332EE719EF2B2BE69DD76E88341F82418EE8CE1F9D42F2F3009EE1E18FBF8F5B66BF771D743241BD03C05820DC632AEF06F33B797073CCF63EE59E376A9F4B6ECC58CBD98682F62B88FD1DE17D30E513C0337652CFB0BD5F8F12490FE4193D2EF64D5B3A8AB658FC2BF0FB25AB7FFE3E2A8D5972B769AF453D1F3207E1E4C2B417815CC6FBB7F18883196083B39C04708D8D64F602F3E0CDC9AB1ECCF6F6E1B8248364FF92A80956B5FF0C05D61ECEE00F4BCC9C94BAD1BD96CD1A47A307FCF027103E40CDDDDA77BB82298A89ABBCFC45F332DFB9EA100764E891FAD69E4CE26C3AE4105117D335D287D75B0FAFB4592D26F00A323AA37511597FBE22863D99E67212581AC1389FB11703B556091B227CC6B23BEE28B5DE557BCE25ABB02D6B95C65EBA6D7D80DB02B390E5DD5D1ED6D25C06CA37DA203CDFD23D1EC7F1CDF342D7B7B15BE9505B24E246EFFACFD551245C19619CF681A5F9B2EF8DBDB919D1A3F949CFED9A4D1AF527DD349E06CA555BB6AA08F6243059D75E4912D63F678DD7DE4CC10B0C91101BEC184EA48CF9A56699C6A4A5F027193E453891F32BB7BB99BE062B81B7DB22DBDBD9DEB5B4AD6823A9B8C9F4344EE8AE7E679EC222CA40A7F3FDD5DDBF719773F8DC6950C18EE3797A6B898E9B64CB1F4393F607D0BC44D964DE9D3A97FAD53F56D9B7EC005E0D303A2F9B15ECE4EBFC376BB7C077AF59FA7C29A0152DB1E102888EAC1EE2387E7D52A8CCDD3CC9E1A3FDA61728512F617FBEA15BF6BF132405FAF65E5714D027171ACDB14EFEE28F4B47D53A53ADFB68C15442890E358417E9C1C0C4F76DAC17154FA52044A291E9DEDBBC42A8EAF82E95EC4708FD9550A7815EFA6993BA7B41F16D3E80C06B94797A91C1B5EAFDADDB86F33782EB4D63999AEC57FA92551CD02599F3C976C3F9948BB84818FD502A806DF3E101E701C7E60FBADD6141AB1A2F8FA2913C6B669951483CFACD22DA586320775ED61F0A38076CFD64EEC9E0BBA17BBAF4D43BBE64CDB7FA7BE4ADB64223A1E8C8901ACBE50C7CE5803C22D310773A6AF6BFCA61E64538FC004F2AE50FA1B22B8D36E183F64DF22A2BB1CE687995A1E6DC422B9C16E40DE183F8EC147017C0C18A78006DE5A50E30D5C01F0FD20FA05572ABFC8742F7BB9C67881B877A626EC4ADC778C46741C33BB072CD5ED3B8E0B98087F6050371C5841AFFF0A5C20EB195E7B9C021D4BC42704FB819156329CBB89B57B57F5F63C326BC1F29E40EE6A1D835C73F67EEF19D533EA286272BF829F04606C0DE99E04F83E303F54CB928D1AF22BB9DE39695CDB4BAD6DC71239A730B4D300AEDA66C86382D50CDCA1113F84316FDF9D9EFDC21A8F7E4A667513C8C628AE9B1ADFB6B5A27D5AD3781218FB3368378F44B9DDED9632782981963A444B87C381A1FD82E9DD6E8CC6CE18028F7198C710E0362B1BE330B626A255406515885E63C2AA16A2554E4C5BF5DA9F47AF9AF5F8E37D4A773862C69DA9C4911A733B81DB19E4EE5571FF576D8671F769B8B3E58B606D05B3F38436F6EDFBEA258A8D290B452003DDA3FCC47D465576DE6E57AD0FBB113BBB31685707BC1D082B50E11588B5AD88D22353C4C6D9B082E3FEC1D87ACDA8D1AC6107EEA31DA0D19A9618BFD1D75B7963F4A8B16F34B2417AC30432ACEEB014336C1910810CDB5B2B8505C1800824081625C6B0654004326C6FAD14160403229020589418C3960111C8B0BDB55258100C345C206E73B3356DCEEEC3E528B7206E8AC400B2530E8AB711FDF5C20637456F984072C9F895207237DD7FDC1D106ECF5B07FCF0280DDF52D9C8248369F830909F34FEBDDCE65CC1C0C48DFA0F3C49C0A24A2B5DADBA87250866421788BB4E4743DF6C30DC353A035DCF691A5F14D546D841902E31B664209B6CFF0491E636C43E68107E5E72883F13F6614DA10B2467E86EEBFC0D1D340622C3ED7212D3F8A333BACA7F96C134FC19E84CB67F3046DA2206DE57ADDAD53D2D3B5CBA60F11BD5EC82FAF75005E2F6B462A61F7A02CF94338BA5EA67087A0A2646516620974A64C19ECFF1B8D9B4EC73C2AA275481E48CC42F00FE84D7E27A9D96F75E1CF2BE06AFD8C42E1806FA8FDB78A765A55234A653CC62E9C74A3E3E8DC315482AB11CCC0778C5EA808EE8D8E8BC38AF7E62D73C0CAC6B84E176DC54B8F82BA655F6D5585D2149BF69B8023174B779C28633A8AB8125E09CB465DF5CCD4EFEBD7919C825F5A920289D205C4B130655A6C21608AB007498AFEA289637B40455F115DBE66020974ACCC2DACEEC2AD7FA3EC22A3EBE6C4520BE6813A7A01810816CC4A4EA09AB328304350CA31B4704220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA1044202290E88ECE08201381884022300CA30B4104220289EEE88C00321188082402C330BA104420350A24BAB7B63EC83480EB1339A251358DC07CA522BAC74CCB3E5AD1C79739F9F2F2E99433F47F02D8D9A7BBB809036B1960CA99C552260C3AC21548326E83281E4661926318334038DB2CD8B7845161B80249E9DD609C19466192631833A071BBD9555E164685A10A249B8A9F4E4C3F0AA330C9316C192899963D3EACEA4215C8B792ED63B621AD0C608FB00A943CC38C01E65966B17C555855852A10B7A85C2A7E3198AE0BAB40C933AC1878CE69A5C33A6E2DBD1E5655A10B64D6A4716D3BB6B52E62E0E0B08A943CC3830187F9C28E62F9BB615613BA40D6CE2289C399F97E02468759ACE46A5E06089C4D5BE58EB02B688840FA4562E8A732702D01FB845DB4E46B3A066E362DFB9C46A06E9840DC62E79E356E97BEDED6AF00B800405B2308909C9166E06982766DDA5AD2B0379F0D15C8FA5BD339F9A00362AD2D2987F90C9951223D60C302771F03858C65DF1156C2C1F24442201B83737F9FC0718E03D12EEEB21402C6349A24C95F3F0618E801F032885E6607BFEDE3D86317772F7EB57E19D522474E206AF0C55A18A82F032290FAF22BD19B9C01114893DF40815F5F064420F5E557A2373903229026BF8102BFBE0C8840EACBAF446F720644204D7E03057E7D191081D4975F89DEE40C88409AFC060AFCFA322002A92FBF12BDC919108134F90D14F8F5654004525F7E257A9333200269F21B28F0EBCB8008A4BEFC4AF426674004D2E43750E0D7970111487DF995E84DCE8008A4C96FA0C0AF2F032290FAF22BD19B9C81FF073BF4316E702655E80000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (48, 4, 'e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001CA049444154785EED5D099414D5B9FEFEEA0111710105B7671497A8085D0DEE1AA3311A17A22651C4E96A8C1A139F0A5D3D98A87125D1C4A811BA1AF715A5AB07C5981797C4684C4C3C4F9318A4AB67C47D498246C58D888233D3F5BF53C398A7C852B7BABAFB56F5AD73381C0EFFF2FDDFBD5F7775D5BDFF25A84B31A018582303A4B8510C2806D6CC8012889A1D8A81B530A004A2A68762400944CD01C5403006D4374830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680124830DE94578B30A004D22203ADCA0CC680120880BC91DA93185B41E311CC1841E0E1006D0A6004C02340E861D696127829036F6B84C570B170C3C14B2B27CF79754530EA9557141868498158E9D43120F76BCCD88B88F6A871A01631F018803FB83D7D0F4F9FFFF4BB35C653EE1231D03202B132A9FD003E058C63016C52AF3160E6BF69D0F2D952D9AE570E15B7710CC45E20B3A7240F76ABB8084407368E5600442FB1EB5EF6FEEB236E9FF1E8A37D0DCDAD9285C6406C05D2FFBB023C1BC0DEA1B1152CD0DFC1B8D02C397383B92BAF6632104B8158867E3980B39B49EC6A72975DA28E8E62F951C97029386B612056022918C97D009ACBC08EB28E3A83F339BBD2212B3E85EBB30CC44620854CB29D994A511860029E06B4E3B3F6C24551C0DBCA186321908291CA317856C40672990BF7F80EBBEB3711C3DD5270232F102BADFF18840BA33A6A04EAC8DAE57C54F1C71D77A4056265922698223FB918F861CE767E16F7C916C5FA222B907C5A3F8C080F4691F4D56156DF24728E6424055298347E240F729F0661A49CB40642C50CDA3B67979F0CE4AD9CEAC24024056219FAFD0026D68591260625E0C5ACEDECD444082AF52A0C444E20517A9C1B68B6312E314BCE45817C9553E80C444A203327ED36223138F1FCC052F4D0C99024E0DBA6EDC4E9D651125A83C18894402C23790D4067042B353A5EC438365B72EE890EE2F8228D8C40666626EC98E0EAB30012F11D8E959531A8336797D371AF330AF545462056462F82614481D41030BE61DACE9621C451216A64201202B96E4A72548F4B6FD6586BA4DC35D7DD755A6797F78DA9AE2632100981E4D3FA0544B8A4893C353CB57A71D870CA579B301202B1322907CC4939286B140AFE9D69570E6D54369567F50C482F905927A4B6D312FC4A0B0E60B547E38D7F30B7F2610BD62E4DC9D20BC4325267027CB5348C3506C8BB0C3A3767976F6A4C3A95654D0C444020BAF73EE09B2D34840FF5BA6DC6F73B17BCDD42354B5B6A1404F25E3DDBF4C83532748E6997AF900B536BA3915A20B3D2A99446BCB00586683998DACD52F957F5A8B560ECBD51B5FAF108B4B92334C670066DD6BF5C87D9EB22B982495B4AC44BC1FC0E1316E78A95E7EA81238A31A5168895D1A7837155148915C0FC21B9DAC46CE7C23F0AF8ACD1F48649BB6FBC6270DFC14CD89B187B01D81DC04682B13F02D0058203A6C7B52A3D3C6DDEC2D70563C4C25C7681DC0BC651B1607AF5452C07D12166B1FC782D35CE9CB4EFFA89C1CBBF49C064061F5D4BAC35FA329E07E16182766D2B359B905B2086EE7D6AC575C9459F4B74682D7DB2669D94DA44EBE1E9204C6BE0EF3406F85EAAD28FB2F39CD8DFFE4A2B90D82F2F214C368BCE5D413EED3D61247AF902064E073034488C907C1ED0E0FE709ADDD515523CE9C2482B102B9D3A12C40F48C758088088E9E46CA93C2748A87CBBFE25682811B04D10FF3AF8B800CFD5AA89F3E2F83B455E8118A9F301BEB40E03DADC9035EC18CC1BFA25045CD0DC02D6987D3980E9A6ED5C2F29BE40B0241688EE357BCE04AA4A522702DD9BB5CBC788C21B7832751F8003447D1B6F4F770FE9499C7ADAFC054B1B9F3BFC8CF20A24AD3F04428C16EBF1336D3D7D7B9D397FD1329161BC3A3D7EDB2AB9BF05B0B3885F536D895EAA423B7C7AF1A9179B8A2384E4F20AC4D02B00C6855063D34330B094D99DD051EA7A5904CCC02ECA3F45F449DE7BACF111B9B995BF88D42C9BADCC027903C0E6B21116040F11A7B3C54AA788AF954EED04729F8878838A152ED111B53CCA16E1AC1EB6520A84012A187AD53BA7A91E453738E623A6ED1C2292F3DAF4B8E1BDA479EF18B615F193D4F623061D14D58678524EC038BD03E9AB56BF70D6BCEE7F8A4C5ECBD0BDDBAA08FC20F75DD59BD4A38DCBCE5FB8C4B7872486520AA43079EC0EDC9688C30FBC8BB3B6F36391B1B60CBD00F4BF198FDB75BF693B915B3624A54056DE7FF3F3119F21AF99B6F35F2235F41F38EAD223223E91B225FEAE59ACDC1C25CC520A6476FBB85D5C4D7B264A44AE8A9509D37245C7F74EC82BA7243718EC92F7A1B05594EB5E07F6F77BDDB69DA2B4194C4A81148CF16318EED3119E281F547B866E3E7DFE13DEDB655F97E46FC97DD5E0CB88719B59724EF1652B8191940299D9AEEF96D0D02D013F812030E1F25CD139D7AF73FFAADC5EF67EC80FF3EB13653B26DE252A9BB2A41448D40FC761B7AAE73ABBBD179DBEAE96F9F6F8840DC22D66D139D517394D36924E20FD87E30C76BDC9B54593B9099AFE65D376761071B60CDD7BFCB999884FD46DA9471B1585C7BED209C4CAE833C188F239E25798B6738EDF099C37F40C01DEC2CC16BBF83CD3AE5C267BD15209E4F25376DE70C8C743DE02304476E2D6848F89BE962B961FF68BDF3274EF18E8C3FDDAC7C84EF89BB619B54B2590389C1E55ED193AD4EFD3AB1BBEB7FBD0151FF6B56CE74422FE72B65879AC1913DF6F4EA9046219C939007DDB2F78D9EC98F1FB5CC9F9AA5F5C854C6A22337BE72DB6E4C5E07CCEAE487D3B2D9540F2E9E49344B44754670B139F9F2B567EEA17BF95495D09E6EFFBB58FA1DD2BA6ED6C2F735D5209C432F4C500B69699B0B56123C6DED992F357BFF82D437F02C03E7EEDE368E76A89311D739F9276D5846C02790980D49F286B99A4CB4CDBD9D0EF246EF5DF1FFFCF134D35EDF2357E796BB49D54022918FA020626349A8430F289FEFEB0D2FA5740F87D18B9231D83F10BB3E41C276B0D5209246FE816015959C95A072EA1F71F563A7931886644B4D6D06033F056CE76A4DD392A954022DE0BEB5BA6EDFCD2EFCCB10CDDEB52F275BFF671B673AB34BA635EF955196B944A201E4196A1BF0B60B88C64AD0D93E8CE41CBD0BDC58942FB45A2C6895FBC0C9C90B39D3BFDDA37D24E3E81A4F5AB4098DE48126ACEC55862969C517EE35C7DE25E9B56AB1FAB03723E218C31D32C3967F9E5AF9176D209E49A93C66CD1D73BC86B8FB37E2389A831D793A6ED78470DF8BAF299D4A1C4FC902FE3D6307ADCB49DFD652C553A810CDC66797BB2BDBDD991B818B827673BC7FA059B4FEB1D4498E9D7BE05EC841E9137920F2905322092C82CE223C6D5D992E3BBD18215C5DBC83ACF4AC2908DB3F65FFE5DE734C2E1A515885749DE48CE22504EB8AA863B882DDDB68CF8F51DAE957282B69B8C07F3482D907E91B48FDD1C942811E1E05A07A15EFE4CFCED5CB17287DFF805437F9081C3FCDAB7829DE83681467122BD40FA6FB732FAF16048F918D0C347AC1D9A2D2DFC9DDF418BF28A01BF358ADBD149A65DBE5DDCAFBE1E9110C8405303EF3868292FD6781F9126CD515F94598F4160C685B99223DD79309110C8C08FF63F03D8BB1E83536B4CD1260D96A17BED8022BB6BB256BE56E7CFE02B7376E5EC7AC4AE2566640492CF24CF23A69FD4526CBD7C1309EC3CF50EC77727486B65636EAD5E78221957D29785911188CCFD7A09BC4DD6AE787B597C5D96A1B32FC3163292757761640432709B2565D7F35EB76DA4DF769A330E3AA86DF8D6EFF5B6D0DCF755AAE8BB245F4143308A9440F2863E99807921D41D6A0891460D034257DF209F1F816B4CDB991AEAC084102C5202993103DA8817F4E718D83184DA430A41979976F93CBFC1AE99346658DFE0411FF8B56F153B066EC8D9CE7FCB566FA404E29157681F7F206BEEA37210C9CF9876658C089682A19FC2C02D223EAD60EB9DE398D0B443A6CD5DF83799EA8D9C40FA6F5132A91960BEB8D9448AEE639895D97D4B8DFBBC838186361BBBA4F9FF9548AC376EEA1D7F7D47167C9114C8CAFBF8E4A5009DDF4422DF346D47A87FB095D66F05E1E426628E406ABAC0B4CBD23CCE8FAC40FA6FB7D2C9D399C83BA4A6E1EF1488E98E6CA9ECBBC9DDCFDB77DF6C90D6F76633B04640159F82287EDB5ACFFA222D9095BF499247B146DE3AAD066FB0125B3B64197AA4F6B8D473D2AD2BB6E8F6E575C5ABE5FF232F907E916492073093B77F64835AC810F125F0BE59BBE22D7FF175158CE48D0CFAAE2FE35637223EC22C561E9481865808C423326FA4F604F86102366E04B101DE9E7BAB7D7DF7ED6D440DF2E620C3B4CB2519F0C546201E99B332A98334E63F348258EAABEE98BDB3DBEB04E9EB8AE1D9E7BEEA0E64A4BE4102D1E6CBA960E8F31898ECCBB806230D6E729ADDD5E5378465E8EA1BC42F59ECEE6196BA16F835AFA75DACBE41FABF45DAC7EFAB69EEE3F5246D656CB1DB002B93BA16CCA7D71F57F433B4F5F46E78E6FC45CB64A8247602F148B50CBD114DB0AF376DC7F7849F95497D4363F6DD795186C9D1240C2F98B6F3C526E5FE5CDA780A24ADDF0D82EF363CC10683FF61DA956DFDFA5E3925B9C16097A4F854F48BB9297644D799C5F2194DC9BD9AA4B11448DE485E41A01FD49B64D123C40AE9D4ED4C7C62BD714539BE6CCD1BE2299046ED3E143CEFBB71BF8F222B916ED376C6C9843E9602B18CD499007B4B50EA7E899EF7ADBE45D63C242ED1573A8A6549566A0F3C8AA9FB0C6A42022BA39F0CC6AD8D48CDC0A539DBB9D06FAE810E2DDD513E6ACE6FAD4276841BCDA2739A904F038CE3F90D92D6A780E0BB915BAD3C6BAEBBEBB4CEAE67FDC69995494ED098BCB3D447F8F589B9DD03A6ED4879564A2C05D284E6D0DD7DD5EA9167CDEBF6CEFCF0755D9B1E37BC175A070826808D7C39C5CFE805665C972B39B3642D2D9602B132FA0D607CAFC1A4BFC7C08939DB113AF75CF6AE9175E4F00DD376B6AC63FC5042C7532086FE1A80AD4261483008139D9D2B96AFF4EBD6C287E9CC356D47FA47DEB11348DED0BF4E8077FE5FB3AEE74CDBD94524B965E8DE3EECDD457CA26F2BB654A759F5C64E2096A17B0B08C7368B502F2FBBD52D729DDDDEEE415F57C1D02F62E047BE8C636224D37AABB5511A2B814833D10893CDA27397DFB93CDB1837CE8556F16B1F7D3BBADBB4CB93A250476C04626552FB81F97FA5209D719B59724E11C16219BA2710A9DE228BE017B2659A6896CABF16F26992712C04924FA72611B1F7DE43968EE9AF99B62374C473ABEC5967E09F39DBF94293E6BB70DAC80B44DEAEEF7C8869571EF13B223327EDBB7E62F047FF00B0995F9F28DA11B3992D552273406B640532B064C35B4EF24D29270AC1368B4E46049B954E7E1F44BE1F118BC496C4F6CD6ACFD0D1D3E73FE19D8F12892B9202B1D2A92341EC89637399597607D1F08E39E5F745305A86FE2A00DFFB4C446237DB9688D3D962A5B3D93844F2474A2057A7C76FDB47EE4C02BE255264F36C69AA6997AF11C96F19C9AF02E4FBBC4391D84DB5655C62969C8B9A8A2140F24808A46024F761D09900846E5902F011B6CBE2211BB4ED7CDA8D0B3E12095C3092C73168BE888FC4B6CB09F846D6761E9218E31AA1492B90427AFC214CEED103BF31849E08493510443F378B65E1DD8DB38DD4FE2EDC5F01B4A954F5888179DB75B5A33B3A173E21E6268FB53402993969B71189F5DA8E818B89207C0DC086F2D0541B12263E2E57ACFC4234CAEC29C9D1AE8B0700DA55D4B7E9F6442F31250ECECD5DE03D998BECD55481AC7C834C5F67D04402F68F2C8BEB06BE1C8C8966C9116E6A77F9293B6F38A467BD79603A72DD69A4B178B26D50EFD167CE59F4863488020269B840664F491EEC56B5A341ECDD3E8D0E883B926EB5BC03884C6F5FA24AF5E3F5F789D2A3DCB54DA6BA0BE486EFED3EF4E3657D8703740C137FA3853707AD1C07C66966C9B93188C20B86BE808109417C1BE6C3F445B3547EA161F9EA9CA8AE0229A49359269A0160789DEB8852F8156D837A4707B9FD88C0E62AA1667A5118B4BA08C44A274F00D18F01EC1405121A8D9109D372452750D7152BADBF05C2C84663F6934FD3B43D653B63D00FEE86DD62E533C99D89F1CB483E75A99549017F629C9B2D39970BB8FCC7346FA44A046E0FE25B679FE5A6EDC4EEECC5D0BE41AC4CF27030798F32634752D813AB96238FF3867E2E0197858DA9D678043C95B59DD8ED8A0C45208574CA60E262AD24B7907FE036379691FA36C07364E38A40F766EDF231B2E1AA154FCD02195838F840AD405AC99F89CFCF152B3F0D52B3954E1D03E2FF09E25B571FC136AC75C51262F09A0472CDA431C3FA060FF21AA66D1D22A6D887126D34F769420696E0784DE7A4BA6AB96D94AA9055C0D42490423AF513263E4FE60265C346C09D59DB392128AE7CBBFE25D2F05850FFBAF949DA3AB4D67A6B128865E84BE2BE03AE56823FEDCFC03D1B0F5A6A9C3CE7D51541E3E6D3E3BE4CA4FD31A87F1DFD1E326DE7B03AC66F4AE8C002C91BFA6402E6350575F4922E23C6A5411FED7EBA5C895F16BE6CDACE0ED11B9AB5230E2C102BADDF0AC2C9712324E47A7AC0745DA26DF02553EFF8EB3B61C4CE1BC95904CA85112BEC186E954677CC2B7B3B22637305174863CE018C2CD1C474879B485C18F6726FCBD0174BFB50843867162B5664076D35C00309E4B693B61BF2EFDE8D23B3F1BE7103C6EF30D1CDDC47D7D7E393346FA4BE4BE0400B1D1BC481742744D55A772081CC9A326157CDAD2EAA35798CFC1F21E25BEAD990A07F43D9A0B667655D87F5A9B1CC9AB6333B2E631B4820854C6A22330BB5F98F0B61FFA983B1D07B644BAE3677DABC85AFD7BB3ECBD0FF04E0807AE70921FE32EAABA6B277767B477147FE0A24907C469F4A8CD87C4A088CE20B041499A9B3917B1EAC8CDE0946E0772702F58565BA58D3F8CBD3E6565E092B60B3E204128865E8DE4AD4B39B05BAD1798930DF05DD942B961BFA067BA0399EB78C67BF46D71C42BEC5EC5627E63ABB23DD943B984032FACD607C270412650EF106183769AE767D236EA156256266BBBE5B4283771BBB9DCC24AD03DB0A669E9A2B556E896A0DC10462E8F748DBF2B3C69120E069065D69DAE5DB6B0C15D8BD91C758070629E048C06F99DDF3CD52D7020137294C0309A460E87F60E020292A0815045D66DAE5A6AD2DEBDF70E6E206101D186A59F2047B1CC4B7AD18FCF19DE7DCFADC07F2C05A33924002B10CBD0C408F4281BE30329E8746279BC5F2E3BEEC4336F25AAA56A97A364067841C5AD6702B18989700DD3CCD2ECB71A6CB1A980A2A90181DF6C23F31EDCA05CD984985F6F107B2C653013EAE19F9E5C8C9CF3069B725AAD5FB44CE9A6F14F6400229187A3703BB350A641DF39C6EDACEF5758CFFB9D0B332C9099A8BA340E489A2A9672936B26E5FB9885E828BFB09747FB6B4508A06DE81046219FAD300C6F82A5A522302BE93B51DEF0885BA5F85F6E4519CD08E00F35100A2DB67B8EE4C7D26C147E475B927FE75156DF7761417FCABB1E957660B2A90850052CD001C46CE5AB6BCFAC95F98347E2406558F63A28900BE2AD1D1707EE04B6943E0275CA2D260D7B5CF2875BDD72890C10492D61F02E1D046810C330F018F666DE72B61C6F462797D86AB44471193D73D72CFB0E3AB789F6280701F5CBAC52C957F556F5E8209C448DA00A5EB0DAE0EF199A08DCDDA0B435968E9AD6A5EDAB3914144D362F554AF0EC4D727243FC38CABDEEFED9B3B63FEA29E7AE4082490BC91BC8240C2675ED4A3009198DE92916CD1395EC46775B6579FB8D7A6D5BE8F4D104E575B8E6B653314FF37013AA71E2F770309C4CA244F05D34DA194D6D820DF326DE7974153CE98016D93E77593085E5BD56141E328BFFA30C0A0DFC0ED3B39D7D9FD665819020A24B51F98A57EC1B31A823E306D67A3A0C40DEC81990B2076DD03837222A9DFFBE4F289D9CECA7D61E00B2490FE435D3E1EF2EF30003430C6FDA6ED788F5985AF42463F8D190D7D5F220C52397C8601263E2657ACDC5B2B2D8104E225B50CFDCF00F6AE1540A3FC09B8386B3BDEAD91D0954FEB1710E1122127652C03032B9838952B569EAB054C0D0249FE10A040ED336B011CD4D7857B6487DDF51B11FF7C3A358988EF12F151B6F230E0ADCCCEDA4E4DAB15020BC47B19C683DDB7E4A163ED485C7677E82875BDEC17EFC06625EFA4A4CDFCFA283BF91860F09539BB1278735F6081F4DF6645E86996693B42B55A99D40C305F2CDF902B44A20C687093D3ECAE2E513FCF5E68D2AC2EC1EC29E3F770ABEED1D0280D66593BEBBD61DACE9622045986EEADFDD942C447D9CAC900833A737639D08BED9A05F2694A0AC6F8314CD543E1D2014C3880805152504654318B65DFFB57F269FD30223C28057605221406361AB474FD203D914315C8AA955C9B1E37BC4AF8AF2AD16830ED4E84F1CC4811B04D2855FB0DC2FC47B354F1BD035275ADF74B6C74EC34D097826CCEAAAB40D6449FF71E65BDE5437424787B8D693B666C07C21706CE4DDF3E7CDAE96ED32E4FF21BD732F4DF03087D41A3DFFCCA2E7C0698E8EC5CB17CA568E4A608645D20679F307EABEAA0EA369A8B6D5CA66D48C336F0FE86BB35833C21891DD8C39869969CB3D695F793FFB70CFD35005BF9B55776F233C0C09C9CED08375B9752207EE82E18496FE351FF9F7E11118D04F1283046807904116DC6C0A6003681C67B9A732BDD7EE27A3696A1B35F5B651719061E376D677F51B491158868A17EED67B78FDBC5D5B467FCDA2BBBC830F0B6693BC2E7CB2B81AC32BEB38C714768D07E1D996157407D33F05E4FEF7AA2FB46944056A13702470CF89E10CAF0B30CB0D6B6ADE8792D4A209F13887E2E0197A9C9153F0618B457CE2E3F29529912C8E70412CDDD922283DEB2B6C44798C58AD00B60259055668BD51A8DB95B5223C438365B72BCBED2BE2F259055A82A18FA3C0626FB665019468601224E8B9E02A604B2AA4032FA5DCCF0FDD63D32B34301F556E60A370B540251026919E930F3A9A2679528812881B48C4000324CBB5C1229580964D51FE986EE9D86748A0889CA36320C08B77D5202F99C40929702747E64865C01F5CD00B176A868D778259055DF83B4EE09BEBE275A540D45FB1278752A81ACFA1BC43BAA40A39AFB29457512C519B7685F022590D5CC86D95392A35D977C773F89F3848A596DCF9AB6B3AB684DEA1B64358C5986BE0CC006A2642A7BA919B8CBB41DE117C04A20AB178877FC9777F08DBA62C200319F912D55AE132D470964358C15D2FA394CF8992899CA5E5E06D8AD6E11A4EBBB12C8EA043279EC0EDC967851DEE156C8C418E0DB4DBB729298CF4A6B259035B06619BAD7C7F7F020A42A1FA91878A5AF5A3DF0AC79DDFF0C824A09640DAC794FB3AA2ECD254078A37F9081503EA133E035E9B871A3414B6F0AD230EE13344A20EB189742FBF80339E17E995D3E9A88F6087D1855C0B018580E78873A690F6B6EF5DE699D5DCF86115809448045AF53648F96D883D8DD03D02600ECB533DD492084320D810106966AC06297F18206FC99357ACC2C961F0F21F4E742288184C06ABE7D6C524B68BB31B49D89791706BCEE9063D4BB949AC8FD000407CC2F31E17930BD44ECBED8D65B7DEECCF98BBCF7540DB99440EA4873BE7DECE6406227D26807066F4FC0F60C8C26C0EB82AF3AC70360E02D025E26A6E75D0DDD70B95275AB8B82FEA80E7B389540C2665420DECC13F5ADDB7A30CAD5300A84914418452E6DCAC45B78FF06F777C7F79A9D797F3614082D83E9BB60BCCD8425602CD1889730D31B20BC0EE2575D6AFB7BC7DCA7A46FD0A70422C354F289E1AA13C66ED3A6D128683492BDA3259846126853C0DD8AA18D22B027A8CD075AB2FA8CEACFCCBBEF27E0AD814FFCFEBF01BC49C0DB605EA225F0165C5EA20DAA2E3973CEA237FC4595DF4A0944FE310A8470E6A47DD76FC38A6134A43A0C2E0FEB73DB8621C1EBAD2B18B95597800F59A365AE46CB48A30F3BE694DF5F975F5CFF5F0924AE23ABEA0A8501259050685441E2CA8012485C4756D5150A034A20A1D0A882C495012590B88EACAA2B1406944042A15105892B034A20711D595557280C28818442A30A1257069440E23AB2AAAE501850020985461524AE0C2881C47564555DA130A004120A8D2A485C19F83F160E2750087005820000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (49, 4, '60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE90000200049444154785EED7D7D9C1C5595F673AA6726214808B88B115C8DAB80C4A4ABC78880060CF2A57CEC0ABB21A4AB27464050C9747542A2447D25ACAF0A2461BA3AF123405498AE4E2008460C202C6E24101108E9EA202851C32EF2022B1046490C99E93AEFEF766620C4747D7575577577D5EF377FF5B9E79EF39CFBCCADBA1FE710A227422042A02A02146113211021501D818820D1E88810B040202248343C2204228244632042C01B02D10CE20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141DA24D0919BDE108808E20DB7A8559B201011A44D021DB9E90D818820DE708B5AB509021141020EF477A64F7CDBEB07741E4C1C1B1B33870E9624300FF100B8E32FBB3ACB030BFA4B3B0236B1ADBB8F0852A7F05F73E1D1078DDED57514404732D151041C09C20480C682F96000E26F2C00C9C684218006001E006180180326782B319E0678AB19EB7C7AE0D9B15B17AD5F3F542757DA5A6D44101FC2DF974C24409846C49388E948C014C418EF836A372AFEC88CAD448238B44992CC077AFB4BDBDC288864FF1E8188202E4745EE53EF1F658E3BF0588AE1236CE244224C0330CEA59AC688339E61C27A227E88107B349DDF6C34A6E3D6E925228883586695C4B1C4E699003E02A213001CE2A0591845B681F06B021E2A9BE65D730B5BFE184623C3645344902AD1C8CE9C1427493A0B44678231354C41F3C516C61088D781E9AE7207D6CDBBD978CE17BD2DA62422C85E01CDA6E24713E82C367116113ED162B1B672670713EE22E6758366E7BAF9AB36BDD446BE5BBA1A110480964CFC2B882F0670763430B09DC1B7494C37A60BC623ED8E475B13444BC9E783711180D3031B08849D600C80E855300F0CDB213EFA47FE4607661BF8A63261E5BC7C6943703604DB735B1224ABC82962BE18441FAF1FFCF43291B90DA06D26F33312631B4BD82651EC25B3CC03348A5E7DE5B5D70716AD7972B7950D3F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC626FA5F257B7953402AD62982B55BD747FFDF00AA7E6B622483619BF48225CC4A8AC44F9F9880FDC5F10D32F20D16670D7B6B4FEEBBFF8D9819DAEBED98971D88D0992C4DDE0CAF793F83BDCAE9D9BDF19B89D9856AA85E25D6EDA35B36C5B104453E47309B89C818FF914AC5740F82F98BC814C7A20BDDAD8EC935E5FD5E42E90BBB9834F62A6930838D9B7E569C26A89A4A5BDFD9B1FF3D5E0102A6B6982E452DD32B37939801E1FB07F1184B5205A3BFA80D8FA4BAFDFB4D3079D0D53B1B8277EE02896A631F85C30CE0570682D9D33B05B225A32346A70E9BC95BF79A5165D616EDB92045979E1D107BDB6FB80CBC13C1FC0819E03C06006D63268ED2894D77EB1B065BB675D216A989D39E91D24C50449C45FAD0B14BF05F152355FBA31442EFA664ACB114453E29F0148CC1A93BDA2C4C04362A6E89078ED9C9B8DA7BDEA698676CB7ABA3FCCCCE732F379003EE0D966E2BB24C2D2DEFED22F3CEB0861C39621C89264F77B3AC8BC8E0011684F0F01B7B3442BD5FEC67F847E3739F91053A2F732617B50870C73C9C46C267C16E0933C01281A312D510BC5059EDB87AC614B106459523EC324EE03E8182FF832681505B88CA9A5128BC07CE588ED44FCD810F385F3F42D5BBCF8536B9B5C523E8F25CC06E31C8FBAEE6533B620B3EAF192C7F6A169D6F404C929890C4390C3FDC3C08F6062656695F1A0FBD6FEB4C82613D389F8D6FD69EB64F3D020BF7B34257E0A40B301A43C78FB82042CE8D58DBC87B6A169D2B4045971C99431BB760EF581718907346F95246971D0CB94CB677DE4EDE5F2EB55CF3D1178715A2F7DC9837FBE3611A79941BC8018D35D2B6EF257AEA62488969C3C05248959E3447701E3A78870753A5FBAD95DBBFA48E794F8F10CFA5535ED0CBA3BA317C531FB503CB9547C16332DF4F0317F2F9BE50599554F34DD2B57D31144531249066B04FC83AB5143B42426755D3DE7E6475E76D5AE8EC25A523E1984AAAB3E04AC4FEB86D8E00BCD5399F5CCDD570C2FA1BBB1EB0530CF550BA5D56E1A052DDB5404C9A5120B98F95A37A011F0F332D1D573F3C5F56EDA3542B619093282CBB254621A335FC1C0192EB14AABBAB1CC659BC0C49B8620594516B346DA0552BB4158A8E68DEB5CB469A86833136404282D159F0FA6C5AE80237C43CD1B5F77D52620E1A6208896946F03E1DF5C60B491D95C98296C79C0459B868BB60241046839453E9D89168339EE144406566474E3F34EE583920B3D4134457E18C0718E0162D2CA83072C9CB7E6577F73DC2620C156218880EFDAE913C78FEAEA1433898B2561BE4DD54BEE57C61A18AF50134453E46701BCCB091E043C6B025FC934D1BA7B2B11E48D57AE647C3EC46CE2F421BE4BCD97CE722ADE68B9D0124453647601C61D4CBC30932FFDCE459BC0455B912023AF5C00AE63E0838E4066DCA7168C5A0F4D3AEACAAD5028099253E4279C82CB843599BC71BE5BC7C320DFAA0411D88A0418602A10F021475833DDA8168A9F7324DB40A1D0112497926F65873BB6CD4C0E11E3562688F0EFEAE9530E3EA06B48DC3EFCA89331CD8CFF932918FFD7896CA364424590BE647C9144F4C6A13D2B1088B026DDA433C79BEFEBCDB751E86560E652F2FDBCE71AB0ED43C45F4CE74BDFB3156C90406808A2A5E479602C75E43743570B868BD512475A1B2ED4EA33C8DE806AC9F8BA4A123E070F335F9C2994563A10ADBB4828089255129F23F0F54EBC6560694637C44DC1A67FDA892022583945D6D8E1662F033D6158910C9C20CB14798609383A9F63325F35B7505AD4F4CC1876A0DD085221492AF14D66FE8A93184A4CE7F7168A6B9CC8D64B2650828853B94CD23D4E0E1EB61A394440DB91202E6792E721F1E96A7FE9897A11C04E6F6004A9DCE7D831748F9323EBAD488E762648C5774516DF1817DA0DD0A08FFC0746102D25AF7074D98968899A6F9D3BCE6FFD706D8F55AC6A24D014F916000EF6B0E8DBAA5E74F45A664738B7BF074210A7D76499B03293374452E9967CDAF5156B2498957D9251836BC10E52C01266A87963BF5793EB39381A4E903D0916205EADEC9E3B54DDF09CA1C44E79187E6F77828818544A4E3089CDC47FB689C933434338E3F25B1A9B86A9A10411A9793AA97CB783EC237F924CF3B4DE555B7E1B86815C2F1B2282EC4136ABC833C8C14A26317E922E1822D95DC39E861224A7C83F660779AB24A027ECD930724AFC5D264B2790C467B0C91325A2B7317010C00731E82002BA1A1645BF3AAA54CEC5FAF2E0D0C2796B1A9B4E544B25C47D12FBFD2DE6456AA174955F2EDBE969184172C984C2C4B6296018C8657443B5333C88DFB3C9C92741923E2D311DCF60BF33C407E1D2FEFB64DCA9168C7F69A4412B2E99D2B9EBB5C1FB1C94A4D841659CD8A884E10D2148C5F91D43227BC7141BD0378E3EB0E3B430258616F5CE47ED1A753E816680705A23074D907D4990CEECD537DFDD481B96CFEC3EA12C99FF09608C55BFA25E495A2F261B615B4308A229892F017C8D8D4383CCE6A961BA269B55125F24B048A3290AD4B4D5C3E01B327AC94BCEB19A70CA26E36922D26C9530CF6C448694BA136479B2FB3D6532C5ECF14E2BA719989FD10D6787156DD1AB4D60F9AC0FBC7DC81C750DED29CFD69E4F80FB4F9A228BBC6596252B08787C68F798A9F5BE5A5D778268C94416C496DF1422354F5A373E198691984B769F0A32AF61A7177DC260741D6C60C6273305E3E775506DABB2B2F46BD20610FED152B8011FEC752588964A7C14CC0FD92122119DDC1B82BC55567972ED7C68A9DF092BD58037681D5E7FD8D1C134F5B242B1582FFCEB4A1047B703039CCAF70635220700A23F80716B50C73AF61DE4D9A47CBF5DBD7A91993F53C70FF6BA1124ABC8671370A735B3F9A9586CF789736EFE6DA0E9406B20C72304364CA6A708F43B32F9F918CA2F75EC18F5F2A577DA97688B360AAD47477666E23492F85EDBD981F8536ABEE4E47486ADAA7D05EA46102D25FFD4AEBE04137F2613702269410E89F816069C6141F833336E9780DBD3BA611F3C8B904404B11FAF5A329E0591DD37EC2D69DDB8C05E9B7B096783C2A55E67B38798CA8D192E55FB2A5E296C69D2AFD861B93602DF2071EC9B730A9BFFDB0F432282D8A328EA29428A3D48C0FB2DA5893EA6E68B1BED35BA93A80B419CCC1EE5B274ECBCD5C19611CE26E35F21A26FDA4146C06F005E94D64BB7D9C9BAF93D228833B47229F952667CDF4A5AFCF34AD761DFC67782389C3DF2AA6EF8519AD919C2FB915AD6137F6FD9A4870938CC1A78410EE9FCB4BEF949CF9D55691811C431A29455E4C72C736C318610E36EBF6F1FFA4E1027B38724F12941574375B23FC3C06FA43A91430C8D88208E09826C4ABE946C67112C4DFB9CD0C3578238993D08F4D3B45EFC57E7D0F82F999B31E97DDC11FBBD9D6692A469E9FECDBFB493F3FA7B441057C891A6C88FDA9CE77B85A58EEE4CFFA6FF71A5D942D8578238993D009CA7EAC61D7E39E0458FA6C822EDBE7572B206ECD2460471173D2D255F02C60ACB563EC7CD37820CDF0CB3BEE044FC4B355F9AE60E16FFA53545BE1D40D58B378D2A7D1611C4756C9DCC22455537BA5D6BAED2C0378238391A404C9F4D178A3FF2CB78AF7A3445FE2B80B7556B4F44A974BEA87BD5EFB45D4410A748BD29E7641631619E3957DFE2CB517DDF08627F2C809E52F5E244F790F8DBA24F99FC290992B8035DED7965F4811DE32FBD7ED3A0BF3DFFBDB688209E1016B38828737164D5D684EBD5BC71A927EDFB34F28520D99993E224C50C2B8388E95BE942F1AB7E185D8B8E6C52BE9A085FB6D0D1AFEAC6AC5AFA70DA36228853A4DE2A9755E27D04CA546DCDF873AC63D4317E5434F687208A7C0501DFB672370C1B83C23EBB5C4C26D1C98DAA881B11C41B41C4950426F33ECBD6C49F53F3A51BBDF5F0662B5F08A2A5E40D604CB530E65E5537DC960BAED5B7FDB6CF26E38F12D187AB29A78E8EF7A76FDAF487BA74BE8FD28820DE51CE2972C9E688D03A5537CEF6DEC39E96351364594FF7874DD314EBD3D55F09099F4FE70DEBE5B95A3D71D85E53122F01FCF6AA043974C7E8F4B2DFBFEE505D4D621141BCC3E7E055196C96E5CCAA274ADE7BF181205A327E25882C32AED3CB5D9239F10BFDA5FFADC5503FDAE694E3C632760D58BDBBAA05C3F2E8891F768CE88808E21DCD6C8F3C954C6CB0FCC70C5C99D68DFFF0DE8B1F0451E45F0038B9FAA00B4FEDB95CAA5B6636ABDE3E13F79CD3BA619779A516BCDFD23622486D50E652F14799ABBF2E03B847D58D4FD5D24B4DAF58DF993D71FCD060E77300240B829CA5168A56CBAAB5D8EFAA6D76D687E2542E5BADB6F9BAC964675C44103B84AC7FD752894560AE5AB28F8101E9951DEF48DFEDFD95B926826415394540BF851BAFEE96F85D0BFA4B3B6A83C29FD6DF993EF16D435D9D6293B0DAF3AAAA1B87F8D39BBD968820F6185949645389D388AD6F1CD67A30B6268268C9C40D20AE9A7D9D8075691F56126A83F1ADAD35457E01C03BAAE9343BE990B93F2ABEEA679FD5744504A90DE5E184842F02A8FA4F8D6AFC0EA98D208A2C72B956DDD164E2AF66F2A56FD50683BFAD3545165956AA96253699BAE7D6314BC6DEDE4404A93DB69A228BBC0756CBB9357D8778268893C3892CF1F199FED2AF6B87C13F0D7649C9187459462F7ED7BF1EAB6B8A08523BCAB994FC65665C5D4D93F80EC9E8C638AF3D792688A6242E0378B945C72FA8BA61994DD1ABD1B5B4B35B966ED4495EE14344905A22B9A76DEE02B99B6378DC4A932449C7F6F67BBBDE5D0341AC8F8C03C12765D81F687DC9444222DE6C0928CC78AFBE654BEDE1B3D61011C41F843545FE7F56A96D093437AD17B35E7AF34C909C226F658B4C13612A06BF2F309A228BA324552B1A35AA686844102F43F6EFDB688A2C56525355B5B1F7BD384F0459B408D2215BE5B2A57B124FF6FB02BD3F708A82F6F13EB63A0D0AFC5582F9B17ACF221141FC89A8A6C8BDE26DABAAB61A2EEA792288930FF4EDCF1DD2B968FDFA217F20F0574BDFCCC4A725896DAEFDF24DAA5E9AED6FCF6FD51611C41F741D64607C5ED58DC3BDF4E68920B999F17358A29F56EB9080DFA775A3FA85162F96FAD8A66F76629C34681A00BDDB4A2D419A9ED637FB9A0B6BEFFE2282F813D4A5174CFAA78E58CC3251C3AE51BBC67EF907BFB3DA24DEAF319E08E2E07AEDCF54DD38C71FF7EBA365B838CE776CB433ED49FB5317924404F12FB659457E8D8003AB693489A7CCCD972C57BBF6D7D61341B28AFC7D02AA5F690C49C6763BF8B34AFC2E02D91D6663669A912914D7D8E973FB7B4410B7885597D714F931AB9440127041AF6EDCE2B6474F04C9A5E4FB99F1098B8F225F6E73B975C6AD7C6E66F7C75932D73B6BC7DF54F5D2D79CC93A938A08E20C2727525A52CE83A0541F93F8BA9A37BEE144D7DE329E08A229F2B300DE55AD333671626695F1A05B638290CF29F16B1924EA103A79EE61D0D7337AD1F2829813454226228853A4ECE5B249F96B44B02280A75C03AE09E2648977D0ECF8C7F9AB36BD64EF56F012E2C0DBEB3B86EE64C0C595605E0BC6EA5A8B484604F12FFE39A5FBDF19A6D56BF00655374E72DBA36B825C37FD8403625D3B775A7434A4EA46A75B438294BF6E967C44AC8C9F0148B8B183082F30435CE92C32F143D2103D1B15D07183A07FB27D33279F204952D5F207041869DD70155F619D6B82EC5922E5ED16AEBDA6EAC641FEB9DE184DC3677AC4C5AEF13EF5C80EF558C5C0A98E7DBB1247C0DFFC637A11643E51A68E87E6E51FB7CD49ECD0EE5089F5F54C3A4632635619F89F5175E3BD6E8D764D906BA74F1C3FAAABF3798B8E5E5275C3BA3AA95B2B1B249F53E4D31908A4B26B835C14DD3CC34C0F10F1636073A35AD8B2A9817DD7ADABBED494774A3C24CE64557BB6ABBA71A85B035C1364B8EEF933161DFD49D58D7F726B4858E4FB52896931E62B19083C87704330615C0F98D7373B511CBCFA9755DDE8708BA97B82CC928F2A9721523FEEF709FB2EBA5380ECEE3B3BD5D334722D40144D91FF06607435CC3B760F1E74D99A275F731313D704719066F409553726BB3122ACB2623691D8CC0014683D9346E1430033E80A552F5EDBA83EFDEC475364F1EA5FF51B522A4B47F4AEDE6CF51AF677E6B82788923896C08F549D41981F4B174AC7FAE978D0BA34257E0A883E0BB6D8880ADA483FFB27AC56F3C64C3F55364297A6C84F01F840B5BE4C2936716EFFE342C6F1E39E2033E5A9245924EC223CA8E68D131D5BD04482D99EF8719249D3C591060644FEACA65BAD730C37E369B5601CED583E04829A22FF0AC0F1D54C89497CFC1C9757C02382D410582D39790A204D21C25126E87009FC4E661C0E82B86ADC0AE4D9A1EA46D53A2A35405797A6E120481BBE62D5259A753C6A22363E3B867004138E00E870B07924883EEE762374D8EF4DAA6E544DF65D2F6CBCE80DC92B966D2D9096F948F71224376D1A7DD4A4EF82C484988469209CCF60BB53CC7BBB72ABAA1B33DCF816846C283ED297B7C9326F2302DC6882ECED93A6249204730E834E70E86BE849128A65DE56DF287438587C110B9220230E6415F92A02BEEEC421223A3B9D2FAE7322DB6899D06C14B6F251934607350C04113E3BDD140D438DFB6A310ACD5193563DACD86872540666523E1904513E62BF4F4393D8A5E29F04936D655806CEC9E88638F91CAA273487151D4C654D77DC3DA84887892002836C329E2622CD120FC69D6AC1F897A030AB3A8384E5B87BAB5D980A32D061234885248AFC6302CEB3C28518C7A50B46D5D31441601A9A0B5395578316BA721B443047FA0C2741AC8F12556C675EA4164A570589DDBE7DE792F2D7380C576E8561AD92B421E8008791207B66914481C05667B11E5675C3E9F2704360D65272DEF2AC1CE3EB6AA141491B5A25ED4F432267D1495809B2AC473EC334718F153E319626CC296CFEEFA0317C63360E53DA9F56481C1786C0869520C3AFD1BF0560715891E6A87AD12EF15EC3600E55E2B8664F3DDAB0A8D97414728258664C672097D10D350C58862EF568B327AF0E43502BFFA543B40FB22F26CB92F18B4CA21B2DB00ACDD113BB629E0C3C9F6964F26A274BBD0871F9838820F608E492F2479860513E8F1E50F5A238211CF813BAF20795952C9B023A3071A1BACAF861E0E885D88030CF207DB31313A441DE6601DF5655378E0A03BCB954E226669E55D5964617D01926C88FD97A43C953AAC73000DE281BC24C90C53DF103BB4CAA9AE08081BF6674636CA3B0B2EAC76E5F0EC419355FB23E2150A503D7370ADF58564BCA9780B0C2C2F0E754DDA89ABF370CC0066D439809B262FA948377750D59D58BFFAB1A02822C9F297FB02CE109AB58D652DADB3341723326BD8F3B629659FA6A312CE8C1DB88FEC34C9065CAE4C92624915675BF4F58D23BE552F12F309355D96E4F09E3469CF64C10A14053E4DF009858154466355D2855AF1DD7885118E23EC24C905C2A711633573DB5CBC04319DD981A34BCD9947C2B3144228DFD3ECCF849A6609CEBD5CEDA089294978230AFFAC7117EAC168C7FF76A5CABB70B3741ACFF3333707B4637FE2DC8182D9A36ADE39023B68B5C58FF50D50EC2E56ADEB8CEAB9DB511449105336FAFDE39BDBCFD2FB1772FBA7393553678AFB6377DBB301324ABC4FBC8AA1230D3F7D442F18B410661594FFC13A649F75BD9506BAD9A9A08B2B8277E58974982C152F55984CE520B4591353D7AF64120CC04D114591C67AF9E003004277A1DDC84DCBE7DF7E0F8456B9EDCED75F0D544903DDF21F1FB003AD5822037AA85E2E7BC1AD8CAEDC24A906517741F6EC6CCE7ACB0279212E9FC6623C8F86493F14789A86A4A2202D6A575E3EC5A6CAC9D20C9F895205A64F59AD5259913BFD05FFADF5A0C6DC5B6612588DDCA10037FCCE8C6FB828C49D62EC3A730CE8759AE6682646D12C9093B89F0F974DEB0DA330912EBC0FA0E234172CA716319BBC41193AA396E199CCDE8A5B98101B76705F5DB00AEB0FEFE28CB99554F545DAA76627FCD04A9BC66A5E40D60582DF9DDABEA868B1A804E4C6F7E993012C441314C80E9D36AA1B836C808E414B9C440D52A027EBC5E55FEB9FBE1A4A6C41702F42D2B5DE5B274ECBCD59B452DEBE81946206C04C9F5C4CF6193C4AAA455A1993F8DDEDD31E9D2359B06820A642ED97D2A93799F65FFC4BE9422F785200E6A868098BE952E14BF1A14A861EC374C04197EA717B382759932E6056AA1B424483CED97A0F1E758C7A863E6DCFCC8CBB5DAE90B418411D9A47C3F113E61F1B1FE94AA17ABEEBAD7EA4833B60F0B41FA928984447C07800936386E1A7D60C709975EBF693040BC49536451E1ECC8AA3610AE57F3C6A57ED8E81B411C5CC315B3C867D385E28FFC30BC15748481205925F145027FC376E6A82C0AF1673285D2CD41629F4DC99712E3FB56369830CF9CAB6FB14D82E7C40FDF08E2E49621887FA9E64BED511CD301FA411264594FFCBD26D3379C56CD22D0DD69BD78A603B7EA2922668F474501238B4E8AAA6E74FB65846F0411066929F9A7609C6363DC79AA6E88E9BCED9F2008A225E31740A2B3C110E50F9C954526FA039787CEAB75C9B4D6803B993DFCD8FBD8DB4E5F099255E4B309B8D30A88302740AE35806EDBD78B20DFEB891FB61B380C26DE61120E9380C398E91842E5D4AB3352BCE9CC8BB19874EE9C9B378BF266413E4E668F5758EAE8CEF46FFA1FBF0CF595204E671149E2537AFB4B559336FBE59C573D95EAB6E2BD9C21B7482935AF50EC64933E9D5955B45E52F5AADD453B27B307014BD3BA31DF855A5B51DF09E264160110DAEBB839A57B22C314F75CDAFDF9AB69D2ACB9AB8A3F0901109455E4C708F850555B18438871B7DA5FB2BC5DE8D617DF09E2741609E3C6A1C85CDFD1B5F351063EE816C8969227FE658CF065B71561EB8581B3D9836F48EBA54BFCB6A12E0471388B8426AFD208A84E363CFD0E40E8F411FAB6BF3E78452D47C4FDF4293B73D23B488A6DB0DCF7101D127D4CCD1737FAD97745ADDF0A47F43959D10AC3BAFADEFEB7F9EBD54630BEAF160C915131348FEDAEF99E417C4B5A372EA887D1752388B359849F8AC5769F38E7E6DFD67C24C00F707E387BDAE8BF0CBEFA3B80DFED87BE66D041C0ED0CE4C3B8F4EEE8CC55E5DF3C7F4ACD972C936D7B8D45DD08220CCAA5E45BD9E2427DC568A6256AA1B8C0AB037EB7ABAC6031FF97DF7AC3A28F19AF106133883603B8A31EAF257EF9AA29F27F0238C54A1F835665F462D2AF3EF7D553578268A9C447C1FC909DF126D1C973F3C5F576728DFA7DF855EB060664020E6C54BFFEF5C32F80E879667A81985F20899E8789270529D2FAE627FDEBA77E9AB249792E11EC922DEC3099A6CE2D148BF5B2A4AE0411466BC94416C49659C019F87946373E592F27C3AAB75E1B8561F5D7A95DCB67C94799656C60B1D969397DD4BFD255DD09325C575DECC2BED3D2D91AD3B338053F4C721141F61F0D4D91C581C81EAB5811F0F8D0EE3153E7ADF9D5DFEA19D3BA13A4328B28892F017C8D8D23BB99CDD332852D0FD4D3E130E98E08F2F7D1B0CDD43ED28479A65A28ADAE773C1B429015974CE9DCB56348CC2256A73085AF1BCBBBC79C5AEFFF0AF506D5A9FE88206F45AA6F4F296771ACC5F2BBAFDE1FE67B5BD51082880E73C984C2C479DBC143A4A9F962C656AE05042282BC19449125F1D023B6DFC780DD75881D54C689E9D5865885ABFBD330825448A2C87625132A0E33D093D10D7B32D51D9EFA761011E44D7CB554623198ED0F1AFA90CAC74D541B4A9025C9EEF77452F96E808EB131F24F4C7C6A265F12572B5BF68908B227B45A4A3E1F8C5BEC024D849FA4F3DE1351DBE9DFDFEF0D2588306059523EC324EB12C3C386DEA1EAC6795E9C6A9636114180BE9E0F1D2399659145FE9F6DE2F6CCD010CEB8FC16E3E946C6B7E104D9F3AA95C830B8CFCE5122AC49E78DF3EDE49AF5F776274825B77399EE01C1FE8A2C61869A376E6D74AC0321C8F0B4BA020CDBE3C9AD4C927627484E496C64F009F6839EBEADEAC5AFD8CBF92F111841565C3265CCAE1D43E280D989766EB52A49DA99209A228B1BA527DBC63EE064118111A4328B24274F6192EE21AB022823083274B560A4EC006DA6DFDB9520392571178345D208BBE779487CBADFB704ED3ADDFBF74009522189924802AC3B319A81A5199FEF1C3BE9B75E32ED48104D914549BE5E47983668B7DCCA96C00952F9684F251630F3B50E415BA4164A5739920DB950BB1124974A7C93991D7D4B30A137933796071DC2501044809055648D80B423401ABC59E4C8260F42ED441057F125BA4ACD172D6ACE7800DB6393D01064CF37897C1B08CE0A43B60049DA85205A4ABE118C8B9C8D51FEAEAA972E73265B7FA9501164CF3789FC3080E31CB94EB444CD87E736A2239BF7126A7568625239000006854944415482AC3867CA98BF8D1DFA0101331C6213BA441EA123C830499E05F02E47A032356D0DC456264825F7AF4937D85D99DD2BC63F5375C32E6DADA321E1A7502809324C1276E1E81D4CBCB0D9CE6EB52A41728A7CBA58710430C9490C99F18B4CC1B0BC7BEE444F3D64424B90CAEA96223FE134891B01CF9AC0579AE914702B12444BC6E78368B18BC11ADA2C9BC2875013A44212279951F68E0693561E3C6061335CBA6A25825C3B7DE2F8AEAECEC50438DECC65E03F32BA71A50B32355C34F4041188F425E38B242237406E64361786FDFA6EAB10A4F24A25660DE6B8D311CCA0CB327AF1BB4EE583926B0A8254BE4952F23C70E5BDD6E9B31B84856ADEB04B1DE3549FEF72AD40102D159F0F76F54A252A555D9C299456FA0E681D14360D4184EF5925F139025FEF060791528889AE0E53DEAD11FB733326BD8F3B62BFAFE60F012BD2BAF17937FE364A76592A318D99AF60C055796F09E8E96DA2DBA24D451011FC658A3CA30C2C7774C0F1ADDF264B621DBBAE0E4B9AD361D32CD3FA13A1371D82E3167BC3B87CD607DE5E36475FE1E87AEC5BD9FA822451BAB7BFB8A65124F6A39FA62348E5752B39790A481217AE6C8FCABF15247E8A1957075D88726F9B72A96E99D9DC5F6640567543F223C87EE9C8A6E2B3887185832BD3FB76792F9BE505419770F38243531244385AB94FB273A8CFC9A5ABFD00732BD8BC562D6CD9E40534BFDB8CFC5726C60719FC1240F7AB7AF126BFFBF1AAEFBA0BBA3F1C8B99227FB2FBDB9D21CBBDEC1683A625C81BEFF10EAFEFEE1718C60F25A295BD7AD1367FB05B605B415E53E2A700341B2E966EF7F2FB450998DF4CDF1BFB8B59D313A4F25D52490421EEB8DB664BA9326EA900983F50F5D2FDAD30B06BF54153E473C1F82CC8B66271B5AEEE6533B620B3EAF152ADB604DDBE25082240142985BAC8BC8E01CF995018B89D9856AA85E25D41072688FE73C9C46C96CCD960FAB8E7FE9BFC00E9BE7EB70C41461CD394C467804A023247E780F63710187808446BCB83BCB6D169663C0F4C8F0D97F5747F9899CF6566F18FE5031ED580C177C7242C0973F5622FBEB51C41040839E5B8B126765D4E8020CA182FC00CB73101AC0568ADD989B5737F547CB5065DA1695AA9A36E9220C4B9004EAFD1B0DF8178899A2FDD58A39E50366F49828C20DD974C2424E2CB3D7E64EE1BB017C17BC8B23B66FE72417F694728235AC5A8C53DF103BBCAD2C759E2F3C8C4B9201C5AA3FD83002D89C5762D0DD9DE528D6EBDB5794B13E44DA2C8E7490441948FFA849E98491E62E28D20DC9FE92FFDDA27BDBEAAC9F6C48F034BA790697E0C44C2F7717E74208A669AA0A519BDF8A81FFAC2ACA32D083212806C327E11115D0CE0789F83F202800798F95E498A3D06EEDA96D67FFD179FFBB054D7373B310EBB3181604E21A2D389701233C6FB6CC31D90E846B5BF7D1631DA8A202383454BCA3D90F8A29A566B6C471EBD4C646E03689BC9FC8CC4D8C612B649147BC92CF3008DA2575F79EDF501BB7AE43F9C3D61F44E8C1967BE1E1BC7128D2B9BD2F8988409CCE60492E83DCC980054FE7C991DF6EB16613599E6CA74618B28AAD9564F5B12E40DA288ACE2262E06E1B4C0A24ED809C600885E05F3C0B01D62B08FFC8D0ECC36D04D44E6CA74BEB421381B82EDB9AD09F2C637CACCC4A72531A30067071B8E50F4BE9DC1B7494C37A60BC623A1B02840232282EC057E36153F9A4067B189B388F08900E3D2E8AE7732611D31AF1B343BD7CD5FB5E9A5461B10D6FE228254894C76E6A43849D259203A138CA9610D600D769519542145B903EBE6DD6C3C5783AE966D1A11C44168B34AE25862F34C223A810191AE7FAC8366A11311892D407898191B4C36D7CD2D6CF963E88C0C994111415C0624D7FBFE51FCCA98A96256093B612A995E080F4B4C1B49A2077BFB373FE6D2DDB6178F08E2C310A89C673279AA493C89988E04CCA300F27B0FC2CED23F32632B119E0661334C7A502D14B7DA358A7EB7462022489D46C835171E7DD0E85D5D82284732D151041C0912FB153416CC0703107FE255CDEED6E0104003000F8030408C0113BC95184F03BCD58C753E3DF0ECD8AD8BD6AF1FAA932B6DAD362248C0E117441A3B347AEC60593A182857BE6DCA52C740C7200FECEA2C0F34DB99AF80E1F4BDFB8820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF118808E23BA491C256422022482B4533F2C577042282F80E69A4B095108808D24AD18C7CF11D818820BE431A296C25042282B45234235F7C47202288EF90460A5B09818820AD14CDC817DF11F8FFD068FEAA06B279120000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (50, 4, '3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001D6E49444154785EED9D0DB81C5579C7FFEFECBD81A225A5D40FA8DA5A0CD098ECEC4D14503E04E4534DA91FD1DC9DBD41514109D9D91BE443AD7215AD102077679394864A04B2B3C1062C4522484010118334646783B131D45A8A5FA515A28231B93B6F9FB9F74642723F7677CE3B337BF7CCF3F0E4E1D9F3FECF7BFE677E777676CEBC87A00FED8076605C07487BA31DD00E8CEF8006449F1DDA81091CD080E8D3433BA001D1E78076A03507F415A435DF74548738A001E99089D6C36CCD010D486BBEE9A80E714003D22113AD87D99A031A90D67CD3511DE28006A443265A0FB335073420ADF9A6A33AC4010D484226BA64F5CC64F28F0DD221361ECDBB9BB72624B58E4E430312E3F43BB9CC00D8CF00741C8057ED93CA2F01DEE833AAFD95DA408C697674D71A9018A6DFB13259803F03E0E8C6BAE71FFA842BFBCBB5B58DB5D7AD5439A00151E564833A25CBBC8781331B6CBE6FB37B6CD73BBBC5581DD682031A90164C6B35C4B1CC9F00F88B56E347E37E6CBBDE1121357478830E68401A342A6C332797FE0898FE29AC4E10CFCC1F29546A37AAD0D21A133BA00189E00C59914BCFA9336D52D915A530277F8BB759A5A6D6DADF010D88FC59418E95BE17A0D39476C5D86057BC33946A6AB1FD1CD080089F14C505E96329451B25BAA9338E5D52F1BE2FA1AD35471CD080089F09A59C79113396CB744317D96E75A58CB656D58044700E3896790B803E89AE98E99642A57AAE84B6D6D4579048CE01C7327FD8F803C1A653FA77DBF5FEBAE9281DD0B003FA2B56C356B5D6D0B14C6E2DB2B128DBF5F41C3666554BADB4B92DD9D6789006A471AF92D85203223C2B1A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D1696D780081BAC01113658585E03226CB00644D86061790D88B0C11A10618385E53520C2066B40840D16969FB28038B9F459F0E94210DEB59F87842AC037D7D1B57E49F9F127253DD68048BA2BAF3DE5007172E94F80A91FC0E18DD8C7A0BBC1F84AA1525DD748FB66DB4C154056E6E6BC610843EF04D30741F86B66FC86805F0323FF32E846DBADDEDCAC3F496F3FA500712C73058045AD98CE4CEF9780A4DD0171ACD959462A47E0C9CB0D317EC2E0C169E0351756B63CDBCA3C242D664A00E264333340BC0AC029610C9680A49D0129E5329730F3D2663D65C67F93C19FB7CBB52F371B9BB4F66D0F88939D7D0EC808E0D8B774674B5EAB86A45D01295AE94102155A32713488095717CADEE56134E28E6D6B408A967939015F526CE226DBF5DEA44AB31D01295AE6AD047C40890784DBEDB2F73E255A3188B425202B161E73A8EFEF5AC6CC0B253C535998ADDD0029F5A6E7B141772AF595B8D6EDF3C9ED785FD276809472E9137D1FCB8848D95FF9314E066557917603C4B1CCAF0363FC341E9618C20BE4E3947C9B95296A2B409C6C7A018882929B07859DAFC9E2093833EF7AF74ED66EB2CFDB0990C15C7A8EA1B802E4FEFE9065BBD5CA64BE25E5F3B601A4984D2F24A2E87E67671EB02BB5CF859DA87602C4B1CC35007261C73C593C0157E45DEFF393B54BC2E76D0188CAC2CF0D9BDE818014B3E9C784BFBAFEC17E662C2E54BCE0B955A28FC40352CA663EC8C45F89DCC50E04C4C99ADB4038322AAF7DE26CD237054A3420CB2DF3033E706B5413F6927E3A1110CBFC39805747E937C1989F7737DF16659FCDF49558409C6CE61C10DFD1CC6094B6ED444072E6F360F91F40F69DA724439248404A96790603DF547AC2372956A7D40C152B7DDBEC26FD17AA5624346937920A49E20059DE3BFB68DF30827AB6B11D043C9877BD50EBBAF624DF4E809472E655CCB82C2EE3930849A20019188071C876B31ED704EDD56FDE763D255B16B4152056FA38067D2F66FFDF63BBDEBFC49CC31FBA4F14208E657E17C05BE336A78B523316297A91AA9D00097C772CF35100C7C43807FF393484B32EFEAAF7A31873481E20C56CFA8B44F4A9984DF9350356C1F5EE529547DB0192CB0C80F90A55E36F51E72EDBF5E6B518AB342C115790522EBD9039C2A7E4635BF8B44FD4D75FAE3EA8D2E1760324187BD14ADF40A08FAAF4A159ADA42C958F1D10276B9E02C2B79A3550697BA21F1A440B17AFD9FC6F4A7547BEB2B4E5FE20628B169B3198B1D0AE78C1F297D88E5801197ECF9987EE07E875B13900DC55A754BF8A9F74C71A43BB02128CA564990F3070726C734378C6079FD55FAE3D1E570EB101525AFC8603F85707DDA57C7BE4269C64E0BA82EB7DA28990A69BB63320A337EDD703F858D303571410FCE48E5F3D7F56FEEE277FAF48B22999D800295AE9A504BAA4A96CD535FE2D88FBA37867BADD0119862467BE1F8CAFAAB3BF69A595B6EB5DD474948280580059964B9F98627A4841FEAD486C620385C21AEFE156829B8D990A800C7FDDCAA54F64A66F007879B31E2869CFDC6B576A91AFCB8B0590D86E0019B7D36EE3E3F9759B9F5132690D884C154086AF24D9CC0C22BE21A6FB92EA2E834FB8644DEDF9066C57D62472409CAC793E08411592A88FF5B6EBED5F6551388BA9044860D5D5E71DF5C707EC3AF04662CC17B66E7F79C69576C5FB6C94FD460AC8606EEE61C4430F13F057510E12C0FDB6EB9D16719FC3DD4D3540F67858CA656E962A9A31EE3C117ECF4C2716DCEA6351CD65A48094ACF42087ACB5D482318FD8AE777C0B714A42A62A20C3F0E7CC55609CAFC4A88645E836DBAD4676F58A0C10C74ABF1DA0FB1AF641414366FEB742A5F66605522D4B4C65404620C914C16CB76C500B814C7C6EA15CBBA585D0A6432204C40CDEEF38A3E90C5B0C60E0BB05D73BA1C5706561531D90D1AF9141F1BE282B286E7D81FD133E1941FDDF480089BAE80201FF93773D25A548C392D209800C439235AF03614958BF1A8D67C6D5858A7C59D368008978197B3D85D72CB9C5FB69A3664BB6EB1440569D3FB77BE70BBB3780E96D927EBE44DBE0D9F69ADA1392FD890332984BF71A4C91150A63A2330AE5EA0649D39AD1EE1440024F4A232F5C05DE47F43091BE64BB55D15724C40171B2E6BD209CDECC49D5725BE2825DAE392DC70B0476122023F7239945004752EF8A80FF020E4CE7DD47838D7C440E51404A7DE979EC2B2E843C9E0D8C1BEC8A7781884B21443B0D90D1FB91D5207C28846DCD847EDC76BD7F6C26A099B6A28014B3E6BF10E16F9B49A8C5B6DB6997717C944B481ACDB31301B9BE2FFDCA5D6C6C0073BA519F42B4FB8EED7A2785889F30540C90C1BEF4A9864FF74B25BEB72E133E56287B712C5F9974789D08C8F0FD482E633173795283543430E89DF69A6AB09052F921064854859001DC6BBBDE99CA9D5124D8A98004F6152DF37602DEA3C8CAF16508AE5DF6448A6E8B0052CA9AC73021A88E217EA8DAA6402AD14E06C4C965DE0AE6A0528DE841000FC13797B85BB6A8EE480410C7324B0016AB4E765F3D0656155C2FB6B7DD1A195F270332FC55CB32AF65E0E246BC0AD746E6275F11408A96B99D8037841BF024D18467E0D3F176A5BA5DB49F90E29D0E48B082DBE0A1E02AF2FA90564E16BECD76BDA3276BD4ECE7CA0119B4669F6DC010B961DA7B70047C21EF7A9F6976C051B7EF744002BFA37A36E21BFCF6FE3535A51572940312D1D7ABDFD629D52355894425441A1060A440C7CB3C0047A9F4760CADAB6CD7FBA4CA3E940312C5D72B22ACC8973DF17B1C15466B40465C2C66CDBF23C2952A3C9D4043D9E6AB7BFA500A48B1CF3C817C7C47D804D4EBC69B97DCAABEC89B44DE1A901157071764FED2487170153958C2E73D9ABE919AD9BFE67165BB03280524A225CF65DBF5FA244D56A9AD0179D14DC7CAAC04F84295FEEEABC5C49716CAB56B54F5A1149048BE5EB17F7ABEB225D23713C398AD0179D1BD15BD3D6FA91BFE2361FC9C2C56E5DE2E415FCA0029E57A4C66BF3AD900C27C4EA0BBF36EF51D6134A28ED580BCD471C732BF06E0DD92F3B0F3809D075FB67ADB6F54F4A10C90C16C7AC020122D9B4FA0FEBC5B2DAA1878541A1A907D01C99C0BF04D92FEABDC3D57192091ACBB613A32E90F06F79D780DC84B1D59BEA0E7703FE53F0520250609D1F576B9AAE45E47192025CBDCCEB24FCF1FB05DEF54315385843520FB1B1BC14B74CA4A3D290164D5BCB907ED3C7848B42424039F28B8DE7542E7B198AC06640C40ACCCA5005F2D663AF0BCED7A4A5EFB5502C8E8BBC8A29B3F1A75E3CF17DFBAF96782A68A486B40C6BA8264668058740F4255DB782B0224F35106DF2072860D8BD243B65B8DAE5A86C2816840C636D3B1CC1A80D90AAD7E891413BFAF50AEDD1E565F0D2059733913E4F66F60BEC4AED4AE0D3BD838E23520E30022BD59A8A242D74A0071ACCCB701967C2FF8CCBCEBDD1BC7091EB64F0DC8B85790E05948F04C44E420D09D79B77A4E5871458098CF02F893B0C98C17DFD5BDFBB045376DFD8594BEA4AE06646C7707B3B3FFCA20E33F04BDFF2FDBF5FE32AC7E6840562E98F5DAA1542AF85D5BE6203C6397BD57CA88CBAB162DF33902A60BF5F49CED7A8708698BCB162DF3D704FCB154477E371DD27F53F5B930FAA10129657B4E63F2C52A1932E35B858AF7F630838C33D6B1D2770014FA523FD618887047BEEC892EDB90F4AE64990F3170A2541FE41B27E7D76EFE7618FDD08038D9F40210AD0D93C444B10C2E16DC5ABF94BEB46ED1322F2640E40786767D36B4C7F352CE5CCE2CF7E30E31DE9BAF78A1EE73C203225C6A92800FE75D6FB5F4892CA5BF3C9739D9677E4042DF273AA5BF5C7D50423B0A4DF1AAFF8C0BEC8A17EAF14368404A96F959063E276528119F942FD7C45FC292CABF641D7B30B0F309065EABB60F7A6AE701BF9BA56AD5AADADC1A532BF69A279021F7821D337FBA50A9FD7D63D98CDD2A342045CB7408C8874962A258C330DEBC784D7BBC3D38DE381CCB0C5E0F0E4A21293B98B1B850F1222912AD2CE97D844A56CF4C86FF03297D3096D9152F54C9A1D0803839B30C862535C8948F5917ADF5E44C944A7C1F5DC74A6F0048CD46A28C0D76C58B6CB72E298B56CE9FF9EAA169DD3F97D267A65B0A95EAB961F4C30362997703382B4C1213C5FAEC1FD15FD9F26329FD2875553D13B15D2FF4BC4539EEF1FA1A983F73DA21D3BA7F2F950B01EBF321B7FE0E6DB46399DF0720B651A64F5D87F7973789FD95919A9CB17447DFBA0CFEA01CD662BF3F33E09FB558A0C4668BF9840E732C33D8DB43EA59C8A3B6EB1D1726491580044F43C5F63D57F1B0278C4112B1A56CFAE34CF40F4D6A8BEE83D1642ECA9A3B96F913007FA14C706F21E6FFB02BB550153E5500B243B2940BFDEAF903F3773F29761916999806448BBDB3D264189F0786F7F41B6F99CE73007FDB007F662A5D35F6B6C7C99A8F83D0D38065AD3409BDD2400520BB0174B5927D23310FEFF2BAD6AD43BD91B6EDD86660E0E4AE439E7CEE189F718C017FE4AB2A19C1D7D6C79E7DFA4FBE3FF0E08343ED38AE467376643778DD6DBBDEB4467319AB9D0240D2FF0BD0A161929828F6E507EC3CF8C38A2A5448E5A8755B7740B2541403FF5B70BD57B49E9D82B23F4E2EF324988F0893C444B1EDBC9257CA93A9A42BB998938027F3AE37238C5FA1AF2045CBDC44C09C30494C14DBCDFE11174E919F79A53C6A57DD7F9E3F73DACF057FE60510BA566F68404A39F37E6688551B31E0A7A7EA0D6ABB9ED8AAF22E59E9D730E8BF55E98DA173BFED7AA11ECE860644BA521E81DF92776B1B054DD4D23139505A60F6700A8F4B75CFC0D70AAEF7DE30FAE101C999ABC1827B62139F6D976BF78419A48E4DA603CBADD967FBB29B2DADB65DEFC361461F1A90A2951E2450214C1213C512F185F972ED7A297DAD1B9F03452B732181578A654018B4CBDE9230FAA10171B2E92B4034102689096399AEB52BD54BC4F4B5706C0E142DF35A92DCE09379C0AED442BD8A111A90522EDDCB4C15319719B7DB15EF7D62FA5A383607C4EB3933F7DA95DAAD6106181A9015B9F49C3AD3A630494CF8150B783CEF7A73A5F4B56E7C0E3839F371B0D83213500A73F2B7789BC38C3034202BE7CF7CF9D0B46E257B318C3390676DD7FBD33083D4B1C974C0B164CB45ED32F8E597ACA985AA191D1A90C07AC7329F06F0E752D3E077D3EBFB6FAA06AB3EF531451C88A02ED6D3B6EB857ECD590920D20F0B99F923854AEDC629726EE86104BBDE5A998F92683D67847E48184C9412401CCB0C7E86FD98DCCC53C576AB62AFF5CAE5AD95C773C0C9996BC15820E610D3F57625FC263A4A00295999028307C5060BFCD276BD570BEA6BE9681D20276BFE1284502B6D274C99B860976B4ED861290164B9D573B60FFF1B619399F0D72C0555F224F3D3DA8D3BE064CD5340F856E3112DB454B40243092041ED27C6CEE0CD42B943C1431FB9E4B472330E38D25B1F0050F51E91124002731CCB0C16141EDB8C514DB6DDFAEC0C6FF6C000FC26E374F38439E05866F06C222398D646DBF5DEA2425F2120E92F00F46915498DAB6170AFBD26DC9351D1FCB4F8A40E147399D3895974AF1702BE9077BDCF4C9A4C030D940152CC9A67124174D52D33EE2854DAB79A7903F331E59B38961954835C24395002946DB8A40C90D1FB90FF932CE010989A229E7B51B926F60E81E4C475BAF6357DE9971DE0D30FD5D7297ED159660C1974E0A179F7D1A0DE56E8431920412625CBBC878133436735B1C052DBF52E13EE43CB0B3820BEB075E4C1DE37F3AEA7ACD2A75240A2F87582819F1E60F09C8FAFA9FD8FC01C6A4941079C5C7A3D98DE21D805A0F8D74EA58044711F1298CBC0270BAE7795A8D15A5CA903C56C663E11FFB352D131C4987156A1E27D53553F4A0119FD9AB58905AB9C8C0E7C7BD7AEDD7316ADDBFA5B5546681D59078A96F90001274BF64202AF46A8072497F914337F51D288409B98ED7CA5A674CF0DE99C3B55DFB1D2E7027493F4F899E8D3857235D48639FBE6A81C90E5BDB38FF60D23D8CFC31036C47B768637473F3814765981BC93333782451F220759FA4C3CB350AE6D5390F21F24940312283B567A1D4011BC264B17D96E55EEA57F954E77A896C4EE5A6359498475F9B2F77ED536CB0022BCF3ED8B26D05343F5A1132EBEF509C9E263AA3DEF18BD62DFDCD719FED0C392CF3DF69869000B16BBDE57559B2B02C8AAF3E776FFEEF9A1AD0484DA9BA191C1326345A1E2057B00EA23610E44F1D47C74C8DB0F7C59D71B2FB86153B0D380D243049020C362CEBC8A18913CD023364ECF5736DFA7D4192D16CA8128D65CED95E055B6EB7D3254C2E3048B01E26467CF1DDDE742FA663D7830322536B59498E0B834956E5A3AD920D87F935DD9225259470C90919B75F985697BBC23A24BF3E5EA359379A93F9777A06899171370AD7C4FC33D842E2F3A519EB280F4A567C1A760B7A43F8AC22C06E6155CEFAE28FAD27D8CED40A9AFE76D7EDDBF8F486ED7B197F44C74BC5DAE3E22351FA2800C5F45B2E6752084AA8FDAE8E0830D53D0D57556FEE64DC1C6A2FA88D88191D5BAC606062B795969D2F419AE5DF17293B60BD12002403233401C5C45C6DBA83244FA638412BE6E97BDBF512BAAD51A71C0B1CC60654374BF28324EB52BDE038DE4D66A1B714046EE45327F0FB0C8AF0CE30C5C2F896FF58C6831AE944B2F64A69B5B0C6F218C6EB3DDEAFC16029B0A89049062DFCCD791DF1D5C455ED55476E11A8BFDF4172EADA9171D3D1CC38BF122D937261240825362309B1E3088AE88F2F420A094773D3BCA3E3BADAF6236FD6122FA7294E326C21DF97234AF5E470648700337CDA7EF0230A33413C04ADBF52E8AB8CF8EE8AED89B7E2F19745BC483DDC9A0930A6EF5B128FA8D0C906030A56CC662E2721403DBBB0F95552EA2CE3DA9FD0DF6A64F350CBA3FF2FC089FB5CBDE9551F51B2920A337ECEB008E60A5EF4B2DF4993FD75FA9C9ED8415D58C25A09F525F7A1EFB74670CA93C72D8AE234F7AFFBA75F5A8FA8E1C90E282F4B194A287A5AB9F8C65A08624FC6955B2321F65D9AAECE326E913BDABBF5C5D1F7E148D2B440EC8C855C4FC1280CB1B4F53614B26C7AE54C5361D559869E2A44AB9CC1799F9533125B6DC76BD7CD47DC702C8B2F96FFCD3D4B4AEE086FDE8A8071CF447A0B5A9EEEE258B6E7AEC1771F4DF6E7D96E6F7BC82A7D58B006563CA7D7B57F7EE9316DDB435F2F98A0590386FD8F79AE027C074995DA98A56A58FE98452D66D313BFB2422631980D8F68964A0AFE07A91FFB833F2C734C6437C0BE986C6467F67BB55F122130DA592B046C59C790101CBC03828AED4987075A1ECC5F3753C6E4086EF47B266198458778F22D06D75AE5FD65FD9F2E3B84E8484F54B452BBD8C40B1DEAB11B03EEF7AEF8AD39B58AF20C1C047EF4782AF39925B2734E0313DC5CCD7142A5E505CB9630F279B3907C49702786BBC26F05386CF672E5EBBE5DFE3CC23764082C10FFFF46BD03740887FBB67C60682B1B4D35EE11D2DD7740980F3E23C21F7F44D30E6E7DDCD513FA5DF6FE88900242137ED2F3127280651F7EB4B3BA1628A63652E05FC4B013A34097030F0F982EB45BA6E6FBC7127069091FB91F415204AD2D3EE9F03BCDA675E3DD5EE4F569D3FF7A0DFBF30741E07570C464F12C018C9816FB3DD9AF832F646C79B2840862111DF52BA516B5E6CC7C00E22AC06F16A7B4DED89E6159213716DEFDC3FEB36EAE7011C7C953A2A39990D57254F5CF18DC401320AC9D700BC3B51933792CC6E06561B6CDCD66EF728CBFB7ADEE433BF8B99CF23E0B509F4F6FBB6EBC5FC43CDFEAE24129051488227ED31FF9232C169C4D80CF0BF924F77E66FF5824D2913772CEB35DF9832E89D00073F959E98B8045F4C689BED7AB1ACAA98CC93C402320C492EF324988F986C10B17FCED8C0C0DDCCFEC6FEB55BBE17673E83BDB3DFD245C6714C383382DDBE420F9508BFC897BDC3420B0909241A90D12BC96F826DAF85C62F21FB3411BEC78C6FD1507D43FEAB4F885658297D60D611DC953A9D08A73223A826F21A8941C968F24EDBAD455212AAD5FC130FC82824C122B528DF676FD5CFFDE318CF10E1070CDECA307EC084ADA96EFA41FE2B9B9F69A693E08DCC3F0266D519B3E11BB3403C8B81D904BCB2199DE4B4A5FFB3DDEA9F25279FB133690B40462109B6D53A23E98636915F5068F9F9D1FF5E08FEA591FF07130E828F9721F817388880831838B009EDA4374DE40DF958A6B50D20A3F724D780F913499F7D9DDF440E70C5766BB1AEBD6B667EDA0A906060C55CFA12625ADACC2075DB84384018B4CB5E245536558DB8ED0019BE9264CDF34158A5CA04AD138503F425DBADC6F53662CB036C4B4082D12EB7CC0FD48152FBDEA4B63C67ED17A878EFF2280D685B40029306B3998C411C94D97F7B94A6E9BE1A76602BF97C797E6DEDEB0D4724AC615B0312783970F2C95D871CFEDCB520D6151493757295EB295CBEE416EFA7C94AABB96CDA1E903DC37572E98F10D3B50C4C6FCE02DD5AB103BB987179A1E20D2AD68D456ECA0012B8B7A22F7DEC904FD711707C2C6EEA4E37321B97152A9B1F9A2A564C29408249099E3877FBB88240C1DB71FA88CE81A55DBB765FB968DDD6DF46D7A57C4F530E903D969572E9139929D865F79DF23676740F77D589972E29D7BE33155D98B280BC088A79018F6C47FDFAA93881318EE9C74C585A287B53FA79D49407243881962FE8399C53FE650C445EBA32C61358AE6B22C718A2A58B6FDDFC33B94E92A1DC1180FCE16A92ED398DA97E1140E724C3FEF6CA82417732D797F757B6DCD75E99B79E6D4701B2C726276B9E02C28700F4B56E5DE74432619DC1F872DEF5EEED9C518F8CB42301D933C9CB16F4BC2995F23F080CC3125B79CD049F746BC8306ECCAFD9FCED04E7289A5A4703B2C7D9150BCD23EB75FA20C00128AF1675BC1DC499BE4CE4DF98776B1BDB215DC91C35207BB9BB62E13187FA43BBE6F9C4F3089807A05BD2FC6469F37D04633D33D6DB95EAF664E5165F361A9071BC5FDE977E3DD7318F2900854E8B6F8A447BFE0E31D6738AD7B77BBD2F299734200D385BCAF598BEEFCF3388DEC1E0A03042DB1E04FA9E0FBE87D85F6F57B66C6ADB814494B806A449A3AF5B30EBB5DD5DC609CC743C186F0525A96CE71883616C2603DF05F891DD43FEC39D506BB8C9299DB0B90624A49BA50FF5BCC2DF5D3F094C2711701C338E228A6D45F173007EC4C046103F6474A71E6AB67A4A483BA65CB80644604A8BBDB35E05A2A340A9009623E1F35108FE55570B771B183F8241DB007F1BFBFC23306F2BAC7DE29702C3E968490D48C4D3BF6AFEDCE9BF3B10D353FEAEE975DF986EA4683A33A613FBD37DA2E177590CE61D4C4650307B875FE71D29C3DF5137A6EDD8B9133B2E5FB76947C4297774771A908E9E7E3DF8C91CD0804CE690FEBCA31DD08074F4F4EBC14FE68006643287F4E71DED8006A4A3A75F0F7E320734209339A43FEF680734201D3DFD7AF09339A00199CC21FD79473BA001E9E8E9D7839FCC010DC8640EE9CF3BDA010D48474FBF1EFC640E68402673487FDED10EFC3FF9B3195FC4FDF36D0000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (51, 4, 'e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900000F9549444154785EED9D7F8C1C6779C7BFCFECD938055225A50DF48F602A9290A4BE592B181227C52901299492861F466467030EB44D1B723B77C48404DAE6DCA21208B177364E5BA456B8F1CD5EE00AC1544AAAB4A481D8E44705B7B34ED3343624162D4205E10635B5F0DDCD53AD6B1C50B89D7766DF1DEFCD7C4FF25FF73CDFF77D3ECF7EB4DEF59D57C02F122081650908D99000092C4F8082F0D141027D0850103E3C488082F0314002D908F019241B37769584000529C9A23966360214241B37769584000529C9A23966360214241B37769584000529C9A23966360214C490DBA7369FF7F2D5AB577922D804C55A003F306C1D9D3251078AFF86621E70DA7EBB7360742E379A37199A203BDE535DEB54B049A1970AF01A284E0770DAB13F82318B388E40E400627DC46F47D75ACC3D11D5F4DC9B04F8C430B24F66A6AAFEEE64BBFB37C3BC43D373EB0EF0070A9C03E06596CE3A0CE0F81F791AAA5F762ABA776277F7694BF92762AC0B1278D51AA013002EB47D59933C3F8CACCED4BA7AFD268DE3074DCE5E91352A670FEB99A4E955DB02BD2A2F2E027958819D7ED869DB3AD3DA8329A85737AAEA0D02BCC3D6E532E6DCEA87D1CD197B5FD01678D53940DF652B6FE47254A7FD76779BED7BB53CF7FD0A0CF5D969D93B2BBE10AB73FBD4ECFCC383CE654590C0ABBE0FD05D835EC646BF00DF6984D19936B2149096E7C636B2463743F7F861F74ADBF70B3C773780BAED5CD33C015455B70D2AFFC0828CE2DFCF2B159C73FD5DD153A63097ABDB51BFE0158E2E7E77D09C91EE57BDD76F77DF6AFB8E81E73E03E095B67333E4FDB31F466FCCD077AC65204102AFFA8F80BE29EBE1C3EA5B92CA591F9AF9E6411BF981E73E0BE0541B59A399A11FF5C3AEF5372002CFFDE1F137654661ECD80FA34A968B641624F0DCDEDF2FDF9FE5D021F73CE987D1B9B6CE08BCF19B01F9735B79A396E338FA6BC378F727F0DCC7006C18A179EFF1C328F5EBE34C8234BDEA7502BD7384863F719558E59AA976C7EAEBA1A05E8DA03A3E8AF30E7427C59FF9EDE84F06CA58A639F0AA3702FAC961640F9099FA0D9CD482ECACAD7FE592C48F023863808B0EA53556DD36D5EE4EDB0E6F79AF3F55F5C77F0CD1ADB6B34F525E2CA2D73466BA770DF3FCA0EEFE35141F18E61969B31D91B74FCC74BE64DA975A90A05EBD0D3A3A0F1401FE4B057FEF406626663A43FFF78AA0B6EE82D8A9BCD414F0A8D58D497C68187FA55A6ECEA03E7E3914EF01641370EC27104EEA972A1E986C4797995E229520CDAB7E7D5C9C4AEFD9638DE901C7EBEE814817311E8B57E3EB93BB3ABD17BE56BE7A6FE7590962C8D009F4DE36B771C81D3577432CF25A403708B019C08BD3E5CA163FECFCAD494FAA0BB73C3750A06112DCAB11E0A0387AEDC4EEEE03A63DAC23813404EEF0AA172F21BE4D2017A5E87BC40F23A3FA5482045EF510A0A6FF0877871F46C632A5188EA524F002024DCFEDFD14C7A78DD118FE888DB1203BBC756F71E0DC6B740191AE3FD3718D6A5944029608B46AE30D15094CE244F4BAC64CF72F936A8D05096AEE2CA4F7622BF9CB89E3732766F73F995CC90A12B04B20F0DCFB005C9E94AAC01727C3E89D4975C682346BE3FF22C75E18257CA97ED86F77CD9FEA92F2F87D124841A0F743B350DD67D0F2EF7E18BD26A9CE589096E71E50E0D549810BEAACDDDA9E3F9454C7EF93C0B008343D77AF001727E42FF861B43AE90EC682049EFBFDC45F78513CE5B7A3DE2FC6F08B044E1A8166CDBD55041F49BAC0E2D2D29937DCFDF877FAD5A5116401E8FF9B800A999D0C3BB5A48BF1FB24304C02CDABDC4BC4C143496748EC5CDA989DFFAA2D4112FF416E583FEA913428BF4F023F4DC0F4F77828081F37A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440414AB9760E6D4A80829892625D2909509052AE9D439B12A020A6A458574A0214A4946BE7D0A60428882929D69592000529E5DA39B429010A624A8A75A52440410CD73E3D0DE7970E56AF588CE3AA610BCB0624208E73B4A2FAAD8AC6F75FD7DE7F78C0B84CED14C400DB887E0CB1C1CD0B53B2A8C04D9361747BDE13519004E2CD9A3B2582ED792F86E7FD3C02E2F961A79D271B0A92403BF0DCC4FF683BCF8595FC2CE30FCCB4C58982F421D9AC8F5F212A7B6CC166CEE004C68E2EBCF483734FFCCFE049660914A40FA71DB5F16947E4163394ACCA8340BC24AF9ABABBF34C1E67F5CEA0207D48B7EAE37FA82A7F91D732784E2281A37E18BD28B1CA620105E927C87BDDF5BA846F5AE4CDA80108A862E7643B9A182022752B054940D6F4DC2F08F08ED464D9609BC042459DB3AECFF9435D2948C21A3FF3FB17FCC291E716775312DB8FF73479F26F403CE187DDAFA4E9B2514B410C29B6DEEBAE47AC172A9C330C5B58363001FD918AEE9BDCDD7D74E0A88C0114242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000529C79E3965460214242338B69583000549B1E7DEFFCFBBB4286E8A16960E40A0022C2CE9D2B7A766F73F3C40CC40AD14C4005FAB56F554F4AF00BCC4A09C25F6093C0DC47FE487FB73FD00CFDE18142461993B6AD52D8EE867EDEF9C89A909A8BCD56F77EE4DDD374003054980C74FB91DE0D165BFF52B7E18BDC97EECF28914A40FED9DF5EA9B9754EFCF73213CAB3F01F9E1736B1AF71DFC715E9C28481FD28157FD18A01FCF6B193C279940BC4A5E35B58B9F728B5875DB54BB3B9D8C6C7815CDDA78434482E19DC0E49404D40F232765CF40E57C06E9F70C52AF6E84EABE8108B3D91A01017635C2E81A6B8106411424F945FA03007ED380254B864C40C4A93666E6A3211FF333F1142481F68E2DD5B5CE82CE02B830CFC5F0ACE70908F06CACDA986C77EFCA9B0B0531241ED4AABF03D18D02FC4A0C9CE200470C5B59968180022F53E0DB50D93BD9EECC6588B0D24241AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090A26E967359214041AC60644851095090149BDDBEF9FCD3C7C656AF4BD1C2D201082C39BA38B6244F4FDC3DFFDD0162066AA52006F85A57AFDFA471BC15C06F1B94B3C43A01F95A2CB8656AA6F3A0F5E884400A9200A8591FBF4254F6E4BD189EF7420202BDA811761FC9930D0549A01D78EE0280B13C97C2B39623A07BFCB07B659E7C28481FDAADFAF86FA8CAD7F25C08CFEA4B60F1F059D18BA6A711E7C58982F4211D78D51B01FD645ECBE039C90416D459BBB53D7F28B9D24E0505E92748DDFD1014B7DB41CD141B04FC30121B39A61914A4EF33C8F86580FC93294CD60D9B80FC9D1F76360FFB949FCEA720C92FD2E70154F35C0ACFFAF90424762E6DCCCE7F354F3E14248176ABE6BE4E45E7003933CFC5F0AC9F25A0C0CD9361746BDE5C288801F1ED9B2F3AC559F5DCEF39221B019CA1C01A00A70870D8A09D25290928708100CF28704881078F1E5D086F9C7BE27B2963AC9453102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C560850102B181952540214A4A89BE55C56089C2C41FEB7F75F77F69B2056DD36D5EE4E5B99922124909180B1208AD737DAD163FD8E31FEDC86C073FF13C0AFF60B53C8EC64D8A9659C8B6D24608540F32AF71271F0506298CAD97EBB73C08A202DCF7D5C81F3FB1EAA78CA6F47E7245E8C0524304402CD9A7BAB083E9274C49A78EC97AF9DFDC60FAC0812D4DD87A0B824E9D0BC3F6E2BE93EFC7EF908343D77AF0017274DFE8AA3678FBD7B6E6EC98E205EF563807E3CE950A87ED86F773F9D58C70212180281A05EDD08D57D06D10FF961F486A43AE3D720DBBD75EB2A70BA4981BDEF3B717CEEC4ECFE274D6A5943023609049E7B1F80CB933215D83A1946899F65692C48EFC096E7EE5583A72EA876FD76D74DBA24BF4F023609B46AE30D15094C326571E9D58DCF3DFEADA4DA5482ECA88D4F3B22B724851EFFFE1D7E18350C6B594602031108527DBAB1EEF1C3EE952607A612E4CECDE7BD6471F5AAAF03586712AEC0418DF5DAA9D9EE0326F5AC2181B4048EBFE6B80D40EFA3F68CBE44F40D8D996EF2DBC0005209D23B3DF0C6DF07C82EA39B3C5F744FACDA75E03C7664A1B2EFA6B96F3C9BB29FE524708240D3AB6E00E20D22F25A28DE0DE0C5A67814DA9C0CBB53A6F5A905F97F49DC2F0278BBE921AC23811121F0A440DFDC08BBFF617A9F4C826CDF7CFEE995D595797ECCB22966D68D02818AA3175EBFBBFB689ABB6412A47740CB5B7F9E22FED73487B196044E1A01D1B7F833DD7F487B7E66418E4952735FA7825446A6BD20EB49607002FA513FEC7E224BCE4082F40EBC73CB792F5F5C583503E0B22C17600F090C91C01151B9AED1EEA47D53E9C4950616A497F4D92D6BD7FC68F1177742F181210ECB68124843E07E07F2A71361C7E4C74E96CDB522C84FD2835AF5B7047A830ADE986612D692804502075470FBE44CF4191B995605795E14F76A71F03628DEA6C01A1B17650609F42320902F2B70BF1C95CF37E6E6BF6F8BD65004F9C9E58EFDD5EBE8A957AA2355014EEBFD51D5D30432666B00E6948F800287011C16E070EFA735C6562D7CE983BB9EF8DE30480C5590615C9899249027010A92276D9EB5E208509015B7325E384F0214244FDA3C6BC511A0202B6E65BC709E0428489EB479D68A23404156DCCA78E13C0950903C69F3AC15478082ACB895F1C27912A02079D2E6592B8E000559712BE385F324F07F7090906EB8FB30F20000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (52, 4, 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001FB849444154785EED9D7D9414E595FFBFB77A66044523AE24FA738D31A2BF2C4A572346C4F8965588C1C440B2B0D2D518D08DAE0A5D3D1835C6CD719263A2A242770331F24B224257A3B0AEE6B8495492F50D717D41BA1AC2C668587F498C468849D6A830335D774F0D335964E9AAA7DEBA6A669E3A87C31F7DEF7DEEFD3EF5997A7B5E08F2900A48059A2A40521BA98054A0B9021210797648051C149080C8D3432A200191E78054C09F02F20AE24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C149080B4B8A3BBBAA01CF9DB89237A76BD33B21B078C80951A99A2DE110A52237AB831921ADCDB41A9F72C6EECEA3D20B5AB03DDBBBAD1B1EB50FC71D7BC95AFEE6A71BAC3BE39094804A7C0B7B3E34737526DC7352CEB38101D47CCC711F17116D358028E0AD02483683B2CDE4E84ED0CDA4EA0ED0D6A6C479BB2BD7365ED8F01624BD7FD28200109785A2C999B3934D520D56A582713E1340626137074C0B03EDDE95700FF3B819E81429B0FD8A5D42E5FB7E94F3E8349370012108FA7C16D73D21F1C61D1D4067006012A80D33C8668993901CCC0B3006A0C3CAD74288FE4EFDEBCA365090C81862420029D589C33EEC3C46D53C1CAA7004C05F81001B7249AFC17111E61F0A36DBDD62357DDBBF5D7494C32493949409AF4C692ECF88F92A24C23463F14E84852C785904B376C582C3CDA06E5A1F9D5CDFF3F8498432E840464AF2EBDEBB3130FDC7548F77440F91C80E9C09083A2D909FC67006B99B1B650351F1972677980822420004A59F5934C984EE0E9007D38809E83DE9580A72DE6B560EBBEC29AADBF1BF405052C60580352D6D44B18B80CC0A4803A0E45F79D00AF4D11BE37BF527F7128162852D3B004A49CCD6816F115047C4244A48036F6B7891D04BC09C20E30EF00634783941D0AF0261376B0851DDCC33B0E1ADDF6E6BBDD8D83946E8C49311DCEA9C698868531201A436CFF8F31043ADC626B0C118D0160FF3B30607EAEEE04DCD5205ED1390C411956801473E92F10D31500CE753D2BFC1974037801C006069E1AD9DDF654D4DF216ECF4E38A68DAC338971260893018CF797BAB397FDCAD80256F0300365580052D2D2E702D409E082904F9ED7417881192FB0C51B0E3CB8FDA9CB576CEA09B90D4FE16E9F3DF1F076A5F74C309D4EC4A730F0710007790AE26C6C7F5B59A1907267BEB2D90C316E22430D694016CF3CF130A5A3EDAB045C1D86FA04D8AF421F63D00BC4FC7CBE6A3E1746DC28632C9E397964AAE39DD319F471229C428C0B181811B44D06DE06F0AD8261DE12345692FD872C20F6730688AF67E0C4C01DC058CFE0FB768FD8BDF6BAEFBF649F1883F6589E3B796CAFD5980DC24500C6052F849E045937EB95FAC3C163252FC29003A4AC4D18C76C7D15042D90DC8C1DA4E0BE5EF0DA8595FA53816225D0D91E553CFAE5CC4520BE088CCF064D9180F2AEEE9E9BAF5DB7ED8DA0B192E43FA4002967D35730E826100EF32D326103186B3B14BEEF8AD5F5377DC719448E652D7D1AB3B20716E04301527F9988BE9EAFD48C003112E53A2400B9EBB2891FD8F56EEF2270DF370D3FC79F41B88F186BF386F9A89F0043C1A73C6FC2186BF79EDB2F02D96FC47C1D0CDC5430CCAFF9724E98D3A00764492E738EC2BC087BDED6F83916A558F9B61C8BF47EE996E6D2175AC042309DED475480FFB991A2C2C255E66BFEFC93E135A8012966D54E22DC0AA0DDBB9CF4030BB8ADD3A83DEDDD77F8781473EA7C622C0470AC8FAAB7025CD08DFA4F7DF826C2655002B27CE6B8518DF68EE54C7CB10F155F226051DE30BFEFC37758BA2C9F3BEE889E9EB68504B241497914A1C7FE06A51BB5E51EFD12613EE800296533C713E11E06FBB9475ED463B5DDF6E5359B762642FD41964439AB9ECA0A3AC17DAF883D1D0C2E168CBAFDB176501D830A90F2EC09675B8AB596800F7A5359DE4E79D3CBD9BA7FC88E7D3539DD5B5CFE816ED4ED690483E61834802CC9A5672B4C558FCACADB298F827931EF7F06B441F96B613FA27A3759A75FB3BAFE8EB04F8C86830290524E5D08C61D9E7462FA6E0FA7AE97B7539E54F36C6CDFF232782951DFCC4BD1E36D6A6B9B90BF67D32F451DE2B24B3C20A56CFA461075791388AED38D9AFDEA571E2D5060CF5779B50CE02A2FCDB185330B6BCC0D5E7C5A6D9B68404AB94C17986FF4220A31BE90AF9AFFE2C547DA86A340FF2DD7622FD108CA897963F3362F3EADB44D2C20DEE1A05FB1D5FBD9C29AADF5560A28DB7ABF02C55CFA4262FA81175D920C492201F10C07637DA3E7C0CF2D5CF7CC7B5E3A46DA46A340DF805158FF0EE060C11698A09C94C42B49E200F10A073196E5ABE602C18E90662D52A0FCE9B107F06107D9A314260A36F91B82F2A9A4419228404A5AE68B00AF1414D45E367041A16A2E13B59776AD57A0A865AA049E2DD232033F53A0CC4A12248901E48EDC04B58DAD9A8890B60D5B34B5B0A6B65ED45EDAC5A78097BB0266FCDBC8516DE7C73D757940AD440072E79CF407BB2DE5B7000B8DF321E05239962ABE13DE4FCB252DBD12A02F8AF9F2B775A3EEE995B1585CEF568900A494551F05618A60FA8B74C3BC4ED0569A254881B2A63EC6C0398229E575C35C2A681B9959EC801435F53B045C2E522103FF5230CC2F88D84A9B642A50D2547BA10B91B93B16139D5FA8C47B1B1D2B201EBF92FF5437CCF392D9ED322B2F0A943575ABE0621ADBDA1A8DF3E35C853E3640FA67023E26222C33BF50A8D645FEEA88849336312B60EFC0D503E545103EE2964ADC770DB101E2E17EF4E51EABED7439E8D0ED541A5CBF972F5627580D3C2C32758189AF2D54EAB7C551612C802CC9A6BB1422D731560CBC494433F44A6D631CE2C836A355A0ACA95319B81FC028A79618E866D0DFC6313DBAE58008DF5A11762B6CCD58606CF971B4DD24A3C7A9C0D25C66BAC56C0F2E753C1719785C37CCBFB5D7086E65BE2D0744F8D68A70895E31EF6EA518B2AD7814286AEAD504DCEED63A317F2B5FADDFE06617E6EF2D0544F4D68A406BF2462D1B66A13256B215286BEAC30CF7495744F4997CA5F6C35655D33240966AE3C75B50EC6709C7FB4D003B09CAD9491A8FD3AACE18CEED2CCEA5CF4C59F404C875E7E54D47769F3069D6BA758D56E8D532404A5A6625C0AE430D08D499376AC556142FDB489602A5ACFA0D10DC5764242EE8957AA915D9B70410E14934C43FD22BF5B0F7F068858EB28D1014E89A39AE637447FB136E7BCF13F08A92DA7DDAFC553FFF7D08CD3A86680920252DF304C067B914D36359CAD99D6B363F1375D1327E721528E7321730F3BFBA66C8DCA557EB5F77B50B68103920A55C5A0793EB2D130137E60DF31B01EB91EE434081522E5304B3EE540A033B99AD499DD52DDBA32C39524016CD1C77444747FB73041CED52ECD34F779B67AF5B87963C784529A88C1D5C81F2CC0963B8A3F104407FE372FFB344AF98F6BA5C911D910252CEA9D731C37D8B2EE24F0FD51D8A22EBB9211EB8A465B200BBED33D243294CCAAF3237472547648074CDFDC888D13D1FB013FF9863F28CC57AD50C650FC1A8449271E351A0ACA9773330D7F1EE83B1AC10E19A04910152CEA99733E33B2ED2BED5DB6864AEBE77EBAFE3E902D96A921528E532A783D96D7B8AB7A9AD31217FCFD64856698C0C9092A6DA6FA34E73BE7A5049AFD60A49EE24995BBC0A9434D51EA735C3E51936B21DAD2201A4944D5F04A235AED2B2758A5EDDB2C9D54E1A0C5B05FA07333EE0240001BFEEB6DA4E8E624A44348068AA3D02F77CE7A2E478AB617BD67B2C5CE46E84812F170CD3DB02E70279840E88E07D232C58D33AE55076812E9226A59C7A191877B95C45B6BCF5DAE893BB1E7FBC374CC5C20744536F06F015C724091BF48A79A6D74216CF3CF1B08E916D87F734684C0A076CC91BCFFE97D718D2BEF50A94B5498734B07B7C7B8A7774BFD7BB73E1BA9FBDE5258BC533278F4C75BCFB0BF77D4848D38D9AD73D645C4E552F990AD88A4CC827A679F96AADE90A8A4BB2990C2998A2304FB38031041C0ED0E1FBAE9B45C00F01E55A39F257A063623059365B3DB191E245609AF6FEE6A901F04EFB6BB802EC60C243C4CAC34EFD28B6F81CDDA31B35C7D7C25E6508F50AB2549BF0690BD68F5C9278F50FC79BC77575C11AB02BCE99F861A5D1389389CFE87F76719DCCBF771B1D0A7FE88AD5F537BD162FEDA353A038FBA40F91927AC3630BDBC07898157E82DB94273B57D6FE38E0BF2C3BE1980659AF3AC7E337462B187B7188BB57850A484953EF04F08F8EF78A8CAFE5ABE64DB64DFF9E8373C9E56390ABC88CFBF5AAF977AE76D2A0650A1435F57E023EEFBB41C21BB0A8C2DCBB7A604B8B92A67E0FC0252EE757A8FBC3840688BD35736F47FBCF011CE55040AF456D1F4E9175025B963D18CDF1FDB6A8B84478235F318F14B59776D12B50D4D4DF89AC58229409E35E065692426FBB7D3824E0AEBC613AFE91166AB3DF283440CAB9F46C76D964D34E9E81B100CEF592A488AD6E98A1D522D29EB47156A0A4A9512CAE60EF3962BF9899EAD0FAAB47769F3036AC1987A19D542297BF284F2A094894EA7A8F1D11206289305DA0576B6ECFC242B1C204E43F5C07260AA5E4CF4802E24FB7A8BCE20524BC01B0A100D2BFE5D6CFA2125B24AE044444A5D6D9C40A08B05137CC4F84516D3880888DDCF59A6F03A0A701DE48C475B7E71B09885779A3B577078434304E25C2A90C9C2ABA378C60D63CC26AFBE0E56B36ED14B46F6A160A20252D6D0014781D2B065E03B09E40EB09D69379A3FE1B3B7391D5182520414F8570FDDD00214B3927BF66B3BD4003F67CE3E04F30D8DE23660A39BF09154AD4B26846E79ADA8342C60E462101A2DA1F708EF19D0CE17BCC785039EC9DF5F9A5AFECDE378E04C4B7B2B1397A0164EF24CB0BC61E60BD75D014224C07E352DF0510DDAE576AD7F8F6EF770C0CC8D239E9632D8BFC4D9C673C04E2926ED47FEA548804246837B7DEDF2F207B675AD2D2E7824807E3B33E2A08E5392430202227EFBEC531F0AC425CCA57EAEE7346E42D968F73237E97300019A8A2FF1B9BFD61799287CAF8C8EE13DA837E0F890310CF7B0C8A40289F413C9C3A2D300D139081BB9DA296BE9540C2B74D7B3FE7F82D393020254DB517F9125B0D9179B65EADDFEB3559098857C5E2B78F0090BEA296E4D2B31597111B03D5DBA3BDF386F999206A0402A49455BF0682EB626F04FCC9229E54A8D45FF293AC04C48F6AF1FA4405885DD5D2D9E33F6629CAB3000E71AD32E00A8CBE0129E6325388F951D70443F86823011150396126510232506A319BDE484493DD4A57A04C5B606CF6B511932F40EC19628C5D3F71DBCE97809FE50DF324B702DC7E9780B82994BCDF5B01885D754953ED111CE35C14307BACB6F3FC2CEAE00B109165EA6D3852ED3DE75DB5729BD74933FFAB560948F20070CBA855802CC94D3C52E15EFB8FB5232404FE7F79A37E995BDEFBFEEE19906F67C77FB48752CF01FC570E8DBDC716A616D6981BBC26B43F7B0948182AB63646AB00B1AB2ACE51CF502CAC6760845395C4CA947C75B30D93F0E119905256BD0304E7058343DEE0440222DC9F89316C252076D14BB44C41012F7112C09E745530CC795E44F20448FF366ACFC199D4D5BA615EEC2509375B09889B42C9FBBDD580F43F8FAC0230C7418D1EABB7A176DEB7D59E9A217478024468CE397872DEA8DB33BF423B2420A149D9B2407100B264F6F8C98AD2B70F66D383809BF286E9BECD5B7F046140CAF3268CE16ECB5E9BE85087D6EFD52BE6ECB07B410212B6A2D1C78B0310BBAAB2A6DAF3D7FFBE69858C57778DD895BEEEFB2FBD2DA2823020A59C3A0F8CEF3B068D689F0F0988485726CB262E409668E33FAD40719B6E7B856E986E3B0FF4092A0C485953EF67E7655C42193DB9BF6E968024EBE417C9262E40ECDC8A5A7A23A1F90744223C98AF98422BEA0801B2646EE6234A0FDBB757EDCDC461E0FA8261BAEF2625A2EE3E3612101FA2C5EC122720252D7D3D40DF6A26813DF4A9B7FBC02317AE7BE63D3799840029E7D4F9CC58EA14AC61E1A4856BCC48E6A54B40DCBA3179BFC70AC89CF449B0688BE3C3BAC217E657D71F72534E08905256AD80A0393CF8ACD7ABA6D35A456E7938FE2E0109245F2CCE710262175CD2D2EB013ACFA1F8A5BA61E6DDC41102C475416A42A4BB8D4A40DCBA3179BFC70D48514B2F2150D3DDCB44C709BA02626F3990EA68FBBDE3E50AB8346F98CE6FB802F4A10424807831B9C60DC8D26CFA528BE8BBCEE72D1F3DB03088C3F38AB3827DF382418EE35758E1D30AABEBF6F8FC480E094824B2461A346E40CA5AFA3406D9FB64363D44367172BD821435F56A026E776AA85BE151D784B8E4FCBE6D4940223D9723091E3720FD8BA93B7F0C645CAC57CDD52E7747CEFA1473EA2DC4B8CEC1EA1DDD304745A2727F50094894EA46133B6E40ECAA4A39F51D300E6C5A21E16ABD622E0E044849539701B8CA21C8EBBA61FE9F6864DE13550212A5BAD1C44E04209AFA3A80239A574837EB46EDAB8100296BEADDECBCC1CD4BBA617E2C1A99252051EA1A65EC440092555F02E184A675327F57AFD6BF14089092965907B0D3EE4DCFEB86796A9462CB2B4894EA46133B098014B3E9E789E894661512E3C17CD579C889EB437AC965CF73029ECA1BE659D1C82CAF2051EA1A65EC240052CAA94F8161EF7BB9DF838047F286797EC02B88FA88CB8E3EA66E989928C596579028D58D26763200C998604E37AF90EFD18DBAE3AEB8AE57906236730F113BCD10DCAE1BE671D1C82CAF2051EA1A65EC4400A2A9F69AD1C736AB9319B716AAE657825E416E05706DD346809D05C31C13A5D8F20A12A5BAD1C44E0620E99D00355F5C84A8A0576AA5408094B54C819D26C31376EB15D3713589A05D200109AA60EBFD9301886A6FA5D1E1F0C7FDA28261DE17089052367D11881C576167AB714461CDD6DF45D50D1290A8948D2E6EDC802C9F3BEE88DE9E76FB3B48D34364716BD767109193334534757EA5B63E2AB9457290ABBB47A5BEBFB8710352D6D4A90CD82F989A1E6DDD3D075FB56EDB9F035D41D6CE9C997ABDE317F6A52AD53410F3357AB5EE385ECB9FCCF2213D886E71FAC60D483197B986981735BF7C505DAFD454378D5CAF2076809296790260A76F1DA1AF85B577E2F20AE2D68DC9FB3D6E404A9A6A0F42CC35070477EB15F31237E5840029E732DF64E6A663561878A56098C7BB35E6F77709885FE5E2F38B19102A6BEA2F1818EBF004325F376ACBDD141202A494CD4C03F10F9D82898CAD774BA6D9EF1210BFCAC5E717272022E72B3126E5ABA6BD4AA8E32104C82D33277E60647BEFCB20387DEF109AE3EB96D0FE7E9780F8512D5E9F5801D1D4328005CD1460E0C582614E14514808903DCF21E9E5005DE9D06864B759121091AE4C964D8C8008DC5EE116DD30AF17514C18109193D4629AD759ADAD1469D88B8D48DBF235AF1745A3B78D0B907236339789EF767C1CB0F8DCCE35F57F13514118103B5859531F63E09C668109783C6F989F1469D88B8D04C48B5AC9B08D0B905236FD3888CE7650C1D3FC254F8014B5CC9504767CF2B72C9AD1B9A6F66098DD24010953CDD6C48A0390A5B9CC748BF901A70A99F1B542D5BC4954054F80F4AFF0FE2280BF6EDA0061C3216DA3A7CC5BF9F82ED124DCEC24206E0A25EFF75603B278E6E4916D1DEFDABB4C7DC2E939B983AD53AFAC6EF983A8629E00E97B58CFA5BF0CA6DB1C1B202AE9955AD345BB44931BB0938078552C7EFB560352D6D412038E2B2512A8336FD48A5ED4F10C48D7CC711D8775B43FC3C0C98E0D092CA9229AA8044454A9E4D8B51290722E7D3133DDE3527DED0FDD3D93BAD66DEBF6A2926740FAAE225AFA8B00B9BFAD629AAE576B3FF092D0FE6C252041156CBD7FAB001179EEE8AB9E70895E311DDF6EED4F255F80EC8144B53766779CCF6BDB8DE86E3BF4F2759BFE14A48B242041D48BC7B715802C999B3954E961D7E70926AC2B54CC597E94F00DC8B2D91326F72AD623041CECD6701BA58EBFAAF2E22B6E76CD7E9780F8552E3EBFA801296533C783FAF6AC713BDEB698CEEAACD66A6E86A15E41EC60452DF32502AF106958619AB5A05A5B2762BBAF8D04C48F6AF1FA44094829A7CE02C37126E0FF54CF5FD58DFACD7ED5F07D051968B094CD1441AC8B24A0806E5EE0B292DDFEE2484044D44D964D54809434D53ED91D175AD84B89B5BA6136DFD05340B2C080EC9950F5D2C32E9B95FC25157B9617B175835EDDB24920BF3E130988A852C9B10B1B905276FC4422E59B0C7C4AA44A2FFB103AC50B0C881DBCAC4D1807586B19385124F93E1BC20A58D60A11502420C2AA26C6302C406C30A0289781719987E27EAE1BE6DF78B06F6A1A0A20BE2111044502124657B7364650407C826117C9BA612A61551B1A208120D953CD034CFCE0C11DBB1FB8749F4DDE2520617577EBE2F801A4AC8D3D0474E0747B3C1F11A6FBC8F6B7BA611EE5C32FFA2BC8400BBE6EB7DE9FDE6B001E04F3066AB79ECFDFB3F597129030BBBC35B1440159969D704CAFD2388598EC51E03614BE4E70227E215FA97F3CECEA42BD820C24B7744EFA58B6EC072A9E1D30E11E109E8585E74058E8144BCE0709A874C8EE6E8080E87630DBB3FAECC1854D1777134A8BF1905E352F14B2F56814092003399472691D4CDF047090C7BC3C9B4B403C4B16A9832B20A1B51EEC3B875B1A91026237BE6C4E7A52C3EA83E45CB76482FC2E0109A25EF8BE2D00E4658B6996DF2FE4A215470EC84022F6642B057CA5A757C1A2550090807810AB05A6110312D90221FB4AD33240EC866F9B933EA89D952B89D95EFCE12361F69304244C3583C78A1090C8B7DBD8BBFA960232D0B03D33B1B1BB71554AC105CCCDB7C812EE26E65FEAD5BAC32261C291A461480A9434F597003E1A52B8BF8421F0D179A3FE9BB0E3368B170B207B2753CC8E3F4B21FA0C039F01C8DFD74FE62EBD5AFF7AAB4493EDB82B50CA65BAC07CA3BBA5B8050177E50DF31FC53D825BC60EC8DE25F4ADC84D9804F069009D0BC6016E2546B5928A5BBBF27777054AB9F4E360C71546DC83FCC582FF4337EAE33C3884629A2840F6AEE8AECB26B6BFF75EEF246AF0B94C64CF3919458C51201E05D028027ECDCCAFCA2B4728E7416441EC2B09311FC3C0D104FC89817708789709EF82F95D025DC8C078B70408CACCBCB1F99FDDECC2FE3DB180845DA88C972C05FA273C190044BE7EB7ECADD5BE2A49409275DE0C8B6C16CF3CF1B05447FB032E5B6A0C6851B3DAE9939D2B6B7F8C431C09481CAA0FF336CB9AFAB0E0BC8E7798AD6985EA9627E3924C021297F2C3B4DD92967E10A0CF0995EF732512A1D88246121041A1A45970054A39750D18178945E26FEA46FD9FC46CA3B3928044A7AD8CBC9702652DBD82415F12128570AF5E31838E04176ACACD4802E2A690FC3DB002454DFD0A01A22B8B3C3FC26A9B76F99A4D3B03371C420009480822CA10CD15F0B4440FE32D4EF1B4C2EAFAB349D1540292949E18827994B5F4DF3148782DB4B83E063A492F0119822766124A2A66D55B88709D682E4984C3CE5D0222DA83D24E4881AE73CE691B7DD45B3F165D276DCF4918CF301291822420222A491B21059664331985F83100870A39241C0E790511ED4569E7AA403997D198B9E26AB8974192AF1C0369CA2B88971E95B6FB55C0E37AB97D3188F8CA7CA57E67D225958024BD87129CDF1D7FAF9ED0D6863BD037D94DFC20E0C6BC617E43DC233E4B09487CDA0FEA964B9A3A03E883E3582F85107866DEA8B77C5E87971CF7B69580F855CEC1EFE6ECF8D1235234010D9C1541F8FF1D92F1240E505E6CC590F0522E733A31E719F0B4AD0003AF2B50CECB1B9BB7B54493901A91808424A41DA69CCDCCB5605D464493430CEB25D4468056E846CD6D434B2F31FB6C8BB9F4FF25B67791257B451A8F07FF4437EA533C3A25C25C0212523794B4F47A2FEFFE436AB64998F04EC8BB664F3C7C17F5DA578C3C113EE0356F06CA05C314DA60C96BEC56D84B404250B9A4A9FF19F63A5F21A4F5AA6E989E9E0FF66EB3AB0BCAE857D20B98294F3E96EFE99B7FCEB856AF9A425BF485506F2421242001652D69996B01BE35609888DCE93ADDA82DF21ABCA8A939827D3B25345F7C7FE11F6D28CA0D0B576F7EC16BDB49B3978004E891622E3385981F0D10227257626B4ABEBAE5276E0D75CD1CD731BABDEDF320FAA2C8F6DECDE231F08D826186BA1E965BEE51FE2E0109A06E495317D8CFE60142B4C095E6EB466D79B3868AB3D533883003F63F8FAF6CDF1793B1D922EB864E63CB8F5B5054CB9A90800490BA98559712617E801091BBEEEF21F9CE8BD5A3BAADBED7B433C0382370124C77B6A371C395D52D7F081C2B61012420013AA4A4A9F65FCBF39B85B0577D0C105ED89581739A1A13FF48AFD42FB07F5F92553F9F22CCB280191474D39A3D0D9ACCBCB850ADAF124E7690194A40027498DBD29A16F3D73BABF5AE004DB8BA0AAC81FB18339E23C2AC40B750EFCF643B08CB8FDCDDB36CD6BA6DDDAE490E6203094880CE1B248004A8F0FDAE0CEC24E6653DDCBEFCCB0999331E5A714D02494002283C6C0021EC8685E54A8A972D585DB7BFF90C9B430212A0AB870120EF025845A47C275FD96C06906AD0BA4A400274DDD005847FC5A055C4B44AAFD65E0E20D1A077958004E8C2A10608032F12F1AA768B570DC557B67EBA5A02E247B57E9F2104C8A316D3AACE6ACDDE8E401E7B29200109703A0C6240DE03B011E09F361AA9F50BEF1DFC63A60274A3A3AB042480B283E243E1FFD4F72AC01B0165636F2FAFBFFA3EF317014A1F36AE1290005D3D18869A80713F11DF9B6AEFDD70D5CA6D6F04287758BA4A400274FB6018ACA830FFC3826AFD7B01CA1CD6AE129000DD9FFCE1EEFCFB4637A90BD799AF05287358BB4A4002767F92274C31E3D642D5FC4AC01287B5BB042484EE4FE4945BC2437AC5BC3084F2867508094848DD9FA8451B18EB1B6D98B77095BCB50ADABD1290A00AEEE51FFFB23FF42B66BEAD5035978558D6B00E250189A0FB07168E531A38D36B78CBE396140AC004DA6271E315ABF7E09717AE7BC6FE08288F901490808424A40C33341590800CCD7E955585A480042424216598A1A980046468F6ABAC2A24052420210929C30C4D05242043B35F6555212920010949481966682A2001199AFD2AAB0A490109484842CA3043530109C8D0EC575955480A484042125286199A0A48408666BFCAAA4252E0BF01537E0F8C345B69120000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (53, 4, '3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000011A249444154785EED9D7B9025575DC77FA707115FBC7C20220FE565DC6C774FC000F2C826A2F24EC09D49A6BB27A080F2C8CEEC04F0C56377799BC0CEED9EE5FD4AD8B9B371B72CB5B4A4D0D24428A580D29D996543298525149496965A52505090E91FD57D6720339999DBDDE777BACFB9F7BBFF6CA5F69CDFF99DEFEF7CF2EDD3F7DC731535F8B39884873CE6DB1B7445177715B87DBEBF7695BBE937CB5C35E906409AA8E67C1F0052B58400A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5032055CB0940AA2A3552ED0048D5720290AA4A8D543B0052B59C00A4AA5223D50E80542D2700A9AAD448B5D306A4178553E4E5F9D1E5F53F7145191C3571A552DDE7A90548164F1E66CACF11514E4487E7FB6B7FDAFD9486670040866B841603051A0392C5FE6122759689B6D6DB5D9E5253479657FFCC76715B072457EA4ADB45417EBB2BB0B0BC7A475D6D0A3898D459FA3E1C5B21BE439C4FCDAF5CF8F3BA31DB6CDF3A20F3FDB54663B6290AC69251A097F8BFA172758ED4F79C635B6026FAB6E7F1E1B9D3EB7F2133A27C94468B5567930E40E48B6863C4120E2E9DC31B92DFB79868EA687FED2F6D9C0700B1B12A8EE79445C10B5851B1211F06C7D64CBF499E3A3C7F7AF5AF6C9B3A00B1AD228EE7B30947E11C1335A7F28D9CF2A985FE858FD5EC67B43900312AEF78054FE3E0F944A573D485634BA8AF7B4C878FACAC7DDC16E500882D95703C8F4D380AE7B897E654BEA688A6E6FA6B7FAD1947A43B00119171BC8308C2510AC944FF4F4A4D1D5D5EFD9BAE9505205D57C0F1F19792F09A8D9CCF29A5ED1CDB945044FFC7C453F3FDF5BFED522200D2A5FA8E8FBD38135EE3795C3C56FD80A1A9FCAFE7F1D491D3EB7F6728FED0B00064A84468B09B0269145E4D8A8B0DB929383687E5FF215653F32B6B9DDCC30640B0FE6B2BB00947E11CF7AEDDB9490745FFAD94373577FAFCDF37E9AED30780E8A837867DD3E8E0D5A4BCF6E0D8F211A2FF2ACE6E1D5DB9F089366507206DAAEDF858BDC47F1EB13AA7DA728E9D7A29FA4F453C3DB7BCFEC9B6A404206D29EDF838051CAA3895CBF4831D4FE53F3C525347FAABFFD0461E00A40D951D1F239BF59FCB1BE5A9DCAEE1D852F2ABA4D4F4FCF2EA3F9A9616809856D8F1F8D98CFF5CF2CA2F3BDDC7B2A97C25CFF3E98533173E65322F0062525DC7631770B0571E59178143115D64628F485D22238DFAF284974FDF707AFDD332F1EE1905809852D6F1B8BD38788E222AE0F82189A914701079D35E9EAB0DAFF8FC440A12FA92629A9E5B59FB8C449EF77C2FD0202ABE30D5403487BA988263AE7FFECE42865333C101514898FE9D959A3EDA5FFDACB4CC701069451D8F9725E1B399CB4FC8459D630B8E2D79C42121FA37E27C7A7EE5C23F4996008048AAE978AC4D388AC7AA1F9698CAD663D54E388C41C2FCC5DCA3E985E5F57F96C8BF880140A494743CCE62123EDBE3F2E0612B707C0F9217060736EE12DD937C416DD0B573B7AD9D972809009150D1F11869143E8B5409C78F484C659873EC1C239DF52FA5BC782120B47167FA57E579D373CBE7D774E70340741574BC7FD7706CC9270E09D1BF70BE317DF4CCE7D6754A044074D473BCEF523CF9CC0DCA8BB3559D3887712721FEFC06F1B537F62F5C685A2A00D25439C7FB2DC6079FE951792AF74725A652F7B16AAF310D38C99D13394DDF7066ED629379029026AA39DE274DFC6714A7726D83C3D4E316135DF4C89BDEEB6DDA7EE504208E2FF6BAE96FC25138C78FD5EDBB5B7B29E7B87BEC34098F13F33189FCCA184A9D985F5E3DDE241E0069A29AA37D0047FDC20190FA9A39D9A31705BFAE5471F090EF2B310113CED18B83138AE80D12F9E93AC7560E8D00594AC2433973A32FD1E3F26AB1F2570E3480A33C78682D1C591C9C60CBE0289FCE2AAB7CB78600A4896ADDF4C9E2E0D778701DA8B570A451F04652F47A318534F61C3B7300206255B12F50010711155F76BA9F4476261EAB6C86030E22B16A2C8D51C091139D5516C3D18B833729A2D7894928E81CD8838855C5BE40BD24FC55353878787F89EC4C384716076F62CBE1808348AC1ECB62B800471AFB6F2652AF1593CE8073C041C4AA634FA02C9A7C3AABF2A796AD750E97E08083D8B3B6B533D984A378AC7A8076B0C1EBCDF23BE44D8E67EC357E2FF2DFA294FA4389FCCA18069D030E2256A5EE032D46079FEE0DAE03B5168E2C09DFC2CC4EC10107E97E6D6B6790C6FEAFD0E077C81FA81DCC9073A471F85622FE0389FCDA720E2D07C1AD2662A5D60A0438B4E4ABD4B9D1078500A492B6461B2DCDFA576D6CA8E2979D2C768EE06D44F4FB6242B4B0E7D8992B0011AB5E7B811667FDABBCBCD873F08F4B8C6A62439EC6EEC3D1780F0207915896CD62A45170E5E0979D94B570F4A2E0ED4AD1EF359BE12EBD3A700EEC41C4AAD75EA0011CE5A9DC9F9018D58473F492E0ED8A47030E3888C42A6B29460107ABF26C95B570A471F04744F4BB629274E81C7010B12A9A0F547EBD80B8F8F19A9F9418CD84738C221C701089D5663846B9DFCBF92C297BE1E8C5FE4D8AD46BC4A4B0C039E02062D53417289B9DBC8237F2E2979DAC758E2CF66FE21185030E626E6D6B47CE6626AF202F2FBEECF453DAC14C7D421E853793E2574BE457C4C8953AB1D0F0F611A91C76C6C1E720A694D5885BC0917B79B121B7178E24BC9978B4E18083682C62535D7BD1C1A7A9C1C1C307498C616243DE8B837728A25749E4573A07AB130B2BCDEEAD92CA61AF387010D30AD788EF021C591CBC8345E1E0130B2BEB8D2E75AB216DE3A600A4B174B21DB3C47F2A0FAE03B5D639D228782729BA516CE6CCC7E757D64F88C5331008801810B56EC84D388AC7AA9FAEDB77B7F6261EABC6110EEC412456A3668C9389FFD4092EBFCF013834B534D11D0E6242D58A317B33C15394579EAD7A70C52EFB3633E21C497092981624F22B6338F05875F7B90210B1CAD70B0438EAE9D5556B00D281F24B71F8E4F26C15D1CF480C6FC2397AB1BFA8481D95C8CF45E7D89A3700115B01D5022DC6E1933DCBE1C8627F910147595000526D5D8BB44A93F097898B2F3BD9EB1C6914F648F1BCC8841DDC73EC9C3700115B09FB07DA84A378AC7A88C490261EABD224EC11030E6CD22556688D18051CCC5C9CADB2168E5E1CA48A68AEC6B4F66FEAD8DBAABD260307115B11BB073A3533F9A40D2F2F9CE367258632E11C591CA40C38762D0F009158B57BC4589C39F824CF2B0F1E5A0B471A0719111D119361449C036FB1C456C4EE81B2D87F225379B60A7018D6DA6478388801750B388AEB4099E8A112E14D3C56F5A2604929BA4122BF32C68839071C446C656C0F54C091932A36E4D6C29125C11233E0A8B204E0205554AAD8A637EB3F410D6E3C7C58C52EFB3633E11C691C9C22A2574AE437CACE0107115B21834003388A83870A70086BDB6538388880FA59145C5EDC78C8440F170867E4C76BD2D87F17917A85447EE3E01C7010A19552C051DC784856C311BE8B889D83238DFC634DCB24F54D453848D30A10D1C928B87CC27638A2F0DDA4F8E51AD3DCDEB5C5B755591CDCCE44876AE72E982300A9ADFEE69E230E7F490D4EE53EA261886DDD8C6CC893F0DDC46EC25188034024565607317A2EC01107EF21A29789C923F87FE5AA390190AA4A59D46E6976F2F1F9E03A507B9D6304E0808358B4E8ABA652C29197070F7FAE6A9FFDDA9978ACEAC5C17B15D1EF48E4D7F5DB2A38885815CD073A79DDA58F9F9898B01A8E2C0EDECB2302071CC4FC9A161B218D0E3E8E06D781FEBC445013CE9146C1FB48D16F4BE4D7B5736CCD010E22564D73819C802309DE473C5A70C041CCAD69B1C8A712FFB20DF2CE12F32325829A708E5EECBF5F917AA9447EB638071C44AC9AE6022D26FE659EE57064B1FF7E1E5138E020E6D6B676E4ECFA6092EFE273A494B5CE9146FE0748A997684F762B40079F730CCB1D7B90610A75F0EFD975C1244D94070F1F2531BC89C7AA340A3F408A471A0E3888C4EA138E51C0914F943FB56C2D1CBD24F8A0627AB1D8D42D740EEC41C4AA2B1768310A434F9567AB1E2D11D5887324C107694CE0808348AC42A1184EC011071F22A2DF129AB213DF21C71E44ACDACD0365C964C09C17B78FD8EB1C6308071CA4F99A16EB59C2519CAD52F41889A0461EABA2E0C3A4E83725F2B3ED738E617382830C53C8E0BFBF33990CEE05380C2AAC1F1A80E86BD828426FE6325F791BC586FCB18D02ECE864C2397A71F01145F42289FC5C730EBCC512AB7AFD40BD994B7DE595A77201477DF95AED010769556EA2A5F8E04126AFF810F017248636E11C591C7C84C7DC39E02012ABB3668C028EBC385B65311C69ECDF42A45E58736A7B37B7F843C02A738483545149A04D3AEB5F4A797991B4B5CE91C6E12D440C38EE566F0022B0F8878518C051DE7878C9B0B655FEDDC463552F0A6F558AAFAF327EA5368E3B071EB12A5559BF910B706449782B33E0D8ADDA70107D06F68C706A2638B0E195371EFEA2C430269C238D838F12D1AC447EAEBECADD6FEE00446C656C0F747226383001380CA9DB5E58006248EB340E2E5AEE1CA78928119BFE88EC3976EA0140C456C8F640691CB04468438F5580A36271004845A1EA369300C4081C51B04C8AE2BAF3D9B3FD883A07DE6289AD90DD03E90262048E245826061C754A0F07A9A3568DB63A8030D1458FBCE9B9FEF93B6B0CB96FD334F6FB442A928A37AA3F98893D0811CDF7D71AFDE4429DC5D51410C0514765F36DE12086346E0A48AED4950BCBAB7748A5D58BC315453C23156F5C9C037B10B11523BB079104248BC315061C5A95868368C9B777E7AE1D248D8233A4E83AB1E98DF8DBAABD740220622B48E6731009074993E00C31E090282D0091507197185D39482F0E6E5344D78A4D6B4C9D037B10B11564CF1E248B83DB18708856160E222AE7F783B5ED20691CFC31114D8B4D67CC9D030E22B692BA7710C061AE98701043DAB6E520BD2438AB98A6C4A601E7D8262500115B59EDBFC5CA92E02C030E43151C84052086E46DEC20CC27AAA4E4293A40A40E57695BA90D9C6357990048A5D553BF515340EA8F24D00370EC29220011585FBB85700610C0B1EF0A0020E30C08E0185A7D003254A2660DAC7710C051A9B000A4924CF51B590D08E0A85C50005259AA7A0DAD050470D42A2400A92557F5C656020238AA1770B32500A92D59B50ED6010238AA156E472B00D248B6E19DAC0204700C2FD81E2D004863E9F6EF680D208043ABC200444BBEBD3B5B0108E0D0AE2E00D19670F7009D030238442ADB141045746CAEBFF64689241ADD51B59884873CE6DB9B2460F3BD584DE6738F3E804344C62208001193727BA0425843A1F70DCBCC77CCAFAC573A11DC457EAE8D09405CAB18F26D550100D2AADC18CC350500886B1543BEAD2A00405A951B83B9A6000071AD62C8B755050048AB726330D7140020AE550CF9B6AA000069556E0CE69A0200C4B58A21DF56150020ADCA8DC15C530080B85631E4DBAA0200A455B931986B0A8C25208A48EC47325D2B7817F9CEF5D7AE6C3AEE62E41F9F50EA8AA6FD75FB31514844F7AF1BC7E9E3EE75278BF65A0AF07C7FCD6B1AA100C453EA58D3FE5DF503205D29EFDEB80044B366AD7F614A335F74AFA70000A9A7D73D5A03104D012DEF0E40340B04403405B4BC3B00D12C1000D114D0F2EE0044B34000445340CBBB0310CD0201104D012DEFAE05481AF9C748A9E396CF71B78DB5BBD7FEB826B6E3F90210CD02C2413405B4BC3B00D12C1000D114D0F2EE5A80E09374220062F90AD74C4F0B10EC410088E6FAB3BEBB162070900E00C999CBAB393D22CE1B8EBFD5BFF87B2B4611CFC47F5B8FC0900475AE422D1D64F3CF309D8DE8A4D48B88E81175633B7D58B18DCBABEB0A8AF6762A3096DF070120762E461BB302203656053959A30000B1A61448C4460500888D55414ED6280040AC290512B15101006263559093350A00106B4A81446C540080D85815E4648D0200C49A5220111B1500203656053959A30000B1A61448C4460500888D55414ED628309680E44A35BE2BD69ACA2191561498603EC64487EA0EE6F469DEBA93457B2850570100525731B41F2B0500C858951B93ADAB0000A9AB18DA8F95020064ACCA8DC9D6550080D4550CEDC74A01003256E5C664EB2A0040EA2A86F663A5000019AB7263B275150020751543FBB15200808C55B931D9BA0A0090BA8AA1FD58290040C6AADC986C5D0500485DC5D07EAC149004E4BB77F64F9BE7E302150000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (54, 4, '2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', 0x89504E470D0A1A0A0000000D49484452000000E1000000C808060000001E108684000000017352474200AECE1CE9000012B249444154785EED9D7D901BF579C7BFCFDE9D21431B0A04069B42C13181F0A23DE31492F0E60442200D2114DCFAB4B2139B89DD012CE9480810C8704C81F06EAD6C9A400B26462BD342784D4B7829F100292F89F1AD6C4809D4A149C040884DC980837DDAA7A3B3CF03C6D83A9D76F7B7DAAF6718FE60F779BECFE7D90F274BBA5D01FF900009C44A4062EDCEE6244002A084BC08482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB9340DB251C9876D0B88FF5EC307E830E4DE8126B7C60618204BA1B519340D2088858AF04D0D5DDA2AF6C40CFEAFECAB2D561CC306609CBD9C9C72B82334470B042270042E1C2D8146B9A42E01500AB21F2B40472E79A4F2C7F646000C158C2B524E1B5D30FD9BBDBB26643643A8003C71280E79240920928F04781DEA9908783F5F8E939B7FB2F8F769E5149E8667BBF04D186788D7F7A46DB8CC7934087131852C58F217279D11BFC79B3B3362DA1EBF47E1BD02B9B2DCCE34820B50404EF40E5F282377859330CB62BE175D33EF391AE71EF2C0430BB99823C8604486084803C2AD0CBF29EFFE0B6986C53C205CEA18706B09E06B023C1920009B44640806BF39EFFAD0F3BFB432574B3998B2132D05A5B9E450224F03E028A1B0B557FEED6A86C55C272D63E5C054F1123099040FB08A8E2BBC5AA7FE99615B72A61C9B15F13608FF6B567251220816102A2DF28546AFFF25E1A1F90B0E4F45605DA4764244002ED272080D683E0C8FE252B9ED8FCF6CD7BDB941D7BB60237B5BF352B9200098C1050E0CEA2E79FF6010917CE3C7CB77AFDDD5F00D897B8488004C225A0C08CA2E757865FA18EB47273F62C286E0EB735AB9300096C22E0AFB7F4C8736FADBDBD59C252D6BE4B045F2522122081680804AA97F4576B03C3125E9F3B6CD290D65F88A635BB9000096C7A19FA40DEF34F1C96B09CB5CF53C11544430224102981B7D6EEEFEF322C61C9B15F106052A4EDD98C0448006AE16829CF987CAC06C152F22001128883809C2725C7CE09706B1CEDD993044840EF694878BE00DF230C12208158080C4AC9C95C2F90336369CFA6244002ABA5ECF4DEA3D0AF90050990402C04EA5276EC650A1C164B7B3625011280B859FB750876270B122081780888EBD81A4F6B762501126810A084BC0E482066029430E605B03D0950425E03241033014A18F302D89E042821AF0112889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113E854097F0D6095425709642D141F878589C3FF063E1A3373B62781F711E814095740E4710478A0501DBC675B3B5E3023B35F00EB9312E8690A9C4E296944DC04122DA1081E51C5C282E7DFD50AC8EB66DA7B59437A9A88751AA0C7B45283E790C058092455421F01DCC2127FD158018C9CEF6633058894DA558F7548A05902C99350E0498FD59F5FB4FCF7CD0ED9EC71A5ECA1C758622D56E0AF9A3D87C791C05809244AC2ED3DFB7BAC3036FF5474327703724ABBEAB10E096C8B40622414E05FF39E3F3DAA75BA8E5D06302FAA7EEC935E02C99050F078A1E21F1DF59A5CC7BE1FC08951F765BF74114882842B030D4EE9AFAE5815F56A16CE3C70B7A1FA0E4FF2391D51934F573FF3250C30BB9DEF828E76BDE5ECE4E3558287467B1E8F27816609182D61E373C07CC53FAED961C23ACECDDA7740B0F919E361F561DD7412305A42007FDBEA07F1ED5C673997E953956A3B6BB216098C1030584279B4E00D1E6BC2AA06A61D346ED7713DCF2A9FE168C23A3A2E83B9128A160B959A6B0AF172CEBE4215E7999287393A8780B1120ED5EBFB7CF3B695BF350575A9CF3E4A2C3C664A1EE6E81C02464A28C0D2BCE77FCE24CC0BA64F9E1074052F9B9489593A838099120AEECE57FC534D435C76ECD714D8C3B45CCC936C02664A08DC92F7FC59A6A1751DFB2900879B968B79924DC05009B594F76AFDA6A12D39BD5581F699968B79924DC04809217249A13238601A5A37D73B00D58B4DCBC53CC92660AA846EA13258340D6D39D7FB43559D695A2EE649360123251491C5F9CAE0D74C43EBE6ECC7A038CAB45CCC936C02464A08C17D858AFF15D3D0BA8EDDF888628269B99827D9048C94508067F39E7F884968AFE99BF2B11E6BA8EDB7D4306946668987809112365048170ECB2FF697C783E5835DCB8E3D5B819B4CC9C31C9D43C0580901BDACE0D52E3205B5EB643C40B2A6E48932C7A65B4BBE2182D715F287287BB7D42BC05F4082DD55654F117CBEA51A119E64B284BF2C78B5832264B1CD56AE93F95F40F631254F243904F7495DFF39BFA4765F24FD42685272EC2F8B600E14278750BE2D250D961010C1BC7CC55FD89649C750A49CB3CF56C582319448E2A937173CFF8C2406DF5AE69293B94A20E79A388FD11202787EC79DBA8F987BE3B2FF8B0BDE0D73A6ECFCA7B7871A5F573B20AE0C31F47D52D6BC3D357FFF8BEFC6D03BB49665C75EA4C0D7436BD06261D325842ABE5BACFA97B638DF984F2B65ED8B44F08F632E94A4028AB985AA7F6392223793757EB6B7D71235E6CDBE91CCC64B08604881538B9EFFE36640B7F398D28CCC1108E45101C6B5B3AEF1B534F854A1BA6299F1395B085872EC3705D8B98553433B25091236867F43D6BCFD9751BE3C1A1898DABDCB0B6BFE27756FC6005AF07C2BB42B2EE6C26E2EB3142A46DC3625493F0987B30AF062DEF3F78F6A87AE633F09E088A8FA99D44783BA5D5CB2B26652A67665719DCC1B80ECD6AE7AEDA893949F841B67152CEF0982E3CEACAE58DB8EE13FAC46D9B1572A7070983D4CAEADC08CA2E7574CCED84AB68533ED4FD4EB78BE9573C33C2759126E24F1AAA835235F5DFE70BBC1949DC90701C1BFA559C04D4C2B05CF9FD16EBE71D773B3996F41E4EAB8736CD93F89128ECC70C5BAF5DD579C7F7B7B3EBE70FBEC5962E19B1470D38B0E433EA36D973065C73E418107DA55AF9D75922C61E3D3FC1A145716BCC1966FCCEB3AF6A9AA383B095F6F6AE7E29BA91548F784FECAB2D5CD1C6BF2311B1F65A037016AE4379E922DE1C8E61B3206F8995AC14F8A95DABDDBBA206E983665E73FF5D4A7AA045345E45828269B7C01C59E4D7520B07A6E4CA28CD74E3F64EF2EABEBDB22383B768EDB08D019127E70C05580AE82CA2A08D640B02F14FB02C3FFEC69F2420CCDF60E14CF43F49750FCCAD08C9B63A9C8BEB2F18DB5C6778F77323D6FA74A683A77E62381CD0428212F0612889900258C79016C4F029490D70009C44C8012C6BC00B627014AC86B800462264009635E00DB930025E43540023113A084312F80ED498012F21A2081980950C29817C0F62440093BEB1A58210A2F80AC0A549FEB5FE23FD759E33537CD0227B39788352900266980A345CC7E929691122AB01EC0224BF53911796D83E82B12E8CB5D6BD7BD1CC57D66E6E7A68CEFD6FAC440756200FDB865C971A63F8D49810B8A9E7F45739769BA8E2A653367885857026AD46D2D46B66096848A352A5864C1BA39EF2D37EAFFE20D31AD60A8F17B697D0239C9B0CBF8AA82E79F675826A3E2B8B9CC8950B9DFA8509BC2182361A07A8974F5DC5CBC75D96F4C04F5DE4CE55CA62F08304F443E6340D6970A9EBF9F01398C8F50CAF6FED0C497A6B14B28C0EB50CB09E39E31615F15E5AC7D91C67D6360D5730BD5DA3561CFDA09F5E73BBD475AD0C74D9B255E0945FFA3FEEE4EA79F73FB13EB4C03D36C1E376BCF81E086668F6FF771027C31EFF90FB6BB6E27D6BB72F6017FBEE3BB3BBE65DA6CF149287249A13238601A9056F294674DDE5DD707AFB772EE58CFD1A0BE6771C9CAD7C65A272DE7BB8EFDDFA63D57242E09070B9EDF51F77629E53207884A63C191FEE9949B314505ADE4D82F083029AA7ECDF48943C2B7D6ADEFDEA75DB72A6C66C8A88E69BC61A32A2DDFF9AD959C0A9C1CC7733A5AC91AF73971BE62D9D6EC914BA8AA5F2B566B8BE35E4858FD5DC7FE3E807F08ABFE96751BEF2AF7576B1DF1B23E6C66E55CEFDFA86AE40F16DADE5C914A98860BA671176F45D0789EE19F6D0F7E9BFEFBDAAE2E7CFAECC5BEF177416BD3BC2D977173F6BD263EB1375209EBD2B5FF3995675E6C9962424E741DFB7B00CE8F2EAEFE53C1AB9D155DBFE4751A7E6C3660E463BF239350805BF29E3F2B79EB1B7DE2EB66DA7B750DA106C1AEA33FBBB5335471B725D685A67DD3A8B569DA77D6757DF6C1DD16AE55E08BEDABDADE4A9149A81A1C5BACAE78B4BDF1CDADE666ED0A044EC409DF04E461085E12E88B7588714F208A824797EA44854E14C824051A5F31FC68147D5BED119584CF173CFFC0564326F1BC522E739AA8DC91C4ECCC1C2D81682454FCA850F54F8F76B4F8BBB959FB0F51BE248D7F62266885402412AA6261B1EACF6B256092CF711DBBF1ADFD13933C03B3874F20120901FD4EC1AB35DE314CD59F92D35B15685FAA86E6B0A32610898481CAACFEEAE02DA34E97F0135C27733D2067267C0CC60F99402412A6F59BFEAE93B914900B43DE21CB279C40241206229FEBAF0C2E4D38AB51C79F9FCD0C5822178FFA449E902A029430C47553C210E17650694A18E232296188703BA834250C7199943044B81D549A1286B84C4A1822DC0E2A4D09435C66CC120E09F01280DF8538A271A5553101C04408BA8D0BF721812861889B8A434255CC932E5DBAE3477A9E9F7BE3B20D218E676CE91BE64CE979679D4EEAAA0F7D2110B950803D8C0D0B801286B89D282554E0D99E7AFDA4B36E5BF9DB10474A5CE9057D871E185856E3B3DA9CA9E12961889B8950C2370B9EBF4B88A324BE74396B2F50C1D9260E420943DC4A54128ACAAC7C0ABF1638DAD5B959FB4108BE30DAF3C23E9E12864838120953FA6B62ADACCDCDF57E16AA3F6BE5DC30CFA18421D28D424255BDB058AD5D1EE2181D53BA3C6FD20EBA66A73F02E83169284A18E236A2905044BE9CAF0CFE7B886374546937673F038551379EA684215E62514898D65F136B756D65C7FE8D027BB77A7E18E751C230A86EAA19858410B9A650193C37C4313AA6F482E99327045DC1CBA60D440943DC482412020F163CDFD8DBF9858877D4A5DD6CEF2910BD7BD427867C02250C1170441202D0CB0A5EEDA21047497CE98169078DDB655CCFAF81E1AFB519F5871286B88EE82404043823EFF93787384EA24BBB39FB31288E327188682454BD24CEE12D40E3E81F0012ED6FD6EB3D01ACABFBBD41E33E0B8B837FA3A7EBF49E05E87CD33E96782F8F48248C6B0129EEBB0AD055007E15287E9F360E5D96B55FE30EDC504C34F1E5E796FBA08469BB4239AF710428A1712B61A0B411A08469DB38E7358E0025346E250C94360294306D1BE7BCC611A084C6AD8481D2468012A66DE39CD7380294D0B8953050DA0850C2B46D9CF31A4780121AB712064A1B014A98B68D735EE3085042E356C2406923D090B0F19BC6C6FD8E55DA16C179534B605D43C25F0098925A041C9C04E225B04ADC9C7D2F1427C79B83DD4920B504FEAB21E10D50CC492D020E4E02311250C195E2663317436420C61C6C4D02A92520963555E6FFFD219FB4BABB9E4B2D050E4E02F11178A5E0F97B49A3BFEBD84F03F8EBF8B2B03309A48F8000B7E43D7FD6B084A56CE63B227259FA3070621288938038056FB03A2CE18219933F1504C1CFE38CC3DE249032028F153CFF98C6CCC3126EFC6968DF2582AFA60C04C725815808A8E8E9C54AED47EF93B09C9D7CBC4AF0502C89D89404D244608B674A6EFE49B8E90D9A5B4D7EB6779AF6C4593B9780881E93AFD41E1B99F07D12969DCCA715F244E78ECFC948205E028D0FE78B15FFFCF7A6789F841B7F1AF65E0EE805F146657712E83C0222B83D5FF1FF6ECBC93E2061E380B2632F52E0EB9D87811391407C0434A8EF595CB2F2B5A624DCF4F7C307009C105F64762681CE211004C167FB97ACD8EA5FF5B6FA937064F4B263FF5481A99D83829390401C04E4A28237F8A15F86D9A6848DB82527739540F838E63876C79E892720A267E62BB5EF6F6B90ED4A382C62CE9E2B8A1F249E08072081A80828D6007A56A15ABB6D7B2D9B9270E3DF117BB3805ECD5B616C0F29FF3B09E0275AD781E26DB5A79A61D1B4848D62F37353C65BC186391069FC1230EF4BD30C611E931A02023C0351375FA92D1ECDD0A39270A4704346041BE65A22DFA08CA3C1CD633B94C0EF1AF2AD7D77A83C70FB73EB473B634B128E34B96EDAC1BB76F7F49CA4D093009C04C1AEA30DC0E349209104861F432E77A815FCE7BA401FB9A0BA626DAB738C49C22D9B961DFB04854C15E878052608305EA11300D9ADD5803C8F046226F02A04AB45E555557D552C595D071EEAAF0C2E6D57AEB64AD8AE50AC430269224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C95260294304DDBE6AC4612A08446AE85A1D2448012A669DB9CD5480294D0C8B530549A0850C2346D9BB31A4980121AB916864A13014A98A66D73562309504223D7C25069224009D3B46DCE6A24014A68E45A182A4D0428619AB6CD598D2440098D5C0B43A58900254CD3B639AB910428A1916B61A83411A08469DA36673592002534722D0C952602FF0F715CF37F1EAD8FFC0000000049454E44AE426082, '1', '2023-09-14 10:21:54', '1', '2023-09-14 10:21:54', b'0'); +INSERT INTO `infra_file_content` VALUES (55, 4, '29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', 0xFFD8FFE000104A46494600010101004800480000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC000110803E802C303012200021101031101FFC4001C0001000105010100000000000000000000000201030405060708FFC4005A1000020103020104090D0D060504020105000102030411051221063141510713223252617192B11416173335545572748193B2D11523343642627391A1A2B3C1D226538283C2C324377584F04394E1F1254427455664A3E2FFC4001B01010002030101000000000000000000000001030204050607FFC4003C110002010204030408060203000105000000010203110412213113415105323371142252618191B1C1153442A1D1F006432324E1F1536282A2D2FFDA000C03010002110311003F00F239CE7BE5DDCB9DFE5321BE7E1BF384FDB65F19943AE6D15DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140015DF3F0DF9C37CFC37E7140019942A4FB52EEE5D3F94FAC11A1ED2BE7F4802C8C69FB6CBE3328567EDB2F8CCA000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032A87B4AF9FD2050F695F3FA4020C69FB6CBE3328567EDB2F8CCA00000090000000000747C8CE4DD0E546A77569717356DD51A1DB633A714DB7BA31C3DDF18E70EF7B137E306A1F22FF7204A35B19394284A517668DC7B12E9BF0BDEFD1C07B12E9BF0B5E7D1C0F42C8C99591E6FF10C57B679EFB12E9BF0B5E7D1C07B12E9BF0B5E7D1C0F42C8C93643D3F15ED9E7BEC4BA6FC2D79F4701EC4BA6FC2D79F4703D0B2322C87E218AF6CF3DF625D37E16BCFA380F625D37E17BDFA381E859191643D3F15ED9E0DCACE4FD1E4EEB7EA0A37156BC3B446A6FA9149E659E1C3C868F6AEB3B3EC9BF8DEFE494BD2CE38BA14E2E3768F5184939D084A5AB68EC791FC88B5E536997177717D716F2A75FB528538C5A6B6A967BAF29D07B12E9BF0B5E7D1C0BFD8ABF17AFBE59FE889DDE4AA5149E8707198CAF4EBCA3195923CF7D8974DF85AF3E8E03D8974DF85AF3E8E07A164648B2357F10C57B679EFB12E9BF0B5E7D1C07B12E9BF0BDE7D1C0F42C8C91643D3F15ED9E7DEC4BA77C2D7BF4701EC4BA77C2D7BF4703D0413643D3F15ED9E7DEC4BA6FC2D79F47029EC4BA6FC2D79F4703D0B2322C87A7E2BDB3CF7D8974DF85AF3E8E03D8974DF85EF7E8E07A0E4648B21F8862BDB3CFBD8974DF85AF3E8E03D8974DF85EF7E8E07A164A649B227D3F15ED9E7DEC4BA6FC2F7BF4702BEC4BA6FC2D79F4703D0723232A23F10C57B679EFB12E9BF0B5E7D1C07B12E9BF0BDE7D1C0F42C8C91643D3F15ED9E7BEC4BA6FC2D79F4701EC4BA6FC2D79F4703D0B2324D90FC4315ED9E7BEC4BA6FC2D79F4701EC4BA6FC2D79F4703D0B2322C87A7E2BDB3CF7D8974DF85AF3E8E057D8974DF85AF3E8E07A0E4648B21F8862BDB3CF7D8974DF85EF7E8E03D8974DF85EF3E8E07A16464590FC4315ED9E7BEC4BA6FC2D79F4701EC4BA6FC2F7BF4703D0B2324D90FC4315ED9E7BEC4BA6FC2F79F4701EC4BA6FC2D79F4703D0B2324590F4FC57B679EFB12E9BF0BDE7D1C07B12E9BF0B5E7D1C0F42C8C8B21E9F8AF6CF3DF625D37E17BCFA380F625D37E16BCFA381E859191643D3F15ED9E7BEC4BA6FC2D79F4701EC4BA6FC2D79F4703D0B2324D90FC4315ED9E7BEC4BA6FC2D79F4701EC4BA6FC2D79F4703D0B2322C87A7E2BDB3CF7D8974DF85AF3E8E03D8974DF85AF3E8E07A16464590F4FC57B679EFB12E9BF0B5E7D1C0AFB12E9BF0B5E7D1C0F41C8C8B21F8862BDB3CF7D8974DF85EF7E8E057D8974DF85AF3E8E07A0E464590FC4313ED9E7BEC4BA6FC2F7BF4701EC4BA6FC2F7BF4703D0B2322C87E218AF6CF3DF624D37E16BDFA381387623D36538C7EEBDEF74D2F6B81DFE49D27F7EA7F197A4869078FC57B67CD32A6A32924DB49C927F3E08B82EB2E4FDB67F1E5E9645F31B3C38743D828A3D234CEC61617FA4D95ECF54BB84AE2DE9D694234E388B94549A59EAC993EC4BA6FC2D79F4703B0E4F3FECBE8FF0021A1FC389B2C9AF64792A98EC4A9B4A7CCF3EF625D3BE16BDFA3814F625D37E17BCFA381E8432459187A7E2BDB3CF7D8974DF85AF3E8E03D8974DF85EF7E8E07A16464590F4FC57B679EFB12E9BF0B5E7D1C07B12E9BF0B5E7D1C0F42C8C93643F10C57B6794F297B1DD9685C9CBBD4E96A3755AA50D9B69CE1149EE9C63C5AE3F9479F1EE3D905FF60B54FF0027F8B03C38C19DCECCAD3AB49CAA3BBBFD900010744000000000000032A87B4AF9FD2050F695F3FA4020C69FB6CBE3328567EDB2F8CCA0000009000000000077BD89FF0018351F917FB903823BCEC50FFB41A87C8BFDC8128D4C77E5E67ACE464A6464CCF2B62B9192991903295C8C94C8C8162B9192991902C78FF64DFC70FF00B5A5FEA38F3B0EC9BF8DFF00F6B4BD2CE3CD98774F5F82FCBC3C91EB1D8ADFF67AFBE59FEDC4EE7270BD8B1FF67AFBE59FEDC4EE72512DD9E6F1EBFECCFCCAE464A6464C4D4B15C8C94C8C8162B9192991902C5723253232058AE464A64640CA57232532322E2C5723253232058AE464A64640B15C8C94C8C8162B9192991902C5723253232058AE464A64640B15C8C94C8C8162B9192991902C5723253232058AE464A64640B15C8C94C8C8162B9192991902C5723253232058AE464A64640B15C8C94C8C8162B9192991902C5724E93FBF53F8CBD25BC93A4FEFD4FE32F4821C743E6E9FB6CFE3CBD2C8BE62B53DB27F19FA5947CC6D9EE91F407279FF0066347F90D1FE1C4D8E4D6F27DFF66747F90D1FE1C4D8E4D5BEA789A8BD77E6572325323241858AE464A64640B15C8C94C8C81639CEC82FFB07AA7F93FC581E1C7B7F6417FD85D4FF00C9FE2C0F103191E87B257FC0FCFEC8000C4EA000000000000006550F695F3FA40A1ED2BE7F480418D3F6D97C6650ACFDB65F199400000120000000000EF3B14FBBFA87C8BFDC81C19DD762AF77F50F917FB90256E6AE37F2F23D6323247254CCF3162B9192990058AE464A0C822C5723253201363C87B25FE377FDAD2FF51C81D8764AFC6EFF00B4A5FCCE3CD987751EB307F978791EADD8B1FF0067EF7E59FEDC4EE3270DD8BBF17EF7E59FE889DC144FBCCF3B8E5FF627E65723250189AB62B9192832058AE464A002C5723253253205896464A64640B15C8C94C802C5723253232058AE464A640162B9192392B902C57232532500B12C8C940058AE4648E4AE40B15C8C940058AE464A640162B91922572058AE464A0C8162B9192990058AE464A64640B15C8C94C802C5723253200B15C8C94C94C8162591929929902C4B24E93FBF53F8CBD25B2749FDFA9FC65E90438E87CE153DB27F19FA5947CC567ED953E3CBD2CA3E6370F6C8F7FE4FBFECCE8FF21A3FC3899F9359A07E2CE91F21A3FC389B2C9A6F73C6D45EBBF32B9192991905762B9192991904D8AE464A0C81639CEC80FF00B0BAA7F93FC581E227B6F2FBF11B53FF002BF8D03C48C19DEECBF05F9FD90001074C000000000000032A87B4AF9FD2050F695F3FA4020C69FB6CBE33284A7DFCBE332200000240000000001DDF62B78D7EFF00E45FEE40E10EEBB167BBFA87C8BFDC812B735B19E048F55DC3711E1D631E3323CE5896E1B88FCE31E303292DC3711C2EB18F181625B86E23C3AC63C6058F24EC92F3CAEFFB5A7E9672275DD923F1B7FEDA9FFA8E44DA87751EA709E043C8F54EC5CF1C9FBDF95FFB713B7DC70FD8C3DC0BDF95FF00A2276D85D66BCFBCCF3F8C5FF627E64B70DC471E318F1989AD625B86E23C3AC63C606525B86E238F18E1D605896E1B88E3C631E303292DC3711C2EB18F181625B86E238F18E1D606525B86E238F18E1D605896E1B88E3C63E702C4B70DC478758F9C0CA4B70DC478758C78C0B12DC3711C2EB18F1819496E1B88F0EB1C3AC0B12DC3711C78C63C605896E1B88E5758E1D606525B86E23C3AC70EB03292DC3711C78CA70CE33C5F3203293DC3711E1D631E302C4B70DC478758E1D605896E1B88E3C630BAC0B12DC3711C78C6575819496E1B88E3C6387581625B86E238F18C78C0CA4B713A52FBF53F8CBD25AE1D64A963B7438FE52F480D687CEB3F6D9FC67E9651F3159FB6CFE33F4B28F98DC3D823DEB93F2FECCE91F22A1FC389B1DC6B3405FD9AD238FF00FA543F8713638F19A8F73C9545EBB25B86E23C3AC63C64185896E1B88F0EB1C3AC0CA4B70DC478758E1D606539DE5FFE236A7FE4FF0016078A1ED5CBDC7AC7D4B8FF0075FC581E2A62CEDF66F84FCFEC800083A2000000000000019543DA57CFE90287B4AF9FD201063CFDB25F19912B3F6D97C665000000480000000003BAEC58B3AF5FFC8BFDC81C29DD762A59D7F50F917FB90251AF8AF0647AA6D1B496D1B49385948ED1B496D1B411623B46D25B46D04E523B46D25B46D0329E43D9256395BFF6D4FD2CE44EBBB252C72BDFC929FA647226D53EEA3D1617C18F91EA5D8B96740BEF967FB713B8DA715D8B937C9FBDF967FB713B7DA6BCFBCCE2E2E3FF003CBCC8ED1B496D1B4C4D6CA4768DA4B68DA06523B46D25B46D03291DA3692DA36827291DA3692DA3681948ED1B496D1B40CA4768DA4B68DA06523B46D25B46D03291DA3692DA3681948ED1B496D1B411948ED1B496D1B413948ED1B496D636822C4768DA4B68DA06523B46D25B46D04E523B46D25B46D03291DA5A95184AE69D47BB724F1DD757FF0065FDA5B9655C525D7097F22637BE81225B46D25B46D208CA4768DA4B68DA09CA4768DA4B68DA08CA4768DA4B68DA09CA4768DA4B6B1B40CA4768DA4B68DA06523B49D28FDFA9FC65E929B49D28FDFA9FC65E90465D0F9C67ED93F8D2F4B28F98954F6DA9F19FA5917CC6E9EA91EF3A0C7FB35A47C8A87F0E26C76981C9F8BF5B3A47C8A87F0E26C769A4F73CC545EBBF323B46D25B46D061948ED1B496D1B413948ED1B496D1B40CA735CBE5FD86D4FF00C9FE2C0F143DB397E9FAC5D53FC9FE2C0F13219D7ECF56A4FCFF00800020DE00000000000000CAA3ED4BE7F48147DA97CFE900831A7EDB2F8CCA159FB6CBE332800000240000000001DE762959E506A3F22FF720706779D89BF18750F917FB9005188F0A47ABE0609E114C224E3E52381827843080CA430304B08AE10194860609E10C20329E3BD92FF1C3FED297F338F3B1EC9BF8E3FF006B4BD3238E3721DD477B0FA528F91EABD8B16793F7BF2CFF006E2775838BEC4F14F93B7EDACFFC67FB713BDDABA8D79C7D66732BD1CD564CC6C0C191B3C451C22FA0C7294F019630305E74974117092E8C91630749A2DE0609F0184418E52181827843080CA430304F08610194860609E10C203290C0C13C21840652181827843080CA430304F0861019486D1827843080CA43051A7C71CFD04F08924B289194B149CE54A32A8A3193E844F694A387462CB9844CB761C4860609E10C231194860609E10C203290C0C13C21840652182C544FD556EBC52F4195846157A4DDF535DB26B765A7E0E3A8B29ABBF9994626560609348AE11598E52181827843080CA430304F08610194860609E10C2032962A3A9170ED708C94A78967A1173052A613A7F1D7A197308C9EC8971218182784308C48CA4304E92FBF53F8CBD23089D14BB753F8CBD22C4653E6BA9ED93F8CFD2CA3E6253F6DA9F1E5E9645F31BC7A43DFB93EBFB31A3FC8287F0E26C706072792F5AFA3FC8287F0E26CB08D27B9E7A71F5990C0C13C2184418E52181827843080CA430304F08610194E5FB20AFEC26A9FE4FF001A07889EE1D9057F60F54FF27F8B03C3C1D3C12B537E600041B8000000000000019547DA97CFE90287B4AF9FD2010634FDB65F19942B3F6C97C665000000480000000003BEEC4AB3CA2D43E45FEE40E04F40EC49F8C5A8FC87FDC802AADE1B3D636FE68C7889E10C224E665218F10C7889E10C203290C7886DFCD27843080CA43012CF413C22E422BBEFD44A328D3BB3C5BB27C76F2C9AFF00FC3A5E991C69DA7652FC74FF00B3A5E991C59B70EEA3AD495A0923D77B12ACF272FF00E5BFEDC4EF769C1F6225FD9CD43E5BFEDC4F40C22997799AB523EB32DED1B4B98184626194B7B46D2E610C0194B6E29F3A2DCA9B8F14B28C8C0C222C632A6998BB7C441E7B6C5743E8322AA508B9AFD46336DBCB7C4CA116CC2145DF52E606DFCD14E4E49E79D7493C22B6ACEC56E9D9D886DFCD18F113C2184418E521B7F3413C218406521B7F3463C44F0861027210C78863C44F0861023290DBF9A31E227843080CA431E209774B87493C22938395392527078EF973C49194C7B5E36B4DF97D2CBD8F1166C62FD4C9B949A6DE23D0B0CC9C232A9A4999386A436FE68DBF9A4F08611818E521B7F346DFCD27C1349BE2F990C22465218F10DBF9A4F0861103290C788C4AFC2FA87CDFB5B33924F98D75C568CAE94E0B2A18C78F0F25D4536CCE30D4CEC7886DFCD250946A414E0F2995C22A7A6E6190863C436FE693C218440CA436FE68C7889F06DA4F8AE74308919486DFCD1B7F349E10C2209CA63D758747F4D1FE65DC788B1791939516AA492724B1D4FACC94B1149BCB4B9FACB1AF55327268471E218F113C2184566394863C44E8AFBF53E1F94BD23089D14BB753F8CBD22E321F33CFDB6A7C797A5917CC4AA7B654F8D2F4B22F98DE3B88FA0B938BFB2DA37C82DFF8713658F1181C9C5FD95D1BE416FF00C389B2C2349EE71651F5990DBF9A36FE693C2184418E5218F10DBF9A4F08610194863C431E227843080CA72DD9097F60B54FF27F8B4CF0D3DD3B21AFEC0EA9FE4FF1A99E160DFC2AB41800106C800000000000006550F695F3FA40A1ED2BE7F480418D53DB25F19FA4A15A9ED92F8CFD25000000480000000003D03B117E316A3F21FF0072079F9E83D8817F68F51F90FF00B90057515E0CF5D1F392DA0C8D3CA47E71C7A0928B93C22EA8A8AE1CFD612B99469662D2A6DF3F024A115D192EE060CAC8B9528A2DED5D45704F0C60932C88F11ECABF8EBFF694BD3238A3B5ECAABFB6BFF694BD3238A3621DD46C4763D83B10AFECDEA1F2DFF6E27A01C0762159E4DEA3F2DFF6E27A128BC944BBCCA64B52180294DD486EC638E304B6B20C7291C02781803290C0C13C0C303298F5D7DE7E7462E0CDAE9F69F9D18B82D86C64A25692EF8BB8234A2FBAF98B9B4A67DE35AA47D66446096D1B4C4C329104B68DA06523818127B5278CF125B45B98C9A5C8FCE090DA06522096D1B40CA470525CD2F2327B4C6BBAEA953DABBF92FD4BAC98C5C9D9050BB2363F82AF8CCC9C183675953976B977B27C1F53361B4CEAC5A9332942CC8825B41598E52D4A3173836B2D670FE626467C2B535D6E5E82E6D25F219488C12DA63DD57ED11DB1EFE5CDE2F188C5C9D9051B962F2BE13A317C5F7CFF00918582586DF1796F9D8DA6FC20A0AC8B942C5DB6B8ED12C3EF25DF2EAF19B2E7595C53E666A36997675F6B54A6F83EF5F53EA2AAD4EFEB231953BEA66825B41A85794B518C5549B4B8BC6593C148AFBF555D5B7D04F692C389104B684B2C8194C3BDE0A978A79329AE2CD75DD7EDD34A1DE4399F5BEB336DABAAF0CBEFE3DF2FE65D38350464E1645C1F392DA0A4C7291C12A3EDD4FE32F490AB38D1839CBA39975B31ACAEE5EAC876C7DCCA6B1F9AF3E832506E2DA25536D687CE153DB6A7C797A5947CC4AA7B654F8F2F4B22F98DC3A68FA1F938BFB2BA2FFD3EDFF8713666BB936BFB29A2FF00D3EDFF00871367B4D139928EAC8E012DA368232902A4B68DA06523F382400CA72BD917F10355FF0027F8F4CF093DE3B22AFF00F8FF0055FF0027F8D4CF07219B5415A2000417000000000000006550F695F3FA40A1ED2BE7F480418D53DB25F19FA4A15A9ED92F8CFD25000000480000000003D0FB102FED1EA5F21FF72079E1E8BD86D27CA6D4FE41FEEC08663257563D7F0364BA8BDC46092AE122318EC5E3E92B82B81827316AD0A6060AE06066053030570303303C47B2BFE3BFFD9D2F4B3873B7ECB1F8F1FF00694BD2CE20DBA7DC45B1D8F63EC42E31E4C6A326F095F7FB513B977127CCA315FAD9E7DD8AEA6CE4D5EC5ACA77CDFF00FEBA6773DB578322B71D5B30D2FA97A15674E385B5AE7C33229D455170E125CE8C1EDABC1912A55976E86232E2D2FD7C089474B90DA33F03057054A7310470125D25570E262D5A8EA3C2E115CC895764A255AA4250D89E5E571E82C0C0C16AD0C89C2518E73D25D586B2B8A31F0493945E57EA31946FAA2A9D3CDAADCBD8182AA2E4949714CAED9F514DD9AEE2D11C119CD43873BEA2EAA726FBAE08C29D65DB27DC4B836BF519C1667A96421ED137272E7E624AA3FCAE28B1DB978321DB978322ECBA5AC5CD45AB198B0D65733182D5BCF7A924B18C7ED2F1AF2F55D8D692B3B02982A5273508B9CDE12E731BB312DD6AB1A149CDF1E88C7C266AA6E53939CDE5BE765DAD5655EA39C970E64BA916B06F528645AEE5D18D8A60CFB3AFBD2A537DD2EF5F5A3070578C718786B8A667359D5896AE6E3057059B7AEABC38F09C7BE5FCCBC73DDE2ECCA5AB162AC65DBE935392CB7C3C88BF82CD678AF438F4BFDA5E7859CF04B8B665293B225EC8B55AAC685373971E851EB66AE729CE4E737993E72756ACABD5736F87E4AF0516F06DD28645AEE5918D8A6060960A60BB31914C06B25703033033ED2BF6C8F6BA8FBB5CCFAD19469D6632524F0D714CDA50ABDBA8A9BE75C25E5469D6865775B154E36D510A706AEAB667278C70F2FD85FC1669FE195975A5FB0BE55393BFC1112DC60C2BCAF8CD183F8CFF009176E6BF6986D8BEEE5CDE25D66B9671945D4617F5999423CC8E094272A735387068A6060DA6EFA32C36D4A70AB0538FCEBA997306AA857742A679E2F849788DA26A51524F29F14CD1AB1707EE2992B32C5DD09D6A29438CA2F38EB306D684EBDC42105F94B2FA964D9D596CA5525D516D7EA30B4D96DD428AF09E3F6E4B294E5C376E46516F2B3E71ABC6B557F9D2FACC8BE62B3F6DA9F1DFA5947CCCD8374FA33934BFB27A27FD3EDFF871367835BC9AFC53D13FE9F6FF00C389B339EDEA73DEECA60A804662014C15033003000CC0E57B23AFFF008FB55FF27F8D4CF053DEFB23FF00CBDD5FFC9FE3533C1094EE6C52D800092D00000000000000CFB5FC1E3F3FA40B5FC1E3F3FA4020C1A9ED92F8CFD250AD4F6C97C67E92800000240000000001E8BD86FF0019B52F907FBB03CE8F46EC35F8CDA9FC83FDD8112D883D9388E25703061720A711C4AE0605C14E23895C0C0B829C4712B818170787F658FC78FF00B3A3E9671076FD963F1D9FC8E97A59C41D0A5DC45B1D8F57EC5DF8B777F2E97F0E99DBE4E1FB16FE2DDE7CB65FC3A677060DEA52F76324A93FBF53F8CBD2449D1F6FA5F197A486F420DAF11C4AE060D3B99166E66E14739C293C330BB6C3AFF74CBBD5FF000EBE32FE66B8BE9ABA17B17BB6C7AFF7595EDB1EBFDD2C02CB0CCCBDDB61D7FBA3B6C3AFF74B205866667DA54DD29422F292CB3278985A7AEEAAF917A4CEC1AF53BC2E16771A79BFBE4BE33F49B8E6797CC8D3CFDB27F19FA4CA8BD590CA64640362E4193699CD4F9BF9993C4C6B45DD54F9BF9993834EABF5D944FBC165B3597371DBE5B57791E65D7E3336E64E16B36B9DF72BE73585D878FEA66505CCA02A0DAB96140540B82B09CA9C94E0F0D1B28DC42547B6F34799AF1F51AC68B89351DB9E1CF8E8C94D48295AE438E62739CAA49CE4F8BFD85C9DC395ACA127DD7059EB4CB381825C53B7B8C9A4CB20938ED7E2E82859720A02A09B8280A817050C8B6AEE9C6A25F958DBE26584B73C1752C2C184ACD598B5F71194A338CD3EE93CE4CC95D4616FDB3F2B9B6FE7187828E1958309414AD7128A642727393937993E7644AB587860B414054137050C9B4B874A6A0DF7127FA998E1F318C9292B321EA6C6F24E16D25E134BF99856B3D977427E0CE32FDA5EB9A8E76D433CF2CB7E55C0B14BDBA1F197A4AA946D0B3222ACAC7CED5162B55F8F2F4B28F98AD5F6DA9F1A5F59947CC6C9B88FA339359F5A7A27FD3EDFF871369C4D672697F64F44FF00A7DBFF000A26CDE173BC1CA93D59CE7BB1C4712DD49CA2D61C5E79FA49C5B9413EB41A695C15E2388C0C11720711C460605C1CB7647CFB1F6ADFE4FF001A99E087BDF647FF0097BABFF93FC6A67821643636296C000665A000000000000019F6BF83C7E7F482B6BF8347E7F480418153DB25F19FA4A15A9ED92F8CFD25000000480000000003D17B0CFE336A7F20FF0076079D1E8DD86BF19B53F907FBB0319F74867B3711C402A311C4710001C4710001C4710003C3FB2CFE3BFF00D9D2F4B3873B8ECB5F8F0FE4747D2CE1CE952EE22D8EC7AC762DFC5BBDF96CBF874CEDB89C4762CFC5ABCF96CBF874CEE7056F72A96EC8F1274B3DBA9FC65E929825497DFA9FC78FA4C5BD0836AE4A31949F32E72DF6FA7D72F349D6F69A8FAA0DFEA35DDBA3E0335E11CC8CB4322EA71AB45429F17BD3EAE061F699F57EF173B747C063B747C065B1BC5590D0B7DAE7D5FBC3B54FA8B9DBA3E031DBA3E0332BB2342DF6B9F57EF0ED53EAFDE2E76E8F80C76E8F80C5D8D0BB68FB44A6EA70524B18E264F6FA7D72F34C1EDD1F018EDD1F0195CA399DD93A19AE6A6B2BBD35B3CEF9795FA4CFA5874E2FAF898335DDCBCAFD2634B4934529DE4C8711C496060D8B9617ECF9EA7CDFCCCA31AD171A9F37F332B069D57EBB289EE635F27EA6FF001235D836F5692AB4A70E96B8797A0D471E39586B8346C61E5EAD8CA0F4181800BEE6630300AA59690B82518E38F492E2018DCC8711C401724A38E56196DC5A782E919AE664A64321818009B9030126DE01282E39EA17055476AC12E2018DCC8A712BC401704650CAF190C174B725893253316530300137206060158C653928C566527842E0AC9C9C6117CD14F1F3B1497DF61F197A4AD54A35A515C545ED5F37014BDB69FC65E909E80F9D67ED953E33F4B28F99959FB654F8CFD2CA3E665C6D23E8EE4D7E29E89FF4FB7FE144CEAFDEC7CA60F2697F64B44FFA75BFF0A267D75DCAF29C94FD7F89CFE6639914BDA97CE58C191497DE979599D47A064C15C7316E97B4C4AB95CC4982B80F0965F042E0E57B24FF00CBED5FFC9FE3D33C0CF7BEC8F383EC7BAAA528B7F79E1FE7533C10BA9EC6CD2D8000CCB4000000000000033ED7F078FCFE902D7F078FCFE9041062CEDEB76D97DEA7DF3FC9F191ED15BFB99F9A6D67DFCBCACA1958CF29ABED15BFB99F9A3B456FEE67E69B402C329ABED15BFB99F9A3B456FEE67E69B402C329ABED15BFB99F9A3B456FEE67E69B402C329ABED15BFB99F9A779D8A6F6D349E506A15B52B9A5674E765B613AF3508CA5DB20F09BE9C23970438DD588CA7BF7AEBE4E7C3BA67FEE63F68F5D7C9CF8774CFF00DCC7ED3C0418F0D11911EFDEBAF939F0EE99FF00B98FDA3D75F273E1DD33FF00731FB4F01038686447BF7AEBE4E7C3BA67FEE63F68F5D7C9CF87B4CFFDCC7ED3C040E1A1911EFB3E56F27A306E3AE698E4B997AA63F696BD78683F0C699FFB98FDA7838255344E546FBB245E50D5B95AEE6C6AD3B9A3EA6A71DF465BA3B9396565749C8F69A9FDDCFCD3600BE351C558C9687A2F62D528F27AF62E328BF5637C7C74E0771C4E33B1A7B8B7FF002BFF00440ED38117BBB94CBBC538928371A909639A49FED29C0471BE3E544331336A5C4A54E71D91E3068C1E264CFBC979198FC0C204C8A711C7A8AF01C0CC829C47127083971E68F5975D386DDB8F9FA487248949B31F8F50E3D44E509479F8AEB21944DC81C471EA1945780B832A9546A94163A0C5965CA4F1CED97E1ED70F2161E373F2B308A49B1952D514E23895E038165C17ADE4E2E7C39F05EEDBE2898F43F2BE62E944A29B27245EAD13EDBE2898D734BB64BB6463DD7E525D3E32F05CE22B2BBA272456C8C0D92F01F9A364BC07E693EDD3595DCF9A53D513FCDF34D8BB31D08EC9780FCD0A13524DC258F8A4BD513FCDF347AA27F9BE68BB1A15049C5C6109BE692CA7FC8898DEE4A77006412004E0BDB167A8AA4E72518ACB7CC88D78ECAD286ECEDC71F9B245F5B10D92DF43C0FDD1BE8781FBA590656172F6FA1E07EE9472A6FDAD61F4F725AC954F6E0585CB80ACE2E9D4945F068A18DC900024020E1272CA849AEBDA49B6A2E58E0BA476F978BCD1A91A11D92F01F9A364BC07E692F544FF0037CD1EA89FE6F9A4DD8D08EC9780FCD33AD68769CD5A8BBAC705D48C7A352552B420F6E24F8E0CCB896DB6A8FC58FD7C0A2B49E90EA5737C91AACB6B2F9DF12E52F6E87C65E9204E93FBF53F8CBD26C191F3B4E32752A351935BA5C76BEB645C278EF65E6B33E97B5FF8A5E964F264EB59DAC6DDCF74E4EEA1614F92DA346A5F59C671B0B75284AE22A49AA71CA69BE0CCDAFA969EE31C6A364F8FBE21F69F3EB845F3C63FA86D8782BF51A6A9EB7B9AFE8EAF7B9EF9F746C3E10B3FFDC43ED2FD1D474F5496750B2E9FFF00621F69F3E6D8F831FD436C3C15FA8CA50BA2781EF3E88FBA5A7E57FF0090B2FF00DC43FA8B74B52D3D518E750B2FFDC43FA8F9EF643C08FEA1B61E0AFD461C2F791E8EBA9F43FDD2D3FE10B2FF00DC43FA88CF51B0ED72FF00F2165CCFFF00D887F51F3CEC87811FD4576C3C15FA82A5EF1E8EBA9EB1CBFBBB5ADC85D4E9D0BAB7AB525DA76C69D68CA4F15A0F824DB3C4B64FC1979ACDAA8C53CA8A4FC85725B62C8C32A353B27E0CBCD6364FC1979ACDB6464589CA6A764FC1979AC6C9F832F359B6C8C8B0CA6A764FC1979AC6C9F832F359B6C8C8B0CA6A764FC1979AC6C9F832F359B6C8C8B0CA59B584FD4F1EE25D3F92FAC19F47DA97CFE900652C4D3DF2E1F94C8FCC644DF772F2B29C4D9E02EA5DC32C63C431E22FF11C4701751C32C63C431E22FF0011C4701751C32C63C43E62FF001196380BA8E19631E205D9778CB45538657631946C000606230C63C44E9F7AC9974696657B96285D1671E218F117F88E265C05D470CB18F10F98BFC4A0E02EA38659C6013A9CE8814C959D8C1AB3B1E93D8DBDC4BEF95FFA20766719D8DBDC4BDF95FF00A227644144B72A563DFC7CA88958F7CBCA83211933EF65E46631912E697C56588C653785FACC63B194914E7E62EC2974CFF51284230F1BEB241CAE144AE464A031322AF8AC32D4E974C3F517005A06AE6302FCE0A5E2975962517178666A573068C883FBDC7C858977EFCACBD4FDAD790B0FBE97C66447725EC014064625EA3D3F3177259A3F95F3174C1EE671D8AE427C514232935C1104983D60C89D28CB18E0FA5A0E9C1C71B63FCCB7315E4663832234E118E3197D2D854A116DE339E64FA066432B32E9454AC609A8B5B33C4C5DF4FF00BB32294DEC943A145ED3053E0554D6AD32229C5B45EDF4FF00BB1BE9FF00765ACA192CB19DCCEB6D9B2534A31E8C98975172AF39AE3178C3F98BB093F53A8F439BCFCC9145C0AE3A49C8C146EEE6346129732CAEB28E0D4B6B5DD75194A2A2925CC861673D3D65B9CCB298CE138ACB5C0284E514D2E064B59587CC1919D939519375B3629B51962585F3989BE9FF00764E726ED5AE85358F9CC7C95D38D958C20B2AB1777D3FEEC6FA7FDD96B2864B2C67732AE528D8C30A2B334F878D3304CC73738C62F8C52585E445A5462A4E58CAE84634DD96A60A0CB00C874A1269E318E74BA44A9C251C630FA1A33CC89CAC85B7E154FCA65DFC92A118F853F41661154DA71586B99F491BDA8E7DA9789B7E56F1FC8AE4AF5133094354CC7274BDB69FC65E92D93A5EDD0F8CBD25C49E0B4BBC5F1A5E964C852EF17C697A5933096ECDA0094229A6D93ED71EA3354A4D5D1928365A05DD91EA1B23D44F0643232D02EEC8F50D91EA1C190C8CB40BBB23D43647A870643232D02EEC8F50D91EA1C190C8CB40BBB23D43647A870643232D02EEC8F50D91EA1C190C8CB40BBB23D43647A870643232D02EEC8F50D91EA1C190C8CB947DA97CFE905EA105DA5773D7E9038321919833EFE5E564704A7DFCBCACA151814C0C150014C0C150014C13877C8892877C8CA1DE44ADC9CBBC65A2ECBBC65A2CADB99CC000A4AC9D3EF58A9D029F7AC4FA0BFF00D65BFA4B78182A0A0A8A60BB0EF4B65C877A594BBC670DCA4F9D10273E74408A9DE644B73D23B1B7B897BF2BFF00444ECF2719D8E3DC5BDF95FF00A227659312896E57222FBA8F9514C852C3CAE704194D662D7430924B096118DBE5E1486F9785230CACCB31920C6DF2F0A437CBC290CAC6632418DBE5E1486E9F852F38656331920C6DD3F0A5E70DD3F0A5E70CAC66324A349AC3E28C7DF3F0DF9C374BC37E70CAC5CC9494524B9918CDF74FCAC6E9786FCE299252B10DDCAE464A6464C882ED17DF7CC5D2CD17C25F317B2572DCCE3B0213E744F263DCCA51707178CE7222AEC3D098313B6CFC290EDB3F0A467919199197919313B6CFC290EDB3F0A432319919B07CEF3E20E3173DD8E259A3596D7BA7C73C0B9DB61D7FBACC5A69992B12718B92935C515718B69B5C510EDB0EBFDD63B6C3AFF7591A93A13977BE4219215AA45D1961F1E1D6BA4C7DF2F0E5E71928B662DA465E4189DB25E1BF3876C9786FCE32C8C8CC658C989DB25E1BF3876C9786FCE1918CC672EF7CA5146306DA5CE421561DAE399F1C2CF395EDB0EBFDD6616665A13518A6DA5C58518A6DA51CB21DB61D7FBAC76D875FEEB235274253C29112CD6ADC63DAE5E52D76EA9E1333516D1839232C64C4EDB3F0A43B6CFC2913918CC8CB31EACB355F8B810EDD53C261E5F75CEDF392A36316EE509D2F6FA7F197A4A6DE1E325457DFA9E7C25E932B9163C169778BE34BEB326429F78BE34BD2C9984B765E5CA7CCFCA52726A5C195A7CCFCA467CFF317376A68B1F74A665D6C665D6CAC2316B895D91305093574C8516C8E65D6C665D6C96C88D9127873EA32C88E65D6C665D6C96C88D911C39F519644732EB6332EB64B6446C88E1CFA8CB2239975B19975B25B22364470E7D465911CCBAD8CCBAD92D911B223873EA32C88E65D6C665D6C96C88D911C39F519644732EB6332EB64B644AEC88E1CFA8CB22FD06FB4AE32E9F48274231ED2BE7F481C39F51964614FBF9795942B3EFE5E5650A8C000000000012877C8892877C8CA1DE44C77272EF1968BB2EF1968B2B6E673000292B274FBD627D029F7AC4FA0BFFD65BFA48000A0A81721DE96CB90EF4B29778CE1B949F3A204E7CE881153BCC896E7A3F638F712FBE57FE889D964E37B1C7B8B7DF2BFF444EC789814CB72B91929C4712482B91929C4712015C8C94E23880572325388E2482B91929C4712015C8C94E23880572325388E2015C8C94E238920BD47A7E62E16A8678FCC5D2B96E671D8162E977117D4FF00917CB573ED1F3A11DC3D8C30388E25E5600E238805E847EF1BBF3DAFD88A08D48AB7ED6F76EDFBB3D18C60A6E8F5982BEA4A2A0A6E43747AC9249A59A159F83B7D2582F2AB0546AC1EE6E496DC788B3C446FA98F300711C4C800388E2017526A2BC6B2039C5A825B938C527E529BA3D662AE4AD8A829BA3D63747AC12427DF142B3926D63AB8F94A71323100711C4004E1DEA21C492CE0861122749FDFE9FC65E92DF1254B3DBA1F197A4191E0D4BBC5F1A5E964C852EF17C697A5933196ECB0B94F99F9484FBEF989D3E67E5213EFBE62D97868B1F7512877AFCA4C843BD7E5265B4FB88CE3B00019920000000000000000000000000006551F6A5F3FA414A3ED4BE7F4800C19F7F2F2B28567DFCBCACA1A26B8000000000250EF911250EF91943BC898EE4E5DE32D1765DE32D1656DCCE600052564E9F7AC4FA053EF589F417FFACB7F49000141502E43BD2D9721DE9652EF19C37293E74409CF9D1022A779912DCF47EC71EE25F7CAFF00D113B138EEC71EE25F7CAFFD113B1302996E00041000000000000000000000000000000001768FE57CC5D2D50E697CC5D3096E671D816AE7DA5F95174B571ED0FCA847725EC61F11C4A942F2A1C4710001C4710001C4710001C4658000E2388000CB1C40007129C4A800711C4000711C4000711C400071251EF48938F7A1928A93A5EDD4FE32F490274BDBA9FC65E9201E094BDAD7965F5993214BDAD7965F5993225BB2D2E53E67E5213EFBE6274F99F9484FBEF98B65E1A2C7DD44A1DEBF293210EF5F94996D3EE2338EC00066480000000000000000000000000019347DA97CFE9028FB52F9FD2003067DFCBCACA159F7F2F2B28689AE0000000000943BE444943BE4650EF2263B939778CB45D9778CB4595B7339800149593A7DEB13E814FBD627D05FFEB2DFD2400050540B90EF4B65C877A594BBC670DCA4F9D10273E74408A9DE644B73D1FB1C7B897DF2BFF444ECB1E238FEC6D1CE8B7DF2BFF444ECB6955CD59D48C64D36471E218F112DA368BA31E343A91C0C12DBE31B7C62E871A1D48E06096DF18DBE3171C68752381825B7C636F8C5D0E343A91C0C78896DF18DA2E871A1D48E06096D1B7C62E871A1D48E063C44B6F8C6D17438D0EA47031E225B46C171C6875274577DF3174B50EE73D3927BFF0034C5EE64ABD3B6E48C4B8A9273941F7A9993BFF34C3AAF35A4FF00F398CA0B5278B19691640005A000000000000000000000000000000000000000000000005268000AEE64E949F6EA7F197A4B64E97B753F8CBD2412783D2EF17C697D664C852EF17C697D664C896ECB8B94F99F9484FBEF989D3E67E5213EFBE62D97868B1F7512877AFCA4C843BD7E5265B4FB88CE3B000199200000000000000000000000000064D1F6A5F3FA40A3ED4BE7F4800C19F7F2F2B28567DFCBCACA1A26B8000000000250EF911250EF91943BC898EE4E5DE32D1765DE32D1656DCCE600052564E9F7AC4FA053EF589F417FFACB7F49000141502E43BD2D9721DE9652EF19C37293E74409CF9D1022A779912DCF4AEC69EE1DF7CB3FD103B438BEC69EE1DF7CB3FD103B4293955FC460004148001200000000000000000000000000C8000CAEB2B87D5200A18D57DB64656C9780FCD2C4E9549559354E6FFC2CCA2D5CBE86922C82EAB7AEFF00F427E695F5357FEE67FB0CB32EA6D5D16417BD475FFB997ECFB4AFA8EE3FBBFDE5F68CD1EA2E8B00C8F515C7811F3D15F515CF82BCF44678F519975318193EA1AFD50F3CAFA82BFE679DFF00C0CF1EA332314195EA0ADD54FCE7F614F5055EBA5E73FB07123D466463032FEE7D6EBA5E73FB07DCFADD74BCE7F60E247A8CC8C4065FDCFADD74BCE7F60FB9F5BAE979CFEC1C48F51991880CBFB9F5BAE979CFEC1F73EB75D2F39FD83891EA332310197F73EB75D2F39FD83EE7D6EBA5E73FB07123D466462032FEE7D6EBA5E73FB07DCFADD74BCE7F60E247A8CC8C4065FDCFADD74BCE7F60FB9F5BAE979CFEC1C48F51991880CBFB9F5BAE979CFEC29EA0ADD70F39FD83890EA3323149D2F6EA7F197A4BFEA0AFF99E77FF0004A8D85C3AD4F843BE5F95E319E3D46647CFD4BBC5F1A5F5993214D629B5E397D664C996ECD82E53E67E5213EFBE6274F99F9484FBEF98B65E1A2C7DD44A1DEBF293210EF5F94996D3EE2338EC00066480000000000000000000000000019347DA97CFE9028FB52F9FD2003067DFCBCACA159F7F2F2B28689AE0000000000943BE444943BE4650EF2263B939778CB45D9778CB4595B7339800149593A7DEB13E814FBD627D05FF00EB2DFD2400050540B90EF4B65C877A594BBC670DCA4F9D10273E74408A9DE644B73D2BB1A7B877DF2CFF00440ED3071FD8C69CE7A1DF61735E71F320770ADA6F9E715FB4D77249EA72EB26EA331C194AD63D3397CD124ADE0B9F73FF00118F12257919860CE54292FC98BF2F124A105CD18AFF0008E2A2786CD7259E648B8A9CDF3425E699FC7AD8C18F109C8BA982A8547F918F2E092B7A8F9F6AFF0011998182388C9C88C456B2E99C492B55D33FD5132703046790C9131D5AC3A652FD857D4D4FC7E717F030466975272C4B2A8535F93FBCCAF6982FC8897703033326C882A705CD0879A36AF0579A4F03045C68538AE86332EB2B81804DC8E58E24B03001104B0300822096060022096060124412C0C004412C0C00470304B03001104B03001104B0300111825818008E012C0C004412C0C0047009606002382E50F6FA5F1D7A48E09D05F7FA7F1D7A403E69A5DE3F8D2FACC990A5DE3F8D2FACC99BD2DCE81729F33F2909F7DF313A7CCFCA427DF7CC5B2F0D163EEA250EF5F94990877AFCA4CB69F7119C760003324000000000000000000000000000C9A3ED4BE7F48147DA97CFE9001833EFE5E5650ACFBF979594344D700000000004A1DF2224A1DF2328779131DC9CBBC65A2ECBBC65A2CADB99CC000A4AC9D3EF589F40A7DEB13E82FF00F596FE92000282A05C877A5B2E43BD2CA5DE3386E527CE88139F3A20454EF3225B9EA9D8A7DC1D47E5BFEDC4EF0E0FB14FB83A8FCB7FDB89DE1A353BCCD0ABDF60006256000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002743DBE97C65E9204E87B7D2F8CBD2403E69A5DE3F8D2FACC990A5DE3F8D2FACC99BF2DD9D12E53E67E5213EFBE6274F99F9484FBEF98B65E1A2C7DD44A1DEBF293210EF5F94996D3EE2338EC00066480000000000000000000000000019347DA97CFE9028FB52F9FD2003067DFCBCACA159BCCE4FF003994344D700000000004A1DF2224A1DF2328779131DC9CBBC65A2ECBBC65A2CADB99CC000A4AC9D3EF589F40A7DEB13E82FF00F596FE92000282A05C877A5B2E43BD2CA5DE3386E527CE88139F3A20454EF3225B9EA9D8A7DC1D47E5BFEDC4EF0F9E2DB94FADE84A56FA5EA352DE9547DB2518C2124E5DEE7BA8BE845EF643E577C375BE8697F49A93A6DBB9A93A6DC9B3E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE931E1330E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA47098E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA47098E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA47098E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA470A438523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C290E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA47098E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA470A438523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C2638523E8107CFDEC87CAEF86EB7D0D2FE91EC87CAEF86EB7D0D2FE91C290E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA47098E148FA041F3F7B21F2BBE1BADF434BFA47B21F2BBE1BADF434BFA470A438523E812743DBE97C65E93E7BF643E577C375BE8697F4955D91395F1926B5CAC9A795F79A5FD2384C70A46B29778FE34BEB3265BA1272B7849BCCA49C9BEB796D970DA6EEEE6E1729F33F2909F7DF313A7CCFCA427DF7CC5D2F0D163EEA250EF5F94990877AFCA4CB69F7119C760003324000000000000000000000000000C9A3ED4BE7F48145FDE97CFE900180F9D80F9D8344D700000000004A1DF2224A1DF2328779131DC9CBBC65A2ECBBC65A2CADB99CC000A4AC9D3EF589F40A7DEB13E82FFF00596FE92000282A05C877A5B2E43BD2CA5DE3386E527CE88139F3A20454EF3225B9916FA14F5383AEAE214D45F6BDAE0DF371CF3AEB2E7AD0ABEFEA5F46FED36BA0FB9F53F4CFEAC4DA1946116AEC28A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D4832E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D481C38F41951CB7AD0ABEFEA5F46FED1EB42AFBFA97D1BFB4EA40E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D481C38F41951CB7AD0ABEFEA5F46FED1EB42AFBFA97D1BFB4EA40E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D481C38F41951CB7AD0ABEFEA5F46FED1EB42AFBFA97D1BFB4EA40E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D481C38F41951CB7AD0ABEFEA5F46FED1EB42AFBFA97D1BFB4EA40E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A396F5A157DFD4BE8DFDA3D6855F7F52FA37F69D481C38F41951CB7AD0ABEFEA5F46FED1EB42AFBFA97D1BFB4EA40E1C7A0CA8E5BD6855F7F52FA37F68F5A157DFD4BE8DFDA752070E3D065472DEB42AFBFA97D1BFB47AD0ABEFEA5F46FED3A903871E832A38DAB68ECAA4AD5CE351D2E0E4A384F3C79BE720666ABEEB5C7C65F5518652F46625CA7CCFCA427DF7CC4E9F33F2909F7DF316CBC3458FBA8943BD7E526421DEBF2932DA7DC4671D8000CC9000000000000000000000000000271EF5011EF5000C67CEC07CEC1A26B8000000000250EF911250EF91943BC898EE4E5DE32D1765DE32D1656DCCE600052564E9F7AC4FA053EF589F417FFACB7F49000141502E43BD2D9721DE9652EF19C37293E74409CF9D1022A779912DCE8341F73EA7E99FD589B5355A0FB9F53F4CFEAC4DA96C76256C0006448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001CB6ABEEB5C7C65F55186666ABEEB5C7C65F551866B4B76605CA7CCFCA427DF7CC4E9F33F2909F7DF316CBC3466FBA8943BD7E526421DEBF2932DA7DC4671D8000CC9000000000000000000000000000271EF5011EF5000C67CEC07CEC1A26B8000000000250EF911250EF91943BC898EE4E5DE32D1765DE32D1656DCCE600052564E9F7AC4FA053EF589F417FF00ACB7F49000141502E43BD2D9721DE9652EF19C37293E74409CF9D1022A779912DCE8341F73EA7E99FD589B5355A0FB9F53F4CFEAC4DA96C76256C0006448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001CB6ABEEB5C7C65F55186666ABEEB5C7C65F551866B4B76605CA7CCFCA427DF7CC4E9F33F2909F7DF316CBC3466FBA4A1DEBF2932D2949733C0DD2F0898554A290534917416B74FC21BA7E119719139D17416B74FC21BA7E10E3219D17416B74FC21BA7E10E3219D17416B74FC21BA7E10E3219D17416B74FC21BA7E10E3219D17416B74FC21BA7E10E3219D17416B74FC21BA7E10E3219D1911EF502DC672DAB881C6433A20E12CB1B244DCE397C46F8F591929F51962436486C913DF1EB1BE3D63253EA32C486C90D9227BE3D637C7AC64A7D465890D922B18C94B2C96F8F58DF1EB0A34D3BDC5A225DE32D171CA2E2D64B66155A6F4319B0002A30270E665669CB182309249E593DF1EB3622E2E166CB55AD66436486C913DF1EB1BE3D63253EA32C486C9138C5C5618DF1EB1BE3D64C5422EE984A288CF9D102539278C11299BBC9984B73A0D07DCFA9FA67F5626D4D5683EE7D4FD33FAB136A5B1D895B00019120000000000000000000009A7CCD3F2000000005134F99A7E42A00000000000000000000000000000000000000000000000000000000000000000000072DAAFBAD71F197D5461999AAFBAD71F197D54619AD2DD981729F33F295718B7964149C563037BEA2E8CE3952658A4AD664B647A86C8F511DEFA86F7D44E6A5D05E04B647A86C8F511DEFA86F7D43352E82F025B23D43647A88EF7D437BEA19A97417812D91EA1B23D4477BEA1BDF50CD4BA0BC096C8F50D91EA23BDF50DEFA866A5D05E04B647A86C8F511DEFA86F7D43352E82F025B23D43647A88EF7D437BEA19A97417812D91EA1B23D4477BEA1BDF50CD4BA0BC0BD18476A052351ED5C00CD4C5E2587CEC19CF48BFCCBFE1FF007E3F694FB917FEF7FDE8FDA5195F42BB1840CDFB917FEF7FDE8FDA3EE45FFBDFF7A3F68CAFA030819BF722FF00DEFF00BD1FB47DC8BFF7BFEF47ED195F40610337EE45FF00BDFF007A3F68FB917FEF7FDE8FDA32BE80C2066FDC8BFF007BFEF47ED1F722FF00DEFF00BD1FB4657D01840CDFB917FEF7FDE8FDA3EE45FF00BDFF007A3F68CAFA030819BF722FFDEFFBD1FB47DC8BFF007BFEF47ED195F40610337EE45FFBDFF7A3F68FB917FEF7FDE8FDA32BE80C2066FDC8BFF7BFEF47ED1F722FFDEFFBD1FB4657D01840CDFB917FEF7FDE8FDA3EE45FFBDFF7A3F68CAFA0369A0FB9F53F4CFEAC4DA181A45B56B5B59C2B436C9D4724B727C3097419E5F1D8C900019120000000000DF7242C34AD53598E9DA9D2BAA93B858A0E94D4629C632949CB8E78A8F0342741C857FDB8D2BE3D5FE14CAAB786EDD0C67DD6675DFAC6B1BDB8B4AB63ACCEA50AB2A72946A2DADC64E2F0DC970CAEA399BD959CAFAB3D3E9D6A768DFDEA359ADC963A71E33ABD568722FEECDFFAA6EF5A572EEAABAD1A718B8A9B9BDC9663CDBB98E46E95BABCACAC9D576CA72ED4EB63738E786EC185077EBB733186BAEA6C393DA25D6BBA9AA16DDAE31A4954AB52AC77C2093E95C3767ABA4EC756D3B46E58B8D1D1351B18EAB694E4E71A56CE9C2E170E66FA135C1A72C64D67273EF3D8F7951734F8569B549C973ECDABFAA46AB913BD72D34AED4B8EF927E4ED72CE7E62B9A949CA69DB2EDF2D6E632BB6DF434528CE33942A42519464E328CB8352CE1A66CF93FA1DD6BFA9AB5B574E2A2BB654AB52398C229F4AFCACBE1821CA0C7AE5D5B1CDEADADCDD7BE5937FC9A6E8F2179555A93C54708C24D73A8E1A7C7C8E45D526D53BADDDBF733949E5BA36FAB69DA372C5C6868BA8D8AD56D2127354ADDD385C2E0B0A5E0A6B834E58C9E72E32849C2A45C6A464E328BE0D493C34FC86F3915B972D749D98CF6C92E3D5DAE79FD9931B94AE0F953AB76BC6DF55D4FD797BBF698528BA72E1DEEAD7220B2BCA6E391FA2685CA0A55ECAED5F53BEA7095575A9CE2A0A19496DE7E2B3D312ED968FC94E5054A961A35DEA142FE316E8CEE52D971859CE319FAAFA704FB1871E52DDAE87632FAF139DE49CAA43949A24A9F7FEA8A517F15BC4BF63663252CD3B49E966BF7FE0C5A777AEC6BEA53A946AD4A3562E35694A509C5F3A945E24BF5A226EF96318C7967AB28708F6E4FE7708B97ED3486CC1DE2996A775706D347ADC9FA50ADF76ED6FEBC9B5DA9DACA292493CE5392E393561F3092BAB06AE777AA69BC8DD1EDF4FAD5ECF56A90BDA3DBE9F6AAA9B51C45E25992E3DD2E6C9C3DC3A32B8AD2B78D48D07524E929B4E4A397B536B8670759CB279D03920FA5E9DFE9A472055874F2E66DBDFEA6105A5CEBF41D2B937A8F27AEEF2E68EA6ABE9D4D55BA74EA4529E773C432F9B11E9DBE514742E4F728AD2EFEE054D46DF50B7A5DB55B5D624AA4573F3679DF0E7E7E82F7216842EF43E55DBD4AF0B7855B5841D6A8F11A69C6AACBE6E0B9CCA850B2E42E852D52CAE9EA779A84656D42E6924A841F17D0DF4AEBE3B7A38944A4D4E518B77BAB15C9B4DA4F53CFD3528A92E66B26D39396B42F7945636B73692BAA356A6C9528CDC5E1A7C5B8BCE177CFC5135718A8C545732584769C85B5AB6B6BAB728616B3B8AB6B49D1B5A5183939D46B2F0965F0E09E3A252366B4B2D36CB66ED166272E393F6BA16A36D2D3E12859DC53785DB1CF138BC4B8C9B7CCE3CEFC239679DAF1CF8E076B75637B5FB17C5DFDADC51BAD32F252DD730719D484E599496E4BA6A7EE9C598E1E4DC2CDDDAD08A6EE8EA353D2747B8E47D3D7346A57149D1AF1A3750AB5376DCA4B3D3D2E1CDD0C8F22B47D375ABDBDA3A9D2AEE14A8F6D8D5A73718D349BCE7A73C563E2C8CAE4338EA36FACF276ABC46FAD9D4A397C23522B195E3E317FE1216727A2F636BAB96B6DDEB559D08AC6251A51CC6595F354F391549C92953BEB756F8FF00598B6D271F79C94DC25293A3BDD36E4E0E7DF6DCF739C74E0EDADF4DE497AD2A5ACDC5AEA9251A8ADEAECA89C9D4C2CBC6EDBB73FF00D1C49DDE8F5B4CA3D8DA52D5ED6BDD5AFDD06BB5D196D96E696D79CC787CE5B88BA49A6F7E46552E92B1A3D4EBF24A761563A5D8EAB4EF1EDED72AD34E2BBA59CA526F9B3D069284A846EA94AE95595BA9A75552694DC73C526F86706F354BCE49D5D3EA53D3345BEB6BC96DED752AD7728C7124DE539CBA33D073D2EF65E432A6B4B6BF1263B1D172B747D3F4AA9A6D5D39D7ED37B6DDBD46B4936B38C71C754B8F39CF1D7F2DFF0003E4CFFD3A3E881C81141B74D3621DDD4000B8CC0000000000000396D57DD6B8F8CBEAA30CD9EA365755B50AF529DBCE50935B64B99F04637DCCBEF7B55F34D769DCC0C50657DCCBEF7B55F347DCCBEF7B55F348B3062832BEE65F7BDAAF9A3EE65F7BDAAF9A2CC18A0CAFB997DEF6ABE68FB997DEF6ABE68B3062832BEE65F7BDAAF9A3EE65F7BDAAF9A2CC18A0CAFB997DEF6ABE68FB997DEF6ABE68B3062832BEE65F7BDAAF9A3EE65F7BDAAF9A2CC18A0CAFB997DEF6ABE68FB997DEF6ABE68B3062832BEE65F7BDAAF9A3EE65F7BDAAF9A2CC18A0CAFB997DEF6ABE68FB997DEF6ABE68B30588F7A81951D3AFB6AFF86ABFB00B3075000364CC000000000000000000000000000000000000000000000000000000000006E39297B434FE5569D77755234E8D29CF7CE5CD14E128A6FE791A706328E68B8BE643575633357AF4EEF5BD46E29493A75AE6AD48C9F0DD194DB8BFD461804A56564168AC741C95D76DB49AD7969A8D2956D3750A5DAABC63C649F149E33CCD4A59E9FD46E68DE726391EAADDE93775755D42A41C28EF69C28A7D2F097CFD2F9B8713860553A1193BB7BEFEF31704D87294E529CE729CE5272949F16E4DE5B6741C96D7ADF48AF756FA852955D36FE976AAF18F171E749E33CD8934FF00F839F0593829472B3269356677346EB931C90EDB7BA4DD55D53519C1D3A1BDC5C28A7D2F0A3F3F4BE6E1C4E1A529CE4E752729D4949CA527CEE4DE5B6018C29A8DDDEEC88C6C74FC83D56C746D66EEE6FEBAA54DDA4A316B8B72DCA585E3C2E06CAC5F23B92F561AA5B6A173AA5CD28B8DBD0C47316D359788AF267A3AB270C0C27454A4DDDEBB90E1777BEE5EBAB9AB7D795EEABB4EAD6AB2A926B9B749E78788B2017256D0CC07CCC0241D1F29F52B4BFD3793B6F6B555476960A9D44BF224E304D3F1F72738018420A11CA884ACAC747C9ED52CEC393DCA6B7AF5546B5E5AC6951835DFB6AA470BC9B912E4BEB1694ADAEF41D625FF00E2AF63292974D2A896729F8F6A7F1B1E339A062E945DFDE62E09DCA2798A79CF373F03ACBEE50FDCFE4CE89A5E877D5294D5375AEEA526D4BB63E78B6BC6E5FBA7280CA74D4DABF225C53DCEBF93DCA675A8EAB63AFEA35EA5B5CD9CA319D5939ED693588A7F94D4BF5C51C7C73B5679F1C4A811A718B6E3CC28A4DB467689A8BD275CB2D41676D1AD173C2DCDC1F7324BFC3291BAE5E6B76FAC6B34A9D9548CECED296D84A2FB994A5C5B5FBABE6397043A69CD4F9A0E29CB303B0D02E345BEE48DC689AA6A5EA0946EFB7C26D2E31696319F1A7938F02A433AB5EC251CC8E9757D2393165A6D4AB61CA0AB77751DAA9D1C47126DA4F388AE8C9CD3594D004C22E2B577252B733BDAD2E4CF28F48D1E57DAE3B1AF676B1A12A588A794927CE9F4C781A2D734CE4E58DA29E97AD55BEB994B0A0A31692E96DA4B073E0C23472ED2763150B6CC000B8CC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000158C942719351928C93DB2E29A4F99F88A000DF2D374BAB7F73DBEF6951A32BB4A84A8DC527185273E7C65B794FF00C3B7BA2C50B2D1EADA5AD69DE55A72AAE5BE1DBA1BA1852C292DBC31B63C7F2B7F46DE3A8056A0FA98E57D4DC50B1D3AA6AD3B285CF6DA55951852A9BA2E4A52AB4A32517CDB94652E8E62E51D274AA9853D4614E7BE09A95D514A3BB63924D654B6A73EEB31598A4B71A44DA69A786B8A68A2E01C1F5167D4DA5E59E99474D9D4B7BE955BA8C54B676C8CA327982696D5F9D2E9FC933958E8AA7414EFA8E292517255A0FB6C77CE5BE4973EE4A31DBDF477293EF59CE821C1BE62CFA9B8AF65A4D1B5ED9EAC9CEB6C6FB5D0AD069C9B8F3613C28EE71C37DD6CCAE122BA65BE94A16D5AEEAC1AAB88D68CEA4774715609E22B8AEE1CBBA93F0BB9C7134C09C8ED6B8B7BCD9DA58D84E776AEAF7B4C68CE31A6955A7294D37D386D4B874C7761F88C8969FA2AA55AA47519B70A3BA307523BB292965705BBC1DBC1BE7CF0348DE137D465D7D32FADAA4A352D2AF73152528C5CE2E2D3926A51CA716937941AD75906BDE64DED9592D6A1DA2BC2969B715F6C2A76FA751C23C1CB3B64F1852E1BBE7E92EFA87488DBAA952EA519A8393A51BAA52794A5882714D70DB9CF33DF85C63235B1B2B97794ECE54674EE2ACA308C2B7DEF7393C47BEC633E32ECF4BBEA6A5276F274D2DDDB63252A72FBDF6CE134DC5E61DD7391D13907E66C6B695A3D385C386AF17B1254E5DB22E594E5993845714F0924A5BB12CF4609C34ED1A4A9C2773B650AF514E52BDA389C36270C4A394B325CF878FCAE8352F4CBF8D4515637137BA505B29CA69CA1DF24E39CE0A54D3AFA8F09DA574FB4C6B708B7F7B9349378CF4B4BCA6397FF00BBE845BDE6CAB58693568539DBDE42328D17BB35E9477C976D59DB29369B71A7C3A77F02CD1B2D2ABEB32B7F574A859422DBAF56716DB4F198F049F079C7E6BC71C186F4ED4142AD476375B6934AA7DE65883C6EC3E1C38712DD5B5B8A14D4EB50AB4E9CA72A71738B8A728F09478F4ACF31925C94BE812F79BCB6B0D2EE216566AAD3955AAA31EDB0A91DD2DD3A2F38FC992DD51625C76C5E4B3EA0D2AA50A74D5FD284E319CA537523DCBC52962528E776DDD28ADB1EE9C5F14B9B552B5BAA70AB55DB5C46341A5524E9492A6F86373C7739CAE72ED6D2750B6AF528CECEBB9D382A8F645C96C6D2524E39525C571445B966FA0B7BCD8C6D347ED0E9D4B8749C6BC96635E9D4938B74A29EE8E62E294A72C7E6BE252B691656F5F4B556ACD51AEE4E75A752318D48A8C25171E1F7B4E52947BACF59AF8E95A8CE75A0AC6E14E8C54A719539464949A51E0D26DB6F82E70F4DD4A6D2F505E4A4A4E9453A32724D2DCE2963A9E703FF00C87C4DCD0B5D0A3B2955AF467079839C6B454DBCDCA4F2E492C628F17DCBEE5F0357634AC92BCA3A855A54E12A11953AB4DC6A4A12DF16B6ED6D3EE729AFB0B35F4EBDB7B68DC56B69C28C9A8EE963B9934A49492E31787D2565A5DFC2DE9D695AD450A8A2E9F84D49B51C479F8B8BE8F19365ED6E3E26DDE99A1D4AD5AA4B548538CA555C2942A45A8C7B662386FA63179DAD2DDF92FA4C7A7A7693DAEA76DBFC38C20E3355E9F779E2DA8ACB5CDB76CBBA5BB3D183593B1BCA743D5152CEE6143FBD951928F178EF9AC7394A165777514EDED2BD6839F6B52A74E4D393E6594B9FC4465D3BC4DBDE6D9699A34B7CDEA6D43725086FA6E4DB9B8B4DB71C26BBADDCC973F46712DACEC2A3BA8D6BD852952AAA9D35DB538D58CA5B54949C5708F3B6D2EE7898F4F4EBFAD529421617529568B9525DA65DDA5CED70E2B891F515E6272F525C62107524FB4CB845349B7C39936B24ED7F5BE83E26D276BA2DBD6505793AD192AD17294A3B60A31EE72A39EEB2F09A6D6639E62CDFE9F616B6B5E76F7D0AF5A9ED718C6BD392927271EE5472E4F0B38EE76AE9E830E1A7DE54B27774EDAACA829AA7BE306FBA69BE0BA5772F2CB75EDAB5B4A31AD4E507286E51973EDCB8F15F93C62F830A3AF782DF7378AC345B575E6AFA8DD254A494655A198B8BE138E3BEDDB7292E3152C48C4BCB2D3FD596F1A17749C6BD692A928D48ED51CA69A4B3B1252DB89783BB999A90141AE6147DE6DA959695EACBD855BF9FA9E8BFBC4D4A3073C465269E7727DD4631CAE06552D33468FDEEA6AB465DB36EE9B9C56C8AAB0598B4F9DC5B4D3595CFC51CF825C1BE62CFA9BF8E95A2D4ACA2B548C22E514FB65CD25B7BB8A925D0D463293526E3B9C7844853D3F4BA14DCE5A85BD6A92B4939465523B69D470A98927CEFBA8C3114B7775C51A30470E5B66195F53754ECB4CB7E5052A6AF695CDB538D3AB253A908C652DD152A6E6DED6B6E659E95C3BE24B47D3656552AC350729468EF938D4828D2DCFB9CB9717CF8DBC25DCBE7E068C2E09A4F83E744E4975167D4CFD52362AF2BBB6AADF751DB0A7463DAB0E29BEEB7B795F14C000C92B2B12958000C890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035958366B5DBB5151ED56CE2A2961C25DF28ED52EFBBEDBC3ABC46B018B8A7B90D5CCD9EA75A77B6D79DAA8C6E284E13552107994A2D38B9E5BDCF31E77C5938EB77D1B595BCE71AB196E529558B94A4A51719272CE5A35E0648F41646CEBF282FEE293A751D28C6519C64A30C65494D3CF1E8ED93C7C62ECF94DA9CE756A6FA71AB5B8CAA4632528BEEF6B8BDDDCE14E496D34E08E1C3A11957436EB5EA93B7B8854B7B773A91518B8C5A518B799C65DD775BB2F8F7D9E92D5DEBB7B7B0A71ACA82853A8AAA8C69F72DA6E51524DBDD14E72E7F08D681C38F419519D7DAADC6A14FB5DCAA52C61464B7660B0961775C56211EFB717E5CA0D4254AAC1CA96DA9BBFF4B8A6E2A194D7E6AC1AA03246D6B1365D0DACB9477F28C54BD4F271A929C1CA9F18B9D4ED92C61F4C974F4731656B37BEA376BBA1DADEF8BEE3BA6A4A7B9673CCB7C9AEA3000508AE446546555D46E2E2C3D4755C654B11516F7662E39E3C1E1B79E9465D4E50DF549B94A1433296F92516B74B74A4E5CF94DCA52E6C63A306A80C91E84D91B2ADAE5EDCAA8AE7B4D58D458A8A507DD2DDBF8E1A7DF16686A55A850A74BB5D1A8A9EE8A728CB3B66B128BDB25C1F9DE330C13923B58591BCB1E52D5A5564AFA3DBA84A50A8E10828B738494A397C1A595D063C39437F1B77492A11DD15194941EE6F66CDD9CF096DE1C0D5831E1C37B119519F4756B8B7B68D08D3B794231D8F741B728FDF3B9961AE1F7D973712DDF6A35B51A8EA5C53A3DB32DA9C62D349CA736971C61CAA331019648DEF626CB7000322400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006F0B2F9800134F99E4F41E48725AD958C351D46DE356BD6EEE952AD1CA843A1B4F836F9F8F41BCD4F929A4EA71939DB428D66BB9AD4128493E8CA5C25F3A34E58C846794E7CFB46942A64B7C4F22066EADA55C68DA84ACEE76C9AEEA138F7B522F99AFB0C236D34D5D1BD19292BC7600024C800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757C8EE4CBD4EB4752BCA6BD454E5884251F6E9AF17829FEB7C3ACD7726B427AF6A8E9CDC95AD1C4EB4A3C32B3DCC53EB97A0F5BA54E142953A54E11A74E9C546108AC28C57049234B1788C8B2477FA1CCC7E3386B870DD97000724E01A0E55684B5BD2DAA718ABCA0DD4A327D2FF002A2DF54BD383C95A945B4E328C93717171C34D7069A3DE4F37E5DE84AD6E56AF6F0C52AF2DB5A2B9A337CD2F24BD3E53A382AF67C37F03AFD9B89B3E0CBE1FC1C7000E91DB00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001BC26F9F86700EBB913A052D46B3D4EE7BAA56D5546952E89548A52CCBC4B2B874B2BA951538E691556AB1A307396C765C9AD2568DA2D0B69452AF24AAD6974B9B596BE65C0DC8070A52727999E5673739393DD94C678278F1B2F455BC5ADF394BC8B0BED2D0312232CBC8CD4EC9F05B3F5335DA9E994751B4B8B5718CE8D68384929ACAEA6B3D29F145C1825369DD173AF7FD36F2D0F0EBEB3ADA6EA15ECABA7DBA849C5B6B194B9A4BC4D7131CF54E5BD950B9E4E5C5C54845D6B6519D2A9B56E8F749359E7C34F98F2B3B742AF16198F4385C471E9E6B58000BCD9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E8FD8FEE29C793F76A538C3B4DCCA7372924945C6386DBE65DCB3CE04793779CA997DCDD3E16EEE30EAB75E4E308C63CFB9A4FA5A5CC6B62E37A4FDC6BE2A8AAD4DC5BB1ED1A4EB5A66BB0AF3D32F695DC2DEA2A75274B328A9359C296312E1D46C2AF68B7A33AB5EAC69D2827294E72518C52E2DCA4F824729D8C743BFD039295ACF52B695BDD3BDAB3942524D3588C6328B4F0D6D8AC33B0A94E9D6A52A752119D39A6A5194538C93E0D34F834CE039B34E182A31D6D7F3316CAFB4FD469CA7A7DF5A5E423DF4ADEBC6AA5E5DADE0CB508B6928A6D9834743D26DEF29DE50D32CE8DCD3528C2B53A31A728A6B0D652594FA999B568D3B8A152855829D2A91709C65CD28B5869E3AD1199972C3D25FA57C8D751D7342B8BF5614357D36ADEB6D2B6A77509546D2CB5B54B3C1235DCB5D5350D0392F5F56D329DB55A96B38CEAC2BA9494A9B7B5E36B4D34DA7E4C9BAB7D3AC2D1415AD8DAD054D621DA68463B5358EE70B8701AAD9C752D1AFB4F9358BAB6A943BAE65BA2E2B3FAC66643C352F657C8F217D91EEF94BA45DE9B73A5DB509CB63EDD46B49C70A5B9ADAD73E63E11A83A1D4BB1BC392BA246FADEFEADD548C69C2EFB64528B6DE37452E65B9E30FF59CF1DCC0B4E89B3429C211B4158000DD2E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001D6763AAF1A5CA69D1784EBDB4A316F9F7269E17CC99CCD0B7AB70FEF71E1D327C1236FA751FB997B42F6949CEBD19A9473C23C39D7CEB8115284AB539457347331BDA985C2FAB52579745AB3D8C6564D7D3D4695E5953BAA3BBB5D486E8A9470D7434FC8D11A575273F164F27396496596E6FD38F1219E3B329A45B6A56BF7465AA6A11BA556F6AD6B6518ED542DDE36D36F0B9B0DB36519425B5C64A49A4E3869E62FA563A0B10BBA53BD56919FF00C476A5592EB8E5AE1D7868A5A69B6F62A7EA6A0E9E5F1E2DA8C72DA8ACF7B14DBC4570467B955B2EE6368F67A8D9C2FBEE8EA0AF255EF6AD6A0D2C2A3464D6CA6B3E0A46C8C2A97D4E74F7509C6AC72D662D3594F0F8AF192B6B87368C1CD5EC5AA9B51B9A4E5E5E42D792B714A4E3DB2E651A54E3E492949FCD189E4A75FCA9BD5CA1BD83A739D3A16EA51A317C72DBEEA4D78F1FA8E56BDB55B77F7C8F73D125C533D2E170D3A349665ABD4D1C1F6961711274E9CBD6E9D7CBA968006C1D2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067DA69EEA4554AEA4A3CF187337E5276165CD5EB2F1C62FD2CD89B14A8DF591E53B63B6DC5BA1867E6FECBEEFE45145462A2946315CC9704540368F23B9DAF272AC6EB428D14FBBB794A9CE3D386DB4FF00533650A5252C6381E7B6FAD3D02AABC75E9528CBB9946B3EE6A2E7C3FF00E0F4BB3B8B6BDB6A5756B714AAD1A91528CE8D4538CBAF6C97078678EED4C270EBB927A3D4FA0F61E39D5C2A8B4FD5D2FC9F93FA96AEB45D3B5192A9796AAAD549253DCE328A596B6C93CC79FA39CB6F939A5CA2D55A3715D279DB717756A2F9D3934FE736C961034B2AE875555A895949AF8B35F5ADD53518528A8C22B118A492497424B98C0D4EE1697A557B8CE2A4A2E9D25D2E4D617EAE737B351C65F048F3CEC83AE69BA7DCD9D2B8BBDB70949BB7A7172718BC6D94974671E52DC2D2A72AF1E23B23571B52BFA349508B94BDDBF9FC3734C961617320D2945C5A8C93E74F98A53AB0AD4615294D4E9CE2A5192E669F33247B84EE8F9A59C5DB668D65DE9EE317528A938F3CA1D2BC86BD1D19AEBFB2E7AF4571E79C57A51AF568DB589EB3B1FB6DC9AA18A7E52FB3FB3F99AD001AC7AC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035BAEDC54B6D37B653AAE94BB6456E8CB6BC34CE6FEECDE7BFEA7D223B1B9D525A3D1F5546DE35F8A86D94B6AEEBA799F5187EBF6A7C1347E99FF49E7FB4F118AA75ED4A9DD597EA4BF62A9A8DF595BE658E4F5DD5BBB6AF2AB5E556519A49CA5BB6AC1B82C5A6B52D7233AB2B5A76FDA9ECDB196E4F3C73CC8BE7570339CF0F1954567E77E7D4CE36B68EE0006D99000000CCB0B6EDF3ED9517DEE2F9BADF518352A53A31DF56AC6947C293C18F73CAE85BD38D0D3686E51E0AB57E09BE96A2B8FEB662EB52A4EF51FC0D2C7D3C5D5A7C2C246F29697D925CDDFAFEFEED0EB945C9F0E2CC7AF7B696D2D95EEE852973ED9D48A7FAB279E5DEB1A8DEE55C5E55941FE4C5ED8F9AB08C0492E6491454ED8E508FCFFBF739986FF0A9357C455F8457DDDBE87A23E52E8C9B4AFE2F1E0D39BFF496EA72A747871571526FAA1465FEAC1C0035DF6AD77B25FBFF00274A3FE1B805BCE6FE31FF00F936BAEEB2F57B8838C1D2A14A2D42127C5B7DF49E3864F42EC357B27435AD3655138C254EE69C1BE6CEE8C9AF9D4327941B4E4FEBF7BC99D556A361DADD6D92A528558B942A45E1B52C34F9D279473AACE551B94B7677960A9D2C32C3D1564B6FAFEE7D30AACD74E578CAF6F9F831468392DCA8B2E56696EEED62E8D6A7251B9B693CBA526B2B8F0CA7D0FF0099B99D485384AA5494634E117294A4D28C62965C9B7CC9235B6396E2E2DA7BA2EC7EF9563193CA6D27E43E5FD63529EB3ADDFEA755C9CEE6E255165E7116DE23E451491E91CA5ECB8D39DB726692E194EFEBC339E8CD383F4CBCD3CA92DB1C2E38E9F19642363A782A3285E5256B9BED1B94B574CA2ADEB52EDF6E9B714A589473C5A4DF06BC4755A6EAF1D5A33763A76A95BB534A7DA6D655545BE6CB8E7079C1B9E4CDD4F4BD7EC3538EA942C234AAC67567DB1B93A4A4B741C209B7B974346FD2C7D7A51CB17A7BCE77687F8EE07152956716A4FA3DFE1AAF923ACB8D7AC2CE7B2EFD556D25FDF5ACE0D79534675B5DDBDE41CED2BD3AD15CEE9CD371F2AE7476B5BB30723E3DCC6E6EAAA7CFB6D2786BE748E5F51D6BB156BB2752A3ADA4DD2EF2E6DED674669F5F731717FE24CD8876B554FD749AF97F279EABFE314A51FF008F3C5FBED25F24A2FF0076682FEDBB44FB6417DEE4F9BAA5D4619B0B9573A7DB54A952F6DF5ED1A2A29EA561252950CF376E845B717E37C3C79E06B61384E1BE9D48D483EF651965337215E9D6D61F23AB818E269D3E0E215DC767C9AFE56CD3B3D9DB524002C37800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002CDCDAD1BCA0E8D686E8369E149A795E3460FADFD3BFBBA9F48CDA3287331B14EA26D7239D8C9353567C8B169656F654A50A10946327BA59936DBF9CC80B981BD45254E29743768BBD38BF7006CE8E992A16F6DA957A4AEF4F93FBF2A153BAA79E189736198DA850B6A175256772AE2D9A528CF0D38E7F265C39D182C4D373C89FF00175CBCFDCFE05B66629AAD475756F3742DE319555C2527DEC5F578D97B55BE7656FB20F6D6A9C21F9ABA64731C30B860A31789707921B9B786C3A97AF2D89D5AB52BD4752AD47526FA64C88072DB6F73A495B44000400000000003A9EC77AA55D2F96F611849F6ABD9AB4AB1C70929F7AF1D6A5867A4F659BBAF65C8A8D186F82BCBB850A8F18CC146526BC8F6A3C428CE50AF4A70938CA338B528C9A9269F3A6B8A33F57BAB9B854A15EEEE2B462E528AAB565249F3652937C4C5C75B9A55692962232FEE86B400646E80000000013A15AADB5755EDEAD5A35A3C635294DC6493E8CAE832686A5568575569421172F6C8C63B633F1ED5C22FC8618328C9C5DE3B98CA2A4ACD1D75A5DD1BCA3BE9BC35DF41F3C597CE36857A96D5A35694B6CE3FA9AEA6751617F0BDA2DC7B9AB1EFE1E0F8D788EB61B14AAFAAF7FA9CCAF8674FD65B19400370D600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669BA65D6AD791B6B486E9F7D293E11847A652643692BB21BB6AC69BA755D5B51A763425084E6A4F7CF3B62926DB784DF41BFF0063FD47E10B1F367FD274BA0F272DB428CAA29CABDDD486D95571C251E7DB15D0B26E8E2E2710AA4EF0D8E7D771A92B9E4BABE9171A25EC6DAE274A6E5055232A79DAD36D7E525CCD1AF3D5B5CD0EDF5DB58C2A4FB557A5974AB28E76B7CEA4BA53C1E617D6571A75E54B4BA86CAB4DF1E94D3E6945F4A6743095E3520A3CD1B54269C547A16E15674E328C66D424D39C72D4658E6CA37D6BA8518DD515A3D9CF7DCC5D3B9B0AAF7539E170C49F1EB673CF827C718E2CF57E4772629693614AEEEEDD7DD2AAB749D48A72A29F3456799E39FA7A0A31F0A6A19DEEF4F3F3EB6F9AE4CB9CF29C2F27BB1CDBF2A2ADD6A5A8DD5DDADBB4A10B685374EAD2A89E1A96F8B5858E18E7CF39C4F2AF92F75C92D69D8D7A9DBA8D4876CB7AEA38ED90CE38C78E2517C1A3E9A7294BBE6DF94E4F977C8D8F2BF4BA6A954ED7A859A93B5949F732724B7424BA9E171E8672549BEF3B9751C5CA33599FABF43E75056A539D2AB529D5A72A756129427071C38CA2F128B5D69A285876400000000000002B0F6C8FC65E932F517F7D82F13F49891EFE3F197A4CAD45FDFE2BAA3FCD8299F8B1F89880005C000000000000002746B4EDEB2AB4A7B6717C3A9F899004A6D6A835756675B657B4EF6939D37B651EFE0F9D3FB0C838DA15EA5BD58D5A52DB38FEA6BA99D4D95ED3BDA0E71EE651E12874C5FD87630D89E2FAB2DFEA72B118774DDD6C64800DB3580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001DD763F847D49A8CF11DCEA422E5D38516F1FB4E14EEFB1F7E017FFA68FD566A637C07F029AFDC675E013ED351437EC9EDF0B61C334081C172FE305AA58CD77F2A0D3F2293C7A6477A79FF002FBDD8B4F92AFAF237303E32F89750EF9A0D2A74A9EB3613B8DBDA237549D4CF36D5259CF88F7596549E79F3C4F9A35ABF50A6ECE9CB329C7EF8D7E4C5F47959ED3D8DB57BFD6B9196D5F51A7255294E54215A5FFEC42184A7E5FC96FA5C49ED19A94D25C8DFA9465182A8CEB8D272A79454B92DA33D4EBDAD5B9A2AAC29CA349A528A965292CF07C5246ECE53B24C60FB1C6B4AA630A9D36B3D6AAC71FB4E7ADCAA0939C53E6CF3DE5268B65CB5A773CA5E4D4D55BA93DD7566962526973ED7C54F0BC92E8E279BFEB4D369A71C34D73A69995A7EA37BA4DEC2F2C2E676F5E3C14A3F951EA717C249F533A5BB761CB7CD7B78D2B1E52359A96FBB14AF9F5C1BEF6A789F3F8F9CC53952EF3BC7AF4F3F77BCEEC6F4B4E5F439002709D3A93A75612A75212719C249C64A4B9D34F9983613B970000000001587B6C3E32F497EFE59BA92EA8A5FCCB306A356127CCA49BFD64ABCD55AF52A2E3193E0FC40A9AFF95797DCB60005A000000000006F0C00000002EDB5C54B4B855A9BEE973C7A24BA532D025369DD10D26ACCEC2DAE695DD15528CB2BA63D317D4D174E42D6E6A59D78D5A4F8AE0E3D125D4CEB28D685C51856A6F3092CAF175AF98ECE1B12AB2B3DD1CAAF4386EEB62600368D7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001DE763E4DD85FE137F7E8FD56706743C9C5FF000F71CEBBB8FA0D5C62BD17F029C4786CAF649E5DDE68D75F70746AAEDEEDD3552EEEA3872A6A4B31A70CF7B271EE9CB9D70C1E551D5F5585D3BA86AFA8C6E339EDD1BBA9BF3E5DC6CB96B42A5BF2BEFE534D46BEDAD4DAE98B8A8FEC945A342713635636B1EDBD8E396F75CA5857D2B559467A95BD3EDB4EBC62A3DBE926A32DD15C3745B8E71CE8C2EC9F77EA2BEB5A986EA4AD54609F84E53E3F31C4763EB7A95B953DBE316E95BDB4E5525E0EE5B62BE77F54CFEC8527F75ACA1C1A8DAEE4BC6E724FD05B4A6E9BCC8D8C1414F10A3C8D2F27B45AFCA6E50DAE994A5252B99E6B55E771A6B8CE4FE6E6F1E0FA72DEDADECED68DADAD254EDA84234E9535C146315848F20EC274A83D575BAF24BD510B6A50A6DAE2A329CB761F8DC627B21AF366EE3A6E5572F240F11ECBFAEDC5C728D6874EE251B2B5A30A956947829559272CCBAF1171C751EDF18EE9A8F365E327CC5AE5C57E5272B355BEA199C6BDD4E519BEF634D3DB0CBF8B18934E2E4EC90C1453A999EC91A8A74AA57AD0A54612A95272DB18C2396DF88EE742E4ED1D3251B8BA8C2ADCE5349F154BC9D72F1FEA32F47D1ADB4AA2A545F6CAD52294AB4A3C5A7C711EA46C8F4582ECE50B54ABABE9D3FF004F1DDBDFE493C5DF0D86BC61B37B397F0BF77CFA1CB4EE6C35EBAABA4EBB5D5BEA542A4A8DB6AF3E6A8936953AFCDB9754F9CE4EE6DAB59DD55B5B883856A5274E69E561A78CACA5C3A4D972A28AA5CA1BA496233DB517F892CFEDC9A9596F8B96782E2F3CDC11E7E7478556515B26F4F89EFF0001538B86A7553EF453F8B499500126D800000004732AC96AB9AFCADFDF9800125A00000004BBD7D3C309008EA2AF265DD68169736B1FF8B5454E705FFAB16DC963F3B0FE73964DC5B4D38B4F0E2E3869AE868F54A149D0B6A341F074A9C60D78E3148D46BDC9FA3A9427734A4A8DDC62E5297E4D449734B1D3F9C76715D9AF229D2DD2D575FF00D3C17647F9465AD2A38B7784A4ECFA5DECFDDAE9D36DB6E0B23256AD1A942ABA75A128D48F3C5FF228B0715DD3B33DF683254024806F740AAE54ABD07CD16A71F9F83F41A236FC9F4FD5170FA1412FD6CD9C236AB2B146255E9337C003B6720006DF41D16AEB37D2A5193A54A094AB554B2E317CD18F8D9A38FC7D2C151756A1B187A1C66EEED15BBFEF3354A13EA28E0D73A3D5ED7935A450A7B29E9946AB8C72E55A3DB64D2E76DBC9ADD5791F67774653D3E9AB4B949B8C549F6B9BEA69F367AD1E4A97F99C1D44A70B45F3B7FEBFB9764C1CBD54E4BDEECFE691E7209D484A9CDC650942516E328BE78C93C34C81EDA9558D5829C7666AD6A52A537096E8000B4AC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000743C9CF68B9F8F1F41CF1D0F273DA2E7E3C7D06B62FC265188F0D97B5CD02C79416B1A578A50A94F2E8D7A78DF0CF3AE3DF27D4CE4D7633ABDBBBAD6A9768CF3C6D9EFC791CB1FB4F40071AC682935B183A468F65A1D8FA96C6124A52DD52A4F8CEA4B9B749FA1741C57641F76AD3E48BEBCCF433CF3B20FBB569F245F5E619BFD98EF895F130791BCA39725794B43516A52B669D1BA8478B749B596974B4D26BC9E33E91B7B8A1796B4EE6D6AD3AD6F562A74AAD37BA338BE6699F279D3F24B973AA724AAAA547173A74A7BAA59D57849F4B83E3B5FEC7D28AE51B9D7C5E15D4F5E1BFD4F77E546A7F71B92BAAEA719ECA946DA5DAE4B9FB6496D8FEF491F3F727731B4AD4DF15192E3F37FF000759D907B20E9FCA5E4F59E9DA57AA60AA56EDB771AD0DB28A8AEE62F0F12CC9E783FC9396D020E369566FF2AA617912FF00E4DAC026AB235E149D3C3C9C959B68EB74EA9BED541F7D4DED7E4E74659A6B0ADDA2E5293EE67DCCBCBD0CDC9EA68CB344F9AF6DE15E1F1726B696ABE3BFEE71BCB5A1B6EECEE12F6CA4E9B7E38CB3E891CC23BCE56DB76FD0DD55C656D38CFF00C2FB97FB5C4E0D739E6FB469E4C4BF7EA7D03FC5F10AB766423CE0DC7F7BAFD9A2A013A346ADCD7850B7A356BD69BC469528B94A4FC51596691E80805C64A11EE9B78518ACB6DF4248F45E4FF624D4AF76D6D72BFDCEB6E0DD286255E4BC7CF187CFB9F88F4DD1B93BA368294349D3A950A8FB975A4B7557E59BCBF9B38299578AD16A68D6C7D3A7A4757FDE678E69BD8D75FBFB495DDD7A9F4AA115BB75FCDD396D5CEDC526E297E76D2F47B1ADDDE50A95346D7745D5A54D6674ADAE3BAF9B9D7EB68F6BB195C5C51ACAF74E56CDCE508C275A357B6430B126A3951CF83C4E2EB720AE34EEC8165AEE830B6B4D3138CAE6929ECDADE633518A58DB28ED78EB2A8E25376B9A91C654949B6D2B276E9E478BD7A15AD2E6A5BDC519D2AF4A4E3529CE389464BA1A2D9EABCBDE426B9AE72927A96956346AD2AB421193EDF084A538A716F126BA1451C3DDF22B95164B757D0AF9A5CEE8C3B6A5E6391746B537FA95FCCE8D1C4D3A914DB499A20269D3A8E151384D73C65171947E660B4D8066E8F6EAEF58B3A12E29D48CA4BF363C65FB1184747C8DB6ED9A956B97DED1A385F19BC7D5522EC3D3E2558C3AB39FDAB89F46C0D5ABCD45DBCDE8BF768ED5BCB6D989A8D5D96AE2BBEA8F6AF273B32CDED2E4858EA9636B7552F2F22E7494B6C251DA9BEFB198BE93D4622B2A71D799F2BEC8A319E26329F763ABFB7EE796EBB3A71B0519C14AA4A4941B8F18E38B699CE1ED57BD8BB4ABD94655351BF8A826A2A3DAF1C79DF1898AFB10693D1AAEA1FAA9FF0049E7712A552A3945687D2F0FDA785A70B36FE478F83D5350EC51A6D969B7776B57BD6ADEDEA56DB2A70C3DB172C70C751E549E629BE7C1AB28B8EE7430F8BA5894DD37B0E63A6D22CE56B6BBAA2C54AD894974A8FE4A353A4D9FAAAEB74D66951C4A7E37F928E99F167430347FD8FE0538CABFEB5F10003A46805CEBCA7A77638B5B6AFA2DED4A8F1515D35369A588A845ACFEB67989BCD0359869B2B9A17309CAC2F69F6AB88D2EFE38CE26BADACBE1D28E276C61E155478AAF0D9FD8DEC35375A854A3076968FCD27AFF00E1EABA0EB14752BCD46DA86997B6D4ACE71846EABD251A5749E7BAA524DEE4B1C5F8D7CD1D2F52B3D6EEAFA854D36EAC6B5A5C4E8EDBA82A72ACA38FBE4127DD41F448D669DA7DB57D1E852D075D84A2AE7B755A8AA38B794938B5169AE0B99981AE6A5A3685ADDC6AB6F792BBD4E49ECB5A728B8C24E3B7336B9A2971C672684F0B8574F24A29C56CACAC68C3099EAB8424DBD6DA3BE9B5FA27D791C7F2BE9D2A3CABD529D1495355A3C171EE9C22E5FB5B3445DB8AB52B57A956B4DCEAD594AA54935DF4A4DB6FF5B2D1DAECC864C3AB689EDE46EE3F4AAA17BE5497C9006C348D22E357BD56F430B11DD39BE68453C65F5F891D9C790BA74697757778E5CCE6B6A8E7C9B5FA4E7768FF00926130357852D5F3B72FD8C63868A8A75656BF2B5DFC76B1E780DAEBBA157D16EA309CE3528D44DD2AAA38524B9D35D1246A8EB60B1B4B194956A2EE994D6A2E935ADD3D9AE60006D9500000000000000000000000000000000000000000000000000000000000000000000000000000000E518C1CA528C63159949F0492007570F2B39ED535D7BBB4D8D4C24FBAACBA5AE88E7A3C658D5B5A776DDBDBB71A1CD29733A9F6234A6CD3A3CE45918736677DD7D47DF753F67D83EEC6A3EFBA9FB3EC30417E48F433CA8CEFBB1A8FBEEA7ECFB07DD8D47DF753F67D86081923D0654677DD7D47DF753F67D877FD8F6EABDD58EA12AF55D471AD049BC704E2FA8F323D1FB1AFB9FA8FE9A1F56468F68C52C3BB2E86B62D2E133B601272E65925B2A7812FD479C39244F3BEC8724B5DB38BE09D9A69FF008E67A2B8B8F3AC1E69D923DDCB3F91C7EBCCD9C2518D6A9925CEE6E6026E15D347320C68D59AE19CAEA64DD778E1045D3ECBAE9DA3668F46B110B6A5D94A318B93E610D4EF694553A571384239C45630B2F3D4624A7394B7379650EA60B02A82BCB59335AB55E269C8CE7ABEA0D61DDD4FD9F6192F951ADB79FBA35BF5A3500DE515C8D4A987A356DC48A95BAA4FEA6E1F29B5A7DCCB50AAD358926934D3E8699674DD3354D5AA4A9E9B63717738F7DDA294A5B73D6D705F3991C97D06AF2939416BA6D3538D39CB756A9159ED54971949BE65C382CF4B47D29A7D858E97A6C2DEDA953B6B3A5C214E2B0BAB2F1C5C9F5F3B38BDAD8FA1864A338294BE9FFC94C5D3C2DD508A8DF7B69F43C8792BD8B6FAF6E954E52B9585B378A56B0A9175AE1AE2F186F6A5D3D3E4E73D6F4CD1F4BD06D9D1D32C6859D36B12708F752F8D27994BE766B356D121AC6AB6D78EEA54EDE94145538C5C6795272CC659E19EBE73654EADC56AB751AB4A34A1192542ACAA296F8EDE3269BEE712EB3CAD4AF53113729472AE497F7EA53531152A693D8C99CDCF82E6F4972938D152949C7775F5239ABDE56E95A7538C1DC4AFAB28ADCADA0B19E96E4F115E4E26A6B72FE706BD4FA5D092E9DF5E4E4BCB88E0D7AB5E8A591B2FA581C455CAD41EBB74FEFF0051DDBABBA5B62A536CE76FB961616B56A52953B89D7A3370ED5282A6B873BCB6FD1934D0EC8B72B83D22867F32BC97FA5957CBD9715434AB5B7A9E14D6EC37D3C1235A78B82F0DDBE173729765578CD712175D3325F7B9934E1AED3B4A9ABDF6ACE8C276B394296F719C64D6209536B1CF83511D7F598F15A9DC3F8CA2FD29989A85FDC6A777EAABB946A55DAA2A5182588AE2924BCA593427357F54E9603034E94670924DDFCEDEED75374B94956EA31A3AD5959EA96CBBE55A8465249F3B5C36E7E62EEA9D8B793FAD5B42EF48AF3D3FB6414A12A51ED94A49F4B8CB8AF99AC751A03ADE43EA3B2B57D32724E324EB51CF43E6925E5E7F38D8C362EB5197A92FBFECF429ED2C12853E350D1ADD2E9FF8790F28F909CA2E4CA956B9A2AE2CE2F8DD5B77504BF396331FF12C78CD0D9EAFA869EA71B4BBA9494DA728C71DD35C173A3EB26B29A7869A69A6B29AE94D1E59CB9EC5146F215752E4E51851BA8E6752C6388D3ABE382E68CBC5CCFC5D3EBBB33B768CA4A189828BF692D3E3D3CF6F2389C755A3C3AEAEBDFAAF933CA3D73EB6BFFEA357F5A3DD791176AAF21746A95A7994A8CA397D2E33947A3C87CED28B849C249C5C5B528B4D34F3869A7CCCF74EC7B53B6763DD2E39CBA556BD37F48E4BEB1E871B1528C7CFECCD5C750A54A95E9C52D7924BAF43B655E93E6A90F38AF6DA7FDE43F5A3580D1E12EA7233187CB6BC8DB721F59A90945B95BF6AE12F0E4A1FEA3E7D3D9BB225CFA9B90D730F7D5CD1A3FA9B9FFA0F14AD3C2C2E77E834E542556BAA703D4F63350C34A6FAFF0005CA7A8DD5BA71A15E74E2DEEC2C717CD9E625F76351F7DD4FD9F61820F4B0A50845452D116BF59DD99DF76351F7DD4FD9F60FBAFA8FBEEA7ECFB0C1065923D08CA8D953D4F54AF5614A17355CE724A2B8716FE63B1B5A1528DB469D5AF2AF513CCAA3E196FABC48E6792F42352FEAD76B3DAA9F73F1A4F19FD593AC3CBF6DE22F51508ECB57E7FF0088EE765E1E2A1C5E6F45E4467084FBA9C22FCA8AA8A82C4528AEA46C744B3F566A2A4D274A8C5CAA3EB6D3515FCCC1AB4256B5EA5BCD6274A4E2FC6BA1FCE8E2B8351523661DA146A62E7824FD7846327F1BFD346FDD2469F5C85E4287AAAD2E65054E3F7CA714B8C73DF2FE6734F58D471F85D4FD9F61DD35192DB2594D3524F99A679F5DD1F535DD6A1FDD5471CF893C23D2F626238907467FA76F2FEFD4E7769E1E319AAAB9EFE67B97632BAB18E93A857BEA916E3468D6949E72E2A2D3785CFDD37FACEB696BF5E7C93ABA842C34F776A13AB0B2F576233A719B8B939B865772B3DEF3E13C74788F23350BDB1B657145EDED739422A51DD19C24BBA8493EFA2D9E830E5DD28ECA9EB72D3D510A1EA78CA359A82A6DF7BB7673788E255A187A35EA294566BEAECB55EF35F13D9F5312D56826EF6E695ACADCFADB7FD8CFE5F5EE9D73C97D3EE6D9C576DB8728BCBCA518C94B83EA6D23C156B1A8E17FC5D4E6F17D876FCAAD46F353D3EE2B4D423B29AA74E8D086DA74A9B69B518F42C672F9D9E7476BB0A8D28D39CA9A4937B69C97DEE4622870230A2F95DFCDEDF0B19DF76351F7DD4FD9F60FBAFA8FBEEA7ECFB0DDF24F92171CA6B9C466A1422B2E6F82C2786DBE3C33C3C6757ABF62656DA7CEB59DD2A95210DCE2949392C65B49B7BBE668CB15DBFD9B85C47A3D595A5E5B7994AA174AED26F64FFB6F9B479CFDD8D47DF753F67D8745A4EA91BFA2E9D47157305DD2E6DCBAD7F3393AD46542B4E8D45895393525E4EA14AB4EDEAC2AD29B8D483CC64BA0EC4A119C742A94391DF03134ED421A8DB39C562A478548782FAD7899966A34D3B3286AC0004000000000000000000000000000000000000000000000000000000000000005AB8B8A56941D6AF3DB05D3D2DF525D612B82756AC28D2955A938C611599499C9EABAB4EFE6E9D34E16D17DCC3A658E97F616751D4AAEA35732EE6945F714D732F1BEB6609B74A95B565B1858000B8B00000000001E8FD8D537A76A388B7F7E87326FF26479C1EC5D861B5A46B186D7FC4D2FAB2343B4DDB0CFE1F535B17E133335BD36E356D22B595BDCCECEAD4945C6BC54B31DB2526BB969F1C639CE5BD60EB1FF00F745CF9B5BFACF68DF2F09FEB1BE5E13FD679972B9CA575B1E7FA169773A4E930B3B9BB9DE558CE5375E4A596A4F29774DBE1E5386EC929AD72CB29AFF00838F3AC7FEA4CF79DF2F09FEB3C67B32B6F94BA765FF00FD3E3FC5A8743B3257C42F89B1855FF2DCF38001E98EB000100128C652928C53726D28A4B2DBCF049113ABEC73610D4397FA4D2A91DD0A75655DA6B3C61194A3C3CB145588AAA9529547FA537F2319BB26CF6CE41F2469725793F0A3521196A17318D4BCA8B0DB9638413F0639C7972FA4DA57A7295EC283729423C631E6CA7C5E0DC162E6DA170A2DB94671EF671E747CBA58B9D4AB2A951DDCB5672B3DDDD981676CEC65732A6EB355EABA92EDF26E34D754570518A4701CA6E55D6D5EA4ED2CEA6CD3D3DAE718E2559AE96FA23D4BF59B9E5D5FDDDA5951D39D652575B9CE518E1B8471C1BE7E2D9C01AD88AC97A90491E8FB1FB3E0E3E91515FA7F255C9CE5B9BCB7CED9552EE9F7107BB824F99648B6973BC11ED90F0CD2477A50838E4DBF6FE0BF3A352828C9CA3BB3C12E745A6DC9B72796F9D94756326B74F2F9964A86578784D453AAD4A7D52B73D8C8A15A4D6C727C3BDF27517B73EB91829B8C94977CB899939C229B73514BAFC65B077D08ACACEFC8BD09E7B97CFD0CDB727A6E9F2934F92596EAED7E4945C5FA4E79DCD251728CDC9AE85CF9322D2A4355B2A93B4BB951AB4EA2A6EA41293A525869B59EEA3246791AF5ADA1CFC662E34E8B4D5EFA7CCF6C079A59F2AEF34C97A8156A57370D392A55252A8E9E1665869E76E3A1B3A0E4E72B6DB54B78D4B9B8D9DB33894A31A74935CF1CB7B9497549995D1E4F84ED7385ECC3C93852953E5359D3515292A57918AC2727C2353874BEF5F8F1E3333B16CF7F2126B3DE6A3563FAE9D37FCCED79415AC35EE4D6AD616F5E9DC3A969536CA9E67052516E2DC92C2C4945F39C07624AFBF92DA951CF797B1A98F8D4D47FD27B7EC7C5CABE0B249DDC1A5F0E5FDE8312E4F0CE325B34776003A8718B7AA68147947C94D42C6AD28CEAC94A56D269669D58C5ED69F471E0FC5947CD19DCB3D7C789F55DD6B365A0681F74AF6AD2A5468D2DFB549275258788C73CF26F81F2AF1E7C717C4765B729D4935A5D7DCF45814E34B2F2FE4A000EB9BC00274E94EB55853A7094EACE4A308C78B936F0920436755C89B2AF793BE8D08A728AA727BE78E1968ED29727EA662EF2E69D252788C212CCA4FA9396115E4A6874F42B68D39A84AF2A4335AAAE3DD73EC4FAA38F9DF1375B68D3BFAB2BAB7A9734A74F14F14F72874492C7367833C9F6AC22AB3AAA37BDBF8391F8D63658BF41A75634A166D4ACB3792BE9BDF7B595F9D8BB6F6B46CE8AA34A3B20BA39DB7D6DF4B31F50D2EDF51DB5269C6AA588D483E38EA69F0665E9D56B5B5084E49AA9B649C6A3CB49BCA4F8F578CAD5AB4E8D3955AB5214E115DD4A52C28E4A1372BA946D1B2E7F356E56D3E6785E3E230F8B7530F55BAB99ABAE7EFBDDE6CDD1AD8D03E4C54CF0BE863C749E7D27986A768AA72A6EACE353727732A7BD2C734B0DF49EE09C76EE4F29ACA6B99A3515E152EA854A119A8BAAB09B7C32DF4E0DFC04551539D35ADBFF004F59D91DBF8DC64DFA74F34236E495BABF5527B1CBC211A54E34E116A118A518AE84B81934ED27574FBABB49EDA328AE7E7CF7DFAB313611D0551A9177B76A317C314E2F385CEDC9AE0BC674746DE9D2B654E8D28AA1158C4639587E9C9C6851D5BA8FF7E6F63BDDB1FE5F468420B029CEED3BD9A8E58B4E4936B5D159DAE927BDCE11369A6B83471BAA6935E9EA55616D6771528B7BA2E9529492CACB5C17433D56BF26A84AAE6856A9463CDB30A518F932D3256F68F4E83B78D6954CCB7378C716B9B197D474FB2955A35DF468B311FE4BD9D8FA4961E4DCF7B34D5973BBB5BA73313B1B5E54B1D12F74E85A2A5AAD78455A46E22A9E64A4D3C6E587852524BA7BA47A2DE6A373A6D4A57BA849CF4CA346742E3B75284252AB1C6DA9059CCB7BE0A2B8749E53A8DC7AB2E249F754E398C53FCAC3E731EA539C552955DD27286E86E939772DB5C33E439F889D2756A38C534DBD7AF9F5B723A8BB3235B254ACED26B55AF4E5AAE4AFB68EFBAD0E1B5AAB1ADAC5CCA3CC9A8BF2C524FF006A35C76DAB72696A76F52F74D828DE438D6B78F3555CFBA3F9DD6BA7CBCFC575F0F171E7C9EC303384F0F0C9B2497CB434ABB7C69A96F72FDA5DD5B2B98D6A4FBA5C1A7CD25D299DA5A5DD2BCB655E93E0F838F4C65D299C199BA75FCF4EB9ED9159A72E138F5AEB5E345B569E6575B94CA373B5046955857A51AB4A5BA9CD6632448D32900000000000000000000000000000000000000000000000000000000187A86A5474EA4A535BAAC97714D4B8CBC6FAA2126DD904AE5DBCBCA36141D5AB27C784231EFA4FA91C75EDF56D42BBA959E12EF611E68AF110B9BAAD775E55AB4F74DFEA4BA92EA2C1BB4E928EFB9746160002D330002000000000003D8BB0C7B91AC7CA697D591E3A779D8F396B61C978DE5AEA36F5E546E6519C6B504A4E128A6B0E2DACA79E8FD46976853954A0E30577A7D4D7C4C5CA9D91EE00E6EDBB207252E9270D6E8536F9E35E13A6D79D148CA7CAFE4CC63B9EBFA763C55E2DFEA5C4F32E8555A38BF91CC7092E46E8F19ECC9F8CBA77FD3E3FC5AA77779D92792968B86A93B897816D4272FDAD28FED3C9F975CA8A1CABD6A95DDB5A54B6A34682A1155649CA494A52CB4B82EFB9B2CE9766E1EAC6B29CA2D2D4D8C353929DDA396001E88E98001001D57639BE869FCBFD22B54962152ACA8379C65CE32847F6C91CA928CA5092945B8CA2D38B4F0D3CF0699562292AB4A54DFEA4D7CCC66B3268FB041C9F20B95D4B95BA142A549C56A36F150BBA7CDDD6384D2F0658CF89E51D61F29AF42742A3A55159A39128B8BB3399E57F26E7AED9D3A96B2846F6DF73A6A7C2334F1BA2DF4737067935D52B9B3B995ADDC2742BC17754EA2C3F2AEB5E347BF9CD72D69A9E93469CE851A8AA575072A9052708E1BCC73CCF31E729924D5D9D4C0F6A4E847872578FD0F20ED751C37EC96D7F95B5E3F598D5EF285BFB64F186937D09BEB67531B4A9F7469D7A928FA9E349D2DB1A928C94DBE3BA39DAE3C39DF15BB81CA72AF4BD9527DA650ED370D496EEF7773B595CC4D1842735193DCE961FB4B8D2C8D59F2FE0C9A53A7553719652E7EB23EAB54EE7D4BDD465286F84A5DEBE86B28D5DA55F51E1F6D752315896EC2EE5793A8BFEABD2EF270AEA727522B84B6C938F1FD46CF0231E5737272A97F54A4EA5F56A756172B1DA278CC24D46717C535D78CE192A3AA5EFAA285ADCD59D5B28ADB4652967B4C9FE4F91B5F315BBB3ADB1D4B79D5AD59C937BEA2DBB5BCB5152E114F1D02D6D2A5DDF50B3A16D735ABD4928CA315150871E3BA59E88F12D8E597AB157B9837EA7FC8F6E64EE74FA952A549D1AD28AAAE2E709E5258C2DD1DB8E8EB3295FD3D1EB2B974BBAAB8854ED6B6AA9E294BA3C593572A37D55C6DA30BC529CB6C2108C949CB3B62A38597C7A0E8E8689AB4E955A7716AE8DD538294ADEAC7139C71C24A38C3CBE18CF399AC3D7A8DD3516DADD732AAF1A14A3FF002CD59FBD6A5BD2B5B8FAA154B6B1B0B6D2AE1B75E8DBA6EA6EE65372E3B9F8B877C7570D2B5AD5EFA34EDE36F4ACE3B557A9C67566D3E6926B6C782C71967C461687A0BA1A8E873A9494AA56B84E56D520A31A708C5C9E78F7D1C2697EC3D778BE76D9AD8EC054A138BAAACDADB7D2F6D7DFA1C1C4E230EE76A1ADB46F95FDC731CA2BCAFA1763FD4ABDE5C5395C52B49D38CD4709CA49C60BC6F2E39EB3CE3B0FBFF81E50473C54ED9AF9FB622CF659E594356BC8E85635633B4B4A9BEBD483CAA95526B09AE78C72D78DF90B7D87AA296A7AB596E8C675EDA138C5B4B2E33E65D7C247B1EC8C14B0D80729EF269FC15AC515A9B58693EA7A802FBB3AE9E1C629F94AC2C6BCDE14571EA7F61BD9E3D4E1D99E31D96AAC2A72C28528A59B7B0A34A5E56E53F4491C19D4F644AEABF640D62719269568D358795DCD38C5AFD68E58EA61D5A947C8F53868E5A315EE0002E2F07A2F23393BEA1A51D52F218B9AB1FBC4251E34A0D77CD75B5FA9794D5F23B934AF270D52F61FF0B4DE6853947DB64BA5AF053FD6CF426DB6DB796CD6AB53F4A39F8AAF7F5224A94B6D584BA9A3646A9F319D56E234A9D3C2DF56A70A54E3CF39633F363A59C7C7A4929B3C976CE1AA56AB49525793BAB7EEBEE65D2ABDA6A6FDB19706B0F9B898555CA95F5AD79519D7A517252A70595193E2A4965793C4645A5D4615E50AF6F8AB05DDD19F1C67829278C4970E72BCDE2F11C7E1C2ACA4EDA34B5BEFBE96F77DCE752AF5FB2F110725EBC1BF55ADAE92BDFDEB54D3E49AD1EB854D3A746EE6A8BA309CDBA70934F09A4B993696659663A7B5A6BA1E4CDBC78A2A3E13F4184773014D428D8F41D9F565898CF135124E726F4DBA7F26C250AAABCAB5BD48D394E9F6B9B71CEE8BE2BA57317A8D274ED5538544A9C310D99C378584F063C6B429DA46A5496D518A4DBCB6DF32585C5B2FD3951A96EEA46AA936D6D515C24BA72FA0E455A71A7376DEEB95F9FF0075E5B9E72B56C54A92A151B74E1992E4AFADD5EDABE89B6EDA2D0B14AAD4A8A9D4951C50AB27184D4B8E63CFBA3D1CC62D6966E252F1E3F57032D5BD1A751D5515B9394B2DB786F9DA4DF03072DE5BE76743B36334E529BB9DAECE584A95A5570B0718A8A4D3EBCEDABE8BA7923069F27E952AA9DC56A95A096F9469436A516F09C9E5BC67A8DBDF6956D7B4A9D3A91DB2847B8952693827C318F9B98B94E14EB50A529C63271585BBA31FFD172EE1536D2DB4A514D2724A58735C70D37CDC4E6CE9AA5270B69D39BB79B2BC4F6AE2F158AA7295771A906D393B28A6DDAE946292BAD1DF7DAED6FA8A3A5434D939C2E275253586A492C25E4398E55F253D5EAA6A3A753FF8BEFAB518C78565D328AF0BD3E53B2B894DCE319BCCA314A4D75F3B2C9DFC147854A397FB73B785C5626A4235ABCF34DF3D355CB64B4B1E1DD7C3C5C79F250F46E56725BD5EAA6A3A7527EAB4B756A315EDC973C92F0BAFAFCA79D1D484D495CEDD2AAAA46E8D9693AA4AC2B6CA8DBB69BEE9782FAD1D7A719454A2E328C966325C534CF3D377A26ABEA792B5B897DE64FB893FC893E87E26555A9DF54271E68E9C06B0DA7CE81AA5600000000000000000000000000000000000000000000000353AB6B31B4CD0B77195C734A5CEA9F97C7E226317276412B97754D569E9F1ED71519DC497087447C72FB0E4AB56A97156556B4E53A9279949F49194A7526E739394A4F2DBE2DB644DDA74D4517C62900016190001000000000000000000000009000000001000000000241BCE4E5C6B1A75FC754D22AC68CEDE4A33A952A4614DA7CF196E6938BC737EAE27B768FD90A9EBB5A9D85953B25A9B8273855BCC53DDCD883DB99F5E171F49F3A9916B3A14EE213B8A52AB4E2F2E319F6B937D0D4B0F1C4E1F69F64AC65E737AADAC95FC9B6ECFFF00D7CCAA74A32D5AD4FA85E99AB5E70BDD6674A328F1A361495359F8F2DD2F41A8D5AC393B696F5E92AF49EA725B6152A55957ADB93CA4FBE92CE31CC7935AF64BD463569D2BFB795F58423B7D4F52EEAC5CBC6E796E4FCA99E91C9DEC93C8CAD4E1469A86915A6F0E9D5A2A316FF4914D63C7268F1D88EC5C6D1599D3BAF9BF8A5FFC144E3282D6ED7BB45FDF816ED744D42E7776AD32BB53EFA579254A116FAA1CEFF69873B5A57159D3A9691B851789C6515B69C9369E3A227A55A5EDAEA14157B2B9A37545F355A352338BFF00145B21F736CA35A55BD4D0ED9293949B595B9F3BC3E1938D3A325A5ECCD77515F4563CF9724A7ACDB46DA76B1A36D29293AF42118EDFCE5C16E7D3859EA34753B165E69D46B5C5FEAD636FA6D08B9CEB51A529494571EF1A493F9CF697C4B1716F46EEDEA5BDC53855A1522E352138E5493E0D32FC33549A52BB5757FBDBE05F47B4311462E34DEFD753C869727ECAA518BA356B58DAB8C295A3B9DBDB6BCA4B739496EE97CCA38EE4DD52B5ADA8DCDBDBE956367A7EA3A742529DB4E4DD1AF4AAE139A9C539654A38C3E3E331E9D0AF4E73D32EB43D42E6B59DCCA74146939C553527B1C67269772B8259E274FC91B4BDF556A7A8DD58D4B485CBA50A30AC92AAD462D372EA4DBE08F758CF45C150E3D051528A5976BBBD96B67795E376EFF068E43AF5B10F2D5949DF7BDEDD74E86353E4CEB975776AEFB51B38DA52AB0B8946DE9C94A528C9494536F1B72B9FF6199AE726EF2FF5986A5A7DFD3B6A92A2A856855A2EAC671526D34B2BBA5B8CED57959A068BDB23A8EAD6946A417774BB629555FE08E65FB0E075CECD767454E9687613B99F32B8BAEE219EB515DD49795C4E350C476B62AB46AD28EA935DD4A367BEEACFEBA22F8611359523ABB6E4E4348BEA7AC6ADAECAB50B28CA549D68429429B9476B94A4B837878479FF002E7B2B54BE855D3393B5274ED9A70AB7DC633A8B99AA69F18AF1BE2FA31D3C16BBCA8D6394970AA6AB7952B462F30A31EE69C3C915C3E7E7F19A63D0E1FB2653A8ABE3A59E6B656492E7B2493F91BF43071A60927284D4D36A49A71926D34D7334C883B86ED8DF5B72D794F674D428EBB7EA0B8253ACE78F26EC98F79CA5D77504E379ACDF578358709DCCB6B5F1738FD86A4182A50BDEC8C1528277B20B8000CCB01D0725F93B2D72F2552B6E858D16BB74970727CEA09F8FA7A9187A268D71ADEA11B6A598D38E255AAB5C29C7AFCBD48F58B5B4B7B0B4A5696B4D52A1496D847A5F5B93E96DF16CAAAD4B688D4C4D7CAB2C772EC6108538C29C230A718A8C2318E2318A584922A01AA7301919552DE938D6852AD4A4A519CA39E6E86B2B835E331C14D7A11AF0C9229AD49CDC650965945DD3F7FC74B19D4E4FB654AB5EEA156A4F09BC249259C70CF8CB9DB69FF791F391AD06B43B3E9C1658BB239D88EC9F49AAEB56A8DC9EEEC96CADC925B2322EE6A52824E2D25CEBAD98E01B94E0A115147470F4234292A51D917A9CA2A34A71A90856A3577C24E0E4B9B0F82C73A65FA556108CDCEB42539CDCE52516965F52E261035A781A52A8EA3DD9457C1F1A9BA32A92C8DE6B69BF9DAFF0BDAFA99B56E29BA334A796D612E3D261005F4A92A4AC8CB078386120E106DDF5D4BAA4BB52594DC24DEC939454B2B83CA59E0F89951B8A718454AAE64924DF1E830014CB054E5373BBBB2BC4F6753C4472CDB4AEDE96DDDAFCAFC89D5929D69C9714DF0F21000DA4ACAC6EC20A11505B2D0AAF11C372CB9349AA9ABD8D3E1DF5D518479BAEA24BF7BF5F59DC154F0D70F171E6338C9C5DD1753A8E9CB323C301D672B7932B4D9BD42CA1FF0003527DDC17FE849FFA5BE6EAE6393372325257475E9D4538E64749A16ABBA31B3B89774B85293E95E0BF1F51BE3CFBFF00BCA3ABD1B55F564150AD2CDC417093FCB8AE9F29AD5A9DBD646138DB546D80050600000000000000000000000000000000000000AA59785CE50C5D49B5A6DC35269A8BE2A5864A576905AB35BAB6B8A96EB7B3966A734AAAE68F8A3E3F19CD7FF7C4B9B203640E9428645646CC69D8B40BBB203640CB86C9CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB20364070D8CACB40BBB2036409E1B19594A752A50AB1A946A4E9D48F153849C5AF9D3C9BCB5E5BF2A2CE6A74B5ED4678FC9AD5E5517EA9366936406C81554C2C2A6938A7E6AE43A69EE7714BB2FF002B29A49D6B3A98E99DBE5FEC689BECC7CAB6B1FF0000BC6AD9FF0051C2EC8F514D90353F06C1FF00F4A3F22BF478743ADBDECA3CAEBD86D7A8AB75D76F4941FEB39EBBD7B58D469F6BBED56FEEA9F815EEA738FEA72C187B203640BE9767D0A5E1C12F2466A925B22D2497302EEC80D9036386CCB29681776406C80E1B1959681776406C80E1B1959681776406C80E1B1959689C5294D2728C53696E79692CF3BC6592D901B22386C6567AEE876163A7E914A9E9F5215E8496E95C4249F6D974B6D7A3F24D89E45A5EAD79A2DC3AB67576A93EEE9CB32A73F8CBFF0019E91A0F2A34BD6F6519C23697AF82A3527DCCDFE6C9F3FC57C7CA6955A3286BB9CAAD869C1E6DCDA0335D0A717870498ED34FFBB89466354C2066F6A87811F34AF6B87810F3466060833BB5C3C0879A8A76B87810F350CC0C206776B87810F3515D90F063E6A198930019FB21E0C7CD436C7C15E6A19818191936185E0C7CD1C3AA3E68B835F95D632BAD1B0197D6C5C18195D60CFCBEB197D63303007CCCCFC8C8CC0D74A119C254EA4233A728B8CE12598CA2F834D1E61CA8E4D54D12E156A0A53B0ACDAA727C5D37CFB5BF43E947A8EB1ADD9E8766ABDDCDB94B2A951877F51AE84BA175C99E51AE6B97BAFDCF6EBBA98A716FB550837B29AF12E97D6CD8A119C9DD6C6E61213BDD6C68C9C273A5514E12719C5E6325CE9A27B21D453640DCE1B3A5959D7E99A94751A0DCB6AAF05DDC7F9AF13338E3F4BFBDEA76CE0DA6EA463C1F3A6F0D1D81A15A9E491AF38E5600052620000000000000000000000000000000031753F732E3E23328C5D4FDCCB8F88CCA9F7D7992B7471C003B26E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761A072EAEAC142DB528CEEED56146A6ECD5A6BCAFBE5E27C7C67A25A5E5B6A1691BAB3AF1AF427C14E2B99F54973C5F899E166C34AD5EFB46BB571655BB5C9F7328BE31A8BAA4BA7D26A56C2A96B1D19A75B09196B0D19ED60D1E81CA9B1D79469C716F7B8EEADE52EFBADC1BEF978BBE37873E5171767B9CC945C5DA4000418800000000000000000000000D2728B94B6BA051506956BE9C3753B74F993E6949AE65FB5983CA8E5853D1F759D8B8D5BF5C2527C6143CBD72F17474F51E655AB54B8AD52B56A92AB56A49CA5393CB937D2D9B3430EE7EB4B63730F8573F5A7B176FEFEE753BCA977795A556BCDF193E64BA125D097518A01D249256475124959000124995A77BA76BFA58FA4EC4E3B4EF74ED7F4B1F49D89CFC67791AF577000350A80000000000000000000000000000000062EA7EE65C7C466518BA9FB9971F119953EFAF3256E8E3800764DC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002797192926D4934D38BC34D7334D1DDF27F978E3B2D35B93927851BB8C7325FA44BBEF8CB8F59C082BA94A351599554A31A8AD23DEA3284E9C2A539C654E694A328B528CA2F99A6B9CA9E43A0729EF740AAA107DBAD24F33B69CB871E7717F932FF00C67A8E97AB596B56AEE2C6A3928B5DB294B84E9B7D125FCF98E655A32A6F5D8E556A12A4FDC66800A8A0000000000005252842329CE7184229B94A524A318AE76DBE600AA4E4D249B6F992386E5472D94154B0D1AB665C635AEE12E6E871A6FF00D5FABACC0E54F2CA5A829E9FA649D3B2E31AB5B8A956EB5D6A3FB59C61BB430DFAA7F23A186C2FEA9FC8AF5F1F19400DF3A20000000006569DEE9DAFE963E93B138ED3BDD3B5FD2C7D276273F19DE46BD5DC000D42A0000000000000000000000000000000018BA9FB9971F1199462EA9EE65CFC46654FBEBCC95B9C7000EC9B80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032ACAF6E34EBA85CDA569D0AD0E6947A574A6B99A7D4CC504349E8C86935667ABF27B9636BACBA76D76A36DA83E0A29E29D57F9ADF7AFF0035FCC749CDCE7827A4EDF93BCBAA96CA9D9EB139D6B7E0A1738DD529AE6EEBA651FDBE5342B616DAC0E757C25BD6A7F23D1011A5529D7A34EB519C6AD2A8B30A906A51927D29A24699A00031352D4ED348B37757B55C619DB082E32A92EA4BA5849BD112936EC8BD73756F676B52E6EEB46950A6B329CB9BC8BADBEA4797729F9595F5CA9EA7A3BA869F1798D2DD8755AE694F1FB174187AFF00286F35FBA53ACFB5DBD36FB4DBC5F730F1BEB7D6CD31D1A186CBEB4F73A987C2A87AD2DC000DB370000000000000032B4EF74ED7F4B1F49D89C769BEE9DAFE963E93B139F8CEF235EB6E0006A15000000000000000000000000000000000B37542571695A8C6518B9C70A4F9917804ECEE81CFFADBA9EF9A5E631EB6EA7BE69798CE8017FA4D4EA67C491CD5C68752DEDAA56957849416E71517C4D49D86A7EE65CFC4FE671E6E61AA4A716E45D4E4E4B505DA145D6B8A5493DAEA4D4537D19782D193A7FBA76BFA687D645F2764D99BD8D97ADBA9EF9A5E631EB6EA7BE69798CE801CCF49A9D4D6E248E7FD6DD4F7CD2F318F5B753DF34BCC674007A4D4EA389239FF005B753DF34BCC63D6DD4F7CD2F319D001E9353A8E248E7FD6DD4F7CD2F318F5B753DF34BCC674007A4D4EA389239FF5B753DF34BCC63D6DD4F7CD2F319D001E9353A8E248E7FD6DD4F7CD2F318F5B753DF34BCC674007A4D4EA3892396BFD2676341549D6854529A86D516B9D37FC8D69D37287DCEA7FA75E867326F509B9C2F22FA6DB5760CAB1B495E5CAA319C60DC5CB7359E6314D9E83EEA47E248CEAB7183689968AE647ADBA9EF9A5E63326D392756EA524AEE945C526F3193E7F21B733F49F6CADE45E93469D7A8E4936723B4F175686127569BB356E4BAA473575C90AB6B153F56529293C24A125E9317D6DD4F7CD2F319DA6ABED14BE3FF23562A57A91959330EC8C6D7C4E1555AAEEDB7C975381BCADEA2BCAD6B3A5272A52716D4B835D0D795712C7ABE1FDCCBCE46DF96165B6E685F4570A8BB54DFE72E317F3C7EA9CC9C5AFDA78BA551C737ECBF83A8A7233FD5F0FEE25E721EAF87F712F391800ABF17C5FB4BE4BF819E467FABE1FDCCBCE46DB49B27ABD0AB56138D2ED73DAE32597C5673C0E68E9791D5B6DD5D5BBE69D38D45E58BC7FA8BF0DDAB899D55193D1FB97F01CE467FADBA9EF9A5E631EB6EA7BE69798CE801D5F49A9D4C789239FF5B753DF34BCC6626A7A5CB4CB195CCEAC2A28C945463169B6DE3A4EACE7396355C74EB6A2BFF52B393F2463FF00FD1557C655A74E524F60AA48E77D5F0FEE25E721EAF87F712F391800E47E2F8BF697C97F0659E467FABE1FDC4BCE43D5F0FEE25E723000FC5F17ED2F92FE06791B5B3AFEACBBA36B0A4D4AACD45372E0B3CEDF917137EF93953DF34BCD66BB92167DB2FEB5DB5C28476C5FE74B87EC59FD6762F999D3C263311529E79BFD911C495CC08F222B4D464AFA8ACA4F1B25D28C0A9C9BA90AB387AA693DB271CED7C70F077D4BDA69FC58FA0D156F6FABF1E5E937EAD59C52699E73B17B53158AAD52356574B6D12FA1CE7ADBA9EF9A5E631EB6EA7BE69798CE8014FA4D4EA7A2E248E7FD6DD4F7CD2F318F5B753DF34BCC674007A4D4EA389239FF005B753DF34BCC66B2EED9DA5D4E84A7193863325C17149FF33B3393D6FDD7AFFE1FAA8BF0F5A7395A4CCE9CDB7A98000374BCD9D9E8F52F2D9568578453938ED716DF0323D6DD4F7CD2F3199DA17B96BE3C8D91CEA988A8A6D266BCAA49339FF5B753DF34BCC63D6DD5F7C52F359D0030F49A9D4C78922CE833D4F41AAD51BAA55ADA4F352DE6A5B65E34FF00265E35F39DFDA5EDBDF5175284F2977D1970945F8D1C3172857AB6B5E3568CE50A91E95D2BA9AE945529393BB35EAD353D799D8EA1A8D1D3A8A9544E75249ECA5BB8C9F8FA978CF38D52CB51D66F1DDDF5F529CF188C6316A34D7545678236B5AB54B8AD2AB5A7294E5C5C990109B83BA268C387AADCE7FD6DD4F7CD2F318F5B753DF34BCC67400B7D26A752FE248E7FD6DD4F7CD2F318F5B753DF34BCC674007A4D4EA3892340B93551B4BD534B8FE6B349CCFE7C1DDC7BE5E53847D3FF009D26D61AACA77CC5B4A4E57B94001B45A6E61C9FA9529C66AE292528A925B5F4AC92F5B753DF34BCC66F2DFF0005A3FA38FD545C396F1352FB9ABC491A4B6D06A50BAA555D7849539A934A2F8E19BB00AE7525377918B937B80018100000000000000000000000000000000000000000189A9FB9973F13F99C79D86A7EE65CFC4FE671E74307DD7E65F47660C9D3FDD3B5FD343EB2318C9D3FDD3B5FD343EB23667DD65B2D8EC800718D300000000000000000000000D57287DCFA7FA75F56473274DCA1F73E9FE9D7D591CC9D3C2F866CD2EE8367A0FBA91F8923586CF41F7523F124675BC37E4653EEB3A833F49F6CADE45E9300CFD27DB2B7917A4E6D2EFA381DB5F90A9E4BEA8BBAAFB452F8FF00C8D59B4D57DA297C7FE46AC9ADDF29EC0FC8C7CDFD4D7EB76BEADD1AE69A599C63DB63F1A3C7F6AE079DA79595CC7AA26D49789E4F36D4ECFD41AA5C5B2588C24DC7E2BEEA3FB19C5ED287766BC8EE44C4001CC241B7E4C54D9CA0A0B38552128BF35BFE46A0CDD22A3A5ACD94D7F7D18BF237B5FA4B28BB548BF7A0CF4701F383D2180390E59D5DD7D6B473C2349CB1E394B1FE93AF382E53D4ED9CA0AEB3954E31A6BE68A6FF006B34B1F2B51B7564ADCD4000E21900DE16419BA3D97DD0D5685BC9660E5BAA7C58F17FAF9898C5CA4A2B983B4D02CFD45A3508358A95176D9F965CCBE65B4D9BE661B72936F9DF10F999E9611508A8AE460B73A1A5ED34FE2C7D0686B7B7D5F8F2F49BEA5ED34FE2C7D0686B7B7D5F8F2F49B75F64790FF1CFCC55F87D48000D63D7800000E4F5BF75EBFF0087EAA3AC393D6FDD7AFF00E1FAA8D9C277DF91652DCC0001D2364EA742F72D7C791B235BA17B96BE3C8D91C8ADE23F33527B8001598800000000000000000158F7CBCA708FA7FF003A4EEE3DF2F29C23E9FF00CE937707FABFBD4BA8F32800378BCEDEDFF05A1FA38FD545C2DDBFE0B43F471FAA8B8711EECD27B80000000000000000000000000000000000000000000000000626A7EE65CFC4FE671E761A9FB9973F13F99C79D0C1F75F997D1D983274FF0074ED7F4D0FAC8C63274FF74ED7F4D0FAC8D99F7596CB63B2001C634C0000000000000000000000355CA1F73E9FE9D7D591CC9D37287DCFA7FA75F56473274F0BE19B34BBA0D9E83EEA47E248D61B3D07DD48FC4919D6F0DF9194FBACEA0CFD27DB2B7917A4C033F49F6CADE45E939B4BBE8E076D7E42A792FAA2EEABED14BE3FF23566D355F68A5F1FF91ABF9F04D6EF94F607E463E6FEA0E5396369895B5EC577D9A537E35DD47F99D5989AA59BD434CAF6C977728EE8678774BBA8FEB34F114F8949C4ED1E6C02E2B9B1D2D03CF1602B4EA3A35215173C2516BE6792851ACC5AEB401EACF0E4F1CDC5A289E798C7B4AEABE9D42E1471BE8C6585F9398A37DCA2B7569AA51A11515B2CEDD4B114936A92CBE1D67A6534EDEFD4AAFAD8D6BA35234A9569C651A559C9426F9A5B71BB1E4C9E5B775DDDDED7B96BDB6729AF237947AE72BAA3B2E43E915399FA8AE1A6BC2954693FDA8F1D4B0B072B1F533655E7FC1941DF500039C640EC792165DAED2B5EC962559EC87C54F8BF9E5F54E6F48D32E35AD5ED74CB5F6EB9A8A9A974463CEE4FF36314DBF144F4AD26C235ABD869B43B98D49D2A116A3C62A5251CFF00337F014D39B9BE46326403E6664EA30A34B54BCA56E9AA14EBCE14D3965ED8C9C565FCC4EFACA36767A7C9CE4EBDCD077138F4422E4E314BC6D2C9D7CCB4F798A7B1B5A5ED34FE2C7D0686B7B7D5F8F2F49BEA5ED54FE2C7D06AAFECAA5A46DEBD4947FE2D4EAC61D318A9CA29BF2ED6CDAAED597F791E47FC71FF00D8ABFDE661832F4DB09EA374E929AA54A9D3956AF5A516E34E9C566526973F525D2CC4A719D59421184A5526E318C631CB6DF04925D26AE6576BA1EBAE0069C64D3524E2F0D3E74D032241C9EB7EEBD7FF000FD54758727ADFBAF5FF00C3F551B384EFBF22CA5B980003A46C9D4E85EE5AF8F23646B742F72D7C791B23915BC47E66A4F70002B310000000000000000002B1EF9794E11F4FFE749DDC7BE5E53847D3FF009D26EE0FF57F7A9751E650006F179DBDBFE0B43F471FAA8B85BB7FC1687E8E3F55170E23DD9A4F700000000000000000000000000000000000000000000000000C4D4FDCCB9F89FCCE3CEC353F732E7E27F338F3A183EEBF32FA3B3064E9FEE9DAFE9A1F5918C64E9FEE9DAFE9A1F591B33EEB2D96C7640038C69800000000000000000000006AB943EE7D3FD3AFAB23993A6E50FB9F4FF4EBEAC8E64E9E17C336697741B5D023296A8B6C5C9AA7293496782596F8788D51D7F634A31B9E5C5ADB49A5DBE85C5259E6CCA94919625E5A329744C5576836663E08DD52B19585E3A4E6E7DB2DA8D68CB6E162714F1CEF9B3834BB6504E1516D947B9945F3A69E1A3AEB9DB71A3E857EBBE959BB59F9694B6AFD8CE5C24D558F477FA1C0EDB76C0D4F87D51AAD4E0A5A739E38C6BC567A938CFEC457929495C728E953F0A8DC478F437464B266BB3AF7DA4DF51B6A156BD7FBCCA31A71DD2E12C37C3C4CD8F24F933AB69FABABEBBB656F0851AB18A9D48E7749351CC62DB4B895E2EA28E64DEBFF0086BF61C97E1E97BDFD4E114BEF2A5F9B9FD86EF9534BD4DA9D1A29BC52B1B68AF9A944DF5B76359F6B8C6EF56825B7128D0A2E4F9BC2935E83A3BEE48E93A95EFAA6EE373525DAA14F6C6A6D8E22B09F059CFCE6BCB154D4935AEE761D58DCF9F3B21E8AB44E57D585386CA3794695E5359CE37C5397EFEFF9B072A7D05D9739294750E494B54B3B7FF8DD2D464E4B2E52B78ADB28F3FE4F0967F3647CFA716A2B48B694B344000C0B0F55E49727359D5F92767716963DB68494E119BA908A6D4E49F7D24F860EEF945C93D5356D4E8DC5AC6DE31569469CDD4ACA2D4A2B0D6164C6EC2D5FB7F63D507C7B45F56A697526A12FF51E847461899DA3EE469CEA4B3791E31D96AC2E34BE46F27A856A94BB645CA84E306DB6D3736D70598AEE4F1D3D5BB3AEA0AB728349D3239C5ADACAB49F46EAB2C63F5535FACF2934EB4DCA5A9B14BBA002F59D9D7BFBDA1656B4DCEE2E2A2A54A0BF2A526A2BD254587A7F61FE4AD6BD96A1CA16A9C553A156CECDCDB59AD28E1CB827DCA8CB6E5784775A0F22B50D2F5DB1BEBAAF673B7B79B9CA34A72726D45EDC2715D383ABD0B47B7E4FE8565A45AE1D2B5A7186E51C6F973CA6FC726DC8CF37694E54E2E2B99A32A8DB76E67995C720B5F94AA4E3EA29B94A52C2AFC72DE7F29232B947C96D66EF5387A86C7B75BD0B5A5429CD568272518259DAE49AE393D0CAAEF9794BFD26774F4D0955657B9E58E9CA8B74A5CF4FB97E55C196794946E6A5E5ACA36B5DD0A1636F49555465B5B5052789630F8C999777F86DCFE9A7F599E8DA74A70D2ECF136BFE1E9F33FCD47531B578718C8F2DFE3F2CB88AAFFBB9E5B70A3A3F24E85BB928DE6AF255EA2CA528DBC5F72BFC52EEBE61A1C5E9FA7DFEBADE2A5BAF53DA67A6BD458DCBC718E59EAF52953AC9AAD469D54F87DF211970F9D330ABE89A55CDA46D6AE9F6EE829BAAA9C23B2319B58725B71C70737D253566B77A9EAB889AD4F1A842739469C23294E4D42315CEE4DE12F9D9B4D7685B585DD3D32DE9C252B38ECB8AFF00955AABC3971F062FB94BCBD67A2DA724746B1D468DEDBD0AB0AB465BE09D6728A96309E1E79B9F9CD257EC750AB5FB64756AB28CA7BAAF6DA2B74B32CCB128BE77E42E58984A5AE88CF8916CE2EE34F9DAE9F6B755A718CEEB32A3436F74E92E1DB25D49BE0BAF9CE235BF75EBFF0087EAA3D83949C95D6EFB56AF796F6F6F52DF11850A54AAADD0A718A515B658EAE83CAB951675B4EE50DC5B5C476D68C294A717CF172A71961F8D6EC1D1ECFA8A72DF5B1B14249B34A003AC6D9D4E85EE5AF8F23646BF93D4AA56B1A346941D4A952B38C60965CA4DE1248D84E2E127092DB28B7169F3E53C60E4567FF233525DE60069C24E2D4A328BC4A2F834D74305662000000000000000000563DF2F29C23E9FFCE93BB8F7CBCA708FA7FF003A4DDC1FEAFEF52EA3CCA000DE2F3B7B7FC1687E8E3F55170B76FF0082D0FD1C7EAA2E1C47BB349EE0000000000000000000000000000000000000000000000000189A9FB9973F13F99C79D86A7EE65CFC4FE671E74307DD7E65F47660C9D3FDD3B5FD343EB2318C9D3FDD3B5FD343EB23667DD65B2D8EC800718D300000000000158467394614E3294A5C2318C5B6FC8900500CE5651B1D534F85A51D3EEA8EE76D7B6D1A916E59C548F73523F34967FC462E4934990D9AF709C6319B83519676C9C5E1E39F0FA7065D869F535085E76992EDB6F6EEBAA5B5B752316934B1D293C9B4D12DD6B5A4DE68AB6FAAE966EEC9F4CA4928D487F8928BF2989C99AD7B439416973636B5AE274AA62A53A5193EE5F09278E0B83E93094DDA496E8C5CB47EE394E50BCE9D4DAE6EDEBEAC8E68F4BEC91C96A9A2DA4EF29D4A4ECAADF28508464F725284A5C5612496DC23CD0EAE06719D1BC4DBA325285D03AFEC6B6D5AE397562E8D484254735E4E79C38C70DA58E9C1C81DD7624FC7BA7F25ABE84658C6D509DBA315BC367A8CF90DA4D7D46EAEEE2ADD54EDF56557B529A8C62E4F73594B2F8BEB31F94B616BA6E9B616D694151A11A936A2A4DF16965E64DBE275A735CB1FC16CBE3CBD08F3D839CA55E09BFED8F33DAF26F0552FEEFAA31791DF875D7E817A51D79C8723BF0EBAFD02F4A3AF1DA1E3BF814F627E4E3F1FA8001A47588CE14EAD39D3AB055294E1284E128E6328B58945AEA699F2872AB437C9BE54EA3A33A8AA42DEB629CF7293941F751DD8E9DB28E5759F5945ED92973E1E4F94F96DA556D1796BAC58D69BA925752AB09CB8B9C66F7C64DF4BDB2E3E329ABB17D0EF3342002936CF64EC13AAD475358D12534E8A8ABDA71DBC54B2A1279EA6B61E8DCB6E5054E4C723F50D56828CAE69C634E8292CAED92928A6D74EDCEEC7E69E2FD85AE636FD90E349BC7AA6CEB528F8DAC4FD103AEECEBAAAA7A4695A3C1F755EBBBAA98E6518476C53F2B9BF34BA2ED034E70BD5B1E37AAEAB7FAE6A35350D4AE657379571BAACE293924B6A492492492E846180526DA5607ADF611E4CFAA350B8E52DCD3FBD5B2950B4DCB84AA4962725E48BC7F8BF34F246F09BE7E19C1F55721F48AFA0721F48D32E9B5714A86FAB16B0E329C9D4717E38EEC7F84CE9C6ECA6BCAD1B7537E00364D405577CBCA50AAEF979404798DDFE1B73FA69FD667A2E9DEE558FC9E9FD5479D5DFE1B73FA69FD667A2E9DEE558FC9E9FD5475FB4BC289E63B0BC7A9FDE664000E41E9C000007CFBD937FE62EABFE4FF0699F411F3EF64DFF0098BAAFF93FC1A6753B23C77E5F746CE13C4391001E8CE91EA7C80D22F69F25EEF5CB5A2EBDCC2352959C2971946A37B65531D714F860BDC9FB39D85FDCEA57D6F529D2D269F6E942B45C5BAAFB9A51C35D32E3F31D0F628FC43A3F2AABE989D9DC50A37B46542EA8D3B8A4F9E9D682945E39B833CBE26BB55A717CDFEC72EA546A52478D699675B5AD6ADED255252AB7559BAB53A52CB94E5FAB732DDECE8DE6A75A5634234E8D5ABB6DE953CB78CE23CFCF27C3E73D3BD6969F6F1BC9E9AA56771716F2A119EE75234D4BBE928B7952C70EF8E6ECB92F7FC9CAF73AA56A50BB7674775A42DE2E6E755F729B8E32947396651C445B6D7C112AAA7A9CC6A7651D36F1DA3AEAAD7A514ABE23DCC2A7E54232CF75B799BEB31AAD0AD425055A9CE9B9C23522A51C3945F18CB8F43363A05AD2BBD42B5DDF66A59D94657574DBEFF0F845FE74A5C3F59817B795AFAEEBDEDD493AF5A4E739797992F125C0BE2DDF29626EF62D03697F63434BB1A342E2127AA564AB4E3BB11B683E318B4B9E525C5E79978CD5AE394B2F1CFC782C99464A4AE894EFAA000322400002B1EF9794E11F4FFE749DDC7BE5E53847D3FF009D26EE0FF57F7A9751E650006F179DBDBFE0B43F471FAA8B85BB7FC1687E8E3F55170E23DD9A4F700000000000000000000000000000000000000000000000000C4D4FDCCB9F89FCCE3CEC353F732E7E27F338F3A183EEBF32FA3B3064E9FEE9DAFE9A1F5918C64E9FEE9DAFE9A1F591B33EEB2D96C7640038C69800000033EEF4C951D2ACB52A33955B6B88B84E5B7DAAAA6D4A0FE6C34FA486D222E58F51D67A73BF4A2E82AFEA79352EEA3271DCB72E84D733161793D3B51B5BEA71CCE8558D551F0945E5AF9D1B0E4EDFDADADDD6B2D49674CBF4A95C293EF1A798CD3E8717D26C69F207559EA75EDA7529D3B5A72C46EE5C7B645F14E315C5BC7CD9E92A9548C5B5536FB18B925A48D772974CA5A6EA51AD6CD3D3EF57AA2D66B82DAF8B5E559375A268D79AD7246E34EAB4256EE95C46BD8D6AD19462F7709AEB6B1C79BF28ECB4ED1AD34FD3ADAC9FFC546DA529539DCC22DC5BE7DAB188A364DB93CC9B6FAD9A73C4B71515CB994BA9A591CCE89C8AB2D1EE695E54B9AB737946598C97DEE117869E22B8BE0FA59D24631A7070A718C2196F6C128A6DBCB7C3A4A835E5394DDE4EE56DB7AB3CFF00B317E265AFFD461FC3A87879EDFD98BF12ED7FEA10FE1553C40F49D95F97F8B3A384F0C1DD7624FC7BA7F25ABE8470A775D893F1EE9FC96AFA11B18CFCBCFC8B2BF86CF7639AE58FE0B65F1E5E8474A735CB1FC16CBE3CBD08F3981FCC47FBC8F31DADF92A9F0FAA31791DF875D7E817A51D79C8723BF0EBAFD02F4A3AF32ED0F1DFC0ABB13F271F37F5000348EB067957665E436ADAAD6D3F5CD2F4FAD773A745D0B9A3421BAA28A939424A2B8BEFA49E38AE07A85D5D42CAD2B5DD45985083AB28F5E1671F3F310D2B967A46A95A95BC675285D555C295683599638C54B99BF9F894D59C57AADEE671535EBC56C7CA757931CA0B74A571A1EA56F16F6EFB9B69528E5F46E924B25DA5C98D4269CAB4A8DB412E3BE7BA58F2473E93EC4BCB4B7BFB4AB69774615ADEAC76CE9CD65493E867393EC7DC9B7796D734AC3B44A8548D44A9CDA8CDA69A528BCA92E023187EAB95D4C4577DCB1CB7213B17699A0D8586BF4AADC5D6AF3B65522EB6234E9B9C7BA518A598BDAF6E5B6FD062764FE49DAF2A793F4F5AA575DA2E2C69B74E5286635612696D693CC5A9733F2F03D3756D469D858D593A91559C5AA716F8B935C381C75F69D79A9F22EE2C2CA976CB8A9522A116D2585520DB6DF325C595C669D5E1F2DCB5A9AA2EAF35B7BF467CD37BA4DFE9E9CABD0976B5FF00A90EEA3FAD737CE612927CCCF7CA3D8CF94B3ACA335654A1D351D794935E451CB2CDE7621D4E77293B6D32EA0DA52AC9A8CB0DF1EE5C79D2F1974A8C2FEAC8A69E3AA25EBC3E479E7630E4D2E5272CA876E8EEB2B1C5D574D654B125B20F3D72C67C499F4B36E52726F2DF1660697A0693C9EA756DF49D3A8D953A924E71A6B8CDA58596F2DE0CF2611CA8B6A4F3BB800199802ABBE5E5285577CBCA023CC6EFF0DB9FD34FEB33D174EF72AC7E4F4FEAA3CEAEFF000DB9FD34FEB33D174EF72AC7E4F4FEAA3AFDA5E144F31D85E3D4FEF332000720F4E000003E7DEC9BFF0031755FF27F834CFA08F9F7B26FFCC5D57FC9FE0D33A9D91E3BF2FBA36709E21C8800F46748F7AEC51F88747E5557D313B6389EC51F88747E5557D313B63C862FC79F9BFA9C8ABDF60AA78E6280D72B30F51D22CB57B4AB6F774B10AB28CA73A72D92938E76B6D73E33D39394A3C86FB9BABD3BE537A8D95052ABEA7DAA356728ACC60D77B24E476E0CE352514D264A934AC8F1854352D735F9519D39BD4AEAB37384D38B849F17B93E318C57EC32F59BCA51DBA3699272B0B79A8B9463DD5DD55C253963BEE3C22BA8F55BAB4A3770A9DB53552A5295175E9B4AAA83E75196328E327C97ABC97A577AA58A9EA571496DB48AA7C68653CD49478EE71E8C794DB8622327AAB5B65EF2E5513DCE36FEC2E34EB956D751846B28294A0A6A52867F2658CE25E2318D8E97A7C6FD5C5F5E56A94F4FB7CCEE6BF7D29C9BE1059E79C9FEAE766BE31954938D3849CB8CB6A4E4D4571CBC2E846E45F2E85C9F228003224AC7BE5E53847D3FF9D27771EF9794E11F4FFE749BB83FD5FDEA5D47994001BC5E76F6FF0082D0FD1C7EAA2E16EDFF0005A1FA38FD545C388F76693DC000000000000000000000000000000000000000000000000031353F732E7E27F338F3B0D4FDCCB9F89FCCE3CE860FBAFCCBE8ECC193A7FBA76BFA687D6463193A7FBA76BFA687D646CCFBACB65B1D901CC8B95E856B5ABDAEBD2A94AA38A928CD34DC5ACA6B3D0CE29A65BCAEB3334EA56171712A3A8DC55B584E38A75E314E34E79E0E71E76BC8F819FA3D3B4D5AD1E8F712A742EFB63A96372D61393494A9C9F53C70EA66B6E74FBCB3D41D857B6AB1BB52DAA8A4E52937CDB71DF27E230CC9DE3B331BDEE8BDAA68F7BA35C469DDD38ED9ADD4AB539669555CE9C5A377C89A17B735EBDBFA89DCE8F70B65D6F7B611697069BFCA5E2E2749C9EE4F5E50D0EA586BAE9D7B69B52A76525B9D069E7BE4F867A97DA74D18C614E30A708C29C56D8C22946314BA125C11A7531178B86FEF299D4D2C68F47E48697A44D565095CDC464DC6B5C454B62CF0DB1E64D75F39BDE700D5949C9DE4CA5B6F700031000001E7DD98BF12ED7FEA10FE1553C40F6FECC5F8976BFF005087F0AA9E207A5ECAFCBFC59D2C27860EEBB127E3DD3F92D5F423853BAEC49F8F74FE4B57D08D9C67E5E7E4595FC367BB1CD72C7F05B2F8F2F423A539AE58FE0B65F1E5E8479CC0FE623FDE4798ED6FC954F87D518BC8EFC3AEBF40BD28EBCE4391DF875D7E817A51D79976878EFE055D89F938F9BFA800D1F28F5F8E916EA85BB8CAFAAC7B95CEA9C5FE54BF92342735059A4762107396589ADE5AEAAA3463A5519E6526A75F1D115C6317E57C4D368766945DE5459DD98D352EAE997F23556F4677B79184A5273AB2729CE52CBC73CA4DB3AF8C6308A8416D8C528C5782970470F1155CE573BB87A4A9C72A3616DAE6A1694D4215635211E09558E5A5D59CA64AAEBFA955FF00D68535CD8A74D2FDB2CB35A6C6C74CEDF18D5B8CAA6F8A8AE0E4BADF522293AD51E48366356187A6B3CE28C4B3B29DDD5C534D473DDD4EAFB59D4D0BFD334BA11A32ACA9CA31EE961B7FB110842308C6108C6318F3457047357B57B7DF569C79B76D8F9170FE46DCE0B094D38EB266A26F1B3B4B48A3A9872974F92599558B7F92E9BCFECC9CD57EC974A17D1A7434F94AD14946752ACF6C971C36A293E0BC78310E4754A4A96A77305CD29EE5E492DDFCCA638AA92D0BBD028C5DCF5DA93ED951CF727BB8A6B9B1D18226AB93779EADE4F5A4E4F33847B54DBEB8F73E8DACDA9D88B5249A39128B8B717C8000C8805577CBCA50AAEF979404798DDFE1B73FA69FD667A2E9DEE558FC9E9FD5479D5DFE1B73FA69FD667A2E9DEE558FC9E9FD5475FB4BC289E63B0BC7A9FDE664000E41E9C000007CFBD937FE62EABFE4FF000699F411F3EF64DFF98BAAFF0093FC1A6753B23C77E5F746CE13C4391001E8CE91EF5D8A3F10E8FCAAAFA6276C713D8A3F10E8FCAAAFA6276C790C5F8F3F37F539157BEC000D72B000000E6795CE00069B943C9DA3AED92A31ACEDAAC26EAC5C57DEE537CEE5158DCDF5F39C4EBCAB72728C743B2857A30AA94EE6F1ADAEF24D7345AE6A6B38C7EBF1FA7962FACADB52B39DA5E518D6A12FC9973A7E145F3C5F8D1752AD92C9EA8CE33B6FB1E3561A75EEA95E546CA83AD38C774F12518C23D72936925E52DDC5095B5CD4A12A94AA383C3951A8A716F1F9325CE767CA7D1F55B7A56FA6E9166FEE449A8AA76B16E55278E7AAF9DF89F7A682BF26AE6CA0FD5D7FA65A54516FB455BA4EAE52CE36C54B0CDF8564F5BFC0BE334F534F1EF9794E11F4FF00E749DDC38CA3E54708F9DFFE749D4C1FEAFEF536A8F32800378BCEDEDFF05A1FA38FD545C2DDBFE0B43F471FAA8B8711EECD27B800000000000000000000006A403274FB396A1A95AD9426A33B8AD0A4A4F9A2E4D4537FACD77A6A566303A1A1C9BB5B9B1F56D1D52556876CED4A50B3AB2CCB196924B3C173BE6595D6615FE9342D2CAA5CD1BEEDCE9D6A746A539509D2945CE339278925D107FB0C789123323560CCB9B15434BB1BCED8E4EEA5556DDB8DBB1C573E78E7715BDB28DAD969B5D4A4DDDD195569AE09C6A4E185F3453F9C9CC89B9840D9D968B5EFAD25750BAB0A54A32DB2EDF750A6E2FA32A4D633878EBC1B2BAE4854856B5A56D7FA74E75A842A6D9DED35294A4B8ED59E31EA7D2439C53B5C8CC8E6819F6FA742BDE56B377B6D1AF1E14A5BD4A9D5967BD535DCACAE66F8678651B2A1C99A55AF29D97DD6A0AEE54E15254D51A8D454A0A69396DDBDEBEB0E696E1B48E781997F6B6B6AA0A85FC6E6527DD46346A41C575F7514619927724C6BFF00C02BFC4FE673274F7C9CAC6BC526DB8E125D3C4C89720F528D5D1E9D6B7BBB377D3746ACAEEDE518D2AA9B69278EE938ADCB1C783EA36E8548C23EB32D84925A9C817ECBF0EB7FD247D28E867C96B3958D4B8B5D7695792B5A9754E0ED2AD3EDB0836A4D4A514B834D795173927C8FD47944A7716942E176AAB074EA3A329529E24B72725CCD269E3A527D38CDB2AF0C8DDCC9CE366CD9BD31D7D2E37D6329568D38EDBAA6B8CE94B8F7585CF16BA7A0C9D3B51B4BAB58699AC6E76F1E142EE3DFDBB7E3E98FA3D1BFB3E476BDA46BB4AA5B52BB8528DBAAD56A2A2E79E1DD53DAB84A4E4B096799A7C38E2C2E4E51E5156756CA856B0BAA75365F5A3A527B25D2E2B993FD9E4E9E3BA917BBD3AF4351C9733535B929A9C7518DA53846AD39ADD1B94FEF7B7ADBE8E7E6FD593BAB4B695B5BD0856ACEE6E28C367AA6714A6D3E2D27D5FF008CCDB6D127A7E93468DB5B5CA8C67DAE306A52696376E795D64A9DAD495DD2B79C654A752514B745AC65E33835AA5673D1954A4E4590662B3A335BA35AB493E6946D2A34FC8F042BDBD3A34255235A5271946328CA8CA0FBADD87DD7C56557313180000000000001C5F64EFC56B7F96C3F8750F263D67B277E2B5BFCB61FC3A879555A55294946AD39424D292528B4DA7CCF8F41DEECFF0004DEC3770B675FD8DFF1BA9FE82A7A11CA55A55294F6D5A7284B09ED9269E1F3739D676368CA7CB0A718A726E855C24B2F9917E2BC09791655EE33D74D0F2A3DA2D7E3CBD08DFA84A52D8A2DCB9B6A5C4C0D4B4C86A30A70A95654FB5B6FB98A79CA4BA7C87070F350A8A52D8E1E3694AAD09421BBFE51A7E4C7E1971FA25F591D31AFD3B445A757AB284EA5494A1B6519430E3C73D06C09C4D48D4A8E51D8C7B3E8CE8D0509EE64E9F38D1BD8D4977B08CA52C7528B670F757556FEEAADD5796EA95A4E4FC4BA12F125C0EE74F842A5EC69D48EE84E328CD789C5A6729ABF27EEB49BB8D19273A1524A346BA5C259784A5E0C8E5E3149A4D6C7730128A6D736666856AA9DB3B992EEEB708F8A29FF00366D4A4210A708D38708422A31F22582ED0A152E2A2A74629BE97D0975B6723594AC8EB36A2AECBFA7D97AAABBDEBEF50E32F1F544E8B9B38E18E6459B6B785AD08D28732E7975BE965E3BB86A0A8C2DCDEE70B135F8D3BF25B10AB3ED742AD44F0E30934FC88E552C4523A4D45B5A75C35E063F5B48E6CD1ED17EBC57B8DEECE5EA49FBC1CF72869EDBAA1552E13838B7E34FEC67426A79434F758D1A9D30A98F99A7F61A107A9BF2D8D9F20ABE68EA16CDF08CE3562BCA9C5FD589D81C572069BEDBA8D5E850A515E56E4FF91DA9DEC2F848E162FC660005E6B82ABBE5E528553C34C03CC6EFF0DB9FD34FEB33D174EF72AC7E4F4FEAA34B5792142AD5A951DF564E72949ADB1E197937D4292B7B6A34539354E118293E7784967F61D0C6E229D5846317B1C2ECAC157C3D59CEA2B27B6A9F32E000E79DD000001F3EF64DFF0098BAAFF93FC1A67D047CFBD937FE62EABFE4FF000699D4EC8F1DF97DD1B384F10E44007A33A47BD7628FC43A3F2AABE989DB1C4F628FC43A3F2AABE989DB1E4317E3CFCDFD4E455EFB00035CAC00000000000002BD79E29AC35E126709AB724346D21DC6A9595ED4B04D3F525B453945BE7CCDBCA867A79D759DD0E0E328B8C5C5A69A71CA69F069A6670A9283D098C9AD8F18D4351A77F7549D1B0B4B2A717B69D2B78F1927E14B9E4FC679BBEFA5E5FE67D03AC5BEA7A257B58F26B4AB3A74AAB54D55A16CA75A12E77BA52CF72FA19F3FCB3BE5BBBECBCF973C4F41D9B353526B6D3EE7430D24D3B11001D4368EDEDFF05A1FA38FD545C2DDBFE0B43F471FAA8B8711EECD27B800000000000000000000006A4DAF263F1AF47F9751FE244D5195A65E7DCED56CEFBB5F6DF5357856D9BB1BB6B52C670F19C73E0D696CCA9EC769A55EA5A2DBCF65CD7A116BB4BB8A13B7A314961B83A519ACB7CFB9E1B5971E268753AD6F73A1EA57146E6EEE2A54D4AD9D59DC28B6E5B2E3BD717DD2F9A3E4312DB5E9DA4D4EDB4BD3E8CFC2A4EB45FEB550A5FEB95351B0AD6F52CE842A55B9A7713AD4E5372938C671C4B74A4DF7FCF958C74E7852A9B4EF630CACDEDB5ECACB92FA4C3EEE474C73956A8A0EDE555D45B9473C22F18716BFFA31F53D5F57B3B3B2B9B7E514AF2DEE1D484251B7D9B5C76B92C4A39FCAF49A1D4EFDEA3771A8A92A3468D28D1A1454B76C847A33D2DB6DB7D6D94AF7D2AFA6D95976B518DACEACF7EECEEDFB7863A31B7F6992A7ADD939799B8E4FCACE7276B0A3A9DCDCDD53953AF429C612A724F3C5E64B1B784949E30D6798E8F57B5D2F4BA14EEAD2ADE5D38E9F4EDA75ED54252A106BBE596B0A4B72DC935CE9359E3C3BD56F569AB4EA752346D9A7DB1518A8CAB65E7BB92E324B9B0DE3C45CA9ACDCC6F2D2E6D273B5AB6D6D0B78CA13CB928AC36F8733F05E579489536E570E2DBB991A7CE1DB6FE858C3B669CADA556AD3BE8ACBDB16D35B7BD96E788B4FF2B0F8368EB684F757BBD3E9DC76AB9956B4824EE2B505292B68C76EEA717C73197078E66FA0E368EB728D7BAA95ED2854F553A51AD1A7154A3284651949251585B9C56787CDD065C39555D5CAB9AB6346A558D495783DF28AEDD26F33924FBA78DB149F04A292E7644E126434D91E565D42E6FEC7B5D6757658C63296EA924DB9CE4B129C54A4B6CA2F38E935773734AB5A59D085AC294E8464AA568CB32AAE52724DAC70C26A3D3CC52ADED5AF616B6B55464ADB7285479DCA2F0F6E7C14F2D756E656E2FEBDD5A59DACD4152B38CA34F6AC49A949C9E5F4F16CB231692466958D7DE477DA5586E8C77251DD2784B2F9DBEA3AAB17C9FD169726E8D3D4DC234EBD4BBA95E51C51B9A9BA54A4F38CC54547B96F8359E116F8F277FF008057F89FCCB16DCA2A56F6B610969746BD6B1A3385BCEB4DCA0A52A9296F70C6258DD849B6B2B2F3CC6CC69B9C34EBF63351BA3A9ABA6D7B2D3F43B69B8F6CBAD06E2DA95059ED8EB4E72A8A2D639DAAD0C2F2F31A4E4ED7A575A457A77D6146FA9E9AE352DA94E538A53AB569C64DEC926F82585CC59B4E59DD50852A9776742FAF6DEBD4B8B7BBAF52A29D3A93C36DA8C929718A6B2BF614E4C6A74EDAF74DB5B2D32CD6A552E61157F73BAACA0DCD6D71A6DED4D657169BE19E04BA735095D7F75FB1395A8BB9EA7A6D84E5756BA65C68566F4DAD64AE672A92AB2706E0DA8454A72E2A49269A5D3C0DF5AEFDBA83AD5236B56A5294A526A515194A516F9B2F3E42DFAA7EF31856B6A570E3B9F6C9CA516F749C9B6A2F1CEDBF9CB3394EBD6AB5ABED73A92DCD45622BC48E1C9DD9A2DDCCD953A7F72E9E355825EA8799EFABC7B9EF738CF8FA8941C3EEEE99185655631A7496F8B6D37DB25D7C7F59853A8E56D4E8282C46ABA8E59FCDC63056DEA2B6BAA75D4537094658CE33879C64C6C41B1B0B7B88DAD56ECAF1C65425B651ACD6ECB4D28AC70E1CC63DED0950B5BA83A75631EDF476BA927294A389E1F14B1E4E879313B6EECB95869F96F3C69C9FEDDC5675A52B574236B6F494AA466DD14E3DEA7C1A6DE79FC42C0BF6124EE1D194B6C6BC65464FAB72C27F33C3F98CF8EC9BA542AA505A56DA959F5A71729AF39457CE6A1369E53C3EB441C331A89CE7F7CEFDEE799797AC9681B6A17B515B435CAD89D5A74DD29C574CDC96DE0FF364FCD2AD7A8EBD2D29544A95D3AAE6FA5465DCD27E2E6C9A971DD1506E5B5352DB9E195CCF030FB63A8E5273692DCE4DB4973244581B98EC9BA542AA505A56DA959F5A71729AF39457CE60584EAEF855BB6D42FB7C652CF3A93E2D791B4FE6311C331A89CE7F7CEFDEE799797ACAB5971CB93514D4537C229F3E10B02C728E2E85B5958C6319DFD0EDD5E8C30A4A576EDEABA4B0F9E4924D2E96D1E77C9DB9E50DFD7856D51DC5D3A5EA87613BDEEE6EF3B44DC21173EE9ADD14F6AEE7728F336B3B9EC96E54F93B6F5A3392AAEFE12DFB9EEDCA9CF0F3CF93CEA9EBD7B5753B7BDD4EB56D4FB4E5285DD79CBB969A694B398BE394D73349F41D7C1D172A375EF36E8C2F03A5F567282EF901AF4B58A97D5A9C6BDB2A756ED4A4D4B7CB74632971EA6D670B3CDC4DE763CD3AEF4B96A76EA94A86AB4EBD3A771B5AED94E84A9CE4B0D73272DB96BAA271DADF2AE7AAE9AEC28D1BB852A952352B54BCBE95D559ED4D462A4E31DB15B9BC638BC71E067763BBAB9ABCB555E7735DD69DBD452ABDB25B9F05CF2CE7A17EA2DAB4E5C09DD5BFA8CE71791F23DA6ABBF8D84A6AA558DD4A54E339C5FDF151C4B0DB5C78B4937CFCC4EA56AD42DE73EDB38DDFA824E73971963B625193F1E33C79F8266B21BE15255635AAC6ACBBEAAAA4B73FF1739171DCEA4A539CA553BF94A6DCA5E57D3CCBF51C3B1A267D7BCBBA76BA6B85D55526A6E72DDDD4F6C96D52973B4B2F8331AE385FDEC78251B9AB1497425278441ADCD36E4F6A6A29BE0B3CF828961C9B6DB949CA4DBCB6DF3B64D8199A67BA34BFC5F559D134A5171714E2F9E2D651CEE99EE8D2FF0017D567444A32319E9D64E5B9DBC33E2934BF5265E84214E1B29C1463D518E0982230845DE2923294E7256936C000C8C4B7734BB7DAD5A4B9E51715E5E839669A6D4961C5E1A7F92D1D698D71636D732DD529E25D328F07F39A78BC33AD6717AA373098A546EA5B339B30757A33AFA6CE9D384E751CE3B6318E64DEE4B825E53AAFB896FBB3DBAAEDEAE1F61976F6942D57DE69C62FA64F8CBF59A74F015337ADA2372A63E9A5EAEA6BB937A44F48D2552ADB7D51567DB6AA5C545B5851F991B700EB462A29451C99C9CE4E4F9800191880000000000000000003E7DEC9BFF31755FF0027F834CFA08F9F7B26FF00CC5D57FC9FE0D33A9D91E3BF2FBA36709E21C8800F46748F7AEC51F88747E5557D313B6389EC51F88747E5557D313B63C862FC79F9BFA9C8ABDF60006B958000000000000000001554D56FBD4B3B6A770F0DA787C1E1AE299F27B5B5B59CE1B597E23EB3A1F8453F8EBD27C9D53BF9795FA59DBEC6DE7F0FB9B983FD44000770DF3B7B7FC1687E8E3F55170B76FF0082D0FD1C7EAA2E1C47BB349EE00000000000000000000001A90014158000000000000000000000063DFF00B9F5FE27F3398F9803770DDD65F4F62B87D4CDB726A2D72AB476D3495ED1E38FCF8805B55FA8FC9994FBACF74CC7C38F9C8AEE5E12F3900796398372F0979C86E5E12F390000DCBC25E721B9784BCE4000372F0979C86E5E12F390000DCBC25E721B9784BCE4000372F0979C86E5E12F390001C6764DEEB9316E9717EAD8705C7FF4EA1E51B65E03FD4C03BDD9EFFE13770DDC1B65E03FD4CEB7B1C271E574329A5EA7ABC5F0E84017625FFC32F22CABDC67AEEE5E12F390DCBC25E7200F367386E5E12F390DCBC25E7200032F4C947EE8D2EEE3F95F94BC16745BA3E147CE401280DD1F0A3E721BA3E147CE401206E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80006E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80006E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80006E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80006E8F851F390DD1F0A3E720001BA3E147CE47CFF00D9323297644D55C536BEF1C571FF00D1A601D4EC9F1DF97DD1B384F10E4FB5CFC097EA63B5CFC097EA601E86E748F78EC55DCF20E8A7C1FAAAAF07C3A62769BA3E147CE401E4B17E3CFCDFD4E455EFBF31BA3E147CE43747C28F9C8035CAC6E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80006E8F851F390DD1F0A3E720001BA3E147CE43747C28F9C80009D0947B7D3EEE3DF2FCA5D67CA3384F7CBB8973BE87D6C03B5D8FBCFE1F737307FA88B84973C5AFF09179EA00EE266F9DC515B68524A5B928C5294799F05C4980715EECD27B800000000000000000000007FFD9, '1', '2023-09-14 10:25:14', '1', '2023-09-14 10:25:14', b'0'); +INSERT INTO `infra_file_content` VALUES (56, 4, '44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 0xFFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B79000100040000001E0000FFE1035D687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487A7265537A4E54637A6B633964223F3E203C783A786D706D65746120786D6C6E733A783D2261646F62653A6E733A6D6574612F2220783A786D70746B3D2241646F626520584D5020436F726520352E332D633031312036362E3134353636312C20323031322F30322F30362D31343A35363A32372020202020202020223E203C7264663A52444620786D6C6E733A7264663D22687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264662D73796E7461782D6E7323223E203C7264663A4465736372697074696F6E207264663A61626F75743D222220786D6C6E733A786D704D4D3D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F6D6D2F2220786D6C6E733A73745265663D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F73547970652F5265736F75726365526566232220786D6C6E733A786D703D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F2220786D704D4D3A4F726967696E616C446F63756D656E7449443D2241394145353944463238344442384135344434393144413539344342413444322220786D704D4D3A446F63756D656E7449443D22786D702E6469643A33374433363939353532413631314545423637314337353542354137333731322220786D704D4D3A496E7374616E636549443D22786D702E6969643A33374433363939343532413631314545423637314337353542354137333731322220786D703A43726561746F72546F6F6C3D2241646F62652050686F746F73686F70204353362057696E646F7773223E203C786D704D4D3A4465726976656446726F6D2073745265663A696E7374616E636549443D22786D702E6969643A3637424241463144413635324545313141303941413245423445433334453942222073745265663A646F63756D656E7449443D224139414535394446323834444238413534443439314441353934434241344432222F3E203C2F7264663A4465736372697074696F6E3E203C2F7264663A5244463E203C2F783A786D706D6574613E203C3F787061636B657420656E643D2272223F3EFFEE000E41646F62650064C000000001FFDB008400100B0B0B0C0B100C0C10170F0D0F171B141010141B1F17171717171F1E171A1A1A1A171E1E23252725231E2F2F33332F2F40404040404040404040404040404001110F0F1113111512121514111411141A141616141A261A1A1C1A1A2630231E1E1E1E23302B2E2727272E2B35353030353540403F404040404040404040404040FFC0001108026202C303012200021101031101FFC400B90001000203010100000000000000000000000405010203060701010003010101000000000000000000000001020304050610000201020303040E0804040602010500000102110321120431410551612213718191A1B1D1327292B253141506C142D23373345416F05223356282C2B3E1F143832436A27407E293D325551100020102040304080405040301000000000102110321315112411304617122328191A1B142723305F0D18214C152622334E192A25363739306FFDA000C03010002110311003F00F37278B7CECC19660ED3700000000032663B518331DA898E68959997B19A1BBD8CD0B5CCCB48000A14368EC1211D82469F017E06A0033280D96C35365B0B4332D1CC48C1991812CD90F33A5AE2BC47415B5A3BF2B509BCF2494649CBC8AF4E2F7237FDCBC77F592F42DFD934B7C3E5AA5D629A8A4F2528DECC6BB57299F82CFDB47D17E32BB2BC0AEDAD70CCDBF72F1DFD64BD0B7F647EE5E3BFAC97A16FEC9AFC167EDA3E8BF18F82CFDB47D17E31CB7A11B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC8FDCBC77F592F42DFD935F82CFDB47D17E31F059FB68FA2FC6396F41B1686DFB978EFEB25E85BFB23F72F1DFD64BD0B7F64D7E0B3F6D1F45F8C7C167EDA3E8BF18E5BD06C5A1B7EE5E3BFAC97A16FEC99FDCBC793AAD64934EABA16FEC9A7C167EDA3E8BF18F82CFDB47D17E31CB7A0D8B423DB6DDB8B78B69B6F95D5B66C6D3B2EC49D96D49C306E944EB8ECED9A82C6F1DFD93596DED1B477F64D65B7B45DF91177E54663B1F64C988EC7D9325E3E544AC8000B120000000000000000000000000006D5E8F6BFD40C7880068CC19660E73200000000032663B518331DA898E68959997B19A1BBD8CD0B5CCCB48000A14368EC1211D82469F017E06A0033280D96C35365B0B4332D1CC48C1991812CD90F32C387FDC4BCF7EAC49444E1FF712F3DFAB125968E44A00024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000155ACFCD5CECAF551C4EFACFCD5CECAF551C4CDE6C8368EFEC9ACB6F68DA3BFB26B2DBDA2CFC88B3F2A331D8FB264C4763EC992F1F2A256400058900000000000000000000000000033E203C40034660CB30739900000000019331DA8C198ED44C7344ACCCBD8CD0DDEC6685AE665A400050A1B4760908EC1234F80BF03500199406CB61A9B2D85A19968E62460CC8C0966C87993F87FDC4BCF7EAC49644E1FF00712F3DFAB125975912B200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ABD67E6AE7657AA8E276D67E6AE7657AA8E266F3641B477F64D65B7B46D1DFD93596DED167E4459E48CC763EC99311D9DB325E3E544AC80320B126019001806400601900180640060190018064003C407880068CC19CAF1195986D7A19D1980672B1958DAF41466019CAC65636BD0518331DA8C65665275AB2629D5619129332F6334377B19A937331230002854DA3B0484449374A1A7C05F81A833958CACA6D7A15A3306CB618CACD926B065A09D712629989183323044B3643CC9FC3FEE25E7BF5624B2270FF00B8979EFD5892CBAC89590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055EB3F3573B2BD54713B6B3F3573B2BD54713379B20DA3BFB26B2DBDA368EFEC8696D65E958A2D4AA35AB5B30157CA6D950CA8284F0EC229235ACB94565CA6D950CA86C993491AD65CA2B2E536CA8654364C5246B59728ACB94DB2A1950D931491AD65CA2B2E536CA8654364C5246B59728ACB94DB2A1950D931491AD65CA2B2E536CA8654364C5246B59728ACB94DB2A1950D9314918CCF977033957780DB21461C96233235608E64BB08DCCDB321991A01CC913B8DF321991A01CC90DC6F990CC8D00E6488DCCD9B54A18300AB6D90F100020198B4B69B664680B29C92A13537CC86646809E6489DC6F990CC8D00DF2237336934F618300ABAD5B21961C3FEE25E7BF5624B22F0FF00B8979EFD58928BAC894000480000000000013F8369F45AAD5AD2EAE37252BB85A706946B18CA5272C6B8A8E0449ED4DF6543744DE84005B5EFDB962F5CB32B3A994ADCA517252596B19383A3738E155C856DF761DE9BD34651B2FEED4E99A94DF4E72232DDC1AC2B8909D7833984D6EC7B04AE1BA1BDAED42B76A894292B939ACD18A4F7AE8E6AF26F2E359A6D0718A5BD05FB4B5B622DC942DB846EAC3637B935834DD0895C51951FEA7FCBA543951D0F3A03524DC649A69B4D3C1A9568D32570ED05ED7EA159B344974A7392AC6314F7AFAD57850BB6926DE4896D22226B763D8327A2D669B87F186ADE82FDA5ACB1179942DB842EAC1514BF9535834E543CEB4D3CB2549A6D493C1A927469F60A42E29ACA8F4222EBD8016BC1741C378846E69EF75B1D4C22E6EE45C54546A92CBB7155DF137D3E8B82F1094B4FA1BB7ADEA526EDCAEA596ED156B4A57C0F7D03BB14DAA4BC2D278655237A29C199465094A13549C1B8C96FCD17492EEA305D634ED2C0024E8E7C322A7EFF006EEDC6E993AA692A24EB54E4B1A90DD15730C8C0BCD5E9780E8EDE9EE4ED6A251D4C3AC865926D4691749566B1E96EA94973239CDDB4D5B726EDA951CB2D5E54DAC2B4221353C94B8F0D084EA6016FC3F49C2751A1BD7EEC2FF59A48A9DF71924A55CCE90ABD948EFA7645BE1FC2F88DABBF0E95EB5AAB50CEACDDA494E2B6ECCDB5E1B76EE239A9375525B5A4F0237AC7B0A80151AAAD8D5493C36D5BBDAFB166EDA77A13965704DA7469E2DC5D68BCA7CC8B3744DE859BC1BD08C0B3E3DC3ACE83516DE9938D8BB174599CBA717496336DEC6B6BE52ADD68E9B69808C94926B4A84EA64169AAD1E82E7098F10D0C67076EE2B77E33956954957EB6F71D9B8D781E8B49ADBD7E1AA8CDC610CEA716D4629375AEFAE3876195E62DAE5FCAE8C8DCA8DE8E856812716DB855C5B938B979596BD1AD37D0BAB7A6E07F0B8EBAE5BBEE9256AE5249CB3D155D3365CB5FF91329A8D2AA4EAE9820DD295E252827EAAE7047624B4967511BEE991CDA71F2956A94E4F67310A0EDAB9177733B69A73CB452CB5C526F0AD0952AAAD1AEF253A9A82C38C68B4BA5969A7A6CFD5EA2DF5894DA6F1A531A724B1DA5788C94926B884EAAA0004800000000000000ABD67E6AE7657AA8E276D67E6AE7657AA8E266F36419AB580CCCC00A4D53126ACCE663333009DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A99CCC666600DCF5157A9B667C9B81AF880DCF5156767A2D563D0EFC7C63DCF55ECFBF1F196809D8850ABF72D57B3EFC7C63DCB55ECFBF1F196806C42855FB96ABD9F7E3E31EE5AAF67DF8F8CB40362142AFDCB55ECFBF1F18F72D57B3EFC7C65A01B10A157EE5AAF67DF8F8C7B96ABD9F7E3E32D00D8850ABF72D57B3EFC7C63DCB55ECFBF1F196806C42855FB96ABD9F7E3E31EE5AAF67DF8F8CB40362142AFDCB55ECFBF1F18F72D57B3EFC7C65A01B10A157EE5AAF67DF8F8C7B96ABD9F7E3E32D00D8850ABF72D57B3EFC7C63DCB55ECFBF1F196806C42847D15AB96AD38DC546E4DA554F0A25B8900164000000000000000587007FF00F73A5F3AE7FB732BC99C22FDBD3F13D3DEBD251B7072CD27B127094137DB9159E309762A112C9937576FE5FF007BBFD65DD575AEEDC7714527153727992AC7666D8545D56BAD9AB199DA4DE473A6671AE19A874D64E37757A8B9069C6E5CB924F6563293717DC38916E3B555B6F0A6222B0CD973C33A1C0B8A5D8E17254836B6E4CABED322F02CDF17D2E4DB5927D8C92AD7B4384F10B5A49DEB3A98BB9A4D54325D4B1957149D2BB1A93AEFEE13617B83F08CD7B45765ACD4CE396DE6A38DB4F7BCAA3DBDEF6618949556F495799E57AE14552AF8E19957C469F10D5D3675F73BB9A5527F0B79382F149C30938A8B7BD468D3C7B0D950DB93729372936DB6F16E4DD5B658709E216B493BB6F53173D26AA192EA58B5B5274AECA4A8FF00E05E69EC4B3A6DFF008966BC26BC0EBF17D265DB9A4BB59275EF1CF8A65F896AF2ECEB67DDABCDDF2C617783F09CD7F47725ABD54A396D66CAE36D3DEE8A1DBDFBB0C4A46E4DE69372936DB6F6B93756D9117BA6E54A250DBFEA42CEA5CFCABFDC6EAE5B0FD6895DC21CE3AFD138795D6413F35BA4BBCC97F2FEAF4DA3D5DDBBA99E483B2D27B5B96652A2E7A2C09363E03C2E6B576AFCF597609AB36BA354DA6AAF2C63D8AEEE4A95936A573093DE9258674AFE64378CBB481C6925C5B54A382CE9F6DC22E5DF211BDDB93BD76776E797724E4E9B3349D70E634358E114B42EB2A00F600C905BF1AFC8F087BDE9FF00D368A82C78A6A6C5FD3F0EB56A599D8D3A84E9F55B8C134F9FA25714B55D98D567ED6447CA5D700B71BDA3E2B6A5356A33B518BB92C2304E37555ECC16D3AC6DE9F81E89EAEC5CF7BBFAA52B36AF428ACC5E2F737BD72E34DD8907876AEC58D0F12B572549EA2D285B8BFACDAB91A2EC6633C2B596236EEF0ED6BFFC3D426D3DF09A55AA7CF96BE776CCE519394DE2D6E4DAD685649D5E9A158924925B12A22E7805A9DAB7AAE251B6EECECC1C2C41272729B55744AAF0D8E9B9B2993AA5BF66DC0B6BFC47DDF8768B49C3EF384945DCD44E15CD9DED8B6B9DBEF17BB571515F1132AB545C4E9774FA89FCB89EA2DCEDDED1DE6EB753529C6E4AB292CE96FB9DE298B7E1BC533C355A7E237E72B37ACB4A526E54693548A7F59A977514EAB455DB4C45B525BA3258275114D5532E380B5A8B7ACE193C16A6DE6B75D8A7154AAE7C53ED18B0DE8BE5EBB75AA5EE2337692A524ADC6B195576A5DD2068752F49ACB3A95B2DCE2E5866795F46497F964C9BF306BED6B35718D892958B10A45A7D172962DAEF222517BE94F0CDC5BF410D789AE0DD4AB2F7453D1C3E5F6F5B6E77ACFBC35920E8EAD2CAEB5861DB288B7E1D7387DFE177341ABD47BB3577AC8C9D318B4A94AF3AC49BD92CF0957C24CF25D847D5DEE092B128E934976D5F74C939CDCA2A924DD53B93DDCC407B1F60B2D668F83D9D3CA7A6D6CAF5E5450B7D1A36DA4EB962B715AD6E2D6DA79393F989542DF8EFDD70DFFEBAF040A82FA6F83F11D2E8DEA359EEF734F695B943A29D5249F949EF8E041D7E9784D8B59B49AB96A2EB7451A45A4B7B6E2A34296E494545A957B888BA2A15E00352C000000000000015DA9B17A77EE4A306E2DAA35B1E08E7EEBA9F672EE16A08DA28557BAEA7D9CBB83DD753ECE5DC2D411B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF75D4FB397707BAEA7D9CBB85A81B450AAF76D4FB396CE605A81B450000B000000000000000000000000000000000000000000000000000001349A6E8D269D1E29A4F63E600027AD2E8A57EE7597A36EDBBC95A709DB718DB73DB4AB6EA9FF969D239DBB1A095BB5725765173AE68E78E68D14A8A4B2E14CAB1FAD5DD42BBD11B9110132163492D53D3C6E6785C56E36E758B9294AE5A84945ECCCA327BB61B4347A295335F519668A69DCB492CF91C926B329654E5D2AA55545986F44D510412AFD9D1C34F295ABCE77924F2E68CA2DD609A5917F89EFDC7756387E6B6A57A34851379A2F3C734E79E496DCC928E5F2A35CCF630E6B422A8AE04C9D8D0C2DE6EB5CAE51BC96E716B3371D9452A28E6CB46FA54AAC18D2DBD165B73BD25D3A2B8A528D552E413A4562BA0DF4A4F97A34C49DF854548609366C69A4EEABD7BAB56E4941668394937BE8E4A586F8D68F98E8F4DC3F2CE4B50DB8C2AA2E51CD5494EAB08E6FE5CB837B6B80DEB80A90812AFD8D3FBE2EAE6A1A4BB72919E784DC638395724A54A29619BB7BCDBDDF42A19A571A928B6E0AE5B93AA52A4138292C32D6BB1D68B1521BD53E6EC26A88609D3D1E822AE38EA93CB45079A2E554E5593841629D2892966A3AEEA1B2D3681A8C5DCA38CE6A4DDEB549472270A4A154AB25B68E9F5B715E62FEAEC23765D857826CF4FA194232B57526A0EBD3B6B34975AAB9672934DB8C70DF5C0D2163453D5BB5D73B7A78A6DDD9B8B6DA74AC7049E0EB4E6C31A13BD76FA98A9141616B4FA2B8ACD8524E7349678CA399E695975A7D592CD254963956269EEFA294231EBE3192527293947074B53A4A50CD9B2E6715963D26B6A5B1BD76FA8548409CACE8326594DC2971AAA9C272CADDA8279A158B8A5294A9CDB4C4F45A7B73D2A9C9AB776AE572528C6338A8C27171C3A09CA4E3D2AF28DEBB4551081636ED70D5484E71945D62E4A7153AD75293AB924A94862FA2F07811AC434FF00D686A651845DB4E138E59CA32CD16B2E46D3E8E0D7886F58E787B45732382C5E97874A5393D4A8A6EE38C2328B4A39E91A37BE3175CAD2CDF55EF39C74DA1CB2CF7E8D28B52CF0E95716D4555AD9972CBA4AB5DD41CC5A0A90813BDD787BAC9EA3A354A31AC1C9B727069B6E144D74B36C4B6EEAF1B5674D2EB55CBCA0E135082CC9C67194B2292938C708ED6DA5D1C49DEB8F0EC64D7323826BB5C3EDC947AD771357136DC72C5463D1AA857A55744D36AAABB0D351A6D2DAB7395ABCAE5C851A4A709269C9C3A2A15727455A7472ADFB88DE8548A0B05A7E1F6B3CBAE8DEA42492738D538BC271A7959B2D5258C53A48E57AC697AEB6ADDD8B5766D4DA9472A8D534D259B2A4A59692E4CDB02991544404B858D175B7A33BCFAAB6FF00A524E3172A465369D73A7D28A8D56075869787AE8CB53179F2D6558ACB15720AB169ED717469AAADB8A0E6B427715E09EB49C3E52A7BC28A6D279AE5B54E9C5492DCD46326D36D55AC22623A6D1422E4EFC272765B69CA3961371B94927B5F4A31A452CD8E28731678D48DC4104D8D8D1DBD7462AF46EDA8284DE694545CB3454ADB9B795ACBD2AEF5879467DCB48ECCA71BF56A199B528A8C33BE8D5CF17B69970961BF01BD135441077D5AD32BD376A55C55231847ABA38A6FA59E4EABCD38164F0A8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009329B546B06B14D18400200000000003785790EB3D2EA6DC9A95A960934D2728B8B4E49A94332716956A8E4D57024AE217E896583492546A5E528E452F2BCACB8727310DCB806D9C558BDD6C6C3838DD9B51519F42AE4E91F2E94AF39BCB4BA98D5B83714AB9D35283E875B84D3945D61D2DA25AAB92BD6EFE58ABB6DC64A714EAE5169C5CEADE6758ED78B365AFD4AB4ED49A9A754DCD3949A9C5C249CAB5688F1E196031347A5D4A951599C9D5C5658CA49CADF9493866AD0C4B4DA88612B534F22B9B1BE849A49BA66DEE9D93ADCE23A9B91CB2CA93524D254AA9A9A75C777592A764DE5C57592729562A7736CD292927D3CAE2F37468A6D2CA3C7A2F691E2D08EF4DAA4A52766E521453E84A9174CF478618626B3B57611ACE128C5B7159938ACD1C251C77AAEC24AE213942E46508394D24A89A4A2DD671974BA59ABB7CAAEF35BDAFD45E51571414612534947A2DA6E71524DCB34539BDBCA2B3D10AB38BB57A2A5376E695A694DB8C9283C2999D3A35AEF369E8F556E7284AD4DCA3153795392CADA4A49C33292C76A36D46AEEEA2396EE574A24D66AC5512A2E962A905E566377C4754E338B71A4EBF5714DC55BAA6BFC2A83C79D113E2392D26AE4E715666A56D2724E328C92934A383516DB6F05B43D36ADE1D4DD6D37049C24E49A59DC52A723AD0EAF89EA5A49E46D49CA2DC714EE4FAD9528F7C96FDDB0D3DFB51D57535595E64F0E935353CCAB5D8B3B6B902DFD84626B734DA8B76D5DB96DC6DBA2ABA612694D29258C5D1EF0F49AA56E371DB928CD270FE66A6DA8D23B7171E4E713D4DDB963A89D1C28926F35538571C1D1B75DE8EB2E25A993AB50C5E66926AB2CD29B96DAA6E527B294DD4159E182189C2562FC61D6CAD4E36FF9DC24A38BA794D5368B762FDD55B76A738B79538C64D667B1552DBCC769EBF517332BB966A6A934D3C566EB31A38BF28D2DEAAE42118658C943324DA9572DC54945E492C1FA5CE4F8E992271358E9B53394631B371BB89BB6B24BA496D6B0C56263A8BF8BEAA7D14E4DE497929A4DBC3626F125D8E2938C9AD42CF6DB8CDC62945E7B72538D5E0D2AADC738F12D52B6E0B22AA49B49E66F27579AB5C25970C08ACF1C11156718E9B512B3D746DC9DB4D47324DF49A6F05BD747166B72D5CB6D2B91716E3549EDCB570C57D5C63B19D61ACBB6EDAB6A30714B2BAA6DB8FF0053A32A38E1FD57B3135BFA9B9A89395C8C73D5B5249A74729DC69634A395C27C75C9138D4E4002490000400012480B916C7B50046040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000135BB10480002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006E98BD80B5E0BC2FDE66B577E3FF8F0748C5AFBC9AE6FE54FBAF0E5225251557C332B39A845CA44BE0DC26CAB0B55AAB6A772E74ADC26AAA30DCDA7836F6E3B89DAAE11A1D5279ADAB771ECB96D28CABBAA9612EDA278385DC93956A7992BD373DF5A1E2359A4BBA3BEEC5DA36B18C979338BD8D788E27ACE2DC3D6B74D4824AFDA6E569BE5FAD16F925E13C9B4D5534D34DA69AA34D60D34765A9EF8F6ACCF42C5DE646BF164FBC000B9A800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000374ABDB856806A4DE17C3DEBF52E32AAB36E92BAD61555E8C53E59780F5B08C6118C22946104A318AC128AC124889C2F46B47A385A6A972549DC7BDCDAAB5DA58134E2BB737CA9C164799D45D7393FE58FB4C8314DCB0E7365D5ADADBEF7FC4C8C946BD86ACF37F306815AB8B5B69742EBA5D4B629BD92EC4BC3D93D52F77DD4EF91F55A586A6D5CB2D2942E2CAD26AAB91AAEF4F145EDCF6CABC38F69B5AADB96E4F72C9A8E381E141D2FD9B9A6BF3B173EF2D369B78552D925CCD62733BD34F147A5C2A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B7E05C3E1A893D5DEC6166695B86E738A52ACB995766F6541E8FE5DB915A0BC9B51EAEEB949B69251718D1B6F62E899DE6D43031EA6528DB7B73EC2E411F47AED1EBD4DE92F46FC6D494672855C73355A295292C390913EAEDC1CEE494611AB94A4D46292C5B949E091C3547046C5C7C29F36001A58D469753172D35EB77E31F29DB9AB8BB791BA1D9456C4AAD91545FF6B3D63EB34C4519C61AFE1B72FF00BB5BD5589EA1B69598DC8CA6DA556B2A9570488DC7757AAD070D9EB7491B739589295C8DCCD24E0DE474C8D34D375EC0AA23F6D3D63FEE39F1DB16EEF0FB976697596692B73A2CCBA49355DB469EC3CB12FF00735FE25A5BBA4BBA685B93CAFAC84E4E3452CCD656B6D63FCC443B7A7AF2CEDE9E1284292FCC000D8D800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000170BBFC51FBAE9941DDC66DDC6E315186DCCD27BDD3602DBE5AB918711941E1D65A6937B73269D176914BDF4E7DD521E4E9ED2C3E55E1FA9D070C9D9D55B76AF3BF724E2DA69AA4611945A746B2C7065C4A319C5C6494A12AA69A4E2D3C1A69E0D3364152A798529E9234387E86DDD8DFB7A7B56EEC2AA372308C2493546AA92AA7C8CEF3B70B9095B9ACD09A71927B1C5AA34E9CA88FA2B5ABB5EF0F597D5E53BF72E58496556EC3A65B6DD16CA5592538BA51D5349AA51D62F7AA6E042672B7A5D2DA4959B36EDA8611C908C689AA7468B0C06B2C2D4E92FE99BC2FDA9DBC7674E2E2ABDD34D158D55957FDEAFF005EEEDFB972D3582B76A6D64B6ABFCA91241399E3F55F2C478568D6A2D5F95E9A508EA3324A2DB74CD14B62CCE947DD2BCF5BF30DF8DAE19720E99AF350847B125293ED4627923BFA6AF2FB2B42F0C8000DC9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001DECE99C966B954B6C63B1BEC929379195FBF6ECC1CA6E9C12D5E88E76EDCEE792B0DEDE0912F4D0F76BD0BF06DDCB6D38EE586D5DB581BD125454496C4B040D95B54A3C70A1E25FF00B95FB9843FB50D219FFB8F4D1D4C2F598DE8572CD5629AA35B9A7D86842EB6F9887C3671BBA250FAD65B8496FA36DA7DC64950A3C4F06F45C2E38E54743DCE9A71B96613CF72A92237A0EF7529FF00572AB897F86AD61CB468C59D2DAB15EAA196BB76B4A356D4557C98A6F08AC11CAEE8749A86A57AD29CD2494AAD492556B2C93AC76EE35F85E85AE942771725CBB726BB69C9A7DB271D0B523C5C97E94FF89D65A88CA35B6D4D55AAAA3554E8F15CE66D5C6CD2E5B504A30548C708AC12496E496C386AAE2D2E96773649A71B6B7B93545DCDA562A529A8AE22738C2DB9BC963DB429B8B5F5C42F2716E36ED26ADADB56DF4A4D73D3B8555CB53B7E52C37358A64F4B72D885134D3A34F6A7B0F75598A8A8AC12543C1B1F73BD6E5E3F1C259C72A7CAF815C0917B4CD272B756B6B8EF5D823A3369ACCF6EC5FB77A0A76DD564F54F468000835000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008DC42E4EDE9F346591E64AA9E5746995BEFDA8F6F2F49195CBCA12DAD704FB312AE54E05D821F0DBD3BD6E6E73736A4926DE6A2A130D212DD1524B3F5E6593A8001200000001DB4F6B3BCD2F253D9CAF9094AAE8B32976EC6D425393C22ABE9E11EF37D3D8D972E76527E164832937B369CEE5FB169E5B976107B6929453EE54DD6D82CD2EFC0F9ABD7AEF5371BA4A72C94629BA2D11B822BE29C3EB45793A72464FF00D26B2E2DA05FF51C9F24612FF5D0ABBF6BF9E3FEE45A3D1756F2E9EFFF00F297E44FB7AE7A0975EE718278353D925B68FF00E07A5B172CDFB71BD66719C26938CA12528BE5CB2583A33E6DC435CF597134B25B826A317B5B7E549D30A9E87E48BEF26B74AE555170BD08BE7CD1935DB51A9E675538DC9B6964A95D4F7BA4E8AE58E9B75C94B749D650F863A53F89EBD0C4E4A725CEB9CCE79722473606A91BB4A98EC479DF98F5FA3D3DCB30BB7697526DDA8A726A2E996525BAB4EC97CBA4D278ECAF60F97EB7552D66B2FEAE7572BD71C9571A45B748F614550BDA94A12528E689FDAC3A88CADDC7251CFC2E8EBC0F4D19C6705283CD1924D3DCD3D8CC943A2E293D2C15AB91EB2D2AB493A495716937835CC5A69B5B1D527EEF62FCF234A592DBB8937B2AE15A1EADBEAADCA38BDAF46785D4FDAFAAB33928DB95C8709471F666BD44923EA2C6DB96F6ED925E142E6BF4D69E5BDD65A6BF9EDCA2FB69A3B5ABD6AF2CD6271B896D7169B5D95B517E65BB98465193EC6656D755D2495D76EEDAE0DCE0E3092D2AF02003B6A2D756F3C57425BBFC5C8713369A74E27D0D9BB1BB6E3720F079FF004BD1800105C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035BBAB7A3875CADAB98A8D1BCABA7BF64B90E1FB867FA58FA6FEC9DAEDAB77A0E13558B69D1369D573A387C3B49FCB2F499E7759D2DAB9754A50526E0B1DCEB87A4CEE5D706927C2B923BD9D73D7294DDB8DAC8F2D13CC9D71AEC89B9CECD8B5662E36D349BABAB6DB7DB3A1D9D3DB56ECC6315B552B4E19978B6D26F8AA8001AFFA777ACB00089A9D6AB6FABB4939AC1B7E4A7C9CEC894945559318B93A244A94A3059A72505CAF039DDE331B7156F4B0AA582B97304DEF6A2B1EEB2AE739CE4E5396693DECD4E69F533CA1E145E7D0DABBB79CB98A2F76CCA35E187E1122F6B7577B0BB764E2F72E8C7D159511D53760641CEE526EADB7DE74C2DC211DB08A847482DBEE00020B82570EE23A8E19A9F7AD3657732B838CD394651746D4A8D3DAAB5445008693547E93E8DC238B69F8B69BAEB4B25C834AFD978B849AAAC7A354F73FA49B294629CA4D28453726E8A2A2955C9B7B124780F96F573D2F18B0A2FA1A892B1716E6AE792E9CAA589E93E70BD72CF0756E358FBC5E8DB9BD95828CA4D761E52AD62714ED52E6C594A9E8A9038A7CE4FA56B84C7953D55C55AEEADB83F0CBD13CAA545458D37F399058EA85B8C1784133855D96975DA7D5AD4C34CA128CAE4B33CDD5A92CD070B6A4DE65B9A2181EDEF2D2554D3F8B3FC33E853F9D380AC15CB93AF25A9D29FE648ACD46BBE4AD737293968AF2F26F5BB73B724F97A11717FE6479003D5E9305D2C16529AEE67A2B9D6D8B7294AF4388E81517BE69DA72B75D9D7420DB8BE77873D7023465192CD192945EC69D5329EDCE76A7D65A94ADDC58A9C1B8C927BAAB71D6DEAA709E7824ABE5A4B2C65CF956117D83A2DDF92C278C4CD7450B7B9C30DD9C7E1AAC2A9707AD30CB02D01CECDEB77A19A3835E545ED4CE875A69AAAE391469A746000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CC1DF4BA69EAF511D3DB6A32926F34AB95249B6DD137B89FF00B7357EDED7725F64E5EA1A534B8A5439AFA6E4BBA8552D8091ACD15DD0DE56AEB8C9B8A9A71AE569B6BEBA8EC688E74431845F650DEDF923DD424C34AE16ED6AAE47AFD2B7FD456E5D28570A4BC9A339EA6DD985D6AC5CEB6CBA352C5355FAB2C36A39C6728A693A45B4E4B15174D9544FB5A9B6AE41686D3CD79385FD2CFA5095161493C79CC2E4AEC24E5E68D1D382A7F57F2BD2596A5F029F59A8762DE58E1727847996F91598516E3D4F0EF966DF1495DD56A6E5CB369D231B2A2E172134E8D4BAC8B5454C29B794A4E2FC2AF709D5BD3DC96784966B37694CD1AD318E34945E0D185CBBCC75596874599C17853F1F12118320A1D000008000000000330938CE328BA3524D34DA9269ED4D62891ACBD7AE648DCBB3B8936D29CA5249ECAA5372C48D1F29765784EBA97D28AE67E10524BFB91FD4720002E00000000060C80050CDBB93B735383A49771AE465A69F511BD0AAC26BCA8F273AE62A8CC272B73CF0749278723E666B6AE383C714F3452E5B5258665C839D8BF0BF1CD1C1AF2A2F6A7E23A1DC9A6AA9D6B91C6D34E8C000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EDA5D2DED5DD56ACAACB6C9BC2318EF9499C4BDF9722BAAD44B0AB94537BE8A2DD3BE52ECDC20E4BB3DA566E89BD097C3F8659D02724DDCBF38D1CDAA251DB962B72A93403CF72727593AB39DB6C8BAFD05AD75A5193C9721576EE255A37B5496F4E8797D458BBA7BB2B379659C1E3BD34F64A2F7A67B2283E62515A9B125E53B6D3EC293A7859D1D34E5BB63CB1F61A5A93AD0A9E5DD4C59EAF8270A8696C42FDE87FE5CF16E49395B4F6455763A6DDFB8F33A49423ABB12B94EAD5DB6E7C9954956BCC7BB7B5F2EF27AA9B4A30D5D5FE3DE692790C5ED2A7E60E08B8BE9A2A12CBAAD3A93B0DF92DC92CD092E474DBB996DB883C5F89C385E8DEAEE5B95D829C61250A29253AA5255C1E2A87226445B524E3E64E88F99CA3284A519C5C6716E328D28D38BA4A2D72A681E8F89E874FC6A3738AF0A79EF375D469E9493696DCAF153A2EC4B76279CEF3554D528D35B534C466A5970CCF4612DCB1C1ACD000C172C640040000002DABB2BC275D4BE9A5C8BE96728F94BB2BC26FA87FD56B9125F49251FD48F626FD6CD00041700000000000000C19001266DDC9DB929C1D24BB8D7232D2C5F85F8392C1AC1C77A7E22A8DAD5C9D9B8AE476ADAB735BD335B575C1F63CCCAE5B5255599700D2D5D85E8295B755BD6F4F91A373B934D26B1391A69D1800020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005F7CB9F717FCF8FAACA12FBE5C4FA8D4531E9AF5599751F49FE92977CACB736C93A66A3A72D0F33F347CC1A8D1DDF876865D55F7153D45F5472829AAC6DC2BE4C9C7A4E5B56E3CA2D6EB55C77A3AABEAED6BD62BB3CD5ECE6380C523E9E79FF98BF3767F097AF236F9638F5FE271B9A3D6352D5DA8E785D4947ACB69A84B345619A2DAAD36A387CD77BA8BD6A5B64ED2514FF99CA78F68DAC34A69BEDF697B49B9A5C4A4D76A1463D445D5C974DADD17BBB2CF67F2BEB353ADE136EE6AA2F3C24EDC6E3FFAB0B744A7D9FAADEF68F0FC37437389EBED6920DD6F3ADC9ED6A0B19C9F6B6739F4DB56AD59B50B366396D5A8A85B82C128C551229766E6EACE9BEA315182F36A6CCAAF9A145FCBFAC52D8A306BB2AE469DF2D779E23E73D7DDB9C43E1F19B562CC232B9058277249CAB2E5A45AA7219A4676A2E5722970F1143A6D4EA349795FD3DC76AE2C135BE3C8E2F0927C8CB3BDEEDC6FFA969474FC55AACECD696F52F960DF933E67B79F6953184AE4A30B69CA72744A2AADBE62F387F0DB7A56AEDE4A7770693C543B1CB2E7EE1A5BB12BB2F06125F1530EE6B8F71AF5DD5DAE960A72AB9B5FDB847CD2EFECED28A519464E334E328B6A517552CCB6A69EC60B695DD36BAECB45C427D5EAED49DBB1AF96C9A4DA56EFECCCB925B4AABB6AE59B92B37565B906E324EAA8D3A55552C37944DEEDAD78AAD53B8EA84D49279556EF46A60004960000045A524DEC4D37DD33724A73949629BC1F31A99052BFDC5FFAEA0000B8000001800196C1693E14EEE86CDDB2BFAEA0A528AFAF16DCD53FC547DB2AAAD369E0D3A34D51D56E68BCE1286DDCA9BD563F918F4FD4DABFBF972ACADCE5071ED5C7B9F0320C5454A1B83262A64106F6AECECCD4E1B560D6E6B9196B09C6E415C8E316AAB9B95768A72770E9B719DB7B13528F6F07E03A3A79B52DADE0CC6F416D72E2898003ACE50001ABE04FE100654641C5ADA515DB6DD14E0FBA55F71676AE25B9C2715FD516BD660005CA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002C3862FE9DCDDD25E02BCB0E19E45CF39780CEFFD37E8F614BBE4679EE3B6E76F8ADF72C15DCB720D6F8B8A877A51A104F67AFE1DA6E216942FD633855DBBB1A668D76AC7CA4F91952BE559E7C7571EAEBB55B79A9D872A77CE1A18A96A46F972DCE7C4FAC4AB0B56A4E6F9332C915DB7E03BFCC8DFBD598ED4AD552E773927E02EF45A2D3E86CF53A74D26EB39CB194E5B3349F816E293E63FCE5AFC15EBCC1BF4B8DF4FBFD858FC8B0B6F55ADB8FEF636EDC60F7E594A59A8F9DC51ECCF9A704E272E15C461AAC5DA69DBBF158B76DB55696F69AAAFF89F48B576DDEB51BB664A76A694A138E31945EC699491A75116AE6E794B266E9634E5C0F98EBEE5DE25C5355A8B7D2576EC9A93F25413C90ABF3628FA1716D57B9F0CD56AD3CB2B76E591EFCF25963FFCA47CFF0086D55A9C7726B1ED7FC0D2C414A693E24D9AC633B9A523EB2D345A2B3A58276DE6B93493B8D62D3C691E44493969A59AD28BDB0747D8DA8EC7B16E318C1462A89647CA754EE7EE2E736529C949EE72D387A2879DE2D051D7DD4B052A4D7F992AF7C88AAF6D6B82C71D9822D38EDBA5DB3757D78B837CF1957C122AD1E4DE8D2ECD7F53F69F5DF6FB9BFA3B13FF00C4A12FD1E07EE3200333A800162D4562DE092C5B6F724891ECF7805BE9BE57E297ED3BD77268ED255AEA1B84B2ADADC526E297F8A86CBE57BF7A12968759A5D6B8AACA16AE63DAF29775A2B5466EF43779964EAF82A70A94C0CDCB772D5C95ABB070B906D4E12549292DCD1A93EE34D1D55199000060CBD9CB85123077D15AEBB5766DBC5668B92FF0C71977912955D35742B39A842537942329BEE8E27A3B7070B70B6F0C91516B9E314889C4386DBD4A95D83EAEF4536DFD59A4B64A9BFF00C44D396A6796D34B6CDD17636B3D8B96E32838C9555287C674772F2EA60ED4B6CE73AF7AAD5D753CCCE1284B2CD3525B53FA0C2A165C4250561292AC9B4A2DAC55316D32B8F26EDBD936AA7D9DB9B9AAD2800050B3C0C1338727D65C7B9452EEB21967A2B0ED5BAC9525728E4B7A8FD546D6235B89E9999DE6941AD7224000ED38C12F87E867ACBCE117923149DC9AC5A8BD918F3B222DABB27A5F966D5A9E92FCE4E92EB6927CCA316ABDD383EE32BDCB56ECBF1C9557F137B5256EDCEF35E2AC6317A6E3B5BE17A0B71CB1D3C67458B9F4E4D2DADB7523EAF82D8BB172D32EA6EA4DA49BC927C8D3D95E545A70FD6DBD4DED45BB7A7BB6A161A8ABD722A36EF275E95A926F3254C58D2EA6C6B6E5FB72D3DCD3DCB17256F2DD591DC51A7F52093E941EE678CBA0EAE3B670BEDDD5E64DBDBEB318F557149C939D78D5D5FA533C4C934E8D34D5535BD493A34CC13B8CC610E27AA8C308E78E1B7A4E3172EFB209F43D34E52B49CF09473E38E86B7D477271C37C232A69B95680007418FBF8278000103F180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FE1B2BF57C41D7269E5449E37172ADD1AEEE72526F22562580297DF757ED65DEF10F7DD5FB57DEF117E5489DACBA052FBEEAFDABEF7887BEEAFDABEF78872A436B2E8B0E19E45CF39780F2BEFBABF6B2EF788F41F2DDDB976CEA1DC9666A7149BA609C5F218F5106AD37DDED33BCA9065C0300E03941E7BE63FCE5AFC15EBCCF4279EF995A5ADB29E09D94D3FF003CC95172AD1573F61D1D1B4AF2AF6FB4A82D383F1ED67099A85BFEAE95BACF4F2C127BDC1E395F79EF456029E9553D39454D51AAD733D27CC7F31E9789E82CE97479E2A73CFA8535492515D18BA3A4AB275C1EE2AB8745AB5393DF2A2EC25FF12BDB4955EC0B55A8825184DC62AB44A945575E43ABA4B4E52DE95228C2718C2DEC8F169FA8F41A79F57728F64B07D9DCC9A793F7DD5531BAFBDE23AFC5B8856AEFCBBA8F4209C551E278FD6FDBA57E6A76E508B924A5BEAAB4EEA971C66D759A27358BB3252FF2BE83EFB450ADA777C53883C1DF951E0D349A69EE699CF4DA5D66AA4E3A4B33BF25E5757193A5795AC176CE5EA7A794E5CC8B8254A3AB3BBEDD0B9D35995ABAE324A6E71D8EB83CD634E353533084EE4D5BB7195C9CB64209B937CD15567A0E13F296A6F5C52E2ADE9AD3C2DD98CA2EEDD6B174A37952DFBFB1B4F5BA4D0E8B416F2692CC2C45AA49A5D27E749D652EDB3CDB9350938D54DACF6E2754FAA8AF2ADCFD4793E1DF276AEFD27C427EEB6B06E11A4AEB5CFB631EDD5F31E9B43C3387E828B476236E6F0771E373B73757DAAD095293782D9E1368350AB74AF2F223194A4D55E3D872DCBB39E0DBA715F09CB4EEEDC84D6A2C755D271519495CCF0A2A49A85546BFCB894B3F97AEE9F8ED9E23C3A36ECE8D34EF413CB46EB19A8C52A659468E9CA5FE7ABA24E4D95DA8E35A6B53941C672B96DB8E4694161B5D5B9782A537B8BF1C9448B7B9C9A84774A49C5AE146537CC3F2FF0012D771096AB47663384EDC5379E31939C5383749B5B92451DEE05C66C637345769BDC175897FFB6E67AE8AE271B52D6EA3539232B5271855C64A4D52095B6A9B4871E23AF58AD44DF672BF0A653F7738E71850EBE979D283A6C8AB72DAF77FA54F1F24E327197464B6A69C64BB4C1ED17139DD4A1AFB56B576BEB29C232747B5AC32D7B46FABF94F85EB6DABDA19BD36649C5C167B6D3DEE33C5769AA721B5BEAEDCBCCF97DAF15ECC4BDCBB2B4D2B90A5727175553C4163C12D66D44EEBD96E145E7374F55331C4BE5FE2BC32B3BB0EB6C2DB7AD74A34FF0012A563FE654E72058D6EAB4F9959B8E0A546D2A62D60B6A3D4E9EC55C2E4676E714EBE17539BAB93BDD35CB769ED7723B1B960A8F3CAB9AC0F564E8705D36AACDABD2BB7539413A45C72A6FCAA5632DE78A7C5B886EBF2EEA3DD701BCA7C174729BAB706ABCF09CA1BBB074F50E49469AD3D878F6BA19F4CF99294252F2C76D70D5E34225FF94F457DA72BF7928A69259298ED78C4E5FB2F43BB537BFF0087D93D02B907B24BBA673C3F99778E3704DD5E6752EAAF2545724798D4FCA1A4B1A7BD796AAEB56ADCEE51C6347922E74C32F21E553C137B687D078EDF56F836B65169B76F26DF69256FFD47CF8C6692696A7A3D0DCB93849CDD71A1234763ADBB59630B7472E77F55166CA48EA6F5B4D5B9B8A6EB4C36ECAEC33EFBABF6AFBDE23D0B361C60BF9A598BAF74BB165D85D0297DF757ED5F7BC43DF757ED65DEF11A72A4536B2E89BC3F5AB4CEE5BB89BD36A2392F28F94A95A4D72B55EDA3CD4755ADB92508DC93949A4961B5F68B9B56E50B6A339BB924EB29BC2ADF273238BAE4A2A2EBFDCDDE1F978B3ABA48396F8B5FDB947C5D93E1EA3D5E9B4D66E68E10E1DAC524AE7597249B4F14938B5169AC16C670E21A9D068B593D65ABAEF6AF1CB6234718C9C72566D6C8A58EDA9E724A32C6493EC994947058732389DE935F3666CBA2F16E95C728CAB54A2936A79EE7A18B9294A7294DD6736E5374DAE4DB6FBACD4E1AF8DF50EBACDC71505D382A631AF94BE92B3DF757ED65DEF11E8F47152B31DAFC4BCFF31CDD5465CD75583F2F75287A2D1E8EEEAEEF576F72ACA5BA314E957CBCC8B95C034AA38DDB8DEF6B2A55EC657E138FCAD774EB4DA8B9A8927485AB8DBAD68A2D3745B7A4CB58F11B8F864B52ACD9EBD294E3A7EBA919423370CCE6EDD5747FC3B70743C7EA6DF597EECA51BB1B508BDB6F6AE3FD586056E5C9DA7B2D2928C76A728AA36E4AB8BE2CF33AFD05DD1DC5193528493709D289A5B535BA488A7A2F986FE96E70ED3DDB4D74EE369E354A2A51960F91E07835ADD5E1FD57DEF11E9FDBD5E95B70BEE2E76DA55C71A913F1C6171ADB39B94674C2BB4BA0533D6EAFDABEF7887BE6AD6DB8DF73C47772DEAB0CCCE9DAB0CEB922E414BEFBABF6AFBDE22C747AB5A88659515D8AC56CAAE55F4912834AA1A24800A150000000000000000000000000000000000000000000000000000000000000000000006D24DB6924AB26F04923139C61173934A2955B654EAF592D43CB1E8DA4FA31DEE9BDF88B462D92954DF59AE77BFA56B0B7B24F639F89108037492C8D12A000120000007A4F95FEE353E7C7D591E6CF49F2BD5E9F53455E9C7655FD591CFD5D392FF4995FF232E926F662672CF91F708FAED2DDD5E967A7B571D89CDA71BA93AACB2526BA0D3C694DA55FEDDD7FFF00E8DCEE5DFF00F90F319C89178D35B703CD7CCFF9DB3F82BD6997BC3F497B49A58D8BB75DF9A6E4EEBCD56A4EA974DB78764A2F9A135ADB35C3FA2B6E1F5E674749F552F98D2CFD429D4DECDDC86CEE3DC8E60EE958B52757189DDBE5A99726DD5ED3001A2492492A2D0AE2F115335E730CCA4DBA2C5BA24962DBAE0920F0C5FA437993784F0F9F12D7DAD242AA1275BB34AB92DAC6526F62C3055DE7D274DA7D36974EAD5A8AB56218460B05C9574C5C9F2ED643F97B83438568630924F5579296A65836E54C209FF2C6B4ECE3BC95722DDE8DB757158A5B2A9E2E8781D6759CF9CA107B6107487F51CD396E7EE236B3411D66AADDF771C6D4124A0938CEAA4E758CAB85797692633BB395D538A84534AD4DC94B3472E3269BE8D25CA66CDAEA1DC71CCD5C9393EB1B6A0B922B0518A450714E2F73592959B12CBA5583925495C6B7B7BA3C8BBA71EE56D3AA4AB9D258BF616B1D3CEF4E9054E2E5A22CAFF19D169E2A39DEA2692CDD5254AEF6E4E915D8225CF98A51FBAD3C1ADF9A6DC976691A14CDB6EAF16F6B613C76275C127B154C1F5336F43D18F416A118B6A53A6693A27EB2E63F32DE583D2C2BFE19B5FE961FCC2F65BD35BB52E578E2F7E0A2544A12851B6AB5C12DA8D2ADBABC5BDACA3BB3D597B763A6B9495B8C276F2DCA52AD7BB0276A351775377AEBCD4E74493492A4562924BB26870B7374CADECD9D8E437ABE723178B66AA2ADB69258BC1455303A16DC075349CF492754EB72DF33D924BB3B7BA53C655C1EDDCC97C3A4E3C434F2A55E6A3EC4A2E2FC24C6AA5C2BD983F594EA20AE599274A2558F0C5647A86AAA9BB14F7AA6F4D1E5B8F7CA30BAA5AAE17156EF2ACA7A6548C27CF05B232E6D8F9B7FAA07458EA2E589EFB72717A7C2FBD1E1C64E2EA8F904AA9B8BC1A7492A34EB5A34D3D8CF75F2E4B3701D2ADAE12BB07E9B9AF5885F3A7088C5C78B588D136A1A94B0599E11B986F7E4BE7A739DBE53966E0B25FCBA99C7BB0B6FE93E855F8DFB36EE478C95568E98A2FD4BDD66BFD4BDA5C0001C055FCCB77ABE0B723EDEEDBB7DC6EE7FA0F15395161B5F80FA3EAF874388F0BD469E51529BABB0DD2B0B914F2B4F76383E6C0F9A6D5D9C4AD9B6AE5D949E3B1A54EF3D3E927B6C38F16DB0003BCD8000027F098295E95C78E48E1E749D2BDC2D485C0EC5CBD2BEAD2C52837574C2AD1730E1B3C3AFB91827828C5D64DF2273A23C6EB6339750EB945251F7AF69BDBEBFA4E9ED52EDD8A926DCE11ACA75F956273D0D9EBB515A5616D3737CADA6A2BE9384EDBB5395A96128369F3ADCFB68BCB76ADD982B705962B76D6DF2B7BD9CB53A4B5A8A4A584D2A29C76D391A7833276BC34E297ADB3C9B3FFE863FBEBB3B8A4BA79DB85B8A5E270D95DB292EDDCEA970A6853B49E0F14D34D3D8D33CFDE87557676FF924D57993A23D7BE153F6CA9CF175F09E6355654B89DDB0A55FEACA1992E4951BDE757DBF7425737611A6EF49E94FAFE97AADB1E9EE73671A556D946917979922C382EA35166DF590C3249C629AAC65192E94249ED4D97F1E3F05497B85BEB630EA93536A391BF272F57B398A88C5462A3154492492DC960748D994EC5DBCB65B69766BE5772A8E39DC94EE4E504D6E6E54EEE2765CB5623083BF8D250B69B6D6336A29619AF11C78AEA2FEA6C5C9BA2CB1518420A90841B4DA8C772A6D7B59E7B0A1E8D3783583453EAB49715F946CDA9CEDB758B8464D62AAD60B733B7EDF7978ADBA5719571E267D5DBDB494708C7C14A5298E049E11C1AF711B94AE5B6956BB1513A36DE385702D759F2875561DCD3DCCF38AAB4AA9B54AB6949BCDDA68EFF2CDF9D9D25ED346D64D6DD4969D5C592B24DA74CEA8E8A5992DF8A3D0DED55ED3385FD4B72D25B84AD5ECF18C64EE46996E4156B2CEF04961BCE5EA2E75CEFCA56EFAB70B6DA5078E59EFFE072CA728CA308C2338B55C6959615C1E6B4C3BB33E6138384E50960E2DA6BB1C8621395B929C1D271754D6E3BEBE6A7AAB8D6EA27D98A49F7D119ED3DAB6DCADC5B54738C654D2BC04D2529258A8BA179A6D4C7516F32C24B09C791F2AE667528ACDE9D9B8AE436AC1A7B1ADE997566F42F5B5721B1E0D6F52DE999CE3475E067246E002854000000000000000000000000000000000000000000000000000000000006B72E42D41CEE3A456FDEDF225CA62F5EB76219E6F6E114BCA6F9114D7F5173513CD3C12D915B12E62F18B7DC4A5536D4EAA7A8955E104FA305B173BE567000D9248D0000900000000000F63F23B6B4BACA61FD5B7EAC8F1DB8F63F23FE5759F8B6FD591CDD67D17FA7DE657FC8CF4D99F28CCF94C03CAA9CB43399F29E2FE776FE23A7AFE9D7FB970F6678CF9DBFB8E9FFF00AF1FF72E9D3D1FD659FC46967CE79C001EA9D6000002DBE59D3C751C7349092AC61395C69E38DB8CA71C3B312A5ED2D7E59D4474FC7347393E8CE6EDB7B31B9195B8F7E463D46EE4DDDB9F2AE53BCACFCACFA61A5DB51B89375525B24B6A3707C955E7D9438EA50F1FD45FB5661A5CF557AAE4D2A3C91A60DEDC5B280F55C67864B5D6A32B2D2D45AAB8296119274CD16F76CC19E4EEC2F59B8ECDE4EDDC8ED84B07D95CAB9D159A6DD4F63A1B96F93B5537E72E06CDADF818CD1E534CB3A66A3A3DF474EE9CAE5FB76FCA74A349BDC9BE565541BCB13AB9AB34D3593EC7E8A121CD36AAEBB954C9CA1284F14EA96DE531D728DCEA714DC7345BF25EE6AA8B2B527911CD8C70782CA8B0C0EC9B4D35B5627694A2AADBA25CBCE564A5A99C651BB8756E958B6A328BC535CB4AD19986AF519E166EC9CF4EB0B6DBAF5727F57B0DAED1A2B0D55D72292BAA51528ACCB077614AA756B72DB53A59947556652B375C27092839C68DC24A8D36ABD28C915B774D394A5284DA53A39465549528B347265DDCA755A88E8E7D6E5C6748CF2F454F9A52DDCD525DB8D30AB970C0E6BCA772145558A6BB4BDB3C5F51A67EECA71BB75D5A849CA6E1455951A75CB4DCD93F86F18B5A9829DDB9973D68DA50B755B6356F3292E4933CC6935EB3E6B566CDAD15DABBB6EDD5CF36C5372C733E6C3696CB49AFD5DE51B592161515D9632B9269EC926B2C7054C655E63395632DBD95ABD74EF38A769C29B9513554F5EE2D788DCD36BF87EAF4D6A71BB9ECCF2B8D65152516E2DC92A2A4927B4A0F93A75E1BA9B7FCB7D4A9E7C143FD25EF12BD7343C0B5372FCD3BB6ECCA3195289CA69C20B9DD5AAF29E73E4B7FD0E20B7A9586BB7D623D8FB6EE7D3DC6FCBCD86DEFF88C6E25CA9E14C53F51E8C00779C448BDAED3E8343EF57E5185BB70CD4AA4E72A3A4635DB26F03E56D34F9F697BF38CE32E2D082FFA5A7B709765B95CF048A2DC69D2DA508B956AEE525DD43D3B11F027AA4CC000E93606D184A72518A729C9A514B16DB74491A9E8F81F0DEA22B597D7F5A6BFA516B1841AF29AE56BB8BB25652A229726A2AAC9DC23410D0DB51924EFCE35B9358F4B6E44F9234EDBC49996DC6FC9DDB72BD094690C2AA3BA49539769AC1D2517C8D124F37AB86E6ABD98F71E2DFEA25D37571BF18C2529DB947C4BD0E8F8614C8D74D3B96E116F09D1A6A58B49BAA4F1E4E71394211739C9462BCA93744AA6F09E4966A27B551ECC4E13AC6F5A9CA0EE5B555284714A4F1524AB1EC731CB4717271B78EC8C54EB9EDCABDDF8C8E3B4A3D4DE846EDC56E172ECEE4A38ED85557C3C2AF25A7A4EC9AA55629AAA6B63443B919DD84ADA7473544DECAB7BE874827085D79722936E1174783496C4E4956589A274A35BB13B3A78EEB726FE2543BBA3B3C99DD76E6A7B2E6D8DC8E5E1C53A62B3E0465C3F24975F7689E148A75A2DADC9AC1739650B7085BCB08A56D2A512AAA3F0D4D6509E7772DC945CA3965555AC5E2B7AD874841C6DE58CA918D23976374544E871D36B6A9186318D5F6BA35E931EB3AC9F556AD4AE5EBB7AE527295A5151B71947C8D5163AD7C587159106E70BB6E55B7295B5B32E128AEC55A666D597A78F54A6E55756F662D6CA55F2126139CB2C9C696E6DA8CAB8D63B734776C394DFF51BE7A77303A7A55095C728F0543AAD751F7094BF6FD55C94A31B6A6A32DAEAF8564B17C7895BA9B8AF5C75C631AA8AE5A3DA739464B239D5B71AC6ADCBA2DB5857B04D8F0E8424BAD9CAE2F29A82CAB2B744E4EADD2BC84CBFA4B37E318C951C5745C289C53C294ED6C3925194E5272A7326EB4EFEED0F567F7AE97A7762108DC9587197F7764A292CAB15251AD65E6FE279CD670B5AAB72D469552FC71BB696C9ADB9A3FE2E55BFB3B697FE58EDA9ED61A48E99B9466E4E5834E8A89760ADE2FC23AF52D4E963FD7DB76DA585C5BE515FCDE1EC9EB749725CA8A9E78E3DC67FBAB3726E769B76A6F06E2E38F1C19E6CEFA6D44B4F7332C62F092E6E55CE8E3FF2C76D4C1D2D555381B1E82138CE2A70758C9553464A8D1EADE9E79658DA96D5C8F9516F54D26A8D3558B58A69984A3B4CDAA00015200000000000000000000000000000000000000000000000000071D4EAADE9E3592ACDAE8C13C5F3BE489AEAF570D3ACAA92BAD611DCB9E5E22A2739DC939CDB949BAB6F7978C2B8B2D146D76EDCBB3772E3AC9F712E44B90E601BAC32C8B80000000000000000002FBE5BE3BA6E16AF59D4DB9BB779C651B96E8DC6514D51C5B554EBBBB85082972DC6E45C6593A7B0ACA2A4A8CFA25AF98F825DF275908B7B55C52835E9C523ABE35C1D2ABD758A734E2DF71627CD81CCFA187F3CCCDF4F1D4FA05FF9A3825A586A5DD7FCB6A127DF6947BE794E3FC5ADF16D646FD9B52B50B76D5A4A6D3934A529D5A582F2B6559540D2D74B6EDB528B9571E3A968DA8C5D50001D06800000364DA755835469AC1A75C1A66A0355C06A7D2FE5EE330E2DA252935EF76928EA21B3A54C2697F2CA95E67816C7CB7865CD7E9EFAD5E8A4ADCAD34A5394A31834F6C6599A4E2E9B3B989ED745F32435D38E9AC46D2D6349CA33BB4866D9483CB5972D163E13E6FAEE8D5BB92765EE8FC5158B87CC96473CED3AD5645E959C722A5A5846508CD4AE28B7249B8AA3758D763AC769DBDD35D7B0D46ADC1358DBD3C54157CF9E7978087ACD3F09B30B90538BD5BC23294A576EE64EA93F2E4AB4A6C381D694C177E1EB2B18E3E17272596D453AB32EBE3724D754A2E145271929B78E68D72B8E1B5E2AB8153C5F49493C8D75775A6ABE4E6DAD556C3D25AD0EAAED7269E6D4B6BBCD5B826F921B5F7CE52B50B937195A5752C249A596124DA74DD12B1BAE0D49E48D6DDC95B955E2B26ABC0F35667D4E39B324A92AD174576390DFAED15E6AE26DC92C1D249AC7B87A4F83CB596D5A95A50B4DA6EE5B518D3FC4B0599EFA2AF21065F29EA34F19DDD4EA6D5AD2DB4E52B908B94B2AC7C86924FB66F6E7CDF85A6DA4BB6B950EB8F516649B9BE5D3F98AABD66E5335B72B971B55CD25972B756A2A78453A6E16ACCAEDE858B76E772E4DA4D2CAA31C71CD2AEE8E25BC38769E515D5CA5A6B0D461A77772F597652599CA4B3EF7B1469D126C6D5CD45CB76B4766D69B57A44DCACC9B76AEDBBD44E6A704E55528D28F1E73B974538ED95E94230A566EB8C30C3765C7074AD389CF3FB8C127CA8CDB7E56FC2A5F29E61C3532A5A4AEA72748C529293957245468AAF1DC58DBD0EB9C651BB6FABBD08A6ED4D52528D30928D28EAF0A5769E863C2B895DBB69EA3516D5884A37651B716A4E51929A8A6DD32D56DEF1D75FC2F517F571D569AFC6CC9C15BB919C1DC8CA2A4DA6955749662BB3A357763BBBA128C9A92DDE16B25BA9C7B8ACFEE17A51AC6D420F8E6CA6D070F70BFA194A39A572E26ECC928C6118C5CDD71F2A34AA5DE3D77671A9516786FBA5E8EBB5BAC73B7A65276DCD42DC22E6B2394A4B06E8E88A0E3DF374EFA969385C9C6CBAC6E6AB18CA6B6356D3C62B9DE2F7537A7D343A8B9087489EC8AF1CE8E293DD9BDCAAFD461BAF5D9395C78D705C12D1234F9C38DC7597970ED3C94AC58966BB38E2A77126A89ADB18D69CEFB06BF25C93D4EAF4F54A576D46493A2AB84B62E5C24799364DC5E65835469AAA69AD8D33DAB7D346DD956A2E9C6B4E3A9B4ADA70D9AF13E9FD45CD8D24C2D3DC7825B793FE07CF6D71CE31663961ADBD956094A4E5DCCF539DEE27C4B51557F5776E45AA38BB92CAD79B5A778AF26E569589CCBA3957CC895F325C5738E6B649D529C60A98AE842306BBA8AADC01D118ED8A8E8A876C63B62A3A2A00649FC2786BD75E729D63A6B74EB1EC6DED504F9F7F2225BA094945559278270BEBA4B59A85FD18636A0D79725BDAFE54FBACF4356EADE2D98518A8A8C528C524A292A45452A2490306EACE29C9C9D587B0EF3B8A118D3A539E16E0B6CA54AF6A9BD9C0E984ADC693509C1A6A4D5766E6AB1C1AE739FA98C9C138AAB393A9B76E52B2EEA7CA8CDEEA62F6BCDE1C0ED66F25371B90E9C7CAB72C695C1493A524B0DA67BDCC738B79A53B9714E72A26F049255A615E736CF1FE65DD47242DC956528D2728A8BEE55FCCF3BAA8479AE3615C9588BDD0F0B4FC4937E649D2B8234BEFA0972BF01C4E97A49B8A54692DAB959CCEFB29A82591E9745070B114D28C9B6DAE189DD4E31B4A52744924DBAB6DEC4A8B16CDE0E12B7994AADB544B635BEAF71C22D522D4946E5B9668BA392D94782A6D4CDE138C53CD34E526E4DD1A557C8B1392E42E3B9249351AA755EE386F74D0519C92BB2BDCC94797CB74E5BCA55D577FA0CAB76E32734B14DBABABA37B5A4DE071ABC5BDACED3B9170693AB6A8963BCE06FD3C36A7554A9D5D0AB8E3395D771CB08479ADF8631CA953BC6309C20E493695157753FE46D794A90A45AAA4DAAD1C963469BD989C2AB2D2B8C5B795E68A75583AA55C1E2755720924E556924DE3B8E7B96E4E72494B6E38F1F5A30B96EEDA9F3231775C6EC9C2DBB7BA2A354FF00E55E14F49CEE393694B16924DAE5DACD0DA6D4A6DAC53D9D8353BA0A914B4A1E8598EDB70545174AC92D78953C6384F5EA5AAD2C7FAE956E5B5FF512DB24BF9B9797B279C3DD2E628B8DF0B5D2D769E3CF7EDC56CE5B892FFE5DDE53584A9833AED5CF865EB2889DA0D5F56D59BAFF00A6DF45BFAB27B9F332083492AE66ED54F42D6E7B502070FD5D52B175E2B0B6DEF5FCAF9F909E73B54651E000041000000000000000000000000000000000000000095705B468011359AE567FA76E8EEEC6F6A8F679F98D359AF51ADAB0EB2D929AD8B9A3CFCE56FF00CCD610E2CB241B949B949D5BC5B78B6D9800D517000000000000000000000000000000000000000000000000006C3AD995B8DC52BB1738AC5A4F249BDCD4A8E989C81128A69AC69D8DAF6E63B0BDB3F346AD4E30D4DB7A8D34553AA95DB89BE773AB727D94CF47C37E67F97E494234D15C960E138A8C6BF8904D539E4D1F3F070DCFB5F4D35845C1FF0032F37A6A525052E2D7765EA3EBB66FD9D443ACD3DC8DEB6F64E128CA2FFCD06CD7DD74EA4E7D5ACCDB6DED599ED747854F9346538494E127092C54A2DC5AEDA752759E3DC66CBCD0D6DE95374E729AEE4DC8E29FD9A4BC97614D26A9F999BB2F833EA389A5CB56EF4256EEC54EDC93538C95534F0699E021F3A71C8D139DA9537CADD5F79C4CFEF6E36F0FE8AE756DFDA315F69EA934D4A0A8D35E3CA995302BC99685C46DDC8CA5A4BBA3BD7AE69EECA56928B9454149E4719CDA5D158255C4B3E0D6751D6EAB557ACCAC46F7571B719D15CA422D372E44DBC11E36FF00CD9C76FAA3D4754B96DC545F74AFBDC435FA859351A9BD7A1FCB72E4E51EE3950F4EE58EA6F5B76E6EDDBDEA2A4E2DCDE0EB8659B4521D2B4EBBA5870791F4BD5F18E17A2CCB55A9B76E51F2ADE652B8BFC90CD2EF141AFF009EB4F0CD0E1F61DD96C576EF4615E5515D292ECB478A052D7DA6C468EE395DA649E115E85F99BAB2967893788716D7F12B8A7ACBAEE258C6DAE8C23D88AC3B7B79C8401E8461182DB15B62B8234492C8000B12670181803D43D40036493951B493DEEAD255DAE956012343A2BBADBEAD4308AA3B937B211E5ECF223D65AB36AC5A8D9B31C96E0A915BDF2B93DEDBC5B396834FA6D3E9631D3495CB6D565762D3CF2DEDB5E0FAA493094B7338EE4DC9D38180010500000F53EFF700001FEB40001A760000031D78002A2A40F4BCA800AA1544D7B58EEC003354600FCEA027E2C760001E738C70AF766F53A75FF8D37D28AFFA727FE96F6726C2A4F70E2A49C6494A2D3528BC62E2F069A3CC716E173D0DCEB2DD65A6B95506F1707B72B7E07BD1A425C19D16AE556D7995FF00F3A96BA1D5F5CBAB9BADD8EC6FEB456FEC9526D194A12528BA493AA6B6A68B4A3B91B3552FC1C34BAA5A8836E8AE47CA5F4AE6677306A8E8500008200000000000000000000000000000000072D557DDEE34E8D278A74675396ABF2D73CD65A3E65DF42566BB4A6CA8654641D9446C632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A1951902885118CA8654640A2144632A144640A20632A19519028B41431950CA8C814FC2144632A19519028850C65432A320510A231950CA8C8144288C65432A320510A231950CA8C8144288EFA4D5EA345733D895137D283AB84BCE5FC33D270FE2DA2D6D2DC92B3A8782B727D193FF0C9EDF35E3D93CA0293B4A5D8673B519761EF1DB82C1AA31921FCA8F37C3F8FDFD3D2D6A93BF655129D6B720BB2FCA5CCF1E73D0D9BF6751695EB13572DCB0525B9F2496D8BE66734E3286796A72CEDCA19AC3537C91E45DC1963C8BB8641528632C79177118CB1E45DC46C0031963C8BB88658F22EE2320031963C8BB88517277919000C39177061CDDC00002AC000558AB0001515041E25C52CE82195FF00535128D61696E4F64A4D6C5DF6155BA2C4949C9D16276D6EBEC686D2B979D5BAAB76E3E54DADC96E5CB26794D7EBF51AFB9D65E9522ABD5DA8D72C1732DEF959CB51A8BDA9BD2BD7E4E7724F17BA9B925B92E4391D56ED24AAF1675DBB4A2AAF331950CA8C834A235A23AE93A3A9B6E383728AECA6E8D17053E9BF316BCF8F84B839EF2A34673CC000C4A000000000000000000000000000000000E5AAFCB5CF359D4E5AAFCB5CF35968F997CE4ACD14E003B4D800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001B091A4D66A74777ADD3CF2B78496D8C972496FF091C10D27806AB99EBF87716D36BE915FD2D46FB4DEDE5706FCA5CDE5138F07569D560D51A6B069AD8D345EF0DF981AA59D7BAA7451BE9564BF112F2BCE58F29CD72D358C715A1CB72CB58C4BF06138CA2A5169C25469AA4A2E2F634D6D3265D861D8F3000000000000000000002557458B7B1228F8AF1DA66D36827578AB9A88BD9B9C6DBFF57739498C5C9D1665A117274599238B71A8E8EB634F49EA560DED8DBECF2CB9B76FE43CC4E739CE572E49CE736DCA4F16DBDED9AFFCC1D70B6A2B57A9D90B6A0B0CF50002E5C00003AE9BF316BCF8F84B829F4DF98B5E7C7C25C1CD7F34673CC000C4A000000000000000000000000000000000E5AAFCB5CF359D4E5AAFCB5CF35968F997CE4ACD14E003B4D800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002770EE2BA8E1F2518FF52C37595993C31DAE2FEACBF867A8D26B34FADB5D6E9E554A99E0F0941BDD25F4EC3C49D6C5FBBA7B8AED99BB738EC6B937A6B634F9198DCB49E31C1995CB2A58AC19EE015BC378D59D665B57A96B54F0496109BFF0B7E4BFF0BED165B369CCD359AA1C928B8BA49518000200000061B8C53949A8C526DB6D28A8ADADB7B0D6EDEB566D4AEDE9A85B862E4F676172B7C88F2FC578C5CD74BAB856DE953AA8568E6D6C94E9DE5B8B420E4F0CB52F0B6E6F45A9DF8B71B7A8AE9B48F2E9F1572E62A5739572A8F7D94DD800EB8C145511D90828AA20002C58000000000EBA6FCC5AF3E3E12E0A7D37E66D79F1F0970735FCD19CF3000312800000000000000000000000000000000396AFF2D73CD67534BB6DDCB53B69A4E4A89BD8898E125D8EA494A09BF0C9FB48F718F864FDA47B8CEBE6C3535DC88409773413B76E571CD3515569278910B464A55A129A790060DEDC1CEE420B0736927D97427506A09BF0C9FB48F718F864FDA47B8CA7361A91B9108137E193F691EE31F0C9FB48F718E6C351B9108137E193F691EE31F0C9FB48F718E6C351B9108137E193F691EE31F0C9FB48F718E6C351B9108137E193F691EE31F0C9FB48F718E6C351B9108137E193F691EE31F0C9FB48F718E6C351B910812751A3958829CA6A55928D126B6A6FE823164D35544A75001D74F65DEB8ADA6A2DA6EAF1D81BA26D8A9C813BE192C3A71EE33A59E113BADD2EC538D1BC24F6F60AABB074C4CEE5FB76E2E539249535E3E82B41677B835CB7D377632CD825492F09CBE192FE78F718E6C166C8B77ED5C8EEB7252556B8F020835BF3EA2ECECCA2DB8369B4F06B735D9589A7BC47F95F75197EEEC26D39FF00C65F91A6E475072F788FF23EEA1EF11FE47DD43F77D3FF00D8BD52FC86E475072F788FF2BEEA25E8EC3D5C2538B50C8E8D3C5E2AB5C0B47A9B327453C7BA5F90DC8E209BF0C9FB48F718F864FDA47B8CBF361A8DC88409BF0C9FB48F719CB55A4969ACBBB292924D249269D5BA6F21DEB6955BC86E447072F788FF0023EEA1EF11FE47DD467FBBE9FF00EC5EA97E43723A8397BC47F91F750F788FF23EEA1FBBE9FF00EC5EA97E43723A835B173AEBB0B318D1CDA49B782AED6FB0B127FC325ED23DC65A3D45A979669FA18DC8840B65C06E3A357A2AA93A525BD11E5C3271938F591C1B55A3C68E85DDC8AA5598DAEAEC5D728DB9A9B86744D7BE84104DF864FDA47B8C7C327ED23DC639B0D4DB7221026FC327ED23DC63E193F691EE31CD86A37221026FC327ED23DC646BD69DABAEDB69B8D2AD60B149FD24A9C5E4C292673001624024D9D14EF5B572334AADAA51B781D3E193F691EE328EE4137891B96A42F0977C378FCED65B1AE6EE5AC146F6D9C56CE96F947BFD920FC327ED23DC63E193F691EE329295B966CACB6C951E47AF84A172119DB6A709AAC671A4A2D3DE9A3279CE1F2D66825D0B91B969BACED4B3657CE9FD5973AED9E82CDFB57E19ADBAA5B53C249F3A39DAA3A56A724A0E3DAB53738EAB5563476BAED44A91AD23158CA72E44B7B1A9D4DBD342B2E949A79615C5BE7E45CE79CD5D8D5EB2EBBDA8BD194A944926A315C9155C113149BC7026DC373ABC111F88F11D4710BAA573A36A0DF57696C8F3BE57CAC864DF864FDA47B8C7C327ED23DC674C676E2A8B03AD38A5444204DF864FDA47B8C7C327ED23DC64F361A93B910813BE1736D7F5238F3320931929568134EB40002C4804C8F0E9CA2A5D6455526951EF5533F0C9FB48F7199F361A91B911F4BF99B5E7C7C25C10AD70F9C2EC26E69A849369278D1934C6EC949AA7029269800191400000000000000000000000000000000000000000E3AAFCB5CF37E92A0B7D57E5AE79BF495074D8F2BEFA1A5BC81D34DF99B5E7C7D64733A69BF336BCF8FAC8D65932EF22E40070980000000000000000000000045E25F978FE22F032B0B3E25F711FC45EAC8AC3AACF90D619024F0FFCCAF3591893C3FF0032BCD65AE791F7549964CB43BE8FCA9F6BC2703BE8FCA9F6BC27343CC8F3FAFAFED2EE2F28BFF9237D67910F3BE82292B57E443CEFA08A2E798A7DB3FC58E7E7971ED2A38D58A5C86A12C25D093FF12C62FB71F01587A2D75AEBB49723B649675E7471EFAC0F3A9D71DC79DD4C36CD3E12553BD000187A17A802CF824E972EDADD28A9AECC5D3FD456133854A9AF82D8A71927E8B7F41A5974B917DA97AC32F8007A25415DC6E6D69EDC17D79B6FB108FF00FA8B12A38E4EB7AD5BDCA0DD39E52A7FA4CBA874B53ED742522B00079FE85EA24001ECA8F57A8165C1ACE6BF3BCF65A544FF00C52C3BC8B82370EB1D4E9211D929ACF2ECCB62ED2A1259E9588EDB6963564712C21E447B0BC0409F973F39F84B087911EC2F01027E5CFCE7E13A2E648F1BED5F5AF571CAB5ED66A00323D800000153AFFCDCFB5EAA2D8A9D7FE6AE76BD546B63CCFBAA5A199C000751A969C3FF002CBCE6492370FF00CB7F99924E39F9DF7D0C65980014201B5BB93B5353B6DC64B7ADEB91ADE8D400F1C0CCE72B93739B6E4F16D98000EC00000000032B6943CBFC6F2F56D289EFFE379BD8F88D2DF10003A0B9776FEEE1E6AF551B1ADBFBA879ABD546C703CD980000000000000000000000000000000000000000000000000071D57E5AE79BF49505BEABF2D73CDFA4A83A6C64FE734B793074D37E66D79F1F591CCE9A6FCCDAF3E3EB235964CBBC8B9001C2600000000000000000000000117897DC47F117AB22B0B3E25F711FC45EAC8AC3AACF90D619024F0FFCCAF3591893C3FF0032BCD65AE791FCA4CB265A1DF47E54FB5E1381DF47E54FB5E139A1E6479FF70FF12EFCB1F7A37D5F910F3BE82292B57E443CEFA08A2E798A7DB3FC58FCF2F78554FB0EA79BD5D9EA35372D6C516DAF35F4A3DE67A42AB8DD9A3B77D6FAC24F9D74A272F531AC13FE5753B932A8007096077D149C757664BF9D27D86F2BF09C0CC64E12525B62D35DA75253A34F469FA883D4BDA03A3786CC5A0B1D87ABF9D0A82878ACB36BAE2DAA094176A29BEFB3D064928C6724D42E55464F63C94CD4EC54F2D7AE3BB7AE5D7F5E4E4BB0DD51CDD54BC315DADFA89599A000E2241DF4563DE3530B6F18B759F9B1C5F7761C0B9E0D632DA9DF7B6E7463E6A78BEDCBC0696A1BA697041962DB6DB7B5E2180CF4485C0B187911EC2F01027E5CFCE7E127C3C88F61780813F2E7E73F09ADCC91E37DABEB5EF47B19A800C8F600000054EBFF003573B5EAA2D8A9D7FE6AE76BD546B63CCFE52F0CCE0003A8D0B4E1FF0096FF00332491B87FE5BFCCC9271DCF3BF9CCA59800142A00000000000000000016D289EFFE3797AB6944F7FF001BCDEC7C5F8D4D2DF10003A0B9776FEEA1E6AF551B1ADBFBA879ABD546C703CD98BCC0001000000000000000000000000000000000000000000000071D57E5AE79BF49505BEABF2D73CDFA4A83A6C64FE734B793074D37E66D79F1F591CCE9A6FCCDAF3E3EB235964CBBC8B9001C2600000000000000000000000117897DC47F117AB22B0B3E25F711FC45EAC8AC3AACF90D619024F0FF00CCAF3591895C3937A954556A326D2C704AADE1CC5AE791FC8FD84CB26599DF47E54FB5E138326C2C3B177257367B76EE274A2A5C8A74DB2D95A1CB06B7A5C71F61E7FDC3FC5BBDD15ED469ABF221E77D045EF1335514F4EE5BD5C4ABC89C67E233C220AE71084796179761BB5255176546E5A7E5533FB6BA74917A4E5EF211CB5765EA34D3B4BCA6AB1AE1D25D38F74DD3E8579ABDE26F158F57A8843742C598AED5B8946ABE1D6BEC3B8F15DEDED02D7E64D0AD17159462B2DBD442DEA20AB5A75914E5FF00CF3768AA3CC6A8E8593AAA831BBB2641049E9ACDC53D3C2ED299A09D16EAC513F895B56B530B6A9D1B3653A24936ADAABC39489C1F86710D5F0BB372CD9CF6DA94632728C536A724FCB945E142FB89707D6EAB510B96541256ADC64E5349A94551AA2CC7A0AE47C18FC1899B69358951C624ECF06D24B67F46F34D7F34E6D27DF3C725B8F63F3869EEE9784F0FB77251CC9BB7251AB754DDC6D60AB1581E38E5BD2AB5D95F6B261900018963BE8B4B775BABB5A4B3E5DE928A7B9476B93FF0C62AAF991E9349A7539D8D2DBC149DBB69D314A5251AFD263E4BE1172FBD47136A2B25BB9A7D3395556ECA3472C13E8A8CB2D57297BC3F816AB4BADB1A8BD3B52B569B94941C9C9B5179689C56F3A6C3518CDF1E066E4B1EC29B531B71D4DE85BC2DC2E4A3055ABCB09382ABED1B5FB0ACDAD3B6DF597ADBBB25BA3172718A5CED2A93AE7CBDC51B94975526DB7453C6ADD7EBA89D789708E217750BDDECF596AD5A85B84B3C536A314AB95CA2D62746F5582DCBB4952554AA4687931EC2F011751625695BB926BFAF9A6A3BD454A514DF672D496E2E1583DB0C1F6560CD389C2F4AEDA6ADCDDBB562CC14D42595B5153749528F191BDD74DBDBF950F1FED5F5AF7E3891B4DA796A2E64AE48422EE5DB8D3718422AB2934B6F225BD9CA2A526A29372951452556DBC12496F26DC4B47C32DDB6E97F5ED5C9AC149588BE8AFF0034BA467409E9EC5FE21B2769755A7AEFBD755332E78C7131DDE66B8BA44F5EA4169A6D3AA69D1A7B534046326D4629B936A314B6B93744BB6C95AFB76AC5D8E92DC537A7596F5DFAD72E3A3963FCB17D148B37474E25AA452A75FF009AB9DAF55177734F2B562D5D9B4A57AAEDDAA749DB587592E44DE0B976949AFF00CDDCFF002FAA8DAC34E4DACB69786670001D4685A70FFCB7F999248DC3FF002DFE664938EE79DF7D4C9E6C000A150000000000000000000B6944F7FF001BCBD5B4A27BFF008DE6F63E2FC6A696F88001D05CBBB7F750F357AA8D8D6DFDD43CD5EAA36381E6CC5E60000800000000000000000000000000000000000000000000038EABF2D73CDFA4A82DF55F96B9E6FD2541D36327F39A5BC983A69BF336BCF8FAC8E674D37E66D79F1F591ACB265DE45C800E1300000000000000000069DA0032E324949AA275A369D1D36D1EFA1D74FA79EA15EC8FA76ADBB8A146DCA316934A9BD2750DA4ABA02BF897DC47F117AB22B0B2E258E9E34D9D62F564569D567C86B0C816FF002BC15DE336AD3C3ACB77A0ABB2B2B7245416FF002BDAB9738D58C925176EB724E55A38C68DA54DF426FBFED5CF9242E7919DA8D74658358493DA9A7468B6B94B9A4D0EA16D765D99766CCB2AEF32CA5C03433D45DBD765725D6CDCF226A314E4F3B554AAF17CA73E29A6B3A6D3D8B566192DA949A556F16955D66DBC4E0B77232B96E99E3ED479BF70957A6B94FE9F7A2B9D9B97F4B7E16A12B973FA6D28AACB0951BC39992783F0AD769F55EF17ADF5518C2E28A94A35CD24D46B183934B13BF04FBEBBF86BC28B823A99C94E515961ED467F6F6FF6B15AB93F69E7ED7CAF2CA95ED4A4A94946DC1C9ECFE69B5E02C751C1B43A9BDD6DE5393C918514A91A45513C156BDB27830739BA55E55F69D757A9E6FE72E0F6F51C2DEB2C43FF002344936D55C9D88ACB28EDFABE557999F3E3EC728C2719426B3425171945AAC5C5AA4A2D7234CF94717D03E1BC4B51A172CD1B53A4255526E0FA71CD4DF964AAB94C66B89A5B79A21800A1A9F43F91AE759C072BC7AABF7209733509FF00A8F4278DFF00F1FEAE59B59C3DBADB496A20A98A9555B93AF23594F47C7788CB86709D46B2DD1DD8251B49E2B3CA4A29B5BF2D735398D62F0AF650E692F134795FFF00206A73EBB49A45B2CDA771BDD9AF4A94EE5B3CA1DB59ABD4EBB512D4EAAE3BB7E74CD36926D25952492492496E471336EAEA6F1545406F62CDCBF7A162D4735DBB250B71E5949A82F09A1EBBE43E17D65FB9C56EC7A1653B7A7AEC7392A4E4BB1174EDF304AA24E89B3D7F0FD15AE1FA2B1A2B38C2C4546A95334B6CA6F9E4DE624006B439CC19DE60CEF44FA104798BDF7D73CF97ACCF47A5725A6B38FF00D387AA8F397BEFAE79F2F599E8B4BF95B1F870F551D7D5F920797F6DFAB77B7F3379C21354B90534F0E924F0EDA671B9A0D15CB4ACCEC43AB5273508ACB1536A8E4B2531A1201C98E18E4EA7AB5641B3C1B87D8D442FDA84A33B6F34539B9454A944E8EBB36ED20DCF96A329E65A9934E55B99E0B33ACAB2A4A0F6BEC1780B29C93AA788DCCF3DC4F84711BDAA9DFB56E12B5451B5084956308C528ACB3A726E3CA715B3734FAFB96AE2A4D2B6E4B7A72846547CEB350FA59F3FF9ABFF0060D57FDBFF006AD9D7D14DB9B8F05035B326E542A0007A07416BC36129D98420B34A7369476B726E89244892716E2F069B4D3DB54E94267CBDA2D44786DEE216A1D65D8A9C34D18632536F2CAE539629E1436E1D66562FDCD56A20E30D0C7AC719A716EE3E85A8D1ADF2C4F3EE5C5BE7FD2F6F7B307255976105A716D3AA69D1A7834D6E60EDA5B37359ABB765C9B9DF9B7727BE95729CBB9566B7DDBBDA89BD3C14613952CC2356E95A476ED93F08AE2E3C5662A73076D5595A7BBD4E7CF72092BB874633FAD08CABD2CBB1BE5394EDDC8359E2E2E515349AA37178C658EE6134C5518001200000000002DA513DFF00C6F2F56D289EFF00E379BD8F8BF1A9A5BE200074172EEDFDD43CD5EAA3635B7F750F357AA8D8E079B3179800020000000000000000000000000000000000000000000000E3AAFCB5CF37E92A0B7D57E5AE79BF495074D8C9FCE696F260E9A6FCCDAF3E3EB2399D34DF99B5E7C7D646B2C9977917200384C000000000008A936A314DB7824936DF6123A75373A8F785476D5CEA9B4FA4A4E39D665B935B18D3DE969EFDAD4455656E4A6972A8BAB5DB42B5AD316BDFA0EE39D77A246AB4F1B51B1761576B516E324DBAD271E8DC8F6A4ABDB3A714D2C34DA853B58E9751FD5B12582CAF16BB2AA4CD068751ADE17734D383B4E1723734B726A518BCD84D72B54C766F2929A4A33AE055BC2A46D0DA5ADD35ED0AA75F0ADFD33DEE4928DC87F9924FB272E173D4435D6AEE9EDCAECA12A4E10527D178493A60B07BCBED0702D3E8EE42FCAE4AEDFB6EA9F9114E8D3A4562F07BD964928ACB14A31AB748D229B6EADE1BCCA575564A3E252F450AB966B53C6FCCFC267A2B4EFC651F779DF51B514DE64A5194B15449259688F34CF6FF003B7F68B5FF00D98FA970F1077746DBB58BAF89AF51BD96DC3105EFC9BFDEE3F8573C08A22F7E4EFEF71FC2B9E0469D47D29FC8FDA5AE7919EE8ADE37F7567CE7E0459959C6FEEACF9CFC08F33A7FAD0FC703CAEB7FC6BBFA7DE8E5C13EFAEFE1AF0A2E0A7E09F7D77F0D7851704F53F55FE92BF6FF00F1E3DF25ED000313AC27475DB4C4F94F1DD25CD1718D669EE3CCD5D738C9E2E51B8FAC8C9BDEF2CB1E73EACCF29F3B701D76AA7A7E21A3B12BF2841DABD6EDACD3CAA4E50928AC5F94D3A628A4F265E0E92C789E1412E7C2B8A5BC6EE8EFDA4DD335DB72B71ABDD9A692A9B43856A9D5CDC6D456DCCF34A9D8857C25145BC93347760B3922D3E46BAADF1E50D9D759B908F3B54B9E0816FF00FE40D5A8E974BA18EDBB71DE9D3628DB8E58A7D973EF161F2FFCA9A4D059D3F1284A77B5B2B4A49CE91841DC8F494629562F2BCB56DBF01CBE6AE0F678A6863AF85CEAEE69A2DC1B5553849A595A4EB16A5B1F78B70DBC6B433724E5BF81F3C077BFA3D4E9D37720F2AFAF1E947BAB676CE154F61469ACD3358C93C9A7DCEA1BA63B70AD0FAAF00D15CE1FC1B49A4BD85D85BCD713C1A95C93BAE2F9E39A9DA3C27CA9C2D712E2F0CEABA7D352F5D4F14E925920EBCB2DBCC7D29B6DB6F16F165E0B899DD7925C0C800D0CCC19DE8C19DE804798BDF7D73CF97ACCF45A5FCAD8FC387AA8F3B7BEFAE79F2F599E8B4BF95B1F870F551D7D5F920797F6EFAB77F1C4EA00390F500000307CFF00E6AFFD8355FF006FFDAB67D00F9FFCD5FF00B06ABFEDFF00B56CEAE87EABF93F8A35B3E72A0007A6749EF3E4FF00EC90FC59F8625D5CB76EF41DBBD08DD83DB09A528BA6CC194BF27FF6487E2DCF0C4BB3C6BDF567F3BF5A671CFCD2ED207C1B4B6D5E9696B62EDDB6EDA955CE3152F2A4A2DD54A9879456D8E13AAE1D3B9ACB9157DE9E15D3C6DA7272B8FA09B8D2A946B567A209D36155392AAAE0F3213678EE1F6A176FCEF6A3A5634E9DEBEDFD6A3C22FF00C5296047BF7AE5FBB3BF79FF0052E37293ECEC4B992C0F65A9D169F596A56EF46919B4E528BCB26E35CADB5B695DF52A61C01E9B551D427EF5A7B49CFAAA28DC94A2AB1835E4C9391AC6EC6AE4FD45D496655EA2C5BD2D985BBA9BD65CA5C92AD23662F18C5A5B65258BAEC5CE4558D52C69B79154EFD5EAF5BAD70945FBDDE9B728B4D38C9E2F3278C6315DE3AEB6F415343A575D35A924DA5D2BF716129CA9E563845721AA6D522F179BEC5A964FD243074D469EEE9EE2B575253514DC5352946BF5654CD49731CCB2C69DA48000016D289EFF00E3797AB6944F7FF1BCDEC7C5F8D4D2DF10003A0B9776FEEA1E6AF551B1ADBFBA879ABD546C703CD98BCC0001000000000000000000000000000000000000000000000071D57E5AE79BF49505BEABF2D73CDFA4A83A6C64FE734B793074D37E66D79F1F591CCE9A6FCCDAF3E3EB235964CBBC8B9001C26000AA3B69A1A6B9370D54E566325485D4938C675C1CE3B5AEC3C03744DBE035EC389DEF695C34D675506E76AEA7193A7917136A507DAC53DE355A2D468E6A37A2A92C6DDC8BADB9ADA9C5A27702B7A8BB7276FA9EB7437565BF9BA314D2C1A6FEB2E6C4A4A7E1DC9E0886E8AA45E1BA8B36AECEC6ABF29A9A42F26FC969D6334F738BDE498FCBDAD96A2769C946CC1D15F78E68BC538C562DD3B55DE5C68B82E8F48FACA3BB7536E372E24F2AAE1963B135CBB49C632BBE26E1857DFA9473D08FA6D0D8D3D8B761FF0059596DC257545B4DEDCAA948A24D5BC5E2F9580655E3C4A98320020F3DF3AFF68B3FFD88FF00B774F107B7F9D7FB459FFEC47FDBBA7883D3E8BE97EB91D363C80BDF93BFBDC7F0AE7811445EFC9DFDEE3F8573C08D6FFD19FC85EE7919EECACE37F7567CE7E0459959C6FEEACF9CFC08F37A7FAD1FC703CAEB7FC6BBFA7DE8E5C13EFAEFE1AF0A2E0A7E09F7D77F0D7851703A9FAAFF00495FB7FF008F1F9E5EF00C0313ACD6F5D8D9B53BD2F26D45CDAEC2AD3B7B0D347C6F43AA9C2D26EDDE9EC84D35D2A63152D8DF6CADE3BAB4A0B476DD5B6A5769BA2B18C5F65E243D0584975F2C6B5504F937CBE839AEDE6A4A8745BE9D4A2DBC19EB6F59B5A8B52B37A0AE5A9AA4A12C534F732BA5F2E709776DDD859EADDB9292516D464D34D2945D535811ED6BF556A39632528AC16755697256A9999711D64BEBA8EEE8C52EFCEAC85D4C52F89147D1CDBC541F6967ACD4C2C5993CCB3B4D416F726B0C0A7D469AFEA783DCD3D88E6BB392518BA25453836DB7B12DA2CD895E952382FAD3E4F1B2D2DEA347A582B6E595A58AC5BEF216E6DCB98D6D54A624DDB718C1DA8BDEE7E6A7750F310F95B8BB9524AD423BE59DC935D851AB34BDF266B257156DD8BD16D277308CA8DE3D171DA9739EAA3C534CD639937B9A75EF54ADB9F34415E51B761BB09A529CDE592C68DA8A52C173D0D9DF4F1AA39E3D2C96094A3DD812B49C3B43C3E32B5A2B11D3C24D3928ED934A8AADE66E84812966966AD6B8A7BA9BA860BE858C8009060CEF460CEF4023CC5EFBEB9E7CBD667A2D2FE56C7E1C3D5479DBDF7D73CF97ACCF45A5FCAD8FC387AA8EBEAFC903CBFB77D5BBF8E275001C87A80000183E7FF357FEC1AAFF00B7FED5B3E807CFFE6AFF00D8355FF6FF00DAB675743F55FC9FC51AD9F3950003D33A4F79F27FF6487E2DCF0C4BB293E4FF00EC90FC5B9E1897678D7BEACFE797BCE39F99990019950001AF6839DEB36EF2967C25383B6EEC68AE28BDAA32A5514B2E133E190BBABD3D755761869D28E36EA9D6E4A38E671DD4EC97C39D6D263271AA4F079F7129B3C66974EAFF0059A8BF29474D6AB2BD77CA94A4DE1055DB293EE6D64749C9B514DBC5D1564D45635745B91EBB8970CB7AEB3914BAA9C64E69AF21CDED728ACB99BE5DA51F10573874570FB0A76E33A4AF6A3C97A8935B22D6C82AD29DDE7E885CDD9672E1A1A2957F22B41D34FA6D46A66E1621D6492ACA8D2518F2CA4DA49764D6E5B76EE4ADB94659706E12528B74FAB25B4D534DD3896355B4A27BFF008DE5EADA513DFF00C6F37B1F17E3534B7C4000E82E5DDBFBA879ABD546C6B6FEEA1E6AF551B1C0F3662F3000040000000000000000000044057776115258220277761352582201BBB0549608808DDD82A4B04404EE22A4B0440370A9D755F96B9E6FD25413751F7173CDFA4AD37B13C1E19BA9A41E0753A69BF336BCF8FAC88C6F63EFADF9CBC28D653C1E059CBB0BFDC6D72DDCB52CB722E126934A554DC5AAA6ABB99C9E95DCD32D469DBB8A0A97E0B194258F4A8B6C5ADFB8E9A6D4D8BB696935D5769616B50BCAB4DF3EF8F83C1C2E7C52CB331A933451B1ABB5EE571AB77F339696F6C599A4A56E4F91D30E4646BBA7BF66FBD3DCB725793A2B78CA4DBD9969E527CC627C2358B50ACC529C64AAAF2F232F2B7BB6ECEE54BCB369DBB708CE7D6DDB71CBD74925269E2D27C9FC328EE6DAEDC53E055CE95E248E1BC36FC3472D3F11CB72D4A8E1A678BB6D3AF949E15E45E32CD2518A8C528C560A2A8A292DC92C11520E7726DB6F899B752DCC15205482DC1500826A5B82A001522FCEBFDA2CFF00F623FEDDD3C41E9FE6BFED96FF001E3EA5C3C99E97492A5AA538B7EB3A2CBF09D4BDF93BFBDC7F0AE7811E74B7F963FBAC7F0E7E04697E7FDA9E19C0B5C7E167D18ACE37F7567CE7E047320716F22D79CFC08F3FA77FDD89E67598F4F71777B1A27704FBEBBF86BC28B83CAF0AFBEB9E62F591664F52FF00BAFD1EC2BD02A74F1EC6DFADD4B720713E22B490EAED51EA26B05B5422FEB4BE8473D34942F293D914DBA7228B651DDBB3BF7277AE3ACAE36DF32DC9732581C97A7B524B367A362DEF6DBC90B7095EBAA2DBCD36DCA4DD5D36CA4DB2E125159638254497225822270FB4A36DDD7E55CC173453FA592CE193ABC4ED4A8091634BD6253BB845E296C6D72BE4469A6B1D6CFA5E44717CFC912C765698536237B16775652AD3876985FBAE3484695E3D8231514A314925B12C11597E5D65E9C96CAD176161F4165396584E5C916D3EC22A92C285BAA78461C2952BD2AC652E35A02A357051D4DC8AD8E555D892CFF496E577128D2EC26B64A2D37CE9F899CD1CCEA65EF0BBFD7682D49E328AC927CF1E87828C96537CBD73A3A8B4F626A69765383F551707A16DD629B3CEB91519C9232002E50C19DE80DE01E62F7DF5CF3E5EB33D1697F2B63F0E1EAA3CEDEFBEB9E7CBD667A2D2FE56C7E1C3D5475F57E481E5FDBB0BB76B55AD5769D400721EA0000060F9FF00CD5FFB06ABFEDFFB56CFA01F3FF9ABFF0060D57FDBFF006AD9D5D0FD57F27F146B67CE54000F4CE93DE7C9FF00D921F8B73C312ECA4F93FF00B243F16E78625D9E35EFAB3F9E5EF38E7E66640066540000000001CF51A7B3A9B4ECDF829DB7B9EDAFF345ED8BE7474031C3B07BCF3FC5743ADB71B7A5D15AFF00C1744A16937294A9B6EBDAF99F9240B9C32ED94FDE2F58B3349BEAA7713B954AB4CB153C4F5FD9C53546B95328759C1741A3EB3573EB65A64D3EA2D24E49BDB59B7551AEFDAB94D6171D28DD17B4BC65AB28A38B5D94513DFF00C6F3D26A3531BF72192CDBD3C53A4216D62D3FE696D93E73CDBDAFF8DE77F4EEBBBD1EDA9BDBE2000749A1776FEEA1E6AF551B1ADBFBA879ABD546C703CD98BCC00010000000000000000000441BFB7FE900CD9530FC7E0DC677BFA3600480FF008A6DED8F1AEC6CDC000677BED76376C35DFDDF0004BCC1B3F2B76FEC7F1C816DDDF46CDE01525987B1FD00008839EA7F2F73CDFA4AE5FC72ED00E8B3E52F1C8770DECFDF5BF3E1E15FC300BBF2B2CF267A2E05FDC5797B27E4F93BBEF39887A9FCDDEF27CB7F77F75FE500E25F522628BFE0FF00DB6CF95B3EB6CF2C97BD76776C00E7664CCBDAFF0087DA11DFF48054000120000000000A5F9AFF00B65BFC78FA970F28FF008A8077F4BF4CE8B5E530FB7DB2E3E59FEEB1FC3B9B7B08034BDF4A5F2169F959EBB776881C57EEED6CDB2DBE6C40382CFD5479FD57D197E38A3970BFBDBBE66EF38B4009BFF5595E8FE8A3687D7D9E45CDBB3C8650AD9DAFE3B601C5D4668F4FA6C997367EE2D7991D9E69BAD9BBE9ED8071BF31D5C09DA1FB85B36BD9FC6D24007A56FE9C0F3AE7D499A6A3EE2E79AFE82B0039BAAF347E53A7A5F2CBE7042E29E4DAECBF00073C733A1E477F977EFAFF009B1F5997801E859FA68F3EF7D46640068660CADA000797BDF7B77CE9FAC7A2D2FE5ACEDF221D9F26201D7D4F962791F6AFAB7BF1C4EA00390F5C0000307CFF00E6AFFD8355FF006FFDAB601D5D0FD57F27F146B67CE54000F4CE93DE7C9FFD921F8B73C312EC03C6BDF567F3CBDE71CFCCCC800CCA80000000000000603FBB9F93E4CFCBF2367D6E6008E24151C03643F27E4BFBBFCC6DDE7809F972ECBF0807A5D1F9A7FA7F89D56BE230003B0D4BBB7F750F357AA8D80381E6CC5E6000080000000000000000003FFFD9, '1', '2023-09-14 10:27:38', '1', '2023-09-14 10:27:38', b'0'); +INSERT INTO `infra_file_content` VALUES (57, 4, '77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE9000019F449444154785EED5D0B9414E595FE6EF50C43565716CDC6B8E6E4A1465694AE1E31AB4665D1043446A2EE1191AE8118F1150D5D3D681643B2863D2E9844C374F7C871216A0CD3D560262F1E9A08AE01D14497205D0D6AE0C8C64DD63CD4637495EC00D375F7D43028E0305D555DEFFAEB1C0F72FABFF77EF7FBFF8F7AFEF712C42118100C1C960112DC080604038767400844AC0EC1C0300C088188E521181002116B4030E08C01710671C69BB04A0803422009996891A6330684409CF126AC12C280104842265AA4E98C01211067BC09AB8430200492908916693A634008C4196FC22A210C08812464A2459ACE18100271C69BB04A0803422009996891A6330684409CF126AC12C2801088CF135D9A7D52DB5FFE386AE4A8917BDB8CBD465BBFD4321229A30D756E932835D2846370BD0F29DA8DBAB4BBC5E8EF935AA5DD6FF6B5EEFEAB0FBED997EB7E71B7CF90131D4E08C483E92F4C3FED58108D212975328031C43899C16300987F6F967326603B403B98B00330B69B7F6F256CFF624FED150FD249B4CB66272BD1E4ED4FBED4913E8F992E06700133C610615440C4BC0198A2C1E344FC48AE5CDB18108ED88415027130955DD34E3B454AA5CE23C2050C7C16C0910EDCF861F236010F33E371A35EDFD8F9D0B617FC081AA71842201667B3A4C8930DF06708741E80F116CDC2366C3383374AA09FE6347D6DD8C085118F10C830B35252D267317009489A02E6741827D03126A21AD8584DC09A9C567BDAB19F981B0A811C32C125A57D2C832F01F11430CE8DF9FCEF4B8FF024985613684D4EDBF27C2272B698A410C82051C56CE652483C0B8C2916B98BE730C66A80EE572BD595F14CD05E568917484191A711700D80C9F6A88BFDE8B520DCAF96F5EFC73ED361124CAC400AD9F44C22CC026842921740C3DC9937EC3BA3E83D0DC7C67040E204525032D7117816803363389F5EA6F43488EF57CBB5FBBC0C1236DF891148B79239C720631EF6BDD013874306CCF72A75D09D9D5AF529872E2265167B812C9A7AF6FB5A46FC651E03F30048919A9DF082AD83B0F0A89637177EE1C197FAC20BB37964B116487747E6B2BA617C9588CE689E2AE16108063649440B6797AB3F892B3BB1144861C6F80F4B46BF79D6B821AE1317A6BC1858D25AAF2FB879C5B6DF8509971B586227909292BE8241DF0470821B04091F161920DAC930E6E6CBB51F5AB488C4B05809A4A8641602FC9548301F5B9074A7AA55CDFBBD581CB110485736939188CDB38678D917826549C0A375A6DB3A2BD56A08E0340521F2022964D3B388E81B00DEDF1413C2D8550618784D02E6E634FD01571DFBEC2CB2025972FDF8D6BE5D7B0B00DDE43367229C3D06168F3CA2A5F386A59BF7DA330BC7E8480AE4DE99F2F17BEBF420833F1D0E1A058AE119E0C7EA7BE8EA39BDFACB51632A720229CD94DB616005F3C0FE6E71448501C60E3270556E85BE252A904D9C9112487756BED020982FA506AA7F88236A0C701F812E8DD26EC6C808A498956780B02C6A4B42E01D8201C6CCA87C1D1C09819414F91606EE168B2D460C106E51CBFAA2B067147A811415F94600F7869D4881CF0103841BD4B2BED481A56F26A11648213B6E0291B4C137364420DF1920E20961AEDF155A81943ADA656623F26F627D5F71110CC8A9949C5FF66C2D8CD0432990EE19E98FD50DDA4AC01161244D6072970106DEE23AA53B57545F72D773F3DE42279045534F3D3A35A26535804F369F9EF010150618786A041B536EAA6CFD739830874A20F3274E6C197DFC9F7F0CB3589B3892C70063F5717B4FBEFCCADEDE7A58920F95408A4A6631C0E2DBAAB0AC8E60702C5635FD4BC1847E6FD4D00864F0ABDC4455CC08CB22081B0E026685E52BE0500864713693E927E331808E09DB64093C01304078D530687218F69384422045457E546C760A60218638A4B9E92AA7E917050D3170811415F94E00B7054D84881F460682DFBE1BA8404A4AFB150CA3378C532330858301024FCD69B51F0485263081DC9D6DFF482B198F8BEA23414D7D44E29AD55268CF05F99EE77F1B04E2C00452CCCA4B40B83E88A445CC683160D6DDCA6BBAF9D1AAEF472002292AF2E5007EE47BB62260641990882E0FA282A3EF02316BE54AADBB9E10E54023BB568302BEE9A8D6D113BEF0E07A5F6B01FB2E909222DFC1C0D7826259C48D3003843BD4B27EBB9F19F82A90811604E0274495F58129367B9AEFDCF71FED643676B224ED4C319F00A213C17CA2C17C2299FF0F8CF673518437169955E527A8E5EA2FFCC2E8AB408A1DE98713DC9F631703BDC4D42BA58C1766F7D47E6375924BD34E3B915B5293065FA69A7F86B52FBBD5949C8F637E44ADD4CCDEF4BE1CBE0964B0B353A8B7577AC4F82626EAE57EF4BAB1DF61F1D4B147EE6D6BB940625CC2A0EB3CC21C6EB7C4D7F9D5E9CA37811415D9ECC59DA0B667FC3D22A93757AE3EECD56ADB77C96ADC0450D6AB1821F5FBB4AAE967FB81CD1781EC6B9849DFF323A1A06310F09C61F0D7F3CBFD6B03704F47669201BE891997059DBF6FF17D2A1DE48B408A4A6603C0B1EF266BBED06A93F8F62FF6D45EF16DA11C10A8D091F932317F2B88D8BEC764DEA0566A13BD8EEBB94006FB90AFF03A9120FD33F05F12D3EDB94A550B128719BBA0C81D049815D55B83C6E2797CC234AFFBB87B2E906256361BD29B4F5EE27AFC98A5967CBE677320DF0A0D45EA3D33FFFE98FE7A9B4EC0F171257D30AFB5AAA65FE8658E9E0AA498CD5C0AE2D8367804F0CC916D7D93663DB0FD2D2F27C9A9EF82226F26E074A7F691B063E332B5B275A55758BD154887BC0A8C295E810FD62FFF5632F8C2D9CBB7FE3A581CC3472F2AB25925E46FC28CB1296C8CD56A45FF5C533E8631F64C2025A57D2CC378CE2BE081FA65F483F82255ABFD47A0382C044F42013E434A8DEDEC79F6050B74D81EE299400A59792E11CCD668B13B98F8F3F9722D3295E6E35F199FE6AA5AD593A7779E09A4D8216F04E3DCD8A9033C4FD56AE63661570FB3B73B73FD84542B3D97FBEE96575D750EA0D42177332334E574DCCC8F808D394DF7E4358227022929E9B318F44B37490889AF6D7F7E7974FBFCF5EBFB9BC553CAB67F9A6164413803C04900DEF78E4FC6AB4478CE605EC7293CBDA775F7A6B94D3E082829E90F316823808F368B3D8CF62CF159F99EDA336E63F34420856C7A0111C5A657F67ED209B835A7E9DF6E66124A8A7C0D03E6A7219FB2E1E7F7605E6A48AD4B3BCB9BFF60C3EEA0A1F16E25C10B54ADE6FA360A4F0452ECC8E8604E3B9DC890DAFDCF5EA3A5FDD6E59B5F73826F5F2F77633E40973AB11FB47919C477A9E55AD1A98FA222AF01E0DBD7B04E71DAB663AEA9959A6CDBAE8181EB022929F26406CC3A57B13A08F8B79CA6FF8B93A44A4A266F30CF27C22827F6EFB161FC50ADE85738F155982E9F4B12CC4BADD81D4C34395FAEAE733331D70552CCA60B2052DD0419025F6FD52975FA9CF2B32FDAC552EC90E780D1D465D99031194BD58A7E835D3CE6F86256DE088ADF03140617F25AADD3092787B3715F208A6C36BD71FD54E766D2767D11E39E5C459F6DD7CEEB7AC34E6BD896B299054C1CBB7B4400BAAAE919BBF334DC7857055298797A9AEA75DD4D8061F0E5A44D5869467A0A1BB4CA6BFC06E8DC4EADFA949D38DD1D998906F3CFEDD844652C1B7539BF7C9B6BDDAADC158822DF4231EC464BFDF593720F6D33F78F5B3E8A8A6C3601F2A1CF09AF54B59AED7D20454536DFB5BCDF72425119E872F75C570512D72724C7EDD9DB7665EFF37BACAE11BFCE1EEFE0215CA396F5EF5AC537781FB21C84ABECD84464EC1A55D35DFBFECF6D81BC8D18F6152448A7E6B42DCF5B5D20FE9D3DF623A295AA56B5751689F1E6AA5DAAA6BB56D4C23581C4F5F1AEB90499F9DA7CA576BF158104C4C3DBAAA6FFB5157CFBC7C4791BB49B8F7B5D1348B1237317986FB5334951194BE6673347BF7D7EAEFBC5DD8D301715B9074047A3716EFF4E863431B77C8BE59EF285AC7C21117EE6368E50F863BA5BAD54BFEC0616F704A2C8E67730FFE006A830FA30B7B1E6347DD670D88A1DE96BC1F49D20F0DB6D1310F3CFE0FF53D574572AE8B82990786FCCD9B7EAD74A40CF6C4D2F1F2882C1C7DB66A5FA9B8310871993886FCA956BF75A8DBFF8EAB11FECDFDBEAF8BB2EAB71021AF786AAE9AE54A374452085E9A71D4B52EA8F01911144D85D005E21D01F197C028063830071504CE6F96AA5F6AF56713040254536AC8E8FDAB811121FEB4675197704921D378148B27CFD1B35B2A380970837E6CAFA12AB584BCA994731FADEB43A3E6AE39CBCDC1D2A47570452ECC85C0BE640AEBDA336715EE1B5DB3F63707FC8EFBCC213B45F89F9DAD9169F3C0E87D52D81C4F60956D0136D39BEC4E3D49EDA36ABE3BB669C7E8A64D42DBFDBB1EA372CE3087C574EABFD73B378DC1148565E058A6BF5926629F6C5FE37AAA69BF742968FC28CF4996490592F3996078356E5B56A337B6F06787147208A6C96BE19134BA6A39014D37D6AA56AABD27B292BFF13137E1885F41C62FCB5AAE9A738B47DC7CC2D8170B34084BD730688A549B9CA96C7EC782876C84BC0B16EA2CAAAA64B7638196A6CD30229CD3EA98D5F3FC2D7BE71CD261D277BA77B558A8AFC12808FC4898B4373A1D7778DCCFDB4F1D70FC371D0B440964C1D3FAA6F44BFD94E4C1CFE33F0524BBD3EE1E615DB6C3D8D1A6C85F7A4FF70FD8D4818392AA73DF3BFCD446D5A20F7CE487F608F417F6A0684B075CA0029AA56ADD8B52E7664E683F9EB76EDA2369E46481F68B6C658D302310B9E91D1FFDF51232FEA7819F84A5ED36D57AE5C34F5D4A35323525B00FA70D4396884BFBF5EFFF02D36CFAEEFB94C6B14A4D1EFC56CE6E320DED1689CF8DD1D060860B034D9EE4DF9FEE82545BE8563B8EB7328765B28F5F19B1D14DA38D057D367906E65DC3803926B7B80DD594631F54258DD62D0ED3757AA66610CDBC7FCA963478C1ED1BA05C058DBC65134B0F9F274A8149B17C88CF6330CC3D81445FE2284790D19BC34B7BC66EE73777C943AE41B98F1EF8E1D44CD908D33D4CAD6CDCDC06E5A20712E44D60CB14E6D19788D8057C0FC2A83564AF5FA2ABB0523868ADD7555E6A3526AA092492C6BF30E95B3043A77B6CD8A2FAEDF8308813895C23E3B029E62C632C0D8DCECBF76C3212929F27719B8BA39B4D1B20E8540BAC52596F35563730F87D340A56CE66A26B655F5C469AC50D985E1124BDCA43B5E123955D3BB1D5B5B345C345D3E3525C12C589D984BAB77A809C34DBA78CC6B71A51E3C6CB3AAE9665F104F8F41717C3F314FAD0E6133148F79C58B42076B9CB0542D3B2B3C6D355AD2C561F2148A1785E25313AB4BF6DD71760B2CD88D3058B1C4FC042519EF3B0E4350283E35111F2BDA5DBE8041747E67B9BADEBE65638B8292B98EC00B635977B771FA078D08C5C78AE273779BB3066F04529ADAFEB7DC5A5F08A26BED238AA745283E7737A92D2AB2D83065638DB97D0631CB884A447338667D596C503AD4D0706C981A1488D8726B6336DD12C840A75C32F2B1EC396883CFA18612F0EB5C68B6DC8AA20DB6A6B31981989752465BFD6C32A4292016975387BB4107ADCA85A668438C0B57DB5AF91607DB154857476622019F00F813609C4F716C7C63913BABC30874574EAB86A4EC8F281C6775DE06C639118814D39669B688B33398F83AB55CBBCF8EC9612ED59A75011444E9515B240A81D8A2CBD1E050951E4D60F16A4793B6DF4808A429FA2C1987AA78B589B89095DF20C2284BE8133E4808C4F30510AEF607838F7A63DD40C7CD2915027193CD217D85AF814EA143FE0631E67A9E7A0C020881783E89DF5035FD2B6E44697ACBED7E10E246DDFA74088158E7CAC948B76ED0CDD8AE0964F032EB2D00AEB5E075424E146C089895D3F407AC622D29F2350C58EAB26BD5678CC7BDA56AFA516EE5E7B6401E0270A55BE0E2EA8719F7E42BFA6CABF915B2723711BE64757C92C711F0504ED3AF728B0377059295AF07C1721B30B792889A1F02F49CA667ACE22E66D33A88D256C727791C81AECF6955D7BA9DB92A90B8772D7273E111D1B25CB9FAF9463E8B8ABC0CC08C46E3C4EFFB18900CE394D9CBB79A1FCFBA72B82A90C1FB905F0118EF0ABA983B21E26CAE5C5B7EB8348B4A260BB016731A5C4B8F997F95AFD43EE19A43B76FD24D600525DD4520F3136C71586180B09A997EC6467D4BE7F2ADBFEC9A3EEE6C9252ED04FE0C804BACB8106306192074A9657D8E9B7CB87E062929F264061E7513A4F02518B0C200134DCE97ABEBAC8CB53AC675810C5E6699C5ACC7590521C609069A6680B9A6566A72D37E0E71E089400AD9F402229AE73658E14F307078067881AAD5BEE636439E08A4A4A4CF62D02FDD062BFC09060EC7004B7C56BEA7667E0FE8EAE189404C8405457E9280735C452B9C0906866280F1A45AD1CFF3821CEF049295E712C1768B302F92143EE3CE00CD55B5EAB7BCC8D233819494F6B10CE3392F40C7D0E75A80363358377323900CB0F92E69720C73753D25434A8DEDEC79F605D71D7BF11EE440904545363B228967F9C3CDDC302D1092D28DB6A9854D58AD96F5CF35E5631863CFCE2066CCAEE999CB24897FEC15F8A8FB35A8E5EF3ACB9BFF305C1E5D1DE38F93B8FFF751CFD533FC4C97A995EA4AAFFC7B2A101374312BAF056192570944D6AF8DE6395DD9F47C8928F67DCD1DCCE55A55D32F746067D9C473811414791A012B2C234AC8402229932B6F19B8E768747465331989D8EC4E2B8E0319204C53CBBAD9FFC4B3C373810C9C4594CC068027789645F41CDB2E2A208A621C32C9C41BD4726DA2D753EF8B40CCE2CA44F43DAF93898A7F02D6E734FD7C3B788BD9F47A10FDA31D9B588F65CC542B7A8FD739FA22907D6711F96900677A9D5044FCBFAE6AFA3176B01615F97500A3EDD8C478ECD3AAA69FED477EBE0964B0B1CB523F928A440C1B0D261729E3C6A520991F808AC364C0A5B2A256C8F44D200367918EF4C360BAD80AB0D88F21BA572D576FB292675191EF0570A395B1B11FC3FC885AA97DD6AF3C7D1548B79239C7003F61EE8CF42BC130C7B1F206587C9170E00C521D84096AB9FA0BBFE6D5578198499514F90E065CFF2CD92FC2DC8EC3C094BCA69B7DCCDF7394A6A7A7B044ABDC8E19597F843BD4B27EBB9FF87D17C8A2A967BF4F6ADDF5041179DE27DC4F229B8AC558C7C4CF99DF63997E24F078663A55BC603D88D54D47B58E9EF08507D7F735C5B54D63DF0532702FA2C89703F8914DAC6278821990882E9F5DAEFEC46F0A0211C88048B2F21210AEF73B61112F7A0C30B024AFE9813CA4084C207767DB3FD24AC6E3004E88DE9409C4BE3140B49369CF05F99EE77FEB5BCC03020526907D37ECED57308CDE20121731A3C10081A7E6B4DA0F82421BA84006EF47EE04705B500488B8616680EE54B56AA0C53F0217C8A048CC3A5A62F75C98D7AACFD8087834A7E917F91CF63DE1422190D255723BA7781D40B6BE4F0A9A3C11DF230608AF1A064DEEAC54AB1E45B0EC36140231D116B2E95944D474DB5ECB998B81A165C06EFF142F13098D40F65D6A6516036CE9FB242F4911BE036560B1AAE9A1E985122A81CC9F3A76C4E811AD8F00F854A053248207C4003F36F288D68B6F58BA796F4000C2790F7220AA9292FE1083CCF7231F0F0B4902870F0C3076D45B70C19C65FACB3E44B31C22546790FDA8BB3AD2A74B06FD028436CB998881116680FBA84E9FCCADD043B7EF3E940219B81FE9485F04A69F4678D605748B0C30E3A27C450F65CB8CD00AC4E4B6D4919EC92CF6B25B5C67D11CE6D3DE72A7E4845A208367925BC17497D304855D781920E0D69CA67F3BBC085DEE93EE55A2454536BFE434B79D8A23260C10E1C65C590F7D47E4D09F41F6AF874276DC042269434CD647A2D320E209B9726D631448888C40F6DD93B4CBCCC693008E8C02B902E3210C10DE2248E759AD281906FE22251093B0EE19E98F190695017C320C040A0CD61820E0A97A9D3A3A57545FB266118E5191138849DBA2A9A71E9D6A6B79108C29E1A051A0189601C6EAFADEFEABE7F43E6716BF8BD4114981980CCF9F38B165F4F1AF170112DF6E857BC92D3E6ECFC9EA95BDBDF570C31C1A5D6405F2EECDFBC057C066ABB7F7477102E28A9981D724606E4ED31F88728E91178849FEE26C26D34FFC4DB1E92A1C4BD1DCEC5467BA2D0CFB399A65241602D94F425191C5F6DD665744D3F6C16F936D3A85031CC44A20665E838520CCB389A896E2E64A69E48B6827B1715B9005161A4174F27BEC04629230505208C63C5177CBC992B06F63D6AD82D4B230DFB33990D23CF6115BB788A5400EB8E4BA9C99E78932A7D61784CD919B24A28541543CB489D3F1F0580BC464C5AC05DC32E22FF398F155B301B963A684E1810C180C2C1CD53A7A81DFB572FD9E86C42C18B3F5421DC65709F419BF498E553CE6470C9216766AD5A76295D76192498C40F6E73FD8E96A966807677B793FC3A0FBF35AF53BB62D236C903881BC239481C6A2D22CD17DB7D1EAE527C0749F1F0D331B2109E2F7C40AE4DD338A3C8D18B3442F8E83971F33D69184FBBCEE431EC4A2B71333F102D94F56D7F4CC6592C4E6A5D72576088CDD58C26A1874BF5AA9AE8C5D6E0E121202398434B327A0C1C61410A610708E034EA3674278920DAC91485A9DD3B63C1FBD04BC432C04320CB725257D96C1984244E667F5E3BC9B86003C13D5D830D64884D539AD66F6B017C7100C0881585C1625459ECCCC1783682200D9A259D886E9605E4F448FE4347D6DD8C085118F1088835929CC3C3D8D7A7D1201E7033005738403377E98EC02B09E819F23955A975FF66CCD8FA0718A2104E2C26C0E9C5D882681790233C61061940B6E9DB87803C00E103D41CCEBC459C2098507DB088134CFE17B3C14A69F762C88C68052A6584E86C16360FE098C7129DC76307640A2ED80B19D0DDE01E6EDF9E5DBFEE4927FE166900121109F97C2FCAB3F3AF2B85DC7B4FD5FCBEE9168696BABEFE91F39A2C56883D4D256EF37469A70522D521F8CFEDD06A7FA3895DADD86BD7D525FEBEEDD1F7CB32FD7FDE26E9F21273A9C1048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CD801048A2A75F24DF88012190460C89DF13CDC0FF03B3842241EA0172F60000000049454E44AE426082, '1', '2023-09-14 16:35:59', '1', '2023-09-14 16:35:59', b'0'); +INSERT INTO `infra_file_content` VALUES (58, 4, 'dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001FB849444154785EED9D7D9414E595FFBFB77A66044523AE24FA738D31A2BF2C4A572346C4F8965588C1C440B2B0D2D518D08DAE0A5D3D1835C6CD719263A2A242770331F24B224257A3B0AEE6B8495492F50D717D41BA1AC2C668587F498C468849D6A830335D774F0D335964E9AAA7DEBA6A669E3A87C31F7DEF7DEEFD3EF5997A7B5E08F2900A48059A2A40521BA98054A0B9021210797648051C149080C8D3432A200191E78054C09F02F20AE24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C1490800C938E9665FA534002E24F37E9354C149080B4B8A3BBBAA01CF9DB89237A76BD33B21B078C80951A99A2DE110A52237AB831921ADCDB41A9F72C6EECEA3D20B5AB03DDBBBAD1B1EB50FC71D7BC95AFEE6A71BAC3BE39094804A7C0B7B3E34737526DC7352CEB38101D47CCC711F17116D358028E0AD02483683B2CDE4E84ED0CDA4EA0ED0D6A6C479BB2BD7365ED8F01624BD7FD28200109785A2C999B3934D520D56A582713E1340626137074C0B03EDDE95700FF3B819E81429B0FD8A5D42E5FB7E94F3E8349370012108FA7C16D73D21F1C61D1D4067006012A80D33C8668993901CCC0B3006A0C3CAD74288FE4EFDEBCA365090C81862420029D589C33EEC3C46D53C1CAA7004C05F81001B7249AFC17111E61F0A36DBDD62357DDBBF5D7494C32493949409AF4C692ECF88F92A24C23463F14E84852C785904B376C582C3CDA06E5A1F9D5CDFF3F8498432E840464AF2EBDEBB3130FDC7548F77440F91C80E9C09083A2D909FC67006B99B1B650351F1972677980822420004A59F5934C984EE0E9007D38809E83DE9580A72DE6B560EBBEC29AADBF1BF405052C60580352D6D44B18B80CC0A4803A0E45F79D00AF4D11BE37BF527F7128162852D3B004A49CCD6816F115047C4244A48036F6B7891D04BC09C20E30EF00634783941D0AF0261376B0851DDCC33B0E1ADDF6E6BBDD8D83946E8C49311DCEA9C698868531201A436CFF8F31043ADC626B0C118D0160FF3B30607EAEEE04DCD5205ED1390C411956801473E92F10D31500CE753D2BFC1974037801C006069E1AD9DDF654D4DF216ECF4E38A68DAC338971260893018CF797BAB397FDCAD80256F0300365580052D2D2E702D409E082904F9ED7417881192FB0C51B0E3CB8FDA9CB576CEA09B90D4FE16E9F3DF1F076A5F74C309D4EC4A730F0710007790AE26C6C7F5B59A1907267BEB2D90C316E22430D694016CF3CF130A5A3EDAB045C1D86FA04D8AF421F63D00BC4FC7CBE6A3E1746DC28632C9E397964AAE39DD319F471229C428C0B181811B44D06DE06F0AD8261DE12345692FD872C20F6730688AF67E0C4C01DC058CFE0FB768FD8BDF6BAEFBF649F1883F6589E3B796CAFD5980DC24500C6052F849E045937EB95FAC3C163252FC29003A4AC4D18C76C7D15042D90DC8C1DA4E0BE5EF0DA8595FA53816225D0D91E553CFAE5CC4520BE088CCF064D9180F2AEEE9E9BAF5DB7ED8DA0B192E43FA4002967D35730E826100EF32D326103186B3B14BEEF8AD5F5377DC719448E652D7D1AB3B20716E04301527F9988BE9EAFD48C003112E53A2400B9EBB2891FD8F56EEF2270DF370D3FC79F41B88F186BF386F9A89F0043C1A73C6FC2186BF79EDB2F02D96FC47C1D0CDC5430CCAFF9724E98D3A00764492E738EC2BC087BDED6F83916A558F9B61C8BF47EE996E6D2175AC042309DED475480FFB991A2C2C255E66BFEFC93E135A8012966D54E22DC0AA0DDBB9CF4030BB8ADD3A83DEDDD77F8781473EA7C622C0470AC8FAAB7025CD08DFA4F7DF826C2655002B27CE6B8518DF68EE54C7CB10F155F226051DE30BFEFC37758BA2C9F3BEE889E9EB68504B241497914A1C7FE06A51BB5E51EFD12613EE800296533C713E11E06FBB9475ED463B5DDF6E5359B762642FD41964439AB9ECA0A3AC17DAF883D1D0C2E168CBAFDB176501D830A90F2EC09675B8AB596800F7A5359DE4E79D3CBD9BA7FC88E7D3539DD5B5CFE816ED4ED690483E61834802CC9A5672B4C558FCACADB298F827931EF7F06B441F96B613FA27A3759A75FB3BAFE8EB04F8C86830290524E5D08C61D9E7462FA6E0FA7AE97B7539E54F36C6CDFF232782951DFCC4BD1E36D6A6B9B90BF67D32F451DE2B24B3C20A56CFA461075791388AED38D9AFDEA571E2D5060CF5779B50CE02A2FCDB185330B6BCC0D5E7C5A6D9B68404AB94C17986FF4220A31BE90AF9AFFE2C547DA86A340FF2DD7622FD108CA897963F3362F3EADB44D2C20DEE1A05FB1D5FBD9C29AADF5560A28DB7ABF02C55CFA4262FA81175D920C492201F10C07637DA3E7C0CF2D5CF7CC7B5E3A46DA46A340DF805158FF0EE060C11698A09C94C42B49E200F10A073196E5ABE602C18E90662D52A0FCE9B107F06107D9A314260A36F91B82F2A9A4419228404A5AE68B00AF1414D45E367041A16A2E13B59776AD57A0A865AA049E2DD232033F53A0CC4A12248901E48EDC04B58DAD9A8890B60D5B34B5B0A6B65ED45EDAC5A78097BB0266FCDBC8516DE7C73D757940AD440072E79CF407BB2DE5B7000B8DF321E05239962ABE13DE4FCB252DBD12A02F8AF9F2B775A3EEE995B1585CEF568900A494551F05618A60FA8B74C3BC4ED0569A254881B2A63EC6C0398229E575C35C2A681B9959EC801435F53B045C2E522103FF5230CC2F88D84A9B642A50D2547BA10B91B93B16139D5FA8C47B1B1D2B201EBF92FF5437CCF392D9ED322B2F0A943575ABE0621ADBDA1A8DF3E35C853E3640FA67023E26222C33BF50A8D645FEEA88849336312B60EFC0D503E545103EE2964ADC770DB101E2E17EF4E51EABED7439E8D0ED541A5CBF972F5627580D3C2C32758189AF2D54EAB7C551612C802CC9A6BB1422D731560CBC494433F44A6D631CE2C836A355A0ACA95319B81FC028A79618E866D0DFC6313DBAE58008DF5A11762B6CCD58606CF971B4DD24A3C7A9C0D25C66BAC56C0F2E753C1719785C37CCBFB5D7086E65BE2D0744F8D68A70895E31EF6EA518B2AD7814286AEAD504DCEED63A317F2B5FADDFE06617E6EF2D0544F4D68A406BF2462D1B66A13256B215286BEAC30CF7495744F4997CA5F6C35655D33240966AE3C75B50EC6709C7FB4D003B09CAD9491A8FD3AACE18CEED2CCEA5CF4C59F404C875E7E54D47769F3069D6BA758D56E8D532404A5A6625C0AE430D08D499376AC556142FDB489602A5ACFA0D10DC5764242EE8957AA915D9B70410E14934C43FD22BF5B0F7F068858EB28D1014E89A39AE637447FB136E7BCF13F08A92DA7DDAFC553FFF7D08CD3A86680920252DF304C067B914D36359CAD99D6B363F1375D1327E721528E7321730F3BFBA66C8DCA557EB5F77B50B68103920A55C5A0793EB2D130137E60DF31B01EB91EE434081522E5304B3EE540A033B99AD499DD52DDBA32C39524016CD1C77444747FB73041CED52ECD34F779B67AF5B87963C784529A88C1D5C81F2CC0963B8A3F104407FE372FFB344AF98F6BA5C911D910252CEA9D731C37D8B2EE24F0FD51D8A22EBB9211EB8A465B200BBED33D243294CCAAF3237472547648074CDFDC888D13D1FB013FF9863F28CC57AD50C650FC1A8449271E351A0ACA9773330D7F1EE83B1AC10E19A04910152CEA99733E33B2ED2BED5DB6864AEBE77EBAFE3E902D96A921528E532A783D96D7B8AB7A9AD31217FCFD64856698C0C9092A6DA6FA34E73BE7A5049AFD60A49EE24995BBC0A9434D51EA735C3E51936B21DAD2201A4944D5F04A235AED2B2758A5EDDB2C9D54E1A0C5B05FA07333EE0240001BFEEB6DA4E8E624A44348068AA3D02F77CE7A2E478AB617BD67B2C5CE46E84812F170CD3DB02E70279840E88E07D232C58D33AE55076812E9226A59C7A191877B95C45B6BCF5DAE893BB1E7FBC374CC5C20744536F06F015C724091BF48A79A6D74216CF3CF1B08E916D87F734684C0A076CC91BCFFE97D718D2BEF50A94B5498734B07B7C7B8A7774BFD7BB73E1BA9FBDE5258BC533278F4C75BCFB0BF77D4848D38D9AD73D645C4E552F990AD88A4CC827A679F96AADE90A8A4BB2990C2998A2304FB38031041C0ED0E1FBAE9B45C00F01E55A39F257A063623059365B3DB191E245609AF6FEE6A901F04EFB6BB802EC60C243C4CAC34EFD28B6F81CDDA31B35C7D7C25E6508F50AB2549BF0690BD68F5C9278F50FC79BC77575C11AB02BCE99F861A5D1389389CFE87F76719DCCBF771B1D0A7FE88AD5F537BD162FEDA353A038FBA40F91927AC3630BDBC07898157E82DB94273B57D6FE38E0BF2C3BE1980659AF3AC7E337462B187B7188BB57850A484953EF04F08F8EF78A8CAFE5ABE64DB64DFF9E8373C9E56390ABC88CFBF5AAF977AE76D2A0650A1435F57E023EEFBB41C21BB0A8C2DCBB7A604B8B92A67E0FC0252EE757A8FBC3840688BD35736F47FBCF011CE55040AF456D1F4E9175025B963D18CDF1FDB6A8B84478235F318F14B59776D12B50D4D4DF89AC58229409E35E065692426FBB7D3824E0AEBC613AFE91166AB3DF283440CAB9F46C76D964D34E9E81B100CEF592A488AD6E98A1D522D29EB47156A0A4A9512CAE60EF3962BF9899EAD0FAAB47769F3036AC1987A19D542297BF284F2A094894EA7A8F1D11206289305DA0576B6ECFC242B1C204E43F5C07260AA5E4CF4802E24FB7A8BCE20524BC01B0A100D2BFE5D6CFA2125B24AE044444A5D6D9C40A08B05137CC4F84516D3880888DDCF59A6F03A0A701DE48C475B7E71B09885779A3B577078434304E25C2A90C9C2ABA378C60D63CC26AFBE0E56B36ED14B46F6A160A20252D6D0014781D2B065E03B09E40EB09D69379A3FE1B3B7391D5182520414F8570FDDD00214B3927BF66B3BD4003F67CE3E04F30D8DE23660A39BF09154AD4B26846E79ADA8342C60E462101A2DA1F708EF19D0CE17BCC785039EC9DF5F9A5AFECDE378E04C4B7B2B1397A0164EF24CB0BC61E60BD75D014224C07E352DF0510DDAE576AD7F8F6EF770C0CC8D239E9632D8BFC4D9C673C04E2926ED47FEA548804246837B7DEDF2F207B675AD2D2E7824807E3B33E2A08E5392430202227EFBEC531F0AC425CCA57EAEE7346E42D968F73237E97300019A8A2FF1B9BFD61799287CAF8C8EE13DA837E0F890310CF7B0C8A40289F413C9C3A2D300D139081BB9DA296BE9540C2B74D7B3FE7F82D393020254DB517F9125B0D9179B65EADDFEB3559098857C5E2B78F0090BEA296E4D2B31597111B03D5DBA3BDF386F999206A0402A49455BF0682EB626F04FCC9229E54A8D45FF293AC04C48F6AF1FA4405885DD5D2D9E33F6629CAB3000E71AD32E00A8CBE0129E6325388F951D70443F86823011150396126510232506A319BDE484493DD4A57A04C5B606CF6B511932F40EC19628C5D3F71DBCE97809FE50DF324B702DC7E9780B82994BCDF5B01885D754953ED111CE35C14307BACB6F3FC2CEAE00B109165EA6D3852ED3DE75DB5729BD74933FFAB560948F20070CBA855802CC94D3C52E15EFB8FB5232404FE7F79A37E995BDEFBFEEE19906F67C77FB48752CF01FC570E8DBDC716A616D6981BBC26B43F7B0948182AB63646AB00B1AB2ACE51CF502CAC6760845395C4CA947C75B30D93F0E119905256BD0304E7058343DEE0440222DC9F89316C252076D14BB44C41012F7112C09E745530CC795E44F20448FF366ACFC199D4D5BA615EEC2509375B09889B42C9FBBDD580F43F8FAC0230C7418D1EABB7A176DEB7D59E9A217478024468CE397872DEA8DB33BF423B2420A149D9B2407100B264F6F8C98AD2B70F66D383809BF286E9BECD5B7F046140CAF3268CE16ECB5E9BE85087D6EFD52BE6ECB07B410212B6A2D1C78B0310BBAAB2A6DAF3D7FFBE69858C57778DD895BEEEFB2FBD2DA2823020A59C3A0F8CEF3B068D689F0F0988485726CB262E409668E33FAD40719B6E7B856E986E3B0FF4092A0C485953EF67E7655C42193DB9BF6E968024EBE417C9262E40ECDC8A5A7A23A1F90744223C98AF98422BEA0801B2646EE6234A0FDBB757EDCDC461E0FA8261BAEF2625A2EE3E3612101FA2C5EC122720252D7D3D40DF6A26813DF4A9B7FBC02317AE7BE63D3799840029E7D4F9CC58EA14AC61E1A4856BCC48E6A54B40DCBA3179BFC70AC89CF449B0688BE3C3BAC217E657D71F72534E08905256AD80A0393CF8ACD7ABA6D35A456E7938FE2E0109245F2CCE710262175CD2D2EB013ACFA1F8A5BA61E6DDC41102C475416A42A4BB8D4A40DCBA3179BFC70D48514B2F2150D3DDCB44C709BA02626F3990EA68FBBDE3E50AB8346F98CE6FB802F4A10424807831B9C60DC8D26CFA528BE8BBCEE72D1F3DB03088C3F38AB3827DF382418EE35758E1D30AABEBF6F8FC480E094824B2461A346E40CA5AFA3406D9FB64363D44367172BD821435F56A026E776AA85BE151D784B8E4FCBE6D4940223D9723091E3720FD8BA93B7F0C645CAC57CDD52E7747CEFA1473EA2DC4B8CEC1EA1DDD304745A2727F50094894EA46133B6E40ECAA4A39F51D300E6C5A21E16ABD622E0E044849539701B8CA21C8EBBA61FE9F6864DE13550212A5BAD1C44E04209AFA3A80239A574837EB46EDAB8100296BEADDECBCC1CD4BBA617E2C1A99252051EA1A65EC440092555F02E184A675327F57AFD6BF14089092965907B0D3EE4DCFEB86796A9462CB2B4894EA46133B098014B3E9E789E894661512E3C17CD579C889EB437AC965CF73029ECA1BE659D1C82CAF2051EA1A65EC240052CAA94F8161EF7BB9DF838047F286797EC02B88FA88CB8E3EA66E989928C596579028D58D26763200C998604E37AF90EFD18DBAE3AEB8AE57906236730F113BCD10DCAE1BE671D1C82CAF2051EA1A65EC4400A2A9F69AD1C736AB9319B716AAE657825E416E05706DD346809D05C31C13A5D8F20A12A5BAD1C44E0620E99D00355F5C84A8A0576AA5408094B54C819D26C31376EB15D3713589A05D200109AA60EBFD9301886A6FA5D1E1F0C7FDA28261DE17089052367D11881C576167AB714461CDD6DF45D50D1290A8948D2E6EDC802C9F3BEE88DE9E76FB3B48D34364716BD767109193334534757EA5B63E2AB9457290ABBB47A5BEBFB8710352D6D4A90CD82F989A1E6DDD3D075FB56EDB9F035D41D6CE9C997ABDE317F6A52AD53410F3357AB5EE385ECB9FCCF2213D886E71FAC60D483197B986981735BF7C505DAFD454378D5CAF2076809296790260A76F1DA1AF85B577E2F20AE2D68DC9FB3D6E404A9A6A0F42CC35070477EB15F31237E5840029E732DF64E6A663561878A56098C7BB35E6F77709885FE5E2F38B19102A6BEA2F1818EBF004325F376ACBDD141202A494CD4C03F10F9D82898CAD774BA6D9EF1210BFCAC5E717272022E72B3126E5ABA6BD4AA8E32104C82D33277E60647BEFCB20387DEF109AE3EB96D0FE7E9780F8512D5E9F5801D1D4328005CD1460E0C582614E14514808903DCF21E9E5005DE9D06864B759121091AE4C964D8C8008DC5EE116DD30AF17514C18109193D4629AD759ADAD1469D88B8D48DBF235AF1745A3B78D0B907236339789EF767C1CB0F8DCCE35F57F13514118103B5859531F63E09C668109783C6F989F1469D88B8D04C48B5AC9B08D0B905236FD3888CE7650C1D3FC254F8014B5CC9504767CF2B72C9AD1B9A6F66098DD24010953CDD6C48A0390A5B9CC748BF901A70A99F1B542D5BC4954054F80F4AFF0FE2280BF6EDA0061C3216DA3A7CC5BF9F82ED124DCEC24206E0A25EFF75603B278E6E4916D1DEFDABB4C7DC2E939B983AD53AFAC6EF983A8629E00E97B58CFA5BF0CA6DB1C1B202AE9955AD345BB44931BB0938078552C7EFB560352D6D412038E2B2512A8336FD48A5ED4F10C48D7CC711D8775B43FC3C0C98E0D092CA9229AA8044454A9E4D8B51290722E7D3133DDE3527DED0FDD3D93BAD66DEBF6A2926740FAAE225AFA8B00B9BFAD629AAE576B3FF092D0FE6C252041156CBD7FAB001179EEE8AB9E70895E311DDF6EED4F255F80EC8144B53766779CCF6BDB8DE86E3BF4F2759BFE14A48B242041D48BC7B715802C999B3954E961D7E70926AC2B54CC597E94F00DC8B2D91326F72AD623041CECD6701BA58EBFAAF2E22B6E76CD7E9780F8552E3EBFA801296533C783FAF6AC713BDEB698CEEAACD66A6E86A15E41EC60452DF32502AF106958619AB5A05A5B2762BBAF8D04C48F6AF1FA44094829A7CE02C37126E0FF54CF5FD58DFACD7ED5F07D051968B094CD1441AC8B24A0806E5EE0B292DDFEE2484044D44D964D54809434D53ED91D175AD84B89B5BA6136DFD05340B2C080EC9950F5D2C32E9B95FC25157B9617B175835EDDB24920BF3E130988A852C9B10B1B905276FC4422E59B0C7C4AA44A2FFB103AC50B0C881DBCAC4D1807586B19385124F93E1BC20A58D60A11502420C2AA26C6302C406C30A0289781719987E27EAE1BE6DF78B06F6A1A0A20BE2111044502124657B7364650407C826117C9BA612A61551B1A208120D953CD034CFCE0C11DBB1FB8749F4DDE2520617577EBE2F801A4AC8D3D0474E0747B3C1F11A6FBC8F6B7BA611EE5C32FFA2BC8400BBE6EB7DE9FDE6B001E04F3066AB79ECFDFB3F597129030BBBC35B1440159969D704CAFD2388598EC51E03614BE4E70227E215FA97F3CECEA42BD820C24B7744EFA58B6EC072A9E1D30E11E109E8585E74058E8144BCE0709A874C8EE6E8080E87630DBB3FAECC1854D1777134A8BF1905E352F14B2F56814092003399472691D4CDF047090C7BC3C9B4B403C4B16A9832B20A1B51EEC3B875B1A91026237BE6C4E7A52C3EA83E45CB76482FC2E0109A25EF8BE2D00E4658B6996DF2FE4A215470EC84022F6642B057CA5A757C1A2550090807810AB05A6110312D90221FB4AD33240EC866F9B933EA89D952B89D95EFCE12361F69304244C3583C78A1090C8B7DBD8BBFA960232D0B03D33B1B1BB71554AC105CCCDB7C812EE26E65FEAD5BAC32261C291A461480A9434F597003E1A52B8BF8421F0D179A3FE9BB0E3368B170B207B2753CC8E3F4B21FA0C039F01C8DFD74FE62EBD5AFF7AAB4493EDB82B50CA65BAC07CA3BBA5B8050177E50DF31FC53D825BC60EC8DE25F4ADC84D9804F069009D0BC6016E2546B5928A5BBBF27777054AB9F4E360C71546DC83FCC582FF4337EAE33C3884629A2840F6AEE8AECB26B6BFF75EEF246AF0B94C64CF3919458C51201E05D028027ECDCCAFCA2B4728E7416441EC2B09311FC3C0D104FC89817708789709EF82F95D025DC8C078B70408CACCBCB1F99FDDECC2FE3DB180845DA88C972C05FA273C190044BE7EB7ECADD5BE2A49409275DE0C8B6C16CF3CF1B05447FB032E5B6A0C6851B3DAE9939D2B6B7F8C431C09481CAA0FF336CB9AFAB0E0BC8E7798AD6985EA9627E3924C021297F2C3B4DD92967E10A0CF0995EF732512A1D88246121041A1A45970054A39750D18178945E26FEA46FD9FC46CA3B3928044A7AD8CBC9702652DBD82415F12128570AF5E31838E04176ACACD4802E2A690FC3DB002454DFD0A01A22B8B3C3FC26A9B76F99A4D3B03371C420009480822CA10CD15F0B4440FE32D4EF1B4C2EAFAB349D1540292949E18827994B5F4DF3148782DB4B83E063A492F0119822766124A2A66D55B88709D682E4984C3CE5D0222DA83D24E4881AE73CE691B7DD45B3F165D276DCF4918CF301291822420222A491B21059664331985F83100870A39241C0E790511ED4569E7AA403997D198B9E26AB8974192AF1C0369CA2B88971E95B6FB55C0E37AB97D3188F8CA7CA57E67D225958024BD87129CDF1D7FAF9ED0D6863BD037D94DFC20E0C6BC617E43DC233E4B09487CDA0FEA964B9A3A03E883E3582F85107866DEA8B77C5E87971CF7B69580F855CEC1EFE6ECF8D1235234010D9C1541F8FF1D92F1240E505E6CC590F0522E733A31E719F0B4AD0003AF2B50CECB1B9BB7B54493901A91808424A41DA69CCDCCB5605D464493430CEB25D4468056E846CD6D434B2F31FB6C8BB9F4FF25B67791257B451A8F07FF4437EA533C3A25C25C0212523794B4F47A2FEFFE436AB64998F04EC8BB664F3C7C17F5DA578C3C113EE0356F06CA05C314DA60C96BEC56D84B404250B9A4A9FF19F63A5F21A4F5AA6E989E9E0FF66EB3AB0BCAE857D20B98294F3E96EFE99B7FCEB856AF9A425BF485506F2421242001652D69996B01BE35609888DCE93ADDA82DF21ABCA8A939827D3B25345F7C7FE11F6D28CA0D0B576F7EC16BDB49B3978004E891622E3385981F0D10227257626B4ABEBAE5276E0D75CD1CD731BABDEDF320FAA2C8F6DECDE231F08D826186BA1E965BEE51FE2E0109A06E495317D8CFE60142B4C095E6EB466D79B3868AB3D533883003F63F8FAF6CDF1793B1D922EB864E63CB8F5B5054CB9A90800490BA98559712617E801091BBEEEF21F9CE8BD5A3BAADBED7B433C0382370124C77B6A371C395D52D7F081C2B61012420013AA4A4A9F65FCBF39B85B0577D0C105ED89581739A1A13FF48AFD42FB07F5F92553F9F22CCB280191474D39A3D0D9ACCBCB850ADAF124E7690194A40027498DBD29A16F3D73BABF5AE004DB8BA0AAC81FB18339E23C2AC40B750EFCF643B08CB8FDCDDB36CD6BA6DDDAE490E6203094880CE1B248004A8F0FDAE0CEC24E6653DDCBEFCCB0999331E5A714D02494002283C6C0021EC8685E54A8A972D585DB7BFF90C9B430212A0AB870120EF025845A47C275FD96C06906AD0BA4A400274DDD005847FC5A055C4B44AAFD65E0E20D1A077958004E8C2A10608032F12F1AA768B570DC557B67EBA5A02E247B57E9F2104C8A316D3AACE6ACDDE8E401E7B29200109703A0C6240DE03B011E09F361AA9F50BEF1DFC63A60274A3A3AB042480B283E243E1FFD4F72AC01B0165636F2FAFBFFA3EF317014A1F36AE1290005D3D18869A80713F11DF9B6AEFDD70D5CA6D6F04287758BA4A400274FB6018ACA830FFC3826AFD7B01CA1CD6AE129000DD9FFCE1EEFCFB4637A90BD799AF05287358BB4A4002767F92274C31E3D642D5FC4AC01287B5BB042484EE4FE4945BC2437AC5BC3084F2867508094848DD9FA8451B18EB1B6D98B77095BCB50ADABD1290A00AEEE51FFFB23FF42B66BEAD5035978558D6B00E250189A0FB07168E531A38D36B78CBE396140AC004DA6271E315ABF7E09717AE7BC6FE08288F901490808424A40C33341590800CCD7E955585A480042424216598A1A980046468F6ABAC2A24052420210929C30C4D05242043B35F6555212920010949481966682A2001199AFD2AAB0A490109484842CA3043530109C8D0EC575955480A484042125286199A0A48408666BFCAAA4252E0BF01537E0F8C345B69120000000049454E44AE426082, '1', '2023-09-14 16:37:14', '1', '2023-09-14 16:37:14', b'0'); +INSERT INTO `infra_file_content` VALUES (59, 4, '576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 0x5249464610760000574542505650382004760000906D029D012A2003F4013E91409C4B25A3A62F26124A99E01209636ECE86A87A9A13386D97AEA74D317CEE7BB5F36ADB7F4F067B3F179F071DF803F33FC27ABFE4F797BCD4DE8BFEC7AEEFE49FEDFD8ABF5E7F623B24F8E9FAA7F9AA7A37F56574277AD07EEDE4A34CBDB49E65F67FF43FC673108A6D8F79D4C083DC3E8492BD79BDF73EA779159DA7FE3F339F687B0D74D929D48E8D84B462D34F8239FDFAAF53A7C990CCAF6782335A726823FCEA3A1D27D65FFB3C02633A745917F4AF927B8DD00058B320E4F4C7F543E2CD6AEAC404E5C8C7FDA09A3B9CC863613ABEB2B82402824D59E36432D306B6FF678DD0C6E3F9859CCD9B4E502D213BAD433714D0EA476278233625ABB8F8B0D4CFD4FF2A9694667C8CEC2AA5739F235B00B26003E05FC7E5782BF89D31178DDA9C31089D6DD89C6F36D7262D48F76A56E0EC3809F39928D32F3BF2FB66FF7263D6BA97E3DECC22EF1304D62A7B8F321453C064B52D194CE54E8356B04ED5D43D7CAFB1302DF36F1581B17F8BBC49B851F18655585D2C859B3454170913416DF2AA294B97CBB0065DC5C67C13D297CE6402C9A967EC12876799A06D9AB47B20D5AE013F0494D0A3660EF3E2133F46E197F4DD26399975917D23EA6F11996F1E2C0B55025C2EB9C0EB6F32663E5086E4E32195FEAD9B5F69F4339052F71DB60666878771A4802C63C8CF6B19410C4814D79A8EE0084E1EB9EDF8A99873458948B12456C5DC49B7F502FBBCCEF52C83361A21F5FFFF4C64B30C3C0F7743A373C06F8CE325B6B6A4897BF7791A3CC5DD7C83711E4B28AAC76C6174DC7500D8831E76373409F9867EF8752C8C06718481573FDA32E6FABF49EA512A3DA752661691D2693AEF1169B03B1A7A5B89BE80F769CD429977ECC6A692A8CF355A817C7F9FBE669B94F53390B9A9DEC03CE25958B1DD82A9AFABD5DB924F6DDC5533E4505DAFBF40E805936DA96CA76F15D9983924416CA828AF606185D86400B351B8DD603C2DC915AA63A135AB60BDE835AA1C8A311F3916E41223D21C9F887127DC7D0A19B034598437CAFB8A721928BC47626B20D5BF56802E3C0EEB302E6F01FC25FD2D7D1C19CA2A11CD84355FDA84E572FBA99E251153BD3A77BEEB6A1D39794EDE37BAE6C3DDD65649EB62B7DBAB1CD3051F3AC072A483B1A76AB0D8A1ADCCC100C98EB926EA966759AE9175D015E42F126B93792C0C79B4A85D6CBE7A1B7ABD565CF42CFE34009F76BCC608EFA5881E3BAE21509488A2271E5069655BA8C1EC3048FC4C0C1DF065DA0673A8957E455C5916C26F23EBCCE0FE416C6EECA7AAA6B88B1812511BF091F3C90A6939625F2E0E12A17A2DC7E357BDC9E603BDA20A4316DCEC5423C108D1F67F72F92946997DF95E33DC45FCF1B73669F7FD6E85E2803B69505F693D06623938B8FC4A1F3542279CCBE4B42696B2F48BAFA2FA10E7D98E4778D2652218816D77D9552E5DAE0FC6A8156318BD395A42C2AFC582E3C152E27C1F7EA1629AEE2501DDDFA6D6365292259FBFB96B9B2919BBB798877448F69678F4A9A1CCAA9B2F0284596554D64DC128348B5039FB1AC1CC42D0D2EAC4024750ED92E8B08BBFB10B1E1069BCBBB5150D48C72C3E7FA6A2E8F80BFCC2A7C8DF60A052DD6DD1AB3A6204DDDB416B93F2877AD755378BC8B5B556B398CCADCDBE27A1389BD4F9ADEF43F271A7E2A245A1D6C0FD8C073D5A4441FDCCED7AF77C9FCCA60DF1CCD9A8433C3499D3C9232DBADBD649F06097F4336AFA94F08CD2E0715D9200E0403A457B64A3FA76B933C2535FE80E6C264940C96DB46715D2023DB370F22B0BAE1818097F7AABD8044AF5921896B5489E73E47E5ECC914C3E2BF43238F1E1AD5E5CE9C36798B0B95E6B86BA12373547AEBB72558D3BDB979D9CFFABE63C660E0C3171037D9183FEBE42E7081325FA12839879D182F6DFF13F12A12FC93B1B60A3117D779ED04DDAE44BD36DE1BD120018D21866D17F3E74C37AFBEC05A6226FEBBFEA42CEE782BCCF92BCAA467FE5D5F732AE7FA63FA6CF6F8D02CAFE11272A38B9DE30089CF00F35ECF510717F1BD138D13D8FD71F49B280FD948A8E7C1274875E2E7737369284D15BBC8AFB5E7D3000C237A032F6EAAA42F7DB135E0D05B302BC3588BAD759FE4C58B1F9A1494359B1108E8F7A42353174540335F4089611A7785AADD97B0E3D0F34B9B2A16EE5B6F6F2ECF1849E5895A6BA89C6909B23DDFD1243A252008915EFC31BD44131B95D590A7A01584B8E04C5FD93103558C88D5CF7DF8CCB0C084F60D012BB291DBFECEF189A0E6630B9ECE1AEF8EA342DC718DFDC3B60590C700611DB91D303EBA4D90566AE4F9C95A403A3FFD03CE8BCDBCB89CCD11A63A456E1E4F336D535C3C7F242BB001C50FC45412A3BD82657E791A6EB87682112D2B88B51BDCAA448F4405D69FF0DAC3C71A2806287FD10707E3D6EC144BB76A5F54BDC987CE3F9EB78F43976A8297F8EAE1375235C0E8A910EE810114969BE3DDFDE20EFE925F25B69177C92160F9E65FF1B547CB13E6E18C78847BFFF9CAF2BD8827CD26C365621480F3C4C270706BB879A304B79577513D3ACF9BF732BD4DE83965853DEDC2851F68C305DAFF89265B336AFB1E3EFD195014C9ED445E867C360B0D02EE3EF5E8A359B94EF0CA108D455DFF871297D07C47B9B6FFC5029B5A20F8989B1C7CAEAC95BA1B50CCB9DB99D17371008BE9C7CAEC149AEB513C446340B7D6F89D23C8F503D1D95CD0656C035983612D742F1E6FC6E148A5018BDEEB60E258055E9281680BA54E916A9BC597023A15DFFD5B53A7A4F8CCA5911C1275A684B63D41CBB304C6EBD0183CDD806F616FD854D217CBDBC2477A83DC07ECD9977829E8D46E321DC67A6F301A249D87C788D8834BAAFDFBD6A128FC9032C5AD9F4EFC967B81BDAF158C6D64CFFB013587BB4B31D9663926BB1BC7A6A974D1F59FF78248F35881B02472812FBC141B0FD805243C8F383D0A40EB8EC9D7CCA6F0F6730CF1ADF5D581E609F496F9111CF7C516171B7AFCE665722A7BB2FB2332AEDAE53AD39BF5796BA749C57B1F1EA1D766515854E3DF00D29AC33938083E69A0F630809374B9D6BE046C74A1AB5129BA0A0F00393D0580B9A11F7819521397C1B15B3BC1C025FE0665A54D2759795D17275B1F718E9F110C69E6DE7036029F6459F0F55C121F9C85367AA496054C876E760C64DDB46A6AC3DE0C00F92CA2A9532ECB91A0680A6DBE420C712C39DB025AE2E07E270896AEA6D44099DBF2942B14324089EC4879109173FA6DC5F1623E32F59A88ECA45C28B0C230D11AA23F2196AD2B688EC5B1310BCB2149EA93481779B3D2597DC0BB2FFFD33CDE9A60FE3AB76E9610500BF8CBD66F8C4B9C8EC6162FAD661F0D4A75C32CEB3BCD443896044A96DBD32329F417316014FE7B01F9DDC067B9D5428F112C3ACBBDF3343978D7A0C11322C697C4B97ADC8D7C65B10B8DB8A547BC1C93E5B2297FAE42041A1EF73EA5DB2D8382338E0960253516C956C61175B480E9DE98B7FF9C5D0F495A7D726AC0F4902895E88FF367FF4E392C531E7CE73A216D1DE34873E43D194D1C212F83696C33D3499219DE308D6FD9EEED92B1B73EC4959B1E32926F25D594585AF38D39AE6E8DDC54B96A626F83C9FD5A65687DAF1D506C42D117B9EC09A1C3FED28BB1AA6ED5381CBA71F824696FA48D13F9B77B3B91D7B61B348566B8781DF60FF9B15CD94B2DC47A9C461E63F8CBB9D633CA8264E5B02476FF91F489F059864E1939F9968989566642366EFFDBA29811E0BB85280D1734F0ED45B16352802DBA3218EA94026A31382B635F2AD99DC21353527B90FF5093C87C5C212433050B5AC19425C8CCF7ADB6041A4957C3074835B13F7AC631FB310E0DB3CF6E5F0F9D8AA72048296A1A4B468641C6F834E5B2CA329A9FE2147556372E6EB39AF6C61F1B7C4F5D8933E313D8C4AE4FBB3DAAB34B277B28EAE96E085CADF43703C97C973BB3674AD5EB1A6B9EBC25B02D1A0E667C9951B4D1FB0660383E028AB1B549DBE2599653E2F9C0AED6801EE9406017CCF6C3F15D84A38C97FCF8051457BBC6071191C5D32728C4E9B196F9F28363E7C1C6C5CC7E16AD5BBF2A83689B152C4002432855CA56511AE78FA46E68FE638B5E0C4C6D911C59BDDBCC4F8E6752D9BF3FA6B14AE07608DAD64A6FEB3CAE08ADF29B37B083B03A47BCDB2F948DA11A837D32D5D3A104FC518FB7DA7E5D5F766280476B42F12C1DADDDAAF7021712BA5E0179CAA213E858AC9EBDE5A20FE1AB059430B571002611A1D6F6FC24758093964B10F80D642F46CC0477B4C457BE169571452664AA3A77698D28A490615B77FF1147896F44A7E04BEFCB8A1C8C33AB6AD825ECCCA5723951868648BD1013A05ABEC224F16255173098A0BB7F013B98606219A04889C07C96344C377993DCE374749A6E44E841D569AC65C51B628D0910130573F628C5C77CE22098A4767A775C400E67D5B0C73A64AC9E7CF3D30C71B95186B63EF95B1DA00118BEFF3DE091E4ACD301697F259A623DB4A19A91C5CA41766A2D1C42D11FF406E89CC903D60022DDAEEE94B29D367A78F9CE51BB616BA6609D41891ED6C6CA67263BB0580AE5F26A1073A0E3C00141DD0E2020B971413B701B16BF17463C4E5BEFA0B41A1A7B52C886ABBB522853994CF9313C16EF5425B93AC9A305AFDFAF5A3EFE829E768140B75F061FDC4E5B33CEE29264B433196F8B6E22916119105359C711DE9F180AB5AB553D032FE4815AC2145AB08F3A663DBE54DECDE1A18FAEA604BD70C109E735F842B03DF0342C7A3566AAC14F3729BD8743022B118554DD1ECF1CA09DC59127CA896EA4DA564140FB0C023367C5D0672417D6736DD0BCFFAE65FD6EA061A27B5FA631BF4FD774BE6FAA7B3ED94B8232674520A544A473E3E4638CFB975778505DD75019FA74185E444C33E501A6428BF3498E4C317F2C961A50A5A3EB9E99E3A85356C2FE59AF220AA26F1F7566A130456B89B51C7F97F9E7E1DCA0F4477D1690ABAC92F891923247CBC80E510B75B76E2AEE21620BB3F87DCD7615B55077E3567156ED53C130B9F31AF95261CCA034DDA6949D6145D569296EFE9F46DD5943488F262191A1CA497BA6D89E1FF27B723AE2AA5EB70F725396A3EEE912A6C52137C3F6AE74CE86790F803F7CDA8C300AA3544C4B63CDCAFF71BE47CCA4F2E42310BAFBB02C87BF2547B51D15A42CF70EB2268998CACAF55B73DD7A6D0AA1F68E89F7E5DB4DC58227A7BC0F732289417FBD89793D71CBACA011644B7C0B910E1E56F13339208533C8008545A721F3C86402853250C5BE48837F1F0AA37B16AA697B26E16317F9C4560E5B4A34275233388D28500120E019F40E4700300D617967958C341AB76EC7768F6E10CBA27CFF8A11CB59F0D19D69C169FDEF0E187095AFE95520F1A086BEACBF05C1F5749030220CEA4C47632A44199DF16C8446AD658A77F46A4B511A58CE63D1B42695C75B60993C8D73E285DFD66FBD3432F3EEC31B76285148C57CC01CF28B9D49C34DBC4707D9CB741FC2242C9A51F9F97578B54CB97BF6CA1376FD89063E43A6590CB78ED94B4ED88B92ED0CFB61A5B3513C9155D7280EA42F81D56D95DF34AF314189D6D40227C3AD7AB6B31D95786D3B4835E10FF60F0B3DE0B3B534618BA117CE96A287629F30168F2ED77866BF8A69ED737B9359868EB5E760A6706A19D4EE3F9532EADD63094B5D51051C82AF45784A41809E3FB75F8E5907B3CB18CD92704804E692B3CF407944D3613AFDB9FE0967C61DDBBDC1ED4D5359E190A6B193BDCFF4222B81BD2552B6D88D08D157F7CB9EAF04A49AB2C4CF9F2CE5817922028C32ACF724F664A2BDC223B6631EFED44657BEC1B99E0539941845450BD7209A46CC2B7333CFC3AFF8E1BD45568CA7B8D232774E1D71BE0B4026462ECCCB7CE3438F1FA38BBC2CD5393800248DE2FACA260DFBD3F38ED9112952DE4F5A6271860D2E85AAEA6FAC3873A68C50EB76F794D63306723E465184542B510B5A8D7C32D04B0B0B2929C4EE13537DD3B15196E9BED3915BA58EA0A6E5C613A4B40F5D25DF5DA4A2571826B05FC001919F498857F8E22A9B42124F99111C8EB32A7782551E2B8337BD0B9489B2F1786299C9E179608786726146870C6D6304BC97C783FD8305EAEC2F78EE078B2F8998DDF89E881F05A3E779E924299485F4FD0CD01D374A35729E25D3E89267CF324067AFE51736CDE412568700D9E534DEEDCECBCE1CAB53CE9B5D786E39787AE33AAA52207ED3BB81157CAA78376E53C632485F062E8E92D46DD00D6C2E3ED14CB9207456198A39CD079E19351DBC04C7A3F62E271963E5954487ADB302F58851039E14B9DFD0FDC878C409C00E7587845748AEF979A513DF85C34BF83463C1BDCD680A18BA4879F8A3A057857E182AE593297528EC485AE2C43B53F4AF1A84FC362ACFF664A02E5DE75A3AC1BFBBCF2AEA47AB586BC77C9098AED278B9B08C523C5877E663114A9BF52D512B5D9E1566EE1710CDAC2AF58D9E28DAB2036EB224BBC93A4671F0BF71D4EF90A1EE4A616D5F907519FAEEB23B60F20B8659A8B8749FF3D0538AF638D793B3CEA1AFA7A87BAF41DD0491A3B5B71A67A855D603433FD3EB0BC74B3E05AFD0CA875BBC168CE0610DB3713A55E7CC0246540F81DA7BC9CE020F90384B5AC5AC1ADFA2E610AB66B748D714797EE51C893B3BA7FF5BB70FEF4D2565373896C5F225693F100708B7B5BD6239D7E6D65A863321284ADFC6CE6F2CD1FDB03254610CCC1D730B2D6D396CCEE8A4DD5B73E176BA66B6AEE0D7DF5F80406B880EF3964062A7DB0C64A8FA870E43237D68393B84C3C8B94010CE7A136B57B163FD7FB39D4D6FF69A0C5FB14D14A91696B22F1E77000A99E53229005725391D357C527E14F10383609596167AEC6EC1949C8CD81A618958B678EAF36F482EDABFA316EC54C3F0F7BDF2DF6309C232F709446D7FFBCEC340F4AEC43A05DD0D7083189FD3EEA7952804400FEF0F76CF0E9934AD277402B7912EF9CC7FD5826FCC4440D92E50714818A3035F63CAC9E8B9B549A7749BED3B5933FB6BD5931E3FF2876E7298F5643250FD7BEC95854E41BE0E0A7E47AC4A51488243190AB3B601E6D09916F826A9A4253FBC73CE4A6DD2A8CE793403551E4E28100A4F3961C750DB035414D9800000FE8BB723A38530A9F34E42EE10998ECB7FB8004089C79E2EE8928FC40179C5D1AE4DAC761E05DD0CCDC919D0865261EAF27B6004A70C022797C0F906087E0A04C8E81C9989B3C2FD9153F584F4547408C702918C1E660D194DB56FC0E02F694DDB9817D19EBB954D58BA35BB80CB846C5FDAC2A476DB1C8CCE734965AAE83A17ADACEB399F80C1F859971BED188F091335BB7122FCE3006218014763C77378A97405C83A56577832A1B8278977B22863DF10B49A01E92C19697216E7ADD5057D3E2450E2DCC2C56A63F5549A11F73AE601CA2EF8000010E90001EEF8AC65948D9876C1B9D2BEF3504B091B6A6CC7FDE19DCFBCDAADE82D6ECF1FE6CC8CB963F3FF6D1985D6C04FC7D31A0BB295307281DDBCF7508C02D080B2E142769944BB3214FEFD5D371439603173B514E306B1CF496D3CEA2CC2136D2A8944203998244991D5CD8A3319F24A464AF85CEB9FCB428F6BC9FC6D666EC61FFB7FC468128B6116FF8261A876F29446121239AD749DDB680D9B8A5F6B07273EE6A6C0F48440003672AD172199B0CA034AF9F554E60DEB6496A25DD8ADA0726295E142488042011C5EA701E1AF0ED8B8C6E08A7626BE336711D66C189FEA4D01BF053870B54EA71D44CF245ACFF83DA72A70E6AE74AE80050947FA03CCE9F3C766C3420CD19B0DE75B8551FB872FCF0621BEB6882F0EC8C83CAAFE90DC3EF78FAE027963453AE80B8A6214CD7C33DDFEB10B839594C0D7AD70871C8B760BFC6570744CE78CD8F37074440808447500018A31A252305AF39A810E31DFAC4D86B2FFEE28782C38A39C9E96373A56046ACB27F25CF86659B857D5FB3FD2F6A3EB04EA4457CFD0290105DDCF0C3C8434FFB9C972F0B1461D16A7C33888F133366B79482442D8DC4F38D5D2231D4E69F4958BD48AEB5CC2675455CE0308C2C6FB57F30280E801D789A56BB810A608684C8A3D69A3CC3511E3EE2014918AE6695453BEA48598D89ECF4B3BA1118DC374934173063E833B9F508AF86D8AC03C3199A70C2EF972BC13F621587C915212264C1F4AA732660B8CC514C16489548644DD957532EFB5867C22D3E5754ACD48B009D75E490FBAE5E9AB6C2DD7DDCC49694FB53844C27DAACA53B9FE23CB9C821BFB383C55576D398866440CACD8FDAEDCEDB64EB4E18E7A91A514F450CA4DAF3E82103173EAA0576D7F5970484A58C4E0570B57BCB3BEDBDD1ED6BDACF423E011FC8436E961181E77A9EDAC6958565D8303D0CDEB9285F248BDDA90D2B1EA1CE7C984A36014C7CB4FCAE2FCAB011BBADFD180963A14F091CBBEB955DDF2D513D30012E84464EF6DC545A4FEABE5E69FB2995C4452EBE8288E4E39715A3FC15D9C0ACD60FC5FB815732CEFD0FEB9E10099F65F306BAE68A796FA5EB65E05743B1133C9BC675CF5CF097865CB021186D412A3F7F24976E523491028D7A040C3183F47BB598310B27E9434DFFA213AD4CEFD1F239582A6709AD0005282F30DBD16FE77C39C33C29A5C80337433BADB1531B6C4399342E00E19BDE8DC0B14ACBA32E72CCDF9C3950111C8728A88F292391CD6209D3000B83FD95B9D9CE304A4868C3AEEF8E3552E28D545542423E504F040E1A02C4905AF797E2BEFD7AA681CD74B64BDD917DC0263ABC940FDDF41257AF620D4B7AABED0FF8569B5BE19CF1B77D3F5AE35CB213264219575F040E3C51DA447E39010B34477459104AB50D20E22CB13BE8FFAA15D1806506FBFE7DEB833B3F32B6E69EA3DA1C273E85B1BB5EB9378370FC59AEC5D0D4C8AA7966117D00F6507E1EB96D1743F661F3F7B074E22D944194B540F382C37FB754EFBEF92C6C1E942AB0460E70570B386FFB0432DB00C8815FABAF45C1625FAE37C4145AA9A1CDF9ACE31C2190E00C015A9EA7ADE702ACA00082C5E0243D49136E69F57DDFA7F37C7655979F91C7122367BD955D7836A51ED7C665A13950A9BCB20871F2CE9B14E9CBD6E1D3CF04EFABD4F7BC23173CD6CE0D879696AD08187827584069772E7E96A2A8A16EBBDD510CAA2EA89DF291E29772F13CC4F9A33C244890B9FBCE1B38001EF96F0B165EF602B41F7097670EA176D2674F94A98347F94020CFC972E0ADD2E95C816D612CE582D5E421530F06A30364763652AF99B2FAC5EDE9DED658419454CC5CA917F754250CE5E67E3C96781646C108EA00EA1C119AEB0F99FE7FDE55BF95BA3450DE9E0CC29BFDA3D30DC4E07133E0F753207581441BDB87C11F848DFE2B1438ADB3677E3DC9A9D4C7883C72D59DF87DAABA3B616667372D57C25433A6E0E14BF215BE1337313E43C02F740364B09FA362F5098C6A3CAD09ABFCB6A7D0A9DA786BE52464CAED7DF3299DE448BCEEE17FEDF4D02494A6990B9FEC58DCAC9A8E4ED5A1E8CB4D4313EEEA8B1C03649533B50224322BDDA75698692118A7CC307209705CE71A0FF85D101F9C5D41E5E9112B3D315637B0A88E6DBBFF5E52DFDA0F952CC2EA132397DDE7AFA5B82B24A24F14FD42B1DEFB474732975BD8AEADDEF53D027350CDD09CA15B06970C28B3DF78ACFBA736E7B2E0F1C5527272B231F143EF2FEE9612CCFC5C92788A446829430DF5D74AFDADCB877A5D9570A968C457E180A30B2161175D2414AFF7BD243FBCE8B9BA3536A16A6B478B1DEBC4593C9920332E8623EA90AE180588EEB0DC9409FCF6D3EA6FE06DB5613F60BFC0554FF2FB1909EE0CF71C0A389542EFD25FC1C3D31FABE74F3F21A675823D5395822BDFBC6D1EAA19F4E34E0D17922B7683BB804A238F2FEA2ECA061F86EA89CA9A58979DF0B6761B846E891D7B8AA573505FA82C8180839CCBDBA26FAAF5C9E45DC1EDB7CDA8A9ACC66481BD62B2E2A99AB859D5254567BF9EB3D7D7C201C34384D7515A9BE90DEFC9CB8683CDF59D893C21EF29D7A45B472DCAB2A40B8320C64CC4F6610C4E5758DDA88B790EA5518E4AEFFF912EAF243FE32873EF5B772CB0AB53DBE97F0D49F4B450480C78F6E63CBE62664941AD8BE2724C28F4AA37FC0F416CBD52AC7E606AFDF059CC7B9E8EE6AD0F6E7E63C176F9E20A92BA57B01746D07D2FC5095147D1F3569280CC50B2A4217C1633AE7FAF1BF5D906F1D5CBF7AA49BBF0E688D87E008B2B8FC058CA0EB3794A1E16F5B0CE5ABAEFA3914AAD14FDE52CD43EAA621EE212512E364AB3D804CB6C10287BE2BDED2803A083F96A7246FE5B139AC5EDAF6B46D64E804102516674246F489B36735E8A0C681474E95BD5DA3A9ED52BACDD2164FCEA8EADC4A6436E5623BE0B566BC02F7A415ED35B72A5A363C333B5C8CD916D85644578BA3E43947BC755AE4A506BF6FC37B40BDF2A53C9C553FC2F9BDF69B61CB305C28877BED8E0C0DD2E877CC5F1BB3D1819412EC237087FA2D1C585D2D94B0A26EF26B7C5C2F275489B9B626BA5DED2986A1E3F644A6AAF30E4CB36E157E956D3A91BBCF159F5C7A4DADBAB5D79E2B2ABC1F8E5B1407107CE6343AF111B9021DF2353DFB12CBF5E672C0FFB4F9CC0A90D24EC0C2068F0C65027C589DA615F8E4EBAF8F8E34290CB1420A2FD47C8FC4636B5464356F98004320499B797008D6F92892DE83947753BB6F1E472153B9A582772239CE62DD3C8259B85F4BCBAC9F86158237C021651F45FA2BCD5D97C8DAEE3434D26D89089DD6BC2683FD6711952A626F4097FB863186B9931C9CC412609FC746CB29306F4EC2B77CE1512237B62300AC110A1A835BBC6007B21317905F681193B595FAA4E041BDC1FDED36140F48AE243A0F456DF540B791511C8B0C630F95536E0A7008E3596D7BC734848E48ECA084B138A4D20C253B2DFC37A06B0012D4A4325E07C2ECF84B5A99C0A2FE035AB32E9A064091F610D9E2AB58213F08F1ACB780A5A9BBCC517E3728091E08096A2963E0447A04A1F0F2AFF1036281D6F3F61E3675BC6B6F5F271BAB6986FC8182C899A0F879263874131931E5AF2CEC8D5A511DF535A0029213104415AB19D34268BF4A2D2F0CA2031B128314C69DEEFFA6159621CE4C739297667C22FBF29189B63D99604C360C8086CFEBDCF08091456622FAFC00C962363067D25A99F8DFCDF398C5D18BCD9A0AEA8CDCCACC2427360E6D735927F2F7630898C88519A8AE044128497C796B99869EC4A64687C88DB853C7B8533C381340C6E1C0F3822FCF0B02AFC377CC983CF2AA544BEE464BC03D3D3C2B37B414B6C0D92F061388AF4A9EB676BB74DC8D4E910D174719755CAB16863B8FB8C8CA39291C6CF92F8DE42AC8844362B0F56C018FC5B8C08DFD33B7EAB59C948FCB4E5385B9F773C6DAD9E1D82D59EBE423695CBB2E428B4FDEFAA97B415FB34580481A8431EF25B9A497213F2E807C7F4155442234B1B3FF6F4F532FF4382F128BE2D77C48FE800FB2F78E690E6DF7DC1B4D3A51A063EB52E4F09041819E70F24FE3922CB0D2C05F51B4B718E2DF5046A6FB1CB7F989FBA27014D3A2C00CD4C16BAD925117D7609039A3F50130DEE00E44F9EB802AB378D059C3E98030D086ED9906C8EE1AB0A3B2FB9F8DD7C01F87130B11FB1747F59FD7EE9B8C3986AE24349FDED6475C8BDEB87014E0B07D339C8F4E05D45B1DB893225488722223B81EB50240B3C93DF9676DB7DF6CCFF22E0E1F916168AA71AE1D5C3101C8E1597323057276843C2BE0023ED7A4DB435AFF4D6C7AC6477345D51370662CD7F90521925750477BD0079F605F093A8888AD778AF1CECA02CE1B9109A82F7CA222291B3800063E783DE6D933455D1D85AAED58C1BBDCD840E8EF18B2E5BBAE8FD2CAB87F0DD0D92A0209D2E32CB50002F91862C7CEA26A6007AD4442F68B42B6359C8588F80100F9FCCE8916B377A93ACE62E4C83939E954D8E7959C76096436366584770948900A33EB5F88904FC7C1F5B40B751494D56E8907E96F2EC093B24E6FED0F062D7188758BCFCECBB0B1F0C5D44BEF2340753F31068B9C495B1F1D8C55185794E641CB8182551071A08EB1A895F7E7B5B68F21700F566BC0E36D6FD25F13AC9A977AD975A8B6B4891FEC1A71AE4E526F756142F38039656C3E12157A5ADBDBBF00C5A3AF6676103F9DF8CAC4D8B87F6F3CE4C59870D1FC47649E82603C5E0A5FC2AD7B5DC7872FA219B16CA6EE00DA8AF4FA83E783C871E278F751960249C87C61DD5A6CD0ED9407E403CA40737E5C00D28FC80A2F53C56E365D93C18FDA79238421AD9BC7029AC862B36BF3EC6B8ABAA38D514904E18BCEEB3DAFF57CDDD9F19FCC5562781FDF55DA33B8C0EB46516140EF20EA2EB946E99C4EB4CB8B9C93A97A64A29FE750C65500DCB4B05D6D0A20380A7EA15FDFFD2B6426207FD42FECDC5A2D0CCB34B74DAD1365690D132FD8496ED56E07C4110537C09BED2F55C61CF92A7E3C48E649E8B68A017E99CBE4A2791329E65EEE173DFDE07CC323DF8A041A017981B3ABE600E7AEE6DF1E58E8B96D1734BFFAA2E4476855EB86EA8226655749038F60CF37601BC251ADB405D4E37DE2FA0919C1FF1872C4024A342F52E02764375A2A96EE1E3EEFB2D25A92E3C4EE836243B36E50F8E41B5032FA7A4DCC6A8FA79AE2316E9F19F80A2AD9FFD7C2404FCD0CF4585CF599C3A3142D287939BD6C9E5805780AF8CE23DCD3422E0B3FD4204C9CCFD975131E68738D3C233AE43482E60763D1284E8ECA7B1DF98A208CDD1080CFB211755DA00BA0F24968BE7276767F61E2A3BF622B4448BF8F71BF5A0D36208E65B7ED220F1B160A1A773743EC38BFAC586A1B9F77CC997C5ED07F90BE78234D0DE3EF79F707E4E7AFDBEB5699DCC61CA86A16DAA8491838A38E6D5F2F3692CF59E5167D0A9CDAC5025BDDA5D5BD6553E947C62641657ACB488A3966CFFD107341AD672FB13A6CBAA6B44DF608C1CF11160C628DA0BA90C036E3B6D93E0621E5B2C86E7B192C8F9CA27500A930701A6F8CB67104E49D8CC1B5526EBF642C45EAA80776FBE689CF7486AA2FE4409F66B90DC6EE4A5A2FA9B14356CC434F9955FEE3A8862A76BF9DBCE8730B0F64F242018513444AEF60E46409EBC98A52CDDB3123B184914127B212F14A57EFC522BE9108680847498803731A244502C45D9C20128E7BF6462A2A8D1466519AC699C0108A565C9A473788F0EE58AF484C7E79D80877836FC82DBCECE565CC149B0D3F0790C3E1B946A8C4FA8857D475C8F2730552EBF4435036F372DF7CCB4C433CC93342693D28400E10FFC2B821F1851639F603706FFC82DA049A5E8E55D32C4F7FF0E5C77F02106E6E9B98975DF7FE163848CE5B133A9BDBEE5FC3149E6EEC26CC55F9A7896C351E39068F12A4FE61FC1DCCDDBAF1EF694FA4CC17260589E78E48F2E35BF767BA5E051BED11C4F409359DEFF308629ACDA8FF0EC135087C11305855E71089F3197C7A5001772F5EA070C1D1C4EFBF48256FA61E32F0B0D225F8F6C2DE83B83BE10FCCEC46509C1603DA1BEADDC88F6FE2279748AB169DB04415E46D55A50F7B08D0612E4CEC0B671EE72ED600C73CD6D3990116D86232A4A7FB28F9CCA4A22BB459EC4FF4CB0286042F5DFEA99A633D85157D7EB3D2BEDD7D5F696A3197F9FB72FBA37A3A458856248DC9DA144842A4E90ED0AE10534F559B343293CCA25E22EAFD5A49E9FA1C0CCBEBD4A04F038E40E81CAE4E007DFEF8648723968264FBD91A60F6582094083037D9002A2393BF8E7D4DF309B2303DD20F979845A870524A86871873BF97FFAFE53FD3C53CABF5752F9F5ED933401125F4E568DCC7AFBD217F56D6BBEAFFA41C01E84F948A84C14BD9CE4791D0A77A18B47119AF63FA93376C624DC765E00D1708F6BE3B6934298356D3E366BAADD9198CA376AB8FD1B90FB0FE2257ACD355DA3C2092096CB22030041235CDC3EDFE880B2F741C7C0FF8C1A2837E166F53CA73164F3EA582DBC12ED31C169225F4DA7530E9239FE7F60ABA238DF9FEB5249D85ABDA6C82E74EE112A61D474D641687360CA21915772E5E8C6B0379EFBB36660268BD08242B9F66241DE24F878DD21118B44462BAD5FE91729B1A45763134FAD9B1FBF00B67D5B8E266BBEED79F67F7712564F37422851D21796F45DBF4EF7FC1ADBE4B3EE4B78C8646AD5A04F9CD352AE1E718756F3DDC669FE55C4D8FA38C413A7E0C248067174A728FC427A438998621B752ABCE6843323F8590A1DCCE4098A2FA60C60928A7A29DEF7CFBE0AA91EE2C451DDE851004AD3F9DAD7F70EC9EB3B7DD8843DF9907D6F737AEEDFB632CF2E834A30A42B4AEAD1291768EB3ABACD0B85C6518DE7D6731175E2412E7093CCA7A0CA28BCBC1599EE1E00405344F3AAB7CFF02F0A59C47C30E9C6DDF6F0D37EB79728CA093DA42E1832CA12B646990F844E425021E5D788F4639CDBB814C94B5246D4488E15FFD9B85087568AEC3CA14D1C6F91E811BF20BE5C8904CC502E4BB800C5B4F44A0F90824B9D848BA78BF25B3F25897F97C7E42B22C0A0A7D0E2289694A8C2F82AC73D1C9F01289D818D1371F53AFEA5B41E9C6E521707D330FBBB896A890299E1815DD32BA841741B6B821EDA7DE544AF537ECA1FCC3657B926CEA4133BE0C4019BCED2D848150F78C0E145B594FAB32EFA9DBA34ABFE8C971AD4A4ADA3498A41F7B0204354E5CE58F25A81515389DCBB66BA5F6B4A2E943FACDBFDF566F7996D470A227C5B890C92D8B9718F45E280B27F0B08092A8F0AEFFE6402171E4FD399CFEC8B207B29D14462D298B4D6832D7141A2D5181420EDA00732B6544A68C2C1CF06D77C5DE234B2D8A02BB6F39455D5BD6D2551746B476512415821DFC828C08AB8BAE9147384423C9959327D923ED192E431B0FF76DE4CE99C08DD1FF508F2C540D6AF0CBEB4936784BC39B582D7DA2294C0EDFC8B7B86563F36DCD5A5D0F27AD27CC92CBF7340F2DF97481C70F2DBD865098CD43CFBEA009B6F62EF24A41295AF1BF711EE6284CB75BA8CC34C4485D0367E108300430A1D82999709477E0F6126A1C9353346B841BEFCCB1DF7C5BBC8D7D28ACE8EE1DEA592C9DCEC0E514136B8761C4E280C4F588B2958CEA410F0F3E80E45EBC9E3985F983896244DDB5B855188F5E281AC80A1B73761DEDA29100C80FE3396A9ABAF2451EE4DF71678ED9E374687BF3C2604B5A0D4E9C5A541596851C532AFBA36CC839D40060E6EDF5AFFC3C05FB9B7F08A497561573F22306470036BD69704CC3035BC57E4E97B8F3CA2C6AEE36B98DE705B41C283A81BD3EB6438A4263D805811D3EEDE7E2BE5F086EF51A1635464FCF34EA1CC5C442581DD1B07EFFEDE67B9F28452008E97B1688CC60C9F6DA957354B07B328418F5A27A6EEDA16E7E0D72C5B67B40693C24F03CC255D358C0A6A7E4B2B6C838812A99EAA3C7F41B2B2EC284A4A11DBBCB0C27F22FBD5B5956FF871F033931F1D4A6B08989B6221E1D64AE36092CFF295C3042F20E760E13366F130201E1C1729A3D0D02675D25CC09E4397D4A190542A2E830D8F492DC26DEBEBF89A8374AA1A2E4805270AD7FA1AC8B3307B586C385EF5E881577569B98027BA4C12BB97F0B79AAF6DA90A91ABE980B80F55CC2F0B43D4BD0234510E10A3C5CC6E8161630D0C091D0CF83941CF0F775FB8F3A28EFDC28031B5EC74C39EF07DF1994920698E8BA7100F2EDA3D9C08043FD52F7E815CF04BE40E3BE2021F137DDB79D97520FB9D27501BF77B380DC633F14540D1EB40302263656D2B4EABA675D4C039059605C4676F4B26003D6A8814BF74B8BABD2DB62123C09A02A16970FA5D501A7B76C58202C90BDB4B6CF685A596BA342752A8BFE227655DCB307CC01041E710E3C614EB9D408E3D6AF8BDDE94A1F24307060472FCE37206CE370778012D53E69DA188659CD7B5C0A5F42F04D4018D02DE04E889B513EFC9C8A779FBEA6DBAC42BED9C871A472346E38E843C17A302AF818CB25B40BD3EE00B77832079EC606FCDCE615BC25C1EF1959174FE43EE150C2707B8031BD689A6C33CCB76A21B55F35A2CE86242D9D49D7B627E731557A2EB9562D6A8F64FCED009BF0DF28FD040DDF517D14287C50168A3B2ECF2B7EC75521A6C4E80389C716477C708FA617C60632E9A1EB7CA1A3176AA4EEE6E528C0ECD20E42A76B911D886E1B7E40FFDF485D1ECCBDD86EFD7208ABFA8D24268DCEC59A33AE4D1104174A1B82ED61B56982DF437DDCCE129B4AFFA3E0D9F102B76FB4B30998149134FF710ED336D2EA4B12D5C7BE7A531E279268A9DA7C606730EA87834DD8F5FF62071B8FC9BCFB51BBA9359795687C06E2FF7DFE35FC3BEF298AFF59684799B81486D7ABA6A606F2E8D15532F3BAFE9E6DA46F891F450338BEC2A6B64BAEE23569A8D6A00F90992F0B241C0729C5FD449BB16063012E506B14288FA4A41A03AAD49B47FA5A8CF669487C3592D15B4BC1AB90F40736B7F530626BB7E3242CC1E4FB6A129DC39A80B03B817D93EFFC30DA6FB9F05088F7EC9DFC06F1494462B6E7BDBC7B926C5FC82F4A91A3440BD05EA13116287B21DBE602FD9A871E89FF24C184A8DEA0CFB16D73BCEBD50EEFFBFB4176502F40259A9C5F602D5CF46A4A9EE424FC591FE06712B79FD196479687AC8E3A2DB8DC00910D06182D3CCB90ED95E7DAEC38F9CDB504A801640921F6A4BD7FFAC9A8C69834CB9AE860199C24719B3E20FF6CF764EFFA3026B0A895DEF92A918B76A3C658461D9F96D2BFFDAD40E4E1EB2D17F8994DDA82E965FB6F1BC97CABE44A7022DCB250E7FAC0D8E3919010E87F2E1AFBC7CAB8CB4D7519AA5D7EAB45474F11E98CDEE9D3E0DB9E590652B6391C04FCEAD1CFD23FA163C6FF037E63C7A509D9C7F75ACC1D9D5382E829B46566605894EB1C63B6121B646887698C47452CF6EBDB92AFE9CC000BFF069FF59C235A0802F23D1DCC719F275DAF652B26013EB53770E196364E990D40CDC36D8DD45D18CCCD6C53E63493475FA8FF6BBF6FD87F4124C8E9BBDB2433382FB1BC0ED174450471D77197A7CB1940B811A60B11CF6349C44E2E71D434E566856BA1293EB0DB81CE2FD3BB548AD31ED0ABAE34D47DB1062960E712EF9F5B9594722FDAA8929BC945F242A2242EC39BC2C635BC1F46201369A3BDFFAB82A6029791AA9A7CD91BF24D453C6AC73065D6E725A5EEE20C49E54E11E796DDC3F52E095FF9E99CC7B4337C1F1A70D826C6B95C1F95D1D93A9C79A955AC416F8BFFC071AD6C2703FC17B265BB7C8B9B2B2047806927002B7439B2615D8E2E593978AE2298F0B4EA8DC92892472C26CE8CDD7520E156E1C71A2FFC85A8968778C3D40BBC6EF1AF6D53AE7B7A397B2D1643379CE5570474371B5C416F7F653BBFB49ABEB371534B590F91DBF4A8CC62716A8BC9C5CF7A855FDC4F1150761637587595DF69C130A3B71DEA2CD6872740F7426068F46708A0AA69D80D662BFFB262CA275BB99F8B0E05002AE40AA1F52F9CF8DA3E675A620C5AE71C07B84FC40B94BC137B541DEFE63E69855A1D78B715BF152593A0EF289CF43B6653AD9D5BDE9300E6A71372323992BDD5085AF8F7E91C737107B4F1B72852D6863DB6C773ECE949C2BB2669137E7BD711D83B19A01465F0F1C0051DE0A1BC2B9C0B158F3F9A242B0E128AFCF2FB7556275454CD02348496EB7A02B4D6C031C675F1CB96AA4C71702E884B09F5D1E4FE5064B10B539E75021D497E47C5BC0FB503AC4B30EDEDF8D6CE010951B34390F31DD80F20B2EB1BECB2CF90E9CD67F9E4EF8648D7D35F47C865C027A107D975FC444E61151ABEBEC91EF53F87CAB3C80EB1CD6EC79B7B6012D4E03E8BB420DF5EE1FBB044F5A0390B4A69603047B213F78C8F5215E3C5AA273F289446D0B579413C6B6A80EB8735C5D4BCF2D2211D6A5B172ECA6E54CBF7A36241AC5D6AF4F2D4736EB738B06F22EA507DC7C63E8EDADE7A69D0FE1CF056E52516D9E15D3ED5F216C26A4BF5DD24A9A3515697917A6E5E3E05725FE3D6CED62DDD6B17B44379822B49CCCAF98C8A2585D560435B43C3B8C527312F6F08EBEDECE1FC6626B949A318E368A235CED583A7C27C3B89D88E6BF430FB4C824EF010E17BAB7C38F20B4DBEC2CE247A09638596D733708111E3926F9D6FDCCFEE57A1391343B2FF512300A7B28174044B610D0CE8DE61FFF9C21B817E9DD7A042C124C3A54D06EC2075F4F7B060D9E9695A37694CF39B3C82056A9C3B674983906BB3722A35EF14773D9490158FEBB1425161682B687E6E71BE83EF7F5664FD3DF2D8E902B65B60B327A10F2C5B500AEE521DEEBC374DF8331606F1B70F0AB89592A0DFD62294D177904DAEFD54B759B1BDFC2D388FF43A8E9430471EFF81FA412AC28BDCF93C000128021C41EAA0618EDFA4434E16CAE8470FC36153441C3A09C8816703F36888046E56D41D393AB1AFE26941D9EA68CCF8C941B21E5D4E657C289BA127656F31A82A37730DAA0AA0BCB1DCE5E1E01DF81DC0FBC8D7DA4899AE69D5737073BA5850E27151DCC9117D6B2C8B15BD729F62AA6B5EB35A94C995D1AB01ED41A89FD94EAAE32E4047FBD0CDF0BA40A1A2B03BA6C72EE2A5191D9A5BB2A004A6357A8FF637768020C5940BA12FCD76A6FD5316CC27673D67BEACE7C4897F4448C06A61EA9E5849F5068F55459841C310F0F75029C025438995706D3A70D7F9CB553D0D7753A8562758414527A18C028F84EC6720FB3F9329A3D61758A4D8E57FA4C2D23052425F19CB3DBFC80FF17D064FFB9C59D1EFA752452B7FF5FEEE3F72395DB45C308DEA3882ACB0179DF338557AA2B758B4E047F28A1FF0382A977255C31C689CC57E6F204E452880215F5A2BB8CF06BB9C79982173C048CBC676D8399EEA58847DEEF79E36226ADE25B6A19AAE79147F5C2A11BB67927DB99D082F917C5930F6BBF31DBA5B96CCD76EB66E885818AE17DF44DA88E35132BC7C5CA780EADC517B95B80663C15B50FD2187AF258029F3076445FF366CBA490B35F1B610CF974693EFF30D3B95D2CAE9F753778CCE9A38ED247BF80842017C04FAA84710BEC2D6AD07A53FDB5E054657FED57972A96331099804C801CF6B6CAFCCC52B8429BC086F30B99D5DE7068ACB8261A4AD0DECEE8CAD453032FC140F36A4FB266C9F376AF45E117838B1CF71A3DB3E978694CCA7A5F1F49612AA797902DBCD38991666FC2366BD14C8D2905AFF5E55C0776355A0F320B6FAB9AD298E18035B1D648F774A2CE5210FEF586718CB67A372C8EF5317AB725D2E4DE60CC0DF22F14BE13AD386094A922EE148DDB2A83DF7E5E7197FBF8E6CE169268F79B27066C1AFB2D216FE63636EF007FD80479AEDC84DB726E48CD6F0C25A27655A88DC5AC72CD856C2A6FAC7180264815943CE9FDEF7D87D96FC14802748F4FD6423783AD60F63A54D9F28023E4EEDDFDC807A89C492B9AE01C2E5690739BC013AFD599B6159916CAE2AD908A3C43E388621F7DEFB5295B93A6480450D0F6F11A13F442F9911AB0841C0AD26735A36439F159564905290C15FF06063CC614C8C2775AA8B2E7A1F73D0B01FBCB75CCB3A7E6DF3DAABC46730E3AD58DAE2637CD5A23D061C32ABF584FA9ABA37E9C1B7788C2C26E041A1F977117D7C60A57838BC1F3B6CDF8DC92E03B47A4A1DEA461A8AA3CAE007B0E34E4927B4DD4E4EE746EC1CC403D8E6F3B016428A1DCE09C0C73310BE275B4BFA6E30B632164A965275D823DB776B58DCD8D173FE97259F482D5F3213D8F8522C669CFE542AEC7C35C3C965B9E87BA9D070177166E44E9E9BEDB59E60826C42555F0D3C20FABB26DE551F73784A3E00918A4491083523C20F50C7397E2581EA77F6BE6EDBB0BDDF92F2AA290603EB57A016437A6916B84AF74004DE0B47E0CD3943F61EDB75FB4A829111334400EDA675BAA8B3C1A51A6CA529F16879AA2969F1AD696C36401403DE67425B128095D80B388F12C313171D187E492C68E048ADBAFDF83D6F811A2EFC9B3F7CB61D6EE9F23ADEA2BFAF4F160DCFA4A2865226CEF338A7C3FB51644EA9D91FB9C0008B73FDC5C18B22AB828B69488FB82DC3ADB321F55F6E9B1524EDA68AAF9562E9BC9DF70DBE953D859A53D6DAE80F5F498F28DC1BEB4D7730F97F0BA8571D4F208FBDE5E95EC6AB824BACB8938CA1B8C08CCA58750D90B95E532CAF3C7A317681386A060236D0D4EFD692790EEEF6EF906135B5BBE38EB0B181415721EFCC16F05241E1EB792D9922120EBFF5CB5C9E1A28434DD196CF824B728E3244539021E15694ADBD12FDC64AF183506277CC814B11D66AB62827AC5D68AD13719D67285E32657FCD85538E05BAE6494D1C21091DEE36B5AA5A34D1A09BD846C2D2D497224688F5CBCA4FD5257556A31F01C9709DD9EEC168E5CD21107746926C42E85DA3219ABB2841DEDC0A2132357419F4FB400DAD5B0C082E7CB812CE3CE7F6016C1660C2C70D51A2E00097757B4AC8F5E1B44FF1B851687B7F200D127BF11D14DC4E03092111F26B6C8035427A9DBD3389DFF3DAD8BC6913BAC3F2F49FBD4217D325CAA3E2E8C001E18DDA2AB255E3875EC65ECDC4A502D08AB793C11709D875F2CD0782FDA9D6CF8B936116CE31FF1D5454E79D798FE47559684BF0B215A092EA1763E56BE7661B75A0869E92C4E3193233AE4B2AF1739B69FF192F78980EABAE5B59289EF350CAC54C08D847C955942B71E6C1A7E1D23746DCB8280ECA82AD9170AABAEC159911922769669703D9587382BC6F30F89D56F2C05370434D58EEAF6B770D514B7AB0F9F782917853FA65B68D4A554E69BF4FA3E7A1F7088CB7946D0BCA8658F74BEC6DFE7FB7AA8F48CCF141B384E02FF73B577E019DED71E36E0848D916FE164A7CCE5263205A1D8B5E6A2E73FBB262144E1BB532726BD3F196961A863899967B92B4C14462A70E1DCBC084D661F6037503363BF04960655D1A742C34EF5BE1350466B213E0713035587870FD2CB727853669E6068FB5AC10050CAA87AB431C2AEB27C94EB3FD2BEE67F3C05684B6D9F85479895621406E8ACFACCF6E9057C945F820A3040F91F0EB441949242752AF95E4068AA495630974A40B8024D9C230A513065D93F0438EE26B31FF5CA6ED39DF969FAD6D302BFD05D7C2A20386B370F585784726016C7FA00B73E93DBDAB9B3C74D919EDEEED8089C6539E74FA0D789C1DAFADB9A515837B78C53546731B3568C41BE8DDBA1C59EFB5866E1F4728E8EE33B20EAE754CE907FB4809DA85A7AF1FEE6DDD8263913563D2E9B7420D7204FE5523494730563853C135FFE5A03AC120A6CBC12E42D2AC5B5C3579EA331B3165E6DAF6062572BD6B8ADE5525AD376C852121222286FC3F0BBBE3DA6C01739F4F8BE1134C87D8E74C178C822044E98A3038C90530ABC1439EACA218C5331B6CBA7D3B4B5C7458699B6CE6F4619449B6D73AF338604EF8594926444331733F8F15FCE4DE05C810D4E057CDC001F927CBEABBDA3EBA0737F658C421C957E705799BB84B2E402C4116CBF41A4B4D0782194FCE5AC23F9E59178A57A9060B1626658CC8E1BCC26CDB900E49D74424E287A2EA879210ECC48A0998539331936D0D2DE3F8A6E01A992B30B1D966F1A2D26357F7B2AD693D490642FC3B7598EEA2DF1E76928120EF1BF9EF8EB8153BE6AB7F90765AB85D137043504F2525416FBBD3E5022476C8DE133840E3D0AC11CF3345B76B79B29C6932BD4FD9160F5B34D0A2DC498C747AEB7A1ED9F8DEF88466F2429AA82ED9D74AEFD64B0CDF86A9F5387DCF694B2373CFFF7119A290EFE4D54929D511E9582B112351F507A6E4ADE66FA4A195FEFEA8818688266A52B3864636164ED64922F87077D7461295970E723D5A3BF9E6B1693E6B85B58CD1332FB46BE8BC8CF33AD2E4727828D72DF49778298DA10BB3435963D24FDB9A8C5A6F7990B6C1459CBD41100A78FB7447D1D3EBFC4B32B8F987F9E7D4B3B1A894D70CBBDA293E6C29343B4ACF4871495B33C7A2CAC9E5680FE8A5EB457072E60626CF8D4003D0E80358930C3DF811B194977A784AE185263439DE6DE48ADD5330A3090C05C80DF4CDA02063859A9BC8CDB8781A34E51242E1C6F619748D89F46EE21CDC0A975F6561D8288CB52E919AC0D4321BA243CDCBC58C02FC7640AD943C854F61C5970F29685CFA4D97CBD6D4E466C49623BF0C8681C811563FDD2CADB69AEEAF6FFB4CB92105EB441E9158F4F02B435077A4C84655849F19AD459526B6AFEFF459C7B93CD770D4EB3CDACC7997797B92E92344DC1C9BF780D9FA7462A690592D342A6743ECECDB0B042A3228A6644A55258BE4C3447C5ED77502F2BB5CA9D58E1FE3A6A47E59E9EFA4DC36A201949915BC679014DD6DB44DC16E1E053F83EB33AD2E6C86D2B6F94DBC84E2B8C43B6A7FD7C61A223CD4D8E9C6464CD3845D2D90C32D7C49B597E077BA1D9D721360DA1676ED5E6A3D3668C72502C6C861DF3CE2210A89A0F7A88667399264F98E44A3E8BBBEC20164EAFD2EE00960763B9FF13E0C4B97E592EFD3A32785AE9FCF8E905EDE61C9BCE424BE695C53FC68AD360ECDD381EBADB4B61015C6B0D895E994B9A225A5C9F04DC0E98A2D35795994699BD9BA77AC81F08B00604BD14523B7D974B5630FB2F7466C87D949F70B828ABA1F76009A2E5D8EA8C2ABC5872B4C3D08A2C3513E1483D5AB9A78A426AB1875C8277A25687BC46FADE1010DB239A7F4B16DFB709ED7D37D195F8D8F77B45E488CB5E5169B2CF0F375883EDBA0B6D84F7AC101FE7E06221045DF99F5B8AF812CDFEEF4A41631E77DECE44F73708FF650AFBAF8CE707A7213FD8700DEEE54740BF68415DEC25ECB937E2AFF46527730C16ACE38AC73B71B2D3FF2C452A07FF9FC351D768EAA1D2754D3A7A35F2E1A4F88FDFBD5F99C8369ED73DAC96C045C0E3D2E59F782FAE99D0F9438130BAA7A7BB87F0400EFB3C4A9FE29ECDD8359E0A41B69731DEC191AAB5A0B13A70E0EC0B369548F3F07EEC57A555907D894C4740DC8B6AABBC1A220BCB3B83550AF006B0E84648E051B3A05A1945DD3B6CAFCD047E011EB1D894099A1D5B7110EBA4496C598CFABA6CA7512AADB923D032651151E6D91F4EE3871BEDAA43C8B701286173D184C037BBB53BBF11686FE2B6E442FF20E159BAD24872BF32188A1FDA2076180B184BD953E8A3C8F074F20E127AF3EEE25E7E0589BB0CD37054D6752650EFC58FADAF052DB03203DA974EEB0F4CE47FB54E51C310F36CF63996287F416FAC6570489E3F86641DC28FBB89940E0D0373D8B356B4457AEA2F1CD3CE83D27111F5E2C1F00D3A9AAD69ABEFCC5FC66FA8D3B53D337B301BD206510810F9F8B785EA71A950B7837675935DA68FA78528438553607AC648B3E9A0B072C1D8B5188B1A2A74800F3C2C9ABF104B84543C24E43DE80DE5EC610071EE0A0930F1F90AF68411D811885A6F56503506522E4AB56C01020E324BE8E7A124BEE261F2A898E0062CD6EB8233FEC16F71AA9A75A01D8E9AA63A5F518E05F2425789DF2C9221C8FDB99DDF55D9D93069D13FD629756D3AA4809BDBF8C3BD3B7C1568BCE9C3A375EFB71986DA9DE8187E0E7AC4893CA294330D069E2EB00248668CA241238136216734DEEE8BDC48E24DB3175FABA7900732836A50099114C986E22FF97EF27AC3D51E837CCDF6FED5C008DC3275E1DDC6586A9229538D593B68F79712BCE727B0D26673308E008689873F0A88EF7950E9B6909D557E9E0A9BFA75B3EA2BF26D4E921D98F1A657127729268662BB26D08F3C66C78B2AC31BC0313F6F4E3424E21674B01E8AA6A480E2EDEAA5B1577B8FF8239600BCCEF63BAA7D3FE7D0F73ADF15286D9C8CA4D86572820A98180A5619E44EEEF87A051743A4F160FC4DAF1A095FB233A7417BF4268510E2E0854A8060DD03EC66F437C13F97853262572DD6A86C2FB9172A56D9C2A5C2DBFC3C1D38270724D290682A90D2979F4E25309FDF1C4251E20B8EC7EC5792BB844905CC6E9DE414EC0B791A5A51E461ABA2B9B6E79F26019491E205D095A2C7EC5319C31B55F215DA6543F96C9B7F72B77C9B47B9FB8459DC8D6C6897C3F2591E98C0D127A7F930847579987C19CD6824458867DEF57DFE1713CC9783A867184EBEB5614797409E327800B2C8BBEAB3D4A4101B1005886B888C7E99C492407D9F1287FDE9DE19BC4D6B0795323F4DAAD7164151EAF37528DB1DD05B417AEA42379C33E9CE3F5DD92816C2D2204AF6A10ABE29A422DFC99A61BB6DEDF16199E8867A54FA7DB7A590A79E7D43897B6EE7D619AD7F8035D36AF0B541B4C305A97FFFE0AD2763A77F4B1F97EFE0A1648EF14113EFBB98669C64BE8C4F8DF4B178B04AE3C759B07550D02D9D7C63D6DDF972B3554FA9BD7FA39A993CC1A9A9437D13E7893AED3D2C5981ADEB3621EC7D38E3615F5E2A8F8CD4E91A40AFC2689934CC137AE249CFD998A8B52ED65CB7F06E92DB9B202AFB790398DD24CECAB85FD4C1F2F60BAACE8A32796BE925D40FEF32E54DC8F6B07FA499239AE7C6BD7222E05CF1E4E49530FFE5DB2364D757458D7C918461819C64AE12B33117ED0D2E0041C8074AA475D8A096F9FD4C80207FC276A705285A8F5D53F45FF5315F87EDA329FFA7DA29093899510682B2333BE792F5F0D76B263DAC4136B471F4734E1D071FDC5DEF8AFA7CD0657FA86BB9713286F5D1B7F6057776BAE0BE4D0574A3ED6B5EA7F812187E5C1291324072164A2F81D293503E53FCF5B6EE73C187EC8F9B2E7E1FD2AD53309948A9BBD7E4E7C24B5206696085C08B8B82285A44B8FF6DCB480F2884A46C1207EEDFE30FB61E05D0337D8D1BDA2ACAA79CD2DA3D9CCDCA78B5897ACEF5DBDDA3A4DA2809DC8105BB6CC31B1D5722F5D2DFD2425EF266E7A9F088C8C060830E5F1BB8D17375C4A0F633BBB17C28AA6DE723520B98441884CDEE4087AB754E95522661ABB8675E69874DC11D6BD3F4D2CCF6343A7F7212F6D565746E39FBE29232EFB448EA09338A1ADF2426D7B8155437458F83A62E9826B22DA046C6AB6ADA08098F9D86FE4424E071758939CB61AB2FB123ADF7B9658B696B94054FEC8CA8076CB18A5970086B1E63B125E465A349DB3B8D0CF9A3CDC562B39ECC3A9659CFC90E32D37259840B066EC82D1D00C28C3015D8A3D3412B0F431851284A6AFD8495C53A37D6E362462F371BD414C9614B2F4C551AD722DCCB10048CCC982992EA296DC1C6460859DBE7BF359C6DBD9158C129415DC07269987CDBF8140FA87DD07067FDEB6D5D37769863B14A1FCE76CB7838AC9515527DDF19972643EA2F3A7A8F23D2B3C41CD87AE58C500D5C070C4F2BE515A265C3EFFD9015D45D56E209A4A89D24253A96C3E59180B19A0143D0AD490D4D26DC2F39D66AF5C37896BB9475629A6E44CC8A473212C3B7BD40F1291E032234A1706F0766A446344D82EA6B75EA902F2F81AFD49CCE561F4E14426A477D3CA9651111E6DED0759BECE2FA6205684B89A687DA002FFFA6E8761E22A4302534DD7260AAB0F5690493D1C627920E30D732E41B56B8FEBD817E713C8C4EAA58DEC548C5E1B7E9CD2F7EA885BDEF0FD3440D6D9C7E06AA4A6BF14268EDE5BD87CFB1993A2B96E8143D32854C19CC087E8405ABCFC53600BFFA620AB63C68FA3E0F7DDACBF9D2904150892A4D1CAE67C33CC8E621BF462A66DF9946A26A5A0C90389BA609E4AFF80FF91CA356ECB4178D0EDB5DF55067CEF07E58B46556BB07486ADC2B1C2EBED3D676CF8C7BBA5DF42B3FA08DA5DC1368F6B9743FC6E88B9523796F39F55D001655BB6B0309F649567822974A6FCA84285C6FCDDA236922DCC1F8C29B63C3DDC1472DCA5D4024B46AEAD32239E2DC5F3EFE9BDD72246442F2CB3D2A6586DB138A67BA9B5AB9D7F29AB925A94E23605F2BD58A3AA68873F17149836F4A66E79001BDBA13D307E68A26EFA670459513267C7143643486F5E3A6199F1DFDE44E034F98EE842B54613EFF8E762C7FBDA37386D7D8BAB4BB9AF43681CF56B560CF8F5931802A5E01757063F4366228AF61A6F2D3C44D7F735C73AF728E571DB6B267F95DFC173692A5955B98447D6DFF271FCF49BA81F98C8E98E4B8686790EF162CD0F77820C0FAC91D77554DA0E238E5AE6D3B5B36196AB755937A8F58979D218AB924840E8EF267D4840E6855B0AC4114DAA45626AFA2648D3ED88DC66C390EADECCBD6D35C51DBA02ABAFD64662307A668588940C1207511717949633BB8A3190A2A17DFA533F23FFB4C5F6DB017185844E901724A0039836A7B3C4C9DBBC2773ACAC835242D3906E6A21306F773FB56CCF5802F95F29AC7343E03BEF9103A198351410740016E91007D7EB31CA57BA5E7F57EADD8764B517E40E3F8D5C03E032B4BE1995DBFE268D07444F7F35AAA3DA745CE5BE58F028B60F8F4A85DA811750EC53AF4822DB12B30DD03C3B2F62F3CB1DFDC93CB7CD1BAECC5F86C3C0A241B8933880EB9B5EAEBE1C579A7503038603CD6DA391DCBB788B0F870EE994F7AFE73835EE1A2906A4901EC856C85BA1BA1BEFFDEC9BC8271C7659541C2372AE83559828B8EB71434ED201BEDCFC513F70ABFEC00584652C40028345D63093E2BB109149FA33B7409475D8C3EDDE2CCDD437FD7687616AE149A82FD5FE13544ADC3B48ABD66DBED586DE9211296B3DA384CDC7E2EA8D5F12BD81B1EF48C83179665EC206C8E32470A47A172BB19F9672C2D68D1A435426D228FD379ACD843F56D8340466C6024C155AA09EC5AE7BCBF646409EA2A1C5003C38DA0C1C011B1E95E571DBD58D2D914E783AD6C0CCF6EE9662121651D52E2992A83DA3916BA53206C4686F59BEA7A9C63F5AC9E6733DD03F2DD2F92E2926C9EA6A3FF7BE0E8884F2D4AD5AE47C28F69D54AEEC505A99CB104DD9A36584ADA65B916966E074DB99A614A406B40D18AF3CFC73BEB227270AB62B3063A022A6787240472DD16A8DC5015A279DB23F87BB94C0CDD522A42AC82B659AFA96C4F66939447E36EA52172E7DA04D48ADCEB60EB4AC4653AB2F9B26618871882E3243ABC090BAE081328D1CC9EDA00C0D982C242E7797B0C04419CEADFA99B2424BBEA20DBDA4BD55C67C529F9001A1617434CDA8B0A4150F67024C7A5A3B2A82167A186BD32359A2D875FB444DB52A87CD83F4A13B91C6700A7335E8C845927B2FACD13AA197792FE6F6CCB3135039E36F088F5CE0E5E969935D91B9AC908A777EBAD29822890EFF52A4AFADE3947050A1875D88056C71239F9569E215B043FE5E02D01B43D7F1C493B2A82D23D5314CE9BB538A9FA414D6BB97927E37A5A7219D5DA2E0BB69772AEE7CEDB33B0AB2AA6BB16A8A48FF2C815FD945881704B5BF4933C2B4176F1D54D693D09F1B32089630CBE42BC377D9F5562AFF45769ED7E42AAED290C7B8A8C931BF6A5680964EE76AF203E5E230E56E947C1094EE77640EFA23B27731FFB7FBDDA0EFC3FF545A183D2C32F5F6E07C095031E72D33FC0B4DFDB0EEE040C7931CD977754CA1AF69E0FA89D39D805129228515D5E30A24259E6E066C5E8CA5A8BCD359E3E8453B5CE8938529069C3F744ECE2EFC3B6AD9277E8C7F1BEEE2A231CE6B6125063FC2533E05574CCB42A5BE5B453AC851D57FB7B8D7CB971FDBD50E9F189819ABB4A7E63BA64626747E40D28C2F3ACBB7066F39059A0E4EC2AE292598194CBE18380B2697EC3B8C2851B1A682CB35E113725264204CFBF8DE59734A65437A19AA44685CC4DBEFB1D1BDE59D3215949DAF01ED11D501D5FA98DDE3E003E9A43EB1957F3C5F8EF087948D28829F715589241D6080BD0D910DCA1CB9C159819E19896288BC7BCAD17C36B12A76CBD459DC1CE6CF223B6B5DDEDB03D1982060D9FCA90B3C4530CD00CAC815EB11F7BC97333A9B1E3A74B19A26AE1AD24EFE4B387F9AD3A1E1CC4E53E306FC2F8478ADF0BBE0754E732DFAF636DBB3834A634CF4926060B34CC4A3CEE1A2F33B88F134A2830E639BFC5F8A2D313E22EEBD2B53D66E913B689BA67E4257EA7D3B1D0064CF9B2402D1E8A2371F22F0FAD063308620B8D34A2BE14F23674AFC81DCCAAC3B64C47F2D7E8D60F55B1617732AF720D8DBECBB4F9D950F0D2650389354C8E8BCE94B26651E83DA8577CECE57A0533709752D160621C7BBA40B4DECCFA81B6B85EF8B2833E950A7DE449FFE97A5004EF98D79BF207BAB2E64BB507CC3CFA7039A8FA78BEEA6F012BED4BB786DC82577482C1E065EA53CC5B267A2AD0F74F6FC203B071D811F22E1CFA9E0CC61C7B8F193830E2DD497483125C35AA2D939C5019034A5AC21C7F76D126639841E0EEC65E68E58BB7269953212FB1CA50F3A4B6EB33D1B30AAF0B36F1ADA67D9DEDDCBB9858483D734226C46166707E355B176039158A6AE5D1386E9A2FF7C74597A5D136EEFCAF53480A5BD7D19694F06B7994B17748BAB39D7AC78FA0B33C36746A1CC482DC4690AE17C281AEEAE7402A0363C60566EB47D4146492BBD9791B4687415DE675A865BCCB88B8A3A5817ED7799F9AD04D29D186A7BB8A6727C3ACE6BC48B06C39A80D18D1668F70A85C8354E4F0392B2B1D3AE0447948E321905DF26204BFE5AC39C1BDAD293265F27D2129931D326E7ED91A977B3BECC2F046DDEC5C6BBC9E86872E77BCD39DDE43F86366624D21794DB88E0A35E746EE816C8C4F716AD363D49314630D8DA2525076EEAF343CE4BB34EE9A3E55589DAFE61510BD15730BE110A7D0ED5D515B82A36E53AFC380DA24C9F50F9108DFFA654BB0FDD730062F2611C56431CB329AC5A736BA93EBB17D274C8657252FCFF48347A2483CBC1C1E78D8A753DECCE2C5EDE4972F35DBC0B46D8BFB23182CB7BCBC74F5F3C55FC8BB7934ED2A027D6193BD4893BB92C6DEE36E0641335F86974291BF3269A73490378445A232FBCE0A7A0E791F7437A9B6423DD9201314BFF58F3C394A7499AADC963E91FB036208A088AACDF5B4C25919985F26E931FD2429B28891DF23F7B9529C13772511E08EE3E1072AAA48A5E2A6BF8E102A32BA98428D153B8A9140652DB1D9B8D1F8970DA51825F6562F9F99CF7968EA99EC2B4A9BC49537479C6494409A46EC654693337A3DA87850D853AF8E716B2E58790B6282BFC38A25CEC9C267291F4AF11D95BD179DC22828AE6739F4484531ED864571844D72A1E836B2A8850C9FC606501ADF3628AEFFA8BE4BCB974735F858A365A73EDF5E6F754131F81C1B72C425AEAB2DD504109A40039DFA244263E992771CF6690E3381FF9B5CFD486FEB4F87F156F171D290EC7281E4C8532CF82204F8D7C6DC605E65F50C3E34EA5206EBBE8549CEE17498AAC946F621B03DB50244CCF95F08E532CF1DBA5DCB68FB0991E4D23DD77A08BB62BA54B46CADD923E0916400B33258E5381B507993D7D67BF09D8E5ED9E535CA786B33AE0E89A4A2E193374EDB03699745ABF69972865A4584B3056A2ED9C7F3DDD95220523B2355BAF37947B1F0F310D6F0B179A58CD792ABBADA9D17D37EC9D33761B96E0ACEEC30341622B3E36A132936C4AF1090E21FF5C695E9C49F1BB39FD20903C4AA58960D9AC57F9FF3336F0DA83C32F0F6A085CE1EA7DE47392A19511431ABED58BEC26D8645DE8553F6D9E13AE442C1A6E1C2113B98904F0580DED6FA6C4134820AC182A58D18B5CD075E4B5D0BF15FCA4F8B905226371E494E158CB019CE2541377B8080EC4DE345687D11E517209D07E8062EDE73C4EF6E8B552E91F7FB9E19BA7E25029E95E84B83BD82457EE4E5C86EC0E8FA29AF5DCB7D28A3A93857FD06E58860ABB17C9961D200AB04FF2D0E9F3991C2E8CDEF8CA8719747503D76838C955373A06AF31754713873E66C9A1FDA8CBBC95B18034672931EF5BBE575D273A373C94EF8EC0B58AC86A5FBF080D0F95FCB1901B323A08ABF154C7F6C9A44F790DC619573D198B0E17026F6F1EB8C558B4EE167C8E26A61C5685B78A1996A731D97DE439B3A79451E5D0E4CA33441E1321993CFF516C7DAE0DD2F800ED7047F71449AC48999B467D89EFB5B8A6923723385BEC528B2BB7ABA7A45166FFEA319456576AA49C9660F666717276700D1BB78317A609D57A2FFEE5C849C784E5A8DCC105306221DE912BBC77460D83DC28ACB715788C2D8E5A21A51DD722F84C425092340679A66E138B0558D7D9E4B0B4C0D51863F4ADE23CFD83DA2315C4ACA79D423973C8098CFFC30E3CD176ABBF9FEE429AE43CDB8D1DEE3E72A57989EC6BE93A28C2766D915BE2D920DC80A829AE3D35A92AB15DF23DF3E0730685AFB01D380852D7588E1D030CC27D3F451536B679DBE3E461403FDCE871E77498CD4ADDDF2B27EA3B6E246F35366E58946F6F4DFB4A7C71B9E0B7A8AD701721FC5F959F82798578AA812408C21C469E91F2BB83F984253BE0D4B315E5DA5DF71B546D16C65979A18DC23ACE24DDC2C42944E253720DA80D5B8360A51684C3230A40A234210686CE68B82BE066722425076DA0071B3C6D8311B67C4D18F366C67C7E390985394BA32B40AB2231FBE81D5EC70B4AF8811E9963316080F2CA6B7649B4230C75FFEEF7304FE458035B704B1056F5BB0C5080CA08AB05A37026E52D83AEF2DA952345669311DE8650A3DF41CE193A0167F42A76EEF4573D2328B5D5D571CA948A7056BD8FF499C9CB3811C8BC5A735D3A3A3EE0C4A0F220EA46FDF22BE68C2BED897A733C8E4960BF9A92D83FC0B03199249AB3B0CA385E945CA9175AE15CBC6D1F2404A5AC5C789DCB954C56E0E63E66DB82C587F25B71598503003191BEBD639B82528E6A5774E46EF583AAAB7C37701BC12761DE83CC994352C2821D8E70501BC81E1766275EFD9D247EEBC30499A7CD1BDCA1B7F57919D58787822FB5491416AD5193173E1A94501C33700733B38633FF71CEEBA8609029525B781326C08268BBD87BAE3F7034CE68104AE1358A9A058BF7BB821A62153CA7105319CE2A47A9BAE1607992AFDE5CC6191EF90221EB92C9EA01208212702C9DD98CBE80190A33C904792B69F6B657DCAA613022AC82C5793ED1E40240B57577BCB7894BC7E6B356BAB97C7B0E00F44ADC90ED7AA4A19BB62A9539609D075D07E0991BB77E949D497A9B4DE388606EF0280B6E3542F8CD1CA5D4D75B331AB8EE23B1A9D53E3F8FD5C2E624BBBE06DA88B8246D663A921D3F497A13BA1247C09403434F1F6B8E32B6F7292BA0F5597E1613BBC3118BFAB4701BA7E64596245A24DCDEFB604B12619F58ABE9BAC90F3407087730CBA87C03A8E2440D2A9DF66825E78AE1F462FBBF7C1D5AFC98BC940EE364B694AB105FB5B254DC428AB06243A30DD5F7EA1CA2AEC001602CAC3EB09B0BAE9DCB7E3242D9A72CCB2AD7D627AB3578CFBDE3889DD7EDF72A77FED5364DD863CF4DD5E75AC44DA10591907A44281C4BB88C4422F3B28ADDD5BB06E2EBF56BBA4F3307733007CB70B36B01D610CAD0B2BCB954961BF38F4924889368640FED3A56BD2FCB4A52EFC39D1CE411264FE8F9FB398DEC1EC95B7AFF2DD01DD06ECCF6AEE9561225D9D809DD09D716910C680E294FFFA1B2A1E88148A11063B5795619CA9D5502D376A42D6F692022AF902A86244EC0998753B2601E15C6A19070B34B9D0BEC8A605B1E40C30DCEBC6AB168D5BD600ACA4A275A526BF02A5A52DF411194306A9218250447A60B08CFD7163E199BF24A5FE8A41F224078AFAA96A41F39C78B7E0A68FE89FBA85F4ED51D3D40CDEBF0D37AFA7799A83359BD74F5EDEAA413FCEF6B1B96675CF567C695083A5F6B4DDA5644C4C3BCB35FB70715F2CDF4A8D86B4EB57570936B8DE56F6960CB5FA3F9FB076146495F8D2C96B75E296FA31F225A1754F79BD2BE308FE6941D12AFAEDAE44B8D45FCADD99FDDE3E1069DBC7C721041CE5AF6B1739B814B19E6345C67AB3CB66A52DFCE70091475D603FD4F673BDAA4459E6598F080117DFBBC3C780393CA7B8DC6B58A946C5FF2AD3829B7703866FA74BD0569829F32EFAA6446E99933F584C6AE8686A5478914F376F6A15D481746C4A0A79E91C0D35A08BA0DD7DF412681D7381AA4C6A6B788B64714B9A4DB2031BB44CFFF29F263A851CC3DFFCC5FD801D8AE22CD2752FBC8FDA76B8FCBAC579BC995EADDCB0C274B986D4703CBA9E0D8752C869978BE3BE336B5F8B529712BF2A3667F94D6DDC6DEBB9DD1FAFBA5E4FDE4C0EF7F83AEE45578FB3E3C2BF25348B67C5366755437B87BA3CC20795B440CB20E15B0BCC92F176D742407904A6BC134173EFED17D97A7CBB0295CCC97207E661E1E14DAE575E5B199EC75A12C138AC1BECD75AFC33B81F4A4A4981318AD04283699A318555C23FB97C9A98E39D8E728441064B0E8F5DF5ABF37F78D2FFD2B26336C279D9200CDDBC2672DD4CD7107385DCBA466C3E00926688BC5F1727452A8F8719CAB48383F8EF394FBD808016591B79972020D828D2F875093B9001EE222C2E563911A7B6540DFD3A09C870CCE0CEAFBDC0854A9855E8A31AB6BF3F8A2940D7716F0BEF5CDA98DB24433E6F9899FFA62B7456487DFE971A8AE6AEF9ED054CA89B60B2C751BE8238CCC4EDD40EB395D6CC55E8450EBF5939A14CC8235BBC040E2DC0A4446313A895BDF0B156D311BAEA8A76E721BC2B7BD8EBB75557FB3F3B6D659E202E445FA9CFB7EC63E5BA655DFB8AE58923015F4C0DDC8BEBB2F07C65D055022ADB103A25E463A2ED1B3899E7BDB6AEF892B7AE2894C2AA84EF392D05A603D0DF103260FF2CF58A7EF038EE38E275A118F9ACA8D32BC3D108915C372FDD1BCC7A38FA0942B011BCD8CB155B011FED74D8F39DED3B3BBA8DA05093628CF423645A7279CCC5A8813731E5482D28534BAFB717161ABD5DF54CAA44896CE381D77979D643EA44BA72E0621C2B58B8AEFE6D5256F75D23451B546ABEF3B8E106632C64B7C525B9FABA6A59C0F4A3C84E8BE7B1575539D13D4E0C1FB70CA46025BB62DF45BA724F359DE274854E34448EC5412AC02A1819FA0AC5E2612D60ABAD3E12E635E872D6AA46457B3E5204FA64FA9CA4C46AB89835C507124974DC2FA38E058785D95C453DB3BA4486DF82FABC851664A595C09015DF2F12F0AF727AEF98890944CEAE09F3C4DBC77F9BB529C1CCD5B881C9B26E965F3DFADDE2213EB24A7A5E02531551226E4EC7533BC974410D3A3FEB343FFAECAA71ACBEFD739F9445AC369A6F0E2E161D43CB03E865387F989EB75AD7481001AA76B1AF67C61552D42E9865FC819B7ABBB9361497CCBF7D9A24D6BE30767CC791785EEB22A921A8F7FA5A79ABF6994A7204AD15177EB052FA301EA4711BE2C7EC6B18FC8EE46D88FFF845A2FD2EBF8CA981F661C7AEF7022EF46852EC0FF3EBCD0CA47A10B83F72C6B56BE3B868FC4E59A2A2FCCA5057646BA9DA26C35039B4A56D7B314B33447146CF3B7229BB731045625C19E9256643FC04AA84D233F813C25884E343617B82C82FF8AFF3ED4101FB38E200B3B8D72AE8B6498A479FD82E40D760530CBFC84A6A038FAA7F3A073109B333BF4FC6D69B9609DFB7F2E688C718ABC5587D8FB8F26E6FDCE8BC65198ADC0C979D72232EC5E66F16F17107D82FEF9A740CB341523614279359CFDEA4B9562582DFAF329F8DB84782896BB8D5D1CB1E8EEC9BE4E39B8FAF8064FB0DE37C29AE03806BD0A6D077F3CD7D2C6DAF9D540BD931921E3D9C01649E170C778A4E6A75F4ADBC51291FFB50E2E9A4A4AAEBAFD57962CD22FCB5D839DF1707CCC1BBB3D93B5B1C2407A8F1FED8427E571D4E57E0EF2ADB3B50ADFFEEAEF1280306EB6C81C87880EAB690DBDD2748AAE635602BDB6B9AE94292C0C29A13C705C4F141141CD58240A75989D44A83E35AD739AEE828526D277AD40259720620A46EF4478D3F680D0E103DE26A3D8148B85A46688E83A552B6D52B99E3295D006708A47DF42AEC5745C74D2EA7830932C61620F5DF313A25E6CF237F2F5B0381DAD5D00A95691039DE50506477882F532329E98DE0758E835BC4A79DBDB5CCF2053A8D8E7B75F1311FFB860AB013AD0B101E03F8D30626B7850BA7AEE62EE84C0A10501B8F6355DC7DAE1674130D77CFB92BAC105F377DC87EDA10714A38961688DC6450826A3F436101174F8BBACF8FEE72C7464501E7FB538A535B192A4D3D40C5D85F57F9313F6F9F09CFCB565E7EC127A9CA953B45DCE949DBA26DA836F052CB8E920217731792F125056F3F0543142420E70208C9B46E576CC0148CFE570A63EC4740A8D6AEAB2F4915EC65E02A60C417A27EB0E742A47A67719A36716C6A4132F651E61DE3A21985F0E7743BA766D1122DA459B0CBB32427218224CDE3125B3E750966DFBA48F1CCE9676B135ADF526BE1886D39CAFEC62DDCD7C27B7E7C0B161799F187DC52E06BAAB9853C75A5928DF8972DBDC279E2BA19EA20DDBA30B0C79C3828CBD75D36327D2382FE59AE36B3C4B287F35C5FD66DF6CF0B5626523F6242E031259E307281DB7C6C2E264E08A835CFC6855007E52D53C09F747981AC4DD45D322D5C7F8C0132999120FD9AA347A5F92AC8D925F91036F7948E2AEE52216C5D1B8A1DB6513F6663504DF1156F87E25D334502803CB32D396C6DA44F229F79F8423A9840D8A3493B84AA65BA74A3F90870A4868FD18F5FB3A51EFA7286B588202E140D928AA4F60F26110567C0D517BBFC8303D980948B9C27504A2038C9636981B257AC6A2D22A2A2EB04486ABEA63CE088C6AC666E8DB9A0CDD2816E72AF9899782E47C041CC075486CDD0CA5FEAEE42B23938C823A1E0BA28A2EF5D57BE88E7EA8987639F835D28812AA8C5072E16C0981A41EAAE3FBD083D775CB633004B6E39DBB72935B3A08E87775D8048E24D1BF1348E8FEFCDF0C7E4E35DA49072A2D2D30041486165E0E552D8C4050C662DF5ED7268DF6BD8EB7318F6916ED08833F69D945497601424B58C80B7F56A7F09DD6EDFF8E4DAD44828D644938C4ED0CE5658A1D7FF1E6EA12EA1920CBE61BCEC7EC824DC345CB2DC4A1007C634D0C7707A41225642081FA50BB560F27BC459C97B8FAA78DE6F4A79422B454D6A011E686758A429DB88B8930EED09E545A7409C325EC7F73ED0DB48B2A8AEEE3DF7F45B2CE54A04F8CBBB5FFC6332049025D64C640FE8366420414722645F62EA6A836AB3E7AD2892A3572E069F36D7104BAED7322919A07AEE3DDC665A791C55CD65FB299300751A45FD46A40B2AA07B2CC78EE27801E7D7E49B6DEA9D1C0EC7E77FF9BF63C18DC52DACC5E06F5B13675FD398ACED988B1285C55D5CA8BAB765FD82C354656B2B5F9F0EE0568D640884290A6B2AFE98707AF126D7E68B1EDFF7C1A18E9C0156E228C0FC0A809FEC537EED5C63B5A0B6689C004FD87D218481BB8441E7D75BFE285CDFF71F0F7E920A41616EB615B21A56F0038D5847CD428D2524E24863F841E5493169B1F40E01902EA3915D8AE5126B746998CC0070A2291A8FBAF23F97FADD650B8D73D9AA074F8A3DBBE676E13C851BBD8D1B8D0437D236AE3CA9648523701435E6E3E996E39715BDD494AB1914C04F048A6DC7FD357BB5823403B2F9ECD65B838BE846196C9FD4DFF09F912F7B6286D7891C9E5F8C1AE36424B96BE5CD062CACFA3733EB65515B071DA64488C919995F8A0B82F0690450EAE099336CB422EF888011454B7C2D1B56EB2FE7A3D80CB3659BC88A979CDE0872B67752202C526EEC88CD654AE39DE2F808F6EA05421F1D0F5EBAB885A06C32AC32E12B7BA0DF5DDAE2147DBC86D06916B1AD20D2A7A9AF64C9FD27A0F30433518136BF288859783F6998C9A4AC73D38BD7CEEA34FAC6F12B20BC5CA1D91ED26890F455AD7EFD07A2A61F3A75FC3DE1A3490BF8BE06F58367D549A0F4D51B70C687085EB863C0155BA30C738A6D5CF0C54932FAD8FFA962BD035B8C72E3C100E907BD2E98E69760510AF79816BB940DF3A2AD349AE33CA0C366D951B1447C880FD0E028ED3D94E1AB333C61DDA81F6F5DFC8D1A0D6AE0E37B6F8F4A1583758C0A0125FC678B310DD068459236D8DA49C1EEBF3FBB9B128F64B26CCACD95C0599A5712FDA3B2B88BC9C161A19F5A70EB6E85D1195681718D8AD411BA241FCAE7ECA033037B0B81B53B892750BC9B6090A36BB0A6C99254C3BEE1EAABD97D9F4D634DD9DE50EA78432D2D07D7193E1B5D7A3FE7E1D0A173538E1C770C20F9CF8BA0CCEADCAD002CCB970BED943B97C9C5BBC5168C2B124DD208370C42D42F306D8335370CB83CF2FFD9D195967504E4ADB00DF0754D9E00BF98033CC6D61CCBCA2AD42800E68797C4FF357DB4C7B9A29FDC084FD74A616BE3013FD187FC7FC1A4277BFCD68B7D1B56FC126C42FA9E2F1EB5C8AAB3003F13CD0B0E822196A87F5D34EB380ED3BAECED90C2A6081EAFF6C097D0E5041E7C8D15BB1FF9B6EAB0E5DFD22A6797F147610E7D8ECD816F181393690FDEDF2FC7877C27599220F159D8036A7A7F8AE37223E931E1172638CC83951CBC81B100D00276193F465DCD3F0CF83CD72AA633E492E1CF4F49FB32673F7716C99C4EFD9A4294274CD04065AA320D319A32B1217920E38F18A1F10F1EC12518C9D52E7E07C1F2F5EBD6C7E99CC181C94EB102AE7B33065CA6EA6B66D47E4A0755B0C101E48E89149EE05C4581706B82846C7EEFACAB3019AAC69CF8906FC459110B5C1A0A474F685BB4DE6CBFAE972B6AB6BAB7E0A5B4F64DA5698B0D6AB75645886DBA29EEA88501706A976DBC8DB077FFC714D28D43BA8509B9654016CD71F812F22DC09B14B432E53E87063759E83861F486E4E37C4A2651781FFE47E90D5CA61B9D5DECFBD28843A9CB1656F19BAF4331BDF9EAE79D3B3C59DEC9579CA868A044318E85D726136F792BCF26F7C0849469075D7BF8ED27AB68851447437EECF2F8245B385C4CCFC5B8EBED1B98343D202B2244CC0B37A91EC0CB3CC2FB3C674CA084A301A031CB0FEB529587B658A7BEF2AE73A50D79AF63D5E8CB610814AB28A1A15A60A9564568B0B9A7D39C61F7A0014B4354A10ECBB9BCC70953911A681A0152EC23431F649817739B86AB3E6E24D8865BCF374C538454C6618BF4332D8103A3CCB86E5A2C3DB9E65C34DBB71A2CC9E42E107E60969D1F9717A410C5A35C1BABAAC8C3094BA57C004D6B651A8F55D384D3417BF68AD3D0225A9358127C94B0190C8641670F59391AE5105615DFEF79AFA4EA716D0C13D1760E4EFD7675A0BADF54EDF7AD52543CC23E6B7E3D97500DD495E03E1DF7A8A44E4C2E4F6E1CEBE1BE41A6F47A39D05BE0561EDB0D25B72209C4AF9AFEDDA3E3E1DA174A92DC6F0454DC76F11836691F34D0EBE53C885519A8AE39DC4A936AD1453761033E4E98EB5135B5387A8FC9BB31B24251C714456470A594CA91BCFDC307D929D49FEBD215E071C48AB4539787C2908CDC6DEF0E20B7F12463143E7F89FB4946D51F0BFAD0D688890B915614FA910EBFD2A8BCADF61C631BFEE8C8EE8323809E010532FDC20C11C9BF19B78F20CB5BEED8250EA3D56C1E4E64812361523BB7A06BF8A2762547EAC0AA98E988B684B5103B37C47C312DD6EC0887A349C5B8D45FF1D5072685A9BBBA41CBC4227122D3AC8C99F34BE1996A1C59E63214C27616CC3E88749E7B3D332CF75C48D9C6C267B4765CAC7533980D2CA12DA711CE500258384320F70DD7F1B15D9C51990486A19B0E85CE42FB4E8D32577AC0DCDDB9250122D685DFE9F82101D4E8FFE543EAE60D93CF099B5B1B20B02DBEA290F2319665D3BDAF08E2A05F2381A51A6198B2921D33D385E88DA9EB3126BB0AB627EFA31CCB4351C476A51B78C0456AABF54A8CFC2BE31C25CE73F0374C1D3FE88BC822DBF9F2A118B769C7D9E027D7071958643E803E48EA3EE9CEE1D9CA73B5DEB30DAB162740C161A6B913BE898FAC15EEABA9186C73A4D913A5F288F82DA8159AC1EBE12D6873C604EA7310B8360575E95DB1F93EA6C3EDEE06CE18C46625DBD7DE274F32DF103917BE030954A2E1256E276A9466C2F36228E00A519E41EB8C457302EAAABC01CC5CB0B52F8630793152603BBD20560800685BCDD5E214C397500305BA5D5544E1D2EA8AB65D4DD67781F4159D7E8C2FE9765D273BD17146B7B01ADD206EEA03EF78C2F3B5F0A5B2E1D3C40BE87442CC249ACBF8E7C295C4A1336C7215B7FFF01558D0DF1A90ACF10AB9618C6E17E09B9DEA949B956B5B3824164560A5B2B1D2819679069C51C376601B1D840368D706AEB93624C224654E2233688E3E6CC7A1E43069AF7970E6B937508985C63B498645A75B0847ABF30112A9DB089E906D8B54B4A7F5E6EC57964229429CF73A4E11E594E27897288E62837073D4031156715590D4C91DDF956D528AD477B701C5F68DD2F5D68C5D573E3ECC0345CA231DF2C12BCCC7AF356F4771D5EB4157F3DBF5C9BCA8F27767C90E059F373C2AE94EFEE1BCDE0EF9A7AEBAEC48A3A3EA9802AAFE22A71AF591064470BD8A03C351E4B27FBBB35E00382412AF4D7301333756C4A59B8695798C6C0F0CE09AE965B73E72BF0E748A52E48DDA2BAD686FD437169E32BCBC829FCE1366E620EE6809BCC19C9B11FA4E5868A914BAF410A461A40009713762A84DD6CCF1C232DA252ADA1750B18670C84B7B397E3CA89016AF5F02DA7A4A7EFB16D0D9BF27D5C5BB9C1600CBAD126C6A4FAD2C4E57984508CC6516395DA457EBD296202A50477112852F4B2BB22F16E0FE1F0266EC729DA8C17C37977A7D1A036BC45E5159BC0BDC3967C2EAB02F387BB01018DEEB95E001ACB2B2C589D01AEE04C2AB79895A54C6F7D1AB1386FFEF6DFF8818431C9E09D3812DD2DAD8F8EDD26F48422C2B9B7A0BC1E7E3086CBEFC255DAE7D6AFDC33ADB0BC1DF1CEC35B61B4D2829489F58392A90856A05B401EFC4C4AB08611AFAB340994E3C37D638157188A37E7E4AD5B251C18936B387A85AAA3C1B7964B054A9B79C117733B28CA57AAD5D833E033814CD9CF028518A5C06B880D0DC05A1990B48CD9E44D6744B1F50CDDF0317BE2CE95D36BF3F76B1A87BAE87D62A5C44F1E0F4CA8023A37AE215B23017E0F8EEA0A29969EF5611694A971E069AE882DCE4B49686D4A762402CE609BB867D503D21710BE70C4AAC5D16CA806AB26AB66F880E9204BF884E75B826DB7329E5A8EE26F43983F0B98B91062F792467272C2AE400A3FEDAC0CB0F8C92C1AE6F0DC55F89BAE9E2D7DC1CE4ADD2E19F861E2EAB699D704DF69F2456F039A5889B709800F79B8E482DD19C50A0F0F027C21EA3D098C85A66AFB8E544DD84FF24E275D1E7CF7F37724DFE55060AFA09377CA622982DC3E0FE43C094B9C813DB2B63E23CCE961D305FECBA00ACCBEC57419325F990F24026A8E537756DF24F1FC158F646D1B52446F281AF9A7EC651D5B63BDA1955D52D8F2E982CE67DA2E43B7357244E75B335D18B20624993940AAB79A687C6CE051E4E3F816E062709C83503B9EEDADA402EB80584B7F5C23498FE2C0935BCDFDD053C0B9697A02621836C329B7E373E9AABC376E341B1A4611F73EC678707A49261935E257DA13E881747E8DFF7005959560798EC3A54E118E1A8563DACAAE7FD526594DE8C0676C7F3CD806067B33E2343FF07E631B01D99F3EA0A21121696D8E9A639C7773B2DEF049E7B329A5262DC303EDD3B9B447144BAF25EC4017ADD2D07E53382A075D529BAF348D3E89389CE85CC40606885A89649C730B0E27E4DA76991008478CF8DF03E551365983CAA13B6710A90098310B7E01E5FA9D12979CF48BEAD627A6426182C05BC751601DBB7BE5D7664764CCE41ED5A4FD64D3F46A68AAFAF6C79369B501AE71976ECABF5EEE3EE20A3415183CF8469EC87A7CCA0689F32D9073B575AC9D6C5A42CD80BFD8AB1D95AE26912E75BEA3A4308CCF210908D32269D5AE24C51A19281F3A69C42278B0DD51F8041CED095309BE0BC25A51B01391BB87ED3DAC66117BA74A50AB9A3FF919B29479B1648E446B5F40510017839F3810FDB02C05C1A11253547E0C726E896A87E261D5576B2B0E0045286C8B0506C839338D413143A65FD549687D31ABE544E67D127150D4EFB8A21F9CD03E6E4FA12700DA93FD08B1665EE438D11599B57E5E0467CA9444EF69211D82A8C0EC27593E1AED7165F506DEBA935AA736954F7CB0DBC62FF2403CE40B3EBE2618D9BD6FBC285949FB1920E01085CCAFEED02D32BF14F479233D074B57803BC341BC5A5E70101B4133BF4D1ECB0A52BFA9838167B401D6643A0FE18AB9B1C6A016E428DCAF541A52979072C0AD1E6DFE55D6A3D8A70237E5443EFE6BBCE4AC501522DAF752C527D5B77115B19E6DD815F2171C9A6E5489BC066933AAB5B3CB00B9D4C55D5B4B550E4631F9E9953EC74CE09861BBB6AA28E1AF8A0FB592148FF1A87B44C8B692633105B3575076AEB5EE5A37A34DD2F451720FCB6CA69A4F52F83D98DE7738AEA2106CD1DA071C4DBC5D39FEF031351EF6B98476A6A54DA2C650E24C6E298D36A589ADCF24E59967787F87D1FD7F78176FFC624F74B121CA041400D92BFC125BDBE6ABBD3B6F6A71B6F52E7D8050C6CFE58FF3D63CF1689171FCE9C6D06F5488D8272CFB1C3CF248E15A5C77665EFDFB25427FA8395019AAF63437D3DF96F4EE91F690AD9CAFA8627FF6B05E36E23F158758246E09C44BA1FEE91790EB11BDB642DAB634259666FE59ACC3BFBCCBAFD05FC0E9274B6B02878660481AFE8833AC9EF889BFB8EE8335CAD38C776C468F44994410471E6384429576D976C9D0E74ECFED3B2175BD7B55DB59F6CEE8FDB0ED6128B742FB717747B0E72572457FBC1844B6151C905042584A03E07744CED79F5980C9D40E84FEE1C6A31C825A76F1386BD7894E5916A96243DD2F00CA5F2460A349468546F5187072815499BBC98F6767503B9C8EACCD48B8770D46BE2C123B1F7EC7D6D821B159633630127EBC14584618D318742A0465D90E174A69D425622A1FB552B43C907203F00C363CCC75F6F93BB52E21BDA1AA043A17A2868340F1CDF051122855D5253F995AEAEF39362F78D4BB5DE30B1B45A12BDAFD9035D36CCF4DFAD6124F982BD14920FF7431DD234B27A1EF6F42A3F2D579F64006F5D65CDB8A53D3297DA95E46F866044EC284B04C61BB40A1026058E8C1751162F4C241E284AEA65518F50DDC2F65E21E8A1B174CF58B4AFAE77646410532BE39CA88A4209E9E4E9F77AA159C478B0997CC777915E8E29CFD8A8052A8AA8D646C8AC58A1A1C4C35B0B5A82A263DDCB0A22C5AFA53333A7A4DD1BC3B5B831C8DE890A9DD6EA89945206C2104A03AF60C91FC8A0C0BB43F44C23800D1BC6C8A037055E2113070A7ECF552F1CE2848276464CE0EBDC3E73E4A854B2608FD077BA8B650058C00D470AC1E1629DC11DDCB3974CEC04789E6E8166CB551D0AD19FB8D9794E5C2D1C8708F1CF8EAA6AFD12F6F067726C3EE0AB6F7A5B4F74286AC9AC55BAA28FC343E2A1738AA4866A9F89A3DE3996ECED09C64F24CFD44683CFED93A457B5897CB654570097E104DBA331E9DBEAB9F559253245005B4119C4CE69F5482963C1CC6D3385A9D29C46D7FC5657D1ABE7995ABB454CCF4FD1C69BD649443E174B1C6BDDDDDDD960E49B66F0728138A81F12425E76F36C3E320E98E891BE73E0B90278A5B6682CBD9DC33339D634D77ACBCA4E67F75155F6DFF3E0AFA89E1BB0551BA120D57B0D660FCEB51B6F24295B3529CAE9F1AD98C81ABE389E80FE4B79080A6A83A83661B9F35E04A0DDF507D120E0F06CD2ABC9F4181494C7394CE6FC0796238E00F976D0DE3589F7ABCD20940A331B987A0FD3DDD58DE79F1F1F19BF0C4B2D6E4188E2171ABC2ACEC4DC235A5F3A271CC9C00ED03B19367C2890D2370D784994764EEBC37195258F38F65A6B2C681DC1AC502662CA039F5F6A20AF7205992250EEC5A449406B8D1A19E195F208014C06A5F51E3E7FA4916BF1263D9567B8033F4172458681549322EDADFC8995E3AA2547763E5FEE0375B73867EBA20C2DC2397882EB7EBEF43B62CA8BD0ECB699138672756A97949F3AF8A0423B0156B03C65F16219FC646B286E6F82A3EEF0DDDD083E06D37D5FEEA7A86192B09BFE61302B710CC4361464028107A9AAEDB1FA0F35334D7424E067B28414C6CF6C3004D1ECAE669D6A9EB829FA3A9F019752555A6C01FB3BE259D4D3192699D1C899089C7C3469564371B49F1BE0361B593C7E53F429021C5E4114D18C234847DBB14524F04F44E1F28EF1E4DBB9435104187987B5280C6DC91C48BC62E04CF00D26240CCBBD2D4101B695E12D020884EAEF76F0205327D30A4D8DDE0F110C428F6C3C8352554CC6EBA79F04663B20FB4A419865167B2E253DCE54716B443B9A7D5AC5302490548FA99B7FAF1EA57EBD86AE13605CD59810BFA365750510E46756C164E2C78281D4B419A8D7A0773917DAE1B85DE6F0256538D5D2098E99AE501B9AF214BD8C276B46AEFCDB45B329CCB67F5AF2908CD027BB12F31ADCA4AD0F4814512FFE5A1F5CF775114C03D83F742E0115F7607D857715C96E7CAD2982BE191C68C02E48911E7F8D9FD8480C14AFD73998C9F74FF6D34472DBF96D83891C12B36C61AE0000, '1', '2023-09-14 17:21:33', '1', '2023-09-14 17:21:33', b'0'); +INSERT INTO `infra_file_content` VALUES (60, 4, 'f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 0x524946463E630000574542505650382032630000109B019D012AF40177013E6D329547A423222528345A70A00D894D58401B3DC499AF555500A58460A515D1525BC016C60543E606D2CFD3FB29C2BEB9E723E679E6721F82DF12FC079DAF0BFB6BCCC3A73CE1FFD3F5CBFAE7D86FF62FA8979CDFDBDFDCCF76AF357F53DFE83FF2BAE83D193CD53FF6FB50FEE77A65E9CF4C97CDBAF7FCEBED1FE1FF8AE45F126F03F3CBFE878A7C053DABC0CA01FB92274F9037989E219ECDEC1BFACFD2974E4FB1FFC7E9E05B2279355789A3152E6E3BC771F689F1783F6FA3D163C66FCF8050B0AB9BE59F2F0DB4AC2F92B3ED0E8766BCEF4F2654BDAA23D51DD0D7F592357AB7F76920DDD300583A46582038E8B056AC628B3C9D72D0A157DC2B922CF5D771D3ED25639B9AA88E879959AC3CCA4084EFE7FAD1EDFCFCF51C55D62C1CF1C00757A7DC06C3FD9C17A9CDE44BA28467182E4334A60D5047A4B3E5DB184DC7B8D70148EF6D462777E1043BB81B6FB154761BADE759FD118BE64CC492A03F83220AE6A409D9FA2B8FA2C71922C343E463E3821B070884746B1B6A6FF7117519EFF1B558C546E3728123CE102FBEB1B28AB4ECC7F752A25D7199B0E293FDC48AF69D736E9DB2E48B3182675BCAB299D22984BC21C440CE4BC75D438C6B7B3E789F2B45D5663994C0A5263D19FA73CEF2F7C723CCDF1FADFF41A5DD9FD3EB463042DF6A6D6E683978BB20A2747A39CC15FFD6252C472E467123E3A39347B559F50F3922791DDD4544EE47CD01EDC844D278CEC63F77A333B97FB89A5FE37C707D1D3E8C7E80E843854D14E640D19BAA9FD3975D4B947D1787EDC002E7828EDC304A2EBED2215D4974FA7A73FAB3861AFEC67B072AE362698476EAD296E404E2F11D8115C97DE0E6F9BF05E5F37BCE2A2E8046E871E8669F1945B0B392042BFB912CD7D80ED951703A9D82314F25BEA7C565280F4457A34DB5FCD1F151AE83280E67DECF4ED064A9853F3407E2D114322436BEF9781AA7185B4C1F85A0E21584163B1FC11F8566F8BE64087228FBF4420775797844899B852674B2A051EE9346B297987DB11EF19C8694F45FB8B12E9C58DA79852EF1521ACA5D0B8149AD8AD9808222E1786C184F3EE377A49FC7300D003FD2486C098F9363FD8FDF26554BF3F07A05B9A1E3F6DBF92641C475DB347ECF94C4D259B9F3069C9CFFEB8EA04E73F13E8841FDA67DF45FC63674A6AF0B3EE53DD21A090DF917FE46F3DEA89E45CEEBDE2FBCD4E40307297C707DA384CE49BB21855D043A6B6D6640F11679819C314EF8161EB3E5ED5CAB164338A2F3E902DE233253D7548E81B3F897C1321DBC1C6FEEE161CCFA749E203F1712E34BE9E6F329130C9AF857112BDCD9AAB0ACF691A9A5E4200C3F095E215C638085BBF411828EBFBEFC4A4428C49E79D992D90900BC3F466BE1DB0D52886377B8CB9870C39B1FC0EDDE08E18820693FC6FAA01C74143FD1181397D2E80FDDB32E685EABE23AC1588DDEECA028E7AC39E8CBDEABB9D3D65454C0CC94808DBF0FF83C777315DECA8989868CDDF578575C1F0C61C7A8425F02CA2EF01DBE9BC7808DD2E1F25AE792F9D3EB367B8BDD9EBFE3B3294A63B92E1B171D3E954D3218EAE3B21E218BF0B80A188663AFF276CF59140F9EAB696C54DAF26926CEB046FC22B7DD3E1DC0E000B5F4CA1B22303B9CF246DE65A074ABE083BE5D88CE60C789C1FEFE02E4A0895F79314FB6716DEDF9DBEF574C05CE938B428FE9D1ADFF96D8E7D7F2872FD1A0059F8CF2FF126EDFB558F9D8ED04ED09185F9C26B7FFC272A0F291FBAEFB282E946652C147925C5D91F65EE59D8BB006400309A68892E0F9CF7B72D6173793A08C2A5B667AB1432089A0563B6856EA09B24BB91EC77141A3FC2E586D225876C60079D6BF8C99F8AC3819079AA383F5D8381EDF28DE6FCCBF09DFCC7BB8E2E35CB9B99C55FDB73E3AD300311F03D3CE2F19F12F7FEA2F1ADD84FADE196B50885CE3F83E32CD7A7F45E74151CC33330EEEA8D2DA3489372946F1090FB8BFF4820596C9BDBA3C9DE9D9B66733FD369B56088CA10E7C355146836B501026A9CB6E8F87DEDB4622C0626FB440EAE9B46AEEDD33D7338A3F8AB04E2F01A553B9ADF65CD79A7AD7C04584974EEAF3B5A573EA66D8FC69A06FDD7A29326D2B4999A1A1B6560D920A4E8326806F8C159CEFD1A4072DC8A7BD968473F12D00C4F1FFC80E5A265D03476C9BC60360F7A291E6A84B6965AB665F31B915C38D016254B2D2EFE2EA90AC7A6FFB2E356DE4533704FAB8D2AF414C4E3ECD091E1B0C61385176423A42E2D8C5F549419363EE1C80B07E6DF780830F506EE76F5D1E31935E0AF425C8D23090608AFDD6333F2C583DE1F372A7437662238D8FE16CBD18CD8ABCC961F6B638913E8A8E00EC51CFBCB61D0584BA3CEB4097C4E87EF17F95FAA5BF732273C484DCDF840DFE5E196AA845130F75526C6492A9C4D8C32854532ED1312250ED6566A1691EF0DEBA45A0A32699F440DBAEB658ACE38A02DE3A76F0650CFB6E5C17D2ECEFE482D8A48754A7FF70C7EADBA9814886CDD5DB855D8B7F633F488402C09A8FC49C0699D8251FABE84F740CBC4EAB5ED03AE62669DEC0AE55947C5F6F6DD0F971E35DBA0417A0F5319F69520BFCEB47D758A6C00163F102B3A99130362E9E1A0458CE400534D3E8B2D942AD29CB101C370DA6E5FD5FE0352D9B507E1768C5C24AA24DE806DFC5273026674CB33E9B263300305927190C76D28C15FD19EA5C51EB397B8BC59EEE5CBBEE4F203FEF8E773B4AFAF4193E1FAA8CBFAAE00BC7BC2674B33C9E498EFB9990EEBA341E6538A7B71BFA25776F81244636CE28C812E5780F6AE5A734C3B34C2FC147B58E76E861C6EAA8FC5E827CA4A8776244AFB587808651F563AC6D5F03A2819A19A19D4A28533728E8C67FC48F2DADE99E1E16FD89C9C897B8F64FDD0F53287CA994CC1B976BE6296595FE6F5F4BF1CC9645A5C53775AA4550B3A4BA47BA0200FC5DA9ACFFB91C08D44574D7987A41D0985768DECCA3FE3B4C32F199074EDCC62FFF1FAA1A51F16332928FAA3685A0597AF55C35F27DCF7E8C3C8E527E4D81C8569A60DB8E8CB4879DBE5D5A4964D35CD4DC0A451871D30BB6B27F46058976A17AFE604C6277E82FED44A7EFE504A126241993BDEDBCC4A68C0DE1470DE53B9A189461552F7BCFA6C515614F879F67715D9AACA9E5EDD7B856AE9B4FC9D1423A54D6DB9F1305C776DFF1B2F60869CF4AB4242F5E93DA5DE98DB7D69AC1C906A9F0BE96826D290F93ACF06D16DE2CA12D3454BFA9C7C6C54B0B3D5AE76431B04AFCF4DACCF36C6B5C83E28C522DD1DE7FB2E1E8B3388CA7A87C08924851B92722E2A491E488F630DB1B1FAB68A40573CD5E35AAF8CCDFC9452A3290FAC3690E651791EC78A767A75A9E448A1BF73CE2E0209CB57AFB1F59B9F36A273C896137E4ABF0D153F4CCF8998AD6733105F21A438C6138D2B0BC9AB780FCAE293F49FE74B628D4434C92A4E2B54918E55DC5EDC6FB66E332578484EA3B740AD82E27B3A7C14A852B9FEFAAE2B1FD4FBA9DACAD8C9EE7FD4142EC3537D0BD0AB7CCC097C67991FD38A95977AF0580CB33863A5EA8DDF2C986D4B770C14258753C3F8521867389BDDA1207FD80486895AE9BBE925082387DF960254327CAFB9E2AC9E44B9979ED72752D7925364598D9325D2E2178C8D68123EE9A7D3DCB6F32DFADF29F67F9C66A031B8174D28E29399FCFDAC854ACC8311A8DCB5CA15019054C98474628E1A2B052BEAAA4BC4F68041B90DBF673D225CE2BCBA20343C12F574D282A95F3412E2D16F5EB486FD09E976BABF51FEAF7FAAFD95D1158008B5E95136A0D604B5F74B35C83B42B29F9516AA8865AFC6BBB2B210D175B4334E59F73C0F4484CA2E4853A89503AFA77C3D92DB8808654AA376652C7E44D47969DA9FB6CFD1CA7C7CB7DED9BB06C1C7CB14409CFDBBAACFC0A3FE1C3B81E0B276BE2D8E7EEC02AE92A072942652A0EAD44DDE6025251A805C18822B223486FAEBD7940F24F5CE7109CB68E14EF0F07B8D16AD143F1C3248662013CD9DDD40E3D1360338D25BC164F27D3002102A157BEF5E5D16620A6F4A5DD08FFF02211D4EC8249E45637D263C5026B909CF6B70DB2ADB36BBD1016B83641E749F993B55A9A76444F15751016BB63225204E0EB15E6AF7A3BA4B0C4AA6CA726B940B5B2329CE62CC19F029A9C5625D35DD8272BDF8714F0A94A95280136780A613BCDEC1B17E3B2E632BDEFA7DE449864A7A83EE5B2E8B8E162FE306FA91808749D592AB85AB990A0AA0714661F51206069A324D0703007B3172EE24272E5CDD052D7750638C79426C5AE28B0D5E852BEED3C173B9695A7F1E6ECD09D01A54B2A0ADD4734A9A6D8466950C7D9A0B24E6EF7682C1402C3883C655095F8DB4D65205EA7E00A1DF7A874F0E823D7DF38EFE82CB577DA3111201055EC0164FB4E54906EA1E4C351ACE7F731EDD8FCCC9E128BEBB8D8D8A85C48BDF483B33054FCB66BF04C58FD7D3A9345D7E2418382A27EE6E3C882EAB581E60A98F0E43F314A1359286740EFC8452B9D9055D2C8E3BF9900782228E0C4E53A42E44FCC27A14598988DDE4209DFDBA1964639E694367B0B1955CF95A81E35003E5298A7FB15C3DDB7C716DE6A0000FEFD33032766D44CB31CC006093D54EAEADC3A24E248BFCB3309674075DCEC15440FF37DEDB94D6D6950E25A588607618C98E39080DF3A7B0946C00D3FE895D0CAC83ECA84E9B00F7A10C61E2BBC4F16F55F1DFE52D3BD66E6E8F9283F1196818EFFCAAADC9D9B5000E2467E1F0FF2D2B6CF875363205EA8CA1BFC256C2F395C60763F8ACB215F157D16B1414A46DF824215A8E5B2B5508402F648A239879EA475303B3ECCB39EF34BEFF4AF7FB2AE92CAFAF0CE6D2702545AF69E3EB3F361D38041129328EAA497B0C9C98701795FBCE735C947B64E177750213B9CE0AEBE1F75BADB6517674A7835581D3EA008ED2ADEA9297EB9322792663F2AD917E06466A9CCB7262016B20302A7F85A66128506D34FDDA349253F389EEE16B5EA3A159D0A2194BCB0ADF785B044219C32144DBD599BDE06A95E0AF2E41055E9211A2A38516D4BAA0124DC664F66F354A0DD55C7293B325896875C30F92B1024B7477465E63C43411109BB5D9000DB15730A105ED4B8CC840466D7304E1554BC5291DE85A3998B55A5AD6E4871408B364ED75849521329189034604146413ED6B31E9EE707FE2DE40718FF72845CFD5C8B630770A73F2709294915BA2ABB92972746F68F19FBB8CA7918500143692BE0AF15149C088A9039BA6E13479A77D4EFA1490C814ABFC30DE732EE4E130971E2D238BEA63E6484DDB50B3C2381BB806CDD67DF7F31BF07DA6928A821D2CBAFAC942E3206FFCF399DC301771A2A5D807F34EEB58900647B6DE75158C698B92A32C6A92349CCAD5BE9DF1D7DBBA5ED04A4C45ABEB5356CAA01578742419EA213A4F3F0CF6998C39D06C46894236F857FD152A320D22B262F7BA0FC1D1E77479DF02CBEA3ACC3B9D51E702A658451223983BF17FCEE97D60AF3FB0224EEE2EF46AA574C6DECEDF3F001E15E382C56223BE86D72726D8AD70AC6A33E9CE13F870E50E516519D883172BC9ACDBE7ED778413080C596ABFA04EE89D27984544F0CAAD5CEAF55ABB23970C472F6021AC26304A768D6660DD87E3097FD7BEB2750F9A68132E74EB370396CB1C8C9DE3D8ABE5B2832889A348D93841C9C40175101940EDAE9D33759A88DFA6D907E5F8A790A6CAE57228C6DFEA553EBA6BC896430C619D8E86D88D45E6EBBDFAE219CB0EBED47C39F930A6EDD811D44E935B99244BF8D12A6CDC324A374B6B141A471A04EF4819A58BE24C46A86BD32785822B02CE589121B9DC06786ED4EF78497BC5BC63CBB4F3EF0290AED55CA4CF5E174A67F8393EB8C538904904017BB482536792086A148E8CDC37B11BBD88D3C0B27578D4DEC68C90C69B3782D99CBDED6815A8A15DE72F44DD9FA6BAD8C8466005121E13E2DA0C34D2920194DCF0071954E9708DC769F7D50AE27217360C6469A7F619A13C6639B79AFCA71DCB2487E2F37392EC34AFCFE9018E0EF600F75B98BF5CC7A0FD5FE21F070D7E3A8FAA3FAFE177FF15C8BB31499299CBA9A406A6632ECEADB06BC4A94A33B99B8AA8B80725F48EC5922F2582067C0E2819FFF1BD0D3D9411000AAF37B7F2919759F1ABC63630B72409AB36788EFB69F66B351491125C0A8559073E419DE12995C59FF74EC4C67F85A8F337F2D297BC6EFBC16BE72DC3122E45C121CE7776486CEB0105D56B8768A1C93907AB66ABA1D750769F77A5B1EE7E9E0B9A06A00F675B647D94A9FEEC2D67839AEBDEA8DEB4E469DCFE1559F9FC6582E0CF267614F0672562303A632D9364425280413CF15A64A6BC593E2095BEE26FC3F4F2079E05FEF4D8B1820447CB4215720A9213062E27704A1E139CF3B3DA07D50DB5CAC1CD95CA3D2E55FFD2C10FCA420131A173A517C80FAD24146090C0C540067A81F4ABD7BEFC98CBD99DDE8F42E267CF74E40A3FC3D27D55C9A92F5C197897ED8A15B27F5F0F03504B00B39B725E4EBEC4E737F1D9D538284A139DFC6402D8ED058028EDB02E7361FA9B5593DA2E55A84707D80CDE66BBE1D16EC2ABA987A3A8D2A48D3CCAC6D99A1E4BE24535378B9EFA02ACB984385EC8E21E0832CBD01D316C12747C1271B919FFDF4E2008BF164D53B11828F0C4B1AA57F0ED9EB0721B9B79B06C4F2D86A4431211C84E5C7B53B3EE1E9C8985C7097E139A35A1F85E0985E9A8C4846EEF966A4BA907EF87CB26AFF184410F29A0C4E411C5958D0C33F29839CB0255CB7E8FE55A7488467E8DCBCEF5D5E346DA4E192E0C0C4EB9F8CE084F093CBCE350A8F03C857C1F884C3BC2B2BC54DE02CD3B6B25AA04470C405B1C396C562CEDE658EE38AA3B5159DF8B003BF19EA3CA2F3F187167F20F3C0283D8CF0F3C8C436E6FDF0E70BF0A267608923DFCCB88ED8DFE04067DF0CC6D514878B452A20C23C84DAC52B78616271F70B9C707EF5AFD8383C198D03ED9BDB3C7EC1A9C8F38933114D97FF16C2733D66429E40184B8D9FE56550AEC328E6E127C649E23DF33E06886578814117E106029379B790F8172A9C3A0509D7634ADCDFEC3A9ED657A843E72DE27D84C7C60E952FB6BFD124925DBB4F789C5E8B09238EDF0CAEB545E21EB12CEEEEF3BD814CF0CD09E360A584A4F7BE11274CAC742DB059102CD43C5C7A2B0BA56A084EF87FE9E71054874B6BE175AB4ADD18A21120DFD7459E906D6BCB2920D8392783D2C2216A920949BF5A5EF67841BAC89E485707730BF787011E9ADDFCBE823A166A079136493CF4D5C24C55924EB737ECCC89132DF1E95853E2C3B5C46AEC8002F6CA153F9F4C6B8B3F3CF131E17B38808CA016E498A4BBEDC82D3DB471F77AA5807D944BD6FBC9A77B8F369216FFC1F04E15108F6F15873AC28438FB8E53F22C9C74AFFE7C4206022508CCFEB70BDBD25B8A6C179CD22E34212BBE619BFC3E5BDC6FBF46FB3D793B3E062537A9BC0896099FA99D62EC35C270499F62BB7FEFDA88157DD2E2B8D7F2CBAE895874300494481BA624CEC33F973279D1BC0CBA4280658B0E6B5E2A9A8E583BB407BCF7FAA45149A5AFBBFFF512DD21BA6C334ED1FB8BE4F853670B21C18B1A74FA7B110B77304598D33F14F70BE313590804322DE816FAC275C76A068E39544A2CDDB7AAE3A98CB7DB72E5277940664AD6807E7557E8336A8C08BB417E8801A4F26C77C998E8B28390A407CAE25426DE8776737C6876CA373AD2C93B71C7FEBFD54BB5FE563DEB3F59FD67083AA90FC875997DF9CF45DA6D3D2A070AE1592FE157B6FEE88BD054C87A274EC71088E60CB04BCBD5F8F436850D734FD08ACF4221F24E0F7ACF37DCE1BACB3D4723D8DB99540A126988BC6125FD0C64823E3DFAD8AFAB20793EEB64546AB3A6DE25F9F17262B497CE4DFCDBCB7500F54EE6FB43FF9E25096B435EFEBEAAF9265817D45E910E8248E4C5DA4E7EEDF5BA6178FF180A9E1957D3F351058531BBBCAA244F1AE4D857825756CA7CB011FDCA8EE65E1CCFF9B85ABC4B57FD4D63DC45F2569FEEF734FFEE8041224E7379CB1EF986153A59EDF2AAC8EDE767C718013BDF12FD26F1968C2CC91F1A398D32434B6B7294B33B2268009CBFF0D825ABFA16407BE3A1778E4FD42E780689DDC8151E836A647B014FE7ED89A14707727DC2BE0E54DC7CF82C61FBB70A9C962CFE5F32076DA345A667CFE0FAF8232B648C061A42945EAC94F7FAE70037A6613373222105827B272BC161A1EB2C4B4962E2988CCDBC98F12378E0A5D9582AFD92644EDF33CB54B8CC663FE2C55C82C45110BCD029A2CCD911D4ABC409F726154B331D64B41E9674FD4ABEFC1FD10DEEF5909AF763A76244946C0D017AB2DAECE6B9059032B5FE5C42C9CAE5375AB7CDA78F66BF0E253F4C6683624FE19804E7FE314EB2ECA613902C36FD11F1EE255B2A8E17DF5FD98DE5B6ED62016A3E71810F29C102953C0B901580D330EF8860E3E6DC39D25217C9360E4BD42A4AFE12DFA864F3F88F73B9D108185A6D92F116C3C023982DD8C7E906F35F4A270CFED786A6E63495EA17AF190568BCA3AD004E9D3E5E4D4AA006F1D79A85DF64F995E8DBB869CE283BE9763069EF64EDC64C1B079C2E6FFDB54065D90B166A76F6ECBC5E57FDDE0440CD31E5C7EAAB94E6BF03AB18E07792AEA0C6AAE81C0A3657452DBC536401228423197BC191861DF1BE6F4B2498F5B0018C158B884598540EA583659E82D9BCBBA56558EF335F07EF6212357F6EFF494833B9AE864734734503EF893D894081D009A3C46E91C35A27437CE74E36B1B6568F29E3FCDCE3EC332E8283857CD791B88390FE43C03A59480A2C5491FDEABF14AB5058525BDD60A806C3A6D41294BF6F381EFC91376BF312D2C3A2E5D11302DD9AC48681AB9FF43E5D7528F308EAD6867E7B3A85C6EE0FEB9F6EDF8A496DC750F252F1D55A8B1D724FF90FFB1FFDC812AF6D473F2C69417AE81D6933E3645B5EEF8CF32FC3103F58375E483D0C988BC3D4816ED06EC3E18B5E63C4B84AA03A3A1203B2198702CE3E77ECF7085FFC099190804D61CAB9CBD0D88B9E39070E18986323FF9CB6B76842412CED11DBC16ABBCCAAA278F0B1148139FA2DB5D6FAB0F8F7EC25F561379836E94F15BD504881936CE08783B72384075E839E75726ED6E990F3A6A65864F2263D354AEC6852DCD25C9CA803C84147A22AA88CF4477C4DAC68D222C264D4C7461556A15E85F1E6881184413970F4448E99B4D926350688D317C3A8FE4B3147899B572EF3079B01CF99B4DD63F9371D488D517E8D3E05B7D860E1308954C36E0B77F0E3283296338527AD37033C9E95A591A73AB9959E59E7500463B4C433016E49F83DA162C26353F9B962A30D58E56498C3E71EB241F4DD68CCF574B9489727AE5BE4C697600133EFB1EC25D274F4D0B00B67789FF8C9F1A31C6614ECC0329B13A68962117EFD1FE199EF87A5CB2A6542F66DB8F0EF24C3672392265B767FE4966326977B38A032FD5740773ED767C8F1C4DEFF7C7B121B6805943BF39A81D5CDBD958C07586E79C3B978C0767CBFD7EA9AA4E295F029B1C8DAB03DCA444F0269A81E4DAC33CF385F94310236C86B9FFFA4F84BD53AFE4C0CF89439CE6A2BF23BB3956D6720C91EDE5B71464D42EF558A3897FA01F4C73523B30AE49B763DCADBCDFE5E8F794B293012D8431C07849276D1B9D6AE3129EF6F18337674A6AAADD175707B45D72B5C8BE65D878053714905ADF31A63BC5A97F8442F9E4BFF9519A719BF382DF433E6E17C060679BA1747D6654DC34DA7B6327DACA6EB86636B9346F33774D3497B3991DF01AE2CECB00BA8FD4A3235D5E1D1B78CFEDE3F68B63C63064A4DBB3A5BFC765ED08F9E74DCDBA71021B078F0D8535B3FE1E68226200F67AC3E146BE17C3EACF43E7A426C1DE6978C9FC1B16896804CF29B550DFECF1C1CAB46D649D6B0759EB7AD97E57587A794DA9F45DD276CA2C294404D653D52EAFA9C324A3D90BC909714CD47865B640094BBDD31D24BB8D0F5C7860EEEE39ECC54EA1F746889CB262E5E099ED8DA8E0E2DF949F2151DDAF797372412BA7CD5DDFD5BA0E6121E44E9833F8CBBF4FC98798FC756E5A319C83125789B574CED4E6A06B83256BE0FC000FB0E83CA44DB3673B87BF8F28D2682AB879C195BA2CB9164396C539551B9F5E6422FF4F60F429CB0FB39278E70E9F8EDBB95D001CA169110FC4A75E691127D5866457C54E2A57CD7D90C322F3131E4CC4506BF172306D5BB1FCA33A01A0145A69A8D2354523C0399A64B310A3BFD61553FCA63A11A123FA7A01FCDB1B0F79D71225EBCFF5EE41FC9509FD669117115CF73366017E75E1D7DB571C57A99C00FEBF461BC02497E68F62880AA668D6E0F265128580EFB4E46AD0BD17028D9631D42CBD01DD8C9688E143A48E955AF5631A10FD5A6D7908A189CB6285AE65436B22296D6CA0368806A8B19116530C33C7B374D1441DE90509367C7F5808FDD6DEE36CE2D5127F0C0B6615F6B5DF5F5364B4693875FC4DCC94EF0922CFE267A673738E9A4AF0C8E07788EC2F484234586415B4A57E62DC8F7B10DFCD896BA3B23D181DCBA04B16E432CC03AFA5CCA73274255B99A887C485DAC8E72F87E688C1CA312E26433E4E73BD6EB0DD4FBCCEA336E095ED3B88ADB25AB9CB358A92046793BC2DD4A566AAD55BAA9988C405116F26170F42A80157990D10D7AF454D59AB88FE0D2A1D339E8D52823D23151ACCCCA4C1F1FD5C8F9146C3ED99027559463BF6E8B227DFC67FE9850D0E436CDE58D9E5B1A6006002EE27BB14EB0885D5705F893FD0737BC199E7AD9AAD1FAFE7A785D494DEC92499D1D6C8C9202FFE9E1C62F3EA63654E9EEF9C6A4128A01B07BDFDF2D3B78D33AF7A5687FD3F476825FAE813BF0AC26DD9907862235E5FE804D260065182BE824C782DE0213CAE1790B139FD8D2567503E69AE93F1357AA53C5410F2BFA265661FDE07C048D9F37CCCCD8C89CD55E6E5E2B43218F287CA6195D077889668FC0F49C0393ACD274548192E754EC22AA43197B6AD79F0974C2E64C65AC1E850E3BEFC9AF9BBA83556FD216B96FAA7EFAE7E5609D1508B646E6A7B675875133B746EC1F7064CE1F52ADFDDD15008F4EE0199BDA9FA725129FFC23919A0ED9054EACFB7C186A136E792DE159542A7207A5927AA7EEA694A09C2FCB13E3CD2ABE8DBE448212E27801DDE61673DCB2967AC9F4B3543094C9E1603F5B99707E4064C7A6272061E774D0DBDF07004357E59E7427798BAD90EF0F9C2D5602EE20B78DDD6B98083C81E9F5A720C72EC7FCC93AA6199716D376FA6E6D8BD081FAF51D7635499A1BF3DA08718CB656B7F71BBEC11D9D8AEBB0F75D25F046D4D4295BBD0146CFD234B1D4095C23C149288519AD33DE5EEFDD5343BE391769177A984A317166E993DEB6F1E958144061B5A4C580A45119666DA640056B871DF3DC7B44C4393808DDF7BCAFA29E75FFA8D894DDC0F75D21576D39679BC7E969ABF33721A4C56942D1B40E52F5D219817292896272BA297A0DC7138CBFE9C6277FBE69CDA07F120C074A16DF295AEA94C017F35C577D2B98BA628FB2A8B45F3D1C66E61CB34E97C191301B4099C9683C235167E63A47D504114B131A95B74FAC62250588B43B75D00EFD17130D2F022D82FF1DF4EC4A735412150335F41F8C68BBD5CD67F9B070A3D43BCEC057559A5AB61D575F07C81E3DA1EC88806E2021C746F559398C0F6AA969D0DA92E5E0DC172850082ACC774B5E728523E25F96A5CE17635A71F20DE6A64C92DA6F7006D87091B72F60A5C25081A9E5773830457F314DEACB66BB54302783E256575CE05C85C9924A192EBC051490AEAE67B5E109B160C209F4F044FFC1D143B4F456DDF166004C78819243E5C932CB34E6BE576F08B083C2190E5BDF515329CD1D727EFBF0D2138A55D78C10291B9AEAF0B2783265ABF874400F6E104B067FE8B86D2A7BD30D1FF5F576260F48C15CAA9AFA6EDB71F196D7BB4EF6CC6F0ED75A5491CFD74BDE5FF56BCD8A02910F76BA04F640FC70B8584CC7A65EE16EFC3E366338EE8E4D09BAF6B48688E3AEAA2EC16CE4917A491F58774614EB974F9CFFFB9DECE8AC5A963DCDD85F15E1CA4BEDB1FE1B1410867F6AABD3971F5EFD0E7CF5BD0FA3089444095D0EB2656D7E0D23A93EAD112FCC0B4BB03F9018EFD1989818A8C0806812CCEBA511A8CFCE1F665195D901042A3D1A03B9C7A9C3DBC4A1F5524FE63E41AC8A92190836BB76F1C5B7A6EC8FDD7DD3BDE9F99645703089ADF2F4E73CA21EF81A3EAA1E333BF43A2B9F986756EBA09816B98FCF5EEFE7491705A498DF16D9A9DAEE78C3AE7126C7612F509968278FF8360DA23B67E8AF63213768268FAC5FB3EF8B5F72A7035FE0070DDD002737D1EF312A4ADE37056FDAF7A3C61C5D7B11CFED48462315A3B1F23D6E0BF58EF44DBEF231472AC49E45451B2DA13FD15671690724ACF85CD783F4165B36036EDAA75BFBD0269C4E66DDE6479C6799213C39ED5A8C811EA5948C9CE8DDC4587D7D7164885C092BD5DDC7FED3E7A0541D2A6C039B331F094FC2F17ED56B44C9628327730CC5762762F0E539297BBAC1E8D6739C6B89827B10FE2ABA2767FED5E7C885453A5F22B893F7681038A08BDFD716B89269FD3A4060670AF382CB40EACCB21708F3FE97880A7797D5B8D3C89F3B9DD7CD72463EB2CB4E275E937BCE8BC5200C1FC09F4797A1DF5F06395D604CD3083C97D94D4A0EEFF73792404FBD78FBEE9D2907739ED81E87D9EA944B0676BC445B9A60B4C8DA3244F10AAD5161F480E99A1F8FDC8B5D4EA3C3B7572C38EE0CACAECAE99B6F36E90D1428D89CC477BA143360CBDC5FF5564FC12A8F8B771AF5716EB0D4C3FE84511AA28C00A4112A49E0CFF057031845D2A565EB490C9DA11AA4246DBAA4034A1987C50703CD8F65250BFECAD48141DFE4F272159101B99AD554DD001D6D5597D188A9D304E47B1CF85549228F06B5653982836F99086D4D06424BC0796AA3CD050419E123F5640D0F8AEF7715E92469C680CEDDEAA1025324475A0CFA7C1A8014D22DAD20C166A8E0547B9CF461E7575E81347DEFCD5D39CD1F0E000FAD0D89C64AA81BD267D8F654E9CB2B642C574556D3E8886CEE9C2CA7DBE446C13AB5CBF0D52136DAC1BE3D93E808E0CC44729A4450D24561AFA7F3FAAA0B072F75FC6852C774F53F71E49275B1DAE57C636E14491818788B947E356F3DF616BE1F1F22E4CEF5A510700D50DB604CAA6BFA6768A4DDF4DAB0378CFA446062C340F25E15003D5247E3A747BCEDF1EBA0CAFCE8B3F9250CA5A39C2ECB703095824E1DFA2B125962EA403B0722A0A075983AC3BC6BA4F4D661F61D061AD0D83FBD0C9FFCEF7AED39F0031FE16DA3252B021115FCB29305D26EE7B2E1205187897AAFF5E72D18BB00EFE11BE6BD3155801ED7ED9E71C852964DF6FD5F17FA6CC8F622F92F83CE4790B5D4EC35736683C2502D66F40D812934609CE0BCF06C974F8FDC2FAC33AF450FBDF224279F624A19571C9C622B65F8BFF97CB91DD47AA2A2DFF7E71385C07C19F93E101624947E85367A2EC843B99EC877AD58C623DEC5F2101345F2D16A51752C5212E092B54A68E5BABF00D2EDF24C5709C9EA7498E49640E444183DE2010474F37A8B804435C491B8941AA59ABD8300045F68683D5C24C6DEA3EE247252F30ED9A22699DCFC89D99754091C492EB0F0744F2385C8E5BF9D7075ED11EDDFA5C309AE13E4DAC4267E9CB103472851B285A9F69DAD3EEE2AC6A2003B1FBE133E9B798FEB3302AABE3543ED586AF507326E1FFB7F8CBD68E05F8E834DEB023AD06EE58BB47B4A423F1D22F28BD10E7E79683D004E3C9600B16A731C67EE6E6638B72D2CB8FE36FD19950A30E8744BFDFDDA38F09D52D53B2310ADC74276A02B35CCAE36D48FC496D8E3623D22E20420FA9B0B1764ED4DB9F5A6D7EC9827535D6230BFEE03067760A70ED597119D6669043BC77641EEF41B0BA57E5C4A62AB813B7C12DE254FFFD8BC99078782B22C288F2646421B4A42C2CBA50F4F44BEE5A2BBA9FB1CAD22CC41D2096A3B238669439887B6151ACAA4EC96E50930E376D10455C378C4B93B428AA53BAB9E0A0A161B81B54BC499BBB6291E6A383CB7D3A100A24BAC9010CF3EA07E9DD979C212B4D11544AF82445E280979D1EB244D17A8CD399F3CBFA5BD0BBE9DA1460FF90D6FB2A481B8CE2B12C6392CF06B40C7C4FE6A84DB183D4A3021E872249D72E1DAF146C070A53E53A69C0CE416BFED5B26C304CDBEF20D08C9E0C5D65F4637715CE39929D5BAF550BA56291B30225C2039F96ED43D2428B814D2BD7F5EB0F0FD43391BDA6B184D39348BC2ED3035179BCFBBDF6D65E38622843D2952EE22992B566FB7DD8B6BBEC6F1BB70ED664D8813E37C96EE87E791B72A57DA2B972CCFF84BE560CE2563EB987FA8AD24ACEF3A5F3208229D0855E3B3AF14B83BDD0897F751D8A57B3B9D08F02C5B7C2ED81A3B1247DF797C70502497DD4AEF61BB9C6CD947BF85880EBD6F5740599C39C94E5B2296A079C34EF394855BF781CE4DAEA43F31A324BDA81162D58231B5B2F185BC7A748692F42A85F8E02326E97F61A1FE655B7F7A4D1488E0008DD99E65F7A4DB33466C919810ADB68B3409485551EE7808FE4D53F9B7C69F18446AA098ED144E483947DD0D27D1EE5E68826EF311AD8323173445376FE540BEB83301CB5C7C8DF81199C15096CCACDDBEFC6F80B901B5E8A674855C97832198BE0A7CFA460E58031EAF12E2339D5D28F97AA703E7EFBD1AC993B91653BCBFA539007CA77900EBDFD1501DD0894847E1FAAB1B637FB6856DF06287E83EDCDE9A8B93CB2BFD785B96E688191F5C6877340D46EB979474A6AB226A4C8A3DB72C078C7B89E0B7F7E8989D65B311EA4583327CE2DDD795A9DBB840087035BF48AC23FAC1F9B58D2034ED590EE87388CFFB6FA2B09470AF07E614337C1D8D4A2BAC829A2B692062FCED7C25A9CD91C852D84FB620962D01BA2FD221DEA28951A2B664A9A630CB32D0E50A6DA36B8D0FB1E2AD9BF5C97C0AAB2A914E2725219B4656218C79035A83EB14084C5F5BB324291E9F608BC58275FA4D54828B0A79E4D4ECEAAEACBD61D52FDBB7E0634CD798094519B01316480B52CC5E1175487F5770FA23018A1177C4A965F5C9F0C554B492FEA91F07AC9955BDAB3594FA73943799B28A84CA5EE95C57B540B8F02400787B6906C7BF8DDE1C55349E48A61410F3A2E2A251F513542990D8766D2F4BEDF97ED7F4A53909C2D940A5941EFEC66635EBA65ECE3DA57342A2A45E02A339BC12E474A05DFE9E089802D3AAE5A4803469E72CB4132A76F12E9A2C46E9047B49717EDBB3CBC95B36B3A25B413DC12B04492CD1F76544D3344FBD0BC8A5D4931480EEB2FA95597E358D4C5AC7711F694401855B400A3E3288CDEB77352ABC31FC0B5B0B67958560CFCB7209F2E97D21EAD93E0B0CC2E1D425A4E360111FB7B54B0A559607C7F5171E902CE6E40DE41D5ADAD623E805E6279B2B666D0E7B264F808839E15EC77DDD3BA687E4077B0DBF4ECA0882819FEE88F10A0E0188078B631F7A68F44D5F5D5F9CF73ECD021C5D6CE007C79C3ADECA5BA84A5C0C9C582A5CA4BE7A218167F72F0BCD8337B4B590BC8E093CEC81CC03783AAAE4665E75599EEF383818D70FB07873B9F143EC18C392FEBC1FAB77C2BB9DFACA4229A68689A25AF2C54BE3C5284ABD734347EA0F2D539515A00F7E64AD4481451018FEB2CF69663955124A6A38D1B688507E68C7153D64808304CBDA32255AF8B2E52183AD616E150A509CFDEA8716049EED955282C455F853A6EDA7DE668A692A0CE47FD706BF35E509001F9C4437B920A2702369B40831A1F62B54FBAE31DFD4EF32344C35DD61ABE64A1329E856ABDD61893B0E09DB58811A3FE973E06079CECB711A385430CEB1EBA703EF2DE8496C20A3112D6387A13A9EF734C57D581639E75CA35C0A12A8E1E24D91567CF94AEEEDC7A3415059B7B28582D48B8B35ACE4A9E0EAD1335382650D7CCC0018E490811054EAFDCB376ABDE555DAC82946A4113AB04863FB9EA15737E743FCB5D1B964CA63BBB75BDBEACB81230ED8B512A290520189E988B8D9340C01CECA8D94EEC49ACEE3A541B8C95FAF71839EDBBB49560FE0C5B31C1AEAF1B5DC873673F4C4943EE6729906000DB86DAF3F1B1160F2B059ABC7288030C8C3EB6ACD9C791E643E5E5B87327A508A0585FD75C22C0FD8CE53C3AA80E52E55F87C60FC35BF2589A3D09F8913915FD76D3D6A0EBA31933C70F41E99C46D18DE26356AB23708BBAD5E3C2BCB127740E0DA739BA403CEA24C33EDAA64069A9F3D3F40BB2A8F89989FD5FE51E87199D08C1C88A01ED70ED62A7D70A7A0DDE12869E6B95DED85FF7D2B0F3349755C88EFA4FF8647BA1FCBE7BF15BC81DDD807C9D080F76BDE7743857D2F059CFB15916BF4CF10827AE2D76255FB7DF026D594A763329011454358260E35B5DD5D75C2946282F433196AF5083D5415D3B276E76C2E01DA283AD23F9C8E2004F4A5C15945A0BC728BC245EAFE8ED65453D3C5448DF71ACA7A6B659CD8AC47B058165B5997DC86729F8F48EE8D6E994CA7DB14DFB67B8EFFE47005D5509F90A2A2975B8F9D9D78B5DE87E7351E1F8AD6C9347312311F859E86A7DBDFABDFBF47FA22D699DD32CFFAB2B117EF4CD607DC0EB0C1BDCBAA15C657452CAF3AC79524BDEF975840CEC0AB7CDF688CEA733312E68FECA9BF83531925F9884DB43E63C0119D5D767DEF4EBFCBA37D839F28E35341A78BD607FDC419A3182022655E1F5005474E3B03BC97FBF0A8A84F6EB14FF2F3A78B4BBF73AF8520F67A8CF04BCC9BD5CD27BA697823CC3F5D6D7B3A8A9DF7B737FCF4F356E57D6ED2AC7D981AF0B0B40C64BAA5FD2F2E751E7593F0A1E68EF54301C893EF6FC81B6E4959EECF2C092223B238459073829E6BBABECA5D859B0CB5F74D2871789B2F493AE878144E08B3639705682AE57835F2E8FB0BD2536F2C34DF00EE3EBF5C5FE4B822F35F9D5C96CC9A9971F242EFCAC1DF447DCD846CE442BCDDA44780EBBC0CBF8D4774F98E87C6D7B59B65149679A0509BA8C7D86037460A2C1EDDB2BDB3D7933238BF021861F749821B53118A7298B97C34E9B327EBFC2A81987758ED56AD9CDF7655C975050ADD50332F6988F450FD1AC99000FEEC2646012BBA1FB4640D1B41966D80D7ABA54417883196E9C57F55684BE88D3C68897F479E3413A9645FF69F1332F2456A9BC9C24E79313B1873360D515FD42C2BE38C19C9EF499DD2CAC5C0A911FFBDF990121B7F89B7E3270E4AA22BA1DF0CD168C1B3ED3727A4679DEE871CA84B3A9F1B7D4BCCED7D805F47A437DB89D659397BFA8255C7C59BC5373C73B760EC33534E0E8BFC82B730E2C9E57A2EB349016B6128FAC7D4EE0FDF6282A4EE7A3C76A5D3FE5677472E6FFC2AE495F4F44F90E8E6088D91B4E9AD357B2F4CCC3BB6F333958792653CDA51161B63B3B0D90146BD7D9CACA6F03DF6A3B5D3D205C28C452BDE03DF6552D247BA918A5477CDEFF182B3AF7D972513A6A4795B4191D9747FB0EA46F00F5EC13536612413DA40ABCA49557503DF6D0343DB1A5440FF6BFF618280C17C779865B3BECD9856692BE21A40F8CB7A158FF384ED835A1F6A4C4F481D80E970B82F44B83A9B82C1CB17F1391F3721885DEC7CC1B8AF567A728357B61914B811A38A213EFD30475EF0AA63181020520A7F79956CF9EDFE9174F8AA18FC529FDC87A368A6A600992D51B2C4313B9CCC11CD1C08800AC73B1547ACE91245B9585FAE55F8FD001B3495E1CFF9DE37A6ED792464CF578C941D1031840FF0E67A68F10313C86B0A333352A02975C8EA2A1AA0745E75580E5156A29BF82C7A213C3ECB51CC98F097C31E31D8178E078EE313583405A26F3D91F4647EEDF23527F50E34C57A2E76680CB84F9E4B6AFD48530B99E527476D2F5417C30F704BAB9ED9888B9BCC3E0000C3DBB17409E0A39D214D64F5323E4EECFC56F4FF3879053E1D27A385DAD761047AA8EEE6474182ED2F6E81D2725DED825DC5EF662F51AEACCDB67E3A05E2E0C07352558E7A72E5E91E5F411651B53B7F4B9BE776ABE233C4345615C98A77D6D261CB685838CA3F75658DC042350478108CAB7BE0C0B8DF60B08FA118C4DC2795BE92574C0B44387ACAE588C26041A15220AEA5EEBADB1D05439BCF645D9B09B2A7ED61F57F126733037C2A2BA58CB2AFB2E5179CC96AF49094A4228F01ACF43D25DE11594CD85CE7F11DE9DC9E2453EE4B6211B711A0DEFA75C8E497CC6A09C5AA42ACEF5519E3230EF5C374591AF65FDFED55332C38B66B62698F66CCE12ED1BBB9AF1F95E9997737691DCCAB21CC62CE6FE457C972DC623E76F9560898675D875B00962BD63BDB30DB3EC897D10CA9E7115313296106536E974E9450F97045025B772BF872D3FDCEA4EF392F72BB9AEFC45E3B5917D9751AD78AF488BCDF820F2344BB58E6CEA6388F58B90D2D9AF225E43FADEDC75D09CFA942D1A6CE2562491329AFA94C92FA18CDBBBCFF86F5A78ADBFC8A675313BDC3E83EADD7196A0B2B56808B71C7B8ACA193BBFED15CDB2547CA0FE2638FAB868566D8FF2A80D29D307225250F2F43CFD26D2B78705C3BAD5CC3FAA4606688B621C4D6CBC69F6D907E23245D48A7442664A25CEC3A76AB0FD85FA44D08CCC27978A295E6A9D86551F5AC36131B84369AC4D61FD299EFB307FB3559B45D0709037F3B811A09974DB53ECB64A98CA8E0C126AC110469427BF96B58EBFF4E5A98113031A6BCBE698C288D108D418BFCF2C14E26E945ADECD91AEDBAEA9ADD8368CBAAF5A73BDA5DA31D2F89567478433D4AFEFF580D0A93076F14256B44893BE3F26574D11F61D89E51DFD21407B946F2F19FD8B1F4F59531EBD462A88954C3A5A695E0F5355933990C3A70B59152B7452793C389BF9EB9C8375C0669719E3FA131BC1D3D643D4F2DDA4FA13B7B6D0FEB3F5C9C7117FDA9981B491889014700D349636133A2CE53B71B12FBF556F36DF0F5CD592561B080EDBD58EA8589C891FF466BF286090D0801FC5A2140058C8841CE26099492B9C5371575CB2823C8521F9CB73771512694704A9829C754ADEAF3D80A29CE59451F7DB04595D84DEBB2444A76F97ABD0AF56C5B2D5C9CF46DE71F56068CC56202439B0A5D01AF227AC3C55136DEEB27E2C9F050A064BE83EE9E33B031F768F03B6DD81382B69E175BA7FF34E86D434798B730CFAECD698D936AE5DF35EB45DF31A7F084EA63092C14ADF415414ADF5803B31D69FEF07062FD6218749C6872996D5BBAB3882C3D8299016CD36102D584E3266D2529CF6F8DBBBD2C60E81099D9ECD8E475C34245CD8F14E12F4C7C1A00D552099EB882C511FF788C23F571112BDA7F137D6739DE7EC298F99F4212126CA783955E5F07F8E619B37D248972872A2C6FC781CED1E99CAB29C412CCBFCCF3504A87E481F968C2C14BC6E6BCD83470863535A5ABBCBB5CC37A702B96B9578CA92CA3DC725D100792FDA45AFE4110F034FFE22E8DEAA3D61C37CD0ADE939C9A0E068D588928DC53B2A0689AF3D227EEB1C8E823D447B43E6B856ACAB95C7C06B2D3ED66C4C28388C4BB24C7E06B8ED8D31DDEE26429F82DC05EC2B6CDD9F6934E420B7E881AEE6A83A107CBA42E7133F31A691D0796D6772AC58D4FADE554400D95243F20F312C641E2C3C4CCB3C5629B2170FC9DF7363AB00F087C402F9D781210DFBA6ADA59E36BD2F354BA8684A9D7F35DCB93BA5E2F48D43B677E9DD1EA00BF9042F29B2D7836A9B4E900DED0FC6F3972F23666D4AFBBFAA3CD73BD71C1D2B3E0745583E20BA6355266557A0C534408B36661793940F63E6575C9D84B0C06FEB87A1394B519F82061580C8E1BDBFC15320B9E8F7D00E92143DAE662460346BE7CD7BEEAFD0A5508895E30DB7ECED77ABDDB0B5CE651C92BC81FEE768934BCCD391B36C37E3F2F0E472AD9B402DAA7D3E67F1290BC142CF7A8D12C9677D524B0E1D2F2697399CB85B1AD3A65577BC7465B5E04F2F6177D646CA0729532718BCD223AF0511561650468C99F6654018AB9A0C3F501D230EC521A0BBDD7C4C50413337C91476D72244DD300BBCE6051A2C5763A380C28CC914C0ACF436E7264EB3EEC4514959136354D5B483D735F8F1C86795627AEC6115EB9979DCAF3B8CFF5F1A8E4F7651382FDD018A3F7D945C672C6921B56516526447D435EB549B06F24A932141645E51706513ABC4F515B69CA8207045B0836E7957769A0BD30EA144721C45F7477DA7B242C63D478A118BDB83E44778A0D8A88CDD6B62191AD0BC7524531F563E3B1A81B2EB34A3D5C9AE08A917C3E400EC168A8BE9348D82AA99EA8C11A542B27BDC9C0BEB8C13A0E731D36198EC852FCED4C0C4DC614EBC7D483EC1F6856AA0AB35F0B7C64E71D5C06645C6873D51613D813A6D9C2582C183B62052CD717B364369758918701D1F01FEE188806BF295389FAC4E21353935DD795BF075098C2A4CABE3E2A097F8E849F399DE32C23FBD7184AE76A1809DE14DC5BBDEEA785A68054432CD36C7ECF7B8EBDD52E6FEBBA30D3A5C82C8C63A5199D35CB5119A86F9DD64D873078D1BBDCE250AEDE6A690458AF7EB2C86261807492D6495C2E9AA4DEB7E4767516B09F9BF6D8F38DFAD441FEA82672B239F77E317016EE3A552E15F958D357004C66E2A6CDFA39A5DBEE38963400DB782B8D34555AC12AAA8B14CB50EE1411CC9EA73011EDEE4CDFF02045E5DC1B82642511129886C5A5418816443610FF64618D0789E08848BAD750E071489FC0EA8364B59CCBEA711BFA6C759D1CAD28E134FCA8AA3616D9F00BBCA4109634BE7BAC6CF71CCFEBE5CDF91592B2EEDDA3085AAFCDC7155D7F6DAB80123F64C760ED5ADCB5855CB63E9D057B230799968117147196E8B793A6C4C50A61D1D6F7323298E4384900C358564CB0BF0C374558D19A09109F451702EA9660B8D9C1EFDB99808E801E4FB264A8944BADB9D136A01299D81FD174E8380C9E2B4860D7ABF607970E94E06B28B405333C1B8FC7FAD87969D9BE73044AB9499B22F3FF36E91F06F7A899C3338AC1A3FB4711E6B236957D5F0F1D1AD03DC308399B7647E39ED923814392FA02AA0605B0F8A006D23D213AD2FDA0AF473BB1AB3DB27D3E30C8A537DE6B1E29624EF2DFE282F9D68155B668619B7532204B0CEC6EE85BDB41DFDB3A8AF0A9C13152A1A8071E420DB0617759AC69838CC959735E4CA6C1701EF0C191070F4034E758FC9B430CF23AE23C70C930CB4FA2DC411BAF2BA2467601F282E008341ADC15D726872A8F26F9CF2D77CB4B431EC4D406BE99853FD3AFFF3ED56308DB5C40056C2D71745748AAE680406122AA13C39CCA684933C2B81BF91F1299A809E2761CC5EFC856EE6231E6C2C0C2632F1DC7DE34512F77B69E3B55F725ECC502CFC96E0C8EE8322EA08B58582711C946C2CF96BA4CF0BC0598BD2FD7656C36577DA9AD146B91755EE1FCFF0556C24DC609648B45E928ECC9D1BCE1369D61C90AFF246E761D8D6423D9A05D8E1950980092EF6639BA355D13E664D2477F58B291C4DB1B3FF83EB06EFD392E39C2AF148B77E2C392CD598AEE4CF52F664CBFB076EAD8E60256F61D1809E58C0D67E338A30513039F5FB1E16A0131577F26FF493D1741BEFC177D28992236900BBEAA02FEE178D71C62B599C370DF5BE458A31112C1BB0B0ADCA4EB6BF0DCFFD89FA9098FB5AF77975E732B7076E6B2ADCC6E0E607CE3FDA328660CFC8EF259B8372CE4644C3A9C970F413F594ECEF14E235207FAD07C2C02AC32754193C89C7B6DCA90EEFA3EA3BC3E06DC3C908009FB53D7C4AFFD58F13F9ABB585FD536B23BBAC1D3A497E21224078FA79D2F6EC2E9145FD7728BEB7A20D6936B4A750F907A601E2D849A2956CE553EED3AD12C2CDB2EB79D88DE0E78C4D161BE005FAF891CC7BCB41710B87F63678D00C16B2CCDB31EC20ACCD92E62F75B3BE91CF146680AA16E72CAF89CE3E8A201FCE60EC91E5C61F0AFD73F416CE7F01EACE2E8397BE6CF4F156E36BFFA0C88CD6B992884B176BDEBA4EE077D827DFC9DD67445410BF6F664BAA53E98F78C6CAAFA1CF6AF0FC3593D23BAED63341F3281FF07458899A269CF90A9BC66E452A75E32BC9D5B36ECC63B290F0A74A1491EDF3F030494F6382E91FCD904659BC90A91D57E410BE7F03494198717D1EA7C08067CB10D01A267BCA139601AF329B21CB3638695B399D7C784FEFEDC1CD08EEC982E8770E05B0773271561F6D2AAFBA6B2166FEEDE5007375D3B4199325BE8E1F177026368B18D0F63C9C6C3FBFE9848254B33DEFE4C55B7E89BE66C9DFBF61330495D76A15EF1EA08283141821830AE455DEC032B8FD7E34CE00184D25BF624157B41C99F5A05254EC8DDCE0FF10B72997782B0853CC8FA5874B1921EACB4D0C96A1B556B670FD94E31585F007A66DF9CB2CB068B4BD4ABE8A0E14D772FE0A01FD4F609B0195AF2654380ADAA3EA9CDF71AECFE992097E1FE7418108F4740925706EF111B0BE3CEEEECBD70615DE9A33F7EBF98C208A6D87EAD7D2F0E78224872857AEB47B23A0FF4713B593440A149F47169FBD62B64A9A62D8871933864AB94445CB58436F47A5CA6E078F24E569D5D1E3E6FAD421EEB56B54287D6759D2277FF95E22EA90EF598AA718D16FE0706C5BBD2EF9B6A151740D397B5660CFC3B133D89AFCD84AA6F5AE9C679D1B9CEF6AF4FAFCDA856577DC6343D33DDA6F759C1A1C91F242900B336288AEF66539E4D1258DF0FB13C300DD540826AC436BC95391DF1EB4C11E4E683BB433A6979DB97EC1E83759ECE40CDFC2CA81A85B0DF8E8B2E2E0F67010BB11D8A2F52C7B498B5E1191051740C2A851B40E3FA73565D713AB1DD0F71FC760CF7AC44EB2148562A5E53F6452DE4863CC501888B45D5A434D0D0D43D6A9B1F86F0C08D45AFC30446ADA1D75BE04430DD6327ADAB62A62978C077836F0A4B2FC57A390B5A771D942B53541E62B0106152444038663CEFAF702FC552242F7D701F372BEDE39A57A60144F151F2D3F66AF02CFE724CEB681DB12443D9ED0D1AC83FBEFAFC02C9DCEC77703CA649656ED45904ECE4FF8BFDE1721FC0A7D9390510F4D40A9FBBB930A7DF711E5E9E2DD825A9A81AEEFFE79F14CBB4BDE7FFD13DF22B2828E6346B3B588E4DBCC5DD89733A49CE77953DB4493E69DA15EDCE37B1B028F5F86B1013A6ACAA0E2B6CC902F458B6D28C33BC1E388045491DF930E305A6CFC852725E1CEF67A8302FB4160D62B390145326E770C58C3DA6345BFB77BB5DA7937C2556CB5CA3176D6D7804EBCB1740D79C50B15327F3D17287B79932FC93C4BFC9C818ADE83D812DDB77D6EF5D862BB31FC53A0344F54CE1D770714BF7292312B019B963A43D35B254662BE55C440F4B54DDD598743AC419B88F2EB25ECCBD2818E9B1A833924A83599FF6D9EE96EC670EE4E773D0BA3F0DE946E44CE23E7B3AECB9E71B567A5532EEF92A077C50B48D871B8E84B7BA3F32E7A82861B51C30DCDF7CF3E10533983BB8E8E2B9C2B0B10F0DE980C6FA5DD780AD3B66D918EA072E1323BB5784DBFCE8686D21A5CDC704D13CEF5EAB7756541DB8E429D0B10F93CE8B58F79270E415A83B65AD84CB6C9ECE8E81C2FBE1798BB7FDF69CFEBBCB2D0582670EB4C161F433C811F0DF855D158BB9E02D1CE962FD9C5D3A7A4E245971DCBE56462E6A9630856C72DA30E1B276E0ACD37C2C009AFA4AFBF167E3A93BA1278DCE58AE12A268AB185BC514CB29F2FCDE16E4F9E7FDC1C117F950A5D1E531BE7BC744197E5A1AEFE168F1F0EB5E097EADFE61DAA45E07AC3E98DFF6E8103A4EAE2849FC73F85C130CAE97C22D226576BA5A4F96BA5B7064C7EFEDFD92452677501B049805C875F23C24C0AA1025BB82061F7EAE7C35C23F5283F3609DB3AD7B207A1E651258A461D49D47A3863AA83DB2BA7DB968685CAA692BEF34BE0CC8AFE6CE6F56C7DF3EEE4CF772204DC35CE9AF4844487720B70341D7C456C0CA31583B4A46C7ECF8C9BEBA9AAF04672F4FC2BCC09915E8147046041B4CD8A4F420912029F392FDE04843C3B64256789CF2315BBE8C2AF9BCFF6480540BEB91D721BACE0DAE726A8A3584937DE33B89409D8C00C119A2E98FD5AA89560C3A9AFF809E6F4F6FF34210871963D8C0806A3EB0A19D8BECCF1161DB8E64BC94AF5C72B987A1CA45A2C7E661E44DBB18F44D0EF227058C344FB349120DFEFD2959C4F14A8E75C963B2453A2FF3EB44FA1BCB47F64A0960E623DF6B0233841EBC936B03C65AF4E1A982CC2B826F9B8631EC62C73C5F79A48EFA885E8F5AF23A57B896E57F3F7AE45D6AF120F142599F49B19365091B77E77B41D8853D24506D27BC49B7AF99F402E022C6F4B917983A3100895542BCB736621605D99BEC9911F9399DB3BDA681D8C5BD880F982533207A4A986760E7F7C775BD3DA3411001BE55E807675BF2ED994B7D8EE90EEC3C76886BC781AC70C84EAC083CB167F16E519E960066EAB1B693B381BCFCD1831A8BC32C3D1F96134A37B91FAE8669DE73929BD8046611E9F58C4BA577BFBF8B2C43D7C4C8F90A3086B1F814E04DAB33E274E95A912CE2D86E30859199BB315BD57AAAE73AA1BE682315550D803B4B7F95FAB1103E30BF68F8AFEF30A87C7FC6ADB94424C8540A0C950E843318CA4805D010EE501790F7D7839A91AEF7B3E1FCBA180E0DEF55456AE8168705220FFCAD45C807F81C9E1D5D1578123C3F2F396893279B7BCEAA17E127ED524B62912BC2F343D89AFD4706F15D9F9E9BD259300BAF43920CC422EBC5AF0548957A9922557EB37913CCDF5D193EEFCCC458DA8C6464381BE9BE71341B695239DD8CD8C9FE512A92A24F4E0605E7DB5DE34C193FA2BF7549FEC8E24CB459E4B496EF7867F919751BA846B2901E28AAE22068B4A7800EF527C846487A1710C446C17373028186AC9DF3100436D0801638AF1C115CF25F6DF0D949B5E58B07F0FF02816AD9F05A848E82DD70F723C341EF92DC256F1D7AE8787A4016E9805EC1A6403C0456C6B45EE20B27832BF9AC7E35E35EB7ADFB0036D52BF27E54F575A842EED7DC290818CDFA530586421CC525BE452D2ECE4E393C79559415E57C99F1F55F2753D54A3C709166FA6B306999703CE20D7F59BE97FBE30E92E470E22DD3B1CF29332549F46743AF6D4210E38A3417ECCA2C7C691D9C5A2FAEFB668B6314E6D010704EE2B08E2480F93E8372E1E4DD1ADB63D08221DCAA825BA994D22D7EA01A1301B4C52E63A76421A182F24665C3B29024EFB357741038799DB145B8AB6CEE6ECB64465236242CA4AE2CA072E336F30A82708DDB34629C25FD0BA98AE750E9C4230C6183B44BB7FBA6073F5083132BECE9427FCE5763EE018078A930F7A883F12D7B761113E4F8CEA5B3FE1FCBEDFE45559302DDFB63EA46E433A63D8AD7EB6305ADC5B2475A4F15B832FF152AC21A5511F2198A17B585CF95EE78ED92DF171AF04F78AA361D66E6FB557C9A44133DAFE824ECDB99BF280A46117AED259713D1F652B80F006A5F5104128735847151B25609EC5694F57A52F1F9EB1E0CC7205FDD0A7E7C572D9D4870615D021BA9686D50535AAA5F08BE1E41956EEC9282613796E3CE4A6543D02E4B1664E0DB287F12821312BA0C80BD0941C2074DBEB50AAE8C2F3C1CCE1BFB021A98F804589AB39D4B58A80DD331BE32AEC8B2BC6291A32455AB99EE2D577C9AB1E1D4E3D99D384A8C1E6C13F7B8EC13E44B17977B651F1CE231D897E281999947860774792B1D7226432FDC116DC2859C9D2B4AA7E4220C36F29501A5ECD7287112C72BC9B6E0526B500C7FC17D478F8D211BA4FB019D46441C2D96FF44A1CA736748A10F3E1E2E79C695D2FE4582B46F1CA63A11D82D012658CABB83866448146D4BB5DF2F6714B6E9D841DDF4158E76DEA11DE075B6F8FD7C7F009D862151B4A344BF07EA5F064E02EF679612EA824A83FCDD91CB88A30507DCED1FC155E05E8AB74B994675646B6BCC04147A9E7A66D40F00BFD7774E898D90D329C5F918773D301B8195A014FB5C425A26D74303EDFBBE3A4E472EDA772201190D542FD79AE7FAA5186B8EED7759D5ABB0B49488DB8A24568B66B58CD3CBB1F86D0CFFCE3E403A2FD5C7689C35C506327D8D59F63B012B311CBA73A0E43A1397A6523006663A424B65EA44150C004816FDA68D4CFC70643DDFDFF8F536B40364EC92EC1598946478D882B9955ECEF6EA9FEEA508CEC6CB2C1907A0EBFA7DDBE465144740AC9B44BF6AD80173BD100564D1507B33B64E178C6443918B7ED1E98B6D07238AF7C41051E56FF8B94CA9452C1FEA3CA31C6085D601761656D7420B50BBEE3133A123C33F929FF79B452A46A85031E3D47FB0DEDC91209648B1AEF76EA5482EE8CFF62A9BBA2EF7520C3650851A7A97EF6D0F70EA9AD4C053BE6B6CDE21DEC2043BED3A5B56F16D483608B66DFBD3717A3206CA08C13ACDCB5DC22AC504999BB9A374222E4C7ADC083324FAD8D41F0757AF60E695FC06681D001B32BACD741C977BE9EBC79EABFC3203B09FE89C5C45485D576DF51EB32FECA3F312ABD5E062D0C3B8A8502B51817FF74399AEFF61741C1665076D1D02D37F430ECC1395CB80116369461290EBC3C568B1C067B3A289111DB3901CE1C279D9AA27860D9AF20EC6CD570CD166D1AE69412CD367D28927B281DFCFA729E1AFCD5A3D6157A4A0B35BB1D988A3B368222295E19C45AB579FBD120521B78DB1F15374F2044B476F1C7374D65D14F3653016F50AAD61938FC680A591ED586512A190953633DEB0D117D849DF1D56583BB35958D3EACE7D738F3D20C3797E4ED93DBE78448EB393DA4862A2C3071AE7A5480735B6923BF383D3B0DB1E6850569F6DCCEB3563619548404BD690E77A169E2CCE7908933ABF05D1E627E6674A0D4DCECEB5A32AE4D4C4738F66C6D939F3AEFB01F76E3082FB1FDE441E8CE2FD9A18FEFBFFE184F67C274C297E506BFA542C7B1C71B8F73EC51BECC8747A122EAF36C8111BC78991E79197F0B6324358EDCEE9E9DB67AE4A3AB04BE0C7E967095F24B81AABD09A1B00A38B2D86B676A7007DFD61533387F1E5792E8F52527FFC4CBD3470C88BC2D271FA6877F6AB90795A182B8698905B442141BFC17A2291C7F81B7E7CD8F363487C816827070C97FA5FD0F45697C63C44D0CF944D03A3EE768C794E17101E6B5A7B5B78701DBB0476C64C640898D8F3094D4EA851E178321499BF621BE03858027BDECCC7D64CDD891C66784CAC2F1039EF663DBFEEFCB740296B7F62212CFC86A258F19145259AB07B332B4844253712C3CD34F583A77F0B90EE55F60ADC4252F893E299B7356F5AD0A1567AC9697CDB134EF451E2C0ED11169E84DF8ADB3FDF9FC9A6841F10EC5C8F918F241D545345927C4197CB27F46E0C13B7558529CE5F2F1CE2981820D0997C2B7015BBFB521F8AF3EC62F10061359527B4D9D9AE990B0BB755311AED819E4093A5439CC0B75B5112082447DF007D0B16205B97FFDC083B11CB8332D53902C65E935002483A2E0896E44C05376AE1E5C810E457C460F9D2E6CED6A32BE1E7C8F00CCD0121929E40A02BC5B38A1F5C69C0ACE21D0801A2D26C07EE60BA209D3CD9B3FC9E92DBEEDD8F862E69FF65BAD8D869E26E517D554BAFF7F42649B4E3545A4455861F9693B2DE1923EE76CD1245238CC9B275A3967B4D5817875DF61D798C0B49D09778981CF22AAEE7E172DC258DA84D91F0ECE535C143FB02B1D9EBFDF24E1AC18508DD4081E3E60E3352186B29226303BFF57AB56C686995804555E9F4BA111EB8C269C4F9039BAB74CBB1E0C9B25ADD69C530F4ADF4E186E7AE60144DEFC4F5370D6630E67154B378952D2FF37DAE3BD51C7149306A19EEDEBC0FE9CCE8BD9142F790BD54461EF2368E836A56BC069A76FBCB89FD1EB7226D581DE8EF2CBB7E7951F83517B570FCE8E7E61E59F683A565F4243087F4886F19D199B698E361F559A6E2E5EE1846A8C1082E1652B726B8C5134C6ADEECE7DF197946770571257E5506100F2FDEF93015386555B5F846473F1D28F71A75FC41DCCB2E999D18B00497108057804D8D4D0F7F828CE382A79C1671FFFAB9081C000D837321D21E290C71A3475985250BE283501F71C80CACF6C1039E44F86E88EBB45B5317021A3AEB9405D880E113EE0F692F5FD28BEF76AEE33335424FBE132A194491C90EAAA7174CFB61606ABAA9092B1FD51117AC71240A7748F536885960C78714AE0E70CFC9DFE8AB8361FD8F07ABF3E77B2990D89C7C3A333DBC04332076EF87CE8B9A0D001C9EB980B578AD346AFC545DF7EFB121A46AF1E45A429AD1D894C9BFD31D534A0C88AA9DADC4DFB5F7B05FF373BD93C0592FF979364E1C1C1AB79773D2BF5DEE438B6E694A1C6A64B31B673B4BBF45300F679D1037E7A2BD002FBF222D470FA83993722DC8DD27B18EB27D5FD2DFB36DCB739AE74EEBC3F0CCEB99A767B3EC625C4FD6E19CB9077D6730C9A7CC56A41B22CA5278366833C2736AF77769AB3DAAB62DF64DA563206A765BFEE1059819FF330CDE41E4E45611FB11A8092F93208895605AE41EA981EE7E2D9F05E72D824050495F6070F0E4323EF83E1E0FDEB4481FE7FB527E09AD8BDCC52D3288BB629D784F34C2F3FE0EF8A73CA02A56E675549AD31E6027E9A1FCCE53A1BED6B391D8B87189B997179FF9E50864DF128E93789524C719BB7B803D8CE790C26601BBBF5A508E3224AB9309B6443C803D3C1B70B72E174B1A3EB911E2BF201EB43F97235C96BE4A8D4B1638CC1FA05AE01157F0BC7F4B09B702BBC03797AAB1692ECABC3CE658C4DC08CF342592C8A5BC61498EBFFB12406789C34F16D203C705D4564B4A6170A3DE7FB3F2AA3DE71FE38EBFD5F3204911D231DADCD184379BDF153B24A5008FC4983EBA1FCD7D8885DAABB1B8585A2334B5C8CC74F52B26F5EAA9189E475104DFEC99445963DAC9D05C19B5522EDF11E576E289F7299BB4966D3670B5F7ACCB3389EFBD1B55A2B9101AE662F65287E996B6CA416CD7E56194DB44501A7C3F2CA547ADC06502D65959446B23C0C68A154644078A4327135D30A99B4FB1BC77E46DE170F0449871AEE53B455773D80D6F633FB91EFAFC03D57B51380D47CC1D0A36C41D5C760531BA795E7A3F9660C43C90F886F73392F868740F34AF493A58709E3D4F8F07F29A071F0236B873519838D6C2D84E318FEF6F9B55F824BCB7AC9EF165E2137DAF269031D10818E770AFEBDF50D325BE273313FAC1319706F9946B0B23051E13A1EE132F829739442445324662989298C61872EE88456235CB28C0B190706FC4329FF079C61C4C246690E84BC3BB663A7221C63107E45EA7DB0A0474D763E23E60AFE482DCD5C633ED18D12F65BD4A3D0EC8850B37A54A090B76383A7D4FA8FCFFFBD85D6FE7C975187565700EC17AB75E4FB3598D9F76F494112099C9B195D8E361B9E49B496FF8A32E3FC2E7445A1E59678200E4F56698C40933F1EA7D8C4A037EC626FDFFBCE94016105F2945A6FFF9702A34EDCAC2C63CAF98717064071500A5FE82E372A4183D873D46B0285F52C4FEBA12C12AB80D3D5835BC0BE22D0830CAC140BB1F827F411CF3601BFBEBB76371C1E6D952C7459AA60F6E7542A89F4E2630BA9CD21016A9578ABDF77EB57FD3DDC2A72765D1D0D67F290EB40EF401CDA5D886995C5C65FD56A6E8ADBD0ABA8ED833E313D08A62EC8B344CD899DF36DF190F849A28610D436F898BA23F7AAF56D27DD04BCF39C6F92E042DF2F34045A6B9DA2E1212C9B7BCE88402A52E09AE5E3AF28E070D3B5B8F2CD3CDB01F396FDAAB060DFA33DD95080CEDAAE0ADE1483E3B5784B6B9FEA1E38A5F5B3214D08B9775C9D726134439EC32D0B66FDEB376D5E3648BD625A4105ADA38C896F94F6EA1C0A7D28CED6BCB7FB016C22E902E56DA1892E2A37D09A9CE3EB1603BE929F8FAC1AA62676F2FCB6868E7A2BC7F8FB97BDA0586D151CD2AC053D4DC946CD98705ACA8299DC1A736FB3AEA5BCBBAA37A228D1EF42E6BA9BBE3844450D74920E28197FE2A8B8F4D01E93A034190F8B7678C97C532A345B6E2EBA4A627FBCF681FCA8D6BF8327FEED80CA67971E3405B943C04665242AB94C1F209F22B21F2DB6142FA1316D8DE0CB103CD6374EB8B2DD5A9D59449DC4EBBD621EC5C41069312CC092BDD8EF107453EAC5909EDDDA83C6856BBE608B7F0B2D538C4D0A3F8306E89FE2F08F2ED8DFE187861B0A82A3CF6714299E8ABD0B44D0F5FFC87D65D134B81856F72613C4589CD1721EAF069EE8559BDF0A3F3A894ED08C7421E776039B7ECF8BA98AF66ECB52436691A672D84A6B1338216D3000E4202F98123619EB743011B2AF292E4D3E4FB9F689F6CC779F32EAE64965422E2ACA2629BF64AC83EC4D6DE5D9F77EFA3B02BA4C7324BCBC1168C06C2602F3AA545C9E1CC932C69B1C4B005DDBF569B1AC17B47FC398B7722BD02E0043035767E823C8E9089CEB57B9E7D05D91E3A8EF9E9DEF0AA99C41ADBDA0C732110ECA116AC9B5219523999A42B2559A50F919815419F0023EF53831334EEA87BEDADA63AD95FBE966168AA68300D34B0F60B6E656376F73C6042F324CA3ED8202FE2B98C4DF64DB7025C2EFB99AAED2C2D5BD02B27CE5E79CFDF4335F0DC324548568366782B2EFB80AB56BEFD8DABDED6C62AEF896702E1F6B2F095BF75B390AB99BF731B8D0BCD72C6CC20399CB95A09B36BFF94938E0511E074861885315341EB15B1060EDDB2C28E9571F91331A17CEE50A8E5785763805CBFF9422E7EB1A476D29E9F763630CF5B35A227C56131C7EDED7756B5FA033EF0AEC8474B10B97E4B0D676AF439C0F3123FEB02A7FA25C77CA408176BB010C663F35F96BF10257ADD59F045C72BCB66BCD0080BC5EA90FEED3C1BC3065C2B2C52E7E4CC27319E6682E41A6A71A02939013E2469DBF63B865D89A4E35CE58F42B44A58CE0C420793671D03842BA543EDA5CEE28FD82A4B2E5ECA484A971E27357B23F051D3A8B0C9E00970A30D2C576B9213ECD3B15DEAD31AC663EC96EAAC975456ABF349DEE1E120145B112FCE3BAD2F599877F223FEBC1214323BA57561E7D5A18FA671625E79D167B8DE48E96FEDF5574CEEFCF1563B73252CDC5568723F60041B6B1D44FB394EC66539806BF4BE11711EDC9458D310FF15B575ABF5108CA9F05441CB4D6888171895C0B03BF37F979E95ECCD39083B6E0315B41989FD44D656C20EAA149B68B4DBDAFF401A690EDD7F29A9FD7736C1CF26C9CD27BAC60AE0F2FE226683088933B45E2F5097180CA4669A95CC0E2F0FE284AA724B05ECD33AC4ECAACA89DF04B9FE377FC4540FCA3087BC7076F01BC27E9E78DD2E84EBA940CFC8915111F537F562F74A4558514AA2AD628E6CC01210826CDBF7883CD3E3BB27924A83D4E8163B871ACF5E4374713C2C081EAA800D656B2779343EC273359813D507EA36E22A5454841DF458B66969B465E3979E2127CACF471F8B43C637C7C8E972781468F21B596D0551E267E0BACE001448E9A4C4DFC39FA38DD66C5FCDF3815947C09C7CB6E287068A5E5395A4E4615A028D6B2C62838025192BDF990B98C6A632F2B50A1E3C5AF50572016FB13BA1F5683F1D13AE812DD2FF0E0959B1E3BFF9D0FE132C2F8971FEF00E5EBCA9E074B86A0577524A46959ADC83F70026D70FA24B0D968B139C04C46BCDBA629FD42ACD8B0581B846BA0A5DAD52E9777DB9CE0137F2EA2F40A17D5E94C17A5BA9B91C934DAC21C33BFDFBC606CF13C655FE2B68F36003CFA068538CA3700E52B8BD6E6A96035FF4EAA1482F403B416DF861EE00E4F32E14DF96323428837648B21EFDD1D6EBCC22E03D815491B97669319DE099B2EED8937B18046944051DB47BFE81B660E8911E79B475F05F10D954F2AEA5D1EB16D0DFFB4B03EB427349E99EEB70400784645FC609BA2399F7E952AB6710330E043FB059B17C575F554E041CA999FD52CE22C1532F925359317445F911F387981A92B1C1CAB3E3CD597414011969DF0CD62261A5BF0D5B92349B7A319F5208029FEA62C1EBD93B9995C6FA860C52ABC31AF860485838EF958725505DE0C67752BF90144EDF14290B869479EBBC3B0B1318274E8CD68D1BFE2E588DCA2B0D7CA4F5E0FF64CE836677A8BC38834B8F3B4B96A04BEB63E48E1E1B839C89348DC235491D0A474FD6B53FAD4823DC6BB8DFC4CD66F7B655790DD92FBC2C91C081BD5081B5748F756996A9954E00C4A1099A193EED0FC1C784A54C3CE63DCED79EB1E6D193C4DCC333F013C865614DE1E8B0254A6365E429003F4A7234762C407A19D3A8D6735C4F3C23004C47F9BAEBBB017A10C26512D80165FE0DF34BAE98EA15DFB093F0733B63E2922043423809AE0E1331B864AECFF4B6B443ACD6337DA4BBAB845B23D5A6DEBC1D7656D9CE3687EB6C1736D6DF0B1131A539036FD1C71E1D9E625C46223A3D7B279CFD3D871E13C17B66C7DE4C8DADD9BECB57A0FE15F2F02EA7775C236E776951DF76E37C01B41A248A7E4AB9A117ABFA146C27029C9B4F0983D4A55C73886E963A347D2ED31815EC4B0D2D9F5FCC7CC2D012620CA4380807B02EE6A73FBF384BF6EB53DF5472F2732535EC0F8F15761B5B99283DF61603097BB5A71B7023CCA64BC3228ACE765F02B9C6178B0EC35E20867032DA0DC9795E59AD8ECFF03F290FA152748D3620328626477EB71E38A2BED5A8E5E400F024AC86BB01C4297536CC741F9E34BFF309EDD17116775E07A88CDBA8305C5AEB4BAF6B7E3666A042D291032BEDB19E9DA95CD917E86BDADF8C29CAF00E9CE13C3697790804D8EE2A26D6861D39E175876A8147F8B3E3D4CB476F960A85B87421C98A2263DF94C39AE29BB993D8B9583271D0C53219613ED94686C2E2D7922FA6FC5557D76C3CFFA6CB9539BA42083018478088C949F567C6784E0E7AF3FB184628BC411F713CBBFB997189AAD14A3BD29A39F0E36C86895B25CE4C97C3D7226D261C7A65F65EF44ED7C1F3BD8D99C8C184D0CF70BC51E29F8C5423E1310E78ABE5FB0E2B137B7250EF219783D34D3EA6FAF16786E5B15A902914F25C94390F6C23C253413623F0416265D23809CDDE6F877EBB1C2B77AEFB6BBD07465AF6D87F590710A3FD76C3C3AF7E7E1C8E85855E93C0FF97493226D2430F98848228B5BEA7125BE118024EAF62A9E956369319456FC6C203E4548F47BBD47DBD93D2AE23D95376B6D087474982508D1486234E536FACDAF1C208AB0CE1CE5E604FE5423CC72E485C6FBF41656A49B1127DC7CF1A0031E70EB62A5172A9B06714D89A6AAF3F6886BB0CF238EDADBFD3021F857055C0CDF5A6F3825961CEA27E4AF48925336F99B9152AED6F10FCCDFB37AF7F3306BC164E6337482863CEC28211AAC578B851C73CE24ACCD4F4954BD26614A3B44E3A2B0A2ADAB7CB2B333424B8404B3911D7A8546FEC53A9680B70472DA63A2598DEED2EA3D4F555AA1E25DE37DFB4B5F1B8C7BAB8F70231B6CAFF471D468CA7AD5391298895229A5A530DFF37DC90E9F80545E6667A429D0BE378BACE84A37FA5156CCEF1285B7355C5C1DE8E2938D02DA36C5E1CE2E4E962D26823CDC1C1FD2D88F9EEB7E680CB784E659962E8E835826CB04439AF1C2FC218C7005E490801DB685DC91EB5A6C48D6C1211C2B1740797898B8C1A06BCC5C15F5AF8B9F908421D0CAEE45C5CE53CF1CBF0BD86E31040BB6C06ADFD3E65F7253D64B861E71CF9A966074825E5F42CAA39E6A2D4E479444277D59B61D4658EAE7DF3113060FC043A3AE19B461982B0D3A78B53B5EB46796A912ED97DAB25E750AD5CD599DF6F54D8E20A698656C2220F8328D103F22FF6B124C684876EADC3483D07E4AA0E6DB7AF3976D433F3181C3F5D0F0E7ECC8FFCF847CC481B1256D3F42B8A89BBC3F841045140388CE41D9E5B7457002DB4B05144BC15D018E2AC30B63CCA7935A5FB150C44CA57D64F0D1CC21CB68D29985C2EEBEF4C55A47EB67F9A99386DE5E137F24290A14292BA2019650FA5D0895ABD8CC25552A9B90A5374F697A850D2D4393AB574DD1681B3C7244BA1194B4A3AB8C9659F10AFCFF4F13175803EAB2F9401AFAF250E6B172A6D66EA3789AC684B1D62F419D20CC1A130BD5B94E80EF96A89A49BBF7A7E547CF473A0E9CD94A61C3FB397A70473E30E4D97E500E4F496DD3384C2DEA691251987298F2F5F3AA4D774C7578B60271B1AC1092F9398A53E73EAC9F8758A47B5335E167F124992D0205F98A067AF419B4A4BD6DD415B8BB7A40F0F9981EDC4DFEA84502628272E0BFD0F1D96421B4D9CB7B51C1C98760D626BB9B26E6A4ACC92FD4F31C76552717CF256D058392A0B8CDCCAD1558C773B808E45A7D4E340F0ECBBD9B3445E50BC327916092369E9AE3CD8A3BE81686A157B04DC3DE1B52D30C93F443DA24059167A3DC983C032D4E574CEB7328E2AF58D23CE52B3A312CCB8E3C6B2725EEFA3C0332D115AE028D6AED0010CD982EA0B80F842810EBE6A5807330D455143F6C36B3C9D0F6EE5023B2696FD5AE44ED35B4FD30625F593AB1B475E23FC72A2D959EAD27E8F696065F508CA4035C2194507097FF165FF21E120B9B0680018D281EE008B5C0A6CBBADC5015CDA365D9FFA68820C139335A5A6601A6DB432C9914239C31AEF3F26234F74F5830A5A54A908A03078C440461EDF9DC78CF7045E37B9B19D90C3CD45B921683FDEFD8DE5F92B0D03ECCD8CD1238A7855F5439B39B74BA100CD9AE7B69DF2F4DBBF99062125E07C5B821752396060E4BF58495D6E7D9518C85E820F1E6F5A86FD8F66228E68C7187C428F77E2D8FDB848F8F45DE74CCCFCD817C0DD33BCA6105913DAEFF389FAA1F953CA1B40C2F6FAA549E82F1529C49087591B46DA1CCF336DCB8F0B7AEAA400F55651B4428C1369C76E4020893314D05D3E951C378FA5DAD48EEED60E3E5A6AAA854B989EFA5E1220C19A9E60F8E707B5D8EF756E2B8CF3C5E5460D522AE97DCB385CA247F75CD4F5CE509DC8020BA68CE6B9D8025DF3EC10A23A0A8DDD1A35D0CD8786CD4068BC34A79141F0895304E14F457E831641AF0A701A0C7998C8B5E17D6F3C73B07D91619BB477BC2FE5504FBF029EFFF1EE7B6A993D7A424E90961E7C8BBAB202903E7F072F43F44B0C8FC697E6CA81E354AD232C2E22A51FC32FD78C70A0C55A5AB0942720EE7521022CF3492AD64E13D92F603B719D49BB988EB6C2696637AC590066CCBA78946A3D065F97EE6C67D59E1A26529317AA8CD46121398641058A1D26AE5AD6D044386E1DD69889D213FBEAE7BB060F174981B57CD5FDBEAF4B76C4F6A419EFB27828564861DB8A4F0A3A045EDE9CE3426C53EEC40C12A594F9C3E013990125F1CE8E65A086CDD5DE4DC718A98766B871C77F02B8C577D7E3DE9B2083F4E9A4FAA9DB6BD952208B2DBEDF006F2F3521F11066EAF297A335C40EF0BF0513615775F0DBC4C04906E0297D49E3618410DF5A92EE020706327A4A589951471FEC61F396F2727D45CA9FB00484B33FF3629AC0886F584A21EA47AD61EE2380124D9FF23E6DB0671F35ADCA0D1F2146952DE222C77898D1547EF22DBB18AC9CB5B8C2AA030B2065C17B766488BC4B95D502B5269D8164B41148624D5795B280A04142B2DC113EAA74606BE6DD0601308A82C492EF6910148800, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file_content` VALUES (61, 4, 'ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 0x5249464664DB0000574542505650382058DB0000D02A049D012AB0041F033E91469D4B25A3B32F24D339A2601209636EDCB7BA01EBBA66F2B9DB97B50EE9D7C87CE3342347E9BFBA9D5E8C5BF1C4E905B8B3EA73DAFFF5DE9DF2D73CBA9BF27FE4F3EFE4DF11FE49F8CFF41FF07F33FEE77FD5E4C7BB7FDCF38AE9DFFB5FE63F2AFE58FFE3F5EBFB07FF8FE7FFFFFFB1FFD60FF97FE3FFD3F6B3F367FBB7EA93E6BFEA5BFCD7FE27FFFF6F6F5B8F485FFADE8A3FFB3F793E26FF70FF637FEAFC127FCFD4EEF99FFEDF381F4CFF0FC05FD33DEF7FA3F6E8C19FC9F82DFD6FF99E81FFE6F0CFF74FF2FD077F59F2F6FF4EF7AE93CC9B083FF1F40FF8EFFC1D2678BE7B4FB0679497FE7FBD5EBFFF7BFFCBFBD9ED7DFBBFDB647BDC5A9897B9ECCE93E0AF22719356AD667DEF77B4D0665DDDDEA04D269D7EA3552AD47652BE07BD8D94DA28BF9480879E46459DA278ACB3DF62CE1725F45DDFBB6435FFFFFFFFAF39CDBFD591432A3C83104B4C93D72328645473FFD6DDE990584665EDF7FFA8613FD5748B2DED4D481C77C93540159FB35FF9CD96880F4FF792D3C3FFD957ACC7123CDB1927CC93B24F9FEEB365FCC63E37B1007B29B4518242AFFF25CF841531DFA8DFF92D5AAFB033882DD3F10BFF5C14FFFFFFFFFFFFFDD6C834EB654F7291E25265927F9365288CCE7755987C67FED656B8656335B6F5CE166F672AD270E624D05E8A3FEF42123A54D083BD36014CFE52BE7558EEC11CFCE9AFFE3FB933FFDF7AD71DBA1FFFECC39A0F909DF7922059AA724CF82BCBFF769FA16065302DFAEE1FB74CC3B639F5D53D28835AD8DC3EC1D1687D50416C6DE0E2E304202DBC96B5E54CFCCF514CDADFFF2BFFD9FD8CB67A3F57D99A80A9EA358BC3FAF102A122B31CD90D6DC0C89E0B9F4BBA50B5D63BAB1D5D742342D28340CF3484BA0B1519177914FEE19668FF7F56CF3FC1B1EDB6D0F3BA65D7D4CB86047CA745BAAEF08CBB3A842A03221D992C6FCD4074870DAF8FB8DB30BA01CD24C3F06443ABE3FD8917DCF645F593B423CC20A80CADB3877E5E3F9C67BD47DFC0AF1F7592A09FE80AAE6E7E339BA65238513E9409F9B266B0F6CAC2FE1A747214C2465FA6FD67CC49B27644A13FD6345CDD24787BFC77C64E03B8C3B5070FE299457926B1105073B2AFD26B0551F89E65C7699E0B2967644643AC9BB9C9F1CD8A166B22831C36D7C486626C05AB18D0733ACEEAC96B8102C76FA2FF01FD74BF763F728315E74111664C7E9826BEF937D4B782A4D6064DE534BE9CFE914379F0398B60BAA9AF6D9544E8E1CE3595A705E71572559367E3784B068237510A8ABEDFE5EA642D150C311D779634E6ED339774A91B22BEB69416CCDD04AB8C96AA2462C7E0C19C5E8D32F6F4A053DB22C6E564990CB52E10E1610F60BCC3BC23F577C5A8798DBB60492AF192548E9644828C6D473D337AA7514A24C4D2E2DDBD92D50EEB2188CB920BAA8F38C26E1A291D33DC36DE9DCA0CADE77E32CA671E75097D9CC10170A81114061EC57E719765079AD2CA290129C40FF534DB0B46217257BE092EE6ED22F860A4DB6807CBAC55749BC7F15D2CF25882D29973C684E6ADC97A2557F6555E2667D2192D099CF79D57C3088F5290620518C6D19261F2D64E88D7422076D4A21C4211F6CC7750938AA215A41E1B2D01F68CB67A7E788EBDE4D405790D61FFAC18C0FE3D5A0EDEF892E93090B12A271846AF78B6196A7AF9555F637BB4C11B5BDDE79BC8EEE72B34F718803FE49668173497A3CA893496DE3509181918C90F5F0FB3AAD86D2517D2F8AA5A0ECFB832D9F76C33B9A8F2843DD74C30287C98268E0941FB1C98ED0731A3B345CCB4ECBA64D966AC6E3EA0774D31095C91497DDFA8AE8057E9213DBA38E7B99E874AC325B8ECF6B1F800D5041E8A150EE8CD8E2A5477C17B5E0B30ADA20C3963CDF541D92B8687D27756919F7900F8775DDA75C86965A4596AF1E7ED32E61A3F65F3DC444DFC115F6D40BFB97C355DDBBB882B64FD7D5F4B265E32C5E3A0EBA62B72F9E4FA9AE6A9751CC6A87E1889931C4D0C30C82BA470CA05A19A7D3CCBF6B643CD39E39CEF5B4D3D3E2DE23D86849DFB9DFA8D1CD065362FE719F4D8E5EDD12CC2329E956F980D53D06BADC88471FD3EDE4A3562B7B60C410FFD581BD3E850339336D8FD0F6D0FDFAE935FD1B77DF06038FE9E79500124CF849B74EAC04AAE85EBFB3A9813C41AE7FAA68A935924613AFA88852778EC5FFFFFF31FFAAE32A7938A659AC425689C284A4E1462078C586163BCE60FC347B3925E0C2A64BDC29D32395DEF914690DDC7F878AD3B58EA80D65139F5B9C7523B0F559CD922C58F6F7DBC53AB4655A63930F3BE200880912FB31A890661EBF29274C288A4E21F382EE0667AD142F51AB8F8B7911925CED8A539372634DE4B5E51D78750C1B8EBE2CDC56BDAC2E5F82425BD7479A639347E90F564D4B068EFA0826C01B84EAF7E394F031A65ECEB3DCCD5CD4CE4E92E25E1F4EACF8C2CBA1880775EABC5410B00802632E7404829A9E1BF4B2218C36A16D961B436C5B2304BE78FEA2C3ADD91CD11471BD088D50EE6518F01E76A8D3B6FDD7DF146AB7E9D0E67CF3660EEA55B0DF56DEAA50E2DE997492A886529E37C302C85864E568D97219A2FC7E0870AB4A901E5B027175FB848C0F6013F35DB5C9492B944E8FFADE6131E16A3C4C39B2A99D12E6BE2ADDC423E7716783D4C3CBF57BE46DB622C9770D5971F05ED32CD508EA39621E2DF427BF3FB105F6F80B330060F168437EA548DBF1C8BA98A32260B54008468B04DC54C5F2AA821F7411A9BB3653F38158714B0C20EEC3F32DC9EE667FB8EBCF018118D5710AD5A7C5C17560C179FC9F62AEDD5A1A01023977E6C32A57281D3ACDC866909B8FE497637F21423CAC6994C3F19366A21843218B33862EA194788DFCF2CFA5277102B4570010EFF1B2C81A1833DC4F86162A89571A13EB751B52E2EF9755981E0AEDF8479539DCFAE4EC9391CB1FFFD6F489B2E55EC0A53285BF6232E184FE97C9DAB03B5FD01F880C542650E4374E2FA591340C8F3F872FD752754720316EFE1EE6935005B725C46505BE636B1FB4C70A341DC3EA513F1B033B24D36CE4249F7BFED92957A1A0832B16407D62E063F3A13E3B782F97CE3619A3EA89EB7F36AC03AF17AF51982B42BBD4C32E26083BFBAAF56B2875ACA4E27DB1D32D362706E9528011082BEBF14DB5896157880600DE6AA56106617156EFB454E7F6A07185E30381DBB3F991865C3AA6F6470B733B48D724F6979B6DC43473A197ED8F935B3E52843C91109AE384EA000D34EB8C6FAC38FBE120AFA3BF3E9B168095E7E7A78B5C1234B9B525057E8BCF2CEEB2D19C7804274654CD1963F28ACCBF3F9D739CB9BA3B35157498AC14565BB0058FDCF4EE9A2EFCCD78F1647A8127730D58364CBBC9E818B322EE44CCEBA8465F6E6341BD5E4495ADD2DE8DF71EF77D52AE98D4D2363073619D47D2520DF8F260957421ECCD6D4958048ECBAE3ED1D89090897D760054AB7B9A661B00E6BA2805BB71FD7FF7684D4FE22ADE921820D9B47DF567C3C4865F2B22C7DD7F52515BB7E87AC0DB472739B15659E5B835C7C602C963FF3EB11207000F3FA7C9AE11D2CE68BF4CFFDFC61FF024893FB3783304FC0F3920B753511024DE0E70D948343639FFB56A5AD37DFDD2500F3E47023B2F583C83469AA22B171E448CFAFEE3E581170DA05C619FD6FB49EA2BD74EC90E2D749AA5E88C584419E89573328BE94627925C594255CBA9E68E4B900CD48EF667263C6333CCF24BC8C241F06A719932313C70C45F43BDF16A16A4420A0BBF2E863113140A9728E6689E707FBF11BA860FE3F7CE3253C01A347E4BBF13FAF835F4A50261694439C7529F2BD3C1B18B4C4733A23542F67F94732501BC6E261BD890C659315FFF5B19FDC2A31C06B958E9F5BF88B99A5E5D128E3B1AA06F85D3DB9B4D9F64F5B5BF3B3C6D2AE4276D450E5580D5AD94C651B8B25722D3B61DE28CB5B76D3B661E2501A5D6E09460F5E31CEB744557599EB8B1E25DE01271694E7740D35A6C3963EC18A58C4715A1D3AF8AB04F4749435D1E38C86756CAC096AB58A41E1DE679A5A662DCEF636E19C75B82A0C2358D67B4B2540651581C64D6BA328002834E71E8825C79321F799915D3978A1D048B0D2D301C93E23EA1398C131441703369C122FD61AB33860FDD172770D010880A125FF75C535B2BD9EFED30F73B145E334127E8444B5E7D059A2DBB3F64852D769D65303EE7F8E7416ADFE3E01F5CF4880E29EB1160071FE978BFF5A83C6730152C949F24B8D453F47D3C2CCD67C7E151038E0A1F53FA6EEDAC437C586BBCE6B59335F348C74534AF1550DE81E5C4240929540EC33ADACB21FDC2874CB65A2E11E13699911577C6D793D95C22ABEEC5226C9241AB68DCCE582FA27E934B3D68CF8F01113434E4D0D38C91AA828738B914889BDCB1CFA6750C002736A628295A61D5809836D0B07CCDBAB1C058EF0C95400A2EB12968B211D3FA2E43754E133DA2385551FBDCB1D38E62EC602323896D8D93F8F862BB5727BDF5CFB4C6DA3D572FFE68C241E0D557454098DDA0FAE13382A649DC856ACDFD21C08B6EC13C050AC282D3F07B41D330A49B7275A4D6A6C6AAF3245E462DA6739EAEFCAEDD6E50194C067769A878890AF37CC3AB8776B092138F5CEE4D4B933C6EFF8CDFD195C3CDE7B67313434852977BA6B90FEAD1F4F6F3A27F9BF2BBA8B2C44762AF395D456F5A516506B17B65DE60944E545700E22CC69CA410F5CD93B50C1B5E4FC594090A0865ED41696E1D2EE5256BBF47802B468F6E5F4F8066E04DB4989ADDFA805E2D582B5E661FC24E6CF5F73CA4C3C82A97B7BE22D9696E3D60E2DB3713BF7D1DE53ECCA49A8AB9EA96B4C1359C66DEC818727F3B14CF8AFB794CFAC356ABF08861E7F8240D3178CB25DB7FBB7320BF32384F24B19D3CC8A76ADBFC1C178D3645CA5158B6334420BF1C2E919BEEC6AEF709B8C28D94C938E51352F3E7E290E976CD71347A6AC9F4DB87B4A74E213F1826EA4ADBBA7F40877C0BAC8D2C164D8633AA7CE7795442B139F846119B1647F4897E1BD63F5B0B4A84DACE0EF3F7EFC9C6CC0291C5780A2FEF32C860B43B3CE11C5C17979F0B87554993D7D3903999B336AF712D0EA4FD8685522146F4F116CCEA86C955C70CD07BF7DA1B04B6946E6888C6C19AEA12DE6F8E0971F47EB22C5582D4A369D31E5D48221C14CE4714C98CFCF5BD77663FEF2C0281FA4CA44402509D766C04596265D8E95FC7826DBB6046E0293B7AF1D08E8ADBEE074216F7758125EADF14AF449A8C290F7F47F3943C6B30A9B19A8E7AEDA8727FDA66A241DFD8C3E87C936043D9C9B4578AF7C9676E9B3C430336E784E5FC9C13565B140B1A433E64785E6E8E0379A66B2A43CEAF7FA4205744B717F678B4E41F63EAD1AD6A6F281AF6E54D2C731489D319C0F92D7C3AD0CC0BCBC66E15BE5B3ECE54169382AF904AC91EDD914D0D37937D7C2EE9713D690049134C651CD6D1804DAA04355960EAB4A209FFE2937BA1A8DC000F2D8F553F500FEE3FC9D187F06420A5A5DEA13A79123988DE76B8ABC5592DE27893F6DBAE97F396464C33B5164D77EBC8EAF3C2282984344CC8AD5C47345D510687A30401B0A37B263FEC602403FE55419F3327A466F5F15B736F45B33DC7BE5D61779D123E8C1A0D45619A463D24A0B6BD2C4CFABCFA689EF559AE11785928C0BA76DDCD89DD62D65BC562D0E8E2296F58E31AB4162BA9A4BDD2DED22B93200D0B6E7C615C5778907E8BC4232AAFB95DACBCFEA947BD66DF7C46187DCE25FF67B28E36C7F62A1ED5D69213780D49819FCC5A24DFD43B96E35B3916B0BA7814B2C5402733DFD000682382F4B7657713874FE05F7A091FC6CE4CAA6DA293168DD5CD2109EB0619B10681304E80624DC3479DD0F495AA8A4C7E119D853A105089A1C9988DC9E2A3E440A29620D4C5C0AB2A7E36CED853CA455CDEB3D043A2AEAF6C6DAEB07E6656F5F27C58287937CA305B4EEF861DA5616D1539F324DB9E6643A0CE6490B06974BD1B0B617AC6505C55276721C593C5A3E4F89498D1B004A5E37B8FBE65B5C211DCC27E856DD66A65AB2A867720259281AC335B566F1A778FE230814EC46356D9D256468E39363A5F4CC2CC352773B9B2FFF1223BA39A9014F5F78BDF0CB3BD3C6AB88067A344C5962CA9C652A4D7DE4DBC4BF8E3FDE9DEBCAB16D0455039F28890E2E89BE1102C3DF8AA1FE36BECE60850BC47813571423A9600AEBC7A1D2C12229288F99523942DA2105AAF5266256291A9DD42F34BB8D2824A3EBB13F0B4CCEA9C0D9C116E8EDF5EA8567035A77362C1D312EBA0614E249D8AA0C1C7F5025408D9D388F18BFE935E471B048DDA79BC7F4B45D150D9A324F5E7F7AE71865BE09991C9980E3C95E2B343B21AD1891825C603C6BE9112B127A4529DFE9E7504D1FD272E9440F6EDC97AE7EF067B6EF3CC94854A3CFCB2233D23D21BF96F3357B9C1A984C65E8E187941558A646F57A54D58EAE4DDB52DCA5E0C0233CBB441906305032A67CF8E39DA15EB084A7410A1C0AC28F04B372F6A4770B181ACA05A2F22BD40ADD406C8752FC010236FAC6803D7F73031AE769CA21997BD3732C8F8C81CD288C218E9D182CB07ED6257BD605C17BB2F430BDF3C554976289DC0ECE29E05956758EAA16BDAEC2695DF74BAC492B789424FBF846F79F09970561E6FA2FC02C66F776680C6248C58A9C4056C4C30FA8B64058A4175DA96AC846E906CE2E989791D722A421D6A1160845698B466EBC93B644B2D97F72A961E9B51737986E4C388F8607A51425F5A43E4C70E3001DB33921E3BE4FE49D25F50973220B8F9D6CE15A288B3C9A6B4672208535394A7391C0AA7025C0BF42E5F64FADA1E63908E55E5CDA97D3C0ADAE35CA18EA7B86AAA06247A664C09C3C3E1D40E55C3581A41F8ED1AF25A24AD9580EE01EBBCA6D1DE343C44112063D0F3E9CF5151D3419D2150B04CF693411AAF1B63C7AB005DEABD69C12F0A5DC3C6CD85DEC69799796E131D054D02D9A065168C28BDA039201D29BDA6D3AEB063F53487A389C60EBC31FDB6337A3D90A21FC7243968C13CAAF51A6690553F65368A623A781E81F824AE9C44C3E28C2AFF99ACD2734C0D718A839DD0CDA2D4F101806550E26BF81CEF90D1ADA8CFF6576E29823CE9FE761E38992B69B085214F1CB740C2C9678C5BD8D9AEE028682DA599A5C4FD727321BD340A746271ACC6A20206915B9E805D6CAA18227A2B81882224E0AD104A22BB4C9259C8D87D6629BD0899A0D2027D9F45F0011553CC4591D081A9416DF9F5745FCB5D164547F159AEC9C2324F0B5F99D1D6635DA4EE909D98C15B8892688C08F66C46518B695720424A8A150F870F570C4E456621D6D1CBE3AD29F5CC85FC6268665ED612766E7EAD7278910BBFDDC3421BBC875F922AA9EA650E863555182BD06F2D16CBADCE2FC396AB144FA37BC7644C31DC3099648032A0921339C469B26447F867FA7CEFAB3331506666851924A32C5DA4125F4B7DBF70FEE5AC8E2C9D8E95487623FC9944166492F35F89F3D1C418C51E41A3B0F1685877EF1283776B94EBDA96BD40FA61818F48BC67E47383A4827548B58C02967784880EE4C98997BFC747A57B61F7955039FA8CDB57C79712A628D33EF81BCB2E2F103D8D21BC8F60613D2D54F92214CC42FAD4B99588AD88BF11C115E39EE763CC8A80EC7835EB74ECD0D201D4AC72DED28317B86C61E03BFBD3BF1553FB145634D88D20057040AE48BD768E93F90460EDF91C43C44F9199AC08C99998454B808C3617782119D4AD2526CC5D0F919D819C4F808B3DA3C327F1864037B4AA500E5FA7320EDF01694CD0C7EAF3BA2F9368BE8F42E4972B5B4643A1C42E7690323183771CB7A1A45591C8457DA10BA9EB04F479D8F368C307BF7121137E65E9EFA65883DF190566B2A5D266421A9F74CA379A1AF0BBBDB224A092C60A7CDC483E5E89CA8044F715401BEC2A3F83EA7B4B7070450A68D39D5231E4727AB9FEB8D2192066862069F92D5CFBE275E0A7778C1999999B0107F18E67EFC38F9FC3F262F48AABAB539FCD727F2BBC02C2657D5A60614E4182A804C1E63452CB1E7BC3769A6AD68B8EC5774C459DB189ACBBEAF8D6159459ADDDAECA076120B690F085E73FD91BA5EF25747CF519780027CF240B7BD22371B35C2A3109122CB3E721629CF4745059D99588970458767542C56A0E1CA3F6AB366A7430BA0BC01A94E1A551C557FFD845B648D4FC39FFB96DC450170443CF0D56F7D17A5ADF936B97DD2DEE8F369D5F612CE2CF9996066704B7B83E5A2731558B8D4D2A413E6F408F1D9549387570D53402BDBDDB4F67CACFA03B5774ACA4C9FA9E116374571F78D20B45423928A80B40954B649AA6D6DC96D43F1B2CDF54D15AA85B2C479BF7F36A0832930966A9E4F1E679447D5FEDBCB171E0617A7E3E9311FB529550028CDC3407E515F76E45CAF7B662E3994CB5225923732C26B94ABBE0B4ED6B26A722E1C6D5EF1ECF085786070A4FE44FE114A2228BBAA3BED89BBBBB1F098A9A3DCF02D4C07BAED9AF4F89F80055F94DA079911446928885E89B4DEBEED0E7829AF8F598DD907E7211DE8F8EA6C365F6C6478DF33A49508F6C4EA2543E87476A57A32CEA77A5BC1B618A3ACBDE24A3051E38260A63A76FFC833A582917D5BB7C89A7BD9CF078143828EE73E00DFE8BE94736043F3C6B40A5F4BE14342AB33B8001173E4878F63F6B74BA15195A026E5680B5805BBBDBE296C8AD1E0474A7B0D20688056C1E6541961451F3FCF877397A5EAD825893E6AC55878D4C333ABBB4977DE762D8BF2A7147BFEEF881F5871EC5F8306926FCE99FF5E004063FFFBA794F694C8547DE710505593D550753822D4CE7D6B877EF9BF6A1662F9526447CAF19EA1A208A478468918B9DD347A92B1058D6E025BBCD835B21B60C317EEA1937B9615262CC43B69D5F349FA44DDDE7A4A80A96129D2DDAD22CC03A81058864E461F429C5233D159400255AC83D6FD71EB46D457F7CE7B47083F5EB87895A7A5F28E2F4B4E1B0C6F3B7C3AD2D08DE3CD2D510BA66B98DB94C1837BEBD760E63DAC740B946052280743C76E838658D85F5AABDF7B5A94DAD05A77C68D2CF232B3543C4386F407ED1DAB87C0E96118CC3F8FFCC8B7E1BAE4F6EAF773A05BBBBBB4BEA4720ACEC3532FA951E9119B2E9AFC6DFDA8BF4FCF36EE66664FD58BB15B79CB6D3829DA66A8C1E3A9CE4D3269C49423ED6FD8564FC681915D69332851B8F270D78112CEBBFED6F41368CEFEAF0025E88E95226FE02868BEC46633AE6780B2323F6B23F13A2E60AF68C71230165A218A64A4106FA28F8E64F45736637014AF3C7FD60BB919E362EEEEEDADCAD0DE85FB366D649AC9B12961F89B8C0F8C3BE686257C039058F1B5D56529A513383A8A6F7FEEEF312416CB1B267A0D3D9B47912CEB03972F4627E391AC6D4554D8197DC9D9F1FD96C798566055D61732B58858AA2622A18A732D9D62F256217EDD8E74C8CB135187A7B5B00E0A941967F95C28457A4C92412107FFDD249FEC6BECF20C47E1A2F393BE229843DA2C8EBB16B4C38055449AD0D3BD47F8CCD440B108184427169140B69E704E7FEE20F8133CAC3CC052EA1C0B37C9F5FCBB7688DB08E7E70EBD9F1C1A655B4D666AB18C40B7228C3F58163E4B888F652151B6D4D13F9A347F81B5841C76102B4C0AC5AD84F8418A28D2889376F0DD865BAC81797C5D7D91C9E510029E6AEC96409CC7DC3F3E81FAAE6E3C138B1D24E095248A077993614D74D8D64DD50F06B331A1CD43DB7573CF0F7BA7690AE9F0A91F309EA4D707EC3159FBF3443B800BB2AA3FFC906AA612DC0D347EF569014C186DB2AE165B0DCA5B607B1C8B57C327BFDFDAA8E6E120E74B97BA5E3563BF6770EF0D1EF35F23BF804E9DAE76240B8812880844DE3BEDA07CC8596DDE0C725DC63E629904BA58FFCE80FE3D2BBA2E8DB0F9D2455B473B46B0FFACCCC46AAC52746D4D1BC5D28D41DA5E3AEE1C39ECB7F254D15039AFADD17F83E0E5B1D10C1566699FACC70283593EBE635645C5A46ED931D2B16135EF3A17121D5A99DE1F06043624568BEB31D25BCDD3908E0E36EDBC34F4FAB26E2524600604EBA2C118DD947C660EB6217F1D44D4BEEDBCC8888888887D7098CCB6619FBD4BC3373B9371FF5231837BCEDE4BCA392BDFCB8E6021012124C71D494FEE4031E4C6015948D00BF8BF9140894C59598CBF3E157B6FAC6BB3A19026B372FCE33134856153F1DA90ABE494236C9D13A648FFAD631A44A9E5DCBA8D98DCAC1BD893A72CB16EDB18A188D09258B312D827B0CA56057AD41CB0CB8ED21E6AFB166A2F7C88888889F6FE9CB51795B2377BACBDBA59581C6EEA786181B761D68F7C643B494880965ACEBE144508107777C2BF9DC3CA0A194C5492CAE8CC646F03A0B841D187EB31879B46455AFEFEAF8B158D815E7AC1A61AE5781891DBDA4A8E6F0B01BA632E0204A62E58340CDEC21E3A981678739E2FD00CFACAB78A5255A0552CE4A40309401A8270093FBE06E40F776797BC295A2E4BA828F069C226EDECE24ACFE68E7770606771B851F745347A8707E7787DAE32152AB878DCD1111111104B64099DB864E6B6C78C0FECBBE3297F97B7AB48B1098108BDE0E5C7AF0EE0AB9EBE8A5C9517F636153F940569A02288D7F98B2C38EDAA3C810CBF9C2A87DCF4B688FAA11AEC5FFDFFA602D6051C260679AA0330F83E5BCADF8AB260061891B08D902A30DB3289C896EE00EF58A52FB187A14452CEB69C681AB15DEA4A14D38C20E9F124CC261E5B0789FD37269AD0940E1D3C8F1292E027EEF9FD368B1ACC5DDBB5FFDA8B1267CAC7121490A0DF3BE52BBE4263221B60D1BB080A96AF67A920F79FD3B9E336413A740FBC504C4685BCC2CA4717F4EA0CDD09D04D6D04A5A934CF6311F2A65C2CCD02C93A371A26667613FD4981C900AC9D985902FFD1FA5DAC9D8DE081376D8382EA2678F6E90D86AABFD03867BE1FA3946A410032D433F86F7919493C9AECDB86AECFD1D0D651D0185EF0C023F9BC128D09E860A86812E238F48BDC12ABDAB15A712F294A8DF1BD148B9E624149A593EC3AF005F979B57DEBE106CA3D4B411E9D4B7F34947C6B5470E0D0E0B198D9F456D7D37F12F4ED95960E1CEAC3FB363EFE6390378C0CD72B28160BF56058F1F60FD815DDD86344E1A40644CADE60ED901576D957D2ACEAFD72A6CA4CC7C1D96E2B2D90D2E462152E136D608A6DD62E3C9BB8F7A24FC3DF3E77D366487E441A74FE1DDB7BBBE581C1308138F134F1FFB7061870C9D0F8B374781CA9870B2D215F0775FA901E2A06BD2B425E3894324185FB2FB9229B31D22D74A723FF115E7FD42AB43D4EE2B7B4BC2A42C9BC5FE96A28532F33E7EF945BC6981B4545CA795A75CB747A1BCAEE91CB3823C9A7B4A3CBEAB8BFB840554BE30BE240845C5867540D2C6E0106D306064C0FF94C0C3B3E33B949291CFB06E56C9EAAAEBFA046AEC232B25C4C8F096DB6223EAD2C171E5BD9C6D26905E36E97B7B7B8450B506A30453866021D51606EB3F6F4BD687822432FB48EB53F0E5234EF102EEA9068B6888BADDE5EB799DDFFD72C2787CDAFD98F006FB807B0958C3E9345436BD8E021B00CFA405F84DE53BA837C6AAAAAAAFE820696D5D9EBCC9D65604E7F2ABC3A222BC9D77262D839166537A712EEF0EFB4D4EC38AAAABF99962F8F58F931C4664E652757588CDA50D70436FF1C0F018D561ED557F98A484C45F586980EF9E5BEBDF3EAE57E8E4444444A57EEC6AF289A1A1BB1D84C66B7907C8887095834A168BB17480155EE931B3DEB4CCCCCCCCCCCCCF3571444758876B11B47732206E5715B7E51AA7A8888987E340A9A4B1C1E9D558F9001213333333333333333333333335AAC4DE5054A2B08898D8EC10DDED444453EE04EF88199CD997777778FDB4F2C76C6318C1DB18361C5526FFFDB34451C86E8AF64DDDB484CCCCD33493AB390324DE3F88C69BBCC123800FEC0ED4699EB9CFFFCDF7FF883FE5EB9EFFFEE313FFDC627FFB8C4E3AF4538968CE6739B5FBB1C370D78EADD41C4EA952F1200C4989416FF966687857130884CC9ECAFF8F59F821D48308467B08BBC186F42C64E52CCAFB48324EAD5098CA79830B4CEB5A9DA58DDC9332AD904FBAEEC80192F01276837E8441B4DAD1DB269BE74A05C9F6C93674D0177E529372AA561D7FE8167FD9259F12A40A9C5AB21E2C5377174110E1D10C4ADF126C142D9E533F4C8B475B6F8882065E25B91E4CBAFC8DBC02822D5FCF70F3AC1B8C91A49B5AA1EF64A62ADEDE689C5967420B06446A55CB28862255D95B68FE2B8EDBD0C5542535F03789FFE9AB8733336659EE21809C299E8A145CDAB7DABC19313675E43CADB7506BABF7C694BE6EC4AA10005F7D7D3BC302A07B93C3F272226A96563923B35F814F0D8CB6F7951C26425F2B2458BE65849A167DA83C09E95CF07B3194E0A4A9238D0B0FBB118C90B112D226B61F2FDCE6BCF64F2EA6DA474522B613B9E956818619031D884804D3B3109BFA032698F8B25D10DD606F53459F959A1428809BF027D5BA454B2FC66290176E7671E236796FB28FF69EA159B01B6B3AC4E374BEDDE4DE7975BE2794BE28FED7BFA30A0EA23DE360B8BE6811C132A90ECED3614203E2CA725028179815F968C2E4AAC90BD22E7268A6717A7F5BBF2229A607C2897A7F4D11BB1C9855E07935558294A764EEDEC8AB4E2134039BE55862D85D19C656D2BBCCAEDDB804E709EF88C8E4074AE8FD21DA67132392CB6CACF5685178DDA86B207D5C7DA5020679903BEE1F39F400FE4CBB299E8C017A9230D126A87842291386436D180F63AB7042446235F45A866E40C5451F98885B21B5C47C15FFE420319B9ABD15EA274008D32F94C7043E72EB00CD619222014ECBB894E0FC0467862B41532EABC4AE0736AFFA9565DDE41E54233A95059E3DE911B5898A07742DA0C8F8AD434A15BA896CC76A2555584777B9A7D1BB228C865833D8B4ED0CB533E06D0A8BE458BAA46824FDFEE1C18F91539C7B66E0E306247A057003EC75C17049F138A7211E7D84C74174F0867C2E34E26C55DEB1BC2AB719634B4F1F6F13DB06B3C4E652F2BBF00266E05E89901B40AABB9CF6CACBDCE40B909D9C077A3792AE7657CA6C8C591003A8EA186783B2DFA1367CB3F6CDC7D9B6397539F13351124475F42177F5F4D1DF835B369969BC747899BB892B1F5A189C1785CC811A3311BFBFFB7EB6ABF4F1A34E7AD3C5A3B9A9478D5979F612D837B381BE74A4740718538EC0747D7B163904AD125B0E7A522B3393BDD47F4BF8D0AB2454FE540129D2756E7092E3DD90F4C037E0678E395FD99D46C9B2360E9D92E0BCCDEFBB2AFBDD02DE1CB2E809180F70C1EA2175E28BC74F0AD9DA21AED1D08FD8B2A231CDEA0CAE3A3C6D2DF9CF13DEEA15CAD39030B527AAC21EDE7F3593A259F5B6E44CF68B83192B53773D29A098AE7E95D618AE4301E1197A84CDABD261897BBB47717776CD59C4030CFE98611DEAE79E47DC893580024A489F46766BF1A99DD095AA9B1B8912BE7A6C064658DA7D1F12A9079B05FC18C78B417C7B244485073F260463B5BB7F72F0AEF0E00831E149CA297E07D7A9C1A1C2C7882EBE308D0CA10EE4C902A150F30BB85A60EA692F4E2040BA0E964C95D01C639667B2B445C27AB2E7417DAE5F5839651584405AFA8C0EED1A28C49E4976D78ACA4419282CA5AE86553040617285408011A20BAC4C10156A8D90638CC9EE906853209C508DAD16C2108A6CBA3CF00E2F0BE6771206F5C04057A45E349B2171B59AD3DFEC987762C7863667954608E40C0DD63CAAECCE44D738E04D5D3308129F21DBA4216ADF8EA8C57E470A43044BD077FF431DC289FC7C0B7EF83A7ABB126DBDB6388BC6CDA635E06FA428CB18562216E8E8F746B4B7C461E05E1EA7705D107D1C0E2B81E51B67EA842CCC7D25FC13F7DA2CAD156B21FADDD84CBEACB9A183F6AE4DAC06A674994A227966BEA463A80016893E93F1A6374AE0C9E8B695AFEC35A4416CF386033B4609C870B6F7F415587AF0CF46046361365E9C8C9D16F45382E7576EB69842C370285CDB4C61738A64B6D4C3F321305B5E9C55990257E3E0B3FC1E8D6FE82EAE60009DBC4586E06187360583547AB902AE09BF6383D9B43ECB0AEF8A222E6CA275CD4C5F7E6894D8B2506AB84C80ACEB1E3DED1C2D732E68CE20592F4D9AE12A8CBE69CF37293BCE1960CF16853C6F78DC531E28C5EC252AB31174D7958B7A16223CC28268673FF1B692501FA7C000A7F700BD20EA9280F90B2AB14478A9297AEE17F33E29DA17C05EC696E136B5A5BFB02CC1DCEC8E82918292820F5882E6C6D457B4F38FB2A63CEF94F036B56AA6D2CFE2802A58509515D331E044C3ABE0F586E56C3BAA938530DC36193EE2E6F8AFB55143D4B99EFADC03B2E2A76E60874890A45DE08BFFD07ECB6940F63A73C020021FB7AEEFABEFDCFEED61560215583FD9818F079F6EA5EF99B5396E1CD1DF2DFDF0DA020E0F1F468D3949D2AF569608C51E1C465BE91E19E32917F834C5C6545246676B0933D3B2C594F0924CA21BC35DB57CACF6E886569DAF561B6B4180CE370ACFDE5052A1586693BBD098B78FFB80AACB28D43341D236EB959317BB466F14C4F3112847238FD8E6556EC08585ECDA43247223729F8273CF23A1189961848D18CA9E2280ACD7A875FC6453EDB11C94883A0B7A08AD814AF98171581F1178EBE4793CCC0A4A6FD5F3FEA45B1EB64141DD0A273AAE9AB0C2CF61A5064F9B1AA42E7CCD1C8021A64A8B9DF3DAA8B152B426D795FB9CED7D38BCED4C0E76464B2A50343861841657C85F184E2BB5E063C429F5CC2E2346405192D74250C6DA522F584FE1E994D74582CC534665EE903762CA545874CB3606FF27789BFB9512E144B1C6DDEECFEB0B7024501817C0201C08C72FFB4755227E23E229F68B2F73671B9E91371D8020C46E9BD77F593309AE8A1A0EABF24A9EAA8AE31E4CF7381B0EB45B441CB5EB56A7A020D6DDA5F5D5911F2BE59F940EBA81BCACFAF3EAB9371ACE0E1049FD3C92E2B4F443DB2610A7816101DBFE66E8C15CFB1B34954E0038D020976D1BDED69F70746FA5F8BCB9F50176C27FF38F824037D428CFCA53822FF50C3575E4325BEF2A8550701EB097E38A88E0C2D92581851266C79716972DD1926CCA47FEC369D6B5F61160524F54EEBFCFDCAE5D82F14B7FEFAD3467E2E2CE42B112E37853EE63CB155FB395FC322CB355B74693212386B4093CBECD23AEAA82C94D30A4476527A85E7F79B829C0684826FDD16DAF3464430EC2FC9F0E418598F22165C5F761349BB8E38C831E672C40A07C8AD969FFFD821176067794436D35524A9CFE6E681779CA60CD245866BADC1AB5EB31E1BC5C1C4A3224CCF4B3363C1306442F7FD5E7BD452690B066032DB11C4307245E906D864C50D28B9CCE42DF34A3618661382778DDC2AE7D770E22FFF8EFA8641568A318D598FC340A882B91EB1FE95CA7F8D14E5F579B6D0226F11EDFCD8A88F63B3A18B87CF29F6F050B5EA228335B73691D0A145739ACB34300B42EF1889817ABD0112EFFA99A0569A3BD42374279220BDD1E934BD44C9EF281A8EBBEDF92A0783F2AAD95F52AAEEBDB81274939939BE4A11459141917E24B732CC9357E22A73DDEAC05A0541BEAE69D494F5BC24C21F984D33E98CE7EC32DB753D1BC4D7486C4971BB592D78FFE5D50C1148B4B1F992A085A4B1B0A1B7E2E6C3C5F3B15F706D4C1441F193E801B95BAD979FE369023801DDCFC4C82EA5BE3CAB8833EDDD5733CD301AEF8865FF430DC0627D1F2EA32C41CD021D45F95B1EB871E206F6CFE50D19152FE85F254D25AE15F1A95BDC84580C936F2E96AE62AD35F1EBBB2D3532DACCC7A9F10414408667D8CD23833411FBD05E6FCD388A333C531C30F03A9807B90FC74D8836AF2666E68C16419EA9E8566FD8D6501C45959E0898AC15D5AE736F6AFE9FD95B95F787621D011EE317E461981C0C2204BE80482AD950BCF7F3C505A28687E28323C2D4BD8FFBE4C28C721D7001A80E58DA71432AAC2DD336033051691B272BED0831F30C07F948D0BE7691C4C83730E35386ADF26C5B1B6471F6B0BEDE4AC97F44BCB14115FF2E19B9113ABB9F090558E6D16998D51CC7CA545B29719DE2F291E1AEE91073B99157FF1CF272948BC467495666DC86535F03584C63F20D85CA8C69C98A59F2F6E15D5EBFFBF7DCB8B3C0DE708FE121198B8C8806DB9972702D8AA6FC593A6F4278C0A1211195F9F282FBF55AAE35EAD2D437A3DE997B6D1F68F63E4D34125EBBDBE0789B00965A7EBFD818F332A51D7C5B4FECDD0AF7574FD9F4BFCF6407CD7938B0A1928FE674A759316F5D5E32E98C4DB0EBDFD5400E5776C4F3E36BD301806F4FD0A8E85161E2086FA37F57113C8B086B87FDBB11D919B06BBBF750C4356326EB530B546291C2878DD2CC234BE165EC8D96D128262B90FE693041B4691FE785F205FECC782928216F5EF468211568D62D5ED5BB39B80C9D50DE43DBED0A09710917174B3E47CC8826B2F9C98B0EF7DC51363F424A1D378668CC3669C45F0C88A606DA29A183ACF2102129CE5CE9FAC26DDAE9EA41ACE9C3FA483A83551AD7D221349B2B101D3C6F0A5586D318184A4E557128809E2389DF6E2A400FF51A8FB9AA4E62E930685AD70C3152E2A725F14389B8FB7BE1D7B9949222E51EEB73D8BED51E65341A51A1A7C71ED383D2AB7C965FCFB899189943B18A00221793B035010FFD48AE13DAC2C7367AC2012041EC70BA2902A52FE58D9C3E2E32EBB3E6D748C296165DDD41900B33AD1E1BBB861398319777D2E18CFCEADA34E59764BFD653E691D4F4BD31FE14C35F04C10334E4D71ECC3480A475BB0042236E01A9515B6CE180874D91BDF5B804257D112AF4AF01FA95C8878DCD55EFEEF9AA460FB82395EA8A7C58271BBD251330E390A8F8853D1940EA27C5D79CD68BDB3C16EEEA10694065E7A197D35D2616DD317048B4E35F6C56EA8992C2E105E741E9636DFE9C580D1921E898680B191E3666F84B9C7BF841280056B59B498829F12BDAC9EAC2AC891D604A2269D53F221908D60BB394F97FEBEBC49C5A91CBA4B122874997CBC1CA31DC659C64B5DA2EA69F525F6A4FE76A5AD5C6B29E7D65C77A6A4095E30CD528785FB4D611B99C38D0421BAE6C9746A0F5A371AD07DF08FBB65884D9869824D4A511EB1D88E51D2397DBA07E9607D5B4879017DB4C5ED582070E642098E0F3A73B5C6FA1A44AC2872F1C38EE61A5572F1E92EC86DE78E4C7872C60CF12B9111AD86FE1921496A105928FDCB792950D34E8A5493B6B4551B01E255C9BC86963996F939914AEDE2329AB56DD07E6503EE7D99807FC7AEE5559695F95CC5CB6B6129C7B55F42E6188827DCD668AA24A669E70B0B88FBBEA694FF480DCE5F75DA040B2446E6EEB5A7CF61A82E57B335D9A0A38ED3BAC8F74EE2295D9DED7B34A913ABE8BD9658C41A9639B285297D4FE016F7EA0ABC914FA892A01A8EE4A4375DEBE9CE55357C1A259AA12CF1803247174AA9D462B5C45FF1BB520E8D5195893E4239E01285E65EDEB7804B05A75D759F7068182F6B5A444E2EBA42F3352DC31DD1435A0C24A58D2907165DBC51538E286E6F5D8C44D19C1A00CA6E46950CF441158BBD5755E64C31A806304C86BD7B4BC1209954B7920E3C5A3FA2EF8774B46746E3DBB0FE52AA3E45D22869937CCBA79A6A9002243C9F3118F50095F4B9D3DE19F2863C3BD396A50E42E9AF225C3281D60E9327AEBD2934172661CB751D05667EC22D9B8CB5742590EAFE46BAF5D91865C3A88E48DC2BAA5777F8C8B11BF3C2B8EF1E0A83B7A9D903F258631D890A29E711D5594D303B4702ABA892FA3EE9B240EA09C40D806BBC92F2E2D8D6E76BDAD912066EBA6D52D6F88CD163127CBF4E925D9BF6FA6E08A9F7DD0964D30A177969B6C2E5B20214F4E50439C4F0E4176E1899E58BFB6B9BD93411740EF4B27801C785F7804C4BA0BABD8137D1A5C0F806985B8ED97C46093A56E0201C897CBF464147E9DD5DDAEAACBAE14DA4D9361CE59576C4FB55D015DF96E785ECC55BB26AC59283E1ABDE3CA92E62A27FEC9578A4FA587CD6CE5FEF3F406CEC182248C8EC1C64AB1BCF0AEC16B2507EFE295094A30718E65DBB3D7915909F58B78F47802A9B6D66F571C339060747DD561D5E3D627D6752310F08B83571B378112C4268654AD41A46B7B54394DA961CE12CB0889868D91F48022FABBDA41149035205ED877FE34971F854B20FBDF39B9D047A8D665F25C73350BA8D0805F0700C1BDDC40716A26198AE3291793D69A05B5B802E4DC2C8931FE573FFC22F6F5FD80BE5BAE97C11BB7F5835AE79F8BF54662A91D3BAB8E309DFFCFD4381947FE2288CF414EC9995283A4A3E2D34A8E1A0DE8D711A612A48E5F88C4CC668B76E78E459095F59D5214D2D968F6FF1C9181D1D611CC2B8A6E434651CE1E96CC5884B9E60373CB700701913705584AAE925E52B38DCF89F7A2018252E134AD7A6B0DF5F73BD013EFB7260A28E7325571506B8A96C3159FF664E8949CA2C67C44E0E14EAFA37EC7E1512EC2E8DF8439365EFEAB2D5B37C8F09854898D0F56724906C3FC3724E6622BE161E4D072E56BD00E87F5AE8845EF02432EDF1106FCA2F317CEDF8F5E55FB6D636828DE503A2647FA9C3FB2B1BBCB892CD2FE21241D4A2F2F6A542C62A1D40C018EFA216FDFFE1EABBEDDCCD832523725767E71C85685337D9D5448DEBD7B4C528D574C62D0C5192FE1E9FC7DD1DFAF030FAF8337F1DC5F967D65141EF037D255AD4EDE01372F0434BA2A80CA84ECBD43D0B4EEC8303B50B7D1FA1D911367BCBB3FB1C80BC56C72298EF21925EBFE7A579D9100BDF57567A0C3D7FFE6FE648399CD341A9405BF6674E8E44E6A83DB69E73FF9D5399F90104D9BAD94304D4C920532F710C4727CB7F598DC5E60D3C7C6CAFFC9761358AB573771A902600EE09CCFD397FFC2EB5A66E26542DD86857064B8964F7A69A9795B448BD0EC751B85DA90644F7738AE2DA538B819F79B20A162A29A0C984A18DF12ECC40736C5BF392C66C047359382D7BCF9EA528FAF0F269717C819D5E65FFC06DFF8498CB07930607D7FC935B18BADE4A6DE6BE629C668E8529E190D281B436A23911EFCC11D3E43C74576B0FFE61C346917375C74656B32E44A52820BEE538431071780A3757665F404C5B1D94828652C595291228DD3631EA49313C4C281B21D7C3C59F2D89511E151FFE362825BE7DBC4696AA46932A65AD0709F91DCD2628672A126920E629D8629AF491F8349F259112C6B7954ADD333D2046648963C7ACFAA17F90784E93E843D3F0EBC4D937E09A3798ADBF37DD5AE889FAFC5A66BBB8FDFC1ECD39E2B9CD6C889331E2EFFADDC06166D9312689703C789A4FB4618A4F92A61ECAC8E8DE2AA75E561F11BE6CE8491A7525F81E0DD1C1CDD0A0F5026332D7DB51089F7B76279CF4FCCDDDBD66C4D1261798DBEB84AD794FCCD96262EDA4FDC714A9AD34FAA51F5E8C6ABC4F685BC9E83A3BDB500ACB18C9D07FD29690540312D3CA605D31D61936B41EEF6195C1B152713F82459F191D0CF336C2B246115338D54A61DDFE1186037413C49EA3454B836F0B36B69DAFD763EA7AB5A49AC8E68ED415F2263FE41FF20F66E67A00A5D41583931D21F33822E7B9322DC2E7EED0D6E15486F8B1955376E362F96F8EB313BC29232967BAAFEA75EE6639794B22485100B606605D3C4F9543A341179A7BB62408592E2ADAB7B571D8AB88BA35D8519C53E52DBFA69D15ECC66D0805076B25C1A43A7B739F00493A9F560CD185C619CFF5FCC4B023454735C07FBC4DD326D574E001B8DEBEB6C7E1DEED6CBE798C6C8F48C0F32FAFC5FB2B2AA55043DC6BC1B4095070A59D4800257A242460D29E444E2ED4862D4F229EF7DB153241DF2833687A5087744B383BDDC3A86184B08B410CF83B2320D9A5FDCA09819623E11F6DE7BDF1071D2C4058CF4EAEED2F5AA07558AE3DE9837BB6B7171EB9A580A3AE4D76BBCED8E0ED79A589AF9CEF651C162E97343754B5C37074B3284E773E2C3D141A3196EEFEC4A3053EC0411E9BBE90E3AD3D6E738A81A360D4956E45B57F7FDC5AE3D459CBA3003B136EB5C582E1BE5C1A6FD4EED693C65EE305626D53A722E0FF22426BAA767544EB8DE754D03C6ECCFD0A0713702CF750AC004284FCD8ECC9C5B43827F78350B031ABB26FCB7224E16B256543C8965F3851FA274C12F1F5289AD41E8DCE6BCD98E0063E4843BC19585D2E366DC9C24CF7EE5244C57B3154943F058F4B0A4FBD8E5165916BA46250BE9E73A2955E8DE146F14F760FAB25ACF9597AE3D5DFB92AFA0532987BA3FCC3FCBABC4D4B158AF203E63DD0404B0CFDDC1CCA93A79DA8CD6261A618D54ED52FDD37341B97C086B1CDFA9F201D7978B7A795C945235BC1723F59507DB776806DEF19DBA6F6543C5D0DE43CB8178C21824956E157A2FC8052A5937075115DF2EF97F587F498ED3FEA6D721EEC70280AC54AD94CDBCFC7FED3BC588DDB70FFC0C560CE2C3C29723F0ACA24791EFD15FC6F0665125234BE0EB55396840EB7C524A0F7E9D8AD01AE004A395DFC5DFCB87147AC4AB8BE94BE865055FCDF7EC94F26D4FD1B76E80586E044D10010441C745685CE11EB207B729300DF58A0CE0FD259B2A73A77E33BE9CF6D3B4BA1814BBE5BEBCB282DA32960FADE5FE84CEDD95BEE42CCCFF717D749F0D38991AD280DB485F6A3E9BF62AC5AA46C2DB8EC30D0E074D96475D98E0E5848687BDE2BCB1FD9C0B3EDDF555BF9A1FDCE18C250E7FB36D970A479C41EF9D6118ACA79DB8DBDB1A052048A1BFF5E07C4364EF0C233CE3F2E7A80D5765D4D9A6CAB391F3E51E77B0D211C139CE4D647EC2BC3D0A94B64063200202DEC4502BA4E013CCC7B2B01BED19B3ADEA1EE6BCBFA02B155537600206FD3C46BA1B7E0DBC77F46F265004D4A040876BD02D5029410236FB59F192F01025DD39475DB03C73A7A390BC611F95FF5BF45905AA7F78B2D6EF32E1F19F319729BA6C29D2197255DDBBE9A0AF810D0484816390C0542D4CD0C129822D74702B6BDB874379F661FF6B426570F7CFD673E1B5844708BCD05B426E6B7E82F8FBFBF6E811ED86EFC438417E40264AF87A548924B341555C1EA678FD849CA75CD763627551D2D111710B4ED7EFD4537F2A2421AF6228E31014E3DD73809B239B243E7C70B0312F8869E4FAB39CD137ED8B8C577BEA8C9E8B14E3B026D2F4D89BFAE51638228C4F20780CC6C00609DE25899DE70CB11204F1310BDFF7C14710566A541A48E09E468574563563A9BCC788DAD7DB11779C3B394D3A52ABEE8C24EB50884254E9CC60CB9953AE3FCAE85BA21A3C6EE5F6E9590051DCB725FBE09153AE3F21FC3525ABA67E12005C3D6A5BD20D81F8CACCF6EAE593732DAA1BF00D321EA53EA32F2367AFD5A25412C63A185F347D1DE9349023FE014C217B97982DE65824270FCCA27A0CE4C3816E9EFF42E43C7A1A170CD4CC2B2E6564B4ECCD44FE7F924AB4007232EDDF3EC4711A048FDF41B37C77C2A07A7ECDF0B36EBB31F1579DDBAA4AA9A8E6E5DA897F92BB9DCBD6A46D377135FD930C4C5A83F09921EA1AA35D89F829A33FE1CBBAAFB22676E949429A1147A2183479866FFA791F91AA980CCB386D83CEA26305818A4436B2A82E1955557643E63CD95BD754C27114DEA4A2D46752363C531E804CABB7837611E7DE27BE0FCFE21BC8D6760FF9530D393B6D9DE9489AAC7D7165858C44D7154544745D4E53F1638491A2B832C17CC48C407C112E2C49EC597F871C2A60931C03FA04069541131A5EF29271801BCE7834F15587CEC4895409E4965174589EF78187B9DBBA17DEBE359F09E04B46BA902349FB2D0C4264CFE390343853375FB9A02AAEB9BE3D70236081CB2956C718906EEDACE946F65C86A12190B26A339D8B2FFB9078D47C636D4F6FF5C7A1A4D08F8DFF2DA967B4CBE4BE11F8A3E6A5241928B8FC0991E0A24A1AF5444E24A136578D3AC549FBAE7EECA2F4FB12F69C52C5EBD7F789219287D37AF89F036991409E2F06B4D16D01BAC4DB89ED3E3BC13DB5E3651CC9A8C90902B1387471969160430B4D46079A388EDFD920A4C54AEEA11A71962B33B7F4391B102804F627B019E102F3D30B97E6810ACB8ACD10E9EE67C35C02C5E96503E228E8ECDCA29DBE9BFC35A0F4C2814687BA6DA18A78854A2A20DDBE622EA2ADC007953C45A553CDC3F5888E9993BF7F77E3A49B62344B7D2354570B284DA988E9936E5DD3B257293219C313A4393ACC2ADD7E6DB89C9496DB83F60330BDFAAE4342B211A1C77290C0CBDC7DB5BA4A234ABD1D8F0127A41787BA6E6DC1CE22198746971BB26A9128A9E865A54E32F068F66C7533133EEB89C5601F07F1B0E1E8A4E47C5694E1F1F991817A6EE575949C74DB26E1041E12CC87BE454B866BDA90904ACE47EC16FD6E81287DC718FCBB2C69954D8E948872F0714ACAEFFC49C905AA6829D516811F86348253EDAA77893D520748DDD4E41F7ACDDF0362F7A54BE5ADBF0746172AB5B9CD1B7D4972B9FC1EA79EE2E95009A3B29DEB1EDEBFFE396C4ACC8F5A47B4ED286B6C516A9CA98E8E61888E247D08B2301DE8211744873FF7F9B7A9A353BC1FB9B0CF75C728152C7C6297810B7E59A750D6F9CB8F15E4CFD1D14B9726C8A7F54B5DC2887BD9B591B1715517685017A1B77365DEBC0EAFEFEBC73D6B493257643F80A75E964DC9548DAE0B46C4676199295DC1372653DEBF6B3F77A699E3D6404AFDE6645FD2D741ED32D8D2AED6AEA2807A7CB26ADFBEFD8E06A44DE196A3A29257D28F5FB904C2DD5B1B4EBB50DD86E9B42836852B88F9CF35090B192253B69E0A7C9A393C41A62DF14C52809E870D9976DD6CB8AEADC0630E87A7315370EF1791D33C0E39B770E7547D27D92F32D176001C8E28F8407E1BECCC67F5E971976D6E1D35509CC83DEB3411FD759CE259E5F12DF57E89090D3BD288A0F09413DC6E31D4EC2E18A193B8D1D7BFFD46F2D4FA06A443C25D31D30C7B95E9E08837D2C65595E39AB242BB6DC8F4307197B40B3FCC72C6945C539FB6E371DC657F4EED87D5B65EF9EDD7DE9748CBFC8AF3B9E2991F50797FB03E1524A2813561ABE5BEF855DCB5DCE4C4E0BBEB9600421A208ABA1D5C7106C68545AC6CFC6C485315F48C61F1CF403B47237D76B9A6AACA011A48C6C3D93090599657C293139D7880F6E6BF434B6860C6BD2C8D17EEE593699CCC92F8E95691C2A195F8137BA8BCBA4295569C8DAFB1B50B7C6383AB845A4FA5D8B5CD4DEC65AB22F8C083CB929305B84AA5CEF4989DC25AAB612954BBA7C20CE818C71BA77D89C67D45A26E178EC8E073658ED246FCC94B1F0F44A88365807BC346801AF55BBDE8C266707EA56D7743282AF0B69C59B00F4F255CB9CB6F771ABD4CF5E15BD072FC95941E1958179EC535650E5C93A449C415A2187B4122FFB54E0F05097236B22F343C4BBE7B3763BBB5F8A724256A9BD2036D3C2D837CC086F85ACEF4C76D32B34EE3135F88F9BE489BBA6C37D48DB06129DBF37BCF92B0C2F8100C9F93D8592C2AC486879B7782C72BF389C7AB9383AAAF7FC7CE513A40BE74DBED2A0EE16803352A86A89D587D960E57684F777510AF23B2285FAB2BF57D9A98CC3E1886E73B77407CBB6FBB418F769A0B36743AB86111359548EEB49E6B7D8BEC1171D2FC0206B4472AC113EC411CD8FA309D2D05CA9BEC9A255FC77F93C55D61E8E605CB4C6DDBF0E45F9D9F491884FC7C751FF031449BB8C0419895065BF4222745A5945C4C585E0F8AE996A0FD01D48427E6729F93FD41AA21B87E6C39D62F9FC716AD41E644FC437B05572643874A4F07F64AB41CDFAC43465F8845769709DC1599379D9E091A2A39B793A1AE9E1E5E818504433F6B7E9EF6D362CFFCD11DEDC0D8A1EBC0A640840FE680E986F26355E5FBE0D6C6E68D8CC12014769095CC986C4E75AB4D59B1EFD1F80BCA5F6BB8CEDD6C63ED59F99D242DC7982A3E855BC459ABA396042B1C0C63601CEF84B914715F428E1AD112F1BADE3ABD4845DDFA37BDB720F5A3360067382B77C5571A0F40576992BA2E06766E775DC6F346FC0772BD1D1256F4410D0B7ED315C8CAC84CCA7B6A4FFE63A4E8995D4D91913912208F05B12D7686A3B32A5E26CC212C0668745F11BBB1D987DBFF9D0EF736AEC89C96F24CC24E62C14D10F2F206D57AC5E5A5E168564D18182D846E5AFA25CA94BA62C5C81F06FFA3FF41600B3D01FD9C5BEF61F3F68EC37C88B51A0CCC8419B9C601184F3C04EA8F6522249387BD40508EBCC5B05764115E4EA806937D14D17A04999B399BF1DBC43D8B7977F23194E9D6F92B2391D7750A7B6467E7A107EB943C20231227A63B549D450028920C5BFE04713B1394A9D3DB8E06D3B092E9D3DC596789AA1D042AB7BCC9C7406782AE0768C80C2AFA74D8286E6F6A04635862CB72865BF72DEE76A0540485BDB945FA50BEE8056FB120983D58838C4DC1E9AE2E8B1966052A208F983CF6D0EB04750608AFBDD1C4904D6F4615D4CBC8B06699BB843B9D73BD5F5B00ED5235DB5AEF176DD4FF152A416EE0615933512055B33D106C363505FBA8E9889E0842991FFA84C497E1726968450ACB3591D4AA251A835F308A70890387F85DA0382391D06F0DF675EB99D0164AF4E6DF863ABB8C1D69DCD1014B62C4A7683C7C80C949681C0CF24D11B93B44E4296DC2B2898A20064A06D52BBD9EDCAD9D8BC7F552A1FDB8FD8DFD2EAB25B32692A9F814E59F40C3093FBF82C352332D956ACCA173F8323DA09942EB9CDEDF2EF42AD721669C4B1470762B7B278E23394C885CEC0EE802D692203DA20A0C7C29BB33CB4D8CBECE1CA12B82FCE44C93D25E64CC7D02C664D1E85952C3DBB0015FD4EFA51B71F8F987546116DB6BB7394D3CF738032B5EE2E277B27A80AD5E27E6F5FC1FE4BC92AB7249F7F3300529D7DCB1C3AB5BF3B5076DC4F2366D32A34D2F6E63B92F913205089E63A60BBEE2A2323E048E1493771A1AFCD352B61DF96E9615361E6662E6542CA9C0B2C4C879C96DAE8645E1157246ECC5F7E56D64D281E533A6B88512035607417CF172FC9107892B9EE2063B304D910E6EF6FAD6F4683BF35141A4DA6D8F33B7661D31299114196F9496DEAB61F84F5AC1A986E629EEB19BF2EB3EA59F5DC01F07A41A5583EF0A4300AD478F056046461D12FD70351AA18B2998FF4FD3D7767FFFC7ECDFB7CBBB03DE5FF91DD87316B88F48EE05640535CE3EB54723B56EA9B9F5B937AD24B6ED901C48F8AA840AA471A8A2CC5429AC7D2A20E02E6C1146CD9E89EBFD74F58FB2253BEAAC01805A0237F1E85345B05F4D14C796FCBDDC311F019DCE1D2A13CB71534D9E0DB098ADEBEE9D776FC93DB0AA02719BBB253075CDC99FC7623CD690DA1FFA8EAE29F7D19B2C577E3864B92B0D3533338078DD3C3A8B837B1C8AEF5FA21C0227E51C7EA927EC523F5EBC4FD6D7D8FB9068AF651B8F50DB670907D06507AEBFDBF7DC3127BDBF8D201644426CA0ACF82E7A20E8A838C9019E2DD814621B099F38969C5425B298C3CDC0ED7ED500F78680C343CD2FC177C7D07903D0EB291A7AEEE1B43F7D3DB90E567DCBFB38765DD01B548F3D366B4B2E9F723D9BD441F0C7AAF5E9BD520EA31FC5614D102190B1730CACD5FD3FFDA85CD6453F4BBC6657EDB7BF32C0BD785DEC31974148B44ED52CE24F27F90231AB7645009351FA7E177341FB58243674E8281BD006E958D8EFB332B60F716EDA55BCE31E1407332A7BFDFC5845852A9346EC847A991974B081A4D2C95E0FD66847BDFBF1BB16152726C488BD4AD0D35D2A98C13557BBD2474320339482D9C828205F8B10C9E279FC44320B6AE0D626462A39563A5F762B3AEFD5E161F1288F9A1E1E10FA978490D16B2685A650D4B3001ED66CEEE4BED3D58C96AB70CFC37AEAACFDF54F8812FB87F63F06565757C43440F86DD37A934691927FCD089D3C0C5948EDF2EA98C0213A6D0670F8987FFF5B16825978A9C42F75D04A3232A367C4102EC39C0AEB6637124C54BA3950B9BF54F8FC72370B4A4C94D9BAC356BFBF499D0B8AD57967DBA2603C0C8E77F9BFF271C9ACE72845734D2463A67A40EBCE9A81F9F9D13F50B7F6F668265DCC9C1917ACAD9160641F5152E37EADE190CE924A15721426AB4B2FFF63772DB4600DB47CDD1EEE1C6777531A2E5BBEFDC18A5D75E774F8AB4F55EA2D0FC9279F13A9950BE3F892F8A38F0B6F54BEDEB3955D0F137EC1FE3CAF67B4FE5EF070B62228CCBAE2F6B9BC5EC67EEE1B7286E10432003CF97CFF8095ADB19BC82ACFA28002E179AD7233552CC65F6BEFAEA0FDFC093CFECCC6C3478FB63ED286F5CBDA97E848DB8C5B0EBDA76F5B90EF859C766818DCB248A62F517A9F17E99193C7558F7CF4EB6771C76886BE44C3E165C3BF072A889305A230AFCA347B9F260912DF8E916B3E0286A5D33E0CADB22778DD419781A6121148CF05CA4DD74F392FB0C4021D537CF799B32E882D40B21B64621838D95F35E5B525BE77033E21E55F611B87C56FDACCE95D8855862BBBA49495990B007130C1CEFA4D40C2EA6D6AB5D2F59D168B230E42A9F966D874191F10E82F604973F51105F2AC8BE1A5C2716FEEF63B12D04E2566247698A94F3FB0963AFF99664C07B02BF1BDF8FF32B7BEB4940CB36EB3C94FCA2BE568633D694E02836F5B75A87C6D3A8A1097FD79AD28ABB92FEBA99A2A5B3EE776F9BDC31F8CB170379EB6670D1DE7071DBCD3F54C83FB7A7F5E5A36A5DEF948F6BAC0651121E498864B62C67EE78E4E24CB0303860637F37D65BF9858D18D1103C37A55D26D6E123F3FCE5885DFAEE64A0B39988D5EA8FCFD27ADE5BF73B736CCBB09C9FD6B8DF6DD95B65FA02A7568473FF36492748D65CE65E08319A55CA3B888C629C6A82A43BC6637B9F7538A41B3968EA5E9CE792CB2E530E15C631B58B6D871F40F53F86A3871748C9FACF1806D8D0905A799BD155F7D4DA83203151D73DA101448B079B0CD7151A619123E5FE242E0D2D027C961D2F5DF582F74E95EA5CA9B6ADC8AE81AA139DBE262A458F77B16B2E5D7DD4B426C411EF86EF0ED43EBE756A4F96D705F8E165A31DC039A26DE0FF6666CA4265A6A09AB17AA88A5AF409AADB32667AA712B696F70F621DA4D30EE3051C49B451CA095106E58B9EC504E9A2F68E38C7DDA6F2F7AC707E78E7DC1A6E536F9187939180F726D5CE5C75899C31CC2186287A2B31442BE7A4647E70A50E9BD2A4BDF3B4A1B469CC1357C60BAA67302540ADEDB9960B2C906C231B3B8EDC7F670FA2FC406D640026703C4F3B80E32788FFE037B40146C9EE106FBFA9F9B43F82B5804C9CDA2C40D46301403297EAA16B559CE5766355128C9967209D15585DE7997F73291682563FE463227DC586909745E1CC51330B2AF5F1DC9D4E1F06AB8C084E4C2CA5DD7272764ADDAFD0AB4D3F33494A6B0989B75C4BCA19C093EEE32E5659DE81BEF5EE06A881A837FE7E7325AD9B073D420473803372F5BB1912F8099634D2D3127873C87241252DBE9C57532E63D52DF59C974C8D30E39A3B632BCC8FD871700D2F16872C557C6A18A689C404FC54BD16734C9D1F5407084773E2064FD762784CE308E11374660A4F0859C69A29DB3609C95A014FA547183F49D099A54951B7E73BEDDA263969720A02770867D71D1AC867F9329D868936BA78A42914361FC24082E3917CB71A748345B3C66F8470C897647601EBB7134D9D110159C599DD05807E0D326A9127B612B4A4C25EC8F264C3BDD2CF6637B994DB27060DF5C0F5FE83701F618C2F151B1B4DE8212BD27FF9826504C85F637216290D5C45339AC2F10FBEAD8E57F885904A6B5279712653A9C4B41008E938D613E1928424E4412B4A4F4FEE2EE9DA75E7361E4011E7A229A9EB2F9C2005D8B7A843267899130C3DF04D2F310CFBAD62EE08782C6C3BC7D255BD0220BD2225CDC80D05D8A4A29B6B8D3FAD6C0DF7B94CFA4F1DD2112B431586147EFF04A7B6B3769F7C4D858CE5C3441C7864CF0CA3AD23F112FFA3A0566771A6562E5415C2CC6BDE6A48B3A6789E0BCA053B4E32B7B902A32F40D84F0D430084E75FCB781AF209225C20D404D65C389A82320DA807AA321C2DB01C7ED44AE5C8501871155EC92712411D7289774B17B3EFD6D14C31B11E125DF346D817B9A79DDF672FAD029E6282785056BE9F62CA7BFFD6B6E5727F7C7ADE391B52BFBE30B7A12113AA2FF9F22DB7CA9DAFCA0CD7AD25F8257D4A3FC19FB5ED977AAFBD9E5AD9221B099E579501ABE412EE1E83B9942A8CB1358FA4E253CD9B37EAFA7717890A256E5B528D3075DC762DCADF12BA5110793110C51D7FA8A927891484509DE58649D89616DA83DA9A8EEC584A1706E0144ADC3F280A5C7DD0B66F2D8D7F5AE65C7E9DD2FB05E753AC365E768DD2AD31E731A46DEF73AA225714F4819B4212A946957D9F04D97876680AD61EBE761C3FA1CF47400454ADD8F1AE8191F245126AEADF2F217DBD019B3A1627B53B20CAF9A777A26C4DB8D07E54907829935FCE33C38AB2DF412F704979E985ACE65FC77BEDD49A0E0F0AE923D1E69C49815ECE8A2EF081B0CCA8D6D82EEFDB588F13A67C5AD6703A4A836898DDA3956C7E10B9057F0657E6BEBC5E17AE1B5F9C985D2E8B404886BD4C01143288E4AE7BAB513E0F22D64BC3E5B751D2960F251509592E1DD950DD506CFA2DFF7B72764917C8361F4C847ADBC5AB9AF50230079E400254C8D34105A38A56C3DE781084BCBD9BCAE2C087C56E42F3A9BA50F32A66704F6488259307632428CB912DA24E07DED3852F6CC1C99C6FEEED9138770087979371F06075CB700CA0CB6ABFDA28CDDB720239454DD04922278CF311A385AAD89E2F024088D3DBEDA53B4CCF850B1C9267B7F082065D10A382F46F361835A70B624A3322CBACD25380E99A4E6DD4738ED6EF9C5AC5D0B3F1F0DEF0D67002741623C15F39EB6B5D9CA8ECCB873DD4356F2903C19924F84FAE921D21854EAF4CC59CFFB465583ABE9A0955B5499B94826F409D95B84C12B49B73D493F9427B79A78351A4938E8079B9099273AA16186E633FE51C7C06371495AB7C14904690B34FEA0850A04455E4B9E589470898D8F9EB87742F700C2D3C5C24567EBF758FE8EB748ED63A9173ECE7AA12F981B9BDBF93C552155AD5C2AAA636C4E37A6F4FE959DAA5E5E9588227C35BD80B1A703872F276FD6D0378B1F2C34FA302C2BBE93FFAF7554BB0176FDD7D97FCB770CA2ED78FFF6D97E431A1616B5195087F2E03600F8283EC234874F04916B826124D4EE62CAA2912EB4F44AF0F5B56E0303CB115AB3E17624C7BBF2B7B875AFC1D101FA0D2F689D05AB03D91D5EE4BB5E0E166EE8CDEB7BC949A4D28707B2EC444FF9048A917F8196128B824124BE930923B690F8B70FAD821522242960D7B607338F4B2826BF0FA41025DDE7731699EA0A7DC5B84115134BA5EF018FBA6A7645AA1DEC76FCAF494FA53CFAE85A514E181BC0CD061DBF978E6D1CDCF8988CCB6559EDE4E1449029EBF217151B17EB25AE536BD1A6A84517A0A585229C6747115E393526BE81C83B9D65A130AC5BC7C5F1B7A2E32CDBD4A008A1786EFBA00CBFEBBBF0047BEED55C7BBBFD547A6C7AA44873416AE36D661DD08249CA670195282A062A23E9ECFFEE852DAE4E99664D160BC4288C185DF9FC439B74529371992DC49E524B28626854596252C17240F53062B1984FA8FDDA72790F58E5CD8ECC1605F06928155469BFDF925EDC1B7B3AA64B08F9CDD053CAB64714439D7714FA42B6A0F78F0D2B0C1400D9BF2111C14E42EBB13A5FCBAC869D2A24D02D7B0BD511BCE703F763785E41C57DB316F6C1A94CB181306B40FE1912F216049C02304977192E9F39B1F52B443E3031942C08C5B96BFD99EDF62533F02E0B3F0A49B3D1C427CB5E158E0AFDF2A4D0B1820F1123BE6EADC8431799337F34DDAC3E5B2C1BF65169DE61890B40656DEB44D54746085BD53D0F853FB2347AB18D102FF36B108AA2119FE07688439C28CE8179F3B6E7BE174F96DB5A41E2DB30E351239BB141EC9F7A9C1E5C2D6C96753B88FC1A33C63A277A1A3A6FF9F87660667F1668483B95B7E1669C899ABCAB234BBC9D938D0904F9444305319C3EFD09171BFD5E1E5A57E521031DF8FBE303DB459B82123A4AD5AA6CA81EAB4F486EE1D51CB0F97D4626523827F7969D1A8CEFEF04D5EC87CB297BF30AF6FE607F90B73C3D4784AC31F52EC26636842A3AEE60BDE6510A0EFD9EB8D01A7095B7A67EE1232F6C78F10C617A6135C26D7BC8ADCDCB7D0F8929C65168154E8A5C9C9CEC03740FC9DB29524C5D8C34A44B7620A077000BC63073D3DB639C3A4292309453BDAAC0644A341EA8BAE6E85A1C1DEBEDD678872D6A53484261A3DD7374125FF7B87093427BAA44A4B6D10FA0C72FEFE02C860884EC5B580403B92C462153721DCACC4D3283BCE12EE367FEF5F52FCF5973B1A6763966FC0081E198AE491075C612FEA5FE335BE2230D31F549E864364C3BD8C8E08622D148C8C90C1E2CCD0962AF360F7DE02956708516947140611BA9CFF2208A0EDCC69321B2851A76E8DFB5F5268107792739072F0E60FE29529F312F6AD1968A003C4A13E427D539FC8DCA546042EC04CAD5AE4C3DC36BEA1DF03A1ABBF9D48C0A9654735BB35D4501478A158E272560C99CB8E2B0C7E440C1086043D44C88269003DE197427932477560818B70831F56DEF0CBE7AFE6F9F5A947061DB101A2B5488D2282AB7190FC029C4D5756535CADA5B08E68A7B927ED06C6D4137D3726C426F22D33897903A4F83FD9C87B9F8D8A5A23B4C079881EE7E0740E1033C070B042B4B08FAF35C306AB6E773414E3DB49C59E5A8928C6F1DEA090B3BF292F8988646A607FCA24802B9C2F72F6CC2ACEA2D442897EA9DE6271E112450F743897FBE024B8512759DA742022F946BA26C173C0A836641BBC2AEF73CF5DEDAB3151106BB142CC7C9ACA7D65DCBFE146D33DC5DE28C0FC0351B313A8456977918544669D629F75AC71399DEA9C1111887A27EB9ACDA64CB102D57A08FB1303D64BD71F19DEF5AEB7DE02A0C16A6848ABA7BAE94003C2221DC4A01F23EF6E16968910BC1BA7B0B76AB2FA701809FA1C0531284D5E665D065366F451F6C28582B5947C7D4648CB1386BF6F1211C0403FABA58CC1A14CC8599BB00B7ACD2EFE978183C668C6CFF0AD86CC80C49F1A7E74DD53E2850CABC3F8B8FF60F298EDBAB9632A17E2FA3D9DCBD5DBCE71960CB28376FFAFF505AB05690485862872F5F010350D2B4CCB6C42CA60132CBC9E9F379EB867F868F6E2A759B71F028B46904224EEC95588516779E45167812BD62A44CDAF927D7A2B8298B758189EAAD7B1C888C9257807B426F6A8ED5417B1AC2C7624B895E1FAF198372049B312966E72CDA834EBAD9F170CB75C606097776AB4455F5E2B6BD413C55B0A5F13EC9398D251C116029FE438807B129E699DBD1CD45B350B73BD1E395E59C462054D5A06C2119C1969480A8114BA2D531193855BF2B89D9BDA8116716197507E0A74F16C9F5A478DC29620EDABC62E20A3F472EDCE562EC6320EA4C693062812C7EC94C406B403571F695E44ABC5B48FE505D41AB0BDEA96B9AE95C33FDACFB9E02FCDF92BB91476BA3E500D807733F3B222E6D1C34F439CFB467203222941A5CF6925A5B03CF842211C1A4232E57F3CFC13FDB2FBB114F0F243BDB7D3638FF5B853FB22666AAC2C83AD1EE432980B6B9D5C8A5ED9EB1CFA8E67ACE9B0C345A8D7BEBE4865FC5B58674941934C55D086429C9099B25CD242566228BD8EB0110D68374E79D65131D72E4D2F78C02208F7DA8668D074368939413D49FD7C772C66441C954B3C9A75FBAB3B699E581FF88497AFB4B2B479A970BE74177C23105075E93AE34EF123BB31001F6C3B9DBFB7EB8BA5A33F27861D32DAD97590D97D0D62D38332DEE8F03968E5DE55CBA8E4F65C0E17494534181C02CF71FA0EF6F8A03CB97348532F01D8E40421FD35F774E13B14E54EF724B322F7F3F6704157F4DC75C29FF3B99E4E7FF57E22B49AAD80C22AE9A037D799F3F0EF4AB09323BB0D2086BCB7466BFBAAAEE5F0DF97DEC73F351DF9D2A62A3AF65515616398A29CDF2083D5240AB50514B95EEE981AF4B9D5A3F7D0C4982DCB5CC0D2676694E92E8E9381DCA0A9569FB2345F3818D75B1B0C2C8099FE81981E14E17EF61576DD56A0B3CB627C5B3C3DA14FCB15CDAF03B47D9E33FCACC904B157F3A846ED3368813E74FF65C1B0E9A5E9F0E921AACA5AE5240E6EDB4564F025F29590BD77C437E47E6C581EA89DA742655E55484E0E238CF46299DA6C85EF7445EF79ABABDB4C1D60A31936A7414F0F8F486295F77D0E7E59057611EA0446323DBC24F8E160D17624A121AA23A1E241522A6C1E4EF1532A27E698E923B766C2ED1499F3FEB2FF27AC08F3C95B14956296F0E0968ADC0D5DC8CC8B9D05F924F115338BFBC8608743F5341FAC22681AE2EC035C866A37723F6777BB48EE52CA7B519A40DA55A9AC60DB3FF0832A80BCAFE4233BCC1BC3C26A4AA138D12548A683C1E48DD956E702BB19876DE57620AD8A1D17FAAC8CAB86CC9C092863D579AEC48EB27CFFCBBB3602BD83066C187E1431753882E9D2AFB303D023796964993E3F7B02BBD01C0E500303E8154A0585E8904460B19265E2D22C1E71DDF28BFE4CD095CB697F974B3F8FE390A2A94EC4B89E741AD165E26EDFA2A1325B4D913F76DE0F279F16EB15572543BFC8C2DAC7E2679360ECB6549C924A4D4568064421E57BE7FFA3E9B3299C3B4796F3941A71C414C233E0A9DA0B86738394CC29A75019F9F652A564DB0DBC82228F6115829B40C840B7B74BE6697844CADD6DFC2D0410B7A8EBC5FE63A42DCC3A6590833F75AC22175CC726D190382779D6CA310F9447D96AE98DD2CBBDDF3E18CBB5156465AF2FB3D96A816E560673D8FE34C750E2AFA1B58C587EA92D52E4519D3D1E2F87524ED0D5AED56D63FFB9B3B186B0BEAE782D53EB5CD80203335337FECF75925471547A37B4B30F752D3F9AB3D120F4868D52EE20C0D15E369D0B45CB96197097EC94B4312BBA01F97C1E159623AFB2F877F1715BBE2B4A2028CD1F559B6B2728A59292B24EC5BBC7C99AC11BA69DC87AFC23D6E66EC2DD6A8106AFFE8D5B5F11B957B3BA9DF10954A758ADA0F8513292E1965268B5CB49214368BDF5F1C5427D52CC2B3DD46A421136F0335B41598E24E90060A74B532549242763CCC661DA4660E1F05A7A78DC6A154E85244D6460F5D450EA6F523EBA7977E6CEDC484A12605459ADF4ECE5F0ED249120D3B9D14BC87351622ECE4D2EDD0487971A274D02B148A6C9AE0E1F423676C4007727CC5DBD32871012314C1F8566D07B39AA57DB7A431711245FCAF0B074498EAA7DE75C15B0C6584A2A460E514D561B4E690674308CEFCF60F1B5D0337263E5F99C0F33BC05416EF32EA369507C2C3CBA0B28C0F543553874E987E6300E01BCAB7626993BF4ACA18D0FEF1D491AA45873BE8325E0F117569D419801256E4F5537FFB1DA8F68C8802805F1AE687FCFF9D8C9A004BE429D06DD959F99D9DF3F952DDC2E263876CC4B6A1036468EBACDDBA0B609CD557057A17993F29EA9187DF694E0B4D51C46ECEBD1876390BD92BB66FF32743191A0F36318079B1225679A636FAAB9CDFD4E874F31263B93EB10FF7034D41EEF3037B72755FB7F8FBC255D6ED8E1A360A86F2C9F57ECF7C812436B518273A462CAB77AD44367AA232D069B9250EA77B4A8BCCDBF9FA0C28EE1AB8D8569DB3AC316FA7FD58F147CFD54305C486F1E6C3651FF980D61244E3464653DCCAB23EA41708007960B22C2793FEB96BB7A1A670B7E78C0BC662D94982E2C75F48DE0A1A2FCE620D679FE78257C3F1D684DF9A4D6446065710863217A943559F97EAD4CC1CC38DBA7E3F7B904D1D7281528E36172AA2AE315B8E6D0628AFBE1B520927BC3B9C0F5558CEBB578CAFE0D3A9649F7760F2A06B77C98E8C70995D7803AA0772CC6534A83B0B5363ECBB38966FA1BFBBD08B8DBA66D4E63B9693020340840ACBC5AD184BF142FB8C7E49B56C50A0845DC52EE8374FC6B09D74741E20692C533A1C5AF615E7FA86970A6317CE28B55D3A54CCEEA7DB8F73A56A658F0849B3A70CBE3E3724E7606F344EEC18E14E3CCA993456AFB1523992FD14B81E0D97577C0164410BCFB4795902CB1E53CB40CA80EAA339BD257644D7DAA85803E9828F017523750BDE29C2071DA55E32BBBB2FA102D886221640F37D6C47D41A6DE146D9B76C0086AF4201D4987D8F8A4DD1C4E002131ED1B3C34CCA53678ABEE3DB295C701E1A31F05D2B2E7C2B793730EB99BE936F589316C33AAFF6EB028676E9F2996BA39A51BAFEEDC5EB362E80598D8063147F4113B84AF50FA8465CF33D6B7AFDF1E3DD1E03571CA8B72485D40B7618FE8AEF7DFF5D97627FE336E3329235A1E43BC90D2F754E4BC3B85FB697EFF2BD9500993ABDD55199063616519D47DC48C947A3CCDE16A7EF7116A91ABE6CEF9D09DA5BCAD5B79467D7A24CC143024992C1789F8231F97C27F6A71B9CDC5E75D11E3B736F75B83F323566853189A35474EE76F55715CF86A8DD15A5F9D16D340A171D92E63E7E3D84EFFF503EACC74A8C7EDF9DCAA37DAC087017AA9743F8EECD8E2732F69478556ABC226491AA68201E71752AB487CEBA638527A4088E7DC8A3A125327DE4F8F5F690FDAE3E4BB2697DEF77FFD8D66DBFFF66F21A8399990C751DAAA029F664A9711AA549B64550FB8A2152326F90E432A28EE49B9C273427057EDBF8AB21D2E062A6B128709D2B57EB8F975256769C94FF2FD4C96D0D19E4339353DDC850E961D31D8F52FE58A4D8B175CC851CB957E0B1FD3C7014B0DFDC96F4B2F48BC032820DCC53DDAEB294038671387F78D2917801D5DAFD9ADFD43D6733EB83A07634EA83F1B1257D71D4E7AB6A82777C215540E4F60E7FBA87A03A386F1C714AD461440F190065601418AA5BF63F974445AD153E22A34E0B409972C7DA8A069579645061E4B14C2CBAE86C154C2455A40F0EBCF1F95176F80F0C11A89B9104C833EBEAFB11A0EAABFAD8F94A3B8F6B9777F00FE12306ADF466D04349C8F70E2F3133194310EFE2935B8D6FB7F9E266A36055DB185829A8009C12C228E6D8EBE478476BB82F944254245D1428025306BA64CC41398759CF05E82C6809A2A932CD4445924C875B6DC27FB38F9B85D85B7134876DF2D70D378E639536DF6CC6056C9BD2701724BF0CE29568909D8C61B58755B36A05FF8CB2E7A335C9CB026A50FD24FD1E7275D36BF92838191866B988A32AC63DEA8D436B8084354DBA06A2000ABE8A278860C04ACA7F7213396BFE0520ABA722D9D7FA7F9BB1166AEBBA2CA5849CC051E9ACCCBE002124B7DF50AE097C9CC5FBA575FD21E8D1C6BFE1971F9AFC72D03810A650BA92CFF95D65089BC8E9E423FEFC968A8241DE3F6422CFC2019F9F6546BC0E04ADB4901F7EEF6FCCA4DEEC6405C82EC2DF1F74F22C65A639645D2CA3D3F7620F923503D63AA08F53ADB38F07615EBB9E91A59366FB546B57968B4026AEF99090E5CF566A9CA00EE97970C1CAA9D2B9404807DD8CF9267674D5A95042F77AFDD104DD9118D143612532505641724B6991D5290D49BF9F99BC26D5937ED5A21DEF26C792A990EEEC5ADDD9354D2CA1A17A2C64F6BE7108F2FCDE353E99EB9FE006682C7C53ACE0BAAC6F1BC4F4BCB7288B80923FCA7F4AB7B9C68933CB60D6288AC0451E186131AA4D79862D77A1C26BD468273DA07C3C1766324BEAD1FBED5A94DDAEDA41C3A227F56B60D0C252B745536ADE71FEC8F4A956293B49586DD696EF5C16CA7BEBDE2EB731196D73B96BA6A5674817A57A37CC6B4C1887F3964C8D6F482BBCA2859341B12C165147CC0B449D63AB1AA4450D780131D6A32C01354EE33B60E7593AF9C286CB2A9224C94F0FD9D2017ED5DB9382CB761169073693FB88A3ABF4C46E8351A62E3E5ED47545331644DCC220837A6B479235DAFE6591E3200F4704C146D4800F6AE06CB40F6337E857AC30CDC2CD572650AD37E870458EC038A8DCAF4A26698478AD8E17EDB0FB79BC259AF61B8A3978D1147EB7E06D3870B2B56ADE9C7D7B4B842C1A30102CBA8624AB80AD17FFE3780E184A1CF6E8F0F182B8C7830B2EC3802F87ED04E1340D05EFDC3010D3FF85AB970BB68E3DD2BB426A12750506DB1EA571F0A8125DC1FA7E6DEE864EEA4722AADEC14013188ADB091229C291B9519EB4804EAB1756826A7E91E9CBE80FB9C0240185E875F09D6BE9EDC551CC4BF33AD85703D689B15B283A2C048B1F5FC5A86C2C06188C343335ADBFB688156CE5607CE262A915E5B04C45F25BEB1F7C4706B85D0052E9137829598BD7481650B250900A534EB340EDF3619EEEFFDF2D46E3D939DA844453B0E474730972223972448001A4C9E5B294BF6D5152FDBCEDCE775B4C8BEF7F447B8955AFF8D57BEFCE634B01B067E2C2F5C0D30D2CA037673557129C7A672B9062404CF81C508BE17AD22B860C8BAA8354BC1B13B545519F9613309A73D19F3193D15288A82C7F2A13A911B319010851113648056C4FCA7D337783E09D5DB20458E4FC29384ED9AF21B2DEC90EF5494B0EB3BE490DCDE844173DCA25BD95E5AE5395E8401574ED981B723AF4D1498FABF627DA329E4092EE3BF55B837BCFA36D893AD612C9B21EED8D5451EF175424A01FBEED092255B16A292B277FDFBFB8708B530B441919F49178DEB885E0B8E9D59BB5461C01BC1C74B033C71CCAF92984C1B02B10DCD182C33077A9BB20117CCBCC0CE509BC0B78E9D628740FE062DFCFFF2CD7A9170F8B4573F67B07E9F6AADD27F8A16A37F54CE7F5012A2D431227444FE0DD959D2B96C088625D38F3B33635962313FE2328DD3EFF1286B4F0F9B4AAD4FF3959914145B3F693DF146DA19DE88D3A3B86B829DE90835EF9BB4A720CC8C4916F0EC11887A7E85C19D10224EC9B1142414F3C2E66A438413BE437697E96597D5C3EE123A5BC3A89F89B2255DBE1C7D1321F01CB4905EE46335C38CF2B33FB65074E93020756336163AF911F17B69264BADF9CFA0C7A85916DF1109DC316DE4E2A3F887C718FF1A9677CF79A83E756AD1557B9EFA85425E0995A283BEECAB4CCFDCFE508F6F5107678B93AA0C4A9291943F05AB6DA6DDC31A61877F5A63952D9231B6BD1A5DC9A1E5F72A490338A2FCEBF732DD1BBF2509F46B81061CA9CB0BF0E982B5CEEE1F7034D7123968691C5C852E0DBB6ADD8B6E3B14B60395761B5B7D1E2169CCAD1DD32CA7C43DB97DE8D75B32DC10F646C4C0925E50BFF71F8B3C53DCBBF85A01E45E66C3ECFC58BDB5614E2E8AA3BC941A75C08B5D0F94BC33589F43455B22F2D8383212E452987671A0A2E3312006489DCF4AC9981E3D7F0F4A3E5FC85AE0DC3B3A0DD0C7125E11B401C0875BBB45DEC819466F0E47C6EAE631D80BAD9739718C7EDB87834EA81DDF86E390E80F91A11A338A77E2CC566C96F6D8CF955FDC9B009D0CDD85F89813CB1457BED68EDC1B99F37BD3B215BFAB9ACD09B63648C97416EFE4263C927EA446FD4521FF04FCADE14C0327C61FDCBBA809A1D932AB0DE62348E343BE6FC83455BBB50448D22DBFF58C38CCA914777B8052C7C2A8368D1FC41B55D9D4F3AE1051407CB042501DDF994413C85D2A840E4A573934CBC258CF68659BE188FF6BCB2D1C086359D680170251F4B4C32CA8E7182153F92829DCD3F3BDA05CD3B4FBC3E0463EB8F3FA4693833A2133E721ADFE5D056F3B5D4EB23F0DEC8A1BD51F601CA55605CFB4FE5EB7F1CA95BF10EFD66C4A1CD0E4A9360501B65927480A6BA8E74D08D6ED5A18D1BD9D5D47A879452BDDA446E8F262FBD2E155186603AEA62BED18D1B97736DE9A1145E5D0BF6A0A9DF85AAC3016994030AEEEB9C4DCF842A7257D0A3D8B4BD7472F2BECBF00B0A567A9AD8CA6698E9F80A3878D33FD9B71F2E86D9F4B6A2CA833B20F83CB66FFFB4683DF44921EA6FF77B41A912780AF7C02A58080D5130AB3ACA1F97B15896502D8C7DB90E1CE903AEA3F05BB336BDBCA223FEFB35EDFCC49F8C3522EB797238D45C1EB0654C74671FACC62DCF42B1E0E752073A1FFDD609DA574D602F43E65BEFB771A5FE09D469F84BAFD54FAC4C775B0A9811463476AED06B3E3059B97DEF43D6F5B8B4CB53EDC140DB2FFAE734FEE9EAF0126799BA4737E7DA76D481F1F225FDF4EFE2E848046AAB2E32AFA6725FCC2FE153D75C1622B9E950D343A8238299C445ADC797A43999A46A8E76B5C703830EC5322A49BD8DE498B36B7526B9FCBBCAAE1A874F5BD9AB842E3BC17FE448BA6B732AAA34B471D6FEE114F5A6CBA832E6A1C189D1445F8C431BBAFAB7CF64AB9AF62D1372D8868FDBC842DE6265085AA42A2AF657C1DC07AEF0EFD1F68D71267B0C59647BF43BDEA35BE974B16E60598CA0F0C6E95BF46CF9F29E081D2BC4675F0257D69482431EDDED7AA4C8AEC0B8B67FF9A9346568CD5C63F89AAF805F1FC09D57551CCE3F211297A8E92B2F8F880CA9E76A321F2152959D4920D7B177573965D621E218F94743D09779AF0C703108D633D59B4B8A6D74A8491FD9ED010F1A9DA92E6C303773EB9294E957B7888E7F706DD68276DBFBACFB979C0BDEAA28642C033D3930966E2608784FCF3DFC353551A3476CA490154087676E125DAF2B33167F9ABADA776DC81DC2024886036A0BEB3029657605852FBBCEE4F75C6449BC9E1DC87B3A6C22072A8F3488646AE2BCC609BC55AA4A30AC29CB16F1464CB3C464BCA3ED9C0AD3C116049D4B96D160C67BA481A947F1C1DE2A57EE2B60161A4B385C1502A0C3B33B7D465F3955C7AF694C636DD179AEC97BFE62C923A594822264274AEE3B5872D2739140B312D7BDC0A1862B0F4A74092EFC377B95037F28F37B32443C16B61B3431ADE3F9527C2CC72F8D07310857E613824D4A6585104A211BC959C2A6C6AB4D1065832E961D6D56D01D035DE7E1DEAD4C186F24E2AF6854246D4B931419E22E66CEEB2093E4A23151FBE7C80FEF062F1957067335346F03A34D820E1E737FE30814FC2217AEF02D94AD70270DA59E646A050E3DFF59B84DE19536092AFBB9D121A815E3616FFB604DBAE2A74EDB61E040F2E0474A0680CB678E00744B2A7AEE255796D728289ABC0865BF68DB6458FE54BCE103E672BAA127A893705885B29B36FF8B0F07A63FC96A0BDA0371572297FC897B89A2DE126A19349AB00EE28074A364A06745D6F175ACD85B6565D5B178C5487F3903FB670EC32C0D0EB396DD37A35230B35A90D9B4BFF6D17E1846CA050002075FCF972747F6E32E0C9F3149493BE2C60953CB018928AC6113136A267300E89CAF6D06205B5F3606F88B96FAB1CC5C21A51CD435150F6E66FDA971CC6D31B1CFBD84A1CA0E2A95819DA93C5410A79003CCF177DDC6B353D0F00402D2A5164ECBD41965A3062311EFD1CA7ECE8D409E6B1C47863EAD9F04E1FAD9396A88E8155A6050F63A5DEFA07802639779217C45ABFC285DD2A2F8597CC3B91026D94681A2990A9834FB57EE0A3E3BDA6546C9A675F003B7B065B109A83599F755A3E3329D646933CA5C7C908771098DAA81BDE0AE15A0F48A334DFC90C90E790D1F916F8E6851255767A02FD07A92E35B899D1EBFB60D915CBD12CBD037AD614703D1A050995A3C8A9499AAA8CC72674D5C1F3E5EF62968686911B76F45837BCD9E7D540404BB690C8E8009655A1350EAC5E1F6533C12623BA83BC1E990AD32989F7C289FE5E123409ADA8438B9C20CE9A8932ECC22CC38CB1A3C5092CA703C49BD70C6F55EF24C7724E63E34790CC6A800BD54A4CC3777D0440D24EF37CC1231AE52D9EAD13377BFDB24E435BC4A832B4E5BA2B905669910AFE0A9196A11F19CF48C3D335ECF2D068A06A51598E15E5A5589A507050146574677572CAFF0788094CBDFB7AEE49B583FA6BD079A30A71748A5265CC26D05729C74E79B50845395F6417C7CA80458BF5154A352899D8D36DAC686252A3B6476735F303949870A985808F454656226B3BEDE9F004FE1926DCFABAD2561B288E039DBE5ADF426BB407AF641E1156A9DA502CC1633B3D6C16AEA5DAB5F8DDC7736BFED34DF092266545C5DE735B89F2A1AD95EE383F8C192DCC72331B89237850BF50EBB4C48A1D50BFAEF64D6753EAB58B531B39188DD5823098DD5E61B16C7F25F5652A07B51A2D67BF794F1C4972EE94A92E41B8A8B354A5A8BE1007709B81CA0DEF92DFC51914159567FAAA156C902A656EAAFC63DDDBF30B8CD11F5607042EB6D67CC089030C6973FAA2258E50981790ABDFE28787F0E190C09807FEE6DC762A3B835BAB3C33E5B88A328D869B337302719C73C76F7C13A2BCE396F3904F45444348C018926CDB15F2D4E5CBC0A0E388E53DE7946D4DA1FD0118EE63C00B0724B19CA592B9E73EB846AA4337830BB6F257ADD23B85CB7DF841FC954A594B36A1E6A45D4721376E90FA262E8E2576D39AB94242DF997A55C8777D5D992EFAA09B0CF80C5ACF9C56ACBB8C3362E081F5A72C3DAFAE5F86A8B476B617A93AA12FEFF24E726F8299E4F7A33FD7383CB9362561F537A91AE3FE5796FF902AD13A4EEFB5F043AF6AF4649E7A8149F48FFACE1504F25941A1BD09675BA8E3B253F0E11FD011D84E2F3E13C194A940008C43A4E5FB1498C94AFA663A9A3B5B57651B82A3472C0024E72DE82D31898163851C2805E47B0F857FE73272205A9F8BD1EBD6E052344A219F711A19915FD451F23172191A0C8343C5D72A8C507CE0A3A075974345C318B7C8435BE3D8FE87B88984F158E4BB425D506602CBB46CEE304B93F3B06A288FDEC376290EAAB9B0896B4615CE2F87665EF321704BD8967AC04FA6AF1F65B8D41F06382B7EDF6D83A774B120B933B8EA395D03D5A6890A8D12B93DD193D68D5EA0F43EC5A7CD259388EF2345B74B9D3125A8AA34685B701CFFF27941D08BD934F8C31AF1456AE15A8E6CD23CF59989FE915688E5090F40A1F67681147408B2952D637C9DE8C17F4FBEC39B1BFD3754DE0E119FE6EB6EB49DAEE7BEE3E4CF3A391EC38B19E08EDEF9A6779CBA2F5E21E3B48C0BF5E20F272F6B63C819FE5B43FC0ED2F023E89436BCF9C26C6325FD97FDD6B830726C9C3182C413B1BF263ACCE0077739934B18FDFC83C2210EE0C5759F3AE6BA81863AFB543357D3C6606EF66ADCB8960EB89D7BB2329B5F0EEB5F97D7212F2DE2AC5B78F58206AB97E3A16034F219F8B7B9C3F172AD79277B466316E1BCC8F433190A34B8B3CC4965B486ACCE6DFD77AEE78A33A98FCE22D136AE5495BD30241493F8D808C9F496A51B0FE215ED56BFFFB3C15876054C6F778CB787D470617E95B22A84C4B6C3871CE94D2A22D59D0AF5C71229D7AA97EE5EE9DBC7FDB75B61A9BC5985272931B3C52E832B91C4FC93A0D45D5B306031F1446687F1AF0CFAAE245459CEE5898C328583856DD2144EA6AFBF09FAE926EC2BF2ED0ED2F1E1BB8A3B36AFF22FB4124B7C737F75D67C2408C4BBA549B393826376CFE18E9CE9CD28DDAE213CB6D887C96F29110844BB55EA4B3BA8BFA393143DC3B5F9B51734473E8887200E5675A068085C47C4DD7B9FAFE1A0C1FBD783344785708D96E69E3BC4921F36DF1A92B0DC70FE71A8474EAD744757F95737F9EB9ADAD34443D9795E8BB649B625EC693D0EC5C81884DAEDC12C36E9D4B6FCE36CC6C1482B0DBF690AF2A15DD359CACFC3ABDF7E773D6271635828B990F99E4C2D3641B3E13582CBA610328B2D8F9767416D43CC934BB77261AEA283328AC53DA5F6A7F43660BA5873193E1358372B58C19DAA8B5F1D50802BCFFAF06B8AA36A2AA7EC6A43009503DF2420C023F88269143E2FE980EF98BC148A6912858C6E8C75D966CD34A11991773FD385CD22D5BE22CFCD5424976F3C6F0E4D942421EBDFA1629E4F47A83AC9DC445DC02FB923A28E749D7D1B8F5D3C793DDA75074190AFD14553EDF40AB9DAB919773501C8B2445E23FFB4956A243DA3CAC508816ED462A6F556192025F1341610EC4B22773309FCF984C376E89213E4197C7A713C9301D4235690E01E5224D69F694826A3957DFE48F0E992BF1A53D2648390B5E89BF6DBDBF39E4B8825295930328DA774CC865305BBE330921EA1FBEBB92E3340CDB9C940410712DEEF53112DC0CAF835F57CE70079545C92DE10A510854D0F7C51C597FCF8C4F0DDCD145B37E4306DE59CA343C94089D6341F2AB4A85A73AE5511C71898CBE82F65E495CE0B2795A4BE90B486D4F813EE026170867067D0A40426B96E4E10ACD1EFB4212C53F302B9FF657B66A1A442F7205D5A42823FB60480AABEDB5436734BBA4912213ED43ABA4492A6A4D423352FCF66836BA1318AB56B7EFBE8B5F183569875776A26BB99EFE63B08BD9DA2B88231D626C13104EC4C357E3F6F0C39E24F40E8D416BF5DCDC32510BF5EA43BB1CC717F1C5C81495999B4EC6C39B39B2B4C5251262BAB8CF9661312D3D29E427AB9FDBC9E323187D326223BA4196572059BEBCE3A7BBB31CCD3715694EA11EC0D3FD92299A61B7D0409C776ADF30B371C0B00457D7B04E4A84C77FE64F09D6D588A9F1DD995D2C469BA74B33381B087018EAC1F23C9065C4CA89F7B4807F28AFDE84B7FA21A6EBCD5031958D2A34248C37AD2B1554A3375929C5E704D4030E31471C5785A5FB6A21EAAE36BA88B241F4339959D956D19702EA139C80966ED713767C16E4218B0B9DF0EEB8CA85D292A5C499FD5AD53F1F7A3CC278F0B782181DEB343030E4F1105AA2D66D2686FDD358B31559A4E4DEA73E288B5CB92A77A2904D7883BE44FBEF9C1CBBCB81B8101D725566AABA0431C9E99D19EC02B50191DEF3A95CE5B20CBB0237EADD88FE0C7C26C6336AD57E3A8449D17CA6AFDDB5DAACB36BEC4E69FA8E5CAA44227B447C88144043E79DB206DC85CEE53186CF87CCB8E633416C6B0D8B03DF1750ADF1F09D91D15C0DDB3FBAF8206FE220F91617692B9539372469B2CC8F32C550167615CCC5D944F0B563E192332B2200A511FEBC34BB31D0626EB91961C6A5E15134B64FEFC2B1B8B2037036AD941215D5C9F26CC2FE5D09BB851B302A746441D1AB18139564B75D44ABCC2D69C745F29B6C4412501C301BD7648BB529232BF0B42611B475160E3A6B33CED784E2344637755142AA7194F2DBCE84E75968B15D3B498F6A044B80581D61A139AD423E282EC8B4CA929A3A28F4AF9D61EFCBAA07800DF2B39EE3704D773A94277F4DA9E41DEE72A7D3754DBE0559D0E0BBAE996BB68AE96FEAB3AC5451E65C2B11DE0F7F22F6C82159B2BFAC57A7B9B6ED455D0FFFBEA46915D86C6B9D2ADF9A86E7C678338CDDEAE19DC9FB10A3BCF29519B280DB956501FE394DF10901117E7CF4D1C6457C19522FD28E877DB4459DB5D29C3526777D53715E5EECEBA75548BDFB4E033521B22E3F862D42C334982E50A6EBF06BE8F74E3D1A0804B84B629956003B010EA3ED095D7771B270039E483E34B44DFD492454E19C1660114781AE3EFC5932F44D6A46E23FA46600C94DA8D61B88B9438D02FBA0315BA793FD77FA3347D1F0DFE53E46D8697531D889ECA6F11604260DC36E599E69370B5351217C309BEBAF12D028EA356AA257BA57447221499298B24D79DFCA079302996740AC6106EE9C74FBAB763C01FF5795D7C986C6070BF653D25BE2942D50F252BCADD062A2E87BB60842C274B62A4FC34220955A81F7E1DBDBAB0A8D4BD9B3261DABB34849327B7070BFFCAA65A6573D9D440D5EBF548B3FA7E05E7885BA599E90987C34E5B2050119762EEFA4DDE25360C110930B8D95B0E20FC90EDC20BB5C57D7F5B30C395E4F74EB90ACD8BBABDDD0B23C5C9760EF0719700CFA8D6928C15048924240D2399B21AD08E41107FF86B360A14674B04F25F3977D53D99134BC7AD58EA62EB82C0D247DFE8C875537D2C2F81AC7670D8ACC5AAADDE3B70FD43A7CBA9DD053261A6FA9CC7920A2382CD6FDC711CF97E5884D1B8829175ADF6DC0B392CFC42095C4E40EB5F31CB30421FB9D4E965872DE7F3BEE4F7E5DC39CFC9D6E77CE56FFD6B5F461E56B883310953A6D43A4735C9BB0A6219F1D769E9CF443211F7ECAB4CE706F0EE13108D73534F7761AEFBE5D9DF62EF9EF324E28BFBEE04CBC3A81FCBF37ABBE43DF5AC80ECA6AC24C07B9AA8AA025D2374E0FCEE30E458B34FCF09D99E33851BF5B98205BD99A061A9088EA1D2F5022B2149B410A5C499C2B287AE057B1A11B8CD09187B87819E27FEDBD6F4B63FCACF4A1F6613DA6B6D8176A02D2BBEECE94E681130B9350E97D664A617CB69E5B5731EFC17E1EE61BD91170355869DE0FCED851DFBFBC1867F0B7D6C0D908356C1D1A88D90B418DB7316FD3022ADDDA68376830632237BA22B9EDADCE2CFB6835C356C5C4E6F960E32EA42FF43F395C6DA15DF64A63503C54F832D0B0CAD72ED3DC7B04F1975680B9A7997D9C285C5EDFB0D477FC72E0BB882DD9E00327D41B57F46F359268FC77D5E53C2F4010023896D1F76822591E3DB0363A208DE956F42C6308F3F64FB25BBB0861D015164052A8840990362C94F912A637EEA1C54B99EF63D3F054D0961B9ED8F60233471C347E21A1CC826A1553EEE11EF8D53CE7AE91C7A264430C335ACB5513D163467DCB74D00C1990B6D246B9D2F4D2649CACCA5528B34B5495377BEE3C4C2DF154EFFCDD70EBE284E2961542F4B65681561A1C75EC3259DB36CF1454EAB4271B04DA0CD547C5E1991DCD4161BD8A811B1DF2BF353D34A722C09FAF3CC11AF494CA2CB09E0E110D5C5B0A74AB6FC6DBED24D81629C08EB963FBB5214D51B3FC5D5D02B96976B0B7B5324753F16ACF90030092D80DC7889623F72CBA9398924F6310902401D01BF5406BF1F6E0BB9319622F26D283B47B529AAB804DF7F4C6E78BDC7C7E717EF0FEF9D2BE8C10462BAED17C17A20DCF5E534A31FBAB195DD4DE7D1B9D495C2D4272C69B7C7504C4E70731264C2E85D5596A0FE66D883270FF15478A4066AFE4EC1F3A8DE9A54C2606D1DA7D9FE729E289C443C80471E30336C04146343E6EF301C15C71D46EBC5E88FEC8B336F0FB370EAA93533EAEAA7316CC8C755AF8EDF3229A72B97BE8BE377A043CAFC774115475EC18B4B11D4D31C4ED65F196B299994BCCAB31D5ECBE62B010C2E3AF563A7DE6D977B6EB2947476D775BB4BE40864B821536CDA7515B37CC5AC9FE55592172E54C05DE23F5C85A46A96846F68911DF224D01C7862FD9C84FD2019361A3E8A757417BD876E6786B02A7D45B51511A0615CB042759F932AB6443960FFBD74BC35C85A3C7CFE6AEFEEACD0AC13937B42BBB300AB200B754F3E4C4C47DE879E6C3D628FD8B39300993D68B83FFBDC365BA935E65266B9CD44965F85A7C8F8946EFFEE3E0EBA35B3AF1034BB59498A2E3C9A91EC498C8286C3706EE2BD2F4AED2643A3AC56CD2D425848F1525B43CABB43BD08F63906F420E9DE2C1345B7EE502455D95A0BBADB413E4CD4B5F1C33D3787B4629CE60BDC5FEEED29E1403C0B4AB576FDB361484ABD0900B224EBCA47805E528ABC152F69761FC809B69B3783927A78D1E4E0EC2E46655181B4D2F4E891FF2E01033D8DAF842300AB91DB9D43DA6E35EA44A4981E98E26846F09D3F2E2449E9FE86BCB4AF4164013F013AAC244CB03A3A53706FDB95E46E8B34588D2D5A71BF3A4D8E075A19136CA9522806A1553ECB616D8CFBD7C65207B0F65B16F24818F679DE887D1412FD534CD57BB4C2D63AAB6EA1F884FF493B32C5D69A8FD850DB68154B34738E9C70BA9C324070DB1D5ED80765B29326609835B0A6BC487C47B97839DEE97077AA8E2414DA8269A662A314E9B8C38F15A5B4E16E2A762DEA9EC401FAC11358876334E30D9A5D10E96CAB3600DF078D580F3048841761F7B6CD3DA6C97973CB3EAE28190F1E006A79597F1C207BD1110F39327622BCE6613111A6DF8FF7F6A859C6A9601AA9330EEFECEE5FEFBC819EE77749371BDABD5FFE183E0963671A0E8EF8100BD527C01615E6885555B4E5E256630DDE30F5FFD270EFA0ACEE0BEEDCB6C7255E5043C2088E454867274FF69BCF314B649A8188221DA8C56C1D994B3C777DAD9BF73186E3BDF508CEB5498384E5DA7C5E0CCF3748A741C79494A3862D26CDE072B04D8D23E06E134E8A9730E5088B40FE43B0BEC19472EB878BC86DC926FD68EB34781BE3D2ECCEF3E0A30501C774BBAB53BA850C8961BC4BD6F9EEB1BD20A7B6C4A6170E880AAFF2020F632CBEFF38A5E0720E26A579521CA0C0399D527F6A40B47AE227B3E04E990EFA5668E6D25B9B4CF7A53AFB2EAF080946580AE6D3D6DDE7208C579835667810449826B91CF1921146415357CE0A6C3F02C48298C863BC027BF15562465C728254788B916CC976A5EF820705A28FE89E596CC9175C4B336BEB89EB8F6D196CEAE10853E998C638B761E59915939F84DA169A668826A388B8A990A3235771752357A32A31AD42201E51B21753424DB9359E1E5E65B3E02D096D95AF44AB73BB07F90BF1B756F186E65C15C0A68F28DB13CAEACAA0EA1EB589E59A342FE2ECD877C320975051DF144011EE09D5E6A033D006E7B66B669C24CEED59907ECFA7AB443A189561712C2846C9659AA4933116CA79E9DED26606957AAD39E7B919DB528F1757E71D05B39877B0B494CE70142C65CDB789AA9A8A7D4D24678D46C2481E475DB6F5C687FC4DCA5D5990D7A48E5F071EF85C8B06CCE3C69B90FE380584DAE19AF44C944BE10263EF9766DA7D995E417193F7040791865ABAA5B4A6478811C5A7409D1074BA0E4898E453D39869DCC30630C66877C9D213A35F58A6260D5D410EF3426BA7660B606EE2D21FC914E7279422CF5AA7598FECD6620DC38E60258911C55952C6CE1B86D62F7171A19EF36175994BD48828EB1C76B19DC56B62804F9B45EB01A52DF51BDE03ED374AB5345C44620F046B9E4BCE28713D93D5EA34E4B60164BECB69342130C9169B0576CCF3AB8E278A585746F21E2EE68F3BCEAA89592B4F27FAE695BE09EE85F9782190CFEA2F75D9B2B76CC127B3DB3C6B827A3102EB04214599BABC85633BC9853E10E0209AF9A9CF3107BA24C3DDD03356EFE2B5460169D7A26672902835DFBC9F974FD0DC8E3F11C2C8B051529841EAFD21DE4B2D85D324E3DB91A2EA5AAA52FABFBDA16B76F0B088E85F4873543772E368AA285FBA05E89EA77AEF331C6B0696DCB968435A5064465A252B54F458A42E86D9C462650C5B14A504B6C986FB310395EB1736384B6DE2DA3B1C5A5E429B44C0C302052D95DE9985CC0E95DA6E4CE53D4CB8B6159CB50E8B382DB903F9BE2A2EFC69CE4B36C86DDE90A55A87130687C9C4BF6D085DC259B1B037B32ED2A45C2D174ACED01CF3BE5C05EB4642F77EE9629C87B0F13398EE66F20D94E50C559D9D07BFDEF9DC65710F15006EF2D46D42BACAF04558E6B771B7FA83DC184E162B9BFB2C17F05E5376474A5324DD31E0C43D02C3C88D9312507D768DEAB37875BB4B1A2B65D0846F52E351D3B613CF65D75974476AD29034EF8E8A20DEE65228F0724FB0C462046AC5A56D6B35DBD5137668A7368BD28B662DCFEFBCCA27A18631C489F80F7D424BB22D734AA6BFDE72F5FC90803EC38750C534126F48C15A659B7363D0A10893DC4449DAE5AA3C70EDF88780C27A750681C5B00834C3948E5F53DA522F1BEC1FE58EFDECC55D0FB11EDD44270580764EED54A6E58A86285850E4B86D1DD6E3F87C0CCB43ED6BC439B20BABB3CD64CDCD2EAD94BEAFDAC1DE400F00C83B51AE89AAB3A99A1ED4402B2D41674AEFB46743C622A18F82101D5A2A2C3647CE0C4AEE19E1E2E95893767E20621AC04D8C5A02AF243F1C2365B9AA74BB4F1FB8A17840E520602CF9C8B3E215E1ECA88825F52BCE0EFD5FB7C3DB0AE64575BC211D1D38F69616260F62FFFCF84A0049687E1A3AA518AB77209FC907DB4C06890AC960EAD82DA0A8C07C77E187670A0EDF96E683A87199D3BCA3722AD5FD5E4E19B6C4961A35F724577240245A512E77026EB3C2099BF38F811E10FF85F339E3D6EB6F72CFDD732386EAAD360819C9F8F0D4D4A150F74FE61AD232E8A56DBC207FC34A71EFCA57123AB33E86C8014280275CA95BD37840E846E6840F807153C949086AED19F3F34152F38A0D3873BFE3051E43A24B603EE730A22A4EBCC9E29AA084598CBB4DC84CC7549B4F3963D00952C1FE7CB1091E420AE7DE03B96E122ECA98F251E25C410746E3D36AE072C8E9910757A109DE479B33A18D3A4661D242E772B2A6D20BFC12A861E908D198AB5C2080DA21C66975CEC0CD76188105094C6A19776B6413C72D11E90770A12CA4453D0B60063EFF74AA8FAFA195101DDE97BD0CEB3F088EDF3857731AD2B13FAD80CD37404B25F2FE5FF8B8538CA88BDCBECE6C28FADCE5F4BCA2343C4286416C97D2F92BE4019234C91D1CE9CBB4B58B541B894127BB26D5ECFB1A202C80103103D9D46DDA3D50EF1688F2EA760B2A5A974B3656359D0EABAC1384C7AEDB67EAA364B2C5E5A40E212A1EE7D698C35C3F142A4DB48AFB1020C129360D2B07D499B3D289160A9D1DE133BA9EBF152701A9C8616A58B0CC1F60057A8499E3E03A422E19C6B20B0908ABFEB97EF6DAD54AFC83EFBE81CE951BDFF3E7EF3670A7D83A3CDD15251A4128E228E9461828160D812018FB66B33FD47760782E170EDB94132DE876912F15C6C03BE00C36AF408059C20E434399B967CFE0C4A87591613CBE013ED371807E96135B348384CAE0317EA5CFC614DE4735A1720DCE0A5FCAF05486C859ECD7EE9039F4A74239A305C2DA2B2F31E02735E6096C4F90A48FDDA7AC2C5B544FB723300B90425A6CA21A23C9259923F2DA3A524B746FCF238461BDB9906289EFF9DD180390A8AA83735F35F793DF043E6E8E22060A269FE074E1634E6ACFAFE339BAF204544E0691179F3F1F5F9CA050668B98D429F8BBB099F6FD7A7F5AAC1E4CD8B3ADD2ED4AC54A09D446EA61BE0A3C9C6CF10359548A37FE7CBEB550F01DB27B6653AE022BF7A97EA7A7A9B7F8FCB450F20579D24A4E0EB4BCA8CB7C4D81D6131AEFCFD5A38945A90E31AC5D4771F9240C62B17C02C2228F4CA22B95BF097C55DD0AB0A294535315889C1AAA6367D296492B4B985BB9E13D30EE6B0F10B6456308AAE9FD010EE71448D43B230F003F2C6D83CE96A884694E3B52E0339893B2BFC4EE522DBF963FC49108083EDC5EC7AB6EADF257E85D70EA3E4A973B8210E5148740D8522227E927EE9EBAB553F2D0E7C2A5DFD62A7A05E017AA92A9D20AC5D45F417530951A3A785100BACE9E08402B307B1103FDE7CF740E058900300FC33A38C0D2B10635B606DC1A62243C76C3E376181676DCDA03D64169866BEAE6124EED09283FE50A11A3F5FB80E8B4D4B76EC65547920DB45CDF39BE5502CCF0D575525EDB45B81B0532DBF0F333BEA977910CCC2ECDB561B230E68E6A0680C60E0030CF7A8AF77A63C75471167205DCEE1033B3975D366663564D3656FE9E15C3D3709358368D788EE46A68A36BCD954EDD7F075B0E9127496760BDE2AA55988208B9B0963D0666354486311C2AB89792B44D2C713102AE08029115CB392E11C889719D2688D72033EAEC1EA17F6415062782DF3D960C125A0A148FE37F65C5B77D66E54EFD7857188753B71ACD855C468526258DBD400C9722E264ED5233BA8660693AF3E0E377F9CDCECE1AD7D1517984C15EF11779A2B832F19F064580E4296C1928771DCAB8BC330EE2590E60B441AB98F516C6916A75F7C0EED8262F8975BEE8FE480878A764DF99A78B0CD0AD7306BA74453E45CB6DE21E5DA9109F154B0204B530223B1B582D609AA69899ACF4C498F58618419B05BBE4BBEC5B71B650E1F92155D1A32D164BEFEDA51AA5D371A6336BDFCF567596467655549C6FD61D6619605061B96501A51A2B159DD19951A3FBD49D9E09810B5A89B9827F9779447BD53183700B7A1B7CB431F9402F907A176CE6A033274F111CA980B3C034FF3D0426BA7855A00677F83CF456D301A701DD3280B6AC7402924B887BDF43D7607196A09529A5826CFC5407F77E3D5702466E8D94367CA1C8D8774D01A996DC2301EF34AD80721741A194471922B0F3C42FA5BBF5063D71C4655251BC71F29660B923420DFB800D433B318D93DB29ADF7B92E7C35A4C886568D1BF215EE624680FDA6ED0E979FDF93987BFE2D79ABFA1880797E105CAD43C201131311F868173396CED92CE01EE2A0EEF3530D0ECF08B7EDA97011EDF768E829CBBF5935F56390B67403A0117EB074CF3672D5254AF32C8782CD26E67430F592F9BAABB1B9C942B36148E3F4C8B1AB4C82B7088F803AAED317475E78FBB863D7088ACF636BAB01D48A68CD59513F511876DC25EE2764B894EED499E7500CEBE725FEDD2B51B4CB10DE786AE00CCB40B0C754B31396A4C4E1CACFC871ED5A41B7B3415D82B990AB4895CC9B0353B5F277A3A1955E7F88BBF372766764783DB9638889781FF92E2448BFB1C94671057401F5DAF82CD1589780A2486401D9FCB0BBF03BB13315634BC22E9378EA156169B33B3EDD67B9407DD2500E75A032E845A6ABBA63DC2507DA8783FF39C4790B8E6D5E92A235C7FEE8EC33D3C668AE1DBC95257D952D8B94ECC6BA83CFB6FA740EB1F2F2835E7B9A32C84827D6DE789B37B551A7F83BD25AF9A4FE31E521D64311F92A96902F4B350B63CD2D042D3F94AA9D70299C06EC0193BA2F5114ACE57132044C8CD81C296CCEC0B2C9F0C1A35A42425EE887047CBEFC798649F15567E7B0307FD12570E700A3E2E831E452EC9F11510A166A5BCAB1C75D9E7A8BD22D55307C83133C681BCD8BB907385F85E120587051238707EEBAE9E554B414F8DF3D4014AACB096D7C40411FEE29479EB39EF6B4CEEB63C75F39DA783EDEC31ED3DD93ACBA8BAB1823D3EC1EBBD670125978408C13C9D72B8D5ED324B69DD8CEB6B153AC7D091E7AA2F5A274462D6F8006A82925809EC3BC93CFD3909051D290E2B077673DCEA803D03A999D21B2602D3D83A3D9E62F57949FD13124D7BC38F2175809760F5D13FB5923371F105B18B845D27D0F9B3CF3AE9E39DAAA6ABE0022F69F865F18B779CF2560AFB5777E2F6135FE398D579D697F6B1945CF5FAD995B61328AEA1AEA09DD0D89EA92363A326C644E17572BDC1C40C5C8651CDB377F0FBA741620F1C0522F88AD39A971C8A002FD030197E01A99B73BF3870862518D4CB26B82D43933D3726A6CC18B47D9A48DD1FADD90818D365D5026DDA75CD2A8807B2D29B5A75F57B4A97A3B1EEC666402B47F2A3B5D98252B5E2028ABE1AE8B236C559F4C82D5046E3E18F0D523F88A2FD744CD908CF1499362647531D15F273ECA1E67C14FBCF7DAEFF57ABEC3F6C6DBC32D6C463DDB1AA900560293BC6660D8C492D165A8E1B8B90FDB48CA1D2084D0FFABAC355A0708488B89EAB7D4707454CCD99E6D8E4E9EE44F781D8CDE8E9EE36E476D88B9FCDB5A2A6ADCA19E6C52D84A27531666262D247F9077C783CF54C35704D073051F637F7946A9B6F4F5A4AD2D885084CBF91B2CFA451A979160C86C7FFF019C119F7A3CA70D33DD44B9A1398028CFE6A0B33ECE52B04F642E16C653E35E2D489EE074A6DE524A4CDA2D5CDBC935F0933FF2AF131D5DAB5143A803D1531485241A067F8CCB9C65D056D48EC001B6AE9E13A10BF94A4D8940A70902AEB85C0F38EAB88DD7AC71E4BD86030271A67C30E944213D1B11698EB2C1D036389FC5AA8F8EB9AFF87A388DF62A034283C25B31D3028F8E5C14939BD34C91CDF203D07897CD8E5646821F6FEF56C6C75103F97F8BF9BA9153FE0543C4E5664A9F83E41043A9AAC737AFA4DB58CD2730F0DB40D87BAFFF7936E4FE48AA0222D822C3351DA7A125F4BE65F51F33A5CBC0C6130CF457D576420DAF5641373946BBCAEAF4A23EF7A953DAF046B20B03978099906DF83A740BEF2CC0643D426B999E419B7804A1B660326E4ACB0CB6EBCC9497835C0C745CC1FB1E55DD1E2A399A65C9FE44B7934465660C0EE528FD4FC0FF733A6815D7660829EFF2F4D1212C04AE41C7EF10C902C1E3A1FC2AD2AFDF18B0FBC3567AFC3B5A5C6419B74D6FC9D7D7D74C2917928E91EED1EFAD53CA63532F04E6C586BF386813FC14F6384F9E5BDAFED6C5F6741BDC55D0B8320D9F47C6C448AABC00A09568BB9521AB150323CA88A27CBF0D5600A9BC6DC95EF979E2B9DCA912D5B63E3185F9FA98BAB192287F53AAE935F2596BC38296EBA8DBCEA1810B3A81989B2B5E788918246CB7A8E8FE6DD2EB8C772EE09FFFB7763BEC902F9EC18EB03FEAAE6B24C1F856D1D3FEAF4DC6929F7AC5FF05EEC37EF9588BC80C1E93681AA93EE497CA9B43928FD41B507C7251FC3C4236901C964E80F6445F1A8DD9D04E7689CADAB9A3874647B15ADEABAFF835A5C77D12C08500EC8723A6435C32D4A1C574F1A13623EAC1ECA9B0410A52F2BCB222BF48754A9C8BB3489D8E3E720B9514CDB8D7239BB8CBCAB0AE2AFC7F64683C2251344FC53038D7ECEDB0CDFC3E877FB2128583FBEB384BE55CB4ADB078739AA1806813AE4D3715F5570BBC0AA5E0C38B68D9DA702DFD1F17D7A5DE4D6FF8E3DA49F9168E6C0E21AD14BAE6878A4EE6627C5BD9A23C4D628696B5ADF1FC793BACEE92823894A53A867CD6129243E6957E6F83205432686B3C641C053317DC43D78947E0E7C50E3AD9F1D42809380AD318FD8F897D3C09C7238B0DC46C81C352C5ED0F38E05164E1454C71BEB4DB6319091D89DD84852D75DBE9F2194584EB376543D4098B94345FD5335950FEAF708A204D8B747ADD9F3C84974998DF537519B0AC9CB9FC02CCFFAFAB868D4BB70512AE340C4969986682A3135505948D1FA1DC3BC85C873216397F582194D99DCC751D655BD572BF8C4E110BC60971D3F283E589823CF96E590BA784324579C46DA723BD65152214043548AFD7718D267238902D26752C93824294BBBE03986A62A44BE2B30DC6D901B51B662FF353A73EEBF21D7AEA1FD67B3F6624E70EF7F37AF3B525B66963271D914AAA97D665098A2409FCB8AA71C95941779E75996959863E605FEBFA9B35BCB949FCE0DC6D5DCE688B57671DE6D49962543D2D648D2597C36CB5D8F432536CF50177CBFF420ABAD50800C182EEA559156D07C692B4611199EEB3DDA031545017CE60C524F31F7EE09BCE5BB243CEB8952B87F62DB6BF3BA139686D4C4D64D83265E40E611761787FF4DE1963708B51F258B811542C3C716F254C20C94818D1784C344E4F2389B605B3B39A1CD698EA6286564BFE33252FFA1CA36A1A0BB4E8195B3CE19B7CAE786D5FB1F3F02925D2C0ECCC286D81A5945EA140E175737B2F139406C353B2E605AE1091F3026E699AFAE826151D4813E9980FD8023EDB8A15215636EB58697A5065DAA99947B50DCF1166C4F85CCB3738B8EDB20C17D78F90DBE0E15D2D37D0D5B9DDEBB7302353AA293579487F4F99A5FA3B515BC0C5DD4AFD34412E87A81F2D52BD19A90A80044AC73E0C8D638A6F24AF8937BFC9567B964E7C0E60391FB0CF8604A1185476DB94A535868855BF343DCF9B52D691537FBAB079B2A3D3EFA59B4CD042587E3676DEE219D0D4F46D3FB20AED1080642A8BD36497ED1C67E6A7E97056F74C414CD1831990AF920C0EA7815ECB3E1E855689739B289EFFB6D808A21F5F37347EBA0535A5118273B2836370EEBA2E7768E2515978F2FC4283979F8B4FB632D93D074A14B5E12811DC247316CCC958561AA13D50FCA2218A7B2BC465BD1E2F4BBD66D1162096AE65723ECCA5AD16E4A05423158F48C08B7CAAFEC5A7F09770F930C4860B45485C681B3EF6F7DC5C8C3D6BCFD50BB9FA121AF7479B68C34C78F72E6AAFD2385D0FF532823D0FE4F945986C34987E8D3047D70C2EB33979A8BAC66493F7BC4B11D7C31DD103583C1FB8ED4E35AFE7BDF894E47E25300D69EA74EE59C5A78EC81D0BEE3B5BF8D5B8509793AAC9E2A33C1664A69D40416CBFFD5CDF5A5BED42D4E6B8CF4F1A3C9EFB240F154834B4BA42F666C5CEB0756CA18976DF74024960BE2800047E808532D1398C359EE23B28BEABF82601C22D9DFF5C8DD0025C3BAD36868F4AE8E258DE2E391CC3904C87F21A360A0FE6F6F00883D913089B52B05B7E092700D858364144F055EB0C3FCB627CCAC59C2C149A72916DA59C65E6B1B9D776A98E69FC4F878F1FE370E0390610A95DA21E16815D71326CF4120EF555C9047A35DE44D44CE65EE16B336E04605BB7E8A8F653A4D82E2ADCD319DCB3E15AE8E32109B6176582D3FF5A6E5BBA3AF47AD01562BCBA70F202BEB3DF9C16241DE979F115B4494828A4B4DFDD5D0A31023B2277476C8A60249FA31424ABB800C30376E94493B7D360B3995F19F503E76F8F4C1DBE6A46B79A23D4B66DCB0539DD1CF72D3536E506A75980FE122C54F31D766ACF230E08EC5997110DC0A33BCDD159A741419F8E2BDDCEA27E741745C9D048A796053A39034E16F41759E301603ACC4E853AD9D6EFBEA6F64A6F9D129307184885BE647F923EED94EA98F174F7937C3FF06C9E78CC0773268417919312D338DFC0B79FE2AA20907284B7A70E717F8D7694EED0F1F46258D32D795C0879D4A2B9EBF03F073E1EB8404236064EC0989976108337681B07AFF76958D3A178478A90BA53889CF5996FAA6E90E2AEA5EC94F095FCD35B170A2C146D962E73372B793DCA489548B6511D468AFD74CAD6451F1F46CE7FC66CBE0F5EBB765A5D952D33AC8ED2F55120080281C74DE4668D477070CF10E413FF2A6EA6943C14676081A183DF4717A34AFFA4A733DBBACA3C567658446DF85E9008C0716058B82363C977210A2FE4C4A531467230937221C1515ADE6CFC4A6B629AF198F78A67CC1785C6425FC3770E989F0B7BF761B8C1E1BDB0199A2C5EA667B84AE0E4491539ADD7D3FFC63E6B93511521B8FADB4634AD4A029B0A06696C0695B90895613808F5B8A6678B5E3CBB56AC11A5DEB5E0EA78E4559C583C3005C08B6AD64D40ED09362E802BA541676C175EB45A74B048F933CDB311AF78A9A3D38661BDB0CF1DEB239FAD808B822943BCFA319627DC8AE9817CFA8FB4B643DB190470E066B60C29F9D03EE74F5CDBD06442B373D12F23E2FBEAD3942380C565F0912D0DA7B39FC9133080786425DA9C3972262AF9CDB3F5BE9AEE0FA410699015BD38733DE96722581FDF290B8722E753359F7F109C1508D9C0B4077BF66888E25EEA7A88D419C2FF720FC8063E861664BD71D4C1ADDCE12E19CCFE098363BE4FB94416DC9E61351652C1DC43C9037495768AC65C25DB3D07D6AD4B7AA58EBA2EDE99CB02FE96CCAA6D249C950BBBF170A802F3C4CD95D0AB03A6789E51FBD268B750D8C61995BF4B49C249349EE296EF573F765B77E0EA3154077C18207858C8F1038A24961CA1C5CA863E8FBB289986D9885DF0171F9A6CB00647E0F1E7726BEBE9217045B68E795D30D2CF34742BC41CC1FD2B0710F52034917605703DB5AF1607CB0578D8E9153833D86B5BE9118C12095FEFB32B4730678136DC0995E915C681369FB0C3DFCA472FE9BFE2B04F5A4AB899B6AFB3FD0E7F81F62325D33E1F59D60EAE5C8E6AC85B78B48AD0D4B828EA7B913014F24FAFE0D93F60B8EBC663E665E6592E4E6F1EEFB0E4E077703072DFF43B42988AF96F5BA22DF34C2D8C14333DBD05722C1D4C67246DD6989A4DC6C1E8712357B2F545583E6381D232E9E5478F9AEFD0418F28B9EAF8E82E02D057AFCA94740BF861A7654527C1BFFFAFD81BFF57C7432A52A3D143E294BCCD9111F377529B055F57E6565C5802906E6361E1D1455835B63A8663117056FCD161EA34FCEE6B8DD171A0941344643B9998C347C677425406058D9D8899EF87235440BBC4DAC137F49248730BBE6C61424A08BDDDDFB39BD72EA6AA0CF2425AAD6725F2F5A93FA05CEC7CC64ADF3BDD1D98437E574CFDBB2D70910AADA4C7A08F7D46A25F89C84E638A63637FDEBAD0456ACDE06723E9FC98F8BD604E8DEF6AD824E4D18A3486BCE98C9424A879186257C6030F675250E8E4EEB432DD4D428BEB686CDC1EF9E0CF7BAFFEBA0453C64653943D77419F241076FFEB2299DC851BF4347ACCD0DBE7C76B265F5474DCC7DBD78DADA543ADB14F6529DED1E8338FA2B3BD02C68A6633F0D81D9CE88180B8951768CA8BC949621965B7B30D0029BFAB3FB1528C67D507058E22F2DFD0DFEAB8231867D80D8F11D68E2155B96FEECDE2478991C015AD98E19018C746E1883D2ED4D69A2C761610136FF4E079D1D6872BE766F22E11EF60AEA5CE3155CE287D19D3A470D9FFD5815A41C45317949448D080CBA7071756308382605FD22D62EEDD0DB68F09223CABAA0FF85C33BA5EE88812E698886D1253E7488C78747CCA5B941D279622989DE12F211FCFAB3AC9A2ACA9204391038AC776C567FF29D7764A3E10A3A3C2C0753C93D61DF27CBA0F1160B90DAC5284E7655D44E2CC3ED83D76F5C48F63BB1E8688DFAB787C11C40547440DA8581436BF865AB0575DDD32CEBD46F3195A5A9A054EA22D672D18F8FBFCCD8C28BDE73D48604AF4AAA7EADE15474D17FBF3D35CB87C3CF66A8ABF6AC0DECBDC3F2304315ACC64EAE5A0B16440FCC5EA2A1F27C7563B491E4F2658E3111E0E458A9130C101316B617F4825D765F9BD28B9DECE07CE042F70F290049BD67B90F1776E97531D1E43B3E4C7974F3C9D0AB31FF0A3A53E035D5094AE0E8701295031503AA0121D74B1D8F332BB7903D6818A4D401DC3D14D1368C555FF58825EDB27B4664FD58B2B9828C93DD68F71A7DBCA5A2FA032B02A48BFC920F9A120ABA1F259B90E83D46000E69D71BAB0BE1D075A4BD36C47D4A87374ED906366F14955672F199623782A006406B50B46BAA2D167BB3A71C6A065D14CFCFD0423F754330FF454D6DE74CD66B27AF7C045F994E6D8A94DB5D8E15F2C1FD39F3559DD092F56F3B3230E3BCE1B80379B9FD7610E91C31ABBC407E16965FAF9AF54550FD085FCCE6520B8319CBE1D234D3E35C8C1E0615D966D8E819168080983D7F4899F486C58D0442C80EAF328FCE7916DCE624B0C4E76895911F5C76256DDD7DDFAD5D07B2980CE6617FBB774FA83AADBB9A5F76EDC87ACC5B6AABF556494819203782AA059445DE7F1F926B1F139DF1069E81E56E5893602405367D7340F9E8D2E98B5554DB1BFFBC7A4E43612A1013B4AB758AE7F5BAB9ED10B9863585261695FD1DAF3B4670D77955E3B7472151286C8C918112F3B2635AB392195F0145A5952C2AC083BF6694378774F3A45A053DCD0D7076620BC8FB479071E4860E7DBF4F5C310E5BB420601A67612AC3B642297E624A98AE3AC0667D0DF641A72B6F175A431AB99AE760EA2248ADCE2542AFF9B59964A61BCA40A927BC0D85C6A8493DF76666326BAFEC360691CEBDA2A641C3516679F64DB57DED4EAF6E10E845FFE8A10E73F753D91273262E9309128B28AB4F5566F135D1C47F3CC7513C3F1ECB26421AE876EC184CE900D82B3234A23594C432004D6E7A8AC53153E2393F39238C4AC733261051287A0C5CFE001FE91BFD94D50763A2380BA47DAEFCE754AC1FDDD0D59EA97D1C45D1C0D694636056864085B00C03EF5B8C38966C2ACBD61DA9B769DB8B696227B58C97093370DAFE5EA4ACE243F83F9708758A843E0D48E91DA90EB596260040FE8EF4F6667335E0D077C19C2A820E8CD23EE0B4125C963FD30A61B8097A99B401460ADFC9454705858CBB770244F085B05561EF0132E7B15B1756006FBB5BA5E1E3A2720CEC38C605BDD2DF07D63548ED29B08E54CD76BAEDAFA334764726B1FF98CBB20894D316115074D0F2D97EF9B53CFF3C233F107B12623C44FE44DCF01B151317B73B343F36F3858F8DFE1BE41D34736D75991CE0BAD06B0D0CD41C5D06289731401EDDE3D8F27BD101DF73FBB5F5990F58B9BCB8422419F8615D8019126369F83B1CA627A9DC42C884F6E2251BB9CFF75082749CB55F4C872EF6D384D642570018C76E9E0843B014BC0260EA0FB6E69895737A1EE7818B0999E0FB03E8A580CEE4BE0085E01B3A695D946D10F096D40E913C63A9BFDF8B95B7C6F79CF6CCB9CCF8B1D41B09ABE64A3F383E0331C967CB2DF890878C7587021902C47271BDF3936F583F094A7FF296994091A3A59D3F2708AF64CC66D1DC32F3194B0EDA8574A766A802FE76AD1EC9932D8BF867AE26EAF6925F24B7E6CE591EC32E63BFCA4BA28F3E5C78C506900521D4A4713843B6D9C2BC1B4790AAAB6C087F63BBB781D85C309F427E7DC65C01EAECF8CD46732E197327D2A4B546476A54553C272B59ECD418318B5048DBE5074BCD8151CB23A50EB741E15EC39601EDF1751B17EE2F537CA2BB1F9A17D8F0D181C6D3B4F29AECC70A9722166B3B54A93C6365EA469DC8EB1E17161CD19B7E70F97A07EBB8BA51498006206B5D8BE7FCABD68781FDE24D8D2A2453A928D14AA078A660985851A046C46206352EB5DAB5307A32C40C9ADB86705699A660C8D2DD5E73C02D13C1190C9E00FB24BE37DD4194694C70FF021B57D32F5B4C98DDC3D1A05D558C31E91D98BA3D0A199634D8BA2CCB565E94F1FCCDFC4EC3F24D843D0B6DEDE67ECB93188C4FFE98800B8124EC09E8774253C469C48072A975A4FB3231ED59EB43B812B1FD19F8FE88D414033A71037440040C242A7663438F31F620BF83C38862E27DAEFD57DBA2A186AD0316213FD1C52852642AAB1ACDA7B422427C1415DEB48E2AE574EEE8CB9625E5320805AAE5361F224EAF265A03E2FA2ACB5C465859A163F7C6813935FF03A770142850109D0ECEE404E9945FDE8CBB84B4ECCAA553588583ADB2B8C7030255DE6C527FBEDBD90C497CFF57BC68C56439839067783734AA1378CD428682A44923FFDEC5960A6F08DCEE0DD55685570624D0A964B93DE4F09E716A5FB2BDFE6A523CD5EE2B2E8AE8682E5E063607F0B6038871A9D5234D1BD7FCB57EFC388BE79893F7758E8B4DD0747B9425CF2AD71F05C18460A59AC83047DC4CE91F0D341873E01B24C9D67439F3FB03370F9D111FFB8303AA6A4704676592B6A8563BA388754190F1C58A7E8777322415279E38ED10E407594E697AE0ACC58FE99F24F626A8143981A15869106BC937893C1D785774BDB44A978BA21162C7D73964F7C90D93FCC33EE466776029E94E7A160C34C421EE27D7F9C0DD305715792CE80C88D750CCA43965D450541DF954C7785E06A71AD3557793D99DB31E25673E2167B48E6C0DE2C0B52822EAE01A22DFD19C24428F89FE6E603CD1C153A4D3AE7B59622872A2CA07756AA81D980DEFBEC1AB157BCD546CA01E2285AF865418D93F319E17059D9AECE5D9AF855669E2883C15716D6A5F15FAAA1FDF11F905BA33E0E2F2255CACB0E70D9A12F9BDBE0EB45B6E0238BD7540E5729215C0C7D21525291B831521712F07EEB43557D6320689B88ACD37E470094722A31E994C7A882150A6F8D7D6D4E71FE39096617F7495C21EEF901B5DB71DD40BB7ED08CE01F2A421E8639BABB9F9368BEA57678C4267DE22CD08C8EA35EBF9E48A8EFE699569CF206FFA60D62A43811A2616D41BF2131DB75F304323BB44E05A1485403A0885738BCAA96890A5617A3C1BFAD4AD41EBECB0B3D19D90990442A8D699F7814BF82BB2823EF81ACCB696B5CE33FF4556F4A52FDC9F71A67F500D803D5AFDA22C799017A67C7BF7B75E837A54B205B895F8255A5345406CDDE1BC323ED2912A141E375A9C7881F9DEC0F0C116D99BCB22D93523B95E06A4EFC82DE4E38C954602CA381182FD8BC51E1C77276BBD9983D349303492BCE0BF4E6336A0D3BDC48E654C714C2003BE84735A5BB2C3B2139D84D1A64208656EFB2896C984A431B5B311A1C5DD80E9446AD1DD2615469010B30973A2BBA6C25807F22B988A181B33550BD061BE4ADD7E338B7972D4D102168D2AA2546A774B11A4EFEA208F7B4D06B4E79BAA79D155C4EFBEF714EFF360A9630FA39AA39F6736EB97736FDCE2E432C6544BE0624E8B867D41950B2BF35FD29CF7950A9A7425F44A96F17D2F20A6005E6E7254FBB28EECFA768EBB87E594188E80346D068EECA4B536346BED5A459EAF3FFB089240F975C7A461FE8D919DD79D0C844F9D5AAA436B38EB2B487D517DEDFF4147E532F54D303858925B7D189D86EC1A1AF0FBD5961EA8B4FC5D5F7E12ED4C72627B645663F297915552F6B56F48B3D1E475266434E685AE547FFC47CD5355FC87C7D135091393D248E541E040004440C9233AB08B37FA0C701F005EEED7F0CFA6DDC872A9EFF55BE815153CDA97A3B5059D330EA3DC0AD8142D4A86E00BCB371CDBEB46A7984D1BF17BD62ADB6351F603B20B21BE9F03580F8146D2F167BC1E3BAE15C5F93A301425DD7C9C6BF0322C95FBAEE5ADE5878995DCE3503D1A302A2F926B1E4F700D4334C262D6048D5D79AF3CB9F9ADAB8132C722D738AC3D3AF33BA77BE47CADCDBC2FF975A404C88CB4984D3AD4D7BA5A8908F3421A1137DF0209CEC94F5A46AF2FB6D914A62BF7CD099D3D60F1A3B723802AF19AB25EEE9D09A757EC2C8259C0E846CE148D9269D1AE1BBF9CED75AE0238E6B1F11E15D5DAB20B284D84D7A1E1C2A647DB40EFE1902A5AD3BA71ADF71EC31E9CD1E46B7B1AC99B67B739D1E9845158299B07B04D00A3ADF38E47882885861BF96A936F49980D107AF70DDD3A77D3B2BA00EC07711AE633B2857FA395636E02682D5FCBBF251CE53DB813F88F562309F40AEC47FC5B0C9817BB08FFBE785A38802CBE04A79A9E0E09446C7A3DE401C90D548077B5855C9B09AD7DC3D3E9D81E54496D64FA97D9CDF3F9B5AEC968CCB309FD8DA11370DB655424710795F8B5BD71C47C23C37C73ADE13DF9EB42F0EBC3B1ECC5B04844EBD3D71E0A849C648C0DC4C3FF9F4D779CC242E03FA7BBCDE9C91E003CF4904E1FD3F1059AB650145FA97541F1F2B8C710F3072324507575C6582401E0F0AF945FD2EB7E4BB02022FF1B42369EA094767FC5EB70A9E064FF38FEC133B653E8535B4B2DE1291E0F542C122A8C0F5B45B651EBD6C244218337ED316090F54E808B0574FB06679E46979E5D7FC399DE07C029CCB13A6819B4779F9D3639D003A1DDC490EA645CF7EEAF3D93841F9B85D197B0401490734FFE975F4312DC687A128C20CDE7F0A149873A0CDF57723B4A88E39BF2AA80C1DB11C4EF8AE1DA17F26F0DEEC88C1831342AC893D193E1F8294224EEAC67F067A7D2E41D77B27080807EE965C3302408883F10C8371214EFBBF6415771338755358778D1DB9840AFA5B0C8E1E93FD26F8E080D88A5350DF45CB34667852602F07EDFD90BCC2F454A6B3B9A49EC970E06C73A72D41523935356988952FC29A8B590880C400E8E60F5FB981E07A324623C22BBE98A616AA1F291C88E27B2A9B1EE4951080431DC399067484F9F92461A1A4E444472A2C7EF2E637D0CE0BA675904A060AD145EB613CBFD5A5EA9C8010EB8F9D5CE13074A3AF055844DC27325A6A945F9D5245002996C4B91487BBEE23F5191A232D279BDE8DA0C7212841A6953BC8074255705E9E046FDC1A15704990A5AC712C982A9C8002ED95B50C5C81DD6EE920DCFEF209605F8EAE08C4EE5F865B34ABBDFA12190C397D6B49B580A4005323719F22AD58A0BDA6096C5B3987F7B72550A88C18C5787FBC35E054192462429E167E3CE7C155EE85867C9DFD58AF6616D6AAB4D57CD1D1ECDF0C0DAAB918603D29DEBC84857259FC144CF31406F75FD0330C870A21497E24DA3FA15BD2738F9B2396B0185343AA27330579983590BC4F38A3AFACA6374C801A757BA3D697983635BA348397D0A3DD35AF1C399F94F08BE7292418F2CFA64BC932AAC14C0832D5EED3993EB7B0A411831129D7E4225CEA56785DB6DABA8732A8B0989384AC99FA575F0F08809235D03AAD2ACD0A10618FBEEDED982E4081DAA6D5E11B1D7E2317007CABF826C5055E2F79750D4F528162B300412BDFF35C353B94B110E3449A66FD682235988C25628CF2FBED9704297D517E1803AF3BABFD70A4E96D7F6A755FE910FD6FECB7A5937DC47F721EC4DC1621D01DDEA1B04C2B2E5C9D72C4D512CB512FF35BD9F053ABA85C863C996433F586603AB7EEC79824309F329FFD662E5FA6AB4329637465E2ED6F5BD60E29A8F7CBEC54F70EF74C07A4E78FC11A916099C99D7BACF123BC8A5B4A34F7BF1EE79EEEE34B73701123DFB912C73AEC6B97441DC914961A73A96FC2C807406363D7BD05ACA8EE5B7A675580FFAE8A8142C1B282F19ADDB96EBB1CC04AF3A1C1B7BFA129C89CD98EB53D53F4A336DED61FB0E53731F23FAB10B29D7E014AEF6449932C967E04A83ED5A23A32B0AAC2520561B5EA6D594E02CE4018B21675DFC0218AAA298F654544D00108569BF1A115C80F63FAD342585FC3C9322BB93451D4C8882FB9040B23BFC57726124A0BA5CC236969494C699A0A6F9DAA8193439F0AC0165F4A04E4DD78F7C8F79ED913DA486D41EF8B5EBF4DE9490260858C4769B629B0854D30E19007FA2F72CC4B78CB43192D2815BFFB39ECA546663AD43B25D0F6D67258EEBEE7A84A8F77012D9D66210EA33FDECD9166C99F1A52AFCB26808F5DD4271F479212BF8D87C78B1C2C449E744139EBC10F418274BCE929C004B57E1E35F11FAC021EF1E621BF4A6DE36E97EA156BD7E6D00CE7B7A881AD1D8AF7467C20675D15A13C2527ABC5025BABF4FDD49987DC17062461832A700DB2575428B468F7D239B64C7C8F9E15DD76047206419BAA7A5926BC2E668C84A915972FDDA794E468FE28F2AB2E664323003606214AEE54DC984BC2481888DA17C0A5B77CE07A83E4B11A0955CE18C04C41C9515D0033B91D262BB6A5640F2D8DA97255CF22F92F32E3D4CD6C219A2BCC044512F58C0CBBDD6741BEB3E385DA891FC4D3555098450956603E56956896422E0BB82D26A9411BA3D999B05FECF84A1D1FC47FABF634DBB8FB20D15C9379A8AD32585349CD5E91E683F116D2A557749CF03C6D6F42A24075C11FFA22A1AD451A7B1221F8EEFB5F6C46FB0B3E3C63A0C08179553090E5695E59CD3653EA15D07D8C6D2EE14639F1A0FDD7DF196B69C3E412DF370CD4FB4D525D6D86352E31DE66085170C271CCCDDB07E43CAB747A906BD2A7EDB2840E16810A960E76EBCF0664563546571F9E3D0CB2E4437C959C7F988CAD25EDEA4F7A372A9FEFBFE59C89037058CC0DB0EDE724FE7C07E21F0A81C498A6829D80D6540580FFD18DA881509BB7588B7115C1253B4D78DBA8838E2EBDEE87A3331AF1D7783003A79430D1179F9C6F5EB569C567DBB89B33DF0B9D59834FD2EDF57FE9103A7BAE8FEEAA6E1612C9D4F9ECA833036C27B7A56500C72F00E7E93E75590E5A54EA0EFDCF0EF94589978515686B9D8974046C40136301FB10C28D7B37FB42ADA4B8DAD47C8F9BBC4644A809170186600032A93D27B48A83A89494BDD56A5E6456ED61458B1BE3503182F5C3E5838B71F1D385B09C40C7EA9974D026239239F79BAA5378999C70E7782EAF42DDCD8314C75FF0DF36ECB8F88F0B1935473A6A9AECB00835200D97A2359B4A36A77C086A89F009D48E5B16CCA32BE1B7861E14299F0A7863FF040179395A717D5623689E943390F6E9B70743359E5D3FAC34F49105E142B858D96F7DED988F9D2B55A8D17A34F7C65A5544881C1D492683D04C6AE43D828AA478A360EE23C0E027C0C7F4E67FC3E86CFF6795F5DF5D46E43080D2BB69948A1D89A4CA5A05A75EFD433F21F65CA77CC9C7B94617E6A7C2E2DFD1803A2F1FC42612804286125BB6C76794875DA503D06BCE420E7F8ED8A0A31F2F75BEE81570F5D4FD6B962787D6B1674B266E0672133C40C241EE6FA017A6661AC3B394DE340427D37CE588DA52753DD769B4D62BD2C8F39FD3CE060FB1FB254ACBD91DA2C47EDAC587F89DF55704CEAF57F948AB9FE0FDA71754364B8DE22377CBFA2F7721299A0BA91F63A170066F6C49C3E6DF7552B9ACC0021475DDC14ECF89627AB1AEB6C13919E9BBC2F9E24972CD8FBA5736AF9991563BED9DBC376BD1A6F4E63980DBC293F4F165CE27E7AEEE056713BA009EBA3768B976357F9E22BE4940BDDB228E3512B8A485740E8CA28E82FD5EBDE57C9FCA1DA2217CCF6BA5EE6442E2878372C570831DAEC68913A7AE634604D801CFF80561F32F8292FFF9ABDE851188D74FBC0528BFA2463D80C2904CDDEF4532E1B38967A06FCAC83A82DECF301411608661EBCDDE28DE83C6D4E6CEA95643D57C233214B85710424B95F025460A8B9AD52A5DB21E734A4A7E3B04E33131289769BA1D248EAE06F73EB9BFF10A5397A4B8F1A7628245A9E41BF7BFB74FFF32448518252BE26561BB5019385B028BFB5D9E569012876CF409A15033293CEF69111B9A0401BE730BAC3BCEC583888B99204CF06166251E51A667A962DB8D1A510B350CB27CC7C5319A0EB2191F883FFE9AD6BC3F4194B305D8B9C186EEB4B6AF756ED5BBCB622FAFEC39C29414CCBBFD08E3700BEEADED7A3FA3C0760DAF5C6A571FF081659FFD757B6B8C3E41F44249A7025999C8FBC920460B771C207572C4326E54428006CEA324A4E3CF381116C1E63F5FF6BC747219BC4B8A6C3555A7A9D08232C6323ACB21EE8B6563437328FA7D92A3321797B9033A810E5AC7DD30EA1414467C6856B7C6FD5034CF6AE4B593A0B5ABA9139706828D6739418C1ADADD33C80EF4A8496E254F4D20EF7F26DDB50D01DA258CDCA0760E1295E025556EDA37862C6F125C32EC798F46F5CC569BD85CA01F3858EC6B4F82E10C97333340547E83574FD76AD19EF5B6584CAD0FA283806E1F084C3BE5C28DA8285B657811F7F5C21DD88BBA2D782153FD7DAE3833DB7BA99A8CBBF6DEA423B0A92B9B436D80FD65870C681CFBDE4B75D7C2F156FB1ED149DDE77C93B26815105456C927CC32FCC79B5E0EEFA0F62478234C7EEE307ED1892A4C0144F54916225424AF1E533DC1762C7A29A9FA100602AADC8E7761108422A0F0FC9F1A7C25D92AC988FD72F011467CF50586E6939B38E5E07979D78271E261196A79FB82E031B61ECD33A0BFC16832D1C4230FEB7CE500C5429EFD0FBDC61C93CF3BB7E4A773C1AB21A2E057C0595552B35C92515F161D1DA9A5DB384B788E4EA9BD14ED693978A111793F30B7ECD0DBF4444AD5FFD1344054061D929C3CA7DEF037E25F34679123220D1375BC5ABF88F83813002757DC665E0FC27863EDE4E87AB7B32EBFFFF8A3010825B8ED8373A3F2E27B9519A3C3BCABB771631C156888D9981C71A82E24796E531B62FB2E77EFEE7A8AEAC7FAF980F50414DFCFB6D713E2B12B97472D841DB09A3349E2E3B6BC191268FB23A2C07836D5069B0B0FCCCFE6ACBBB8AFE699CCC9B08C06B65F9BC5C3C236D90ACE54E9A209C11D2C5DCE3ACCCE5E8D6278B62EF37304E014E5C75C0462E30647033B240FF8E59A78B1A0AB97BAB96F88E52995AE111AEC77B4E934F50D5CF7FEA12507928F63A9FF9E00FBE0DC4A3EAC4B5FECD0B51FD830555334B269DE9FF207510D8E6D7260DE941992B87A71E2DB136109382FC17B1C2107319367AC04D02546D292308B013467FA6802E1E5A27190E7F776DD1B944118F63CB23582C2E75508C4BE2781777B5B31F2923037F0961EFA2B4215FD27881374E16B1F26A0A9C5D2D679E8FC252B4DCCABB3FFE02CDD524BE01A6414C27419C3F497309ED93F77763CF974C4C4E7FA09B2B52F7D8160E916AC396F69B3FF1EE3393FE2664D1047AEB0D03CDA6C5A26492BB5528BAA34CBB92CA6DD4D0B2097927B24F8BBC2FBDB41C035225E721E2A2F436633EA1211C353C452AEF46B9008D624A17985E065AB4910E3ADBB3E50E17EB97D2A5BDC3247B0A54636755858D73B570DC1775D980684789C873D95F3EA4AA58F0449B2AF51EC6810EDE6E7026226F946158C565BB1D3A1F3481292DC8CD84B6AF23432AA859CD3866B3FFC7D2E847EDA80A0B28C54CB6CA8DFB0F0C26CED25EB04685978AB6C035CC6EF97D0FFFE2BD18EE733363A4E558EA7E999261AEE1231846C2297677C496C6006FC9B52BFDB1FCDE05DCCFBF4A69DD5798D3E7B93046F2FD45023318FE639A6E4F82A31E2FA47DF62C14896092A5DC327D73A9F94B032E8ECF46DF84A7600E6847061CC84535209F1A5E5CCAC37ACB1E5CE8627C7B722DBFE40DFBBDDC646B2018E780C92959FA1173A09B725E0E7CB0B30EFD4666AAC1B72F1AE7ABEE6C539D4E941CF90F39AB7B3B45A1CFB2F4713278DB71CB1B7CA27FD8C1AB7C58A549FDC5D769F74EBFDD2C0984A4DB2C13D605DBD5E036E6E4747A46AE33D64DED4257CC1D214A25899261E528F165125CDEB1B3BB2B376C5365D0832511A1155DB568B47FBB6ABAEC93C2DCDF66AC54745B8FD8247B09E74CE90E441DAC7B67E75A54E5A1C40125570421BFF31872012BA10FC5277FC5FE4BA7CD949CE38F8BFEE8092F56AA695863C690C312A6387FB81187C29FD980476F6398918043F511C9CF4562B05C8ED7B28B3250B954B00380CCBAB97450A254318EA3D8A881840D933AD563641E25025D50433F03793C0EB9ECA200195CED9078C56049A6B83293B47F4A7BC0009C3050CA305BFDFCDAF3A74EE52986E58DDFA75712BD62DEE892F39C482732468D8F532B399FE5DCF82DACBF2F47A6D553DC3A0BADBD1614B63653BA0B944C55F9002C57375C3D2CD797C50172AACDF421D983040EF73404C70CA6796FC6EDC416BEF08498626538F0D3C86876DE5BFD9281A3F2DAC6A6DDC50DBA154E1110E028BD2E2BE7B694CF0590A381A97FF9E1210A61A1C8FD4193834DA508F50E1AAE2FBBCB33380E12F76077E3DB16D49AAA4668EAC9B2013BD558A50FD537D8CFD8339FF8C15D99D8F91595FEC66672437DA808F1224CA1753EB110DA77E6D637FC2923F8DBA51C8EFAD4BACCDC953530EF5A3188D3608B9C5C99CB781D8AA1DE2EE72B1B9A9BDEEC1474F856E956058BAC35DD1118FE46E524DDDE29647D25D285D8EF89362D167BB8B31E2B534AC09C7DB94343999A9B0B9497782E78DB12A7A5C4538FA7A352F2C72B06061B3FC4EBEA86A79687A275E4DC3AABEE7F554EFDAF70DFB82175EA99CB578B10080F7234E1EFE1B928B41DEF8029AF2FD0521B3D695C459EFAEDB1A68D671F70C742CEA2FF62B20F2267D942615179DE93550175F1BB32DA5A71A9B7BD472F604976C2A3C8B238A5E5FCEB3FA17FA772A6AA49E151CDF1E32BD4A0A49CD07D91F1F8EA29E8A9AB5A40217716779A9F0CFF7A1601A714F872761B20FC391F30D504241F1618BAB8C7818721F19D0377C20D029D9DCCC430A80227468F38BDC6AEA1E6067DF432215E3656AF8300D41DBD37171ACB6E990D536591634164AEC767221E19243A3AC81BBFB6EEE22268AE21A54ED5E652848A58504FA2224DD6D2F4521777439FEF5DC94A928B028F0E5240F1463E5A7162DEA6EB06D96C8BB3BF472500D79803F67D8F774501F9FD2BB6B27E6AD9A1E7B0494C137D12947AF968737B1AA487B0E30EDE66A8855BFFC6129BCB26547969D48AEA4049A2C03D32223E0C4C66A0515339CAE294F899E964571A42DFC25168C89CAD9038E862A8C833352FB5BC6D8C0D295E17C8E558142351504911A9395E068C1FA726195403AA9E58E55467D4AEFC681A358378F7BF2405E3D41BA85DA4740FA0115E622D31C42E19A32FEA80404F2D0B6347CFF1CB0CCB458C0996FE9BD8EB764BD80B6EB4E745CD02A86B36B5C9000B352988CB14AF47A00C00000830E1FF2271F166941F8A4ACAAE1BCD4BB5B5F485542BBD10718A92D873E3BDE961B93F16B35C475E19876ED3D7A01E44DA8388AB49DBB7D33BFB5FB47F51B6C12C3674AE5EFDC7EDF0F95FF001313C6833498110777D32AFB917F4F658F2CF0BEBDD15F019B7CDC2B4A3A753CFF6EB07EB316C378863F8B8D1BE3182BA4459D1690248ADC0DF79D7C682700773BD362B9EA655B660F28C6E3D909FC8F93E4E144FE607ACD4BD574DA6831471B095A97FE1BC816B8F8E6EF6B7A3C3D6A43CC2371B8C5BA45EDD0B834764E5BDF24342861D0866B58EEE0E6614D430A5CE8390BA5EFE1EB5CC2A672AE5D5F58C4E6CD6DDB6040DA2097EE0A576510A89693D3DC4096DD811D97EFCB79E579402C67992D2BA01776575333698B775235D7A0DCB7E71B09E828973038139E1D64372BF25D9CAE9819B6B50B565DC1141AD5A9EFC598474774BDA23D3752BDF096ADDF3DD81AE040147A56060A8B93970ABAB72BAF0074710B576B4D4D071A28C66D1A7CFE798457CAFC160EC385BC2CED079924ECCBB45F66876E970511B560BF3A84D01C02A318C44D2CCE8CE2865622353001EC3682950D4C005B8E8FF1905261F9D2B9294770BBC2C10F549789A5B4A60B629DE4B4550053E52E4203EFC188CF523D9D9809295A7270B85319C5FAEEF3F66FA6FDD4D0AF014473480934E351BDA523EBC96BAEC83E102254C3B4119B3AC4E2D5EC01CF03BAEEA12EECFA5B1032D416019E12BDE0223D5E293A3A49F170CABDC1E66DA866AA28D0652BD756A1305AE9EC151A3B233CFB1DA1607C36EF02B42C3561A536462FC3AEE58078499C3D3BA64AD6DC820927B1B99872AC52BCD67B5C94B8089A9ED6C07AFDEA90847F033A4CCD6BDF7EFBF1216EBF3008D0F00B0B07BD6D0B8F9494F7B299B54D3772C079F59F66815A7FB449A2340000000057FF82DF4B72132941BF228F19D0375C187012A374CA549828398DF6CE78FA858A3ED65FE97FCAC8144ECCBDDEA29A462947B8827354E76E3AA692F1788AB8C8138FE6324D9E9B1841530EB233B5A50A00E9916CC07B4287438A08BD32D616C4E08A83A1308DD860505252BA8BA9B802E473978390CB4F2D61FB2AC078C43DF103C0C96DE49D381B57865623B9175F1B8AE247FC94D31BFB01EFD8367C7195BD297178CBE0B04D234EC46D96A72CE1FBB0392A1D372D20F95787E32F2E752837D3C51BA1D0978EDC6462386FA2522BC8610647BC2CDFDB75908C36E499BD9A7D55909BA9AD6B9C68F3A309997803F6145C1133CF00CA4B0F19A2DFB6527BD66506A51071E0AB951145F3CA178AD6653B3D166B6E8F4449BB00892866435FB561A1F105F0C14B9E5DC6CC40970DC3ACB25D30D65CF1DC2E541BE9D97DF82FFF4FB1364886DD0A8D6E1D7E163FFF85FE6917A243203124514272FECC662C44E730AC407211FBD18B8C41F4B809C965A258814F64DA64DA8A4B18A58C6724FF4BD0A56BA5A4870F782CF94607F086499C4F5E3DA3345A6660D9FC0E8F1D03B3D81CE3D3C72F7EFED3C87794C642004E4C0101899145EF88074EA115B377E01053FCA41E436035934E6C0D29A75E0D4670D06B93EB19CF763AF8E16DCBC1C5686F1F0D97E403FEDE42227A06F8DC329763D490765CEBF0ED2E79DDE985459B6AB36F57A8A46EB7345E2D6A640102EA115F419237C7105319A00C2B11D77C0244FBAD3D7D26F3D293C9BFF1E116EEC7034BDDE76F73604CD83BCAA77CD4033441897BC5926C0F6ACA8028771BAD1024C551D20B8C834000002181FF0B6F7C519DA8F0A9C51C3A59FFF7F8BA4013B1968C488644CF3FD03AAACE2AE7C6214454479B04F327FB302477B2A2F8F24F4B9ACBBB180EAC4D3CBD15755E364F99D781C1C2C0F34FDA6CAAC8EB501C8F04258E638A54CFC7DDC507C34E4A39DD980949024F6F8FE5650D4415242863FB1C53F38A31EA2BA746FF049F92127941F4D43FF73EF96B78CA1B65A46231B4F16F276BB1B5C05542719C526D7FFFCC8EFB12A3F48A61EDBD3F56AC179A1E05ADF0C29E116FE871ACFD4FFF986DB8513CC6D898572C663E4E9F657A42B8D707CAC77271C28CAC18DD33D7E4FD927C65878011B0531D86C2A1E83A6F677F76BE628D3CD78191AF56A890403B43B90993FBC29B0FC414818BC63DCA55C15DE579D0F7F9C688D0CECB7B97E5C4CA5E10A31859EF619FD61BF2E4E4D6D2A5DC2FD65D2D2C81582473F121FAD4B68C477AF609C42B769F87103972A5C14D7300194060E5E4C84A1F455B70B376DBCAAA4AD661EF0322CBD5008B4041F1673845810DEB64F6C47AF5729979F199CFD488EADAD7504DE3EEDAFDB69C140034D0CD4EC77F12E194EE842F1F6CD5CD645639DAE7FBDC354E93F76D3BD6A2951FEC991247F53716E143D872756ACC2FA9A9DE7C142118C809D84BAE35E7525FB123CEEB7841B0217BCCDF8B5FBA47529A15288A1333999E9CD4AC724243181415BD757CB928999A6493A3ABE4C2EF29D5E59A0D7482CA3DCD148298A72D8C886CA0F00883EE1105A769D000908042C4C343F19C626EF5C850E164761A4F09B413EA3422B104CD454E1DCE0CEC6B551481C85315F0805E25E60FBBA1128DD1773151F1C3E94A4FEAC385042D37885D8F00A041D9D62D9E0A8C653441AD3ED9EB5507E5E95128697742A4042EEB3081A8AF596488F9253D5C5C379C53BA19B0B4B82ED69E184B88DF36CD4743B350A900F148E744128A67A2D24F7DAF543B8BB79CD0B34EFC7721670E45393A627B09EAEF2AF80CFF387A2828B85D8D0E0A5F888723339C0BC093C127606155244D1587F3A0F6D2A4B53C076C1F14123BE8A447E2EBEC982E2DEF264DD016BA61A6CD89A94EDC6AB99FCF84F4570825926B129C0657000001163656A669F8D3C9AC1E588762892676C057A6B63984A94F1D937A5B16FEE674FF53E5BA72ACA28459BE6797737E69019FE167036D8FF63574ECDC78493CCBD7F963D89AB45998046A4706B43E5A88F49BAE6A7F1F8F2C70F2D655439363E04B4EB835913289057D70860976BAD9BC968DC6D275CD23175F43EE363A64D2C66B0797DA995D2CB109F69A1DC74DA93A634F2774EF19C067A3091B359BDA7BB641898B5294D5516B47CC62F7D74A103C65FC5A553CDA24CB8B2FA06B5B184054C72A1ECF5245EA0D8F6CBCF06BD2CB4BE29B30E6104E14396D05AF755415E0C4FEB366932F297FF99845A74C466A8B0666807984CCB4CD45731CD8E246A7E37EF9BC5AB5B94829022D4FB72048645B0D953698A64B4F19C252DEBD65AB550033A88511385D2D4B81210EA99B899E80E6476172033956F685CAB640CE2A88FEFA87C058100986265EAB76018BA7C3A33CA75EE1466D115D2A31C47406377C079F378EC34B026CC0827FE4398A61CA9ABE3402D2EE5F01AD68F555B95BAC290D471479AD25443B3C537CDD478114C9F957275A3D8D059AE16322C4089E3039307199F335B4D96834AB9501C97E077D5DEF7298B39BEE2594FD2E345C8423CF7569422D03BD7D0FFDE71567CC76B4A016B6652D632EBEA515958C3A7F9087EE7323FA3307A428E9940851C84E8D0F6FF1194448F347477FF484439AC187169ACA926FC46C92661A44AC35864EE40EFA5EDCC600853CF33B9F2F476FAAF7D456BF4BC930367813AE08BBF2B0BB4A7031BAB4CD56899C6CD510AE1022BA837C2B44FA11A9EFB96F4FA4E474F6C882F4D848900A6413FF5FD52465FDD5BCF1302444A927A9B672EC7658FA65BFB40CCDD8332DAF34D83D9AE5B21819C1798E4E7B52F2B9788CB5C3BCA30784764CA5936BE22D059B636A92E1EA17951A575891E1B459FEBC78D719309DD93C597100A1AAF68C60AEE3729F4D004489795024C7695F269DA14D4146CD81FABE6E28AE8DBF1E2FBBFCC9A43A175E4C0D3DD14FC9C0E1CBCDA62443E75ECF0B94A08A6E5852FAE1DAC8A7296D2587043F1BD213D1657565D201E656300AE2F20C35BC41CCB5EA0ED7304614DCD5BD336DCEBC730ECA89991B529AEAB4F81165546FE9D7B67946CC022F185B722D66F1B44178EA3F62FDD95110E816D02469BD4FD3605FDBE8246370F6A02BC6906130745F1583D9A1CD509A77E64C51EF5C528056ADC0E94434EAA3A27F404E939E3FA5C4413423A2224E5B8A4F095D434485F0082FAFE3F327AF0057E487C4BBD628E7DDB84AA6BD8F7AD4EB97B07D621CFA49FA857A5536350A80A784A55EDB0A4B6B8E0115EA0401DCB9CB08DE6BAC9B601D1DC084B3155FBB3DC76D20893DC33A247F3B5A433BF1B1982EA75CCD7DA59EF6F05F00E710A6E9A4FD8BFDD2EA044302C3435DA0C197B2D9DCF126FEF7EB8B203B82DA2C42D8818E7EDA0F0F00000160E3E93EEC6D30ECB214830E0795A9C506FF4D46B8E33A158FA459CCE0C3D2222124AE0ED6311AF10599E362E0519B9AA1780F81D1A1067F06692E497E129F0742E2A17DB87D19E0A743754DC9C54F5760DA1633E9FC27F1E54CCC6AD9355049921601D7E4CC2B1F8D726B31882301A7669FFB1F46FF5A4B6761A50A5A50AA5E5FE7D06836A8E63E1168FF75EC6EFD4A88956280282A653C929587979C0959AEDE330C2563D08C613B85D8DC5ACAB2794B20BAB1B42E11623BA798907851FF098AA96A3C143E3733A10B2FD38CAE160E45D3322FAC2D0C6EB82A332D0679E3F2AE99CEAE6E1CEC80E118DF7A1678956E8CEC0B73CD8F96805DC57E56DD44329E9EC5E0C005CF3364047C246D5692E8DEB34FA05DDC632785D22CD4A3DC9318822F62A0052A6B04DDBBAE6909491CB1F492D7D1425E0DFA4E872ED4431AD75BD771E1CB92A5B145FAD6CBF1A98B3EF29173ECBFC45CCD6B99A017EA20127C4B4450C4549830F873EA394AF4FE0CB834952A3EF5BED7AB67708DBB032AE264299E995323A89D69957EBB6C08B46F587C2582610E912770C13511E7540C5856870ED99E963B737C8B174588A4BA717A322BAC985BE7C62DEEDA3DFDEC0022B23F5EF11205693B8E4E0996255ECB2B88C9EFB0729A34004621B3900117559D8B2556726D7E4E77BCD81685D45A93D3F457D127DA57AC48D636B573FD8E25CB99BB725C478BD64B7ECAF956A8815F7BD857B9B84B0519BB46BCD04A96FD180B6F58E5D4CBA4952E9CB60C8C9C8F12C8AA2A171B776A88D4C99DE06E83567156D9BBCE81622A80FB20373C8BA29E2BAF3638A289EF165B29B32C5C261B0FDD15E21438CCD179EEFC5A8974C1A29B774A4D4A561F02B52D55C5A5059FF979B07447AC2279ECC350F6152CFC318B0D0B48B14F77A949419B56E8D852B1C05764E831EC0F034D1ED46898FF2CBFC18CABA6EA176A34BC32CE085E1A78E2CC8BCD224D5EAAFA214A4BE0EB2024B140C0C770B58FA66C8F34A2DB427426FB63DCC5CB8311B412C777379A61DE228E801DEC35830C384B348ED37D269CC25F6B2A5C32D423CE333CF7148FD94E85CCFEF9AD1331C24F79F9ABC87D5EAD8C0BF50999FB486EB76E994603A6365A73E37EB643E33E0D575E31665FBFDF876B7FBD6BC151EB82121B3ADB670FE6F118CCA190098F5CDF3C60A1D9FA9E32D83FD8EDBB58C09519C1A136C6A67DBBAE0D07725E434F8CE2C2C4ABACAEEA70FC6FF001D4DA996054DFD2D4DB419D7B2F413A0783BD4A86FF3F0EBF53A7ABEA6A5C88F18FD265EA5EFF7B02C21C48F085D2800E28836ACF4CB6009F29A7B8C33DAC94DED1EB1C724E48668B81120E41919774A27E5B13B0738E5CFFB1FCF49968EFD17B8CC903315C147DB4A55E7AFDB9C0F1401AFFEAA78D38C1E98F1D85B782F0359AB056408605CBA09FB1213F1A1E50BEBC6E9A32ED153ED55B75BF9C4248198CF9C6282CA4A1BF0F36E3FB96D4CF644EFA9480AECCC62B07FDF284272FA21112CD070534BB99E0A4A65DC43C16F3F680220B1BC13B1E77F9701B7907ADE8D50327D3933C15BCF3082CC18F21D20817E3536A18357594C5A5A1D51200A5F32249E4DCF47C87B488DF9807634531C7EF723AEC2B624496AC836E6384D12B0D08A3400E3DFFB0FCB4A7507133C573E57B03106CE30BC29F32537348EBD0250B19E739329B4DC9861DE3AF4D1E430BFD6C5330FAEB684E4DBA9B98F3C0D2A6DABB689C34925C329E02B9D5DDBE6F286B6A87FD6F418F697E9AB70D3D29F41A469BCAF18F4153B39BC75C92C1ED134716991EB95366821CFC44DA0D8A0A6A529223F918C9926D346A983BA34AB234A8FAF62533B77643B15493F6D1F1CB706FB891737417318E69313F4F60C627615CD4A3209757242DCFDEF6EF8687FA18885F4EE3DDCD418795FA1A46C2EDDB08A12C22DDCF60CE3DF0AF273ECC535387300E89F96341792F378831A2056F6490843A93431728307A2F4E50CD9020829F359D135E3FBB7300880CA77A94612AFC8D54ABB4229B4D2636CA2E3E4B725BECCEED06DF23C6898AE77ED5E6046898B591C5CBB2C49608B263A066BA86A25D58BF9CCB59EF8F3005E75BD260D2C97AF402F51B68777900063190057E0745876368CBD0CDB24FC0D2B1505FFED31AFD92A9B415EB62AC3E36E1DC9C83A29C1A17374207D80AE8E217E08EEB6277DC35A65600CB07D6E67D144707F3C9B404ABD4A041303E790279C24D40ADE7DF1E9B9FE8622C45F23B485B86C1602B3F1E6A15132A3E4F50247E671C9B474AD2BC718038DD03D43029241B792CF6D2B35211ADAC841776DF229515E19F1E8A9646F299D994A1F426CFE6E872CD08DEFA8D7ABDA3B05DB55D093DE66F440704BDB2C890573D4AF444788C0A7F61EDB686CBB51B31D8540E04D54EB21F1CCFD6A5E4ED64F8C64AC8D7B3582AC7278FEB9C0EA7E439A234FB846AE327BA21F782B24B6FA4A8A65B8FB8D85E8EFAC5BC34489C4F9BB84B2CEAD464E52B65ED4DC10FC4CB6ED97CEF866DA994DBF13F5349A035154FC81E1E676D75FD33123E2CB162B4F0538751E06CDF1001E6AADD9143D20144D2E8C95E98201CEE68C4134CF0CA9DED06EEB48DD39BC295B8FEE501083050E9AA4DC23D70B02011591AA2CD0D612F4BAF9F45541B375BC09C5EBFCC0169B4416D88AF8F684A7A3750201A7935A1484F572B11C0AD55AF0A0A6B36907D505FCAEFB94B8F159D25F62FE1B589694D84E282F83DE95EE310CF4757054C6C1B273D02635069FBA5F0963F4A6002C9A36D96CFE8C17E349C25B960841C453CDF43E09CFB2B84F0BAF673F334DCE3A2900330055BAEC0F1D617AA706D7E975B816CF44819690E83A6ABCFABB37E948FE989CA24BCC9A0A1C410C677FF946D86285467E2C4E1243B62BDCB19B45C612119348479897E9B4B922A222A4BFCA60F4D7A1E7F371DC5FC86C62C30F065DE72E5D75A4A7923F7937E8ACE68B62283EFA674498D0D50CFB84F8D1C7C5308453162D4E1474032A650B3F076CED14C91DF302B1FED2C3CCB65D1527DBBE6D74C48BA60F452E94C6854C7A4A7083173D0FAACF2F826F021D976A6B9959AEB93352E9B2AC9740CB1D6178DF9BF17A69CC4C9597FC5BF1A7E20BE12755484FA5AE8043E58CE8B41B16873BC77F88D7D5DC0B7A7B74B280D36861395C6BB39981DC0D6DA839DA29903F409C36D853EB63B5FAE12239F6350F5C2552628E7C2BC9E0C0E936D8BAEC7FBBFF4CCAA2F301B7AC47262FCECFFC6277B2FD7184F23F7EB3137979A27A05EC4BB85A2822A00D6B1AE1903CE369D94C916B646E353419FEFC590232971473B1CE1739B188047DD1C886E6563BBC603D4446A0C4159958084244FEF070253CF41DC477661C0CDAC9C45927D0F14A044BB3A6AE5E55B7F5BC255244D90F24FC08EC453CCB63CB953AC6EDACB3A71D925698A184F999389724C2F23221B25B46E6BADE5CD23E49F2AE4288F31225E67833386AE137540C93C4F83666F6D67CF29AEE77EDAEB67D3E0CD78C5CFD4241F577596C43377D56032344EA2DFB0ADFA32659E45E119239652BC8C523224AC46BF8F25F7CEFCEB7DB2F16B23D03A620A5ADAFF1AA4AC6AAFF27967DCDB27848776FE258446BA2875B1126B3C11D447FD10B12A4EE8359EF17382A17D5CE03C60D15E45FE2C962DC7E5234C6450DDA52216A1C70CC4BA4428BA1F03F2D73269132C83E9379BBDF9A9109098D10DE690E59F433534B09D8B8CEDDFCD319FECFF26FDFAB9BEF2217C21295C5A070255FE8558B7D3C5C236E836DF02201431BC4B3753969C495950F30412021F500BB45FE3CB2D1EEA2DBFC3B73879F7CCB0C8F6E7A1AE4D0600B11636626D797022D26E87B526EEB4FFBED71B39815679737F4A52625420131EDC8B4914F260ACC95192BEEB5CC660C2BE7905545C600347561B5255862B0E9B3ABE1C8A461099196493203B17D9FB4847EF118CEA49A1A899E0D5F700CC545B0702B33075C1036217DCC72DBF7A276CC258B3E068F398A528CE826AE2A3214B1898517B33D7FFB48D4D39D2A2CF7CB9E0B9D56DF0AD31675F6B9C6546F201F230BA93C560183CF73F88A841F0EAE60FB01347D1B0AC05D1883B5AFC9269FE00198A6973FB2F2A96DE1386B762A0AC22F5330C04BB4EE4311FBC99C0B8766A89CCD89067B33E3765BD1059EB12266CFB145B2CB5285A888EDBE940BC51021187D92D1B0D765BBB76472E8ACFE87412CE90221435754F8048705776917F5B22419FA35ACE73023C3C9D61318CF910365EA4CC209CC3AB6567D4907F3507FEDEA30D792FFC661A4B073BC588CD15577F2248E0F03369AB9F9FEBD1D3C5A6E416B2198E3510062BFE27B1E5AB695CB1E603C0577F268BF203B2D381E36B6C70ACB5DB0940AA0397BD1751430D410AA82B04B268421C5F306F4976CE09A63955D787725EC4042E31EEA4EDC468F82ED6FE8C7AA3D4F61E35C734AD2ADAD36A0EB89DFFCD90A71B53D58ADA0BE24284AA8A5EFC828B48950A850B535E803DCDE4DB006DFAC451AE50D0AB039D0F0E43D579FDB9B54E4BD3694D2887A22D90D1068AC969F9D889DB5FAB8381B24B355EA2969065A6A3936EA3B772AF5FB5CB4BDECC5C1AC0AB6CF80AB61A7393537C4A450592A9BFCBAC8CE0DD903ACDD8BC8FE4198A743C8DF9029FA52913F2E56592E9B34C902D88BBE4B99A376D3339CCFED8EA9E18E7DADC389CB795B03B217815A9847EE2EA018E00019E16D3B3486DDC359515CB186654EA9058A494ADD274009E823D4BB7DB2619E578EB2DE2E5DCB97E0C47263ACB93EA6C1809E58A4E952B587A614591780D4BA82682314B4B6270254F0571CEDAFDD6775F433EE7B9F204065209B187430B717C2AB0F6E7591F22242AD292C2684B78CF3FE9E07C0814BBC9926AAD7076A2F4A645DC2A78987ED617CDC77477ECDEE323148574DA332E7315AC068C16799EFDB771D567E8AA5DE293768F14D8B2344574BDADD0FB37910AF43FCDE1BB8A853CC2189D1839938BA20FAE7B7595B2063E7ED9A77C0637EF0F173CBCEAAC28EDCA60F099CCF79DD839BE238297901F7BFBC62A144EC2157944B98A0B1C111E715D6F991182C5B5D4D19D572308C66071D4833AA6FB8444D2E153015C5F8F6EF56F125AE15E9EA00844637B2571240228C88A0FFB5B7065E09B25A1289227593175581D898872174CE7C5E496FFA2BE406067B19A1DA37FA7B26FD9CB3CAA1DC800B3232B182B8487B3549C37CE6691AE6DFE8DD4F44A423EC2EAB2B6C57F7323149AD112BFDBDF4E64BE4047E8632AA15C23FA3F9034D81D83E90152666E79922BBCB2286DCD50B49540644516725AF0B7303B61DC3EC56CD66D21FBF5232831ED63CFBB56919402F208AE2A7A9A90C165A43E2D1A731E2232E48F33B5222F328CBC6DC1623265A3D828A22C429B8E76CE3F6B15C38570FBD20EFA545B42896C078C1CF84C468CAD452B2EB0EBA7795C871D6F4DD6B9EB66667FF47FCE3C315CB77AA72CA1BA2CD9D5457B54F7A02795FDE28A7504FAF4DE829F1A0EF5C436EE9B26C06707FB44E84DC02F0D28D33FBB8A79048EA65269D9C9665608859AE0059945DB604AE37492DE1171FA8A1CF376B5D56C0093F7C2F1F2B3F587C257355DB23CD2B15AE721BC1B8387565E4DD7B7DAD80E8295BBC72A15F5491A00D4789F5A1268DAE09DEF5C0CE3ABC4D9D793E954CB8969C752BA21692C5C8141896039363BC014496D08C42B373C740B4E7368FB6F05A5B8A39B5C9D885666ED08019F167D049C33A50BA000001D264B1480110213956E2D5DA32255F3A948D4D6D6EBAFBB29DB3BFC030DDDD7654A67144BA91DFFA4D22203CD478AD74B629A9B1E9AE4B2F887C70A9E24188DAB7C9AE31BD10FA7C7E1F4A9E14D5BF66C643A1A3F1CFB5E06BEB72A7E23ADA72B082B5A8AD6BA993CAF6E269A7B7AFA859C309CC7631AB341E387D6443DA43FBEA5A9E4D93C5DC3A6AE4E08A554298DC773AE84820D4DBEC6174CDE676FF0DC95DA4721847AE959141D1D26A3511889CA279B8F2C7025997DF1300CF6184C4F4F77A1C83BE853FEA65082DBA9704555158208447901C5B494739DAD853F7AE44AC000018A1F40E00F00839AA556C108ADCF7F8179DEDA7C990A8A4F686098B23A2F9CB2EB89E223E5F85F6E0F77E22B19956D51497C805A5C4A41678043BA837880E61A83A2064B8B300CA0145C255121D170703AC3CECAA3516907965213EB63A6B26093435229345365FE036A024FA06BFF37991833DA0EAE0188333F88AC854F7A42397FCB2AF41EB1832ECDD99DD8290AC5B530000CD800073B3C0000012E0B5F4AF24DA35EB0841502B4EC2BE5ABBD53E012C36F30D17852A08A53719EE0104C1080CE129351023802F2FA7C5A8A9AFCC0F3DC234805D1574A07D805D03C286CC0037680001852797E93BE620025E91932017225367EA5CF93E695800000BC2F069AC1E3871E95E9000008DA0D13C003CF859C99F0A869002909BDF0AF3169FA3405140000073D000AC2B41DE06EE231430B2800045255AEA56E508C108F8AA00800003C8C13EF4B9A035B0D1F11D60D5FEB6C014BCE05A853401FE844267C0D9B0C000000002A6024F2D3E0005F880005AC4B3B4003A07987212DA000024BEBBD5438DFA8054E0003E9749AA7E8146C3CC282DE4AF383C01048002E5FEE9000C7831F5042A02EBFDE5192A014413B9660000000234E36E885D0869049C05ADF40BF6DBBE4290047538BECCAB3335309AAD500000, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file_content` VALUES (62, 4, '00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 0x52494646F23A00005745425056503820E63A00003009029D012A2003F4013E91429A493331B428AAF42B32801209676E658D677298D2B471B72B097E18A8BD2DCB8B3FF69CF133EB97A32795CF79D2017847F3539FDFFDEF474A43FFC9E68818EF89D4ECF0FDE7AE3E8B7DB9A65F7E1980FFFDE6037BF3833FBD1FFFFD477C7BFD8FFF3E5AFE47FBDFFCFD743FF3DA7FD27FFFE15532BFFD76A6D396DE1E85D55A97F4D439786B55DCC7043DFCA5F2B57772FB032A0A9683C193E9A167928D7E38D907995EDBD7B1B16996957C9A05047BEF549E401428C3350DB499DA84B616B32888AAA22255A0C74670754E91EFE73C5A13F4437CFB12FD44848F08BF560F1F238D67641D12FDC44C22027853A4A87EC8EF0EB7DF25E214AD7032897EEAA9A3848065D48A114C62CDBA0CE62D989C23666EEA6BABCF7A13492DA0A0C86B342F78CC47A75B5240A37B1DEE86BECC7130481718EDF65D6C5DE6C91BE41DCB55AB39971461453EAC7F311CB2085EF4DE67538810EA565720717CCBC66D754DE745702173D2357ED062786780DB0432BFBD2ACEC68FE73EAA6BC15DCC2A923759DFA89C463F8E69F2AABA886D8B9B8EE2277F75EA39EBEBC89A8D1339E57E74188A0AE7760E692635D2A949A2D8ACA3A7CF76FB23278E2609DDD3871B12A18F9169F3B31EC4BFFD12A2F397FF09F350E29A06CC9043DB6CC82BFD5BB099ED4731802FF981E3781E19D1ADE9BFD79F90B762789E7EB8CABD3A6156442D99929311283ADED400228EEAF2DD423E3E440F66CA56137F44516E58F88E076486C8970EA27BA50B9D2615C8517D756E9DBDE5922F98949E1E067B2253B572C92197CB84398523B1F76B9407E84D019B19A33F5C4608B0BD740C8078D08D327FA92217494FD01999A541552EC9A2D4D0E814A5D87E1671829DA554D740982B872216DC51162FF4AB3C767A68245187D7E6A782D0B869583E7540C5FFF9B8AEB0C1FA4B0EC7AC648559CEEDC246881C651DD910354A010F15C452A1CA743BF201AC01535FB186931A82ECB0EB3BBC95A5CD57647E784A79A9C6FE545EDAAC637DAD9F8F64C7EC91E3E7E41E5D4242EBAA9563A170870D5D2137A3F7BB7B700FDAEC557FFFB6EB355D7B934FA6857B1D9737255D407689B9E5EA93EF8275BB9E787706EA6C019F6117D283432FA86423623834BA93E8A49BEC79C372BA074C6F51FB65769EB33FF396D7ADA91194BC2C174B2CCC1A237192C3A00BA64913263386BBD7CD66949E13CEFB9CAD099CE17B3D3FC9830F055B6C99CF282174FCF7E4806CFFE862219214F068B5C34EB5928CCAEBA18338CA8D0C6A23B00FE18D2002205345E46D38D8E0AE32E75D4F66047FD2953912FA9FC8EA2595475670756297C50E076C17E96EEA10B7E11486D0DEEF94222D31FC865C03447C9CC8B8B2401EE66231C8FFD5528E95A62A23AB64AAE7178767CC57D88E9B02CC2D77BE298BB718C9B07A972B8E700A733BD0EA1E58DC11E87C3424C43DE987FED2A6A90E694E61D4616FA66AA965888074D35ABB431E1B229ED2291F255D9CECD1944D0A8BD5E9D3544FDE47EAE8B8B8D647248E378590B357472FE109AC60832E409FB598F4CB1756DF9207BB02C626B35BAA5DA8FB4BDC4CA70B79AC0C5015335CE883C1CAE6BEF85B1CB457A3988CC0645CAA46CD0A22AE890B87EB12B20AEAD7E5FC484FA44B80C5C21DF8C705D342CD1EBF91182177866A2EC8B91C858DD334078763DFDC0CE2276E31FE08D8B6E83574EF5599FFE1FE0F618F01A74E62DA5C6284E188735BEE9893D77BD010412416E63CBB81CC4CC4E6D80FA68E3A66A1A67ACD1A6BDF5405F39824AF92A8ED56F0EB7AA221E8BD27ABA85138C0E12F2DBBC6A6599C2FBBF0C35F597D464B76F4CF54C568ED6557B4FC121F6ED6833ACA6EE8A4AC99D5F1DC2326B2A2AE426392773E19CA13373C8AB44664C34D25BD8A8FB6B007E82B6BAD191E7B2B884E29BC19293A78E8229C9470DAF1FC0BD305AEF17FEFAC5CE9F78A2F2A02E7DC411CA07E8A55909B4F2E7749A5918039CC71AD34071D976B534D9B2C3072A9A197B9892EA8C37CDF01344AC549F2EC84689727A0308F788E6803F15ECE9561BC5B465778F040B86C33ACAE85D3C5142486017CF310AF4787504E0FED0C4C74179409B5166AA0D886383DA6520DD3B07436B46AD577FFF5D07114ED8A29E45E24231DD4E15D62A891392B79152C3CBB8F43647354D248148B069909ABCB02E49E6BD0A8873C38D2216B245097B186B17ED6A7ACF15E29B7C143FFA6563112790BB9C4E51ADEFE2B17E14FAC913A1C0E54B6A46CFECFCE57F9B385A634993616A82297769F0A3368CF80F25C780988BAF387B4CAC14674FA093C26F97FCCE1182AAB7CB26AE30FAE092F64F28EEAC72BACF6678BAEAE29A35B4BD6F0D5503E00ADEB34670B8F937F6370310B7D535F8D47F3204037F48A9003D170E9CBB9A0B9A78550275077CD9E589478B025358D5E23DBCB0A0BC18595F92032305164479BA91A7A164CE27A4541BA8802E0D56519D3FE51DDD62D0D4A1AFA59C0E5B51CBE7F8C8BB47B64801FCF2671AF9CBF236A523FEF46A05AD18608BA434E948D58B4BE8F782C6F122D41F31C21C9A728AC681DA9B728A444A38BCCED2682C9261836A7BA4FA44BA2D712E0921404298FD730D491CA63B01FC3CBA7AFF6658B3EAF0BF01857E1F2DC6E04CAF37CE7487F2ABFBA09331C88C4042240A5429D9170F294D94A755514B0CD722ADEF23D0A3827FAD7DDD659EBE5E1B750A984E1D736A4ED3D1B0E10AB98E78B062321D1F0279D5540EB428727507BC77F2C96E97B903A9962DAFEB98EEEDE4762B98A27C8BC32E01ED81884D016F03B7AB8FF2C98450E5713537962C66BB4D6578B672F0A519C49967B857B9C9441C995B447E058BB5BC83099A8DA34C0D91EC818D38BC19A06CFB9CDBAA1973624EC5E013DDEA52E8A8A7676EA214A98B5DCA1AB9C1C5BFC18627D6B3000623F69E520D50BCE58DCAC97EC4182CCE58E3E39A861661C265E662AD41F45F1EB69404BF626A470A8EA5A51ABD77F0DEABEE3C0E48231B33CB2EC3F2FE04FEC226DEE85C5FA2DBAA5E299DC8D597CEF26FF0D38B54403701416C9D6F3285A6DE7565630D3181F863A5CB48596924312969E4CEF3FAD6DF6CA57380F83E1D0691AE654AE45372C6E6B150C220B025351ED64F199F5A51B49E6784A92344479F68BC6E915ADD8D250B612886DF85CFDDF553E2DCA9E7CAB9B28459900526736C383964A61F5622CAA90D1EC1B31E155C797F09F96E01E934E6A294EDBD14A6C88F12ECD842251F130596681ACCFBD75D81CA211E0D7CA1CDD00FD6BDBD8370B00D69E57FA738E1ADAF8EED7452D5ED67D3FB67D45068AD9D04BB7CD07A371EE71E447345F4539A07F4321269105DFCE8D8E5B780F0AEBDECFC4B31C6AC49BA2B60E20B3B871DBB323F895F5D6379532F2DD0F06B1ADED9E870DC527E0DC1F16E115A69254233A0AB7062653A0F8FBA845CCF7FE148E541F74E148550DF527F7DBFA4CD8A9A32856CC07089391AFDF20BABA4EA4AF4687DE9030BC549F9BACCD69289D3B9BBC66182F6FC9D20684CF01C5FA80257E6D38FF2A2CDC22DB98D0A0E95E8B0E8D68C38C8EF4B425D6522E659ADCFF5BD93E59DADFCA27753351755FE443FC7FBF6A78E6F02FF74ED2FA4264805214A16EB2579D8622408823820203FEE7CDAA520464ED13EEF2D448B28A5137D92A7FED7D73C04B7C96A97688B1DCCFC779EF4207634100397F24DA26BA3DA724D00D91002FBFFF4F0DBF0AC54AA07637C2D9BA5C52E0A7738209ADE58BAF503C5BDA2035F636EBF75CDABB8E8D29BA21208F8E948AFB59901057993CA0AF8076906326B9EC52B0EDE3B1BCE181A67F7922CE9A539718CE9DF7556C657B29DC3EA6837244C9F61945BD441E8E0395A7DE2838759D4AA4E79957D017AE0E70CEBE498927A8E8CF9FC3C564E39923EA1F1FC0F27FDB639A9D6A066113DAE355914DD221748AFC4B813AAB10A65C4F477C9E92F47313F5EAD33A6BF0895A74D7873D251C2B73318F117B1DF3F39ACC8F4A1C023CABCE07BDCFF3A946C71A4F254870F7D3D18C7A30D80223A47D2D04E003D0A9800273035BE722327074D7C53F3BD6D54F4FE216756C49106CE9AE2C8CD25865155E8251D6A1ACFEF3C23829951EBEFA3C080D9E62460F35ED9CB0AF8D256E888A568B6559D3ADEB5B0517F3A5B8BE07055294FC034FC99BA51642AA389660DC3635266A5F9A534E4F8B02698BD3495752C98843A9D87B24B0F20EAF6C9F1E12E027927E288ED8BF608A7A50D9E53A8CCAD30BD23151750CBD841C0C3B63A70034882C37D24DC41CE8B72668A0EC152C162A18A89675585F64A1759C6398364076D0AFB0715C0E76ED589CAC540575F8F955ABDDFCF1A69534F8A9117602CB9175D9FD4E0C4BCB818FA4D2639B959AECC15EA39662E8982E486769C0322BF335C2CD2001FA0202D83011416A441DFC8934FC213B0AF9AA6496C2C4949801E22FB16C020C76D45F1CDF375122927DA8C92B25F0B206B6F049D8C686E0C6846918D2419A28BAE1E98FF65668144F38EF2B5DF9DA129544BCBD9C9DB5D780F39D59742AAD582DE6919CC22DBF9475A4085F21B29ADD7FE03E6559554493FABFB564817E8648FD03F5CE8EC35305DBC262A0F4C21D0724E4F3A68D9E4A00F21D9DA605151D4FAA0DD047DEBCE3913D82783556B58A7EE89E71DB9D195740CCBC6FC266CB9D6E4B86CB919C0CA0B252C7E21E0105FB1CE735473ADF40BF3F74C92220D3BBE93DC58489271C0CD90AF3E9214A186618A10C007505BB043D4789472F2F277A7205BDFAE3CF5FF566C7B9E117F08E790432BDC4693A4ED59D53F857DB013F38AD0201CF8F9408561973A4D6C4A454D155C08B1DE4132511294E1D01F614D7C2ED5A8B6194A34934CD34749B42F55BC50E84FBA2C81BD2039FFD5DF63830D51A74A110993C30973CD2DA1A15BC68FDF3CF0EF224761E55662C3C9E80E27D6F32B6A8080B8B0192BDDD83B2BE6BB9FC1AD0604D82B5EFC626E25A6BF59707C8872EC08CF57B9183A0CC36887B92BC68CC180EF6D42C35F579EEF5995581C929938D58C3A989DFAA4AF0C57D60F45C3ACEF6B5EA09F2FEF6F63F0071F1F2F93DB259D2B7B832E1D52656BBD8D974B5917FE86B555E9D8B685774ECEB97805306225DCC238BB0921C4279893A7AFBE9B0A4A36B7CAC2907BE67E4E691E5F72DC79046DA8B3B41894E23EF90044D6193107B24DCD5309C892D9D0E21B2CC9BCF9631F605DEC9B825D1127C00D6026C05DB22AE546A06774F8879CE91A260BEA746C642CBFAE1406FF8349C54C4248B3E792BEDDE2690E00B7F0A2C6E29BBB497859879E7EAE427D4F905AC2F292FB16331388FC5E6A4E3317D881A5538A658673B2CCE754993FDCE6A9DBBF3141A481CDEB1063EA3B8E7D7C20C7A7B40F055BD99E031968620CF0918D609AD0901807462C50DA5CBC42B29E5F42B45685ED1DA50FC8ABEC3D77C2F1DE0C6DBBBE11F7521761D704D7AFD27BE8ED8E095235AC986057DE1F55BD57F24123321C46857695EBFF435AAF599F4BCF3C483BA3D1FD0D4E7AB3B9A014E050392AF2B4EDE7892F1029A83406B829668B4F97748A71AF9E104B9C945C385AA750EFFC52086575A296C34A7E157337CC89B9E938B1B8D119D864325346CD3EF59A3C4008B11BE02E7FF435AB0BE546F9E77C113565EE334CDF90DB7CD80C025DC1C2F896BCCEEB864C2EE21AFBB190C0089280FCC254AC258975BF0EF2DF348C211C510ED6A3547574587AE53423A0E476E53B64D8ADFFD8BA9DEB43318D5F5D1C6A366E0FE38B293E106E01BD4218FA862F235FCD4B009F12AC349B915339350289A42800000FEF800A167C8742BEF89FC455B1E9F8EA3172A8D3DA2C532563CB9FFAAEF532219BFDB89AB396DA8A7033E5C34DD11984B72C28FC0BB62327D236B8D4D9841B50C84BDB9213D9DD622CABFC225020341733852908CFA6E914AB664F5424F915B5EF1E620A58CA8CA893DE5EE3475A94EE0EE3DE00C62C6D0226A734135A1C4CBA5C7A2107D1ABFF38534328EA0EC52D1C0D7E04C5931889BAF8EB51361130390AD6A1C9311B73234EE8D4D931E7D15642323DA6C713B0A0464CB388A53617FE73A4B816AE401FF4ADC14CB44DB12A85E46D6872468A9878C753605CFAEE2449CFB4F62BF1591C648015E4A8FEE604D0A8F9590552A1475DB9A130FB60DAD8AF82F2A7199542F9AF5C874F083522E9E6B885FF665C75208CF05DD1203E6F9F51FE39842E2F65EEC73C77BCDFD3755374CF6DF2C0E008576758AA7049DF6DDCD32474AC0D0E19FA1836AA18E674BF9708CBC8629BAD6499AF6443B98668E5BE13C9A4B50336CD8C663BDCAA00DB283BD8FF3B1675D59B119DA5F424461D18D38D1A17ED07BE1509E61302C880F616B0E60B196DC0F7AF650E5BB1D916A5384562EDEF39B2E1C0CBEFFCC03375806F740A5CA8C09E4D70EC882955666B56442785CD1B2CBD16C375C10D326B0A936265C018A960145C1BC7D303C276FA7EA538B54D8A8F29006D796063701B83AE8E304E837A8471BBEA0C7867AB27B0EAEA89370F620C817BD66E9656A3F23B77DD90545AB2B506816E13A15CC2F3A25A94C8E3A006396F57071FB88D94274B25BA43AD639D3B79E21F53E929DCD4202967BB1D691CA3C98A956177CC7FD02F80E86281264B17F10858D5ADD36C9CDAF7233CB2C79DD1D2F52AA3717B23FA2DF800D2A68C6042A2F0D30374C7DF409CB599CF2129970A07DBBEF58FFCE3D58C4ABD534C84CF58F2384D501FB71DA2C0491A3B3ECAA74AF0E79BC8C29DE2E953461A2AD9389C411706B95400E9E5CAC9EBD4C13EDBBF2B834A030469A08F5BD1D3CC22C278767DEB17514554E87F380A8DBF4D0C3B6AC38ADAAD2DFF4009D9191DA83C8CF8131E1BE92C7A297E5FF4A1D8070D5B25CA8999ACF664C8F401E7E4ED0E214EB036DEB9BEE99FFF224A5B9B3672A508B64BBD8A3D07610D78719DA85011147695655542C29A1FA6F424703399D1C80756751122EA650CE5DB7CE4AADD3DD94AECF566C66CB80FA793AE3FC107EE42E7C038E5B3051140C256FBC6EF4A70ABFB8683A6736055B61AD07E65F2C3BE5C7894AD0DCCD73B444F6C9B84034B76FB57610EC541CB5C6E6C811D45AC52BC23A0B122CD7D75E50D6316918E480055BE4D8E5402E002856878EF9B16FE5B751020AA60D559DAF30077CD1BB1CEFA0D1860B24E2411491DA5AF2D7BBD043E0E92C99AA2B1489C267FBA9D4B9FBB8F4EACB1E3CDA64E3F16D33E6E78D31ECEAC6D794E8EA792E75CA296CD79CA7FF4182E619EFC2FFF1552DCA90C893C8167602BADC47569096941B8419B3859132CC4B83AA3CE0D78E7E12CAC3FF2E0B1B29F569031F066C727DA8FE383F3AEDCBA67A046132A4ECAF941DD0F1E4E4886C3216F955543003CCBCDAA7E50182D11E348C73C75490E3BACCBBAF5DB0EAF4EF27ABAD53F06C9C51F8AA04253A6A4A6000763CA411EA30BD046A353D03BC4DFC26BA12FCA3C0550B4123862C87E3F2D18562EBF963519500F0B599DB0428C587416DAA67E3B5FCAF8DABD9FFFA6964A27757AE609BFCA8E92914EE411A3E85553603FAFE33FBCBFE6317C6603646C6B92D444F9D3B70D10AFA89DCC6A9A41F8FCF7840135EEE6ADE5613F927E031680F59D1039565422A06DEC3D1A03EF3D2E2FB1A4A6D5A634B67DDB813C293B7014A934E0E259AB77FA81FA68F617DEFE1E0851EBB56FAB726F4020549C4BFD42288EAF77E08F5C4BACC1E82F4909CBB37C7E8644F94130D1A7F1E6567F2F739C9D1F8003C5AA62B0930711C933462E5CDB11DBA681BD3E4E47905946AB0EB042E07C1192394CCDA93C074F377BC3456B357B6F93F1F6001CBD95E8C7F503CE3B536EDE944D162E55C90C499A94310F16487E4B9D0BBC72A083DFA0999D9995571AA35109AE8404097C42435500C65E1257DB6E04B6E7413A580FD4F7EACB04C7F7A042045AAFEBE8D4F5927CE57F2B4FABF04D9F3A5F061AA7B60E764B5056AECAC1CC9F2002EB84167B2AE2C09986341DF6D78C43AFBE8664D18BA4019E3FD270E75490A997C9834CEB080346831E0E686C838D256E58D7B98D6E99AE02FEE8634FA27828304B0BD1CC2836EB2948D11DBF08DFDDE36AAACE3B521026DC6EF96911D4A3AC4D838DD838C5565FF15DD12992D73B391FD599F36C1075D12D9344D765D486C12A68DB0810048435FEE7F06CE7C9BCD73C1C7E05B04B98F44383A416A43B6057F401953607B71C0F3204D14137650862CF3CD3C91B7F046BC0D0F5751E814711878102D4AB3C5E251339A13232877E774CE39A016940030743D86B270421779C1D2A9C6B501CC3825440BF2C7BFBBB5D6BF461740AD659E435B5E7B60AD4C06AA2CB1457444543EC1A44B3FA53DD35B8C53F616886A20162817A22682C76405F4F2DB697A80CB068E394675488A2A531CEA60BAD1983EDAD44BA8729D917BAEC8E8699E4A50FB2D2AE45B745A2029DCB0F4032E7357D7A106D6016226F5851BB457556ABCC134818DC9E1B46529B5C466D71BAD8F947E3948B21CEF9B09EEC17AD456F5E0FF472EAC9D2C7CAC63BBA4BC14EEDD5DE050F9CE0C8ABB725FF53F9C2518AEE302BD4F4A3D802EF8FA2E97453E36429D53E80AF2D265160B0D133548DF62C837E00083E6B5A562B6F20B5A8F3BE73B0CEE414EB1B38E22DED10E748204B5D23C0EE75665800005863D905DC77EF349244C553BD6C7E89F82B48891B87BF22D3EE8AE7910E274E86D7E4AC2F9E5CD6CE8F98CE95442616BFBF71E64D79C8FB5A9EC31D4E8ED4E3BE35D3BB56D3FFC161B4A681F1D8D20F5B3F7A1CB38FEF0534F05B2128301E0FC167940A00AC8B658C68EA9D900BB4A565C78D4D1900D87D9A051090FEE864919E5D9D18027ABFC9FA445CF3BD05FF355C92A6A84C86686EF3A27AD19FF351FFCBAC184B316DE6D519228651B866A905FEA14917D4666B0638F02217B6C6270A07DEB3CCBB9D022475798DB390809F126A7F93EE2B50AEF300E69FA0D1F13EA7D199F7924F6C122031C11D37E319CE64747434E7A68F87004CD3E108AA4A5B22AD63A29B222EB935C4584A672222AB2B15B45E91260674AB3DB25202CABC94B5B02672E08FBC17C58A6A612737F297AE756EA367377B73542BD792DBE46957E020824ACA70C93C15BDAD79F3881AA7D29912918362394DDED1AC6657155C686006FB804997CDBFDAE81E34D4F17241624536D6E4947D68C4677234D9131695F01CC7570C64A87B82C08B1981A154CA0C1B20DB6DA482AB16D4DFB23F2949BB3BAEE492803146BBE72A7605792A89E5676CF2370F7CE1BA50195E492EA3EC9BCB65E854DD52616F89CF195B06A0691FB6463866A18257701B7BE5FB55298C6AC50999214191D8B0B02496E5723677F67833E12C42A67F14D46533C0E8F5C33B613F269A9A5DBCD432ED176BB11BAACD7D2CE0A2215DD5C2963D82E364EBD3D4415EEC8AF6E421898ECD6AE548FB4E3EAE87DF89059567CB5056831DCB9F9D08FC9C6597B8B8EF975F3D241FD3C9584A23694A82C9C40167289AA20AC8D29D66E93768F80DF8A8A000DFF3D8C1FC66DDD5E80488111FC751C4D8A2A7AE8DE8D65B312218F05AAAC598D2470096DFACE9839D3F8AFEBED42FF02194FF855F70F4089C8AEB8272A2148420A8CD5536C11EB0DB102F75FD0881AEBD7C940C8D67B2B01EB23CAEE42E70B70C4E5828CF49658519A9750FAC8CE5E143303BD3C9C99BF8B239F3F0909D81FC4D7F5802E92C58FC4B603EC127D51575F79C5D96926C25D3E57C3C41B8061543D6A8DE0D284B38E8CFCEF0C43A09C65D07DE1519381D08116DC82DE2B7C44356C0F23F2E693BACEC996C043F445AD5DA21AE7547DBF5FCA8BEC737BBDF398E3903FA871E5A36D1D040F5B0A23C6FF5CF243F544D8CDF669718995AF6BABC25F05631D3502F0E4F5D8FD2D1F7CCCF04687E279145A80A81EF823B5A92B3FA730856502D68F6EF293A61A785464BFCA9F69289BC066EF5B8E1A75429405636CACD1E67E64F8F0F569B9615EB07F38521226259272C0E20AAC10FBC21D4DFC9F018CF77C42890EB1A09408DD6864FDAC43B57A3D02CC914803FDE3F4178C8A1C1B58C6560065BD9E90EF98E505ED15F11176F23DE4FC72CB466AABC0D1E854E2758AB23C0BCBD65F9BDA74D110AEF874070E303AD39A8B581AB2222D408CD25E17BA75F8E91242DF87310D5E24C74C34367EEC96AF819B931FC4E16E2275C046DDE7B64619F26E56B3ACFAC82431498A2ACAF1CA44FAA32FC61E018266F5BDAD6688DC6B9A150320F4315FCB50FF2CADC71138BC1512612AE50F4D95B3CB4B6673AE2B931B4751ED3BF24B22F749123C66487A980692CF281270566FA25D3778F0C134FEEDDAC2362352EB13233A386CC41860F51B0282ED30BF5472D59164A2F4B44412EBB88E4A099E7D58FCFB841189D1BEB0B150642BD48DA5A877B2571F8EB3186FFAA69418FF23311BB23AE9594C0CDB8112440FF98CFF3228E213416D919505A87915504457C6A7106D7D01F1ACC971172BF6B9CED0659CBE62DDFFD459CAFCBBB04CA880EDD6C010B3D222C164001B90BC09A3E83EB6876BA6A47729CDF310DC8013231FAD94EB934AFA3564590DDD1DEA346894BC93E1D14F2C47883F49C08B5C8B96A0F2EE814D5DA6B81AF8C72950219B67740C7911EED21913A26DCD193C33C3B6C9961ECA4BD6A1DBA64F72901BAD5C83C887CE8B127511865A1CE19974A294CD4C84399F4B9D0C08F870B0937F117C9DB4CBD682644F2B8BB43E322F7677F7D74BD5A76E29C51237009008C8F25CD6D1E8F53AA5A07DA43F8424570C938AFD1EE097E5C45356328DA0033BDF67291705B4BD858546C56DE4847CF94444729DA3EA27A68DBB6915FE78D10F7EAE9DDF768E7DFBDD4EC791A6A421DED0E0F2C957C08829B7E6B0BD913D5D25FDA7457E23A65EBDBE18685B4FE30170BA4304CAA6BC260DECF03534F3821951E490BB9BA9B3CA375F83756BEE66639D6BBF95BD19AE23B4F2636991774D11CF01BA4496C049F969F098F5D0CE537D97DF34A1A989AF7BA6CC676236DF0EA6340B09D150027C542FA44FD822963A83B1F710978991BEE808F1158F8B87E4A8E22BB90AB71D5A12C803D509B2C0AAD2F9BF23FCE2EF15DEAEFE3F9C60D8545F91CB30171712DD1AD726699D5E175CBB6373E667B3E8E64C457F3F8921FB585A0538CE2471D149FD9C39A7BB8B5F9148AB3C6374B1DC39D3D0A020E87D9D2AAE4F8A4E288E39BDDDCE1B0E883F661182E9016EA502468217E7F5E7FE3B2F6B38D3C018AFAAEA17103C991B22A7D366E363D3C4A353574F9C7B136C547654167A827AEB499241893D412C970467865F9A648EEF6EBCE295F6B01606F83021506F6C84CB6CC3375DB84D8FFED03D80E39359CF78AB6CB5EEEFB833EFCDC0CD083B7B7628E36C55C03CE4A825E9CFBDCD4689DE1632A419F25A8D9EAB9179436AE3AFB3796F12738146107F46DD658C018D260E55ADD9881F5FAF93BDADA6CD47930B57C10C90000054E9D645E7F4EE98DAAAB0730D7BC92B7F538ECFCACEAC3257FF772B9B2028D2A6E314E62DB1808FC13835FF4C26562D41FF51B9A27D878F60ACAC2E0A14ACB832F54364BB742550342FA77077F77EC3D3C202654E214A2F7B3BEEAB75DF4E4F52546CAA7CEC7D766EEDB22DFD620CDF2797B3BE0500FC7BEAD021A4F3AD0CEDF09205C7AE644FEC581DE11916BDB7C2567699A5FA4B6096D9A58A0A1E3E494BAD09C35953D2E3428365463FE58303E2CA306FDB1603FDFAB377AECDA650B47B458C3AF43F64F195EECD1B291DECF143E6E765CF936C6EE6A7026E8EA9C48D9C6503E18CA1C26BC5E2EE1AFECCEB91AAFA9A3C002854435F07ADF01419A47F8DCC94A5102B24582306E34F845D3DC9E91975D8D086A008D7E3818278E56C963A4EC92A2FCAD89E10C3BDDC1817B016BA80A27C549D33340972050D8ED86B86A47FED15776BE1BD82AC172C5D579A37535C4C04F5B03E6203B9CAD86A2E1C86686D74E1BAE9AC229736D8DA5FAE657DAE76374F4FEF8AF25892BC61A72BB143B599CA44981317F7E292D3F38AC5AFCCF8B23FA930551D9DE3118443AE005C8103D4E62B01308FFF9256BF4385DE25A957A9CCA3359633F80D06BFC1CED34C010CF4C2AFCEE42DC3BC217195A7578F55C9F770D4AC48AA21BEAD918F12F47D9F5047F880ECDE64B693E5F36EF56ABBF565DFA315E18B36D44A0A0338B4EB3D6DCF540B99004548CEFA27176F469E076777B601D92A2CE96FF11FA6BA684A6408C76FE0E27569E5018A62B2090BC29CE390F3CF2EA05D7716A2160A04DAD01A1D879BC7F689358131F893E84FA9F019ADECE79FAB7ECF1E9510A4E586A8B68C2B3B325E494BD7FF86A26AAD3783633BBD9566D6557F75E3C992EE905760C366B992EDAB645DA2E045A0D353158956DCBE84C84DC2277E0F83C1C5CD9C77CBC23CCE15374E1F1240CF55664E1CDD550ADC22991F28A2C638089656F4FB7FAAED413FDF24D3390D3E25DF8001DC0CCA4ABA765BD43A778F9D55F607C12CD4DD9541AB700C94B175D1B129B38785208EC7DD5E81B7A957B7033E8730B7C63016CC56BE0FCD3DDCF554E5BDDC8285BC68EA057F9819883D58869FE726CA151E9602D29F493E5A00A543466E700598539BB6899534A434BDBFDAF44B4C918D24293B45D6F5E728B850277323E4F01B80C5593B856BAE1409E38D56156D3F18D2E45E1CF8E3A417C84E97CA6E06570CBCC2ACB8D01171C99F70C494773BB0BE4ABD770D8822F53D262ACF98DABE6F901376C9B2CC6710977ADA9A124087DAC2098928080ED3CB805C344C707004FC737ED4D881E634D378BC67573A6E3A5148B45D55731D6757C1A9C2DB514CA29B0BE6B4B5A86264CF028275A014AC879E9BD32FF1A709D8B6A4A5BC51E2787E5FE7D89F6140BBEE2A6E828EC35113918211C44D2E80CB62D957F2CD5EC77D8BC8F4FE8A141940CDF56ECD5402D3B6223481456C1076EE788186F0B8A36EAB592DAD81FB4F5B1077B2CD41C4880ADD92230642D5F39E3DA48B794DA1F1A8080594F7DD24DDBCD843FDE4F6152D9FD32B8DF58C4BF26310804B1069D4F04AF69DBB5B64EE5FAEF1FF6A1FBADF5964D28117674F48AC1BDA7F6515A4B221F792DF401F0F791111F76B2A91A3FDA5E1CB45970ABE64159BBF898777E291B804E686F71CA92D3CE6348F8B203437020750C35038E931460D4A734E4451FC6CBFD3CE6511BBAEE1FB70A391BBADF5F2053DBB24508F42E43665E36F70BC92545DDA37FBEF12EBF1DB3A7F3954CE963D927531C4EDFCE63F1442D2774DFC0F572F8DCB2485D4800421183EE54516B9D881D26CB573FA4FD8B62CBEEAF429EC26DA3D33903994F9ED0C65B248F200612380AC480D39847C05D02BA4D4163442DCA5D29C8848D46AA289253CAE7464EC2A6DE637EFADC82E1F7965486C21C529F22748DAD4783C56CA72BE2B2B11E63B8557ACB4C39CC73E7FD03B0A1F000C5E3256D5684CDB0F63C055B196944533FF6A321C0BD659FD8BAC18E23A107C03AB95E16E4EED94127A9CEF4A97395EA9A8D6C8535AE867114655B8D8DDC0EB5FC15CD2B1733DC45CB0B368C9EA53FF0C573EFB099E24D54C83A81D68000C666B14ECE119C338E0E86D418F260BE91989330AAE1683B3E1A42CB40A727D53F2C8F63DA34C5A1A3D13C59136B2D62CEF387CAC123B1BB20AB71B9D030C6F8D22A8090A063148C7C503D755A22AC5A66A4556F074853EAC37D9911858CB33D60F529EB5F7F0B2A1CA3AE6AD667C665514F8FD898B5DEEB748432A6B3D7AADAFE5989B5F7D83F376D852EDF5632DB1C52B7F8F49B671E4CEC6EF6A59FA903381A0D14A955C98DC8EE5C8BD96B1584F3518A75014A8BD1268CBC15131651A64815E035B75D1095A3D99107AF63A4934E535EA5E13AE91B8EFD631A73DB85C2FF25676D4DDA1A7ABAB2463068056C5ABAD2A89FA375053E46A6ED930C9CF907727AA240F5D1D7E380AEE19EAE94C2C15EA256C2B06C583ECF9E8E55B5D0E6AEAEDFAAC05841B0D8D1A2D57580F39A3508E5FEC996524FFCB91227A0DFD7BF9D3DB1D2D1CA8113AF7A9F040F6A30B15F9F642E040423B6BCBC2C090628C3D0CF04EDFA25E9B3F00FAD9CDF63AC377F5353EC423FEBCB5294F0E1264929408314D64A719755E02303E7921BBBBC6D068C94F860C95C917FCD2A4BBB1E1A31E73E1929A9564C735AB704013A0956286925918CC1AEC1E52E2C6A5325B9F237C3B5AB10D7D04687C92AA1ADF9B9966C19E81775A87A91C4DF4E79A35F2EFC280AA81D5DC1D9DB86FBA9A21E37DA1DCE13C16B0EBA3D1391AE4DE5333866EF7EA38148C55EC5BD3886D00B1579099AA961D2F65FFCCBB5F1A7F67F51518CA766D87E5537BFC8B7CAD3B009109FEE341CE8B75798DECFD01A3611CE073AD8D28749E68881082DFA85B727EC12CD7D39F707939A79D6B2503BB51813B8A410BFA33C0747BC02E2D530902E952E468AEBC8361F4DAB67CBB3A332817747D0B6F1B6D12E468D3AAF1CF5888B1A793098D3B62DC1FB368285930994EEC830636354AF5E0376BD716E93462FBD5E7FE758241A1A201E029AF52FCBA41B1E365A9089FAB82B741DA3E0A5A5F8C307F2B1BBC12301044C0C9ED0784C3EBCCC99797ACEA3DD05CDD183A99ECDA58429861C996CDEF0F77A18A567B428183838E41BB9762A400C70AFA1B3B1619B36547F0737B2BA74F79ABA9E1155ACDB317D79E4C24B7B56D13F2E45436E28AD552A76B247A6A5B05ABB5C39B9F62F828CD6E4D2722A9B4DA80216B927E9E467D92CFF74886A74C6104CEAEB0A593C6F43FBAAAC2E7094083C8B3E06B55071432D5402529207E2240D245877AF364DBB973C8F9AE8594CC51625FDDF8B8BA4DD03C3A1CB1C19251806BF146C730D90D62CC147B60A9A42907A63F38DBF923A12622987D1E2180847E509B52FA04172B3CBA9100C90F1F03C36B5B52898B9C2306FE1293B3E635FC589380B50922BCF909CE66B57AB1877A9DE8CDE5E787B930208CF1F8550715AA080D7D96253FE31EA9F5FDC3CDE58EB8A2EF0A2B23BF5368609CB880F20A2AA7A1E75850578E2C1E67D3E72B401A87B56422038E978C7AF6645F7C067E771D2AB600A926F7652EB7F34287FB364DEBFC57BA5A251B26EEA3B6BB2D87F5F022C67151DEAE19BC7FCAB9A9205459A15899E8865B5470D744B0E989285C8F044DA4F7198F764387C47426157F30D4962BCAC213F867DE371234E9024D71C9FDC0BE993504AE86E6D9655387DD5B592FE161B68ABFA9FC92A5AC854EB7396A489C0936D67070B3D930C3BED91E6BF6A482F7FC5D3B6FD7B1F99EBFC86BD061629ECA9905A95A0A48256C8FCA53C7F369E2E050367B57BEF244FF064A32A7B7DAC361E2690D17BE6F3DB17DC015852E10F1FAA3D0AC7F4078406F24FEF8595C4DD68D323DE64A8F5F332902CF49A8564BD44DF59E4DA70B1AB24BD32E2648577F303A39927E9215DDC23FA16858F08F7D2C8AEE1507E1AFE42338AB58B9211DD36CA023EEA7F55BE94686544CE6E3AC15EF3D105166B65EC7CF13BAA18D9837B7F1426C1BF2C482ADCD6A1F6C31521C3179CA5FCE8AF0472E064FEC6E263C42EA1AAFF05F2E2B56EB6225AF628FD9B5683263485C6C008FE732B2DC542FE2A427B4A0C4F40C0BB4D2E741EB397DD57098A0FCB94BA07564976F8D17F912420AB68949247886E337678BA4B55EEC1F275E8F45CF515426AC88FC8EED9B01F91442A196B04E5F345B4C44A5D999B4E7E8BA2A6A70389E52D7317464D9270D457FEFB1B7DE7196E4569377C726AD390C63F2DE7FE12BC58884FCADA13CB50803213DF25FC39F2444268BE8E9D7CFF003930338885088272BA26BF346A19CD0A421CF7986A5E9AA1BAB08767113360CD178B27D32920B552E4A0D3E394D12DA592E2C4930DB55823790C594F3A1756FC0BFE2679562ECDF346B8285A7F4FE10FF13C68A304A0EF6CE5348912C797A44E52C4EDA0B238974C3F61EDAF3F02E9C01D4A714F94218725FCD19D22D292518E206C848379F472E384FD67FB9C410E4381206EDFE61BD638B019F03A5375FBF3185BFC4611F1B19670350728123115BDC859CA8B9CFAAE5097B0CE2714BE4DAA60347B49E863C7152EFD725B49E72F303DEF205CF87013FC9C9A8BF8400DC9A0497DD731E088DD1251816B5ED7C2A4C57CC3524FF48F1754B09710FF1EBBFD4144E3EAE5721C2012D3F9578FA72C8A4AC4294AF4EF102CD0C6E6EB920B7B6E4EC86D11FDFA89887E452A10B352373D26D64AE4E145DEEFB922107ECA0C868DF252A4F45C9FF1CBE0CB8E010C54C28017947437CBE3F45ABD0872325F1F4B141FA7447FB59382ABE68012A8C5E8939D0AC979302C9DC744B94ECE77C21E8C06952DEC329C443757414E40000038E34CB1993B7A22E51A3A347DC828D9D3052794D9BC06F34A499395968D793310B6F65235394BB7F2C922DEACA8412C0354C6AA49F256450EC521800CA5FF8BD94932AF0FC3956245344C3AD00ABA46CBCD392882B575D417E48C2FD0275CE4505BF682ED5213C4C5E421DF28DA13B4DC9FF96348B552652DB358944ED7FC7BC87EB696EB90ECBC927F0CD75D0425ABAA4A3FBAF8758751B81808A8344D7EB4EB88A4E5AD94D3B763B34297EA584453DFE6AE7858DEFCE2B1C4716B29A829D86D085225157B813D9063B9DD4D09915D16E1D2B5C5001175A0C880FA0462CFE1B4467DE0C699CF641CEB3E7EDD9E0B06886F9DAA09BE2817BD9BF66005753144C6324F9F454281A520E3CA465905DA65D5FE03AA52ACEDCB09A3CD4BA8C007FBE6DDF3FC6D6236C98B8CD16F793067AC57C8EF8C3AB5200D338576A55985D979E122BAC08EF4A3C5CC3E3F3FF18538EF51254FE6AF8082037F8C24FF45ACAABD4E90DF98C9ADAE73D598ACBB6B019C2461DC7AA3B34663F047847DFFE10752F94D208A64086DFB710DD65A94E6CFC75A342F1176A7E90C09A4B70084EA12DC537074FB0A08890EC07D8B5FCA19AE0C63981A0E17AD1DA78B9A213DF442B860F7BE6400009142422A267665988CBEBA4FDAB4A548FA4A5EB7D0DD2EC4DD9F5E0EEC734DF0567108F47F1E74C63075CB064E9EDF1948B06D9C53313F04A655FE4729C0473B4EDE614B4C17E62D121B85FFE5C79EAE1EAF1074EA1D90AD1653D1A5FF040EC14E5DDA7F59D6622163C271A22376CD1DFA3A02BC33F64BF7B7CC28576C43931255AEBA636055CB6D715FBE614AA11EDA02D306D4B2CE7E337201959F1388DC2E4B1CB40867703A84198996B22B419FC56C047AE7D5D28D65F820ABE940EB68043A707202207E56322733CBD9064F8C47D4E6E5CE04BA3E76C9AEA151A31BCB4912EFF9DCEA98674C782A68BF11F4BDBA21DE2D7B73D228104053125099600E142BED2090714EA706778894FE775F6944AE059720A43F5CF11DEA255A6AD2A96CA4C83DF48B236CAAF44778FF5F5C6474FB2AF8657FA536BDF888C3CB9766F3C19A87CB6C7D3238DFA313FBAFFA4DD8A1548D21540209C43E03A3E1F8F0ADD903119E0C08884E5D3044B6B0F1D3C55458FA00B37C7D4DC64C56AADFB494497471FC50D5E185BE55A2FD75E782AB3F66013B5C996547177E443C31566C4D6890E50987B62C5EF2D259E7D30D495921156397E3549D5070000002FD41130BE3CBA771D927EBD4EC255CAB54520D9532618D99E12C755950E6F8C50F9473B6FBD62586413321F99D77215B1FE3465139E4CC0EE92B1388A9199CD46BE9F9FCFC8FD87C769F6E1FE2FD6199358DFCB441D47031BA4F8BEA78405A6FD63E2214AB0C3E728F06ABA80B30A909BA242097FD0861676E565A253F7D79EB89C9D40C0C29C7FB9E654948A82F02BEFC9F65CAB4D6C5C2C7125940D279EF39023CACF86E248E674E06F7C2AD8A808B8BBCA9335FC7D277E8E06D3B7A12CC77C0A4C4616E3E2A3CFE740389C8B1B80FE2A49787093D0699E8BD02CFA2E956DD838D56215CE37FABF4CFBE814769889F7C338AA485E7A2985FE62BCE9779B91C3883B3438530D90F09AF6519B7E454CFA185103A14C364AFB1909A17E37C6B98DC9742B65002739947DEA31D274FA175E84318EC78C27EB6E6927EC57B925E4C72C78307D73EF28FB9882F5461DD4DE35AE8BBC554DAE43CFF1C63EA6FF1EE7E1F1D191A26FBB395CF8A755F3D7100D607929579CE81F26047AC24C06A4CAA2C8260058A8924CCB7FB95A6DBDB9C4250B5989FF08069E2443A01D4AF0733446A5F8E55728C52195015F49E77D2B8135F78924ABDE09DE3F9CFF8997A34AFE31111103FD8065635F1BE9B22BE46E1EB34F3BFF4F70FB720E01C3EACD6EE83205D7FA8C9BDCE06D3341DF90EA4B04C50B7694365DCCA69C4D8B8AEABF082175D43844D9C4924029AAD6D826ACEAA3C7450829AC6709ABB4F9704ADEEEADEEC98E058C7DB1511F789A7AED18A7BFA275C93626C74D5BAD80A710240904963F90882FB88C7531EA2038A98A6D2B55DBCF4D0C29C81CA15265F56A544C58D9DB3C9775F62D00AF5748813C47939D8894446A8B54070ACB84F5655860FECA9583866D84E800B250482784CDDD6AC3934B3FD9187E3248BB53445E00522AA95C18FD8ADC127C4202270D91AC4A6FEB7E4B2EC4DEEC27D3199A067BECCD63A851294FC55E8CAE7896C69C86024500A316F48FFE2BA14515C885D2B53DB16D837972D0A105D8EF4004408545C77790E0C7A3F0FA8031E5335D2BAA6DB5AAEBEB4D9C3096659EAD3619EC171C2AEEDF3306F5A453856DB0AAE88BFB9E626F475E2497EA715F1FB318ADE4BF0684906D5482ACC94CDEDD332F3A94AAEA8BAC3318C7665AD2839D414419AF657F9F8986F0D7D1CC21CF7AAF7F02DA368C636B18D77202B20BD82B16BDDC9350B9BC624B68E6D3026F08C2F6ED1C845B93D16E83A2F1EB50AA230C22147811568B70E7C11CEB07A2CCFAD367FCC458EB312C98BD84B1D09F3E73B4C9F4C42A538661B0BE63487AE11A4FDD1E90A44E3BD332EA7615AB2B21F3E4577819015114412875BDF2430D09097243414AA9EE313A14B9E9D8FB24CEFB613C4CCD5F6A4F25ED77CBAC8D3BC0E8333CB34E75B465ACB4C4890D90CE863B1B34B67F74D61F57DDBAC4047E065D7C3BECA4128BA3445F9076D13D6C03780000184A00000D9C8CD01A1A18162EDC31895FD6A7F3A738742E5943ACAE4B49B81FE5011103B4403D181297F44B95DF28584858C735C5622267238254A1D1D4B4D8FF33B7164B9A441AE592B12ED48023D1D38EC7A4F9D0AB364ADE4A1428A00263757F946683C668892BE342460F4BCB7595ACE391DD04A6A4BBB4C8A43C80BD7FC5B61C52CB3BE561D7297BA0E2C0C5184F090EFBF9DB6180180E6BE7E8BEE2810A3257A158A4498166BEDADBE7A1A097BD7A440B913A65B02D9E0E7AC54581C8888C21C406DE6AB984FA5532038AA49EA66543A4C10989270A81E870BC9ABB0FA1F696A6855B6E34F40481DA892CE46DF779626EE06D2FD240CFBFED139BEF52D8D0B92C24A54271829EBC497C80000654A69BD6B89AA3C0A07FBDFEF8216A1EC83E0EE4B4745D7A645C07819B0A3D57E2FB34433F792ED7FAB2C60CD63BC967F1B44E0C3B08E19D46BD682A65023F342CB5C1475C1050207A3FADBF6278993A00889EEE119559CB5F2F8639186B7465A91BE63D9E6ECD3085C33FB5B40E5312B18D20CF459F931E4A86DAB192540F10DB765F610DBA0824D87B116E1D81B98E0487AA6DA89E2D80BF73EDA032AF53E6BD88E72A4FA58B33452FD298727F937BBA567C0506DD1400C57470D1FF0946FD2BB15410D00FD0C13F3253DE9C4FAD1D13F9C589CC09FB7B99063987E40CC6DC48E7185CAAE473DC8EB85BDCD0C41AE1AECC01475000067D7B0DAB492372F80115024D32055C00384A48FAACA704E52E5E769DD86237A99E5ED9B75CAE39097104018285B32974EAA96653D3625D31B3D691F58F781BA152E59DCDC9282836770DA308E371A4280BD1BB119650D5D7CDDBCF9B51F4C99D9106774357DA53033FF888AD07D26B0DA45B4CA8FBA748A65D1505ECF62CFC1DC52D5788082B6627004A2F8615403C26CA7E46A3F28F7362E7C0B4127FC653B9B6E7DB39BA687EE457D406D23EF45D225EA96872559BC1C90C2A3E91FA159B2F1CA1CB82F0E23C99B641B5255B8A27753FC0251053B07F3F5CCE0E08DDEAA55F72C2380F849C3D112CA100003202E2BC564B50B404C92A30D8BCB6A3EC8995AA0CF8C71A51D995E569ABCD5123F46C8C1E3C87D64937800965A135AAC51349CB99423F856A7ECC826F7CB4D6F7D6647547E40AFE81C482BD05F22DE8C4A9F3B301ED0657F3548B6371BAC923FA7576EF326FAC5C918E7D3FF2CF9462E6450DA644CA1E3E017D8D48AE2304AFCF6C2681898F5C1B523FE12290EAF1EA1DC14E7CFC517E873AE574B52BE119281F9B0769AC8C4439AFCE81FC3645B9C2D7A377888F89A2F0B0CEA67AFDB3800B9EC0C3FB309ABBDCEE290AD43922DCA0C7C9E5332FA79A0BF04E14372570911ECC0FCE40A2F7E2F2AB2E0EDFB92A60201E6C3780B7A51AADDFAC89E518DB9C5D677178EE4C0665215950F5E7E47473B8D60000248F6D0E50AF0F5B020045852B9D338080B0F04883353D8D1245159759DFB3B7077D36737B8DC01208B54CB77EB45C31D62A749AC29F2F144F6D8FA4DA4307D881F5F766971030CF7FB2B42FCAEC8DAF8BE69367BBC8EE29015079BC89C710FDCB8D0C84AE3FFA53A80038F6C374DD6D642D5B36527FFD59029D7DC1CC06028494421A6755769C96069162628AE2A4A7197F3B14684F310741A33C2427ABC4849000AC49166FC9B8F3A096859693F076282C09838B5F7DF335547930AD95D72A1D07AC2404CA8DEBEB1E14EE61F49D1A8E321EDB3B11C1E4F43343954554FE6D40C002CB0000D733B55AF1C075DF91DA037CA1780C2D2E20C110C1ECB1A70BAE4EA276930470000245123E0D4D1E7589CC2EDE875B25868831CB51C0800DC89792D47FB92EBBA00CEEB8E52699597A7D83643F13DE9AEEE756F70B3461496048A9689C892053D72119479AD1C6A34720AA241DF49B42681EA321719F96A3064B1D5CCE26FCC0E80C8D41000193800000, '1', '2023-09-14 17:22:44', '1', '2023-09-14 17:22:44', b'0'); +INSERT INTO `infra_file_content` VALUES (63, 4, '0b6732bb7e7fd8b338c1c664ef95473ac51a37bdcb841710c210a9245ab5cbcb.jpg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9CCC4E2684109864A8F5C1F2855AE196B388CC0354F0E211525D53071E509B312942C4BA8E65D579E25F6F322A9B019CD90DB7126DF295203B2736C636CA95E610AB264CA148C958328730A58D7C405957B47CD7C41327AC0CE3573D24F28E9AC6649322808B9602375D7E19C15780607587A908EB13AC222810AA98E655065E1C0C0E2552B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554DB38A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E50418936582A4278E5CF98F68EA23A8F09DC3D0C0E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FAC928A0EB2D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C002675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F395A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44EB2686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A013538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8EB1BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDE54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFBCEE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B46440576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F488E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A194274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9320399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-09-15 17:01:54', NULL, '2023-09-15 17:01:54', b'0'); +INSERT INTO `infra_file_content` VALUES (64, 4, '0b1d392884121f070d3a51c50e2188bb6d4e10252152a90c34765e66f99ebc96.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9C4C4EA604109864A8F5C1F2855AE196B388CC0354F0E211525D53071E509B312942C4BA8E65D579E25F6F322A9B019CD90DB7126CF295203B2736C636CA95E210AB264CA148C948328730A58D7C405957B47CD7C41327AC0CE3573D248E9AC664F29322808B9602375D7E19C15780607587A908EB138C222810AA98E655065A1C0C0E25CC52B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554DB38A50B603827D0192D6F1220FE3882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B6196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E50418936582A4278E5CF98F68EA23A8F09DC3D040E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BA921FAC928A0E92D38BEB3A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F3908384C0EA64825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C0983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A013538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700712DB732D893108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926550F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58D51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F488E9AEFC30623C4858F1E98F39A4C734B28EA413325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F4936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E60F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8223EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB812492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-10-31 17:32:05', NULL, '2023-10-31 17:32:05', b'0'); +INSERT INTO `infra_file_content` VALUES (65, 4, 'c80a0a0199b25c435508550c6f57befffc4f07541e6e5b5ba255498037e03fb9.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9C4C4EA684109864A8F5C1855AE196B388CC0354F0E211525D53071E509B312942C4BA8E65D579E25F6F322A9B019CD90DB7126C95283B2736C636CA95E210AB264CA148C948328730A58D7C405957B47CD7C41327AC0CE3573D24F28E9AC664F29322808B9602375D7E19C15780607487A908EB13AC222810AA98E655065E1C0C0E25CC52B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554DB38A50B603827D0192D6F1220FE2882A576850456A4E70C871D20CC69601128CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987892406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F49BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D0C0E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FA4928A0EB2D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C002675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE50362DB480AD46E407F839017D00F295A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44E32686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDA54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993981D440A814700732DB732D993108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C6740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F49D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F488E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F5936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418C4AA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FB4692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707193182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A23DA7BBBD4C947ACF9AB0C4BAB641968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB8816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C1A2E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F106824920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F48CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-10-31 17:33:23', NULL, '2023-10-31 17:33:23', b'0'); +INSERT INTO `infra_file_content` VALUES (66, 4, 'f3af3b3680301adf34b2b05d1ba78173db02e9138b2c1d69269208e4b9526cec.jpeg', 0xFFD8FFE000104A46494600010100004800480000FFDB00430007050506050407060606080707080B120B0B0A0A0B160F100D121A161B1A191619181C2028221C1E261E1819233024262A2B2D2E2D1B223235312C35282C2D2CFFDB0043010708080B090B150B0B152C1D191D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CFFC00011080084008403012200021101031101FFC4001A000002030101000000000000000000000003040002050106FFC400391000020201030106040306050500000000010200031104122131051322415161327191A11481D115234252C1F0063372B1E12462A2D2F1FFC400160101010100000000000000000000000000000102FFC4001811010101010100000000000000000000000001113121FFDA000C03010002110311003F00C6AAAE2192B97AD38864AF9CCC4EA684109864A8F5C1855AE196B388CC0354F0E211525D53071E709B312902C4BA8E65D579E25F6F322A9B019CD90DB7126D95283B2736C636CA95E610AB264CA148C958328730A58D7CC05957B47CD7C41327AC0CE3573D24F28E9AC664F29322808B9602375D7E19C15780607487A908EB13AC222810AA98E655065A1C0C0E25CC52B66B34D558C8F6AEF5192A393095582DAC3A8386E46665DFA55D06ADF526C4AC3290AA17A8CFBC7B45656DA5415B12AA319322C323ACB8193070F5A8C66554D938A50B603827D0192D6F1220FE2882A576850456A4E70C871D2069601328CB15C6AAA236D82D4FFBB83F593F1C40FDFD2E83F987896406C732B8F6912FAAD3FBBB15BD81E613880123883658C30E20CA712806D124B95C1920592B3B2196BC266110012C0638F292718B7D0953065C0E6424282CC4003A9314FDADA20E146A173F69556ED0AEB7D2B1B1372AF5E48C098B5EB1FF0011FB92C41C64704B01C71E9F59BD6ECD4E98A86055B1C8E4189B575E9DB6D283BEB3819E703D7E70418936582A4278E5CF98F68EA23A8F09DC3D0C0E9B4E2BAC6324E7249EA7DE3C83021A237580359631D851319C6707E53806DB2B1C1210B3109807F496B465F6B803166EF11C023E72A996D45B66064E153819C7CE075480BBB3838C9038C484F5C8040EA7A18535B6DF12F8BEB28CAD9C9C75E47424400B696AB1437760E79E4660F4D48EF5DD4614784007827CE36EFB74CDB46D3F0A896AAB15A05073890736E4033853221A72003BB921FA4928A0E92D38BE93A58038E33138C5F583FE23D4D8B49A6BE011CCCAD1F671BECAD91B0BBB27F2FD4CD7EDFD3596DF53AE0211B493EB2DD9A84B5C0E54018500428B7D8743A8AEC0B8AEC1B5FE7D73884D3A317EF6CF8DFEC3D22BAE62EF569541B1D7C4DED2FD9BAB6B1AC4B7F808C78718F63F4908DA0CA88589C006675DDABA8B1C8D3D5B6B07FCC383BB1E90FAAD336B34EB5ADDB17A9E33BBDBE70362DB480AD46E407F839017D00F395A5BF6B10A55E9EF187F2F19FC8CC9A75FA8D4769AA5BA74D2213E7C743EA3CE3FDE699C9EF5197918603AFB422520564065B91CE00618E79E706416ED0D6A7676AB4959B5D12E2413D71E9F7866D5B557146B5186D0CB9182739FAF499F7767D5AA405F7D695FF97BBC583E7F2E90D4771A5B0D9AA467B0641B7AFDBCBAFA4A1CDCBAA7557AD94272437AF94EBD375673436E1FCADCFDE5F4C3BE06F604EF3900F9087C10610B57706C2B8D8C7C8FF430DB72713AF5AB8395041F28170FA442FBCBD63A86EA3F2908384C0EA24825B03A8619C1E648DAAE8E265769DAE357514F16C05B6F4C7CA6996C1983A966B3B48900900F9723A44EB2686A06A8D74B648DE4F887518E87DE31F86AAA4272CA80648DC6673E5916EDAC962B6E07A033538BE8E7E175FF0079479E1DAC6AD7778BA70B4F202A8E4AE7AFCF8E91BAB568BAF7B0D762D6EBC784F5CCAEA7B1EE6B2B70EAE1181C11D79FB4D3536A280DA4273E62C033F9E040BD5AAA07C37203FEA198D1D42255BDCF840C92067ED03B5980CE96E23D378FFDE54D0C19455A42807AB851F6CE61A72DBEA65362D647383B48CFE63A44AC2EAEAA6BEEC9E9DD64FF00E3F9476CD15D7641B2B507D0984D37672691C395DEC7ABAC05F4FDFF0076A4D2A51061553AFD3A416A52EB6C4A454E8AE47C5F319F94DC095D83A06F79168556DD9248E993881D440A814700732DB732D993108AED1337B4DCD8A6B5E474F998FEA2C15D671D6012AE3BC6E7FBE902B59C54B9EB89277AC926450F39102DA5A8B6ED833EA3830C2740C9964F19656BEA3569AC4CF38CAFB8FD668D2A36807D20B5E83BACB742A57FBFB4EE82DEFB4F5B1EB8E6039726348EA8A19C8E33EB13A6B7B867BCE07051588C7DE3FBB77104FA3A9EC62517C5CE71004BA352A407B47B7787F59D4D0051C316FF005F32E347DD8F05F620F4CE47DE7477EBF03A583D1860FD47E90AE2D34A1FDED6ABEF8C7DE19EB35566CA98E14676F5044AD1ABAED6359F0B8EAA7FBE65ECADD4669C01E6A7A1FD2075196D191C1F51C112E19D7D1C7D0C4F4EC2C3B7956C6083D411C1FE91BF122F4071F58C51930DF3918845CF9CAD562DCA181C8F28B5F677961AC139F307F847F7FD21154437DC5C82541F0E7CCFAC62F5DA1547C30B4A6C41C79624B464C0576C92C473240495B1C4B8600C555F30ABEF24BE23BA9ACDDA67F2DA091F588E9AEFC30623C4858F1E98F39A4C734B28EA411325B4DAC0814D15B003D79946A55ADA9B07C5F4CC2B6A598E1130319C99934557A0E34CEB8F46FF008861A9DB78AAD42AEE0901CF5C7E501B7DC5816B41C9C703247F5936A95E4961E793009A8373EDAD508F68C8D2B58A035985F300759140DA6C7A71E1628DB48F2E989A1A5B4DFA5ADCF56519F9C52F65A7588071B2B3B47E47F4119D10C696B5F418CCAA1EA53B8D65368E8E76B7CF1FFC8CD8C16966F41983D78CE9C1F35607EF39A9C9D1E1792D8100BA041F81A413CEDCE65D682B61724107E92C80555AAFB712C5E11D0C671F912B9937400B8218F1243601924D5C79BA9FDE34966265556FBC692D18EB138CB456C060F55ADA34951B2E2CAA38E149824707191182AB60C11B87A094274F6B5DAA5FFA6D05A479358760F9C52CD1EA3B53545ADBC1EE8E32A3807D01F39ADA80E74AEB570CC300FA7BCE69AB4A2B5AD070B0074AEB3455855A6BB5079280A63DA7BBBD4C947ACF9AB0C4BAB640968521780FDB48A7CA9381F3CC6FB3AFEFF4EDC636395F9E20F51A4EFAE17258D4DA176EE5F31E98332D9B51D93AFA693A8DD56A6C277BAF99FF00981B9AF44B342E2CF87ACCFBACD194E369C79AB8263EC3BFA190F2A4609F5811A6D1D69E2AEB1EB9816D0D9659A2A8D99C8CF5EB8CF198D6666DBA9D3229143FEF00E02379FCA3543DAD529B576B91C8F480C9120399527C32AAE1720C182E44903BF99215E26A638EB1BA98F1CC924938C9EA58C6D09CC924A0A4F306864920389F00964F3924858B8EB32BB7AB56A34EFC864B46D23CB832492AAF57672DB52B59AAD4BF1C836633F58CD7D9DA4AC922904FAB78BFDE492128CB5A27C2A17E425A49215C6260989C492482BB8FAC924903FFD9, NULL, '2023-11-02 09:24:26', NULL, '2023-11-02 09:24:26', b'0'); +INSERT INTO `infra_file_content` VALUES (67, 4, '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001E9049444154785EED5D0B7854C5D97E6713124010822210E52A20D7DD2092808AA5562D58817AA56413A5B4A2FE9ADD00456D95BF68A15A41C926B68AB6A2651744D04205A1DA6ABD704910D94D3010500806820424C89D5CCEF499938B845CF6ECEEB9ED9C99E7C9B31B9899EFFBDE9937E73233EF47208A2608644D1ED2C566B3F596407A02B8C20674A34017009702E8048A8E20E8AFC838C52E101CA314E584E030010E49C04100FB6DA0FBCE5654153FBAA2F05B457D894A21214042AA2D2A3742E0B9BB07758D8F8F4D02B5D929C56042E84000230C826A0BA56487CD86ED145201AD96B6652EDB7EC8205FB8302B0812E23066A73A9225E03A423012400A0076853073D94780CD00D90C4A37BA9606F2CCECACD97C1304093222D9CE618340AB6FA2C4762340279A6D00C3F387AEA6141FD298D80FA62FF96247787D58A395204813E39C9396344692E87810DC0A6000DF5381EC20A0EF5513B266BAD7FF5FBE630D3D3A41905ACCB25287DE4088ED2E00B7B387EAD0A1E4A2C57E02BC034257BABCF99F7211518441589A2039E9F6DE12256990900182CE1162C957738AC300726C31D49BB1247F2F5FC1298FC69204F1A4264D24045329E804E55059B9265D0D6A5BEC5EEA5F6D35142C4390C5537AB53E51D9F14110FA10A50AD71FAC361B82C54BB18B10F2D2D156C75E9EF37AF1D960D579F87FEE09C216EC406C2E42C8EF781830F3C440E75149CAE17D9D855B82E4FC6258228D91665060A67926157F9E10E079526D7B21E3CD6DA5FC45077047908553923ADA2AE963001EE771C04C1CD3B3AD2B629F7D60C5D6EF4DEC63C8AE714590ECB4A45912A54F10A043C848880611234081EF6D84CC7379FDF323EECC241D7041902CA7631201F93D20EF8312C57004E80E1032C7ED0DBC65B82B113A10D50479F13EC7E0EA2A3A0F209C6C018970344DD79CAEAE96C813339605BE349D6B0A1D8A5A8278D21CB341F1B4C238453503112014B35D4B03730D74216CD3514790EC34FB6849C20B84906BC28E5A343402812DD584CE9C11655B58A28A209E54C7D320986DC4E80A9BEA204080A75DBEC0EFD5E94DFB5EA28220599387D8892DE6AF061E44D27E24AC6521CF06E9D719BE8202B3876D7A8278521DD340B0C8EC400AFF424780804C73F9FCAF86DE52BF16A6268827CDB10814D3F4834358D21B01022C72F9020FEA6D57A93D53126461FAD5036D52F56B807CAC5514CE1120209B88543D356359C14EB3856A3A82B0ADE894D037C46AB8D9A68AE6FE1CB3117A5F8637FF9F9A5B0AC180A90892ED4CCAA4A00B43F05F54E50D014232DD5EBFC72C61998620D94EC702B1F3D62CD3C2603F0859E0F6FA6719EC856CDE1404F1381D4B00A4990110E183691058E2F605EE35DA1B430932674AAFD6091517BF0D42987A882802810B11584B8E9EBAD3B5EEAB7346416318415EB87B70A798B8D8F7010C372A7861D7FC08504A3F8F03BDE5FF9616941BE1AD210461C760892D66AD208711431E7D3619492A63F0B3594BF2CBF4F65E7782C8A2CE31B16B28A562B3A1DEA31DC5F68C2289AE0411B755513C434DE0BA11B75BBA11447E20AFECF099B8AD32C14C8B621718496CE5A7AFD7EBC15D37827852ED6BC5DBAA289E99E6727DADDB17B84D0F9774218858E7D063282D6743977512CD092256C82D3771F50B588715774D0922F656E937572C6B49E3BD5B9A1184EDCA05A1AB2C3B702270DD10B0113A51AB5DC09A10849DE72052F526B1655DB739627543C76C92344A8BF3249A10C4E3746C12879DAC3E67F58D9F1DBA72F9FCD7AA6D5575828863B26A0F91E84F29025A1CDF559520426041E9508A7A5A214041A665AA2804A11A416AA579025A052EFA15082845C006C9AE96A4906A04F1381D2CFFF608A541887A02010D11C873FB022C877DC445158208C5C388C74174A0320214783A530505C78809C2B47229259FA81C9FE84E20103102D486D1994B026C836CD825628264A5DAB70821E9B0F1170DB545608BDB17488EC444440411290822815EB4D503014A313B3382D40B6113C4936E1F0289985E7C588F411036CC8D40B58421E126F1099F204EFB2A91D9C9DC134378578300A158E55A1AB83D1C3CC222484D4E40BC198E41D146206008020493C2C9991816413C4EC70E00030C0954181508848740A1DB17181C6AD39009E271263D0AD03F856A48D41708188E00A1B3DCDEFC05A1F8111241164E49EA1853498BA9C8431E0AC6A2AE79103876A622B6D7E32BB67EAFD4A59008E2713A9E01F0B8D2CE45BD8608C4B76D87B836ED217FCADFDB21BE6D7BF93BFB3750E0DC9993A8387D02E74E9F44C59993359FEC77F9DF4F0A482346803CE3F6F97FA7B41BC504C9F9C5B04429463AA0B463ABD68B6D158F84CB7BA353621F74AAFDACFB5D0D4C8E1ED883A3A57B515EBA07470FECC5D1D23D283FB017559586C9D7AA1196AE7D48243671BA77EB412546151344882F340D67C76E3DD163F048741F9282CE3DAFC2C59D2F5782BBEA758E1F3E80C3C53B511CD880FD85B9F8BE4CFC2D6B16E410C41E1411A4564BF75BD547350A3B6C737102BA0F4AC1E503AFC11503AF4142622F534671A46437BEC9DF88D25DDB505AB40D674F2ABEED36653C6A3B1567A35D1E52A0F5AB8C20A9F6798410C5F76D6A076386FEFA26DF8C81A3C7A3C7909188691567069714FB50557116255FE6A168C35AECDAFC2FC5EDF8AE48E7B97DF94F068B312841164FE9D5FA78658733C13AE2F1FF63625B61E0E8091878C37874EB97C4458865C53B64A2ECFC6C2DCE9C3024A3806970249D4EB576E5B49C7B242841ACA86DD5B6C3251878C304991C9D127B9B6640D574E4D4B123B5445903763B66C9A240532B3841D21C4594A2BF55001C362E1DC3C6A5A15DA72E5609195BD7BC2EFF9C3D79CC3231D7065AE4F6055ADC11D22241AC24FED62FE51699185DFBDAAD3649E478CB0F16CB2429FCD85A5A7F94D089992DA49E6E9120D9CEA4D5147402CF338611825D35FAA5DCCC73988A63DBB3F5BFD8BAF6751CDCE557DC26BA2BD2D56E5FFECF9B8BA15982E4A4DB7B4B12D913DDC1B7EC3D23C5B88CF93C8718666C14EFBFF424766E6059F2F82F1536DA67D692FCBD4D45DA2C41783F2DC86EA9C6653CC7FFE84710E1478BE7A1E03F2B22E8213A9A128AD9AE664E1D364F90544719083A474788A17929C8A11CAF4F973E8F6DEFB134F6FC160A9465FA024DBE956992203C2B950872843ED137AFFC0BF256BD127AC3286A514DE80D33BCF99F5EE8729304F1381DD90032A2283E45AE5ED4F152DC397B313A76E9AEA8BEA8F403026FCF9D8A033BBFE016120A6467FA026EA504290170056F68FCE8DEC7E0B865326F61E912CFD79F7F88B5593374B1659091FD6E5FA0D15FCE465790856949636C947E6490939A99EDE9B81E1367BDA859FF56E878DD8B8F6137C77BB988CD36C6B564DBC7E78F652382F0BAADFDAED98B9178D5302BCC63CD62FCF6AB7CBC35E75ECDFA37BA63023CEFF2057ED3224178146448E8D60BE9F3ADB542ACD5647B6B4E3ABEFD8A573934BAC3EDCB1FD42C4158EA349B545DA815B846F5DBE7EA31B86D469651E6B9B2FB897701FCEBBD5CC5747E305255F5A0E9CBB733D51EB934B8C5CA4EB5BB28211EDEA2BF66FC545C3BC9C55B5886C4B33BF77DACCB79D410DB3A1975B97D819C2609E2E1542D71EC237F42FF913FD5095FBECD9CF8EE5B2C768FE5364842B0CAE5FD4185B1C115C4E374501E23675B4AD802A128912370F2E821BCE6E2FB8F8DDB17A8E745FD97EC54473225C88D1C42F3F530E2E7F763D45D0F9BCFB128F4E8EB2DFFC15ACFCC28F45CB9CB142439D3E7DFD2E01984E793837D936FC2ADAE9004F594A369B19A1B9767E3F3775FE33A6A0964FA749F5F7EAB537F05F1381DCB01DCC363E497F6E88FD43FBEC56368BAC7F4CE1FA7617F214B47C96FA1C0F24C5FE0171712A418404F1EC38E8D8B47FA73ABD0FED26E3C86A75B4CEC01DDFBD81DA83C7B5A379B06192A76FB02B218817C0579EEEE415DE3E35A29529A33C8E188CD0EB9F12EDC3835A8CA4BC47678EEE053DFF3D8B68EEFADEF75E347A5EAAE99CBB61F9209E249B38F0525EB781E5C16DB6DD317A2CFF01FF31EA626F11DFA7ABBBCCD84524993FECDD629A5189BB934F0AF1A825824A541972B8780EDC9627A57A28486C0FA3FFF16BB3671FF37B41E144AE8A399DEFCF93241B25293DE2084F2BB0BEDBCB99072C70348B9E3A1D06687C56B3335C6F52F3E663114E81B6E5FFE94DA2B8883BD961861150452EE7810EC4794E0083019A07FBF3A277845FE6AE4B97D81943A8270B982DED2980992049FD181F7DFC4C77F7F3678454E6BB0157562853758CD8D9F2049F3339B2D06B245412B17A6004FB29DF6911464935581B0DF34495654EC20CEA9CB53E0C47707B175CD1BC8FF402431A6363A928894CE00CBF9316C6C9AACB0186DA90DD4FCC316787F992C3FCA36248A22AF124E6204994900B1510940E75E0364A20CB8FE364BCD8F6F0A36C972A325DB9BDBABCA1E552DF798CA083293F07A06BDB919CE08B0AF60138E1EF8BA5912F44A1A2DA73EE05DAF97EDA96279420A3F59DD2C16716D2EC24DF7CFC17BD9B32CF547430E969005C4E374B0BD03695688BE6ED32223C77BD98FB648128647B77E0E39AB14230B4FB75E451BDF9389B12F7F438BC3DE2EE132FCE4FE39E869BF16EFCCFB35F6EFF8DC0AD3E4FC189790AC54C77A42C0F70998DA90273DE5055B4D678591841D1DFD6E7FF357923AA458129D012CD3D4E8F160E273D1584E1F3B829D8C181BD6E2C8BEA2A021B0986F7AE06974BD72683D5EDEC7EE0CDA8EB30AEBD91584DD7826731658A370D881297670EAFC72BCEC0036BE95835D9BD72B0A9FE534AF4BDE79F9C0E1E8DCB3C5DC2B8AFAD4B21293E9D95FB805A5BBFC72224F96775D49E93F6A2CAEBD27A351C6DEDC775E06FBB14C21C8259E54471108DF19A45A5FD401D31635D0036B30C66C872A234A7565454863CF523EB3A49E2C0574F7C12968DDAE4348EDD5AECC3244B134D0FB029FC98460DBD34329EC36921183BDCD6BBA50FCED919BC1D2B759A414B12B08F7AF27BAF41982494FB72C55C326145B1C2BF637D22F563C17DA5FD2159D2EEF8384C4DEF267A7C43EE874796FB46ED751711F4A2A9E3D710C474BF7E0E881BDF26779E95E1C3DB02764429C6FABA7E33A8C98F86B24F66F595CEFDDE75DD8BBED13256E7251C71204E93F6A1CC63EFC8CA20163B236F91F2CC7819D5B15D55752A9CDC59DE464A0F16DDB21AE6D7BC4B56957FBBD1DE2DBB4475CDB9ADFD99BD473674EA2E2F4499C3B7D42BE253A77FAA4FC5971FA84FCFD68E95E9C397E54895945753AF7BC0A49639DF28B082525F7ED9790FB8F454AAA7251C7120409674B09DBA457F0E14AB073103C16B67360F098DB6572C4B68A571CE2DE2F3EC6BB2F34124157DC3EDA2A5A82202CCD5AB86B1AEC2177CFD68FC072F71D3F521A6DE3DBC0DF56ADDBE2CAE13F469FE163E48363B698D890E339555E86BF65584742C9120419FBF0B3606F6622295595E76492B007E0922FF3A2663B062345F741C9E83174A44C8A48D35BF32E1C77E11CB10441868FFF25AE9BA4DE6D81545D259364FF97792829CC45D9DE7A29D74838A85A5B76FBD463E828F90D1BFB6C15DF46B5BE2D203DDA002B4B10446BF1EAEF0F95E0F0BE221CDEB753563E3FB83B80AA8AB3AA4DCA963A8A898D43D7BE436B7EAEACF9BC28E132CD6C7FE29D0FFF7A9F66FD9BAD634B10C488F407878B77A2FCDB7D3871A414C70F97CACF2F276A3FAB425C6F896D15878B2F4D44FBCE89F267DDF784AE3DE50D967A16BED31F3446D212046161DF35FB35245E75B59E73893B5BECCAB8E2A9FBB88BABA5802C4310B6103671D69F2D35B86A07CBF6AEB167102B1546909D00AEB242D03F4A7F148E9FA65A2154D563B482687513A0C95B4D2CB1599105DFB6C325B22E56C7AE3D549F40BC77B8F20F53515AC46F1AE866C62F8F1184A98145B6481045B3A36FF2CDB8D5F5DC85C9B5A22802FD5DDDB4E2CFD8B2FA55FD0D1B6F51DEEE6E9903537578D79064BEF1F04781079FFA1660DB3A7E7312061902AFE58EDCD601D22FF9668C132469717E7CF8DA5C6CFF706514D0581B1729F0BCA5451BD8FE2CB64F4B940B11A078FFA527E5D387962E4CB4C1EAB23F89570D03CB82CB841A44014AB66F46DEAA5755DDEE1FB5B832D91FAB0BC7D50D1E1390BB66C2D48837F345EB64A83C77065B56BD82CFDF5D1CAD21A8EE37011D45B2260FE9426C31A19DCD54DD1573747871E744F96AC292ED58A9ECF9E2BFC8FBC72B28DB5B68A5B083C6CA92E8584EBC9A1D9E0A263CD02BE97AF41F3956DE221FCE9989A0C89BA4023B3AFB55DE07D8F1E9BB2D7AC44E645A2937481D18B27835FB25DBE9C8A5165036613A5777FFFE0D9920C148C270619B1C1949FA8FFCA97CCE9C8772FCF001ECCEFD4026C6A13D5F060D69C88FEFC48DBF9A8D7FCE7F04C581CF82D6E7A8C20FE90FAC9240C7F9CC4A5CD2BDAF3C864A49C2EADA6262EAAF284CBD24DA44E4D8D67B7632921183EDA552BA15FFEA5BEFC5F5A93364BC4E1D3B8CC5EE71606761AC51CE4BA0939D96348B52CA9697B92DD74E72E39AF1BF6C109F2CF7B33C07D555CAE57E98D075F74129F5FA580989BD4C89D9916F76E39B828DB2FC4FE9AE6D387BF27BC57E3627FF93B7EA156C5EF917C5FD4473C50629D8784FE2C9F4AAA6BDDCB42E169B401BDFCA96275238A563D79EE8C174B1868C045308615A59461476EB5456BCB3FE4830FB3D9CC28E04306D2CF6FABB71B18E2E5683249EBCBFC90AA68B555D5529278B5123C531FBEBCB247E6AF4B16A74B1647D2CF60C53F3C81776A194D66860D56A62959FA78D15AAE85D534EB05BAA51F764B498E4D42ABA582C79CE434BF2CBEA47CCE3741403E819F6E899B8A1525D2C26D5C934B1B45A41664AE94CBE94E962D56961C5B5695FAF91C574B17ED0C2AAD1C19235B26A75B12ACE9CD204E52B47FC04C3C63A151D28B3842E1645B17B69407E2B534F906CA7E34D0A4CD264040CEE34545DAC6FB66F46C1BF97E3EBCF3F32D8736DCDB3B77A4C17AB5F8A72191F4BE86211BCE9F606265F4090A44C0ABA50DB2131A6F77075B19872C9AE4DEBE53500B6D2CC4B612216F2EBEB30A4902CA18B4548A6DBEBF7342448AA23991234976228AAE7C6D8479E955FD3865BD8036F512D51BE2BF92ADC6E0C6DD7F6E24EE87FED38991475290DC271C80ABA58142439D3E7DFD28020EC175E85ACD9EB5DF69A578DC24ED51DD8F985BCA9CFEC0965D842E7158393D19DFD0C4A41FC45ED2386C00ABA586C05BD0EA806AF553C4EFB2A804C8C18459375A0952ED69913C764A2947C998B83BBFCB2B0B491A5FDA5DD645DACC47EC36425452D56FF3FF12E807F3DBF07A808C52AD7D2C0ED4D12242BD5EE2284C8F75E3C15BD74B1CE9D3A2E8BC6D5FD9C395E0E46A2B327CA2149D5EA404A08DAB64F9033F332D5F83AB138468CB61DB4CF7E65015D2C97DB17C86992200BD3AF1E6893AAB9DCD269B42E16230F23CB9913E5A83C7B5A7EE8675B3E2ACF9D4555ED773628B171AD6B7EE26B3E5BD57E6F53478AF609EA102D8C5EACA08B6593A48119CB0A98D28F5C1AAD5C799C0E2634ABAF5C5F1883156A13A18B152A628DEB5B4017ABD0ED0B0C3E3FF24604E1392DB4D0C50A9F2496D0C5226481DBEB6F90EFBA114116A6258DB151CAE50A99D0C50A9F2056D0C522926D8C6BD9B6069BF69ADC1CE4713A4A005C113E9CE66D2974B1421F1B2BE86251A024D31768A428D82441B29D0E0F055CA143191D2D842E96F271B28C2E16251EF7527FE685C8344D9034FB684A09D7A94C852E5670925849178B4A189DB9ACF191C966F75F7B521D6520E81C1CC6E8AD2174B19A1B3B6BE96251A02CD317E8D2141ACD1324CD311B144F47EFF457E679D7BE760C1B971E76924F6556A2A7164B58BA75CD1B38B8DB1F3D4E47E829A5989DB93430372482E4A4DB7B4B12D913A1EDA869CEAE26C3C6A6A36B3F7BD4F8ACA6A3E5A5C5D8BA76310A3F5EAD66B751D197544D7A4F7FD3CFCE43352A2D1E71E3756F564BA3366C5C9A7C4589341B6C54CC8C5A27B7AE598CAD6B5E0FE9DC7A34C5D792AF846095CBFBC3DE2B450FE975953CA9491341E82A5EC0501A075B2F19387A3C068E9E201F9DE5B13095929D9FAD954F4F7E57B29BC71015C544099D98E9CDFF677395831E92F6A43A8A40D05F9135CE2AC5C4B6C2805AA224F64FE2223AA69EB873C37B28DAB046DE1B66F152E4F6055ADC56159420D94E7E4F1A863239FA26DF245F51982E566C5C7C284D0DAF5B75EE2C4A0AF350B4612D766DFE97E1FE98C6014233DDDEFC1677AF0725C89C29BD5A275476E0E7BC6984A353A38B957C9E2E963915178F7CB30BDF146C0A4B172B4288A2A639397AAAB56BDD57E75A7C4651128DC7699F0B902794D4B55A9D8EDD7AA2C7E091E83E24C5705D2C969BBD38B0012585B9385E169E2E9655C68F00735DBEC0EC60F106BD82B00E78D7CD0A065228FF1FD32ABE560BAB460F2B218A74B1428933DAEBD6E95E058B43114158273C6F830F06925AFF6F565D2CB5E28B9A7E9AD8D61EF65BACBA860BD38677B3D1AAD2A80141382A1068060189C4264EF76E3DA80420C55710D699C7E97806C0E34A3A16750402E644803CE3F6F97FA7D4B79008B2E8EEE11DCEC655B125F98E4A0D887A0201132170EC4C456CAFC7576C552C751F1241E407F6B4A45984F35409261A50E18A9A08503ACBBD347F41285D864C909A5B2D7B214006866248D41508188C4023410625FE84479034C73DA058AEC480A823103005020493DCDEC05BA1FA1216419891EC34C73F28C5CF433528EA0B04F4468052ACCA3C4F2D3114FB6113E485C98EC131366C0FC598A82B1030020102DB60976F5B588288611344BE8AA43A9EA4047F302268615320A00481964E0B2A691F11416A1ED81D790046283126EA0804F4448000792E5F2025129B1113E48534FBE818CE1550220158B4350E81E6944A42F1286282C8B75A4EC75314F8FF500C8BBA02014D1120E429B7D73F27521BAA10A4F6568B65A74A8ED421D15E2010310204B96E6F6064C4FD34A5EE1E6EA739CEA14325D8F2C36D2FDA0904D442A01A927D86AFA0408DFE54BB82D4DC6A25DD4F415F51C331D18740201C0428C8B44C9FFFD570DA36D5465582D43E8FBC4C8107D47250F42310508A00051665FA020F2AADAFA49EEA04A9BD926CA4A0A3943820EA0804544260A3DB17B84EA5BEEABBD184203993870E906CB64D625BBCDAC325FA6BE636A8BC4292AEFDCD79A9D3D4424A138230E772D2EC13244AACA763A9D6C8887E1423104CFC4D71474D54D48C20CC96272DC90D4AB3227150B41508B48880026DAB4810D49420B524990F4A7F138993A2AD40A049042859E05EDA30A7A0DA48694E1099244EC7DF01A4ABEDBCE8CFBA081042FEEEF2FAEFD31A015D08524B9235007EA67540A27F4B20B0C6ED0B8CD72352DD08923DAE6FBC94D0F63342C8357A04266C708BC0966E1595D7DFB3A2B0428F087523080BE62FA943132A40DE1724D16368B9B4B1456A456E99FEBA5F37597A5D09C2866C7EBAFDB256D5582B48C2E504D632A82D24CEF633D7E26D87B5347261DFBA13449044CFE1E5C69621E460E819421071BBC5CDC4D52310DD6FABCE0FCA30823027D8833BED74D1DBE2ED961EF32C2A6DAC29AFA8BC738E4E0FE44D21642841EA1C12EB2451397935755AAF758E6041988220CC494F5A9258710F365A56F97F1D56C89542691A82D49244ECDD523A72BCD6D3786F55A8B0998A20CCF9DA5DC06F88ADF2A10E6574D72740B944E8949652321B11A1E908229364F2D001D416F39A387465C49430C4E6C64A49FA9516E739228DC69404A90B2ADBE910C777231D6193B7D7E298AC9A219B9A202CD02C67D2FD440841A839E6A6E94B6D81052D02333D41E45BAE1A49A1BF0ADD2D2DA680017D12E45653E97EB5A479B48C202A0852074096D3F114110A8E5ACE07EDFB5649F1507B476B2C441541E45BAE74C7F544C20B42305BAF29A28E1D26242D499899B92CF0993A3DEAD34BD411A4FE015EA45ED06786A862853CE9F6F9E7A9D295CE9D442D41184E2C894F6C0CE68A4C573ACF1A85E65866271BB13D116EF21A856634AD16D504A943C693E6B887523A8788C4A29A4E96103A2FB451322763A97F45086D4C59950B82D43FC4A7D967114A58927891C7DD98E9760C94CE0B35D5B231AE2AB3CA154158C88BEE1EDEA122AEFA3109F4B7CA2010B5D441803C4310FFACCB977B5C9DFECCD10B7704A9837561DAF06E8456CD24C04C7340CDA917842C888DAD78FEE1D70BBFE531426E095237582FA5DB2FAB90E002C8133C0EA051311160EE391BCD99B524BFCC281FF4B0CB3D41EA40CCCEE81B4FCBDB3D084A1F0270951EE07268A30884BE44BE3BFDB26BDD57E7388CAF51489621C8F99167A5D927108AA900996885418E344642B04A025D6CB6ADE891C6A5A4BD250952FF9C3225A9574C054D93083208709912C0AC52870265A0C8A112F14E7FD35F6C95B82F8CD3D204391F0C96CEDA46C95D36E0760A74B7E28420400925E41D4AE8CACC25D1B52544ABF112046902D9ECF4613F9224693C01BD159C2F3E52D01D84D8D6926AB2C6B56CDBC75A4DB468ED571024C8C8D566CBBA9910DCC8CB9616F64C41293EB449D207191A64658A563234E5B7204888A399E54C1A4181EB08E84802A400E8156217FA56A728860D9B01B299526CCCF4F9B7E8EB40745B13048970FCB2260FE9021293041BB1138AC1001D68E0C1AE5C02ECA0847E492552101F43B73DC4F93A4584C317B4B920485088C2ABC08863B3D97A53427A00B882502452A00B804B017402D02184F59822101C03453980C320E410400F02D84F09DD170FEC1544086F9C82B5FA1F785BB2871EEC3DE30000000049454E44AE426082, '1', '2023-11-30 15:55:43', '1', '2023-11-30 15:55:43', b'0'); +INSERT INTO `infra_file_content` VALUES (68, 4, '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001E9049444154785EED5D0B7854C5D97E6713124010822210E52A20D7DD2092808AA5562D58817AA56413A5B4A2FE9ADD00456D95BF68A15A41C926B68AB6A2651744D04205A1DA6ABD704910D94D3010500806820424C89D5CCEF499938B845CF6ECEEB9ED9C99E7C9B31B9899EFFBDE9937E73233EF47208A2608644D1ED2C566B3F596407A02B8C20674A34017009702E8048A8E20E8AFC838C52E101CA314E584E030010E49C04100FB6DA0FBCE5654153FBAA2F05B457D894A21214042AA2D2A3742E0B9BB07758D8F8F4D02B5D929C56042E84000230C826A0BA56487CD86ED145201AD96B6652EDB7EC8205FB8302B0812E23066A73A9225E03A423012400A0076853073D94780CD00D90C4A37BA9606F2CCECACD97C1304093222D9CE618340AB6FA2C4762340279A6D00C3F387AEA6141FD298D80FA62FF96247787D58A395204813E39C9396344692E87810DC0A6000DF5381EC20A0EF5513B266BAD7FF5FBE630D3D3A41905ACCB25287DE4088ED2E00B7B387EAD0A1E4A2C57E02BC034257BABCF99F7211518441589A2039E9F6DE12256990900182CE1162C957738AC300726C31D49BB1247F2F5FC1298FC69204F1A4264D24045329E804E55059B9265D0D6A5BEC5EEA5F6D35142C4390C5537AB53E51D9F14110FA10A50AD71FAC361B82C54BB18B10F2D2D156C75E9EF37AF1D960D579F87FEE09C216EC406C2E42C8EF781830F3C440E75149CAE17D9D855B82E4FC6258228D91665060A67926157F9E10E079526D7B21E3CD6DA5FC45077047908553923ADA2AE963001EE771C04C1CD3B3AD2B629F7D60C5D6EF4DEC63C8AE714590ECB4A45912A54F10A043C848880611234081EF6D84CC7379FDF323EECC241D7041902CA7631201F93D20EF8312C57004E80E1032C7ED0DBC65B82B113A10D50479F13EC7E0EA2A3A0F209C6C018970344DD79CAEAE96C813339605BE349D6B0A1D8A5A8278D21CB341F1B4C238453503112014B35D4B03730D74216CD3514790EC34FB6849C20B84906BC28E5A343402812DD584CE9C11655B58A28A209E54C7D320986DC4E80A9BEA204080A75DBEC0EFD5E94DFB5EA28220599387D8892DE6AF061E44D27E24AC6521CF06E9D719BE8202B3876D7A8278521DD340B0C8EC400AFF424780804C73F9FCAF86DE52BF16A6268827CDB10814D3F4834358D21B01022C72F9020FEA6D57A93D53126461FAD5036D52F56B807CAC5514CE1120209B88543D356359C14EB3856A3A82B0ADE894D037C46AB8D9A68AE6FE1CB3117A5F8637FF9F9A5B0AC180A90892ED4CCAA4A00B43F05F54E50D014232DD5EBFC72C61998620D94EC702B1F3D62CD3C2603F0859E0F6FA6719EC856CDE1404F1381D4B00A4990110E183691058E2F605EE35DA1B430932674AAFD6091517BF0D42987A882802810B11584B8E9EBAD3B5EEAB7346416318415EB87B70A798B8D8F7010C372A7861D7FC08504A3F8F03BDE5FF9616941BE1AD210461C760892D66AD208711431E7D3619492A63F0B3594BF2CBF4F65E7782C8A2CE31B16B28A562B3A1DEA31DC5F68C2289AE0411B755513C434DE0BA11B75BBA11447E20AFECF099B8AD32C14C8B621718496CE5A7AFD7EBC15D37827852ED6BC5DBAA289E99E6727DADDB17B84D0F9774218858E7D063282D6743977512CD092256C82D3771F50B588715774D0922F656E937572C6B49E3BD5B9A1184EDCA05A1AB2C3B702270DD10B0113A51AB5DC09A10849DE72052F526B1655DB739627543C76C92344A8BF3249A10C4E3746C12879DAC3E67F58D9F1DBA72F9FCD7AA6D5575828863B26A0F91E84F29025A1CDF559520426041E9508A7A5A214041A665AA2804A11A416AA579025A052EFA15082845C006C9AE96A4906A04F1381D2CFFF608A541887A02010D11C873FB022C877DC445158208C5C388C74174A0320214783A530505C78809C2B47229259FA81C9FE84E20103102D486D1994B026C836CD825628264A5DAB70821E9B0F1170DB545608BDB17488EC444440411290822815EB4D503014A313B3382D40B6113C4936E1F0289985E7C588F411036CC8D40B58421E126F1099F204EFB2A91D9C9DC134378578300A158E55A1AB83D1C3CC222484D4E40BC198E41D146206008020493C2C9991816413C4EC70E00030C0954181508848740A1DB17181C6AD39009E271263D0AD03F856A48D41708188E00A1B3DCDEFC05A1F8111241164E49EA1853498BA9C8431E0AC6A2AE79103876A622B6D7E32BB67EAFD4A59008E2713A9E01F0B8D2CE45BD8608C4B76D87B836ED217FCADFDB21BE6D7BF93BFB3750E0DC9993A8387D02E74E9F44C59993359FEC77F9DF4F0A482346803CE3F6F97FA7B41BC504C9F9C5B04429463AA0B463ABD68B6D158F84CB7BA353621F74AAFDACFB5D0D4C8E1ED883A3A57B515EBA07470FECC5D1D23D283FB017559586C9D7AA1196AE7D48243671BA77EB412546151344882F340D67C76E3DD163F048741F9282CE3DAFC2C59D2F5782BBEA758E1F3E80C3C53B511CD880FD85B9F8BE4CFC2D6B16E410C41E1411A4564BF75BD547350A3B6C737102BA0F4AC1E503AFC11503AF4142622F534671A46437BEC9DF88D25DDB505AB40D674F2ABEED36653C6A3B1567A35D1E52A0F5AB8C20A9F6798410C5F76D6A076386FEFA26DF8C81A3C7A3C7909188691567069714FB50557116255FE6A168C35AECDAFC2FC5EDF8AE48E7B97DF94F068B312841164FE9D5FA78658733C13AE2F1FF63625B61E0E8091878C37874EB97C4458865C53B64A2ECFC6C2DCE9C3024A3806970249D4EB576E5B49C7B242841ACA86DD5B6C3251878C304991C9D127B9B6640D574E4D4B123B5445903763B66C9A240532B3841D21C4594A2BF55001C362E1DC3C6A5A15DA72E5609195BD7BC2EFF9C3D79CC3231D7065AE4F6055ADC11D22241AC24FED62FE51699185DFBDAAD3649E478CB0F16CB2429FCD85A5A7F94D089992DA49E6E9120D9CEA4D5147402CF338611825D35FAA5DCCC73988A63DBB3F5BFD8BAF6751CDCE557DC26BA2BD2D56E5FFECF9B8BA15982E4A4DB7B4B12D913DDC1B7EC3D23C5B88CF93C8718666C14EFBFF424766E6059F2F82F1536DA67D692FCBD4D45DA2C41783F2DC86EA9C6653CC7FFE84710E1478BE7A1E03F2B22E8213A9A128AD9AE664E1D364F90544719083A474788A17929C8A11CAF4F973E8F6DEFB134F6FC160A9465FA024DBE956992203C2B950872843ED137AFFC0BF256BD127AC3286A514DE80D33BCF99F5EE8729304F1381DD90032A2283E45AE5ED4F152DC397B313A76E9AEA8BEA8F403026FCF9D8A033BBFE016120A6467FA026EA504290170056F68FCE8DEC7E0B865326F61E912CFD79F7F88B5593374B1659091FD6E5FA0D15FCE465790856949636C947E6490939A99EDE9B81E1367BDA859FF56E878DD8B8F6137C77BB988CD36C6B564DBC7E78F652382F0BAADFDAED98B9178D5302BCC63CD62FCF6AB7CBC35E75ECDFA37BA63023CEFF2057ED3224178146448E8D60BE9F3ADB542ACD5647B6B4E3ABEFD8A573934BAC3EDCB1FD42C4158EA349B545DA815B846F5DBE7EA31B86D469651E6B9B2FB897701FCEBBD5CC5747E305255F5A0E9CBB733D51EB934B8C5CA4EB5BB28211EDEA2BF66FC545C3BC9C55B5886C4B33BF77DACCB79D410DB3A1975B97D819C2609E2E1542D71EC237F42FF913FD5095FBECD9CF8EE5B2C768FE5364842B0CAE5FD4185B1C115C4E374501E23675B4AD802A128912370F2E821BCE6E2FB8F8DDB17A8E745FD97EC54473225C88D1C42F3F530E2E7F763D45D0F9BCFB128F4E8EB2DFFC15ACFCC28F45CB9CB142439D3E7DFD2E01984E793837D936FC2ADAE9004F594A369B19A1B9767E3F3775FE33A6A0964FA749F5F7EAB537F05F1381DCB01DCC363E497F6E88FD43FBEC56368BAC7F4CE1FA7617F214B47C96FA1C0F24C5FE0171712A418404F1EC38E8D8B47FA73ABD0FED26E3C86A75B4CEC01DDFBD81DA83C7B5A379B06192A76FB02B218817C0579EEEE415DE3E35A29529A33C8E188CD0EB9F12EDC3835A8CA4BC47678EEE053DFF3D8B68EEFADEF75E347A5EAAE99CBB61F9209E249B38F0525EB781E5C16DB6DD317A2CFF01FF31EA626F11DFA7ABBBCCD84524993FECDD629A5189BB934F0AF1A825824A541972B8780EDC9627A57A28486C0FA3FFF16BB3671FF37B41E144AE8A399DEFCF93241B25293DE2084F2BB0BEDBCB99072C70348B9E3A1D06687C56B3335C6F52F3E663114E81B6E5FFE94DA2B8883BD961861150452EE7810EC4794E0083019A07FBF3A277845FE6AE4B97D81943A8270B982DED2980992049FD181F7DFC4C77F7F3678454E6BB0157562853758CD8D9F2049F3339B2D06B245412B17A6004FB29DF6911464935581B0DF34495654EC20CEA9CB53E0C47707B175CD1BC8FF402431A6363A928894CE00CBF9316C6C9AACB0186DA90DD4FCC316787F992C3FCA36248A22AF124E6204994900B1510940E75E0364A20CB8FE364BCD8F6F0A36C972A325DB9BDBABCA1E552DF798CA083293F07A06BDB919CE08B0AF60138E1EF8BA5912F44A1A2DA73EE05DAF97EDA96279420A3F59DD2C16716D2EC24DF7CFC17BD9B32CF547430E969005C4E374B0BD03695688BE6ED32223C77BD98FB648128647B77E0E39AB14230B4FB75E451BDF9389B12F7F438BC3DE2EE132FCE4FE39E869BF16EFCCFB35F6EFF8DC0AD3E4FC189790AC54C77A42C0F70998DA90273DE5055B4D678591841D1DFD6E7FF357923AA458129D012CD3D4E8F160E273D1584E1F3B829D8C181BD6E2C8BEA2A021B0986F7AE06974BD72683D5EDEC7EE0CDA8EB30AEBD91584DD7826731658A370D881297670EAFC72BCEC0036BE95835D9BD72B0A9FE534AF4BDE79F9C0E1E8DCB3C5DC2B8AFAD4B21293E9D95FB805A5BBFC72224F96775D49E93F6A2CAEBD27A351C6DEDC775E06FBB14C21C8259E54471108DF19A45A5FD401D31635D0036B30C66C872A234A7565454863CF523EB3A49E2C0574F7C12968DDAE4348EDD5AECC3244B134D0FB029FC98460DBD34329EC36921183BDCD6BBA50FCED919BC1D2B759A414B12B08F7AF27BAF41982494FB72C55C326145B1C2BF637D22F563C17DA5FD2159D2EEF8384C4DEF267A7C43EE874796FB46ED751711F4A2A9E3D710C474BF7E0E881BDF26779E95E1C3DB02764429C6FABA7E33A8C98F86B24F66F595CEFDDE75DD8BBED13256E7251C71204E93F6A1CC63EFC8CA20163B236F91F2CC7819D5B15D55752A9CDC59DE464A0F16DDB21AE6D7BC4B56957FBBD1DE2DBB4475CDB9ADFD99BD473674EA2E2F4499C3B7D42BE253A77FAA4FC5971FA84FCFD68E95E9C397E54895945753AF7BC0A49639DF28B082525F7ED9790FB8F454AAA7251C7120409674B09DBA457F0E14AB073103C16B67360F098DB6572C4B68A571CE2DE2F3EC6BB2F34124157DC3EDA2A5A82202CCD5AB86B1AEC2177CFD68FC072F71D3F521A6DE3DBC0DF56ADDBE2CAE13F469FE163E48363B698D890E339555E86BF65584742C9120419FBF0B3606F6622295595E76492B007E0922FF3A2663B062345F741C9E83174A44C8A48D35BF32E1C77E11CB10441868FFF25AE9BA4DE6D81545D259364FF97792829CC45D9DE7A29D74838A85A5B76FBD463E828F90D1BFB6C15DF46B5BE2D203DDA002B4B10446BF1EAEF0F95E0F0BE221CDEB753563E3FB83B80AA8AB3AA4DCA963A8A898D43D7BE436B7EAEACF9BC28E132CD6C7FE29D0FFF7A9F66FD9BAD634B10C488F407878B77A2FCDB7D3871A414C70F97CACF2F276A3FAB425C6F896D15878B2F4D44FBCE89F267DDF784AE3DE50D967A16BED31F3446D212046161DF35FB35245E75B59E73893B5BECCAB8E2A9FBB88BABA5802C4310B6103671D69F2D35B86A07CBF6AEB167102B1546909D00AEB242D03F4A7F148E9FA65A2154D563B482687513A0C95B4D2CB1599105DFB6C325B22E56C7AE3D549F40BC77B8F20F53515AC46F1AE866C62F8F1184A98145B6481045B3A36FF2CDB8D5F5DC85C9B5A22802FD5DDDB4E2CFD8B2FA55FD0D1B6F51DEEE6E9903537578D79064BEF1F04781079FFA1660DB3A7E7312061902AFE58EDCD601D22FF9668C132469717E7CF8DA5C6CFF706514D0581B1729F0BCA5451BD8FE2CB64F4B940B11A078FFA527E5D387962E4CB4C1EAB23F89570D03CB82CB841A44014AB66F46DEAA5755DDEE1FB5B832D91FAB0BC7D50D1E1390BB66C2D48837F345EB64A83C77065B56BD82CFDF5D1CAD21A8EE37011D45B2260FE9426C31A19DCD54DD1573747871E744F96AC292ED58A9ECF9E2BFC8FBC72B28DB5B68A5B083C6CA92E8584EBC9A1D9E0A263CD02BE97AF41F3956DE221FCE9989A0C89BA4023B3AFB55DE07D8F1E9BB2D7AC44E645A2937481D18B27835FB25DBE9C8A5165036613A5777FFFE0D9920C148C270619B1C1949FA8FFCA97CCE9C8772FCF001ECCEFD4026C6A13D5F060D69C88FEFC48DBF9A8D7FCE7F04C581CF82D6E7A8C20FE90FAC9240C7F9CC4A5CD2BDAF3C864A49C2EADA6262EAAF284CBD24DA44E4D8D67B7632921183EDA552BA15FFEA5BEFC5F5A93364BC4E1D3B8CC5EE71606761AC51CE4BA0939D96348B52CA9697B92DD74E72E39AF1BF6C109F2CF7B33C07D555CAE57E98D075F74129F5FA580989BD4C89D9916F76E39B828DB2FC4FE9AE6D387BF27BC57E3627FF93B7EA156C5EF917C5FD4473C50629D8784FE2C9F4AAA6BDDCB42E169B401BDFCA96275238A563D79EE8C174B1868C045308615A59461476EB5456BCB3FE4830FB3D9CC28E04306D2CF6FABB71B18E2E5683249EBCBFC90AA68B555D5529278B5123C531FBEBCB247E6AF4B16A74B1647D2CF60C53F3C81776A194D66860D56A62959FA78D15AAE85D534EB05BAA51F764B498E4D42ABA582C79CE434BF2CBEA47CCE3741403E819F6E899B8A1525D2C26D5C934B1B45A41664AE94CBE94E962D56961C5B5695FAF91C574B17ED0C2AAD1C19235B26A75B12ACE9CD204E52B47FC04C3C63A151D28B3842E1645B17B69407E2B534F906CA7E34D0A4CD264040CEE34545DAC6FB66F46C1BF97E3EBCF3F32D8736DCDB3B77A4C17AB5F8A72191F4BE86211BCE9F606265F4090A44C0ABA50DB2131A6F77075B19872C9AE4DEBE53500B6D2CC4B612216F2EBEB30A4902CA18B4548A6DBEBF7342448AA23991234976228AAE7C6D8479E955FD3865BD8036F512D51BE2BF92ADC6E0C6DD7F6E24EE87FED38991475290DC271C80ABA58142439D3E7DFD28020EC175E85ACD9EB5DF69A578DC24ED51DD8F985BCA9CFEC0965D842E7158393D19DFD0C4A41FC45ED2386C00ABA586C05BD0EA806AF553C4EFB2A804C8C18459375A0952ED69913C764A2947C998B83BBFCB2B0B491A5FDA5DD645DACC47EC36425452D56FF3FF12E807F3DBF07A808C52AD7D2C0ED4D12242BD5EE2284C8F75E3C15BD74B1CE9D3A2E8BC6D5FD9C395E0E46A2B327CA2149D5EA404A08DAB64F9033F332D5F83AB138468CB61DB4CF7E65015D2C97DB17C86992200BD3AF1E6893AAB9DCD269B42E16230F23CB9913E5A83C7B5A7EE8675B3E2ACF9D4555ED773628B171AD6B7EE26B3E5BD57E6F53478AF609EA102D8C5EACA08B6593A48119CB0A98D28F5C1AAD5C799C0E2634ABAF5C5F1883156A13A18B152A628DEB5B4017ABD0ED0B0C3E3FF24604E1392DB4D0C50A9F2496D0C5226481DBEB6F90EFBA114116A6258DB151CAE50A99D0C50A9F2056D0C522926D8C6BD9B6069BF69ADC1CE4713A4A005C113E9CE66D2974B1421F1B2BE86251A024D31768A428D82441B29D0E0F055CA143191D2D842E96F271B28C2E16251EF7527FE685C8344D9034FB684A09D7A94C852E5670925849178B4A189DB9ACF191C966F75F7B521D6520E81C1CC6E8AD2174B19A1B3B6BE96251A02CD317E8D2141ACD1324CD311B144F47EFF457E679D7BE760C1B971E76924F6556A2A7164B58BA75CD1B38B8DB1F3D4E47E829A5989DB93430372482E4A4DB7B4B12D913A1EDA869CEAE26C3C6A6A36B3F7BD4F8ACA6A3E5A5C5D8BA76310A3F5EAD66B751D197544D7A4F7FD3CFCE43352A2D1E71E3756F564BA3366C5C9A7C4589341B6C54CC8C5A27B7AE598CAD6B5E0FE9DC7A34C5D792AF846095CBFBC3DE2B450FE975953CA9491341E82A5EC0501A075B2F19387A3C068E9E201F9DE5B13095929D9FAD954F4F7E57B29BC71015C544099D98E9CDFF677395831E92F6A43A8A40D05F9135CE2AC5C4B6C2805AA224F64FE2223AA69EB873C37B28DAB046DE1B66F152E4F6055ADC56159420D94E7E4F1A863239FA26DF245F51982E566C5C7C284D0DAF5B75EE2C4A0AF350B4612D766DFE97E1FE98C6014233DDDEFC1677AF0725C89C29BD5A275476E0E7BC6984A353A38B957C9E2E963915178F7CB30BDF146C0A4B172B4288A2A639397AAAB56BDD57E75A7C4651128DC7699F0B902794D4B55A9D8EDD7AA2C7E091E83E24C5705D2C969BBD38B0012585B9385E169E2E9655C68F00735DBEC0EC60F106BD82B00E78D7CD0A065228FF1FD32ABE560BAB460F2B218A74B1428933DAEBD6E95E058B43114158273C6F830F06925AFF6F565D2CB5E28B9A7E9AD8D61EF65BACBA860BD38677B3D1AAD2A80141382A1068060189C4264EF76E3DA80420C55710D699C7E97806C0E34A3A16750402E644803CE3F6F97FA7D4B79008B2E8EEE11DCEC655B125F98E4A0D887A0201132170EC4C456CAFC7576C552C751F1241E407F6B4A45984F35409261A50E18A9A08503ACBBD347F41285D864C909A5B2D7B214006866248D41508188C4023410625FE84479034C73DA058AEC480A823103005020493DCDEC05BA1FA1216419891EC34C73F28C5CF433528EA0B04F4468052ACCA3C4F2D3114FB6113E485C98EC131366C0FC598A82B1030020102DB60976F5B588288611344BE8AA43A9EA4047F302268615320A00481964E0B2A691F11416A1ED81D790046283126EA0804F4448000792E5F2025129B1113E48534FBE818CE1550220158B4350E81E6944A42F1286282C8B75A4EC75314F8FF500C8BBA02014D1120E429B7D73F27521BAA10A4F6568B65A74A8ED421D15E2010310204B96E6F6064C4FD34A5EE1E6EA739CEA14325D8F2C36D2FDA0904D442A01A927D86AFA0408DFE54BB82D4DC6A25DD4F415F51C331D18740201C0428C8B44C9FFFD570DA36D5465582D43E8FBC4C8107D47250F42310508A00051665FA020F2AADAFA49EEA04A9BD926CA4A0A3943820EA0804544260A3DB17B84EA5BEEABBD184203993870E906CB64D625BBCDAC325FA6BE636A8BC4292AEFDCD79A9D3D4424A138230E772D2EC13244AACA763A9D6C8887E1423104CFC4D71474D54D48C20CC96272DC90D4AB3227150B41508B48880026DAB4810D49420B524990F4A7F138993A2AD40A049042859E05EDA30A7A0DA48694E1099244EC7DF01A4ABEDBCE8CFBA081042FEEEF2FAEFD31A015D08524B9235007EA67540A27F4B20B0C6ED0B8CD72352DD08923DAE6FBC94D0F63342C8357A04266C708BC0966E1595D7DFB3A2B0428F087523080BE62FA943132A40DE1724D16368B9B4B1456A456E99FEBA5F37597A5D09C2866C7EBAFDB256D5582B48C2E504D632A82D24CEF633D7E26D87B5347261DFBA13449044CFE1E5C69621E460E819421071BBC5CDC4D52310DD6FABCE0FCA30823027D8833BED74D1DBE2ED961EF32C2A6DAC29AFA8BC738E4E0FE44D21642841EA1C12EB2451397935755AAF758E6041988220CC494F5A9258710F365A56F97F1D56C89542691A82D49244ECDD523A72BCD6D3786F55A8B0998A20CCF9DA5DC06F88ADF2A10E6574D72740B944E8949652321B11A1E908229364F2D001D416F39A387465C49430C4E6C64A49FA9516E739228DC69404A90B2ADBE910C777231D6193B7D7E298AC9A219B9A202CD02C67D2FD440841A839E6A6E94B6D81052D02333D41E45BAE1A49A1BF0ADD2D2DA680017D12E45653E97EB5A479B48C202A0852074096D3F114110A8E5ACE07EDFB5649F1507B476B2C441541E45BAE74C7F544C20B42305BAF29A28E1D26242D499899B92CF0993A3DEAD34BD411A4FE015EA45ED06786A862853CE9F6F9E7A9D295CE9D442D41184E2C894F6C0CE68A4C573ACF1A85E65866271BB13D116EF21A856634AD16D504A943C693E6B887523A8788C4A29A4E96103A2FB451322763A97F45086D4C59950B82D43FC4A7D967114A58927891C7DD98E9760C94CE0B35D5B231AE2AB3CA154158C88BEE1EDEA122AEFA3109F4B7CA2010B5D441803C4310FFACCB977B5C9DFECCD10B7704A9837561DAF06E8456CD24C04C7340CDA917842C888DAD78FEE1D70BBFE531426E095237582FA5DB2FAB90E002C8133C0EA051311160EE391BCD99B524BFCC281FF4B0CB3D41EA40CCCEE81B4FCBDB3D084A1F0270951EE07268A30884BE44BE3BFDB26BDD57E7388CAF51489621C8F99167A5D927108AA900996885418E344642B04A025D6CB6ADE891C6A5A4BD250952FF9C3225A9574C054D93083208709912C0AC52870265A0C8A112F14E7FD35F6C95B82F8CD3D204391F0C96CEDA46C95D36E0760A74B7E28420400925E41D4AE8CACC25D1B52544ABF112046902D9ECF4613F9224693C01BD159C2F3E52D01D84D8D6926AB2C6B56CDBC75A4DB468ED571024C8C8D566CBBA9910DCC8CB9616F64C41293EB449D207191A64658A563234E5B7204888A399E54C1A4181EB08E84802A400E8156217FA56A728860D9B01B299526CCCF4F9B7E8EB40745B13048970FCB2260FE9021293041BB1138AC1001D68E0C1AE5C02ECA0847E492552101F43B73DC4F93A4584C317B4B920485088C2ABC08863B3D97A53427A00B882502452A00B804B017402D02184F59822101C03453980C320E410400F02D84F09DD170FEC1544086F9C82B5FA1F785BB2871EEC3DE30000000049454E44AE426082, '1', '2023-11-30 15:56:27', '1', '2023-11-30 15:56:27', b'0'); +INSERT INTO `infra_file_content` VALUES (69, 4, '6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 0x89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E000000017352474200AECE1CE900001E9049444154785EED5D0B7854C5D97E6713124010822210E52A20D7DD2092808AA5562D58817AA56413A5B4A2FE9ADD00456D95BF68A15A41C926B68AB6A2651744D04205A1DA6ABD704910D94D3010500806820424C89D5CCEF499938B845CF6ECEEB9ED9C99E7C9B31B9899EFFBDE9937E73233EF47208A2608644D1ED2C566B3F596407A02B8C20674A34017009702E8048A8E20E8AFC838C52E101CA314E584E030010E49C04100FB6DA0FBCE5654153FBAA2F05B457D894A21214042AA2D2A3742E0B9BB07758D8F8F4D02B5D929C56042E84000230C826A0BA56487CD86ED145201AD96B6652EDB7EC8205FB8302B0812E23066A73A9225E03A423012400A0076853073D94780CD00D90C4A37BA9606F2CCECACD97C1304093222D9CE618340AB6FA2C4762340279A6D00C3F387AEA6141FD298D80FA62FF96247787D58A395204813E39C9396344692E87810DC0A6000DF5381EC20A0EF5513B266BAD7FF5FBE630D3D3A41905ACCB25287DE4088ED2E00B7B387EAD0A1E4A2C57E02BC034257BABCF99F7211518441589A2039E9F6DE12256990900182CE1162C957738AC300726C31D49BB1247F2F5FC1298FC69204F1A4264D24045329E804E55059B9265D0D6A5BEC5EEA5F6D35142C4390C5537AB53E51D9F14110FA10A50AD71FAC361B82C54BB18B10F2D2D156C75E9EF37AF1D960D579F87FEE09C216EC406C2E42C8EF781830F3C440E75149CAE17D9D855B82E4FC6258228D91665060A67926157F9E10E079526D7B21E3CD6DA5FC45077047908553923ADA2AE963001EE771C04C1CD3B3AD2B629F7D60C5D6EF4DEC63C8AE714590ECB4A45912A54F10A043C848880611234081EF6D84CC7379FDF323EECC241D7041902CA7631201F93D20EF8312C57004E80E1032C7ED0DBC65B82B113A10D50479F13EC7E0EA2A3A0F209C6C018970344DD79CAEAE96C813339605BE349D6B0A1D8A5A8278D21CB341F1B4C238453503112014B35D4B03730D74216CD3514790EC34FB6849C20B84906BC28E5A343402812DD584CE9C11655B58A28A209E54C7D320986DC4E80A9BEA204080A75DBEC0EFD5E94DFB5EA28220599387D8892DE6AF061E44D27E24AC6521CF06E9D719BE8202B3876D7A8278521DD340B0C8EC400AFF424780804C73F9FCAF86DE52BF16A6268827CDB10814D3F4834358D21B01022C72F9020FEA6D57A93D53126461FAD5036D52F56B807CAC5514CE1120209B88543D356359C14EB3856A3A82B0ADE894D037C46AB8D9A68AE6FE1CB3117A5F8637FF9F9A5B0AC180A90892ED4CCAA4A00B43F05F54E50D014232DD5EBFC72C61998620D94EC702B1F3D62CD3C2603F0859E0F6FA6719EC856CDE1404F1381D4B00A4990110E183691058E2F605EE35DA1B430932674AAFD6091517BF0D42987A882802810B11584B8E9EBAD3B5EEAB7346416318415EB87B70A798B8D8F7010C372A7861D7FC08504A3F8F03BDE5FF9616941BE1AD210461C760892D66AD208711431E7D3619492A63F0B3594BF2CBF4F65E7782C8A2CE31B16B28A562B3A1DEA31DC5F68C2289AE0411B755513C434DE0BA11B75BBA11447E20AFECF099B8AD32C14C8B621718496CE5A7AFD7EBC15D37827852ED6BC5DBAA289E99E6727DADDB17B84D0F9774218858E7D063282D6743977512CD092256C82D3771F50B588715774D0922F656E937572C6B49E3BD5B9A1184EDCA05A1AB2C3B702270DD10B0113A51AB5DC09A10849DE72052F526B1655DB739627543C76C92344A8BF3249A10C4E3746C12879DAC3E67F58D9F1DBA72F9FCD7AA6D5575828863B26A0F91E84F29025A1CDF559520426041E9508A7A5A214041A665AA2804A11A416AA579025A052EFA15082845C006C9AE96A4906A04F1381D2CFFF608A541887A02010D11C873FB022C877DC445158208C5C388C74174A0320214783A530505C78809C2B47229259FA81C9FE84E20103102D486D1994B026C836CD825628264A5DAB70821E9B0F1170DB545608BDB17488EC444440411290822815EB4D503014A313B3382D40B6113C4936E1F0289985E7C588F411036CC8D40B58421E126F1099F204EFB2A91D9C9DC134378578300A158E55A1AB83D1C3CC222484D4E40BC198E41D146206008020493C2C9991816413C4EC70E00030C0954181508848740A1DB17181C6AD39009E271263D0AD03F856A48D41708188E00A1B3DCDEFC05A1F8111241164E49EA1853498BA9C8431E0AC6A2AE79103876A622B6D7E32BB67EAFD4A59008E2713A9E01F0B8D2CE45BD8608C4B76D87B836ED217FCADFDB21BE6D7BF93BFB3750E0DC9993A8387D02E74E9F44C59993359FEC77F9DF4F0A482346803CE3F6F97FA7B41BC504C9F9C5B04429463AA0B463ABD68B6D158F84CB7BA353621F74AAFDACFB5D0D4C8E1ED883A3A57B515EBA07470FECC5D1D23D283FB017559586C9D7AA1196AE7D48243671BA77EB412546151344882F340D67C76E3DD163F048741F9282CE3DAFC2C59D2F5782BBEA758E1F3E80C3C53B511CD880FD85B9F8BE4CFC2D6B16E410C41E1411A4564BF75BD547350A3B6C737102BA0F4AC1E503AFC11503AF4142622F534671A46437BEC9DF88D25DDB505AB40D674F2ABEED36653C6A3B1567A35D1E52A0F5AB8C20A9F6798410C5F76D6A076386FEFA26DF8C81A3C7A3C7909188691567069714FB50557116255FE6A168C35AECDAFC2FC5EDF8AE48E7B97DF94F068B312841164FE9D5FA78658733C13AE2F1FF63625B61E0E8091878C37874EB97C4458865C53B64A2ECFC6C2DCE9C3024A3806970249D4EB576E5B49C7B242841ACA86DD5B6C3251878C304991C9D127B9B6640D574E4D4B123B5445903763B66C9A240532B3841D21C4594A2BF55001C362E1DC3C6A5A15DA72E5609195BD7BC2EFF9C3D79CC3231D7065AE4F6055ADC11D22241AC24FED62FE51699185DFBDAAD3649E478CB0F16CB2429FCD85A5A7F94D089992DA49E6E9120D9CEA4D5147402CF338611825D35FAA5DCCC73988A63DBB3F5BFD8BAF6751CDCE557DC26BA2BD2D56E5FFECF9B8BA15982E4A4DB7B4B12D913DDC1B7EC3D23C5B88CF93C8718666C14EFBFF424766E6059F2F82F1536DA67D692FCBD4D45DA2C41783F2DC86EA9C6653CC7FFE84710E1478BE7A1E03F2B22E8213A9A128AD9AE664E1D364F90544719083A474788A17929C8A11CAF4F973E8F6DEFB134F6FC160A9465FA024DBE956992203C2B950872843ED137AFFC0BF256BD127AC3286A514DE80D33BCF99F5EE8729304F1381DD90032A2283E45AE5ED4F152DC397B313A76E9AEA8BEA8F403026FCF9D8A033BBFE016120A6467FA026EA504290170056F68FCE8DEC7E0B865326F61E912CFD79F7F88B5593374B1659091FD6E5FA0D15FCE465790856949636C947E6490939A99EDE9B81E1367BDA859FF56E878DD8B8F6137C77BB988CD36C6B564DBC7E78F652382F0BAADFDAED98B9178D5302BCC63CD62FCF6AB7CBC35E75ECDFA37BA63023CEFF2057ED3224178146448E8D60BE9F3ADB542ACD5647B6B4E3ABEFD8A573934BAC3EDCB1FD42C4158EA349B545DA815B846F5DBE7EA31B86D469651E6B9B2FB897701FCEBBD5CC5747E305255F5A0E9CBB733D51EB934B8C5CA4EB5BB28211EDEA2BF66FC545C3BC9C55B5886C4B33BF77DACCB79D410DB3A1975B97D819C2609E2E1542D71EC237F42FF913FD5095FBECD9CF8EE5B2C768FE5364842B0CAE5FD4185B1C115C4E374501E23675B4AD802A128912370F2E821BCE6E2FB8F8DDB17A8E745FD97EC54473225C88D1C42F3F530E2E7F763D45D0F9BCFB128F4E8EB2DFFC15ACFCC28F45CB9CB142439D3E7DFD2E01984E793837D936FC2ADAE9004F594A369B19A1B9767E3F3775FE33A6A0964FA749F5F7EAB537F05F1381DCB01DCC363E497F6E88FD43FBEC56368BAC7F4CE1FA7617F214B47C96FA1C0F24C5FE0171712A418404F1EC38E8D8B47FA73ABD0FED26E3C86A75B4CEC01DDFBD81DA83C7B5A379B06192A76FB02B218817C0579EEEE415DE3E35A29529A33C8E188CD0EB9F12EDC3835A8CA4BC47678EEE053DFF3D8B68EEFADEF75E347A5EAAE99CBB61F9209E249B38F0525EB781E5C16DB6DD317A2CFF01FF31EA626F11DFA7ABBBCCD84524993FECDD629A5189BB934F0AF1A825824A541972B8780EDC9627A57A28486C0FA3FFF16BB3671FF37B41E144AE8A399DEFCF93241B25293DE2084F2BB0BEDBCB99072C70348B9E3A1D06687C56B3335C6F52F3E663114E81B6E5FFE94DA2B8883BD961861150452EE7810EC4794E0083019A07FBF3A277845FE6AE4B97D81943A8270B982DED2980992049FD181F7DFC4C77F7F3678454E6BB0157562853758CD8D9F2049F3339B2D06B245412B17A6004FB29DF6911464935581B0DF34495654EC20CEA9CB53E0C47707B175CD1BC8FF402431A6363A928894CE00CBF9316C6C9AACB0186DA90DD4FCC316787F992C3FCA36248A22AF124E6204994900B1510940E75E0364A20CB8FE364BCD8F6F0A36C972A325DB9BDBABCA1E552DF798CA083293F07A06BDB919CE08B0AF60138E1EF8BA5912F44A1A2DA73EE05DAF97EDA96279420A3F59DD2C16716D2EC24DF7CFC17BD9B32CF547430E969005C4E374B0BD03695688BE6ED32223C77BD98FB648128647B77E0E39AB14230B4FB75E451BDF9389B12F7F438BC3DE2EE132FCE4FE39E869BF16EFCCFB35F6EFF8DC0AD3E4FC189790AC54C77A42C0F70998DA90273DE5055B4D678591841D1DFD6E7FF357923AA458129D012CD3D4E8F160E273D1584E1F3B829D8C181BD6E2C8BEA2A021B0986F7AE06974BD72683D5EDEC7EE0CDA8EB30AEBD91584DD7826731658A370D881297670EAFC72BCEC0036BE95835D9BD72B0A9FE534AF4BDE79F9C0E1E8DCB3C5DC2B8AFAD4B21293E9D95FB805A5BBFC72224F96775D49E93F6A2CAEBD27A351C6DEDC775E06FBB14C21C8259E54471108DF19A45A5FD401D31635D0036B30C66C872A234A7565454863CF523EB3A49E2C0574F7C12968DDAE4348EDD5AECC3244B134D0FB029FC98460DBD34329EC36921183BDCD6BBA50FCED919BC1D2B759A414B12B08F7AF27BAF41982494FB72C55C326145B1C2BF637D22F563C17DA5FD2159D2EEF8384C4DEF267A7C43EE874796FB46ED751711F4A2A9E3D710C474BF7E0E881BDF26779E95E1C3DB02764429C6FABA7E33A8C98F86B24F66F595CEFDDE75DD8BBED13256E7251C71204E93F6A1CC63EFC8CA20163B236F91F2CC7819D5B15D55752A9CDC59DE464A0F16DDB21AE6D7BC4B56957FBBD1DE2DBB4475CDB9ADFD99BD473674EA2E2F4499C3B7D42BE253A77FAA4FC5971FA84FCFD68E95E9C397E54895945753AF7BC0A49639DF28B082525F7ED9790FB8F454AAA7251C7120409674B09DBA457F0E14AB073103C16B67360F098DB6572C4B68A571CE2DE2F3EC6BB2F34124157DC3EDA2A5A82202CCD5AB86B1AEC2177CFD68FC072F71D3F521A6DE3DBC0DF56ADDBE2CAE13F469FE163E48363B698D890E339555E86BF65584742C9120419FBF0B3606F6622295595E76492B007E0922FF3A2663B062345F741C9E83174A44C8A48D35BF32E1C77E11CB10441868FFF25AE9BA4DE6D81545D259364FF97792829CC45D9DE7A29D74838A85A5B76FBD463E828F90D1BFB6C15DF46B5BE2D203DDA002B4B10446BF1EAEF0F95E0F0BE221CDEB753563E3FB83B80AA8AB3AA4DCA963A8A898D43D7BE436B7EAEACF9BC28E132CD6C7FE29D0FFF7A9F66FD9BAD634B10C488F407878B77A2FCDB7D3871A414C70F97CACF2F276A3FAB425C6F896D15878B2F4D44FBCE89F267DDF784AE3DE50D967A16BED31F3446D212046161DF35FB35245E75B59E73893B5BECCAB8E2A9FBB88BABA5802C4310B6103671D69F2D35B86A07CBF6AEB167102B1546909D00AEB242D03F4A7F148E9FA65A2154D563B482687513A0C95B4D2CB1599105DFB6C325B22E56C7AE3D549F40BC77B8F20F53515AC46F1AE866C62F8F1184A98145B6481045B3A36FF2CDB8D5F5DC85C9B5A22802FD5DDDB4E2CFD8B2FA55FD0D1B6F51DEEE6E9903537578D79064BEF1F04781079FFA1660DB3A7E7312061902AFE58EDCD601D22FF9668C132469717E7CF8DA5C6CFF706514D0581B1729F0BCA5451BD8FE2CB64F4B940B11A078FFA527E5D387962E4CB4C1EAB23F89570D03CB82CB841A44014AB66F46DEAA5755DDEE1FB5B832D91FAB0BC7D50D1E1390BB66C2D48837F345EB64A83C77065B56BD82CFDF5D1CAD21A8EE37011D45B2260FE9426C31A19DCD54DD1573747871E744F96AC292ED58A9ECF9E2BFC8FBC72B28DB5B68A5B083C6CA92E8584EBC9A1D9E0A263CD02BE97AF41F3956DE221FCE9989A0C89BA4023B3AFB55DE07D8F1E9BB2D7AC44E645A2937481D18B27835FB25DBE9C8A5165036613A5777FFFE0D9920C148C270619B1C1949FA8FFCA97CCE9C8772FCF001ECCEFD4026C6A13D5F060D69C88FEFC48DBF9A8D7FCE7F04C581CF82D6E7A8C20FE90FAC9240C7F9CC4A5CD2BDAF3C864A49C2EADA6262EAAF284CBD24DA44E4D8D67B7632921183EDA552BA15FFEA5BEFC5F5A93364BC4E1D3B8CC5EE71606761AC51CE4BA0939D96348B52CA9697B92DD74E72E39AF1BF6C109F2CF7B33C07D555CAE57E98D075F74129F5FA580989BD4C89D9916F76E39B828DB2FC4FE9AE6D387BF27BC57E3627FF93B7EA156C5EF917C5FD4473C50629D8784FE2C9F4AAA6BDDCB42E169B401BDFCA96275238A563D79EE8C174B1868C045308615A59461476EB5456BCB3FE4830FB3D9CC28E04306D2CF6FABB71B18E2E5683249EBCBFC90AA68B555D5529278B5123C531FBEBCB247E6AF4B16A74B1647D2CF60C53F3C81776A194D66860D56A62959FA78D15AAE85D534EB05BAA51F764B498E4D42ABA582C79CE434BF2CBEA47CCE3741403E819F6E899B8A1525D2C26D5C934B1B45A41664AE94CBE94E962D56961C5B5695FAF91C574B17ED0C2AAD1C19235B26A75B12ACE9CD204E52B47FC04C3C63A151D28B3842E1645B17B69407E2B534F906CA7E34D0A4CD264040CEE34545DAC6FB66F46C1BF97E3EBCF3F32D8736DCDB3B77A4C17AB5F8A72191F4BE86211BCE9F606265F4090A44C0ABA50DB2131A6F77075B19872C9AE4DEBE53500B6D2CC4B612216F2EBEB30A4902CA18B4548A6DBEBF7342448AA23991234976228AAE7C6D8479E955FD3865BD8036F512D51BE2BF92ADC6E0C6DD7F6E24EE87FED38991475290DC271C80ABA58142439D3E7DFD28020EC175E85ACD9EB5DF69A578DC24ED51DD8F985BCA9CFEC0965D842E7158393D19DFD0C4A41FC45ED2386C00ABA586C05BD0EA806AF553C4EFB2A804C8C18459375A0952ED69913C764A2947C998B83BBFCB2B0B491A5FDA5DD645DACC47EC36425452D56FF3FF12E807F3DBF07A808C52AD7D2C0ED4D12242BD5EE2284C8F75E3C15BD74B1CE9D3A2E8BC6D5FD9C395E0E46A2B327CA2149D5EA404A08DAB64F9033F332D5F83AB138468CB61DB4CF7E65015D2C97DB17C86992200BD3AF1E6893AAB9DCD269B42E16230F23CB9913E5A83C7B5A7EE8675B3E2ACF9D4555ED773628B171AD6B7EE26B3E5BD57E6F53478AF609EA102D8C5EACA08B6593A48119CB0A98D28F5C1AAD5C799C0E2634ABAF5C5F1883156A13A18B152A628DEB5B4017ABD0ED0B0C3E3FF24604E1392DB4D0C50A9F2496D0C5226481DBEB6F90EFBA114116A6258DB151CAE50A99D0C50A9F2056D0C522926D8C6BD9B6069BF69ADC1CE4713A4A005C113E9CE66D2974B1421F1B2BE86251A024D31768A428D82441B29D0E0F055CA143191D2D842E96F271B28C2E16251EF7527FE685C8344D9034FB684A09D7A94C852E5670925849178B4A189DB9ACF191C966F75F7B521D6520E81C1CC6E8AD2174B19A1B3B6BE96251A02CD317E8D2141ACD1324CD311B144F47EFF457E679D7BE760C1B971E76924F6556A2A7164B58BA75CD1B38B8DB1F3D4E47E829A5989DB93430372482E4A4DB7B4B12D913A1EDA869CEAE26C3C6A6A36B3F7BD4F8ACA6A3E5A5C5D8BA76310A3F5EAD66B751D197544D7A4F7FD3CFCE43352A2D1E71E3756F564BA3366C5C9A7C4589341B6C54CC8C5A27B7AE598CAD6B5E0FE9DC7A34C5D792AF846095CBFBC3DE2B450FE975953CA9491341E82A5EC0501A075B2F19387A3C068E9E201F9DE5B13095929D9FAD954F4F7E57B29BC71015C544099D98E9CDFF677395831E92F6A43A8A40D05F9135CE2AC5C4B6C2805AA224F64FE2223AA69EB873C37B28DAB046DE1B66F152E4F6055ADC56159420D94E7E4F1A863239FA26DF245F51982E566C5C7C284D0DAF5B75EE2C4A0AF350B4612D766DFE97E1FE98C6014233DDDEFC1677AF0725C89C29BD5A275476E0E7BC6984A353A38B957C9E2E963915178F7CB30BDF146C0A4B172B4288A2A639397AAAB56BDD57E75A7C4651128DC7699F0B902794D4B55A9D8EDD7AA2C7E091E83E24C5705D2C969BBD38B0012585B9385E169E2E9655C68F00735DBEC0EC60F106BD82B00E78D7CD0A065228FF1FD32ABE560BAB460F2B218A74B1428933DAEBD6E95E058B43114158273C6F830F06925AFF6F565D2CB5E28B9A7E9AD8D61EF65BACBA860BD38677B3D1AAD2A80141382A1068060189C4264EF76E3DA80420C55710D699C7E97806C0E34A3A16750402E644803CE3F6F97FA7D4B79008B2E8EEE11DCEC655B125F98E4A0D887A0201132170EC4C456CAFC7576C552C751F1241E407F6B4A45984F35409261A50E18A9A08503ACBBD347F41285D864C909A5B2D7B214006866248D41508188C4023410625FE84479034C73DA058AEC480A823103005020493DCDEC05BA1FA1216419891EC34C73F28C5CF433528EA0B04F4468052ACCA3C4F2D3114FB6113E485C98EC131366C0FC598A82B1030020102DB60976F5B588288611344BE8AA43A9EA4047F302268615320A00481964E0B2A691F11416A1ED81D790046283126EA0804F4448000792E5F2025129B1113E48534FBE818CE1550220158B4350E81E6944A42F1286282C8B75A4EC75314F8FF500C8BBA02014D1120E429B7D73F27521BAA10A4F6568B65A74A8ED421D15E2010310204B96E6F6064C4FD34A5EE1E6EA739CEA14325D8F2C36D2FDA0904D442A01A927D86AFA0408DFE54BB82D4DC6A25DD4F415F51C331D18740201C0428C8B44C9FFFD570DA36D5465582D43E8FBC4C8107D47250F42310508A00051665FA020F2AADAFA49EEA04A9BD926CA4A0A3943820EA0804544260A3DB17B84EA5BEEABBD184203993870E906CB64D625BBCDAC325FA6BE636A8BC4292AEFDCD79A9D3D4424A138230E772D2EC13244AACA763A9D6C8887E1423104CFC4D71474D54D48C20CC96272DC90D4AB3227150B41508B48880026DAB4810D49420B524990F4A7F138993A2AD40A049042859E05EDA30A7A0DA48694E1099244EC7DF01A4ABEDBCE8CFBA081042FEEEF2FAEFD31A015D08524B9235007EA67540A27F4B20B0C6ED0B8CD72352DD08923DAE6FBC94D0F63342C8357A04266C708BC0966E1595D7DFB3A2B0428F087523080BE62FA943132A40DE1724D16368B9B4B1456A456E99FEBA5F37597A5D09C2866C7EBAFDB256D5582B48C2E504D632A82D24CEF633D7E26D87B5347261DFBA13449044CFE1E5C69621E460E819421071BBC5CDC4D52310DD6FABCE0FCA30823027D8833BED74D1DBE2ED961EF32C2A6DAC29AFA8BC738E4E0FE44D21642841EA1C12EB2451397935755AAF758E6041988220CC494F5A9258710F365A56F97F1D56C89542691A82D49244ECDD523A72BCD6D3786F55A8B0998A20CCF9DA5DC06F88ADF2A10E6574D72740B944E8949652321B11A1E908229364F2D001D416F39A387465C49430C4E6C64A49FA9516E739228DC69404A90B2ADBE910C777231D6193B7D7E298AC9A219B9A202CD02C67D2FD440841A839E6A6E94B6D81052D02333D41E45BAE1A49A1BF0ADD2D2DA680017D12E45653E97EB5A479B48C202A0852074096D3F114110A8E5ACE07EDFB5649F1507B476B2C441541E45BAE74C7F544C20B42305BAF29A28E1D26242D499899B92CF0993A3DEAD34BD411A4FE015EA45ED06786A862853CE9F6F9E7A9D295CE9D442D41184E2C894F6C0CE68A4C573ACF1A85E65866271BB13D116EF21A856634AD16D504A943C693E6B887523A8788C4A29A4E96103A2FB451322763A97F45086D4C59950B82D43FC4A7D967114A58927891C7DD98E9760C94CE0B35D5B231AE2AB3CA154158C88BEE1EDEA122AEFA3109F4B7CA2010B5D441803C4310FFACCB977B5C9DFECCD10B7704A9837561DAF06E8456CD24C04C7340CDA917842C888DAD78FEE1D70BBFE531426E095237582FA5DB2FAB90E002C8133C0EA051311160EE391BCD99B524BFCC281FF4B0CB3D41EA40CCCEE81B4FCBDB3D084A1F0270951EE07268A30884BE44BE3BFDB26BDD57E7388CAF51489621C8F99167A5D927108AA900996885418E344642B04A025D6CB6ADE891C6A5A4BD250952FF9C3225A9574C054D93083208709912C0AC52870265A0C8A112F14E7FD35F6C95B82F8CD3D204391F0C96CEDA46C95D36E0760A74B7E28420400925E41D4AE8CACC25D1B52544ABF112046902D9ECF4613F9224693C01BD159C2F3E52D01D84D8D6926AB2C6B56CDBC75A4DB468ED571024C8C8D566CBBA9910DCC8CB9616F64C41293EB449D207191A64658A563234E5B7204888A399E54C1A4181EB08E84802A400E8156217FA56A728860D9B01B299526CCCF4F9B7E8EB40745B13048970FCB2260FE9021293041BB1138AC1001D68E0C1AE5C02ECA0847E492552101F43B73DC4F93A4584C317B4B920485088C2ABC08863B3D97A53427A00B882502452A00B804B017402D02184F59822101C03453980C320E410400F02D84F09DD170FEC1544086F9C82B5FA1F785BB2871EEC3DE30000000049454E44AE426082, '1', '2023-11-30 15:57:41', '1', '2023-11-30 15:57:41', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_job +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job`; +CREATE TABLE `infra_job` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务编号', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', + `status` tinyint 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 DEFAULT NULL COMMENT '处理器的参数', + `cron_expression` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'CRON 表达式', + `retry_count` int NOT NULL DEFAULT '0' COMMENT '重试次数', + `retry_interval` int NOT NULL DEFAULT '0' COMMENT '重试间隔', + `monitor_timeout` int NOT NULL DEFAULT '0' COMMENT '监控超时时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务表'; + +-- ---------------------------- +-- Records of infra_job +-- ---------------------------- +BEGIN; +INSERT INTO `infra_job` VALUES (5, '支付通知 Job', 2, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2023-07-27 18:45:48', b'1'); +INSERT INTO `infra_job` VALUES (16, 'Job 示例', 2, 'demoJob', NULL, '* * * L * ?', 1, 1, 0, '1', '2022-09-24 22:31:41', '1', '2023-06-29 13:35:02', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_job_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job_log`; +CREATE TABLE `infra_job_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志编号', + `job_id` bigint 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 DEFAULT NULL COMMENT '处理器的参数', + `execute_index` tinyint NOT NULL DEFAULT '1' COMMENT '第几次执行', + `begin_time` datetime NOT NULL COMMENT '开始执行时间', + `end_time` datetime DEFAULT NULL COMMENT '结束执行时间', + `duration` int DEFAULT NULL COMMENT '执行时长', + `status` tinyint NOT NULL COMMENT '任务状态', + `result` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=168767 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务日志表'; + +-- ---------------------------- +-- Records of infra_job_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_test_demo +-- ---------------------------- +DROP TABLE IF EXISTS `infra_test_demo`; +CREATE TABLE `infra_test_demo` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态', + `type` tinyint NOT NULL COMMENT '类型', + `category` tinyint NOT NULL COMMENT '分类', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典类型表'; + +-- ---------------------------- +-- Records of infra_test_demo +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for merchant_details +-- ---------------------------- +DROP TABLE IF EXISTS `merchant_details`; +CREATE TABLE `merchant_details` ( + `details_id` char(32) NOT NULL COMMENT '列表id', + `pay_type` varchar(60) NOT NULL COMMENT '支付类型(支付渠道) 详情查看com.egzosn.pay.spring.boot.core.merchant.PaymentPlatform对应子类,aliPay 支付宝, wxPay微信..等等', + `appid` varchar(32) DEFAULT NULL COMMENT '应用id', + `mch_id` varchar(32) DEFAULT NULL COMMENT '商户id,商户号,合作伙伴id等等', + `cert_store_type` varchar(16) DEFAULT NULL COMMENT '当前面私钥公钥为证书类型的时候,这里必填,可选值:PATH,STR,INPUT_STREAM,CLASS_PATH,URL', + `key_private` mediumtext COMMENT '私钥或私钥证书', + `key_public` mediumtext COMMENT '公钥或公钥证书', + `key_cert` varchar(20480) DEFAULT NULL COMMENT 'key证书,附加证书使用,如SSL证书,或者银联根级证书方面', + `key_cert_pwd` varchar(32) DEFAULT NULL COMMENT '私钥证书或key证书的密码', + `notify_url` varchar(256) DEFAULT NULL COMMENT '异步回调', + `return_url` varchar(256) DEFAULT NULL COMMENT '同步回调地址,大部分用于付款成功后页面转跳', + `sign_type` varchar(16) NOT NULL COMMENT '签名方式,目前已实现多种签名方式详情查看com.egzosn.pay.common.util.sign.encrypt。MD5,RSA等等', + `seller` varchar(32) DEFAULT NULL COMMENT '收款账号,暂时只有支付宝部分使用,可根据开发者自行使用', + `sub_app_id` varchar(32) DEFAULT NULL COMMENT '子appid', + `sub_mch_id` varchar(32) DEFAULT NULL COMMENT '子商户id', + `input_charset` varchar(16) NOT NULL DEFAULT 'utf-8' COMMENT '编码类型,大部分为utf-8', + `is_test` tinyint(1) NOT NULL COMMENT '是否为测试环境: 0 否,1 测试环境', + `updater` varchar(60) DEFAULT NULL COMMENT '更新者', + `creator` varchar(60) DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `deleted` bit(1) DEFAULT b'0', + PRIMARY KEY (`details_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='支付服务商配置'; + +-- ---------------------------- +-- Records of merchant_details +-- ---------------------------- +BEGIN; +INSERT INTO `merchant_details` VALUES ('ali_app', 'aliPay', '2021001187645179', ' 2088821836348568', NULL, 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB', NULL, NULL, 'http://localhost:48081/app-api/order/payBack6.json', 'http://localhost:8080/#/pages/mine/mine', 'RSA2', ' 2088821836348568', NULL, NULL, 'UTF-8', 0, '1', NULL, NULL, '2023-11-09 16:22:23', b'1'); +INSERT INTO `merchant_details` VALUES ('ali_h5', 'aliPay', '2021001187645179', ' 2088821836348568', NULL, 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=', 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB', NULL, NULL, 'http://localhost:48081/app-api/order/payBackli_h51.json', 'http://localhost:8080/#/pages/take-foods/take-foods', 'RSA2', ' 2088821836348568', NULL, NULL, 'UTF-8', 0, '1', NULL, NULL, '2024-03-31 17:05:59', b'0'); +INSERT INTO `merchant_details` VALUES ('wx_h5', 'wxPay', 'wxc061dee8806ff712', '1493624002', 'STR', 'dayouqiantuhupeng8638004yixiangt', NULL, NULL, NULL, 'https://apidc.yixiang.co/app-api/order/payBackwx_h51.json', 'https://dc.yixiang.co/h5/#/pages/mine/mine', 'MD5', NULL, NULL, NULL, 'utf-8', 0, '1', '1', '2023-09-18 17:56:33', '2024-03-31 17:05:49', b'0'); +INSERT INTO `merchant_details` VALUES ('wx_miniapp', 'wxPay', 'wx001e2dc50bf532df', '1493624002', 'PATH', 'dayouqiantuhupeng8638004yixiangt', NULL, '/Users/hupeng/cert/1493624002_20231121_cert/apiclient_cert.p12', '1493624002', 'http://yx.l2.ttut.cc/app-api/order/notify/payBackwx_miniapp1.json', '', 'MD5', NULL, NULL, NULL, 'UTF-8', 0, '1', NULL, NULL, '2024-04-19 13:26:29', b'0'); +INSERT INTO `merchant_details` VALUES ('wx_wechat', 'wxPay', 'wxc061dee8806ff712', '1493624002', 'STR', 'dayouqiantuhupeng8638004yixiangt', NULL, NULL, NULL, 'https://apidc.yixiang.co/app-api/order/payBackwx_wechat1.json', 'https://dc.yixiang.co/h5/#/pages/take-foods/take-foods', 'MD5', NULL, NULL, NULL, 'utf-8', 0, '1', '1', '2023-09-18 17:56:33', '2024-03-31 17:05:19', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_account +-- ---------------------------- +DROP TABLE IF EXISTS `mp_account`; +CREATE TABLE `mp_account` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号名称', + `account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号账号', + `app_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号appid', + `app_secret` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号密钥', + `url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号url', + `token` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公众号token', + `aes_key` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '加密密钥', + `qr_code_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '二维码图片URL', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公众号账号表'; + +-- ---------------------------- +-- Records of mp_account +-- ---------------------------- +BEGIN; +INSERT INTO `mp_account` VALUES (2, '1', '2', '3', '4', NULL, '5', NULL, NULL, NULL, '1', '2023-01-07 17:30:30', '1', '2023-01-07 10:05:49', b'1', 1); +INSERT INTO `mp_account` VALUES (3, '1', '2', '3', '4', NULL, '5', NULL, NULL, NULL, '1', '2023-01-08 00:34:35', '1', '2023-01-14 01:15:56', b'1', 1); +INSERT INTO `mp_account` VALUES (5, 'yshop_pro', ' gh_370eafba1888 ', 'wxdbdbc123c8c30b45', '3312eb2026a006bd0cc39af3021ef9c5', NULL, 'yshop_pro', '', 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQFv8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyWVFZbzlITmRha1UxMDAwMGcwNzkAAgTeHZ1kAwQAAAAA', '', '1', '2023-06-29 13:58:21', '1', '2024-06-01 14:26:58', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_auto_reply +-- ---------------------------- +DROP TABLE IF EXISTS `mp_auto_reply`; +CREATE TABLE `mp_auto_reply` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', + `type` tinyint NOT NULL COMMENT '回复类型', + `request_keyword` varchar(255) DEFAULT NULL COMMENT '请求的关键字', + `request_match` tinyint DEFAULT NULL COMMENT '请求的关键字的匹配', + `request_message_type` varchar(32) DEFAULT NULL COMMENT '请求的消息类型', + `response_message_type` varchar(32) NOT NULL COMMENT '回复的消息类型', + `response_content` varchar(1024) DEFAULT NULL COMMENT '回复的消息内容', + `response_media_id` varchar(128) DEFAULT NULL COMMENT '回复的媒体文件 id', + `response_media_url` varchar(1024) DEFAULT NULL COMMENT '回复的媒体文件 URL', + `response_title` varchar(128) DEFAULT NULL COMMENT '回复的标题', + `response_description` varchar(256) DEFAULT NULL COMMENT '回复的描述', + `response_thumb_media_id` varchar(128) DEFAULT NULL COMMENT '回复的缩略图的媒体 id', + `response_thumb_media_url` varchar(1024) DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', + `response_articles` varchar(1024) DEFAULT NULL COMMENT '回复的图文消息数组', + `response_music_url` varchar(1024) DEFAULT NULL COMMENT '回复的音乐链接', + `response_hq_music_url` varchar(1024) DEFAULT NULL COMMENT '回复的高质量音乐链接', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb3 COMMENT='公众号消息自动回复表'; + +-- ---------------------------- +-- Records of mp_auto_reply +-- ---------------------------- +BEGIN; +INSERT INTO `mp_auto_reply` VALUES (44, 1, 'wx5b23ba7a5589ecbb', 3, '你猜', 1, 'text', 'voice', '', 't1E3ss-niBf29tpzShjljxwaiBoXV_61ln2hzZGDlvAcT3hqLbC9dvl39YwiBWg9', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '2023-01-04 04:40:55', '', '2023-01-16 16:55:48', b'1', 1); +INSERT INTO `mp_auto_reply` VALUES (53, 5, 'wxdbdbc123c8c30b45', 3, 'yshop', 1, NULL, 'text', 'haha', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-06-29 16:25:06', '1', '2023-06-29 16:25:06', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_material +-- ---------------------------- +DROP TABLE IF EXISTS `mp_material`; +CREATE TABLE `mp_material` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', + `media_id` varchar(128) NOT NULL COMMENT '公众号素材 id', + `type` varchar(32) NOT NULL COMMENT '文件类型', + `permanent` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否永久', + `url` varchar(1024) DEFAULT NULL COMMENT '文件服务器的 URL', + `name` varchar(255) DEFAULT NULL COMMENT '名字', + `mp_url` varchar(1024) DEFAULT NULL COMMENT '公众号文件 URL', + `title` varchar(255) DEFAULT NULL COMMENT '视频素材的标题', + `introduction` varchar(255) DEFAULT NULL COMMENT '视频素材的描述', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8mb3 COMMENT='公众号素材表'; + +-- ---------------------------- +-- Records of mp_material +-- ---------------------------- +BEGIN; +INSERT INTO `mp_material` VALUES (80, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T', 'image', b'1', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T.png', 'file', 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukfSJXz509boa21SpH8OVHAqXCJiaiaAaHQJNxwwsa0gHRXVr0G5EZYamw/0?wx_fmt=png', '', '', '1', '2023-01-14 00:56:06', '1', '2023-01-14 07:45:41', b'1', 1); +INSERT INTO `mp_material` VALUES (81, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-pWqXoCgpdNp1fvSv7c6zoTnCsW6BGAVFNJ-E9hkAIXO', 'image', b'1', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pWqXoCgpdNp1fvSv7c6zoTnCsW6BGAVFNJ-E9hkAIXO.jpg', 'file', 'http://mmbiz.qpic.cn/mmbiz_jpg/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukzCJPJRkia5cQviaDTbLMc614uobiblN4Au4UApLYOShXNDNjdndjPVswg/0?wx_fmt=jpeg', '', '', '1', '2023-01-14 01:30:49', '1', '2023-01-14 07:31:02', b'1', 1); +INSERT INTO `mp_material` VALUES (82, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-vNzhGc_1b37nxAvj0Zt8iuGACe-mC9_a5OhVFIzt0DX', 'image', b'1', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-vNzhGc_1b37nxAvj0Zt8iuGACe-mC9_a5OhVFIzt0DX.png', 'file', 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJVkZaoiatUmOpaGalzHIVxhUNOGPaZfZUSfKzpS8bPShaicSyErHn2mEzthXochM7GE3tIDAt5FNrUg/0?wx_fmt=png', NULL, NULL, '1', '2023-01-14 08:20:53', '1', '2023-01-14 07:30:59', b'1', 1); +INSERT INTO `mp_material` VALUES (88, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0sdggkEkJ9BXy1wIiory8puv2L0sRYeBBVztrxmjjT_P', 'voice', b'1', 'http://test.yshop.iocoder.cn/rdp2FpJLZJb_Z771EZCE0sdggkEkJ9BXy1wIiory8puv2L0sRYeBBVztrxmjjT_P.amr', 'file', NULL, '', '', '1', '2023-01-14 16:28:53', '1', '2023-01-14 08:29:36', b'1', 1); +INSERT INTO `mp_material` VALUES (89, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0jlwnElym7bDUZUQI6t36O9xlh-wQWZpdDEVNHj_-Zo3', 'video', b'1', 'http://test.yshop.iocoder.cn/rdp2FpJLZJb_Z771EZCE0jlwnElym7bDUZUQI6t36O9xlh-wQWZpdDEVNHj_-Zo3.mp4', 'file', NULL, '1', '2', '1', '2023-01-14 16:53:53', '1', '2023-01-14 08:54:45', b'1', 1); +INSERT INTO `mp_material` VALUES (90, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0nKJFlsOPjLkDApXEgRjaGydiFVTsC0zMq8-x5V6-rG4', 'video', b'1', 'http://test.yshop.iocoder.cn/rdp2FpJLZJb_Z771EZCE0nKJFlsOPjLkDApXEgRjaGydiFVTsC0zMq8-x5V6-rG4.mp4', 'file', NULL, '12', '34', '1', '2023-01-14 16:55:02', '1', '2023-01-14 08:55:06', b'1', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_menu +-- ---------------------------- +DROP TABLE IF EXISTS `mp_menu`; +CREATE TABLE `mp_menu` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `account_id` bigint NOT NULL COMMENT '微信公众号ID', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '微信公众号 appid', + `name` varchar(255) DEFAULT NULL COMMENT '菜单名称', + `menu_key` varchar(255) DEFAULT NULL COMMENT '菜单标识', + `parent_id` varchar(32) DEFAULT NULL COMMENT '父ID', + `type` varchar(32) NOT NULL DEFAULT '' COMMENT '按钮类型', + `url` varchar(500) DEFAULT NULL COMMENT '网页链接', + `mini_program_app_id` varchar(32) DEFAULT NULL COMMENT '小程序appid', + `mini_program_page_path` varchar(200) DEFAULT NULL COMMENT '小程序页面路径', + `article_id` varchar(200) DEFAULT NULL COMMENT '跳转图文的媒体编号', + `reply_message_type` varchar(32) DEFAULT NULL COMMENT '消息类型', + `reply_content` varchar(1024) DEFAULT NULL COMMENT '回复的消息内容', + `reply_media_id` varchar(128) DEFAULT NULL COMMENT '回复的媒体文件 id', + `reply_media_url` varchar(1024) DEFAULT NULL COMMENT '回复的媒体文件 URL', + `reply_title` varchar(128) DEFAULT NULL COMMENT '回复的标题', + `reply_description` varchar(256) DEFAULT NULL COMMENT '回复的描述', + `reply_thumb_media_id` varchar(128) DEFAULT NULL COMMENT '回复的缩略图的媒体 id', + `reply_thumb_media_url` varchar(1024) DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', + `reply_articles` varchar(1024) DEFAULT NULL COMMENT '回复的图文消息数组', + `reply_music_url` varchar(1024) DEFAULT NULL COMMENT '回复的音乐链接', + `reply_hq_music_url` varchar(1024) DEFAULT NULL COMMENT '回复的高质量音乐链接', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=173 DEFAULT CHARSET=utf8mb3 COMMENT='公众号菜单表'; + +-- ---------------------------- +-- Records of mp_menu +-- ---------------------------- +BEGIN; +INSERT INTO `mp_menu` VALUES (1, 1, 'wx5b23ba7a5589ecbb', '今日歌曲', 'V1001_TODAY_MUSIC', '0', 'click', NULL, NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (2, 1, 'wx5b23ba7a5589ecbb', '搜索', '', '0', 'view', 'http://www.soso.com/', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 13:22:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (3, 1, 'wx5b23ba7a5589ecbb', '父按钮', '', '0', '', '', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (4, 1, 'wx5b23ba7a5589ecbb', '归去来兮', 'MUSIC', '3', 'click', NULL, NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (5, 1, 'wx5b23ba7a5589ecbb', '不说', '', '3', 'view', 'http://www.soso.com/', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (26, 1, 'wx5b23ba7a5589ecbb', '今日歌曲', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1); +INSERT INTO `mp_menu` VALUES (27, 1, 'wx5b23ba7a5589ecbb', '搜索', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1); +INSERT INTO `mp_menu` VALUES (28, 1, 'wx5b23ba7a5589ecbb', '父按钮', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1); +INSERT INTO `mp_menu` VALUES (29, 1, 'wx5b23ba7a5589ecbb', '归去来兮', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1); +INSERT INTO `mp_menu` VALUES (30, 1, 'wx5b23ba7a5589ecbb', '不说', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1); +INSERT INTO `mp_menu` VALUES (31, 1, 'wx5b23ba7a5589ecbb', '123', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:35:05', '1', '2023-01-14 16:35:43', b'1', 1); +INSERT INTO `mp_menu` VALUES (32, 1, 'wx5b23ba7a5589ecbb', '123', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:35:43', '1', '2023-01-14 16:39:10', b'1', 1); +INSERT INTO `mp_menu` VALUES (33, 1, 'wx5b23ba7a5589ecbb', '嘿嘿', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:39:10', '1', '2023-01-14 16:40:09', b'1', 1); +INSERT INTO `mp_menu` VALUES (38, 1, 'wx5b23ba7a5589ecbb', '顶级1', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (39, 1, 'wx5b23ba7a5589ecbb', '明星', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (40, 1, 'wx5b23ba7a5589ecbb', '喊个', NULL, '39', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (41, 1, 'wx5b23ba7a5589ecbb', 'haha', NULL, '39', 'view', 'http://soso.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (42, 1, 'wx5b23ba7a5589ecbb', '顶级1', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1); +INSERT INTO `mp_menu` VALUES (43, 1, 'wx5b23ba7a5589ecbb', '明星', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1); +INSERT INTO `mp_menu` VALUES (44, 1, 'wx5b23ba7a5589ecbb', '喊个', NULL, '43', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1); +INSERT INTO `mp_menu` VALUES (45, 1, 'wx5b23ba7a5589ecbb', 'haha', NULL, '43', 'view', 'http://soso.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1); +INSERT INTO `mp_menu` VALUES (46, 1, 'wx5b23ba7a5589ecbb', '测试菜单', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 11:32:17', '1', '2023-01-15 04:39:11', b'1', 1); +INSERT INTO `mp_menu` VALUES (47, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '46', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 11:32:17', '1', '2023-01-15 04:39:11', b'1', 1); +INSERT INTO `mp_menu` VALUES (48, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 12:39:12', '1', '2023-01-15 09:19:01', b'1', 1); +INSERT INTO `mp_menu` VALUES (49, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:19:02', '1', '2023-01-15 09:26:50', b'1', 1); +INSERT INTO `mp_menu` VALUES (50, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:26:51', '1', '2023-01-15 09:27:39', b'1', 1); +INSERT INTO `mp_menu` VALUES (51, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yshop.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', '奥特曼', '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:27:40', '1', '2023-01-15 09:28:20', b'1', 1); +INSERT INTO `mp_menu` VALUES (52, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yshop.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', NULL, '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:28:21', '1', '2023-01-15 09:29:21', b'1', 1); +INSERT INTO `mp_menu` VALUES (53, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yshop.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', NULL, '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:29:22', '1', '2023-01-15 09:32:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (54, 1, 'wx5b23ba7a5589ecbb', '回复图片', '01', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:29:22', '1', '2023-01-15 09:32:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (55, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:06', '1', '2023-01-15 09:33:45', b'1', 1); +INSERT INTO `mp_menu` VALUES (56, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:45', '1', '2023-01-15 09:33:55', b'1', 1); +INSERT INTO `mp_menu` VALUES (57, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:45', '1', '2023-01-15 09:33:55', b'1', 1); +INSERT INTO `mp_menu` VALUES (58, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:56', '1', '2023-01-15 09:34:02', b'1', 1); +INSERT INTO `mp_menu` VALUES (59, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:56', '1', '2023-01-15 09:34:02', b'1', 1); +INSERT INTO `mp_menu` VALUES (60, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:02', '1', '2023-01-15 09:34:44', b'1', 1); +INSERT INTO `mp_menu` VALUES (61, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:02', '1', '2023-01-15 09:34:44', b'1', 1); +INSERT INTO `mp_menu` VALUES (62, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:45', '1', '2023-01-15 09:36:27', b'1', 1); +INSERT INTO `mp_menu` VALUES (63, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:36:28', '1', '2023-01-15 09:37:20', b'1', 1); +INSERT INTO `mp_menu` VALUES (64, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:37:21', '1', '2023-01-15 09:40:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (65, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:40:14', '1', '2023-01-15 09:40:24', b'1', 1); +INSERT INTO `mp_menu` VALUES (66, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:40:24', '1', '2023-01-15 09:41:12', b'1', 1); +INSERT INTO `mp_menu` VALUES (67, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:41:13', '1', '2023-01-15 09:43:32', b'1', 1); +INSERT INTO `mp_menu` VALUES (68, 1, 'wx5b23ba7a5589ecbb', '回复视频', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:41:13', '1', '2023-01-15 09:43:32', b'1', 1); +INSERT INTO `mp_menu` VALUES (69, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1); +INSERT INTO `mp_menu` VALUES (70, 1, 'wx5b23ba7a5589ecbb', '回复视频', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', NULL, '我真的是视频', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1); +INSERT INTO `mp_menu` VALUES (71, 1, 'wx5b23ba7a5589ecbb', '回复音乐', 'ao11', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1); +INSERT INTO `mp_menu` VALUES (72, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yshop.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:16:12', '1', '2023-01-15 10:21:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (73, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yshop.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:21:14', '1', '2023-01-15 10:21:36', b'1', 1); +INSERT INTO `mp_menu` VALUES (74, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yshop.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:21:36', '1', '2023-01-15 10:21:59', b'1', 1); +INSERT INTO `mp_menu` VALUES (75, 1, 'wx5b23ba7a5589ecbb', '回复图文', 'music', '0', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 18:23:23', '1', '2023-01-15 10:23:53', b'1', 1); +INSERT INTO `mp_menu` VALUES (76, 1, 'wx5b23ba7a5589ecbb', '回复图文', 'music', '0', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 18:23:54', '1', '2023-01-15 11:13:21', b'1', 1); +INSERT INTO `mp_menu` VALUES (77, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:21', '1', '2023-01-15 11:13:36', b'1', 1); +INSERT INTO `mp_menu` VALUES (78, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '77', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:21', '1', '2023-01-15 11:13:36', b'1', 1); +INSERT INTO `mp_menu` VALUES (79, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (80, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '79', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (81, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '79', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1); +INSERT INTO `mp_menu` VALUES (82, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1); +INSERT INTO `mp_menu` VALUES (83, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '82', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1); +INSERT INTO `mp_menu` VALUES (84, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '82', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1); +INSERT INTO `mp_menu` VALUES (85, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '82', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1); +INSERT INTO `mp_menu` VALUES (86, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (87, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '86', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (88, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '86', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (89, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '86', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (90, 1, 'wx5b23ba7a5589ecbb', '子菜单名称', 'o', '86', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1); +INSERT INTO `mp_menu` VALUES (91, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (92, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '91', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (93, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '91', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (94, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '91', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (95, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '91', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (96, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '91', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1); +INSERT INTO `mp_menu` VALUES (97, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (98, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '97', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (99, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '97', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (100, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '97', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (101, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '97', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (102, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '97', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (103, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (104, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '103', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1); +INSERT INTO `mp_menu` VALUES (105, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (106, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '105', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (107, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '105', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (108, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '105', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (109, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '105', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (110, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '105', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (111, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (112, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '111', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (113, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '111', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1); +INSERT INTO `mp_menu` VALUES (114, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (115, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '114', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (116, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '114', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (117, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '114', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (118, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '114', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (119, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '114', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (120, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (121, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '120', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (122, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '120', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (123, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '120', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1); +INSERT INTO `mp_menu` VALUES (124, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (125, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '124', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (126, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '124', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (127, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '124', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (128, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '124', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (129, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '124', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (130, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (131, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '130', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (132, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '130', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (133, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '130', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (134, 1, 'wx5b23ba7a5589ecbb', '系统拍照', '0x0', '130', 'pic_sysphoto', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (135, 1, 'wx5b23ba7a5589ecbb', '拍照或相册', '0x3', '130', 'pic_photo_or_album', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (136, 1, 'wx5b23ba7a5589ecbb', '测试2', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (137, 1, 'wx5b23ba7a5589ecbb', '微信相册', 'ppp2222', '136', 'pic_weixin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1); +INSERT INTO `mp_menu` VALUES (138, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (139, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '138', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (140, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '138', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (141, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '138', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yshop.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (142, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '138', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (143, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '138', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yshop.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (144, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (145, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '144', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (146, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '144', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (147, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '144', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (148, 1, 'wx5b23ba7a5589ecbb', '系统拍照', '0x0', '144', 'pic_sysphoto', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (149, 1, 'wx5b23ba7a5589ecbb', '拍照或相册', '0x3', '144', 'pic_photo_or_album', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (150, 1, 'wx5b23ba7a5589ecbb', '测试2', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (151, 1, 'wx5b23ba7a5589ecbb', '微信相册', 'ppp2222', '150', 'pic_weixin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (152, 1, 'wx5b23ba7a5589ecbb', '选择地理位置', 'lll2', '150', 'location_select', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); +INSERT INTO `mp_menu` VALUES (169, 5, 'wxdbdbc123c8c30b45', '单商户', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-06-29 16:24:37', '1', '2023-06-29 16:24:37', b'0', 0); +INSERT INTO `mp_menu` VALUES (170, 5, 'wxdbdbc123c8c30b45', '小程序', 'miniapp', '169', 'view', 'https://www.yixiang.co', NULL, NULL, NULL, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-06-29 16:24:37', '1', '2023-06-29 16:24:37', b'0', 0); +INSERT INTO `mp_menu` VALUES (171, 5, 'wxdbdbc123c8c30b45', '多商户', 'two', '0', 'view', 'https://www.yixiang.co', NULL, NULL, NULL, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-06-29 16:24:37', '1', '2023-06-29 16:24:37', b'0', 0); +INSERT INTO `mp_menu` VALUES (172, 5, 'wxdbdbc123c8c30b45', '官网', 'gw', '0', 'view', 'https://www.yixiang.co', NULL, NULL, NULL, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-06-29 16:24:37', '1', '2023-06-29 16:24:37', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_message +-- ---------------------------- +DROP TABLE IF EXISTS `mp_message`; +CREATE TABLE `mp_message` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `msg_id` bigint DEFAULT NULL COMMENT '微信公众号的消息编号', + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', + `user_id` bigint NOT NULL COMMENT '公众号粉丝的编号', + `openid` varchar(100) NOT NULL COMMENT '公众号粉丝标志', + `type` varchar(32) NOT NULL COMMENT '消息类型', + `send_from` tinyint NOT NULL COMMENT '消息来源', + `content` varchar(1024) DEFAULT NULL COMMENT '消息内容', + `media_id` varchar(128) DEFAULT NULL COMMENT '媒体文件 id', + `media_url` varchar(1024) DEFAULT NULL COMMENT '媒体文件 URL', + `recognition` varchar(1024) DEFAULT NULL COMMENT '语音识别后文本', + `format` varchar(16) DEFAULT NULL COMMENT '语音格式', + `title` varchar(128) DEFAULT NULL COMMENT '标题', + `description` varchar(256) DEFAULT NULL COMMENT '描述', + `thumb_media_id` varchar(128) DEFAULT NULL COMMENT '缩略图的媒体 id', + `thumb_media_url` varchar(1024) DEFAULT NULL COMMENT '缩略图的媒体 URL', + `url` varchar(500) DEFAULT NULL COMMENT '点击图文消息跳转链接', + `location_x` double DEFAULT NULL COMMENT '地理位置维度', + `location_y` double DEFAULT NULL COMMENT '地理位置经度', + `scale` double DEFAULT NULL COMMENT '地图缩放大小', + `label` varchar(128) DEFAULT NULL COMMENT '详细地址', + `articles` varchar(1024) DEFAULT NULL COMMENT '图文消息数组', + `music_url` varchar(1024) DEFAULT NULL COMMENT '音乐链接', + `hq_music_url` varchar(1024) DEFAULT NULL COMMENT '高质量音乐链接', + `event` varchar(64) DEFAULT NULL COMMENT '事件类型', + `event_key` varchar(64) DEFAULT NULL COMMENT '事件 Key', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=417 DEFAULT CHARSET=utf8mb3 COMMENT='公众号消息表 '; + +-- ---------------------------- +-- Records of mp_message +-- ---------------------------- +BEGIN; +INSERT INTO `mp_message` VALUES (407, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 2, '感谢关注', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 14:01:01', NULL, '2023-06-29 14:01:01', b'0', 0); +INSERT INTO `mp_message` VALUES (408, 24166734583332250, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 1, '1111', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:21:08', NULL, '2023-06-29 16:21:08', b'0', 0); +INSERT INTO `mp_message` VALUES (409, 24166740720537081, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 1, 'yshop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:25:19', NULL, '2023-06-29 16:25:19', b'0', 0); +INSERT INTO `mp_message` VALUES (410, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 2, 'haha', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:25:19', NULL, '2023-06-29 16:25:19', b'0', 0); +INSERT INTO `mp_message` VALUES (411, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'event', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'unsubscribe', '', NULL, '2023-06-29 16:25:53', NULL, '2023-06-29 16:25:53', b'0', 0); +INSERT INTO `mp_message` VALUES (412, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'event', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'subscribe', '', NULL, '2023-06-29 16:26:01', NULL, '2023-06-29 16:26:01', b'0', 0); +INSERT INTO `mp_message` VALUES (413, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 2, '感谢关注', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:26:01', NULL, '2023-06-29 16:26:01', b'0', 0); +INSERT INTO `mp_message` VALUES (414, 24166739116227564, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 1, 'yshop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:26:11', NULL, '2023-06-29 16:26:11', b'0', 0); +INSERT INTO `mp_message` VALUES (415, NULL, 5, 'wxdbdbc123c8c30b45', 6, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 2, 'haha', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-06-29 16:26:11', NULL, '2023-06-29 16:26:11', b'0', 0); +INSERT INTO `mp_message` VALUES (416, NULL, 5, 'wxdbdbc123c8c30b45', 7, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 'text', 2, '感谢关注', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2023-07-24 17:19:40', NULL, '2023-07-24 17:19:40', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_tag +-- ---------------------------- +DROP TABLE IF EXISTS `mp_tag`; +CREATE TABLE `mp_tag` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `tag_id` bigint DEFAULT NULL COMMENT '公众号标签 id', + `name` varchar(32) DEFAULT NULL COMMENT '标签名称', + `count` int DEFAULT '0' COMMENT '粉丝数量', + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COMMENT='公众号标签表'; + +-- ---------------------------- +-- Records of mp_tag +-- ---------------------------- +BEGIN; +INSERT INTO `mp_tag` VALUES (3, 100, '测试标签啦', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 03:23:53', b'1', 1); +INSERT INTO `mp_tag` VALUES (4, 101, '测试', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 03:21:00', b'1', 1); +INSERT INTO `mp_tag` VALUES (7, 102, '搞起来', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 04:03:00', b'1', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for mp_user +-- ---------------------------- +DROP TABLE IF EXISTS `mp_user`; +CREATE TABLE `mp_user` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `openid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户标识', + `subscribe_status` tinyint NOT NULL COMMENT '关注状态', + `subscribe_time` datetime NOT NULL COMMENT '关注时间', + `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '昵称', + `head_image_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像地址', + `unsubscribe_time` datetime DEFAULT NULL COMMENT '取消关注时间', + `language` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '语言', + `country` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '国家', + `province` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '省份', + `city` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '城市', + `remark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `tag_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标签编号数组', + `account_id` bigint NOT NULL COMMENT '微信公众号ID', + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '微信公众号 appid', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公众号粉丝表'; + +-- ---------------------------- +-- Records of mp_user +-- ---------------------------- +BEGIN; +INSERT INTO `mp_user` VALUES (7, 'osQ2UuCF6by7YZOwicfYfbt2TbMg', 0, '2023-07-24 17:19:37', '', '', NULL, 'zh_CN', NULL, NULL, NULL, '', '', 5, 'wxdbdbc123c8c30b45', NULL, '2023-07-24 17:19:40', NULL, '2023-07-24 17:19:40', b'0', 0); +COMMIT; + +-- ---------------------------- +-- 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, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE, + KEY `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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_BLOB_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_CALENDARS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_CRON_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 NOT NULL, + `SCHED_TIME` bigint NOT NULL, + `PRIORITY` int 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 DEFAULT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`) USING BTREE, + KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`) USING BTREE, + KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`) USING BTREE, + KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE, + KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE, + KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE, + KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_FIRED_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 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, + PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE, + KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`) USING BTREE, + KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_JOB_DETAILS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_LOCKS +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_LOCKS` VALUES ('schedulerName', 'STATE_ACCESS'); +INSERT INTO `QRTZ_LOCKS` VALUES ('schedulerName', 'TRIGGER_ACCESS'); +COMMIT; + +-- ---------------------------- +-- 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 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_PAUSED_TRIGGER_GRPS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 NOT NULL, + `CHECKIN_INTERVAL` bigint NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SCHEDULER_STATE +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_SCHEDULER_STATE` VALUES ('schedulerName', 'VM-4-9-centos1695033394264', 1695087442542, 15000); +COMMIT; + +-- ---------------------------- +-- 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 NOT NULL, + `REPEAT_INTERVAL` bigint NOT NULL, + `TIMES_TRIGGERED` bigint 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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SIMPLE_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 DEFAULT NULL, + `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `INT_PROP_1` int DEFAULT NULL, + `INT_PROP_2` int DEFAULT NULL, + `LONG_PROP_1` bigint DEFAULT NULL, + `LONG_PROP_2` bigint DEFAULT NULL, + `DEC_PROP_1` decimal(13,4) DEFAULT NULL, + `DEC_PROP_2` decimal(13,4) DEFAULT NULL, + `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SIMPROP_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- 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 DEFAULT NULL, + `NEXT_FIRE_TIME` bigint DEFAULT NULL, + `PREV_FIRE_TIME` bigint DEFAULT NULL, + `PRIORITY` int 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 NOT NULL, + `END_TIME` bigint DEFAULT NULL, + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `MISFIRE_INSTR` smallint DEFAULT NULL, + `JOB_DATA` blob, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE, + KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE, + KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE, + KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`) USING BTREE, + KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE, + KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`) USING BTREE, + KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`) USING BTREE, + KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`) USING BTREE, + KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`) USING BTREE, + KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`) USING BTREE, + KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`) USING BTREE, + KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`) USING BTREE, + KEY `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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_dept +-- ---------------------------- +DROP TABLE IF EXISTS `system_dept`; +CREATE TABLE `system_dept` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门id', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '部门名称', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父部门id', + `sort` int NOT NULL DEFAULT '0' COMMENT '显示顺序', + `leader_user_id` bigint DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱', + `status` tinyint NOT NULL COMMENT '部门状态(0正常 1停用)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表'; + +-- ---------------------------- +-- Records of system_dept +-- ---------------------------- +BEGIN; +INSERT INTO `system_dept` VALUES (100, 'yshop公司', 0, 0, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2023-09-05 10:22:19', b'0', 1); +INSERT INTO `system_dept` VALUES (101, '深圳总公司', 100, 1, 104, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-05-16 20:25:23', b'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', b'0', 1); +INSERT INTO `system_dept` VALUES (103, '研发部门', 101, 1, 104, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '103', '2022-01-14 01:04:14', b'0', 1); +INSERT INTO `system_dept` VALUES (104, '市场部门', 101, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:38', b'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', b'0', 1); +INSERT INTO `system_dept` VALUES (106, '财务部门', 101, 4, 103, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '103', '2022-01-15 21:32:22', b'0', 1); +INSERT INTO `system_dept` VALUES (107, '运维部门', 101, 5, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:33', b'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', b'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', b'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', b'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', b'0', 122); +COMMIT; + +-- ---------------------------- +-- Table structure for system_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_data`; +CREATE TABLE `system_dict_data` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `sort` int NOT NULL DEFAULT '0' COMMENT '字典排序', + `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典标签', + `value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `color_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '颜色类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'css 样式', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1235 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典数据表'; + +-- ---------------------------- +-- Records of system_dict_data +-- ---------------------------- +BEGIN; +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', b'0'); +INSERT INTO `system_dict_data` VALUES (2, 2, '女', '2', 'system_user_sex', 1, 'success', '', '性别女', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 01:30:51', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (47, 1, '永不超时', '1', 'infra_redis_timeout_type', 0, 'primary', '', 'Redis 未设置超时的情况', '', '2021-01-26 00:53:17', '1', '2022-02-16 19:03:35', b'0'); +INSERT INTO `system_dict_data` VALUES (48, 1, '动态超时', '2', 'infra_redis_timeout_type', 0, 'info', '', '程序里动态传入超时时间,无法固定', '', '2021-01-26 00:55:00', '1', '2022-02-16 19:03:41', b'0'); +INSERT INTO `system_dict_data` VALUES (49, 3, '固定超时', '3', 'infra_redis_timeout_type', 0, 'success', '', 'Redis 设置了过期时间', '', '2021-01-26 00:55:26', '1', '2022-02-16 19:03:45', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (98, 1, 'v2', 'v2', 'pay_channel_wechat_version', 0, '', '', 'v2版本', '1', '2021-11-08 17:00:58', '1', '2021-11-08 17:00:58', b'0'); +INSERT INTO `system_dict_data` VALUES (99, 2, 'v3', 'v3', 'pay_channel_wechat_version', 0, '', '', 'v3版本', '1', '2021-11-08 17:01:07', '1', '2021-11-08 17:01:07', b'0'); +INSERT INTO `system_dict_data` VALUES (108, 1, 'RSA2', 'RSA2', 'pay_channel_alipay_sign_type', 0, '', '', 'RSA2', '1', '2021-11-18 15:39:29', '1', '2021-11-18 15:39:29', b'0'); +INSERT INTO `system_dict_data` VALUES (109, 1, '公钥模式', '1', 'pay_channel_alipay_mode', 0, '', '', '公钥模式:privateKey + alipayPublicKey', '1', '2021-11-18 15:45:23', '1', '2021-11-18 15:45:23', b'0'); +INSERT INTO `system_dict_data` VALUES (110, 2, '证书模式', '2', 'pay_channel_alipay_mode', 0, '', '', '证书模式:appCertContent + alipayPublicCertContent + rootCertContent', '1', '2021-11-18 15:45:40', '1', '2021-11-18 15:45:40', b'0'); +INSERT INTO `system_dict_data` VALUES (111, 1, '线上', 'https://openapi.alipay.com/gateway.do', 'pay_channel_alipay_server_type', 0, '', '', '网关地址 - 线上', '1', '2021-11-18 16:59:32', '1', '2021-11-21 17:37:29', b'0'); +INSERT INTO `system_dict_data` VALUES (112, 2, '沙箱', 'https://openapi.alipaydev.com/gateway.do', 'pay_channel_alipay_server_type', 0, '', '', '网关地址 - 沙箱', '1', '2021-11-18 16:59:48', '1', '2021-11-21 17:37:39', b'0'); +INSERT INTO `system_dict_data` VALUES (113, 1, '微信 JSAPI 支付', 'wx_pub', 'pay_channel_code_type', 0, '', '', '微信 JSAPI(公众号) 支付', '1', '2021-12-03 10:40:24', '1', '2021-12-04 16:41:00', b'0'); +INSERT INTO `system_dict_data` VALUES (114, 2, '微信小程序支付', 'wx_lite', 'pay_channel_code_type', 0, '', '', '微信小程序支付', '1', '2021-12-03 10:41:06', '1', '2021-12-03 10:41:06', b'0'); +INSERT INTO `system_dict_data` VALUES (115, 3, '微信 App 支付', 'wx_app', 'pay_channel_code_type', 0, '', '', '微信 App 支付', '1', '2021-12-03 10:41:20', '1', '2021-12-03 10:41:20', b'0'); +INSERT INTO `system_dict_data` VALUES (116, 4, '支付宝 PC 网站支付', 'alipay_pc', 'pay_channel_code_type', 0, '', '', '支付宝 PC 网站支付', '1', '2021-12-03 10:42:09', '1', '2021-12-03 10:42:09', b'0'); +INSERT INTO `system_dict_data` VALUES (117, 5, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code_type', 0, '', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2021-12-03 10:42:26', b'0'); +INSERT INTO `system_dict_data` VALUES (118, 6, '支付宝App 支付', 'alipay_app', 'pay_channel_code_type', 0, '', '', '支付宝App 支付', '1', '2021-12-03 10:42:55', '1', '2021-12-03 10:42:55', b'0'); +INSERT INTO `system_dict_data` VALUES (119, 7, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code_type', 0, '', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2021-12-03 10:43:10', b'0'); +INSERT INTO `system_dict_data` VALUES (120, 1, '通知成功', '10', 'pay_order_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2022-02-16 13:59:13', b'0'); +INSERT INTO `system_dict_data` VALUES (121, 2, '通知失败', '20', 'pay_order_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2022-02-16 13:59:17', b'0'); +INSERT INTO `system_dict_data` VALUES (122, 3, '未通知', '0', 'pay_order_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2022-02-16 13:59:23', b'0'); +INSERT INTO `system_dict_data` VALUES (123, 1, '支付成功', '10', 'pay_order_status', 0, 'success', '', '支付成功', '1', '2021-12-03 11:18:29', '1', '2022-02-16 15:24:25', b'0'); +INSERT INTO `system_dict_data` VALUES (124, 2, '支付关闭', '20', 'pay_order_status', 0, 'danger', '', '支付关闭', '1', '2021-12-03 11:18:42', '1', '2022-02-16 15:24:31', b'0'); +INSERT INTO `system_dict_data` VALUES (125, 3, '未支付', '0', 'pay_order_status', 0, 'info', '', '未支付', '1', '2021-12-03 11:18:18', '1', '2022-02-16 15:24:35', b'0'); +INSERT INTO `system_dict_data` VALUES (126, 1, '未退款', '0', 'pay_order_refund_status', 0, '', '', '未退款', '1', '2021-12-03 11:30:35', '1', '2021-12-03 11:34:05', b'0'); +INSERT INTO `system_dict_data` VALUES (127, 2, '部分退款', '10', 'pay_order_refund_status', 0, '', '', '部分退款', '1', '2021-12-03 11:30:44', '1', '2021-12-03 11:34:10', b'0'); +INSERT INTO `system_dict_data` VALUES (128, 3, '全部退款', '20', 'pay_order_refund_status', 0, '', '', '全部退款', '1', '2021-12-03 11:30:52', '1', '2021-12-03 11:34:14', b'0'); +INSERT INTO `system_dict_data` VALUES (1117, 1, '退款订单生成', '0', 'pay_refund_order_status', 0, 'primary', '', '退款订单生成', '1', '2021-12-10 16:44:44', '1', '2022-02-16 14:05:24', b'0'); +INSERT INTO `system_dict_data` VALUES (1118, 2, '退款成功', '1', 'pay_refund_order_status', 0, 'success', '', '退款成功', '1', '2021-12-10 16:44:59', '1', '2022-02-16 14:05:28', b'0'); +INSERT INTO `system_dict_data` VALUES (1119, 3, '退款失败', '2', 'pay_refund_order_status', 0, 'danger', '', '退款失败', '1', '2021-12-10 16:45:10', '1', '2022-02-16 14:05:34', b'0'); +INSERT INTO `system_dict_data` VALUES (1124, 8, '退款关闭', '99', 'pay_refund_order_status', 0, 'info', '', '退款关闭', '1', '2021-12-10 16:46:26', '1', '2022-02-16 14:05:40', b'0'); +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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (1131, 3, '不通过', '3', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 不通过', '1', '2022-01-07 23:48:55', '1', '2022-02-16 09:53:38', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (1147, 0, '未退款', '0', 'pay_refund_order_type', 0, 'info', '', '退款类型 - 未退款', '1', '2022-02-16 14:09:01', '1', '2022-02-16 14:09:01', b'0'); +INSERT INTO `system_dict_data` VALUES (1148, 10, '部分退款', '10', 'pay_refund_order_type', 0, 'success', '', '退款类型 - 部分退款', '1', '2022-02-16 14:09:25', '1', '2022-02-16 14:11:38', b'0'); +INSERT INTO `system_dict_data` VALUES (1149, 20, '全部退款', '20', 'pay_refund_order_type', 0, 'warning', '', '退款类型 - 全部退款', '1', '2022-02-16 14:11:33', '1', '2022-02-16 14:11:33', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (1162, 1, '销售中', '1', 'product_spu_status', 0, 'success', '', '商品 SPU 状态 - 销售中', '1', '2022-10-24 21:19:47', '1', '2022-10-24 21:20:38', b'0'); +INSERT INTO `system_dict_data` VALUES (1163, 0, '仓库中', '0', 'product_spu_status', 0, 'info', '', '商品 SPU 状态 - 仓库中', '1', '2022-10-24 21:20:54', '1', '2022-10-24 21:21:22', b'0'); +INSERT INTO `system_dict_data` VALUES (1164, 0, '回收站', '-1', 'product_spu_status', 0, 'default', '', '商品 SPU 状态 - 回收站', '1', '2022-10-24 21:21:11', '1', '2022-10-24 21:21:11', b'0'); +INSERT INTO `system_dict_data` VALUES (1165, 1, '满减', '1', 'promotion_discount_type', 0, 'success', '', '优惠类型 - 满减', '1', '2022-11-01 12:46:41', '1', '2022-11-01 12:50:11', b'0'); +INSERT INTO `system_dict_data` VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2022-11-01 12:50:08', b'0'); +INSERT INTO `system_dict_data` VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2022-11-04 00:07:49', b'0'); +INSERT INTO `system_dict_data` VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2022-11-04 00:07:52', b'0'); +INSERT INTO `system_dict_data` VALUES (1169, 1, '全部商品参与', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2022-11-02 00:28:22', b'0'); +INSERT INTO `system_dict_data` VALUES (1170, 2, '指定商品参与', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2022-11-02 00:28:40', b'0'); +INSERT INTO `system_dict_data` VALUES (1171, 1, '已领取', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2022-11-04 19:16:04', b'0'); +INSERT INTO `system_dict_data` VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2022-11-04 19:16:08', b'0'); +INSERT INTO `system_dict_data` VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2022-11-04 19:16:12', b'0'); +INSERT INTO `system_dict_data` VALUES (1174, 1, '直接领取', '1', 'promotion_coupon_take_type', 0, 'primary', '', '优惠劵的领取方式 - 直接领取', '1', '2022-11-04 19:13:00', '1', '2022-11-04 19:13:25', b'0'); +INSERT INTO `system_dict_data` VALUES (1175, 2, '指定发放', '2', 'promotion_coupon_take_type', 0, 'success', '', '优惠劵的领取方式 - 指定发放', '1', '2022-11-04 19:13:13', '1', '2022-11-04 19:14:48', b'0'); +INSERT INTO `system_dict_data` VALUES (1176, 10, '未开始', '10', 'promotion_activity_status', 0, 'primary', '', '促销活动的状态枚举 - 未开始', '1', '2022-11-04 22:54:49', '1', '2022-11-04 22:55:53', b'0'); +INSERT INTO `system_dict_data` VALUES (1177, 20, '进行中', '20', 'promotion_activity_status', 0, 'success', '', '促销活动的状态枚举 - 进行中', '1', '2022-11-04 22:55:06', '1', '2022-11-04 22:55:20', b'0'); +INSERT INTO `system_dict_data` VALUES (1178, 30, '已结束', '30', 'promotion_activity_status', 0, 'info', '', '促销活动的状态枚举 - 已结束', '1', '2022-11-04 22:55:41', '1', '2022-11-04 22:55:41', b'0'); +INSERT INTO `system_dict_data` VALUES (1179, 40, '已关闭', '40', 'promotion_activity_status', 0, 'warning', '', '促销活动的状态枚举 - 已关闭', '1', '2022-11-04 22:56:10', '1', '2022-11-04 22:56:18', b'0'); +INSERT INTO `system_dict_data` VALUES (1180, 10, '满 N 元', '10', 'promotion_condition_type', 0, 'primary', '', '营销的条件类型 - 满 N 元', '1', '2022-11-04 22:59:45', '1', '2022-11-04 22:59:45', b'0'); +INSERT INTO `system_dict_data` VALUES (1181, 20, '满 N 件', '20', 'promotion_condition_type', 0, 'success', '', '营销的条件类型 - 满 N 件', '1', '2022-11-04 23:00:02', '1', '2022-11-04 23:00:02', b'0'); +INSERT INTO `system_dict_data` VALUES (1182, 10, '申请售后', '10', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 申请售后', '1', '2022-11-19 20:53:33', '1', '2022-11-19 20:54:42', b'0'); +INSERT INTO `system_dict_data` VALUES (1183, 20, '商品待退货', '20', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商品待退货', '1', '2022-11-19 20:54:36', '1', '2022-11-19 20:58:58', b'0'); +INSERT INTO `system_dict_data` VALUES (1184, 30, '商家待收货', '30', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商家待收货', '1', '2022-11-19 20:56:56', '1', '2022-11-19 20:59:20', b'0'); +INSERT INTO `system_dict_data` VALUES (1185, 40, '等待退款', '40', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 等待退款', '1', '2022-11-19 20:59:54', '1', '2022-11-19 21:00:01', b'0'); +INSERT INTO `system_dict_data` VALUES (1186, 50, '退款成功', '50', 'trade_after_sale_status', 0, 'default', '', '交易售后状态 - 退款成功', '1', '2022-11-19 21:00:33', '1', '2022-11-19 21:00:33', b'0'); +INSERT INTO `system_dict_data` VALUES (1187, 61, '买家取消', '61', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 买家取消', '1', '2022-11-19 21:01:29', '1', '2022-11-19 21:01:29', b'0'); +INSERT INTO `system_dict_data` VALUES (1188, 62, '商家拒绝', '62', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒绝', '1', '2022-11-19 21:02:17', '1', '2022-11-19 21:02:17', b'0'); +INSERT INTO `system_dict_data` VALUES (1189, 63, '商家拒收货', '63', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒收货', '1', '2022-11-19 21:02:37', '1', '2022-11-19 21:03:07', b'0'); +INSERT INTO `system_dict_data` VALUES (1190, 10, '售中退款', '10', 'trade_after_sale_type', 0, 'success', '', '交易售后的类型 - 售中退款', '1', '2022-11-19 21:05:05', '1', '2022-11-19 21:38:23', b'0'); +INSERT INTO `system_dict_data` VALUES (1191, 20, '售后退款', '20', 'trade_after_sale_type', 0, 'primary', '', '交易售后的类型 - 售后退款', '1', '2022-11-19 21:05:32', '1', '2022-11-19 21:38:32', b'0'); +INSERT INTO `system_dict_data` VALUES (1192, 10, '仅退款', '10', 'trade_after_sale_way', 0, 'primary', '', '交易售后的方式 - 仅退款', '1', '2022-11-19 21:39:19', '1', '2022-11-19 21:39:19', b'0'); +INSERT INTO `system_dict_data` VALUES (1193, 20, '退货退款', '20', 'trade_after_sale_way', 0, 'success', '', '交易售后的方式 - 退货退款', '1', '2022-11-19 21:39:38', '1', '2022-11-19 21:39:49', b'0'); +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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (1199, 0, '普通订单', '0', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 普通订单', '1', '2022-12-10 16:34:14', '1', '2022-12-10 16:34:14', b'0'); +INSERT INTO `system_dict_data` VALUES (1200, 1, '秒杀订单', '1', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 秒杀订单', '1', '2022-12-10 16:34:26', '1', '2022-12-10 16:34:26', b'0'); +INSERT INTO `system_dict_data` VALUES (1201, 2, '拼团订单', '2', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 拼团订单', '1', '2022-12-10 16:34:36', '1', '2022-12-10 16:34:36', b'0'); +INSERT INTO `system_dict_data` VALUES (1202, 3, '砍价订单', '3', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 砍价订单', '1', '2022-12-10 16:34:48', '1', '2022-12-10 16:34:48', b'0'); +INSERT INTO `system_dict_data` VALUES (1203, 0, '待支付', '0', 'trade_order_status', 0, 'default', '', '交易订单状态 - 待支付', '1', '2022-12-10 16:49:29', '1', '2022-12-10 16:49:29', b'0'); +INSERT INTO `system_dict_data` VALUES (1204, 10, '待发货', '10', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 待发货', '1', '2022-12-10 16:49:53', '1', '2022-12-10 16:51:17', b'0'); +INSERT INTO `system_dict_data` VALUES (1205, 20, '已发货', '20', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 已发货', '1', '2022-12-10 16:50:13', '1', '2022-12-10 16:51:31', b'0'); +INSERT INTO `system_dict_data` VALUES (1206, 30, '已完成', '30', 'trade_order_status', 0, 'success', '', '交易订单状态 - 已完成', '1', '2022-12-10 16:50:30', '1', '2022-12-10 16:51:06', b'0'); +INSERT INTO `system_dict_data` VALUES (1207, 40, '已取消', '40', 'trade_order_status', 0, 'danger', '', '交易订单状态 - 已取消', '1', '2022-12-10 16:50:50', '1', '2022-12-10 16:51:00', b'0'); +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', '2022-12-10 20:59:29', b'0'); +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', '2022-12-10 20:59:21', b'0'); +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', '2022-12-10 20:59:46', b'0'); +INSERT INTO `system_dict_data` VALUES (1211, 1, '完全匹配', '1', 'mp_auto_reply_request_match', 0, 'primary', '', '公众号自动回复的请求关键字匹配模式 - 完全匹配', '1', '2023-01-16 23:30:39', '1', '2023-01-16 23:31:00', b'0'); +INSERT INTO `system_dict_data` VALUES (1212, 2, '半匹配', '2', 'mp_auto_reply_request_match', 0, 'success', '', '公众号自动回复的请求关键字匹配模式 - 半匹配', '1', '2023-01-16 23:30:55', '1', '2023-01-16 23:31:10', b'0'); +INSERT INTO `system_dict_data` VALUES (1213, 1, '文本', 'text', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 文本', '1', '2023-01-17 22:17:32', '1', '2023-01-17 22:17:39', b'0'); +INSERT INTO `system_dict_data` VALUES (1214, 2, '图片', 'image', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图片', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:47', b'0'); +INSERT INTO `system_dict_data` VALUES (1215, 3, '语音', 'voice', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 语音', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:20:08', b'0'); +INSERT INTO `system_dict_data` VALUES (1216, 4, '视频', 'video', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:21:08', b'0'); +INSERT INTO `system_dict_data` VALUES (1217, 5, '小视频', 'shortvideo', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 小视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:59', b'0'); +INSERT INTO `system_dict_data` VALUES (1218, 6, '图文', 'news', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图文', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); +INSERT INTO `system_dict_data` VALUES (1219, 7, '音乐', 'music', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 音乐', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); +INSERT INTO `system_dict_data` VALUES (1220, 8, '地理位置', 'location', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 地理位置', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:23:51', b'0'); +INSERT INTO `system_dict_data` VALUES (1221, 9, '链接', 'link', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 链接', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); +INSERT INTO `system_dict_data` VALUES (1222, 10, '事件', 'event', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 事件', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); +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', b'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', b'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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_dict_data` VALUES (1229, 0, '模拟支付', 'mock', 'pay_channel_code_type', 0, 'default', '', NULL, '1', '2023-02-12 21:50:22', '1', '2023-02-12 21:50:22', b'0'); +INSERT INTO `system_dict_data` VALUES (1230, 8, '支付宝条码支付', 'alipay_bar', 'pay_channel_code_type', 0, 'default', '', NULL, '1', '2023-02-18 23:32:24', '1', '2023-02-18 23:32:32', b'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-07-31 09:28:36', b'1'); +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', b'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-07-31 09:29:37', b'1'); +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-07-31 09:28:26', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_type`; +CREATE TABLE `system_dict_type` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典名称', + `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `deleted_time` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `dict_type` (`type`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=169 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典类型表'; + +-- ---------------------------- +-- Records of system_dict_type +-- ---------------------------- +BEGIN; +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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (105, 'Redis 超时类型', 'infra_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2022-02-01 16:50:29', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (122, '支付渠道微信版本', 'pay_channel_wechat_version', 0, '支付渠道微信版本', '1', '2021-11-08 17:00:26', '1', '2021-11-08 17:00:26', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (127, '支付渠道支付宝算法类型', 'pay_channel_alipay_sign_type', 0, '支付渠道支付宝算法类型', '1', '2021-11-18 15:39:09', '1', '2021-11-18 15:39:09', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (128, '支付渠道支付宝公钥类型', 'pay_channel_alipay_mode', 0, '支付渠道支付宝公钥类型', '1', '2021-11-18 15:44:28', '1', '2021-11-18 15:44:28', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (129, '支付宝网关地址', 'pay_channel_alipay_server_type', 0, '支付宝网关地址', '1', '2021-11-18 16:58:55', '1', '2021-11-18 17:01:34', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (130, '支付渠道编码类型', 'pay_channel_code_type', 0, '支付渠道的编码', '1', '2021-12-03 10:35:08', '1', '2021-12-03 10:35:08', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (131, '支付订单回调状态', 'pay_order_notify_status', 0, '支付订单回调状态', '1', '2021-12-03 10:53:29', '1', '2021-12-03 10:53:29', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (133, '支付订单退款状态', 'pay_order_refund_status', 0, '支付订单退款状态', '1', '2021-12-03 11:27:31', '1', '2021-12-03 11:27:31', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (134, '退款订单状态', 'pay_refund_order_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2021-12-10 16:42:50', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (135, '退款订单类别', 'pay_refund_order_type', 0, '退款订单类别', '1', '2021-12-10 17:14:53', '1', '2021-12-10 17:14:53', b'0', NULL); +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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (149, '商品 SPU 状态', 'product_spu_status', 0, '商品 SPU 状态', '1', '2022-10-24 21:19:04', '1', '2022-10-24 21:19:08', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (150, '优惠类型', 'promotion_discount_type', 0, '优惠类型', '1', '2022-11-01 12:46:06', '1', '2022-11-01 12:46:06', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (151, '优惠劵模板的有限期类型', 'promotion_coupon_template_validity_type', 0, '优惠劵模板的有限期类型', '1', '2022-11-02 00:06:20', '1', '2022-11-04 00:08:26', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (152, '营销的商品范围', 'promotion_product_scope', 0, '营销的商品范围', '1', '2022-11-02 00:28:01', '1', '2022-11-02 00:28:01', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (153, '优惠劵的状态', 'promotion_coupon_status', 0, '优惠劵的状态', '1', '2022-11-04 00:14:49', '1', '2022-11-04 00:14:49', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (154, '优惠劵的领取方式', 'promotion_coupon_take_type', 0, '优惠劵的领取方式', '1', '2022-11-04 19:12:27', '1', '2022-11-04 19:12:27', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (155, '促销活动的状态', 'promotion_activity_status', 0, '促销活动的状态', '1', '2022-11-04 22:54:23', '1', '2022-11-04 22:54:23', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (156, '营销的条件类型', 'promotion_condition_type', 0, '营销的条件类型', '1', '2022-11-04 22:59:23', '1', '2022-11-04 22:59:23', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (157, '交易售后状态', 'trade_after_sale_status', 0, '交易售后状态', '1', '2022-11-19 20:52:56', '1', '2022-11-19 20:52:56', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (158, '交易售后的类型', 'trade_after_sale_type', 0, '交易售后的类型', '1', '2022-11-19 21:04:09', '1', '2022-11-19 21:04:09', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (159, '交易售后的方式', 'trade_after_sale_way', 0, '交易售后的方式', '1', '2022-11-19 21:39:04', '1', '2022-11-19 21:39:04', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (160, '终端', 'terminal', 0, '终端', '1', '2022-12-10 10:50:50', '1', '2022-12-10 10:53:11', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (161, '交易订单的类型', 'trade_order_type', 0, '交易订单的类型', '1', '2022-12-10 16:33:54', '1', '2022-12-10 16:33:54', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (162, '交易订单的状态', 'trade_order_status', 0, '交易订单的状态', '1', '2022-12-10 16:48:44', '1', '2022-12-10 16:48:44', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (163, '交易订单项的售后状态', 'trade_order_item_after_sale_status', 0, '交易订单项的售后状态', '1', '2022-12-10 20:58:08', '1', '2022-12-10 20:58:08', b'0', NULL); +INSERT INTO `system_dict_type` VALUES (164, '公众号自动回复的请求关键字匹配模式', 'mp_auto_reply_request_match', 0, '公众号自动回复的请求关键字匹配模式', '1', '2023-01-16 23:29:56', '1', '2023-01-16 23:29:56', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (165, '公众号的消息类型', 'mp_message_type', 0, '公众号的消息类型', '1', '2023-01-17 22:17:09', '1', '2023-01-17 22:17:09', b'0', '1970-01-01 00:00:00'); +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', b'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', b'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', b'0', '1970-01-01 00:00:00'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_error_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_error_code`; +CREATE TABLE `system_error_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '错误码编号', + `type` tinyint NOT NULL DEFAULT '0' COMMENT '错误码类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `code` int NOT NULL DEFAULT '0' COMMENT '错误码编码', + `message` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '错误码错误提示', + `memo` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6006 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='错误码表'; + +-- ---------------------------- +-- Records of system_error_code +-- ---------------------------- +BEGIN; +INSERT INTO `system_error_code` VALUES (5832, 1, 'yshop-server', 1001000001, '参数配置不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5833, 1, 'yshop-server', 1001000002, '参数配置 key 重复', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5834, 1, 'yshop-server', 1001000003, '不能删除类型为系统内置的参数配置', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5835, 1, 'yshop-server', 1001000004, '获取参数配置失败,原因:不允许获取不可见配置', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5836, 1, 'yshop-server', 1001001000, '定时任务不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5837, 1, 'yshop-server', 1001001001, '定时任务的处理器已经存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5838, 1, 'yshop-server', 1001001002, '只允许修改为开启或者关闭状态', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5839, 1, 'yshop-server', 1001001003, '定时任务已经处于该状态,无需修改', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5840, 1, 'yshop-server', 1001001004, '只有开启状态的任务,才可以修改', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5841, 1, 'yshop-server', 1001001005, 'CRON 表达式不正确', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5842, 1, 'yshop-server', 1001002000, 'API 错误日志不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5843, 1, 'yshop-server', 1001002001, 'API 错误日志已处理', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5844, 1, 'yshop-server', 1001003000, '文件路径已存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5845, 1, 'yshop-server', 1001003001, '文件不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5846, 1, 'yshop-server', 1001003002, '文件为空', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5847, 1, 'yshop-server', 1003001000, '表定义已经存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5848, 1, 'yshop-server', 1003001001, '导入的表不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5849, 1, 'yshop-server', 1003001002, '导入的字段不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5850, 1, 'yshop-server', 1003001004, '表定义不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5851, 1, 'yshop-server', 1003001005, '字段义不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5852, 1, 'yshop-server', 1003001006, '同步的字段不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5853, 1, 'yshop-server', 1003001007, '同步失败,不存在改变', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5854, 1, 'yshop-server', 1003001008, '数据库的表注释未填写', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5855, 1, 'yshop-server', 1003001009, '数据库的表字段({})注释未填写', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5856, 1, 'yshop-server', 1001005000, '测试示例不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5857, 1, 'yshop-server', 1001006000, '文件配置不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5858, 1, 'yshop-server', 1001006001, '该文件配置不允许删除,原因:它是主配置,删除会导致无法上传文件', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5859, 1, 'yshop-server', 1001007000, '数据源配置不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5860, 1, 'yshop-server', 1001007001, '数据源配置不正确,无法进行连接', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5861, 1, 'yshop-server', 1004001000, '用户不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5862, 1, 'yshop-server', 1004001001, '密码校验失败', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5863, 1, 'yshop-server', 1004003000, '登录失败,账号密码不正确', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5864, 1, 'yshop-server', 1004003001, '登录失败,账号被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5865, 1, 'yshop-server', 1004003004, 'Token 已经过期', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5866, 1, 'yshop-server', 1004003005, '未绑定账号,需要进行绑定', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5867, 1, 'yshop-server', 1004003006, '获得手机号失败', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5868, 1, 'yshop-server', 1004004000, '用户收件地址不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5869, 1, 'yshop-server', 1004004001, '用户收件地址参数错误', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5870, 1, 'yshop-server', 1004004001, '用户账单不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5871, 1, 'yshop-server', 1004004002, '登录失败,请联系管理员', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5872, 1, 'yshop-server', 1004004003, '此优惠券不满足使用提交', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5873, 1, 'yshop-server', 1008009000, '支付服务商配置不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5874, 1, 'yshop-server', 1002000000, '登录失败,账号密码不正确', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5875, 1, 'yshop-server', 1002000001, '登录失败,账号被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5876, 1, 'yshop-server', 1002000004, '验证码不正确,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5877, 1, 'yshop-server', 1002000005, '未绑定账号,需要进行绑定', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5878, 1, 'yshop-server', 1002000006, 'Token 已经过期', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5879, 1, 'yshop-server', 1002000007, '手机号不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5880, 1, 'yshop-server', 1002001000, '已经存在该名字的菜单', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5881, 1, 'yshop-server', 1002001001, '父菜单不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5882, 1, 'yshop-server', 1002001002, '不能设置自己为父菜单', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5883, 1, 'yshop-server', 1002001003, '菜单不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5884, 1, 'yshop-server', 1002001004, '存在子菜单,无法删除', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5885, 1, 'yshop-server', 1002001005, '父菜单的类型必须是目录或者菜单', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5886, 1, 'yshop-server', 1002002000, '角色不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5887, 1, 'yshop-server', 1002002001, '已经存在名为【{}】的角色', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5888, 1, 'yshop-server', 1002002002, '已经存在编码为【{}】的角色', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5889, 1, 'yshop-server', 1002002003, '不能操作类型为系统内置的角色', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5890, 1, 'yshop-server', 1002002004, '名字为【{}】的角色已被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5891, 1, 'yshop-server', 1002002005, '编码【{}】不能使用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5892, 1, 'yshop-server', 1002003000, '用户账号已经存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5893, 1, 'yshop-server', 1002003001, '手机号已经存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5894, 1, 'yshop-server', 1002003002, '邮箱已经存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5895, 1, 'yshop-server', 1002003003, '用户不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5896, 1, 'yshop-server', 1002003004, '导入用户数据不能为空!', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5897, 1, 'yshop-server', 1002003005, '用户密码校验失败', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5898, 1, 'yshop-server', 1002003006, '名字为【{}】的用户已被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5899, 1, 'yshop-server', 1002003008, '创建用户失败,原因:超过租户最大租户配额({})!', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5900, 1, 'yshop-server', 1002004000, '已经存在该名字的部门', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5901, 1, 'yshop-server', 1002004001, '父级部门不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5902, 1, 'yshop-server', 1002004002, '当前部门不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5903, 1, 'yshop-server', 1002004003, '存在子部门,无法删除', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5904, 1, 'yshop-server', 1002004004, '不能设置自己为父部门', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5905, 1, 'yshop-server', 1002004005, '部门中存在员工,无法删除', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5906, 1, 'yshop-server', 1002004006, '部门({})不处于开启状态,不允许选择', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5907, 1, 'yshop-server', 1002004007, '不能设置自己的子部门为父部门', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5908, 1, 'yshop-server', 1002005000, '当前岗位不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5909, 1, 'yshop-server', 1002005001, '岗位({}) 不处于开启状态,不允许选择', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5910, 1, 'yshop-server', 1002005002, '已经存在该名字的岗位', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5911, 1, 'yshop-server', 1002005003, '已经存在该标识的岗位', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5912, 1, 'yshop-server', 1002006001, '当前字典类型不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5913, 1, 'yshop-server', 1002006002, '字典类型不处于开启状态,不允许选择', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5914, 1, 'yshop-server', 1002006003, '已经存在该名字的字典类型', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5915, 1, 'yshop-server', 1002006004, '已经存在该类型的字典类型', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5916, 1, 'yshop-server', 1002006005, '无法删除,该字典类型还有字典数据', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5917, 1, 'yshop-server', 1002007001, '当前字典数据不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5918, 1, 'yshop-server', 1002007002, '字典数据({})不处于开启状态,不允许选择', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5919, 1, 'yshop-server', 1002007003, '已经存在该值的字典数据', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5920, 1, 'yshop-server', 1002008001, '当前通知公告不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5921, 1, 'yshop-server', 1002011000, '短信渠道不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5922, 1, 'yshop-server', 1002011001, '短信渠道不处于开启状态,不允许选择', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5923, 1, 'yshop-server', 1002011002, '无法删除,该短信渠道还有短信模板', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5924, 1, 'yshop-server', 1002012000, '短信模板不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5925, 1, 'yshop-server', 1002012001, '已经存在编码为【{}】的短信模板', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5926, 1, 'yshop-server', 1002013000, '手机号不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5927, 1, 'yshop-server', 1002013001, '模板参数({})缺失', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5928, 1, 'yshop-server', 1002013002, '短信模板不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5929, 1, 'yshop-server', 1002014000, '验证码不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5930, 1, 'yshop-server', 1002014001, '验证码已过期', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5931, 1, 'yshop-server', 1002014002, '验证码已使用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5932, 1, 'yshop-server', 1002014003, '验证码不正确', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5933, 1, 'yshop-server', 1002014004, '超过每日短信发送数量', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5934, 1, 'yshop-server', 1002014005, '短信发送过于频率', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5935, 1, 'yshop-server', 1002014006, '手机号已被使用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5936, 1, 'yshop-server', 1002014007, '验证码未被使用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5937, 1, 'yshop-server', 1002015000, '租户不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5938, 1, 'yshop-server', 1002015001, '名字为【{}】的租户已被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5939, 1, 'yshop-server', 1002015002, '名字为【{}】的租户已过期', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5940, 1, 'yshop-server', 1002015003, '系统租户不能进行修改、删除等操作!', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5941, 1, 'yshop-server', 1002015004, '名字为【{}】的租户已存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5942, 1, 'yshop-server', 1002016000, '租户套餐不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5943, 1, 'yshop-server', 1002016001, '租户正在使用该套餐,请给租户重新设置套餐后再尝试删除', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5944, 1, 'yshop-server', 1002016002, '名字为【{}】的租户套餐已被禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5945, 1, 'yshop-server', 1002017000, '错误码不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5946, 1, 'yshop-server', 1002017001, '已经存在编码为【{}】的错误码', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5947, 1, 'yshop-server', 1002018000, '社交授权失败,原因是:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5948, 1, 'yshop-server', 1002018001, '社交解绑失败,非当前用户绑定', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5949, 1, 'yshop-server', 1002018002, '社交授权失败,找不到对应的用户', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5950, 1, 'yshop-server', 1002019000, '系统敏感词在所有标签中都不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5951, 1, 'yshop-server', 1002019001, '系统敏感词已在标签中存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5952, 1, 'yshop-server', 1002020000, 'OAuth2 客户端不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5953, 1, 'yshop-server', 1002020001, 'OAuth2 客户端编号已存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5954, 1, 'yshop-server', 1002020002, 'OAuth2 客户端已禁用', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5955, 1, 'yshop-server', 1002020003, '不支持该授权类型', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5956, 1, 'yshop-server', 1002020004, '授权范围过大', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5957, 1, 'yshop-server', 1002020005, '无效 redirect_uri: {}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5958, 1, 'yshop-server', 1002020006, '无效 client_secret: {}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5959, 1, 'yshop-server', 1002021000, 'client_id 不匹配', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5960, 1, 'yshop-server', 1002021001, 'redirect_uri 不匹配', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5961, 1, 'yshop-server', 1002021002, 'state 不匹配', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5962, 1, 'yshop-server', 1002021003, 'code 不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5963, 1, 'yshop-server', 1002022000, 'code 不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5964, 1, 'yshop-server', 1002022001, 'code 已过期', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5965, 1, 'yshop-server', 1002023000, '邮箱账号不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5966, 1, 'yshop-server', 1002023001, '无法删除,该邮箱账号还有邮件模板', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5967, 1, 'yshop-server', 1002024000, '邮件模版不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5968, 1, 'yshop-server', 1002024001, '邮件模版 code({}) 已存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5969, 1, 'yshop-server', 1002025000, '模板参数({})缺失', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5970, 1, 'yshop-server', 1002025000, '邮箱不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5971, 1, 'yshop-server', 1002026000, '站内信模版不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5972, 1, 'yshop-server', 1002026001, '已经存在编码为【{}】的站内信模板', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5973, 1, 'yshop-server', 1002025000, '模板参数({})缺失', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5974, 1, 'yshop-server', 1006000000, '公众号账号不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5975, 1, 'yshop-server', 1006000001, '生成公众号二维码失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5976, 1, 'yshop-server', 1006000001, '清空公众号的 API 配额失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5977, 1, 'yshop-server', 1006001000, '获取粉丝增减数据失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5978, 1, 'yshop-server', 1006001001, '获得粉丝累计数据失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5979, 1, 'yshop-server', 1006001002, '获得消息发送概况数据失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5980, 1, 'yshop-server', 1006001003, '获得接口分析数据失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5981, 1, 'yshop-server', 1006002000, '标签不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5982, 1, 'yshop-server', 1006002001, '删除标签失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5983, 1, 'yshop-server', 1006002001, '更新标签失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5984, 1, 'yshop-server', 1006002001, '删除标签失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5985, 1, 'yshop-server', 1006002001, '获得标签失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5986, 1, 'yshop-server', 1006003000, '粉丝不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5987, 1, 'yshop-server', 1006003001, '更新粉丝标签失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5988, 1, 'yshop-server', 1006004000, '素材不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5989, 1, 'yshop-server', 1006004001, '上传素材失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5990, 1, 'yshop-server', 1006004002, '上传图片失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5991, 1, 'yshop-server', 1006004003, '删除素材失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5992, 1, 'yshop-server', 1006005000, '发送消息失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5993, 1, 'yshop-server', 1006006000, '获得已成功发布列表失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5994, 1, 'yshop-server', 1006006001, '提交发布失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5995, 1, 'yshop-server', 1006006001, '删除发布失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5996, 1, 'yshop-server', 1006007000, '获得草稿列表失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5997, 1, 'yshop-server', 1006007001, '创建草稿失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (5998, 1, 'yshop-server', 1006007002, '更新草稿失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-18 18:36:50', b'0'); +INSERT INTO `system_error_code` VALUES (5999, 1, 'yshop-server', 1006007002, '删除草稿失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6000, 1, 'yshop-server', 1006008000, '创建菜单失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6001, 1, 'yshop-server', 1006008001, '删除菜单失败,原因:{}', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6002, 1, 'yshop-server', 1006009000, '自动回复不存在', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6003, 1, 'yshop-server', 1006009001, '操作失败,原因:已存在关注时的回复', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6004, 1, 'yshop-server', 1006009002, '操作失败,原因:已存在该消息类型的回复', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +INSERT INTO `system_error_code` VALUES (6005, 1, 'yshop-server', 1006009003, '操作失败,原因:已关在该关键字的回复', '', NULL, '2023-09-13 11:18:15', NULL, '2023-09-13 11:18:15', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_login_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_login_log`; +CREATE TABLE `system_login_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `log_type` bigint NOT NULL COMMENT '日志类型', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL DEFAULT '0' COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT '0' COMMENT '用户类型', + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户账号', + `result` tinyint 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', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=3172 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统访问记录'; + +-- ---------------------------- +-- Records of system_login_log +-- ---------------------------- +BEGIN; +INSERT INTO `system_login_log` VALUES (2163, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-07 16:51:51', NULL, '2023-05-07 16:51:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2164, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-08 16:54:46', NULL, '2023-05-08 16:54:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2165, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-08 18:31:31', NULL, '2023-05-08 18:31:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2166, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-08 18:32:25', '1', '2023-05-08 18:32:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2167, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-08 18:32:29', NULL, '2023-05-08 18:32:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2168, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:26:28', NULL, '2023-05-09 10:26:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2169, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-09 10:26:58', '1', '2023-05-09 10:26:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2170, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:37:58', NULL, '2023-05-09 10:37:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2171, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:38:40', NULL, '2023-05-09 10:38:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2172, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:40:40', NULL, '2023-05-09 10:40:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2173, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:48:22', NULL, '2023-05-09 10:48:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2174, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-09 10:48:34', '1', '2023-05-09 10:48:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2175, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-09 10:48:37', NULL, '2023-05-09 10:48:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2176, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-10 09:29:09', NULL, '2023-05-10 09:29:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2177, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-10 09:45:47', '1', '2023-05-10 09:45:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2178, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-10 10:00:49', '1', '2023-05-10 10:00:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2179, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-10 10:00:53', NULL, '2023-05-10 10:00:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2180, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-10 10:35:31', '1', '2023-05-10 10:35:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2181, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-10 10:35:33', NULL, '2023-05-10 10:35:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2182, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', '1', '2023-05-10 15:19:12', '1', '2023-05-10 15:19:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2183, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-10 15:19:17', NULL, '2023-05-10 15:19:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2184, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', NULL, '2023-05-12 12:45:18', NULL, '2023-05-12 12:45:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2185, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-15 16:47:03', NULL, '2023-05-15 16:47:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2186, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-16 10:50:23', NULL, '2023-05-16 10:50:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2187, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', NULL, '2023-05-16 10:51:52', NULL, '2023-05-16 10:51:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2188, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-17 09:43:18', NULL, '2023-05-17 09:43:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2189, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-17 10:36:16', '1', '2023-05-17 10:36:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2190, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-17 10:36:24', NULL, '2023-05-17 10:36:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2191, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-17 15:32:29', '1', '2023-05-17 15:32:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2192, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-17 15:32:36', NULL, '2023-05-17 15:32:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2193, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-18 10:08:43', NULL, '2023-05-18 10:08:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2194, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-19 11:15:16', NULL, '2023-05-19 11:15:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2195, 100, '', 1, 2, 'admin', 0, '125.33.246.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-20 21:06:58', NULL, '2023-05-20 21:06:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2196, 100, '', 1, 2, 'admin', 0, '125.33.246.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-21 21:38:22', NULL, '2023-05-21 21:38:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2197, 100, '', 1, 2, 'admin', 0, '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-21 23:02:11', NULL, '2023-05-21 23:02:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2198, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-22 12:03:17', NULL, '2023-05-22 12:03:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2199, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-22 15:27:51', '1', '2023-05-22 15:27:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2200, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-22 15:27:57', NULL, '2023-05-22 15:27:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2201, 100, '', 1, 2, 'admin', 0, '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-22 22:56:45', NULL, '2023-05-22 22:56:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2202, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-23 09:21:05', NULL, '2023-05-23 09:21:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2203, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-23 09:21:27', NULL, '2023-05-23 09:21:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2204, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-24 09:27:39', NULL, '2023-05-24 09:27:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2205, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-24 09:27:45', '1', '2023-05-24 09:27:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2206, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-25 11:35:10', NULL, '2023-05-25 11:35:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2207, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-25 20:21:00', NULL, '2023-05-25 20:21:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2208, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-25 21:08:53', '1', '2023-05-25 21:08:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2209, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-25 21:08:59', NULL, '2023-05-25 21:08:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2210, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-26 13:42:20', NULL, '2023-05-26 13:42:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2211, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-26 14:24:04', '1', '2023-05-26 14:24:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2212, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-26 14:24:11', NULL, '2023-05-26 14:24:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2213, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-27 09:22:40', NULL, '2023-05-27 09:22:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2214, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-29 11:00:51', NULL, '2023-05-29 11:00:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2215, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-05-29 11:01:05', '1', '2023-05-29 11:01:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2216, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-29 11:01:10', NULL, '2023-05-29 11:01:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2217, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-30 09:49:00', NULL, '2023-05-30 09:49:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2218, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-05-30 11:39:51', NULL, '2023-05-30 11:39:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2219, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-01 10:55:15', NULL, '2023-06-01 10:55:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2220, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-01 10:55:35', '1', '2023-06-01 10:55:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2221, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-01 11:04:43', NULL, '2023-06-01 11:04:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2222, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-01 11:04:58', '1', '2023-06-01 11:04:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2223, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-02 09:33:19', NULL, '2023-06-02 09:33:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2224, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-02 09:33:26', '1', '2023-06-02 09:33:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2225, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-02 09:49:02', NULL, '2023-06-02 09:49:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2226, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-02 18:37:26', '1', '2023-06-02 18:37:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2227, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-02 18:37:30', NULL, '2023-06-02 18:37:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2228, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-03 12:00:22', NULL, '2023-06-03 12:00:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2229, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-05 11:11:45', NULL, '2023-06-05 11:11:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2230, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-06 10:03:24', NULL, '2023-06-06 10:03:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2231, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-06 11:03:43', NULL, '2023-06-06 11:03:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2232, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-08 09:54:26', NULL, '2023-06-08 09:54:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2233, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-08 09:56:11', NULL, '2023-06-08 09:56:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2234, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-09 14:48:41', NULL, '2023-06-09 14:48:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2235, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-09 17:25:44', '1', '2023-06-09 17:25:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2236, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-09 17:25:59', NULL, '2023-06-09 17:25:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2237, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-09 17:26:11', '1', '2023-06-09 17:26:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2238, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-09 17:36:20', NULL, '2023-06-09 17:36:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2239, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-09 17:36:59', '1', '2023-06-09 17:36:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2240, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-09 17:43:49', '1', '2023-06-09 17:43:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2241, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-09 17:44:00', NULL, '2023-06-09 17:44:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2242, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-10 09:45:55', NULL, '2023-06-10 09:45:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2243, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-10 11:14:53', NULL, '2023-06-10 11:14:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2244, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-10 11:16:28', NULL, '2023-06-10 11:16:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2245, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-10 12:00:29', '1', '2023-06-10 12:00:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2246, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-10 15:10:04', NULL, '2023-06-10 15:10:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2247, 104, '', 2, 1, '15136175246', 0, '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', NULL, '2023-06-10 15:45:43', NULL, '2023-06-10 15:45:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2248, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-12 09:56:23', NULL, '2023-06-12 09:56:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2249, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-12 15:07:00', NULL, '2023-06-12 15:07:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2250, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-13 10:21:25', '1', '2023-06-13 10:21:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2251, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-13 10:21:29', NULL, '2023-06-13 10:21:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2252, 104, '', 2, 1, '15136175246', 0, '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', NULL, '2023-06-15 11:28:34', NULL, '2023-06-15 11:28:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2253, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-15 17:55:50', '1', '2023-06-15 17:55:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2254, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-15 17:55:57', NULL, '2023-06-15 17:55:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2255, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', '1', '2023-06-15 23:27:32', '1', '2023-06-15 23:27:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2256, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', NULL, '2023-06-15 23:27:37', NULL, '2023-06-15 23:27:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2257, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-17 22:15:18', '1', '2023-06-17 22:15:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2258, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-17 22:15:40', NULL, '2023-06-17 22:15:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2259, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-17 22:16:53', '1', '2023-06-17 22:16:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2260, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-17 22:16:55', NULL, '2023-06-17 22:16:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2261, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-17 22:19:48', NULL, '2023-06-17 22:19:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2262, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-18 18:02:15', '1', '2023-06-18 18:02:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2263, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-18 18:02:20', NULL, '2023-06-18 18:02:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2264, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-18 20:41:56', '1', '2023-06-18 20:41:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2265, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-18 20:42:01', NULL, '2023-06-18 20:42:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2266, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-18 20:53:32', '1', '2023-06-18 20:53:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2267, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-18 20:53:37', NULL, '2023-06-18 20:53:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2268, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-06-29 13:40:26', '1', '2023-06-29 13:40:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2269, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-06-29 13:40:37', NULL, '2023-06-29 13:40:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2270, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-02 10:19:15', '1', '2023-07-02 10:19:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2271, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-02 10:19:22', NULL, '2023-07-02 10:19:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2272, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-02 10:38:53', '1', '2023-07-02 10:38:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2273, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-02 10:38:56', NULL, '2023-07-02 10:38:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2274, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-09 09:48:15', '1', '2023-07-09 09:48:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2275, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-09 09:48:21', NULL, '2023-07-09 09:48:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2276, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-10 22:30:41', '1', '2023-07-10 22:30:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2277, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-10 22:30:43', NULL, '2023-07-10 22:30:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2278, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-14 16:26:07', '1', '2023-07-14 16:26:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2279, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-14 16:26:13', NULL, '2023-07-14 16:26:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2280, 104, '', 2, 1, '15136175246', 0, '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', NULL, '2023-07-15 18:54:40', NULL, '2023-07-15 18:54:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2281, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-19 15:39:52', '1', '2023-07-19 15:39:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2282, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-19 15:39:58', NULL, '2023-07-19 15:39:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2283, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-20 18:27:36', '1', '2023-07-20 18:27:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2284, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-20 18:27:39', NULL, '2023-07-20 18:27:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2285, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-24 11:33:59', NULL, '2023-07-24 11:33:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2286, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-25 10:07:12', '1', '2023-07-25 10:07:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2287, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-25 10:07:18', NULL, '2023-07-25 10:07:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2288, 104, '', 2, 1, '15136175246', 0, '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', NULL, '2023-07-25 16:08:03', NULL, '2023-07-25 16:08:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2289, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-27 18:50:21', '1', '2023-07-27 18:50:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2290, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-27 18:58:39', NULL, '2023-07-27 18:58:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2291, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-28 10:26:49', '1', '2023-07-28 10:26:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2292, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-28 10:38:16', NULL, '2023-07-28 10:38:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2293, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-28 10:40:20', NULL, '2023-07-28 10:40:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2294, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-28 10:41:30', NULL, '2023-07-28 10:41:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2295, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', '1', '2023-07-28 10:42:58', '1', '2023-07-28 10:42:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2296, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', NULL, '2023-07-29 17:32:36', NULL, '2023-07-29 17:32:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2297, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '1', '2023-08-03 16:24:17', '1', '2023-08-03 16:24:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2298, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', NULL, '2023-08-03 16:24:29', NULL, '2023-08-03 16:24:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2299, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '1', '2023-08-06 18:07:59', '1', '2023-08-06 18:07:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2300, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', NULL, '2023-08-06 18:08:12', NULL, '2023-08-06 18:08:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2301, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '1', '2023-08-08 16:47:00', '1', '2023-08-08 16:47:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2302, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', NULL, '2023-08-08 16:47:12', NULL, '2023-08-08 16:47:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2303, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', '1', '2023-08-09 16:57:54', '1', '2023-08-09 16:57:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2304, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', NULL, '2023-08-09 16:58:07', NULL, '2023-08-09 16:58:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2305, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', NULL, '2023-08-12 09:57:05', NULL, '2023-08-12 09:57:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2306, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', NULL, '2023-08-12 10:18:07', NULL, '2023-08-12 10:18:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2307, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', NULL, '2023-08-12 11:39:26', NULL, '2023-08-12 11:39:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2308, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:44:07', '4', '2023-08-12 11:44:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2309, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:46:12', '4', '2023-08-12 11:46:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2310, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:46:40', '4', '2023-08-12 11:46:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2311, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:48:36', '4', '2023-08-12 11:48:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2312, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:49:10', '4', '2023-08-12 11:49:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2313, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.03.2006090 MicroMessenger/7.0.4 Language/zh_CN webview/', '4', '2023-08-12 11:53:12', '4', '2023-08-12 11:53:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2314, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 11:57:41', NULL, '2023-08-12 11:57:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2315, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:06:34', '4', '2023-08-12 12:06:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2316, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:07:29', '4', '2023-08-12 12:07:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2317, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:43:10', '4', '2023-08-12 12:43:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2318, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:46:54', '4', '2023-08-12 12:46:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2319, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:48:00', '4', '2023-08-12 12:48:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2320, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:48:52', '4', '2023-08-12 12:48:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2321, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 12:51:38', '4', '2023-08-12 12:51:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2322, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 13:03:39', '4', '2023-08-12 13:03:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2323, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '4', '2023-08-12 13:07:28', '4', '2023-08-12 13:07:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2324, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:10:12', NULL, '2023-08-12 13:10:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2325, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:10:17', NULL, '2023-08-12 13:10:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2326, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:12:56', NULL, '2023-08-12 13:12:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2327, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:14:01', NULL, '2023-08-12 13:14:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2328, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:18:24', NULL, '2023-08-12 13:18:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2329, 101, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:27:46', NULL, '2023-08-12 13:27:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2330, 101, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:28:06', NULL, '2023-08-12 13:28:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2331, 101, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:30:16', NULL, '2023-08-12 13:30:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2332, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:31:59', NULL, '2023-08-12 13:31:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2333, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:32:43', NULL, '2023-08-12 13:32:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2334, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:32:59', NULL, '2023-08-12 13:32:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2335, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 13:37:13', NULL, '2023-08-12 13:37:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2336, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 15:47:13', NULL, '2023-08-12 15:47:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2337, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 16:08:19', NULL, '2023-08-12 16:08:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2338, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 16:17:09', NULL, '2023-08-12 16:17:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2339, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 16:53:38', NULL, '2023-08-12 16:53:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2340, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 16:58:05', NULL, '2023-08-12 16:58:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2341, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 16:58:51', NULL, '2023-08-12 16:58:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2342, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 17:01:27', NULL, '2023-08-12 17:01:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2343, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-12 17:03:12', NULL, '2023-08-12 17:03:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2344, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 16:28:41', NULL, '2023-08-14 16:28:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2345, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 16:29:08', NULL, '2023-08-14 16:29:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2346, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 16:55:19', NULL, '2023-08-14 16:55:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2347, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 16:57:21', NULL, '2023-08-14 16:57:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2348, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 16:57:25', NULL, '2023-08-14 16:57:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2349, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:03:43', NULL, '2023-08-14 17:03:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2350, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:05:08', NULL, '2023-08-14 17:05:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2351, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:07:46', NULL, '2023-08-14 17:07:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2352, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:16:57', NULL, '2023-08-14 17:16:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2353, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:17:53', NULL, '2023-08-14 17:17:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2354, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-14 17:29:57', NULL, '2023-08-14 17:29:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2355, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', NULL, '2023-08-15 10:23:58', NULL, '2023-08-15 10:23:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2356, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 10:46:28', NULL, '2023-08-16 10:46:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2357, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 16:39:44', NULL, '2023-08-16 16:39:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2358, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 16:41:49', NULL, '2023-08-16 16:41:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2359, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 16:52:24', NULL, '2023-08-16 16:52:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2360, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 17:08:32', NULL, '2023-08-16 17:08:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2361, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 17:10:14', NULL, '2023-08-16 17:10:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2362, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 17:13:51', NULL, '2023-08-16 17:13:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2363, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 17:40:29', NULL, '2023-08-16 17:40:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2364, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:13:47', NULL, '2023-08-16 18:13:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2365, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:21:38', NULL, '2023-08-16 18:21:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2366, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:23:31', NULL, '2023-08-16 18:23:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2367, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:24:37', NULL, '2023-08-16 18:24:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2368, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:29:57', NULL, '2023-08-16 18:29:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2369, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-16 18:31:04', NULL, '2023-08-16 18:31:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2370, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 10:48:10', NULL, '2023-08-17 10:48:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2371, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 10:55:42', NULL, '2023-08-17 10:55:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2372, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 10:58:17', NULL, '2023-08-17 10:58:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2373, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 11:01:20', NULL, '2023-08-17 11:01:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2374, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:15:07', NULL, '2023-08-17 16:15:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2375, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:25:04', NULL, '2023-08-17 16:25:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2376, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:26:47', NULL, '2023-08-17 16:26:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2377, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:33:43', NULL, '2023-08-17 16:33:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2378, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:49:04', NULL, '2023-08-17 16:49:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2379, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:52:42', NULL, '2023-08-17 16:52:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2380, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 16:57:37', NULL, '2023-08-17 16:57:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2381, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 17:01:17', NULL, '2023-08-17 17:01:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2382, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 17:04:39', NULL, '2023-08-17 17:04:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2383, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-17 17:08:50', NULL, '2023-08-17 17:08:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2384, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:35:35', NULL, '2023-08-19 09:35:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2385, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:36:15', NULL, '2023-08-19 09:36:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2386, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:38:03', NULL, '2023-08-19 09:38:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2387, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:51:19', NULL, '2023-08-19 09:51:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2388, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:52:37', NULL, '2023-08-19 09:52:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2389, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:53:36', NULL, '2023-08-19 09:53:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2390, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:54:31', NULL, '2023-08-19 09:54:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2391, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:54:59', NULL, '2023-08-19 09:54:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2392, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:58:50', NULL, '2023-08-19 09:58:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2393, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:59:54', NULL, '2023-08-19 09:59:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2394, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 09:59:55', NULL, '2023-08-19 09:59:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2395, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-19 10:00:09', '6', '2023-08-19 10:00:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2396, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 10:04:24', NULL, '2023-08-19 10:04:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2397, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-19 10:05:21', '6', '2023-08-19 10:05:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2398, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 10:52:37', NULL, '2023-08-19 10:52:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2399, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-19 10:53:06', NULL, '2023-08-19 10:53:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2400, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-19 10:53:37', '6', '2023-08-19 10:53:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2401, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 10:51:45', NULL, '2023-08-20 10:51:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2402, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-20 10:52:26', '6', '2023-08-20 10:52:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2403, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 10:53:55', NULL, '2023-08-20 10:53:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2404, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-20 10:54:19', '6', '2023-08-20 10:54:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2405, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 10:54:56', NULL, '2023-08-20 10:54:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2406, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-20 10:55:16', '6', '2023-08-20 10:55:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2407, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 11:42:34', NULL, '2023-08-20 11:42:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2408, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 16:18:20', NULL, '2023-08-20 16:18:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2409, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 16:18:24', NULL, '2023-08-20 16:18:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2410, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-20 16:21:10', '6', '2023-08-20 16:21:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2411, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 16:28:28', NULL, '2023-08-20 16:28:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2412, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-20 16:39:39', NULL, '2023-08-20 16:39:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2413, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 09:57:33', NULL, '2023-08-21 09:57:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2414, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:00:43', NULL, '2023-08-21 10:00:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2415, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:02:31', NULL, '2023-08-21 10:02:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2416, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:34:18', NULL, '2023-08-21 10:34:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2417, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:44:34', NULL, '2023-08-21 10:44:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2418, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:46:19', NULL, '2023-08-21 10:46:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2419, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:46:22', NULL, '2023-08-21 10:46:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2420, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:46:27', NULL, '2023-08-21 10:46:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2421, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:47:59', NULL, '2023-08-21 10:47:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2422, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:48:05', NULL, '2023-08-21 10:48:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2423, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:49:59', NULL, '2023-08-21 10:49:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2424, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:53:00', NULL, '2023-08-21 10:53:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2425, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:53:46', NULL, '2023-08-21 10:53:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2426, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:55:11', NULL, '2023-08-21 10:55:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2427, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-21 10:56:36', NULL, '2023-08-21 10:56:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2428, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-22 11:00:56', NULL, '2023-08-22 11:00:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2429, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-22 11:14:08', NULL, '2023-08-22 11:14:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2430, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-22 11:23:11', NULL, '2023-08-22 11:23:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2431, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-22 11:53:51', NULL, '2023-08-22 11:53:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2432, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:23:55', NULL, '2023-08-24 11:23:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2433, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:24:52', NULL, '2023-08-24 11:24:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2434, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:30:46', NULL, '2023-08-24 11:30:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2435, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:31:45', NULL, '2023-08-24 11:31:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2436, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:31:51', NULL, '2023-08-24 11:31:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2437, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 11:46:50', NULL, '2023-08-24 11:46:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2438, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 17:01:48', NULL, '2023-08-24 17:01:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2439, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 17:05:15', NULL, '2023-08-24 17:05:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2440, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 18:07:26', NULL, '2023-08-24 18:07:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2441, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-24 18:11:17', NULL, '2023-08-24 18:11:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2442, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-25 18:42:44', NULL, '2023-08-25 18:42:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2443, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 09:45:46', NULL, '2023-08-26 09:45:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2444, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 11:07:15', NULL, '2023-08-26 11:07:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2445, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 11:14:54', NULL, '2023-08-26 11:14:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2446, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 11:16:52', NULL, '2023-08-26 11:16:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2447, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 11:44:25', NULL, '2023-08-26 11:44:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2448, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 11:48:41', NULL, '2023-08-26 11:48:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2449, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 16:18:00', NULL, '2023-08-26 16:18:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2450, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 16:27:09', NULL, '2023-08-26 16:27:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2451, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 16:27:39', NULL, '2023-08-26 16:27:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2452, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-26 16:28:24', '6', '2023-08-26 16:28:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2453, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-08-26 16:28:29', '6', '2023-08-26 16:28:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2454, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 16:59:54', NULL, '2023-08-26 16:59:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2455, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 17:08:45', NULL, '2023-08-26 17:08:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2456, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 17:28:43', NULL, '2023-08-26 17:28:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2457, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-26 17:29:20', NULL, '2023-08-26 17:29:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2458, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-28 16:48:58', NULL, '2023-08-28 16:48:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2459, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-28 17:23:21', NULL, '2023-08-28 17:23:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2460, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-30 17:12:11', NULL, '2023-08-30 17:12:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2461, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-30 17:18:27', NULL, '2023-08-30 17:18:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2462, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-30 17:19:21', NULL, '2023-08-30 17:19:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2463, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-30 17:56:15', NULL, '2023-08-30 17:56:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2464, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-30 18:52:17', NULL, '2023-08-30 18:52:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2465, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 09:29:04', NULL, '2023-08-31 09:29:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2466, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 09:30:11', NULL, '2023-08-31 09:30:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2467, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 11:44:35', NULL, '2023-08-31 11:44:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2468, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 11:49:38', NULL, '2023-08-31 11:49:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2469, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 11:53:04', NULL, '2023-08-31 11:53:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2470, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-08-31 11:58:07', NULL, '2023-08-31 11:58:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2471, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 09:29:05', NULL, '2023-09-01 09:29:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2472, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 09:29:37', NULL, '2023-09-01 09:29:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2473, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 09:42:34', NULL, '2023-09-01 09:42:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2474, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 09:48:37', NULL, '2023-09-01 09:48:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2475, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:24:15', NULL, '2023-09-01 17:24:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2476, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:36:30', NULL, '2023-09-01 17:36:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2477, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:38:18', NULL, '2023-09-01 17:38:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2478, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:40:56', NULL, '2023-09-01 17:40:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2479, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:43:33', NULL, '2023-09-01 17:43:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2480, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 17:44:23', NULL, '2023-09-01 17:44:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2481, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:18:28', NULL, '2023-09-01 18:18:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2482, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:18:55', NULL, '2023-09-01 18:18:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2483, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:22:52', NULL, '2023-09-01 18:22:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2484, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:28:07', NULL, '2023-09-01 18:28:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2485, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:35:45', NULL, '2023-09-01 18:35:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2486, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:39:02', NULL, '2023-09-01 18:39:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2487, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:39:23', NULL, '2023-09-01 18:39:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2488, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:39:50', NULL, '2023-09-01 18:39:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2489, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:41:12', NULL, '2023-09-01 18:41:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2490, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:41:17', NULL, '2023-09-01 18:41:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2491, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:45:26', NULL, '2023-09-01 18:45:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2492, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:45:35', NULL, '2023-09-01 18:45:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2493, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:48:25', NULL, '2023-09-01 18:48:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2494, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:50:54', NULL, '2023-09-01 18:50:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2495, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:51:16', NULL, '2023-09-01 18:51:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2496, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:51:33', NULL, '2023-09-01 18:51:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2497, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:52:44', NULL, '2023-09-01 18:52:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2498, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-01 18:56:35', NULL, '2023-09-01 18:56:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2499, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:05:13', NULL, '2023-09-03 16:05:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2500, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:09:16', NULL, '2023-09-03 16:09:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2501, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:11:02', NULL, '2023-09-03 16:11:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2502, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:11:47', NULL, '2023-09-03 16:11:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2503, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:13:24', NULL, '2023-09-03 16:13:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2504, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:14:27', NULL, '2023-09-03 16:14:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2505, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:15:45', NULL, '2023-09-03 16:15:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2506, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:16:17', NULL, '2023-09-03 16:16:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2507, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:16:56', NULL, '2023-09-03 16:16:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2508, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:17:33', NULL, '2023-09-03 16:17:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2509, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:17:57', NULL, '2023-09-03 16:17:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2510, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:18:14', NULL, '2023-09-03 16:18:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2511, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:18:36', NULL, '2023-09-03 16:18:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2512, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:21:35', NULL, '2023-09-03 16:21:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2513, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:22:10', NULL, '2023-09-03 16:22:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2514, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:22:40', NULL, '2023-09-03 16:22:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2515, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:25:17', NULL, '2023-09-03 16:25:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2516, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:29:14', NULL, '2023-09-03 16:29:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2517, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:29:29', NULL, '2023-09-03 16:29:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2518, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:33:23', NULL, '2023-09-03 16:33:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2519, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:37:48', NULL, '2023-09-03 16:37:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2520, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:38:17', NULL, '2023-09-03 16:38:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2521, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:40:50', NULL, '2023-09-03 16:40:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2522, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:41:35', NULL, '2023-09-03 16:41:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2523, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-09-03 16:48:32', '6', '2023-09-03 16:48:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2524, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 16:50:36', NULL, '2023-09-03 16:50:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2525, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:14:23', NULL, '2023-09-03 17:14:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2526, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:19:03', NULL, '2023-09-03 17:19:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2527, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:25:25', NULL, '2023-09-03 17:25:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2528, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:26:14', NULL, '2023-09-03 17:26:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2529, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:26:55', NULL, '2023-09-03 17:26:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2530, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:30:27', NULL, '2023-09-03 17:30:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2531, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:35:06', NULL, '2023-09-03 17:35:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2532, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:36:20', NULL, '2023-09-03 17:36:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2533, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:37:22', NULL, '2023-09-03 17:37:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2534, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:47:02', NULL, '2023-09-03 17:47:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2535, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 17:48:54', NULL, '2023-09-03 17:48:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2536, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-03 18:17:55', NULL, '2023-09-03 18:17:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2537, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 09:55:30', NULL, '2023-09-04 09:55:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2538, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:15:17', NULL, '2023-09-04 10:15:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2539, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:17:29', NULL, '2023-09-04 10:17:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2540, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:37:46', NULL, '2023-09-04 10:37:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2541, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:45:08', NULL, '2023-09-04 10:45:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2542, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:46:30', NULL, '2023-09-04 10:46:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2543, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:48:22', NULL, '2023-09-04 10:48:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2544, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:51:10', NULL, '2023-09-04 10:51:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2545, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:52:24', NULL, '2023-09-04 10:52:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2546, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 10:54:11', NULL, '2023-09-04 10:54:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2547, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 11:53:57', NULL, '2023-09-04 11:53:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2548, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 11:54:37', NULL, '2023-09-04 11:54:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2549, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 11:56:53', NULL, '2023-09-04 11:56:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2550, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 14:14:53', NULL, '2023-09-04 14:14:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2551, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 14:17:32', NULL, '2023-09-04 14:17:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2552, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 14:18:23', NULL, '2023-09-04 14:18:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2553, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 14:19:25', NULL, '2023-09-04 14:19:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2554, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 14:20:38', NULL, '2023-09-04 14:20:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2555, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-04 17:03:41', '1', '2023-09-04 17:03:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2556, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-04 17:03:51', NULL, '2023-09-04 17:03:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2557, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 17:12:14', NULL, '2023-09-04 17:12:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2558, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-04 18:33:24', '1', '2023-09-04 18:33:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2559, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-04 18:35:51', NULL, '2023-09-04 18:35:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2560, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:40:58', NULL, '2023-09-04 18:40:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2561, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:43:23', NULL, '2023-09-04 18:43:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2562, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:43:45', NULL, '2023-09-04 18:43:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2563, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:44:50', NULL, '2023-09-04 18:44:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2564, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:45:00', NULL, '2023-09-04 18:45:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2565, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:45:41', NULL, '2023-09-04 18:45:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2566, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:46:12', NULL, '2023-09-04 18:46:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2567, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:47:14', NULL, '2023-09-04 18:47:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2568, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:49:08', NULL, '2023-09-04 18:49:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2569, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-04 18:51:37', NULL, '2023-09-04 18:51:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2570, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:21:22', NULL, '2023-09-05 09:21:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2571, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:21:58', NULL, '2023-09-05 09:21:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2572, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:25:19', NULL, '2023-09-05 09:25:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2573, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:26:22', NULL, '2023-09-05 09:26:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2574, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:31:33', NULL, '2023-09-05 09:31:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2575, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:36:28', NULL, '2023-09-05 09:36:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2576, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 09:57:55', NULL, '2023-09-05 09:57:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2577, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-05 10:06:37', NULL, '2023-09-05 10:06:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2578, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 10:07:41', NULL, '2023-09-05 10:07:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2579, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 10:41:39', '1', '2023-09-05 10:41:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2580, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 11:05:37', NULL, '2023-09-05 11:05:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2581, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 14:37:52', '1', '2023-09-05 14:37:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2582, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:38:30', NULL, '2023-09-05 14:38:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2583, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:39:15', NULL, '2023-09-05 14:39:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2584, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:40:56', NULL, '2023-09-05 14:40:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2585, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 14:43:10', '1', '2023-09-05 14:43:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2586, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:43:25', NULL, '2023-09-05 14:43:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2587, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:45:16', NULL, '2023-09-05 14:45:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2588, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:46:18', NULL, '2023-09-05 14:46:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2589, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 14:48:17', '1', '2023-09-05 14:48:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2590, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:48:33', NULL, '2023-09-05 14:48:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2591, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:51:11', NULL, '2023-09-05 14:51:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2592, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 14:56:30', '1', '2023-09-05 14:56:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2593, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 14:57:33', NULL, '2023-09-05 14:57:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2594, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:12:16', NULL, '2023-09-05 16:12:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2595, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 16:19:29', '1', '2023-09-05 16:19:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2596, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:19:45', NULL, '2023-09-05 16:19:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2597, 200, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-09-05 16:29:22', '126', '2023-09-05 16:29:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2598, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:29:27', NULL, '2023-09-05 16:29:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2599, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-05 16:30:41', '1', '2023-09-05 16:30:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2600, 100, '', 0, 2, 'yxiang001', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:30:56', NULL, '2023-09-05 16:30:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2601, 100, '', 0, 2, 'yxiang001', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:31:09', NULL, '2023-09-05 16:31:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2602, 100, '', 0, 2, 'yixiang01', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:31:32', NULL, '2023-09-05 16:31:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2603, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:32:47', NULL, '2023-09-05 16:32:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2604, 200, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-09-05 16:49:46', '126', '2023-09-05 16:49:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2605, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 16:50:26', NULL, '2023-09-05 16:50:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2606, 200, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-09-05 17:05:44', '126', '2023-09-05 17:05:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2607, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 17:06:10', NULL, '2023-09-05 17:06:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2608, 200, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-09-05 17:38:00', '126', '2023-09-05 17:38:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2609, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-05 17:40:45', NULL, '2023-09-05 17:40:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2610, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-06 10:36:11', '1', '2023-09-06 10:36:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2611, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-06 10:36:19', NULL, '2023-09-06 10:36:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2612, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 10:05:31', NULL, '2023-09-07 10:05:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2613, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 10:58:57', NULL, '2023-09-07 10:58:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2614, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 11:03:52', NULL, '2023-09-07 11:03:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2615, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 11:08:52', NULL, '2023-09-07 11:08:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2616, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 11:17:42', NULL, '2023-09-07 11:17:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2617, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 11:20:42', NULL, '2023-09-07 11:20:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2618, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 11:21:52', NULL, '2023-09-07 11:21:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2619, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 13:59:33', NULL, '2023-09-07 13:59:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2620, 104, '', 7, 1, '15136175247', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 14:45:11', NULL, '2023-09-07 14:45:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2621, 104, '', 7, 1, '15136175247', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 14:51:35', NULL, '2023-09-07 14:51:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2622, 104, '', 8, 1, '15136175244', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 14:53:47', NULL, '2023-09-07 14:53:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2623, 104, '', 9, 1, '15136175221', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 15:02:48', NULL, '2023-09-07 15:02:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2624, 104, '', 2, 1, '15136175245', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 15:09:38', NULL, '2023-09-07 15:09:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2625, 104, '', 2, 1, '15136175245', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', '2', '2023-09-07 15:11:38', '2', '2023-09-07 15:11:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2626, 104, '', 2, 1, '15136175245', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 15:14:32', NULL, '2023-09-07 15:14:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2627, 104, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 15:18:47', NULL, '2023-09-07 15:18:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2628, 104, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 16:44:47', NULL, '2023-09-07 16:44:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2629, 104, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 16:48:02', NULL, '2023-09-07 16:48:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2630, 104, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 16:52:55', NULL, '2023-09-07 16:52:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2631, 104, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 17:45:26', NULL, '2023-09-07 17:45:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2632, 104, '', 7, 1, '15136175247', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 17:46:05', NULL, '2023-09-07 17:46:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2633, 104, '', 2, 1, '15136175245', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 17:47:00', NULL, '2023-09-07 17:47:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2634, 104, '', 10, 1, '15136175242', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 17:47:33', NULL, '2023-09-07 17:47:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2635, 104, '', 11, 1, '15136175243', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-07 17:54:25', NULL, '2023-09-07 17:54:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2636, 104, '', 12, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-07 17:57:39', NULL, '2023-09-07 17:57:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2637, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-07 18:21:24', NULL, '2023-09-07 18:21:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2638, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 09:56:08', NULL, '2023-09-09 09:56:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2639, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '6', '2023-09-09 17:15:37', '6', '2023-09-09 17:15:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2640, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 17:20:45', NULL, '2023-09-09 17:20:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2641, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 17:23:41', NULL, '2023-09-09 17:23:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2642, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 17:28:09', NULL, '2023-09-09 17:28:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2643, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 17:30:29', NULL, '2023-09-09 17:30:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2644, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-09 17:33:01', NULL, '2023-09-09 17:33:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2645, 101, '', 6, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-11 16:25:10', NULL, '2023-09-11 16:25:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2646, 101, '', 13, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-11 16:28:11', NULL, '2023-09-11 16:28:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2647, 101, '', 13, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-12 18:10:48', NULL, '2023-09-12 18:10:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2648, 101, '', 13, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-12 18:24:10', NULL, '2023-09-12 18:24:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2649, 100, '', 1, 2, 'admin', 0, '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-13 19:18:33', NULL, '2023-09-13 19:18:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2650, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 08:53:18', NULL, '2023-09-14 08:53:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2651, 100, '', 1, 2, 'admin', 0, '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-14 09:39:04', NULL, '2023-09-14 09:39:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2652, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 10:25:52', NULL, '2023-09-14 10:25:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2653, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2654, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 16:39:22', NULL, '2023-09-14 16:39:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2655, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 16:39:53', NULL, '2023-09-14 16:39:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2656, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 17:28:45', NULL, '2023-09-14 17:28:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2657, 200, '', 1, 2, 'admin', 0, '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-14 17:35:31', '1', '2023-09-14 17:35:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2658, 100, '', 1, 2, 'admin', 0, '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2659, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 18:02:42', NULL, '2023-09-14 18:02:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2660, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2661, 101, '', 13, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2662, 101, '', 14, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', NULL, '2023-09-15 16:48:16', NULL, '2023-09-15 16:48:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2663, 101, '', 14, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '14', '2023-09-15 16:52:16', '14', '2023-09-15 16:52:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2664, 101, '', 1, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', NULL, '2023-09-15 16:54:16', NULL, '2023-09-15 16:54:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2665, 101, '', 2, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', NULL, '2023-09-15 17:01:37', NULL, '2023-09-15 17:01:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2666, 101, '', 2, 1, '15136175246', 0, '223.91.183.56', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292e) NetType/WIFI Language/zh_CN', '2', '2023-09-15 17:03:14', '2', '2023-09-15 17:03:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2667, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 11:25:58', NULL, '2023-09-18 11:25:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2668, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:26:35', '2', '2023-09-18 11:26:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2669, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:27:49', '2', '2023-09-18 11:27:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2670, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:30:02', '2', '2023-09-18 11:30:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2671, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:36:08', '2', '2023-09-18 11:36:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2672, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:41:03', '2', '2023-09-18 11:41:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2673, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:42:16', '2', '2023-09-18 11:42:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2674, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:44:42', '2', '2023-09-18 11:44:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2675, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:45:32', '2', '2023-09-18 11:45:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2676, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2677, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 11:48:16', NULL, '2023-09-18 11:48:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2678, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:50:58', '2', '2023-09-18 11:50:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2679, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 11:57:20', '2', '2023-09-18 11:57:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2680, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2681, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2682, 101, '', 2, 1, '15136175246', 0, '223.91.183.51', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 11:59:11', NULL, '2023-09-18 11:59:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2683, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 15:41:55', NULL, '2023-09-18 15:41:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2684, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 15:49:14', '2', '2023-09-18 15:49:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2685, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 15:49:15', '2', '2023-09-18 15:49:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2686, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 15:52:11', '2', '2023-09-18 15:52:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2687, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:14:17', '2', '2023-09-18 16:14:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2688, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:15:31', '2', '2023-09-18 16:15:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2689, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:22:22', '2', '2023-09-18 16:22:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2690, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:24:58', '2', '2023-09-18 16:24:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2691, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:25:02', '2', '2023-09-18 16:25:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2692, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:25:10', '2', '2023-09-18 16:25:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2693, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 16:25:16', NULL, '2023-09-18 16:25:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2694, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:27:00', '2', '2023-09-18 16:27:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2695, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2696, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2697, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2698, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2699, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2700, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2701, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2702, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2703, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:33:19', NULL, '2023-09-18 16:33:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2704, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2705, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2706, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2707, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:34:43', NULL, '2023-09-18 16:34:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2708, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:35:17', NULL, '2023-09-18 16:35:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (2709, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 16:35:52', NULL, '2023-09-18 16:35:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2710, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:45:41', '2', '2023-09-18 16:45:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2711, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:48:01', NULL, '2023-09-18 16:48:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2712, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2713, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 16:56:41', '2', '2023-09-18 16:56:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2714, 104, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 16:58:51', NULL, '2023-09-18 16:58:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2715, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2716, 104, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-18 17:02:37', NULL, '2023-09-18 17:02:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2717, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2718, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2719, 104, '', 3, 1, '15136176246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-18 17:07:29', NULL, '2023-09-18 17:07:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2720, 104, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-18 17:08:04', NULL, '2023-09-18 17:08:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2721, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 17:27:43', NULL, '2023-09-18 17:27:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2722, 101, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-18 17:28:13', NULL, '2023-09-18 17:28:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2723, 104, '', 2, 1, '15136175246', 0, '223.91.183.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 18:03:00', NULL, '2023-09-18 18:03:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2724, 104, '', 2, 1, '15136175246', 0, '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 18:16:14', NULL, '2023-09-18 18:16:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2725, 104, '', 2, 1, '15136175246', 0, '223.91.183.37', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.3 Mobile/15E148 Safari/604.1', NULL, '2023-09-18 18:19:44', NULL, '2023-09-18 18:19:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2726, 104, '', 2, 1, '15136175246', 0, '223.91.183.37', 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 SE Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.0.8.1259 Mobile Safari/537.36', NULL, '2023-09-18 18:30:58', NULL, '2023-09-18 18:30:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2727, 200, '', 1, 2, 'admin', 0, '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-18 22:19:09', '1', '2023-09-18 22:19:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2728, 100, '', 126, 2, 'yixiang001', 10, '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-18 22:19:22', NULL, '2023-09-18 22:19:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2729, 100, '', 126, 2, 'yixiang001', 10, '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-18 22:19:49', NULL, '2023-09-18 22:19:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2730, 100, '', 126, 2, 'yixiang001', 0, '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2731, 200, '', 126, 2, 'yixiang001', 0, '223.91.183.95', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-09-18 22:20:13', '126', '2023-09-18 22:20:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2732, 101, '', 2, 1, '15136175246', 0, '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', NULL, '2023-09-18 22:31:31', NULL, '2023-09-18 22:31:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2733, 101, '', 2, 1, '15136175246', 0, '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 22:34:08', '2', '2023-09-18 22:34:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2734, 101, '', 2, 1, '15136175246', 0, '223.91.183.95', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.41(0x1800292f) NetType/WIFI Language/zh_CN', '2', '2023-09-18 22:34:22', '2', '2023-09-18 22:34:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2735, 100, '', 1, 2, 'admin', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-19 09:50:20', NULL, '2023-09-19 09:50:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2736, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-19 09:51:37', NULL, '2023-09-19 09:51:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2737, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-19 13:02:04', NULL, '2023-09-19 13:02:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2738, 104, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36', NULL, '2023-09-21 23:25:36', NULL, '2023-09-21 23:25:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2739, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-09-22 18:15:28', '1', '2023-09-22 18:15:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2740, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-22 18:15:41', NULL, '2023-09-22 18:15:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2741, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-09-25 18:16:52', NULL, '2023-09-25 18:16:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2742, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-09-25 18:23:31', NULL, '2023-09-25 18:23:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2743, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-07 10:59:49', '2', '2023-10-07 10:59:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2744, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:00:44', NULL, '2023-10-07 11:00:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2745, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-10-07 11:04:30', '1', '2023-10-07 11:04:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2746, 100, '', 0, 2, 'yixiaing001', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:04:45', NULL, '2023-10-07 11:04:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2747, 100, '', 0, 2, 'yixiang01', 10, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:05:12', NULL, '2023-10-07 11:05:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2748, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:05:26', NULL, '2023-10-07 11:05:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2749, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '1', '2023-10-07 11:05:42', '1', '2023-10-07 11:05:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2750, 100, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:05:53', NULL, '2023-10-07 11:05:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2751, 200, '', 126, 2, 'yixiang001', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', '126', '2023-10-07 11:08:15', '126', '2023-10-07 11:08:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2752, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', NULL, '2023-10-07 11:08:21', NULL, '2023-10-07 11:08:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2753, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-11 09:40:28', NULL, '2023-10-11 09:40:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2754, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 09:48:37', '2', '2023-10-11 09:48:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2755, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 09:54:22', '2', '2023-10-11 09:54:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2756, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 09:54:29', '2', '2023-10-11 09:54:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2757, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 09:55:21', '2', '2023-10-11 09:55:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2758, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 09:57:00', '2', '2023-10-11 09:57:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2759, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 10:00:15', '2', '2023-10-11 10:00:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2760, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 10:01:23', '2', '2023-10-11 10:01:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2761, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 10:01:34', '2', '2023-10-11 10:01:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2762, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:01:26', '2', '2023-10-11 14:01:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2763, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:01:52', '2', '2023-10-11 14:01:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2764, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:13:38', '2', '2023-10-11 14:13:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2765, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:18:24', '2', '2023-10-11 14:18:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2766, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:19:27', '2', '2023-10-11 14:19:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2767, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:21:30', '2', '2023-10-11 14:21:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2768, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:21:43', '2', '2023-10-11 14:21:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2769, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:24:06', '2', '2023-10-11 14:24:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2770, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:24:22', '2', '2023-10-11 14:24:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2771, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:24:42', '2', '2023-10-11 14:24:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2772, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-11 14:24:59', '2', '2023-10-11 14:24:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2773, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-11 17:02:08', NULL, '2023-10-11 17:02:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2774, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-13 16:14:24', NULL, '2023-10-13 16:14:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2775, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:27:16', '2', '2023-10-13 16:27:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2776, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:28:20', '2', '2023-10-13 16:28:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2777, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:29:41', '2', '2023-10-13 16:29:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2778, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:31:08', '2', '2023-10-13 16:31:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2779, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:31:29', '2', '2023-10-13 16:31:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2780, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:31:54', '2', '2023-10-13 16:31:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2781, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:33:40', '2', '2023-10-13 16:33:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2782, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:34:43', '2', '2023-10-13 16:34:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2783, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:37:13', '2', '2023-10-13 16:37:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2784, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:37:48', '2', '2023-10-13 16:37:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2785, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:42:19', '2', '2023-10-13 16:42:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2786, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:46:07', '2', '2023-10-13 16:46:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2787, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:48:12', '2', '2023-10-13 16:48:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2788, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:49:40', '2', '2023-10-13 16:49:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2789, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:51:21', '2', '2023-10-13 16:51:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2790, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:51:55', '2', '2023-10-13 16:51:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2791, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:53:33', '2', '2023-10-13 16:53:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2792, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:55:08', '2', '2023-10-13 16:55:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2793, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:55:36', '2', '2023-10-13 16:55:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (2794, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:58:14', '2', '2023-10-13 16:58:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2795, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:58:26', '2', '2023-10-13 16:58:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2796, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:59:11', '2', '2023-10-13 16:59:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2797, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 16:59:32', '2', '2023-10-13 16:59:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (2798, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:04:51', '2', '2023-10-13 17:04:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2799, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:05:16', '2', '2023-10-13 17:05:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2800, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:12:21', '2', '2023-10-13 17:12:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2801, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:13:08', '2', '2023-10-13 17:13:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2802, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:15:37', '2', '2023-10-13 17:15:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2803, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:16:03', '2', '2023-10-13 17:16:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2804, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:16:53', '2', '2023-10-13 17:16:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2805, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:18:16', '2', '2023-10-13 17:18:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2806, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:18:55', '2', '2023-10-13 17:18:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2807, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:19:14', '2', '2023-10-13 17:19:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2808, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:19:47', '2', '2023-10-13 17:19:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2809, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:20:09', '2', '2023-10-13 17:20:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2810, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:20:52', '2', '2023-10-13 17:20:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2811, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:21:16', '2', '2023-10-13 17:21:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2812, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:21:53', '2', '2023-10-13 17:21:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2813, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:25:57', '2', '2023-10-13 17:25:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2814, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:25:59', '2', '2023-10-13 17:25:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2815, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:26:03', '2', '2023-10-13 17:26:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2816, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:27:02', '2', '2023-10-13 17:27:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2817, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:28:12', '2', '2023-10-13 17:28:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2818, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:28:38', '2', '2023-10-13 17:28:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2819, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:29:29', '2', '2023-10-13 17:29:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2820, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:34:10', '2', '2023-10-13 17:34:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2821, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:35:12', '2', '2023-10-13 17:35:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2822, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:46:45', '2', '2023-10-13 17:46:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2823, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:49:42', '2', '2023-10-13 17:49:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2824, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:53:37', '2', '2023-10-13 17:53:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2825, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:53:48', '2', '2023-10-13 17:53:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2826, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:55:26', '2', '2023-10-13 17:55:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2827, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:56:27', '2', '2023-10-13 17:56:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2828, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:57:21', '2', '2023-10-13 17:57:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2829, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:58:15', '2', '2023-10-13 17:58:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2830, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 17:59:44', '2', '2023-10-13 17:59:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2831, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:00:45', '2', '2023-10-13 18:00:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2832, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:01:25', '2', '2023-10-13 18:01:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2833, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:02:35', '2', '2023-10-13 18:02:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2834, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:03:15', '2', '2023-10-13 18:03:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2835, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:07:00', '2', '2023-10-13 18:07:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2836, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:07:26', '2', '2023-10-13 18:07:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2837, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:07:50', '2', '2023-10-13 18:07:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2838, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:08:19', '2', '2023-10-13 18:08:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (2839, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:09:11', '2', '2023-10-13 18:09:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2840, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:10:00', '2', '2023-10-13 18:10:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2841, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:10:51', '2', '2023-10-13 18:10:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2842, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:11:12', '2', '2023-10-13 18:11:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2843, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:11:50', '2', '2023-10-13 18:11:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2844, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:12:54', '2', '2023-10-13 18:12:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2845, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:13:37', '2', '2023-10-13 18:13:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2846, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:14:16', '2', '2023-10-13 18:14:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2847, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:14:39', '2', '2023-10-13 18:14:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2848, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:15:45', '2', '2023-10-13 18:15:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2849, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:16:58', '2', '2023-10-13 18:16:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2850, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:17:22', '2', '2023-10-13 18:17:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2851, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:17:49', '2', '2023-10-13 18:17:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2852, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:18:58', '2', '2023-10-13 18:18:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2853, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-13 18:21:44', '2', '2023-10-13 18:21:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2854, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-16 09:46:09', NULL, '2023-10-16 09:46:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2855, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:48:23', '2', '2023-10-16 09:48:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2856, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:49:03', '2', '2023-10-16 09:49:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2857, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:49:54', '2', '2023-10-16 09:49:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2858, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:55:24', '2', '2023-10-16 09:55:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (2859, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:56:22', '2', '2023-10-16 09:56:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2860, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 09:58:27', '2', '2023-10-16 09:58:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2861, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:00:53', '2', '2023-10-16 10:00:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2862, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:01:27', '2', '2023-10-16 10:01:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2863, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:25:27', '2', '2023-10-16 10:25:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2864, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:28:53', '2', '2023-10-16 10:28:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2865, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:29:49', '2', '2023-10-16 10:29:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2866, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:33:08', '2', '2023-10-16 10:33:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2867, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:38:50', '2', '2023-10-16 10:38:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2868, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:40:15', '2', '2023-10-16 10:40:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2869, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:41:54', '2', '2023-10-16 10:41:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2870, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:51:58', '2', '2023-10-16 10:51:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2871, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-10-16 10:53:48', '2', '2023-10-16 10:53:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2872, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-16 10:55:06', NULL, '2023-10-16 10:55:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2873, 104, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-19 10:02:47', NULL, '2023-10-19 10:02:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2874, 101, '', 4, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-19 11:11:57', NULL, '2023-10-19 11:11:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2875, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-19 11:13:23', NULL, '2023-10-19 11:13:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (2876, 101, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-19 16:56:35', NULL, '2023-10-19 16:56:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2877, 101, '', 7, 1, '会敲代码的喵', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-20 16:39:01', NULL, '2023-10-20 16:39:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2878, 101, '', 7, 1, '会敲代码的喵', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-21 10:10:31', NULL, '2023-10-21 10:10:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (2879, 101, '', 7, 1, '会敲代码的喵', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-21 10:13:08', NULL, '2023-10-21 10:13:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2880, 101, '', 7, 1, '会敲代码的喵', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-21 11:33:54', NULL, '2023-10-21 11:33:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2881, 104, '', 8, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-21 11:35:08', NULL, '2023-10-21 11:35:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2882, 101, '', 7, 1, '会敲代码的喵', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 09:47:53', NULL, '2023-10-23 09:47:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2883, 104, '', 7, 1, '15136175523', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 09:48:21', NULL, '2023-10-23 09:48:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2884, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 09:53:34', NULL, '2023-10-23 09:53:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2885, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 10:12:14', NULL, '2023-10-23 10:12:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2886, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 10:19:16', NULL, '2023-10-23 10:19:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (2887, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 10:21:40', NULL, '2023-10-23 10:21:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (2888, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 10:25:09', NULL, '2023-10-23 10:25:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2889, 104, '', 7, 1, '15136175234', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16977058259582767 webdebugger port/59094 token/694db8a96907a1c2011f59f06dc8d70b', NULL, '2023-10-23 10:33:28', NULL, '2023-10-23 10:33:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2890, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-27 17:20:47', NULL, '2023-10-27 17:20:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2891, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-27 17:23:30', NULL, '2023-10-27 17:23:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2892, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-27 17:38:02', NULL, '2023-10-27 17:38:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2893, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-27 17:40:44', NULL, '2023-10-27 17:40:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2894, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-28 16:37:01', NULL, '2023-10-28 16:37:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2895, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-31 11:35:39', NULL, '2023-10-31 11:35:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2896, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-31 11:44:06', NULL, '2023-10-31 11:44:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (2897, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-31 11:45:58', NULL, '2023-10-31 11:45:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2898, 104, '', 5, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-31 11:53:04', NULL, '2023-10-31 11:53:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2899, 104, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-10-31 12:02:55', NULL, '2023-10-31 12:02:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2900, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 16:53:10', '2', '2023-11-07 16:53:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2901, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 16:55:01', '2', '2023-11-07 16:55:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2902, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 16:55:41', '2', '2023-11-07 16:55:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (2903, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 16:56:13', '2', '2023-11-07 16:56:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2904, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 16:58:14', '2', '2023-11-07 16:58:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2905, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 17:01:50', '2', '2023-11-07 17:01:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2906, 101, '', 2, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '2', '2023-11-07 17:02:45', '2', '2023-11-07 17:02:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2907, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-11-07 17:17:45', NULL, '2023-11-07 17:17:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2908, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-07 17:30:05', '9', '2023-11-07 17:30:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2909, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-08 18:09:01', '9', '2023-11-08 18:09:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (2910, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-08 18:36:14', '9', '2023-11-08 18:36:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2911, 104, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/16994398210778007 webdebugger port/42562 token/2f58b55d41700b3c86e5c57f195a9804', NULL, '2023-11-08 18:43:37', NULL, '2023-11-08 18:43:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2912, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 11:55:58', '9', '2023-11-09 11:55:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2913, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 11:57:21', '9', '2023-11-09 11:57:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2914, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 11:58:28', '9', '2023-11-09 11:58:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (2915, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 12:00:21', '9', '2023-11-09 12:00:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (2916, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 12:01:58', '9', '2023-11-09 12:01:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (2917, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 12:14:45', '9', '2023-11-09 12:14:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2918, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 12:22:11', '9', '2023-11-09 12:22:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2919, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 15:01:56', '9', '2023-11-09 15:01:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (2920, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-09 15:02:10', '9', '2023-11-09 15:02:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2921, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 10:26:07', '9', '2023-11-10 10:26:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (2922, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 10:28:52', '9', '2023-11-10 10:28:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2923, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 10:29:43', '9', '2023-11-10 10:29:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2924, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 10:30:54', '9', '2023-11-10 10:30:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2925, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 16:21:26', '9', '2023-11-10 16:21:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2926, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 16:43:02', '9', '2023-11-10 16:43:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2927, 101, '', 9, 1, '15136175246', 0, '223.91.183.200', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-10 16:43:52', '9', '2023-11-10 16:43:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2928, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-11-16 11:58:49', NULL, '2023-11-16 11:58:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (2929, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 12:08:27', '9', '2023-11-16 12:08:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2930, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 12:10:15', '9', '2023-11-16 12:10:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (2931, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 12:10:30', '9', '2023-11-16 12:10:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2932, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 12:10:48', '9', '2023-11-16 12:10:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2933, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 14:08:26', '9', '2023-11-16 14:08:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (2934, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 14:58:29', '9', '2023-11-16 14:58:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2935, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 15:00:03', '9', '2023-11-16 15:00:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (2936, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 15:00:42', '9', '2023-11-16 15:00:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (2937, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 15:02:00', '9', '2023-11-16 15:02:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (2938, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 15:15:27', '9', '2023-11-16 15:15:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2939, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:23:18', '9', '2023-11-16 17:23:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2940, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:36:35', '9', '2023-11-16 17:36:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2941, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:45:10', '9', '2023-11-16 17:45:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2942, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:46:45', '9', '2023-11-16 17:46:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (2943, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:47:37', '9', '2023-11-16 17:47:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2944, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:47:52', '9', '2023-11-16 17:47:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2945, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:48:33', '9', '2023-11-16 17:48:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2946, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 17:53:39', '9', '2023-11-16 17:53:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (2947, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:08:13', '9', '2023-11-16 18:08:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2948, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:08:43', '9', '2023-11-16 18:08:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (2949, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:09:34', '9', '2023-11-16 18:09:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2950, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:11:37', '9', '2023-11-16 18:11:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (2951, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:12:54', '9', '2023-11-16 18:12:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (2952, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:15:22', '9', '2023-11-16 18:15:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (2953, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:21:09', '9', '2023-11-16 18:21:09', b'0', 0); +INSERT INTO `system_login_log` VALUES (2954, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:22:59', '9', '2023-11-16 18:22:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (2955, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:23:33', '9', '2023-11-16 18:23:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2956, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:30:10', '9', '2023-11-16 18:30:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2957, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:33:46', '9', '2023-11-16 18:33:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2958, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:41:34', '9', '2023-11-16 18:41:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (2959, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:43:52', '9', '2023-11-16 18:43:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2960, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:45:10', '9', '2023-11-16 18:45:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2961, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:46:04', '9', '2023-11-16 18:46:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2962, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-16 18:46:33', '9', '2023-11-16 18:46:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2963, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 09:40:05', '9', '2023-11-17 09:40:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2964, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 09:46:18', '9', '2023-11-17 09:46:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2965, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:05:33', '9', '2023-11-17 10:05:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2966, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:08:27', '9', '2023-11-17 10:08:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (2967, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:13:33', '9', '2023-11-17 10:13:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (2968, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:17:20', '9', '2023-11-17 10:17:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2969, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:20:29', '9', '2023-11-17 10:20:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (2970, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:21:08', '9', '2023-11-17 10:21:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2971, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:21:51', '9', '2023-11-17 10:21:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (2972, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:31:18', '9', '2023-11-17 10:31:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (2973, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:35:11', '9', '2023-11-17 10:35:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (2974, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:48:35', '9', '2023-11-17 10:48:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (2975, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:51:05', '9', '2023-11-17 10:51:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (2976, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:54:48', '9', '2023-11-17 10:54:48', b'0', 0); +INSERT INTO `system_login_log` VALUES (2977, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 10:55:10', '9', '2023-11-17 10:55:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (2978, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:16:25', '9', '2023-11-17 11:16:25', b'0', 0); +INSERT INTO `system_login_log` VALUES (2979, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:17:20', '9', '2023-11-17 11:17:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (2980, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:25:04', '9', '2023-11-17 11:25:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (2981, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:27:47', '9', '2023-11-17 11:27:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2982, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:46:02', '9', '2023-11-17 11:46:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (2983, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:46:47', '9', '2023-11-17 11:46:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2984, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:48:46', '9', '2023-11-17 11:48:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2985, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-17 11:57:14', '9', '2023-11-17 11:57:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (2986, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-21 09:50:38', '9', '2023-11-21 09:50:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (2987, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-11-21 09:52:46', NULL, '2023-11-21 09:52:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (2988, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-21 10:00:53', '9', '2023-11-21 10:00:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (2989, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-21 10:04:30', '9', '2023-11-21 10:04:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (2990, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-21 16:44:47', '9', '2023-11-21 16:44:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (2991, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 09:48:52', '9', '2023-11-22 09:48:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (2992, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:21:55', '9', '2023-11-22 10:21:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (2993, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:23:12', '9', '2023-11-22 10:23:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (2994, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:29:13', '9', '2023-11-22 10:29:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (2995, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:30:57', '9', '2023-11-22 10:30:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (2996, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:38:44', '9', '2023-11-22 10:38:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (2997, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:44:08', '9', '2023-11-22 10:44:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (2998, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:52:50', '9', '2023-11-22 10:52:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (2999, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 10:59:18', '9', '2023-11-22 10:59:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (3000, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 11:13:53', '9', '2023-11-22 11:13:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (3001, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 11:17:00', '9', '2023-11-22 11:17:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (3002, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 11:17:26', '9', '2023-11-22 11:17:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (3003, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 11:17:45', '9', '2023-11-22 11:17:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (3004, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 11:18:08', '9', '2023-11-22 11:18:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (3005, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:06:24', '9', '2023-11-22 15:06:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (3006, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:08:53', '9', '2023-11-22 15:08:53', b'0', 0); +INSERT INTO `system_login_log` VALUES (3007, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:09:14', '9', '2023-11-22 15:09:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (3008, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:09:33', '9', '2023-11-22 15:09:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (3009, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:09:46', '9', '2023-11-22 15:09:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (3010, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:10:05', '9', '2023-11-22 15:10:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (3011, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:10:56', '9', '2023-11-22 15:10:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (3012, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:11:02', '9', '2023-11-22 15:11:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (3013, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:11:11', '9', '2023-11-22 15:11:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (3014, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:11:29', '9', '2023-11-22 15:11:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (3015, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:11:43', '9', '2023-11-22 15:11:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (3016, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:11:54', '9', '2023-11-22 15:11:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (3017, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:12:11', '9', '2023-11-22 15:12:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (3018, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:12:18', '9', '2023-11-22 15:12:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (3019, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:16:10', '9', '2023-11-22 15:16:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (3020, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:19:59', '9', '2023-11-22 15:19:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (3021, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-22 15:20:31', '9', '2023-11-22 15:20:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (3022, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-23 09:18:38', '9', '2023-11-23 09:18:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (3023, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-11-26 10:00:08', NULL, '2023-11-26 10:00:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (3024, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:04:56', '9', '2023-11-26 11:04:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (3025, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:07:44', '9', '2023-11-26 11:07:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (3026, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:12:27', '9', '2023-11-26 11:12:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (3027, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:12:43', '9', '2023-11-26 11:12:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (3028, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:18:01', '9', '2023-11-26 11:18:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (3029, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:18:38', '9', '2023-11-26 11:18:38', b'0', 0); +INSERT INTO `system_login_log` VALUES (3030, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:19:56', '9', '2023-11-26 11:19:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (3031, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:22:28', '9', '2023-11-26 11:22:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (3032, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:31:27', '9', '2023-11-26 11:31:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (3033, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:31:42', '9', '2023-11-26 11:31:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (3034, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:31:51', '9', '2023-11-26 11:31:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (3035, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:32:02', '9', '2023-11-26 11:32:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (3036, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:32:10', '9', '2023-11-26 11:32:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (3037, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:33:54', '9', '2023-11-26 11:33:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (3038, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:34:07', '9', '2023-11-26 11:34:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (3039, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:34:15', '9', '2023-11-26 11:34:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3040, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:39:42', '9', '2023-11-26 11:39:42', b'0', 0); +INSERT INTO `system_login_log` VALUES (3041, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:39:52', '9', '2023-11-26 11:39:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (3042, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 11:47:22', '9', '2023-11-26 11:47:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (3043, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:01:54', '9', '2023-11-26 12:01:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (3044, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:05:27', '9', '2023-11-26 12:05:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (3045, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:05:56', '9', '2023-11-26 12:05:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (3046, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:14:18', '9', '2023-11-26 12:14:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (3047, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:14:26', '9', '2023-11-26 12:14:26', b'0', 0); +INSERT INTO `system_login_log` VALUES (3048, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:15:04', '9', '2023-11-26 12:15:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (3049, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:16:47', '9', '2023-11-26 12:16:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (3050, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 12:25:03', '9', '2023-11-26 12:25:03', b'0', 0); +INSERT INTO `system_login_log` VALUES (3051, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 12:26:19', '9', '2023-11-26 12:26:19', b'0', 0); +INSERT INTO `system_login_log` VALUES (3052, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 15:58:43', '9', '2023-11-26 15:58:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (3053, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 16:46:58', '9', '2023-11-26 16:46:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (3054, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 20:57:30', '9', '2023-11-26 20:57:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (3055, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:07:22', '9', '2023-11-26 21:07:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (3056, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:08:17', '9', '2023-11-26 21:08:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (3057, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:08:30', '9', '2023-11-26 21:08:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (3058, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:08:40', '9', '2023-11-26 21:08:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (3059, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:08:50', '9', '2023-11-26 21:08:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (3060, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:12:23', '9', '2023-11-26 21:12:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (3061, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:12:35', '9', '2023-11-26 21:12:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (3062, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:12:45', '9', '2023-11-26 21:12:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (3063, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:13:07', '9', '2023-11-26 21:13:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (3064, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:17:55', '9', '2023-11-26 21:17:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (3065, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:21:15', '9', '2023-11-26 21:21:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3066, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:23:11', '9', '2023-11-26 21:23:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (3067, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:23:37', '9', '2023-11-26 21:23:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (3068, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:23:50', '9', '2023-11-26 21:23:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (3069, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:24:06', '9', '2023-11-26 21:24:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3070, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:24:13', '9', '2023-11-26 21:24:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (3071, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.3 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:25:17', '9', '2023-11-26 21:25:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (3072, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:25:29', '9', '2023-11-26 21:25:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (3073, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:25:41', '9', '2023-11-26 21:25:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (3074, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:30:51', '9', '2023-11-26 21:30:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (3075, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:31:57', '9', '2023-11-26 21:31:57', b'0', 0); +INSERT INTO `system_login_log` VALUES (3076, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:33:54', '9', '2023-11-26 21:33:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (3077, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:34:15', '9', '2023-11-26 21:34:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3078, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:36:01', '9', '2023-11-26 21:36:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (3079, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:36:11', '9', '2023-11-26 21:36:11', b'0', 0); +INSERT INTO `system_login_log` VALUES (3080, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:36:33', '9', '2023-11-26 21:36:33', b'0', 0); +INSERT INTO `system_login_log` VALUES (3081, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-26 21:36:49', '9', '2023-11-26 21:36:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (3082, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:36:58', '9', '2023-11-26 21:36:58', b'0', 0); +INSERT INTO `system_login_log` VALUES (3083, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:41:30', '9', '2023-11-26 21:41:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (3084, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:43:43', '9', '2023-11-26 21:43:43', b'0', 0); +INSERT INTO `system_login_log` VALUES (3085, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-26 21:45:14', '9', '2023-11-26 21:45:14', b'0', 0); +INSERT INTO `system_login_log` VALUES (3086, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-28 10:54:51', '9', '2023-11-28 10:54:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (3087, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 10:55:04', '9', '2023-11-28 10:55:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (3088, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:01:41', '9', '2023-11-28 11:01:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (3089, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:05:08', '9', '2023-11-28 11:05:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (3090, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:07:50', '9', '2023-11-28 11:07:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (3091, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:10:27', '9', '2023-11-28 11:10:27', b'0', 0); +INSERT INTO `system_login_log` VALUES (3092, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:15:59', '9', '2023-11-28 11:15:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (3093, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:46:08', '9', '2023-11-28 11:46:08', b'0', 0); +INSERT INTO `system_login_log` VALUES (3094, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 11:59:35', '9', '2023-11-28 11:59:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (3095, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-28 12:01:22', '9', '2023-11-28 12:01:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (3096, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-29 14:05:20', '9', '2023-11-29 14:05:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (3097, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-29 14:05:51', '9', '2023-11-29 14:05:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (3098, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-29 14:06:55', '9', '2023-11-29 14:06:55', b'0', 0); +INSERT INTO `system_login_log` VALUES (3099, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 webview/', '9', '2023-11-29 14:08:02', '9', '2023-11-29 14:08:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (3100, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:10:49', '9', '2023-11-29 14:10:49', b'0', 0); +INSERT INTO `system_login_log` VALUES (3101, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:21:32', '9', '2023-11-29 14:21:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (3102, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:24:30', '9', '2023-11-29 14:24:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (3103, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:35:06', '9', '2023-11-29 14:35:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3104, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:48:04', '9', '2023-11-29 14:48:04', b'0', 0); +INSERT INTO `system_login_log` VALUES (3105, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:49:36', '9', '2023-11-29 14:49:36', b'0', 0); +INSERT INTO `system_login_log` VALUES (3106, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:50:17', '9', '2023-11-29 14:50:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (3107, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 14:50:24', '9', '2023-11-29 14:50:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (3108, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:00:13', '9', '2023-11-29 15:00:13', b'0', 0); +INSERT INTO `system_login_log` VALUES (3109, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:11:21', '9', '2023-11-29 15:11:21', b'0', 0); +INSERT INTO `system_login_log` VALUES (3110, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:15:16', '9', '2023-11-29 15:15:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (3111, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:20:24', '9', '2023-11-29 15:20:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (3112, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:21:40', '9', '2023-11-29 15:21:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (3113, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:38:15', '9', '2023-11-29 15:38:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3114, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:39:06', '9', '2023-11-29 15:39:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3115, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:43:54', '9', '2023-11-29 15:43:54', b'0', 0); +INSERT INTO `system_login_log` VALUES (3116, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:45:45', '9', '2023-11-29 15:45:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (3117, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 15:57:40', '9', '2023-11-29 15:57:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (3118, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 16:00:59', '9', '2023-11-29 16:00:59', b'0', 0); +INSERT INTO `system_login_log` VALUES (3119, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 16:11:30', '9', '2023-11-29 16:11:30', b'0', 0); +INSERT INTO `system_login_log` VALUES (3120, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-29 16:16:52', '9', '2023-11-29 16:16:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (3121, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 14:22:32', '9', '2023-11-30 14:22:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (3122, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 14:28:46', '9', '2023-11-30 14:28:46', b'0', 0); +INSERT INTO `system_login_log` VALUES (3123, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 15:49:52', '9', '2023-11-30 15:49:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (3124, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 15:50:05', '9', '2023-11-30 15:50:05', b'0', 0); +INSERT INTO `system_login_log` VALUES (3125, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 16:00:15', '9', '2023-11-30 16:00:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3126, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 16:04:06', '9', '2023-11-30 16:04:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3127, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 16:50:28', '9', '2023-11-30 16:50:28', b'0', 0); +INSERT INTO `system_login_log` VALUES (3128, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 17:08:52', '9', '2023-11-30 17:08:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (3129, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-11-30 17:13:37', '9', '2023-11-30 17:13:37', b'0', 0); +INSERT INTO `system_login_log` VALUES (3130, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-01 10:00:51', '9', '2023-12-01 10:00:51', b'0', 0); +INSERT INTO `system_login_log` VALUES (3131, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-01 10:27:56', '9', '2023-12-01 10:27:56', b'0', 0); +INSERT INTO `system_login_log` VALUES (3132, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-02 09:50:15', NULL, '2023-12-02 09:50:15', b'0', 0); +INSERT INTO `system_login_log` VALUES (3133, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '1', '2023-12-02 09:52:32', '1', '2023-12-02 09:52:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (3134, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-02 09:52:45', NULL, '2023-12-02 09:52:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (3135, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-02 15:13:01', '9', '2023-12-02 15:13:01', b'0', 0); +INSERT INTO `system_login_log` VALUES (3136, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-02 15:37:34', '9', '2023-12-02 15:37:34', b'0', 0); +INSERT INTO `system_login_log` VALUES (3137, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-02 16:33:00', '9', '2023-12-02 16:33:00', b'0', 0); +INSERT INTO `system_login_log` VALUES (3138, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-02 16:45:44', '9', '2023-12-02 16:45:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (3139, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-02 16:46:17', '9', '2023-12-02 16:46:17', b'0', 0); +INSERT INTO `system_login_log` VALUES (3140, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-03 17:15:39', NULL, '2023-12-03 17:15:39', b'0', 0); +INSERT INTO `system_login_log` VALUES (3141, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-04 09:39:35', '9', '2023-12-04 09:39:35', b'0', 0); +INSERT INTO `system_login_log` VALUES (3142, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-04 10:37:02', '9', '2023-12-04 10:37:02', b'0', 0); +INSERT INTO `system_login_log` VALUES (3143, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-04 10:52:06', '9', '2023-12-04 10:52:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3144, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-04 11:01:41', '9', '2023-12-04 11:01:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (3145, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-04 15:05:31', '9', '2023-12-04 15:05:31', b'0', 0); +INSERT INTO `system_login_log` VALUES (3146, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '1', '2023-12-08 09:43:10', '1', '2023-12-08 09:43:10', b'0', 0); +INSERT INTO `system_login_log` VALUES (3147, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-08 09:43:16', NULL, '2023-12-08 09:43:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (3148, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2023-12-08 10:07:32', NULL, '2023-12-08 10:07:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (3149, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-08 10:10:18', '9', '2023-12-08 10:10:18', b'0', 0); +INSERT INTO `system_login_log` VALUES (3150, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '1', '2023-12-08 10:11:20', '1', '2023-12-08 10:11:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (3151, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-08 10:11:29', NULL, '2023-12-08 10:11:29', b'0', 0); +INSERT INTO `system_login_log` VALUES (3152, 200, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', '1', '2023-12-08 10:25:44', '1', '2023-12-08 10:25:44', b'0', 0); +INSERT INTO `system_login_log` VALUES (3153, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', NULL, '2023-12-08 10:25:52', NULL, '2023-12-08 10:25:52', b'0', 0); +INSERT INTO `system_login_log` VALUES (3154, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-08 10:28:07', '9', '2023-12-08 10:28:07', b'0', 0); +INSERT INTO `system_login_log` VALUES (3155, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-08 10:29:12', '9', '2023-12-08 10:29:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (3156, 104, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/17020043012858970 webdebugger port/41859 token/4a7d768a357b224d2a3f481558985ab3', NULL, '2023-12-08 11:05:24', NULL, '2023-12-08 11:05:24', b'0', 0); +INSERT INTO `system_login_log` VALUES (3157, 104, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/17020043012858970 webdebugger port/41859 token/4a7d768a357b224d2a3f481558985ab3', '9', '2023-12-08 11:16:20', '9', '2023-12-08 11:16:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (3158, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2023-12-08 11:18:50', '9', '2023-12-08 11:18:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (3159, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36', NULL, '2024-02-24 10:17:45', NULL, '2024-02-24 10:17:45', b'0', 0); +INSERT INTO `system_login_log` VALUES (3160, 101, '', 9, 1, '15136175246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', NULL, '2024-02-24 10:28:40', NULL, '2024-02-24 10:28:40', b'0', 0); +INSERT INTO `system_login_log` VALUES (3161, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', NULL, '2024-03-26 15:21:16', NULL, '2024-03-26 15:21:16', b'0', 0); +INSERT INTO `system_login_log` VALUES (3162, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', NULL, '2024-04-03 14:23:22', NULL, '2024-04-03 14:23:22', b'0', 0); +INSERT INTO `system_login_log` VALUES (3163, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', NULL, '2024-05-08 15:11:20', NULL, '2024-05-08 15:11:20', b'0', 0); +INSERT INTO `system_login_log` VALUES (3164, 101, '', 9, 1, '151****5246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2024-05-08 15:11:41', '9', '2024-05-08 15:11:41', b'0', 0); +INSERT INTO `system_login_log` VALUES (3165, 101, '', 9, 1, '151****5246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2024-05-08 15:16:50', '9', '2024-05-08 15:16:50', b'0', 0); +INSERT INTO `system_login_log` VALUES (3166, 101, '', 9, 1, '151****5246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2024-05-08 15:21:47', '9', '2024-05-08 15:21:47', b'0', 0); +INSERT INTO `system_login_log` VALUES (3167, 101, '', 9, 1, '151****5246', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2307260 MicroMessenger/8.0.5 Language/zh_CN webview/', '9', '2024-05-08 15:26:06', '9', '2024-05-08 15:26:06', b'0', 0); +INSERT INTO `system_login_log` VALUES (3168, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', NULL, '2024-05-21 10:26:32', NULL, '2024-05-21 10:26:32', b'0', 0); +INSERT INTO `system_login_log` VALUES (3169, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', NULL, '2024-05-29 16:20:12', NULL, '2024-05-29 16:20:12', b'0', 0); +INSERT INTO `system_login_log` VALUES (3170, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', NULL, '2024-06-01 13:15:23', NULL, '2024-06-01 13:15:23', b'0', 0); +INSERT INTO `system_login_log` VALUES (3171, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', NULL, '2024-06-01 13:24:32', NULL, '2024-06-01 13:24:32', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_account +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_account`; +CREATE TABLE `system_mail_account` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `mail` varchar(255) 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 COMMENT '密码', + `host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SMTP 服务器域名', + `port` int NOT NULL COMMENT 'SMTP 服务器端口', + `ssl_enable` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否开启 SSL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮箱账号表'; + +-- ---------------------------- +-- Records of system_mail_account +-- ---------------------------- +BEGIN; +INSERT INTO `system_mail_account` VALUES (1, '7684413@qq.com', '7684413@qq.com', '123457', '127.0.0.1', 8080, b'0', '1', '2023-01-25 17:39:52', '1', '2023-04-12 23:04:49', b'0'); +INSERT INTO `system_mail_account` VALUES (2, 'ydym_test@163.com', 'ydym_test@163.com', 'WBZTEINMIFVRYSOE', 'smtp.163.com', 465, b'1', '1', '2023-01-26 01:26:03', '1', '2023-04-12 22:39:38', b'0'); +INSERT INTO `system_mail_account` VALUES (3, '76854114@qq.com', '3335', '11234', 'yunai1.cn', 466, b'0', '1', '2023-01-27 15:06:38', '1', '2023-01-27 07:08:36', b'1'); +INSERT INTO `system_mail_account` VALUES (4, '7685413x@qq.com', '2', '3', '4', 5, b'1', '1', '2023-04-12 23:05:06', '1', '2023-04-12 15:05:11', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_log`; +CREATE TABLE `system_mail_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint DEFAULT NULL COMMENT '用户类型', + `to_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '接收邮箱地址', + `account_id` bigint NOT NULL COMMENT '邮箱账号编号', + `from_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发送邮箱地址', + `template_id` bigint NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '模版发送人名称', + `template_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件标题', + `template_content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件参数', + `send_status` tinyint NOT NULL DEFAULT '0' COMMENT '发送状态', + `send_time` datetime DEFAULT NULL COMMENT '发送时间', + `send_message_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发送返回的消息 ID', + `send_exception` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发送异常', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=354 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮件日志表'; + +-- ---------------------------- +-- Records of system_mail_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_template`; +CREATE TABLE `system_mail_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `account_id` bigint NOT NULL COMMENT '发送的邮箱账号编号', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发送人名称', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板标题', + `content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数数组', + `status` tinyint NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮件模版表'; + +-- ---------------------------- +-- Records of system_mail_template +-- ---------------------------- +BEGIN; +INSERT INTO `system_mail_template` VALUES (13, '后台用户短信登录', 'admin-sms-login', 1, '奥特曼', '你猜我猜', '

您的验证码是{code},名字是{name}

', '[\"code\",\"name\"]', 0, '3', '1', '2021-10-11 08:10:00', '1', '2023-01-26 23:22:05', b'0'); +INSERT INTO `system_mail_template` VALUES (14, '测试模版', 'test_01', 2, 'yshop', '一个标题', '

你是 {key01} 吗?


是的话,赶紧 {key02} 一下!

', '[\"key01\",\"key02\"]', 0, NULL, '1', '2023-01-26 01:27:40', '1', '2023-01-27 10:32:16', b'0'); +INSERT INTO `system_mail_template` VALUES (15, '3', '2', 2, '7', '4', '

45

', '[]', 1, '80', '1', '2023-01-27 15:50:35', '1', '2023-01-27 16:34:49', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_menu`; +CREATE TABLE `system_menu` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单名称', + `permission` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '权限标识', + `type` tinyint NOT NULL COMMENT '菜单类型', + `sort` int NOT NULL DEFAULT '0' COMMENT '显示顺序', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父菜单ID', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '路由地址', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '#' COMMENT '菜单图标', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '组件路径', + `component_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '组件名', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '菜单状态', + `visible` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否可见', + `keep_alive` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否缓存', + `always_show` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否总是显示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=2314 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单权限表'; + +-- ---------------------------- +-- Records of system_menu +-- ---------------------------- +BEGIN; +INSERT INTO `system_menu` VALUES (1, '系统管理', '', 1, 300, 0, '/system', 'system', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-05-17 10:32:57', b'0'); +INSERT INTO `system_menu` VALUES (2, '基础设施', '', 1, 200, 0, '/infra', 'monitor', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-05-17 10:33:07', b'0'); +INSERT INTO `system_menu` VALUES (5, 'OA 示例', '', 1, 40, 1185, 'oa', 'people', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-09-20 16:26:19', '1', '2023-05-10 09:47:14', b'1'); +INSERT INTO `system_menu` VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'user', 'system/user/index', 'SystemUser', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:31:59', b'0'); +INSERT INTO `system_menu` VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'peoples', 'system/role/index', 'SystemRole', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:33:59', b'0'); +INSERT INTO `system_menu` VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'tree-table', 'system/menu/index', 'SystemMenu', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:34:32', b'0'); +INSERT INTO `system_menu` VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'tree', 'system/dept/index', 'SystemDept', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:35:32', b'0'); +INSERT INTO `system_menu` VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'post', 'system/post/index', 'SystemPost', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:36:21', b'0'); +INSERT INTO `system_menu` VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'dict', 'system/dict/index', 'SystemDictType', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:36:45', b'0'); +INSERT INTO `system_menu` VALUES (106, '配置管理', '', 2, 6, 2, 'config', 'edit', 'infra/config/index', 'InfraConfig', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:31:17', b'0'); +INSERT INTO `system_menu` VALUES (107, '通知公告', '', 2, 8, 1, 'notice', 'message', 'system/notice/index', 'SystemNotice', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:45:06', b'0'); +INSERT INTO `system_menu` VALUES (108, '审计日志', '', 1, 9, 1, 'log', 'log', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (109, '令牌管理', '', 2, 2, 1261, 'token', 'online', 'system/oauth2/token/index', 'SystemTokenClient', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:47:41', b'0'); +INSERT INTO `system_menu` VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'job', 'infra/job/index', 'InfraJob', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:36:49', b'0'); +INSERT INTO `system_menu` VALUES (111, 'MySQL 监控', '', 2, 9, 2, 'druid', 'druid', 'infra/druid/index', 'InfraDruid', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:09:30', b'0'); +INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'server', 'infra/server/index', 'InfraAdminServer', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:34:08', b'0'); +INSERT INTO `system_menu` VALUES (113, 'Redis 监控', '', 2, 10, 2, 'redis', 'redis', 'infra/redis/index', 'InfraRedis', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:33:30', b'0'); +INSERT INTO `system_menu` VALUES (114, '表单构建', 'infra:build:list', 2, 2, 2, 'build', 'build', 'infra/build/index', 'InfraBuild', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:06:12', b'0'); +INSERT INTO `system_menu` VALUES (115, '代码生成', 'infra:codegen:query', 2, 1, 2, 'codegen', 'code', 'infra/codegen/index', 'InfraCodegen', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:02:24', b'0'); +INSERT INTO `system_menu` VALUES (116, '系统接口', 'infra:swagger:list', 2, 3, 2, 'swagger', 'swagger', 'infra/swagger/index', 'InfraSwagger', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:11:28', b'0'); +INSERT INTO `system_menu` VALUES (500, '操作日志', '', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 'SystemOperateLog', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:47:00', b'0'); +INSERT INTO `system_menu` VALUES (501, '登录日志', '', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 'SystemLoginLog', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:46:18', b'0'); +INSERT INTO `system_menu` VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1002, '用户新增', 'system:user:create', 3, 2, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1003, '用户修改', 'system:user:update', 3, 3, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1004, '用户删除', 'system:user:delete', 3, 4, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1007, '重置密码', 'system:user:update-password', 3, 7, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1009, '角色新增', 'system:role:create', 3, 2, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1010, '角色修改', 'system:role:update', 3, 3, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1011, '角色删除', 'system:role:delete', 3, 4, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1014, '菜单新增', 'system:menu:create', 3, 2, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1015, '菜单修改', 'system:menu:update', 3, 3, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1016, '菜单删除', 'system:menu:delete', 3, 4, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1018, '部门新增', 'system:dept:create', 3, 2, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1019, '部门修改', 'system:dept:update', 3, 3, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1020, '部门删除', 'system:dept:delete', 3, 4, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1022, '岗位新增', 'system:post:create', 3, 2, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1023, '岗位修改', 'system:post:update', 3, 3, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1024, '岗位删除', 'system:post:delete', 3, 4, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1027, '字典新增', 'system:dict:create', 3, 2, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1028, '字典修改', 'system:dict:update', 3, 3, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1029, '字典删除', 'system:dict:delete', 3, 4, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1031, '配置查询', 'infra:config:query', 3, 1, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1032, '配置新增', 'infra:config:create', 3, 2, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1033, '配置修改', 'infra:config:update', 3, 3, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1034, '配置删除', 'infra:config:delete', 3, 4, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1035, '配置导出', 'infra:config:export', 3, 5, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1037, '公告新增', 'system:notice:create', 3, 2, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1038, '公告修改', 'system:notice:update', 3, 3, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1039, '公告删除', 'system:notice:delete', 3, 4, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1040, '操作查询', 'system:operate-log:query', 3, 1, 500, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1042, '日志导出', 'system:operate-log:export', 3, 2, 500, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1043, '登录查询', 'system:login-log:query', 3, 1, 501, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1045, '日志导出', 'system:login-log:export', 3, 3, 501, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1046, '令牌列表', 'system:oauth2-token:page', 3, 1, 109, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:42', b'0'); +INSERT INTO `system_menu` VALUES (1048, '令牌删除', 'system:oauth2-token:delete', 3, 2, 109, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:53', b'0'); +INSERT INTO `system_menu` VALUES (1050, '任务新增', 'infra:job:create', 3, 2, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1051, '任务修改', 'infra:job:update', 3, 3, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1052, '任务删除', 'infra:job:delete', 3, 4, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1053, '状态修改', 'infra:job:update', 3, 5, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1054, '任务导出', 'infra:job:export', 3, 7, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1056, '生成修改', 'infra:codegen:update', 3, 2, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1057, '生成删除', 'infra:codegen:delete', 3, 3, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1058, '导入代码', 'infra:codegen:create', 3, 2, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1059, '预览代码', 'infra:codegen:preview', 3, 4, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1060, '生成代码', 'infra:codegen:download', 3, 5, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-06 17:53:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-06 17:56:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1065, '设置用户角色', 'system:permission:assign-user-role', 3, 8, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-07 10:23:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1066, '获得 Redis 监控信息', 'infra:redis:get-monitor-info', 3, 1, 113, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-26 01:02:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1067, '获得 Redis Key 列表', 'infra:redis:get-key-list', 3, 2, 113, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-26 01:02:52', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1070, '代码生成示例', 'infra:test-demo:query', 2, 1, 2, 'test-demo', 'validCode', 'infra/testDemo/index', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2023-05-17 10:35:45', b'1'); +INSERT INTO `system_menu` VALUES (1071, '测试示例表创建', 'infra:test-demo:create', 3, 1, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2023-05-17 10:35:27', b'1'); +INSERT INTO `system_menu` VALUES (1072, '测试示例表更新', 'infra:test-demo:update', 3, 2, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2023-05-17 10:35:32', b'1'); +INSERT INTO `system_menu` VALUES (1073, '测试示例表删除', 'infra:test-demo:delete', 3, 3, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2023-05-17 10:35:37', b'1'); +INSERT INTO `system_menu` VALUES (1074, '测试示例表导出', 'infra:test-demo:export', 3, 4, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2023-05-17 10:35:40', b'1'); +INSERT INTO `system_menu` VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-07 13:03:10', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'table', 'infra/dbDoc/index', 'InfraDBDoc', 0, b'1', b'1', b'1', '', '2021-02-08 01:41:47', '1', '2024-06-01 14:26:46', b'1'); +INSERT INTO `system_menu` VALUES (1077, '监控平台', '', 2, 13, 2, 'skywalking', 'eye-open', 'infra/skywalking/index', 'InfraSkyWalking', 0, b'1', b'1', b'1', '', '2021-02-08 20:41:31', '1', '2023-06-29 13:39:57', b'1'); +INSERT INTO `system_menu` VALUES (1078, '访问日志', '', 2, 1, 1083, 'api-access-log', 'log', 'infra/apiAccessLog/index', 'InfraApiAccessLog', 0, b'1', b'1', b'1', '', '2021-02-26 01:32:59', '1', '2023-04-08 10:31:34', b'0'); +INSERT INTO `system_menu` VALUES (1082, '日志导出', 'infra:api-access-log:export', 3, 2, 1078, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1083, 'API 日志', '', 2, 8, 2, 'log', 'log', NULL, NULL, 0, b'1', b'1', b'1', '', '2021-02-26 02:18:24', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1084, '错误日志', 'infra:api-error-log:query', 2, 2, 1083, 'api-error-log', 'log', 'infra/apiErrorLog/index', 'InfraApiErrorLog', 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2023-04-08 10:32:25', b'0'); +INSERT INTO `system_menu` VALUES (1085, '日志处理', 'infra:api-error-log:update-status', 3, 2, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1086, '日志导出', 'infra:api-error-log:export', 3, 3, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1087, '任务查询', 'infra:job:query', 3, 1, 110, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:26:19', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1088, '日志查询', 'infra:api-access-log:query', 3, 1, 1078, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:28:04', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1089, '日志查询', 'infra:api-error-log:query', 3, 1, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:29:09', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1090, '文件列表', '', 2, 5, 1243, 'file', 'upload', 'infra/file/index', 'InfraFile', 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '1', '2023-04-08 09:21:31', b'0'); +INSERT INTO `system_menu` VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1092, '文件删除', 'infra:file:delete', 3, 4, 1090, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1093, '短信管理', '', 1, 11, 1, 'sms', 'validCode', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-04-05 01:10:16', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1094, '短信渠道', '', 2, 0, 1093, 'sms-channel', 'phone', 'system/sms/channel/index', 'SystemSmsChannel', 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '1', '2023-04-08 08:50:41', b'0'); +INSERT INTO `system_menu` VALUES (1095, '短信渠道查询', 'system:sms-channel:query', 3, 1, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1096, '短信渠道创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1097, '短信渠道更新', 'system:sms-channel:update', 3, 3, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1098, '短信渠道删除', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1100, '短信模板', '', 2, 1, 1093, 'sms-template', 'phone', 'system/sms/template/index', 'SystemSmsTemplate', 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '1', '2023-04-08 08:50:50', b'0'); +INSERT INTO `system_menu` VALUES (1101, '短信模板查询', 'system:sms-template:query', 3, 1, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1102, '短信模板创建', 'system:sms-template:create', 3, 2, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1103, '短信模板更新', 'system:sms-template:update', 3, 3, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1104, '短信模板删除', 'system:sms-template:delete', 3, 4, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1105, '短信模板导出', 'system:sms-template:export', 3, 5, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1106, '发送测试短信', 'system:sms-template:send-sms', 3, 6, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-04-11 00:26:40', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1107, '短信日志', '', 2, 2, 1093, 'sms-log', 'phone', 'system/sms/log/index', 'SystemSmsLog', 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '1', '2023-04-08 08:50:58', b'0'); +INSERT INTO `system_menu` VALUES (1108, '短信日志查询', 'system:sms-log:query', 3, 1, 1107, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1109, '短信日志导出', 'system:sms-log:export', 3, 5, 1107, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1110, '错误码管理', '', 2, 12, 1, 'error-code', 'code', 'system/errorCode/index', 'SystemErrorCode', 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '1', '2023-04-08 09:01:15', b'0'); +INSERT INTO `system_menu` VALUES (1111, '错误码查询', 'system:error-code:query', 3, 1, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1112, '错误码创建', 'system:error-code:create', 3, 2, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1113, '错误码更新', 'system:error-code:update', 3, 3, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1114, '错误码删除', 'system:error-code:delete', 3, 4, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1115, '错误码导出', 'system:error-code:export', 3, 5, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1117, '支付管理', '', 1, 90, 0, '/pay', 'money', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2023-05-17 10:33:35', b'0'); +INSERT INTO `system_menu` VALUES (1118, '请假查询', '', 2, 0, 5, 'leave', 'user', 'bpm/oa/leave/index', 'BpmOALeave', 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2023-05-10 09:47:07', b'1'); +INSERT INTO `system_menu` VALUES (1119, '请假申请查询', 'bpm:oa-leave:query', 3, 1, 1118, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2023-05-10 09:46:52', b'1'); +INSERT INTO `system_menu` VALUES (1120, '请假申请创建', 'bpm:oa-leave:create', 3, 2, 1118, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2023-05-10 09:46:58', b'1'); +INSERT INTO `system_menu` VALUES (1126, '应用信息', '', 2, 1, 1117, 'app', 'table', 'pay/app/index', 'PayMerchant', 0, b'1', b'1', b'1', '', '2021-11-10 01:13:30', '1', '2023-07-14 15:12:54', b'1'); +INSERT INTO `system_menu` VALUES (1127, '支付应用信息查询', 'pay:app:query', 3, 1, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2023-07-14 15:10:58', b'1'); +INSERT INTO `system_menu` VALUES (1128, '支付应用信息创建', 'pay:app:create', 3, 2, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2023-07-14 15:11:02', b'1'); +INSERT INTO `system_menu` VALUES (1129, '支付应用信息更新', 'pay:app:update', 3, 3, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2023-07-14 15:12:39', b'1'); +INSERT INTO `system_menu` VALUES (1130, '支付应用信息删除', 'pay:app:delete', 3, 4, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2023-07-14 15:12:44', b'1'); +INSERT INTO `system_menu` VALUES (1131, '支付应用信息导出', 'pay:app:export', 3, 5, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2023-07-14 15:12:48', b'1'); +INSERT INTO `system_menu` VALUES (1132, '秘钥解析', 'pay:channel:parsing', 3, 6, 1129, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2023-07-14 15:11:37', b'1'); +INSERT INTO `system_menu` VALUES (1133, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2023-07-14 15:11:17', b'1'); +INSERT INTO `system_menu` VALUES (1134, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2023-07-14 15:11:21', b'1'); +INSERT INTO `system_menu` VALUES (1135, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2023-07-14 15:11:24', b'1'); +INSERT INTO `system_menu` VALUES (1136, '支付商户信息删除', 'pay:merchant:delete', 3, 4, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2023-07-14 15:11:28', b'1'); +INSERT INTO `system_menu` VALUES (1137, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2023-07-14 15:11:32', b'1'); +INSERT INTO `system_menu` VALUES (1138, '租户列表', '', 2, 0, 1224, 'list', 'peoples', 'system/tenant/index', 'SystemTenant', 0, b'1', b'1', b'1', '', '2021-12-14 12:31:43', '1', '2023-05-17 10:46:14', b'1'); +INSERT INTO `system_menu` VALUES (1139, '租户查询', 'system:tenant:query', 3, 1, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2023-05-17 10:44:58', b'1'); +INSERT INTO `system_menu` VALUES (1140, '租户创建', 'system:tenant:create', 3, 2, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2023-05-17 10:45:08', b'1'); +INSERT INTO `system_menu` VALUES (1141, '租户更新', 'system:tenant:update', 3, 3, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2023-05-17 10:46:02', b'1'); +INSERT INTO `system_menu` VALUES (1142, '租户删除', 'system:tenant:delete', 3, 4, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2023-05-17 10:46:05', b'1'); +INSERT INTO `system_menu` VALUES (1143, '租户导出', 'system:tenant:export', 3, 5, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2023-05-17 10:46:09', b'1'); +INSERT INTO `system_menu` VALUES (1150, '秘钥解析', '', 3, 6, 1129, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2023-07-14 15:11:42', b'1'); +INSERT INTO `system_menu` VALUES (1161, '退款订单', '', 2, 3, 1117, 'refund', 'order', 'pay/refund/index', 'PayRefund', 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '1', '2023-07-14 15:13:55', b'1'); +INSERT INTO `system_menu` VALUES (1162, '退款订单查询', 'pay:refund:query', 3, 1, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2023-07-14 15:13:31', b'1'); +INSERT INTO `system_menu` VALUES (1163, '退款订单创建', 'pay:refund:create', 3, 2, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2023-07-14 15:13:35', b'1'); +INSERT INTO `system_menu` VALUES (1164, '退款订单更新', 'pay:refund:update', 3, 3, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2023-07-14 15:13:40', b'1'); +INSERT INTO `system_menu` VALUES (1165, '退款订单删除', 'pay:refund:delete', 3, 4, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2023-07-14 15:13:44', b'1'); +INSERT INTO `system_menu` VALUES (1166, '退款订单导出', 'pay:refund:export', 3, 5, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2023-07-14 15:13:50', b'1'); +INSERT INTO `system_menu` VALUES (1173, '支付订单', '', 2, 2, 1117, 'order', 'pay', 'pay/order/index', 'PayOrder', 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '1', '2023-07-14 15:13:22', b'1'); +INSERT INTO `system_menu` VALUES (1174, '支付订单查询', 'pay:order:query', 3, 1, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2023-07-14 15:13:00', b'1'); +INSERT INTO `system_menu` VALUES (1175, '支付订单创建', 'pay:order:create', 3, 2, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2023-07-14 15:13:05', b'1'); +INSERT INTO `system_menu` VALUES (1176, '支付订单更新', 'pay:order:update', 3, 3, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2023-07-14 15:13:10', b'1'); +INSERT INTO `system_menu` VALUES (1177, '支付订单删除', 'pay:order:delete', 3, 4, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2023-07-14 15:13:13', b'1'); +INSERT INTO `system_menu` VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2023-07-14 15:13:18', b'1'); +INSERT INTO `system_menu` VALUES (1179, '商户信息', '', 2, 0, 1117, 'merchant', 'merchant', 'pay/merchant/index', 'PayApp', 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '1', '2023-07-14 15:10:51', b'1'); +INSERT INTO `system_menu` VALUES (1180, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '', '2023-07-14 15:10:19', b'1'); +INSERT INTO `system_menu` VALUES (1181, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '', '2023-07-14 15:10:29', b'1'); +INSERT INTO `system_menu` VALUES (1182, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '', '2023-07-14 15:10:36', b'1'); +INSERT INTO `system_menu` VALUES (1183, '支付商户信息删除', '', 3, 4, 1179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '', '2023-07-14 15:10:41', b'1'); +INSERT INTO `system_menu` VALUES (1184, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 09:01:44', '', '2023-07-14 15:10:46', b'1'); +INSERT INTO `system_menu` VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'tool', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:26:36', '103', '2023-05-10 10:00:17', b'1'); +INSERT INTO `system_menu` VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'nested', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2023-05-10 10:00:13', b'1'); +INSERT INTO `system_menu` VALUES (1187, '流程表单', '', 2, 0, 1186, 'form', 'form', 'bpm/form/index', 'BpmForm', 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 10:00:08', b'1'); +INSERT INTO `system_menu` VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 09:59:50', b'1'); +INSERT INTO `system_menu` VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 09:59:53', b'1'); +INSERT INTO `system_menu` VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 09:59:57', b'1'); +INSERT INTO `system_menu` VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 10:00:00', b'1'); +INSERT INTO `system_menu` VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-05-10 10:00:04', b'1'); +INSERT INTO `system_menu` VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'guide', 'bpm/model/index', 'BpmModel', 0, b'1', b'1', b'1', '1', '2021-12-31 23:24:58', '1', '2023-05-10 09:59:10', b'1'); +INSERT INTO `system_menu` VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2023-05-10 09:48:26', b'1'); +INSERT INTO `system_menu` VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2023-05-10 09:48:22', b'1'); +INSERT INTO `system_menu` VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2023-05-10 09:48:59', b'1'); +INSERT INTO `system_menu` VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2023-05-10 09:54:34', b'1'); +INSERT INTO `system_menu` VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2023-05-10 09:58:36', b'1'); +INSERT INTO `system_menu` VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2023-05-10 09:58:46', b'1'); +INSERT INTO `system_menu` VALUES (1200, '任务管理', '', 1, 20, 1185, 'task', 'cascader', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2023-05-10 09:48:09', b'1'); +INSERT INTO `system_menu` VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'people', 'bpm/processInstance/index', 'BpmProcessInstance', 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2023-05-10 09:48:04', b'1'); +INSERT INTO `system_menu` VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2023-05-10 09:47:53', b'1'); +INSERT INTO `system_menu` VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'eye-open', 'bpm/task/todo/index', 'BpmTodoTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2023-05-10 09:47:47', b'1'); +INSERT INTO `system_menu` VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'eye', 'bpm/task/done/index', 'BpmDoneTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2023-05-10 09:47:25', b'1'); +INSERT INTO `system_menu` VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'people', 'bpm/group/index', 'BpmUserGroup', 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '1', '2023-05-10 09:59:44', b'1'); +INSERT INTO `system_menu` VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2023-05-10 09:59:18', b'1'); +INSERT INTO `system_menu` VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2023-05-10 09:59:23', b'1'); +INSERT INTO `system_menu` VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2023-05-10 09:59:26', b'1'); +INSERT INTO `system_menu` VALUES (1213, '用户组删除', 'bpm:user-group:delete', 3, 4, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2023-05-10 09:59:31', b'1'); +INSERT INTO `system_menu` VALUES (1215, '流程定义查询', 'bpm:process-definition:query', 3, 10, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:21:43', '1', '2023-05-10 09:58:51', b'1'); +INSERT INTO `system_menu` VALUES (1216, '流程任务分配规则查询', 'bpm:task-assign-rule:query', 3, 20, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:26:53', '1', '2023-05-10 09:58:55', b'1'); +INSERT INTO `system_menu` VALUES (1217, '流程任务分配规则创建', 'bpm:task-assign-rule:create', 3, 21, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:28:15', '1', '2023-05-10 09:58:59', b'1'); +INSERT INTO `system_menu` VALUES (1218, '流程任务分配规则更新', 'bpm:task-assign-rule:update', 3, 22, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:28:41', '1', '2023-05-10 09:59:04', b'1'); +INSERT INTO `system_menu` VALUES (1219, '流程实例的创建', 'bpm:process-instance:create', 3, 2, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:36:15', '1', '2023-05-10 09:47:56', b'1'); +INSERT INTO `system_menu` VALUES (1220, '流程实例的取消', 'bpm:process-instance:cancel', 3, 3, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:36:33', '1', '2023-05-10 09:48:00', b'1'); +INSERT INTO `system_menu` VALUES (1221, '流程任务的查询', 'bpm:task:query', 3, 1, 1207, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:38:52', '1', '2023-05-10 09:47:32', b'1'); +INSERT INTO `system_menu` VALUES (1222, '流程任务的更新', 'bpm:task:update', 3, 2, 1207, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:39:24', '1', '2023-05-10 09:47:41', b'1'); +INSERT INTO `system_menu` VALUES (1224, '租户管理', '', 2, 0, 1, 'tenant', 'peoples', NULL, NULL, 1, b'0', b'1', b'0', '1', '2022-02-20 01:41:13', '1', '2023-05-17 10:46:42', b'1'); +INSERT INTO `system_menu` VALUES (1225, '租户套餐', '', 2, 0, 1224, 'package', 'eye', 'system/tenantPackage/index', 'SystemTenantPackage', 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '1', '2023-05-17 10:46:38', b'1'); +INSERT INTO `system_menu` VALUES (1226, '租户套餐查询', 'system:tenant-package:query', 3, 1, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2023-05-17 10:46:21', b'1'); +INSERT INTO `system_menu` VALUES (1227, '租户套餐创建', 'system:tenant-package:create', 3, 2, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2023-05-17 10:46:24', b'1'); +INSERT INTO `system_menu` VALUES (1228, '租户套餐更新', 'system:tenant-package:update', 3, 3, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2023-05-17 10:46:28', b'1'); +INSERT INTO `system_menu` VALUES (1229, '租户套餐删除', 'system:tenant-package:delete', 3, 4, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2023-05-17 10:46:34', b'1'); +INSERT INTO `system_menu` VALUES (1237, '文件配置', '', 2, 0, 1243, 'file-config', 'config', 'infra/fileConfig/index', 'InfraFileConfig', 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '1', '2023-04-08 09:16:05', b'0'); +INSERT INTO `system_menu` VALUES (1238, '文件配置查询', 'infra:file-config:query', 3, 1, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1239, '文件配置创建', 'infra:file-config:create', 3, 2, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1240, '文件配置更新', 'infra:file-config:update', 3, 3, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1243, '文件管理', '', 2, 5, 2, 'file', 'download', NULL, '', 0, b'1', b'1', b'1', '1', '2022-03-16 23:47:40', '1', '2023-02-10 13:47:46', b'0'); +INSERT INTO `system_menu` VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'education', 'system/sensitiveWord/index', 'SystemSensitiveWord', 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '1', '2023-04-08 09:00:40', b'0'); +INSERT INTO `system_menu` VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` VALUES (1255, '数据源配置', '', 2, 1, 2, 'data-source-config', 'rate', 'infra/dataSourceConfig/index', 'InfraDataSourceConfig', 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '1', '2023-04-08 09:05:21', b'0'); +INSERT INTO `system_menu` VALUES (1256, '数据源配置查询', 'infra:data-source-config:query', 3, 1, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` VALUES (1257, '数据源配置创建', 'infra:data-source-config:create', 3, 2, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` VALUES (1258, '数据源配置更新', 'infra:data-source-config:update', 3, 3, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` VALUES (1259, '数据源配置删除', 'infra:data-source-config:delete', 3, 4, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` VALUES (1260, '数据源配置导出', 'infra:data-source-config:export', 3, 5, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` VALUES (1261, 'OAuth 2.0', '', 1, 10, 1, 'oauth2', 'people', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-05-09 23:38:17', '1', '2022-05-11 23:51:46', b'0'); +INSERT INTO `system_menu` VALUES (1263, '应用管理', '', 2, 0, 1261, 'oauth2/application', 'tool', 'system/oauth2/client/index', 'SystemOAuth2Client', 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2023-04-08 08:47:31', b'0'); +INSERT INTO `system_menu` VALUES (1264, '客户端查询', 'system:oauth2-client:query', 3, 1, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:06', b'0'); +INSERT INTO `system_menu` VALUES (1265, '客户端创建', 'system:oauth2-client:create', 3, 2, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:23', b'0'); +INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client:update', 3, 3, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:28', b'0'); +INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); +INSERT INTO `system_menu` VALUES (1281, '报表管理', '', 1, 40, 0, '/report', 'chart', NULL, NULL, 1, b'0', b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2023-05-10 10:35:17', b'1'); +INSERT INTO `system_menu` VALUES (1282, '报表设计器', '', 2, 1, 1281, 'jimu-report', 'example', 'report/jmreport/index', 'GoView', 0, b'1', b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2023-05-10 10:34:51', b'1'); +INSERT INTO `system_menu` VALUES (2000, '商城中心', '', 1, 60, 0, '/mall', 'merchant', NULL, NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '1', '2023-06-02 11:29:46', b'0'); +INSERT INTO `system_menu` VALUES (2002, '商品分类', '', 2, 2, 2174, 'category', 'ep:chat-dot-round', 'mall/product/category/index', 'ProductCategory', 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '1', '2023-06-08 09:57:25', b'0'); +INSERT INTO `system_menu` VALUES (2003, '分类查询', 'product:category:query', 3, 1, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` VALUES (2004, '分类创建', 'product:category:create', 3, 2, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` VALUES (2005, '分类更新', 'product:category:update', 3, 3, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` VALUES (2006, '分类删除', 'product:category:delete', 3, 4, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` VALUES (2008, '商品品牌', '', 2, 1, 2174, 'brand', 'ep:brush', 'mall/product/brand/index', 'ProductBrand', 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '1', '2023-09-04 18:31:05', b'1'); +INSERT INTO `system_menu` VALUES (2009, '品牌查询', 'product:brand:query', 3, 1, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2023-09-04 18:30:46', b'1'); +INSERT INTO `system_menu` VALUES (2010, '品牌创建', 'product:brand:create', 3, 2, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2023-09-04 18:30:51', b'1'); +INSERT INTO `system_menu` VALUES (2011, '品牌更新', 'product:brand:update', 3, 3, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2023-09-04 18:30:56', b'1'); +INSERT INTO `system_menu` VALUES (2012, '品牌删除', 'product:brand:delete', 3, 4, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2023-09-04 18:31:00', b'1'); +INSERT INTO `system_menu` VALUES (2014, '商品列表', '', 2, 3, 2000, 'spu', 'list', 'mall/product/spu/index', 'ProductSpu', 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '1', '2023-06-02 11:27:04', b'1'); +INSERT INTO `system_menu` VALUES (2015, '商品查询', 'product:spu:query', 3, 1, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2023-06-02 11:26:45', b'1'); +INSERT INTO `system_menu` VALUES (2016, '商品创建', 'product:spu:create', 3, 2, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2023-06-02 11:26:49', b'1'); +INSERT INTO `system_menu` VALUES (2017, '商品更新', 'product:spu:update', 3, 3, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2023-06-02 11:26:54', b'1'); +INSERT INTO `system_menu` VALUES (2018, '商品删除', 'product:spu:delete', 3, 4, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2023-06-02 11:26:59', b'1'); +INSERT INTO `system_menu` VALUES (2019, '商品属性', '', 2, 3, 2000, 'property', 'eye', 'mall/product/property/index', 'ProductProperty', 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '1', '2023-06-02 11:27:25', b'1'); +INSERT INTO `system_menu` VALUES (2020, '规格查询', 'product:property:query', 3, 1, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2023-06-02 11:27:11', b'1'); +INSERT INTO `system_menu` VALUES (2021, '规格创建', 'product:property:create', 3, 2, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2023-06-02 11:27:15', b'1'); +INSERT INTO `system_menu` VALUES (2022, '规格更新', 'product:property:update', 3, 3, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2023-06-02 11:27:18', b'1'); +INSERT INTO `system_menu` VALUES (2023, '规格删除', 'product:property:delete', 3, 4, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2023-06-02 11:27:21', b'1'); +INSERT INTO `system_menu` VALUES (2025, 'Banner管理', '', 2, 100, 2000, 'banner', '', 'mall/market/banner/index', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '1', '2023-05-17 10:05:22', b'1'); +INSERT INTO `system_menu` VALUES (2026, 'Banner查询', 'market:banner:query', 3, 1, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2023-05-17 10:05:03', b'1'); +INSERT INTO `system_menu` VALUES (2027, 'Banner创建', 'market:banner:create', 3, 2, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2023-05-17 10:05:07', b'1'); +INSERT INTO `system_menu` VALUES (2028, 'Banner更新', 'market:banner:update', 3, 3, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2023-05-17 10:05:12', b'1'); +INSERT INTO `system_menu` VALUES (2029, 'Banner删除', 'market:banner:delete', 3, 4, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2023-05-17 10:05:18', b'1'); +INSERT INTO `system_menu` VALUES (2030, '营销中心', '', 1, 70, 0, '/promotion', 'rate', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-10-31 21:25:09', '1', '2023-05-10 10:32:42', b'1'); +INSERT INTO `system_menu` VALUES (2032, '优惠劵', '', 2, 2, 2030, 'coupon-template', 'textarea', 'mall/promotion/couponTemplate/index', 'PromotionCouponTemplate', 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '1', '2023-05-10 10:31:51', b'1'); +INSERT INTO `system_menu` VALUES (2033, '优惠劵模板查询', 'promotion:coupon-template:query', 3, 1, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2023-05-10 10:31:36', b'1'); +INSERT INTO `system_menu` VALUES (2034, '优惠劵模板创建', 'promotion:coupon-template:create', 3, 2, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2023-05-10 10:31:39', b'1'); +INSERT INTO `system_menu` VALUES (2035, '优惠劵模板更新', 'promotion:coupon-template:update', 3, 3, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2023-05-10 10:31:42', b'1'); +INSERT INTO `system_menu` VALUES (2036, '优惠劵模板删除', 'promotion:coupon-template:delete', 3, 4, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2023-05-10 10:31:48', b'1'); +INSERT INTO `system_menu` VALUES (2038, '会员优惠劵', '', 2, 2, 2030, 'coupon', '', 'mall/promotion/coupon/index', 'PromotionCoupon', 0, b'0', b'1', b'1', '', '2022-11-03 23:21:31', '1', '2023-05-10 10:31:31', b'1'); +INSERT INTO `system_menu` VALUES (2039, '优惠劵查询', 'promotion:coupon:query', 3, 1, 2038, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-03 23:21:31', '', '2023-05-10 10:31:24', b'1'); +INSERT INTO `system_menu` VALUES (2040, '优惠劵删除', 'promotion:coupon:delete', 3, 4, 2038, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-03 23:21:31', '', '2023-05-10 10:31:27', b'1'); +INSERT INTO `system_menu` VALUES (2041, '满减送活动', '', 2, 10, 2030, 'reward-activity', 'radio', 'mall/promotion/rewardActivity/index', 'PromotionRewardActivity', 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '1', '2023-05-10 10:30:46', b'1'); +INSERT INTO `system_menu` VALUES (2042, '满减送活动查询', 'promotion:reward-activity:query', 3, 1, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '', '2023-05-10 10:30:32', b'1'); +INSERT INTO `system_menu` VALUES (2043, '满减送活动创建', 'promotion:reward-activity:create', 3, 2, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '', '2023-05-10 10:30:36', b'1'); +INSERT INTO `system_menu` VALUES (2044, '满减送活动更新', 'promotion:reward-activity:update', 3, 3, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:50', '', '2023-05-10 10:30:39', b'1'); +INSERT INTO `system_menu` VALUES (2045, '满减送活动删除', 'promotion:reward-activity:delete', 3, 4, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:50', '', '2023-05-10 10:30:43', b'1'); +INSERT INTO `system_menu` VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2023-05-10 10:30:29', b'1'); +INSERT INTO `system_menu` VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 'PromotionDiscountActivity', 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '1', '2023-05-10 10:31:19', b'1'); +INSERT INTO `system_menu` VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2023-05-10 10:31:02', b'1'); +INSERT INTO `system_menu` VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2023-05-10 10:31:05', b'1'); +INSERT INTO `system_menu` VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2023-05-10 10:31:08', b'1'); +INSERT INTO `system_menu` VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2023-05-10 10:31:12', b'1'); +INSERT INTO `system_menu` VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2023-05-10 10:31:15', b'1'); +INSERT INTO `system_menu` VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '1', '2023-05-10 10:32:38', b'1'); +INSERT INTO `system_menu` VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2023-05-10 10:32:20', b'1'); +INSERT INTO `system_menu` VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2023-05-10 10:32:23', b'1'); +INSERT INTO `system_menu` VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2023-05-10 10:32:26', b'1'); +INSERT INTO `system_menu` VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2023-05-10 10:32:29', b'1'); +INSERT INTO `system_menu` VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2023-05-10 10:32:32', b'1'); +INSERT INTO `system_menu` VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/seckillTime/index', 'PromotionSeckillTime', 0, b'0', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-05-10 10:32:14', b'1'); +INSERT INTO `system_menu` VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2023-05-10 10:31:57', b'1'); +INSERT INTO `system_menu` VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2023-05-10 10:32:00', b'1'); +INSERT INTO `system_menu` VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2023-05-10 10:32:03', b'1'); +INSERT INTO `system_menu` VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2023-05-10 10:32:06', b'1'); +INSERT INTO `system_menu` VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2023-05-10 10:32:09', b'1'); +INSERT INTO `system_menu` VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19', '1', '2023-05-10 10:30:11', b'1'); +INSERT INTO `system_menu` VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-05-10 10:30:03', b'1'); +INSERT INTO `system_menu` VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-19 20:15:33', '1', '2023-05-10 10:30:00', b'1'); +INSERT INTO `system_menu` VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-28 20:20:15', '1', '2023-05-10 10:32:35', b'1'); +INSERT INTO `system_menu` VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1', b'1', '1', '2022-12-10 21:05:44', '1', '2023-05-10 10:25:23', b'1'); +INSERT INTO `system_menu` VALUES (2077, '物流公司管理管理', '', 2, 0, 2072, 'express-company', '', 'mall/trade/expressCompany/index', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '1', '2023-05-10 10:29:49', b'1'); +INSERT INTO `system_menu` VALUES (2078, '物流公司管理查询', 'trade:express-company:query', 3, 1, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2023-05-10 10:25:31', b'1'); +INSERT INTO `system_menu` VALUES (2079, '物流公司管理创建', 'trade:express-company:create', 3, 2, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2023-05-10 10:25:35', b'1'); +INSERT INTO `system_menu` VALUES (2080, '物流公司管理更新', 'trade:express-company:update', 3, 3, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2023-05-10 10:26:01', b'1'); +INSERT INTO `system_menu` VALUES (2081, '物流公司管理删除', 'trade:express-company:delete', 3, 4, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2023-05-10 10:26:06', b'1'); +INSERT INTO `system_menu` VALUES (2082, '物流公司管理导出', 'trade:express-company:export', 3, 5, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2023-05-10 10:26:10', b'1'); +INSERT INTO `system_menu` VALUES (2083, '地区管理', '', 2, 14, 1, 'area', 'row', 'system/area/index', 'SystemArea', 0, b'1', b'1', b'1', '1', '2022-12-23 17:35:05', '1', '2023-04-08 09:01:37', b'0'); +INSERT INTO `system_menu` VALUES (2084, '公众号管理', '', 1, 100, 0, '/mp', 'wechat', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-01 20:11:04', '1', '2023-01-15 11:28:57', b'0'); +INSERT INTO `system_menu` VALUES (2085, '账号管理', '', 2, 1, 2084, 'account', 'phone', 'mp/account/index', 'MpAccount', 0, b'1', b'1', b'1', '1', '2023-01-01 20:13:31', '1', '2023-02-09 23:56:39', b'0'); +INSERT INTO `system_menu` VALUES (2086, '新增账号', 'mp:account:create', 3, 1, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-01 20:21:40', '1', '2023-01-07 17:32:53', b'0'); +INSERT INTO `system_menu` VALUES (2087, '修改账号', 'mp:account:update', 3, 2, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:32:46', '1', '2023-01-07 17:32:46', b'0'); +INSERT INTO `system_menu` VALUES (2088, '查询账号', 'mp:account:query', 3, 0, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:07', '1', '2023-01-07 17:33:07', b'0'); +INSERT INTO `system_menu` VALUES (2089, '删除账号', 'mp:account:delete', 3, 3, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:21', '1', '2023-01-07 17:33:21', b'0'); +INSERT INTO `system_menu` VALUES (2090, '生成二维码', 'mp:account:qr-code', 3, 4, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:58', '1', '2023-01-07 17:33:58', b'0'); +INSERT INTO `system_menu` VALUES (2091, '清空 API 配额', 'mp:account:clear-quota', 3, 5, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 18:20:32', '1', '2023-01-07 18:20:59', b'0'); +INSERT INTO `system_menu` VALUES (2092, '数据统计', 'mp:statistics:query', 2, 2, 2084, 'statistics', 'chart', 'mp/statistics/index', 'MpStatistics', 0, b'1', b'1', b'0', '1', '2023-01-07 20:17:36', '1', '2023-05-10 10:07:14', b'0'); +INSERT INTO `system_menu` VALUES (2093, '标签管理', '', 2, 3, 2084, 'tag', 'rate', 'mp/tag/index', 'MpTag', 0, b'1', b'1', b'1', '1', '2023-01-08 11:37:32', '1', '2023-02-09 23:58:47', b'0'); +INSERT INTO `system_menu` VALUES (2094, '查询标签', 'mp:tag:query', 3, 0, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:03', '1', '2023-01-08 11:59:03', b'0'); +INSERT INTO `system_menu` VALUES (2095, '新增标签', 'mp:tag:create', 3, 1, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:23', '1', '2023-01-08 11:59:23', b'0'); +INSERT INTO `system_menu` VALUES (2096, '修改标签', 'mp:tag:update', 3, 2, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:41', '1', '2023-01-08 11:59:41', b'0'); +INSERT INTO `system_menu` VALUES (2097, '删除标签', 'mp:tag:delete', 3, 3, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 12:00:04', '1', '2023-01-08 12:00:13', b'0'); +INSERT INTO `system_menu` VALUES (2098, '同步标签', 'mp:tag:sync', 3, 4, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 12:00:29', '1', '2023-01-08 12:00:29', b'0'); +INSERT INTO `system_menu` VALUES (2099, '粉丝管理', '', 2, 4, 2084, 'user', 'people', 'mp/user/index', 'MpUser', 0, b'1', b'1', b'1', '1', '2023-01-08 16:51:20', '1', '2023-02-09 23:58:21', b'0'); +INSERT INTO `system_menu` VALUES (2100, '查询粉丝', 'mp:user:query', 3, 0, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:16:59', '1', '2023-01-08 17:17:23', b'0'); +INSERT INTO `system_menu` VALUES (2101, '修改粉丝', 'mp:user:update', 3, 1, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:17:11', '1', '2023-01-08 17:17:11', b'0'); +INSERT INTO `system_menu` VALUES (2102, '同步粉丝', 'mp:user:sync', 3, 2, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:17:40', '1', '2023-01-08 17:17:40', b'0'); +INSERT INTO `system_menu` VALUES (2103, '消息管理', '', 2, 5, 2084, 'message', 'email', 'mp/message/index', 'MpMessage', 0, b'1', b'1', b'1', '1', '2023-01-08 18:44:19', '1', '2023-02-09 23:58:02', b'0'); +INSERT INTO `system_menu` VALUES (2104, '图文发表记录', '', 2, 10, 2084, 'free-publish', 'education', 'mp/freePublish/index', 'MpFreePublish', 0, b'1', b'1', b'1', '1', '2023-01-13 00:30:50', '1', '2023-02-09 23:57:22', b'0'); +INSERT INTO `system_menu` VALUES (2105, '查询发布列表', 'mp:free-publish:query', 3, 1, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:19:17', '1', '2023-01-13 07:19:17', b'0'); +INSERT INTO `system_menu` VALUES (2106, '发布草稿', 'mp:free-publish:submit', 3, 2, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:19:46', '1', '2023-01-13 07:19:46', b'0'); +INSERT INTO `system_menu` VALUES (2107, '删除发布记录', 'mp:free-publish:delete', 3, 3, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:20:01', '1', '2023-01-13 07:20:01', b'0'); +INSERT INTO `system_menu` VALUES (2108, '图文草稿箱', '', 2, 9, 2084, 'draft', 'edit', 'mp/draft/index', 'MpDraft', 0, b'1', b'1', b'0', '1', '2023-01-13 07:40:21', '1', '2023-05-10 10:07:04', b'0'); +INSERT INTO `system_menu` VALUES (2109, '新建草稿', 'mp:draft:create', 3, 1, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 23:15:30', '1', '2023-01-13 23:15:44', b'0'); +INSERT INTO `system_menu` VALUES (2110, '修改草稿', 'mp:draft:update', 3, 2, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:08:47', '1', '2023-01-14 10:08:47', b'0'); +INSERT INTO `system_menu` VALUES (2111, '查询草稿', 'mp:draft:query', 3, 0, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:09:01', '1', '2023-01-14 10:09:01', b'0'); +INSERT INTO `system_menu` VALUES (2112, '删除草稿', 'mp:draft:delete', 3, 3, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:09:19', '1', '2023-01-14 10:09:19', b'0'); +INSERT INTO `system_menu` VALUES (2113, '素材管理', '', 2, 8, 2084, 'material', 'skill', 'mp/material/index', 'MpMaterial', 0, b'1', b'1', b'0', '1', '2023-01-14 14:12:07', '1', '2023-05-10 10:06:57', b'0'); +INSERT INTO `system_menu` VALUES (2114, '上传临时素材', 'mp:material:upload-temporary', 3, 1, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:33:55', '1', '2023-01-14 15:33:55', b'0'); +INSERT INTO `system_menu` VALUES (2115, '上传永久素材', 'mp:material:upload-permanent', 3, 2, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:34:14', '1', '2023-01-14 15:34:14', b'0'); +INSERT INTO `system_menu` VALUES (2116, '删除素材', 'mp:material:delete', 3, 3, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:35:37', '1', '2023-01-14 15:35:37', b'0'); +INSERT INTO `system_menu` VALUES (2117, '上传图文图片', 'mp:material:upload-news-image', 3, 4, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:36:31', '1', '2023-01-14 15:36:31', b'0'); +INSERT INTO `system_menu` VALUES (2118, '查询素材', 'mp:material:query', 3, 5, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:39:22', '1', '2023-01-14 15:39:22', b'0'); +INSERT INTO `system_menu` VALUES (2119, '菜单管理', '', 2, 6, 2084, 'menu', 'button', 'mp/menu/index', 'MpMenu', 0, b'1', b'1', b'0', '1', '2023-01-14 17:43:54', '1', '2023-05-10 10:06:06', b'0'); +INSERT INTO `system_menu` VALUES (2120, '自动回复', '', 2, 7, 2084, 'auto-reply', 'eye', 'mp/autoReply/index', 'MpAutoReply', 0, b'1', b'1', b'0', '1', '2023-01-15 22:13:09', '1', '2023-05-10 10:06:49', b'0'); +INSERT INTO `system_menu` VALUES (2121, '查询回复', 'mp:auto-reply:query', 3, 0, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:28:41', '1', '2023-01-16 22:28:41', b'0'); +INSERT INTO `system_menu` VALUES (2122, '新增回复', 'mp:auto-reply:create', 3, 1, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:28:54', '1', '2023-01-16 22:28:54', b'0'); +INSERT INTO `system_menu` VALUES (2123, '修改回复', 'mp:auto-reply:update', 3, 2, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:29:05', '1', '2023-01-16 22:29:05', b'0'); +INSERT INTO `system_menu` VALUES (2124, '删除回复', 'mp:auto-reply:delete', 3, 3, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:29:34', '1', '2023-01-16 22:29:34', b'0'); +INSERT INTO `system_menu` VALUES (2125, '查询菜单', 'mp:menu:query', 3, 0, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:05:41', '1', '2023-01-17 23:05:41', b'0'); +INSERT INTO `system_menu` VALUES (2126, '保存菜单', 'mp:menu:save', 3, 1, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:06:01', '1', '2023-01-17 23:06:01', b'0'); +INSERT INTO `system_menu` VALUES (2127, '删除菜单', 'mp:menu:delete', 3, 2, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:06:16', '1', '2023-01-17 23:06:16', b'0'); +INSERT INTO `system_menu` VALUES (2128, '查询消息', 'mp:message:query', 3, 0, 2103, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:07:14', '1', '2023-01-17 23:07:14', b'0'); +INSERT INTO `system_menu` VALUES (2129, '发送消息', 'mp:message:send', 3, 1, 2103, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:07:26', '1', '2023-01-17 23:07:26', b'0'); +INSERT INTO `system_menu` VALUES (2130, '邮箱管理', '', 2, 11, 1, 'mail', 'email', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-25 17:27:44', '1', '2023-01-25 17:27:44', b'0'); +INSERT INTO `system_menu` VALUES (2131, '邮箱账号', '', 2, 0, 2130, 'mail-account', 'user', 'system/mail/account/index', 'SystemMailAccount', 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '1', '2023-04-08 08:53:43', b'0'); +INSERT INTO `system_menu` VALUES (2132, '账号查询', 'system:mail-account:query', 3, 1, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` VALUES (2133, '账号创建', 'system:mail-account:create', 3, 2, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` VALUES (2134, '账号更新', 'system:mail-account:update', 3, 3, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` VALUES (2135, '账号删除', 'system:mail-account:delete', 3, 4, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` VALUES (2136, '邮件模版', '', 2, 0, 2130, 'mail-template', 'education', 'system/mail/template/index', 'SystemMailTemplate', 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '1', '2023-04-08 08:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2137, '模版查询', 'system:mail-template:query', 3, 1, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` VALUES (2138, '模版创建', 'system:mail-template:create', 3, 2, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` VALUES (2139, '模版更新', 'system:mail-template:update', 3, 3, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` VALUES (2140, '模版删除', 'system:mail-template:delete', 3, 4, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` VALUES (2141, '邮件记录', '', 2, 0, 2130, 'mail-log', 'log', 'system/mail/log/index', 'SystemMailLog', 0, b'1', b'1', b'1', '', '2023-01-26 02:16:50', '1', '2023-04-08 08:53:49', b'0'); +INSERT INTO `system_menu` VALUES (2142, '日志查询', 'system:mail-log:query', 3, 1, 2141, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-26 02:16:50', '', '2023-01-26 02:16:50', b'0'); +INSERT INTO `system_menu` VALUES (2143, '发送测试邮件', 'system:mail-template:send-mail', 3, 5, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-26 23:29:15', '1', '2023-01-26 23:29:15', b'0'); +INSERT INTO `system_menu` VALUES (2144, '站内信管理', '', 1, 11, 1, 'notify', 'message', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-28 10:25:18', '1', '2023-01-28 10:25:46', b'0'); +INSERT INTO `system_menu` VALUES (2145, '模板管理', '', 2, 0, 2144, 'notify-template', 'education', 'system/notify/template/index', 'SystemNotifyTemplate', 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '1', '2023-04-08 08:54:39', b'0'); +INSERT INTO `system_menu` VALUES (2146, '站内信模板查询', 'system:notify-template:query', 3, 1, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` VALUES (2147, '站内信模板创建', 'system:notify-template:create', 3, 2, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` VALUES (2148, '站内信模板更新', 'system:notify-template:update', 3, 3, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` VALUES (2149, '站内信模板删除', 'system:notify-template:delete', 3, 4, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` VALUES (2150, '发送测试站内信', 'system:notify-template:send-notify', 3, 5, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-28 10:54:43', '1', '2023-01-28 10:54:43', b'0'); +INSERT INTO `system_menu` VALUES (2151, '消息记录', '', 2, 0, 2144, 'notify-message', 'edit', 'system/notify/message/index', 'SystemNotifyMessage', 0, b'1', b'1', b'1', '', '2023-01-28 04:28:22', '1', '2023-04-08 08:54:11', b'0'); +INSERT INTO `system_menu` VALUES (2152, '站内信消息查询', 'system:notify-message:query', 3, 1, 2151, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 04:28:22', '', '2023-01-28 04:28:22', b'0'); +INSERT INTO `system_menu` VALUES (2153, '大屏设计器', '', 2, 2, 1281, 'go-view', 'dashboard', 'report/goview/index', 'JimuReport', 0, b'1', b'1', b'1', '1', '2023-02-07 00:03:19', '1', '2023-05-10 10:35:14', b'1'); +INSERT INTO `system_menu` VALUES (2154, '创建项目', 'report:go-view-project:create', 3, 1, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:14', '1', '2023-05-10 10:34:59', b'1'); +INSERT INTO `system_menu` VALUES (2155, '更新项目', 'report:go-view-project:delete', 3, 2, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:34', '1', '2023-05-10 10:35:03', b'1'); +INSERT INTO `system_menu` VALUES (2156, '查询项目', 'report:go-view-project:query', 3, 0, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:53', '1', '2023-05-10 10:34:56', b'1'); +INSERT INTO `system_menu` VALUES (2157, '使用 SQL 查询数据', 'report:go-view-data:get-by-sql', 3, 3, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:26:15', '1', '2023-05-10 10:35:06', b'1'); +INSERT INTO `system_menu` VALUES (2158, '使用 HTTP 查询数据', 'report:go-view-data:get-by-http', 3, 4, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:26:35', '1', '2023-05-10 10:35:10', b'1'); +INSERT INTO `system_menu` VALUES (2161, '接入示例', '', 2, 99, 1117, 'demo-order', 'drag', 'pay/demo/index', NULL, 0, b'1', b'1', b'1', '', '2023-02-11 14:21:42', '1', '2023-07-09 09:47:51', b'1'); +INSERT INTO `system_menu` VALUES (2162, '商品规格', '', 2, 3, 2174, 'store-product-rule', 'ep:operation', 'mall/shop/storeProductRule/index', 'StoreProductRule', 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '1', '2023-06-02 11:41:21', b'0'); +INSERT INTO `system_menu` VALUES (2163, '商品规则值(规格)查询', 'shop:store-product-rule:query', 3, 1, 2162, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '', '2023-05-17 10:59:10', b'0'); +INSERT INTO `system_menu` VALUES (2164, '商品规则值(规格)创建', 'shop:store-product-rule:create', 3, 2, 2162, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '', '2023-05-17 10:59:10', b'0'); +INSERT INTO `system_menu` VALUES (2165, '商品规则值(规格)更新', 'shop:store-product-rule:update', 3, 3, 2162, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '', '2023-05-17 10:59:10', b'0'); +INSERT INTO `system_menu` VALUES (2166, '商品规则值(规格)删除', 'shop:store-product-rule:delete', 3, 4, 2162, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '', '2023-05-17 10:59:10', b'0'); +INSERT INTO `system_menu` VALUES (2167, '商品规则值(规格)导出', 'shop:store-product-rule:export', 3, 5, 2162, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-17 10:59:10', '', '2023-05-17 10:59:10', b'0'); +INSERT INTO `system_menu` VALUES (2168, '商品管理', '', 2, 4, 2174, 'store-product', 'ep:shopping-cart', 'mall/product/storeProduct/index', 'StoreProduct', 0, b'1', b'1', b'1', '', '2023-05-22 15:02:18', '1', '2023-06-30 10:38:39', b'0'); +INSERT INTO `system_menu` VALUES (2169, '商品查询', 'shop:store-product:query', 3, 1, 2168, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-22 15:02:18', '', '2023-05-22 15:02:18', b'0'); +INSERT INTO `system_menu` VALUES (2170, '商品创建', 'shop:store-product:create', 3, 2, 2168, '', '', '', '', 0, b'0', b'1', b'0', '', '2023-05-22 15:02:18', '1', '2023-05-26 14:23:49', b'0'); +INSERT INTO `system_menu` VALUES (2171, '商品更新', 'shop:store-product:update', 3, 3, 2168, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-22 15:02:18', '', '2023-05-22 15:02:18', b'0'); +INSERT INTO `system_menu` VALUES (2172, '商品删除', 'shop:store-product:delete', 3, 4, 2168, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-22 15:02:18', '', '2023-05-22 15:02:18', b'0'); +INSERT INTO `system_menu` VALUES (2173, '商品导出', 'shop:store-product:export', 3, 5, 2168, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-22 15:02:18', '', '2023-05-22 15:02:18', b'0'); +INSERT INTO `system_menu` VALUES (2174, '商品中心', '', 1, 4, 2000, 'product', 'ep:shopping-cart', '', '', 0, b'1', b'1', b'1', '1', '2023-06-02 11:24:04', '1', '2023-08-06 17:55:53', b'0'); +INSERT INTO `system_menu` VALUES (2175, '订单中心', '', 1, 5, 2000, 'order', 'ep:list', '', '', 0, b'1', b'1', b'1', '1', '2023-06-02 11:29:29', '1', '2023-08-06 17:56:04', b'0'); +INSERT INTO `system_menu` VALUES (2176, '用户中心', '', 1, 6, 2000, 'member', 'ep:user', '', '', 0, b'1', b'1', b'1', '1', '2023-06-02 11:33:44', '1', '2023-08-06 17:56:14', b'0'); +INSERT INTO `system_menu` VALUES (2177, '运费模板', '', 2, 5, 2174, 'shipping-templates', 'ep:document-copy', 'mall/product/shippingTemplates/index', 'ShippingTemplates', 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '1', '2023-09-04 18:31:36', b'1'); +INSERT INTO `system_menu` VALUES (2178, '运费模板查询', 'product:shipping-templates:query', 3, 1, 2177, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '', '2023-09-04 18:31:15', b'1'); +INSERT INTO `system_menu` VALUES (2179, '运费模板创建', 'product:shipping-templates:create', 3, 2, 2177, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '', '2023-09-04 18:31:19', b'1'); +INSERT INTO `system_menu` VALUES (2180, '运费模板更新', 'product:shipping-templates:update', 3, 3, 2177, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '', '2023-09-04 18:31:23', b'1'); +INSERT INTO `system_menu` VALUES (2181, '运费模板删除', 'product:shipping-templates:delete', 3, 4, 2177, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '', '2023-09-04 18:31:27', b'1'); +INSERT INTO `system_menu` VALUES (2182, '运费模板导出', 'product:shipping-templates:export', 3, 5, 2177, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-02 14:40:53', '', '2023-09-04 18:31:32', b'1'); +INSERT INTO `system_menu` VALUES (2183, '用户管理', '', 2, 0, 2176, 'user', 'ep:user-filled', 'mall/member/user/index', 'User', 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '1', '2023-06-09 17:48:55', b'0'); +INSERT INTO `system_menu` VALUES (2184, '用户查询', 'member:user:query', 3, 1, 2183, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '', '2023-06-09 15:05:05', b'0'); +INSERT INTO `system_menu` VALUES (2185, '用户创建', 'member:user:create', 3, 2, 2183, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '', '2023-06-09 15:05:05', b'0'); +INSERT INTO `system_menu` VALUES (2186, '用户更新', 'member:user:update', 3, 3, 2183, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '', '2023-06-09 15:05:05', b'0'); +INSERT INTO `system_menu` VALUES (2187, '用户删除', 'member:user:delete', 3, 4, 2183, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '', '2023-06-09 15:05:05', b'0'); +INSERT INTO `system_menu` VALUES (2188, '用户导出', 'member:user:export', 3, 5, 2183, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-09 15:05:05', '', '2023-06-09 15:05:05', b'0'); +INSERT INTO `system_menu` VALUES (2189, '评论管理', '', 2, 6, 2174, 'store-product-reply', 'ep:message', 'product/storeProductReply/index', 'StoreProductReply', 0, b'1', b'1', b'1', '', '2023-06-13 09:47:30', '1', '2023-09-04 18:32:04', b'1'); +INSERT INTO `system_menu` VALUES (2190, '评论查询', 'product:store-product-reply:query', 3, 1, 2189, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:47:30', '', '2023-09-04 18:31:44', b'1'); +INSERT INTO `system_menu` VALUES (2191, '评论创建', 'product:store-product-reply:create', 3, 2, 2189, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:47:31', '', '2023-09-04 18:31:47', b'1'); +INSERT INTO `system_menu` VALUES (2192, '评论更新', 'product:store-product-reply:update', 3, 3, 2189, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:47:31', '', '2023-09-04 18:31:52', b'1'); +INSERT INTO `system_menu` VALUES (2193, '评论删除', 'product:store-product-reply:delete', 3, 4, 2189, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:47:31', '', '2023-09-04 18:31:56', b'1'); +INSERT INTO `system_menu` VALUES (2194, '评论导出', 'product:store-product-reply:export', 3, 5, 2189, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:47:31', '', '2023-09-04 18:31:59', b'1'); +INSERT INTO `system_menu` VALUES (2195, '收藏管理', '', 2, 7, 2174, 'store-product-relation', 'ep:collection', 'product/storeProductRelation/index', 'StoreProductRelation', 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '1', '2023-09-04 18:32:59', b'1'); +INSERT INTO `system_menu` VALUES (2196, '商品点赞和收藏查询', 'product:store-product-relation:query', 3, 1, 2195, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '', '2023-09-04 18:32:39', b'1'); +INSERT INTO `system_menu` VALUES (2197, '商品点赞和收藏创建', 'product:store-product-relation:create', 3, 2, 2195, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '', '2023-09-04 18:32:43', b'1'); +INSERT INTO `system_menu` VALUES (2198, '商品点赞和收藏更新', 'product:store-product-relation:update', 3, 3, 2195, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '', '2023-09-04 18:32:47', b'1'); +INSERT INTO `system_menu` VALUES (2199, '商品点赞和收藏删除', 'product:store-product-relation:delete', 3, 4, 2195, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '', '2023-09-04 18:32:51', b'1'); +INSERT INTO `system_menu` VALUES (2200, '商品点赞和收藏导出', 'product:store-product-relation:export', 3, 5, 2195, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-13 09:49:46', '', '2023-09-04 18:32:54', b'1'); +INSERT INTO `system_menu` VALUES (2201, '购物车管理', '', 2, 8, 2174, 'store-cart', 'ep:shopping-cart', 'cart/storeCart/index', 'StoreCart', 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '1', '2023-09-04 18:32:32', b'1'); +INSERT INTO `system_menu` VALUES (2202, '购物车查询', 'cart:store-cart:query', 3, 1, 2201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '', '2023-09-04 18:32:13', b'1'); +INSERT INTO `system_menu` VALUES (2203, '购物车创建', 'cart:store-cart:create', 3, 2, 2201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '', '2023-09-04 18:32:17', b'1'); +INSERT INTO `system_menu` VALUES (2204, '购物车更新', 'cart:store-cart:update', 3, 3, 2201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '', '2023-09-04 18:32:20', b'1'); +INSERT INTO `system_menu` VALUES (2205, '购物车删除', 'cart:store-cart:delete', 3, 4, 2201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '', '2023-09-04 18:32:24', b'1'); +INSERT INTO `system_menu` VALUES (2206, '购物车导出', 'cart:store-cart:export', 3, 5, 2201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-15 17:45:50', '', '2023-09-04 18:32:28', b'1'); +INSERT INTO `system_menu` VALUES (2207, '订单管理', '', 2, 1, 2175, 'store-order', 'ep:scale-to-original', 'order/storeOrder/index', 'StoreOrder', 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '1', '2023-09-04 15:04:37', b'0'); +INSERT INTO `system_menu` VALUES (2208, '订单查询', 'order:store-order:query', 3, 1, 2207, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '', '2023-06-17 21:58:17', b'0'); +INSERT INTO `system_menu` VALUES (2209, '订单创建', 'order:store-order:create', 3, 2, 2207, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '', '2023-06-17 21:58:17', b'0'); +INSERT INTO `system_menu` VALUES (2210, '订单更新', 'order:store-order:update', 3, 3, 2207, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '', '2023-06-17 21:58:17', b'0'); +INSERT INTO `system_menu` VALUES (2211, '订单删除', 'order:store-order:delete', 3, 4, 2207, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '', '2023-06-17 21:58:17', b'0'); +INSERT INTO `system_menu` VALUES (2212, '订单导出', 'order:store-order:export', 3, 5, 2207, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-17 21:58:17', '', '2023-06-17 21:58:17', b'0'); +INSERT INTO `system_menu` VALUES (2213, '地址管理', '', 2, 0, 2176, 'user-address', 'ep:add-location', 'member/userAddress/index', 'UserAddress', 0, b'1', b'1', b'1', '', '2023-06-18 16:32:34', '1', '2023-07-08 16:34:26', b'0'); +INSERT INTO `system_menu` VALUES (2214, '用户地址查询', 'member:user-address:query', 3, 1, 2213, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 16:32:34', '', '2023-06-18 16:32:34', b'0'); +INSERT INTO `system_menu` VALUES (2215, '用户地址创建', 'member:user-address:create', 3, 2, 2213, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 16:32:34', '', '2023-06-18 16:32:34', b'0'); +INSERT INTO `system_menu` VALUES (2216, '用户地址更新', 'member:user-address:update', 3, 3, 2213, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 16:32:35', '', '2023-06-18 16:32:35', b'0'); +INSERT INTO `system_menu` VALUES (2217, '用户地址删除', 'member:user-address:delete', 3, 4, 2213, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 16:32:35', '', '2023-06-18 16:32:35', b'0'); +INSERT INTO `system_menu` VALUES (2218, '用户地址导出', 'member:user-address:export', 3, 5, 2213, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 16:32:35', '', '2023-06-18 16:32:35', b'0'); +INSERT INTO `system_menu` VALUES (2219, '用户账单管理', '', 2, 0, 2176, 'user-bill', '', 'member/userBill/index', 'UserBill', 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:34:05', b'1'); +INSERT INTO `system_menu` VALUES (2220, '用户账单查询', 'member:user-bill:query', 3, 1, 2219, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:33:41', b'1'); +INSERT INTO `system_menu` VALUES (2221, '用户账单创建', 'member:user-bill:create', 3, 2, 2219, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:33:48', b'1'); +INSERT INTO `system_menu` VALUES (2222, '用户账单更新', 'member:user-bill:update', 3, 3, 2219, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:33:52', b'1'); +INSERT INTO `system_menu` VALUES (2223, '用户账单删除', 'member:user-bill:delete', 3, 4, 2219, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:33:56', b'1'); +INSERT INTO `system_menu` VALUES (2224, '用户账单导出', 'member:user-bill:export', 3, 5, 2219, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:33:57', '', '2023-07-08 16:34:00', b'1'); +INSERT INTO `system_menu` VALUES (2225, '售后订单', '', 2, 2, 2175, 'store-after-sales', 'ep:fold', 'order/storeAfterSales/index', 'StoreAfterSales', 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '1', '2023-09-04 17:01:23', b'1'); +INSERT INTO `system_menu` VALUES (2226, '售后记录查询', 'order:store-after-sales:query', 3, 1, 2225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '', '2023-09-04 17:01:01', b'1'); +INSERT INTO `system_menu` VALUES (2227, '售后记录创建', 'order:store-after-sales:create', 3, 2, 2225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '', '2023-09-04 17:01:05', b'1'); +INSERT INTO `system_menu` VALUES (2228, '售后记录更新', 'order:store-after-sales:update', 3, 3, 2225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '', '2023-09-04 17:01:10', b'1'); +INSERT INTO `system_menu` VALUES (2229, '售后记录删除', 'order:store-after-sales:delete', 3, 4, 2225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '', '2023-09-04 17:01:14', b'1'); +INSERT INTO `system_menu` VALUES (2230, '售后记录导出', 'order:store-after-sales:export', 3, 5, 2225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-18 20:46:31', '', '2023-09-04 17:01:19', b'1'); +INSERT INTO `system_menu` VALUES (2231, '快递公司', '', 2, 1, 2243, 'express', 'ep:expand', 'express/index', 'Express', 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '1', '2023-12-02 09:51:56', b'0'); +INSERT INTO `system_menu` VALUES (2232, '快递公司查询', 'order:express:query', 3, 1, 2231, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '', '2023-12-01 18:18:51', b'0'); +INSERT INTO `system_menu` VALUES (2233, '快递公司创建', 'order:express:create', 3, 2, 2231, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '', '2023-12-01 18:18:54', b'0'); +INSERT INTO `system_menu` VALUES (2234, '快递公司更新', 'order:express:update', 3, 3, 2231, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '', '2023-12-01 18:18:56', b'0'); +INSERT INTO `system_menu` VALUES (2235, '快递公司删除', 'order:express:delete', 3, 4, 2231, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '', '2023-12-01 18:19:05', b'0'); +INSERT INTO `system_menu` VALUES (2236, '快递公司导出', 'order:express:export', 3, 5, 2231, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-02 10:12:24', '', '2023-12-01 18:19:12', b'0'); +INSERT INTO `system_menu` VALUES (2237, '支付配置', '', 2, 0, 1117, 'merchant-details', 'ep:money', 'pay/merchantDetails/index', 'MerchantDetails', 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '1', '2023-07-14 15:09:50', b'0'); +INSERT INTO `system_menu` VALUES (2238, '支付服务商配置查询', 'pay:merchant-details:query', 3, 1, 2237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '', '2023-07-14 14:34:15', b'0'); +INSERT INTO `system_menu` VALUES (2239, '支付服务商配置创建', 'pay:merchant-details:create', 3, 2, 2237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '', '2023-07-14 14:34:15', b'0'); +INSERT INTO `system_menu` VALUES (2240, '支付服务商配置更新', 'pay:merchant-details:update', 3, 3, 2237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '', '2023-07-14 14:34:15', b'0'); +INSERT INTO `system_menu` VALUES (2241, '支付服务商配置删除', 'pay:merchant-details:delete', 3, 4, 2237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '', '2023-07-14 14:34:15', b'0'); +INSERT INTO `system_menu` VALUES (2242, '支付服务商配置导出', 'pay:merchant-details:export', 3, 5, 2237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-14 14:34:15', '', '2023-07-14 14:34:15', b'0'); +INSERT INTO `system_menu` VALUES (2243, '快递管理', '', 1, 91, 0, '/express', 'rate', '', '', 0, b'1', b'1', b'1', '1', '2023-07-19 15:36:23', '1', '2023-12-01 18:19:20', b'0'); +INSERT INTO `system_menu` VALUES (2244, '快递鸟配置', '', 2, 3, 2243, 'set', 'ep:setting', 'express/ExpressSet', 'set', 0, b'1', b'1', b'1', '1', '2023-07-19 16:09:26', '1', '2023-12-02 09:51:45', b'0'); +INSERT INTO `system_menu` VALUES (2245, '电子面单', '', 2, 2, 2243, 'electronics-order', 'ep:help', 'order/electronicsOrder/index', 'ElectronicsOrder', 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '1', '2023-09-04 17:03:12', b'1'); +INSERT INTO `system_menu` VALUES (2246, '电子面单查询', 'express:electronics-order:query', 3, 1, 2245, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '', '2023-09-04 17:02:52', b'1'); +INSERT INTO `system_menu` VALUES (2247, '电子面单创建', 'express:electronics-order:create', 3, 2, 2245, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '', '2023-09-04 17:02:56', b'1'); +INSERT INTO `system_menu` VALUES (2248, '电子面单更新', 'express:electronics-order:update', 3, 3, 2245, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '', '2023-09-04 17:02:59', b'1'); +INSERT INTO `system_menu` VALUES (2249, '电子面单删除', 'express:electronics-order:delete', 3, 4, 2245, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '', '2023-09-04 17:03:03', b'1'); +INSERT INTO `system_menu` VALUES (2250, '电子面单导出', 'express:electronics-order:export', 3, 5, 2245, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 17:50:23', '', '2023-09-04 17:03:07', b'1'); +INSERT INTO `system_menu` VALUES (2251, '电子面单记录', '', 2, 3, 2175, 'store-order-electronics', 'ep:list', 'order/storeOrderElectronics/index', 'StoreOrderElectronics', 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '1', '2023-09-04 17:01:50', b'1'); +INSERT INTO `system_menu` VALUES (2252, '订单电子面单记录查询', 'order:store-order-electronics:query', 3, 1, 2251, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '', '2023-09-04 17:01:31', b'1'); +INSERT INTO `system_menu` VALUES (2253, '订单电子面单记录创建', 'order:store-order-electronics:create', 3, 2, 2251, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '', '2023-09-04 17:01:34', b'1'); +INSERT INTO `system_menu` VALUES (2254, '订单电子面单记录更新', 'order:store-order-electronics:update', 3, 3, 2251, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '', '2023-09-04 17:01:38', b'1'); +INSERT INTO `system_menu` VALUES (2255, '订单电子面单记录删除', 'order:store-order-electronics:delete', 3, 4, 2251, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '', '2023-09-04 17:01:42', b'1'); +INSERT INTO `system_menu` VALUES (2256, '订单电子面单记录导出', 'order:store-order-electronics:export', 3, 5, 2251, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-22 17:36:49', '', '2023-09-04 17:01:46', b'1'); +INSERT INTO `system_menu` VALUES (2257, '消息管理', '', 1, 92, 0, '/message', 'rate', '', '', 0, b'1', b'1', b'1', '1', '2023-07-25 09:41:06', '1', '2023-07-25 10:05:51', b'0'); +INSERT INTO `system_menu` VALUES (2258, '微信消息', '', 2, 0, 2257, 'wechat-template', 'ep:message', 'message/wechatTemplate/index', 'WechatTemplate', 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '1', '2023-07-25 10:06:49', b'0'); +INSERT INTO `system_menu` VALUES (2259, '微信模板查询', 'message:wechat-template:query', 3, 1, 2258, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '', '2023-07-25 09:45:42', b'0'); +INSERT INTO `system_menu` VALUES (2260, '微信模板创建', 'message:wechat-template:create', 3, 2, 2258, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '', '2023-07-25 09:45:42', b'0'); +INSERT INTO `system_menu` VALUES (2261, '微信模板更新', 'message:wechat-template:update', 3, 3, 2258, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '', '2023-07-25 09:45:42', b'0'); +INSERT INTO `system_menu` VALUES (2262, '微信模板删除', 'message:wechat-template:delete', 3, 4, 2258, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '', '2023-07-25 09:45:42', b'0'); +INSERT INTO `system_menu` VALUES (2263, '微信模板导出', 'message:wechat-template:export', 3, 5, 2258, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-25 09:45:42', '', '2023-07-25 09:45:42', b'0'); +INSERT INTO `system_menu` VALUES (2264, '门店管理', '', 2, 1, 2000, 'shop', 'ep:briefcase', '/mall/store/shop/index', 'StoreShop', 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '1', '2023-09-06 10:38:09', b'0'); +INSERT INTO `system_menu` VALUES (2265, '门店管理查询', 'store:shop:query', 3, 1, 2264, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '', '2023-08-03 14:42:11', b'0'); +INSERT INTO `system_menu` VALUES (2266, '门店管理创建', 'store:shop:create', 3, 2, 2264, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '', '2023-08-03 14:42:11', b'0'); +INSERT INTO `system_menu` VALUES (2267, '门店管理更新', 'store:shop:update', 3, 3, 2264, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '', '2023-08-03 14:42:11', b'0'); +INSERT INTO `system_menu` VALUES (2268, '门店管理删除', 'store:shop:delete', 3, 4, 2264, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '', '2023-08-03 14:42:11', b'0'); +INSERT INTO `system_menu` VALUES (2269, '门店管理导出', 'store:shop:export', 3, 5, 2264, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-03 14:42:11', '', '2023-08-03 14:42:11', b'0'); +INSERT INTO `system_menu` VALUES (2270, '广告图管理', '', 2, 2, 2000, 'ads', 'ep:camera-filled', 'shop/ads/index', 'ShopAds', 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '1', '2023-09-06 10:38:20', b'0'); +INSERT INTO `system_menu` VALUES (2271, '广告图管理查询', 'shop:ads:query', 3, 1, 2270, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '', '2023-08-06 16:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2272, '广告图管理创建', 'shop:ads:create', 3, 2, 2270, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '', '2023-08-06 16:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2273, '广告图管理更新', 'shop:ads:update', 3, 3, 2270, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '', '2023-08-06 16:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2274, '广告图管理删除', 'shop:ads:delete', 3, 4, 2270, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '', '2023-08-06 16:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2275, '广告图管理导出', 'shop:ads:export', 3, 5, 2270, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 16:53:34', '', '2023-08-06 16:53:34', b'0'); +INSERT INTO `system_menu` VALUES (2276, '我的服务', '', 2, 3, 2000, 'service', 'ep:dessert', 'shop/service/index', 'Service', 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '1', '2023-09-06 10:38:33', b'0'); +INSERT INTO `system_menu` VALUES (2277, '我的服务查询', 'shop:service:query', 3, 1, 2276, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '', '2023-08-06 17:05:02', b'0'); +INSERT INTO `system_menu` VALUES (2278, '我的服务创建', 'shop:service:create', 3, 2, 2276, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '', '2023-08-06 17:05:02', b'0'); +INSERT INTO `system_menu` VALUES (2279, '我的服务更新', 'shop:service:update', 3, 3, 2276, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '', '2023-08-06 17:05:02', b'0'); +INSERT INTO `system_menu` VALUES (2280, '我的服务删除', 'shop:service:delete', 3, 4, 2276, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '', '2023-08-06 17:05:02', b'0'); +INSERT INTO `system_menu` VALUES (2281, '我的服务导出', 'shop:service:export', 3, 5, 2276, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:05:02', '', '2023-08-06 17:05:02', b'0'); +INSERT INTO `system_menu` VALUES (2282, '充值金额', '', 2, 7, 2000, 'recharge', 'ep:money', 'shop/recharge/index', 'Recharge', 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '1', '2023-12-08 10:25:23', b'1'); +INSERT INTO `system_menu` VALUES (2283, '充值金额管理查询', 'shop:recharge:query', 3, 1, 2282, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '', '2023-12-08 10:25:05', b'1'); +INSERT INTO `system_menu` VALUES (2284, '充值金额管理创建', 'shop:recharge:create', 3, 2, 2282, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '', '2023-12-08 10:25:09', b'1'); +INSERT INTO `system_menu` VALUES (2285, '充值金额管理更新', 'shop:recharge:update', 3, 3, 2282, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '', '2023-12-08 10:25:12', b'1'); +INSERT INTO `system_menu` VALUES (2286, '充值金额管理删除', 'shop:recharge:delete', 3, 4, 2282, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '', '2023-12-08 10:25:15', b'1'); +INSERT INTO `system_menu` VALUES (2287, '充值金额管理导出', 'shop:recharge:export', 3, 5, 2282, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-06 17:14:26', '', '2023-12-08 10:25:19', b'1'); +INSERT INTO `system_menu` VALUES (2288, '优惠券管理', '', 2, 8, 2000, 'coupons', 'ep:discount', 'mall/coupon/index', 'Coupon', 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '1', '2023-09-06 10:39:28', b'0'); +INSERT INTO `system_menu` VALUES (2289, '优惠券查询', 'coupon::query', 3, 1, 2288, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '', '2023-08-08 15:24:18', b'0'); +INSERT INTO `system_menu` VALUES (2290, '优惠券创建', 'coupon::create', 3, 2, 2288, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '', '2023-08-08 15:24:18', b'0'); +INSERT INTO `system_menu` VALUES (2291, '优惠券更新', 'coupon::update', 3, 3, 2288, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '', '2023-08-08 15:24:18', b'0'); +INSERT INTO `system_menu` VALUES (2292, '优惠券删除', 'coupon::delete', 3, 4, 2288, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '', '2023-08-08 15:24:18', b'0'); +INSERT INTO `system_menu` VALUES (2293, '优惠券导出', 'coupon::export', 3, 5, 2288, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-08 15:24:18', '', '2023-08-08 15:24:18', b'0'); +INSERT INTO `system_menu` VALUES (2294, '订单管理', '', 2, 1, 2306, 'order', 'ep:list', 'score/order/index', 'ScoreOrder', 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '1', '2023-12-08 09:42:51', b'1'); +INSERT INTO `system_menu` VALUES (2295, '积分商城订单查询', 'score:order:query', 3, 1, 2294, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '', '2023-12-08 09:42:33', b'1'); +INSERT INTO `system_menu` VALUES (2296, '积分商城订单创建', 'score:order:create', 3, 2, 2294, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '', '2023-12-08 09:42:37', b'1'); +INSERT INTO `system_menu` VALUES (2297, '积分商城订单更新', 'score:order:update', 3, 3, 2294, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '', '2023-12-08 09:42:41', b'1'); +INSERT INTO `system_menu` VALUES (2298, '积分商城订单删除', 'score:order:delete', 3, 4, 2294, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '', '2023-12-08 09:42:44', b'1'); +INSERT INTO `system_menu` VALUES (2299, '积分商城订单导出', 'score:order:export', 3, 5, 2294, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:23:38', '', '2023-12-08 09:42:48', b'1'); +INSERT INTO `system_menu` VALUES (2300, '产品管理', '', 2, 0, 2306, 'product', 'ep:shopping-cart-full', 'score/product/index', 'ScoreProduct', 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '1', '2023-12-08 09:42:26', b'1'); +INSERT INTO `system_menu` VALUES (2301, '积分产品查询', 'score:product:query', 3, 1, 2300, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '', '2023-12-08 09:41:17', b'1'); +INSERT INTO `system_menu` VALUES (2302, '积分产品创建', 'score:product:create', 3, 2, 2300, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '', '2023-12-08 09:42:08', b'1'); +INSERT INTO `system_menu` VALUES (2303, '积分产品更新', 'score:product:update', 3, 3, 2300, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '', '2023-12-08 09:42:12', b'1'); +INSERT INTO `system_menu` VALUES (2304, '积分产品删除', 'score:product:delete', 3, 4, 2300, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '', '2023-12-08 09:42:16', b'1'); +INSERT INTO `system_menu` VALUES (2305, '积分产品导出', 'score:product:export', 3, 5, 2300, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-08-09 16:24:11', '', '2023-12-08 09:42:19', b'1'); +INSERT INTO `system_menu` VALUES (2306, '积分商城', '', 1, 70, 0, '/score', 'rate', '', '', 0, b'1', b'1', b'1', '1', '2023-08-09 16:49:19', '1', '2023-12-08 09:42:56', b'1'); +INSERT INTO `system_menu` VALUES (2307, '工作台', '', 2, 0, 2175, 'store-order-work', 'ep:bell-filled', 'order/storeOrder/work', 'StoreOrderWork', 0, b'1', b'1', b'1', '1', '2023-09-04 15:04:14', '1', '2023-09-04 15:04:14', b'0'); +INSERT INTO `system_menu` VALUES (2308, '打印机管理', '', 2, 0, 2000, 'web-print', 'ep:printer', 'store/webPrint/index', 'WebPrint', 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '1', '2023-12-08 10:05:25', b'1'); +INSERT INTO `system_menu` VALUES (2309, '易联云打印机查询', 'store:web-print:query', 3, 1, 2308, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '', '2023-12-08 10:05:07', b'1'); +INSERT INTO `system_menu` VALUES (2310, '易联云打印机创建', 'store:web-print:create', 3, 2, 2308, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '', '2023-12-08 10:05:10', b'1'); +INSERT INTO `system_menu` VALUES (2311, '易联云打印机更新', 'store:web-print:update', 3, 3, 2308, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '', '2023-12-08 10:05:13', b'1'); +INSERT INTO `system_menu` VALUES (2312, '易联云打印机删除', 'store:web-print:delete', 3, 4, 2308, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '', '2023-12-08 10:05:17', b'1'); +INSERT INTO `system_menu` VALUES (2313, '易联云打印机导出', 'store:web-print:export', 3, 5, 2308, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-09-06 10:19:34', '', '2023-12-08 10:05:21', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notice +-- ---------------------------- +DROP TABLE IF EXISTS `system_notice`; +CREATE TABLE `system_notice` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告内容', + `type` tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知公告表'; + +-- ---------------------------- +-- Records of system_notice +-- ---------------------------- +BEGIN; +INSERT INTO `system_notice` VALUES (1, 'B2C单商户微服务-统计报表功能正式发布!', '

新版本内容133

', 1, 0, 'admin', '2021-01-05 17:03:48', '1', '2023-07-26 14:30:37', b'0', 1); +INSERT INTO `system_notice` VALUES (2, '618最后三天,你还不来', '

维护内容

', 2, 1, 'admin', '2021-01-05 17:03:48', '1', '2023-07-26 14:30:13', b'0', 1); +INSERT INTO `system_notice` VALUES (4, 'YSHOP-PRO 预售开始啦', '

哈哈哈哈123

', 1, 0, '110', '2022-02-22 01:01:25', '1', '2024-06-01 14:26:15', b'0', 121); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notify_message +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_message`; +CREATE TABLE `system_notify_message` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `user_id` bigint NOT NULL COMMENT '用户id', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `template_id` bigint NOT NULL COMMENT '模版编号', + `template_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版发送人名称', + `template_content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版内容', + `template_type` int NOT NULL COMMENT '模版类型', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版参数', + `read_status` bit(1) NOT NULL COMMENT '是否已读', + `read_time` datetime DEFAULT NULL COMMENT '阅读时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内信消息表'; + +-- ---------------------------- +-- Records of system_notify_message +-- ---------------------------- +BEGIN; +INSERT INTO `system_notify_message` VALUES (2, 1, 2, 1, 'test', '123', '我是 1,我开始 2 了', 1, '{\"name\":\"1\",\"what\":\"2\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 11:44:08', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` VALUES (3, 1, 2, 1, 'test', '123', '我是 1,我开始 2 了', 1, '{\"name\":\"1\",\"what\":\"2\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 11:45:04', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` VALUES (4, 103, 2, 2, 'register', '系统消息', '你好,欢迎 哈哈 加入大家庭!', 2, '{\"name\":\"哈哈\"}', b'0', NULL, '1', '2023-01-28 21:02:20', '1', '2023-01-28 21:02:20', b'0', 1); +INSERT INTO `system_notify_message` VALUES (5, 1, 2, 1, 'test', '123', '我是 yshop,我开始 写代码 了', 1, '{\"name\":\"yshop\",\"what\":\"写代码\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 22:21:42', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` VALUES (6, 1, 2, 1, 'test', '123', '我是 yshop,我开始 写代码 了', 1, '{\"name\":\"yshop\",\"what\":\"写代码\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 22:22:07', '1', '2023-01-29 10:52:06', b'0', 1); +INSERT INTO `system_notify_message` VALUES (7, 1, 2, 1, 'test', '123', '我是 2,我开始 3 了', 1, '{\"name\":\"2\",\"what\":\"3\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 23:45:21', '1', '2023-01-29 10:52:06', b'0', 1); +INSERT INTO `system_notify_message` VALUES (8, 1, 2, 2, 'register', '系统消息', '你好,欢迎 123 加入大家庭!', 2, '{\"name\":\"123\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 23:50:21', '1', '2023-01-29 10:52:06', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notify_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_template`; +CREATE TABLE `system_notify_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版编码', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发送人名称', + `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版内容', + `type` tinyint NOT NULL COMMENT '类型', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '参数数组', + `status` tinyint NOT NULL COMMENT '状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内信模板表'; + +-- ---------------------------- +-- Records of system_notify_template +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_access_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_access_token`; +CREATE TABLE `system_oauth2_access_token` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `user_info` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户信息', + `access_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问令牌', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '刷新令牌', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + `shop_id` bigint DEFAULT '0' COMMENT '门店id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=3352 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2 访问令牌'; + +-- ---------------------------- +-- Records of system_oauth2_access_token +-- ---------------------------- +BEGIN; +INSERT INTO `system_oauth2_access_token` VALUES (1785, 1, 2, '', '0e187c6cdd354e80b87f238976f2cec8', '75d6f57cd13f45f698eaaf0b74369a1c', 'default', NULL, '2023-05-07 17:21:51', NULL, '2023-05-07 16:51:51', NULL, '2023-05-07 17:25:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1786, 1, 2, '', '807796c036a64724908a2ea57a89e913', '75d6f57cd13f45f698eaaf0b74369a1c', 'default', NULL, '2023-05-07 17:55:15', NULL, '2023-05-07 17:25:15', NULL, '2023-05-08 16:54:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1787, 1, 2, '', '56091a60347c484bb8654b1e32b96ab7', '75d6f57cd13f45f698eaaf0b74369a1c', 'default', NULL, '2023-05-07 17:55:15', NULL, '2023-05-07 17:25:15', NULL, '2023-05-08 16:54:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1788, 1, 2, '', 'ab7889a8e01943c5abfa72031d7f4089', 'db0011c8e0fd48109c48197df22ef128', 'default', NULL, '2023-05-08 17:24:46', NULL, '2023-05-08 16:54:46', NULL, '2023-05-08 17:40:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1789, 1, 2, '', '9cc2f0a2f60b4e63b44334fdd6128bbf', 'db0011c8e0fd48109c48197df22ef128', 'default', NULL, '2023-05-08 18:10:23', NULL, '2023-05-08 17:40:23', NULL, '2023-05-08 17:40:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1790, 1, 2, '', '802067755bb540e5a212dc67f9b39b3c', '14cedafe6b3f487eb8ae512e13e952c8', 'default', NULL, '2023-05-08 19:01:31', NULL, '2023-05-08 18:31:31', NULL, '2023-05-08 18:32:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1791, 1, 2, '', '2521a4f051a74e51805878b508816a8f', 'bf6a7aeedecc45d5ac838d5b70796f23', 'default', NULL, '2023-05-08 19:02:29', NULL, '2023-05-08 18:32:29', NULL, '2023-05-08 19:13:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1792, 1, 2, '', 'acb97bdf826c49a9a0a971c7c93932cb', 'bf6a7aeedecc45d5ac838d5b70796f23', 'default', NULL, '2023-05-08 19:43:09', NULL, '2023-05-08 19:13:09', NULL, '2023-05-08 20:10:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1793, 1, 2, '', '07bdfdbd4e40434bbf9107a849d2c52a', 'bf6a7aeedecc45d5ac838d5b70796f23', 'default', NULL, '2023-05-08 20:40:53', NULL, '2023-05-08 20:10:53', NULL, '2023-05-09 09:02:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1794, 1, 2, '', 'b5b376d373a74089b7712b0829d28a7e', '81ed7c3c95ff401d924a03dca1c68ad3', 'default', NULL, '2023-05-09 10:56:29', NULL, '2023-05-09 10:26:29', NULL, '2023-05-09 10:26:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1795, 1, 2, '', '5a6cdfb5a89048d69852375faa60bf11', 'f61a5716e1474e1084e7a2b786b578ab', 'default', NULL, '2023-05-09 11:18:22', NULL, '2023-05-09 10:48:22', NULL, '2023-05-09 10:48:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1796, 1, 2, '', '53751e10977c4c7fa56fb2635f6190f5', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 11:18:37', NULL, '2023-05-09 10:48:37', NULL, '2023-05-09 11:18:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1797, 1, 2, '', '5449e2f690324342860e863ee7465144', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 11:48:55', NULL, '2023-05-09 11:18:55', NULL, '2023-05-09 11:49:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1798, 1, 2, '', '107e8c9ef5614e799a020fe8fcd055c8', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 12:19:45', NULL, '2023-05-09 11:49:45', NULL, '2023-05-09 12:31:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1799, 1, 2, '', '6788b28a5b22448695cc9723cfc740ca', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 12:19:45', NULL, '2023-05-09 11:49:45', NULL, '2023-05-09 12:31:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1800, 1, 2, '', 'fc4751b616e142428abe708a5ff92715', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 13:01:57', NULL, '2023-05-09 12:31:57', NULL, '2023-05-09 12:31:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1801, 1, 2, '', 'c066750549e548f3a47b7d06e04cdda4', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 13:01:57', NULL, '2023-05-09 12:31:57', NULL, '2023-05-09 13:09:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1802, 1, 2, '', 'd1881245e487464bbb1cccc29630f87f', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 13:39:17', NULL, '2023-05-09 13:09:17', NULL, '2023-05-09 14:11:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1803, 1, 2, '', '2a123ec1a10546c893cbcc4b490a1c93', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 13:39:17', NULL, '2023-05-09 13:09:17', NULL, '2023-05-09 14:11:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1804, 1, 2, '', '387c52669f3f4aa691c74263dcbbe3b6', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 14:41:57', NULL, '2023-05-09 14:11:57', NULL, '2023-05-09 16:05:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1805, 1, 2, '', '7fae29f5713b4bd1b38a6e46f20e6c8e', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 14:41:57', NULL, '2023-05-09 14:11:57', NULL, '2023-05-09 16:05:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1806, 1, 2, '', '0927cea4a12e458ba8dde68947c2284b', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 16:35:22', NULL, '2023-05-09 16:05:22', NULL, '2023-05-09 16:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1807, 1, 2, '', '82eabcecec33439aaa44d9ca4e9aacd8', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 16:35:22', NULL, '2023-05-09 16:05:22', NULL, '2023-05-09 16:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1808, 1, 2, '', '744156fe1a8d4d84b995416d1a30dc64', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 17:10:47', NULL, '2023-05-09 16:40:47', NULL, '2023-05-09 17:11:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1809, 1, 2, '', '80ccb25f394446f0a7c2bea3588b0ccc', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 17:41:22', NULL, '2023-05-09 17:11:22', NULL, '2023-05-09 17:41:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1810, 1, 2, '', '9d8eaa8c711b421c95039ef886cc7ad3', '3c23acaae6a946198bca90ba94abf027', 'default', NULL, '2023-05-09 18:11:22', NULL, '2023-05-09 17:41:22', NULL, '2023-05-10 09:27:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1811, 1, 2, '', '9803e8b3dab7426fa0d2fc5439a92ba2', '8df8c5baa0ab4bec8f5f95c31343370b', 'default', NULL, '2023-05-10 09:59:09', NULL, '2023-05-10 09:29:09', NULL, '2023-05-10 09:29:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1812, 1, 2, '', '0b1155c239bf4a8894031506eed3b064', 'c5124e55bafe4967901b8b6f77758f59', 'default', NULL, '2023-05-10 10:15:47', '1', '2023-05-10 09:45:47', '1', '2023-05-10 10:00:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1813, 1, 2, '', '3b11c96303684178983c6300262ed081', '2a3c46462eb04bfdbe25f6f482619bc0', 'default', NULL, '2023-05-10 10:30:53', NULL, '2023-05-10 10:00:53', NULL, '2023-05-10 10:31:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1814, 1, 2, '', '57058159e6204ea1aec067ce7102ff2a', '2a3c46462eb04bfdbe25f6f482619bc0', 'default', NULL, '2023-05-10 11:01:03', NULL, '2023-05-10 10:31:03', NULL, '2023-05-10 10:35:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1815, 1, 2, '', 'd1b2cb774436466eb1b3600bfa07e92c', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 11:05:33', NULL, '2023-05-10 10:35:33', NULL, '2023-05-10 11:06:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1816, 1, 2, '', '8277a5d37ec8491b94beffcaf8e3da69', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 11:36:22', NULL, '2023-05-10 11:06:22', NULL, '2023-05-10 11:06:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1817, 1, 2, '', 'bab5b59016c541e1a806ed1491f5f3ad', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 11:36:22', NULL, '2023-05-10 11:06:22', NULL, '2023-05-10 11:43:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1818, 1, 2, '', 'bc11ebc57f3e4e749880f9aedd297dcf', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 12:13:07', NULL, '2023-05-10 11:43:07', NULL, '2023-05-10 12:34:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1819, 1, 2, '', '1319ea584e9e4a3c83046e2a4e2d427a', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 12:13:07', NULL, '2023-05-10 11:43:07', NULL, '2023-05-10 12:34:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1820, 1, 2, '', '0824129eb01f4474841ec604e2f2928e', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 13:04:17', NULL, '2023-05-10 12:34:17', NULL, '2023-05-10 14:47:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1821, 1, 2, '', 'fbe488bf57dc420dae2dd8d775d1e95b', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 15:17:40', NULL, '2023-05-10 14:47:40', NULL, '2023-05-10 15:18:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1822, 1, 2, '', 'cf3551963caa4efa90a6aa1ff9115db2', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 15:17:40', NULL, '2023-05-10 14:47:40', NULL, '2023-05-10 15:18:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1823, 1, 2, '', '208efe443ada46889ba0f0eb1db8d5b3', '1a8890095585477ebf4e219c70eb8633', 'default', NULL, '2023-05-10 15:48:35', NULL, '2023-05-10 15:18:35', NULL, '2023-05-10 15:19:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1824, 1, 2, '', '4305c3ba9f4441db9345f9d113c8a194', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 15:49:17', NULL, '2023-05-10 15:19:17', NULL, '2023-05-10 15:49:18', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1825, 1, 2, '', '182aeefc34f1466f8f69b864a2c07c49', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 16:19:18', NULL, '2023-05-10 15:49:18', NULL, '2023-05-10 16:19:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1826, 1, 2, '', 'b18afdf8cac64a64891aeb19174416f3', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 16:49:35', NULL, '2023-05-10 16:19:35', NULL, '2023-05-10 16:49:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1827, 1, 2, '', 'c6f820e30f774eaca3075c53a611a066', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 17:19:36', NULL, '2023-05-10 16:49:36', NULL, '2023-05-10 18:22:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1828, 1, 2, '', 'f6b9a00c02fd4d0da25c20c9c0063ffc', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 18:53:00', NULL, '2023-05-10 18:23:00', NULL, '2023-05-10 19:02:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1829, 1, 2, '', '6b58b85bfd834a4db7dae679144d59e4', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 18:53:00', NULL, '2023-05-10 18:23:00', NULL, '2023-05-10 19:02:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1830, 1, 2, '', '04ca3ab3461d40f4a65fdf27f27feb91', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 19:32:12', NULL, '2023-05-10 19:02:12', NULL, '2023-05-10 20:11:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1831, 1, 2, '', '1e85819b65d24b07b0460950d6faa64f', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 19:32:12', NULL, '2023-05-10 19:02:12', NULL, '2023-05-10 20:11:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1832, 1, 2, '', '4d62489cde684343ad40c037b028fc7e', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 20:41:31', NULL, '2023-05-10 20:11:31', NULL, '2023-05-10 20:45:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1833, 1, 2, '', 'e94a42db2fa44e57ba1e29e2462dfbc6', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 20:41:31', NULL, '2023-05-10 20:11:31', NULL, '2023-05-10 20:45:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1834, 1, 2, '', '75d68259ac6e4ef2a7d1d08a4bc5de53', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 21:15:46', NULL, '2023-05-10 20:45:46', NULL, '2023-05-10 20:45:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1835, 1, 2, '', '322d9930958742658c8194f5c23b8865', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 21:15:46', NULL, '2023-05-10 20:45:46', NULL, '2023-05-10 20:45:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1836, 1, 2, '', '904880dd62e143cd9ccac356269b6a0c', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 21:15:46', NULL, '2023-05-10 20:45:46', NULL, '2023-05-10 22:47:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1837, 1, 2, '', 'c56ffac4044d4a21981463f12b353fd9', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 23:17:53', NULL, '2023-05-10 22:47:53', NULL, '2023-05-10 23:59:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1838, 1, 2, '', 'a3d4c7acc3284fdf9d20796cd25ca5de', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-10 23:17:53', NULL, '2023-05-10 22:47:53', NULL, '2023-05-10 23:59:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1839, 1, 2, '', '5100f2ddc5de45b49bb0ceca4d1e5ed8', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 00:29:21', NULL, '2023-05-10 23:59:21', NULL, '2023-05-11 00:33:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1840, 1, 2, '', 'a06f35924852499a969c1d712b36a1e2', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 00:29:21', NULL, '2023-05-10 23:59:21', NULL, '2023-05-11 00:33:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1841, 1, 2, '', '56802d4db17b48dd8226336c41c879b7', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 01:03:55', NULL, '2023-05-11 00:33:55', NULL, '2023-05-11 00:33:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1842, 1, 2, '', 'ec7b309338984f1f8a96be5499a0bcde', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 01:03:55', NULL, '2023-05-11 00:33:55', NULL, '2023-05-11 02:45:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1843, 1, 2, '', 'ef9febc75b664d338e521d4b1aa346ea', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 03:15:16', NULL, '2023-05-11 02:45:16', NULL, '2023-05-11 05:14:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1844, 1, 2, '', '9e1180d54aee4165973359cb59d014c5', '0018c33a1ba64bcebc51cacba9c8e91a', 'default', NULL, '2023-05-11 03:15:16', NULL, '2023-05-11 02:45:16', NULL, '2023-05-11 05:14:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1845, 1, 2, '', 'f2fc58405cb04d7dab62bc35d8cd58cc', '103842f78cda4e17908fd715d8a18687', 'default', NULL, '2023-05-12 13:15:18', NULL, '2023-05-12 12:45:18', NULL, '2023-05-15 16:46:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1846, 1, 2, '', '8071563b738445c6a1fe5bee2ae7418f', '0bbbd3b67f3f424a869e3440c1544d00', 'default', NULL, '2023-05-15 17:17:03', NULL, '2023-05-15 16:47:03', NULL, '2023-05-15 17:18:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1847, 1, 2, '', 'bc18a30679334fbdac7c5ccd9b34b426', '0bbbd3b67f3f424a869e3440c1544d00', 'default', NULL, '2023-05-15 17:48:03', NULL, '2023-05-15 17:18:03', NULL, '2023-05-16 10:48:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1848, 1, 2, '', 'c37274411771451abc684cca39c2b73a', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 11:20:23', NULL, '2023-05-16 10:50:23', NULL, '2023-05-16 11:21:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1849, 1, 2, '', 'a6de48ee53df4ac098115053be736d55', '43a4b47a53b640b18eeb891337f74ab5', 'default', NULL, '2023-05-16 11:21:52', NULL, '2023-05-16 10:51:52', NULL, '2023-05-16 10:51:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1850, 1, 2, '', '44c5dcea2a0a465ca1d13edfd803ff20', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 11:51:27', NULL, '2023-05-16 11:21:27', NULL, '2023-05-16 11:52:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1851, 1, 2, '', 'e09c90d6200345bc8de1cddbc8173eb8', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 11:51:27', NULL, '2023-05-16 11:21:27', NULL, '2023-05-16 11:52:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1852, 1, 2, '', '44043f6ca4da4cfaaca30826ffae849f', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 12:22:29', NULL, '2023-05-16 11:52:29', NULL, '2023-05-16 12:23:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1853, 1, 2, '', 'c92d22b65173450a8e92cd0c96e13d66', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 12:53:27', NULL, '2023-05-16 12:23:27', NULL, '2023-05-16 13:01:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1854, 1, 2, '', 'f616f4b3ae844f5dbaad0d38cc90517c', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 12:53:27', NULL, '2023-05-16 12:23:27', NULL, '2023-05-16 13:01:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1855, 1, 2, '', '98b1940879394784b67dd81216bb2027', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 13:31:42', NULL, '2023-05-16 13:01:42', NULL, '2023-05-16 14:33:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1856, 1, 2, '', '7bc5717ba7d4452d8c2cf0e85bb75533', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 13:31:42', NULL, '2023-05-16 13:01:42', NULL, '2023-05-16 14:33:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1857, 1, 2, '', '13bdef60e1e046a9ad2e743715227271', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 15:03:47', NULL, '2023-05-16 14:33:47', NULL, '2023-05-16 15:53:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1858, 1, 2, '', '97abb8598d0e45d7a485daf291f8fd72', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 15:03:47', NULL, '2023-05-16 14:33:47', NULL, '2023-05-16 15:53:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1859, 1, 2, '', '92c44b71e1b243d1967198d40f0efffa', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 16:23:58', NULL, '2023-05-16 15:53:58', NULL, '2023-05-16 16:24:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1860, 1, 2, '', 'e72f0a49da5a48f6a0629692cd5eae71', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 16:54:27', NULL, '2023-05-16 16:24:27', NULL, '2023-05-16 16:54:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1861, 1, 2, '', 'd4fd13318e064c1e8c96ef92e31e5ae8', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 17:24:27', NULL, '2023-05-16 16:54:27', NULL, '2023-05-16 18:13:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1862, 1, 2, '', '14de636508c542bd9f1c652adaafc454', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 17:24:27', NULL, '2023-05-16 16:54:27', NULL, '2023-05-16 18:13:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1863, 1, 2, '', '6813f34f35984eb5a2133746417b3c02', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 18:43:27', NULL, '2023-05-16 18:13:27', NULL, '2023-05-16 18:49:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1864, 1, 2, '', 'd770c25f22ac44269f109011eabdf7db', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 18:43:27', NULL, '2023-05-16 18:13:27', NULL, '2023-05-16 18:49:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1865, 1, 2, '', 'fbd472e13b9247748b4270ff3592c265', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 19:19:03', NULL, '2023-05-16 18:49:03', NULL, '2023-05-16 18:49:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1866, 1, 2, '', '489bcaa1760f453887c259e9116d6d51', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 19:19:03', NULL, '2023-05-16 18:49:03', NULL, '2023-05-16 19:46:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1867, 1, 2, '', '4b1642789c9646ad80fa38e576fdad61', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 20:16:17', NULL, '2023-05-16 19:46:17', NULL, '2023-05-16 20:20:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1868, 1, 2, '', '1b448d12a7e64088bbb0d208e55b2594', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 20:16:17', NULL, '2023-05-16 19:46:17', NULL, '2023-05-16 20:20:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1869, 1, 2, '', '0f0aa356601d431b86a5c49d17ec0fcd', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 20:50:55', NULL, '2023-05-16 20:20:55', NULL, '2023-05-16 22:23:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1870, 1, 2, '', 'f5a1dbd1c9834e938c6c93e868bbfbbe', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 20:50:55', NULL, '2023-05-16 20:20:55', NULL, '2023-05-16 22:23:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1871, 1, 2, '', '61a05d5aeb2b429ea06b8f33682bd12b', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 22:53:01', NULL, '2023-05-16 22:23:01', NULL, '2023-05-17 00:59:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1872, 1, 2, '', '3336f00eba5b4766ac0687851a5e1e92', '6b340d3763424b9d90e3681640a36396', 'default', NULL, '2023-05-16 22:53:01', NULL, '2023-05-16 22:23:01', NULL, '2023-05-17 00:59:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1873, 1, 2, '', 'f4fdb03c07d64ce086ee2e247fb24bad', '61e37d8c2a5e4701bc524385c7f16d6e', 'default', NULL, '2023-05-17 10:13:18', NULL, '2023-05-17 09:43:18', NULL, '2023-05-17 10:14:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1874, 1, 2, '', '66dfb1585fb8473c95f932cbf890b7e2', '61e37d8c2a5e4701bc524385c7f16d6e', 'default', NULL, '2023-05-17 10:44:02', NULL, '2023-05-17 10:14:02', NULL, '2023-05-17 10:36:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1875, 1, 2, '', '074eb78465004f909ca1cf710c1d5240', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 11:06:24', NULL, '2023-05-17 10:36:24', NULL, '2023-05-17 11:06:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1876, 1, 2, '', '98aaedd9f2b04cc69f6f46b423f1165d', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 11:36:41', NULL, '2023-05-17 11:06:41', NULL, '2023-05-17 11:37:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1877, 1, 2, '', '69eb183619c14d2bab541173a9579004', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 12:07:44', NULL, '2023-05-17 11:37:44', NULL, '2023-05-17 12:09:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1878, 1, 2, '', '41e03824c0594150a44afb2161e4f6fd', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 12:39:01', NULL, '2023-05-17 12:09:01', NULL, '2023-05-17 12:09:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1879, 1, 2, '', 'bc4038c2feb64e30a57273e497deb990', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 12:39:01', NULL, '2023-05-17 12:09:01', NULL, '2023-05-17 12:09:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1880, 1, 2, '', 'c21c70739d6148abb52ce50ef5880353', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 12:39:01', NULL, '2023-05-17 12:09:01', NULL, '2023-05-17 12:50:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1881, 1, 2, '', 'a8c77b4a24024d47909eb853a4581bd2', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 13:20:24', NULL, '2023-05-17 12:50:24', NULL, '2023-05-17 12:50:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1882, 1, 2, '', '4e13b4457a4a401787105c5f2ed1adf7', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 13:20:24', NULL, '2023-05-17 12:50:24', NULL, '2023-05-17 13:25:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1883, 1, 2, '', '125a7558250a40699b5c3203e5876220', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 13:55:32', NULL, '2023-05-17 13:25:32', NULL, '2023-05-17 14:16:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1884, 1, 2, '', '6caa9bcc73c84a8b93e4dffb6c14d484', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 13:55:32', NULL, '2023-05-17 13:25:32', NULL, '2023-05-17 14:16:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1885, 1, 2, '', 'ae89fac452ba40c1a8c3ca5a88fec946', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 14:46:21', NULL, '2023-05-17 14:16:21', NULL, '2023-05-17 14:16:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1886, 1, 2, '', '0d7782bfc4f04745aca646cdc632ee4a', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 14:46:21', NULL, '2023-05-17 14:16:21', NULL, '2023-05-17 14:53:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1887, 1, 2, '', 'e1b3b3954d6048d48b16536ab6261363', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 15:23:20', NULL, '2023-05-17 14:53:20', NULL, '2023-05-17 14:53:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1888, 1, 2, '', 'b57417e91e6448eaa689d2c370eaf34f', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 15:23:20', NULL, '2023-05-17 14:53:20', NULL, '2023-05-17 15:24:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1889, 1, 2, '', '3fc9762bcd104e908cc56fae8484e112', 'da42d08c27ec49c78ba758c4ea437f93', 'default', NULL, '2023-05-17 15:54:04', NULL, '2023-05-17 15:24:04', NULL, '2023-05-17 15:32:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1890, 1, 2, '', '8d464967a0574468aecc2c088c7cb12e', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 16:02:36', NULL, '2023-05-17 15:32:36', NULL, '2023-05-17 16:02:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1891, 1, 2, '', '1110c22e6ade47eeab0d739c57815b63', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 16:32:39', NULL, '2023-05-17 16:02:39', NULL, '2023-05-17 16:02:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1892, 1, 2, '', 'dbefe0fbb9754c28ae1f4ad50f6c2982', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 16:32:39', NULL, '2023-05-17 16:02:39', NULL, '2023-05-17 16:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1893, 1, 2, '', '8c58dfc565294d5a87c78b718c2263a8', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 16:34:12', NULL, '2023-05-17 16:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1894, 1, 2, '', '7b6da464056945398d1cb3d17531e62c', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 16:34:12', NULL, '2023-05-17 16:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1895, 1, 2, '', '4ce781b8b83744f9924fd5bf439e747a', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 16:34:12', NULL, '2023-05-17 16:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1896, 1, 2, '', 'e460a01815a6425c958ddf896f871fc2', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 16:34:12', NULL, '2023-05-17 17:04:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1897, 1, 2, '', '5ab4d95152fc4443bb79b6173630e1e0', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 17:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1898, 1, 2, '', '6657cc1b745d4c1d893c5aff20213376', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 17:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1899, 1, 2, '', 'fdcc2102684945c2a8f6077f6b4b36ba', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 17:04:12', NULL, '2023-05-17 17:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1900, 1, 2, '', '0faeea4eb7c84f46b56d6e6979635230', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 17:34:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1901, 1, 2, '', 'ddcaffcd415847e682a6532bc044c559', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 18:04:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1902, 1, 2, '', 'd007693a00354a68987b11fba4df8470', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 18:04:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1903, 1, 2, '', 'f304582db9d64e1aae59a8ad83747474', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 17:34:12', NULL, '2023-05-17 18:04:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1904, 1, 2, '', 'f77659bf01174bf8a1fade55aedd4678', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:34:12', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 18:41:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1905, 1, 2, '', '7d2daaa94ff744c9824e62deebd3275d', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:34:12', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 18:41:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1906, 1, 2, '', '3c9c786af2a541569db208d738d98047', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:34:12', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 18:41:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1907, 1, 2, '', '128fc462cc3c475dbe22b3d36634f3a2', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 18:34:12', NULL, '2023-05-17 18:04:12', NULL, '2023-05-17 18:41:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1908, 1, 2, '', '0e72191e165341b0bf3e4e3348987233', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:11:14', NULL, '2023-05-17 18:41:14', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1909, 1, 2, '', '7592183274674048a8e60aa8a6a97d46', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:11:14', NULL, '2023-05-17 18:41:14', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1910, 1, 2, '', 'dc741cec07234f07b0aa52171f771153', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:11:14', NULL, '2023-05-17 18:41:14', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1911, 1, 2, '', '2aa4120df4bb434887cffeb3f722ec84', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:11:14', NULL, '2023-05-17 18:41:14', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1912, 1, 2, '', '2bd06ff502f74267a20614736e84d840', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:41:16', NULL, '2023-05-17 19:11:16', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1913, 1, 2, '', 'a1244038ff434feca4fa287bdf0f1b1c', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:41:16', NULL, '2023-05-17 19:11:16', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1914, 1, 2, '', '46c2d80239b646d894e85688ae455f0b', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:41:16', NULL, '2023-05-17 19:11:16', NULL, '2023-05-17 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1915, 1, 2, '', 'e02bbda3cce34644b967c8acff0c439a', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 19:41:16', NULL, '2023-05-17 19:11:16', NULL, '2023-05-17 20:12:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1916, 1, 2, '', 'a7c249a2507a443e95490bb914a36488', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 20:42:32', NULL, '2023-05-17 20:12:32', NULL, '2023-05-17 20:12:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1917, 1, 2, '', '5e0a9c0d56d943e5a1e1613db05f7468', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 20:42:32', NULL, '2023-05-17 20:12:32', NULL, '2023-05-17 20:12:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1918, 1, 2, '', '15988e3f0387433bb8fea58916332c88', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 20:42:32', NULL, '2023-05-17 20:12:32', NULL, '2023-05-17 20:12:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1919, 1, 2, '', '9bcc842e164d46e59cc7c3058e32f44c', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 20:42:32', NULL, '2023-05-17 20:12:32', NULL, '2023-05-17 20:12:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1920, 1, 2, '', 'e9b5e0b1a8154fdfb27a73ad8b1a2a31', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 20:42:32', NULL, '2023-05-17 20:12:32', NULL, '2023-05-17 22:47:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1921, 1, 2, '', '7b08107c46304cb48436306065d65db9', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:17:26', NULL, '2023-05-17 22:47:26', NULL, '2023-05-17 22:47:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1922, 1, 2, '', 'ad350c5ba6ef418c947d0c41215221bc', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:17:26', NULL, '2023-05-17 22:47:26', NULL, '2023-05-17 22:47:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1923, 1, 2, '', '522c986c539d45bfaae88f10dbeffae0', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:17:26', NULL, '2023-05-17 22:47:26', NULL, '2023-05-17 23:22:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1924, 1, 2, '', '784910bedcb04049b48e3db5961b1fd8', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:17:26', NULL, '2023-05-17 22:47:26', NULL, '2023-05-17 23:22:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1925, 1, 2, '', '798bdee9f15a47129a230ac6a1531f4c', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:52:03', NULL, '2023-05-17 23:22:03', NULL, '2023-05-17 23:22:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1926, 1, 2, '', '67de8b39a8654dee92785c642dd4a22b', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:52:03', NULL, '2023-05-17 23:22:03', NULL, '2023-05-17 23:22:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1927, 1, 2, '', '9f5db70bbc3142ce810d7b1a4984be84', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:52:03', NULL, '2023-05-17 23:22:03', NULL, '2023-05-17 23:22:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1928, 1, 2, '', 'fd6159879a59456799d13d46c855ebf4', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:52:03', NULL, '2023-05-17 23:22:03', NULL, '2023-05-18 00:07:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1929, 1, 2, '', '72e12dd1f28e4c12b91699629041133a', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-17 23:52:03', NULL, '2023-05-17 23:22:03', NULL, '2023-05-18 00:07:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1930, 1, 2, '', '9cca5f3bcb694ea4a2945b5de92cd37b', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 00:37:15', NULL, '2023-05-18 00:07:15', NULL, '2023-05-18 00:07:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1931, 1, 2, '', '6c2fc30af9814302b386e3e843f21ba2', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 00:37:15', NULL, '2023-05-18 00:07:15', NULL, '2023-05-18 00:07:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1932, 1, 2, '', '12e45cb99a494e508ca70ac8e5ba5916', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 00:37:15', NULL, '2023-05-18 00:07:15', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1933, 1, 2, '', 'e23949caf7ba4ba3a79b7ab34e13fafb', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 00:37:15', NULL, '2023-05-18 00:07:15', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1934, 1, 2, '', '28b3eb9c30244d83a223b9e975962ef8', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 03:11:59', NULL, '2023-05-18 02:41:59', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1935, 1, 2, '', 'dc34db6f67324aa0b09aef0619f7ce8a', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 03:11:59', NULL, '2023-05-18 02:41:59', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1936, 1, 2, '', '8b471c5177d645be84ee3b60d68d232f', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 03:11:59', NULL, '2023-05-18 02:41:59', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1937, 1, 2, '', '3cc3c9280a2d4f94acd30f9d77765057', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 03:11:59', NULL, '2023-05-18 02:41:59', NULL, '2023-05-18 02:41:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1938, 1, 2, '', 'ddb30b00c1154e73ac00f32398617ead', '980cc8b48f644d5ebf23f8ad67ea970a', 'default', NULL, '2023-05-18 03:11:59', NULL, '2023-05-18 02:41:59', NULL, '2023-05-18 05:11:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1939, 1, 2, '', '8442f44982424f9086889a9021433c46', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 10:38:43', NULL, '2023-05-18 10:08:43', NULL, '2023-05-18 10:39:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1940, 1, 2, '', '99ee83bd90e34681bc9b21d29275cc19', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 11:09:57', NULL, '2023-05-18 10:39:57', NULL, '2023-05-18 11:11:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1941, 1, 2, '', 'd5b236154b83438bbb8c4f8b5f756de0', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 11:41:42', NULL, '2023-05-18 11:11:42', NULL, '2023-05-18 11:45:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1942, 1, 2, '', '22363a0c3e9c4bbf95d3e233d1a74b74', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 12:15:55', NULL, '2023-05-18 11:45:55', NULL, '2023-05-18 12:20:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1943, 1, 2, '', '37174dc387b94f359667802008bb7cca', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 12:50:18', NULL, '2023-05-18 12:20:18', NULL, '2023-05-18 13:23:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1944, 1, 2, '', '7cdf1cf88d904db0802297af8ae6c21e', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 13:53:38', NULL, '2023-05-18 13:23:38', NULL, '2023-05-18 13:55:18', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1945, 1, 2, '', '545a62415cb64d63af4a09bf23cbf675', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 14:25:18', NULL, '2023-05-18 13:55:18', NULL, '2023-05-18 14:39:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1946, 1, 2, '', '7b248757ab164bd2a5aa0f473a51ecde', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 15:09:23', NULL, '2023-05-18 14:39:23', NULL, '2023-05-18 15:10:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1947, 1, 2, '', 'c604547d650343b29b0e1780818203b2', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 15:40:38', NULL, '2023-05-18 15:10:38', NULL, '2023-05-18 15:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1948, 1, 2, '', '0cba07dfa289470e834f278d94c5aebb', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 16:10:47', NULL, '2023-05-18 15:40:47', NULL, '2023-05-18 16:12:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1949, 1, 2, '', '0c98bef7e44d4d4e80f53ffc5cbe11af', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 16:42:36', NULL, '2023-05-18 16:12:36', NULL, '2023-05-18 16:43:33', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1950, 1, 2, '', 'af913149d8d64fb298b07c15f647c97d', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 17:13:33', NULL, '2023-05-18 16:43:33', NULL, '2023-05-18 17:37:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1951, 1, 2, '', 'cd8ca5c24f8e4872a9362fef64ebaa2d', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 18:07:35', NULL, '2023-05-18 17:37:35', NULL, '2023-05-18 18:08:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1952, 1, 2, '', '1d922166948b409c8e17d64f263280d6', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 18:38:07', NULL, '2023-05-18 18:08:07', NULL, '2023-05-18 18:39:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1953, 1, 2, '', '5c4cb65611124dd2b63c912f9d0464a7', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 19:09:43', NULL, '2023-05-18 18:39:43', NULL, '2023-05-18 19:18:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1954, 1, 2, '', '4b5b59b9fd4c453ba896d9b0accd585b', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 19:48:00', NULL, '2023-05-18 19:18:00', NULL, '2023-05-18 20:03:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1955, 1, 2, '', 'a88a179c39374913ba9c4712570009f2', '79eea49740de4c818263547f73259576', 'default', NULL, '2023-05-18 20:33:19', NULL, '2023-05-18 20:03:19', NULL, '2023-05-18 22:38:09', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1956, 1, 2, '', '77b4fc1e074f4688a9e091b13f42f47c', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 11:45:16', NULL, '2023-05-19 11:15:16', NULL, '2023-05-19 11:46:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1957, 1, 2, '', '1379b2a1d09341a6a278168e0cf20aa5', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 12:16:51', NULL, '2023-05-19 11:46:51', NULL, '2023-05-19 12:19:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1958, 1, 2, '', 'bb8fca19c45f428b8cb27c3f644df51d', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 12:49:03', NULL, '2023-05-19 12:19:03', NULL, '2023-05-19 13:04:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1959, 1, 2, '', '28b09dc1870646ed99644d711d6f5f7f', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 13:34:09', NULL, '2023-05-19 13:04:09', NULL, '2023-05-19 15:10:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1960, 1, 2, '', 'f5234da8d44346fc8f875966a82302f9', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 15:41:00', NULL, '2023-05-19 15:11:00', NULL, '2023-05-19 15:42:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1961, 1, 2, '', '3e5e262ef5d646bfa42f236d91fcd8fc', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 16:12:31', NULL, '2023-05-19 15:42:31', NULL, '2023-05-19 16:14:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1962, 1, 2, '', '833460c6f5ca4ed38b00c9c8bd590473', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 16:44:15', NULL, '2023-05-19 16:14:15', NULL, '2023-05-19 17:45:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1963, 1, 2, '', '52350e933b0b42199b27d091b65598c4', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 18:15:20', NULL, '2023-05-19 17:45:20', NULL, '2023-05-19 18:16:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1964, 1, 2, '', 'c985612335f34501b5097a76a0a0aeb6', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 18:46:27', NULL, '2023-05-19 18:16:27', NULL, '2023-05-19 18:56:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1965, 1, 2, '', 'b71b1736358f44c7a5169eb3ff317624', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 19:26:33', NULL, '2023-05-19 18:56:33', NULL, '2023-05-19 19:27:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1966, 1, 2, '', '3adc5b40b3814d82aac099a147b54668', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 19:57:25', NULL, '2023-05-19 19:27:25', NULL, '2023-05-19 20:02:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1967, 1, 2, '', 'cc22b0e068fa45578ce8cf2e048753c7', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 20:32:44', NULL, '2023-05-19 20:02:44', NULL, '2023-05-19 20:47:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1968, 1, 2, '', '07e7b3b6ebda475a90b24c3023c114d6', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 21:17:57', NULL, '2023-05-19 20:47:57', NULL, '2023-05-19 21:56:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1969, 1, 2, '', '42f832a1b714441fb455091f939acff5', '57bb985009dc4cf7bddc6ad79af3c7d2', 'default', NULL, '2023-05-19 22:26:15', NULL, '2023-05-19 21:56:15', NULL, '2023-05-20 00:04:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1970, 1, 2, '', '223b632025cc4ae19e603ba9ef21b252', '4acc066051154ac4999e5e96d7ea45db', 'default', NULL, '2023-05-20 21:36:58', NULL, '2023-05-20 21:06:58', NULL, '2023-05-20 21:38:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1971, 1, 2, '', '0836908397fd42249866651bc39dad08', '4acc066051154ac4999e5e96d7ea45db', 'default', NULL, '2023-05-20 22:08:18', NULL, '2023-05-20 21:38:18', NULL, '2023-05-21 16:18:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1972, 1, 2, '', '71e8bae1d1184ade8e4a36e5d1ab5afa', 'da94f8ec79fe4700a46863423341f6df', 'default', NULL, '2023-05-21 22:08:22', NULL, '2023-05-21 21:38:22', NULL, '2023-05-21 22:10:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1973, 1, 2, '', 'c5a552029812421aa5bac7617bc86039', 'da94f8ec79fe4700a46863423341f6df', 'default', NULL, '2023-05-21 22:40:05', NULL, '2023-05-21 22:10:05', NULL, '2023-05-21 22:41:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1974, 1, 2, '', '3b0cc2571d8a4e70a2dd1f88afceed86', 'da94f8ec79fe4700a46863423341f6df', 'default', NULL, '2023-05-21 23:11:23', NULL, '2023-05-21 22:41:23', NULL, '2023-05-21 22:41:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1975, 1, 2, '', 'a1ad790da0d443afbdbe1d958ba9d348', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-21 23:32:11', NULL, '2023-05-21 23:02:11', NULL, '2023-05-21 23:37:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1976, 1, 2, '', '52cbfb4f2055417b9d55b761c08234b0', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 00:07:17', NULL, '2023-05-21 23:37:17', NULL, '2023-05-22 00:07:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1977, 1, 2, '', '4bd7c632b0f54feb9747e80954c1734d', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 00:37:21', NULL, '2023-05-22 00:07:21', NULL, '2023-05-22 00:37:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1978, 1, 2, '', '231ea57d837b444aa8de3af29db581d3', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 01:07:38', NULL, '2023-05-22 00:37:38', NULL, '2023-05-22 00:37:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1979, 1, 2, '', '28bb94aaf3484fd49620caf7bc1b25a4', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 01:07:39', NULL, '2023-05-22 00:37:39', NULL, '2023-05-22 00:37:42', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1980, 1, 2, '', '66cbf7be569b48829a59f9a3772881db', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 01:07:43', NULL, '2023-05-22 00:37:43', NULL, '2023-05-22 01:08:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1981, 1, 2, '', '622edd885a4a4312bf939412df3f608a', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 01:38:11', NULL, '2023-05-22 01:08:11', NULL, '2023-05-22 01:39:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1982, 1, 2, '', '3d131e39d62947f892e1c795229f4a85', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 02:09:58', NULL, '2023-05-22 01:39:58', NULL, '2023-05-22 02:11:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1983, 1, 2, '', 'd488fb45d66642dd81e3937e66913a15', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 02:41:13', NULL, '2023-05-22 02:11:13', NULL, '2023-05-22 02:42:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1984, 1, 2, '', '6d7d108d74ed4e788495c5f23155e717', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 03:12:05', NULL, '2023-05-22 02:42:05', NULL, '2023-05-22 03:12:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1985, 1, 2, '', '6b0f447a186a4596be03c25a7b98043f', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 03:42:14', NULL, '2023-05-22 03:12:14', NULL, '2023-05-22 03:44:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1986, 1, 2, '', 'df88edda4d1745938eb76d80f2e2a87a', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 04:14:08', NULL, '2023-05-22 03:44:08', NULL, '2023-05-22 04:16:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1987, 1, 2, '', 'e6dfcf6afad34c5fa6e86f6a806cac89', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 04:46:11', NULL, '2023-05-22 04:16:11', NULL, '2023-05-22 04:48:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1988, 1, 2, '', '7d2f67ed85674cec876c4990c3420645', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 05:18:13', NULL, '2023-05-22 04:48:13', NULL, '2023-05-22 05:18:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1989, 1, 2, '', '22038346eaee4a39b98c97d907f6b76b', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 05:48:21', NULL, '2023-05-22 05:18:21', NULL, '2023-05-22 05:50:09', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1990, 1, 2, '', 'a4ea825ee1a945c8a600e26bb65c7819', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 06:20:09', NULL, '2023-05-22 05:50:09', NULL, '2023-05-22 06:22:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1991, 1, 2, '', '92a60e4103a94d479a6a0c0c089cb49e', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 06:52:20', NULL, '2023-05-22 06:22:20', NULL, '2023-05-22 06:53:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1992, 1, 2, '', '0c37faf4489d450393a8ab4af71c44ca', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 07:23:03', NULL, '2023-05-22 06:53:03', NULL, '2023-05-22 07:23:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1993, 1, 2, '', 'a12f200472404db2a8aa66aa182c0bd2', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 07:53:14', NULL, '2023-05-22 07:23:14', NULL, '2023-05-22 07:54:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1994, 1, 2, '', '561005eae3b14270b84b1fbc8f2d43f2', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 08:24:00', NULL, '2023-05-22 07:54:00', NULL, '2023-05-22 08:24:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1995, 1, 2, '', '23bdd7bceb0d41a985bd79129e24c01b', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 08:54:19', NULL, '2023-05-22 08:24:19', NULL, '2023-05-22 08:57:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1996, 1, 2, '', '9aa37214287d4772b18e1290307beb2c', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 09:27:14', NULL, '2023-05-22 08:57:14', NULL, '2023-05-22 09:57:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1997, 1, 2, '', '09e69abfffab4612bf0711e6ad9fd17e', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 10:27:57', NULL, '2023-05-22 09:57:57', NULL, '2023-05-22 10:27:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1998, 1, 2, '', '9756f9505dcd405f806ce4116281e76b', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 10:57:59', NULL, '2023-05-22 10:27:59', NULL, '2023-05-22 10:58:42', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (1999, 1, 2, '', '0646b3404980441d927566338f9248e7', '414461f65aef434486d8c6f82eb32a1b', 'default', NULL, '2023-05-22 11:28:42', NULL, '2023-05-22 10:58:42', NULL, '2023-05-22 22:56:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2000, 1, 2, '', '2cc309a5003f4a3498a0698c35f59236', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 12:33:17', NULL, '2023-05-22 12:03:17', NULL, '2023-05-22 12:33:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2001, 1, 2, '', '7e73e9284a4b4197a83832b6ba6e5b09', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 13:03:20', NULL, '2023-05-22 12:33:20', NULL, '2023-05-22 13:04:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2002, 1, 2, '', 'ca9e775170d147dabe53c44ec4440d27', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 13:34:19', NULL, '2023-05-22 13:04:19', NULL, '2023-05-22 13:34:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2003, 1, 2, '', '3a842e17d13443a9bf045dc300febcf2', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 14:04:41', NULL, '2023-05-22 13:34:41', NULL, '2023-05-22 14:05:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2004, 1, 2, '', 'e33ad668ff454195a28bed05dad4df91', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 14:35:20', NULL, '2023-05-22 14:05:20', NULL, '2023-05-22 14:05:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2005, 1, 2, '', 'b1daa4e986e64686af6b518dd96e1aa6', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 14:35:20', NULL, '2023-05-22 14:05:20', NULL, '2023-05-22 14:35:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2006, 1, 2, '', '177e14d926c44dee94032506f6f3ae1b', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 15:05:21', NULL, '2023-05-22 14:35:21', NULL, '2023-05-22 15:06:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2007, 1, 2, '', '8efdc2a353a943d289aac8f062e97ebc', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 15:05:21', NULL, '2023-05-22 14:35:21', NULL, '2023-05-22 15:06:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2008, 1, 2, '', 'f4fb366d8ffc449699631676f1fd71e0', 'd2a7614495424a1bb0ba5cae79b5660f', 'default', NULL, '2023-05-22 15:36:16', NULL, '2023-05-22 15:06:16', NULL, '2023-05-22 15:27:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2009, 1, 2, '', 'dfb86e66148241f895e9be8a4d5868d3', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 15:57:57', NULL, '2023-05-22 15:27:57', NULL, '2023-05-22 15:58:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2010, 1, 2, '', 'cd337858347a42999fd4a2639de972a5', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 16:28:19', NULL, '2023-05-22 15:58:19', NULL, '2023-05-22 16:28:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2011, 1, 2, '', 'dded61c84f504a08a1e2636000619db4', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 16:58:26', NULL, '2023-05-22 16:28:26', NULL, '2023-05-22 16:58:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2012, 1, 2, '', '6acf726ccdab4c8888b32b95a2f02f10', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 17:28:37', NULL, '2023-05-22 16:58:37', NULL, '2023-05-22 17:29:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2013, 1, 2, '', 'f34fbdc3019647f592b6adf0c690a194', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 17:59:31', NULL, '2023-05-22 17:29:31', NULL, '2023-05-22 18:00:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2014, 1, 2, '', '3d8a49458e834042a9c6c40c8b003af0', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 18:30:17', NULL, '2023-05-22 18:00:17', NULL, '2023-05-22 18:30:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2015, 1, 2, '', '63fe77917bb64ba3b1c9a299b642de17', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 19:00:23', NULL, '2023-05-22 18:30:23', NULL, '2023-05-22 18:30:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2016, 1, 2, '', 'bcfbdaac6b4f4eb4a0991916ea029010', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 19:00:23', NULL, '2023-05-22 18:30:23', NULL, '2023-05-22 19:00:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2017, 1, 2, '', '7863acbbc6714c088488fac48ff679f6', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 19:30:30', NULL, '2023-05-22 19:00:30', NULL, '2023-05-22 19:32:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2018, 1, 2, '', 'bb62ccec2fd541238f0a6da1532470f8', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 20:02:45', NULL, '2023-05-22 19:32:45', NULL, '2023-05-22 19:32:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2019, 1, 2, '', '827a616ef4864219bab30d62de2f6497', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 20:02:45', NULL, '2023-05-22 19:32:45', NULL, '2023-05-22 20:03:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2020, 1, 2, '', '5e55eb242d0e433781850f62001a9bb9', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 20:33:38', NULL, '2023-05-22 20:03:38', NULL, '2023-05-22 20:33:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2021, 1, 2, '', 'b929628be2804cd68ac07767f138631b', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 21:03:39', NULL, '2023-05-22 20:33:39', NULL, '2023-05-22 21:04:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2022, 1, 2, '', '225176087121448eb92e739d327bfde4', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 21:34:25', NULL, '2023-05-22 21:04:25', NULL, '2023-05-22 21:36:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2023, 1, 2, '', 'c43cc745090045928627c706ff38aed4', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 22:06:25', NULL, '2023-05-22 21:36:25', NULL, '2023-05-22 22:06:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2024, 1, 2, '', '00a4de8122ed43578597e1a79d98d2a5', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 22:06:25', NULL, '2023-05-22 21:36:25', NULL, '2023-05-22 22:06:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2025, 1, 2, '', '9ba5c80812bf4bb19ce7de8e74cffb8e', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 22:36:36', NULL, '2023-05-22 22:06:36', NULL, '2023-05-22 22:06:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2026, 1, 2, '', 'a93480661a0d4cdc900bba8be6bc1839', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 22:36:36', NULL, '2023-05-22 22:06:36', NULL, '2023-05-22 22:36:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2027, 1, 2, '', '7425c12893304daa8e5f7fdc991d7086', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 23:06:41', NULL, '2023-05-22 22:36:41', NULL, '2023-05-22 23:07:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2028, 1, 2, '', '0103e2a0945a449ca15eb925c72b0df3', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-22 23:26:45', NULL, '2023-05-22 22:56:45', NULL, '2023-05-22 23:26:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2029, 1, 2, '', '330ac009231d47c0895d066db3df9675', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-22 23:37:32', NULL, '2023-05-22 23:07:32', NULL, '2023-05-22 23:38:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2030, 1, 2, '', '63b5757b077a43578d28a03cd406a98f', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-22 23:56:58', NULL, '2023-05-22 23:26:58', NULL, '2023-05-22 23:56:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2031, 1, 2, '', 'fb9a47f172464c7f97df9b760f2834fc', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 00:08:28', NULL, '2023-05-22 23:38:28', NULL, '2023-05-22 23:38:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2032, 1, 2, '', 'ea2383cb13fd4c578398090d7b46375b', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 00:08:28', NULL, '2023-05-22 23:38:28', NULL, '2023-05-23 00:10:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2033, 1, 2, '', '4c6178adf51740fd909e2c624950dc9f', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 00:26:59', NULL, '2023-05-22 23:56:59', NULL, '2023-05-23 00:27:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2034, 1, 2, '', '1a88982058f14f8b806afdc95ad5a8ad', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 00:40:27', NULL, '2023-05-23 00:10:27', NULL, '2023-05-23 00:10:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2035, 1, 2, '', '96c020ec308947008edd6f65ccb67bde', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 00:40:27', NULL, '2023-05-23 00:10:27', NULL, '2023-05-23 00:41:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2036, 1, 2, '', 'ae65640595524ef4bdc9acbb8650c82c', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 00:57:29', NULL, '2023-05-23 00:27:29', NULL, '2023-05-23 00:57:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2037, 1, 2, '', 'a74ca1811e3346f39cf69defcfd91a39', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 01:11:36', NULL, '2023-05-23 00:41:36', NULL, '2023-05-23 01:12:33', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2038, 1, 2, '', '67d68588aaec4b0395c65c08882cc181', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 01:27:30', NULL, '2023-05-23 00:57:30', NULL, '2023-05-23 01:29:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2039, 1, 2, '', '52896f64a64441149deef475c4f04c7a', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 01:42:33', NULL, '2023-05-23 01:12:33', NULL, '2023-05-23 01:12:33', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2040, 1, 2, '', 'd96745e0244d42b1a3fbed7a928b65aa', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 01:42:33', NULL, '2023-05-23 01:12:33', NULL, '2023-05-23 01:42:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2041, 1, 2, '', 'd812f88b9e99448d97be87815beb6ae5', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 01:59:41', NULL, '2023-05-23 01:29:41', NULL, '2023-05-23 02:02:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2042, 1, 2, '', '65ce3741c996417fb8eccd0de7270aff', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 02:12:35', NULL, '2023-05-23 01:42:35', NULL, '2023-05-23 02:13:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2043, 1, 2, '', '3e3a66fac19b4cebaefdf4987c797d4b', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 02:32:17', NULL, '2023-05-23 02:02:17', NULL, '2023-05-23 02:37:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2044, 1, 2, '', 'f4b1f53a467d484b9ccde34dd8ed1e51', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 02:43:40', NULL, '2023-05-23 02:13:40', NULL, '2023-05-23 02:44:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2045, 1, 2, '', '9ac2eb968df0489c8f49a986d1459571', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 03:07:55', NULL, '2023-05-23 02:37:55', NULL, '2023-05-23 03:19:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2046, 1, 2, '', '2a4170a5099e46a7af2a778128293823', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 03:14:33', NULL, '2023-05-23 02:44:33', NULL, '2023-05-23 02:44:32', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2047, 1, 2, '', '37895958a19f4e5b92f2ccb9d80addeb', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 03:14:33', NULL, '2023-05-23 02:44:33', NULL, '2023-05-23 03:14:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2048, 1, 2, '', '7bf4ce802dc9408792ace6057755fef7', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 03:44:36', NULL, '2023-05-23 03:14:36', NULL, '2023-05-23 03:14:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2049, 1, 2, '', '4fb805ae51a64be5a37a4f919de38b60', '8282b6e8597342348fe04b2642724c39', 'default', NULL, '2023-05-23 03:44:36', NULL, '2023-05-23 03:14:36', NULL, '2023-05-23 03:46:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2050, 1, 2, '', 'b3bcbeb9b52b43c390c7bc5644ff6be5', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 03:49:00', NULL, '2023-05-23 03:19:00', NULL, '2023-05-23 03:49:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2051, 1, 2, '', '13a3bf2a1b224ccf841b436f967558e7', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 04:19:38', NULL, '2023-05-23 03:49:38', NULL, '2023-05-23 04:23:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2052, 1, 2, '', '47656beb7ba04ff99eeb9fc00bd212dd', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 04:53:58', NULL, '2023-05-23 04:23:58', NULL, '2023-05-23 04:59:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2053, 1, 2, '', 'b505c1222e7841b49209e8d617d6d763', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 05:29:00', NULL, '2023-05-23 04:59:00', NULL, '2023-05-23 05:30:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2054, 1, 2, '', '87201e639327496ea37db5a80717f0de', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 06:00:24', NULL, '2023-05-23 05:30:24', NULL, '2023-05-23 06:01:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2055, 1, 2, '', 'a783b1bf0505475a8b01a8495356d4a7', 'c04ed4b71f204ed89492b8bb1bd32e5c', 'default', NULL, '2023-05-23 06:31:21', NULL, '2023-05-23 06:01:21', NULL, '2023-05-23 06:01:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2056, 1, 2, '', '89250acc6df94af49fd51d2d810a7d15', '8757f7827c804c34bd651ca808c9839b', 'default', NULL, '2023-05-23 09:51:05', NULL, '2023-05-23 09:21:05', NULL, '2023-05-23 09:21:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2057, 1, 2, '', '5d025a1aa91046428641084d057ea13c', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 09:51:27', NULL, '2023-05-23 09:21:27', NULL, '2023-05-23 09:53:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2058, 1, 2, '', '2d254e78aa054fe8a09f0cdf00d40df1', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 10:23:02', NULL, '2023-05-23 09:53:02', NULL, '2023-05-23 10:23:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2059, 1, 2, '', 'ef3dbd73aef7498dba88741d7c12c7ff', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 10:53:17', NULL, '2023-05-23 10:23:17', NULL, '2023-05-23 10:53:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2060, 1, 2, '', 'e98df668338749cd9580b9883036f95a', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 11:23:29', NULL, '2023-05-23 10:53:29', NULL, '2023-05-23 11:23:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2061, 1, 2, '', 'b44961e55ea14de49e3baa9923aac0e8', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 11:53:31', NULL, '2023-05-23 11:23:31', NULL, '2023-05-23 11:54:18', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2062, 1, 2, '', 'd94f8bb37ea244f49e16680b3c52d43b', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 12:24:19', NULL, '2023-05-23 11:54:19', NULL, '2023-05-23 12:25:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2063, 1, 2, '', 'b7926da7b1364dd9b22760243d316002', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 12:55:21', NULL, '2023-05-23 12:25:21', NULL, '2023-05-23 12:55:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2064, 1, 2, '', '5982d37c616546578112b368da432d34', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 13:25:26', NULL, '2023-05-23 12:55:26', NULL, '2023-05-23 13:25:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2065, 1, 2, '', 'ec51229909844d40a3cdc3a9a547adf8', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 13:55:30', NULL, '2023-05-23 13:25:30', NULL, '2023-05-23 13:55:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2066, 1, 2, '', '8d372f4951294501aba82431d886cf3a', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 14:25:34', NULL, '2023-05-23 13:55:34', NULL, '2023-05-23 13:55:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2067, 1, 2, '', 'b3cce97da77a4632a9aa8a9904b30b47', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 14:25:34', NULL, '2023-05-23 13:55:34', NULL, '2023-05-23 14:26:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2068, 1, 2, '', 'f60be11483894b959077665cd5bed57e', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 14:56:27', NULL, '2023-05-23 14:26:27', NULL, '2023-05-23 14:57:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2069, 1, 2, '', '1093f15363424fc881d472ead7aab1aa', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 15:27:26', NULL, '2023-05-23 14:57:26', NULL, '2023-05-23 15:27:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2070, 1, 2, '', '9ee4aacd1f2c4fb085cae7bccb1da5ef', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 15:57:28', NULL, '2023-05-23 15:27:28', NULL, '2023-05-23 15:58:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2071, 1, 2, '', 'd11754952c9640bea52a58d2e3132e9b', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 16:28:17', NULL, '2023-05-23 15:58:17', NULL, '2023-05-23 16:29:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2072, 1, 2, '', '7e413ae99e764891bf39ecf9089e9261', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 16:59:26', NULL, '2023-05-23 16:29:26', NULL, '2023-05-23 17:00:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2073, 1, 2, '', '43e313b21399420db544bc7908c751a8', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 17:30:20', NULL, '2023-05-23 17:00:20', NULL, '2023-05-23 17:30:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2074, 1, 2, '', 'fc7492d79fd34c48929d402bd3f0eb62', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 18:00:25', NULL, '2023-05-23 17:30:25', NULL, '2023-05-23 18:01:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2075, 1, 2, '', '2d1092a5a54844179a49933549eda6fb', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 18:31:17', NULL, '2023-05-23 18:01:17', NULL, '2023-05-23 18:31:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2076, 1, 2, '', 'ca10ccb7bb1a4cf194a90b358f36f720', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 19:01:35', NULL, '2023-05-23 18:31:35', NULL, '2023-05-23 19:03:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2077, 1, 2, '', 'd7d029a9e0e848c3a4b6a9a00e15c0db', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 19:33:26', NULL, '2023-05-23 19:03:26', NULL, '2023-05-23 20:15:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2078, 1, 2, '', 'c4769d9c9b294ec9b0e65d250ecec0db', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 20:45:04', NULL, '2023-05-23 20:15:04', NULL, '2023-05-23 20:46:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2079, 1, 2, '', '36404d8d97b04a89a96cd1c0ca8108c1', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 21:16:14', NULL, '2023-05-23 20:46:14', NULL, '2023-05-23 21:16:18', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2080, 1, 2, '', 'e5d905fe674e4ad3ae8986491b96200f', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 21:16:14', NULL, '2023-05-23 20:46:14', NULL, '2023-05-23 21:16:18', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2081, 1, 2, '', '5e1a36db74f240968a84a90d50180374', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 21:46:19', NULL, '2023-05-23 21:16:19', NULL, '2023-05-23 21:46:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2082, 1, 2, '', '7d4ddae48a24442aa30a908910e163c0', '07b76869ffa64fcab8ba24b1a801e927', 'default', NULL, '2023-05-23 21:46:19', NULL, '2023-05-23 21:16:19', NULL, '2023-05-23 21:46:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2083, 1, 2, '', 'fbe8fb3e740b4d6ebd74a9cf75a9319c', 'b906d47492234acea35e538d48731a0e', 'default', NULL, '2023-05-24 09:57:39', NULL, '2023-05-24 09:27:39', NULL, '2023-05-24 09:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2084, 1, 2, '', 'af7ee682ff4a445b880a8f7390332254', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 09:57:45', '1', '2023-05-24 09:27:45', '1', '2023-05-24 09:58:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2085, 1, 2, '', 'c5971cd2ef904837a1e96049aebee024', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 10:28:28', NULL, '2023-05-24 09:58:28', NULL, '2023-05-24 09:58:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2086, 1, 2, '', '6c90635775a248178960ff1c38adabec', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 10:28:28', NULL, '2023-05-24 09:58:28', NULL, '2023-05-24 10:29:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2087, 1, 2, '', '9305c1de5fba45febebb0ed50bcb685e', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 10:59:43', NULL, '2023-05-24 10:29:43', NULL, '2023-05-24 10:59:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2088, 1, 2, '', '85f7ef46fdc14c54959aee0c224e8678', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 11:29:45', NULL, '2023-05-24 10:59:45', NULL, '2023-05-24 11:29:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2089, 1, 2, '', 'a91d42d9ede94fb8878436b49d0a74db', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 11:59:45', NULL, '2023-05-24 11:29:45', NULL, '2023-05-24 11:59:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2090, 1, 2, '', 'ee0beec335614121bb74f724dd360509', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 12:29:45', NULL, '2023-05-24 11:59:45', NULL, '2023-05-24 12:30:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2091, 1, 2, '', 'c0d8c881291145279ade470d237e61ac', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 13:00:41', NULL, '2023-05-24 12:30:41', NULL, '2023-05-24 13:00:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2092, 1, 2, '', '634fbe66333642ed9526fefb0986421b', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 13:30:58', NULL, '2023-05-24 13:00:58', NULL, '2023-05-24 13:31:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2093, 1, 2, '', '52b41dd14e704c3887e343d66cef9c85', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 14:01:43', NULL, '2023-05-24 13:31:43', NULL, '2023-05-24 14:01:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2094, 1, 2, '', 'd2a55ac8cdfb49f0adca4ad196c48c9e', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 14:31:43', NULL, '2023-05-24 14:01:43', NULL, '2023-05-24 14:32:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2095, 1, 2, '', '6962a1a746cf41cd9f8c4023c5de4ab3', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 15:02:09', NULL, '2023-05-24 14:32:09', NULL, '2023-05-24 15:02:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2096, 1, 2, '', 'a0752c1c1b2c432cbca109c7c5327e57', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 15:32:45', NULL, '2023-05-24 15:02:45', NULL, '2023-05-24 15:02:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2097, 1, 2, '', 'c9cac4b7058f4edaab874337d48056f2', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 15:32:45', NULL, '2023-05-24 15:02:45', NULL, '2023-05-24 15:02:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2098, 1, 2, '', '3a0ddf04ba7548928442557f48c1d05c', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 15:32:45', NULL, '2023-05-24 15:02:45', NULL, '2023-05-24 15:34:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2099, 1, 2, '', '4d19445395264619b5ab7305063d6f36', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 16:04:47', NULL, '2023-05-24 15:34:47', NULL, '2023-05-24 16:04:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2100, 1, 2, '', 'cb4263e04fe746c69f21055aed1021da', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 16:04:47', NULL, '2023-05-24 15:34:47', NULL, '2023-05-24 16:04:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2101, 1, 2, '', 'f709fb2b08fd4a4b93e3425fa63ee377', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 16:04:47', NULL, '2023-05-24 15:34:47', NULL, '2023-05-24 16:04:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2102, 1, 2, '', '618906cd9d3949ef8042db664f6fac29', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 16:34:53', NULL, '2023-05-24 16:04:53', NULL, '2023-05-24 16:36:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2103, 1, 2, '', 'c049a35f3e08432487c1b34c023e5e5f', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:06:52', NULL, '2023-05-24 16:36:52', NULL, '2023-05-24 16:36:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2104, 1, 2, '', 'fd19181266b64166b241994d54ea1db5', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:06:52', NULL, '2023-05-24 16:36:52', NULL, '2023-05-24 16:36:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2105, 1, 2, '', '1ad98cb2837d4afdb4e6107d784bb454', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:06:52', NULL, '2023-05-24 16:36:52', NULL, '2023-05-24 16:36:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2106, 1, 2, '', '557a599819974b31a6d861efed2bea41', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:06:52', NULL, '2023-05-24 16:36:52', NULL, '2023-05-24 17:08:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2107, 1, 2, '', 'dac4c5ab093d40958f594ceaed79dcbc', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:38:37', NULL, '2023-05-24 17:08:37', NULL, '2023-05-24 17:08:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2108, 1, 2, '', '159fa307b6f74f429b2f9afea9f489fa', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:38:37', NULL, '2023-05-24 17:08:37', NULL, '2023-05-24 17:08:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2109, 1, 2, '', '5e5fc41304534d03a96e68e785c8b147', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 17:38:37', NULL, '2023-05-24 17:08:37', NULL, '2023-05-24 17:38:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2110, 1, 2, '', '02b3ab8027e04bc8a2be328c115413ec', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 18:08:41', NULL, '2023-05-24 17:38:41', NULL, '2023-05-24 17:38:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2111, 1, 2, '', 'b0a0ead4c1e745d481328834a7cc8ce6', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 18:08:41', NULL, '2023-05-24 17:38:41', NULL, '2023-05-24 18:10:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2112, 1, 2, '', '0bf3c545d9fb4730a305280c1e4d6493', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 18:40:36', NULL, '2023-05-24 18:10:36', NULL, '2023-05-24 18:10:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2113, 1, 2, '', 'dc7217c1db684574af62463f47d1399f', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 18:40:36', NULL, '2023-05-24 18:10:36', NULL, '2023-05-24 18:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2114, 1, 2, '', '01fa07f97dd44c4c8fca4240642357bf', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 18:40:36', NULL, '2023-05-24 18:10:36', NULL, '2023-05-24 18:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2115, 1, 2, '', 'ad2f75f97a5647af98581755c537bff5', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:10:46', NULL, '2023-05-24 18:40:46', NULL, '2023-05-24 18:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2116, 1, 2, '', 'fa43abd6ba5a4718af89e230b7af2ea2', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:10:46', NULL, '2023-05-24 18:40:46', NULL, '2023-05-24 18:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2117, 1, 2, '', 'adec577d003c41ec82661952dc90c51b', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:10:46', NULL, '2023-05-24 18:40:46', NULL, '2023-05-24 18:40:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2118, 1, 2, '', 'faa6bbbd1c014279bed46410c06ddc45', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:10:46', NULL, '2023-05-24 18:40:46', NULL, '2023-05-24 19:12:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2119, 1, 2, '', '2fef4a0439bb4432b9a0810467e6d2d3', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:42:39', NULL, '2023-05-24 19:12:39', NULL, '2023-05-24 19:55:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2120, 1, 2, '', 'ad141e86ac7549c0bc8a3628c04676f6', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:42:39', NULL, '2023-05-24 19:12:39', NULL, '2023-05-24 19:55:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2121, 1, 2, '', 'c3b46d381fb0444aa7c05e448bb06dea', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 19:42:39', NULL, '2023-05-24 19:12:39', NULL, '2023-05-24 19:55:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2122, 1, 2, '', '09773ce0d3894090914722b3e1c38b6a', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 20:25:01', NULL, '2023-05-24 19:55:01', NULL, '2023-05-24 19:55:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2123, 1, 2, '', 'e2954acd7b044e39b620b2ac1eff784b', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 20:25:01', NULL, '2023-05-24 19:55:01', NULL, '2023-05-24 19:55:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2124, 1, 2, '', 'd2779486c8dd43fd95ea111a54e37870', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 20:25:01', NULL, '2023-05-24 19:55:01', NULL, '2023-05-24 20:33:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2125, 1, 2, '', 'a91cc9ae1b384877a4170ad0c735bcbc', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 21:03:21', NULL, '2023-05-24 20:33:21', NULL, '2023-05-24 21:33:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2126, 1, 2, '', 'c350ff6b0eaa4a98b4d782d1777c131a', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 21:03:21', NULL, '2023-05-24 20:33:21', NULL, '2023-05-24 21:33:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2127, 1, 2, '', '52837a8a00c34152bc443c667d81be13', '811f1a7504aa466986ebb5fd1b192515', 'default', NULL, '2023-05-24 21:03:21', NULL, '2023-05-24 20:33:21', NULL, '2023-05-24 21:33:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2128, 1, 2, '', '2ad7a3925d1148d988cbde6dce799bde', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 12:05:10', NULL, '2023-05-25 11:35:10', NULL, '2023-05-25 12:05:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2129, 1, 2, '', '6c8250535ee54af787cf814a20161b07', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 12:35:51', NULL, '2023-05-25 12:05:51', NULL, '2023-05-25 12:36:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2130, 1, 2, '', 'bff9cf2dbeab41aab0122280ff1cbab2', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:06:06', NULL, '2023-05-25 12:36:06', NULL, '2023-05-25 12:36:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2131, 1, 2, '', 'e98c2be0a38e4e7ab6de62ccc5f75e1a', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:06:06', NULL, '2023-05-25 12:36:06', NULL, '2023-05-25 12:36:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2132, 1, 2, '', 'b7f60363413845dea0e1766f424b657f', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:06:06', NULL, '2023-05-25 12:36:06', NULL, '2023-05-25 13:06:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2133, 1, 2, '', '95432a05d9644182a1a3681f813a6c73', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:36:54', NULL, '2023-05-25 13:06:54', NULL, '2023-05-25 13:06:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2134, 1, 2, '', 'bd41a55eb8764e3e82158846ca668349', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:36:54', NULL, '2023-05-25 13:06:54', NULL, '2023-05-25 13:06:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2135, 1, 2, '', '4b0ce0727a1a48f797e3afa2173d43c9', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 13:36:54', NULL, '2023-05-25 13:06:54', NULL, '2023-05-25 13:37:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2136, 1, 2, '', '52494df19df641b9ab02d944be8a1c5e', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 14:07:08', NULL, '2023-05-25 13:37:08', NULL, '2023-05-25 14:08:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2137, 1, 2, '', 'cc86833a3efc4d558edb8e9ebe195272', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 14:38:10', NULL, '2023-05-25 14:08:10', NULL, '2023-05-25 14:38:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2138, 1, 2, '', '02de7122b7a5410aa74ea98559718fb8', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 14:38:10', NULL, '2023-05-25 14:08:10', NULL, '2023-05-25 14:38:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2139, 1, 2, '', '7327b960a5d141eab52c948e9909e4d8', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 15:08:46', NULL, '2023-05-25 14:38:46', NULL, '2023-05-25 15:08:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2140, 1, 2, '', 'a8e92baec5f04c70904d3710d9849a1c', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 15:38:49', NULL, '2023-05-25 15:08:49', NULL, '2023-05-25 15:08:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2141, 1, 2, '', 'd55b12cbfa694cd69d8f3c7fc904165f', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 15:38:49', NULL, '2023-05-25 15:08:49', NULL, '2023-05-25 15:39:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2142, 1, 2, '', '7b2f3256765247cf884d46d2d7483d27', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 16:09:42', NULL, '2023-05-25 15:39:42', NULL, '2023-05-25 16:09:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2143, 1, 2, '', 'e051f25af2964d2cb72b91c53cc84539', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 16:39:47', NULL, '2023-05-25 16:09:47', NULL, '2023-05-25 16:39:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2144, 1, 2, '', '2379134172be421e9f3566a98c6f3d65', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 17:09:48', NULL, '2023-05-25 16:39:48', NULL, '2023-05-25 17:10:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2145, 1, 2, '', '909b4d650e6a415ea0292c08ddbeba5c', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 17:40:07', NULL, '2023-05-25 17:10:07', NULL, '2023-05-25 17:40:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2146, 1, 2, '', '766bce959b1d42749e5d6b70208eeaba', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 18:10:53', NULL, '2023-05-25 17:40:53', NULL, '2023-05-25 18:10:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2147, 1, 2, '', 'd27dbfd0862b4c4cb04e2824ff65c6ae', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 18:40:53', NULL, '2023-05-25 18:10:53', NULL, '2023-05-25 18:40:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2148, 1, 2, '', '69d342c35690486a838243a259e02308', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 19:10:59', NULL, '2023-05-25 18:40:59', NULL, '2023-05-25 19:11:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2149, 1, 2, '', '13e50e40d85e40f296d63fb108b958e5', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 19:41:38', NULL, '2023-05-25 19:11:38', NULL, '2023-05-25 19:41:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2150, 1, 2, '', '82c0f1af85c84ecda5d9ea893f64b9c6', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 20:11:57', NULL, '2023-05-25 19:41:57', NULL, '2023-05-25 20:13:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2151, 1, 2, '', '476e0b6bdcb84c10a3407429f5dadde1', 'd1dece0cd9854a1b85eed67d7f497145', 'default', NULL, '2023-05-25 20:43:46', NULL, '2023-05-25 20:13:46', NULL, '2023-05-25 20:13:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2152, 1, 2, '', '50f176d5365f466d9d3c0d95254dfb74', '82da81c9c311442fbbad0f1113409c25', 'default', NULL, '2023-05-25 20:51:00', NULL, '2023-05-25 20:21:00', NULL, '2023-05-25 20:51:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2153, 1, 2, '', '7c6bc17c7ff645d6bc8e85e6302c626a', '82da81c9c311442fbbad0f1113409c25', 'default', NULL, '2023-05-25 21:21:01', NULL, '2023-05-25 20:51:01', NULL, '2023-05-25 20:51:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2154, 1, 2, '', 'aac1c5dabefd424a84fcec4a2f974a9c', '82da81c9c311442fbbad0f1113409c25', 'default', NULL, '2023-05-25 21:21:01', NULL, '2023-05-25 20:51:01', NULL, '2023-05-25 21:08:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2155, 1, 2, '', '155dfb76628041b0abd1a229183eb6a8', 'b68dc49d5f9b458ea0a32b7b9c887db2', 'default', NULL, '2023-05-25 21:38:59', NULL, '2023-05-25 21:08:59', NULL, '2023-05-25 23:13:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2156, 1, 2, '', '204ad4685ac940b69fe3e1b27b8e540e', 'b68dc49d5f9b458ea0a32b7b9c887db2', 'default', NULL, '2023-05-25 23:43:51', NULL, '2023-05-25 23:13:51', NULL, '2023-05-26 09:34:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2157, 1, 2, '', 'df4c3ec60e904bf6a1c90cd1b40139f8', 'b68dc49d5f9b458ea0a32b7b9c887db2', 'default', NULL, '2023-05-25 23:43:51', NULL, '2023-05-25 23:13:51', NULL, '2023-05-26 09:34:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2158, 1, 2, '', 'bdf48ddaab024572825755d9c98f21bb', 'b68dc49d5f9b458ea0a32b7b9c887db2', 'default', NULL, '2023-05-25 23:43:51', NULL, '2023-05-25 23:13:51', NULL, '2023-05-26 09:34:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2159, 1, 2, '', '3d42200f01ef4501a6d24d89abe46c30', '74f587d57d6f4b65abb6d92b0ace4f40', 'default', NULL, '2023-05-26 14:12:20', NULL, '2023-05-26 13:42:20', NULL, '2023-05-26 14:12:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2160, 1, 2, '', '788ff70d73a046d6bdae72e1057a065a', '74f587d57d6f4b65abb6d92b0ace4f40', 'default', NULL, '2023-05-26 14:42:55', NULL, '2023-05-26 14:12:55', NULL, '2023-05-26 14:24:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2161, 1, 2, '', '7b32ab79b293471ebc414ae1ab6c31ea', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 14:54:12', NULL, '2023-05-26 14:24:12', NULL, '2023-05-26 14:54:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2162, 1, 2, '', 'ef8d732287f84dcaaeda23bd67a8b3a0', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:24:14', NULL, '2023-05-26 14:54:14', NULL, '2023-05-26 14:54:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2163, 1, 2, '', '38fbbcc580ac4b4090875d03acdef11c', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:24:14', NULL, '2023-05-26 14:54:14', NULL, '2023-05-26 15:25:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2164, 1, 2, '', 'de1368a2719643bb97efeee0c586dcae', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:24:14', NULL, '2023-05-26 14:54:14', NULL, '2023-05-26 15:25:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2165, 1, 2, '', '40be17e8f9dc4e6dab3dac1afb2632c4', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:24:14', NULL, '2023-05-26 14:54:14', NULL, '2023-05-26 15:25:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2166, 1, 2, '', 'f323a3adf00d4426ba7d9378444f1b3a', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:55:09', NULL, '2023-05-26 15:25:09', NULL, '2023-05-26 15:25:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2167, 1, 2, '', '08059f64b63547ecb09804ccf5cf625d', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 15:55:09', NULL, '2023-05-26 15:25:09', NULL, '2023-05-26 15:55:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2168, 1, 2, '', '9400f604e6624321950a34d3c186158d', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 16:25:19', NULL, '2023-05-26 15:55:19', NULL, '2023-05-26 15:55:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2169, 1, 2, '', '1730cb94eb8d4f8ba14055578bb2c706', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 16:25:20', NULL, '2023-05-26 15:55:20', NULL, '2023-05-26 16:25:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2170, 1, 2, '', 'c68e72ae93864f6bb911af12bd03483f', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 16:55:47', NULL, '2023-05-26 16:25:47', NULL, '2023-05-26 16:56:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2171, 1, 2, '', 'ebc5f9cb4f0f4499a1f822f835a4fb77', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 17:26:01', NULL, '2023-05-26 16:56:01', NULL, '2023-05-26 17:26:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2172, 1, 2, '', '6b35c02e5d9943bc997c00bf6315d765', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 17:56:02', NULL, '2023-05-26 17:26:02', NULL, '2023-05-26 17:57:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2173, 1, 2, '', '05186ad45e2242a6b15449908e554676', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 18:27:08', NULL, '2023-05-26 17:57:08', NULL, '2023-05-26 17:57:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2174, 1, 2, '', '9febf517491743e6a17c4a04f1c293b1', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 18:27:08', NULL, '2023-05-26 17:57:08', NULL, '2023-05-26 18:27:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2175, 1, 2, '', 'e6cb33da36cd41d698580fb186a63d56', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 18:57:59', NULL, '2023-05-26 18:27:59', NULL, '2023-05-26 19:02:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2176, 1, 2, '', '23c9edd8146940c896f88415dc1e57d2', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 19:32:30', NULL, '2023-05-26 19:02:30', NULL, '2023-05-26 19:02:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2177, 1, 2, '', '7b4fdfd092ed44bd865ac44e3fc73520', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 19:32:30', NULL, '2023-05-26 19:02:30', NULL, '2023-05-26 19:57:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2178, 1, 2, '', 'd5d81ecb167540819ac4b029eb1dbcdf', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 19:32:30', NULL, '2023-05-26 19:02:30', NULL, '2023-05-26 19:57:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2179, 1, 2, '', '5117d74efd7a468fb67aee95553601f9', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 20:27:27', NULL, '2023-05-26 19:57:27', NULL, '2023-05-26 19:57:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2180, 1, 2, '', '0bc696a9277a4476a67935a4e678e4b3', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 20:27:27', NULL, '2023-05-26 19:57:27', NULL, '2023-05-26 19:57:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2181, 1, 2, '', '60bc4b3c34e7475283997512f014a067', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 20:27:27', NULL, '2023-05-26 19:57:27', NULL, '2023-05-26 20:33:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2182, 1, 2, '', 'bf21a04809384aee8a67b8a3b7986c52', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 21:03:15', NULL, '2023-05-26 20:33:15', NULL, '2023-05-26 21:23:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2183, 1, 2, '', '889259cc8dfe428caea8b3c13dd85b60', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 21:53:50', NULL, '2023-05-26 21:23:50', NULL, '2023-05-26 21:23:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2184, 1, 2, '', 'aec64923dcee42bb9481e3dbbb18aad3', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 21:53:50', NULL, '2023-05-26 21:23:50', NULL, '2023-05-26 21:55:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2185, 1, 2, '', 'a5e81d7cec4c41f0bc419899663e5287', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:25:30', NULL, '2023-05-26 21:55:30', NULL, '2023-05-26 21:55:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2186, 1, 2, '', '69f1bf8d026e423ea125288c4e334ed8', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:25:30', NULL, '2023-05-26 21:55:30', NULL, '2023-05-26 22:27:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2187, 1, 2, '', '6b9f06c312fc44628b9ecb65ac35acda', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:25:30', NULL, '2023-05-26 21:55:30', NULL, '2023-05-26 22:27:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2188, 1, 2, '', 'd3661b7c7d274e0e9166ebe4e558475e', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:57:01', NULL, '2023-05-26 22:27:01', NULL, '2023-05-26 22:27:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2189, 1, 2, '', '5c877c7a27e7466ba5ae43da5f9ca195', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:57:01', NULL, '2023-05-26 22:27:01', NULL, '2023-05-26 22:27:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2190, 1, 2, '', '61c0a4f276ee4312b4aa2a3ac736ffc4', 'abf7a1ce40064aa5a37227b6f7d62aa0', 'default', NULL, '2023-05-26 22:57:01', NULL, '2023-05-26 22:27:01', NULL, '2023-05-27 08:30:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2191, 1, 2, '', '0240de1e93654ccc9f37fece7291b976', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 09:52:40', NULL, '2023-05-27 09:22:40', NULL, '2023-05-27 09:52:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2192, 1, 2, '', '6ae0c202be2a4368925b945f73ecf7ae', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:22:45', NULL, '2023-05-27 09:52:45', NULL, '2023-05-27 09:52:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2193, 1, 2, '', '1bd18d55932e40298bd13d158618daa1', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:22:45', NULL, '2023-05-27 09:52:45', NULL, '2023-05-27 10:23:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2194, 1, 2, '', '8618b3b15ebc4161b82b7468617bf929', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:53:44', NULL, '2023-05-27 10:23:44', NULL, '2023-05-27 10:23:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2195, 1, 2, '', '6f0c7eed3b904290bd7d9751f212e72f', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:53:44', NULL, '2023-05-27 10:23:44', NULL, '2023-05-27 10:23:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2196, 1, 2, '', 'e24038416b404085b6400a1fd52c8fea', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:53:44', NULL, '2023-05-27 10:23:44', NULL, '2023-05-27 10:23:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2197, 1, 2, '', '3fef7375212040988dc7cec50616ce0a', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 10:53:44', NULL, '2023-05-27 10:23:44', NULL, '2023-05-27 10:53:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2198, 1, 2, '', '43ba393c313c4cb5b785dabfc76cf65b', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 11:23:45', NULL, '2023-05-27 10:53:45', NULL, '2023-05-27 10:53:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2199, 1, 2, '', 'ab2a9196823d43c492ea2c6554fd5b63', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 11:23:45', NULL, '2023-05-27 10:53:45', NULL, '2023-05-27 11:24:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2200, 1, 2, '', '831428c1422b479bb93ef4d034d4986d', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 11:54:46', NULL, '2023-05-27 11:24:46', NULL, '2023-05-27 11:24:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2201, 1, 2, '', 'e213011e5ae244be93947fd6d44ca86c', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 11:54:46', NULL, '2023-05-27 11:24:46', NULL, '2023-05-27 11:24:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2202, 1, 2, '', '7f5715aa8ea846f38a2011e4d92dfcee', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 11:54:46', NULL, '2023-05-27 11:24:46', NULL, '2023-05-27 11:54:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2203, 1, 2, '', '387b9b998aa0461293f30ebfbd49ad7d', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 12:24:53', NULL, '2023-05-27 11:54:53', NULL, '2023-05-27 12:25:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2204, 1, 2, '', '3d58af5bec8040d995f7c8db805ae291', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 12:55:52', NULL, '2023-05-27 12:25:52', NULL, '2023-05-27 12:25:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2205, 1, 2, '', 'f5e34628c43b4810a280682fe4e52af9', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 12:55:52', NULL, '2023-05-27 12:25:52', NULL, '2023-05-27 12:56:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2206, 1, 2, '', '66bddafb09f740748ed84f7bafac4242', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 12:55:52', NULL, '2023-05-27 12:25:52', NULL, '2023-05-27 12:56:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2207, 1, 2, '', 'b6c340b38fc74418842013b46e16b3f8', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:26:03', NULL, '2023-05-27 12:56:03', NULL, '2023-05-27 12:56:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2208, 1, 2, '', '455cf3cc692a44f486d8fd1d6e364f63', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:26:03', NULL, '2023-05-27 12:56:03', NULL, '2023-05-27 12:56:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2209, 1, 2, '', '6a15b5a72127491d9568cf2aa82ad233', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:26:03', NULL, '2023-05-27 12:56:03', NULL, '2023-05-27 12:56:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2210, 1, 2, '', '654f63aaa3cf4c25ba9747c96c8e6afa', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:26:03', NULL, '2023-05-27 12:56:03', NULL, '2023-05-27 13:26:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2211, 1, 2, '', '7565c854f7614da19df2db6e0fc69a92', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:56:07', NULL, '2023-05-27 13:26:07', NULL, '2023-05-27 13:56:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2212, 1, 2, '', '2f18faa57cd64cf59ad34b6d345ad3db', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:56:07', NULL, '2023-05-27 13:26:07', NULL, '2023-05-27 13:56:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2213, 1, 2, '', 'fe51f108c4aa4ad398e56b5fa75da13e', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 13:56:07', NULL, '2023-05-27 13:26:07', NULL, '2023-05-27 13:56:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2214, 1, 2, '', 'af70323518b44cd68ed7949ed0298eb6', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:26:48', NULL, '2023-05-27 13:56:48', NULL, '2023-05-27 13:56:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2215, 1, 2, '', 'ddc2cbd4c55d435d89aa5ba8877291c0', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:26:48', NULL, '2023-05-27 13:56:48', NULL, '2023-05-27 14:28:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2216, 1, 2, '', '089f4e2e6ef346d48c8db5b116773cb7', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:26:48', NULL, '2023-05-27 13:56:48', NULL, '2023-05-27 14:28:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2217, 1, 2, '', '0a42070c9af146578f4bec9e1466e1a1', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:58:04', NULL, '2023-05-27 14:28:04', NULL, '2023-05-27 14:28:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2218, 1, 2, '', '0dbca3d0166d40f7b41decbd9f43d071', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:58:04', NULL, '2023-05-27 14:28:04', NULL, '2023-05-27 14:58:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2219, 1, 2, '', '2001c2e39ad2411c864ae112404e106d', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 14:58:04', NULL, '2023-05-27 14:28:04', NULL, '2023-05-27 14:58:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2220, 1, 2, '', 'e6d306980c5d4c1c8c5fcf0cc3a79348', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:28:05', NULL, '2023-05-27 14:58:05', NULL, '2023-05-27 14:58:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2221, 1, 2, '', '43d14cc3214546fa91b4cf4104de7b28', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:28:05', NULL, '2023-05-27 14:58:05', NULL, '2023-05-27 15:28:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2222, 1, 2, '', 'a72ca75015c3443db83b464e25623126', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:28:05', NULL, '2023-05-27 14:58:05', NULL, '2023-05-27 15:28:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2223, 1, 2, '', '152ae8835f614cd5af2d2e7ebdf4ac9e', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:58:49', NULL, '2023-05-27 15:28:49', NULL, '2023-05-27 15:28:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2224, 1, 2, '', '089c5f7b674641d999afb459774053b6', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:58:49', NULL, '2023-05-27 15:28:49', NULL, '2023-05-27 15:59:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2225, 1, 2, '', '71fb7e3582cf424da756467cd6882d3c', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 15:58:49', NULL, '2023-05-27 15:28:49', NULL, '2023-05-27 15:59:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2226, 1, 2, '', '31ce87cd1c3f452592f70bf85982ea7a', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 16:29:02', NULL, '2023-05-27 15:59:02', NULL, '2023-05-27 16:54:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2227, 1, 2, '', '65a796d70839453388a6213bdc931a11', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 17:24:56', NULL, '2023-05-27 16:54:56', NULL, '2023-05-27 17:34:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2228, 1, 2, '', '7fd268f160d34b5ca512824b4447218f', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:04:36', NULL, '2023-05-27 17:34:36', NULL, '2023-05-27 17:34:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2229, 1, 2, '', 'daed8c433c8b4a8d86d1d7bdf12dea95', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:04:36', NULL, '2023-05-27 17:34:36', NULL, '2023-05-27 17:34:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2230, 1, 2, '', 'e94a4b6ae49943b3aa26a21419635a7d', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:04:36', NULL, '2023-05-27 17:34:36', NULL, '2023-05-27 18:06:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2231, 1, 2, '', 'd12285dc9f714fd2869d9382d2f7771a', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:36:07', NULL, '2023-05-27 18:06:07', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2232, 1, 2, '', '67977700b85147688c7cf8c07b937300', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:36:07', NULL, '2023-05-27 18:06:07', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2233, 1, 2, '', 'e4766ee7e62c4982ac2813e85af5d9b4', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 18:36:07', NULL, '2023-05-27 18:06:07', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2234, 1, 2, '', 'd710bd3c9b7b4beaa6eb1280976639c6', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:06:12', NULL, '2023-05-27 18:36:12', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2235, 1, 2, '', '564ca03b3a4d46d0b2c5f6385390d97c', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:06:12', NULL, '2023-05-27 18:36:12', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2236, 1, 2, '', '9ff33c37bc8c4f54ab548de823a2e470', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:06:12', NULL, '2023-05-27 18:36:12', NULL, '2023-05-27 18:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2237, 1, 2, '', '6705721766f74340b5b1e71ea3cbdd53', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:06:12', NULL, '2023-05-27 18:36:12', NULL, '2023-05-27 19:08:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2238, 1, 2, '', 'e4cabd59b3524d49ac97ceeb2751c01b', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:38:21', NULL, '2023-05-27 19:08:21', NULL, '2023-05-27 19:40:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2239, 1, 2, '', '34ec98fe9d934ef5976e78dbdad6e213', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:38:21', NULL, '2023-05-27 19:08:21', NULL, '2023-05-27 19:40:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2240, 1, 2, '', '2abbe0f5782e4c988b5c2b742d307c60', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 19:38:21', NULL, '2023-05-27 19:08:21', NULL, '2023-05-27 19:40:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2241, 1, 2, '', '71b89385252c472c9fc817f4b208a15f', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 19:40:07', NULL, '2023-05-27 19:40:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2242, 1, 2, '', 'a6b8d2c170ab420cbf8a36ac0459eb83', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 19:40:07', NULL, '2023-05-27 19:40:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2243, 1, 2, '', 'f5069c5f207b4bf5bec32a0cc3844df2', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:10:07', NULL, '2023-05-27 19:40:07', NULL, '2023-05-27 20:12:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2244, 1, 2, '', '6452843ada5b449781f8073e0c0bbce5', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:12:07', NULL, '2023-05-27 20:12:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2245, 1, 2, '', '1491dc6587794240a7a4cb61fc3a79c9', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:12:07', NULL, '2023-05-27 20:12:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2246, 1, 2, '', '4ced27505e7b42e8994d332e358290da', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:12:07', NULL, '2023-05-27 20:12:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2247, 1, 2, '', '3989e9b6ba28402ab975c3c3ebd32be0', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:12:07', NULL, '2023-05-27 20:42:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2248, 1, 2, '', '7e823c391d7848809e4bd6d65c6ad13d', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:12:07', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:42:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2249, 1, 2, '', 'ef452502ab0c4085a650ac5c39ab7094', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:12:07', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 20:42:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2250, 1, 2, '', 'da6526ba9362463788b4e0c41971e3bb', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:12:07', NULL, '2023-05-27 20:42:07', NULL, '2023-05-27 21:12:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2251, 1, 2, '', '9c05f1d569044d6ea4e71ef4f450468a', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:42:07', NULL, '2023-05-27 21:12:07', NULL, '2023-05-27 21:12:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2252, 1, 2, '', '8d5d9c4fa5a347a285716d437e878b5e', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:42:07', NULL, '2023-05-27 21:12:07', NULL, '2023-05-28 03:05:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2253, 1, 2, '', 'f009f78bd07545e8852f28fdc0d48869', 'b62853c9ec43460ba30cedf702c7fe5f', 'default', NULL, '2023-05-27 21:42:07', NULL, '2023-05-27 21:12:07', NULL, '2023-05-28 03:05:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2254, 1, 2, '', 'eba66dcf11fd460fb79abfae7dc74a5c', 'c1208eb5fa524dbe963749e32bbde4d8', 'default', NULL, '2023-05-29 11:30:51', NULL, '2023-05-29 11:00:51', NULL, '2023-05-29 11:01:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2255, 1, 2, '', '1591b4dd99fa4d7f8d8bcfda53aa46c8', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 11:31:10', NULL, '2023-05-29 11:01:10', NULL, '2023-05-29 11:31:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2256, 1, 2, '', 'df2707b4af194e0e82956673eac1b1c5', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 12:01:11', NULL, '2023-05-29 11:31:11', NULL, '2023-05-29 12:01:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2257, 1, 2, '', 'ce2a35b1b7944b3dbda23443730d3360', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 12:31:49', NULL, '2023-05-29 12:01:49', NULL, '2023-05-29 12:45:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2258, 1, 2, '', '82ce9b4f0fb74cb484cb020cc063e776', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 13:15:39', NULL, '2023-05-29 12:45:39', NULL, '2023-05-29 13:15:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2259, 1, 2, '', '1a8f6b17e41549e28485cc3af11a699f', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 13:45:49', NULL, '2023-05-29 13:15:49', NULL, '2023-05-29 13:45:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2260, 1, 2, '', '6673d29efd284cf98326fce6e712e3f9', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 14:15:49', NULL, '2023-05-29 13:45:49', NULL, '2023-05-29 14:15:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2261, 1, 2, '', '4303834d55574f2faa249f874134d405', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 14:45:49', NULL, '2023-05-29 14:15:49', NULL, '2023-05-29 14:46:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2262, 1, 2, '', 'bc41eb7210fe4258b6ff24d1866247f7', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 15:16:02', NULL, '2023-05-29 14:46:02', NULL, '2023-05-29 15:18:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2263, 1, 2, '', '158bcf29ffaf49ca895acf9b2d610411', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 15:48:00', NULL, '2023-05-29 15:18:00', NULL, '2023-05-29 15:48:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2264, 1, 2, '', '2c231f2bc231469090b8207f488860a9', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 16:18:13', NULL, '2023-05-29 15:48:13', NULL, '2023-05-29 16:19:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2265, 1, 2, '', '5fe0dd2f74934fd29ca4597441c7b6f4', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 16:49:49', NULL, '2023-05-29 16:19:49', NULL, '2023-05-29 16:49:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2266, 1, 2, '', '6aba819494d64bbc905b6821c0661520', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 17:19:57', NULL, '2023-05-29 16:49:57', NULL, '2023-05-29 17:21:26', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2267, 1, 2, '', '999b99806ef04ffda29cbd4485dbba00', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 17:51:27', NULL, '2023-05-29 17:21:27', NULL, '2023-05-29 17:51:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2268, 1, 2, '', 'e7ba3eaa322045a09adb71a29acea229', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 18:21:59', NULL, '2023-05-29 17:51:59', NULL, '2023-05-29 18:23:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2269, 1, 2, '', '0525c45dd61345fa9bf002c14eb8aec6', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 18:53:27', NULL, '2023-05-29 18:23:27', NULL, '2023-05-29 18:54:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2270, 1, 2, '', 'e77def17c03646c19d7d48b908bdc665', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 19:24:06', NULL, '2023-05-29 18:54:06', NULL, '2023-05-29 20:08:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2271, 1, 2, '', '071d903ff5384377bd960de8363a9543', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 20:38:55', NULL, '2023-05-29 20:08:55', NULL, '2023-05-29 21:16:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2272, 1, 2, '', '5abaf44485524d37b8e9b6e36b82c50a', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 20:38:55', NULL, '2023-05-29 20:08:55', NULL, '2023-05-29 21:16:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2273, 1, 2, '', '97418cc7bfa84cff8625993ae531441f', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 20:38:55', NULL, '2023-05-29 20:08:55', NULL, '2023-05-29 21:16:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2274, 1, 2, '', '2f9602b97370479ead534b90b72e7e15', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 21:46:57', NULL, '2023-05-29 21:16:57', NULL, '2023-05-29 21:16:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2275, 1, 2, '', '8458a0f9672543a7b404b5fa8a8a0b7e', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 21:46:57', NULL, '2023-05-29 21:16:57', NULL, '2023-05-29 21:16:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2276, 1, 2, '', '9c40f21eb89044a5b07b3e9a87dcaf43', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 21:46:57', NULL, '2023-05-29 21:16:57', NULL, '2023-05-29 21:51:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2277, 1, 2, '', '99fe528e4cdb48a0bc9f364b430e49f0', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 22:21:05', NULL, '2023-05-29 21:51:05', NULL, '2023-05-29 21:51:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2278, 1, 2, '', '1d6418f7ad4246c4adee2defaffb084a', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 22:21:05', NULL, '2023-05-29 21:51:05', NULL, '2023-05-30 09:42:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2279, 1, 2, '', '5a6be58e4d584ce1be5e1f2bbc0e8251', '235c06181be84d08a9f998ebee24e322', 'default', NULL, '2023-05-29 22:21:05', NULL, '2023-05-29 21:51:05', NULL, '2023-05-30 09:42:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2280, 1, 2, '', '61f7d9457dd446a78424f438f233df0c', '702799f0a1884f829228081eb0f6b5a3', 'default', NULL, '2023-05-30 10:19:00', NULL, '2023-05-30 09:49:00', NULL, '2023-05-30 10:19:21', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2281, 1, 2, '', '49f59efae7664f1c9fb08ae582ed0cdd', '702799f0a1884f829228081eb0f6b5a3', 'default', NULL, '2023-05-30 10:49:21', NULL, '2023-05-30 10:19:21', NULL, '2023-05-30 10:51:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2282, 1, 2, '', '23b26d7a243b4dcf963451d18d618211', '702799f0a1884f829228081eb0f6b5a3', 'default', NULL, '2023-05-30 11:21:01', NULL, '2023-05-30 10:51:01', NULL, '2023-05-30 11:22:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2283, 1, 2, '', '3a84a1b55b504944bf9e8588f95d5ec0', '702799f0a1884f829228081eb0f6b5a3', 'default', NULL, '2023-05-30 11:52:02', NULL, '2023-05-30 11:22:02', NULL, '2023-05-30 11:22:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2284, 1, 2, '', '657f204e4e964f188176007ad0365682', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 12:09:51', NULL, '2023-05-30 11:39:51', NULL, '2023-05-30 12:10:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2285, 1, 2, '', '308608a306fb4c65a611b66258b875b1', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 12:40:05', NULL, '2023-05-30 12:10:05', NULL, '2023-05-30 12:41:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2286, 1, 2, '', '936e576ef3ab40b7a337bc9d6e0fe348', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 13:11:58', NULL, '2023-05-30 12:41:58', NULL, '2023-05-30 12:41:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2287, 1, 2, '', '00f2d3021c824232b066ae46e832eeef', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 13:11:58', NULL, '2023-05-30 12:41:58', NULL, '2023-05-30 13:12:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2288, 1, 2, '', 'd050fdb69b134d1fa797e65e06af2043', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 13:42:06', NULL, '2023-05-30 13:12:06', NULL, '2023-05-30 13:43:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2289, 1, 2, '', '1503322474ae4b94880b5346d6762c4b', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 13:42:06', NULL, '2023-05-30 13:12:06', NULL, '2023-05-30 13:43:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2290, 1, 2, '', 'c96f9d8ef5b640bbbb83465faf1d19d0', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 14:13:16', NULL, '2023-05-30 13:43:16', NULL, '2023-05-30 13:43:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2291, 1, 2, '', '85b2fbc5b66941868bdbeffda4ed6d40', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 14:13:16', NULL, '2023-05-30 13:43:16', NULL, '2023-05-30 14:13:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2292, 1, 2, '', 'a64a94dc8e5b4a59827ccd99488eaf31', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 14:43:50', NULL, '2023-05-30 14:13:50', NULL, '2023-05-30 14:43:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2293, 1, 2, '', '8a475dcd0c474ac4a9163d89680d2272', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 14:43:50', NULL, '2023-05-30 14:13:50', NULL, '2023-05-30 14:43:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2294, 1, 2, '', '41cb9ec3897948d7a07611542a9b953a', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 15:13:50', NULL, '2023-05-30 14:43:50', NULL, '2023-05-30 15:14:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2295, 1, 2, '', '902e2c697b5a45a0a9129635185e176f', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 15:44:07', NULL, '2023-05-30 15:14:07', NULL, '2023-05-30 15:45:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2296, 1, 2, '', '62bb9c65f32b4b79a19a68f243059f02', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 16:15:09', NULL, '2023-05-30 15:45:09', NULL, '2023-05-30 16:15:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2297, 1, 2, '', 'f5d4b3f9924f42709e2228b53f2d3df7', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 16:45:52', NULL, '2023-05-30 16:15:52', NULL, '2023-05-30 16:45:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2298, 1, 2, '', 'cd16ad9db42d42b9b0b3e6991f13589f', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 17:15:52', NULL, '2023-05-30 16:45:52', NULL, '2023-05-30 17:16:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2299, 1, 2, '', '3c6f301eb79046db89cfb6230b22576a', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 17:46:50', NULL, '2023-05-30 17:16:50', NULL, '2023-05-30 17:46:50', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2300, 1, 2, '', '186a8578c6f8460f86043df3825f4cd1', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 18:16:50', NULL, '2023-05-30 17:46:50', NULL, '2023-05-30 18:18:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2301, 1, 2, '', '345eedb09ce24866940b37ddc2250fd9', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 18:48:54', NULL, '2023-05-30 18:18:54', NULL, '2023-05-30 18:49:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2302, 1, 2, '', '481a367560e940f99edc618aeaed8ef1', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 19:19:11', NULL, '2023-05-30 18:49:11', NULL, '2023-05-30 19:34:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2303, 1, 2, '', '5e0bdca912654861a0eb9d3d2c3bb922', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 20:04:31', NULL, '2023-05-30 19:34:31', NULL, '2023-05-30 19:34:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2304, 1, 2, '', 'f0751bbc82ae40448dd871faf5045f6f', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 20:04:31', NULL, '2023-05-30 19:34:31', NULL, '2023-05-30 20:16:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2305, 1, 2, '', '6452dfe7e13c49bfb2dc7c4ff6211a95', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 20:04:31', NULL, '2023-05-30 19:34:31', NULL, '2023-05-30 20:16:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2306, 1, 2, '', 'bbf54e8edbf2421d8633661afaa6e6bf', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 20:46:57', NULL, '2023-05-30 20:16:57', NULL, '2023-05-30 21:44:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2307, 1, 2, '', '4160061fe70040329785d86f7003cbf5', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 22:14:48', NULL, '2023-05-30 21:44:48', NULL, '2023-05-31 09:57:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2308, 1, 2, '', '4bd1d921479143edbff52de066452fb0', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 22:14:48', NULL, '2023-05-30 21:44:48', NULL, '2023-05-31 09:57:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2309, 1, 2, '', '1a3aacebe5974d299155d6c37617175b', '16c477193d724699a7c8d620107276b5', 'default', NULL, '2023-05-30 22:14:48', NULL, '2023-05-30 21:44:48', NULL, '2023-05-31 09:57:03', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2310, 1, 2, '', '972628fd5ea44be59c7e7ab40a52fc89', '76b773a262624494818afd620821ec74', 'default', NULL, '2023-06-01 11:25:15', NULL, '2023-06-01 10:55:15', NULL, '2023-06-01 10:55:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2311, 1, 2, '', '893affe3fc5b48c595f98f872cd8b49b', 'c16f0acf460e4b32a477579661bbd1b9', 'default', NULL, '2023-06-01 11:34:43', NULL, '2023-06-01 11:04:43', NULL, '2023-06-01 11:04:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2312, 1, 2, '', '1c5caa21d88847e9ad740ed92b476c8c', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 11:34:58', '1', '2023-06-01 11:04:58', '1', '2023-06-01 11:37:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2313, 1, 2, '', '4371eeb759484c6e875f93b7071a8956', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 12:07:12', NULL, '2023-06-01 11:37:12', NULL, '2023-06-01 12:09:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2314, 1, 2, '', '7cede625e04d470dbdcae0ea6483541b', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 12:39:01', NULL, '2023-06-01 12:09:01', NULL, '2023-06-01 12:39:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2315, 1, 2, '', 'a2ad7452375b43d8a7fafcf4dfa7aa13', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 13:09:15', NULL, '2023-06-01 12:39:15', NULL, '2023-06-01 13:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2316, 1, 2, '', 'bd7f1fc62bf142b79e18f7de4afe986c', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 13:41:16', NULL, '2023-06-01 13:11:16', NULL, '2023-06-01 13:43:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2317, 1, 2, '', '89188109d997400f999d6df9fdfc3450', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 14:13:16', NULL, '2023-06-01 13:43:16', NULL, '2023-06-01 14:15:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2318, 1, 2, '', 'c6a0f96a1d0f43ec8c04ebe462a07b93', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 14:45:01', NULL, '2023-06-01 14:15:01', NULL, '2023-06-01 14:45:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2319, 1, 2, '', '382f952c6bff49ab95307c22724d3551', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 15:15:01', NULL, '2023-06-01 14:45:01', NULL, '2023-06-01 15:16:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2320, 1, 2, '', '18c562f108db45489a338f0b52a24f33', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 15:46:46', NULL, '2023-06-01 15:16:46', NULL, '2023-06-01 15:48:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2321, 1, 2, '', 'b604b2e926c645f39c351199ee9bad9b', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 16:18:46', NULL, '2023-06-01 15:48:46', NULL, '2023-06-01 16:19:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2322, 1, 2, '', '3ee5d7ba068b4d599ad2c72293134dea', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 16:49:17', NULL, '2023-06-01 16:19:17', NULL, '2023-06-01 16:51:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2323, 1, 2, '', '14b4d53190904cdcbcfcc14b1a75bf74', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 17:21:16', NULL, '2023-06-01 16:51:16', NULL, '2023-06-01 17:21:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2324, 1, 2, '', '516965cb8f1a48ea8347c7cad6ec942f', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 17:51:17', NULL, '2023-06-01 17:21:17', NULL, '2023-06-01 17:53:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2325, 1, 2, '', '85965e6c62f441bd946cf1210f4fc1b4', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 18:23:01', NULL, '2023-06-01 17:53:01', NULL, '2023-06-01 18:23:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2326, 1, 2, '', 'a6232df0f28942ae84dd760fa416f205', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 18:53:16', NULL, '2023-06-01 18:23:16', NULL, '2023-06-01 18:53:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2327, 1, 2, '', '45a3586278ea42e1a3ffba31a1d01bf8', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 19:23:16', NULL, '2023-06-01 18:53:16', NULL, '2023-06-01 19:25:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2328, 1, 2, '', 'baa275d0f94a4b76a2e3a6ae69ae0242', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 19:55:04', NULL, '2023-06-01 19:25:04', NULL, '2023-06-01 20:18:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2329, 1, 2, '', 'eea46f7dfe7f4c39bbc9947e9e47a18d', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 20:48:14', NULL, '2023-06-01 20:18:14', NULL, '2023-06-01 21:36:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2330, 1, 2, '', '9aadfa095e874cc382c038840c429f96', '497b7a5ec819442f85c0e394b72bcd60', 'default', NULL, '2023-06-01 22:06:44', NULL, '2023-06-01 21:36:44', NULL, '2023-06-02 09:08:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2331, 1, 2, '', 'bfd432f8c93240f2a93dc29dfffbe242', 'c6170b3b14eb42e7acb9e21767f2930c', 'default', NULL, '2023-06-02 10:03:20', NULL, '2023-06-02 09:33:20', NULL, '2023-06-02 09:33:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2332, 1, 2, '', '7065224408224d71a702a8749de35158', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 10:19:02', NULL, '2023-06-02 09:49:02', NULL, '2023-06-02 10:19:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2333, 1, 2, '', '8533bdf5bb9d415d9dbb573115f626f6', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 10:49:44', NULL, '2023-06-02 10:19:44', NULL, '2023-06-02 10:49:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2334, 1, 2, '', '074eb60b18fe47f6b0f08185c7c29342', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 11:19:45', NULL, '2023-06-02 10:49:45', NULL, '2023-06-02 11:19:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2335, 1, 2, '', '84a45b17ea0940dcbe4b293adc52386e', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 11:49:52', NULL, '2023-06-02 11:19:52', NULL, '2023-06-02 11:50:09', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2336, 1, 2, '', 'e9d2c3da64704ee5becc1f1af86e4d49', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 12:20:09', NULL, '2023-06-02 11:50:09', NULL, '2023-06-02 12:20:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2337, 1, 2, '', '48e5706dca794291a34a8e7a2ffaf49d', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 12:50:13', NULL, '2023-06-02 12:20:13', NULL, '2023-06-02 12:51:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2338, 1, 2, '', 'd3fd1026342244a593cd198e8ab8b2a8', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 13:21:58', NULL, '2023-06-02 12:51:58', NULL, '2023-06-02 13:21:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2339, 1, 2, '', 'f3a30c5abc8b41d289841cad1c0b8e49', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 13:51:59', NULL, '2023-06-02 13:21:59', NULL, '2023-06-02 13:52:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2340, 1, 2, '', '59b16dfb255c4734a651285e62cc3f42', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 14:22:16', NULL, '2023-06-02 13:52:16', NULL, '2023-06-02 14:23:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2341, 1, 2, '', '87376b252e704679acf5d495a6ee76ee', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 14:54:00', NULL, '2023-06-02 14:24:00', NULL, '2023-06-02 14:55:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2342, 1, 2, '', '4f5cb6bf80b84177bd27cea3eb525c98', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 15:25:23', NULL, '2023-06-02 14:55:23', NULL, '2023-06-02 15:26:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2343, 1, 2, '', '6d6069b7ff5a49f086af9e74a71cf098', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 15:56:01', NULL, '2023-06-02 15:26:01', NULL, '2023-06-02 15:26:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2344, 1, 2, '', '8741d4b1ce8c45faa8f2e45d38935519', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 15:56:01', NULL, '2023-06-02 15:26:01', NULL, '2023-06-02 15:57:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2345, 1, 2, '', 'c08ada6dc5304bbabe207307986d2b80', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 16:27:58', NULL, '2023-06-02 15:57:58', NULL, '2023-06-02 16:28:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2346, 1, 2, '', '1b5c3ce1350246c3b1ed520cd4f00de3', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 16:27:58', NULL, '2023-06-02 15:57:58', NULL, '2023-06-02 16:28:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2347, 1, 2, '', '1ad8bcd1259c43d9a1e6e55f20639a18', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 16:58:00', NULL, '2023-06-02 16:28:00', NULL, '2023-06-02 16:28:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2348, 1, 2, '', '325df8c4df0048f7a3740dd0a2a6c9bd', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 16:58:00', NULL, '2023-06-02 16:28:00', NULL, '2023-06-02 16:59:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2349, 1, 2, '', '5bcccf8ba08340939d1bf5fe64097cf2', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 17:29:59', NULL, '2023-06-02 16:59:59', NULL, '2023-06-02 16:59:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2350, 1, 2, '', '5ae589557e954a8eaf39447dddf8916e', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 17:29:59', NULL, '2023-06-02 16:59:59', NULL, '2023-06-02 17:30:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2351, 1, 2, '', '2ef7763d47f94de8b6d0c1b032dd1488', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 18:00:01', NULL, '2023-06-02 17:30:01', NULL, '2023-06-02 17:30:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2352, 1, 2, '', '7052ed366f29445b808e994b8d9384dc', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 18:00:01', NULL, '2023-06-02 17:30:01', NULL, '2023-06-02 18:00:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2353, 1, 2, '', 'cad3497edee04a73b0ac0b0144edd4c3', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 18:30:01', NULL, '2023-06-02 18:00:01', NULL, '2023-06-02 18:00:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2354, 1, 2, '', '424abfed3f13424ba586f3d2b1749636', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 18:30:01', NULL, '2023-06-02 18:00:01', NULL, '2023-06-02 18:31:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2355, 1, 2, '', '4cacc5b96a8d4bfa9e9906f002b0808b', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 19:01:58', NULL, '2023-06-02 18:31:58', NULL, '2023-06-02 18:31:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2356, 1, 2, '', 'e228d2908c1742e594798950581b688a', 'b60b9d572ec04e01933d00b0dfa9f7f5', 'default', NULL, '2023-06-02 19:01:58', NULL, '2023-06-02 18:31:58', NULL, '2023-06-02 18:37:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2357, 1, 2, '', '17e4a21bc2b0433989d5c2f51494d85f', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 19:07:30', NULL, '2023-06-02 18:37:30', NULL, '2023-06-02 19:08:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2358, 1, 2, '', '542d374934cb47a7a264243b55539599', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 19:38:00', NULL, '2023-06-02 19:08:00', NULL, '2023-06-02 19:38:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2359, 1, 2, '', 'f86c7c5d76e6430ba11afc16a8c890be', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 19:38:00', NULL, '2023-06-02 19:08:00', NULL, '2023-06-02 19:38:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2360, 1, 2, '', '9f49a3df4713475a92e8c2bf0e586caf', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 20:08:03', NULL, '2023-06-02 19:38:03', NULL, '2023-06-02 20:22:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2361, 1, 2, '', 'f2b568e35fc64bb7bfca6964789fad1d', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 20:08:03', NULL, '2023-06-02 19:38:03', NULL, '2023-06-02 20:22:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2362, 1, 2, '', 'ada418612e4e4b84beb5b4167fd952b9', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 20:52:30', NULL, '2023-06-02 20:22:30', NULL, '2023-06-02 20:52:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2363, 1, 2, '', '1d7439ae44a346e8b402bef8cd43a0b7', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 20:52:30', NULL, '2023-06-02 20:22:30', NULL, '2023-06-02 20:52:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2364, 1, 2, '', '76ec919c928241b8b256b163102d5f35', '37861861ddc7421a8c1e876b7ec11ad0', 'default', NULL, '2023-06-02 21:22:43', NULL, '2023-06-02 20:52:43', NULL, '2023-06-03 10:42:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2365, 1, 2, '', '4d43c97d6ada44d29df90680d244baf8', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 12:30:22', NULL, '2023-06-03 12:00:22', NULL, '2023-06-03 12:30:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2366, 1, 2, '', '2954e9283b284f5d8923f797e76d1648', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 13:00:47', NULL, '2023-06-03 12:30:47', NULL, '2023-06-03 13:03:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2367, 1, 2, '', 'ad13c39012074717bae8d1f1f1d458aa', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 13:33:12', NULL, '2023-06-03 13:03:12', NULL, '2023-06-03 13:35:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2368, 1, 2, '', '01ba8cbde35b488aae8aa817115e0700', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 14:05:03', NULL, '2023-06-03 13:35:03', NULL, '2023-06-03 14:05:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2369, 1, 2, '', '4a888a75925a48e79c2052f76505a639', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 14:35:12', NULL, '2023-06-03 14:05:12', NULL, '2023-06-03 14:37:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2370, 1, 2, '', '1706c763b4564987996ffd9d43d8281a', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 15:07:02', NULL, '2023-06-03 14:37:02', NULL, '2023-06-03 15:08:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2371, 1, 2, '', 'ef8948a4f51e4b89baac41ba5bfa3e11', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 15:38:45', NULL, '2023-06-03 15:08:45', NULL, '2023-06-03 15:39:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2372, 1, 2, '', '96ae0c6b8d234a91b68935e2715a9c37', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 16:09:05', NULL, '2023-06-03 15:39:05', NULL, '2023-06-03 16:09:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2373, 1, 2, '', '6e33c082759c4c86bd8cfc5ae6c68d9d', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 16:39:05', NULL, '2023-06-03 16:09:05', NULL, '2023-06-03 16:40:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2374, 1, 2, '', 'e435175e764f4c18b64964a6dcd2042e', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 17:10:45', NULL, '2023-06-03 16:40:45', NULL, '2023-06-03 17:10:45', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2375, 1, 2, '', '3b9b00ebf2064d48b54b8235f38b79f9', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 17:40:45', NULL, '2023-06-03 17:10:45', NULL, '2023-06-03 17:40:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2376, 1, 2, '', '9e2d49a69eb04f20892704bf89c86812', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 18:10:56', NULL, '2023-06-03 17:40:56', NULL, '2023-06-03 18:11:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2377, 1, 2, '', '0379480f25ae4ae19839e6975e74820b', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 18:41:02', NULL, '2023-06-03 18:11:02', NULL, '2023-06-03 18:42:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2378, 1, 2, '', '380f6d92217c434d830a752e47932233', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 19:12:23', NULL, '2023-06-03 18:42:23', NULL, '2023-06-03 19:15:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2379, 1, 2, '', 'a301e92bcd4143a4a710a42badaa9846', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 19:45:30', NULL, '2023-06-03 19:15:30', NULL, '2023-06-03 20:11:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2380, 1, 2, '', '7864b8af6b0e4895bd6309b644007c4f', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 20:41:51', NULL, '2023-06-03 20:11:51', NULL, '2023-06-03 21:04:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2381, 1, 2, '', 'ac5721094d1e47b1bcb9813f3dd8726b', '33515798070641158c8693c82714ce0d', 'default', NULL, '2023-06-03 21:34:52', NULL, '2023-06-03 21:04:52', NULL, '2023-06-04 07:10:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2382, 1, 2, '', 'c4190a7b9f724c839b903405bd07b20b', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 11:41:45', NULL, '2023-06-05 11:11:45', NULL, '2023-06-05 17:37:35', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2383, 1, 2, '', 'fb778d3143004390aac4610753c05885', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 18:07:35', NULL, '2023-06-05 17:37:35', NULL, '2023-06-05 18:07:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2384, 1, 2, '', '5a070ce55dfd46c38e46c70fcb8bc4ae', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 18:37:44', NULL, '2023-06-05 18:07:44', NULL, '2023-06-05 18:38:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2385, 1, 2, '', '486343ea50834d7fbd8643cd20bed08e', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 19:08:24', NULL, '2023-06-05 18:38:24', NULL, '2023-06-05 18:38:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2386, 1, 2, '', '1e195af6655f4037863a18ed7d625313', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 19:08:24', NULL, '2023-06-05 18:38:24', NULL, '2023-06-05 19:08:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2387, 1, 2, '', '162626c00c894d7183e6765054220d8f', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 19:38:24', NULL, '2023-06-05 19:08:24', NULL, '2023-06-05 19:38:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2388, 1, 2, '', 'd838254bc2b746a48dcc702f829944f8', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 19:38:24', NULL, '2023-06-05 19:08:24', NULL, '2023-06-05 19:38:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2389, 1, 2, '', '73f8f6cfc5b0475aa4ed88948f2d2412', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 20:08:37', NULL, '2023-06-05 19:38:37', NULL, '2023-06-05 20:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2390, 1, 2, '', '9d472059acd24235bced8a31e942140c', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 20:41:16', NULL, '2023-06-05 20:11:16', NULL, '2023-06-05 21:01:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2391, 1, 2, '', '810968ea5b4c4f86949ae199f1606ebe', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 20:41:16', NULL, '2023-06-05 20:11:16', NULL, '2023-06-05 21:01:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2392, 1, 2, '', '94ae2a24b9154872a74dfb457eb95609', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 21:31:14', NULL, '2023-06-05 21:01:14', NULL, '2023-06-05 21:42:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2393, 1, 2, '', '862699335dbc4158a8f89535c497dbd4', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 22:12:30', NULL, '2023-06-05 21:42:30', NULL, '2023-06-06 09:54:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2394, 1, 2, '', 'adf14e44af0447e1a0c55db84ea07fed', '0e8f4e464f504e89b008fda4eca729a8', 'default', NULL, '2023-06-05 22:12:30', NULL, '2023-06-05 21:42:30', NULL, '2023-06-06 09:54:55', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2395, 1, 2, '', '121147b025f74f279703473cdbea53c5', '120e0ca028d140c78d61999dd3ec90f2', 'default', NULL, '2023-06-06 10:33:25', NULL, '2023-06-06 10:03:25', NULL, '2023-06-06 10:33:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2396, 1, 2, '', '01a0ee32b7c640baa56e5f32e1c68da9', '120e0ca028d140c78d61999dd3ec90f2', 'default', NULL, '2023-06-06 11:03:25', NULL, '2023-06-06 10:33:25', NULL, '2023-06-06 11:03:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2397, 1, 2, '', '057cb187b5fd43d5a0367a8ac18d9cc2', '120e0ca028d140c78d61999dd3ec90f2', 'default', NULL, '2023-06-06 11:33:25', NULL, '2023-06-06 11:03:25', NULL, '2023-06-06 11:03:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2398, 1, 2, '', 'bda7e25a2e404ec483115d4d7200525f', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 11:33:43', NULL, '2023-06-06 11:03:43', NULL, '2023-06-06 11:34:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2399, 1, 2, '', 'c51f77bb01284523a5be90336a9f2a69', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 12:04:05', NULL, '2023-06-06 11:34:05', NULL, '2023-06-06 12:05:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2400, 1, 2, '', 'a0d940b02c9848748973c135b97f43d8', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 12:35:56', NULL, '2023-06-06 12:05:56', NULL, '2023-06-06 12:37:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2401, 1, 2, '', 'c803b024724a4b59b15c981cfa8db2a2', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 13:07:08', NULL, '2023-06-06 12:37:08', NULL, '2023-06-06 13:32:58', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2402, 1, 2, '', 'd3cce4a50c8247e09b4c414fff2760c1', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 14:02:59', NULL, '2023-06-06 13:32:59', NULL, '2023-06-06 14:05:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2403, 1, 2, '', 'e55d5c0ce4b3480d9f2f9ecb90dcdb14', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 14:35:01', NULL, '2023-06-06 14:05:01', NULL, '2023-06-06 14:36:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2404, 1, 2, '', 'f86fb1edbdab4d63a625befea8cea5cf', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 15:06:12', NULL, '2023-06-06 14:36:12', NULL, '2023-06-06 15:06:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2405, 1, 2, '', '895a22dba14840f5aa5805a1678946cd', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 15:36:54', NULL, '2023-06-06 15:06:54', NULL, '2023-06-06 15:36:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2406, 1, 2, '', '29214d49319f46b2b9fd5906a7a119a5', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 16:06:54', NULL, '2023-06-06 15:36:54', NULL, '2023-06-06 16:06:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2407, 1, 2, '', 'ea2b80650a504a2e8cfec87d8846126d', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 16:36:57', NULL, '2023-06-06 16:06:57', NULL, '2023-06-06 16:37:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2408, 1, 2, '', '7bb416378a1c4e3ba7da211382f7757f', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 17:07:05', NULL, '2023-06-06 16:37:05', NULL, '2023-06-06 17:07:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2409, 1, 2, '', 'eaa1f95753c94eeea6c616f264bd9933', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 17:37:05', NULL, '2023-06-06 17:07:05', NULL, '2023-06-06 17:38:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2410, 1, 2, '', '99c628902be1497aba05bcb9b17fea1c', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 18:08:50', NULL, '2023-06-06 17:38:50', NULL, '2023-06-06 18:08:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2411, 1, 2, '', 'c023a32956444dc9a386ad34fddf44be', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 18:38:54', NULL, '2023-06-06 18:08:54', NULL, '2023-06-06 18:41:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2412, 1, 2, '', 'af6f6aa8333e490ca4db5b536fedd1dc', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 19:11:11', NULL, '2023-06-06 18:41:11', NULL, '2023-06-06 19:13:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2413, 1, 2, '', '67c6af14526d454db595e7d98b783884', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 19:43:08', NULL, '2023-06-06 19:13:08', NULL, '2023-06-06 20:25:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2414, 1, 2, '', '4172cc51e5a84252a92d1575312db899', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 20:55:08', NULL, '2023-06-06 20:25:08', NULL, '2023-06-06 21:44:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2415, 1, 2, '', '1237a56a48154445bcb081d706fe587b', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 20:55:08', NULL, '2023-06-06 20:25:08', NULL, '2023-06-06 21:44:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2416, 1, 2, '', 'e8c03d42b3af456baa3c5fae196cf086', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 22:15:00', NULL, '2023-06-06 21:45:00', NULL, '2023-06-07 13:54:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2417, 1, 2, '', 'a377904962914320b7f231b7b367b8bd', '5d15336636414c0b8472635e68805e58', 'default', NULL, '2023-06-06 22:15:00', NULL, '2023-06-06 21:45:00', NULL, '2023-06-07 13:54:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2418, 1, 2, '', 'a10885f3a69e4986a1627738d56f14e0', '9e7a7aa710fa4198a1e452d091f193da', 'default', NULL, '2023-06-08 10:24:26', NULL, '2023-06-08 09:54:26', NULL, '2023-06-08 09:54:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2419, 1, 2, '', '189cf9f6c6eb47dbae88079da09ed733', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 10:26:11', NULL, '2023-06-08 09:56:11', NULL, '2023-06-08 11:02:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2420, 1, 2, '', 'e167ab4fcefa45edb336710d3949b642', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 11:32:36', NULL, '2023-06-08 11:02:36', NULL, '2023-06-08 11:33:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2421, 1, 2, '', '796efd0d98d94df79c9510a23ff2d021', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 12:03:12', NULL, '2023-06-08 11:33:12', NULL, '2023-06-08 12:03:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2422, 1, 2, '', 'c4f3f9d00c4d44fc8231eb1b34819a22', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 12:33:13', NULL, '2023-06-08 12:03:13', NULL, '2023-06-08 12:34:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2423, 1, 2, '', '1f1b8603e5054b239fed749f300ed6cf', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 13:04:15', NULL, '2023-06-08 12:34:15', NULL, '2023-06-08 13:04:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2424, 1, 2, '', '6649dd3205c34125a37ff5550ec31270', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 13:34:17', NULL, '2023-06-08 13:04:17', NULL, '2023-06-08 13:35:12', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2425, 1, 2, '', '8884d9c039a749c09e99464632a6823f', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 14:05:13', NULL, '2023-06-08 13:35:13', NULL, '2023-06-08 14:05:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2426, 1, 2, '', 'bc35e62ca67d4a72aa4ce43780aca82e', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 14:35:13', NULL, '2023-06-08 14:05:13', NULL, '2023-06-08 14:35:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2427, 1, 2, '', '49df8c07a89f43a2acbbbd97c4d6d2a0', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 15:05:27', NULL, '2023-06-08 14:35:27', NULL, '2023-06-08 15:06:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2428, 1, 2, '', '6d33690b2822420bb8294cdb88e366ce', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 15:36:07', NULL, '2023-06-08 15:06:07', NULL, '2023-06-08 15:37:13', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2429, 1, 2, '', 'b422d1e442284bb9bfa25b766c4d4b07', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 16:07:14', NULL, '2023-06-08 15:37:14', NULL, '2023-06-08 16:08:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2430, 1, 2, '', 'b42ae8d0d46f48c497adcd7c9feb0c91', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 16:38:17', NULL, '2023-06-08 16:08:17', NULL, '2023-06-08 16:39:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2431, 1, 2, '', '0995639e0033404fbd5d0a85d46ba42b', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 17:09:14', NULL, '2023-06-08 16:39:14', NULL, '2023-06-08 17:10:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2432, 1, 2, '', '57fa4f4394b34de1b580df3d44cbd9ff', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 17:40:02', NULL, '2023-06-08 17:10:02', NULL, '2023-06-08 17:40:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2433, 1, 2, '', '31d528f236e747b1a3258437584f4d08', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 18:10:16', NULL, '2023-06-08 17:40:16', NULL, '2023-06-08 18:10:24', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2434, 1, 2, '', 'c0e35a26bcb4486d802cd24a10a06985', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 18:40:25', NULL, '2023-06-08 18:10:25', NULL, '2023-06-08 18:41:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2435, 1, 2, '', 'bddd83661c3444ddb3fd7354b67e3d79', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 19:11:15', NULL, '2023-06-08 18:41:15', NULL, '2023-06-08 19:11:15', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2436, 1, 2, '', '258ad881504d4a0d9a6dfd0f9588d24d', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 19:41:15', NULL, '2023-06-08 19:11:15', NULL, '2023-06-08 19:41:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2437, 1, 2, '', '920dc3f60b954811a907d1c948e04c77', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 20:11:27', NULL, '2023-06-08 19:41:27', NULL, '2023-06-08 20:11:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2438, 1, 2, '', 'd1115ac5f4f44f14a4aa893cc8da7d84', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 20:41:27', NULL, '2023-06-08 20:11:27', NULL, '2023-06-08 20:42:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2439, 1, 2, '', 'd4663c4879884599b997f9210dbf3321', 'a546f4a777034766af9fec069ebb5f19', 'default', NULL, '2023-06-08 21:12:02', NULL, '2023-06-08 20:42:02', NULL, '2023-06-08 22:42:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2440, 1, 2, '', '50072e12bb654b0680ffec8a6816f8b4', '33f11f5232d1449ca8c9daa50f9bb9e2', 'default', NULL, '2023-06-09 15:18:41', NULL, '2023-06-09 14:48:41', NULL, '2023-06-09 15:19:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2441, 1, 2, '', '64947b4236d9432c8e47627729c4b41d', '33f11f5232d1449ca8c9daa50f9bb9e2', 'default', NULL, '2023-06-09 15:49:20', NULL, '2023-06-09 15:19:20', NULL, '2023-06-09 17:21:05', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2442, 1, 2, '', '3142896aba9e4dbd91e9d1a5a799bd43', '33f11f5232d1449ca8c9daa50f9bb9e2', 'default', NULL, '2023-06-09 17:51:05', NULL, '2023-06-09 17:21:05', NULL, '2023-06-09 17:21:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2443, 1, 2, '', 'c5785db41e21453cb0a51a0d8cd4c694', '33f11f5232d1449ca8c9daa50f9bb9e2', 'default', NULL, '2023-06-09 17:51:05', NULL, '2023-06-09 17:21:05', NULL, '2023-06-09 17:25:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2444, 1, 2, '', 'e93a1482349b427ca1324f9d212f9dd0', '555a6039a2ed451ca202b2e8dcbe9f93', 'default', NULL, '2023-06-09 17:55:59', NULL, '2023-06-09 17:25:59', NULL, '2023-06-09 17:25:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2445, 1, 2, '', '1f4ac476a20b4482bb16c8166d871edc', 'b3e84d40158340398cfe84332d27495b', 'default', NULL, '2023-06-09 17:56:11', '1', '2023-06-09 17:26:11', '1', '2023-06-09 17:26:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2446, 1, 2, '', '807c1f13e7f5490fb259c5b171be6dec', '97fb6cd0476a42749d2662ed0fc3ca5d', 'default', NULL, '2023-06-09 18:06:20', NULL, '2023-06-09 17:36:20', NULL, '2023-06-09 17:36:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2447, 1, 2, '', 'b1edfedcc9f94e70b1ca6783c3b18dc1', '4a51598c76f64b82ab001d4e5bd59ad2', 'default', NULL, '2023-06-09 18:06:59', '1', '2023-06-09 17:36:59', '1', '2023-06-09 17:43:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2448, 1, 2, '', 'fc71f891ea0f427daac96482a9a1985e', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 18:14:00', NULL, '2023-06-09 17:44:00', NULL, '2023-06-09 18:14:37', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2449, 1, 2, '', '61dc42b4297f463abd8274a1627faa2a', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 18:44:38', NULL, '2023-06-09 18:14:38', NULL, '2023-06-09 18:14:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2450, 1, 2, '', '149e9dddfe094ad4a595c1ed8ca945ed', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 18:44:38', NULL, '2023-06-09 18:14:38', NULL, '2023-06-09 18:45:22', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2451, 1, 2, '', 'e718f813c17f498fb4f36c2e32b7d86c', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 19:15:23', NULL, '2023-06-09 18:45:23', NULL, '2023-06-09 19:15:34', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2452, 1, 2, '', '26da90f92d244e1bb9f99fa8856cf776', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 19:45:34', NULL, '2023-06-09 19:15:34', NULL, '2023-06-09 19:45:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2453, 1, 2, '', '507229cf732d42068f3af5677779b6d0', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 20:15:36', NULL, '2023-06-09 19:45:36', NULL, '2023-06-09 20:15:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2454, 1, 2, '', '1bb083c727af4ae3b7a67448a31d2677', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 20:45:39', NULL, '2023-06-09 20:15:39', NULL, '2023-06-09 20:15:38', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2455, 1, 2, '', 'a968e8419a0f4419b636c4a08d86c643', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 20:45:39', NULL, '2023-06-09 20:15:39', NULL, '2023-06-09 20:45:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2456, 1, 2, '', 'b4cc9cf4713c47c0afe128d5ed1df678', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 21:15:44', NULL, '2023-06-09 20:45:44', NULL, '2023-06-09 20:45:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2457, 1, 2, '', 'd46246adee5146c184272cca9c1194cd', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 21:15:44', NULL, '2023-06-09 20:45:44', NULL, '2023-06-09 21:16:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2458, 1, 2, '', '98a2df98cae140ecbac979f404756462', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 21:46:44', NULL, '2023-06-09 21:16:44', NULL, '2023-06-09 21:16:43', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2459, 1, 2, '', 'e1c8d40adf7d47b08db89527f795bedb', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 21:46:44', NULL, '2023-06-09 21:16:44', NULL, '2023-06-09 21:47:46', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2460, 1, 2, '', 'ddf85f71fa5e480c9abc783baaa720a4', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 22:17:47', NULL, '2023-06-09 21:47:47', NULL, '2023-06-09 22:26:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2461, 1, 2, '', '0266c297e31e4a61b8445a2c8f14d4b1', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 22:17:47', NULL, '2023-06-09 21:47:47', NULL, '2023-06-09 22:26:47', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2462, 1, 2, '', '4236de37cf8e42aa94aca01323a1fafe', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 22:56:48', NULL, '2023-06-09 22:26:48', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2463, 1, 2, '', '80e56157911b410c84e61760f5ecf9a1', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 22:56:48', NULL, '2023-06-09 22:26:48', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2464, 1, 2, '', 'bb13773e84aa4bb89a2e6b95939f6fa9', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 22:56:48', NULL, '2023-06-09 22:26:48', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2465, 1, 2, '', 'b392f748b4e048c68f38ab10852f2ae7', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 23:27:03', NULL, '2023-06-09 22:57:03', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2466, 1, 2, '', '712ab70dd2b0407a8135c68f8f74651c', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 23:27:03', NULL, '2023-06-09 22:57:03', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2467, 1, 2, '', '434cf55b4c2c41a39710c371d79b750d', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 23:27:03', NULL, '2023-06-09 22:57:03', NULL, '2023-06-09 22:57:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2468, 1, 2, '', 'ad19f061417e4eb5ba1d26e06c12f2e2', 'a8b9943948484e7ba2103d353335dfd1', 'default', NULL, '2023-06-09 23:27:03', NULL, '2023-06-09 22:57:03', NULL, '2023-06-10 09:44:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2469, 1, 2, '', 'b7b8cd012cd945ccb3d196404771fc6d', 'e426e6a72baf4ea584ccaef1fb0a3acf', 'default', NULL, '2023-06-10 10:15:55', NULL, '2023-06-10 09:45:55', NULL, '2023-06-10 10:16:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2470, 1, 2, '', '97ab2699661a4b2ba1a29a44ecbf7537', 'e426e6a72baf4ea584ccaef1fb0a3acf', 'default', NULL, '2023-06-10 10:46:55', NULL, '2023-06-10 10:16:55', NULL, '2023-06-10 10:48:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2471, 1, 2, '', 'c3970ff63f354167b42d17d26362139b', 'e426e6a72baf4ea584ccaef1fb0a3acf', 'default', NULL, '2023-06-10 11:18:55', NULL, '2023-06-10 10:48:55', NULL, '2023-06-10 10:48:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2472, 1, 2, '', 'e69c74c909e74755a6dab6fd54c7484d', 'e49c80d9a2e247f4bab9aa9313600448', 'default', NULL, '2023-06-10 11:44:53', NULL, '2023-06-10 11:14:53', NULL, '2023-06-10 11:14:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2473, 1, 2, '', 'ff72e36a0d494d03aeb77217c9627092', '7083c08db00d440b93d37fbd820ebc52', 'default', NULL, '2023-06-10 11:46:28', NULL, '2023-06-10 11:16:28', NULL, '2023-06-10 11:46:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2474, 1, 2, '', '9d5c579b6c544c61bcf65a4a42ef6557', '7083c08db00d440b93d37fbd820ebc52', 'default', NULL, '2023-06-10 12:16:28', NULL, '2023-06-10 11:46:28', NULL, '2023-06-10 12:00:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2475, 1, 2, '', 'ef0e9eac465f44089920aa8fa140fa07', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 15:40:04', NULL, '2023-06-10 15:10:04', NULL, '2023-06-10 15:40:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2476, 1, 2, '', '25a26eac7c77415a81594d16c79aaa2d', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 16:10:07', NULL, '2023-06-10 15:40:07', NULL, '2023-06-10 16:10:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2477, 2, 1, '', 'e8d6fe47bb864fed8f3d9ee1527471df', '1596bc4857f842bf9938b3669f19f956', 'default', NULL, '2023-06-10 16:15:43', NULL, '2023-06-10 15:45:43', NULL, '2023-06-10 15:45:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2478, 1, 2, '', '0a508ac888eb496c87cb2945c8f9eb29', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 16:40:55', NULL, '2023-06-10 16:10:55', NULL, '2023-06-10 16:42:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2479, 1, 2, '', '3e314722700449e38af845d9b4296911', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 17:12:55', NULL, '2023-06-10 16:42:55', NULL, '2023-06-10 17:13:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2480, 1, 2, '', 'dffcb66c26e44374901ab59a7ed8f360', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 17:43:01', NULL, '2023-06-10 17:13:01', NULL, '2023-06-10 17:43:01', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2481, 1, 2, '', 'aa3d35e4d87f400c8dcc667e1211cbb7', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 18:13:01', NULL, '2023-06-10 17:43:01', NULL, '2023-06-10 18:15:04', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2482, 1, 2, '', '7b31d1b55c4d4927ad4cb07b21dc6032', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 18:45:04', NULL, '2023-06-10 18:15:04', NULL, '2023-06-10 18:46:07', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2483, 1, 2, '', '8d7736b537af4518b5b7b12bc713de74', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 19:16:07', NULL, '2023-06-10 18:46:07', NULL, '2023-06-10 19:17:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2484, 1, 2, '', 'd3d9967d64914a188e483871958f707b', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 19:47:15', NULL, '2023-06-10 19:17:15', NULL, '2023-06-10 19:48:54', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2485, 1, 2, '', '44c769f945bd4a5d9429515c128ad826', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 20:18:55', NULL, '2023-06-10 19:48:55', NULL, '2023-06-10 20:21:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2486, 1, 2, '', 'b211bcf852654922999dbc5fb56b1a69', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 20:51:01', NULL, '2023-06-10 20:21:01', NULL, '2023-06-10 20:53:02', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2487, 1, 2, '', 'a83aa5e776364b43b367631e75fbcb05', 'a0c6952ee35c45a4a8b4772b15d745b1', 'default', NULL, '2023-06-10 21:23:03', NULL, '2023-06-10 20:53:03', NULL, '2023-06-11 07:05:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2488, 1, 2, '', '83df99bd855642d5ae89dd5eadb71619', 'e7c71a778489416581c5b9a49b8c2f6a', 'default', NULL, '2023-06-12 10:26:24', NULL, '2023-06-12 09:56:24', NULL, '2023-06-12 10:26:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2489, 1, 2, '', 'f0cb372f686b4ff2bb0edb0dd50db41c', 'e7c71a778489416581c5b9a49b8c2f6a', 'default', NULL, '2024-01-06 18:26:26', NULL, '2023-06-12 10:26:26', NULL, '2023-06-12 10:26:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2490, 1, 2, '', '81f84415f1e4420dba26923d7b01441c', '24e198c7896746d89327e6d2428ab62f', 'default', NULL, '2024-01-06 23:07:00', NULL, '2023-06-12 15:07:00', NULL, '2023-06-13 10:21:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2491, 1, 2, '', 'f5e5f6bf1f944ffeb7525dbafa97fb1a', '5ded84e2914c4f20b01774f5c672da1b', 'default', NULL, '2024-01-07 18:21:29', NULL, '2023-06-13 10:21:29', NULL, '2023-06-15 17:55:49', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2492, 2, 1, '', '5ebbdcf503104f998415d6a6672b86fd', '8936fac0a79d4bd0ad38ffa1ecce893b', 'default', NULL, '2024-01-09 19:28:34', NULL, '2023-06-15 11:28:34', NULL, '2023-06-15 11:28:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2493, 1, 2, '', 'f709b0df059d4c32bf804e76d87bef26', 'b8714c79fde847ed97d126eacaf15d45', 'default', NULL, '2024-01-10 01:55:57', NULL, '2023-06-15 17:55:57', NULL, '2023-06-15 23:27:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2494, 1, 2, '', 'd1c58e17b34d46879d11732b63645050', '85c4e523ec204efb8839556d1ec982e8', 'default', NULL, '2024-01-10 07:27:37', NULL, '2023-06-15 23:27:37', NULL, '2023-06-17 22:15:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2495, 1, 2, '', '5811a4eb7c194ead89bd6c45ff6424b4', 'b2041606139c4d1d9ede169899c6b817', 'default', NULL, '2024-01-12 06:15:40', NULL, '2023-06-17 22:15:40', NULL, '2023-06-17 22:16:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2496, 1, 2, '', 'ab63391b9c9d4ef2a42eee2616479973', '961bf00cb5e64fbe9828e2f9cd198209', 'default', NULL, '2024-01-12 06:16:55', NULL, '2023-06-17 22:16:55', NULL, '2023-06-17 22:16:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2497, 1, 2, '', '202a2ba0ed8848a3a2489cf137758355', 'dbd884cdc7334d78ab5ce4d51b6e1586', 'default', NULL, '2024-01-12 06:19:48', NULL, '2023-06-17 22:19:48', NULL, '2023-06-18 18:02:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2498, 1, 2, '', '8879961d32e54bee965139fd0b5ac8a7', '1253d91216dc4496b76759242054fd2c', 'default', NULL, '2024-01-13 02:02:20', NULL, '2023-06-18 18:02:20', NULL, '2023-06-18 20:41:56', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2499, 1, 2, '', 'e3f52923b08a43f58030a38a2e3fc0d6', '70c2d7f517f349e1b2a82ee8d5f4fec2', 'default', NULL, '2024-01-13 04:42:01', NULL, '2023-06-18 20:42:01', NULL, '2023-06-18 20:53:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2500, 1, 2, '', '448694709a12468080f35994ffb7b128', '8fba24a74c5b43a29ed86be4061d6920', 'default', NULL, '2024-01-13 04:53:37', NULL, '2023-06-18 20:53:37', NULL, '2023-06-29 13:40:25', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2501, 1, 2, '', 'db020470e254461b9265a0baddc47466', '0d99f73d99154913b6736acacb89e0b6', 'default', NULL, '2024-01-23 21:40:37', NULL, '2023-06-29 13:40:37', NULL, '2023-07-02 10:19:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2502, 1, 2, '', '16a920cb485c480981f0fba65c685a0e', '2513dc01e2284a1cbb1ed14f891357a2', 'default', NULL, '2024-01-26 18:19:22', NULL, '2023-07-02 10:19:22', NULL, '2023-07-02 10:38:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2503, 1, 2, '', '0ecc63f23a09492a8c4bdab468021b86', 'abb9ca7134ee4588a5df984fa9db30dd', 'default', NULL, '2024-01-26 18:38:57', NULL, '2023-07-02 10:38:57', NULL, '2023-07-09 09:48:14', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2504, 1, 2, '', 'f2a751e5553c4791b4680171cb7b17cf', '9b5abf172abf42ed9f5e42fc181f41a8', 'default', NULL, '2024-02-02 17:48:21', NULL, '2023-07-09 09:48:21', NULL, '2023-07-10 22:30:40', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2505, 1, 2, '', 'e332c1f501924059a9dfbebe84a5065a', '3ef2b155ebdf4ea8bb1731f44d71c22f', 'default', NULL, '2024-02-04 06:30:43', NULL, '2023-07-10 22:30:43', NULL, '2023-07-14 16:26:06', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2506, 1, 2, '', '69c761cf5aa3417b84c1a94057a88394', '5676528d65d14dc39a55891bf45979ba', 'default', NULL, '2024-02-08 00:26:13', NULL, '2023-07-14 16:26:13', NULL, '2023-07-19 15:39:51', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2507, 2, 1, '', '844c01e61c0449c784a5e3136f9b57df', '6feda98f8549473fa9c1ce3d8d6234dd', 'default', NULL, '2024-02-09 02:54:40', NULL, '2023-07-15 18:54:40', NULL, '2023-07-15 18:54:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2508, 1, 2, '', 'fca8e869c2b14e62bfc1957fe718f6e2', '05d245412f324909991a35a1c66161f7', 'default', NULL, '2024-02-12 23:39:58', NULL, '2023-07-19 15:39:58', NULL, '2023-07-20 18:27:36', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2509, 1, 2, '', 'c8b9b22afc0f4cd4991a10b0f4d26203', '5f1c2950ddbc4424bb06ff930bc37b0c', 'default', NULL, '2024-02-14 02:27:39', NULL, '2023-07-20 18:27:39', NULL, '2023-07-20 18:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2510, 1, 2, '', 'cc75808f79b34143a8ffe7c26b308c50', 'dc863e5092a841a892504a2739b13575', 'default', NULL, '2024-02-17 19:33:59', NULL, '2023-07-24 11:33:59', NULL, '2023-07-25 10:07:11', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2511, 1, 2, '', '548492e9094f441f86f567ce2a9007ea', '4b965271828c4dd786a0621ea5c52849', 'default', NULL, '2024-02-18 18:07:18', NULL, '2023-07-25 10:07:18', NULL, '2023-07-27 18:50:20', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2512, 2, 1, '', '8cb963ef717c41fc91f5eff0d35eb602', 'dc97df462e324afdaabbb6d454568fe4', 'default', NULL, '2024-02-19 00:08:03', NULL, '2023-07-25 16:08:03', NULL, '2023-07-25 16:08:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2513, 1, 2, '', '865dd094c02e40159ac13b2572a3eb29', 'aade6cb6a86f407ead24b9bee3b1eb2b', 'default', NULL, '2024-02-21 02:58:39', NULL, '2023-07-27 18:58:39', NULL, '2023-07-28 10:26:48', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2514, 1, 2, '', '902c8757ee5c421da3e0ce8dbd65cad9', '22b987a661794ff3b0eb5ec3034594b7', 'default', NULL, '2024-02-21 18:41:30', NULL, '2023-07-28 10:41:30', NULL, '2023-07-28 10:42:57', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2515, 1, 2, '', '7e0b6332dd494b1ea59eb902db0878d5', '99cc3f05977241fb86e5ccfd6bac7742', 'default', NULL, '2024-02-23 01:32:37', NULL, '2023-07-29 17:32:37', NULL, '2023-08-03 16:24:16', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2516, 1, 2, '', 'de8be30378114206af9dcc51ca26c269', '50e18f33fbc54b5eba2e2acdba38b567', 'default', NULL, '2024-02-28 00:24:29', NULL, '2023-08-03 16:24:29', NULL, '2023-08-06 18:07:59', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2517, 1, 2, '', '0db9a6761f4c4652b852701f27936a78', 'fff3b11dc1f3456b8e1b99d1b6f669f2', 'default', NULL, '2024-03-02 02:08:12', NULL, '2023-08-06 18:08:12', NULL, '2023-08-08 16:47:00', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2518, 1, 2, '', '02bc229c0c1d496e8ff550dcdedc1d77', '9c1147122ce3435787a619c1313fbbb5', 'default', NULL, '2024-03-04 00:47:12', NULL, '2023-08-08 16:47:12', NULL, '2023-08-09 16:57:53', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2519, 1, 2, '', '07cffda62f0c4e90b227164484d6a3f6', '12fecebf0c1a44879ba8735186cbebf5', 'default', NULL, '2024-03-05 00:58:07', NULL, '2023-08-09 16:58:07', NULL, '2023-08-09 16:58:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2520, 2, 1, '', '905e9e812c9148d58906ab1e70662f7b', 'f4a513eb19484b1e8144602c9fff2166', 'default', NULL, '2024-03-07 17:57:05', NULL, '2023-08-12 09:57:05', NULL, '2023-08-12 09:57:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2521, 2, 1, '', '117ed9e20eb44545973dcec9c30e7aea', 'ee860cb5e7f643508635cee1ab31d910', 'default', NULL, '2024-03-07 18:18:07', NULL, '2023-08-12 10:18:07', NULL, '2023-08-12 10:18:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2522, 4, 1, '', '7f4537ff57e24822a044d8dc7468375e', '79d6fa17514849d8bd526b42c64db040', 'default', NULL, '2024-03-07 19:39:26', NULL, '2023-08-12 11:39:26', NULL, '2023-08-12 11:39:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2523, 4, 1, '', '3a99318045a4431ab399fb06e30618de', '5c74720242884db3b4a74832499bf450', 'default', NULL, '2024-03-07 19:44:07', '4', '2023-08-12 11:44:07', '4', '2023-08-12 11:44:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2524, 4, 1, '', 'd3807649aac3403a9bb39681d1fde2a6', '6fe23939aa8446119d7bc079888d74c3', 'default', NULL, '2024-03-07 19:46:12', '4', '2023-08-12 11:46:12', '4', '2023-08-12 11:46:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2525, 4, 1, '', '7336676ba1a14341abc494073eae4a1f', '4cff832657604963822c49677519778d', 'default', NULL, '2024-03-07 19:46:40', '4', '2023-08-12 11:46:40', '4', '2023-08-12 11:46:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2526, 4, 1, '', '2645f636215249b6b07e3815bb9b7963', '5a16f87c77ad4407b111e1fc64e6079b', 'default', NULL, '2024-03-07 19:48:36', '4', '2023-08-12 11:48:36', '4', '2023-08-12 11:48:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2527, 4, 1, '', '1b9dedbebb214d26ab75de017f59273f', 'd1343c00135848b19f05b96b0edb2058', 'default', NULL, '2024-03-07 19:49:10', '4', '2023-08-12 11:49:10', '4', '2023-08-12 11:49:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2528, 4, 1, '', '994a5264d9c4472d8926df20ddc2a6f0', '26c5cf3d72394cdfad13f4ea4f19853e', 'default', NULL, '2024-03-07 19:53:12', '4', '2023-08-12 11:53:12', '4', '2023-08-12 11:53:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2529, 4, 1, '', 'a58b3f1314864379aad5a5093d6efd5b', '5b30369d0e52457cae0eb3d1853c07b1', 'default', NULL, '2024-03-07 19:57:41', NULL, '2023-08-12 11:57:41', NULL, '2023-08-12 11:57:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2530, 4, 1, '', '5174152561e640649881342b56e529fa', 'e50a396fa23941e0adfbee2df0154fef', 'default', NULL, '2024-03-07 20:06:34', '4', '2023-08-12 12:06:34', '4', '2023-08-12 12:06:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2531, 4, 1, '', '109123a1c2844e8b85b70dbb3646bc8f', 'b74c70a0121f419d8b21336ddd211e0b', 'default', NULL, '2024-03-07 20:07:29', '4', '2023-08-12 12:07:29', '4', '2023-08-12 12:07:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2532, 4, 1, '', 'be88b0bbdf304bde96c1da87fd3e9ad3', '42a6d0e5e02c4197adcdc37122952dbe', 'default', NULL, '2024-03-07 20:43:10', '4', '2023-08-12 12:43:10', '4', '2023-08-12 12:43:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2533, 4, 1, '', 'ad54f9908c7e4111b1f1ff8ba40fac17', 'b87bb9bc467f4c1bbbdee9f1110c47ea', 'default', NULL, '2024-03-07 20:46:54', '4', '2023-08-12 12:46:54', '4', '2023-08-12 12:46:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2534, 4, 1, '', 'eeea348be4394978b9706c9061d487a6', '4fc37695f4af4d4e8975120cc6855068', 'default', NULL, '2024-03-07 20:48:00', '4', '2023-08-12 12:48:00', '4', '2023-08-12 12:48:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2535, 4, 1, '', '51559d2ec1b14c9eb659971772fa4fea', 'de685437639e4971b11945a40e432b73', 'default', NULL, '2024-03-07 20:48:52', '4', '2023-08-12 12:48:52', '4', '2023-08-12 12:48:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2536, 4, 1, '', '53b5353c36a440b4a205551cfb841a49', '4a5d82c42f9341e6ae77739adfa9b6a7', 'default', NULL, '2024-03-07 20:51:38', '4', '2023-08-12 12:51:38', '4', '2023-08-12 12:51:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2537, 4, 1, '', 'c3cff821490a4d2ca020b589b8e8b773', '3fef680c6fbc4a7aab9e78318613e246', 'default', NULL, '2024-03-07 21:03:39', '4', '2023-08-12 13:03:39', '4', '2023-08-12 13:03:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2538, 4, 1, '', '68bf7be66e384d4f9afe7b8c5b2d028b', '20411ec157a84e80be9477114a5d591b', 'default', NULL, '2024-03-07 21:07:28', '4', '2023-08-12 13:07:28', '4', '2023-08-12 13:07:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2539, 4, 1, '', 'e74bedca038f47dda9e82cecea20c526', 'c1fe009607d54f048d08bfc0597fb4af', 'default', NULL, '2024-03-07 21:10:12', NULL, '2023-08-12 13:10:12', NULL, '2023-08-12 13:10:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2540, 4, 1, '', 'b29402de2ac64676b68e24c8b23a2bb9', '517ed9560e854c6dbc81c045d04488a9', 'default', NULL, '2024-03-07 21:10:17', NULL, '2023-08-12 13:10:17', NULL, '2023-08-12 13:10:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2541, 4, 1, '', '294915450d8747deb0f9eaca9e841790', 'fd64b777dc0c48ef946deeb9b3cedfe5', 'default', NULL, '2024-03-07 21:12:56', NULL, '2023-08-12 13:12:56', NULL, '2023-08-12 13:12:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2542, 4, 1, '', '337609d6f5ea4fbeab195633d95b8066', '86204fceb71f4720b3b59432f07f0720', 'default', NULL, '2024-03-07 21:14:01', NULL, '2023-08-12 13:14:01', NULL, '2023-08-12 13:14:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2543, 4, 1, '', 'b9e9086afa4747d68a7de75a1b730751', '03170122f7dc436c8644101cecbf4a46', 'default', NULL, '2024-03-07 21:18:24', NULL, '2023-08-12 13:18:24', NULL, '2023-08-12 13:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2544, 5, 1, '', '260f3049877f42e096514fe7ca94da2d', '7c64fc7eb7fb4f1988dcb9cc7fb91253', 'default', NULL, '2024-03-07 21:27:46', NULL, '2023-08-12 13:27:46', NULL, '2023-08-12 13:27:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2545, 5, 1, '', 'b319d379ad194ec69b11e9cdef7440e0', '397c91ee8198485ebae8ddf11d869cbf', 'default', NULL, '2024-03-07 21:28:06', NULL, '2023-08-12 13:28:06', NULL, '2023-08-12 13:28:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2546, 5, 1, '', '1ea8bc9a1f4b47cd931115cd5ad1db68', '561fb462953a4b10a7cf66be5a85586e', 'default', NULL, '2024-03-07 21:30:16', NULL, '2023-08-12 13:30:16', NULL, '2023-08-12 13:30:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2547, 6, 1, '', '26ae9b6a7006403693337f771216ce97', '0da8056a1cb941f78d0a0fe1b63e9de0', 'default', NULL, '2024-03-07 21:31:59', NULL, '2023-08-12 13:31:59', NULL, '2023-08-12 13:31:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2548, 6, 1, '', '369e46efb8774b93babfd0aac1734334', 'a5dd5be103194e2b81429683d4861c8a', 'default', NULL, '2024-03-07 21:32:43', NULL, '2023-08-12 13:32:43', NULL, '2023-08-12 13:32:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2549, 6, 1, '', '3789dc56db784e75b9b367d80c6bdda9', '59f321b273704dbfa97f7a2e67023c4a', 'default', NULL, '2024-03-07 21:32:59', NULL, '2023-08-12 13:32:59', NULL, '2023-08-12 13:32:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2550, 6, 1, '', '363eadc9104a4fbdb4ed0a486eb277a9', '7c651e11547145d68df4cfd198ae012b', 'default', NULL, '2024-03-07 21:37:13', NULL, '2023-08-12 13:37:13', NULL, '2023-08-12 13:37:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2551, 6, 1, '', 'd03fc348fe8e4e97b4f5d6dd1496ca85', '9e48b2ecb0c6447f9f135b50a9b1bd19', 'default', NULL, '2024-03-07 23:47:13', NULL, '2023-08-12 15:47:13', NULL, '2023-08-12 15:47:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2552, 6, 1, '', '44d4b3ebe7e94a398f01f2eed0f59aa6', '4e240ee7f2e04e98bf695f76ecf6db47', 'default', NULL, '2024-03-08 00:08:19', NULL, '2023-08-12 16:08:19', NULL, '2023-08-12 16:08:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2553, 6, 1, '', 'f0710713ace84e64aaba225d619e78b7', 'f548c536652d4fb9b629421008bb90b2', 'default', NULL, '2024-03-08 00:17:09', NULL, '2023-08-12 16:17:09', NULL, '2023-08-12 16:17:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2554, 6, 1, '', '4405fd8964cf4f8b91464cc4569e3093', '6952f4330a3e41828eb2faa2fec14088', 'default', NULL, '2024-03-08 00:53:38', NULL, '2023-08-12 16:53:38', NULL, '2023-08-12 16:53:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2555, 6, 1, '', 'db6cb51efb7843bfb2563b9f78d53c32', 'dd59031c8bd7420789599f825cd4f37c', 'default', NULL, '2024-03-08 00:58:05', NULL, '2023-08-12 16:58:05', NULL, '2023-08-12 16:58:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2556, 6, 1, '', '1f79f77a8ba54ed58e3adbff88a799ad', '63bc35997be74647894591780d350d4c', 'default', NULL, '2024-03-08 00:58:51', NULL, '2023-08-12 16:58:51', NULL, '2023-08-12 16:58:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2557, 6, 1, '', '4bb7a40d585a4cbe8b359f5124a27004', 'a2690db1cbc2474a8a8c5fe42cd060b4', 'default', NULL, '2024-03-08 01:01:27', NULL, '2023-08-12 17:01:27', NULL, '2023-08-12 17:01:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2558, 6, 1, '', '2765cf28e7114853b54b9daf49b25d87', '74347ada1ce24879af6c60feb5d15fc1', 'default', NULL, '2024-03-08 01:03:12', NULL, '2023-08-12 17:03:12', NULL, '2023-08-12 17:03:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2559, 6, 1, '', '2cb388bd699d497686c1edfc69490023', '09b0bd2ef3ed4f96a7dcad62137f2db0', 'default', NULL, '2024-03-10 00:28:41', NULL, '2023-08-14 16:28:41', NULL, '2023-08-14 16:28:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2560, 6, 1, '', 'cc14f53186344b8aa19536792abe3c45', '121672ec81b5462a83e4129531ada6d5', 'default', NULL, '2024-03-10 00:29:08', NULL, '2023-08-14 16:29:08', NULL, '2023-08-14 16:29:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2561, 6, 1, '', '8a70ab7a5c1749e389b9d02229916b17', '47279838c7ce4048a14a049112ffbff7', 'default', NULL, '2024-03-10 00:55:19', NULL, '2023-08-14 16:55:19', NULL, '2023-08-14 16:55:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2562, 6, 1, '', 'e5145ce48abc47239718856f902d0cdd', 'd2141d12d3a54adda5bd25ca7145810d', 'default', NULL, '2024-03-10 00:57:21', NULL, '2023-08-14 16:57:21', NULL, '2023-08-14 16:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2563, 6, 1, '', 'd23e0e3fd1a648e5800d5c5c64cd38a3', 'ff44a129679f4440a9033cafc54afe2d', 'default', NULL, '2024-03-10 00:57:25', NULL, '2023-08-14 16:57:25', NULL, '2023-08-14 16:57:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2564, 6, 1, '', 'e65fdd0f57af4c6494e10196f7d722d9', '7f260bb0eb054a1395fd0846d7255847', 'default', NULL, '2024-03-10 01:03:43', NULL, '2023-08-14 17:03:43', NULL, '2023-08-14 17:03:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2565, 6, 1, '', '0a04e897b6e84b308629967c19914eeb', '88031b7d8e994d9ca85c636bbd2bcab4', 'default', NULL, '2024-03-10 01:05:08', NULL, '2023-08-14 17:05:08', NULL, '2023-08-14 17:05:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2566, 6, 1, '', '52234c713acb47649524f2b9d41fc0e3', 'aee1f51b78ee444d83a1884c5d337674', 'default', NULL, '2024-03-10 01:07:46', NULL, '2023-08-14 17:07:46', NULL, '2023-08-14 17:07:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2567, 6, 1, '', 'd78f4c49c1e64d36bebf5f03280d1cf2', '664c7452ad164a50b3740df45a237672', 'default', NULL, '2024-03-10 01:16:57', NULL, '2023-08-14 17:16:57', NULL, '2023-08-14 17:16:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2568, 6, 1, '', '243e39bcdb4441a88c1e4e5c2c287ad4', 'e3644f9abf1e4c8498bfe1e34931ea73', 'default', NULL, '2024-03-10 01:17:53', NULL, '2023-08-14 17:17:53', NULL, '2023-08-14 17:17:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2569, 6, 1, '', 'f2cd31b11fc1442c8bb6d384d079b6ca', '1bf8b633e3324db48ae3aed29a6100a0', 'default', NULL, '2024-03-10 01:29:57', NULL, '2023-08-14 17:29:57', NULL, '2023-08-14 17:29:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2570, 1, 2, '', 'd07307e12f154fc587162cd2a4cf77cc', '53c5143128f543a09bbc349d47ab5ee8', 'default', NULL, '2024-03-10 18:23:58', NULL, '2023-08-15 10:23:58', NULL, '2023-09-04 17:03:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2571, 6, 1, '', '3b4bc73d8a534b57affff336373b1102', '9a289ffd77d242108694ffe938695ae7', 'default', NULL, '2024-03-11 18:46:28', NULL, '2023-08-16 10:46:28', NULL, '2023-08-16 10:46:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2572, 6, 1, '', '08e252184bab4939bf41e09425c7c55c', 'fe0a29534fae4e4594a0642c93c87f7d', 'default', NULL, '2024-03-12 00:39:44', NULL, '2023-08-16 16:39:44', NULL, '2023-08-16 16:39:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2573, 6, 1, '', 'beb23abfa604463db9ddba92362956b5', 'b1d9679c375940f697fffb0f9df56885', 'default', NULL, '2024-03-12 00:41:49', NULL, '2023-08-16 16:41:49', NULL, '2023-08-16 16:41:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2574, 6, 1, '', '9761db11178340e99b59d004e59e9f4f', '0ae2bbe0dac144d896ee26ee789b13f6', 'default', NULL, '2024-03-12 00:52:24', NULL, '2023-08-16 16:52:24', NULL, '2023-08-16 16:52:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2575, 6, 1, '', 'e64e9b2c554a422fbcb7f327fe8078a7', '3cea188156cc4cdf9f8cb46086dcfa76', 'default', NULL, '2024-03-12 01:08:32', NULL, '2023-08-16 17:08:32', NULL, '2023-08-16 17:08:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2576, 6, 1, '', '5f18247533634e7ca8c82b20736b7ed4', '88dcc5984e364d8198d2615fc5c8335e', 'default', NULL, '2024-03-12 01:10:14', NULL, '2023-08-16 17:10:14', NULL, '2023-08-16 17:10:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2577, 6, 1, '', '4a45441e5ab54229894d973a7acd36c0', '543b49969fd245d787f0d410a0cc98c9', 'default', NULL, '2024-03-12 01:13:51', NULL, '2023-08-16 17:13:51', NULL, '2023-08-16 17:13:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2578, 6, 1, '', 'dbd10783a3994a6ea70e2cc515ebd1d1', 'af48674c0ca04b4dbedd48fdf31487ad', 'default', NULL, '2024-03-12 01:40:30', NULL, '2023-08-16 17:40:30', NULL, '2023-08-16 17:40:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2579, 6, 1, '', 'beffb79a02e844e8b8e1777edf61aec7', 'bc689fb5748b4c66a1b29ed928f37b1f', 'default', NULL, '2024-03-12 02:13:47', NULL, '2023-08-16 18:13:47', NULL, '2023-08-16 18:13:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2580, 6, 1, '', '67b5b54e85164292863c532554f9edfb', 'a2014d5cc24148999c8a552faeda3f03', 'default', NULL, '2024-03-12 02:21:38', NULL, '2023-08-16 18:21:38', NULL, '2023-08-16 18:21:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2581, 6, 1, '', '7c947b7d71804dafa16dc259f956ed78', 'c3a09d717aab4cb6b433183af5687d8c', 'default', NULL, '2024-03-12 02:23:31', NULL, '2023-08-16 18:23:31', NULL, '2023-08-16 18:23:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2582, 6, 1, '', '96ab09ee34e24434977ab64374b17636', '1cc244fa2a32457bb1abba3bd85b9d3f', 'default', NULL, '2024-03-12 02:24:37', NULL, '2023-08-16 18:24:37', NULL, '2023-08-16 18:24:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2583, 6, 1, '', '0328782191b543399ca76f6e9a853736', '178e39f6adf34ef293d9d87ad32b96db', 'default', NULL, '2024-03-12 02:29:57', NULL, '2023-08-16 18:29:57', NULL, '2023-08-16 18:29:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2584, 6, 1, '', '489cfeecb13d4f539fc0b7f50fbe69a1', 'a62fdd70117e43519a67033ac49f348a', 'default', NULL, '2024-03-12 02:31:04', NULL, '2023-08-16 18:31:04', NULL, '2023-08-16 18:31:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2585, 6, 1, '', 'b3edcb604b564dd28c6c5bc82f35fd98', '27482f55d9d44209b1f35a365d4c0f08', 'default', NULL, '2024-03-12 18:48:10', NULL, '2023-08-17 10:48:10', NULL, '2023-08-17 10:48:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2586, 6, 1, '', 'd8f11eac5123439e84fd3500b38e7e29', '3b1c0c6d906b43f8bf101e93006b1f59', 'default', NULL, '2024-03-12 18:55:42', NULL, '2023-08-17 10:55:42', NULL, '2023-08-17 10:55:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2587, 6, 1, '', 'b93ae50123fc4316b37f7d220dde452a', '2f4ac24d6b384367ae6a7e92fd913d55', 'default', NULL, '2024-03-12 18:58:17', NULL, '2023-08-17 10:58:17', NULL, '2023-08-17 10:58:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2588, 6, 1, '', '0c88210be1514fd6b9e4117d1498ab39', 'ba0f7ad4a1f14ce8965634ccf34d2f2a', 'default', NULL, '2024-03-12 19:01:20', NULL, '2023-08-17 11:01:20', NULL, '2023-08-17 11:01:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2589, 6, 1, '', 'cd4a136ad2c140c39df3299f14f7de54', '176f83457d0d42a1b859943bb7e16c2b', 'default', NULL, '2024-03-13 00:15:07', NULL, '2023-08-17 16:15:07', NULL, '2023-08-17 16:15:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2590, 6, 1, '', '416669480afc400292201f940f8465ed', 'c33f0539717f49098a951c03eb56059a', 'default', NULL, '2024-03-13 00:25:04', NULL, '2023-08-17 16:25:04', NULL, '2023-08-17 16:25:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2591, 6, 1, '', 'e936a87d92264d3d8cc2b47fbd217e6b', '899c037e648e479db56d5d95f5b81f9a', 'default', NULL, '2024-03-13 00:26:47', NULL, '2023-08-17 16:26:47', NULL, '2023-08-17 16:26:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2592, 6, 1, '', '94ed2722c1a94191886ae1c12033cdf4', 'e224cc6280a9470c8c2dea451d0b4ddb', 'default', NULL, '2024-03-13 00:33:43', NULL, '2023-08-17 16:33:43', NULL, '2023-08-17 16:33:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2593, 6, 1, '', '699457c5e68342b98ab9d2b370bd62ce', '93f22d60dd9742f3bcc5335dc5f1406c', 'default', NULL, '2024-03-13 00:49:04', NULL, '2023-08-17 16:49:04', NULL, '2023-08-17 16:49:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2594, 6, 1, '', '1edcb0acd8bf46c6b34506f8a6f1d5f4', '2541018be8634e6a9c9c770db373f1d0', 'default', NULL, '2024-03-13 00:52:42', NULL, '2023-08-17 16:52:42', NULL, '2023-08-17 16:52:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2595, 6, 1, '', '89296f022dea497ab99b9707a36e9d6c', '618207caa54749d6b4f5a106859803de', 'default', NULL, '2024-03-13 00:57:37', NULL, '2023-08-17 16:57:37', NULL, '2023-08-17 16:57:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2596, 6, 1, '', '45845761a97741e1987f8e1c99a74a3a', '830b0da2fede4de6aa8f76b98a975d7d', 'default', NULL, '2024-03-13 01:01:17', NULL, '2023-08-17 17:01:17', NULL, '2023-08-17 17:01:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2597, 6, 1, '', '570a547ec4b64d49a72e441540f4cac5', '0270b38b5f94474cb8d9d33c00316517', 'default', NULL, '2024-03-13 01:04:39', NULL, '2023-08-17 17:04:39', NULL, '2023-08-17 17:04:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2598, 6, 1, '', 'a0c6fbca091548d5bd3d13572960e3b1', '219c1ce7cf4f40a1b81608f875ef08a8', 'default', NULL, '2024-03-13 01:08:50', NULL, '2023-08-17 17:08:50', NULL, '2023-08-17 17:08:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2599, 6, 1, '', '8387d2a8f7114fcb834fccc1e6a2f2fb', '7b5a364310c84f5191cb4583856d6ba2', 'default', NULL, '2024-03-14 17:35:35', NULL, '2023-08-19 09:35:35', NULL, '2023-08-19 09:35:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2600, 6, 1, '', '54cd2bd9b2674f32b2b2d0e458f643c3', '8d0c07f714a3415fbee5ef359b139859', 'default', NULL, '2024-03-14 17:36:15', NULL, '2023-08-19 09:36:15', NULL, '2023-08-19 09:36:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2601, 6, 1, '', '2c5986a444724ab799435b2f9530abcf', '9c9013360e8c49b2a675a969e71108d5', 'default', NULL, '2024-03-14 17:38:03', NULL, '2023-08-19 09:38:03', NULL, '2023-08-19 09:38:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2602, 6, 1, '', 'c9b7cd0f3a434aa1af026c9b988af1a7', 'c93a3f4d87554488a7c74132648f89ba', 'default', NULL, '2024-03-14 17:51:19', NULL, '2023-08-19 09:51:19', NULL, '2023-08-19 09:51:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2603, 6, 1, '', '6472b5af6c804224b8449839363f9862', '0ba0f430e9ad48a4a261ac6365245abe', 'default', NULL, '2024-03-14 17:52:37', NULL, '2023-08-19 09:52:37', NULL, '2023-08-19 09:52:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2604, 6, 1, '', 'c7868310c3904f51811b7fad74beedea', 'd0cc9599c2b24253bbc93885abe9e80e', 'default', NULL, '2024-03-14 17:53:36', NULL, '2023-08-19 09:53:36', NULL, '2023-08-19 09:53:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2605, 6, 1, '', 'a30d28cd151d477788258c0271e078fa', '77e354274cfd47ca8791d08bb2d71654', 'default', NULL, '2024-03-14 17:54:31', NULL, '2023-08-19 09:54:31', NULL, '2023-08-19 09:54:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2606, 6, 1, '', 'c09d5414c7f74756a5b74fd28a4a673c', '4c976b0ab1c34fba8f4f36111355e7aa', 'default', NULL, '2024-03-14 17:54:59', NULL, '2023-08-19 09:54:59', NULL, '2023-08-19 09:54:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2607, 6, 1, '', '0e92dde5dc6c41848914c9a0bf491cae', 'dcb89e9dcb174489a92f95f88432a562', 'default', NULL, '2024-03-14 17:58:50', NULL, '2023-08-19 09:58:50', NULL, '2023-08-19 09:58:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2608, 6, 1, '', '5c444e71b8564487920a079bb1a926f2', '37e3d78b4e304198843d87bc8b65a542', 'default', NULL, '2024-03-14 17:59:54', NULL, '2023-08-19 09:59:54', NULL, '2023-08-19 09:59:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2609, 6, 1, '', '14b6d2e5b3354269bc4ade835860ae54', '4471808690bb4f16b0fc04ce0b93a193', 'default', NULL, '2024-03-14 17:59:55', NULL, '2023-08-19 09:59:55', NULL, '2023-08-19 09:59:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2610, 6, 1, '', 'b02bbe7f54844d30be0a9e5acc41f484', '035071568e0d47308c3bedc335919785', 'default', NULL, '2024-03-14 18:00:09', '6', '2023-08-19 10:00:09', '6', '2023-08-19 10:00:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2611, 6, 1, '', 'b4c088b041d04dd3bfbece9804610ad8', 'ce320e1a1013479593b298837fa55f6f', 'default', NULL, '2024-03-14 18:04:24', NULL, '2023-08-19 10:04:24', NULL, '2023-08-19 10:04:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2612, 6, 1, '', 'bcc0996dec7944fc9de59e2adcd998e7', 'aa0551415f5247f4aea861412f2c1879', 'default', NULL, '2024-03-14 18:05:21', '6', '2023-08-19 10:05:21', '6', '2023-08-19 10:05:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2613, 6, 1, '', '0b10503f332c4e168c8deed0eaf5c509', '9bc71f8b9e0d42ebaeabc3f51eab04b7', 'default', NULL, '2024-03-14 18:52:37', NULL, '2023-08-19 10:52:37', NULL, '2023-08-19 10:52:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2614, 6, 1, '', '99b4f8fbe0664eaba1ca0046d6190372', 'becee216fc32400cb72fc22a67f2594c', 'default', NULL, '2024-03-14 18:53:06', NULL, '2023-08-19 10:53:06', NULL, '2023-08-19 10:53:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2615, 6, 1, '', '39298b983a6a4d909f83f5dd3dbb48f2', '7a54d988042d4b48b4ca256650dc777e', 'default', NULL, '2024-03-14 18:53:37', '6', '2023-08-19 10:53:37', '6', '2023-08-19 10:53:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2616, 6, 1, '', 'ad786288142f441badb4105735f4bb89', 'e7b4e33a7137465cb936a7fb57902e6e', 'default', NULL, '2024-03-15 18:51:45', NULL, '2023-08-20 10:51:45', NULL, '2023-08-20 10:51:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2617, 6, 1, '', 'f69a3743881f41cb840807557a99286d', '493e1a4604534693ab87d2a6b0baf286', 'default', NULL, '2024-03-15 18:52:26', '6', '2023-08-20 10:52:26', '6', '2023-08-20 10:52:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2618, 6, 1, '', 'a2df832c50124470a96c3bebc42ca724', '44321b9efc78415486cae0292e9c5509', 'default', NULL, '2024-03-15 18:53:55', NULL, '2023-08-20 10:53:55', NULL, '2023-08-20 10:53:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2619, 6, 1, '', '52b45245a6e84047af9054aa4c4da891', 'eec58644bd3d4857bf75cc2b685bbbfa', 'default', NULL, '2024-03-15 18:54:19', '6', '2023-08-20 10:54:19', '6', '2023-08-20 10:54:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2620, 6, 1, '', '39c692747c814f12b5854d812448656e', '3b8b1559053e4c718cc92473eb5cef9c', 'default', NULL, '2024-03-15 18:54:56', NULL, '2023-08-20 10:54:56', NULL, '2023-08-20 10:54:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2621, 6, 1, '', 'd1927a01b831467b91af24096fbfc335', '1c0a65b8aeec4da8856cabdab8b8b55f', 'default', NULL, '2024-03-15 18:55:16', '6', '2023-08-20 10:55:16', '6', '2023-08-20 10:55:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2622, 6, 1, '', '06b9073bfdbd4f619e83be3f53ea5e4f', 'dbfdcf49dc504fe6ab9cbad2135fec4c', 'default', NULL, '2024-03-15 19:42:34', NULL, '2023-08-20 11:42:34', NULL, '2023-08-20 11:42:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2623, 6, 1, '', '5371698ab261447f8b2875ff92fa7a8e', '0d37c6809e7f44eb8f52d41699170476', 'default', NULL, '2024-03-16 00:18:20', NULL, '2023-08-20 16:18:20', NULL, '2023-08-20 16:18:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2624, 6, 1, '', '02da217edd8a46079338e6daff25df9e', '493967daca6f422c8ef511221ca2e11b', 'default', NULL, '2024-03-16 00:18:24', NULL, '2023-08-20 16:18:24', NULL, '2023-08-20 16:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2625, 6, 1, '', '39c06700cdb54c4cb8557cbb1484decc', '3998aca330de4ca2858e2e57239e7742', 'default', NULL, '2024-03-16 00:21:10', '6', '2023-08-20 16:21:10', '6', '2023-08-20 16:21:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2626, 6, 1, '', '39ebaa11dcbe4fbdae49a2de00a8366d', '770b7e471aa14b8090ffef075dc37ef4', 'default', NULL, '2024-03-16 00:28:28', NULL, '2023-08-20 16:28:28', NULL, '2023-08-20 16:28:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2627, 6, 1, '', '0621a2c591564b6f90ae637fdf573082', 'c3e0547aeebf4bd3a53c5e98787b7db9', 'default', NULL, '2024-03-16 00:39:40', NULL, '2023-08-20 16:39:40', NULL, '2023-08-20 16:39:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2628, 6, 1, '', '481ac7b7ae1141c59117a24f2e482ee5', '2298dc1721c246c38dde5599582aad8a', 'default', NULL, '2024-03-16 17:57:33', NULL, '2023-08-21 09:57:33', NULL, '2023-08-21 09:57:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2629, 6, 1, '', '78d5f491e3894ea9a5cbd1ed019dae66', '25bca58a6feb483ab5fba370d167e641', 'default', NULL, '2024-03-16 18:00:43', NULL, '2023-08-21 10:00:43', NULL, '2023-08-21 10:00:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2630, 6, 1, '', 'ce1881ed4ece4b4f9c6713adf5ac633f', '262a88eac95b4fb0902c7f0f530e3915', 'default', NULL, '2024-03-16 18:02:31', NULL, '2023-08-21 10:02:31', NULL, '2023-08-21 10:02:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2631, 6, 1, '', '5f982bc44ac947cda6272b7a670acedf', '5634f697dafe42c2bcca41a35009a742', 'default', NULL, '2024-03-16 18:34:18', NULL, '2023-08-21 10:34:18', NULL, '2023-08-21 10:34:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2632, 6, 1, '', '4cfb12f6a034448083f849921ed8292d', '95425a7e87754a4fb59f23624a3cad4d', 'default', NULL, '2024-03-16 18:44:34', NULL, '2023-08-21 10:44:34', NULL, '2023-08-21 10:44:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2633, 6, 1, '', '7c7669eed7d14fd3a2be393ea7a6c841', '1f9217aa9c0144158dd61e1b763f1a23', 'default', NULL, '2024-03-16 18:46:19', NULL, '2023-08-21 10:46:19', NULL, '2023-08-21 10:46:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2634, 6, 1, '', 'bdff9df2eaa045f4b020d7d5db6fda90', 'ac23c2ecbf7d49d2a34e13056729c007', 'default', NULL, '2024-03-16 18:46:22', NULL, '2023-08-21 10:46:22', NULL, '2023-08-21 10:46:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2635, 6, 1, '', '021442f783604ce38f2f1373d4fe7447', '3f6af65ea3fe46c792a2ec94a4ec295f', 'default', NULL, '2024-03-16 18:46:27', NULL, '2023-08-21 10:46:27', NULL, '2023-08-21 10:46:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2636, 6, 1, '', '07212d4e940746b1898148d9ebbee7ac', '800551ddb5d54d68b95e83f920159be6', 'default', NULL, '2024-03-16 18:47:59', NULL, '2023-08-21 10:47:59', NULL, '2023-08-21 10:47:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2637, 6, 1, '', 'fbedc29843da411d92472837ccd7b856', 'cfc51e111ecc4cc597594ce0ad493d9d', 'default', NULL, '2024-03-16 18:48:05', NULL, '2023-08-21 10:48:05', NULL, '2023-08-21 10:48:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2638, 6, 1, '', 'c5d6080b5e694648801d960fcaac70cc', 'c44c8c5eb45f44f8a33d5cdfb923cc26', 'default', NULL, '2024-03-16 18:49:59', NULL, '2023-08-21 10:49:59', NULL, '2023-08-21 10:49:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2639, 6, 1, '', '5b000a7f3e87418ba4b8ff2662fe7003', '68fd765bd39b4ef5a3a25d4ae9fe036e', 'default', NULL, '2024-03-16 18:53:00', NULL, '2023-08-21 10:53:00', NULL, '2023-08-21 10:53:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2640, 6, 1, '', '1be7eec55fb6424ca6c96b11cb92456d', 'a9ebc7627b954e1ea2e40291df73334e', 'default', NULL, '2024-03-16 18:53:46', NULL, '2023-08-21 10:53:46', NULL, '2023-08-21 10:53:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2641, 6, 1, '', '9cadf43b1dd64fe0b5a1f1991eb9d622', '1f17b1d872cf4c71a0527178f2bebe0f', 'default', NULL, '2024-03-16 18:55:11', NULL, '2023-08-21 10:55:11', NULL, '2023-08-21 10:55:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2642, 6, 1, '', '25ddb5393400478094168961eb4a270c', '05b960daf54f40f8a3aef8ccd2a8af75', 'default', NULL, '2024-03-16 18:56:36', NULL, '2023-08-21 10:56:36', NULL, '2023-08-21 10:56:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2643, 6, 1, '', '9651ef485c8f4ecaa2e3d2f6deb3623f', 'c7e936c8dda6470e8d5c7a46acb86426', 'default', NULL, '2024-03-17 19:00:56', NULL, '2023-08-22 11:00:56', NULL, '2023-08-22 11:00:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2644, 6, 1, '', '8440e20b107c40eeb9ac772409239407', '24d9c20b49cb4602a3539240871b667b', 'default', NULL, '2024-03-17 19:14:08', NULL, '2023-08-22 11:14:08', NULL, '2023-08-22 11:14:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2645, 6, 1, '', '8815e1ba8f34479a89d695d7b44c03c3', 'f3eb813f9e2b4202872d68f670955846', 'default', NULL, '2024-03-17 19:23:11', NULL, '2023-08-22 11:23:11', NULL, '2023-08-22 11:23:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2646, 6, 1, '', '5295f5047c8a4d65a138539818aa0a75', '3f403416379f4bcca2ff4d0a32cb8900', 'default', NULL, '2024-03-17 19:53:51', NULL, '2023-08-22 11:53:51', NULL, '2023-08-22 11:53:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2647, 6, 1, '', '50306b58a7614cc18a977ca0cf6daaef', 'd01c9f0217a841a0b5c5283a8d18aefe', 'default', NULL, '2024-03-19 19:23:55', NULL, '2023-08-24 11:23:55', NULL, '2023-08-24 11:23:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2648, 6, 1, '', 'f142170b0f1e4b719f67eaba1c1069af', 'a9ceecf9e19640c8be420e1fb3d5d5e9', 'default', NULL, '2024-03-19 19:24:52', NULL, '2023-08-24 11:24:52', NULL, '2023-08-24 11:24:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2649, 6, 1, '', '6970a3219d684f37b070f26cdc59298b', 'd2883561cba448719339d9d93c82b6e6', 'default', NULL, '2024-03-19 19:30:46', NULL, '2023-08-24 11:30:46', NULL, '2023-08-24 11:30:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2650, 6, 1, '', 'a044261afb0f465598c0a30e1096a5ac', '03b4e206456749f090cb459977cb4874', 'default', NULL, '2024-03-19 19:31:45', NULL, '2023-08-24 11:31:45', NULL, '2023-08-24 11:31:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2651, 6, 1, '', '0020171a730045bcbe3298deb76a6da7', 'f0ff0b90c2254d6b87be00281e5ac7d7', 'default', NULL, '2024-03-19 19:31:51', NULL, '2023-08-24 11:31:51', NULL, '2023-08-24 11:31:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2652, 6, 1, '', '4fd6bbfee2ad4ba2b36637a8e3f50601', '2df054be56224b658e2448535ed6f99b', 'default', NULL, '2024-03-19 19:46:50', NULL, '2023-08-24 11:46:50', NULL, '2023-08-24 11:46:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2653, 6, 1, '', '46db5f56fe894367901d16c265db325b', '7ddc56ae29b64f1aa71cecf8330deadc', 'default', NULL, '2024-03-20 01:01:49', NULL, '2023-08-24 17:01:49', NULL, '2023-08-24 17:01:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2654, 6, 1, '', 'c4f0da34091c4489921ee3ca80f3ac8d', '6c107d61c77c4400af57ddbbfb7bc30d', 'default', NULL, '2024-03-20 01:05:15', NULL, '2023-08-24 17:05:15', NULL, '2023-08-24 17:05:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2655, 6, 1, '', '584df95291e244eeaa6a65da708176a2', '45a8f45692b549538765aa1deda72ec2', 'default', NULL, '2024-03-20 02:07:26', NULL, '2023-08-24 18:07:26', NULL, '2023-08-24 18:07:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2656, 6, 1, '', '95e9b48a6a194e31a10a4944e83ab919', 'f2e36a35f9d5435b8ac37b6727f25456', 'default', NULL, '2024-03-20 02:11:17', NULL, '2023-08-24 18:11:17', NULL, '2023-08-24 18:11:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2657, 6, 1, '', 'eeead448be8148edb225af087ad17193', '6af1f6302fbc414b84fff3318378296a', 'default', NULL, '2024-03-21 02:42:44', NULL, '2023-08-25 18:42:44', NULL, '2023-08-25 18:42:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2658, 6, 1, '', '30047d943278453da93d34f14b166811', 'd3835c7e101947e6a2efdc296fab5d37', 'default', NULL, '2024-03-21 17:45:46', NULL, '2023-08-26 09:45:46', NULL, '2023-08-26 09:45:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2659, 6, 1, '', '6227328ff4e54b5e9514b3601ec2aa55', 'cb1e3b609e944c4aa45307f98d50f4e9', 'default', NULL, '2024-03-21 19:07:15', NULL, '2023-08-26 11:07:15', NULL, '2023-08-26 11:07:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2660, 6, 1, '', '72f834d16f6e4fd3849696c79486f6a5', 'e505433c9fdf4ad9880f39818bc02b87', 'default', NULL, '2024-03-21 19:14:54', NULL, '2023-08-26 11:14:54', NULL, '2023-08-26 11:14:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2661, 6, 1, '', 'ba6c990a3ae443dba103967ba2bd3133', 'cf7284d5079f4af986ea56643f8237a1', 'default', NULL, '2024-03-21 19:16:52', NULL, '2023-08-26 11:16:52', NULL, '2023-08-26 11:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2662, 6, 1, '', '730aa33cee3b4a22880d4a8dbc4fc412', '03bff3b58ffd4b93813abe0a547d5cdb', 'default', NULL, '2024-03-21 19:44:25', NULL, '2023-08-26 11:44:25', NULL, '2023-08-26 11:44:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2663, 6, 1, '', '7ee847befc1c4ed19c861f18decaf828', 'a68a01a8fc134cda8398a9cc07a5a437', 'default', NULL, '2024-03-21 19:48:41', NULL, '2023-08-26 11:48:41', NULL, '2023-08-26 11:48:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2664, 6, 1, '', '75e05801c6fd4c5e8245001851ffbdbf', '10391d4dd65f4804916ae9ad262fbc02', 'default', NULL, '2024-03-22 00:18:00', NULL, '2023-08-26 16:18:00', NULL, '2023-08-26 16:18:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2665, 6, 1, '', '05aad6baf55445f8b95fc27bc06887b5', '16a42f65e0494a8b89a6406eae8ec073', 'default', NULL, '2024-03-22 00:27:09', NULL, '2023-08-26 16:27:09', NULL, '2023-08-26 16:27:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2666, 6, 1, '', 'e54af4f413ed4fe3bf845a8892bfdcaf', 'fadbbf1b7ed64107982b87206a9535bc', 'default', NULL, '2024-03-22 00:27:39', NULL, '2023-08-26 16:27:39', NULL, '2023-08-26 16:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2667, 6, 1, '', 'f38f0dc0bbb54b6aa56a8d1b8c103c6f', '1c677a3488434874be0e95ced8f7bf4f', 'default', NULL, '2024-03-22 00:28:24', '6', '2023-08-26 16:28:24', '6', '2023-08-26 16:28:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2668, 6, 1, '', 'd3c9bba5990a4b8ea32ad36939fb1c5d', '45df05f6244b478d89adf89e57b391ec', 'default', NULL, '2024-03-22 00:28:29', '6', '2023-08-26 16:28:29', '6', '2023-08-26 16:28:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2669, 6, 1, '', '9f59fc2e6567444db20b10dbf22523d5', '334634fa53ec48f49b3c8c188be1ff7e', 'default', NULL, '2024-03-22 00:59:54', NULL, '2023-08-26 16:59:54', NULL, '2023-08-26 16:59:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2670, 6, 1, '', '6db926e895b84055929e6415ef43bfd7', 'b7ac2e9982c146d4a88d84b7fc5ef5b4', 'default', NULL, '2024-03-22 01:08:45', NULL, '2023-08-26 17:08:45', NULL, '2023-08-26 17:08:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2671, 6, 1, '', '8285371b0a7d4ba08a687da2aab1faf7', 'e79acb9c4af94c5e839850b9ad0d7927', 'default', NULL, '2024-03-22 01:28:43', NULL, '2023-08-26 17:28:43', NULL, '2023-08-26 17:28:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2672, 6, 1, '', 'f3830b65bbe942cc99655c039c6f02b8', '6ed94a0753b04cc0bac8a747e18f923c', 'default', NULL, '2024-03-22 01:29:20', NULL, '2023-08-26 17:29:20', NULL, '2023-08-26 17:29:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2673, 6, 1, '', '76b5a2123e854121ab4467aa979edcdf', '5789e5926aa844649ae7e25fcc9cec08', 'default', NULL, '2024-03-24 00:48:58', NULL, '2023-08-28 16:48:58', NULL, '2023-08-28 16:48:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2674, 6, 1, '', 'cfabd0e20518466f9ff99e9bad7580fd', 'fea3b08a5471475e969c0953455fb429', 'default', NULL, '2024-03-24 01:23:21', NULL, '2023-08-28 17:23:21', NULL, '2023-08-28 17:23:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2675, 6, 1, '', '5f324272bf024e94b81d088cfd22ac8d', 'b8a8c4a2eb6a453482ffe14ce36ea260', 'default', NULL, '2024-03-26 01:12:11', NULL, '2023-08-30 17:12:11', NULL, '2023-08-30 17:12:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2676, 6, 1, '', '793074832b4a4f8087cfe6c1881c2a09', '60e6ef6361e04cef927cba586e25b39a', 'default', NULL, '2024-03-26 01:18:27', NULL, '2023-08-30 17:18:27', NULL, '2023-08-30 17:18:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2677, 6, 1, '', 'f990052bb18c49df9f7b430d77eb74cb', 'bd45a8f958c0477ba4434d3af6629e94', 'default', NULL, '2024-03-26 01:19:21', NULL, '2023-08-30 17:19:21', NULL, '2023-08-30 17:19:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2678, 6, 1, '', '0162b4583e7e43fe974770ed454366c1', '10707ca16b8745e596ee01aa443ec9fa', 'default', NULL, '2024-03-26 01:56:15', NULL, '2023-08-30 17:56:15', NULL, '2023-08-30 17:56:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2679, 6, 1, '', '851d274bd46e497ab001e8800dbc0a71', '88af04ae55bf403b8406d1152d8c541c', 'default', NULL, '2024-03-26 02:52:17', NULL, '2023-08-30 18:52:17', NULL, '2023-08-30 18:52:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2680, 6, 1, '', '7dee06d9969c44218fef0d03b8214fe4', '77bf467260414292b65b629be426d562', 'default', NULL, '2024-03-26 17:29:04', NULL, '2023-08-31 09:29:04', NULL, '2023-08-31 09:29:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2681, 6, 1, '', 'e516f6c0bd7d454baeb0e60eddaa42c2', '64fb6fa953a642d89b05900245898619', 'default', NULL, '2024-03-26 17:30:11', NULL, '2023-08-31 09:30:11', NULL, '2023-08-31 09:30:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2682, 6, 1, '', 'de2f08802971403daa8a921a135d42d3', 'f11129d352be46fd95e8e863599c62b5', 'default', NULL, '2024-03-26 19:44:35', NULL, '2023-08-31 11:44:35', NULL, '2023-08-31 11:44:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2683, 6, 1, '', 'd93a6063244d4b0d95122158ceb38ee1', '48e04e808a2b49b8aa3fe61392303144', 'default', NULL, '2024-03-26 19:49:38', NULL, '2023-08-31 11:49:38', NULL, '2023-08-31 11:49:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2684, 6, 1, '', 'd47026fd54044b39b9b5d68f3f185de4', 'fc7d918095b6420fa14a6c92216d9482', 'default', NULL, '2024-03-26 19:53:04', NULL, '2023-08-31 11:53:04', NULL, '2023-08-31 11:53:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2685, 6, 1, '', '440b069a133d4f46b804cabd37ce88e2', '49301873a5834f978ae1530692121778', 'default', NULL, '2024-03-26 19:58:07', NULL, '2023-08-31 11:58:07', NULL, '2023-08-31 11:58:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2686, 6, 1, '', 'b2bf05f2902246539a40620928c7cd96', '78ae69282a114edf96a532e06510a102', 'default', NULL, '2024-03-27 17:29:05', NULL, '2023-09-01 09:29:05', NULL, '2023-09-01 09:29:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2687, 6, 1, '', '0bcf8a2b1eb540f8b596aa0ed21d358b', 'f02b9afee5f348f1b38e654120cbc965', 'default', NULL, '2024-03-27 17:29:37', NULL, '2023-09-01 09:29:37', NULL, '2023-09-01 09:29:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2688, 6, 1, '', 'd796cb8dc8b6418fb7a3a3be801029df', 'c39400e47b664c9e986fe97602e417e7', 'default', NULL, '2024-03-27 17:42:34', NULL, '2023-09-01 09:42:34', NULL, '2023-09-01 09:42:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2689, 6, 1, '', '6216272ce7e04ff9b7bb317ebcd2cad4', '30c06a372e04496c97846e38e751a477', 'default', NULL, '2024-03-27 17:48:37', NULL, '2023-09-01 09:48:37', NULL, '2023-09-01 09:48:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2690, 6, 1, '', '2398d621b715431d98d4ef5860c66fb6', '0a517b7c3f544129bb2a86c8c3f2f639', 'default', NULL, '2024-03-28 01:24:15', NULL, '2023-09-01 17:24:15', NULL, '2023-09-01 17:24:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2691, 6, 1, '', 'd85ed1befca84599a9f7b9d868430fc7', '57a45c08bf7543b4999a8694823008f3', 'default', NULL, '2024-03-28 01:36:30', NULL, '2023-09-01 17:36:30', NULL, '2023-09-01 17:36:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2692, 6, 1, '', 'd2f10e8816da4880931dc41aa6b44f1d', 'b1aa85e924a14070b55b8a6a23ff4199', 'default', NULL, '2024-03-28 01:38:18', NULL, '2023-09-01 17:38:18', NULL, '2023-09-01 17:38:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2693, 6, 1, '', 'f6e50fbb1c9b41c1a16028b7ebd14a73', '0fe8aae8fc464ef78b6a2289b113a5dd', 'default', NULL, '2024-03-28 01:40:56', NULL, '2023-09-01 17:40:56', NULL, '2023-09-01 17:40:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2694, 6, 1, '', '249aea002445413dbec43fe3d1e0f87b', 'd6f384f83c3843f391ce7c64874b28a8', 'default', NULL, '2024-03-28 01:43:33', NULL, '2023-09-01 17:43:33', NULL, '2023-09-01 17:43:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2695, 6, 1, '', '7130311dccb143079c70d30c243b37f1', 'd98d05b9cb06470f9b3022f6c6cf6c97', 'default', NULL, '2024-03-28 01:44:23', NULL, '2023-09-01 17:44:23', NULL, '2023-09-01 17:44:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2696, 6, 1, '', 'd4b196556f9e4dcb96953564ead0717d', 'e23a638df23f4057a1e3262a827de8ad', 'default', NULL, '2024-03-28 02:18:28', NULL, '2023-09-01 18:18:28', NULL, '2023-09-01 18:18:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2697, 6, 1, '', '8f2f32cae8764c608f1db507e8501369', '3bbcaa2a84bf4cfba8336e8c945d6ae6', 'default', NULL, '2024-03-28 02:18:55', NULL, '2023-09-01 18:18:55', NULL, '2023-09-01 18:18:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2698, 6, 1, '', '0392c0a0d5214162ace303afab18fc99', '42063dd062b0493695644a11c05c0a59', 'default', NULL, '2024-03-28 02:22:52', NULL, '2023-09-01 18:22:52', NULL, '2023-09-01 18:22:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2699, 6, 1, '', '7552719b20d84a978eb071984aa8bcf9', '63529b2562a94f13a8df7d2699f2dfef', 'default', NULL, '2024-03-28 02:28:07', NULL, '2023-09-01 18:28:07', NULL, '2023-09-01 18:28:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2700, 6, 1, '', '9eae10b221ff4cc1bfbcb6c9c14c5c06', '266498a6ffe34b75a2027f867a7df11c', 'default', NULL, '2024-03-28 02:35:45', NULL, '2023-09-01 18:35:45', NULL, '2023-09-01 18:35:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2701, 6, 1, '', 'c3573b4a95604489b5a885208a1d2233', '7b7def5ed9c1476f89ed8899beb6fcf5', 'default', NULL, '2024-03-28 02:39:02', NULL, '2023-09-01 18:39:02', NULL, '2023-09-01 18:39:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2702, 6, 1, '', 'c9c1d4051b5647a1a9b3b1bf6a8efb2a', '63ae936f7a7648c28bcf83b5383f4074', 'default', NULL, '2024-03-28 02:39:23', NULL, '2023-09-01 18:39:23', NULL, '2023-09-01 18:39:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2703, 6, 1, '', '2abc36ff25c14894ae2a5ffd0452ea68', '6047ed31f1964e329283cfa424c77154', 'default', NULL, '2024-03-28 02:39:50', NULL, '2023-09-01 18:39:50', NULL, '2023-09-01 18:39:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2704, 6, 1, '', '8ab5a25efb6745cdbccd75b8906b46a8', 'e2ae908102044569883ab0b917c9b806', 'default', NULL, '2024-03-28 02:41:12', NULL, '2023-09-01 18:41:12', NULL, '2023-09-01 18:41:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2705, 6, 1, '', 'd86d4961fe93454fbc996f5b63d2a386', '4b46fdd0e3f042e9afc9caf85fdf2748', 'default', NULL, '2024-03-28 02:41:17', NULL, '2023-09-01 18:41:17', NULL, '2023-09-01 18:41:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2706, 6, 1, '', 'e26f18ee92d744fe80b26bae69ba17f6', '64e284ef751148b59853e318d20e9c0a', 'default', NULL, '2024-03-28 02:45:26', NULL, '2023-09-01 18:45:26', NULL, '2023-09-01 18:45:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2707, 6, 1, '', '287fc725a72d4cbb843643456ffc2f4f', '3f0a96a2a7fc4898b9f561f1bba9fc28', 'default', NULL, '2024-03-28 02:45:36', NULL, '2023-09-01 18:45:36', NULL, '2023-09-01 18:45:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2708, 6, 1, '', 'cbadc246e11b4a23b0e227cceb2e951e', '73d2e4e1ab6a4bd795dce3d29fab901d', 'default', NULL, '2024-03-28 02:48:25', NULL, '2023-09-01 18:48:25', NULL, '2023-09-01 18:48:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2709, 6, 1, '', '40d6d7b90e074459939dfb2402a3d6ba', '9128034d966b4d6a89640a825680d675', 'default', NULL, '2024-03-28 02:50:54', NULL, '2023-09-01 18:50:54', NULL, '2023-09-01 18:50:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2710, 6, 1, '', 'd05cae1891a84492aea6f4c3e2eab1f5', '437ae7b46d5e416ea4b73dbabc9bb3f0', 'default', NULL, '2024-03-28 02:51:16', NULL, '2023-09-01 18:51:16', NULL, '2023-09-01 18:51:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2711, 6, 1, '', '7397eabe30f1403fa4fab16e1df5c1e2', 'fc1ac19fd2174f7e92302c4b792b88de', 'default', NULL, '2024-03-28 02:51:33', NULL, '2023-09-01 18:51:33', NULL, '2023-09-01 18:51:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2712, 6, 1, '', '063dcf5f15e645b1addf38ec31903589', '0fc561a20deb48c8bb8e56863065747b', 'default', NULL, '2024-03-28 02:52:44', NULL, '2023-09-01 18:52:44', NULL, '2023-09-01 18:52:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2713, 6, 1, '', 'b362d2cc4f5a4e5592ea5c7236e2cf80', '03b0c81818034db490a333d92bd933bd', 'default', NULL, '2024-03-28 02:56:35', NULL, '2023-09-01 18:56:35', NULL, '2023-09-01 18:56:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2714, 6, 1, '', '7936f15131c0485fb8bc713cffd3dadb', '25042398414840239ef5d81246a21301', 'default', NULL, '2024-03-30 00:05:13', NULL, '2023-09-03 16:05:13', NULL, '2023-09-03 16:05:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2715, 6, 1, '', '150e6eea9b9f439b9fbca30f897032b7', '0e4eba184de6460da52fd60de3aff9bc', 'default', NULL, '2024-03-30 00:09:16', NULL, '2023-09-03 16:09:16', NULL, '2023-09-03 16:09:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2716, 6, 1, '', '9b797fcbb61b4b58a87f08c9a90e41ae', '01ac70ce6c5a4a78bdc3f0111e4cb11e', 'default', NULL, '2024-03-30 00:11:02', NULL, '2023-09-03 16:11:02', NULL, '2023-09-03 16:11:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2717, 6, 1, '', '9a25b98b97c94c9b8cbbeab281e3f1d3', '878920aca5864e45a29cf28718ea1b22', 'default', NULL, '2024-03-30 00:11:47', NULL, '2023-09-03 16:11:47', NULL, '2023-09-03 16:11:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2718, 6, 1, '', 'f8ee4b20e3124ae1b1d54f8deed01dbd', 'b50746a1179b411290939ff947809a5e', 'default', NULL, '2024-03-30 00:13:24', NULL, '2023-09-03 16:13:24', NULL, '2023-09-03 16:13:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2719, 6, 1, '', '861a20adb0444e6cb4413819b4541ab0', 'b2fea444be874103bb89012a0ac04f42', 'default', NULL, '2024-03-30 00:14:27', NULL, '2023-09-03 16:14:27', NULL, '2023-09-03 16:14:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2720, 6, 1, '', 'b1061b9af648426dbf0d51814b675e22', '7cf5b13d26e74decb7da2b9a86826893', 'default', NULL, '2024-03-30 00:15:45', NULL, '2023-09-03 16:15:45', NULL, '2023-09-03 16:15:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2721, 6, 1, '', 'd76a3e6d68904d239d5eedb8069df3ee', 'e774fa4f13734dd3be729d8bd091e8c5', 'default', NULL, '2024-03-30 00:16:17', NULL, '2023-09-03 16:16:17', NULL, '2023-09-03 16:16:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2722, 6, 1, '', 'f17d00556a9e4093992a9a511106e3d8', '259dcc9b111040c88eb76b44af56dcea', 'default', NULL, '2024-03-30 00:16:56', NULL, '2023-09-03 16:16:56', NULL, '2023-09-03 16:16:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2723, 6, 1, '', 'fbb565028bc64bd9973268f065e0c189', 'fc46280459064587958c876f634f22fd', 'default', NULL, '2024-03-30 00:17:33', NULL, '2023-09-03 16:17:33', NULL, '2023-09-03 16:17:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2724, 6, 1, '', '0662742a1452478db173c13fc2b7950e', '1dc8d92eccf14315a88867d3d80c4b3b', 'default', NULL, '2024-03-30 00:17:57', NULL, '2023-09-03 16:17:57', NULL, '2023-09-03 16:17:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2725, 6, 1, '', '6c9d26a2204a4d58bc1d19e13ae84b9d', 'd4fa2608f8cc4e58a79bf0a276f4f444', 'default', NULL, '2024-03-30 00:18:14', NULL, '2023-09-03 16:18:14', NULL, '2023-09-03 16:18:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2726, 6, 1, '', '1fd5a51a9ecf4779a980f6b30ba35bdc', '947c4b3f12324e1588a8b7a91a1ad3cb', 'default', NULL, '2024-03-30 00:18:36', NULL, '2023-09-03 16:18:36', NULL, '2023-09-03 16:18:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2727, 6, 1, '', '4d3a9bfb990e48ffa8e0e3d21b5ec077', '12e68535dcee4fdda010d3730b60dd53', 'default', NULL, '2024-03-30 00:21:35', NULL, '2023-09-03 16:21:35', NULL, '2023-09-03 16:21:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2728, 6, 1, '', '944b2f35afc741cf8bf21e6c95f2b98b', '905a39c6f02a49bab3d34f43077d0f52', 'default', NULL, '2024-03-30 00:22:10', NULL, '2023-09-03 16:22:10', NULL, '2023-09-03 16:22:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2729, 6, 1, '', '1ea88b34831f4093aa1452596a4eab2d', '8a065c647f9d457791c671b118266639', 'default', NULL, '2024-03-30 00:22:40', NULL, '2023-09-03 16:22:40', NULL, '2023-09-03 16:22:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2730, 6, 1, '', 'ce2a2bea0aec4ea494cb1a4ad0316144', 'a846cf7e11e244fe9bc45909b7315ef5', 'default', NULL, '2024-03-30 00:25:17', NULL, '2023-09-03 16:25:17', NULL, '2023-09-03 16:25:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2731, 6, 1, '', '53ab832c04554a56af0c3bd03d17b59b', 'dab0ba81bd954e93b7c1228831cd0d61', 'default', NULL, '2024-03-30 00:29:14', NULL, '2023-09-03 16:29:14', NULL, '2023-09-03 16:29:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2732, 6, 1, '', '0286dcd931aa429cb4c3ce0ddb885f3d', '97ac586b1f284298b76b03f3fee7a98e', 'default', NULL, '2024-03-30 00:29:29', NULL, '2023-09-03 16:29:29', NULL, '2023-09-03 16:29:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2733, 6, 1, '', '4d97c8c32b9c48d38ab200f381d53687', '3bf3448e290f4462877cc2f9b885ed38', 'default', NULL, '2024-03-30 00:33:23', NULL, '2023-09-03 16:33:23', NULL, '2023-09-03 16:33:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2734, 6, 1, '', 'd73571230c7c4ce0bc2cdb8f97bcb321', '62275be909524d2b9c92643ba186697b', 'default', NULL, '2024-03-30 00:37:48', NULL, '2023-09-03 16:37:48', NULL, '2023-09-03 16:37:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2735, 6, 1, '', '8f5125bfe85c4528bb8bee1c25b9864e', '73eb368f60a445959ceec64af8505e39', 'default', NULL, '2024-03-30 00:38:17', NULL, '2023-09-03 16:38:17', NULL, '2023-09-03 16:38:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2736, 6, 1, '', 'f45fc229d4714d58b7e1ac6637a1326c', '2d828b4ea2b14e1487f0558433e0a35d', 'default', NULL, '2024-03-30 00:40:50', NULL, '2023-09-03 16:40:50', NULL, '2023-09-03 16:40:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2737, 6, 1, '', '91c1397740a94ea9b7fc6b825e80bb06', '9fd32029185446efa898413537fb14d7', 'default', NULL, '2024-03-30 00:41:35', NULL, '2023-09-03 16:41:35', NULL, '2023-09-03 16:41:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2738, 6, 1, '', '3d7ab6b35f974c4d8b0d52307493d4ec', '43c68f4987204c8ebb80fe11cf1c0626', 'default', NULL, '2024-03-30 00:48:32', '6', '2023-09-03 16:48:32', '6', '2023-09-03 16:48:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2739, 6, 1, '', '38ac7fe6d6564f2e9ac96bb023cf494b', 'f4d60dc2d53f46a281052a999f7e05e2', 'default', NULL, '2024-03-30 00:50:36', NULL, '2023-09-03 16:50:36', NULL, '2023-09-03 16:50:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2740, 6, 1, '', 'f2fad3cb9f344f4e97fa2b35429e84fa', 'c0b7840082504ac4b1dbeed0a033ee39', 'default', NULL, '2024-03-30 01:14:23', NULL, '2023-09-03 17:14:23', NULL, '2023-09-03 17:14:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2741, 6, 1, '', '330e2e3b09484053926371d7c057b61a', '6971751b192e407bbc9520b207e44f5a', 'default', NULL, '2024-03-30 01:19:03', NULL, '2023-09-03 17:19:03', NULL, '2023-09-03 17:19:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2742, 6, 1, '', '6cb448a5d5b5481e833d41944fe58479', 'dc67f17c8fbe406d90070b3b612a404b', 'default', NULL, '2024-03-30 01:25:25', NULL, '2023-09-03 17:25:25', NULL, '2023-09-03 17:25:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2743, 6, 1, '', '9de7532fa6d547fcac48bed98e800d53', '005d3abc12e34ef79a6457f5a8d7160f', 'default', NULL, '2024-03-30 01:26:14', NULL, '2023-09-03 17:26:14', NULL, '2023-09-03 17:26:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2744, 6, 1, '', 'bd7b8a3ea9fe435f975d654d74c7d11b', '0a7d13203a284cc2b53ca83761d86228', 'default', NULL, '2024-03-30 01:26:55', NULL, '2023-09-03 17:26:55', NULL, '2023-09-03 17:26:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2745, 6, 1, '', 'd4828dd4a6bd44fbbbcfeb7cc085e433', '19b39e18574a4ce59b5902ac477bdf12', 'default', NULL, '2024-03-30 01:30:27', NULL, '2023-09-03 17:30:27', NULL, '2023-09-03 17:30:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2746, 6, 1, '', 'f17820890cdc448bb36d154a9354eba8', '1bb37ccbb1df41efa6e6ca7e4964e6d4', 'default', NULL, '2024-03-30 01:35:06', NULL, '2023-09-03 17:35:06', NULL, '2023-09-03 17:35:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2747, 6, 1, '', '8f3373f7b95046be9fd92f3b8107a6dc', '946bbf66d50d4b8fb909ef9c71f7b516', 'default', NULL, '2024-03-30 01:36:20', NULL, '2023-09-03 17:36:20', NULL, '2023-09-03 17:36:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2748, 6, 1, '', '973270af72384f559576e7eb2caaad56', 'ea6964efd10e4e809f0abcc6719ef711', 'default', NULL, '2024-03-30 01:37:22', NULL, '2023-09-03 17:37:22', NULL, '2023-09-03 17:37:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2749, 6, 1, '', '1f6573cb255b4796b80c5b53f69b78fa', 'b718cfb60d7b4379a4a13cf94fd3706f', 'default', NULL, '2024-03-30 01:47:02', NULL, '2023-09-03 17:47:02', NULL, '2023-09-03 17:47:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2750, 6, 1, '', '63372a39e23849919f725532b0f2e7d8', '630ab28c069c45f4a48a538b1185598f', 'default', NULL, '2024-03-30 01:48:54', NULL, '2023-09-03 17:48:54', NULL, '2023-09-03 17:48:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2751, 6, 1, '', '550f6c88af504b568cfe50cab798731e', '72f73b06d4d44441814b5b62bac73d9b', 'default', NULL, '2024-03-30 02:17:56', NULL, '2023-09-03 18:17:56', NULL, '2023-09-03 18:17:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2752, 6, 1, '', '4303272cb20649e6b1a237338a5e97ee', '4177ee5551df486eb57b64df57ef706c', 'default', NULL, '2024-03-30 17:55:30', NULL, '2023-09-04 09:55:30', NULL, '2023-09-04 09:55:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2753, 6, 1, '', '1a1625f3f6fe473996429f625aedf266', '17071c56e38346d3aedcdc7195da33ca', 'default', NULL, '2024-03-30 18:15:17', NULL, '2023-09-04 10:15:17', NULL, '2023-09-04 10:15:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2754, 6, 1, '', '02d52a9dcf704eb583b12aed760b1d59', '787fe1e3fe1b43bbace22bdea7992872', 'default', NULL, '2024-03-30 18:17:29', NULL, '2023-09-04 10:17:29', NULL, '2023-09-04 10:17:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2755, 6, 1, '', 'd69874d2e02f4c6ca2e56264a0bc886f', 'a77e27ec130d424db1d855b2957a63c2', 'default', NULL, '2024-03-30 18:37:46', NULL, '2023-09-04 10:37:46', NULL, '2023-09-04 10:37:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2756, 6, 1, '', 'cb2a6517e88e4af0b17467c27e00db7a', '8f6e63439b344eb8a8f57698d58ab1ad', 'default', NULL, '2024-03-30 18:45:08', NULL, '2023-09-04 10:45:08', NULL, '2023-09-04 10:45:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2757, 6, 1, '', 'f5a9e053e31d40518e9b6ece448c0826', '989b41a17cdf4b6f92f31fee5f9ab358', 'default', NULL, '2024-03-30 18:46:30', NULL, '2023-09-04 10:46:30', NULL, '2023-09-04 10:46:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2758, 6, 1, '', '78ae912083a74d258b0a386d79062284', 'b1660d96146e424396084ce5ac430472', 'default', NULL, '2024-03-30 18:48:22', NULL, '2023-09-04 10:48:22', NULL, '2023-09-04 10:48:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2759, 6, 1, '', '9b5eac080e2d48bebbfa8d2c0bc316be', '5b40ffd9a0f249e38eaad7beba75d135', 'default', NULL, '2024-03-30 18:51:10', NULL, '2023-09-04 10:51:10', NULL, '2023-09-04 10:51:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2760, 6, 1, '', 'd35ee7abdccd48ada3a6840bd9f14d69', '456f9087b43a4bc7ad41054b6d5b2b0c', 'default', NULL, '2024-03-30 18:52:24', NULL, '2023-09-04 10:52:24', NULL, '2023-09-04 10:52:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2761, 6, 1, '', 'c80f88702bf34845abb1cb9993d4dce0', '19141830b0134f36ac750c2720e6a159', 'default', NULL, '2024-03-30 18:54:11', NULL, '2023-09-04 10:54:11', NULL, '2023-09-04 10:54:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2762, 6, 1, '', 'cc4cc49f5ad542128152db8fc4548437', 'e6f55797b5b040c78eee99cd75e5155c', 'default', NULL, '2024-03-30 19:53:57', NULL, '2023-09-04 11:53:57', NULL, '2023-09-04 11:53:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2763, 6, 1, '', '827496dc576f4ab19c210e13601aa1bd', '172ea5ecd67c4aecbfe6c73e600bf8d3', 'default', NULL, '2024-03-30 19:54:37', NULL, '2023-09-04 11:54:37', NULL, '2023-09-04 11:54:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2764, 6, 1, '', '461565d4344d4f80ad22b77918591c8e', '1c43cdf207cd43f287f6225781b3db81', 'default', NULL, '2024-03-30 19:56:53', NULL, '2023-09-04 11:56:53', NULL, '2023-09-04 11:56:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2765, 6, 1, '', '0a1f5ced2c69430b94845aadacd0ca04', 'a986eaa60278418ab44bfd0880faea68', 'default', NULL, '2024-03-30 22:14:53', NULL, '2023-09-04 14:14:53', NULL, '2023-09-04 14:14:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2766, 6, 1, '', 'fb6999d115854b278630fa1c26ef0b81', 'c4058ce581a34b2e87541fa15cad5d4e', 'default', NULL, '2024-03-30 22:17:32', NULL, '2023-09-04 14:17:32', NULL, '2023-09-04 14:17:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2767, 6, 1, '', 'ef20318caa1e4712af92954a97b207f6', '29e1cacd66314ba98d4a9b31c64eaf32', 'default', NULL, '2024-03-30 22:18:23', NULL, '2023-09-04 14:18:23', NULL, '2023-09-04 14:18:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2768, 6, 1, '', 'e6bbd889982b4584af1fd34e2cdfa5c3', 'dfec6ed91fe84bd8b885f6cc287cb175', 'default', NULL, '2024-03-30 22:19:25', NULL, '2023-09-04 14:19:25', NULL, '2023-09-04 14:19:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2769, 6, 1, '', '5f82774c08cf408bb52137e703d8a97c', '44615ed638ae456a9a8b89f3afd6cda6', 'default', NULL, '2024-03-30 22:20:38', NULL, '2023-09-04 14:20:38', NULL, '2023-09-04 14:20:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2770, 1, 2, '', '814d61074147414bb5165ea6e1c26884', '9b00090e92654b409a90d2f75e27b4a0', 'default', NULL, '2024-03-31 01:03:51', NULL, '2023-09-04 17:03:51', NULL, '2023-09-04 18:33:23', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2771, 6, 1, '', 'a2df8e1b3ab742f3b03e0e95c8a7ed11', '4126dc856e4f4a808592edca6680c8b3', 'default', NULL, '2024-03-31 01:12:14', NULL, '2023-09-04 17:12:14', NULL, '2023-09-04 17:12:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2772, 1, 2, '', 'd0d7a0e523e64503ad7fb207109cbefb', '5d25a689763c49beb49c6c19164aa326', 'default', NULL, '2024-03-31 02:35:51', NULL, '2023-09-04 18:35:51', NULL, '2023-09-04 18:35:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2773, 6, 1, '', 'b52167215bdb43e7b27c9c94f260baf6', 'eb672165b6b346069430455d72c2c5ea', 'default', NULL, '2024-03-31 02:40:59', NULL, '2023-09-04 18:40:59', NULL, '2023-09-04 18:40:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2774, 6, 1, '', '57841cd8a39240a685707dff141a64ba', 'd737cf3d52084460aa5e426e02b0083a', 'default', NULL, '2024-03-31 02:43:23', NULL, '2023-09-04 18:43:23', NULL, '2023-09-04 18:43:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2775, 6, 1, '', '85af57dd10294dea88084131ae5d989d', '62768a7235e64822a3f6298d50f500fc', 'default', NULL, '2024-03-31 02:43:45', NULL, '2023-09-04 18:43:45', NULL, '2023-09-04 18:43:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2776, 6, 1, '', '01f16c57e81247e08d7f53c7c35119c5', 'b01239cdaac04853b2e8a0231fddaa9a', 'default', NULL, '2024-03-31 02:44:50', NULL, '2023-09-04 18:44:50', NULL, '2023-09-04 18:44:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2777, 6, 1, '', 'f0b04b67c7284e75a765120d48948f0f', '4432bc7fbc884c00b1e77956029ec5af', 'default', NULL, '2024-03-31 02:45:00', NULL, '2023-09-04 18:45:00', NULL, '2023-09-04 18:45:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2778, 6, 1, '', '6448b3a678f5438898d990da2b3107ea', 'cef79092235e4a81bc19c74dcbbbed42', 'default', NULL, '2024-03-31 02:45:41', NULL, '2023-09-04 18:45:41', NULL, '2023-09-04 18:45:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2779, 6, 1, '', '9553bebcd067454ba39559ff1b4f4ce8', '2e462d5d38364cae8f38020f11670e36', 'default', NULL, '2024-03-31 02:46:12', NULL, '2023-09-04 18:46:12', NULL, '2023-09-04 18:46:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2780, 6, 1, '', '189f6a87d3ad4d409b026e5c3e48cf45', '68be0fb33f6f40c297237fa86b7ae4f2', 'default', NULL, '2024-03-31 02:47:14', NULL, '2023-09-04 18:47:14', NULL, '2023-09-04 18:47:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2781, 6, 1, '', '0ab257bc393f4f56b1d22d036a673473', '7c67d3bab2264754bb4e8fbf15393430', 'default', NULL, '2024-03-31 02:49:08', NULL, '2023-09-04 18:49:08', NULL, '2023-09-04 18:49:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2782, 6, 1, '', '13ce8e0e8058454cb1ec3ce8d8978528', 'ecaa2b30815b40d9ba2fafa9635076e4', 'default', NULL, '2024-03-31 02:51:37', NULL, '2023-09-04 18:51:37', NULL, '2023-09-04 18:51:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2783, 6, 1, '', '90af71924a784fbc9258ec3d51117979', 'a8ad1b49f0244e26bffa947eddfd78ef', 'default', NULL, '2024-03-31 17:21:22', NULL, '2023-09-05 09:21:22', NULL, '2023-09-05 09:21:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2784, 6, 1, '', '58877376fb7547bba15af321d970c1dc', 'a09d694c88c840319db9c17473988f20', 'default', NULL, '2024-03-31 17:21:58', NULL, '2023-09-05 09:21:58', NULL, '2023-09-05 09:21:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2785, 6, 1, '', 'a7c8099f77ed489ca0a23f497d5e90c5', '06ac045b1c9a42a98f476df90dee0f40', 'default', NULL, '2024-03-31 17:25:19', NULL, '2023-09-05 09:25:19', NULL, '2023-09-05 09:25:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2786, 6, 1, '', '2ac19947f18d4c2c9b1ec7b1a8ddc1cf', '111981ea7218429f9270a179593461b7', 'default', NULL, '2024-03-31 17:26:22', NULL, '2023-09-05 09:26:22', NULL, '2023-09-05 09:26:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2787, 6, 1, '', '03badfe5ac9c4c94882f92e050f77c97', '59ed02d36080409e9809fb1fee90b4cf', 'default', NULL, '2024-03-31 17:31:33', NULL, '2023-09-05 09:31:33', NULL, '2023-09-05 09:31:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2788, 6, 1, '', '92f17e59bde8491ea896713a442a1d6c', '1c285cca497f4d60a78a78f665b6d014', 'default', NULL, '2024-03-31 17:36:28', NULL, '2023-09-05 09:36:28', NULL, '2023-09-05 09:36:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2789, 6, 1, '', 'ea5a32fbdd18467c9ca20c6d70ed0490', '0f14714e9e0f419798de5a7508026ee7', 'default', NULL, '2024-03-31 17:57:55', NULL, '2023-09-05 09:57:55', NULL, '2023-09-05 09:57:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2790, 6, 1, '', '13e49028618e46c78c264b95317233d8', '8332a564e7f14f8cafe1c1d53cdcedcd', 'default', NULL, '2024-03-31 18:06:37', NULL, '2023-09-05 10:06:37', NULL, '2023-09-05 10:06:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2791, 1, 2, '', 'ec55be64fbd0467ab2040646095b52d6', 'efd6df2e9399461a9bb1a18f6a312231', 'default', NULL, '2024-03-31 18:07:41', NULL, '2023-09-05 10:07:41', NULL, '2023-09-05 10:41:39', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2792, 1, 2, '', 'f70c8583e6d746649685fe2b3f4d3d6f', '155c8a5b6aba47b3a00b676e0764ac3b', 'default', NULL, '2024-03-31 19:05:37', NULL, '2023-09-05 11:05:37', NULL, '2023-09-05 14:37:52', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2793, 126, 2, '', 'e624959bcc074ffaad6f9cd6a4d3528b', 'c8b15d915bc249418f6bdac5d60465f1', 'default', NULL, '2024-03-31 22:39:15', NULL, '2023-09-05 14:39:15', NULL, '2023-09-05 14:39:15', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2794, 1, 2, '', '7391ad536d2a4d118a7b766b4dbbbdfd', 'bfa87d0e77004a09a66abed3ff03248a', 'default', NULL, '2024-03-31 22:40:56', NULL, '2023-09-05 14:40:56', NULL, '2023-09-05 14:43:09', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2795, 126, 2, '', '4cb3a5d3eb514cba83a69ea61d49c0b1', '701bcd62dc014ec096e9e1b9d996c30f', 'default', NULL, '2024-03-31 22:43:25', NULL, '2023-09-05 14:43:25', NULL, '2023-09-05 14:43:25', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2796, 126, 2, '', 'de171d80657f452792d1847b28080a76', '253111a4859f4130a15fe9fbf6cbb3d4', 'default', NULL, '2024-03-31 22:45:16', NULL, '2023-09-05 14:45:16', NULL, '2023-09-05 14:45:16', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2797, 1, 2, '', '25f50e971aa3417e97848d3767e50361', 'aa40c6df998a4a9b8a4d19cc0bab7876', 'default', NULL, '2024-03-31 22:46:18', NULL, '2023-09-05 14:46:18', NULL, '2023-09-05 14:48:17', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2798, 126, 2, '', 'd3422c7da85a44fe9ec4538e237bf269', '771104a370494827b3a77e0342978c42', 'default', NULL, '2024-03-31 22:48:33', NULL, '2023-09-05 14:48:33', NULL, '2023-09-05 14:48:33', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2799, 1, 2, '', '7a6f9152aa2c4cbdbbe7761149adb2ca', 'a04efaeaf95c4054918f7866c4ad9d00', 'default', NULL, '2024-03-31 22:51:11', NULL, '2023-09-05 14:51:11', NULL, '2023-09-05 14:56:29', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2800, 126, 2, '', '52ff6279d8044f3abf11b04828977d2a', '48dce886ed89427ea7b5300d79522750', 'default', NULL, '2024-03-31 22:57:33', NULL, '2023-09-05 14:57:33', NULL, '2023-09-05 14:57:33', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2801, 1, 2, '', '8970b0a7d60f44bda576d36837e446c4', 'c9c36d2201914383bbf06669a9c4ca1e', 'default', NULL, '2024-04-01 00:12:16', NULL, '2023-09-05 16:12:16', NULL, '2023-09-05 16:19:28', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2802, 126, 2, '', '80c0306864de47e0a1e048594008e9d5', '9d59826ecfb2425bac3f2f17fa649f69', 'default', NULL, '2024-04-01 00:19:45', NULL, '2023-09-05 16:19:45', NULL, '2023-09-05 16:29:21', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2803, 1, 2, '', '4df95bbd142547ef90829ab0f279f717', '66eaa218958443b488be081b3eab01ea', 'default', NULL, '2024-04-01 00:29:27', NULL, '2023-09-05 16:29:27', NULL, '2023-09-05 16:30:41', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2804, 126, 2, '', 'eb5bc9e29843436998cf1a3d7e5017ef', '83f1a83b10c34b2ca696342611b2ea61', 'default', NULL, '2024-04-01 00:32:47', NULL, '2023-09-05 16:32:47', NULL, '2023-09-05 16:49:46', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2805, 126, 2, '', 'c9a594e52cc84dc7ae3e9513cfba3c37', 'd44772a15a9a4d4d842fdbc902ee00fd', 'default', NULL, '2024-04-01 00:50:27', NULL, '2023-09-05 16:50:27', NULL, '2023-09-05 17:05:44', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2806, 126, 2, '', 'dc27649562f54e8686c851fd2d2add5c', '94272d079113424187733ca768fb8b95', 'default', NULL, '2024-04-01 01:06:10', NULL, '2023-09-05 17:06:10', NULL, '2023-09-05 17:38:00', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2807, 1, 2, '', '7a4a373bd3fa4f17a7948259535de9f6', '2e4ebe42fbef400f815debf420c0e18c', 'default', NULL, '2024-04-01 01:40:45', NULL, '2023-09-05 17:40:45', NULL, '2023-09-06 10:36:10', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2808, 1, 2, '', 'aae8346c9ce542ecab2c8f325f3f66d3', '2725d1a45c584bcbaf37ecb53ceece90', 'default', NULL, '2024-04-01 18:36:19', NULL, '2023-09-06 10:36:19', NULL, '2023-09-06 10:36:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2809, 6, 1, '', '8f25f43db16642b9a396bae2a8af6709', 'a51b6064fbae4746876543bfdd2c8411', 'default', NULL, '2024-04-02 18:05:31', NULL, '2023-09-07 10:05:31', NULL, '2023-09-07 10:05:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2810, 6, 1, '', 'd6a909fa7aa04c78a72e088b5af4bca7', '1e8fea87ab3748eaaec7027338b1d379', 'default', NULL, '2024-04-02 18:58:58', NULL, '2023-09-07 10:58:58', NULL, '2023-09-07 10:58:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2811, 6, 1, '', '9ec9670f208b422bb6a77444e1acaabf', 'c436d10432384aec8546d4aa2cdbf6f0', 'default', NULL, '2024-04-02 19:03:53', NULL, '2023-09-07 11:03:53', NULL, '2023-09-07 11:03:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2812, 6, 1, '', '32825fa610f54467a4223c02fa7f4309', '0888cc6f43b34bb28f3f6e8cebd20e31', 'default', NULL, '2024-04-02 19:08:52', NULL, '2023-09-07 11:08:52', NULL, '2023-09-07 11:08:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2813, 6, 1, '', 'ef80e202276341bbb4ac96b9f23daf3b', '6df2131b82744c4ea6f60656e6b735ee', 'default', NULL, '2024-04-02 19:17:42', NULL, '2023-09-07 11:17:42', NULL, '2023-09-07 11:17:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2814, 6, 1, '', 'ecc0a6b6b41f496d9a1a27ce48cd9c27', '5509dff644f6493d9c253e0f4812c52a', 'default', NULL, '2024-04-02 19:20:42', NULL, '2023-09-07 11:20:42', NULL, '2023-09-07 11:20:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2815, 6, 1, '', 'bd612afa3ce74596a6f393a663c4781a', '28233ddea74c4dbe85c2aa102730c5c3', 'default', NULL, '2024-04-02 19:21:52', NULL, '2023-09-07 11:21:52', NULL, '2023-09-07 11:21:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2816, 6, 1, '', '753186dd2a084c499979056332b82e4b', '1466516501da44e09fabf7d198c0d1ba', 'default', NULL, '2024-04-02 21:59:33', NULL, '2023-09-07 13:59:33', NULL, '2023-09-07 13:59:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2817, 7, 1, '', 'a43ae4e532ee444b86841261717eb77b', 'e306f29479734f2f80a105705d47418c', 'default', NULL, '2024-04-02 22:45:11', NULL, '2023-09-07 14:45:11', NULL, '2023-09-07 14:45:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2818, 7, 1, '', '2578627edb824280972f289070e2c7cd', '4d288548ef8944788d489d5810c68e70', 'default', NULL, '2024-04-02 22:51:35', NULL, '2023-09-07 14:51:35', NULL, '2023-09-07 14:51:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2819, 8, 1, '', 'a3f519cd47fd458389086c9d0be75a66', 'e18e9035108d4b5cbf0f75d8141e74f9', 'default', NULL, '2024-04-02 22:53:47', NULL, '2023-09-07 14:53:47', NULL, '2023-09-07 14:53:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2820, 9, 1, '', '6cb705709aff42eea3d072529e106b1b', '2146dca90b2841c8b7cf528d8dc8267e', 'default', NULL, '2024-04-02 23:02:48', NULL, '2023-09-07 15:02:48', NULL, '2023-09-07 15:02:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2821, 2, 1, '', 'a791ed66c9844016a55e7189b2d21cbd', 'cb0b61a8b91341beb096742c374785a7', 'default', NULL, '2024-04-02 23:09:38', NULL, '2023-09-07 15:09:38', NULL, '2023-09-07 15:09:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2822, 2, 1, '', '166919d158a442549d3ff23a4a7a8273', '58dfafaacd674ff0880455e6e9574b4b', 'default', NULL, '2024-04-02 23:11:38', '2', '2023-09-07 15:11:38', '2', '2023-09-07 15:11:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2823, 2, 1, '', '62ff89c5d8e24943957be29c0865884f', '69768310202a421ebca0ffd1de6fc671', 'default', NULL, '2024-04-02 23:14:32', NULL, '2023-09-07 15:14:32', NULL, '2023-09-07 15:14:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2824, 6, 1, '', '33450af0c0764701b39bd38c4a335e83', '704e4affe97643059274fd92c10bea01', 'default', NULL, '2024-04-02 23:18:47', NULL, '2023-09-07 15:18:47', NULL, '2023-09-07 15:18:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2825, 6, 1, '', 'f1c1052849d24cd7a6820ce23782dc55', '360a3e1882e24076a47c844b68a53a55', 'default', NULL, '2024-04-03 00:44:47', NULL, '2023-09-07 16:44:47', NULL, '2023-09-07 16:44:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2826, 6, 1, '', 'b55e125611d14d15916c44a8cc3dad86', 'e8ef826831a14d859f342bee86176896', 'default', NULL, '2024-04-03 00:48:02', NULL, '2023-09-07 16:48:02', NULL, '2023-09-07 16:48:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2827, 6, 1, '', 'ef334310aa564b2380f2533939fa0964', '1588adf617b046c6b96d84b3d7b5c34f', 'default', NULL, '2024-04-03 00:52:55', NULL, '2023-09-07 16:52:55', NULL, '2023-09-07 16:52:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2828, 6, 1, '', 'eb78f4fddac5496eb94ffb8d63d97bb0', '50fce388fea846d789f3e3038222804d', 'default', NULL, '2024-04-03 01:45:26', NULL, '2023-09-07 17:45:26', NULL, '2023-09-07 17:45:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2829, 7, 1, '', '133329424d7544b9805ebc1f0ae31de7', 'e4ab4d2ed2ec45d58d0a1549a01b1f63', 'default', NULL, '2024-04-03 01:46:05', NULL, '2023-09-07 17:46:05', NULL, '2023-09-07 17:46:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2830, 2, 1, '', 'b375549f22334f9bb2a93ca2aca32a71', 'ca9460cbcd62444fb7ef03cadd08b809', 'default', NULL, '2024-04-03 01:47:00', NULL, '2023-09-07 17:47:00', NULL, '2023-09-07 17:47:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2831, 10, 1, '', '7f10a99db927467ebc9443d6620e9541', 'cdf91129da8546aa8ba5140514416a3a', 'default', NULL, '2024-04-03 01:47:33', NULL, '2023-09-07 17:47:33', NULL, '2023-09-07 17:47:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2832, 11, 1, '', 'b40b3f1c3e404f7bb314bd9d18cdbeea', 'b8c2b908040a4d3f85e59bbe30e7aee1', 'default', NULL, '2024-04-03 01:54:25', NULL, '2023-09-07 17:54:25', NULL, '2023-09-07 17:54:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2833, 12, 1, '', 'd31ce49d1a5e4b52944e83722d82c54c', 'f4d2216937e74f4aa97c02d32bd1f3c7', 'default', NULL, '2024-04-03 01:57:39', NULL, '2023-09-07 17:57:39', NULL, '2023-09-07 17:57:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2834, 6, 1, '', '244e7639110a4b06a6701e4b86a23bb9', '91b79ae2e8354740a12a926b0ab453aa', 'default', NULL, '2024-04-03 02:21:24', NULL, '2023-09-07 18:21:24', NULL, '2023-09-07 18:21:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2835, 6, 1, '', '0acea8fa8bde43cdabfbbd0221fafb58', '68cc58c16d8842e79886fdd5ef29d072', 'default', NULL, '2024-04-04 17:56:08', NULL, '2023-09-09 09:56:08', NULL, '2023-09-09 09:56:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2836, 6, 1, '', '6aba4f5f89fa408b872ed299ade80224', '94bc8c8db1a94af99f412681ea49bcc3', 'default', NULL, '2024-04-05 01:15:37', '6', '2023-09-09 17:15:37', '6', '2023-09-09 17:15:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2837, 6, 1, '', 'fdfda0614d804f6c87987f51a75337c4', '64635a743b1b41b49f33cebdc0f5e5e6', 'default', NULL, '2024-04-05 01:20:45', NULL, '2023-09-09 17:20:45', NULL, '2023-09-09 17:20:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2838, 6, 1, '', '6c9e484a4b1948a28eae3bbf7ca3b16f', '67e8be77aba64efc83d4405f68d11ed6', 'default', NULL, '2024-04-05 01:23:41', NULL, '2023-09-09 17:23:41', NULL, '2023-09-09 17:23:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2839, 6, 1, '', '0c56ddac6e8948dcaccafe765e8f9080', '636d9b0188954a978bc1f3cc71446ca9', 'default', NULL, '2024-04-05 01:28:09', NULL, '2023-09-09 17:28:09', NULL, '2023-09-09 17:28:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2840, 6, 1, '', 'bfe28f282af44589b289dbff8ac202de', '25743512d22248c9b9b71ef095f78159', 'default', NULL, '2024-04-05 01:30:29', NULL, '2023-09-09 17:30:29', NULL, '2023-09-09 17:30:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2841, 6, 1, '', '807612adb15a489f9636080e0c5473f8', 'd5ab19d609754e7d89e80f26e14c9389', 'default', NULL, '2024-04-05 01:33:01', NULL, '2023-09-09 17:33:01', NULL, '2023-09-09 17:33:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2842, 6, 1, '', '175205b97e584eb3a7c6794671437773', '0cb8b776b22b42749b244c84e27a1135', 'default', NULL, '2024-04-07 00:25:10', NULL, '2023-09-11 16:25:10', NULL, '2023-09-11 16:25:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2843, 13, 1, '', 'b8b107df746b4da2be2b8e4c3f75e033', 'dee8110c937c4f0098f99c36dc0972bf', 'default', NULL, '2024-04-07 00:28:11', NULL, '2023-09-11 16:28:11', NULL, '2023-09-11 16:28:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2844, 13, 1, '', '5ed767b0b10c4af6b5fb609e3c47afc4', 'c5da48abd3d2440da22d87069a38e791', 'default', NULL, '2024-04-08 02:10:48', NULL, '2023-09-12 18:10:48', NULL, '2023-09-12 18:10:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2845, 13, 1, '', 'b2a6e9a553d54a19aa3b9645b1bbfdaa', '6a8d96d5e0924d2cb8ea91a5b03b4a25', 'default', NULL, '2024-04-08 02:24:10', NULL, '2023-09-12 18:24:10', NULL, '2023-09-12 18:24:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2846, 1, 2, '', 'fbb2c75131b64ed2a60b3760417c718c', 'c1938f0841734d008ea14e4a4b79b0c2', 'default', NULL, '2024-04-09 03:18:33', NULL, '2023-09-13 19:18:33', NULL, '2023-09-18 22:19:08', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2847, 13, 1, '', '18e66d70460c4d7c998e5f39119c98ad', '1fd5aaa710d24845808eb81975ba4b33', 'default', NULL, '2024-04-09 16:53:18', NULL, '2023-09-14 08:53:18', NULL, '2023-09-14 08:53:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2848, 1, 2, '', 'f89514b089804a54b6b5c2893082e821', 'a03e5b3610ea499b872ff88adc6b9100', 'default', NULL, '2024-04-09 17:39:04', NULL, '2023-09-14 09:39:04', NULL, '2023-09-14 17:35:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2849, 13, 1, '', '36afa2054e084a33bc7c3f67367626c4', '438814dc96b6495d8f0bd94cf6e102f3', 'default', NULL, '2024-04-09 18:25:52', NULL, '2023-09-14 10:25:52', NULL, '2023-09-14 10:25:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2850, 13, 1, '', '6c4bd63da07a463db1e74b3bca7e0ed9', '267e9d5b075b4032a399de148d3e8c5c', 'default', NULL, '2024-04-09 18:30:11', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2851, 13, 1, '', 'e197b0f7c3a3434c8135bfa5aa63b165', 'ed1c8f2da3ee40279f3dde25c2e0abf9', 'default', NULL, '2024-04-10 00:39:22', NULL, '2023-09-14 16:39:22', NULL, '2023-09-14 16:39:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2852, 13, 1, '', 'fc14a6c1bcbc4d39babcb748f1bcba73', 'dd1656d3c9b44dce90e84aa3386a10a1', 'default', NULL, '2024-04-10 00:39:53', NULL, '2023-09-14 16:39:53', NULL, '2023-09-14 16:39:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2853, 13, 1, '', 'd7c9f465c9bc4af1bc13be78ccc54ba9', '5edda5b8c188479eb130c116017dd6d2', 'default', NULL, '2024-04-10 01:28:45', NULL, '2023-09-14 17:28:45', NULL, '2023-09-14 17:28:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2854, 1, 2, '', '75e7a1ee9d894f15b4b3235152e7c8ce', '3c6daab0c1d140749c6458f221b8ec7c', 'default', NULL, '2024-04-10 01:35:54', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2855, 13, 1, '', '83c25c58d3b2446ea55bf50558fc9622', '1a683d0c2e6f4e8e8e4a2ea3c5eb57ba', 'default', NULL, '2024-04-10 02:02:42', NULL, '2023-09-14 18:02:42', NULL, '2023-09-14 18:02:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2856, 13, 1, '', '08623867971f45fb8c8363618809f1ca', '7ca59520e95a40e9869a6a93eaf208ab', 'default', NULL, '2024-04-10 02:23:24', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2857, 13, 1, '', 'b26ed52ad92a46f39b741849a97810bd', '9180af06aa46467180010786160662e3', 'default', NULL, '2024-04-10 18:23:55', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2858, 14, 1, '', 'dc5a8aa6e494418abfbdab616152596e', '19c9ddc57cf44445a0b2cede33511e00', 'default', NULL, '2024-04-11 00:48:16', NULL, '2023-09-15 16:48:16', NULL, '2023-09-15 16:48:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2859, 14, 1, '', '4d870e7dbaec4a7bb5ba4f5f933fe81b', 'a2739c52a1f2403881ab91bc751ee24b', 'default', NULL, '2024-04-11 00:52:16', '14', '2023-09-15 16:52:16', '14', '2023-09-15 16:52:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2860, 1, 1, '', '33bcfa9a46b94ede9ef39592aed695cb', 'f45c092ebdbd458fa7b448bfe59ae7d0', 'default', NULL, '2024-04-11 00:54:16', NULL, '2023-09-15 16:54:16', NULL, '2023-09-15 16:54:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2861, 2, 1, '', '22c4af50db0f476fbb3aa8011e80e229', '3e5765195c634c82858c36cffa55316c', 'default', NULL, '2024-04-11 01:01:37', NULL, '2023-09-15 17:01:37', NULL, '2023-09-15 17:01:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2862, 2, 1, '', '7f75b5d8eb384fb7b677fab839df6c5c', '2de2ece2244d4043bc66d79ea85646c9', 'default', NULL, '2024-04-11 01:03:14', '2', '2023-09-15 17:03:14', '2', '2023-09-15 17:03:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2863, 2, 1, '', 'b21b47632f144b2280a86da26dc147c6', '3649fc2f17294162aeca4b5027aff104', 'default', NULL, '2024-04-13 19:25:58', NULL, '2023-09-18 11:25:58', NULL, '2023-09-18 11:25:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2864, 2, 1, '', 'f0b02514cb5c42e49e516df9336d1965', '7ba5bb0287f047deb2a006de01abd0b3', 'default', NULL, '2024-04-13 19:26:35', '2', '2023-09-18 11:26:35', '2', '2023-09-18 11:26:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2865, 2, 1, '', '8a8fa71c3b5d4bf091ad9d10422808c2', 'e96815eb503642398f699b5fe82db3a8', 'default', NULL, '2024-04-13 19:27:49', '2', '2023-09-18 11:27:49', '2', '2023-09-18 11:27:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2866, 2, 1, '', '2fe4daad6380439ba37e47f2c9342563', '4e8bb59a15074b88af615f5641e156bf', 'default', NULL, '2024-04-13 19:30:02', '2', '2023-09-18 11:30:02', '2', '2023-09-18 11:30:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2867, 2, 1, '', 'bfe0427e10904c6490970bef7574eb02', '09334d081f0f4698ab85f863feebe732', 'default', NULL, '2024-04-13 19:36:08', '2', '2023-09-18 11:36:08', '2', '2023-09-18 11:36:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2868, 2, 1, '', '5fc8e98439e84a5ca64071efffea7e90', '22c3a933fc614c9082fa56c4640dcc0b', 'default', NULL, '2024-04-13 19:41:03', '2', '2023-09-18 11:41:03', '2', '2023-09-18 11:41:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2869, 2, 1, '', 'ba71c96e82434bbb80918da6c8055aa3', '6242422ec8cd4e1fa8aecfa6ee565793', 'default', NULL, '2024-04-13 19:42:16', '2', '2023-09-18 11:42:16', '2', '2023-09-18 11:42:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2870, 2, 1, '', '1fc946481f8d4e6b9b34d00d8c2d6b86', '95d73f09035942679cedc2fdf4ec24b8', 'default', NULL, '2024-04-13 19:44:42', '2', '2023-09-18 11:44:42', '2', '2023-09-18 11:44:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2871, 2, 1, '', 'a7e4ee8d711a40449574bf9a4713a0f3', 'f47aebbd1c3b42b7b98073e6215fa107', 'default', NULL, '2024-04-13 19:45:32', '2', '2023-09-18 11:45:32', '2', '2023-09-18 11:45:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2872, 2, 1, '', 'bbecd0267b464edba2fc42b8efa8007b', '4b9b7dbfa2c74952b6649ea42779c8c0', 'default', NULL, '2024-04-13 19:46:37', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2873, 2, 1, '', '120dd8b10ca041a69b186a95badd708e', '15d601937d524274b5379a003be56e66', 'default', NULL, '2024-04-13 19:48:16', NULL, '2023-09-18 11:48:16', NULL, '2023-09-18 11:48:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2874, 2, 1, '', 'bf5185f57196425d82660412dabf9b48', 'dcce3e52a93e47dcaac9618a2163efee', 'default', NULL, '2024-04-13 19:50:58', '2', '2023-09-18 11:50:58', '2', '2023-09-18 11:50:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2875, 2, 1, '', '8b254e24b5f84c27942a9f7389f89523', 'c96bb36133c545c0a9076075656e6c13', 'default', NULL, '2024-04-13 19:57:20', '2', '2023-09-18 11:57:20', '2', '2023-09-18 11:57:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2876, 2, 1, '', '21550801cdad4b2e9c8382b736496e4a', '424382f050534a23a783a4b6c776bb28', 'default', NULL, '2024-04-13 19:57:40', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2877, 2, 1, '', '59c3491a70544dfb9936c21b4b9e7c91', '54998776e0ac4a9a8e80cdbc68c5da99', 'default', NULL, '2024-04-13 19:58:23', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2878, 2, 1, '', 'a63ca7d1871045d2bc425e2f40962986', 'aacf3c2db8c549a0b6cf632ed56edc35', 'default', NULL, '2024-04-13 19:59:11', NULL, '2023-09-18 11:59:11', NULL, '2023-09-18 11:59:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2879, 2, 1, '', '3aa0c94e6a8d480c87620d3c6f44c241', '6e4d7109cc4546cf9996b03556788adb', 'default', NULL, '2024-04-13 23:41:55', NULL, '2023-09-18 15:41:55', NULL, '2023-09-18 15:41:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2880, 2, 1, '', '86715056528e4427aae50c12ccac0681', 'dc8843ebebec4814878659f8eff5b7c4', 'default', NULL, '2024-04-13 23:49:14', '2', '2023-09-18 15:49:14', '2', '2023-09-18 15:49:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2881, 2, 1, '', 'e40ddceff8004a67a931b92ecb800d4d', '78c497cb8dcb43ab8b251cb350576ae0', 'default', NULL, '2024-04-13 23:49:15', '2', '2023-09-18 15:49:15', '2', '2023-09-18 15:49:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2882, 2, 1, '', 'eb1b8c9825dc4903b2f775c58ca4627e', '00eec4fbea4d4c398971ca7066518b20', 'default', NULL, '2024-04-13 23:52:11', '2', '2023-09-18 15:52:11', '2', '2023-09-18 15:52:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2883, 2, 1, '', 'cabbcc4b44c84181bbcbdceede06f250', '9763453ef83044febb3b4cc8633f2f89', 'default', NULL, '2024-04-14 00:14:17', '2', '2023-09-18 16:14:17', '2', '2023-09-18 16:14:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2884, 2, 1, '', 'a416e8266b60459cba88cf5973d708f9', '809884ec6b2040188fba7e12fee661a9', 'default', NULL, '2024-04-14 00:15:31', '2', '2023-09-18 16:15:31', '2', '2023-09-18 16:15:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2885, 2, 1, '', '4e736b7b3cdb41b3bdceb686b0fe8027', '4bfbcf42c84b4d07b282df971c73d357', 'default', NULL, '2024-04-14 00:22:22', '2', '2023-09-18 16:22:22', '2', '2023-09-18 16:22:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2886, 2, 1, '', 'e94d449192884577ac61711a1d2fa95f', '89fcf192ca684605bcba870140428392', 'default', NULL, '2024-04-14 00:24:58', '2', '2023-09-18 16:24:58', '2', '2023-09-18 16:24:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2887, 2, 1, '', 'bae03007e66649e1b429ec6efdd8f527', 'ce32314b35ad41b78fa91d17d7c9117b', 'default', NULL, '2024-04-14 00:25:02', '2', '2023-09-18 16:25:02', '2', '2023-09-18 16:25:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2888, 2, 1, '', 'c1ae97a6b42b4f0db4e48c1a94db5226', '0b50d21ccca8426cb1b068052773c90a', 'default', NULL, '2024-04-14 00:25:10', '2', '2023-09-18 16:25:10', '2', '2023-09-18 16:25:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2889, 2, 1, '', 'a11c76644a424599aa111c10ef7c7303', 'b1f9845665e849e7802f2ab8ba133cac', 'default', NULL, '2024-04-14 00:25:16', NULL, '2023-09-18 16:25:16', NULL, '2023-09-18 16:25:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2890, 2, 1, '', 'a2d02f34a15e4c838b47f76519d8bdcb', '5ddb7148137d4b658d61e0adf3be8fd5', 'default', NULL, '2024-04-14 00:27:00', '2', '2023-09-18 16:27:00', '2', '2023-09-18 16:27:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2891, 2, 1, '', '6455a5be7f824b3babdaa3cf20cc062f', 'd9574f80e034453ca7d57d4a70f87cab', 'default', NULL, '2024-04-14 00:28:19', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2892, 2, 1, '', '4c3372f1484c463ba0525dad5f20a479', '3cf05b60e44941de8467ef14a188625c', 'default', NULL, '2024-04-14 00:30:03', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2893, 2, 1, '', '42b6776a929b465797a292c2bf9b5871', '587cb51f96444c75ab84eecd9cefec50', 'default', NULL, '2024-04-14 00:30:50', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2894, 2, 1, '', '80ab638b09834f838aeac4efea419f41', '2194791f2d404c28852943b439b7bb5f', 'default', NULL, '2024-04-14 00:31:07', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2895, 2, 1, '', 'ab688a92348b4f3a8c3f04d6448989a1', '37dcfbce2f604635a05863e30c65e9b0', 'default', NULL, '2024-04-14 00:31:28', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2896, 2, 1, '', '8b304ca6eee04636ba6c75c03de442c9', '044f28e819f345ea898368648d083e2c', 'default', NULL, '2024-04-14 00:32:27', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2897, 2, 1, '', '1ed7892ff3d947789ae27396b7f1a077', '8067bcd876c04cd298fa3b6ecf2ee7b0', 'default', NULL, '2024-04-14 00:32:44', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2898, 2, 1, '', '321cdbd3b3d64603ba4261147de061a6', 'db2e911886724facb1351b5cb4f72d55', 'default', NULL, '2024-04-14 00:33:00', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2899, 2, 1, '', '1243caa52b404402aa4d4b802c13ed31', 'a280a24135b947b091a3e7cd96313213', 'default', NULL, '2024-04-14 00:33:19', NULL, '2023-09-18 16:33:19', NULL, '2023-09-18 16:33:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2900, 2, 1, '', '15147e54b2074f4a98d5b497c5ac8278', '875916724362408d8a26cca48c8cc1a2', 'default', NULL, '2024-04-14 00:33:33', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2901, 2, 1, '', 'dff6ef661b314b6295f785ba4f8b67e0', 'bbc62175aec243d69e8f35111330670a', 'default', NULL, '2024-04-14 00:33:50', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2902, 2, 1, '', '1f5faf01662345b9a50e578091bfe2cd', '60755af81c6a485d95c511aa34cebcda', 'default', NULL, '2024-04-14 00:34:05', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2903, 2, 1, '', '68e36e0510944314a72aa904e3276c25', '74124f99ac3e4da99e113b9dc5ef4e58', 'default', NULL, '2024-04-14 00:34:43', NULL, '2023-09-18 16:34:43', NULL, '2023-09-18 16:34:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2904, 2, 1, '', '36e6786707da4098a2a5cea27edf39db', 'a41bf3ea6347451e85d0396339cb37ed', 'default', NULL, '2024-04-14 00:35:17', NULL, '2023-09-18 16:35:17', NULL, '2023-09-18 16:35:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2905, 2, 1, '', '556bdc542b294b75b3b9739ef1e0cfc1', '9351a138c48e4afb811458d9728c85d3', 'default', NULL, '2024-04-14 00:35:52', NULL, '2023-09-18 16:35:52', NULL, '2023-09-18 16:35:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2906, 2, 1, '', 'b092c20b77a347b7b8e830c7da9ba0f8', '8074770c3ca14aacb7b99a75c7763e32', 'default', NULL, '2024-04-14 00:45:41', '2', '2023-09-18 16:45:41', '2', '2023-09-18 16:45:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2907, 2, 1, '', '3cf5c91e516c4cf3a619f733241532af', 'b1f1a14087054de78e42561b95dfb578', 'default', NULL, '2024-04-14 00:48:01', NULL, '2023-09-18 16:48:01', NULL, '2023-09-18 16:48:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2908, 2, 1, '', '7b86daa896a44622b24ae7c80d40a8d3', 'b9e4f7731006405d83ebb07bedb56152', 'default', NULL, '2024-04-14 00:48:31', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2909, 2, 1, '', '69e3d863042f4e4bb3e5dea73caa000c', 'a2fe3c4a2e6a4fc5926e2c2a14e7e0d1', 'default', NULL, '2024-04-14 00:56:41', '2', '2023-09-18 16:56:41', '2', '2023-09-18 16:56:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2910, 2, 1, '', '58b6591cf6334ff5939fb04a907e83d4', '3237116560624efe954c6d70aeef6bed', 'default', NULL, '2024-04-14 00:58:51', NULL, '2023-09-18 16:58:51', NULL, '2023-09-18 16:58:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2911, 2, 1, '', '2531a58d3c7f4da4867cfec7a9c252ac', 'd4ef77a5a38b4547b5eb4c21c30dae31', 'default', NULL, '2024-04-14 01:02:02', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2912, 2, 1, '', '41bb6c0ca92d4b82928bac79133cd5f9', 'de6a114108c942b39d040c013279b9dc', 'default', NULL, '2024-04-14 01:02:37', NULL, '2023-09-18 17:02:37', NULL, '2023-09-18 17:02:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2913, 2, 1, '', '2531eb51d67c4ab39a8228083bce1379', 'f7a3a970944c4b5d8b306f6c1d02db65', 'default', NULL, '2024-04-14 01:04:20', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2914, 2, 1, '', '5e9f19d6650e43d78e1fb3133a8bef3a', '3a09f8772956438f858d7039d7b10d96', 'default', NULL, '2024-04-14 01:04:28', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2915, 3, 1, '', '1c7fc9a213dd4c96a6268e52f1a7b012', '37a76e780bfb4931991238dc26edf083', 'default', NULL, '2024-04-14 01:07:29', NULL, '2023-09-18 17:07:29', NULL, '2023-09-18 17:07:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2916, 2, 1, '', 'fe3122332bba4a58aa56d8231527bbc2', 'a788560ff7974fa28f56f4d597e8b086', 'default', NULL, '2024-04-14 01:08:04', NULL, '2023-09-18 17:08:04', NULL, '2023-09-18 17:08:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2917, 2, 1, '', '283f3ff65fdd4de0bfbec8a36ede322e', '6b2a69e4180649f490c210df3db163f3', 'default', NULL, '2024-04-14 01:27:44', NULL, '2023-09-18 17:27:44', NULL, '2023-09-18 17:27:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2918, 2, 1, '', '6038a5f1503c40bba973db459b970a33', '2c10b26606a8463bb7aec6818b5c518c', 'default', NULL, '2024-04-14 01:28:13', NULL, '2023-09-18 17:28:13', NULL, '2023-09-18 17:28:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2919, 2, 1, '', '039d552b208b46b48dc7519f603a3781', '2366df2059864d379363e92a380d01c0', 'default', NULL, '2024-04-14 02:03:00', NULL, '2023-09-18 18:03:00', NULL, '2023-09-18 18:03:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2920, 2, 1, '', '470af6cfaf84443cad526e5aa7a10779', 'db510e22cfb541f9baede713e0bbed3b', 'default', NULL, '2024-04-14 02:16:14', NULL, '2023-09-18 18:16:14', NULL, '2023-09-18 18:16:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2921, 2, 1, '', 'eec95333dace4de9884b76c0e034c946', 'f929baa1b07747418d255346fbb5b75f', 'default', NULL, '2024-04-14 02:19:44', NULL, '2023-09-18 18:19:44', NULL, '2023-09-18 18:19:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2922, 2, 1, '', '51bcf7741ff4455aa75082579256f748', '2420d60b75d34450aff0628fe9e7fa42', 'default', NULL, '2024-04-14 02:30:58', NULL, '2023-09-18 18:30:58', NULL, '2023-09-18 18:30:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2923, 126, 2, '', '4dbdfffff0ad475ba8ef0b3fad6fe081', '60eb0dd258b34f69b49cb76f6539c2ec', 'default', NULL, '2024-04-14 06:20:01', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:13', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2924, 2, 1, '', 'defba55f131a48009f24d68cba2f1461', 'cec8a8d048ae4956b8af340a90b684f5', 'default', NULL, '2024-04-14 06:31:31', NULL, '2023-09-18 22:31:31', NULL, '2023-09-18 22:31:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2925, 2, 1, '', 'f47da9c145e34bd89c6d565cfeadc11d', '8c5b4e6102e948dfae55002e8f52ed9a', 'default', NULL, '2024-04-14 06:34:08', '2', '2023-09-18 22:34:08', '2', '2023-09-18 22:34:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2926, 2, 1, '', '42dff7c3d883415e90be003481246b9a', '26dc3d9a90cb423794c394a077105413', 'default', NULL, '2024-04-14 06:34:22', '2', '2023-09-18 22:34:22', '2', '2023-09-18 22:34:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2927, 1, 2, '', 'baa5e9df506b4e3c8456d1ca3d2d2816', '43f6098d2ea9443697b2385ebdd9870f', 'default', NULL, '2024-04-14 17:51:37', NULL, '2023-09-19 09:51:37', NULL, '2023-09-22 18:15:27', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2928, 2, 1, '', 'd1321ab347204f4680c1f26466eadd75', '8ed2810ca426432ea5cc936924a260ed', 'default', NULL, '2024-04-14 21:02:04', NULL, '2023-09-19 13:02:04', NULL, '2023-09-19 13:02:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2929, 2, 1, '', 'ff344b24fc864564a2255e6a4138eeb7', '2de2e70f98a64ae8b66ebc5de671385e', 'default', NULL, '2024-04-17 07:25:37', NULL, '2023-09-21 23:25:37', NULL, '2023-09-21 23:25:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2930, 126, 2, '', '57743948e3eb4fd1af59962045ef8107', '6a2be8ac3d4347989333aa4c92f59363', 'default', NULL, '2024-04-18 02:15:41', NULL, '2023-09-22 18:15:41', NULL, '2023-09-22 18:15:41', b'0', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2931, 2, 1, '', '69844e70b121403399c625abb00ea221', '27f8d653e4ff4fb2bfb534a45c703096', 'default', NULL, '2024-04-21 02:16:52', NULL, '2023-09-25 18:16:52', NULL, '2023-09-25 18:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2932, 1, 2, '', '5af46d70838846109e1f958367d478ff', 'a7c14216cd80477d8bcebe8b5325744a', 'default', NULL, '2024-04-21 02:23:31', NULL, '2023-09-25 18:23:31', NULL, '2023-09-25 18:23:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2933, 2, 1, '', '7a75e694f7fe492182bdbae92710813d', 'a12b5e27afb34bca9ab75106c8413c5c', 'default', NULL, '2024-05-02 18:59:49', '2', '2023-10-07 10:59:49', '2', '2023-10-07 10:59:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2934, 1, 2, '', 'a531e382d78843c4b48d94ee0a5b8730', 'be647698578a44528336eb6b848e923a', 'default', NULL, '2024-05-02 19:00:44', NULL, '2023-10-07 11:00:44', NULL, '2023-10-07 11:04:30', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2935, 1, 2, '', '008e4a99774042a89d5ab0e12830ae47', '2e3c660b27f5460fb503f12c06a27c09', 'default', NULL, '2024-05-02 19:05:26', NULL, '2023-10-07 11:05:26', NULL, '2023-10-07 11:05:42', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2936, 126, 2, '', '3190cbe10ac6466fbd124973ccbc2464', '9bd680bf35144d3ab3014687434097e4', 'default', NULL, '2024-05-02 19:05:53', NULL, '2023-10-07 11:05:53', NULL, '2023-10-07 11:08:14', b'1', 0, 2); +INSERT INTO `system_oauth2_access_token` VALUES (2937, 1, 2, '', '3eb3a9955a9f41d0a1a6c2d062b4b193', '52593f19aaba402d9ec38cf4e23ff2b4', 'default', NULL, '2024-05-02 19:08:21', NULL, '2023-10-07 11:08:21', NULL, '2023-10-07 11:08:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2938, 2, 1, '', 'b9310f65d6f041c6b88da11993905f11', 'fda3062e614e4a1aaee188f516b8bb76', 'default', NULL, '2024-05-06 17:40:28', NULL, '2023-10-11 09:40:28', NULL, '2023-10-11 09:40:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2939, 2, 1, '', '69ae8a1b8834427fb5e7960a3530f2d2', 'f20f0049a0a24ec9bc69bb20c6653ac7', 'default', NULL, '2024-05-06 17:48:37', '2', '2023-10-11 09:48:37', '2', '2023-10-11 09:48:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2940, 2, 1, '', '0550f7d4d80644a395db465e5d54e323', 'c2095f30213840a7b027f9a83a29b413', 'default', NULL, '2024-05-06 17:54:22', '2', '2023-10-11 09:54:22', '2', '2023-10-11 09:54:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2941, 2, 1, '', '8e7aeb7ad34943908e6c3a84bf9587f4', '66f70c24ea824040b82eba58317d0826', 'default', NULL, '2024-05-06 17:54:29', '2', '2023-10-11 09:54:29', '2', '2023-10-11 09:54:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2942, 2, 1, '', 'd099c5c2b9594aa69314b442f62facce', '14a6a572e5664f42b5f542ed6f49e964', 'default', NULL, '2024-05-06 17:55:21', '2', '2023-10-11 09:55:21', '2', '2023-10-11 09:55:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2943, 2, 1, '', '9d8dffea5e674f1991428c48e1787be4', 'c182cc86dc734c76ab2676dac3b53911', 'default', NULL, '2024-05-06 17:57:00', '2', '2023-10-11 09:57:00', '2', '2023-10-11 09:57:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2944, 2, 1, '', 'fae67ef42fa94abf81c6c5b8e51f892c', '34b008f0c1324bd7a1663c5f00c4b5d6', 'default', NULL, '2024-05-06 18:00:15', '2', '2023-10-11 10:00:15', '2', '2023-10-11 10:00:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2945, 2, 1, '', '3ffd3fc033b44f759be1849df569cc6f', '8d01a160ac2d4074902c27a41d8a34ad', 'default', NULL, '2024-05-06 18:01:23', '2', '2023-10-11 10:01:23', '2', '2023-10-11 10:01:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2946, 2, 1, '', '262c15bbb0ef484f826fbd0d97ea678a', '07b45fd5ee62454087e0351b48ef8523', 'default', NULL, '2024-05-06 18:01:34', '2', '2023-10-11 10:01:34', '2', '2023-10-11 10:01:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2947, 2, 1, '', '38b72edfe2704d98ba1b2930325fa36a', '84dffb1ceb674007ad3714e882cdba29', 'default', NULL, '2024-05-06 22:01:26', '2', '2023-10-11 14:01:26', '2', '2023-10-11 14:01:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2948, 2, 1, '', '6d87f2a35e4b4706a5a7a45dd7b9b3f4', 'f67621b199aa4ca988b9693608e58039', 'default', NULL, '2024-05-06 22:01:52', '2', '2023-10-11 14:01:52', '2', '2023-10-11 14:01:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2949, 2, 1, '', 'b909f4d75b154e958f1ecf89c62cf39e', '6dc30034463c4c78ab89113155b8c2f6', 'default', NULL, '2024-05-06 22:13:38', '2', '2023-10-11 14:13:38', '2', '2023-10-11 14:13:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2950, 2, 1, '', '27bee63007184df4bd863e5f1456e91a', 'ff0f9aed4f8e46cb8423f01c7232b33e', 'default', NULL, '2024-05-06 22:18:24', '2', '2023-10-11 14:18:24', '2', '2023-10-11 14:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2951, 2, 1, '', 'df230348e6d94eb2a860a66870283e36', '3b8081a832a3460b8d73cee1f17331b5', 'default', NULL, '2024-05-06 22:19:27', '2', '2023-10-11 14:19:27', '2', '2023-10-11 14:19:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2952, 2, 1, '', '4be0093dd6d3403f86d664712c0dc99a', '6533a9d3f5464f5abe16e6a6f80ffd24', 'default', NULL, '2024-05-06 22:21:30', '2', '2023-10-11 14:21:30', '2', '2023-10-11 14:21:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2953, 2, 1, '', 'fd2feffb217c41dcae8739d34a045b9f', 'f6b8cf7626c543ddb5519098717d4db3', 'default', NULL, '2024-05-06 22:21:43', '2', '2023-10-11 14:21:43', '2', '2023-10-11 14:21:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2954, 2, 1, '', '5be37108b4114454a1b7d36f595f35ed', 'e896f808b19347069ed7d7867651f47e', 'default', NULL, '2024-05-06 22:24:06', '2', '2023-10-11 14:24:06', '2', '2023-10-11 14:24:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2955, 2, 1, '', '57d85982adcb4cf6861f507772530bda', 'a6e5cebfd2d0492790aa1fd86bc831f4', 'default', NULL, '2024-05-06 22:24:22', '2', '2023-10-11 14:24:22', '2', '2023-10-11 14:24:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2956, 2, 1, '', 'a4777524fdf84101b9dc0db9241d7f8e', '4e109057def04c08987d598d1b107f21', 'default', NULL, '2024-05-06 22:24:42', '2', '2023-10-11 14:24:42', '2', '2023-10-11 14:24:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2957, 2, 1, '', '8598364f798f47828b1c5ae5040ea547', 'fe2f11813216421e86465fd4f579c371', 'default', NULL, '2024-05-06 22:24:59', '2', '2023-10-11 14:24:59', '2', '2023-10-11 14:24:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2958, 2, 1, '', '3f93893ccba546d4a9c2cc875c8f3421', 'e547c4df36dd48be99cf059990f43289', 'default', NULL, '2024-05-07 01:02:08', NULL, '2023-10-11 17:02:08', NULL, '2023-10-11 17:02:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2959, 2, 1, '', '3b492914c39547ffb0975e68ef047826', 'eff0a06f7530416c9139a832d25de396', 'default', NULL, '2024-05-09 00:14:24', NULL, '2023-10-13 16:14:24', NULL, '2023-10-13 16:14:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2960, 2, 1, '', 'a1fbf716ac3d4324ba5160d634b1cc23', '28e92b6b9adf4da9b6ee26f4b0b34adf', 'default', NULL, '2024-05-09 00:27:16', '2', '2023-10-13 16:27:16', '2', '2023-10-13 16:27:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2961, 2, 1, '', 'aecd0687c921484f85a7b3134b53a204', '54cf93723b234e45af581655a63eebb5', 'default', NULL, '2024-05-09 00:28:20', '2', '2023-10-13 16:28:20', '2', '2023-10-13 16:28:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2962, 2, 1, '', 'c5ad2682580842108aeaa5a3bfc93b50', '71c4263778e349899bd1cce4a9d4316a', 'default', NULL, '2024-05-09 00:29:41', '2', '2023-10-13 16:29:41', '2', '2023-10-13 16:29:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2963, 2, 1, '', '132e024126b848baa4ed9c9e08cc519e', '07569f151c5c454cba6ea6ad818243fc', 'default', NULL, '2024-05-09 00:31:08', '2', '2023-10-13 16:31:08', '2', '2023-10-13 16:31:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2964, 2, 1, '', 'c69885fb927e40819442cdf8407b9e36', 'e4aaa8b5a7174d76920df96d10bd2059', 'default', NULL, '2024-05-09 00:31:29', '2', '2023-10-13 16:31:29', '2', '2023-10-13 16:31:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2965, 2, 1, '', '17a82dff8fbd43b182fc1ca790af102c', 'd7762ebc47314090a23e9854ec919025', 'default', NULL, '2024-05-09 00:31:54', '2', '2023-10-13 16:31:54', '2', '2023-10-13 16:31:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2966, 2, 1, '', '25d93dbac6604e8aa71552777c1cdb5d', '96157c60195e45d698b87832ef4bcaae', 'default', NULL, '2024-05-09 00:33:40', '2', '2023-10-13 16:33:40', '2', '2023-10-13 16:33:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2967, 2, 1, '', 'b71ad4a8efbe49ae84b5458fd1bb9ba6', '7df6f751684841b793cd4a4a420f2411', 'default', NULL, '2024-05-09 00:34:43', '2', '2023-10-13 16:34:43', '2', '2023-10-13 16:34:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2968, 2, 1, '', '3c2e1001f8f5498a94b5169c520eac50', '9b22c00bc47f40a9962b879985a623c9', 'default', NULL, '2024-05-09 00:37:13', '2', '2023-10-13 16:37:13', '2', '2023-10-13 16:37:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2969, 2, 1, '', 'a989b79bff784705bb3dbe17f290444d', 'd764de1047bc4022ab1d12165b98b9f9', 'default', NULL, '2024-05-09 00:37:48', '2', '2023-10-13 16:37:48', '2', '2023-10-13 16:37:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2970, 2, 1, '', 'a9c38fecdcf14741a8a67cd8b0b4ce57', '1f76500c63d3496dab675c4212602e0b', 'default', NULL, '2024-05-09 00:42:19', '2', '2023-10-13 16:42:19', '2', '2023-10-13 16:42:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2971, 2, 1, '', '64058779bfe34ae0ac07a3ce67078d2b', 'd93a8e8e952848a69911072e9471f956', 'default', NULL, '2024-05-09 00:46:07', '2', '2023-10-13 16:46:07', '2', '2023-10-13 16:46:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2972, 2, 1, '', '028f72ba21f0492692df0c27c550b782', '6f654ad88a9845398d3a1c0d980be7b0', 'default', NULL, '2024-05-09 00:48:12', '2', '2023-10-13 16:48:12', '2', '2023-10-13 16:48:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2973, 2, 1, '', '33aeccb7c39441f795efe8c5e3f40779', 'c2991d2073164a6ebc616ff1e965ddf5', 'default', NULL, '2024-05-09 00:49:40', '2', '2023-10-13 16:49:40', '2', '2023-10-13 16:49:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2974, 2, 1, '', '73841131bcac44fa8c1fdd0bf3561192', 'a6934636159c4f4ba638f8edd05b3500', 'default', NULL, '2024-05-09 00:51:21', '2', '2023-10-13 16:51:21', '2', '2023-10-13 16:51:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2975, 2, 1, '', '47d6be6ce8b44464bc792e23fbb2fc11', 'c5ebdd0d1daf4b2d808c8f01b3c673d4', 'default', NULL, '2024-05-09 00:51:55', '2', '2023-10-13 16:51:55', '2', '2023-10-13 16:51:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2976, 2, 1, '', '0d5438b6c4ca40b1b9e0a9c5ea576bf6', '8f96aededa864a9fb74eedf988a8e5ad', 'default', NULL, '2024-05-09 00:53:33', '2', '2023-10-13 16:53:33', '2', '2023-10-13 16:53:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2977, 2, 1, '', '6de0c7d2fcb44c6a966f07e52caa1f32', '32ffe2d0c99c4770b3b6fbcd09fb76d6', 'default', NULL, '2024-05-09 00:55:08', '2', '2023-10-13 16:55:08', '2', '2023-10-13 16:55:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2978, 2, 1, '', 'bd755a98c9c04eab907cbf869e6fc7f7', '3de5b98a32a647849b504ee88ebec6a3', 'default', NULL, '2024-05-09 00:55:36', '2', '2023-10-13 16:55:36', '2', '2023-10-13 16:55:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2979, 2, 1, '', '5e2bddb6f47a4f48b8bb8990de076e2e', '91c1864ca820423faeab7f0bfa6110c7', 'default', NULL, '2024-05-09 00:58:14', '2', '2023-10-13 16:58:14', '2', '2023-10-13 16:58:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2980, 2, 1, '', 'ab6736e8d2b34e679c0ab16b088638e4', '7432b45298b546e889cfc1a03a2a3849', 'default', NULL, '2024-05-09 00:58:26', '2', '2023-10-13 16:58:26', '2', '2023-10-13 16:58:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2981, 2, 1, '', 'bde58a36f27548f7a7d08849ba03dea2', '3799a1910b204ea9abd25daa2ef73689', 'default', NULL, '2024-05-09 00:59:11', '2', '2023-10-13 16:59:11', '2', '2023-10-13 16:59:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2982, 2, 1, '', '8b93b2fc8b524958bc847e2439d097bf', '59b189250fee4492ae8e6402685fe8fe', 'default', NULL, '2024-05-09 00:59:32', '2', '2023-10-13 16:59:32', '2', '2023-10-13 16:59:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2983, 2, 1, '', 'ffeb4e1521f249c4b5c44d944c3ec464', 'd56e2da497924ced9852d0395a336611', 'default', NULL, '2024-05-09 01:04:51', '2', '2023-10-13 17:04:51', '2', '2023-10-13 17:04:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2984, 2, 1, '', '36fa31f9bf8c454898387eecc51dddda', 'f6bbaa782c8f4c829b471c1ba1d381fc', 'default', NULL, '2024-05-09 01:05:16', '2', '2023-10-13 17:05:16', '2', '2023-10-13 17:05:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2985, 2, 1, '', 'b87f3d4032a74fcdba9d26b1c9822bc2', 'cb8d247342c54c07a17f19a6b2b61c57', 'default', NULL, '2024-05-09 01:12:21', '2', '2023-10-13 17:12:21', '2', '2023-10-13 17:12:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2986, 2, 1, '', '1497809f7094439d8f6ecaadc3448d06', '629ede9198304ae281839c70700a45df', 'default', NULL, '2024-05-09 01:13:08', '2', '2023-10-13 17:13:08', '2', '2023-10-13 17:13:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2987, 2, 1, '', '039eef48d1f2459ead0e96d479fe1aed', 'a00286591273486385a8edaaf77afcca', 'default', NULL, '2024-05-09 01:15:37', '2', '2023-10-13 17:15:37', '2', '2023-10-13 17:15:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2988, 2, 1, '', '4166eaa3fa794a72bbcf470b20caff42', '9ac71369fc8c4172b3bac531b1db2825', 'default', NULL, '2024-05-09 01:16:03', '2', '2023-10-13 17:16:03', '2', '2023-10-13 17:16:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2989, 2, 1, '', '7e76459eb92849f9b53a3aca61077fc0', 'e285e4aad12742feb34ae732eb82759e', 'default', NULL, '2024-05-09 01:16:53', '2', '2023-10-13 17:16:53', '2', '2023-10-13 17:16:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2990, 2, 1, '', '6ca25cfb6ff946458ccf763177a84107', '48109b7356124126921991899b5c9edb', 'default', NULL, '2024-05-09 01:18:17', '2', '2023-10-13 17:18:17', '2', '2023-10-13 17:18:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2991, 2, 1, '', 'bfd3b9a665564851b380b37dc2747fd5', '73dfa4177cf14ca1b031ac8345a5ddb7', 'default', NULL, '2024-05-09 01:18:55', '2', '2023-10-13 17:18:55', '2', '2023-10-13 17:18:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2992, 2, 1, '', '411fc02e10ee4ef9918eba7cc7d957b6', '4288e61262ac4dca9d066b208b9a880a', 'default', NULL, '2024-05-09 01:19:14', '2', '2023-10-13 17:19:14', '2', '2023-10-13 17:19:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2993, 2, 1, '', '71c5d12d642f4f5983223dc1b9b2bd1f', '984842a69056448a96d0f2d0ce0f43b4', 'default', NULL, '2024-05-09 01:19:47', '2', '2023-10-13 17:19:47', '2', '2023-10-13 17:19:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2994, 2, 1, '', 'adea67cb83544c8cb0ba255f3b342129', '861f216ad95f4f93a7e771770d750099', 'default', NULL, '2024-05-09 01:20:09', '2', '2023-10-13 17:20:09', '2', '2023-10-13 17:20:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2995, 2, 1, '', '72857578b4d64e41b666822eb232f7a4', '59f33fc7d15e47a08394de079410fdb2', 'default', NULL, '2024-05-09 01:20:52', '2', '2023-10-13 17:20:52', '2', '2023-10-13 17:20:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2996, 2, 1, '', '6652f1830a3f452ba1e403b506dbcddc', '903dbb8b7c464ae6b861aa302b7a472f', 'default', NULL, '2024-05-09 01:21:16', '2', '2023-10-13 17:21:16', '2', '2023-10-13 17:21:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2997, 2, 1, '', 'd0662bbb6eb844b4bf60d3265b29dfed', '9f9fa2d64f2f459b9b4817771f03cb7a', 'default', NULL, '2024-05-09 01:21:54', '2', '2023-10-13 17:21:54', '2', '2023-10-13 17:21:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2998, 2, 1, '', '24a55062d73945a2996a42a1fde8934c', 'f792d713d28d40fe8532d119c2670fea', 'default', NULL, '2024-05-09 01:25:57', '2', '2023-10-13 17:25:57', '2', '2023-10-13 17:25:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (2999, 2, 1, '', 'beb77064799d4a3e8a47ed85a0fb6769', 'b2bcfcc004f74c61bceaeb68e9294031', 'default', NULL, '2024-05-09 01:26:00', '2', '2023-10-13 17:26:00', '2', '2023-10-13 17:26:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3000, 2, 1, '', '321b5b4b3cc645cbbe4d3d243b24c0c4', '169b12bdd067493c8f4384e01699ed36', 'default', NULL, '2024-05-09 01:26:03', '2', '2023-10-13 17:26:03', '2', '2023-10-13 17:26:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3001, 2, 1, '', 'f6b926b537d448c49bfea2c81f7d0c80', '57af1fb5a0364e71835000bf789163e7', 'default', NULL, '2024-05-09 01:27:02', '2', '2023-10-13 17:27:02', '2', '2023-10-13 17:27:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3002, 2, 1, '', 'c99777584fef43ddad1efc76345b372f', '0ca0de877b6447e7a0d3f7c243834f1f', 'default', NULL, '2024-05-09 01:28:12', '2', '2023-10-13 17:28:12', '2', '2023-10-13 17:28:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3003, 2, 1, '', '905bd3bb91134ab9aa50cd797442fcd5', '7a1f66311bf9434c981c9d4d5cdeefc1', 'default', NULL, '2024-05-09 01:28:38', '2', '2023-10-13 17:28:38', '2', '2023-10-13 17:28:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3004, 2, 1, '', '5a28e49d04e141e8a2bc89be447c3deb', '3121aa2886824f4fb76df1791dc2a581', 'default', NULL, '2024-05-09 01:29:29', '2', '2023-10-13 17:29:29', '2', '2023-10-13 17:29:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3005, 2, 1, '', 'd8da82a2a86b4ffd895bb5651f0156d6', '8aa470de18894c0ea22fd43815d5b201', 'default', NULL, '2024-05-09 01:34:10', '2', '2023-10-13 17:34:10', '2', '2023-10-13 17:34:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3006, 2, 1, '', '421b32a05c6744ddbfeffebf36f0f1b7', '44737745f62a454caa3f2563d9dc452d', 'default', NULL, '2024-05-09 01:35:12', '2', '2023-10-13 17:35:12', '2', '2023-10-13 17:35:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3007, 2, 1, '', 'a0b515b1cec243d9ae904f6febf2f7a1', '23a036fed1f8470fbd71a5b349f75d61', 'default', NULL, '2024-05-09 01:46:45', '2', '2023-10-13 17:46:45', '2', '2023-10-13 17:46:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3008, 2, 1, '', '1f7d8605e4794129b2b20c9804ad2a04', '67745f620e5240b0bbd5f8c4378fe0c9', 'default', NULL, '2024-05-09 01:49:42', '2', '2023-10-13 17:49:42', '2', '2023-10-13 17:49:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3009, 2, 1, '', 'dba0c8e071934ee8a7075d58d7b09e0d', '3a2fff5cfe504757b73b662f4b32bcb3', 'default', NULL, '2024-05-09 01:53:37', '2', '2023-10-13 17:53:37', '2', '2023-10-13 17:53:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3010, 2, 1, '', '486c1cfa405643abb078a66a59489eb7', '1bb671a55c3f49ceba00cf04e64ce652', 'default', NULL, '2024-05-09 01:53:48', '2', '2023-10-13 17:53:48', '2', '2023-10-13 17:53:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3011, 2, 1, '', '3cbc50b76f7e41b283b642f466b25153', 'cb3c9821471d4deda55c209495468aec', 'default', NULL, '2024-05-09 01:55:26', '2', '2023-10-13 17:55:26', '2', '2023-10-13 17:55:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3012, 2, 1, '', 'fc95ab75869e42d4a81e994a0da7261d', '59dbe4259794488ba1c3f98e17520e0d', 'default', NULL, '2024-05-09 01:56:27', '2', '2023-10-13 17:56:27', '2', '2023-10-13 17:56:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3013, 2, 1, '', '7544e447d3a542059083009d2d635697', '811de064230c4d63b13a42c2a3cbf25a', 'default', NULL, '2024-05-09 01:57:21', '2', '2023-10-13 17:57:21', '2', '2023-10-13 17:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3014, 2, 1, '', '77e47f8e98cc485b8eeb7e42b672e1ea', 'df77103a25284e3cba4da959b92f19ce', 'default', NULL, '2024-05-09 01:58:15', '2', '2023-10-13 17:58:15', '2', '2023-10-13 17:58:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3015, 2, 1, '', 'd33f0fffd3d841329717eaf1ff76a8ea', '614c1e40ec7643a28e58df695441a404', 'default', NULL, '2024-05-09 01:59:44', '2', '2023-10-13 17:59:44', '2', '2023-10-13 17:59:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3016, 2, 1, '', 'dae309dbd70f4189857d2934531f130d', 'bffae8854f7c4961a311a88871967ea3', 'default', NULL, '2024-05-09 02:00:45', '2', '2023-10-13 18:00:45', '2', '2023-10-13 18:00:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3017, 2, 1, '', 'abd6912cdf33488896280afbfc8d1e75', '374828a9b8114d8d9b40e5bd9ed11cee', 'default', NULL, '2024-05-09 02:01:25', '2', '2023-10-13 18:01:25', '2', '2023-10-13 18:01:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3018, 2, 1, '', '5b4c6fb12a45471cbe6ce2ebbc51697f', '6a50278a5e3b42fea8721fd62a718b3f', 'default', NULL, '2024-05-09 02:02:35', '2', '2023-10-13 18:02:35', '2', '2023-10-13 18:02:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3019, 2, 1, '', '50818adb53904c6b96edfea0ce77b099', 'a3c47520030c49c39ce18436fe5fdeee', 'default', NULL, '2024-05-09 02:03:15', '2', '2023-10-13 18:03:15', '2', '2023-10-13 18:03:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3020, 2, 1, '', '4385f86b48c841ab9f0dc765e054857b', '899f75d49ff445cf9c318e23a36da3fa', 'default', NULL, '2024-05-09 02:07:00', '2', '2023-10-13 18:07:00', '2', '2023-10-13 18:07:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3021, 2, 1, '', 'f4d3ad2f085d408ca66bcd5a84c24d13', '60f08927406948ee87f810d69b167c18', 'default', NULL, '2024-05-09 02:07:26', '2', '2023-10-13 18:07:26', '2', '2023-10-13 18:07:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3022, 2, 1, '', 'da7c2096836c4959835b7377a2c47554', '911973c597514ef09061a20f41af88ec', 'default', NULL, '2024-05-09 02:07:50', '2', '2023-10-13 18:07:50', '2', '2023-10-13 18:07:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3023, 2, 1, '', 'ad6b211fd5c04971879118116047bb59', '555f4bc827624aada02f16ae051b0713', 'default', NULL, '2024-05-09 02:08:19', '2', '2023-10-13 18:08:19', '2', '2023-10-13 18:08:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3024, 2, 1, '', 'ec1f610a941847eabbede8429efe5187', '16b06d50a4ef476c9cc98e4c3c32d9de', 'default', NULL, '2024-05-09 02:09:11', '2', '2023-10-13 18:09:11', '2', '2023-10-13 18:09:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3025, 2, 1, '', '1d1a86c6befd4f72ba229c10f70b294a', 'f80e520c637e4fef80ddfd8e5ee89bf0', 'default', NULL, '2024-05-09 02:10:00', '2', '2023-10-13 18:10:00', '2', '2023-10-13 18:10:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3026, 2, 1, '', '19a7e86252af4f659037f92c39ae0e2c', '61f86ca92b4249b990ae45891f35b802', 'default', NULL, '2024-05-09 02:10:51', '2', '2023-10-13 18:10:51', '2', '2023-10-13 18:10:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3027, 2, 1, '', '730ee23f75b84bf4a50a4f76f20a2bba', '584ad71e3d304ba894312fe638682ac0', 'default', NULL, '2024-05-09 02:11:12', '2', '2023-10-13 18:11:12', '2', '2023-10-13 18:11:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3028, 2, 1, '', '80cb8da2f0174a8a8ddf01a8d5bee342', '1cef25c3164d4ae4a209a0917f6c17d5', 'default', NULL, '2024-05-09 02:11:50', '2', '2023-10-13 18:11:50', '2', '2023-10-13 18:11:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3029, 2, 1, '', '0726507581fa46fd8bede3aa02825e34', '686ba1ffab034a89a96d89fe4841c692', 'default', NULL, '2024-05-09 02:12:54', '2', '2023-10-13 18:12:54', '2', '2023-10-13 18:12:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3030, 2, 1, '', '170ae41b2ce94ed1bd03312159928b64', '6cb412ef356547ee899a1e6898062a83', 'default', NULL, '2024-05-09 02:13:37', '2', '2023-10-13 18:13:37', '2', '2023-10-13 18:13:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3031, 2, 1, '', '50526214263145a8a0e5583b82439df2', '8ea7b24ffe9146c1bf007f1a814a75b7', 'default', NULL, '2024-05-09 02:14:16', '2', '2023-10-13 18:14:16', '2', '2023-10-13 18:14:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3032, 2, 1, '', '218dd43399604c38aa7564259443faed', 'fe12417ec84e44b99969aadb7485f7c4', 'default', NULL, '2024-05-09 02:14:40', '2', '2023-10-13 18:14:40', '2', '2023-10-13 18:14:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3033, 2, 1, '', '0138734d9f1d4f7e89f65c32367c52fe', 'd2805091f297453cbd6fd8d667f7e8e9', 'default', NULL, '2024-05-09 02:15:45', '2', '2023-10-13 18:15:45', '2', '2023-10-13 18:15:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3034, 2, 1, '', '472349a8bd4943bbb6ad01d0d474d873', '9c6dc35067884823849f160b367e812f', 'default', NULL, '2024-05-09 02:16:58', '2', '2023-10-13 18:16:58', '2', '2023-10-13 18:16:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3035, 2, 1, '', '4863fd864e2045e186736485862f9139', '3bf08ea1028048e0aff1181b95805ffe', 'default', NULL, '2024-05-09 02:17:22', '2', '2023-10-13 18:17:22', '2', '2023-10-13 18:17:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3036, 2, 1, '', '64eead2e35584e91b7a5af65597cec70', '389356bfb2a24d59a11632e9efd1d8bd', 'default', NULL, '2024-05-09 02:17:50', '2', '2023-10-13 18:17:50', '2', '2023-10-13 18:17:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3037, 2, 1, '', '791b59cfbe1d4b9e97532af05aaf4853', 'f310be2c8d3d49a29e55dd9b345319ab', 'default', NULL, '2024-05-09 02:18:58', '2', '2023-10-13 18:18:58', '2', '2023-10-13 18:18:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3038, 2, 1, '', 'dd742b170ed6447884dd996105beca6a', 'ad01c35e92684ae5b1eccd59dbf63d02', 'default', NULL, '2024-05-09 02:21:44', '2', '2023-10-13 18:21:44', '2', '2023-10-13 18:21:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3039, 2, 1, '', 'a6eb78e101334093a14aee999fbdbbc0', '89db256458834c5191b9fc4922b80fb8', 'default', NULL, '2024-05-11 17:46:09', NULL, '2023-10-16 09:46:09', NULL, '2023-10-16 09:46:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3040, 2, 1, '', '08693a0d89294084bed2e5840ebcd901', 'f7756573aad64fe38b46699f5c199388', 'default', NULL, '2024-05-11 17:48:23', '2', '2023-10-16 09:48:23', '2', '2023-10-16 09:48:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3041, 2, 1, '', 'b7e129d8b5144dd18abb23547e7fe021', '05e68a3c344b4b759c1ace42ba35da38', 'default', NULL, '2024-05-11 17:49:03', '2', '2023-10-16 09:49:03', '2', '2023-10-16 09:49:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3042, 2, 1, '', 'a2432f29e76b4b8ca4941826a288502e', '61d6ca09fefb4ad8b2cb3dc322ba8757', 'default', NULL, '2024-05-11 17:49:54', '2', '2023-10-16 09:49:54', '2', '2023-10-16 09:49:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3043, 2, 1, '', '452e9e209c824fcb8d16f74c89c12cd9', '5617f822d8934b3d86b6d0bca8aa2eba', 'default', NULL, '2024-05-11 17:55:24', '2', '2023-10-16 09:55:24', '2', '2023-10-16 09:55:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3044, 2, 1, '', '4cfb579cbd3643bcb23582c2e6539c89', 'dfa96289bc2a44eb93f259100711d33d', 'default', NULL, '2024-05-11 17:56:22', '2', '2023-10-16 09:56:22', '2', '2023-10-16 09:56:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3045, 2, 1, '', 'c9ee65e82bb74b42bea88a1d244e41ce', 'bbd3a3cb5bbf48c69767d2ac02138ddc', 'default', NULL, '2024-05-11 17:58:27', '2', '2023-10-16 09:58:27', '2', '2023-10-16 09:58:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3046, 2, 1, '', 'a4d74b7535134d1ca0fe79cbd3a36d69', '9f727cc6353a4e60b265b8b345f3b3c2', 'default', NULL, '2024-05-11 18:00:53', '2', '2023-10-16 10:00:53', '2', '2023-10-16 10:00:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3047, 2, 1, '', '69c5aa0bc9fe4b958214771c8c3316a8', '2708633380844ac491ffbbf1bf15191a', 'default', NULL, '2024-05-11 18:01:27', '2', '2023-10-16 10:01:27', '2', '2023-10-16 10:01:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3048, 2, 1, '', 'c0a1944159e74bbd9223865d2ea85ce4', '58a7dee21a5c45c9b07e36f5643059e5', 'default', NULL, '2024-05-11 18:25:27', '2', '2023-10-16 10:25:27', '2', '2023-10-16 10:25:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3049, 2, 1, '', '04abce7a178c4d32be4a21aa6b23f014', '700e8f07455e4f63ace10191f3b85182', 'default', NULL, '2024-05-11 18:28:53', '2', '2023-10-16 10:28:53', '2', '2023-10-16 10:28:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3050, 2, 1, '', 'a48af04c4fab47868ae4ebd89269c5a4', '2fcffb43495041b8b4c25d969cb6253e', 'default', NULL, '2024-05-11 18:29:49', '2', '2023-10-16 10:29:49', '2', '2023-10-16 10:29:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3051, 2, 1, '', '109634b2e69048beb542cfc8c582787a', '8f8bf7367bf94ad7b8646ca14917eab1', 'default', NULL, '2024-05-11 18:33:08', '2', '2023-10-16 10:33:08', '2', '2023-10-16 10:33:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3052, 2, 1, '', 'ca5ac9d086fb449dabac632bf36da208', '8d11e5422263418cbe93f4b2ac642a77', 'default', NULL, '2024-05-11 18:38:50', '2', '2023-10-16 10:38:50', '2', '2023-10-16 10:38:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3053, 2, 1, '', 'c80c905928674096be8696d6ea8779e4', 'd19360a621e846d19466ab1c9b8830d7', 'default', NULL, '2024-05-11 18:40:15', '2', '2023-10-16 10:40:15', '2', '2023-10-16 10:40:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3054, 2, 1, '', '5d27478a06274da8a886370d6e698399', 'c471a047e43243b0badf91e94aa73080', 'default', NULL, '2024-05-11 18:41:54', '2', '2023-10-16 10:41:54', '2', '2023-10-16 10:41:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3055, 2, 1, '', '097d9b2e1b1e4c7e9fd48685e4b099c4', '48a7c177072749f2a3916a1c1e4eb5bc', 'default', NULL, '2024-05-11 18:51:58', '2', '2023-10-16 10:51:58', '2', '2023-10-16 10:51:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3056, 2, 1, '', '3e3e080f2c73427fa67a29630611c960', 'd2f609a02d6c468491ebd4f36f1fd210', 'default', NULL, '2024-05-11 18:53:48', '2', '2023-10-16 10:53:48', '2', '2023-10-16 10:53:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3057, 2, 1, '', '96fc2359cd2e471db77f066b02670fe1', 'd8e7731d5cd54a4ea9a387a4753908f2', 'default', NULL, '2024-05-11 18:55:06', NULL, '2023-10-16 10:55:06', NULL, '2023-10-16 10:55:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3058, 4, 1, '', '86a9a7f8ff944df2bbe492b5c1d346bd', '4a54d96d093d48bc9620527b25a4a2d1', 'default', NULL, '2024-05-14 18:02:47', NULL, '2023-10-19 10:02:47', NULL, '2023-10-19 10:02:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3059, 4, 1, '', '95bd87b22cc047d7873b558c19233879', 'd91be7710e724242aeddbbde414408a5', 'default', NULL, '2024-05-14 19:11:57', NULL, '2023-10-19 11:11:57', NULL, '2023-10-19 11:11:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3060, 5, 1, '', 'e5ff56f96c5f4f8da489ca662bd90acf', 'eac57410fc6b41099676749b5c509c95', 'default', NULL, '2024-05-14 19:13:23', NULL, '2023-10-19 11:13:23', NULL, '2023-10-19 11:13:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3061, 5, 1, '', 'c264d86258c54a4a89d9da1167b35407', 'a6ab06ace4684260a451ce4dd116b0a5', 'default', NULL, '2024-05-15 00:56:36', NULL, '2023-10-19 16:56:36', NULL, '2023-10-19 16:56:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3062, 7, 1, '', '33aca3800c1f40bd8f6a90c1e291a481', '525c9dc3130045daac6b4f4846b7912c', 'default', NULL, '2024-05-16 00:39:01', NULL, '2023-10-20 16:39:01', NULL, '2023-10-20 16:39:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3063, 7, 1, '', '0d325805e14e470e9f2260e0deb00b50', '107e5c14941e4f6b89f8c216cfbbc447', 'default', NULL, '2024-05-16 18:10:31', NULL, '2023-10-21 10:10:31', NULL, '2023-10-21 10:10:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3064, 7, 1, '', 'ff08b485f1f74545bf639fe77bf2ffc9', 'bcc11c782d8c4013a0d2eda542004afa', 'default', NULL, '2024-05-16 18:13:08', NULL, '2023-10-21 10:13:08', NULL, '2023-10-21 10:13:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3065, 7, 1, '', 'd1de207e70ad4048ad2f2742a1c0d459', '18eaea8e82a848eda4dcd864f7946ca4', 'default', NULL, '2024-05-16 19:33:54', NULL, '2023-10-21 11:33:54', NULL, '2023-10-21 11:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3066, 8, 1, '', '3b77caf4027e4b778279382b9a71cba3', '698ebd21e4cf40208d9990d15b9c22d3', 'default', NULL, '2024-05-16 19:35:08', NULL, '2023-10-21 11:35:08', NULL, '2023-10-21 11:35:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3067, 7, 1, '', 'deceb3b80fd645539a8a52e2da79b190', 'a75861d3258e4dbdb0f636fdba43fa31', 'default', NULL, '2024-05-18 17:47:53', NULL, '2023-10-23 09:47:53', NULL, '2023-10-23 09:47:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3068, 7, 1, '', '3d751b080da04f039bf669965045d921', '76db17dd14cd467b8aae9bf90502ceda', 'default', NULL, '2024-05-18 17:48:21', NULL, '2023-10-23 09:48:21', NULL, '2023-10-23 09:48:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3069, 7, 1, '', '68927335028748c38bde7a88a2eb5357', '03fa868b94f4443ea56dd1f4b3546b82', 'default', NULL, '2024-05-18 17:53:34', NULL, '2023-10-23 09:53:34', NULL, '2023-10-23 09:53:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3070, 7, 1, '', '9490834c3f464f2188b9f88c6dabe45f', '9a6878148d2344149f18ee796470689a', 'default', NULL, '2024-05-18 18:12:14', NULL, '2023-10-23 10:12:14', NULL, '2023-10-23 10:12:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3071, 7, 1, '', '9e36eb98b75b44b19e996921494a694e', 'af7cd6a1d41c46be8876e15dbc48615d', 'default', NULL, '2024-05-18 18:19:17', NULL, '2023-10-23 10:19:17', NULL, '2023-10-23 10:19:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3072, 7, 1, '', '261cdd539a86492899c8483fbb3e5cb9', '3b606682286d4602a86eca98e5bb69b1', 'default', NULL, '2024-05-18 18:21:40', NULL, '2023-10-23 10:21:40', NULL, '2023-10-23 10:21:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3073, 7, 1, '', 'f04ec6374168453cbc0fdf26c406f548', '1972691844bb498caa65aedc0d35c7d8', 'default', NULL, '2024-05-18 18:25:09', NULL, '2023-10-23 10:25:09', NULL, '2023-10-23 10:25:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3074, 7, 1, '', '8365a26c5e6347f483fbf830198fb615', '5f797d95e00e43f2951abc710b69e3bb', 'default', NULL, '2024-05-18 18:33:28', NULL, '2023-10-23 10:33:28', NULL, '2023-10-23 10:33:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3075, 5, 1, '', 'cce679e8fe1442c2bf41fbd19d7517ec', '00edf117f202476e851e301ff3b448b5', 'default', NULL, '2024-05-23 01:20:47', NULL, '2023-10-27 17:20:47', NULL, '2023-10-27 17:20:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3076, 5, 1, '', '2dba58ccfc1f4e62a73687a27713977c', '488f5184c90e40c38e6e51e384c8e59e', 'default', NULL, '2024-05-23 01:23:30', NULL, '2023-10-27 17:23:30', NULL, '2023-10-27 17:23:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3077, 5, 1, '', '9ac160c20c3c40879d3f1a0d90400339', '221a198621c344138defe5be08a93cd2', 'default', NULL, '2024-05-23 01:38:02', NULL, '2023-10-27 17:38:02', NULL, '2023-10-27 17:38:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3078, 5, 1, '', 'e384462529db41eab7553e496f2de102', 'a173e8775c7b4f55ba764e24bf3da974', 'default', NULL, '2024-05-23 01:40:44', NULL, '2023-10-27 17:40:44', NULL, '2023-10-27 17:40:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3079, 5, 1, '', '59c4493402064ec9926637274a7c4714', '7de4547b7e4448b8912937cb478d0f92', 'default', NULL, '2024-05-24 00:37:01', NULL, '2023-10-28 16:37:01', NULL, '2023-10-28 16:37:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3080, 5, 1, '', 'bc23df5c50fd4ddcb62db1aeb263acaf', 'f1b62b4ba8ea41008d3b6e8acfb0748b', 'default', NULL, '2024-05-26 19:35:39', NULL, '2023-10-31 11:35:39', NULL, '2023-10-31 11:35:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3081, 5, 1, '', '0fe97a0b8c4e4daeae367506a3c5b147', 'eea6085acbb3449ba9cd82d679195c4e', 'default', NULL, '2024-05-26 19:44:06', NULL, '2023-10-31 11:44:06', NULL, '2023-10-31 11:44:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3082, 5, 1, '', 'b259172176644a0187269e4e3d640d79', '1a4475e480c9405595be778419be446d', 'default', NULL, '2024-05-26 19:45:58', NULL, '2023-10-31 11:45:58', NULL, '2023-10-31 11:45:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3083, 5, 1, '', '0528d02fe940444a9d26273d15755c3a', 'c3866829e32c422fb49ef3718a61cb33', 'default', NULL, '2024-05-26 19:53:04', NULL, '2023-10-31 11:53:04', NULL, '2023-10-31 11:53:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3084, 2, 1, '', '25e53dcdf27c486983540648456d7a3f', '9b523653efd9498c8d377ea899d8d9ba', 'default', NULL, '2024-05-26 20:02:55', NULL, '2023-10-31 12:02:55', NULL, '2023-10-31 12:02:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3085, 2, 1, '', '8d39691b30f540eb9c29dcaa14d2759a', 'b39b76711d2c48a4af37c4c027eb815b', 'default', NULL, '2024-06-03 00:53:10', '2', '2023-11-07 16:53:10', '2', '2023-11-07 16:53:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3086, 2, 1, '', '2df02a1b8052463cba1eb4e1f9e81d57', '99eec5ebdb0b4349b30e6f7dbf4d2613', 'default', NULL, '2024-06-03 00:55:01', '2', '2023-11-07 16:55:01', '2', '2023-11-07 16:55:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3087, 2, 1, '', '80be09d68f7d48618cbaa203b201cc26', '17cf06b38eb74aff9367211581a3393c', 'default', NULL, '2024-06-03 00:55:42', '2', '2023-11-07 16:55:42', '2', '2023-11-07 16:55:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3088, 2, 1, '', '7f6304a549454d5584bc1d0a20952ba4', 'a3b4da9d163545b2ba0223153c5f149a', 'default', NULL, '2024-06-03 00:56:13', '2', '2023-11-07 16:56:13', '2', '2023-11-07 16:56:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3089, 2, 1, '', '0add9cbf29b04bf495a9c33f609c5569', 'dd50814c9337435c9c2faad0a1feb37b', 'default', NULL, '2024-06-03 00:58:14', '2', '2023-11-07 16:58:14', '2', '2023-11-07 16:58:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3090, 2, 1, '', 'd4bc5f26cc174d3e9a5d0be0d93ddd42', 'bada5974f0b04ee09888abc675152a4f', 'default', NULL, '2024-06-03 01:01:50', '2', '2023-11-07 17:01:50', '2', '2023-11-07 17:01:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3091, 2, 1, '', '2af9d1bf63eb489091707c35e4a38048', 'bee77bbb04c44e39b425507ab76d4df8', 'default', NULL, '2024-06-03 01:02:45', '2', '2023-11-07 17:02:45', '2', '2023-11-07 17:02:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3092, 9, 1, '', '6c48f4c76cbb43b7bf67eb7949cb1502', 'b7c828363582479286328255cd3b69f1', 'default', NULL, '2024-06-03 01:17:45', NULL, '2023-11-07 17:17:45', NULL, '2023-11-07 17:17:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3093, 9, 1, '', 'fd794b94081245d8966e1ec71edd49a5', '9ea41ff41e8d41c7a654463bf7c22050', 'default', NULL, '2024-06-03 01:30:05', '9', '2023-11-07 17:30:05', '9', '2023-11-07 17:30:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3094, 9, 1, '', '8971572018a2484fa5078ccd1f899716', '4d9ce9e7a1fc497e98bfdb9129c96524', 'default', NULL, '2024-06-04 02:09:01', '9', '2023-11-08 18:09:01', '9', '2023-11-08 18:09:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3095, 9, 1, '', '44153ff482a64bdd9794f945fddb8bc1', '4d1e662bac9540bb958bbf162a7f7cce', 'default', NULL, '2024-06-04 02:36:14', '9', '2023-11-08 18:36:14', '9', '2023-11-08 18:36:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3096, 9, 1, '', 'b34fed0bc5ff49d1991420c325fad1c4', '82b1c326becc40ef989accde3d569bd7', 'default', NULL, '2024-06-04 02:43:37', NULL, '2023-11-08 18:43:37', NULL, '2023-11-08 18:43:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3097, 9, 1, '', '513c1ed58811429e85014fa156882827', 'e59017b1001e434eb1ebf18ba932faf9', 'default', NULL, '2024-06-04 19:55:58', '9', '2023-11-09 11:55:58', '9', '2023-11-09 11:55:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3098, 9, 1, '', '0ab9a1ab84664a63a50726ed029815ba', '57e2bd6261da4db78a56472b61170faf', 'default', NULL, '2024-06-04 19:57:21', '9', '2023-11-09 11:57:21', '9', '2023-11-09 11:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3099, 9, 1, '', '4c175705bf364ce386cab4f48d87870a', 'ad376a108a2e4d54866934923c72a487', 'default', NULL, '2024-06-04 19:58:28', '9', '2023-11-09 11:58:28', '9', '2023-11-09 11:58:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3100, 9, 1, '', '1465c04ab7b74c61b6219e4da878b469', '9ac873898cd14f07b6e70f0c5731c15b', 'default', NULL, '2024-06-04 20:00:22', '9', '2023-11-09 12:00:22', '9', '2023-11-09 12:00:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3101, 9, 1, '', 'ef6bb78fb21c4f9d95bce257cf52a8f7', 'fa54ea7b478f4276ab88008856e13a42', 'default', NULL, '2024-06-04 20:01:59', '9', '2023-11-09 12:01:59', '9', '2023-11-09 12:01:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3102, 9, 1, '', '17f4c4cadf0543bbbf17de572df7d085', '08fed39d5a164b59a4b99ff4f8125ff8', 'default', NULL, '2024-06-04 20:14:45', '9', '2023-11-09 12:14:45', '9', '2023-11-09 12:14:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3103, 9, 1, '', '7f5597d85e4f47ae8d8a4bebb69f2011', '33951c91f23d4eeaaba6bae8527f7905', 'default', NULL, '2024-06-04 20:22:11', '9', '2023-11-09 12:22:11', '9', '2023-11-09 12:22:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3104, 9, 1, '', 'd712cd53531e4820bc6cd664727ee26d', 'e3d4b883315d4466b5bd9d94e7e0546d', 'default', NULL, '2024-06-04 23:01:56', '9', '2023-11-09 15:01:56', '9', '2023-11-09 15:01:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3105, 9, 1, '', '16609972ddf3435094b499bd6e59a966', '57068c63f9cd46ea811518515cac7894', 'default', NULL, '2024-06-04 23:02:10', '9', '2023-11-09 15:02:10', '9', '2023-11-09 15:02:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3106, 9, 1, '', '4898672ab8be48a794c82d8a9a1e0f05', '5dd58ee2170543e1958efef92c20c4fc', 'default', NULL, '2024-06-05 18:26:07', '9', '2023-11-10 10:26:07', '9', '2023-11-10 10:26:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3107, 9, 1, '', 'dde47b578eb6418b951950e081cd96a0', '1cc4c4032ab04c0b972328ef04dc1d50', 'default', NULL, '2024-06-05 18:28:52', '9', '2023-11-10 10:28:52', '9', '2023-11-10 10:28:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3108, 9, 1, '', '38a4b2559049451595344fde9bcf9356', '8bc223a66d294b44b13051c1f9ede46b', 'default', NULL, '2024-06-05 18:29:43', '9', '2023-11-10 10:29:43', '9', '2023-11-10 10:29:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3109, 9, 1, '', 'b23eeca1f4ad4877959f444e0ffca8eb', '562ef55cb05e4f6eb10aafa131597cbd', 'default', NULL, '2024-06-05 18:30:54', '9', '2023-11-10 10:30:54', '9', '2023-11-10 10:30:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3110, 9, 1, '', '217b6e47d9b44e34aec22c535d700a9e', '6f400875989242059ae84e2d58eadb3f', 'default', NULL, '2024-06-06 00:21:26', '9', '2023-11-10 16:21:26', '9', '2023-11-10 16:21:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3111, 9, 1, '', 'e6512b81eee64829ac73e82e15aafec7', 'cf0312fff87c463fad8c3f0775efa7a8', 'default', NULL, '2024-06-06 00:43:02', '9', '2023-11-10 16:43:02', '9', '2023-11-10 16:43:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3112, 9, 1, '', 'd2539eb92bee4c05b5afa22ba760033d', '0733b2dfa58944dca8eb5a1d82c06f3a', 'default', NULL, '2024-06-06 00:43:52', '9', '2023-11-10 16:43:52', '9', '2023-11-10 16:43:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3113, 9, 1, '', '6fb03f286b904066a0927407a8d4a82b', '0bc4af25d2714e58a366991463d8b948', 'default', NULL, '2024-06-11 19:58:50', NULL, '2023-11-16 11:58:50', NULL, '2023-11-16 11:58:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3114, 9, 1, '', 'b95e04244d2b4ef9b771706fbbf0f4e0', '02640e68b3264dbd81e513d9ceddf502', 'default', NULL, '2024-06-11 20:08:27', '9', '2023-11-16 12:08:27', '9', '2023-11-16 12:08:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3115, 9, 1, '', '926824c185044c5ba9d73c5128df501d', '34a9733f2d1a47cb8a181bc396aae8f0', 'default', NULL, '2024-06-11 20:10:15', '9', '2023-11-16 12:10:15', '9', '2023-11-16 12:10:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3116, 9, 1, '', 'c5864e2e40a94cb397fb0aae987ef0a5', 'c92c4430ff2e44969985224c4e8445b8', 'default', NULL, '2024-06-11 20:10:30', '9', '2023-11-16 12:10:30', '9', '2023-11-16 12:10:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3117, 9, 1, '', 'ef67cafdba8047eea637c2847a59b2c9', 'f4fdcc83310f4cdaa03947dbe1541a2d', 'default', NULL, '2024-06-11 20:10:48', '9', '2023-11-16 12:10:48', '9', '2023-11-16 12:10:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3118, 9, 1, '', '8d5748c59e55442cbe13b8df85f79b0a', 'c86f81750a6b4f26a1f7f5a27fb60250', 'default', NULL, '2024-06-11 22:08:26', '9', '2023-11-16 14:08:26', '9', '2023-11-16 14:08:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3119, 9, 1, '', 'dac261c3bfb7404da6e6168f4813d1c3', '2f7d3b39eefa48c4a53d3fc8bd66eccd', 'default', NULL, '2024-06-11 22:58:29', '9', '2023-11-16 14:58:29', '9', '2023-11-16 14:58:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3120, 9, 1, '', 'a3ac93d9b2344390a7372a53ee94b9dd', '756fbf42f9f8460a8be7f28d969bce3a', 'default', NULL, '2024-06-11 23:00:03', '9', '2023-11-16 15:00:03', '9', '2023-11-16 15:00:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3121, 9, 1, '', '3c4acdabe72b49f3a80e67d613463e07', 'c9703d7ae9f142998478eebd585abc92', 'default', NULL, '2024-06-11 23:00:42', '9', '2023-11-16 15:00:42', '9', '2023-11-16 15:00:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3122, 9, 1, '', 'ad9903edfbf8435fb3cf0a6ddff9a8ed', '8f36d62ace37488288be4dbcfdf12db2', 'default', NULL, '2024-06-11 23:02:00', '9', '2023-11-16 15:02:00', '9', '2023-11-16 15:02:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3123, 9, 1, '', '24376e79661441f69b3d877174d20b77', 'c36dd561b7de4fa4ad19567d4ce4df58', 'default', NULL, '2024-06-11 23:15:27', '9', '2023-11-16 15:15:27', '9', '2023-11-16 15:15:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3124, 9, 1, '', '1870d2e40b704d44b72ee3f02844d6e3', 'd2c23eb54405407abf4b26eae7d2cd3a', 'default', NULL, '2024-06-12 01:23:18', '9', '2023-11-16 17:23:18', '9', '2023-11-16 17:23:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3125, 9, 1, '', '216234a9af644dbb82c990f1f3757fd3', 'a3ae6df82e8c4d648f9a735739e758b1', 'default', NULL, '2024-06-12 01:36:35', '9', '2023-11-16 17:36:35', '9', '2023-11-16 17:36:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3126, 9, 1, '', 'e26f7ff47d074c2d80232a5a4ab1cb1e', 'f1dc690b769a4a59b6cafd6dc3cbcdc0', 'default', NULL, '2024-06-12 01:45:10', '9', '2023-11-16 17:45:10', '9', '2023-11-16 17:45:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3127, 9, 1, '', 'f57c2d2b96714633a7d0347e129bdc85', '8bccdc6cd6b345649f23319a000746c2', 'default', NULL, '2024-06-12 01:46:45', '9', '2023-11-16 17:46:45', '9', '2023-11-16 17:46:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3128, 9, 1, '', '647cb07540d8419eb4768ca3898a6d86', '48f3a209b15243808bf0b395fbd64816', 'default', NULL, '2024-06-12 01:47:37', '9', '2023-11-16 17:47:37', '9', '2023-11-16 17:47:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3129, 9, 1, '', 'b281cec17dc74b6d8deb4cba45999fcd', '79b5a4e85aaa41e6a95e504cc1f3c2b4', 'default', NULL, '2024-06-12 01:47:52', '9', '2023-11-16 17:47:52', '9', '2023-11-16 17:47:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3130, 9, 1, '', '1ff8da0b90354f05a75fb94e29aa8d0d', '36d21612539e4d829d273da23edd230a', 'default', NULL, '2024-06-12 01:48:33', '9', '2023-11-16 17:48:33', '9', '2023-11-16 17:48:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3131, 9, 1, '', '453ab3e2d203411e9fa82bda1168c440', '0638e73a9b2b47d9b6038220419d13d7', 'default', NULL, '2024-06-12 01:53:39', '9', '2023-11-16 17:53:39', '9', '2023-11-16 17:53:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3132, 9, 1, '', 'd4b21993d95b4aa3885ede14c573e2d7', '00d9c74790a24824ae97476b3312212b', 'default', NULL, '2024-06-12 02:08:13', '9', '2023-11-16 18:08:13', '9', '2023-11-16 18:08:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3133, 9, 1, '', 'ef1c1da7a94c4100bec88cee2e071d0c', 'f85804c20a65418ead4db53ce8d051c9', 'default', NULL, '2024-06-12 02:08:43', '9', '2023-11-16 18:08:43', '9', '2023-11-16 18:08:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3134, 9, 1, '', 'ef6e63bdb96d4896ba1688aff1b5d518', 'a4e628b38dca434c96f1d770122fc2b9', 'default', NULL, '2024-06-12 02:09:34', '9', '2023-11-16 18:09:34', '9', '2023-11-16 18:09:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3135, 9, 1, '', '87f351a7a1d548eb9b00cf92488f1e49', 'f433bc7fb6a0492e8023d55ac22bcb19', 'default', NULL, '2024-06-12 02:11:37', '9', '2023-11-16 18:11:37', '9', '2023-11-16 18:11:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3136, 9, 1, '', '3ae406d542ec4f48a9851d2c76980365', 'd36364c13e294bac9d756dcc3b4db439', 'default', NULL, '2024-06-12 02:12:54', '9', '2023-11-16 18:12:54', '9', '2023-11-16 18:12:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3137, 9, 1, '', 'b99c2ba55ad04d3d985f16ede9ed3f0c', 'c4bea860a5e64d0a8d550d83b6709b0b', 'default', NULL, '2024-06-12 02:15:22', '9', '2023-11-16 18:15:22', '9', '2023-11-16 18:15:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3138, 9, 1, '', 'e4a0c594ffe74b8a87671ac452170eca', 'b7b1d24ffdc8459ea75065329ef83e71', 'default', NULL, '2024-06-12 02:21:09', '9', '2023-11-16 18:21:09', '9', '2023-11-16 18:21:09', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3139, 9, 1, '', 'f571bade253c4a7696153d53e0d21f5e', '8f805df1756e4e739cdaa6f99adc0ec4', 'default', NULL, '2024-06-12 02:22:59', '9', '2023-11-16 18:22:59', '9', '2023-11-16 18:22:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3140, 9, 1, '', '424fcf57f79c44c689dbf1c2b529c077', '7bc333bf707a42bb9ad5d7e0c1c136fb', 'default', NULL, '2024-06-12 02:23:33', '9', '2023-11-16 18:23:33', '9', '2023-11-16 18:23:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3141, 9, 1, '', '1e7ad7210468417881638a3baaf28ffa', 'b2c25aa9fa584417a107835a459ae6a6', 'default', NULL, '2024-06-12 02:30:10', '9', '2023-11-16 18:30:10', '9', '2023-11-16 18:30:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3142, 9, 1, '', '17429968f062434e82a68df2ffcaca82', '3167f9fd2d904fe3a7509594ba4a6285', 'default', NULL, '2024-06-12 02:33:46', '9', '2023-11-16 18:33:46', '9', '2023-11-16 18:33:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3143, 9, 1, '', '839375450b4f47ccad8713e650ecfc1d', '4235c09176624f45ad5d430df142e35c', 'default', NULL, '2024-06-12 02:41:34', '9', '2023-11-16 18:41:34', '9', '2023-11-16 18:41:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3144, 9, 1, '', '5caf4abf7db548ba98a721d356f7d176', '129592e6a6e043fa9672dd370e83fe41', 'default', NULL, '2024-06-12 02:43:52', '9', '2023-11-16 18:43:52', '9', '2023-11-16 18:43:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3145, 9, 1, '', '99d177532b07485994cdab2987231d47', '115e8209b8e049f6a908226bf48a954a', 'default', NULL, '2024-06-12 02:45:10', '9', '2023-11-16 18:45:10', '9', '2023-11-16 18:45:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3146, 9, 1, '', '2b9dcd4ac4414df184245a5abb38e450', '0f234dc57c7a4cb7bc81cb54acb3dc88', 'default', NULL, '2024-06-12 02:46:05', '9', '2023-11-16 18:46:05', '9', '2023-11-16 18:46:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3147, 9, 1, '', 'c25cb790d9c247c4a59a1f1dd3c46875', '86a3defa710648be970527bc0b7cceae', 'default', NULL, '2024-06-12 02:46:34', '9', '2023-11-16 18:46:34', '9', '2023-11-16 18:46:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3148, 9, 1, '', 'f41469281dc349708ab7025592d0951c', '974ee05b7b5248db801bcc0892c1648c', 'default', NULL, '2024-06-12 17:40:05', '9', '2023-11-17 09:40:05', '9', '2023-11-17 09:40:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3149, 9, 1, '', '2266f1ffecc94f3f972cdbf3d7e75a2a', '16f9563ce0d846d7a3ee33480a2fe0e6', 'default', NULL, '2024-06-12 17:46:18', '9', '2023-11-17 09:46:18', '9', '2023-11-17 09:46:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3150, 9, 1, '', 'a877890559a74ceda088c15c32e81239', '63ee0439cf9f49b0859508c76eba8873', 'default', NULL, '2024-06-12 18:05:33', '9', '2023-11-17 10:05:33', '9', '2023-11-17 10:05:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3151, 9, 1, '', 'd69deb28a8b447919c2108b22d833cc3', '41ccb1ef7e47471cbe63a900b1dd6b45', 'default', NULL, '2024-06-12 18:08:27', '9', '2023-11-17 10:08:27', '9', '2023-11-17 10:08:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3152, 9, 1, '', 'a67f096066464451994199072e7def2b', 'dd6ab9b599124719b942ae9beebd9bc2', 'default', NULL, '2024-06-12 18:13:33', '9', '2023-11-17 10:13:33', '9', '2023-11-17 10:13:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3153, 9, 1, '', '05164511e99d401c814c6856d1bc9094', 'e920dd5583ec466b9d4a1a005dbf266a', 'default', NULL, '2024-06-12 18:17:20', '9', '2023-11-17 10:17:20', '9', '2023-11-17 10:17:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3154, 9, 1, '', 'befff71f02d74e9e96bf981e7d459470', '9540fd0478c24f02bdd94999b66f68bf', 'default', NULL, '2024-06-12 18:20:29', '9', '2023-11-17 10:20:29', '9', '2023-11-17 10:20:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3155, 9, 1, '', '9ebb6db00b484e2396d11354c5835859', '22c7615470ee4dd89d333fa1d0a22525', 'default', NULL, '2024-06-12 18:21:08', '9', '2023-11-17 10:21:08', '9', '2023-11-17 10:21:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3156, 9, 1, '', '74030d51ed9948bbba81c02843e85608', 'acd96a5bfeed423e9315893a58241586', 'default', NULL, '2024-06-12 18:21:51', '9', '2023-11-17 10:21:51', '9', '2023-11-17 10:21:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3157, 9, 1, '', 'd90a57da27cf4f91a33b0c47b6a4e1b7', 'def41313ac274c359faa0cafc7529fde', 'default', NULL, '2024-06-12 18:31:18', '9', '2023-11-17 10:31:18', '9', '2023-11-17 10:31:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3158, 9, 1, '', '616403dedc28411ca333b64ef5121cf2', '2ec1f8b87bcf471e9e8e54b62eb4d6e3', 'default', NULL, '2024-06-12 18:35:11', '9', '2023-11-17 10:35:11', '9', '2023-11-17 10:35:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3159, 9, 1, '', '9e1dd8c50aa44f498f2bc61ebbfd89da', '7697108161ee43e69740a0e8b1f84df9', 'default', NULL, '2024-06-12 18:48:35', '9', '2023-11-17 10:48:35', '9', '2023-11-17 10:48:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3160, 9, 1, '', '22b17a635e2e470bbf96f3e806c167af', 'ba6d63b145b2432d877f3df643ea2818', 'default', NULL, '2024-06-12 18:51:05', '9', '2023-11-17 10:51:05', '9', '2023-11-17 10:51:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3161, 9, 1, '', '53b605d7f54f47b3a00d6ff5076d842c', '45833d23f4844c1486e59030d59614fe', 'default', NULL, '2024-06-12 18:54:48', '9', '2023-11-17 10:54:48', '9', '2023-11-17 10:54:48', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3162, 9, 1, '', '294488752f3a4bb6afcc00b9915c8ff1', '7db2c92f52f0487193e645a043663989', 'default', NULL, '2024-06-12 18:55:10', '9', '2023-11-17 10:55:10', '9', '2023-11-17 10:55:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3163, 9, 1, '', '811443cbae9d48d5bc45e8a9c72c0323', 'd7de2bdff83845f6b63bc190a31886d9', 'default', NULL, '2024-06-12 19:16:25', '9', '2023-11-17 11:16:25', '9', '2023-11-17 11:16:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3164, 9, 1, '', '4e4b3f1c9e524fe4abcd8747a9e36cfd', 'f5c2629f75e74202b7d2cb2bee8e5e07', 'default', NULL, '2024-06-12 19:17:20', '9', '2023-11-17 11:17:20', '9', '2023-11-17 11:17:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3165, 9, 1, '', 'ac62f9dc85144fc088c70269f8188a77', 'bbfc0bdfa9af4e8888b3d0f4f30332cc', 'default', NULL, '2024-06-12 19:25:04', '9', '2023-11-17 11:25:04', '9', '2023-11-17 11:25:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3166, 9, 1, '', 'ea75aa102fd048b8a94bad034afcac30', '782f037c1b784c4980935850b503bcba', 'default', NULL, '2024-06-12 19:27:47', '9', '2023-11-17 11:27:47', '9', '2023-11-17 11:27:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3167, 9, 1, '', '1ee936efd5324b92a39824fa73e6e60a', '6154b1c3449948858ad5022ae06ebcd1', 'default', NULL, '2024-06-12 19:46:02', '9', '2023-11-17 11:46:02', '9', '2023-11-17 11:46:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3168, 9, 1, '', '266616df5fe74c0b87f0a9fc5a0b7d29', '59fd279e83e14808b2722762b3afcd6c', 'default', NULL, '2024-06-12 19:46:47', '9', '2023-11-17 11:46:47', '9', '2023-11-17 11:46:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3169, 9, 1, '', '2cc44f39b35742afbd7c561bea871ad2', '8538749c7d65422f92cdb873d0c5f4ab', 'default', NULL, '2024-06-12 19:48:46', '9', '2023-11-17 11:48:46', '9', '2023-11-17 11:48:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3170, 9, 1, '', '1a4b350e5e474d8c88d3656512bcb1a5', 'c0105aa624854caebdffbc643f1e7f80', 'default', NULL, '2024-06-12 19:57:14', '9', '2023-11-17 11:57:14', '9', '2023-11-17 11:57:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3171, 9, 1, '', '07a2df5b6a2c41628bbd10952674169f', 'c586331b5c4746f488a919714df733d8', 'default', NULL, '2024-06-16 17:50:38', '9', '2023-11-21 09:50:38', '9', '2023-11-21 09:50:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3172, 1, 2, '', 'c12f6e875f9442c8acfe0ffe460d11b1', 'bd2c11f732cf4cd68870ebe2919b8376', 'default', NULL, '2024-06-16 17:52:47', NULL, '2023-11-21 09:52:47', NULL, '2023-12-08 09:43:09', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3173, 9, 1, '', '27cfdffdc8914c4c83903cc15482e4ff', 'bf22b3f8461c4747b8f84a9ed8ddf519', 'default', NULL, '2024-06-16 18:00:53', '9', '2023-11-21 10:00:53', '9', '2023-11-21 10:00:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3174, 9, 1, '', '29db6b758d3f41018ee40f1967d379d7', '4de8d48c1e564164b783405ed06c8bf8', 'default', NULL, '2024-06-16 18:04:30', '9', '2023-11-21 10:04:30', '9', '2023-11-21 10:04:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3175, 9, 1, '', '97ce4cfb397a4bc7b1c2e8d4e1e3e178', '3d6010560c35449ab9130b164564a64e', 'default', NULL, '2024-06-17 00:44:47', '9', '2023-11-21 16:44:47', '9', '2023-11-21 16:44:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3176, 9, 1, '', 'd60f14e061484314b178d724d3ee40ec', '671a1360424f4577a52392ffe8a1a4bb', 'default', NULL, '2024-06-17 17:48:53', '9', '2023-11-22 09:48:53', '9', '2023-11-22 09:48:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3177, 9, 1, '', 'e4bfe9af7d2245fe94118c165fa9c4c3', 'b95fe0d5f8db48c680716e5873a794cb', 'default', NULL, '2024-06-17 18:21:55', '9', '2023-11-22 10:21:55', '9', '2023-11-22 10:21:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3178, 9, 1, '', 'b3d8d708f438475989e978809340bbeb', 'd03992ba249345ea88f10617e609ef16', 'default', NULL, '2024-06-17 18:23:12', '9', '2023-11-22 10:23:12', '9', '2023-11-22 10:23:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3179, 9, 1, '', '02ce9ef3b6be481e8272166b05c2dca4', '95b203461b134439ae6bf39b57ed7d75', 'default', NULL, '2024-06-17 18:29:13', '9', '2023-11-22 10:29:13', '9', '2023-11-22 10:29:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3180, 9, 1, '', 'ef786d295f104c48be005a1c549a5aad', '42b58e1aeb9d402ca03ff0cad5200503', 'default', NULL, '2024-06-17 18:30:57', '9', '2023-11-22 10:30:57', '9', '2023-11-22 10:30:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3181, 9, 1, '', '9a0460fa8ae6424a979724b135952d9e', 'a27c08197e7a4d16b581adab16a094a8', 'default', NULL, '2024-06-17 18:38:44', '9', '2023-11-22 10:38:44', '9', '2023-11-22 10:38:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3182, 9, 1, '', 'a648f789ea65478da5b8d42d69f3f56f', '9f186343483545c5ad86b7fbe2d9e57f', 'default', NULL, '2024-06-17 18:44:08', '9', '2023-11-22 10:44:08', '9', '2023-11-22 10:44:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3183, 9, 1, '', 'a08fb7d8c78d4767ab3cf56dece6140d', '9b2f941adcff455c9a5216ff17cb378f', 'default', NULL, '2024-06-17 18:52:50', '9', '2023-11-22 10:52:50', '9', '2023-11-22 10:52:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3184, 9, 1, '', '76dfba4ac8c34533957446dbc73c0154', '98c3a63139a84f52b1cf4f17a615f720', 'default', NULL, '2024-06-17 18:59:18', '9', '2023-11-22 10:59:18', '9', '2023-11-22 10:59:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3185, 9, 1, '', 'b9e349894938448f91ea44e4dea11dde', '2f5ff83c8d4444a3a9e1dc45bc7d73dc', 'default', NULL, '2024-06-17 19:13:53', '9', '2023-11-22 11:13:53', '9', '2023-11-22 11:13:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3186, 9, 1, '', 'd167021ebbae46a98fb3d57d3578d427', '30ab8a9bd7aa4f1382deaaca889cffc3', 'default', NULL, '2024-06-17 19:17:00', '9', '2023-11-22 11:17:00', '9', '2023-11-22 11:17:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3187, 9, 1, '', '0d20f27f460b4c5da996e5d880f689f2', 'e31455934c464707af3db61113d5fc6c', 'default', NULL, '2024-06-17 19:17:26', '9', '2023-11-22 11:17:26', '9', '2023-11-22 11:17:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3188, 9, 1, '', 'fafe73db13614705ae3b1f0715302135', '7b785fd245e0400ba9fe6aaaadcbdfbf', 'default', NULL, '2024-06-17 19:17:45', '9', '2023-11-22 11:17:45', '9', '2023-11-22 11:17:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3189, 9, 1, '', '3136d26ade72439cbc0f806e80eaa903', '9510de5f65994a8d8b64f352bdaae720', 'default', NULL, '2024-06-17 19:18:08', '9', '2023-11-22 11:18:08', '9', '2023-11-22 11:18:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3190, 9, 1, '', 'a51de072b8ce47b8a5d39c7665e32840', '657b49e8c7b34429a27ef6ab64f579fd', 'default', NULL, '2024-06-17 23:06:24', '9', '2023-11-22 15:06:24', '9', '2023-11-22 15:06:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3191, 9, 1, '', '32a17153e06b4e81926ed57d802e63b3', 'e738bec9bc0b4944851b24f10ade7f1e', 'default', NULL, '2024-06-17 23:08:53', '9', '2023-11-22 15:08:53', '9', '2023-11-22 15:08:53', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3192, 9, 1, '', '84035b7f7602492fac79664d37da545e', 'ffe1d26d2f334a56858aa64a54162723', 'default', NULL, '2024-06-17 23:09:14', '9', '2023-11-22 15:09:14', '9', '2023-11-22 15:09:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3193, 9, 1, '', 'a77944e0ddde40c1a3c014187a65d68e', '5d2d1d37cb6b49f29d2f142c48a1dd24', 'default', NULL, '2024-06-17 23:09:33', '9', '2023-11-22 15:09:33', '9', '2023-11-22 15:09:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3194, 9, 1, '', '53f931f6aaa74253b0053f9737092125', '2dbbd27d59904de9ae85da873c168b52', 'default', NULL, '2024-06-17 23:09:46', '9', '2023-11-22 15:09:46', '9', '2023-11-22 15:09:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3195, 9, 1, '', 'e908cca42a33483c994da75b3478321c', 'e955c000bb4d47359ec7571671f3c611', 'default', NULL, '2024-06-17 23:10:05', '9', '2023-11-22 15:10:05', '9', '2023-11-22 15:10:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3196, 9, 1, '', '7d49adb64cb840c9ba128eb746c71356', '2326876e95cf41eea66477c65039b985', 'default', NULL, '2024-06-17 23:10:56', '9', '2023-11-22 15:10:56', '9', '2023-11-22 15:10:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3197, 9, 1, '', '70742eaf04c2428db454c68b30d4c407', 'cafe2bb204564ce39f03ed3f49d3050a', 'default', NULL, '2024-06-17 23:11:03', '9', '2023-11-22 15:11:03', '9', '2023-11-22 15:11:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3198, 9, 1, '', '00bb4114af314052a4125b30e8e1d069', '99d25a2a410c44d082f3796802235c24', 'default', NULL, '2024-06-17 23:11:11', '9', '2023-11-22 15:11:11', '9', '2023-11-22 15:11:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3199, 9, 1, '', '06d30af9caa14516a6a8053e3d2ba703', '6ef23aa841f64b30aac0ead46f38189e', 'default', NULL, '2024-06-17 23:11:29', '9', '2023-11-22 15:11:29', '9', '2023-11-22 15:11:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3200, 9, 1, '', '0fa3f09ae9914046b6debd8c7ddcf0ba', 'a04c07508e0c4c49a04f679aa8821bc4', 'default', NULL, '2024-06-17 23:11:43', '9', '2023-11-22 15:11:43', '9', '2023-11-22 15:11:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3201, 9, 1, '', 'df7fdceace4e4f248c651827a17286de', 'e61759d00ce64c3a99f891cddefa9f35', 'default', NULL, '2024-06-17 23:11:54', '9', '2023-11-22 15:11:54', '9', '2023-11-22 15:11:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3202, 9, 1, '', '7d5f49356b9f4a6c9e1d45757b8fb9f6', 'ce3d3d75401441efafe99af0d246ae4c', 'default', NULL, '2024-06-17 23:12:11', '9', '2023-11-22 15:12:11', '9', '2023-11-22 15:12:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3203, 9, 1, '', 'af9632de40e0465cb7b154a3677d1e7d', 'a4244dd6bdb14c46ae7a6fafa316aed1', 'default', NULL, '2024-06-17 23:12:18', '9', '2023-11-22 15:12:18', '9', '2023-11-22 15:12:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3204, 9, 1, '', 'b2f31e4d76e24357a73bb6b9987685a2', 'a1f2e06120414723b568c6dd577ccfd9', 'default', NULL, '2024-06-17 23:16:10', '9', '2023-11-22 15:16:10', '9', '2023-11-22 15:16:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3205, 9, 1, '', '05bda5a3ec3a4eb7812b8022eab7b647', 'fce33f4c60874dc7b1accbf8718ebf4b', 'default', NULL, '2024-06-17 23:19:59', '9', '2023-11-22 15:19:59', '9', '2023-11-22 15:19:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3206, 9, 1, '', '2f96113f39f543b69150f819ade9b9a7', 'fdff53c17faf41be95460d1eb858c83f', 'default', NULL, '2024-06-17 23:20:31', '9', '2023-11-22 15:20:31', '9', '2023-11-22 15:20:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3207, 9, 1, '', '2571e63ff7594de7997e4d73d51c3608', '38c90a0281574e53bc1a39311c0cef3b', 'default', NULL, '2024-06-18 17:18:39', '9', '2023-11-23 09:18:39', '9', '2023-11-23 09:18:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3208, 9, 1, '', '3f947a1beadd474f917d00df1085dc23', '9b9b6b75f9c84ea68cad75fccf4fb37c', 'default', NULL, '2024-06-21 18:00:08', NULL, '2023-11-26 10:00:08', NULL, '2023-11-26 10:00:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3209, 9, 1, '', '0385149be3424359a21dc51ca1dcdb40', '0fcf2041c0c6424f9b5db1617180b3d6', 'default', NULL, '2024-06-21 19:04:56', '9', '2023-11-26 11:04:56', '9', '2023-11-26 11:04:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3210, 9, 1, '', '21d03da2a8324932a13fe1b1061da2b7', '8f6a8fd43b94480c86f3a87341b878c6', 'default', NULL, '2024-06-21 19:07:44', '9', '2023-11-26 11:07:44', '9', '2023-11-26 11:07:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3211, 9, 1, '', '7acd83368f0c426891c59253331ada60', '8bc8d98e9f804b5e94a2d48a9b7c20f0', 'default', NULL, '2024-06-21 19:12:27', '9', '2023-11-26 11:12:27', '9', '2023-11-26 11:12:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3212, 9, 1, '', '956e64dd7e4643bcb639dfc755d330de', '35c0e75d74b84c2cb6fe55555e07d531', 'default', NULL, '2024-06-21 19:12:43', '9', '2023-11-26 11:12:43', '9', '2023-11-26 11:12:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3213, 9, 1, '', 'f2d19e51e6b24fff8aee0042f9dbc049', '445543a1b6264547a9e5b73670c03523', 'default', NULL, '2024-06-21 19:18:01', '9', '2023-11-26 11:18:01', '9', '2023-11-26 11:18:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3214, 9, 1, '', '47653af55b14488fa08faaa18f576ddb', 'cc6fc8eeafc44dee98be6bfdcc702f47', 'default', NULL, '2024-06-21 19:18:38', '9', '2023-11-26 11:18:38', '9', '2023-11-26 11:18:38', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3215, 9, 1, '', '744ad351cafc431e99cad13ee011b700', '4b10e73b766c41efb4f995b18b0a3d7d', 'default', NULL, '2024-06-21 19:19:56', '9', '2023-11-26 11:19:56', '9', '2023-11-26 11:19:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3216, 9, 1, '', '7633ecb24c364e36ac42a92081efac5f', 'f9321c9a61c94711a430dffdc874beb9', 'default', NULL, '2024-06-21 19:22:28', '9', '2023-11-26 11:22:28', '9', '2023-11-26 11:22:28', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3217, 9, 1, '', 'fa708c4290ed47729356b8cc4d983ef3', 'f9a225c6e5904168bbaa195ccf9b4d3f', 'default', NULL, '2024-06-21 19:31:27', '9', '2023-11-26 11:31:27', '9', '2023-11-26 11:31:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3218, 9, 1, '', '29dd1af40c04492eaeb0a23dc1d16573', '82369c02fc44423692d37cdb8a3eb04f', 'default', NULL, '2024-06-21 19:31:42', '9', '2023-11-26 11:31:42', '9', '2023-11-26 11:31:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3219, 9, 1, '', '7668b5f562cb46108c37517ea36a535e', '3958d310b2164d86b316e87355cd9c60', 'default', NULL, '2024-06-21 19:31:51', '9', '2023-11-26 11:31:51', '9', '2023-11-26 11:31:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3220, 9, 1, '', '908b27c7ad1f4ecc9d92e546b093b788', '8a7437690b084060b31eecc35ac2f98c', 'default', NULL, '2024-06-21 19:32:02', '9', '2023-11-26 11:32:02', '9', '2023-11-26 11:32:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3221, 9, 1, '', 'ba6ae923c440453cb773559eef117748', '9e597be03073465aaad59337886445d8', 'default', NULL, '2024-06-21 19:32:10', '9', '2023-11-26 11:32:10', '9', '2023-11-26 11:32:10', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3222, 9, 1, '', 'a2ce0d9784b14d11bd29bb6e8776a155', 'a623400fbc754854a6717734abeceae5', 'default', NULL, '2024-06-21 19:33:54', '9', '2023-11-26 11:33:54', '9', '2023-11-26 11:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3223, 9, 1, '', 'f063ad58a2d443cd8f39045756029176', 'a9d6103ba059419c8632a65c0800bcb6', 'default', NULL, '2024-06-21 19:34:07', '9', '2023-11-26 11:34:07', '9', '2023-11-26 11:34:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3224, 9, 1, '', '576c4d06dd7c452586c428c711f444e1', '64f6fb7cbb774277967bac0741096f14', 'default', NULL, '2024-06-21 19:34:15', '9', '2023-11-26 11:34:15', '9', '2023-11-26 11:34:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3225, 9, 1, '', '61fd93c3ec984f13ad215a5b7d74215a', 'a06cdf234a564da3812f1f70b74f3a58', 'default', NULL, '2024-06-21 19:39:42', '9', '2023-11-26 11:39:42', '9', '2023-11-26 11:39:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3226, 9, 1, '', 'feff150cd29946cc9e36d1014bbe7c9d', 'ddf7384ee0784968b62a607426f0bd9b', 'default', NULL, '2024-06-21 19:39:52', '9', '2023-11-26 11:39:52', '9', '2023-11-26 11:39:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3227, 9, 1, '', 'b0fa4e936495401d9159348933c70c30', 'c281bca0b5c54bb6aca0d09a4dbf8247', 'default', NULL, '2024-06-21 19:47:22', '9', '2023-11-26 11:47:22', '9', '2023-11-26 11:47:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3228, 9, 1, '', '00cc9a84ab3c47e082aeaae5e76cf7a3', 'c5ba5cd4edf54ee092dfc69d9c8b6a96', 'default', NULL, '2024-06-21 20:01:54', '9', '2023-11-26 12:01:54', '9', '2023-11-26 12:01:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3229, 9, 1, '', 'df61fbdea04b4c26b4f1833dfb0c9824', '3da08ea8ba884488b23e87297a52c978', 'default', NULL, '2024-06-21 20:05:27', '9', '2023-11-26 12:05:27', '9', '2023-11-26 12:05:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3230, 9, 1, '', '4e719274cd5245f8a7ce119e6d27f678', '386c171c612e4211a87a3a1fe5c6d089', 'default', NULL, '2024-06-21 20:05:56', '9', '2023-11-26 12:05:56', '9', '2023-11-26 12:05:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3231, 9, 1, '', '49fc6e4d434e4084874158ead985b02f', 'c2674cd472f542e5a570157fabf597d2', 'default', NULL, '2024-06-21 20:14:18', '9', '2023-11-26 12:14:18', '9', '2023-11-26 12:14:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3232, 9, 1, '', 'de44f24fc8b048f78149635d9c5a5ab1', 'c036530276ca48b7a244ab76dd3a4344', 'default', NULL, '2024-06-21 20:14:26', '9', '2023-11-26 12:14:26', '9', '2023-11-26 12:14:26', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3233, 9, 1, '', '1eb3a623473f41b1a0b4d2f3bf58703a', 'be349c9f59834b08864d06a92693805d', 'default', NULL, '2024-06-21 20:15:04', '9', '2023-11-26 12:15:04', '9', '2023-11-26 12:15:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3234, 9, 1, '', '9369bfd0adf3477b9db7ace1fa194d10', '1fa7ad6ca8f44a0ca23c34b8a4d51106', 'default', NULL, '2024-06-21 20:16:47', '9', '2023-11-26 12:16:47', '9', '2023-11-26 12:16:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3235, 9, 1, '', '6bc4e51f657f4ea696c2a5b605564b9a', 'a08a5af90cd04a8a84d6b208975ba131', 'default', NULL, '2024-06-21 20:25:03', '9', '2023-11-26 12:25:03', '9', '2023-11-26 12:25:03', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3236, 9, 1, '', '17428cbb87ee42f7add84d5af923a4ec', 'a58259868c2040918fa57c54a62168c5', 'default', NULL, '2024-06-21 20:26:19', '9', '2023-11-26 12:26:19', '9', '2023-11-26 12:26:19', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3237, 9, 1, '', '9de302f133d64acab42ffd25b6f73157', 'd69b39cddb4d48a9b62450f856db5874', 'default', NULL, '2024-06-21 23:58:43', '9', '2023-11-26 15:58:43', '9', '2023-11-26 15:58:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3238, 9, 1, '', 'e8288744092146e59bdcd17aba3f79d3', '3a3039d780a4470598535bf6fc275eeb', 'default', NULL, '2024-06-22 00:46:58', '9', '2023-11-26 16:46:58', '9', '2023-11-26 16:46:58', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3239, 9, 1, '', '934ea53eb9e7479d9ec3f49ff3d4d657', 'f16d77eb955b450fa9e6f9540edbbbf4', 'default', NULL, '2024-06-22 04:57:30', '9', '2023-11-26 20:57:30', '9', '2023-11-26 20:57:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3240, 9, 1, '', 'cfa66943fb0445d6841a968f5146186c', '459ed014b85d4f4dacfe6fc680c0da6e', 'default', NULL, '2024-06-22 05:07:22', '9', '2023-11-26 21:07:22', '9', '2023-11-26 21:07:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3241, 9, 1, '', '633b25c65e0d4b919f81ef983dddf4d2', 'e5c93aa610034fa98e5cdab914db0d2f', 'default', NULL, '2024-06-22 05:08:17', '9', '2023-11-26 21:08:17', '9', '2023-11-26 21:08:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3242, 9, 1, '', '219283e21384459baa48859b62a8f9fb', '87a5a724c38e4dcb862c0b354b385753', 'default', NULL, '2024-06-22 05:08:30', '9', '2023-11-26 21:08:30', '9', '2023-11-26 21:08:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3243, 9, 1, '', 'fdb097d3872b42248a7b30dc17dd256d', '3f345cc82aff486a85844b9de7e2f716', 'default', NULL, '2024-06-22 05:08:40', '9', '2023-11-26 21:08:40', '9', '2023-11-26 21:08:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3244, 9, 1, '', '6c0032f11f1a4d729369431878ca7e92', '6ec781bcc9e047959cd352012e694dbd', 'default', NULL, '2024-06-22 05:08:50', '9', '2023-11-26 21:08:50', '9', '2023-11-26 21:08:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3245, 9, 1, '', '38de59f5fdd745489e552d2d4adcd335', 'af3cb24a306845cdbf931d7a4b0a6c2b', 'default', NULL, '2024-06-22 05:12:23', '9', '2023-11-26 21:12:23', '9', '2023-11-26 21:12:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3246, 9, 1, '', '348e6a943c21465b8ec97eb8443423e5', 'cbe367658fdf4d81a92910878d13b615', 'default', NULL, '2024-06-22 05:12:35', '9', '2023-11-26 21:12:35', '9', '2023-11-26 21:12:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3247, 9, 1, '', 'abdd7d565f5d485f934ed0c3f0ce184b', '5a2811a408db4d368cdb3f9aee8fd13d', 'default', NULL, '2024-06-22 05:12:45', '9', '2023-11-26 21:12:45', '9', '2023-11-26 21:12:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3248, 9, 1, '', '31e46bee447d4c45bf25b0c663a6b317', '32f91f49da61475e814fae14bf6c8d61', 'default', NULL, '2024-06-22 05:13:07', '9', '2023-11-26 21:13:07', '9', '2023-11-26 21:13:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3249, 9, 1, '', '57baa7b27c1b40dbaa633e043dee61f7', 'd935e65b987b43bd84d717b22047f159', 'default', NULL, '2024-06-22 05:17:55', '9', '2023-11-26 21:17:55', '9', '2023-11-26 21:17:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3250, 9, 1, '', 'fed79e43ad5d4ea08b7ecca4dae28966', 'cd8e3609505444f7b4589d2be7a652b2', 'default', NULL, '2024-06-22 05:21:16', '9', '2023-11-26 21:21:16', '9', '2023-11-26 21:21:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3251, 9, 1, '', '95172a0ca2b44c97b096b110ef6b2db9', '7b6d59539bca4fe7993f5ea4dff11313', 'default', NULL, '2024-06-22 05:23:11', '9', '2023-11-26 21:23:11', '9', '2023-11-26 21:23:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3252, 9, 1, '', '1b5ffe182fbc4b85be33a58ebb02d66e', '5b6bd15a39824c928b53440d4e838eef', 'default', NULL, '2024-06-22 05:23:37', '9', '2023-11-26 21:23:37', '9', '2023-11-26 21:23:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3253, 9, 1, '', 'eb7c479a065a4942848c0dfc74d20355', 'e499bbc991ed41cca954f69852f5ad2f', 'default', NULL, '2024-06-22 05:23:50', '9', '2023-11-26 21:23:50', '9', '2023-11-26 21:23:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3254, 9, 1, '', '9c3ab03be7c84abc9abbb40b5b3daf3b', '6b3673fd304d445aab78265edceab0c5', 'default', NULL, '2024-06-22 05:24:06', '9', '2023-11-26 21:24:06', '9', '2023-11-26 21:24:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3255, 9, 1, '', 'e8a6a32cc21d417d9d516f88280bb98b', '9287aaa24edd4f3c86a313a13bd558f7', 'default', NULL, '2024-06-22 05:24:13', '9', '2023-11-26 21:24:13', '9', '2023-11-26 21:24:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3256, 9, 1, '', '802ae557fe454d9a8603123740baec0e', '004f09d6f1b249b58de9fe507d165a2f', 'default', NULL, '2024-06-22 05:25:17', '9', '2023-11-26 21:25:17', '9', '2023-11-26 21:25:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3257, 9, 1, '', 'af418f8cdd594cb7bafd460cb7860771', '33939242ddc547aba158b6a1e1f0f895', 'default', NULL, '2024-06-22 05:25:29', '9', '2023-11-26 21:25:29', '9', '2023-11-26 21:25:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3258, 9, 1, '', 'd621fc01abe84b82b6e791e09f1fb71d', '205df0b2f2ab4fbb9d84c4fb062809cc', 'default', NULL, '2024-06-22 05:25:42', '9', '2023-11-26 21:25:42', '9', '2023-11-26 21:25:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3259, 9, 1, '', '80539adf153e4a908ef8b56601f8ceb1', '2dfdd9488054431f905dd4fc7cb394fc', 'default', NULL, '2024-06-22 05:30:51', '9', '2023-11-26 21:30:51', '9', '2023-11-26 21:30:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3260, 9, 1, '', 'fd0de959a57941beb816d612c74bb0da', '0546ee00d0b942a0a08b81a30d87f705', 'default', NULL, '2024-06-22 05:31:57', '9', '2023-11-26 21:31:57', '9', '2023-11-26 21:31:57', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3261, 9, 1, '', 'a539873a68b942309ad4b0723e7a5f99', '19b862d106824d89aeeeaf7e16884e42', 'default', NULL, '2024-06-22 05:33:54', '9', '2023-11-26 21:33:54', '9', '2023-11-26 21:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3262, 9, 1, '', 'add39f76bca64b12a0bcae17c79d29c1', '74be86eb68f0464dbeb170f0272593da', 'default', NULL, '2024-06-22 05:34:15', '9', '2023-11-26 21:34:15', '9', '2023-11-26 21:34:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3263, 9, 1, '', '8cd605ce09744b40bf77afc59175370b', '3bac476e36574894b946db5c112734f0', 'default', NULL, '2024-06-22 05:36:01', '9', '2023-11-26 21:36:01', '9', '2023-11-26 21:36:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3264, 9, 1, '', '87587f17e2f84267b47368b954560830', '463c8fd8d9b34c6b8a786f8eeb656e79', 'default', NULL, '2024-06-22 05:36:11', '9', '2023-11-26 21:36:11', '9', '2023-11-26 21:36:11', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3265, 9, 1, '', '8b52d28706f04205939fee0dcc3a0247', 'a12dd5a723f24432aff4951fcefca288', 'default', NULL, '2024-06-22 05:36:33', '9', '2023-11-26 21:36:33', '9', '2023-11-26 21:36:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3266, 9, 1, '', 'fc7bc6e99d924cd996ad6f547508375f', 'b92971ebb3c54c9cacbeb961f59222d6', 'default', NULL, '2024-06-22 05:36:49', '9', '2023-11-26 21:36:49', '9', '2023-11-26 21:36:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3267, 9, 1, '', 'b114a366e074469d827acc3fd2110fb6', '8dc8b623b58f4d939fa510381addfe15', 'default', NULL, '2024-06-22 05:36:59', '9', '2023-11-26 21:36:59', '9', '2023-11-26 21:36:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3268, 9, 1, '', 'cf6d7476a1b14f63ba389a2874adfedf', '9566f3db71ff4ee4b477afa5ff8ab383', 'default', NULL, '2024-06-22 05:41:30', '9', '2023-11-26 21:41:30', '9', '2023-11-26 21:41:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3269, 9, 1, '', '201c56fc91724a48a85cb694b19d5084', '2a8cffe8c45c4625893520a801bc4ebe', 'default', NULL, '2024-06-22 05:43:43', '9', '2023-11-26 21:43:43', '9', '2023-11-26 21:43:43', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3270, 9, 1, '', '1eef22c70b284bb8a3b82402d66248ed', '1ea01bf1b7e04d938fd7967abc62b8b3', 'default', NULL, '2024-06-22 05:45:14', '9', '2023-11-26 21:45:14', '9', '2023-11-26 21:45:14', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3271, 9, 1, '', '65f71f5d23324496bd10dde7186d28f2', 'ea3992b0d334494e891f337b599f8d7a', 'default', NULL, '2024-06-23 18:54:51', '9', '2023-11-28 10:54:51', '9', '2023-11-28 10:54:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3272, 9, 1, '', 'fa3e648408184fe7a5e0c05e941d5793', 'e09231db677d4245a95ab863e3de7bd9', 'default', NULL, '2024-06-23 18:55:04', '9', '2023-11-28 10:55:04', '9', '2023-11-28 10:55:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3273, 9, 1, '', '0fdef1caf16f418f870911029ddd7396', '129b24bf4b1e4a548097dd04e58c0746', 'default', NULL, '2024-06-23 19:01:41', '9', '2023-11-28 11:01:41', '9', '2023-11-28 11:01:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3274, 9, 1, '', '827233aa59d7497daa30577ae32cb013', 'bee4751bb7f146419a1968b968ffb370', 'default', NULL, '2024-06-23 19:05:08', '9', '2023-11-28 11:05:08', '9', '2023-11-28 11:05:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3275, 9, 1, '', '839a83bc34d44f4fa26c7eeeda100de0', '4cf48e2a22034a6782fd2b9dc22adee5', 'default', NULL, '2024-06-23 19:07:50', '9', '2023-11-28 11:07:50', '9', '2023-11-28 11:07:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3276, 9, 1, '', 'b2b8bcacb12c4afca35468ab68e4c6ba', '7f3abeeb420a4188a4e4ed1cdd2c1ea1', 'default', NULL, '2024-06-23 19:10:27', '9', '2023-11-28 11:10:27', '9', '2023-11-28 11:10:27', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3277, 9, 1, '', '8288b61f1afe49dcb3e2851078ccca22', '8c8ba0fc69724b5a941eaa1292911b77', 'default', NULL, '2024-06-23 19:15:59', '9', '2023-11-28 11:15:59', '9', '2023-11-28 11:15:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3278, 9, 1, '', '05e23b82b01348fc8777546dcf589f2c', 'c0138e81c4b746f2ba007a1b5612fb54', 'default', NULL, '2024-06-23 19:46:08', '9', '2023-11-28 11:46:08', '9', '2023-11-28 11:46:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3279, 9, 1, '', 'd936d7ff775b401bbaf20aa4a563580f', 'ce41c2378f614b1cb983d21bff360d70', 'default', NULL, '2024-06-23 19:59:35', '9', '2023-11-28 11:59:35', '9', '2023-11-28 11:59:35', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3280, 9, 1, '', '7125ca87dde640e5b3a658ef76d1ae3f', 'ed4a4747fe6f4de7a4885141ea2216f6', 'default', NULL, '2024-06-23 20:01:22', '9', '2023-11-28 12:01:22', '9', '2023-11-28 12:01:22', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3281, 9, 1, '', 'a287b5df9247439cbeb55b20cace4391', '1e78614506b143bfbd5eeb07c9409c19', 'default', NULL, '2024-06-24 22:05:20', '9', '2023-11-29 14:05:20', '9', '2023-11-29 14:05:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3282, 9, 1, '', '438bdc046e504b8f9b00cf037e59e6c9', '192978841d954716ab53ddc7f2af65ee', 'default', NULL, '2024-06-24 22:05:51', '9', '2023-11-29 14:05:51', '9', '2023-11-29 14:05:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3283, 9, 1, '', 'f9c95950787946bc90cba4906c7ba861', 'c4dcab837fb94f898de1bea496adbcbb', 'default', NULL, '2024-06-24 22:06:55', '9', '2023-11-29 14:06:55', '9', '2023-11-29 14:06:55', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3284, 9, 1, '', 'd1c3f925282c44f5a10bbc6da10eb6a0', '8aa45676d99944658101d94913048e8e', 'default', NULL, '2024-06-24 22:08:02', '9', '2023-11-29 14:08:02', '9', '2023-11-29 14:08:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3285, 9, 1, '', 'a69b8be226f0473980f557d4ed9891b2', '43c0a66b28f54b1e9657536cd7668e9a', 'default', NULL, '2024-06-24 22:10:49', '9', '2023-11-29 14:10:49', '9', '2023-11-29 14:10:49', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3286, 9, 1, '', '734dd3ad2df243cca3e7ac7c248d9d17', '5f40c37fe2cd4948be50d4ea1e99b521', 'default', NULL, '2024-06-24 22:21:32', '9', '2023-11-29 14:21:32', '9', '2023-11-29 14:21:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3287, 9, 1, '', '3ff74a7255694f029185f1caf214bc18', 'baaff823c9c74d819af64e194f781a98', 'default', NULL, '2024-06-24 22:24:30', '9', '2023-11-29 14:24:30', '9', '2023-11-29 14:24:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3288, 9, 1, '', 'bc42732d11594cd3bdc09d2eb084b916', 'ebdf395d8c95426fa38fb26bb34e2a80', 'default', NULL, '2024-06-24 22:35:06', '9', '2023-11-29 14:35:06', '9', '2023-11-29 14:35:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3289, 9, 1, '', '63fcc0eb5ffc4df0ab21e63afc592a2f', 'a11d5791ab4c421b86236e43621c786e', 'default', NULL, '2024-06-24 22:48:04', '9', '2023-11-29 14:48:04', '9', '2023-11-29 14:48:04', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3290, 9, 1, '', '68d200475bdc4ab587d0e0347420bba6', 'f58da151614642f59484f75ea6feae91', 'default', NULL, '2024-06-24 22:49:36', '9', '2023-11-29 14:49:36', '9', '2023-11-29 14:49:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3291, 9, 1, '', '776c24dce87241e0b79435aef12dbb23', 'cf9047e5a7f34889b01549fed3fbc876', 'default', NULL, '2024-06-24 22:50:17', '9', '2023-11-29 14:50:17', '9', '2023-11-29 14:50:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3292, 9, 1, '', '91642e27158b4f5b9c24c8b755edb2cf', '75fb0568b8654efd8e0ed41e4df5e8b0', 'default', NULL, '2024-06-24 22:50:24', '9', '2023-11-29 14:50:24', '9', '2023-11-29 14:50:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3293, 9, 1, '', 'e255e1f4d1384976bb5bfaa459fd5ce2', '8e804aa1a6234c6fab239095f1c5a3f9', 'default', NULL, '2024-06-24 23:00:13', '9', '2023-11-29 15:00:13', '9', '2023-11-29 15:00:13', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3294, 9, 1, '', 'fed507a1f0c841faae2a79d822b76f98', '3a498ce12cf6434399873862713f6da2', 'default', NULL, '2024-06-24 23:11:21', '9', '2023-11-29 15:11:21', '9', '2023-11-29 15:11:21', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3295, 9, 1, '', '9b7e1e4167de40d391cc8b1b8d4c478a', '1aa9b65b247d4337b99b54ba24a8680a', 'default', NULL, '2024-06-24 23:15:16', '9', '2023-11-29 15:15:16', '9', '2023-11-29 15:15:16', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3296, 9, 1, '', '9a40fee7d96f46118f2b6e128e7ed8c7', '320d9e0f5e1f40988747855b0e79f0eb', 'default', NULL, '2024-06-24 23:20:24', '9', '2023-11-29 15:20:24', '9', '2023-11-29 15:20:24', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3297, 9, 1, '', 'c20e495d88c641ecac6ac13fe9297dbf', 'af25d59b2b444bfb850ddb6dc9df1193', 'default', NULL, '2024-06-24 23:21:40', '9', '2023-11-29 15:21:40', '9', '2023-11-29 15:21:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3298, 9, 1, '', '42f62e9e79a0401c856ceb6caa219d2f', '4eea7c639bc64743810af7bd8b5ec2ef', 'default', NULL, '2024-06-24 23:38:15', '9', '2023-11-29 15:38:15', '9', '2023-11-29 15:38:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3299, 9, 1, '', '9c512c8d56c74e3ea06401ce4e1c6057', '2699eaf67e7745ceae645fab3a9961ca', 'default', NULL, '2024-06-24 23:39:07', '9', '2023-11-29 15:39:07', '9', '2023-11-29 15:39:07', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3300, 9, 1, '', 'f73ee7bb7fe54b63b141820422ecd522', '73debba1ce1c46a6a289e112f4e298ff', 'default', NULL, '2024-06-24 23:43:54', '9', '2023-11-29 15:43:54', '9', '2023-11-29 15:43:54', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3301, 9, 1, '', 'baa4086e6471461cbf14f070e36b1100', 'bd5f450b42de4fec8fdadcb6ce97ed49', 'default', NULL, '2024-06-24 23:45:45', '9', '2023-11-29 15:45:45', '9', '2023-11-29 15:45:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3302, 9, 1, '', '342d2fcc802c4e01ae63fd2ec229ed6a', 'de13e3429d634b1eba62272be312c44b', 'default', NULL, '2024-06-24 23:57:40', '9', '2023-11-29 15:57:40', '9', '2023-11-29 15:57:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3303, 9, 1, '', '5a3588c383fa457e824fed621351b3d8', '51fe506e4d0945d99bc46e0841a771cc', 'default', NULL, '2024-06-25 00:00:59', '9', '2023-11-29 16:00:59', '9', '2023-11-29 16:00:59', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3304, 9, 1, '', 'fd3ed0c447d44bdb9a85f968257aa901', '04b6b4f8831e44b08e6a1a4e020d6633', 'default', NULL, '2024-06-25 00:11:30', '9', '2023-11-29 16:11:30', '9', '2023-11-29 16:11:30', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3305, 9, 1, '', 'fe47582e00b64e7891e946b4c11f8b00', 'f08791d78b6c41428990d1b4965085bf', 'default', NULL, '2024-06-25 00:16:52', '9', '2023-11-29 16:16:52', '9', '2023-11-29 16:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3306, 9, 1, '', 'ad93c14375c44653bcc45e3421394065', 'd9632b68e073492e83e7e2f13a78f2d3', 'default', NULL, '2024-06-25 22:22:33', '9', '2023-11-30 14:22:33', '9', '2023-11-30 14:22:33', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3307, 9, 1, '', '8be2ca0c42d64578acae9ddd8ec98fb8', '2f6ba9478f3a4c43b87e1ed4db4e5eb9', 'default', NULL, '2024-06-25 22:28:46', '9', '2023-11-30 14:28:46', '9', '2023-11-30 14:28:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3308, 9, 1, '', 'b2ecce81ae744bce8902c0499fd9d802', 'e8cec93befe0422ab597376b7d176ac1', 'default', NULL, '2024-06-25 23:49:52', '9', '2023-11-30 15:49:52', '9', '2023-11-30 15:49:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3309, 9, 1, '', 'c37eb5c895eb4aaea116336d83781b29', '8732926a02d34a3d980c8de6691f9764', 'default', NULL, '2024-06-25 23:50:05', '9', '2023-11-30 15:50:05', '9', '2023-11-30 15:50:05', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3310, 9, 1, '', '49e1b66890cb47ff9cc128c228d94f86', 'f85bd3a9eca14480a75f9cbed35ea79b', 'default', NULL, '2024-06-26 00:00:15', '9', '2023-11-30 16:00:15', '9', '2023-11-30 16:00:15', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3311, 9, 1, '', '89edfbafa80443ecb9b3735129c7499d', '2652924e8173442bb0ec3fd451a8bd2d', 'default', NULL, '2024-06-26 00:04:06', '9', '2023-11-30 16:04:06', '9', '2023-11-30 16:04:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3312, 9, 1, '', 'd44390caedfb468da3b41bc526d68472', '166c18ab0eca4e4a87a464ceb8c71bbe', 'default', NULL, '2024-06-26 00:50:29', '9', '2023-11-30 16:50:29', '9', '2023-11-30 16:50:29', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3313, 9, 1, '', '0308605a25c14262be325a78e22dd018', 'd6b60177f0da487380cc0c9f37c5c997', 'default', NULL, '2024-06-26 01:08:52', '9', '2023-11-30 17:08:52', '9', '2023-11-30 17:08:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3314, 9, 1, '', 'f8bd8f0f9113489e9af61c1ebaf087d4', '5df83cec88da42ef96088eaa7dfd703f', 'default', NULL, '2024-06-26 01:13:37', '9', '2023-11-30 17:13:37', '9', '2023-11-30 17:13:37', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3315, 9, 1, '', '99e39ffdc76e47c085dfc9773802a47c', 'c9623faa65ed4af0b2b7234347e75e8c', 'default', NULL, '2024-06-26 18:00:51', '9', '2023-12-01 10:00:51', '9', '2023-12-01 10:00:51', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3316, 9, 1, '', '5434436107ff45eea88b103fafac503c', '6cbf685989ce4b8894e90e2a807f52b9', 'default', NULL, '2024-06-26 18:27:56', '9', '2023-12-01 10:27:56', '9', '2023-12-01 10:27:56', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3317, 1, 2, '', '2523b813922d4eab83b57a73da82a08a', 'b19c01f421424a01be935eff06a6cf73', 'default', NULL, '2024-06-27 17:50:15', NULL, '2023-12-02 09:50:15', NULL, '2023-12-02 09:52:31', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3318, 1, 2, '', 'dbefbd1432b64d2e8fd6b5c8a31bb995', 'c8d2fc86cd814cb0ac745051bb655f5a', 'default', NULL, '2024-06-27 17:52:45', NULL, '2023-12-02 09:52:45', NULL, '2023-12-02 09:52:45', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3319, 9, 1, '', '3d363189d2aa4bd2b88b3a88f6877886', '7a6d580220ae478d9877914eb95b08a1', 'default', NULL, '2024-06-27 23:13:01', '9', '2023-12-02 15:13:01', '9', '2023-12-02 15:13:01', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3320, 9, 1, '', '549b66982cc24cab97e8e4bb60f01000', 'b183ddfe68a5427cbd2f539fdeec8dd6', 'default', NULL, '2024-06-27 23:37:34', '9', '2023-12-02 15:37:34', '9', '2023-12-02 15:37:34', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3321, 9, 1, '', '779802fcf66149a2adca017d7292023e', 'f414365c3e964301b451f6dc1c8b8eb4', 'default', NULL, '2024-06-28 00:33:00', '9', '2023-12-02 16:33:00', '9', '2023-12-02 16:33:00', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3322, 9, 1, '', 'c780bfba243c4cb5ac4866e370e8f77f', 'c0f29a9b53f7414eb73e413d7bf99242', 'default', NULL, '2024-06-28 00:45:44', '9', '2023-12-02 16:45:44', '9', '2023-12-02 16:45:44', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3323, 9, 1, '', '78d68e5f17444b058f615ea2c4292143', 'f830c60ef9e94cfdb45e672974370e82', 'default', NULL, '2024-06-28 00:46:17', '9', '2023-12-02 16:46:17', '9', '2023-12-02 16:46:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3324, 1, 2, '', 'dee76e4cb4b641869a5d6c8614e4000d', 'ad94b031820c448e8864e262f4ff9255', 'default', NULL, '2024-06-29 01:15:39', NULL, '2023-12-03 17:15:39', NULL, '2023-12-03 17:15:39', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3325, 9, 1, '', 'd661630cfaf1476290d83db39ee5e8c6', 'a907effa026e4c34a581cec43e565586', 'default', NULL, '2024-06-29 17:39:36', '9', '2023-12-04 09:39:36', '9', '2023-12-04 09:39:36', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3326, 9, 1, '', 'b557ecc433cb4ab0a458dd380928b093', '8104ce635eea4590bec69c36eac87e37', 'default', NULL, '2024-06-29 18:37:02', '9', '2023-12-04 10:37:02', '9', '2023-12-04 10:37:02', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3327, 9, 1, '', '7a6635bb83dd477ba4a20c55d83f13e2', 'eeb834f445354d2ba9ce3ab47f15b3bb', 'default', NULL, '2024-06-29 18:52:06', '9', '2023-12-04 10:52:06', '9', '2023-12-04 10:52:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3328, 9, 1, '', '1d03ccc806b14c1ba95893082ccb5532', '77758d38ba214867834ac8df2fa40ce4', 'default', NULL, '2024-06-29 19:01:42', '9', '2023-12-04 11:01:42', '9', '2023-12-04 11:01:42', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3329, 9, 1, '', '81c6aaec921745998bb9c1cd9fe3450d', '1aa35f69eb9146d8a593a06889b084b4', 'default', NULL, '2024-06-29 23:05:31', '9', '2023-12-04 15:05:31', '9', '2023-12-04 15:05:31', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3330, 1, 2, '', '40f8d2669b984d0fb8d3091b51c621a3', '40c11f68015d48e4a0fc45f6821bdfea', 'default', NULL, '2024-07-03 17:43:16', NULL, '2023-12-08 09:43:16', NULL, '2023-12-08 10:11:19', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3331, 9, 1, '', '0e8152fb071946f1911a42e4df32aae9', 'd08ad2fee1354c6f96e6db3a5e1992ca', 'default', NULL, '2024-07-03 18:07:32', NULL, '2023-12-08 10:07:32', NULL, '2023-12-08 10:07:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3332, 9, 1, '', 'dce032efd49c40af849643d3674cfd0a', '5b647c12db9d415fb0da1fb383a700d6', 'default', NULL, '2024-07-03 18:10:18', '9', '2023-12-08 10:10:18', '9', '2023-12-08 10:10:18', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3333, 1, 2, '', 'fdbd49e6abfc4d8fac93cc31d0fd520b', '8a07266b81974668b8b5f82f013c42b5', 'default', NULL, '2024-07-03 18:11:29', NULL, '2023-12-08 10:11:29', NULL, '2023-12-08 10:25:44', b'1', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3334, 1, 2, '', 'fcd60ec255ec4a59ae9157c6e291366c', 'bd509a7283a7493980042119e2676b5e', 'default', NULL, '2024-07-03 18:25:52', NULL, '2023-12-08 10:25:52', NULL, '2023-12-08 10:25:52', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3335, 9, 1, '', '37a36317784b48808197d7fd208db4f7', 'f40821531b2a49f8b9adf45f16ade1af', 'default', NULL, '2024-07-03 18:28:08', '9', '2023-12-08 10:28:08', '9', '2023-12-08 10:28:08', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3336, 9, 1, '', '090840dd1bf64a6d872788520c3cfee1', 'b3ccce1ad7744e84b774d990a2c8b89f', 'default', NULL, '2024-07-03 18:29:12', '9', '2023-12-08 10:29:12', '9', '2023-12-08 10:29:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3337, 9, 1, '', 'ebc616147011426fa095fa0923e52674', '0f377e65674542788e898dbb5de0829a', 'default', NULL, '2024-07-03 19:05:25', NULL, '2023-12-08 11:05:25', NULL, '2023-12-08 11:05:25', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3338, 9, 1, '', '1e73f4237d284f838f0100c91726d77b', '784cd07c90034d87ad75552d77134c29', 'default', NULL, '2024-07-03 19:16:20', '9', '2023-12-08 11:16:20', '9', '2023-12-08 11:16:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3339, 9, 1, '', 'de3f49e308964092b1cca94611eaa905', '70598a40ac434c74a6f504db8afc6d3c', 'default', NULL, '2024-07-03 19:18:50', '9', '2023-12-08 11:18:50', '9', '2023-12-08 11:18:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3340, 1, 2, '', '0d8a5c7b81114d009ce84a77b64c2d14', '3d623f53a4544fe8a9275643054368b3', 'default', NULL, '2024-09-19 18:17:46', NULL, '2024-02-24 10:17:46', NULL, '2024-02-24 10:17:46', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3341, 9, 1, '', '7626f55a43f64e9f9aea322cd0433fe9', 'def3065538ad4a4188958dbfb256e64c', 'default', NULL, '2024-09-19 18:28:40', NULL, '2024-02-24 10:28:40', NULL, '2024-02-24 10:28:40', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3342, 1, 2, '', '94eec3bcd0cd42c5a8f8c1be7b47b023', '276b304cafd848c0a6c288ce019b61c8', 'default', NULL, '2024-10-20 23:21:17', NULL, '2024-03-26 15:21:17', NULL, '2024-03-26 15:21:17', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3343, 1, 2, '', 'fd3b1f2e703a4a7995272c6c0432b8c1', 'b67f082f613245ea85a4b018f494b550', 'default', NULL, '2024-10-28 22:23:23', NULL, '2024-04-03 14:23:23', NULL, '2024-04-03 14:23:23', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3344, 1, 2, '', '9cb12293f2e54afbb18b76c1eb07a5ec', '6e8bc565f6524d30ba321bb4c0bfd8aa', 'default', NULL, '2024-12-02 23:11:20', NULL, '2024-05-08 15:11:20', NULL, '2024-05-08 15:11:20', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3345, 9, 1, '', 'd8852a26210943af81f5e35210eac2f0', 'ecfbdf499c0f4e3bbe70ae03a54e5ce0', 'default', NULL, '2024-12-02 23:11:41', '9', '2024-05-08 15:11:41', '9', '2024-05-08 15:11:41', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3346, 9, 1, '', '9481ba0b96834f3896e4ddd1ba9f8012', '781e516cab6d4086977bd3213581ec03', 'default', NULL, '2024-12-02 23:16:50', '9', '2024-05-08 15:16:50', '9', '2024-05-08 15:16:50', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3347, 9, 1, '', '8adec4247d6d4fb49139436ff847b596', '0997654ef07f4a44af5aa24ce55008ab', 'default', NULL, '2024-12-02 23:21:47', '9', '2024-05-08 15:21:47', '9', '2024-05-08 15:21:47', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3348, 9, 1, '', 'e97f5df8bb4248dc8cdcea0574acff8b', '9d56365f694746f3aa97cfb010854a64', 'default', NULL, '2024-12-02 23:26:06', '9', '2024-05-08 15:26:06', '9', '2024-05-08 15:26:06', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3349, 1, 2, '', 'b62e778fd2ea46c09b03f0dbddbbfe5a', '379fb12c1d804a08adc48f45f66d9610', 'default', NULL, '2024-12-15 18:26:32', NULL, '2024-05-21 10:26:32', NULL, '2024-05-21 10:26:32', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3350, 1, 2, '', '96c1fc648bd74bb0b4f30d321c1ffb2b', '175df0fb56314d648010b4d0ffbf47a4', 'default', NULL, '2024-12-24 00:20:12', NULL, '2024-05-29 16:20:12', NULL, '2024-05-29 16:20:12', b'0', 0, 0); +INSERT INTO `system_oauth2_access_token` VALUES (3351, 1, 2, '{\"nickname\":\"yshop\",\"deptId\":\"103\"}', '6a740edbaef74d198377a2eee5537dc0', 'e246179231ec49468e41dd3349b402cd', 'default', NULL, '2024-12-26 21:24:33', NULL, '2024-06-01 13:24:33', NULL, '2024-06-01 13:24:33', b'0', 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_approve +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_approve`; +CREATE TABLE `system_oauth2_approve` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '授权范围', + `approved` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否接受', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2 批准表'; + +-- ---------------------------- +-- Records of system_oauth2_approve +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_client +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_client`; +CREATE TABLE `system_oauth2_client` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端密钥', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用图标', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '应用描述', + `status` tinyint NOT NULL COMMENT '状态', + `access_token_validity_seconds` int NOT NULL COMMENT '访问令牌的有效期', + `refresh_token_validity_seconds` int NOT NULL COMMENT '刷新令牌的有效期', + `redirect_uris` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '可重定向的 URI 地址', + `authorized_grant_types` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权类型', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '授权范围', + `auto_approve_scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '自动通过的授权范围', + `authorities` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '权限', + `resource_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资源', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '附加信息', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2 客户端表'; + +-- ---------------------------- +-- Records of system_oauth2_client +-- ---------------------------- +BEGIN; +INSERT INTO `system_oauth2_client` VALUES (1, 'default', 'admin123', 'yshop', 'http://test.yshop.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png', '我是描述', 0, 18000000, 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', '2023-06-12 10:01:30', b'0'); +INSERT INTO `system_oauth2_client` VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yshop.iocoder.cn/277a899d573723f1fcdfb57340f00379.png', NULL, 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2022-06-19 00:26:13', b'0'); +INSERT INTO `system_oauth2_client` VALUES (41, 'yshop-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.yshop.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', '2022-09-29 13:28:31', b'0'); +INSERT INTO `system_oauth2_client` VALUES (42, 'yshop-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.yshop.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', '2022-10-04 20:31:21', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_code`; +CREATE TABLE `system_oauth2_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权码', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `redirect_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可重定向的 URI 地址', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=147 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2 授权码表'; + +-- ---------------------------- +-- Records of system_oauth2_code +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_refresh_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_refresh_token`; +CREATE TABLE `system_oauth2_refresh_token` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '刷新令牌', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + `shop_id` bigint DEFAULT '0' COMMENT '门店ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1665 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2 刷新令牌'; + +-- ---------------------------- +-- Records of system_oauth2_refresh_token +-- ---------------------------- +BEGIN; +INSERT INTO `system_oauth2_refresh_token` VALUES (738, 1, '75d6f57cd13f45f698eaaf0b74369a1c', 2, 'default', NULL, '2023-05-08 04:51:51', NULL, '2023-05-07 16:51:51', NULL, '2023-05-08 16:54:21', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (739, 1, 'db0011c8e0fd48109c48197df22ef128', 2, 'default', NULL, '2023-05-09 04:54:46', NULL, '2023-05-08 16:54:46', NULL, '2023-05-08 16:54:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (740, 1, '14cedafe6b3f487eb8ae512e13e952c8', 2, 'default', NULL, '2023-05-09 06:31:31', NULL, '2023-05-08 18:31:31', NULL, '2023-05-08 18:32:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (741, 1, 'bf6a7aeedecc45d5ac838d5b70796f23', 2, 'default', NULL, '2023-05-09 06:32:29', NULL, '2023-05-08 18:32:29', NULL, '2023-05-09 09:02:22', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (742, 1, '81ed7c3c95ff401d924a03dca1c68ad3', 2, 'default', NULL, '2023-05-09 22:26:29', NULL, '2023-05-09 10:26:29', NULL, '2023-05-09 10:26:58', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (743, 1, 'f61a5716e1474e1084e7a2b786b578ab', 2, 'default', NULL, '2023-05-09 22:48:22', NULL, '2023-05-09 10:48:22', NULL, '2023-05-09 10:48:34', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (744, 1, '3c23acaae6a946198bca90ba94abf027', 2, 'default', NULL, '2023-05-09 22:48:37', NULL, '2023-05-09 10:48:37', NULL, '2023-05-10 09:27:38', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (745, 1, '8df8c5baa0ab4bec8f5f95c31343370b', 2, 'default', NULL, '2023-05-10 21:29:09', NULL, '2023-05-10 09:29:09', NULL, '2023-05-10 09:29:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (746, 1, 'c5124e55bafe4967901b8b6f77758f59', 2, 'default', NULL, '2023-05-10 21:45:47', '1', '2023-05-10 09:45:47', '1', '2023-05-10 10:00:48', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (747, 1, '2a3c46462eb04bfdbe25f6f482619bc0', 2, 'default', NULL, '2023-05-10 22:00:53', NULL, '2023-05-10 10:00:53', NULL, '2023-05-10 10:35:30', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (748, 1, '1a8890095585477ebf4e219c70eb8633', 2, 'default', NULL, '2023-05-10 22:35:33', NULL, '2023-05-10 10:35:33', NULL, '2023-05-10 15:19:11', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (749, 1, '0018c33a1ba64bcebc51cacba9c8e91a', 2, 'default', NULL, '2023-05-11 03:19:17', NULL, '2023-05-10 15:19:17', NULL, '2023-05-11 05:14:51', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (750, 1, '103842f78cda4e17908fd715d8a18687', 2, 'default', NULL, '2023-05-13 00:45:18', NULL, '2023-05-12 12:45:18', NULL, '2023-05-15 16:46:49', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (751, 1, '0bbbd3b67f3f424a869e3440c1544d00', 2, 'default', NULL, '2023-05-16 04:47:03', NULL, '2023-05-15 16:47:03', NULL, '2023-05-16 10:48:01', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (752, 1, '6b340d3763424b9d90e3681640a36396', 2, 'default', NULL, '2023-05-16 22:50:23', NULL, '2023-05-16 10:50:23', NULL, '2023-05-17 00:59:35', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (753, 1, '43a4b47a53b640b18eeb891337f74ab5', 2, 'default', NULL, '2023-05-16 22:51:52', NULL, '2023-05-16 10:51:52', NULL, '2023-05-16 10:51:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (754, 1, '61e37d8c2a5e4701bc524385c7f16d6e', 2, 'default', NULL, '2023-05-17 21:43:18', NULL, '2023-05-17 09:43:18', NULL, '2023-05-17 10:36:15', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (755, 1, 'da42d08c27ec49c78ba758c4ea437f93', 2, 'default', NULL, '2023-05-17 22:36:24', NULL, '2023-05-17 10:36:24', NULL, '2023-05-17 15:32:29', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (756, 1, '980cc8b48f644d5ebf23f8ad67ea970a', 2, 'default', NULL, '2023-05-18 03:32:36', NULL, '2023-05-17 15:32:36', NULL, '2023-05-18 05:11:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (757, 1, '79eea49740de4c818263547f73259576', 2, 'default', NULL, '2023-05-18 22:08:43', NULL, '2023-05-18 10:08:43', NULL, '2023-05-18 22:38:09', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (758, 1, '57bb985009dc4cf7bddc6ad79af3c7d2', 2, 'default', NULL, '2023-05-19 23:15:16', NULL, '2023-05-19 11:15:16', NULL, '2023-05-20 00:04:35', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (759, 1, '4acc066051154ac4999e5e96d7ea45db', 2, 'default', NULL, '2023-05-21 09:06:58', NULL, '2023-05-20 21:06:58', NULL, '2023-05-21 16:18:00', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (760, 1, 'da94f8ec79fe4700a46863423341f6df', 2, 'default', NULL, '2023-05-22 09:38:22', NULL, '2023-05-21 21:38:22', NULL, '2023-05-21 21:38:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (761, 1, '414461f65aef434486d8c6f82eb32a1b', 2, 'default', NULL, '2023-05-22 11:02:11', NULL, '2023-05-21 23:02:11', NULL, '2023-05-22 22:56:28', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (762, 1, 'd2a7614495424a1bb0ba5cae79b5660f', 2, 'default', NULL, '2023-05-23 00:03:17', NULL, '2023-05-22 12:03:17', NULL, '2023-05-22 15:27:51', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (763, 1, '8282b6e8597342348fe04b2642724c39', 2, 'default', NULL, '2023-05-23 03:27:57', NULL, '2023-05-22 15:27:57', NULL, '2023-05-23 03:46:39', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (764, 1, 'c04ed4b71f204ed89492b8bb1bd32e5c', 2, 'default', NULL, '2023-05-23 10:56:45', NULL, '2023-05-22 22:56:45', NULL, '2023-05-22 22:56:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (765, 1, '8757f7827c804c34bd651ca808c9839b', 2, 'default', NULL, '2023-05-23 21:21:05', NULL, '2023-05-23 09:21:05', NULL, '2023-05-23 09:21:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (766, 1, '07b76869ffa64fcab8ba24b1a801e927', 2, 'default', NULL, '2023-05-23 21:21:27', NULL, '2023-05-23 09:21:27', NULL, '2023-05-23 21:46:30', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (767, 1, 'b906d47492234acea35e538d48731a0e', 2, 'default', NULL, '2023-05-24 21:27:39', NULL, '2023-05-24 09:27:39', NULL, '2023-05-24 09:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (768, 1, '811f1a7504aa466986ebb5fd1b192515', 2, 'default', NULL, '2023-05-24 21:27:45', '1', '2023-05-24 09:27:45', '1', '2023-05-24 21:33:20', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (769, 1, 'd1dece0cd9854a1b85eed67d7f497145', 2, 'default', NULL, '2023-05-25 23:35:10', NULL, '2023-05-25 11:35:10', NULL, '2023-05-25 11:35:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (770, 1, '82da81c9c311442fbbad0f1113409c25', 2, 'default', NULL, '2023-05-26 08:21:00', NULL, '2023-05-25 20:21:00', NULL, '2023-05-25 21:08:53', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (771, 1, 'b68dc49d5f9b458ea0a32b7b9c887db2', 2, 'default', NULL, '2023-05-26 09:08:59', NULL, '2023-05-25 21:08:59', NULL, '2023-05-26 09:34:11', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (772, 1, '74f587d57d6f4b65abb6d92b0ace4f40', 2, 'default', NULL, '2023-05-27 01:42:20', NULL, '2023-05-26 13:42:20', NULL, '2023-05-26 14:24:03', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (773, 1, 'abf7a1ce40064aa5a37227b6f7d62aa0', 2, 'default', NULL, '2023-05-27 02:24:12', NULL, '2023-05-26 14:24:12', NULL, '2023-05-27 08:30:31', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (774, 1, 'b62853c9ec43460ba30cedf702c7fe5f', 2, 'default', NULL, '2023-05-27 21:22:40', NULL, '2023-05-27 09:22:40', NULL, '2023-05-28 03:05:43', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (775, 1, 'c1208eb5fa524dbe963749e32bbde4d8', 2, 'default', NULL, '2023-05-29 23:00:51', NULL, '2023-05-29 11:00:51', NULL, '2023-05-29 11:01:05', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (776, 1, '235c06181be84d08a9f998ebee24e322', 2, 'default', NULL, '2023-05-29 23:01:10', NULL, '2023-05-29 11:01:10', NULL, '2023-05-30 09:42:56', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (777, 1, '702799f0a1884f829228081eb0f6b5a3', 2, 'default', NULL, '2023-05-30 21:49:00', NULL, '2023-05-30 09:49:00', NULL, '2023-05-30 09:49:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (778, 1, '16c477193d724699a7c8d620107276b5', 2, 'default', NULL, '2023-05-30 23:39:51', NULL, '2023-05-30 11:39:51', NULL, '2023-05-31 09:57:03', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (779, 1, '76b773a262624494818afd620821ec74', 2, 'default', NULL, '2023-06-01 22:55:15', NULL, '2023-06-01 10:55:15', NULL, '2023-06-01 10:55:35', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (780, 1, 'c16f0acf460e4b32a477579661bbd1b9', 2, 'default', NULL, '2023-06-01 23:04:43', NULL, '2023-06-01 11:04:43', NULL, '2023-06-01 11:04:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (781, 1, '497b7a5ec819442f85c0e394b72bcd60', 2, 'default', NULL, '2023-06-01 23:04:58', '1', '2023-06-01 11:04:58', '1', '2023-06-02 09:08:23', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (782, 1, 'c6170b3b14eb42e7acb9e21767f2930c', 2, 'default', NULL, '2023-06-02 21:33:20', NULL, '2023-06-02 09:33:20', NULL, '2023-06-02 09:33:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (783, 1, 'b60b9d572ec04e01933d00b0dfa9f7f5', 2, 'default', NULL, '2023-06-02 21:49:02', NULL, '2023-06-02 09:49:02', NULL, '2023-06-02 18:37:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (784, 1, '37861861ddc7421a8c1e876b7ec11ad0', 2, 'default', NULL, '2023-06-03 06:37:30', NULL, '2023-06-02 18:37:30', NULL, '2023-06-03 10:42:02', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (785, 1, '33515798070641158c8693c82714ce0d', 2, 'default', NULL, '2023-06-04 00:00:22', NULL, '2023-06-03 12:00:22', NULL, '2023-06-04 07:10:32', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (786, 1, '0e8f4e464f504e89b008fda4eca729a8', 2, 'default', NULL, '2023-06-05 23:11:45', NULL, '2023-06-05 11:11:45', NULL, '2023-06-06 09:54:56', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (787, 1, '120e0ca028d140c78d61999dd3ec90f2', 2, 'default', NULL, '2023-06-06 22:03:25', NULL, '2023-06-06 10:03:25', NULL, '2023-06-06 10:03:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (788, 1, '5d15336636414c0b8472635e68805e58', 2, 'default', NULL, '2023-06-06 23:03:43', NULL, '2023-06-06 11:03:43', NULL, '2023-06-07 13:54:28', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (789, 1, '9e7a7aa710fa4198a1e452d091f193da', 2, 'default', NULL, '2023-06-08 21:54:26', NULL, '2023-06-08 09:54:26', NULL, '2023-06-08 09:54:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (790, 1, 'a546f4a777034766af9fec069ebb5f19', 2, 'default', NULL, '2023-06-08 21:56:11', NULL, '2023-06-08 09:56:11', NULL, '2023-06-08 22:42:59', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (791, 1, '33f11f5232d1449ca8c9daa50f9bb9e2', 2, 'default', NULL, '2023-06-10 02:48:41', NULL, '2023-06-09 14:48:41', NULL, '2023-06-09 17:25:44', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (792, 1, '555a6039a2ed451ca202b2e8dcbe9f93', 2, 'default', NULL, '2023-06-10 05:25:59', NULL, '2023-06-09 17:25:59', NULL, '2023-06-09 17:25:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (793, 1, 'b3e84d40158340398cfe84332d27495b', 2, 'default', NULL, '2023-06-10 05:26:11', '1', '2023-06-09 17:26:11', '1', '2023-06-09 17:26:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (794, 1, '97fb6cd0476a42749d2662ed0fc3ca5d', 2, 'default', NULL, '2023-06-10 05:36:20', NULL, '2023-06-09 17:36:20', NULL, '2023-06-09 17:36:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (795, 1, '4a51598c76f64b82ab001d4e5bd59ad2', 2, 'default', NULL, '2023-06-10 05:36:59', '1', '2023-06-09 17:36:59', '1', '2023-06-09 17:43:49', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (796, 1, 'a8b9943948484e7ba2103d353335dfd1', 2, 'default', NULL, '2023-06-10 05:44:00', NULL, '2023-06-09 17:44:00', NULL, '2023-06-10 09:44:19', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (797, 1, 'e426e6a72baf4ea584ccaef1fb0a3acf', 2, 'default', NULL, '2023-06-10 21:45:55', NULL, '2023-06-10 09:45:55', NULL, '2023-06-10 09:45:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (798, 1, 'e49c80d9a2e247f4bab9aa9313600448', 2, 'default', NULL, '2023-06-10 23:14:53', NULL, '2023-06-10 11:14:53', NULL, '2023-06-10 11:14:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (799, 1, '7083c08db00d440b93d37fbd820ebc52', 2, 'default', NULL, '2023-06-10 23:16:28', NULL, '2023-06-10 11:16:28', NULL, '2023-06-10 12:00:28', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (800, 1, 'a0c6952ee35c45a4a8b4772b15d745b1', 2, 'default', NULL, '2023-06-11 03:10:04', NULL, '2023-06-10 15:10:04', NULL, '2023-06-11 07:05:53', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (801, 2, '1596bc4857f842bf9938b3669f19f956', 1, 'default', NULL, '2023-06-11 03:45:43', NULL, '2023-06-10 15:45:43', NULL, '2023-06-10 15:45:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (802, 1, 'e7c71a778489416581c5b9a49b8c2f6a', 2, 'default', NULL, '2023-06-12 21:56:24', NULL, '2023-06-12 09:56:24', NULL, '2023-06-12 09:56:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (803, 1, '24e198c7896746d89327e6d2428ab62f', 2, 'default', NULL, '2023-06-13 03:07:00', NULL, '2023-06-12 15:07:00', NULL, '2023-06-13 10:21:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (804, 1, '5ded84e2914c4f20b01774f5c672da1b', 2, 'default', NULL, '2023-06-13 22:21:29', NULL, '2023-06-13 10:21:29', NULL, '2023-06-15 17:55:49', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (805, 2, '8936fac0a79d4bd0ad38ffa1ecce893b', 1, 'default', NULL, '2023-06-15 23:28:34', NULL, '2023-06-15 11:28:34', NULL, '2023-06-15 11:28:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (806, 1, 'b8714c79fde847ed97d126eacaf15d45', 2, 'default', NULL, '2023-06-16 05:55:57', NULL, '2023-06-15 17:55:57', NULL, '2023-06-15 23:27:31', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (807, 1, '85c4e523ec204efb8839556d1ec982e8', 2, 'default', NULL, '2023-06-16 11:27:37', NULL, '2023-06-15 23:27:37', NULL, '2023-06-17 22:15:17', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (808, 1, 'b2041606139c4d1d9ede169899c6b817', 2, 'default', NULL, '2023-06-18 10:15:40', NULL, '2023-06-17 22:15:40', NULL, '2023-06-17 22:16:52', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (809, 1, '961bf00cb5e64fbe9828e2f9cd198209', 2, 'default', NULL, '2023-06-18 10:16:55', NULL, '2023-06-17 22:16:55', NULL, '2023-06-17 22:16:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (810, 1, 'dbd884cdc7334d78ab5ce4d51b6e1586', 2, 'default', NULL, '2023-06-18 10:19:48', NULL, '2023-06-17 22:19:48', NULL, '2023-06-18 18:02:14', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (811, 1, '1253d91216dc4496b76759242054fd2c', 2, 'default', NULL, '2023-06-19 06:02:20', NULL, '2023-06-18 18:02:20', NULL, '2023-06-18 20:41:56', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (812, 1, '70c2d7f517f349e1b2a82ee8d5f4fec2', 2, 'default', NULL, '2023-06-19 08:42:01', NULL, '2023-06-18 20:42:01', NULL, '2023-06-18 20:53:31', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (813, 1, '8fba24a74c5b43a29ed86be4061d6920', 2, 'default', NULL, '2023-06-19 08:53:37', NULL, '2023-06-18 20:53:37', NULL, '2023-06-29 13:40:25', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (814, 1, '0d99f73d99154913b6736acacb89e0b6', 2, 'default', NULL, '2023-06-30 01:40:37', NULL, '2023-06-29 13:40:37', NULL, '2023-07-02 10:19:14', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (815, 1, '2513dc01e2284a1cbb1ed14f891357a2', 2, 'default', NULL, '2023-07-02 22:19:22', NULL, '2023-07-02 10:19:22', NULL, '2023-07-02 10:38:52', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (816, 1, 'abb9ca7134ee4588a5df984fa9db30dd', 2, 'default', NULL, '2023-07-02 22:38:57', NULL, '2023-07-02 10:38:57', NULL, '2023-07-09 09:48:14', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (817, 1, '9b5abf172abf42ed9f5e42fc181f41a8', 2, 'default', NULL, '2023-07-09 21:48:21', NULL, '2023-07-09 09:48:21', NULL, '2023-07-10 22:30:40', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (818, 1, '3ef2b155ebdf4ea8bb1731f44d71c22f', 2, 'default', NULL, '2023-07-11 10:30:43', NULL, '2023-07-10 22:30:43', NULL, '2023-07-14 16:26:06', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (819, 1, '5676528d65d14dc39a55891bf45979ba', 2, 'default', NULL, '2023-07-15 04:26:13', NULL, '2023-07-14 16:26:13', NULL, '2023-07-19 15:39:51', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (820, 2, '6feda98f8549473fa9c1ce3d8d6234dd', 1, 'default', NULL, '2023-07-16 06:54:40', NULL, '2023-07-15 18:54:40', NULL, '2023-07-15 18:54:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (821, 1, '05d245412f324909991a35a1c66161f7', 2, 'default', NULL, '2023-07-20 03:39:58', NULL, '2023-07-19 15:39:58', NULL, '2023-07-20 18:27:36', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (822, 1, '5f1c2950ddbc4424bb06ff930bc37b0c', 2, 'default', NULL, '2023-07-21 06:27:39', NULL, '2023-07-20 18:27:39', NULL, '2023-07-20 18:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (823, 1, 'dc863e5092a841a892504a2739b13575', 2, 'default', NULL, '2023-07-24 23:33:59', NULL, '2023-07-24 11:33:59', NULL, '2023-07-25 10:07:11', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (824, 1, '4b965271828c4dd786a0621ea5c52849', 2, 'default', NULL, '2023-07-25 22:07:18', NULL, '2023-07-25 10:07:18', NULL, '2023-07-27 18:50:20', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (825, 2, 'dc97df462e324afdaabbb6d454568fe4', 1, 'default', NULL, '2023-07-26 04:08:03', NULL, '2023-07-25 16:08:03', NULL, '2023-07-25 16:08:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (826, 1, 'aade6cb6a86f407ead24b9bee3b1eb2b', 2, 'default', NULL, '2023-07-28 06:58:39', NULL, '2023-07-27 18:58:39', NULL, '2023-07-28 10:26:48', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (827, 1, '22b987a661794ff3b0eb5ec3034594b7', 2, 'default', NULL, '2023-07-28 22:41:30', NULL, '2023-07-28 10:41:30', NULL, '2023-07-28 10:42:57', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (828, 1, '99cc3f05977241fb86e5ccfd6bac7742', 2, 'default', NULL, '2023-07-30 05:32:37', NULL, '2023-07-29 17:32:37', NULL, '2023-08-03 16:24:16', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (829, 1, '50e18f33fbc54b5eba2e2acdba38b567', 2, 'default', NULL, '2023-08-04 04:24:29', NULL, '2023-08-03 16:24:29', NULL, '2023-08-06 18:07:59', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (830, 1, 'fff3b11dc1f3456b8e1b99d1b6f669f2', 2, 'default', NULL, '2023-08-07 06:08:12', NULL, '2023-08-06 18:08:12', NULL, '2023-08-08 16:47:00', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (831, 1, '9c1147122ce3435787a619c1313fbbb5', 2, 'default', NULL, '2023-08-09 04:47:12', NULL, '2023-08-08 16:47:12', NULL, '2023-08-09 16:57:53', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (832, 1, '12fecebf0c1a44879ba8735186cbebf5', 2, 'default', NULL, '2023-08-10 04:58:07', NULL, '2023-08-09 16:58:07', NULL, '2023-08-09 16:58:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (833, 2, 'f4a513eb19484b1e8144602c9fff2166', 1, 'default', NULL, '2023-08-12 21:57:05', NULL, '2023-08-12 09:57:05', NULL, '2023-08-12 09:57:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (834, 2, 'ee860cb5e7f643508635cee1ab31d910', 1, 'default', NULL, '2023-08-12 22:18:07', NULL, '2023-08-12 10:18:07', NULL, '2023-08-12 10:18:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (835, 4, '79d6fa17514849d8bd526b42c64db040', 1, 'default', NULL, '2023-08-12 23:39:26', NULL, '2023-08-12 11:39:26', NULL, '2023-08-12 11:39:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (836, 4, '5c74720242884db3b4a74832499bf450', 1, 'default', NULL, '2023-08-12 23:44:07', '4', '2023-08-12 11:44:07', '4', '2023-08-12 11:44:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (837, 4, '6fe23939aa8446119d7bc079888d74c3', 1, 'default', NULL, '2023-08-12 23:46:12', '4', '2023-08-12 11:46:12', '4', '2023-08-12 11:46:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (838, 4, '4cff832657604963822c49677519778d', 1, 'default', NULL, '2023-08-12 23:46:40', '4', '2023-08-12 11:46:40', '4', '2023-08-12 11:46:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (839, 4, '5a16f87c77ad4407b111e1fc64e6079b', 1, 'default', NULL, '2023-08-12 23:48:36', '4', '2023-08-12 11:48:36', '4', '2023-08-12 11:48:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (840, 4, 'd1343c00135848b19f05b96b0edb2058', 1, 'default', NULL, '2023-08-12 23:49:10', '4', '2023-08-12 11:49:10', '4', '2023-08-12 11:49:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (841, 4, '26c5cf3d72394cdfad13f4ea4f19853e', 1, 'default', NULL, '2023-08-12 23:53:12', '4', '2023-08-12 11:53:12', '4', '2023-08-12 11:53:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (842, 4, '5b30369d0e52457cae0eb3d1853c07b1', 1, 'default', NULL, '2023-08-12 23:57:41', NULL, '2023-08-12 11:57:41', NULL, '2023-08-12 11:57:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (843, 4, 'e50a396fa23941e0adfbee2df0154fef', 1, 'default', NULL, '2023-08-13 00:06:34', '4', '2023-08-12 12:06:34', '4', '2023-08-12 12:06:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (844, 4, 'b74c70a0121f419d8b21336ddd211e0b', 1, 'default', NULL, '2023-08-13 00:07:29', '4', '2023-08-12 12:07:29', '4', '2023-08-12 12:07:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (845, 4, '42a6d0e5e02c4197adcdc37122952dbe', 1, 'default', NULL, '2023-08-13 00:43:10', '4', '2023-08-12 12:43:10', '4', '2023-08-12 12:43:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (846, 4, 'b87bb9bc467f4c1bbbdee9f1110c47ea', 1, 'default', NULL, '2023-08-13 00:46:54', '4', '2023-08-12 12:46:54', '4', '2023-08-12 12:46:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (847, 4, '4fc37695f4af4d4e8975120cc6855068', 1, 'default', NULL, '2023-08-13 00:48:00', '4', '2023-08-12 12:48:00', '4', '2023-08-12 12:48:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (848, 4, 'de685437639e4971b11945a40e432b73', 1, 'default', NULL, '2023-08-13 00:48:52', '4', '2023-08-12 12:48:52', '4', '2023-08-12 12:48:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (849, 4, '4a5d82c42f9341e6ae77739adfa9b6a7', 1, 'default', NULL, '2023-08-13 00:51:38', '4', '2023-08-12 12:51:38', '4', '2023-08-12 12:51:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (850, 4, '3fef680c6fbc4a7aab9e78318613e246', 1, 'default', NULL, '2023-08-13 01:03:39', '4', '2023-08-12 13:03:39', '4', '2023-08-12 13:03:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (851, 4, '20411ec157a84e80be9477114a5d591b', 1, 'default', NULL, '2023-08-13 01:07:28', '4', '2023-08-12 13:07:28', '4', '2023-08-12 13:07:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (852, 4, 'c1fe009607d54f048d08bfc0597fb4af', 1, 'default', NULL, '2023-08-13 01:10:12', NULL, '2023-08-12 13:10:12', NULL, '2023-08-12 13:10:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (853, 4, '517ed9560e854c6dbc81c045d04488a9', 1, 'default', NULL, '2023-08-13 01:10:17', NULL, '2023-08-12 13:10:17', NULL, '2023-08-12 13:10:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (854, 4, 'fd64b777dc0c48ef946deeb9b3cedfe5', 1, 'default', NULL, '2023-08-13 01:12:56', NULL, '2023-08-12 13:12:56', NULL, '2023-08-12 13:12:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (855, 4, '86204fceb71f4720b3b59432f07f0720', 1, 'default', NULL, '2023-08-13 01:14:01', NULL, '2023-08-12 13:14:01', NULL, '2023-08-12 13:14:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (856, 4, '03170122f7dc436c8644101cecbf4a46', 1, 'default', NULL, '2023-08-13 01:18:24', NULL, '2023-08-12 13:18:24', NULL, '2023-08-12 13:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (857, 5, '7c64fc7eb7fb4f1988dcb9cc7fb91253', 1, 'default', NULL, '2023-08-13 01:27:46', NULL, '2023-08-12 13:27:46', NULL, '2023-08-12 13:27:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (858, 5, '397c91ee8198485ebae8ddf11d869cbf', 1, 'default', NULL, '2023-08-13 01:28:06', NULL, '2023-08-12 13:28:06', NULL, '2023-08-12 13:28:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (859, 5, '561fb462953a4b10a7cf66be5a85586e', 1, 'default', NULL, '2023-08-13 01:30:16', NULL, '2023-08-12 13:30:16', NULL, '2023-08-12 13:30:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (860, 6, '0da8056a1cb941f78d0a0fe1b63e9de0', 1, 'default', NULL, '2023-08-13 01:31:59', NULL, '2023-08-12 13:31:59', NULL, '2023-08-12 13:31:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (861, 6, 'a5dd5be103194e2b81429683d4861c8a', 1, 'default', NULL, '2023-08-13 01:32:43', NULL, '2023-08-12 13:32:43', NULL, '2023-08-12 13:32:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (862, 6, '59f321b273704dbfa97f7a2e67023c4a', 1, 'default', NULL, '2023-08-13 01:32:59', NULL, '2023-08-12 13:32:59', NULL, '2023-08-12 13:32:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (863, 6, '7c651e11547145d68df4cfd198ae012b', 1, 'default', NULL, '2023-08-13 01:37:13', NULL, '2023-08-12 13:37:13', NULL, '2023-08-12 13:37:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (864, 6, '9e48b2ecb0c6447f9f135b50a9b1bd19', 1, 'default', NULL, '2023-08-13 03:47:13', NULL, '2023-08-12 15:47:13', NULL, '2023-08-12 15:47:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (865, 6, '4e240ee7f2e04e98bf695f76ecf6db47', 1, 'default', NULL, '2023-08-13 04:08:19', NULL, '2023-08-12 16:08:19', NULL, '2023-08-12 16:08:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (866, 6, 'f548c536652d4fb9b629421008bb90b2', 1, 'default', NULL, '2023-08-13 04:17:09', NULL, '2023-08-12 16:17:09', NULL, '2023-08-12 16:17:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (867, 6, '6952f4330a3e41828eb2faa2fec14088', 1, 'default', NULL, '2023-08-13 04:53:38', NULL, '2023-08-12 16:53:38', NULL, '2023-08-12 16:53:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (868, 6, 'dd59031c8bd7420789599f825cd4f37c', 1, 'default', NULL, '2023-08-13 04:58:05', NULL, '2023-08-12 16:58:05', NULL, '2023-08-12 16:58:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (869, 6, '63bc35997be74647894591780d350d4c', 1, 'default', NULL, '2023-08-13 04:58:51', NULL, '2023-08-12 16:58:51', NULL, '2023-08-12 16:58:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (870, 6, 'a2690db1cbc2474a8a8c5fe42cd060b4', 1, 'default', NULL, '2023-08-13 05:01:27', NULL, '2023-08-12 17:01:27', NULL, '2023-08-12 17:01:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (871, 6, '74347ada1ce24879af6c60feb5d15fc1', 1, 'default', NULL, '2023-08-13 05:03:12', NULL, '2023-08-12 17:03:12', NULL, '2023-08-12 17:03:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (872, 6, '09b0bd2ef3ed4f96a7dcad62137f2db0', 1, 'default', NULL, '2023-08-15 04:28:41', NULL, '2023-08-14 16:28:41', NULL, '2023-08-14 16:28:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (873, 6, '121672ec81b5462a83e4129531ada6d5', 1, 'default', NULL, '2023-08-15 04:29:08', NULL, '2023-08-14 16:29:08', NULL, '2023-08-14 16:29:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (874, 6, '47279838c7ce4048a14a049112ffbff7', 1, 'default', NULL, '2023-08-15 04:55:19', NULL, '2023-08-14 16:55:19', NULL, '2023-08-14 16:55:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (875, 6, 'd2141d12d3a54adda5bd25ca7145810d', 1, 'default', NULL, '2023-08-15 04:57:21', NULL, '2023-08-14 16:57:21', NULL, '2023-08-14 16:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (876, 6, 'ff44a129679f4440a9033cafc54afe2d', 1, 'default', NULL, '2023-08-15 04:57:25', NULL, '2023-08-14 16:57:25', NULL, '2023-08-14 16:57:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (877, 6, '7f260bb0eb054a1395fd0846d7255847', 1, 'default', NULL, '2023-08-15 05:03:43', NULL, '2023-08-14 17:03:43', NULL, '2023-08-14 17:03:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (878, 6, '88031b7d8e994d9ca85c636bbd2bcab4', 1, 'default', NULL, '2023-08-15 05:05:08', NULL, '2023-08-14 17:05:08', NULL, '2023-08-14 17:05:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (879, 6, 'aee1f51b78ee444d83a1884c5d337674', 1, 'default', NULL, '2023-08-15 05:07:46', NULL, '2023-08-14 17:07:46', NULL, '2023-08-14 17:07:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (880, 6, '664c7452ad164a50b3740df45a237672', 1, 'default', NULL, '2023-08-15 05:16:57', NULL, '2023-08-14 17:16:57', NULL, '2023-08-14 17:16:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (881, 6, 'e3644f9abf1e4c8498bfe1e34931ea73', 1, 'default', NULL, '2023-08-15 05:17:53', NULL, '2023-08-14 17:17:53', NULL, '2023-08-14 17:17:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (882, 6, '1bf8b633e3324db48ae3aed29a6100a0', 1, 'default', NULL, '2023-08-15 05:29:57', NULL, '2023-08-14 17:29:57', NULL, '2023-08-14 17:29:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (883, 1, '53c5143128f543a09bbc349d47ab5ee8', 2, 'default', NULL, '2023-08-15 22:23:58', NULL, '2023-08-15 10:23:58', NULL, '2023-09-04 17:03:41', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (884, 6, '9a289ffd77d242108694ffe938695ae7', 1, 'default', NULL, '2023-08-16 22:46:28', NULL, '2023-08-16 10:46:28', NULL, '2023-08-16 10:46:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (885, 6, 'fe0a29534fae4e4594a0642c93c87f7d', 1, 'default', NULL, '2023-08-17 04:39:44', NULL, '2023-08-16 16:39:44', NULL, '2023-08-16 16:39:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (886, 6, 'b1d9679c375940f697fffb0f9df56885', 1, 'default', NULL, '2023-08-17 04:41:49', NULL, '2023-08-16 16:41:49', NULL, '2023-08-16 16:41:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (887, 6, '0ae2bbe0dac144d896ee26ee789b13f6', 1, 'default', NULL, '2023-08-17 04:52:24', NULL, '2023-08-16 16:52:24', NULL, '2023-08-16 16:52:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (888, 6, '3cea188156cc4cdf9f8cb46086dcfa76', 1, 'default', NULL, '2023-08-17 05:08:32', NULL, '2023-08-16 17:08:32', NULL, '2023-08-16 17:08:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (889, 6, '88dcc5984e364d8198d2615fc5c8335e', 1, 'default', NULL, '2023-08-17 05:10:14', NULL, '2023-08-16 17:10:14', NULL, '2023-08-16 17:10:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (890, 6, '543b49969fd245d787f0d410a0cc98c9', 1, 'default', NULL, '2023-08-17 05:13:51', NULL, '2023-08-16 17:13:51', NULL, '2023-08-16 17:13:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (891, 6, 'af48674c0ca04b4dbedd48fdf31487ad', 1, 'default', NULL, '2023-08-17 05:40:30', NULL, '2023-08-16 17:40:30', NULL, '2023-08-16 17:40:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (892, 6, 'bc689fb5748b4c66a1b29ed928f37b1f', 1, 'default', NULL, '2023-08-17 06:13:47', NULL, '2023-08-16 18:13:47', NULL, '2023-08-16 18:13:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (893, 6, 'a2014d5cc24148999c8a552faeda3f03', 1, 'default', NULL, '2023-08-17 06:21:38', NULL, '2023-08-16 18:21:38', NULL, '2023-08-16 18:21:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (894, 6, 'c3a09d717aab4cb6b433183af5687d8c', 1, 'default', NULL, '2023-08-17 06:23:31', NULL, '2023-08-16 18:23:31', NULL, '2023-08-16 18:23:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (895, 6, '1cc244fa2a32457bb1abba3bd85b9d3f', 1, 'default', NULL, '2023-08-17 06:24:37', NULL, '2023-08-16 18:24:37', NULL, '2023-08-16 18:24:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (896, 6, '178e39f6adf34ef293d9d87ad32b96db', 1, 'default', NULL, '2023-08-17 06:29:57', NULL, '2023-08-16 18:29:57', NULL, '2023-08-16 18:29:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (897, 6, 'a62fdd70117e43519a67033ac49f348a', 1, 'default', NULL, '2023-08-17 06:31:04', NULL, '2023-08-16 18:31:04', NULL, '2023-08-16 18:31:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (898, 6, '27482f55d9d44209b1f35a365d4c0f08', 1, 'default', NULL, '2023-08-17 22:48:10', NULL, '2023-08-17 10:48:10', NULL, '2023-08-17 10:48:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (899, 6, '3b1c0c6d906b43f8bf101e93006b1f59', 1, 'default', NULL, '2023-08-17 22:55:42', NULL, '2023-08-17 10:55:42', NULL, '2023-08-17 10:55:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (900, 6, '2f4ac24d6b384367ae6a7e92fd913d55', 1, 'default', NULL, '2023-08-17 22:58:17', NULL, '2023-08-17 10:58:17', NULL, '2023-08-17 10:58:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (901, 6, 'ba0f7ad4a1f14ce8965634ccf34d2f2a', 1, 'default', NULL, '2023-08-17 23:01:20', NULL, '2023-08-17 11:01:20', NULL, '2023-08-17 11:01:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (902, 6, '176f83457d0d42a1b859943bb7e16c2b', 1, 'default', NULL, '2023-08-18 04:15:07', NULL, '2023-08-17 16:15:07', NULL, '2023-08-17 16:15:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (903, 6, 'c33f0539717f49098a951c03eb56059a', 1, 'default', NULL, '2023-08-18 04:25:04', NULL, '2023-08-17 16:25:04', NULL, '2023-08-17 16:25:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (904, 6, '899c037e648e479db56d5d95f5b81f9a', 1, 'default', NULL, '2023-08-18 04:26:47', NULL, '2023-08-17 16:26:47', NULL, '2023-08-17 16:26:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (905, 6, 'e224cc6280a9470c8c2dea451d0b4ddb', 1, 'default', NULL, '2023-08-18 04:33:43', NULL, '2023-08-17 16:33:43', NULL, '2023-08-17 16:33:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (906, 6, '93f22d60dd9742f3bcc5335dc5f1406c', 1, 'default', NULL, '2023-08-18 04:49:04', NULL, '2023-08-17 16:49:04', NULL, '2023-08-17 16:49:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (907, 6, '2541018be8634e6a9c9c770db373f1d0', 1, 'default', NULL, '2023-08-18 04:52:42', NULL, '2023-08-17 16:52:42', NULL, '2023-08-17 16:52:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (908, 6, '618207caa54749d6b4f5a106859803de', 1, 'default', NULL, '2023-08-18 04:57:37', NULL, '2023-08-17 16:57:37', NULL, '2023-08-17 16:57:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (909, 6, '830b0da2fede4de6aa8f76b98a975d7d', 1, 'default', NULL, '2023-08-18 05:01:17', NULL, '2023-08-17 17:01:17', NULL, '2023-08-17 17:01:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (910, 6, '0270b38b5f94474cb8d9d33c00316517', 1, 'default', NULL, '2023-08-18 05:04:39', NULL, '2023-08-17 17:04:39', NULL, '2023-08-17 17:04:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (911, 6, '219c1ce7cf4f40a1b81608f875ef08a8', 1, 'default', NULL, '2023-08-18 05:08:50', NULL, '2023-08-17 17:08:50', NULL, '2023-08-17 17:08:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (912, 6, '7b5a364310c84f5191cb4583856d6ba2', 1, 'default', NULL, '2023-08-19 21:35:35', NULL, '2023-08-19 09:35:35', NULL, '2023-08-19 09:35:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (913, 6, '8d0c07f714a3415fbee5ef359b139859', 1, 'default', NULL, '2023-08-19 21:36:15', NULL, '2023-08-19 09:36:15', NULL, '2023-08-19 09:36:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (914, 6, '9c9013360e8c49b2a675a969e71108d5', 1, 'default', NULL, '2023-08-19 21:38:03', NULL, '2023-08-19 09:38:03', NULL, '2023-08-19 09:38:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (915, 6, 'c93a3f4d87554488a7c74132648f89ba', 1, 'default', NULL, '2023-08-19 21:51:19', NULL, '2023-08-19 09:51:19', NULL, '2023-08-19 09:51:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (916, 6, '0ba0f430e9ad48a4a261ac6365245abe', 1, 'default', NULL, '2023-08-19 21:52:37', NULL, '2023-08-19 09:52:37', NULL, '2023-08-19 09:52:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (917, 6, 'd0cc9599c2b24253bbc93885abe9e80e', 1, 'default', NULL, '2023-08-19 21:53:36', NULL, '2023-08-19 09:53:36', NULL, '2023-08-19 09:53:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (918, 6, '77e354274cfd47ca8791d08bb2d71654', 1, 'default', NULL, '2023-08-19 21:54:31', NULL, '2023-08-19 09:54:31', NULL, '2023-08-19 09:54:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (919, 6, '4c976b0ab1c34fba8f4f36111355e7aa', 1, 'default', NULL, '2023-08-19 21:54:59', NULL, '2023-08-19 09:54:59', NULL, '2023-08-19 09:54:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (920, 6, 'dcb89e9dcb174489a92f95f88432a562', 1, 'default', NULL, '2023-08-19 21:58:50', NULL, '2023-08-19 09:58:50', NULL, '2023-08-19 09:58:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (921, 6, '37e3d78b4e304198843d87bc8b65a542', 1, 'default', NULL, '2023-08-19 21:59:54', NULL, '2023-08-19 09:59:54', NULL, '2023-08-19 09:59:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (922, 6, '4471808690bb4f16b0fc04ce0b93a193', 1, 'default', NULL, '2023-08-19 21:59:55', NULL, '2023-08-19 09:59:55', NULL, '2023-08-19 09:59:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (923, 6, '035071568e0d47308c3bedc335919785', 1, 'default', NULL, '2023-08-19 22:00:09', '6', '2023-08-19 10:00:09', '6', '2023-08-19 10:00:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (924, 6, 'ce320e1a1013479593b298837fa55f6f', 1, 'default', NULL, '2023-08-19 22:04:24', NULL, '2023-08-19 10:04:24', NULL, '2023-08-19 10:04:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (925, 6, 'aa0551415f5247f4aea861412f2c1879', 1, 'default', NULL, '2023-08-19 22:05:21', '6', '2023-08-19 10:05:21', '6', '2023-08-19 10:05:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (926, 6, '9bc71f8b9e0d42ebaeabc3f51eab04b7', 1, 'default', NULL, '2023-08-19 22:52:37', NULL, '2023-08-19 10:52:37', NULL, '2023-08-19 10:52:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (927, 6, 'becee216fc32400cb72fc22a67f2594c', 1, 'default', NULL, '2023-08-19 22:53:06', NULL, '2023-08-19 10:53:06', NULL, '2023-08-19 10:53:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (928, 6, '7a54d988042d4b48b4ca256650dc777e', 1, 'default', NULL, '2023-08-19 22:53:37', '6', '2023-08-19 10:53:37', '6', '2023-08-19 10:53:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (929, 6, 'e7b4e33a7137465cb936a7fb57902e6e', 1, 'default', NULL, '2023-08-20 22:51:45', NULL, '2023-08-20 10:51:45', NULL, '2023-08-20 10:51:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (930, 6, '493e1a4604534693ab87d2a6b0baf286', 1, 'default', NULL, '2023-08-20 22:52:26', '6', '2023-08-20 10:52:26', '6', '2023-08-20 10:52:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (931, 6, '44321b9efc78415486cae0292e9c5509', 1, 'default', NULL, '2023-08-20 22:53:55', NULL, '2023-08-20 10:53:55', NULL, '2023-08-20 10:53:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (932, 6, 'eec58644bd3d4857bf75cc2b685bbbfa', 1, 'default', NULL, '2023-08-20 22:54:19', '6', '2023-08-20 10:54:19', '6', '2023-08-20 10:54:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (933, 6, '3b8b1559053e4c718cc92473eb5cef9c', 1, 'default', NULL, '2023-08-20 22:54:56', NULL, '2023-08-20 10:54:56', NULL, '2023-08-20 10:54:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (934, 6, '1c0a65b8aeec4da8856cabdab8b8b55f', 1, 'default', NULL, '2023-08-20 22:55:16', '6', '2023-08-20 10:55:16', '6', '2023-08-20 10:55:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (935, 6, 'dbfdcf49dc504fe6ab9cbad2135fec4c', 1, 'default', NULL, '2023-08-20 23:42:34', NULL, '2023-08-20 11:42:34', NULL, '2023-08-20 11:42:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (936, 6, '0d37c6809e7f44eb8f52d41699170476', 1, 'default', NULL, '2023-08-21 04:18:20', NULL, '2023-08-20 16:18:20', NULL, '2023-08-20 16:18:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (937, 6, '493967daca6f422c8ef511221ca2e11b', 1, 'default', NULL, '2023-08-21 04:18:24', NULL, '2023-08-20 16:18:24', NULL, '2023-08-20 16:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (938, 6, '3998aca330de4ca2858e2e57239e7742', 1, 'default', NULL, '2023-08-21 04:21:10', '6', '2023-08-20 16:21:10', '6', '2023-08-20 16:21:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (939, 6, '770b7e471aa14b8090ffef075dc37ef4', 1, 'default', NULL, '2023-08-21 04:28:28', NULL, '2023-08-20 16:28:28', NULL, '2023-08-20 16:28:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (940, 6, 'c3e0547aeebf4bd3a53c5e98787b7db9', 1, 'default', NULL, '2023-08-21 04:39:40', NULL, '2023-08-20 16:39:40', NULL, '2023-08-20 16:39:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (941, 6, '2298dc1721c246c38dde5599582aad8a', 1, 'default', NULL, '2023-08-21 21:57:33', NULL, '2023-08-21 09:57:33', NULL, '2023-08-21 09:57:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (942, 6, '25bca58a6feb483ab5fba370d167e641', 1, 'default', NULL, '2023-08-21 22:00:43', NULL, '2023-08-21 10:00:43', NULL, '2023-08-21 10:00:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (943, 6, '262a88eac95b4fb0902c7f0f530e3915', 1, 'default', NULL, '2023-08-21 22:02:31', NULL, '2023-08-21 10:02:31', NULL, '2023-08-21 10:02:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (944, 6, '5634f697dafe42c2bcca41a35009a742', 1, 'default', NULL, '2023-08-21 22:34:18', NULL, '2023-08-21 10:34:18', NULL, '2023-08-21 10:34:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (945, 6, '95425a7e87754a4fb59f23624a3cad4d', 1, 'default', NULL, '2023-08-21 22:44:34', NULL, '2023-08-21 10:44:34', NULL, '2023-08-21 10:44:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (946, 6, '1f9217aa9c0144158dd61e1b763f1a23', 1, 'default', NULL, '2023-08-21 22:46:19', NULL, '2023-08-21 10:46:19', NULL, '2023-08-21 10:46:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (947, 6, 'ac23c2ecbf7d49d2a34e13056729c007', 1, 'default', NULL, '2023-08-21 22:46:22', NULL, '2023-08-21 10:46:22', NULL, '2023-08-21 10:46:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (948, 6, '3f6af65ea3fe46c792a2ec94a4ec295f', 1, 'default', NULL, '2023-08-21 22:46:27', NULL, '2023-08-21 10:46:27', NULL, '2023-08-21 10:46:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (949, 6, '800551ddb5d54d68b95e83f920159be6', 1, 'default', NULL, '2023-08-21 22:47:59', NULL, '2023-08-21 10:47:59', NULL, '2023-08-21 10:47:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (950, 6, 'cfc51e111ecc4cc597594ce0ad493d9d', 1, 'default', NULL, '2023-08-21 22:48:05', NULL, '2023-08-21 10:48:05', NULL, '2023-08-21 10:48:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (951, 6, 'c44c8c5eb45f44f8a33d5cdfb923cc26', 1, 'default', NULL, '2023-08-21 22:49:59', NULL, '2023-08-21 10:49:59', NULL, '2023-08-21 10:49:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (952, 6, '68fd765bd39b4ef5a3a25d4ae9fe036e', 1, 'default', NULL, '2023-08-21 22:53:00', NULL, '2023-08-21 10:53:00', NULL, '2023-08-21 10:53:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (953, 6, 'a9ebc7627b954e1ea2e40291df73334e', 1, 'default', NULL, '2023-08-21 22:53:46', NULL, '2023-08-21 10:53:46', NULL, '2023-08-21 10:53:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (954, 6, '1f17b1d872cf4c71a0527178f2bebe0f', 1, 'default', NULL, '2023-08-21 22:55:11', NULL, '2023-08-21 10:55:11', NULL, '2023-08-21 10:55:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (955, 6, '05b960daf54f40f8a3aef8ccd2a8af75', 1, 'default', NULL, '2023-08-21 22:56:36', NULL, '2023-08-21 10:56:36', NULL, '2023-08-21 10:56:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (956, 6, 'c7e936c8dda6470e8d5c7a46acb86426', 1, 'default', NULL, '2023-08-22 23:00:56', NULL, '2023-08-22 11:00:56', NULL, '2023-08-22 11:00:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (957, 6, '24d9c20b49cb4602a3539240871b667b', 1, 'default', NULL, '2023-08-22 23:14:08', NULL, '2023-08-22 11:14:08', NULL, '2023-08-22 11:14:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (958, 6, 'f3eb813f9e2b4202872d68f670955846', 1, 'default', NULL, '2023-08-22 23:23:11', NULL, '2023-08-22 11:23:11', NULL, '2023-08-22 11:23:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (959, 6, '3f403416379f4bcca2ff4d0a32cb8900', 1, 'default', NULL, '2023-08-22 23:53:51', NULL, '2023-08-22 11:53:51', NULL, '2023-08-22 11:53:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (960, 6, 'd01c9f0217a841a0b5c5283a8d18aefe', 1, 'default', NULL, '2023-08-24 23:23:55', NULL, '2023-08-24 11:23:55', NULL, '2023-08-24 11:23:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (961, 6, 'a9ceecf9e19640c8be420e1fb3d5d5e9', 1, 'default', NULL, '2023-08-24 23:24:52', NULL, '2023-08-24 11:24:52', NULL, '2023-08-24 11:24:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (962, 6, 'd2883561cba448719339d9d93c82b6e6', 1, 'default', NULL, '2023-08-24 23:30:46', NULL, '2023-08-24 11:30:46', NULL, '2023-08-24 11:30:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (963, 6, '03b4e206456749f090cb459977cb4874', 1, 'default', NULL, '2023-08-24 23:31:45', NULL, '2023-08-24 11:31:45', NULL, '2023-08-24 11:31:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (964, 6, 'f0ff0b90c2254d6b87be00281e5ac7d7', 1, 'default', NULL, '2023-08-24 23:31:51', NULL, '2023-08-24 11:31:51', NULL, '2023-08-24 11:31:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (965, 6, '2df054be56224b658e2448535ed6f99b', 1, 'default', NULL, '2023-08-24 23:46:50', NULL, '2023-08-24 11:46:50', NULL, '2023-08-24 11:46:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (966, 6, '7ddc56ae29b64f1aa71cecf8330deadc', 1, 'default', NULL, '2023-08-25 05:01:49', NULL, '2023-08-24 17:01:49', NULL, '2023-08-24 17:01:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (967, 6, '6c107d61c77c4400af57ddbbfb7bc30d', 1, 'default', NULL, '2023-08-25 05:05:15', NULL, '2023-08-24 17:05:15', NULL, '2023-08-24 17:05:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (968, 6, '45a8f45692b549538765aa1deda72ec2', 1, 'default', NULL, '2023-08-25 06:07:26', NULL, '2023-08-24 18:07:26', NULL, '2023-08-24 18:07:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (969, 6, 'f2e36a35f9d5435b8ac37b6727f25456', 1, 'default', NULL, '2023-08-25 06:11:17', NULL, '2023-08-24 18:11:17', NULL, '2023-08-24 18:11:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (970, 6, '6af1f6302fbc414b84fff3318378296a', 1, 'default', NULL, '2023-08-26 06:42:44', NULL, '2023-08-25 18:42:44', NULL, '2023-08-25 18:42:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (971, 6, 'd3835c7e101947e6a2efdc296fab5d37', 1, 'default', NULL, '2023-08-26 21:45:46', NULL, '2023-08-26 09:45:46', NULL, '2023-08-26 09:45:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (972, 6, 'cb1e3b609e944c4aa45307f98d50f4e9', 1, 'default', NULL, '2023-08-26 23:07:15', NULL, '2023-08-26 11:07:15', NULL, '2023-08-26 11:07:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (973, 6, 'e505433c9fdf4ad9880f39818bc02b87', 1, 'default', NULL, '2023-08-26 23:14:54', NULL, '2023-08-26 11:14:54', NULL, '2023-08-26 11:14:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (974, 6, 'cf7284d5079f4af986ea56643f8237a1', 1, 'default', NULL, '2023-08-26 23:16:52', NULL, '2023-08-26 11:16:52', NULL, '2023-08-26 11:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (975, 6, '03bff3b58ffd4b93813abe0a547d5cdb', 1, 'default', NULL, '2023-08-26 23:44:25', NULL, '2023-08-26 11:44:25', NULL, '2023-08-26 11:44:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (976, 6, 'a68a01a8fc134cda8398a9cc07a5a437', 1, 'default', NULL, '2023-08-26 23:48:41', NULL, '2023-08-26 11:48:41', NULL, '2023-08-26 11:48:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (977, 6, '10391d4dd65f4804916ae9ad262fbc02', 1, 'default', NULL, '2023-08-27 04:18:00', NULL, '2023-08-26 16:18:00', NULL, '2023-08-26 16:18:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (978, 6, '16a42f65e0494a8b89a6406eae8ec073', 1, 'default', NULL, '2023-08-27 04:27:09', NULL, '2023-08-26 16:27:09', NULL, '2023-08-26 16:27:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (979, 6, 'fadbbf1b7ed64107982b87206a9535bc', 1, 'default', NULL, '2023-08-27 04:27:39', NULL, '2023-08-26 16:27:39', NULL, '2023-08-26 16:27:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (980, 6, '1c677a3488434874be0e95ced8f7bf4f', 1, 'default', NULL, '2023-08-27 04:28:24', '6', '2023-08-26 16:28:24', '6', '2023-08-26 16:28:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (981, 6, '45df05f6244b478d89adf89e57b391ec', 1, 'default', NULL, '2023-08-27 04:28:29', '6', '2023-08-26 16:28:29', '6', '2023-08-26 16:28:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (982, 6, '334634fa53ec48f49b3c8c188be1ff7e', 1, 'default', NULL, '2023-08-27 04:59:54', NULL, '2023-08-26 16:59:54', NULL, '2023-08-26 16:59:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (983, 6, 'b7ac2e9982c146d4a88d84b7fc5ef5b4', 1, 'default', NULL, '2023-08-27 05:08:45', NULL, '2023-08-26 17:08:45', NULL, '2023-08-26 17:08:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (984, 6, 'e79acb9c4af94c5e839850b9ad0d7927', 1, 'default', NULL, '2023-08-27 05:28:43', NULL, '2023-08-26 17:28:43', NULL, '2023-08-26 17:28:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (985, 6, '6ed94a0753b04cc0bac8a747e18f923c', 1, 'default', NULL, '2023-08-27 05:29:20', NULL, '2023-08-26 17:29:20', NULL, '2023-08-26 17:29:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (986, 6, '5789e5926aa844649ae7e25fcc9cec08', 1, 'default', NULL, '2023-08-29 04:48:58', NULL, '2023-08-28 16:48:58', NULL, '2023-08-28 16:48:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (987, 6, 'fea3b08a5471475e969c0953455fb429', 1, 'default', NULL, '2023-08-29 05:23:21', NULL, '2023-08-28 17:23:21', NULL, '2023-08-28 17:23:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (988, 6, 'b8a8c4a2eb6a453482ffe14ce36ea260', 1, 'default', NULL, '2023-08-31 05:12:11', NULL, '2023-08-30 17:12:11', NULL, '2023-08-30 17:12:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (989, 6, '60e6ef6361e04cef927cba586e25b39a', 1, 'default', NULL, '2023-08-31 05:18:27', NULL, '2023-08-30 17:18:27', NULL, '2023-08-30 17:18:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (990, 6, 'bd45a8f958c0477ba4434d3af6629e94', 1, 'default', NULL, '2023-08-31 05:19:21', NULL, '2023-08-30 17:19:21', NULL, '2023-08-30 17:19:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (991, 6, '10707ca16b8745e596ee01aa443ec9fa', 1, 'default', NULL, '2023-08-31 05:56:15', NULL, '2023-08-30 17:56:15', NULL, '2023-08-30 17:56:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (992, 6, '88af04ae55bf403b8406d1152d8c541c', 1, 'default', NULL, '2023-08-31 06:52:17', NULL, '2023-08-30 18:52:17', NULL, '2023-08-30 18:52:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (993, 6, '77bf467260414292b65b629be426d562', 1, 'default', NULL, '2023-08-31 21:29:04', NULL, '2023-08-31 09:29:04', NULL, '2023-08-31 09:29:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (994, 6, '64fb6fa953a642d89b05900245898619', 1, 'default', NULL, '2023-08-31 21:30:11', NULL, '2023-08-31 09:30:11', NULL, '2023-08-31 09:30:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (995, 6, 'f11129d352be46fd95e8e863599c62b5', 1, 'default', NULL, '2023-08-31 23:44:35', NULL, '2023-08-31 11:44:35', NULL, '2023-08-31 11:44:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (996, 6, '48e04e808a2b49b8aa3fe61392303144', 1, 'default', NULL, '2023-08-31 23:49:38', NULL, '2023-08-31 11:49:38', NULL, '2023-08-31 11:49:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (997, 6, 'fc7d918095b6420fa14a6c92216d9482', 1, 'default', NULL, '2023-08-31 23:53:04', NULL, '2023-08-31 11:53:04', NULL, '2023-08-31 11:53:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (998, 6, '49301873a5834f978ae1530692121778', 1, 'default', NULL, '2023-08-31 23:58:07', NULL, '2023-08-31 11:58:07', NULL, '2023-08-31 11:58:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (999, 6, '78ae69282a114edf96a532e06510a102', 1, 'default', NULL, '2023-09-01 21:29:05', NULL, '2023-09-01 09:29:05', NULL, '2023-09-01 09:29:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1000, 6, 'f02b9afee5f348f1b38e654120cbc965', 1, 'default', NULL, '2023-09-01 21:29:37', NULL, '2023-09-01 09:29:37', NULL, '2023-09-01 09:29:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1001, 6, 'c39400e47b664c9e986fe97602e417e7', 1, 'default', NULL, '2023-09-01 21:42:34', NULL, '2023-09-01 09:42:34', NULL, '2023-09-01 09:42:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1002, 6, '30c06a372e04496c97846e38e751a477', 1, 'default', NULL, '2023-09-01 21:48:37', NULL, '2023-09-01 09:48:37', NULL, '2023-09-01 09:48:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1003, 6, '0a517b7c3f544129bb2a86c8c3f2f639', 1, 'default', NULL, '2023-09-02 05:24:15', NULL, '2023-09-01 17:24:15', NULL, '2023-09-01 17:24:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1004, 6, '57a45c08bf7543b4999a8694823008f3', 1, 'default', NULL, '2023-09-02 05:36:30', NULL, '2023-09-01 17:36:30', NULL, '2023-09-01 17:36:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1005, 6, 'b1aa85e924a14070b55b8a6a23ff4199', 1, 'default', NULL, '2023-09-02 05:38:18', NULL, '2023-09-01 17:38:18', NULL, '2023-09-01 17:38:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1006, 6, '0fe8aae8fc464ef78b6a2289b113a5dd', 1, 'default', NULL, '2023-09-02 05:40:56', NULL, '2023-09-01 17:40:56', NULL, '2023-09-01 17:40:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1007, 6, 'd6f384f83c3843f391ce7c64874b28a8', 1, 'default', NULL, '2023-09-02 05:43:33', NULL, '2023-09-01 17:43:33', NULL, '2023-09-01 17:43:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1008, 6, 'd98d05b9cb06470f9b3022f6c6cf6c97', 1, 'default', NULL, '2023-09-02 05:44:23', NULL, '2023-09-01 17:44:23', NULL, '2023-09-01 17:44:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1009, 6, 'e23a638df23f4057a1e3262a827de8ad', 1, 'default', NULL, '2023-09-02 06:18:28', NULL, '2023-09-01 18:18:28', NULL, '2023-09-01 18:18:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1010, 6, '3bbcaa2a84bf4cfba8336e8c945d6ae6', 1, 'default', NULL, '2023-09-02 06:18:55', NULL, '2023-09-01 18:18:55', NULL, '2023-09-01 18:18:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1011, 6, '42063dd062b0493695644a11c05c0a59', 1, 'default', NULL, '2023-09-02 06:22:52', NULL, '2023-09-01 18:22:52', NULL, '2023-09-01 18:22:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1012, 6, '63529b2562a94f13a8df7d2699f2dfef', 1, 'default', NULL, '2023-09-02 06:28:07', NULL, '2023-09-01 18:28:07', NULL, '2023-09-01 18:28:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1013, 6, '266498a6ffe34b75a2027f867a7df11c', 1, 'default', NULL, '2023-09-02 06:35:45', NULL, '2023-09-01 18:35:45', NULL, '2023-09-01 18:35:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1014, 6, '7b7def5ed9c1476f89ed8899beb6fcf5', 1, 'default', NULL, '2023-09-02 06:39:02', NULL, '2023-09-01 18:39:02', NULL, '2023-09-01 18:39:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1015, 6, '63ae936f7a7648c28bcf83b5383f4074', 1, 'default', NULL, '2023-09-02 06:39:23', NULL, '2023-09-01 18:39:23', NULL, '2023-09-01 18:39:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1016, 6, '6047ed31f1964e329283cfa424c77154', 1, 'default', NULL, '2023-09-02 06:39:50', NULL, '2023-09-01 18:39:50', NULL, '2023-09-01 18:39:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1017, 6, 'e2ae908102044569883ab0b917c9b806', 1, 'default', NULL, '2023-09-02 06:41:12', NULL, '2023-09-01 18:41:12', NULL, '2023-09-01 18:41:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1018, 6, '4b46fdd0e3f042e9afc9caf85fdf2748', 1, 'default', NULL, '2023-09-02 06:41:17', NULL, '2023-09-01 18:41:17', NULL, '2023-09-01 18:41:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1019, 6, '64e284ef751148b59853e318d20e9c0a', 1, 'default', NULL, '2023-09-02 06:45:26', NULL, '2023-09-01 18:45:26', NULL, '2023-09-01 18:45:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1020, 6, '3f0a96a2a7fc4898b9f561f1bba9fc28', 1, 'default', NULL, '2023-09-02 06:45:35', NULL, '2023-09-01 18:45:35', NULL, '2023-09-01 18:45:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1021, 6, '73d2e4e1ab6a4bd795dce3d29fab901d', 1, 'default', NULL, '2023-09-02 06:48:25', NULL, '2023-09-01 18:48:25', NULL, '2023-09-01 18:48:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1022, 6, '9128034d966b4d6a89640a825680d675', 1, 'default', NULL, '2023-09-02 06:50:54', NULL, '2023-09-01 18:50:54', NULL, '2023-09-01 18:50:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1023, 6, '437ae7b46d5e416ea4b73dbabc9bb3f0', 1, 'default', NULL, '2023-09-02 06:51:16', NULL, '2023-09-01 18:51:16', NULL, '2023-09-01 18:51:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1024, 6, 'fc1ac19fd2174f7e92302c4b792b88de', 1, 'default', NULL, '2023-09-02 06:51:33', NULL, '2023-09-01 18:51:33', NULL, '2023-09-01 18:51:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1025, 6, '0fc561a20deb48c8bb8e56863065747b', 1, 'default', NULL, '2023-09-02 06:52:44', NULL, '2023-09-01 18:52:44', NULL, '2023-09-01 18:52:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1026, 6, '03b0c81818034db490a333d92bd933bd', 1, 'default', NULL, '2023-09-02 06:56:35', NULL, '2023-09-01 18:56:35', NULL, '2023-09-01 18:56:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1027, 6, '25042398414840239ef5d81246a21301', 1, 'default', NULL, '2023-09-04 04:05:13', NULL, '2023-09-03 16:05:13', NULL, '2023-09-03 16:05:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1028, 6, '0e4eba184de6460da52fd60de3aff9bc', 1, 'default', NULL, '2023-09-04 04:09:16', NULL, '2023-09-03 16:09:16', NULL, '2023-09-03 16:09:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1029, 6, '01ac70ce6c5a4a78bdc3f0111e4cb11e', 1, 'default', NULL, '2023-09-04 04:11:02', NULL, '2023-09-03 16:11:02', NULL, '2023-09-03 16:11:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1030, 6, '878920aca5864e45a29cf28718ea1b22', 1, 'default', NULL, '2023-09-04 04:11:47', NULL, '2023-09-03 16:11:47', NULL, '2023-09-03 16:11:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1031, 6, 'b50746a1179b411290939ff947809a5e', 1, 'default', NULL, '2023-09-04 04:13:24', NULL, '2023-09-03 16:13:24', NULL, '2023-09-03 16:13:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1032, 6, 'b2fea444be874103bb89012a0ac04f42', 1, 'default', NULL, '2023-09-04 04:14:27', NULL, '2023-09-03 16:14:27', NULL, '2023-09-03 16:14:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1033, 6, '7cf5b13d26e74decb7da2b9a86826893', 1, 'default', NULL, '2023-09-04 04:15:45', NULL, '2023-09-03 16:15:45', NULL, '2023-09-03 16:15:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1034, 6, 'e774fa4f13734dd3be729d8bd091e8c5', 1, 'default', NULL, '2023-09-04 04:16:17', NULL, '2023-09-03 16:16:17', NULL, '2023-09-03 16:16:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1035, 6, '259dcc9b111040c88eb76b44af56dcea', 1, 'default', NULL, '2023-09-04 04:16:56', NULL, '2023-09-03 16:16:56', NULL, '2023-09-03 16:16:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1036, 6, 'fc46280459064587958c876f634f22fd', 1, 'default', NULL, '2023-09-04 04:17:33', NULL, '2023-09-03 16:17:33', NULL, '2023-09-03 16:17:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1037, 6, '1dc8d92eccf14315a88867d3d80c4b3b', 1, 'default', NULL, '2023-09-04 04:17:57', NULL, '2023-09-03 16:17:57', NULL, '2023-09-03 16:17:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1038, 6, 'd4fa2608f8cc4e58a79bf0a276f4f444', 1, 'default', NULL, '2023-09-04 04:18:14', NULL, '2023-09-03 16:18:14', NULL, '2023-09-03 16:18:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1039, 6, '947c4b3f12324e1588a8b7a91a1ad3cb', 1, 'default', NULL, '2023-09-04 04:18:36', NULL, '2023-09-03 16:18:36', NULL, '2023-09-03 16:18:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1040, 6, '12e68535dcee4fdda010d3730b60dd53', 1, 'default', NULL, '2023-09-04 04:21:35', NULL, '2023-09-03 16:21:35', NULL, '2023-09-03 16:21:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1041, 6, '905a39c6f02a49bab3d34f43077d0f52', 1, 'default', NULL, '2023-09-04 04:22:10', NULL, '2023-09-03 16:22:10', NULL, '2023-09-03 16:22:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1042, 6, '8a065c647f9d457791c671b118266639', 1, 'default', NULL, '2023-09-04 04:22:40', NULL, '2023-09-03 16:22:40', NULL, '2023-09-03 16:22:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1043, 6, 'a846cf7e11e244fe9bc45909b7315ef5', 1, 'default', NULL, '2023-09-04 04:25:17', NULL, '2023-09-03 16:25:17', NULL, '2023-09-03 16:25:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1044, 6, 'dab0ba81bd954e93b7c1228831cd0d61', 1, 'default', NULL, '2023-09-04 04:29:14', NULL, '2023-09-03 16:29:14', NULL, '2023-09-03 16:29:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1045, 6, '97ac586b1f284298b76b03f3fee7a98e', 1, 'default', NULL, '2023-09-04 04:29:29', NULL, '2023-09-03 16:29:29', NULL, '2023-09-03 16:29:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1046, 6, '3bf3448e290f4462877cc2f9b885ed38', 1, 'default', NULL, '2023-09-04 04:33:23', NULL, '2023-09-03 16:33:23', NULL, '2023-09-03 16:33:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1047, 6, '62275be909524d2b9c92643ba186697b', 1, 'default', NULL, '2023-09-04 04:37:48', NULL, '2023-09-03 16:37:48', NULL, '2023-09-03 16:37:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1048, 6, '73eb368f60a445959ceec64af8505e39', 1, 'default', NULL, '2023-09-04 04:38:17', NULL, '2023-09-03 16:38:17', NULL, '2023-09-03 16:38:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1049, 6, '2d828b4ea2b14e1487f0558433e0a35d', 1, 'default', NULL, '2023-09-04 04:40:50', NULL, '2023-09-03 16:40:50', NULL, '2023-09-03 16:40:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1050, 6, '9fd32029185446efa898413537fb14d7', 1, 'default', NULL, '2023-09-04 04:41:35', NULL, '2023-09-03 16:41:35', NULL, '2023-09-03 16:41:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1051, 6, '43c68f4987204c8ebb80fe11cf1c0626', 1, 'default', NULL, '2023-09-04 04:48:32', '6', '2023-09-03 16:48:32', '6', '2023-09-03 16:48:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1052, 6, 'f4d60dc2d53f46a281052a999f7e05e2', 1, 'default', NULL, '2023-09-04 04:50:36', NULL, '2023-09-03 16:50:36', NULL, '2023-09-03 16:50:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1053, 6, 'c0b7840082504ac4b1dbeed0a033ee39', 1, 'default', NULL, '2023-09-04 05:14:23', NULL, '2023-09-03 17:14:23', NULL, '2023-09-03 17:14:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1054, 6, '6971751b192e407bbc9520b207e44f5a', 1, 'default', NULL, '2023-09-04 05:19:03', NULL, '2023-09-03 17:19:03', NULL, '2023-09-03 17:19:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1055, 6, 'dc67f17c8fbe406d90070b3b612a404b', 1, 'default', NULL, '2023-09-04 05:25:25', NULL, '2023-09-03 17:25:25', NULL, '2023-09-03 17:25:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1056, 6, '005d3abc12e34ef79a6457f5a8d7160f', 1, 'default', NULL, '2023-09-04 05:26:14', NULL, '2023-09-03 17:26:14', NULL, '2023-09-03 17:26:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1057, 6, '0a7d13203a284cc2b53ca83761d86228', 1, 'default', NULL, '2023-09-04 05:26:55', NULL, '2023-09-03 17:26:55', NULL, '2023-09-03 17:26:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1058, 6, '19b39e18574a4ce59b5902ac477bdf12', 1, 'default', NULL, '2023-09-04 05:30:27', NULL, '2023-09-03 17:30:27', NULL, '2023-09-03 17:30:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1059, 6, '1bb37ccbb1df41efa6e6ca7e4964e6d4', 1, 'default', NULL, '2023-09-04 05:35:06', NULL, '2023-09-03 17:35:06', NULL, '2023-09-03 17:35:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1060, 6, '946bbf66d50d4b8fb909ef9c71f7b516', 1, 'default', NULL, '2023-09-04 05:36:20', NULL, '2023-09-03 17:36:20', NULL, '2023-09-03 17:36:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1061, 6, 'ea6964efd10e4e809f0abcc6719ef711', 1, 'default', NULL, '2023-09-04 05:37:22', NULL, '2023-09-03 17:37:22', NULL, '2023-09-03 17:37:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1062, 6, 'b718cfb60d7b4379a4a13cf94fd3706f', 1, 'default', NULL, '2023-09-04 05:47:02', NULL, '2023-09-03 17:47:02', NULL, '2023-09-03 17:47:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1063, 6, '630ab28c069c45f4a48a538b1185598f', 1, 'default', NULL, '2023-09-04 05:48:54', NULL, '2023-09-03 17:48:54', NULL, '2023-09-03 17:48:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1064, 6, '72f73b06d4d44441814b5b62bac73d9b', 1, 'default', NULL, '2023-09-04 06:17:56', NULL, '2023-09-03 18:17:56', NULL, '2023-09-03 18:17:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1065, 6, '4177ee5551df486eb57b64df57ef706c', 1, 'default', NULL, '2023-09-04 21:55:30', NULL, '2023-09-04 09:55:30', NULL, '2023-09-04 09:55:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1066, 6, '17071c56e38346d3aedcdc7195da33ca', 1, 'default', NULL, '2023-09-04 22:15:17', NULL, '2023-09-04 10:15:17', NULL, '2023-09-04 10:15:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1067, 6, '787fe1e3fe1b43bbace22bdea7992872', 1, 'default', NULL, '2023-09-04 22:17:29', NULL, '2023-09-04 10:17:29', NULL, '2023-09-04 10:17:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1068, 6, 'a77e27ec130d424db1d855b2957a63c2', 1, 'default', NULL, '2023-09-04 22:37:46', NULL, '2023-09-04 10:37:46', NULL, '2023-09-04 10:37:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1069, 6, '8f6e63439b344eb8a8f57698d58ab1ad', 1, 'default', NULL, '2023-09-04 22:45:08', NULL, '2023-09-04 10:45:08', NULL, '2023-09-04 10:45:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1070, 6, '989b41a17cdf4b6f92f31fee5f9ab358', 1, 'default', NULL, '2023-09-04 22:46:30', NULL, '2023-09-04 10:46:30', NULL, '2023-09-04 10:46:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1071, 6, 'b1660d96146e424396084ce5ac430472', 1, 'default', NULL, '2023-09-04 22:48:22', NULL, '2023-09-04 10:48:22', NULL, '2023-09-04 10:48:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1072, 6, '5b40ffd9a0f249e38eaad7beba75d135', 1, 'default', NULL, '2023-09-04 22:51:10', NULL, '2023-09-04 10:51:10', NULL, '2023-09-04 10:51:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1073, 6, '456f9087b43a4bc7ad41054b6d5b2b0c', 1, 'default', NULL, '2023-09-04 22:52:24', NULL, '2023-09-04 10:52:24', NULL, '2023-09-04 10:52:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1074, 6, '19141830b0134f36ac750c2720e6a159', 1, 'default', NULL, '2023-09-04 22:54:11', NULL, '2023-09-04 10:54:11', NULL, '2023-09-04 10:54:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1075, 6, 'e6f55797b5b040c78eee99cd75e5155c', 1, 'default', NULL, '2023-09-04 23:53:57', NULL, '2023-09-04 11:53:57', NULL, '2023-09-04 11:53:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1076, 6, '172ea5ecd67c4aecbfe6c73e600bf8d3', 1, 'default', NULL, '2023-09-04 23:54:37', NULL, '2023-09-04 11:54:37', NULL, '2023-09-04 11:54:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1077, 6, '1c43cdf207cd43f287f6225781b3db81', 1, 'default', NULL, '2023-09-04 23:56:53', NULL, '2023-09-04 11:56:53', NULL, '2023-09-04 11:56:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1078, 6, 'a986eaa60278418ab44bfd0880faea68', 1, 'default', NULL, '2023-09-05 02:14:53', NULL, '2023-09-04 14:14:53', NULL, '2023-09-04 14:14:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1079, 6, 'c4058ce581a34b2e87541fa15cad5d4e', 1, 'default', NULL, '2023-09-05 02:17:32', NULL, '2023-09-04 14:17:32', NULL, '2023-09-04 14:17:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1080, 6, '29e1cacd66314ba98d4a9b31c64eaf32', 1, 'default', NULL, '2023-09-05 02:18:23', NULL, '2023-09-04 14:18:23', NULL, '2023-09-04 14:18:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1081, 6, 'dfec6ed91fe84bd8b885f6cc287cb175', 1, 'default', NULL, '2023-09-05 02:19:25', NULL, '2023-09-04 14:19:25', NULL, '2023-09-04 14:19:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1082, 6, '44615ed638ae456a9a8b89f3afd6cda6', 1, 'default', NULL, '2023-09-05 02:20:38', NULL, '2023-09-04 14:20:38', NULL, '2023-09-04 14:20:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1083, 1, '9b00090e92654b409a90d2f75e27b4a0', 2, 'default', NULL, '2023-09-05 05:03:51', NULL, '2023-09-04 17:03:51', NULL, '2023-09-04 18:33:23', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1084, 6, '4126dc856e4f4a808592edca6680c8b3', 1, 'default', NULL, '2023-09-05 05:12:14', NULL, '2023-09-04 17:12:14', NULL, '2023-09-04 17:12:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1085, 1, '5d25a689763c49beb49c6c19164aa326', 2, 'default', NULL, '2023-09-05 06:35:51', NULL, '2023-09-04 18:35:51', NULL, '2023-09-04 18:35:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1086, 6, 'eb672165b6b346069430455d72c2c5ea', 1, 'default', NULL, '2023-09-05 06:40:59', NULL, '2023-09-04 18:40:59', NULL, '2023-09-04 18:40:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1087, 6, 'd737cf3d52084460aa5e426e02b0083a', 1, 'default', NULL, '2023-09-05 06:43:23', NULL, '2023-09-04 18:43:23', NULL, '2023-09-04 18:43:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1088, 6, '62768a7235e64822a3f6298d50f500fc', 1, 'default', NULL, '2023-09-05 06:43:45', NULL, '2023-09-04 18:43:45', NULL, '2023-09-04 18:43:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1089, 6, 'b01239cdaac04853b2e8a0231fddaa9a', 1, 'default', NULL, '2023-09-05 06:44:50', NULL, '2023-09-04 18:44:50', NULL, '2023-09-04 18:44:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1090, 6, '4432bc7fbc884c00b1e77956029ec5af', 1, 'default', NULL, '2023-09-05 06:45:00', NULL, '2023-09-04 18:45:00', NULL, '2023-09-04 18:45:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1091, 6, 'cef79092235e4a81bc19c74dcbbbed42', 1, 'default', NULL, '2023-09-05 06:45:41', NULL, '2023-09-04 18:45:41', NULL, '2023-09-04 18:45:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1092, 6, '2e462d5d38364cae8f38020f11670e36', 1, 'default', NULL, '2023-09-05 06:46:12', NULL, '2023-09-04 18:46:12', NULL, '2023-09-04 18:46:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1093, 6, '68be0fb33f6f40c297237fa86b7ae4f2', 1, 'default', NULL, '2023-09-05 06:47:14', NULL, '2023-09-04 18:47:14', NULL, '2023-09-04 18:47:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1094, 6, '7c67d3bab2264754bb4e8fbf15393430', 1, 'default', NULL, '2023-09-05 06:49:08', NULL, '2023-09-04 18:49:08', NULL, '2023-09-04 18:49:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1095, 6, 'ecaa2b30815b40d9ba2fafa9635076e4', 1, 'default', NULL, '2023-09-05 06:51:37', NULL, '2023-09-04 18:51:37', NULL, '2023-09-04 18:51:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1096, 6, 'a8ad1b49f0244e26bffa947eddfd78ef', 1, 'default', NULL, '2023-09-05 21:21:22', NULL, '2023-09-05 09:21:22', NULL, '2023-09-05 09:21:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1097, 6, 'a09d694c88c840319db9c17473988f20', 1, 'default', NULL, '2023-09-05 21:21:58', NULL, '2023-09-05 09:21:58', NULL, '2023-09-05 09:21:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1098, 6, '06ac045b1c9a42a98f476df90dee0f40', 1, 'default', NULL, '2023-09-05 21:25:19', NULL, '2023-09-05 09:25:19', NULL, '2023-09-05 09:25:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1099, 6, '111981ea7218429f9270a179593461b7', 1, 'default', NULL, '2023-09-05 21:26:22', NULL, '2023-09-05 09:26:22', NULL, '2023-09-05 09:26:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1100, 6, '59ed02d36080409e9809fb1fee90b4cf', 1, 'default', NULL, '2023-09-05 21:31:33', NULL, '2023-09-05 09:31:33', NULL, '2023-09-05 09:31:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1101, 6, '1c285cca497f4d60a78a78f665b6d014', 1, 'default', NULL, '2023-09-05 21:36:28', NULL, '2023-09-05 09:36:28', NULL, '2023-09-05 09:36:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1102, 6, '0f14714e9e0f419798de5a7508026ee7', 1, 'default', NULL, '2023-09-05 21:57:55', NULL, '2023-09-05 09:57:55', NULL, '2023-09-05 09:57:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1103, 6, '8332a564e7f14f8cafe1c1d53cdcedcd', 1, 'default', NULL, '2023-09-05 22:06:37', NULL, '2023-09-05 10:06:37', NULL, '2023-09-05 10:06:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1104, 1, 'efd6df2e9399461a9bb1a18f6a312231', 2, 'default', NULL, '2023-09-05 22:07:41', NULL, '2023-09-05 10:07:41', NULL, '2023-09-05 10:41:39', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1105, 1, '155c8a5b6aba47b3a00b676e0764ac3b', 2, 'default', NULL, '2023-09-05 23:05:37', NULL, '2023-09-05 11:05:37', NULL, '2023-09-05 14:37:52', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1106, 126, 'c8b15d915bc249418f6bdac5d60465f1', 2, 'default', NULL, '2023-09-06 02:39:15', NULL, '2023-09-05 14:39:15', NULL, '2023-09-05 14:39:15', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1107, 1, 'bfa87d0e77004a09a66abed3ff03248a', 2, 'default', NULL, '2023-09-06 02:40:56', NULL, '2023-09-05 14:40:56', NULL, '2023-09-05 14:43:09', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1108, 126, '701bcd62dc014ec096e9e1b9d996c30f', 2, 'default', NULL, '2023-09-06 02:43:25', NULL, '2023-09-05 14:43:25', NULL, '2023-09-05 14:43:25', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1109, 126, '253111a4859f4130a15fe9fbf6cbb3d4', 2, 'default', NULL, '2023-09-06 02:45:16', NULL, '2023-09-05 14:45:16', NULL, '2023-09-05 14:45:16', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1110, 1, 'aa40c6df998a4a9b8a4d19cc0bab7876', 2, 'default', NULL, '2023-09-06 02:46:18', NULL, '2023-09-05 14:46:18', NULL, '2023-09-05 14:48:17', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1111, 126, '771104a370494827b3a77e0342978c42', 2, 'default', NULL, '2023-09-06 02:48:33', NULL, '2023-09-05 14:48:33', NULL, '2023-09-05 14:48:33', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1112, 1, 'a04efaeaf95c4054918f7866c4ad9d00', 2, 'default', NULL, '2023-09-06 02:51:11', NULL, '2023-09-05 14:51:11', NULL, '2023-09-05 14:56:29', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1113, 126, '48dce886ed89427ea7b5300d79522750', 2, 'default', NULL, '2023-09-06 02:57:33', NULL, '2023-09-05 14:57:33', NULL, '2023-09-05 14:57:33', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1114, 1, 'c9c36d2201914383bbf06669a9c4ca1e', 2, 'default', NULL, '2023-09-06 04:12:16', NULL, '2023-09-05 16:12:16', NULL, '2023-09-05 16:19:28', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1115, 126, '9d59826ecfb2425bac3f2f17fa649f69', 2, 'default', NULL, '2023-09-06 04:19:45', NULL, '2023-09-05 16:19:45', NULL, '2023-09-05 16:29:21', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1116, 1, '66eaa218958443b488be081b3eab01ea', 2, 'default', NULL, '2023-09-06 04:29:27', NULL, '2023-09-05 16:29:27', NULL, '2023-09-05 16:30:41', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1117, 126, '83f1a83b10c34b2ca696342611b2ea61', 2, 'default', NULL, '2023-09-06 04:32:47', NULL, '2023-09-05 16:32:47', NULL, '2023-09-05 16:49:46', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1118, 126, 'd44772a15a9a4d4d842fdbc902ee00fd', 2, 'default', NULL, '2023-09-06 04:50:27', NULL, '2023-09-05 16:50:27', NULL, '2023-09-05 17:05:44', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1119, 126, '94272d079113424187733ca768fb8b95', 2, 'default', NULL, '2023-09-06 05:06:10', NULL, '2023-09-05 17:06:10', NULL, '2023-09-05 17:38:00', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1120, 1, '2e4ebe42fbef400f815debf420c0e18c', 2, 'default', NULL, '2023-09-06 05:40:45', NULL, '2023-09-05 17:40:45', NULL, '2023-09-06 10:36:10', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1121, 1, '2725d1a45c584bcbaf37ecb53ceece90', 2, 'default', NULL, '2023-09-06 22:36:19', NULL, '2023-09-06 10:36:19', NULL, '2023-09-06 10:36:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1122, 6, 'a51b6064fbae4746876543bfdd2c8411', 1, 'default', NULL, '2023-09-07 22:05:31', NULL, '2023-09-07 10:05:31', NULL, '2023-09-07 10:05:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1123, 6, '1e8fea87ab3748eaaec7027338b1d379', 1, 'default', NULL, '2023-09-07 22:58:58', NULL, '2023-09-07 10:58:58', NULL, '2023-09-07 10:58:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1124, 6, 'c436d10432384aec8546d4aa2cdbf6f0', 1, 'default', NULL, '2023-09-07 23:03:53', NULL, '2023-09-07 11:03:53', NULL, '2023-09-07 11:03:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1125, 6, '0888cc6f43b34bb28f3f6e8cebd20e31', 1, 'default', NULL, '2023-09-07 23:08:52', NULL, '2023-09-07 11:08:52', NULL, '2023-09-07 11:08:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1126, 6, '6df2131b82744c4ea6f60656e6b735ee', 1, 'default', NULL, '2023-09-07 23:17:42', NULL, '2023-09-07 11:17:42', NULL, '2023-09-07 11:17:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1127, 6, '5509dff644f6493d9c253e0f4812c52a', 1, 'default', NULL, '2023-09-07 23:20:42', NULL, '2023-09-07 11:20:42', NULL, '2023-09-07 11:20:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1128, 6, '28233ddea74c4dbe85c2aa102730c5c3', 1, 'default', NULL, '2023-09-07 23:21:52', NULL, '2023-09-07 11:21:52', NULL, '2023-09-07 11:21:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1129, 6, '1466516501da44e09fabf7d198c0d1ba', 1, 'default', NULL, '2023-09-08 01:59:33', NULL, '2023-09-07 13:59:33', NULL, '2023-09-07 13:59:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1130, 7, 'e306f29479734f2f80a105705d47418c', 1, 'default', NULL, '2023-09-08 02:45:11', NULL, '2023-09-07 14:45:11', NULL, '2023-09-07 14:45:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1131, 7, '4d288548ef8944788d489d5810c68e70', 1, 'default', NULL, '2023-09-08 02:51:35', NULL, '2023-09-07 14:51:35', NULL, '2023-09-07 14:51:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1132, 8, 'e18e9035108d4b5cbf0f75d8141e74f9', 1, 'default', NULL, '2023-09-08 02:53:47', NULL, '2023-09-07 14:53:47', NULL, '2023-09-07 14:53:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1133, 9, '2146dca90b2841c8b7cf528d8dc8267e', 1, 'default', NULL, '2023-09-08 03:02:48', NULL, '2023-09-07 15:02:48', NULL, '2023-09-07 15:02:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1134, 2, 'cb0b61a8b91341beb096742c374785a7', 1, 'default', NULL, '2023-09-08 03:09:38', NULL, '2023-09-07 15:09:38', NULL, '2023-09-07 15:09:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1135, 2, '58dfafaacd674ff0880455e6e9574b4b', 1, 'default', NULL, '2023-09-08 03:11:38', '2', '2023-09-07 15:11:38', '2', '2023-09-07 15:11:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1136, 2, '69768310202a421ebca0ffd1de6fc671', 1, 'default', NULL, '2023-09-08 03:14:32', NULL, '2023-09-07 15:14:32', NULL, '2023-09-07 15:14:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1137, 6, '704e4affe97643059274fd92c10bea01', 1, 'default', NULL, '2023-09-08 03:18:47', NULL, '2023-09-07 15:18:47', NULL, '2023-09-07 15:18:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1138, 6, '360a3e1882e24076a47c844b68a53a55', 1, 'default', NULL, '2023-09-08 04:44:47', NULL, '2023-09-07 16:44:47', NULL, '2023-09-07 16:44:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1139, 6, 'e8ef826831a14d859f342bee86176896', 1, 'default', NULL, '2023-09-08 04:48:02', NULL, '2023-09-07 16:48:02', NULL, '2023-09-07 16:48:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1140, 6, '1588adf617b046c6b96d84b3d7b5c34f', 1, 'default', NULL, '2023-09-08 04:52:55', NULL, '2023-09-07 16:52:55', NULL, '2023-09-07 16:52:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1141, 6, '50fce388fea846d789f3e3038222804d', 1, 'default', NULL, '2023-09-08 05:45:26', NULL, '2023-09-07 17:45:26', NULL, '2023-09-07 17:45:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1142, 7, 'e4ab4d2ed2ec45d58d0a1549a01b1f63', 1, 'default', NULL, '2023-09-08 05:46:05', NULL, '2023-09-07 17:46:05', NULL, '2023-09-07 17:46:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1143, 2, 'ca9460cbcd62444fb7ef03cadd08b809', 1, 'default', NULL, '2023-09-08 05:47:00', NULL, '2023-09-07 17:47:00', NULL, '2023-09-07 17:47:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1144, 10, 'cdf91129da8546aa8ba5140514416a3a', 1, 'default', NULL, '2023-09-08 05:47:33', NULL, '2023-09-07 17:47:33', NULL, '2023-09-07 17:47:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1145, 11, 'b8c2b908040a4d3f85e59bbe30e7aee1', 1, 'default', NULL, '2023-09-08 05:54:25', NULL, '2023-09-07 17:54:25', NULL, '2023-09-07 17:54:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1146, 12, 'f4d2216937e74f4aa97c02d32bd1f3c7', 1, 'default', NULL, '2023-09-08 05:57:39', NULL, '2023-09-07 17:57:39', NULL, '2023-09-07 17:57:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1147, 6, '91b79ae2e8354740a12a926b0ab453aa', 1, 'default', NULL, '2023-09-08 06:21:24', NULL, '2023-09-07 18:21:24', NULL, '2023-09-07 18:21:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1148, 6, '68cc58c16d8842e79886fdd5ef29d072', 1, 'default', NULL, '2023-09-09 21:56:08', NULL, '2023-09-09 09:56:08', NULL, '2023-09-09 09:56:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1149, 6, '94bc8c8db1a94af99f412681ea49bcc3', 1, 'default', NULL, '2023-09-10 05:15:37', '6', '2023-09-09 17:15:37', '6', '2023-09-09 17:15:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1150, 6, '64635a743b1b41b49f33cebdc0f5e5e6', 1, 'default', NULL, '2023-09-10 05:20:45', NULL, '2023-09-09 17:20:45', NULL, '2023-09-09 17:20:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1151, 6, '67e8be77aba64efc83d4405f68d11ed6', 1, 'default', NULL, '2023-09-10 05:23:41', NULL, '2023-09-09 17:23:41', NULL, '2023-09-09 17:23:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1152, 6, '636d9b0188954a978bc1f3cc71446ca9', 1, 'default', NULL, '2023-09-10 05:28:09', NULL, '2023-09-09 17:28:09', NULL, '2023-09-09 17:28:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1153, 6, '25743512d22248c9b9b71ef095f78159', 1, 'default', NULL, '2023-09-10 05:30:29', NULL, '2023-09-09 17:30:29', NULL, '2023-09-09 17:30:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1154, 6, 'd5ab19d609754e7d89e80f26e14c9389', 1, 'default', NULL, '2023-09-10 05:33:01', NULL, '2023-09-09 17:33:01', NULL, '2023-09-09 17:33:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1155, 6, '0cb8b776b22b42749b244c84e27a1135', 1, 'default', NULL, '2023-09-12 04:25:10', NULL, '2023-09-11 16:25:10', NULL, '2023-09-11 16:25:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1156, 13, 'dee8110c937c4f0098f99c36dc0972bf', 1, 'default', NULL, '2023-09-12 04:28:11', NULL, '2023-09-11 16:28:11', NULL, '2023-09-11 16:28:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1157, 13, 'c5da48abd3d2440da22d87069a38e791', 1, 'default', NULL, '2023-09-13 06:10:48', NULL, '2023-09-12 18:10:48', NULL, '2023-09-12 18:10:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1158, 13, '6a8d96d5e0924d2cb8ea91a5b03b4a25', 1, 'default', NULL, '2023-09-13 06:24:10', NULL, '2023-09-12 18:24:10', NULL, '2023-09-12 18:24:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1159, 1, 'c1938f0841734d008ea14e4a4b79b0c2', 2, 'default', NULL, '2023-09-14 07:18:33', NULL, '2023-09-13 19:18:33', NULL, '2023-09-18 22:19:08', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1160, 13, '1fd5aaa710d24845808eb81975ba4b33', 1, 'default', NULL, '2023-09-14 20:53:18', NULL, '2023-09-14 08:53:18', NULL, '2023-09-14 08:53:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1161, 1, 'a03e5b3610ea499b872ff88adc6b9100', 2, 'default', NULL, '2023-09-14 21:39:04', NULL, '2023-09-14 09:39:04', NULL, '2023-09-14 17:35:31', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1162, 13, '438814dc96b6495d8f0bd94cf6e102f3', 1, 'default', NULL, '2023-09-14 22:25:52', NULL, '2023-09-14 10:25:52', NULL, '2023-09-14 10:25:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1163, 13, '267e9d5b075b4032a399de148d3e8c5c', 1, 'default', NULL, '2023-09-14 22:30:11', NULL, '2023-09-14 10:30:11', NULL, '2023-09-14 10:30:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1164, 13, 'ed1c8f2da3ee40279f3dde25c2e0abf9', 1, 'default', NULL, '2023-09-15 04:39:22', NULL, '2023-09-14 16:39:22', NULL, '2023-09-14 16:39:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1165, 13, 'dd1656d3c9b44dce90e84aa3386a10a1', 1, 'default', NULL, '2023-09-15 04:39:53', NULL, '2023-09-14 16:39:53', NULL, '2023-09-14 16:39:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1166, 13, '5edda5b8c188479eb130c116017dd6d2', 1, 'default', NULL, '2023-09-15 05:28:45', NULL, '2023-09-14 17:28:45', NULL, '2023-09-14 17:28:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1167, 1, '3c6daab0c1d140749c6458f221b8ec7c', 2, 'default', NULL, '2023-09-15 05:35:54', NULL, '2023-09-14 17:35:54', NULL, '2023-09-14 17:35:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1168, 13, '1a683d0c2e6f4e8e8e4a2ea3c5eb57ba', 1, 'default', NULL, '2023-09-15 06:02:42', NULL, '2023-09-14 18:02:42', NULL, '2023-09-14 18:02:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1169, 13, '7ca59520e95a40e9869a6a93eaf208ab', 1, 'default', NULL, '2023-09-15 06:23:24', NULL, '2023-09-14 18:23:24', NULL, '2023-09-14 18:23:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1170, 13, '9180af06aa46467180010786160662e3', 1, 'default', NULL, '2023-09-15 22:23:55', NULL, '2023-09-15 10:23:55', NULL, '2023-09-15 10:23:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1171, 14, '19c9ddc57cf44445a0b2cede33511e00', 1, 'default', NULL, '2023-09-16 04:48:16', NULL, '2023-09-15 16:48:16', NULL, '2023-09-15 16:48:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1172, 14, 'a2739c52a1f2403881ab91bc751ee24b', 1, 'default', NULL, '2023-09-16 04:52:16', '14', '2023-09-15 16:52:16', '14', '2023-09-15 16:52:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1173, 1, 'f45c092ebdbd458fa7b448bfe59ae7d0', 1, 'default', NULL, '2023-09-16 04:54:16', NULL, '2023-09-15 16:54:16', NULL, '2023-09-15 16:54:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1174, 2, '3e5765195c634c82858c36cffa55316c', 1, 'default', NULL, '2023-09-16 05:01:37', NULL, '2023-09-15 17:01:37', NULL, '2023-09-15 17:01:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1175, 2, '2de2ece2244d4043bc66d79ea85646c9', 1, 'default', NULL, '2023-09-16 05:03:14', '2', '2023-09-15 17:03:14', '2', '2023-09-15 17:03:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1176, 2, '3649fc2f17294162aeca4b5027aff104', 1, 'default', NULL, '2023-09-18 23:25:58', NULL, '2023-09-18 11:25:58', NULL, '2023-09-18 11:25:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1177, 2, '7ba5bb0287f047deb2a006de01abd0b3', 1, 'default', NULL, '2023-09-18 23:26:35', '2', '2023-09-18 11:26:35', '2', '2023-09-18 11:26:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1178, 2, 'e96815eb503642398f699b5fe82db3a8', 1, 'default', NULL, '2023-09-18 23:27:49', '2', '2023-09-18 11:27:49', '2', '2023-09-18 11:27:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1179, 2, '4e8bb59a15074b88af615f5641e156bf', 1, 'default', NULL, '2023-09-18 23:30:02', '2', '2023-09-18 11:30:02', '2', '2023-09-18 11:30:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1180, 2, '09334d081f0f4698ab85f863feebe732', 1, 'default', NULL, '2023-09-18 23:36:08', '2', '2023-09-18 11:36:08', '2', '2023-09-18 11:36:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1181, 2, '22c3a933fc614c9082fa56c4640dcc0b', 1, 'default', NULL, '2023-09-18 23:41:03', '2', '2023-09-18 11:41:03', '2', '2023-09-18 11:41:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1182, 2, '6242422ec8cd4e1fa8aecfa6ee565793', 1, 'default', NULL, '2023-09-18 23:42:16', '2', '2023-09-18 11:42:16', '2', '2023-09-18 11:42:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1183, 2, '95d73f09035942679cedc2fdf4ec24b8', 1, 'default', NULL, '2023-09-18 23:44:42', '2', '2023-09-18 11:44:42', '2', '2023-09-18 11:44:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1184, 2, 'f47aebbd1c3b42b7b98073e6215fa107', 1, 'default', NULL, '2023-09-18 23:45:32', '2', '2023-09-18 11:45:32', '2', '2023-09-18 11:45:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1185, 2, '4b9b7dbfa2c74952b6649ea42779c8c0', 1, 'default', NULL, '2023-09-18 23:46:37', NULL, '2023-09-18 11:46:37', NULL, '2023-09-18 11:46:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1186, 2, '15d601937d524274b5379a003be56e66', 1, 'default', NULL, '2023-09-18 23:48:16', NULL, '2023-09-18 11:48:16', NULL, '2023-09-18 11:48:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1187, 2, 'dcce3e52a93e47dcaac9618a2163efee', 1, 'default', NULL, '2023-09-18 23:50:58', '2', '2023-09-18 11:50:58', '2', '2023-09-18 11:50:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1188, 2, 'c96bb36133c545c0a9076075656e6c13', 1, 'default', NULL, '2023-09-18 23:57:20', '2', '2023-09-18 11:57:20', '2', '2023-09-18 11:57:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1189, 2, '424382f050534a23a783a4b6c776bb28', 1, 'default', NULL, '2023-09-18 23:57:40', NULL, '2023-09-18 11:57:40', NULL, '2023-09-18 11:57:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1190, 2, '54998776e0ac4a9a8e80cdbc68c5da99', 1, 'default', NULL, '2023-09-18 23:58:23', NULL, '2023-09-18 11:58:23', NULL, '2023-09-18 11:58:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1191, 2, 'aacf3c2db8c549a0b6cf632ed56edc35', 1, 'default', NULL, '2023-09-18 23:59:11', NULL, '2023-09-18 11:59:11', NULL, '2023-09-18 11:59:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1192, 2, '6e4d7109cc4546cf9996b03556788adb', 1, 'default', NULL, '2023-09-19 03:41:55', NULL, '2023-09-18 15:41:55', NULL, '2023-09-18 15:41:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1193, 2, 'dc8843ebebec4814878659f8eff5b7c4', 1, 'default', NULL, '2023-09-19 03:49:14', '2', '2023-09-18 15:49:14', '2', '2023-09-18 15:49:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1194, 2, '78c497cb8dcb43ab8b251cb350576ae0', 1, 'default', NULL, '2023-09-19 03:49:15', '2', '2023-09-18 15:49:15', '2', '2023-09-18 15:49:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1195, 2, '00eec4fbea4d4c398971ca7066518b20', 1, 'default', NULL, '2023-09-19 03:52:11', '2', '2023-09-18 15:52:11', '2', '2023-09-18 15:52:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1196, 2, '9763453ef83044febb3b4cc8633f2f89', 1, 'default', NULL, '2023-09-19 04:14:17', '2', '2023-09-18 16:14:17', '2', '2023-09-18 16:14:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1197, 2, '809884ec6b2040188fba7e12fee661a9', 1, 'default', NULL, '2023-09-19 04:15:31', '2', '2023-09-18 16:15:31', '2', '2023-09-18 16:15:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1198, 2, '4bfbcf42c84b4d07b282df971c73d357', 1, 'default', NULL, '2023-09-19 04:22:22', '2', '2023-09-18 16:22:22', '2', '2023-09-18 16:22:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1199, 2, '89fcf192ca684605bcba870140428392', 1, 'default', NULL, '2023-09-19 04:24:58', '2', '2023-09-18 16:24:58', '2', '2023-09-18 16:24:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1200, 2, 'ce32314b35ad41b78fa91d17d7c9117b', 1, 'default', NULL, '2023-09-19 04:25:02', '2', '2023-09-18 16:25:02', '2', '2023-09-18 16:25:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1201, 2, '0b50d21ccca8426cb1b068052773c90a', 1, 'default', NULL, '2023-09-19 04:25:10', '2', '2023-09-18 16:25:10', '2', '2023-09-18 16:25:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1202, 2, 'b1f9845665e849e7802f2ab8ba133cac', 1, 'default', NULL, '2023-09-19 04:25:16', NULL, '2023-09-18 16:25:16', NULL, '2023-09-18 16:25:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1203, 2, '5ddb7148137d4b658d61e0adf3be8fd5', 1, 'default', NULL, '2023-09-19 04:27:00', '2', '2023-09-18 16:27:00', '2', '2023-09-18 16:27:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1204, 2, 'd9574f80e034453ca7d57d4a70f87cab', 1, 'default', NULL, '2023-09-19 04:28:19', NULL, '2023-09-18 16:28:19', NULL, '2023-09-18 16:28:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1205, 2, '3cf05b60e44941de8467ef14a188625c', 1, 'default', NULL, '2023-09-19 04:30:03', NULL, '2023-09-18 16:30:03', NULL, '2023-09-18 16:30:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1206, 2, '587cb51f96444c75ab84eecd9cefec50', 1, 'default', NULL, '2023-09-19 04:30:50', NULL, '2023-09-18 16:30:50', NULL, '2023-09-18 16:30:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1207, 2, '2194791f2d404c28852943b439b7bb5f', 1, 'default', NULL, '2023-09-19 04:31:07', NULL, '2023-09-18 16:31:07', NULL, '2023-09-18 16:31:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1208, 2, '37dcfbce2f604635a05863e30c65e9b0', 1, 'default', NULL, '2023-09-19 04:31:28', NULL, '2023-09-18 16:31:28', NULL, '2023-09-18 16:31:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1209, 2, '044f28e819f345ea898368648d083e2c', 1, 'default', NULL, '2023-09-19 04:32:27', NULL, '2023-09-18 16:32:27', NULL, '2023-09-18 16:32:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1210, 2, '8067bcd876c04cd298fa3b6ecf2ee7b0', 1, 'default', NULL, '2023-09-19 04:32:44', NULL, '2023-09-18 16:32:44', NULL, '2023-09-18 16:32:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1211, 2, 'db2e911886724facb1351b5cb4f72d55', 1, 'default', NULL, '2023-09-19 04:33:00', NULL, '2023-09-18 16:33:00', NULL, '2023-09-18 16:33:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1212, 2, 'a280a24135b947b091a3e7cd96313213', 1, 'default', NULL, '2023-09-19 04:33:19', NULL, '2023-09-18 16:33:19', NULL, '2023-09-18 16:33:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1213, 2, '875916724362408d8a26cca48c8cc1a2', 1, 'default', NULL, '2023-09-19 04:33:33', NULL, '2023-09-18 16:33:33', NULL, '2023-09-18 16:33:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1214, 2, 'bbc62175aec243d69e8f35111330670a', 1, 'default', NULL, '2023-09-19 04:33:50', NULL, '2023-09-18 16:33:50', NULL, '2023-09-18 16:33:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1215, 2, '60755af81c6a485d95c511aa34cebcda', 1, 'default', NULL, '2023-09-19 04:34:05', NULL, '2023-09-18 16:34:05', NULL, '2023-09-18 16:34:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1216, 2, '74124f99ac3e4da99e113b9dc5ef4e58', 1, 'default', NULL, '2023-09-19 04:34:43', NULL, '2023-09-18 16:34:43', NULL, '2023-09-18 16:34:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1217, 2, 'a41bf3ea6347451e85d0396339cb37ed', 1, 'default', NULL, '2023-09-19 04:35:17', NULL, '2023-09-18 16:35:17', NULL, '2023-09-18 16:35:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1218, 2, '9351a138c48e4afb811458d9728c85d3', 1, 'default', NULL, '2023-09-19 04:35:52', NULL, '2023-09-18 16:35:52', NULL, '2023-09-18 16:35:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1219, 2, '8074770c3ca14aacb7b99a75c7763e32', 1, 'default', NULL, '2023-09-19 04:45:41', '2', '2023-09-18 16:45:41', '2', '2023-09-18 16:45:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1220, 2, 'b1f1a14087054de78e42561b95dfb578', 1, 'default', NULL, '2023-09-19 04:48:01', NULL, '2023-09-18 16:48:01', NULL, '2023-09-18 16:48:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1221, 2, 'b9e4f7731006405d83ebb07bedb56152', 1, 'default', NULL, '2023-09-19 04:48:31', NULL, '2023-09-18 16:48:31', NULL, '2023-09-18 16:48:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1222, 2, 'a2fe3c4a2e6a4fc5926e2c2a14e7e0d1', 1, 'default', NULL, '2023-09-19 04:56:41', '2', '2023-09-18 16:56:41', '2', '2023-09-18 16:56:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1223, 2, '3237116560624efe954c6d70aeef6bed', 1, 'default', NULL, '2023-09-19 04:58:51', NULL, '2023-09-18 16:58:51', NULL, '2023-09-18 16:58:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1224, 2, 'd4ef77a5a38b4547b5eb4c21c30dae31', 1, 'default', NULL, '2023-09-19 05:02:02', NULL, '2023-09-18 17:02:02', NULL, '2023-09-18 17:02:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1225, 2, 'de6a114108c942b39d040c013279b9dc', 1, 'default', NULL, '2023-09-19 05:02:37', NULL, '2023-09-18 17:02:37', NULL, '2023-09-18 17:02:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1226, 2, 'f7a3a970944c4b5d8b306f6c1d02db65', 1, 'default', NULL, '2023-09-19 05:04:20', NULL, '2023-09-18 17:04:20', NULL, '2023-09-18 17:04:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1227, 2, '3a09f8772956438f858d7039d7b10d96', 1, 'default', NULL, '2023-09-19 05:04:28', NULL, '2023-09-18 17:04:28', NULL, '2023-09-18 17:04:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1228, 3, '37a76e780bfb4931991238dc26edf083', 1, 'default', NULL, '2023-09-19 05:07:29', NULL, '2023-09-18 17:07:29', NULL, '2023-09-18 17:07:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1229, 2, 'a788560ff7974fa28f56f4d597e8b086', 1, 'default', NULL, '2023-09-19 05:08:04', NULL, '2023-09-18 17:08:04', NULL, '2023-09-18 17:08:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1230, 2, '6b2a69e4180649f490c210df3db163f3', 1, 'default', NULL, '2023-09-19 05:27:44', NULL, '2023-09-18 17:27:44', NULL, '2023-09-18 17:27:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1231, 2, '2c10b26606a8463bb7aec6818b5c518c', 1, 'default', NULL, '2023-09-19 05:28:13', NULL, '2023-09-18 17:28:13', NULL, '2023-09-18 17:28:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1232, 2, '2366df2059864d379363e92a380d01c0', 1, 'default', NULL, '2023-09-19 06:03:00', NULL, '2023-09-18 18:03:00', NULL, '2023-09-18 18:03:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1233, 2, 'db510e22cfb541f9baede713e0bbed3b', 1, 'default', NULL, '2023-09-19 06:16:14', NULL, '2023-09-18 18:16:14', NULL, '2023-09-18 18:16:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1234, 2, 'f929baa1b07747418d255346fbb5b75f', 1, 'default', NULL, '2023-09-19 06:19:44', NULL, '2023-09-18 18:19:44', NULL, '2023-09-18 18:19:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1235, 2, '2420d60b75d34450aff0628fe9e7fa42', 1, 'default', NULL, '2023-09-19 06:30:58', NULL, '2023-09-18 18:30:58', NULL, '2023-09-18 18:30:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1236, 126, '60eb0dd258b34f69b49cb76f6539c2ec', 2, 'default', NULL, '2023-09-19 10:20:01', NULL, '2023-09-18 22:20:01', NULL, '2023-09-18 22:20:13', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1237, 2, 'cec8a8d048ae4956b8af340a90b684f5', 1, 'default', NULL, '2023-09-19 10:31:31', NULL, '2023-09-18 22:31:31', NULL, '2023-09-18 22:31:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1238, 2, '8c5b4e6102e948dfae55002e8f52ed9a', 1, 'default', NULL, '2023-09-19 10:34:08', '2', '2023-09-18 22:34:08', '2', '2023-09-18 22:34:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1239, 2, '26dc3d9a90cb423794c394a077105413', 1, 'default', NULL, '2023-09-19 10:34:22', '2', '2023-09-18 22:34:22', '2', '2023-09-18 22:34:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1240, 1, '43f6098d2ea9443697b2385ebdd9870f', 2, 'default', NULL, '2023-09-19 21:51:37', NULL, '2023-09-19 09:51:37', NULL, '2023-09-22 18:15:27', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1241, 2, '8ed2810ca426432ea5cc936924a260ed', 1, 'default', NULL, '2023-09-20 01:02:04', NULL, '2023-09-19 13:02:04', NULL, '2023-09-19 13:02:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1242, 2, '2de2e70f98a64ae8b66ebc5de671385e', 1, 'default', NULL, '2023-09-22 11:25:36', NULL, '2023-09-21 23:25:36', NULL, '2023-09-21 23:25:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1243, 126, '6a2be8ac3d4347989333aa4c92f59363', 2, 'default', NULL, '2023-09-23 06:15:41', NULL, '2023-09-22 18:15:41', NULL, '2023-09-22 18:15:41', b'0', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1244, 2, '27f8d653e4ff4fb2bfb534a45c703096', 1, 'default', NULL, '2023-09-26 06:16:52', NULL, '2023-09-25 18:16:52', NULL, '2023-09-25 18:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1245, 1, 'a7c14216cd80477d8bcebe8b5325744a', 2, 'default', NULL, '2023-09-26 06:23:31', NULL, '2023-09-25 18:23:31', NULL, '2023-09-25 18:23:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1246, 2, 'a12b5e27afb34bca9ab75106c8413c5c', 1, 'default', NULL, '2023-10-07 22:59:49', '2', '2023-10-07 10:59:49', '2', '2023-10-07 10:59:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1247, 1, 'be647698578a44528336eb6b848e923a', 2, 'default', NULL, '2023-10-07 23:00:44', NULL, '2023-10-07 11:00:44', NULL, '2023-10-07 11:04:30', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1248, 1, '2e3c660b27f5460fb503f12c06a27c09', 2, 'default', NULL, '2023-10-07 23:05:26', NULL, '2023-10-07 11:05:26', NULL, '2023-10-07 11:05:42', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1249, 126, '9bd680bf35144d3ab3014687434097e4', 2, 'default', NULL, '2023-10-07 23:05:53', NULL, '2023-10-07 11:05:53', NULL, '2023-10-07 11:08:15', b'1', 0, 2); +INSERT INTO `system_oauth2_refresh_token` VALUES (1250, 1, '52593f19aaba402d9ec38cf4e23ff2b4', 2, 'default', NULL, '2023-10-07 23:08:21', NULL, '2023-10-07 11:08:21', NULL, '2023-10-07 11:08:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1251, 2, 'fda3062e614e4a1aaee188f516b8bb76', 1, 'default', NULL, '2023-10-11 21:40:28', NULL, '2023-10-11 09:40:28', NULL, '2023-10-11 09:40:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1252, 2, 'f20f0049a0a24ec9bc69bb20c6653ac7', 1, 'default', NULL, '2023-10-11 21:48:37', '2', '2023-10-11 09:48:37', '2', '2023-10-11 09:48:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1253, 2, 'c2095f30213840a7b027f9a83a29b413', 1, 'default', NULL, '2023-10-11 21:54:22', '2', '2023-10-11 09:54:22', '2', '2023-10-11 09:54:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1254, 2, '66f70c24ea824040b82eba58317d0826', 1, 'default', NULL, '2023-10-11 21:54:29', '2', '2023-10-11 09:54:29', '2', '2023-10-11 09:54:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1255, 2, '14a6a572e5664f42b5f542ed6f49e964', 1, 'default', NULL, '2023-10-11 21:55:21', '2', '2023-10-11 09:55:21', '2', '2023-10-11 09:55:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1256, 2, 'c182cc86dc734c76ab2676dac3b53911', 1, 'default', NULL, '2023-10-11 21:57:00', '2', '2023-10-11 09:57:00', '2', '2023-10-11 09:57:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1257, 2, '34b008f0c1324bd7a1663c5f00c4b5d6', 1, 'default', NULL, '2023-10-11 22:00:15', '2', '2023-10-11 10:00:15', '2', '2023-10-11 10:00:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1258, 2, '8d01a160ac2d4074902c27a41d8a34ad', 1, 'default', NULL, '2023-10-11 22:01:23', '2', '2023-10-11 10:01:23', '2', '2023-10-11 10:01:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1259, 2, '07b45fd5ee62454087e0351b48ef8523', 1, 'default', NULL, '2023-10-11 22:01:34', '2', '2023-10-11 10:01:34', '2', '2023-10-11 10:01:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1260, 2, '84dffb1ceb674007ad3714e882cdba29', 1, 'default', NULL, '2023-10-12 02:01:26', '2', '2023-10-11 14:01:26', '2', '2023-10-11 14:01:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1261, 2, 'f67621b199aa4ca988b9693608e58039', 1, 'default', NULL, '2023-10-12 02:01:52', '2', '2023-10-11 14:01:52', '2', '2023-10-11 14:01:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1262, 2, '6dc30034463c4c78ab89113155b8c2f6', 1, 'default', NULL, '2023-10-12 02:13:38', '2', '2023-10-11 14:13:38', '2', '2023-10-11 14:13:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1263, 2, 'ff0f9aed4f8e46cb8423f01c7232b33e', 1, 'default', NULL, '2023-10-12 02:18:24', '2', '2023-10-11 14:18:24', '2', '2023-10-11 14:18:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1264, 2, '3b8081a832a3460b8d73cee1f17331b5', 1, 'default', NULL, '2023-10-12 02:19:27', '2', '2023-10-11 14:19:27', '2', '2023-10-11 14:19:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1265, 2, '6533a9d3f5464f5abe16e6a6f80ffd24', 1, 'default', NULL, '2023-10-12 02:21:30', '2', '2023-10-11 14:21:30', '2', '2023-10-11 14:21:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1266, 2, 'f6b8cf7626c543ddb5519098717d4db3', 1, 'default', NULL, '2023-10-12 02:21:43', '2', '2023-10-11 14:21:43', '2', '2023-10-11 14:21:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1267, 2, 'e896f808b19347069ed7d7867651f47e', 1, 'default', NULL, '2023-10-12 02:24:06', '2', '2023-10-11 14:24:06', '2', '2023-10-11 14:24:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1268, 2, 'a6e5cebfd2d0492790aa1fd86bc831f4', 1, 'default', NULL, '2023-10-12 02:24:22', '2', '2023-10-11 14:24:22', '2', '2023-10-11 14:24:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1269, 2, '4e109057def04c08987d598d1b107f21', 1, 'default', NULL, '2023-10-12 02:24:42', '2', '2023-10-11 14:24:42', '2', '2023-10-11 14:24:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1270, 2, 'fe2f11813216421e86465fd4f579c371', 1, 'default', NULL, '2023-10-12 02:24:59', '2', '2023-10-11 14:24:59', '2', '2023-10-11 14:24:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1271, 2, 'e547c4df36dd48be99cf059990f43289', 1, 'default', NULL, '2023-10-12 05:02:08', NULL, '2023-10-11 17:02:08', NULL, '2023-10-11 17:02:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1272, 2, 'eff0a06f7530416c9139a832d25de396', 1, 'default', NULL, '2023-10-14 04:14:24', NULL, '2023-10-13 16:14:24', NULL, '2023-10-13 16:14:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1273, 2, '28e92b6b9adf4da9b6ee26f4b0b34adf', 1, 'default', NULL, '2023-10-14 04:27:16', '2', '2023-10-13 16:27:16', '2', '2023-10-13 16:27:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1274, 2, '54cf93723b234e45af581655a63eebb5', 1, 'default', NULL, '2023-10-14 04:28:20', '2', '2023-10-13 16:28:20', '2', '2023-10-13 16:28:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1275, 2, '71c4263778e349899bd1cce4a9d4316a', 1, 'default', NULL, '2023-10-14 04:29:41', '2', '2023-10-13 16:29:41', '2', '2023-10-13 16:29:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1276, 2, '07569f151c5c454cba6ea6ad818243fc', 1, 'default', NULL, '2023-10-14 04:31:08', '2', '2023-10-13 16:31:08', '2', '2023-10-13 16:31:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1277, 2, 'e4aaa8b5a7174d76920df96d10bd2059', 1, 'default', NULL, '2023-10-14 04:31:29', '2', '2023-10-13 16:31:29', '2', '2023-10-13 16:31:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1278, 2, 'd7762ebc47314090a23e9854ec919025', 1, 'default', NULL, '2023-10-14 04:31:54', '2', '2023-10-13 16:31:54', '2', '2023-10-13 16:31:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1279, 2, '96157c60195e45d698b87832ef4bcaae', 1, 'default', NULL, '2023-10-14 04:33:40', '2', '2023-10-13 16:33:40', '2', '2023-10-13 16:33:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1280, 2, '7df6f751684841b793cd4a4a420f2411', 1, 'default', NULL, '2023-10-14 04:34:43', '2', '2023-10-13 16:34:43', '2', '2023-10-13 16:34:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1281, 2, '9b22c00bc47f40a9962b879985a623c9', 1, 'default', NULL, '2023-10-14 04:37:13', '2', '2023-10-13 16:37:13', '2', '2023-10-13 16:37:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1282, 2, 'd764de1047bc4022ab1d12165b98b9f9', 1, 'default', NULL, '2023-10-14 04:37:48', '2', '2023-10-13 16:37:48', '2', '2023-10-13 16:37:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1283, 2, '1f76500c63d3496dab675c4212602e0b', 1, 'default', NULL, '2023-10-14 04:42:19', '2', '2023-10-13 16:42:19', '2', '2023-10-13 16:42:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1284, 2, 'd93a8e8e952848a69911072e9471f956', 1, 'default', NULL, '2023-10-14 04:46:07', '2', '2023-10-13 16:46:07', '2', '2023-10-13 16:46:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1285, 2, '6f654ad88a9845398d3a1c0d980be7b0', 1, 'default', NULL, '2023-10-14 04:48:12', '2', '2023-10-13 16:48:12', '2', '2023-10-13 16:48:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1286, 2, 'c2991d2073164a6ebc616ff1e965ddf5', 1, 'default', NULL, '2023-10-14 04:49:40', '2', '2023-10-13 16:49:40', '2', '2023-10-13 16:49:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1287, 2, 'a6934636159c4f4ba638f8edd05b3500', 1, 'default', NULL, '2023-10-14 04:51:21', '2', '2023-10-13 16:51:21', '2', '2023-10-13 16:51:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1288, 2, 'c5ebdd0d1daf4b2d808c8f01b3c673d4', 1, 'default', NULL, '2023-10-14 04:51:55', '2', '2023-10-13 16:51:55', '2', '2023-10-13 16:51:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1289, 2, '8f96aededa864a9fb74eedf988a8e5ad', 1, 'default', NULL, '2023-10-14 04:53:33', '2', '2023-10-13 16:53:33', '2', '2023-10-13 16:53:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1290, 2, '32ffe2d0c99c4770b3b6fbcd09fb76d6', 1, 'default', NULL, '2023-10-14 04:55:08', '2', '2023-10-13 16:55:08', '2', '2023-10-13 16:55:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1291, 2, '3de5b98a32a647849b504ee88ebec6a3', 1, 'default', NULL, '2023-10-14 04:55:36', '2', '2023-10-13 16:55:36', '2', '2023-10-13 16:55:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1292, 2, '91c1864ca820423faeab7f0bfa6110c7', 1, 'default', NULL, '2023-10-14 04:58:14', '2', '2023-10-13 16:58:14', '2', '2023-10-13 16:58:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1293, 2, '7432b45298b546e889cfc1a03a2a3849', 1, 'default', NULL, '2023-10-14 04:58:26', '2', '2023-10-13 16:58:26', '2', '2023-10-13 16:58:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1294, 2, '3799a1910b204ea9abd25daa2ef73689', 1, 'default', NULL, '2023-10-14 04:59:11', '2', '2023-10-13 16:59:11', '2', '2023-10-13 16:59:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1295, 2, '59b189250fee4492ae8e6402685fe8fe', 1, 'default', NULL, '2023-10-14 04:59:32', '2', '2023-10-13 16:59:32', '2', '2023-10-13 16:59:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1296, 2, 'd56e2da497924ced9852d0395a336611', 1, 'default', NULL, '2023-10-14 05:04:51', '2', '2023-10-13 17:04:51', '2', '2023-10-13 17:04:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1297, 2, 'f6bbaa782c8f4c829b471c1ba1d381fc', 1, 'default', NULL, '2023-10-14 05:05:16', '2', '2023-10-13 17:05:16', '2', '2023-10-13 17:05:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1298, 2, 'cb8d247342c54c07a17f19a6b2b61c57', 1, 'default', NULL, '2023-10-14 05:12:21', '2', '2023-10-13 17:12:21', '2', '2023-10-13 17:12:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1299, 2, '629ede9198304ae281839c70700a45df', 1, 'default', NULL, '2023-10-14 05:13:08', '2', '2023-10-13 17:13:08', '2', '2023-10-13 17:13:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1300, 2, 'a00286591273486385a8edaaf77afcca', 1, 'default', NULL, '2023-10-14 05:15:37', '2', '2023-10-13 17:15:37', '2', '2023-10-13 17:15:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1301, 2, '9ac71369fc8c4172b3bac531b1db2825', 1, 'default', NULL, '2023-10-14 05:16:03', '2', '2023-10-13 17:16:03', '2', '2023-10-13 17:16:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1302, 2, 'e285e4aad12742feb34ae732eb82759e', 1, 'default', NULL, '2023-10-14 05:16:53', '2', '2023-10-13 17:16:53', '2', '2023-10-13 17:16:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1303, 2, '48109b7356124126921991899b5c9edb', 1, 'default', NULL, '2023-10-14 05:18:17', '2', '2023-10-13 17:18:17', '2', '2023-10-13 17:18:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1304, 2, '73dfa4177cf14ca1b031ac8345a5ddb7', 1, 'default', NULL, '2023-10-14 05:18:55', '2', '2023-10-13 17:18:55', '2', '2023-10-13 17:18:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1305, 2, '4288e61262ac4dca9d066b208b9a880a', 1, 'default', NULL, '2023-10-14 05:19:14', '2', '2023-10-13 17:19:14', '2', '2023-10-13 17:19:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1306, 2, '984842a69056448a96d0f2d0ce0f43b4', 1, 'default', NULL, '2023-10-14 05:19:47', '2', '2023-10-13 17:19:47', '2', '2023-10-13 17:19:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1307, 2, '861f216ad95f4f93a7e771770d750099', 1, 'default', NULL, '2023-10-14 05:20:09', '2', '2023-10-13 17:20:09', '2', '2023-10-13 17:20:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1308, 2, '59f33fc7d15e47a08394de079410fdb2', 1, 'default', NULL, '2023-10-14 05:20:52', '2', '2023-10-13 17:20:52', '2', '2023-10-13 17:20:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1309, 2, '903dbb8b7c464ae6b861aa302b7a472f', 1, 'default', NULL, '2023-10-14 05:21:16', '2', '2023-10-13 17:21:16', '2', '2023-10-13 17:21:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1310, 2, '9f9fa2d64f2f459b9b4817771f03cb7a', 1, 'default', NULL, '2023-10-14 05:21:54', '2', '2023-10-13 17:21:54', '2', '2023-10-13 17:21:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1311, 2, 'f792d713d28d40fe8532d119c2670fea', 1, 'default', NULL, '2023-10-14 05:25:57', '2', '2023-10-13 17:25:57', '2', '2023-10-13 17:25:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1312, 2, 'b2bcfcc004f74c61bceaeb68e9294031', 1, 'default', NULL, '2023-10-14 05:26:00', '2', '2023-10-13 17:26:00', '2', '2023-10-13 17:26:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1313, 2, '169b12bdd067493c8f4384e01699ed36', 1, 'default', NULL, '2023-10-14 05:26:03', '2', '2023-10-13 17:26:03', '2', '2023-10-13 17:26:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1314, 2, '57af1fb5a0364e71835000bf789163e7', 1, 'default', NULL, '2023-10-14 05:27:02', '2', '2023-10-13 17:27:02', '2', '2023-10-13 17:27:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1315, 2, '0ca0de877b6447e7a0d3f7c243834f1f', 1, 'default', NULL, '2023-10-14 05:28:12', '2', '2023-10-13 17:28:12', '2', '2023-10-13 17:28:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1316, 2, '7a1f66311bf9434c981c9d4d5cdeefc1', 1, 'default', NULL, '2023-10-14 05:28:38', '2', '2023-10-13 17:28:38', '2', '2023-10-13 17:28:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1317, 2, '3121aa2886824f4fb76df1791dc2a581', 1, 'default', NULL, '2023-10-14 05:29:29', '2', '2023-10-13 17:29:29', '2', '2023-10-13 17:29:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1318, 2, '8aa470de18894c0ea22fd43815d5b201', 1, 'default', NULL, '2023-10-14 05:34:10', '2', '2023-10-13 17:34:10', '2', '2023-10-13 17:34:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1319, 2, '44737745f62a454caa3f2563d9dc452d', 1, 'default', NULL, '2023-10-14 05:35:12', '2', '2023-10-13 17:35:12', '2', '2023-10-13 17:35:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1320, 2, '23a036fed1f8470fbd71a5b349f75d61', 1, 'default', NULL, '2023-10-14 05:46:45', '2', '2023-10-13 17:46:45', '2', '2023-10-13 17:46:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1321, 2, '67745f620e5240b0bbd5f8c4378fe0c9', 1, 'default', NULL, '2023-10-14 05:49:42', '2', '2023-10-13 17:49:42', '2', '2023-10-13 17:49:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1322, 2, '3a2fff5cfe504757b73b662f4b32bcb3', 1, 'default', NULL, '2023-10-14 05:53:37', '2', '2023-10-13 17:53:37', '2', '2023-10-13 17:53:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1323, 2, '1bb671a55c3f49ceba00cf04e64ce652', 1, 'default', NULL, '2023-10-14 05:53:48', '2', '2023-10-13 17:53:48', '2', '2023-10-13 17:53:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1324, 2, 'cb3c9821471d4deda55c209495468aec', 1, 'default', NULL, '2023-10-14 05:55:26', '2', '2023-10-13 17:55:26', '2', '2023-10-13 17:55:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1325, 2, '59dbe4259794488ba1c3f98e17520e0d', 1, 'default', NULL, '2023-10-14 05:56:27', '2', '2023-10-13 17:56:27', '2', '2023-10-13 17:56:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1326, 2, '811de064230c4d63b13a42c2a3cbf25a', 1, 'default', NULL, '2023-10-14 05:57:21', '2', '2023-10-13 17:57:21', '2', '2023-10-13 17:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1327, 2, 'df77103a25284e3cba4da959b92f19ce', 1, 'default', NULL, '2023-10-14 05:58:15', '2', '2023-10-13 17:58:15', '2', '2023-10-13 17:58:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1328, 2, '614c1e40ec7643a28e58df695441a404', 1, 'default', NULL, '2023-10-14 05:59:44', '2', '2023-10-13 17:59:44', '2', '2023-10-13 17:59:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1329, 2, 'bffae8854f7c4961a311a88871967ea3', 1, 'default', NULL, '2023-10-14 06:00:45', '2', '2023-10-13 18:00:45', '2', '2023-10-13 18:00:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1330, 2, '374828a9b8114d8d9b40e5bd9ed11cee', 1, 'default', NULL, '2023-10-14 06:01:25', '2', '2023-10-13 18:01:25', '2', '2023-10-13 18:01:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1331, 2, '6a50278a5e3b42fea8721fd62a718b3f', 1, 'default', NULL, '2023-10-14 06:02:35', '2', '2023-10-13 18:02:35', '2', '2023-10-13 18:02:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1332, 2, 'a3c47520030c49c39ce18436fe5fdeee', 1, 'default', NULL, '2023-10-14 06:03:15', '2', '2023-10-13 18:03:15', '2', '2023-10-13 18:03:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1333, 2, '899f75d49ff445cf9c318e23a36da3fa', 1, 'default', NULL, '2023-10-14 06:07:00', '2', '2023-10-13 18:07:00', '2', '2023-10-13 18:07:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1334, 2, '60f08927406948ee87f810d69b167c18', 1, 'default', NULL, '2023-10-14 06:07:26', '2', '2023-10-13 18:07:26', '2', '2023-10-13 18:07:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1335, 2, '911973c597514ef09061a20f41af88ec', 1, 'default', NULL, '2023-10-14 06:07:50', '2', '2023-10-13 18:07:50', '2', '2023-10-13 18:07:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1336, 2, '555f4bc827624aada02f16ae051b0713', 1, 'default', NULL, '2023-10-14 06:08:19', '2', '2023-10-13 18:08:19', '2', '2023-10-13 18:08:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1337, 2, '16b06d50a4ef476c9cc98e4c3c32d9de', 1, 'default', NULL, '2023-10-14 06:09:11', '2', '2023-10-13 18:09:11', '2', '2023-10-13 18:09:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1338, 2, 'f80e520c637e4fef80ddfd8e5ee89bf0', 1, 'default', NULL, '2023-10-14 06:10:00', '2', '2023-10-13 18:10:00', '2', '2023-10-13 18:10:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1339, 2, '61f86ca92b4249b990ae45891f35b802', 1, 'default', NULL, '2023-10-14 06:10:51', '2', '2023-10-13 18:10:51', '2', '2023-10-13 18:10:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1340, 2, '584ad71e3d304ba894312fe638682ac0', 1, 'default', NULL, '2023-10-14 06:11:12', '2', '2023-10-13 18:11:12', '2', '2023-10-13 18:11:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1341, 2, '1cef25c3164d4ae4a209a0917f6c17d5', 1, 'default', NULL, '2023-10-14 06:11:50', '2', '2023-10-13 18:11:50', '2', '2023-10-13 18:11:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1342, 2, '686ba1ffab034a89a96d89fe4841c692', 1, 'default', NULL, '2023-10-14 06:12:54', '2', '2023-10-13 18:12:54', '2', '2023-10-13 18:12:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1343, 2, '6cb412ef356547ee899a1e6898062a83', 1, 'default', NULL, '2023-10-14 06:13:37', '2', '2023-10-13 18:13:37', '2', '2023-10-13 18:13:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1344, 2, '8ea7b24ffe9146c1bf007f1a814a75b7', 1, 'default', NULL, '2023-10-14 06:14:16', '2', '2023-10-13 18:14:16', '2', '2023-10-13 18:14:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1345, 2, 'fe12417ec84e44b99969aadb7485f7c4', 1, 'default', NULL, '2023-10-14 06:14:40', '2', '2023-10-13 18:14:40', '2', '2023-10-13 18:14:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1346, 2, 'd2805091f297453cbd6fd8d667f7e8e9', 1, 'default', NULL, '2023-10-14 06:15:45', '2', '2023-10-13 18:15:45', '2', '2023-10-13 18:15:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1347, 2, '9c6dc35067884823849f160b367e812f', 1, 'default', NULL, '2023-10-14 06:16:58', '2', '2023-10-13 18:16:58', '2', '2023-10-13 18:16:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1348, 2, '3bf08ea1028048e0aff1181b95805ffe', 1, 'default', NULL, '2023-10-14 06:17:22', '2', '2023-10-13 18:17:22', '2', '2023-10-13 18:17:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1349, 2, '389356bfb2a24d59a11632e9efd1d8bd', 1, 'default', NULL, '2023-10-14 06:17:49', '2', '2023-10-13 18:17:49', '2', '2023-10-13 18:17:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1350, 2, 'f310be2c8d3d49a29e55dd9b345319ab', 1, 'default', NULL, '2023-10-14 06:18:58', '2', '2023-10-13 18:18:58', '2', '2023-10-13 18:18:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1351, 2, 'ad01c35e92684ae5b1eccd59dbf63d02', 1, 'default', NULL, '2023-10-14 06:21:44', '2', '2023-10-13 18:21:44', '2', '2023-10-13 18:21:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1352, 2, '89db256458834c5191b9fc4922b80fb8', 1, 'default', NULL, '2023-10-16 21:46:09', NULL, '2023-10-16 09:46:09', NULL, '2023-10-16 09:46:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1353, 2, 'f7756573aad64fe38b46699f5c199388', 1, 'default', NULL, '2023-10-16 21:48:23', '2', '2023-10-16 09:48:23', '2', '2023-10-16 09:48:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1354, 2, '05e68a3c344b4b759c1ace42ba35da38', 1, 'default', NULL, '2023-10-16 21:49:03', '2', '2023-10-16 09:49:03', '2', '2023-10-16 09:49:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1355, 2, '61d6ca09fefb4ad8b2cb3dc322ba8757', 1, 'default', NULL, '2023-10-16 21:49:54', '2', '2023-10-16 09:49:54', '2', '2023-10-16 09:49:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1356, 2, '5617f822d8934b3d86b6d0bca8aa2eba', 1, 'default', NULL, '2023-10-16 21:55:24', '2', '2023-10-16 09:55:24', '2', '2023-10-16 09:55:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1357, 2, 'dfa96289bc2a44eb93f259100711d33d', 1, 'default', NULL, '2023-10-16 21:56:22', '2', '2023-10-16 09:56:22', '2', '2023-10-16 09:56:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1358, 2, 'bbd3a3cb5bbf48c69767d2ac02138ddc', 1, 'default', NULL, '2023-10-16 21:58:27', '2', '2023-10-16 09:58:27', '2', '2023-10-16 09:58:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1359, 2, '9f727cc6353a4e60b265b8b345f3b3c2', 1, 'default', NULL, '2023-10-16 22:00:53', '2', '2023-10-16 10:00:53', '2', '2023-10-16 10:00:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1360, 2, '2708633380844ac491ffbbf1bf15191a', 1, 'default', NULL, '2023-10-16 22:01:27', '2', '2023-10-16 10:01:27', '2', '2023-10-16 10:01:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1361, 2, '58a7dee21a5c45c9b07e36f5643059e5', 1, 'default', NULL, '2023-10-16 22:25:27', '2', '2023-10-16 10:25:27', '2', '2023-10-16 10:25:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1362, 2, '700e8f07455e4f63ace10191f3b85182', 1, 'default', NULL, '2023-10-16 22:28:53', '2', '2023-10-16 10:28:53', '2', '2023-10-16 10:28:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1363, 2, '2fcffb43495041b8b4c25d969cb6253e', 1, 'default', NULL, '2023-10-16 22:29:49', '2', '2023-10-16 10:29:49', '2', '2023-10-16 10:29:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1364, 2, '8f8bf7367bf94ad7b8646ca14917eab1', 1, 'default', NULL, '2023-10-16 22:33:08', '2', '2023-10-16 10:33:08', '2', '2023-10-16 10:33:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1365, 2, '8d11e5422263418cbe93f4b2ac642a77', 1, 'default', NULL, '2023-10-16 22:38:50', '2', '2023-10-16 10:38:50', '2', '2023-10-16 10:38:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1366, 2, 'd19360a621e846d19466ab1c9b8830d7', 1, 'default', NULL, '2023-10-16 22:40:15', '2', '2023-10-16 10:40:15', '2', '2023-10-16 10:40:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1367, 2, 'c471a047e43243b0badf91e94aa73080', 1, 'default', NULL, '2023-10-16 22:41:54', '2', '2023-10-16 10:41:54', '2', '2023-10-16 10:41:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1368, 2, '48a7c177072749f2a3916a1c1e4eb5bc', 1, 'default', NULL, '2023-10-16 22:51:58', '2', '2023-10-16 10:51:58', '2', '2023-10-16 10:51:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1369, 2, 'd2f609a02d6c468491ebd4f36f1fd210', 1, 'default', NULL, '2023-10-16 22:53:48', '2', '2023-10-16 10:53:48', '2', '2023-10-16 10:53:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1370, 2, 'd8e7731d5cd54a4ea9a387a4753908f2', 1, 'default', NULL, '2023-10-16 22:55:06', NULL, '2023-10-16 10:55:06', NULL, '2023-10-16 10:55:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1371, 4, '4a54d96d093d48bc9620527b25a4a2d1', 1, 'default', NULL, '2023-10-19 22:02:47', NULL, '2023-10-19 10:02:47', NULL, '2023-10-19 10:02:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1372, 4, 'd91be7710e724242aeddbbde414408a5', 1, 'default', NULL, '2023-10-19 23:11:57', NULL, '2023-10-19 11:11:57', NULL, '2023-10-19 11:11:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1373, 5, 'eac57410fc6b41099676749b5c509c95', 1, 'default', NULL, '2023-10-19 23:13:23', NULL, '2023-10-19 11:13:23', NULL, '2023-10-19 11:13:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1374, 5, 'a6ab06ace4684260a451ce4dd116b0a5', 1, 'default', NULL, '2023-10-20 04:56:35', NULL, '2023-10-19 16:56:35', NULL, '2023-10-19 16:56:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1375, 7, '525c9dc3130045daac6b4f4846b7912c', 1, 'default', NULL, '2023-10-21 04:39:01', NULL, '2023-10-20 16:39:01', NULL, '2023-10-20 16:39:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1376, 7, '107e5c14941e4f6b89f8c216cfbbc447', 1, 'default', NULL, '2023-10-21 22:10:31', NULL, '2023-10-21 10:10:31', NULL, '2023-10-21 10:10:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1377, 7, 'bcc11c782d8c4013a0d2eda542004afa', 1, 'default', NULL, '2023-10-21 22:13:08', NULL, '2023-10-21 10:13:08', NULL, '2023-10-21 10:13:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1378, 7, '18eaea8e82a848eda4dcd864f7946ca4', 1, 'default', NULL, '2023-10-21 23:33:54', NULL, '2023-10-21 11:33:54', NULL, '2023-10-21 11:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1379, 8, '698ebd21e4cf40208d9990d15b9c22d3', 1, 'default', NULL, '2023-10-21 23:35:08', NULL, '2023-10-21 11:35:08', NULL, '2023-10-21 11:35:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1380, 7, 'a75861d3258e4dbdb0f636fdba43fa31', 1, 'default', NULL, '2023-10-23 21:47:53', NULL, '2023-10-23 09:47:53', NULL, '2023-10-23 09:47:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1381, 7, '76db17dd14cd467b8aae9bf90502ceda', 1, 'default', NULL, '2023-10-23 21:48:21', NULL, '2023-10-23 09:48:21', NULL, '2023-10-23 09:48:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1382, 7, '03fa868b94f4443ea56dd1f4b3546b82', 1, 'default', NULL, '2023-10-23 21:53:34', NULL, '2023-10-23 09:53:34', NULL, '2023-10-23 09:53:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1383, 7, '9a6878148d2344149f18ee796470689a', 1, 'default', NULL, '2023-10-23 22:12:14', NULL, '2023-10-23 10:12:14', NULL, '2023-10-23 10:12:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1384, 7, 'af7cd6a1d41c46be8876e15dbc48615d', 1, 'default', NULL, '2023-10-23 22:19:17', NULL, '2023-10-23 10:19:17', NULL, '2023-10-23 10:19:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1385, 7, '3b606682286d4602a86eca98e5bb69b1', 1, 'default', NULL, '2023-10-23 22:21:40', NULL, '2023-10-23 10:21:40', NULL, '2023-10-23 10:21:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1386, 7, '1972691844bb498caa65aedc0d35c7d8', 1, 'default', NULL, '2023-10-23 22:25:09', NULL, '2023-10-23 10:25:09', NULL, '2023-10-23 10:25:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1387, 7, '5f797d95e00e43f2951abc710b69e3bb', 1, 'default', NULL, '2023-10-23 22:33:28', NULL, '2023-10-23 10:33:28', NULL, '2023-10-23 10:33:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1388, 5, '00edf117f202476e851e301ff3b448b5', 1, 'default', NULL, '2023-10-28 05:20:47', NULL, '2023-10-27 17:20:47', NULL, '2023-10-27 17:20:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1389, 5, '488f5184c90e40c38e6e51e384c8e59e', 1, 'default', NULL, '2023-10-28 05:23:30', NULL, '2023-10-27 17:23:30', NULL, '2023-10-27 17:23:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1390, 5, '221a198621c344138defe5be08a93cd2', 1, 'default', NULL, '2023-10-28 05:38:02', NULL, '2023-10-27 17:38:02', NULL, '2023-10-27 17:38:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1391, 5, 'a173e8775c7b4f55ba764e24bf3da974', 1, 'default', NULL, '2023-10-28 05:40:44', NULL, '2023-10-27 17:40:44', NULL, '2023-10-27 17:40:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1392, 5, '7de4547b7e4448b8912937cb478d0f92', 1, 'default', NULL, '2023-10-29 04:37:01', NULL, '2023-10-28 16:37:01', NULL, '2023-10-28 16:37:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1393, 5, 'f1b62b4ba8ea41008d3b6e8acfb0748b', 1, 'default', NULL, '2023-10-31 23:35:39', NULL, '2023-10-31 11:35:39', NULL, '2023-10-31 11:35:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1394, 5, 'eea6085acbb3449ba9cd82d679195c4e', 1, 'default', NULL, '2023-10-31 23:44:06', NULL, '2023-10-31 11:44:06', NULL, '2023-10-31 11:44:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1395, 5, '1a4475e480c9405595be778419be446d', 1, 'default', NULL, '2023-10-31 23:45:58', NULL, '2023-10-31 11:45:58', NULL, '2023-10-31 11:45:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1396, 5, 'c3866829e32c422fb49ef3718a61cb33', 1, 'default', NULL, '2023-10-31 23:53:04', NULL, '2023-10-31 11:53:04', NULL, '2023-10-31 11:53:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1397, 2, '9b523653efd9498c8d377ea899d8d9ba', 1, 'default', NULL, '2023-11-01 00:02:55', NULL, '2023-10-31 12:02:55', NULL, '2023-10-31 12:02:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1398, 2, 'b39b76711d2c48a4af37c4c027eb815b', 1, 'default', NULL, '2023-11-08 04:53:10', '2', '2023-11-07 16:53:10', '2', '2023-11-07 16:53:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1399, 2, '99eec5ebdb0b4349b30e6f7dbf4d2613', 1, 'default', NULL, '2023-11-08 04:55:01', '2', '2023-11-07 16:55:01', '2', '2023-11-07 16:55:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1400, 2, '17cf06b38eb74aff9367211581a3393c', 1, 'default', NULL, '2023-11-08 04:55:41', '2', '2023-11-07 16:55:41', '2', '2023-11-07 16:55:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1401, 2, 'a3b4da9d163545b2ba0223153c5f149a', 1, 'default', NULL, '2023-11-08 04:56:13', '2', '2023-11-07 16:56:13', '2', '2023-11-07 16:56:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1402, 2, 'dd50814c9337435c9c2faad0a1feb37b', 1, 'default', NULL, '2023-11-08 04:58:14', '2', '2023-11-07 16:58:14', '2', '2023-11-07 16:58:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1403, 2, 'bada5974f0b04ee09888abc675152a4f', 1, 'default', NULL, '2023-11-08 05:01:50', '2', '2023-11-07 17:01:50', '2', '2023-11-07 17:01:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1404, 2, 'bee77bbb04c44e39b425507ab76d4df8', 1, 'default', NULL, '2023-11-08 05:02:45', '2', '2023-11-07 17:02:45', '2', '2023-11-07 17:02:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1405, 9, 'b7c828363582479286328255cd3b69f1', 1, 'default', NULL, '2023-11-08 05:17:45', NULL, '2023-11-07 17:17:45', NULL, '2023-11-07 17:17:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1406, 9, '9ea41ff41e8d41c7a654463bf7c22050', 1, 'default', NULL, '2023-11-08 05:30:05', '9', '2023-11-07 17:30:05', '9', '2023-11-07 17:30:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1407, 9, '4d9ce9e7a1fc497e98bfdb9129c96524', 1, 'default', NULL, '2023-11-09 06:09:01', '9', '2023-11-08 18:09:01', '9', '2023-11-08 18:09:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1408, 9, '4d1e662bac9540bb958bbf162a7f7cce', 1, 'default', NULL, '2023-11-09 06:36:14', '9', '2023-11-08 18:36:14', '9', '2023-11-08 18:36:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1409, 9, '82b1c326becc40ef989accde3d569bd7', 1, 'default', NULL, '2023-11-09 06:43:37', NULL, '2023-11-08 18:43:37', NULL, '2023-11-08 18:43:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1410, 9, 'e59017b1001e434eb1ebf18ba932faf9', 1, 'default', NULL, '2023-11-09 23:55:58', '9', '2023-11-09 11:55:58', '9', '2023-11-09 11:55:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1411, 9, '57e2bd6261da4db78a56472b61170faf', 1, 'default', NULL, '2023-11-09 23:57:21', '9', '2023-11-09 11:57:21', '9', '2023-11-09 11:57:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1412, 9, 'ad376a108a2e4d54866934923c72a487', 1, 'default', NULL, '2023-11-09 23:58:28', '9', '2023-11-09 11:58:28', '9', '2023-11-09 11:58:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1413, 9, '9ac873898cd14f07b6e70f0c5731c15b', 1, 'default', NULL, '2023-11-10 00:00:21', '9', '2023-11-09 12:00:21', '9', '2023-11-09 12:00:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1414, 9, 'fa54ea7b478f4276ab88008856e13a42', 1, 'default', NULL, '2023-11-10 00:01:59', '9', '2023-11-09 12:01:59', '9', '2023-11-09 12:01:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1415, 9, '08fed39d5a164b59a4b99ff4f8125ff8', 1, 'default', NULL, '2023-11-10 00:14:45', '9', '2023-11-09 12:14:45', '9', '2023-11-09 12:14:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1416, 9, '33951c91f23d4eeaaba6bae8527f7905', 1, 'default', NULL, '2023-11-10 00:22:11', '9', '2023-11-09 12:22:11', '9', '2023-11-09 12:22:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1417, 9, 'e3d4b883315d4466b5bd9d94e7e0546d', 1, 'default', NULL, '2023-11-10 03:01:56', '9', '2023-11-09 15:01:56', '9', '2023-11-09 15:01:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1418, 9, '57068c63f9cd46ea811518515cac7894', 1, 'default', NULL, '2023-11-10 03:02:10', '9', '2023-11-09 15:02:10', '9', '2023-11-09 15:02:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1419, 9, '5dd58ee2170543e1958efef92c20c4fc', 1, 'default', NULL, '2023-11-10 22:26:07', '9', '2023-11-10 10:26:07', '9', '2023-11-10 10:26:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1420, 9, '1cc4c4032ab04c0b972328ef04dc1d50', 1, 'default', NULL, '2023-11-10 22:28:52', '9', '2023-11-10 10:28:52', '9', '2023-11-10 10:28:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1421, 9, '8bc223a66d294b44b13051c1f9ede46b', 1, 'default', NULL, '2023-11-10 22:29:43', '9', '2023-11-10 10:29:43', '9', '2023-11-10 10:29:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1422, 9, '562ef55cb05e4f6eb10aafa131597cbd', 1, 'default', NULL, '2023-11-10 22:30:54', '9', '2023-11-10 10:30:54', '9', '2023-11-10 10:30:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1423, 9, '6f400875989242059ae84e2d58eadb3f', 1, 'default', NULL, '2023-11-11 04:21:26', '9', '2023-11-10 16:21:26', '9', '2023-11-10 16:21:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1424, 9, 'cf0312fff87c463fad8c3f0775efa7a8', 1, 'default', NULL, '2023-11-11 04:43:02', '9', '2023-11-10 16:43:02', '9', '2023-11-10 16:43:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1425, 9, '0733b2dfa58944dca8eb5a1d82c06f3a', 1, 'default', NULL, '2023-11-11 04:43:52', '9', '2023-11-10 16:43:52', '9', '2023-11-10 16:43:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1426, 9, '0bc4af25d2714e58a366991463d8b948', 1, 'default', NULL, '2023-11-16 23:58:50', NULL, '2023-11-16 11:58:50', NULL, '2023-11-16 11:58:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1427, 9, '02640e68b3264dbd81e513d9ceddf502', 1, 'default', NULL, '2023-11-17 00:08:27', '9', '2023-11-16 12:08:27', '9', '2023-11-16 12:08:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1428, 9, '34a9733f2d1a47cb8a181bc396aae8f0', 1, 'default', NULL, '2023-11-17 00:10:15', '9', '2023-11-16 12:10:15', '9', '2023-11-16 12:10:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1429, 9, 'c92c4430ff2e44969985224c4e8445b8', 1, 'default', NULL, '2023-11-17 00:10:30', '9', '2023-11-16 12:10:30', '9', '2023-11-16 12:10:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1430, 9, 'f4fdcc83310f4cdaa03947dbe1541a2d', 1, 'default', NULL, '2023-11-17 00:10:48', '9', '2023-11-16 12:10:48', '9', '2023-11-16 12:10:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1431, 9, 'c86f81750a6b4f26a1f7f5a27fb60250', 1, 'default', NULL, '2023-11-17 02:08:26', '9', '2023-11-16 14:08:26', '9', '2023-11-16 14:08:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1432, 9, '2f7d3b39eefa48c4a53d3fc8bd66eccd', 1, 'default', NULL, '2023-11-17 02:58:29', '9', '2023-11-16 14:58:29', '9', '2023-11-16 14:58:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1433, 9, '756fbf42f9f8460a8be7f28d969bce3a', 1, 'default', NULL, '2023-11-17 03:00:03', '9', '2023-11-16 15:00:03', '9', '2023-11-16 15:00:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1434, 9, 'c9703d7ae9f142998478eebd585abc92', 1, 'default', NULL, '2023-11-17 03:00:42', '9', '2023-11-16 15:00:42', '9', '2023-11-16 15:00:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1435, 9, '8f36d62ace37488288be4dbcfdf12db2', 1, 'default', NULL, '2023-11-17 03:02:00', '9', '2023-11-16 15:02:00', '9', '2023-11-16 15:02:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1436, 9, 'c36dd561b7de4fa4ad19567d4ce4df58', 1, 'default', NULL, '2023-11-17 03:15:27', '9', '2023-11-16 15:15:27', '9', '2023-11-16 15:15:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1437, 9, 'd2c23eb54405407abf4b26eae7d2cd3a', 1, 'default', NULL, '2023-11-17 05:23:18', '9', '2023-11-16 17:23:18', '9', '2023-11-16 17:23:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1438, 9, 'a3ae6df82e8c4d648f9a735739e758b1', 1, 'default', NULL, '2023-11-17 05:36:35', '9', '2023-11-16 17:36:35', '9', '2023-11-16 17:36:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1439, 9, 'f1dc690b769a4a59b6cafd6dc3cbcdc0', 1, 'default', NULL, '2023-11-17 05:45:10', '9', '2023-11-16 17:45:10', '9', '2023-11-16 17:45:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1440, 9, '8bccdc6cd6b345649f23319a000746c2', 1, 'default', NULL, '2023-11-17 05:46:45', '9', '2023-11-16 17:46:45', '9', '2023-11-16 17:46:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1441, 9, '48f3a209b15243808bf0b395fbd64816', 1, 'default', NULL, '2023-11-17 05:47:37', '9', '2023-11-16 17:47:37', '9', '2023-11-16 17:47:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1442, 9, '79b5a4e85aaa41e6a95e504cc1f3c2b4', 1, 'default', NULL, '2023-11-17 05:47:52', '9', '2023-11-16 17:47:52', '9', '2023-11-16 17:47:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1443, 9, '36d21612539e4d829d273da23edd230a', 1, 'default', NULL, '2023-11-17 05:48:33', '9', '2023-11-16 17:48:33', '9', '2023-11-16 17:48:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1444, 9, '0638e73a9b2b47d9b6038220419d13d7', 1, 'default', NULL, '2023-11-17 05:53:39', '9', '2023-11-16 17:53:39', '9', '2023-11-16 17:53:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1445, 9, '00d9c74790a24824ae97476b3312212b', 1, 'default', NULL, '2023-11-17 06:08:13', '9', '2023-11-16 18:08:13', '9', '2023-11-16 18:08:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1446, 9, 'f85804c20a65418ead4db53ce8d051c9', 1, 'default', NULL, '2023-11-17 06:08:43', '9', '2023-11-16 18:08:43', '9', '2023-11-16 18:08:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1447, 9, 'a4e628b38dca434c96f1d770122fc2b9', 1, 'default', NULL, '2023-11-17 06:09:34', '9', '2023-11-16 18:09:34', '9', '2023-11-16 18:09:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1448, 9, 'f433bc7fb6a0492e8023d55ac22bcb19', 1, 'default', NULL, '2023-11-17 06:11:37', '9', '2023-11-16 18:11:37', '9', '2023-11-16 18:11:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1449, 9, 'd36364c13e294bac9d756dcc3b4db439', 1, 'default', NULL, '2023-11-17 06:12:54', '9', '2023-11-16 18:12:54', '9', '2023-11-16 18:12:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1450, 9, 'c4bea860a5e64d0a8d550d83b6709b0b', 1, 'default', NULL, '2023-11-17 06:15:22', '9', '2023-11-16 18:15:22', '9', '2023-11-16 18:15:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1451, 9, 'b7b1d24ffdc8459ea75065329ef83e71', 1, 'default', NULL, '2023-11-17 06:21:09', '9', '2023-11-16 18:21:09', '9', '2023-11-16 18:21:09', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1452, 9, '8f805df1756e4e739cdaa6f99adc0ec4', 1, 'default', NULL, '2023-11-17 06:22:59', '9', '2023-11-16 18:22:59', '9', '2023-11-16 18:22:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1453, 9, '7bc333bf707a42bb9ad5d7e0c1c136fb', 1, 'default', NULL, '2023-11-17 06:23:33', '9', '2023-11-16 18:23:33', '9', '2023-11-16 18:23:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1454, 9, 'b2c25aa9fa584417a107835a459ae6a6', 1, 'default', NULL, '2023-11-17 06:30:10', '9', '2023-11-16 18:30:10', '9', '2023-11-16 18:30:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1455, 9, '3167f9fd2d904fe3a7509594ba4a6285', 1, 'default', NULL, '2023-11-17 06:33:46', '9', '2023-11-16 18:33:46', '9', '2023-11-16 18:33:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1456, 9, '4235c09176624f45ad5d430df142e35c', 1, 'default', NULL, '2023-11-17 06:41:34', '9', '2023-11-16 18:41:34', '9', '2023-11-16 18:41:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1457, 9, '129592e6a6e043fa9672dd370e83fe41', 1, 'default', NULL, '2023-11-17 06:43:52', '9', '2023-11-16 18:43:52', '9', '2023-11-16 18:43:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1458, 9, '115e8209b8e049f6a908226bf48a954a', 1, 'default', NULL, '2023-11-17 06:45:10', '9', '2023-11-16 18:45:10', '9', '2023-11-16 18:45:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1459, 9, '0f234dc57c7a4cb7bc81cb54acb3dc88', 1, 'default', NULL, '2023-11-17 06:46:05', '9', '2023-11-16 18:46:05', '9', '2023-11-16 18:46:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1460, 9, '86a3defa710648be970527bc0b7cceae', 1, 'default', NULL, '2023-11-17 06:46:34', '9', '2023-11-16 18:46:34', '9', '2023-11-16 18:46:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1461, 9, '974ee05b7b5248db801bcc0892c1648c', 1, 'default', NULL, '2023-11-17 21:40:05', '9', '2023-11-17 09:40:05', '9', '2023-11-17 09:40:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1462, 9, '16f9563ce0d846d7a3ee33480a2fe0e6', 1, 'default', NULL, '2023-11-17 21:46:18', '9', '2023-11-17 09:46:18', '9', '2023-11-17 09:46:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1463, 9, '63ee0439cf9f49b0859508c76eba8873', 1, 'default', NULL, '2023-11-17 22:05:33', '9', '2023-11-17 10:05:33', '9', '2023-11-17 10:05:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1464, 9, '41ccb1ef7e47471cbe63a900b1dd6b45', 1, 'default', NULL, '2023-11-17 22:08:27', '9', '2023-11-17 10:08:27', '9', '2023-11-17 10:08:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1465, 9, 'dd6ab9b599124719b942ae9beebd9bc2', 1, 'default', NULL, '2023-11-17 22:13:33', '9', '2023-11-17 10:13:33', '9', '2023-11-17 10:13:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1466, 9, 'e920dd5583ec466b9d4a1a005dbf266a', 1, 'default', NULL, '2023-11-17 22:17:20', '9', '2023-11-17 10:17:20', '9', '2023-11-17 10:17:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1467, 9, '9540fd0478c24f02bdd94999b66f68bf', 1, 'default', NULL, '2023-11-17 22:20:29', '9', '2023-11-17 10:20:29', '9', '2023-11-17 10:20:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1468, 9, '22c7615470ee4dd89d333fa1d0a22525', 1, 'default', NULL, '2023-11-17 22:21:08', '9', '2023-11-17 10:21:08', '9', '2023-11-17 10:21:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1469, 9, 'acd96a5bfeed423e9315893a58241586', 1, 'default', NULL, '2023-11-17 22:21:51', '9', '2023-11-17 10:21:51', '9', '2023-11-17 10:21:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1470, 9, 'def41313ac274c359faa0cafc7529fde', 1, 'default', NULL, '2023-11-17 22:31:18', '9', '2023-11-17 10:31:18', '9', '2023-11-17 10:31:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1471, 9, '2ec1f8b87bcf471e9e8e54b62eb4d6e3', 1, 'default', NULL, '2023-11-17 22:35:11', '9', '2023-11-17 10:35:11', '9', '2023-11-17 10:35:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1472, 9, '7697108161ee43e69740a0e8b1f84df9', 1, 'default', NULL, '2023-11-17 22:48:35', '9', '2023-11-17 10:48:35', '9', '2023-11-17 10:48:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1473, 9, 'ba6d63b145b2432d877f3df643ea2818', 1, 'default', NULL, '2023-11-17 22:51:05', '9', '2023-11-17 10:51:05', '9', '2023-11-17 10:51:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1474, 9, '45833d23f4844c1486e59030d59614fe', 1, 'default', NULL, '2023-11-17 22:54:48', '9', '2023-11-17 10:54:48', '9', '2023-11-17 10:54:48', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1475, 9, '7db2c92f52f0487193e645a043663989', 1, 'default', NULL, '2023-11-17 22:55:10', '9', '2023-11-17 10:55:10', '9', '2023-11-17 10:55:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1476, 9, 'd7de2bdff83845f6b63bc190a31886d9', 1, 'default', NULL, '2023-11-17 23:16:25', '9', '2023-11-17 11:16:25', '9', '2023-11-17 11:16:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1477, 9, 'f5c2629f75e74202b7d2cb2bee8e5e07', 1, 'default', NULL, '2023-11-17 23:17:20', '9', '2023-11-17 11:17:20', '9', '2023-11-17 11:17:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1478, 9, 'bbfc0bdfa9af4e8888b3d0f4f30332cc', 1, 'default', NULL, '2023-11-17 23:25:04', '9', '2023-11-17 11:25:04', '9', '2023-11-17 11:25:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1479, 9, '782f037c1b784c4980935850b503bcba', 1, 'default', NULL, '2023-11-17 23:27:47', '9', '2023-11-17 11:27:47', '9', '2023-11-17 11:27:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1480, 9, '6154b1c3449948858ad5022ae06ebcd1', 1, 'default', NULL, '2023-11-17 23:46:02', '9', '2023-11-17 11:46:02', '9', '2023-11-17 11:46:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1481, 9, '59fd279e83e14808b2722762b3afcd6c', 1, 'default', NULL, '2023-11-17 23:46:47', '9', '2023-11-17 11:46:47', '9', '2023-11-17 11:46:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1482, 9, '8538749c7d65422f92cdb873d0c5f4ab', 1, 'default', NULL, '2023-11-17 23:48:46', '9', '2023-11-17 11:48:46', '9', '2023-11-17 11:48:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1483, 9, 'c0105aa624854caebdffbc643f1e7f80', 1, 'default', NULL, '2023-11-17 23:57:14', '9', '2023-11-17 11:57:14', '9', '2023-11-17 11:57:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1484, 9, 'c586331b5c4746f488a919714df733d8', 1, 'default', NULL, '2023-11-21 21:50:38', '9', '2023-11-21 09:50:38', '9', '2023-11-21 09:50:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1485, 1, 'bd2c11f732cf4cd68870ebe2919b8376', 2, 'default', NULL, '2023-11-21 21:52:47', NULL, '2023-11-21 09:52:47', NULL, '2023-12-08 09:43:09', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1486, 9, 'bf22b3f8461c4747b8f84a9ed8ddf519', 1, 'default', NULL, '2023-11-21 22:00:53', '9', '2023-11-21 10:00:53', '9', '2023-11-21 10:00:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1487, 9, '4de8d48c1e564164b783405ed06c8bf8', 1, 'default', NULL, '2023-11-21 22:04:30', '9', '2023-11-21 10:04:30', '9', '2023-11-21 10:04:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1488, 9, '3d6010560c35449ab9130b164564a64e', 1, 'default', NULL, '2023-11-22 04:44:47', '9', '2023-11-21 16:44:47', '9', '2023-11-21 16:44:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1489, 9, '671a1360424f4577a52392ffe8a1a4bb', 1, 'default', NULL, '2023-11-22 21:48:53', '9', '2023-11-22 09:48:53', '9', '2023-11-22 09:48:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1490, 9, 'b95fe0d5f8db48c680716e5873a794cb', 1, 'default', NULL, '2023-11-22 22:21:55', '9', '2023-11-22 10:21:55', '9', '2023-11-22 10:21:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1491, 9, 'd03992ba249345ea88f10617e609ef16', 1, 'default', NULL, '2023-11-22 22:23:12', '9', '2023-11-22 10:23:12', '9', '2023-11-22 10:23:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1492, 9, '95b203461b134439ae6bf39b57ed7d75', 1, 'default', NULL, '2023-11-22 22:29:13', '9', '2023-11-22 10:29:13', '9', '2023-11-22 10:29:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1493, 9, '42b58e1aeb9d402ca03ff0cad5200503', 1, 'default', NULL, '2023-11-22 22:30:57', '9', '2023-11-22 10:30:57', '9', '2023-11-22 10:30:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1494, 9, 'a27c08197e7a4d16b581adab16a094a8', 1, 'default', NULL, '2023-11-22 22:38:44', '9', '2023-11-22 10:38:44', '9', '2023-11-22 10:38:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1495, 9, '9f186343483545c5ad86b7fbe2d9e57f', 1, 'default', NULL, '2023-11-22 22:44:08', '9', '2023-11-22 10:44:08', '9', '2023-11-22 10:44:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1496, 9, '9b2f941adcff455c9a5216ff17cb378f', 1, 'default', NULL, '2023-11-22 22:52:50', '9', '2023-11-22 10:52:50', '9', '2023-11-22 10:52:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1497, 9, '98c3a63139a84f52b1cf4f17a615f720', 1, 'default', NULL, '2023-11-22 22:59:18', '9', '2023-11-22 10:59:18', '9', '2023-11-22 10:59:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1498, 9, '2f5ff83c8d4444a3a9e1dc45bc7d73dc', 1, 'default', NULL, '2023-11-22 23:13:53', '9', '2023-11-22 11:13:53', '9', '2023-11-22 11:13:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1499, 9, '30ab8a9bd7aa4f1382deaaca889cffc3', 1, 'default', NULL, '2023-11-22 23:17:00', '9', '2023-11-22 11:17:00', '9', '2023-11-22 11:17:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1500, 9, 'e31455934c464707af3db61113d5fc6c', 1, 'default', NULL, '2023-11-22 23:17:26', '9', '2023-11-22 11:17:26', '9', '2023-11-22 11:17:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1501, 9, '7b785fd245e0400ba9fe6aaaadcbdfbf', 1, 'default', NULL, '2023-11-22 23:17:45', '9', '2023-11-22 11:17:45', '9', '2023-11-22 11:17:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1502, 9, '9510de5f65994a8d8b64f352bdaae720', 1, 'default', NULL, '2023-11-22 23:18:08', '9', '2023-11-22 11:18:08', '9', '2023-11-22 11:18:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1503, 9, '657b49e8c7b34429a27ef6ab64f579fd', 1, 'default', NULL, '2023-11-23 03:06:24', '9', '2023-11-22 15:06:24', '9', '2023-11-22 15:06:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1504, 9, 'e738bec9bc0b4944851b24f10ade7f1e', 1, 'default', NULL, '2023-11-23 03:08:53', '9', '2023-11-22 15:08:53', '9', '2023-11-22 15:08:53', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1505, 9, 'ffe1d26d2f334a56858aa64a54162723', 1, 'default', NULL, '2023-11-23 03:09:14', '9', '2023-11-22 15:09:14', '9', '2023-11-22 15:09:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1506, 9, '5d2d1d37cb6b49f29d2f142c48a1dd24', 1, 'default', NULL, '2023-11-23 03:09:33', '9', '2023-11-22 15:09:33', '9', '2023-11-22 15:09:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1507, 9, '2dbbd27d59904de9ae85da873c168b52', 1, 'default', NULL, '2023-11-23 03:09:46', '9', '2023-11-22 15:09:46', '9', '2023-11-22 15:09:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1508, 9, 'e955c000bb4d47359ec7571671f3c611', 1, 'default', NULL, '2023-11-23 03:10:05', '9', '2023-11-22 15:10:05', '9', '2023-11-22 15:10:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1509, 9, '2326876e95cf41eea66477c65039b985', 1, 'default', NULL, '2023-11-23 03:10:56', '9', '2023-11-22 15:10:56', '9', '2023-11-22 15:10:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1510, 9, 'cafe2bb204564ce39f03ed3f49d3050a', 1, 'default', NULL, '2023-11-23 03:11:03', '9', '2023-11-22 15:11:03', '9', '2023-11-22 15:11:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1511, 9, '99d25a2a410c44d082f3796802235c24', 1, 'default', NULL, '2023-11-23 03:11:11', '9', '2023-11-22 15:11:11', '9', '2023-11-22 15:11:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1512, 9, '6ef23aa841f64b30aac0ead46f38189e', 1, 'default', NULL, '2023-11-23 03:11:29', '9', '2023-11-22 15:11:29', '9', '2023-11-22 15:11:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1513, 9, 'a04c07508e0c4c49a04f679aa8821bc4', 1, 'default', NULL, '2023-11-23 03:11:43', '9', '2023-11-22 15:11:43', '9', '2023-11-22 15:11:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1514, 9, 'e61759d00ce64c3a99f891cddefa9f35', 1, 'default', NULL, '2023-11-23 03:11:54', '9', '2023-11-22 15:11:54', '9', '2023-11-22 15:11:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1515, 9, 'ce3d3d75401441efafe99af0d246ae4c', 1, 'default', NULL, '2023-11-23 03:12:11', '9', '2023-11-22 15:12:11', '9', '2023-11-22 15:12:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1516, 9, 'a4244dd6bdb14c46ae7a6fafa316aed1', 1, 'default', NULL, '2023-11-23 03:12:18', '9', '2023-11-22 15:12:18', '9', '2023-11-22 15:12:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1517, 9, 'a1f2e06120414723b568c6dd577ccfd9', 1, 'default', NULL, '2023-11-23 03:16:10', '9', '2023-11-22 15:16:10', '9', '2023-11-22 15:16:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1518, 9, 'fce33f4c60874dc7b1accbf8718ebf4b', 1, 'default', NULL, '2023-11-23 03:19:59', '9', '2023-11-22 15:19:59', '9', '2023-11-22 15:19:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1519, 9, 'fdff53c17faf41be95460d1eb858c83f', 1, 'default', NULL, '2023-11-23 03:20:31', '9', '2023-11-22 15:20:31', '9', '2023-11-22 15:20:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1520, 9, '38c90a0281574e53bc1a39311c0cef3b', 1, 'default', NULL, '2023-11-23 21:18:39', '9', '2023-11-23 09:18:39', '9', '2023-11-23 09:18:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1521, 9, '9b9b6b75f9c84ea68cad75fccf4fb37c', 1, 'default', NULL, '2023-11-26 22:00:08', NULL, '2023-11-26 10:00:08', NULL, '2023-11-26 10:00:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1522, 9, '0fcf2041c0c6424f9b5db1617180b3d6', 1, 'default', NULL, '2023-11-26 23:04:56', '9', '2023-11-26 11:04:56', '9', '2023-11-26 11:04:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1523, 9, '8f6a8fd43b94480c86f3a87341b878c6', 1, 'default', NULL, '2023-11-26 23:07:44', '9', '2023-11-26 11:07:44', '9', '2023-11-26 11:07:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1524, 9, '8bc8d98e9f804b5e94a2d48a9b7c20f0', 1, 'default', NULL, '2023-11-26 23:12:27', '9', '2023-11-26 11:12:27', '9', '2023-11-26 11:12:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1525, 9, '35c0e75d74b84c2cb6fe55555e07d531', 1, 'default', NULL, '2023-11-26 23:12:43', '9', '2023-11-26 11:12:43', '9', '2023-11-26 11:12:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1526, 9, '445543a1b6264547a9e5b73670c03523', 1, 'default', NULL, '2023-11-26 23:18:01', '9', '2023-11-26 11:18:01', '9', '2023-11-26 11:18:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1527, 9, 'cc6fc8eeafc44dee98be6bfdcc702f47', 1, 'default', NULL, '2023-11-26 23:18:38', '9', '2023-11-26 11:18:38', '9', '2023-11-26 11:18:38', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1528, 9, '4b10e73b766c41efb4f995b18b0a3d7d', 1, 'default', NULL, '2023-11-26 23:19:56', '9', '2023-11-26 11:19:56', '9', '2023-11-26 11:19:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1529, 9, 'f9321c9a61c94711a430dffdc874beb9', 1, 'default', NULL, '2023-11-26 23:22:28', '9', '2023-11-26 11:22:28', '9', '2023-11-26 11:22:28', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1530, 9, 'f9a225c6e5904168bbaa195ccf9b4d3f', 1, 'default', NULL, '2023-11-26 23:31:27', '9', '2023-11-26 11:31:27', '9', '2023-11-26 11:31:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1531, 9, '82369c02fc44423692d37cdb8a3eb04f', 1, 'default', NULL, '2023-11-26 23:31:42', '9', '2023-11-26 11:31:42', '9', '2023-11-26 11:31:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1532, 9, '3958d310b2164d86b316e87355cd9c60', 1, 'default', NULL, '2023-11-26 23:31:51', '9', '2023-11-26 11:31:51', '9', '2023-11-26 11:31:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1533, 9, '8a7437690b084060b31eecc35ac2f98c', 1, 'default', NULL, '2023-11-26 23:32:02', '9', '2023-11-26 11:32:02', '9', '2023-11-26 11:32:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1534, 9, '9e597be03073465aaad59337886445d8', 1, 'default', NULL, '2023-11-26 23:32:10', '9', '2023-11-26 11:32:10', '9', '2023-11-26 11:32:10', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1535, 9, 'a623400fbc754854a6717734abeceae5', 1, 'default', NULL, '2023-11-26 23:33:54', '9', '2023-11-26 11:33:54', '9', '2023-11-26 11:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1536, 9, 'a9d6103ba059419c8632a65c0800bcb6', 1, 'default', NULL, '2023-11-26 23:34:07', '9', '2023-11-26 11:34:07', '9', '2023-11-26 11:34:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1537, 9, '64f6fb7cbb774277967bac0741096f14', 1, 'default', NULL, '2023-11-26 23:34:15', '9', '2023-11-26 11:34:15', '9', '2023-11-26 11:34:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1538, 9, 'a06cdf234a564da3812f1f70b74f3a58', 1, 'default', NULL, '2023-11-26 23:39:42', '9', '2023-11-26 11:39:42', '9', '2023-11-26 11:39:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1539, 9, 'ddf7384ee0784968b62a607426f0bd9b', 1, 'default', NULL, '2023-11-26 23:39:52', '9', '2023-11-26 11:39:52', '9', '2023-11-26 11:39:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1540, 9, 'c281bca0b5c54bb6aca0d09a4dbf8247', 1, 'default', NULL, '2023-11-26 23:47:22', '9', '2023-11-26 11:47:22', '9', '2023-11-26 11:47:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1541, 9, 'c5ba5cd4edf54ee092dfc69d9c8b6a96', 1, 'default', NULL, '2023-11-27 00:01:54', '9', '2023-11-26 12:01:54', '9', '2023-11-26 12:01:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1542, 9, '3da08ea8ba884488b23e87297a52c978', 1, 'default', NULL, '2023-11-27 00:05:27', '9', '2023-11-26 12:05:27', '9', '2023-11-26 12:05:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1543, 9, '386c171c612e4211a87a3a1fe5c6d089', 1, 'default', NULL, '2023-11-27 00:05:56', '9', '2023-11-26 12:05:56', '9', '2023-11-26 12:05:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1544, 9, 'c2674cd472f542e5a570157fabf597d2', 1, 'default', NULL, '2023-11-27 00:14:18', '9', '2023-11-26 12:14:18', '9', '2023-11-26 12:14:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1545, 9, 'c036530276ca48b7a244ab76dd3a4344', 1, 'default', NULL, '2023-11-27 00:14:26', '9', '2023-11-26 12:14:26', '9', '2023-11-26 12:14:26', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1546, 9, 'be349c9f59834b08864d06a92693805d', 1, 'default', NULL, '2023-11-27 00:15:04', '9', '2023-11-26 12:15:04', '9', '2023-11-26 12:15:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1547, 9, '1fa7ad6ca8f44a0ca23c34b8a4d51106', 1, 'default', NULL, '2023-11-27 00:16:47', '9', '2023-11-26 12:16:47', '9', '2023-11-26 12:16:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1548, 9, 'a08a5af90cd04a8a84d6b208975ba131', 1, 'default', NULL, '2023-11-27 00:25:03', '9', '2023-11-26 12:25:03', '9', '2023-11-26 12:25:03', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1549, 9, 'a58259868c2040918fa57c54a62168c5', 1, 'default', NULL, '2023-11-27 00:26:19', '9', '2023-11-26 12:26:19', '9', '2023-11-26 12:26:19', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1550, 9, 'd69b39cddb4d48a9b62450f856db5874', 1, 'default', NULL, '2023-11-27 03:58:43', '9', '2023-11-26 15:58:43', '9', '2023-11-26 15:58:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1551, 9, '3a3039d780a4470598535bf6fc275eeb', 1, 'default', NULL, '2023-11-27 04:46:58', '9', '2023-11-26 16:46:58', '9', '2023-11-26 16:46:58', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1552, 9, 'f16d77eb955b450fa9e6f9540edbbbf4', 1, 'default', NULL, '2023-11-27 08:57:30', '9', '2023-11-26 20:57:30', '9', '2023-11-26 20:57:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1553, 9, '459ed014b85d4f4dacfe6fc680c0da6e', 1, 'default', NULL, '2023-11-27 09:07:22', '9', '2023-11-26 21:07:22', '9', '2023-11-26 21:07:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1554, 9, 'e5c93aa610034fa98e5cdab914db0d2f', 1, 'default', NULL, '2023-11-27 09:08:17', '9', '2023-11-26 21:08:17', '9', '2023-11-26 21:08:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1555, 9, '87a5a724c38e4dcb862c0b354b385753', 1, 'default', NULL, '2023-11-27 09:08:30', '9', '2023-11-26 21:08:30', '9', '2023-11-26 21:08:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1556, 9, '3f345cc82aff486a85844b9de7e2f716', 1, 'default', NULL, '2023-11-27 09:08:40', '9', '2023-11-26 21:08:40', '9', '2023-11-26 21:08:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1557, 9, '6ec781bcc9e047959cd352012e694dbd', 1, 'default', NULL, '2023-11-27 09:08:50', '9', '2023-11-26 21:08:50', '9', '2023-11-26 21:08:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1558, 9, 'af3cb24a306845cdbf931d7a4b0a6c2b', 1, 'default', NULL, '2023-11-27 09:12:23', '9', '2023-11-26 21:12:23', '9', '2023-11-26 21:12:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1559, 9, 'cbe367658fdf4d81a92910878d13b615', 1, 'default', NULL, '2023-11-27 09:12:35', '9', '2023-11-26 21:12:35', '9', '2023-11-26 21:12:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1560, 9, '5a2811a408db4d368cdb3f9aee8fd13d', 1, 'default', NULL, '2023-11-27 09:12:45', '9', '2023-11-26 21:12:45', '9', '2023-11-26 21:12:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1561, 9, '32f91f49da61475e814fae14bf6c8d61', 1, 'default', NULL, '2023-11-27 09:13:07', '9', '2023-11-26 21:13:07', '9', '2023-11-26 21:13:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1562, 9, 'd935e65b987b43bd84d717b22047f159', 1, 'default', NULL, '2023-11-27 09:17:55', '9', '2023-11-26 21:17:55', '9', '2023-11-26 21:17:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1563, 9, 'cd8e3609505444f7b4589d2be7a652b2', 1, 'default', NULL, '2023-11-27 09:21:15', '9', '2023-11-26 21:21:15', '9', '2023-11-26 21:21:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1564, 9, '7b6d59539bca4fe7993f5ea4dff11313', 1, 'default', NULL, '2023-11-27 09:23:11', '9', '2023-11-26 21:23:11', '9', '2023-11-26 21:23:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1565, 9, '5b6bd15a39824c928b53440d4e838eef', 1, 'default', NULL, '2023-11-27 09:23:37', '9', '2023-11-26 21:23:37', '9', '2023-11-26 21:23:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1566, 9, 'e499bbc991ed41cca954f69852f5ad2f', 1, 'default', NULL, '2023-11-27 09:23:50', '9', '2023-11-26 21:23:50', '9', '2023-11-26 21:23:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1567, 9, '6b3673fd304d445aab78265edceab0c5', 1, 'default', NULL, '2023-11-27 09:24:06', '9', '2023-11-26 21:24:06', '9', '2023-11-26 21:24:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1568, 9, '9287aaa24edd4f3c86a313a13bd558f7', 1, 'default', NULL, '2023-11-27 09:24:13', '9', '2023-11-26 21:24:13', '9', '2023-11-26 21:24:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1569, 9, '004f09d6f1b249b58de9fe507d165a2f', 1, 'default', NULL, '2023-11-27 09:25:17', '9', '2023-11-26 21:25:17', '9', '2023-11-26 21:25:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1570, 9, '33939242ddc547aba158b6a1e1f0f895', 1, 'default', NULL, '2023-11-27 09:25:29', '9', '2023-11-26 21:25:29', '9', '2023-11-26 21:25:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1571, 9, '205df0b2f2ab4fbb9d84c4fb062809cc', 1, 'default', NULL, '2023-11-27 09:25:42', '9', '2023-11-26 21:25:42', '9', '2023-11-26 21:25:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1572, 9, '2dfdd9488054431f905dd4fc7cb394fc', 1, 'default', NULL, '2023-11-27 09:30:51', '9', '2023-11-26 21:30:51', '9', '2023-11-26 21:30:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1573, 9, '0546ee00d0b942a0a08b81a30d87f705', 1, 'default', NULL, '2023-11-27 09:31:57', '9', '2023-11-26 21:31:57', '9', '2023-11-26 21:31:57', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1574, 9, '19b862d106824d89aeeeaf7e16884e42', 1, 'default', NULL, '2023-11-27 09:33:54', '9', '2023-11-26 21:33:54', '9', '2023-11-26 21:33:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1575, 9, '74be86eb68f0464dbeb170f0272593da', 1, 'default', NULL, '2023-11-27 09:34:15', '9', '2023-11-26 21:34:15', '9', '2023-11-26 21:34:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1576, 9, '3bac476e36574894b946db5c112734f0', 1, 'default', NULL, '2023-11-27 09:36:01', '9', '2023-11-26 21:36:01', '9', '2023-11-26 21:36:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1577, 9, '463c8fd8d9b34c6b8a786f8eeb656e79', 1, 'default', NULL, '2023-11-27 09:36:11', '9', '2023-11-26 21:36:11', '9', '2023-11-26 21:36:11', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1578, 9, 'a12dd5a723f24432aff4951fcefca288', 1, 'default', NULL, '2023-11-27 09:36:33', '9', '2023-11-26 21:36:33', '9', '2023-11-26 21:36:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1579, 9, 'b92971ebb3c54c9cacbeb961f59222d6', 1, 'default', NULL, '2023-11-27 09:36:49', '9', '2023-11-26 21:36:49', '9', '2023-11-26 21:36:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1580, 9, '8dc8b623b58f4d939fa510381addfe15', 1, 'default', NULL, '2023-11-27 09:36:59', '9', '2023-11-26 21:36:59', '9', '2023-11-26 21:36:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1581, 9, '9566f3db71ff4ee4b477afa5ff8ab383', 1, 'default', NULL, '2023-11-27 09:41:30', '9', '2023-11-26 21:41:30', '9', '2023-11-26 21:41:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1582, 9, '2a8cffe8c45c4625893520a801bc4ebe', 1, 'default', NULL, '2023-11-27 09:43:43', '9', '2023-11-26 21:43:43', '9', '2023-11-26 21:43:43', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1583, 9, '1ea01bf1b7e04d938fd7967abc62b8b3', 1, 'default', NULL, '2023-11-27 09:45:14', '9', '2023-11-26 21:45:14', '9', '2023-11-26 21:45:14', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1584, 9, 'ea3992b0d334494e891f337b599f8d7a', 1, 'default', NULL, '2023-11-28 22:54:51', '9', '2023-11-28 10:54:51', '9', '2023-11-28 10:54:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1585, 9, 'e09231db677d4245a95ab863e3de7bd9', 1, 'default', NULL, '2023-11-28 22:55:04', '9', '2023-11-28 10:55:04', '9', '2023-11-28 10:55:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1586, 9, '129b24bf4b1e4a548097dd04e58c0746', 1, 'default', NULL, '2023-11-28 23:01:41', '9', '2023-11-28 11:01:41', '9', '2023-11-28 11:01:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1587, 9, 'bee4751bb7f146419a1968b968ffb370', 1, 'default', NULL, '2023-11-28 23:05:08', '9', '2023-11-28 11:05:08', '9', '2023-11-28 11:05:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1588, 9, '4cf48e2a22034a6782fd2b9dc22adee5', 1, 'default', NULL, '2023-11-28 23:07:50', '9', '2023-11-28 11:07:50', '9', '2023-11-28 11:07:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1589, 9, '7f3abeeb420a4188a4e4ed1cdd2c1ea1', 1, 'default', NULL, '2023-11-28 23:10:27', '9', '2023-11-28 11:10:27', '9', '2023-11-28 11:10:27', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1590, 9, '8c8ba0fc69724b5a941eaa1292911b77', 1, 'default', NULL, '2023-11-28 23:15:59', '9', '2023-11-28 11:15:59', '9', '2023-11-28 11:15:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1591, 9, 'c0138e81c4b746f2ba007a1b5612fb54', 1, 'default', NULL, '2023-11-28 23:46:08', '9', '2023-11-28 11:46:08', '9', '2023-11-28 11:46:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1592, 9, 'ce41c2378f614b1cb983d21bff360d70', 1, 'default', NULL, '2023-11-28 23:59:35', '9', '2023-11-28 11:59:35', '9', '2023-11-28 11:59:35', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1593, 9, 'ed4a4747fe6f4de7a4885141ea2216f6', 1, 'default', NULL, '2023-11-29 00:01:22', '9', '2023-11-28 12:01:22', '9', '2023-11-28 12:01:22', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1594, 9, '1e78614506b143bfbd5eeb07c9409c19', 1, 'default', NULL, '2023-11-30 02:05:20', '9', '2023-11-29 14:05:20', '9', '2023-11-29 14:05:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1595, 9, '192978841d954716ab53ddc7f2af65ee', 1, 'default', NULL, '2023-11-30 02:05:51', '9', '2023-11-29 14:05:51', '9', '2023-11-29 14:05:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1596, 9, 'c4dcab837fb94f898de1bea496adbcbb', 1, 'default', NULL, '2023-11-30 02:06:55', '9', '2023-11-29 14:06:55', '9', '2023-11-29 14:06:55', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1597, 9, '8aa45676d99944658101d94913048e8e', 1, 'default', NULL, '2023-11-30 02:08:02', '9', '2023-11-29 14:08:02', '9', '2023-11-29 14:08:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1598, 9, '43c0a66b28f54b1e9657536cd7668e9a', 1, 'default', NULL, '2023-11-30 02:10:49', '9', '2023-11-29 14:10:49', '9', '2023-11-29 14:10:49', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1599, 9, '5f40c37fe2cd4948be50d4ea1e99b521', 1, 'default', NULL, '2023-11-30 02:21:32', '9', '2023-11-29 14:21:32', '9', '2023-11-29 14:21:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1600, 9, 'baaff823c9c74d819af64e194f781a98', 1, 'default', NULL, '2023-11-30 02:24:30', '9', '2023-11-29 14:24:30', '9', '2023-11-29 14:24:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1601, 9, 'ebdf395d8c95426fa38fb26bb34e2a80', 1, 'default', NULL, '2023-11-30 02:35:06', '9', '2023-11-29 14:35:06', '9', '2023-11-29 14:35:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1602, 9, 'a11d5791ab4c421b86236e43621c786e', 1, 'default', NULL, '2023-11-30 02:48:04', '9', '2023-11-29 14:48:04', '9', '2023-11-29 14:48:04', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1603, 9, 'f58da151614642f59484f75ea6feae91', 1, 'default', NULL, '2023-11-30 02:49:36', '9', '2023-11-29 14:49:36', '9', '2023-11-29 14:49:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1604, 9, 'cf9047e5a7f34889b01549fed3fbc876', 1, 'default', NULL, '2023-11-30 02:50:17', '9', '2023-11-29 14:50:17', '9', '2023-11-29 14:50:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1605, 9, '75fb0568b8654efd8e0ed41e4df5e8b0', 1, 'default', NULL, '2023-11-30 02:50:24', '9', '2023-11-29 14:50:24', '9', '2023-11-29 14:50:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1606, 9, '8e804aa1a6234c6fab239095f1c5a3f9', 1, 'default', NULL, '2023-11-30 03:00:13', '9', '2023-11-29 15:00:13', '9', '2023-11-29 15:00:13', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1607, 9, '3a498ce12cf6434399873862713f6da2', 1, 'default', NULL, '2023-11-30 03:11:21', '9', '2023-11-29 15:11:21', '9', '2023-11-29 15:11:21', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1608, 9, '1aa9b65b247d4337b99b54ba24a8680a', 1, 'default', NULL, '2023-11-30 03:15:16', '9', '2023-11-29 15:15:16', '9', '2023-11-29 15:15:16', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1609, 9, '320d9e0f5e1f40988747855b0e79f0eb', 1, 'default', NULL, '2023-11-30 03:20:24', '9', '2023-11-29 15:20:24', '9', '2023-11-29 15:20:24', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1610, 9, 'af25d59b2b444bfb850ddb6dc9df1193', 1, 'default', NULL, '2023-11-30 03:21:40', '9', '2023-11-29 15:21:40', '9', '2023-11-29 15:21:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1611, 9, '4eea7c639bc64743810af7bd8b5ec2ef', 1, 'default', NULL, '2023-11-30 03:38:15', '9', '2023-11-29 15:38:15', '9', '2023-11-29 15:38:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1612, 9, '2699eaf67e7745ceae645fab3a9961ca', 1, 'default', NULL, '2023-11-30 03:39:07', '9', '2023-11-29 15:39:07', '9', '2023-11-29 15:39:07', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1613, 9, '73debba1ce1c46a6a289e112f4e298ff', 1, 'default', NULL, '2023-11-30 03:43:54', '9', '2023-11-29 15:43:54', '9', '2023-11-29 15:43:54', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1614, 9, 'bd5f450b42de4fec8fdadcb6ce97ed49', 1, 'default', NULL, '2023-11-30 03:45:45', '9', '2023-11-29 15:45:45', '9', '2023-11-29 15:45:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1615, 9, 'de13e3429d634b1eba62272be312c44b', 1, 'default', NULL, '2023-11-30 03:57:40', '9', '2023-11-29 15:57:40', '9', '2023-11-29 15:57:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1616, 9, '51fe506e4d0945d99bc46e0841a771cc', 1, 'default', NULL, '2023-11-30 04:00:59', '9', '2023-11-29 16:00:59', '9', '2023-11-29 16:00:59', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1617, 9, '04b6b4f8831e44b08e6a1a4e020d6633', 1, 'default', NULL, '2023-11-30 04:11:30', '9', '2023-11-29 16:11:30', '9', '2023-11-29 16:11:30', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1618, 9, 'f08791d78b6c41428990d1b4965085bf', 1, 'default', NULL, '2023-11-30 04:16:52', '9', '2023-11-29 16:16:52', '9', '2023-11-29 16:16:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1619, 9, 'd9632b68e073492e83e7e2f13a78f2d3', 1, 'default', NULL, '2023-12-01 02:22:33', '9', '2023-11-30 14:22:33', '9', '2023-11-30 14:22:33', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1620, 9, '2f6ba9478f3a4c43b87e1ed4db4e5eb9', 1, 'default', NULL, '2023-12-01 02:28:46', '9', '2023-11-30 14:28:46', '9', '2023-11-30 14:28:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1621, 9, 'e8cec93befe0422ab597376b7d176ac1', 1, 'default', NULL, '2023-12-01 03:49:52', '9', '2023-11-30 15:49:52', '9', '2023-11-30 15:49:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1622, 9, '8732926a02d34a3d980c8de6691f9764', 1, 'default', NULL, '2023-12-01 03:50:05', '9', '2023-11-30 15:50:05', '9', '2023-11-30 15:50:05', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1623, 9, 'f85bd3a9eca14480a75f9cbed35ea79b', 1, 'default', NULL, '2023-12-01 04:00:15', '9', '2023-11-30 16:00:15', '9', '2023-11-30 16:00:15', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1624, 9, '2652924e8173442bb0ec3fd451a8bd2d', 1, 'default', NULL, '2023-12-01 04:04:06', '9', '2023-11-30 16:04:06', '9', '2023-11-30 16:04:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1625, 9, '166c18ab0eca4e4a87a464ceb8c71bbe', 1, 'default', NULL, '2023-12-01 04:50:29', '9', '2023-11-30 16:50:29', '9', '2023-11-30 16:50:29', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1626, 9, 'd6b60177f0da487380cc0c9f37c5c997', 1, 'default', NULL, '2023-12-01 05:08:52', '9', '2023-11-30 17:08:52', '9', '2023-11-30 17:08:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1627, 9, '5df83cec88da42ef96088eaa7dfd703f', 1, 'default', NULL, '2023-12-01 05:13:37', '9', '2023-11-30 17:13:37', '9', '2023-11-30 17:13:37', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1628, 9, 'c9623faa65ed4af0b2b7234347e75e8c', 1, 'default', NULL, '2023-12-01 22:00:51', '9', '2023-12-01 10:00:51', '9', '2023-12-01 10:00:51', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1629, 9, '6cbf685989ce4b8894e90e2a807f52b9', 1, 'default', NULL, '2023-12-01 22:27:56', '9', '2023-12-01 10:27:56', '9', '2023-12-01 10:27:56', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1630, 1, 'b19c01f421424a01be935eff06a6cf73', 2, 'default', NULL, '2023-12-02 21:50:15', NULL, '2023-12-02 09:50:15', NULL, '2023-12-02 09:52:31', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1631, 1, 'c8d2fc86cd814cb0ac745051bb655f5a', 2, 'default', NULL, '2023-12-02 21:52:45', NULL, '2023-12-02 09:52:45', NULL, '2023-12-02 09:52:45', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1632, 9, '7a6d580220ae478d9877914eb95b08a1', 1, 'default', NULL, '2023-12-03 03:13:01', '9', '2023-12-02 15:13:01', '9', '2023-12-02 15:13:01', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1633, 9, 'b183ddfe68a5427cbd2f539fdeec8dd6', 1, 'default', NULL, '2023-12-03 03:37:34', '9', '2023-12-02 15:37:34', '9', '2023-12-02 15:37:34', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1634, 9, 'f414365c3e964301b451f6dc1c8b8eb4', 1, 'default', NULL, '2023-12-03 04:33:00', '9', '2023-12-02 16:33:00', '9', '2023-12-02 16:33:00', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1635, 9, 'c0f29a9b53f7414eb73e413d7bf99242', 1, 'default', NULL, '2023-12-03 04:45:44', '9', '2023-12-02 16:45:44', '9', '2023-12-02 16:45:44', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1636, 9, 'f830c60ef9e94cfdb45e672974370e82', 1, 'default', NULL, '2023-12-03 04:46:17', '9', '2023-12-02 16:46:17', '9', '2023-12-02 16:46:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1637, 1, 'ad94b031820c448e8864e262f4ff9255', 2, 'default', NULL, '2023-12-04 05:15:39', NULL, '2023-12-03 17:15:39', NULL, '2023-12-03 17:15:39', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1638, 9, 'a907effa026e4c34a581cec43e565586', 1, 'default', NULL, '2023-12-04 21:39:36', '9', '2023-12-04 09:39:36', '9', '2023-12-04 09:39:36', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1639, 9, '8104ce635eea4590bec69c36eac87e37', 1, 'default', NULL, '2023-12-04 22:37:02', '9', '2023-12-04 10:37:02', '9', '2023-12-04 10:37:02', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1640, 9, 'eeb834f445354d2ba9ce3ab47f15b3bb', 1, 'default', NULL, '2023-12-04 22:52:06', '9', '2023-12-04 10:52:06', '9', '2023-12-04 10:52:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1641, 9, '77758d38ba214867834ac8df2fa40ce4', 1, 'default', NULL, '2023-12-04 23:01:42', '9', '2023-12-04 11:01:42', '9', '2023-12-04 11:01:42', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1642, 9, '1aa35f69eb9146d8a593a06889b084b4', 1, 'default', NULL, '2023-12-05 03:05:31', '9', '2023-12-04 15:05:31', '9', '2023-12-04 15:05:31', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1643, 1, '40c11f68015d48e4a0fc45f6821bdfea', 2, 'default', NULL, '2023-12-08 21:43:16', NULL, '2023-12-08 09:43:16', NULL, '2023-12-08 10:11:19', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1644, 9, 'd08ad2fee1354c6f96e6db3a5e1992ca', 1, 'default', NULL, '2023-12-08 22:07:32', NULL, '2023-12-08 10:07:32', NULL, '2023-12-08 10:07:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1645, 9, '5b647c12db9d415fb0da1fb383a700d6', 1, 'default', NULL, '2023-12-08 22:10:18', '9', '2023-12-08 10:10:18', '9', '2023-12-08 10:10:18', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1646, 1, '8a07266b81974668b8b5f82f013c42b5', 2, 'default', NULL, '2023-12-08 22:11:29', NULL, '2023-12-08 10:11:29', NULL, '2023-12-08 10:25:44', b'1', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1647, 1, 'bd509a7283a7493980042119e2676b5e', 2, 'default', NULL, '2023-12-08 22:25:52', NULL, '2023-12-08 10:25:52', NULL, '2023-12-08 10:25:52', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1648, 9, 'f40821531b2a49f8b9adf45f16ade1af', 1, 'default', NULL, '2023-12-08 22:28:08', '9', '2023-12-08 10:28:08', '9', '2023-12-08 10:28:08', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1649, 9, 'b3ccce1ad7744e84b774d990a2c8b89f', 1, 'default', NULL, '2023-12-08 22:29:12', '9', '2023-12-08 10:29:12', '9', '2023-12-08 10:29:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1650, 9, '0f377e65674542788e898dbb5de0829a', 1, 'default', NULL, '2023-12-08 23:05:25', NULL, '2023-12-08 11:05:25', NULL, '2023-12-08 11:05:25', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1651, 9, '784cd07c90034d87ad75552d77134c29', 1, 'default', NULL, '2023-12-08 23:16:20', '9', '2023-12-08 11:16:20', '9', '2023-12-08 11:16:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1652, 9, '70598a40ac434c74a6f504db8afc6d3c', 1, 'default', NULL, '2023-12-08 23:18:50', '9', '2023-12-08 11:18:50', '9', '2023-12-08 11:18:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1653, 1, '3d623f53a4544fe8a9275643054368b3', 2, 'default', NULL, '2024-02-24 22:17:46', NULL, '2024-02-24 10:17:46', NULL, '2024-02-24 10:17:46', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1654, 9, 'def3065538ad4a4188958dbfb256e64c', 1, 'default', NULL, '2024-02-24 22:28:40', NULL, '2024-02-24 10:28:40', NULL, '2024-02-24 10:28:40', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1655, 1, '276b304cafd848c0a6c288ce019b61c8', 2, 'default', NULL, '2024-03-27 03:21:17', NULL, '2024-03-26 15:21:17', NULL, '2024-03-26 15:21:17', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1656, 1, 'b67f082f613245ea85a4b018f494b550', 2, 'default', NULL, '2024-04-04 02:23:23', NULL, '2024-04-03 14:23:23', NULL, '2024-04-03 14:23:23', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1657, 1, '6e8bc565f6524d30ba321bb4c0bfd8aa', 2, 'default', NULL, '2024-05-09 03:11:20', NULL, '2024-05-08 15:11:20', NULL, '2024-05-08 15:11:20', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1658, 9, 'ecfbdf499c0f4e3bbe70ae03a54e5ce0', 1, 'default', NULL, '2024-05-09 03:11:41', '9', '2024-05-08 15:11:41', '9', '2024-05-08 15:11:41', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1659, 9, '781e516cab6d4086977bd3213581ec03', 1, 'default', NULL, '2024-05-09 03:16:50', '9', '2024-05-08 15:16:50', '9', '2024-05-08 15:16:50', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1660, 9, '0997654ef07f4a44af5aa24ce55008ab', 1, 'default', NULL, '2024-05-09 03:21:47', '9', '2024-05-08 15:21:47', '9', '2024-05-08 15:21:47', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1661, 9, '9d56365f694746f3aa97cfb010854a64', 1, 'default', NULL, '2024-05-09 03:26:06', '9', '2024-05-08 15:26:06', '9', '2024-05-08 15:26:06', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1662, 1, '379fb12c1d804a08adc48f45f66d9610', 2, 'default', NULL, '2024-05-21 22:26:32', NULL, '2024-05-21 10:26:32', NULL, '2024-05-21 10:26:32', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1663, 1, '175df0fb56314d648010b4d0ffbf47a4', 2, 'default', NULL, '2024-05-30 04:20:12', NULL, '2024-05-29 16:20:12', NULL, '2024-05-29 16:20:12', b'0', 0, 0); +INSERT INTO `system_oauth2_refresh_token` VALUES (1664, 1, 'e246179231ec49468e41dd3349b402cd', 2, 'default', NULL, '2024-06-02 01:24:33', NULL, '2024-06-01 13:24:33', NULL, '2024-06-01 13:24:33', b'0', 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_operate_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_operate_log`; +CREATE TABLE `system_operate_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT '0' COMMENT '用户类型', + `module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块标题', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作名', + `type` bigint NOT NULL DEFAULT '0' COMMENT '操作分类', + `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '操作内容', + `exts` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '拓展字段', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '请求地址', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户 IP', + `user_agent` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '浏览器 UA', + `java_method` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Java 方法名', + `java_method_args` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Java 方法的参数', + `start_time` datetime NOT NULL COMMENT '操作时间', + `duration` int NOT NULL COMMENT '执行时长', + `result_code` int NOT NULL DEFAULT '0' COMMENT '结果码', + `result_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '结果提示', + `result_data` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=7552 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志记录'; + +-- ---------------------------- +-- Records of system_operate_log +-- ---------------------------- +BEGIN; +INSERT INTO `system_operate_log` VALUES (6440, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1254}', '2023-05-07 17:06:11', 60, 0, '', 'true', NULL, '2023-05-07 17:06:11', NULL, '2023-05-07 17:06:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6441, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2159}', '2023-05-07 17:06:14', 11, 0, '', 'true', NULL, '2023-05-07 17:06:14', NULL, '2023-05-07 17:06:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6442, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2160}', '2023-05-07 17:06:17', 12, 0, '', 'true', NULL, '2023-05-07 17:06:17', NULL, '2023-05-07 17:06:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6443, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"租户管理\",\"permission\":null,\"type\":2,\"sort\":0,\"parentId\":1,\"path\":\"tenant\",\"icon\":\"peoples\",\"component\":null,\"componentName\":null,\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":1224}}', '2023-05-07 17:08:33', 28, 0, '', 'true', NULL, '2023-05-07 17:08:33', NULL, '2023-05-07 17:08:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6444, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"报表管理\",\"permission\":null,\"type\":1,\"sort\":40,\"parentId\":0,\"path\":\"/report\",\"icon\":\"chart\",\"component\":null,\"componentName\":null,\"status\":1,\"visible\":false,\"keepAlive\":null,\"alwaysShow\":true,\"id\":1281}}', '2023-05-07 17:09:59', 11, 0, '', 'true', NULL, '2023-05-07 17:09:59', NULL, '2023-05-07 17:09:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6445, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"素材管理\",\"permission\":null,\"type\":2,\"sort\":8,\"parentId\":2084,\"path\":\"material\",\"icon\":\"skill\",\"component\":\"mp/material/index\",\"componentName\":\"MpMaterial\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2113}}', '2023-05-07 17:12:26', 20, 0, '', 'true', NULL, '2023-05-07 17:12:26', NULL, '2023-05-07 17:12:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6446, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"图文草稿箱\",\"permission\":null,\"type\":2,\"sort\":9,\"parentId\":2084,\"path\":\"draft\",\"icon\":\"edit\",\"component\":\"mp/draft/index\",\"componentName\":\"MpDraft\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2108}}', '2023-05-07 17:12:42', 13, 0, '', 'true', NULL, '2023-05-07 17:12:42', NULL, '2023-05-07 17:12:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6447, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"数据统计\",\"permission\":\"mp:statistics:query\",\"type\":2,\"sort\":2,\"parentId\":2084,\"path\":\"statistics\",\"icon\":\"chart\",\"component\":\"mp/statistics/index\",\"componentName\":\"MpStatistics\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2092}}', '2023-05-07 17:13:32', 14, 0, '', 'true', NULL, '2023-05-07 17:13:32', NULL, '2023-05-07 17:13:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6448, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"菜单管理\",\"permission\":\"\",\"type\":2,\"sort\":6,\"parentId\":2084,\"path\":\"menu\",\"icon\":\"button\",\"component\":\"mp/menu/index\",\"componentName\":\"MpMenu\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2119}}', '2023-05-07 17:14:13', 16, 0, '', 'true', NULL, '2023-05-07 17:14:13', NULL, '2023-05-07 17:14:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6449, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"自动回复\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2084,\"path\":\"auto-reply\",\"icon\":\"eye\",\"component\":\"mp/autoReply/index\",\"componentName\":\"MpAutoReply\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2120}}', '2023-05-07 17:14:39', 11, 0, '', 'true', NULL, '2023-05-07 17:14:39', NULL, '2023-05-07 17:14:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6450, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-09 17:33:31', 650, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/57f8bd2d2d4c31317007637966100d67a538eb545c933b84f0299fe1fb6b3ae1.png\"', NULL, '2023-05-09 17:33:32', NULL, '2023-05-09 17:33:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6451, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1185}', '2023-05-10 09:46:15', 14, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-05-10 09:46:15', NULL, '2023-05-10 09:46:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6452, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1118}', '2023-05-10 09:46:42', 4, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-05-10 09:46:42', NULL, '2023-05-10 09:46:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6453, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1119}', '2023-05-10 09:46:52', 30, 0, '', 'true', NULL, '2023-05-10 09:46:52', NULL, '2023-05-10 09:46:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6454, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1120}', '2023-05-10 09:46:59', 10, 0, '', 'true', NULL, '2023-05-10 09:46:59', NULL, '2023-05-10 09:46:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6455, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1118}', '2023-05-10 09:47:08', 10, 0, '', 'true', NULL, '2023-05-10 09:47:08', NULL, '2023-05-10 09:47:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6456, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":5}', '2023-05-10 09:47:15', 11, 0, '', 'true', NULL, '2023-05-10 09:47:15', NULL, '2023-05-10 09:47:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6457, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1208}', '2023-05-10 09:47:26', 9, 0, '', 'true', NULL, '2023-05-10 09:47:26', NULL, '2023-05-10 09:47:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6458, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1221}', '2023-05-10 09:47:33', 10, 0, '', 'true', NULL, '2023-05-10 09:47:33', NULL, '2023-05-10 09:47:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6459, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1207}', '2023-05-10 09:47:37', 3, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-05-10 09:47:37', NULL, '2023-05-10 09:47:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6460, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1222}', '2023-05-10 09:47:42', 9, 0, '', 'true', NULL, '2023-05-10 09:47:42', NULL, '2023-05-10 09:47:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6461, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1207}', '2023-05-10 09:47:47', 9, 0, '', 'true', NULL, '2023-05-10 09:47:47', NULL, '2023-05-10 09:47:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6462, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1202}', '2023-05-10 09:47:53', 8, 0, '', 'true', NULL, '2023-05-10 09:47:53', NULL, '2023-05-10 09:47:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6463, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1219}', '2023-05-10 09:47:57', 9, 0, '', 'true', NULL, '2023-05-10 09:47:57', NULL, '2023-05-10 09:47:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6464, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1220}', '2023-05-10 09:48:00', 9, 0, '', 'true', NULL, '2023-05-10 09:48:00', NULL, '2023-05-10 09:48:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6465, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1201}', '2023-05-10 09:48:05', 9, 0, '', 'true', NULL, '2023-05-10 09:48:05', NULL, '2023-05-10 09:48:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6466, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1200}', '2023-05-10 09:48:09', 9, 0, '', 'true', NULL, '2023-05-10 09:48:09', NULL, '2023-05-10 09:48:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6467, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1195}', '2023-05-10 09:48:22', 8, 0, '', 'true', NULL, '2023-05-10 09:48:22', NULL, '2023-05-10 09:48:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6468, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1194}', '2023-05-10 09:48:26', 9, 0, '', 'true', NULL, '2023-05-10 09:48:26', NULL, '2023-05-10 09:48:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6469, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1196}', '2023-05-10 09:48:59', 9, 0, '', 'true', NULL, '2023-05-10 09:48:59', NULL, '2023-05-10 09:48:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6470, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1197}', '2023-05-10 09:54:34', 10, 0, '', 'true', NULL, '2023-05-10 09:54:34', NULL, '2023-05-10 09:54:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6471, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1198}', '2023-05-10 09:58:36', 10, 0, '', 'true', NULL, '2023-05-10 09:58:36', NULL, '2023-05-10 09:58:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6472, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1199}', '2023-05-10 09:58:46', 9, 0, '', 'true', NULL, '2023-05-10 09:58:46', NULL, '2023-05-10 09:58:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6473, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1215}', '2023-05-10 09:58:52', 15, 0, '', 'true', NULL, '2023-05-10 09:58:52', NULL, '2023-05-10 09:58:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6474, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1216}', '2023-05-10 09:58:56', 9, 0, '', 'true', NULL, '2023-05-10 09:58:56', NULL, '2023-05-10 09:58:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6475, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1217}', '2023-05-10 09:59:00', 9, 0, '', 'true', NULL, '2023-05-10 09:59:00', NULL, '2023-05-10 09:59:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6476, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1218}', '2023-05-10 09:59:04', 9, 0, '', 'true', NULL, '2023-05-10 09:59:04', NULL, '2023-05-10 09:59:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6477, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1193}', '2023-05-10 09:59:10', 7, 0, '', 'true', NULL, '2023-05-10 09:59:10', NULL, '2023-05-10 09:59:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6478, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1210}', '2023-05-10 09:59:18', 9, 0, '', 'true', NULL, '2023-05-10 09:59:18', NULL, '2023-05-10 09:59:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6479, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1211}', '2023-05-10 09:59:24', 8, 0, '', 'true', NULL, '2023-05-10 09:59:24', NULL, '2023-05-10 09:59:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6480, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1212}', '2023-05-10 09:59:27', 9, 0, '', 'true', NULL, '2023-05-10 09:59:27', NULL, '2023-05-10 09:59:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6481, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1213}', '2023-05-10 09:59:31', 9, 0, '', 'true', NULL, '2023-05-10 09:59:31', NULL, '2023-05-10 09:59:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6482, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1209}', '2023-05-10 09:59:45', 9, 0, '', 'true', NULL, '2023-05-10 09:59:45', NULL, '2023-05-10 09:59:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6483, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1188}', '2023-05-10 09:59:50', 9, 0, '', 'true', NULL, '2023-05-10 09:59:50', NULL, '2023-05-10 09:59:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6484, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1189}', '2023-05-10 09:59:54', 9, 0, '', 'true', NULL, '2023-05-10 09:59:54', NULL, '2023-05-10 09:59:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6485, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1190}', '2023-05-10 09:59:58', 7, 0, '', 'true', NULL, '2023-05-10 09:59:58', NULL, '2023-05-10 09:59:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6486, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1191}', '2023-05-10 10:00:01', 10, 0, '', 'true', NULL, '2023-05-10 10:00:01', NULL, '2023-05-10 10:00:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6487, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1192}', '2023-05-10 10:00:04', 9, 0, '', 'true', NULL, '2023-05-10 10:00:04', NULL, '2023-05-10 10:00:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6488, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1187}', '2023-05-10 10:00:09', 9, 0, '', 'true', NULL, '2023-05-10 10:00:09', NULL, '2023-05-10 10:00:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6489, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1186}', '2023-05-10 10:00:13', 9, 0, '', 'true', NULL, '2023-05-10 10:00:13', NULL, '2023-05-10 10:00:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6490, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1185}', '2023-05-10 10:00:18', 7, 0, '', 'true', NULL, '2023-05-10 10:00:18', NULL, '2023-05-10 10:00:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6491, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"菜单管理\",\"permission\":\"\",\"type\":2,\"sort\":6,\"parentId\":2084,\"path\":\"menu\",\"icon\":\"button\",\"component\":\"mp/menu/index\",\"componentName\":\"MpMenu\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2119}}', '2023-05-10 10:06:06', 20, 0, '', 'true', NULL, '2023-05-10 10:06:06', NULL, '2023-05-10 10:06:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6492, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"自动回复\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2084,\"path\":\"auto-reply\",\"icon\":\"eye\",\"component\":\"mp/autoReply/index\",\"componentName\":\"MpAutoReply\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2120}}', '2023-05-10 10:06:49', 10, 0, '', 'true', NULL, '2023-05-10 10:06:49', NULL, '2023-05-10 10:06:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6493, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"素材管理\",\"permission\":\"\",\"type\":2,\"sort\":8,\"parentId\":2084,\"path\":\"material\",\"icon\":\"skill\",\"component\":\"mp/material/index\",\"componentName\":\"MpMaterial\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2113}}', '2023-05-10 10:06:57', 11, 0, '', 'true', NULL, '2023-05-10 10:06:57', NULL, '2023-05-10 10:06:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6494, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"图文草稿箱\",\"permission\":\"\",\"type\":2,\"sort\":9,\"parentId\":2084,\"path\":\"draft\",\"icon\":\"edit\",\"component\":\"mp/draft/index\",\"componentName\":\"MpDraft\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2108}}', '2023-05-10 10:07:04', 11, 0, '', 'true', NULL, '2023-05-10 10:07:04', NULL, '2023-05-10 10:07:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6495, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"数据统计\",\"permission\":\"mp:statistics:query\",\"type\":2,\"sort\":2,\"parentId\":2084,\"path\":\"statistics\",\"icon\":\"chart\",\"component\":\"mp/statistics/index\",\"componentName\":\"MpStatistics\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2092}}', '2023-05-10 10:07:14', 9, 0, '', 'true', NULL, '2023-05-10 10:07:14', NULL, '2023-05-10 10:07:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6496, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2076}', '2023-05-10 10:25:24', 54, 0, '', 'true', NULL, '2023-05-10 10:25:24', NULL, '2023-05-10 10:25:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6497, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2078}', '2023-05-10 10:25:32', 10, 0, '', 'true', NULL, '2023-05-10 10:25:32', NULL, '2023-05-10 10:25:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6498, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2079}', '2023-05-10 10:25:36', 11, 0, '', 'true', NULL, '2023-05-10 10:25:36', NULL, '2023-05-10 10:25:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6499, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2080}', '2023-05-10 10:26:02', 11, 0, '', 'true', NULL, '2023-05-10 10:26:02', NULL, '2023-05-10 10:26:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6500, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2081}', '2023-05-10 10:26:06', 9, 0, '', 'true', NULL, '2023-05-10 10:26:06', NULL, '2023-05-10 10:26:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6501, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2082}', '2023-05-10 10:26:10', 10, 0, '', 'true', NULL, '2023-05-10 10:26:10', NULL, '2023-05-10 10:26:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6502, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2077}', '2023-05-10 10:29:50', 9, 0, '', 'true', NULL, '2023-05-10 10:29:50', NULL, '2023-05-10 10:29:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6503, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2074}', '2023-05-10 10:30:00', 10, 0, '', 'true', NULL, '2023-05-10 10:30:00', NULL, '2023-05-10 10:30:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6504, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2073}', '2023-05-10 10:30:04', 10, 0, '', 'true', NULL, '2023-05-10 10:30:04', NULL, '2023-05-10 10:30:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6505, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2072}', '2023-05-10 10:30:12', 9, 0, '', 'true', NULL, '2023-05-10 10:30:12', NULL, '2023-05-10 10:30:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6506, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2046}', '2023-05-10 10:30:29', 10, 0, '', 'true', NULL, '2023-05-10 10:30:29', NULL, '2023-05-10 10:30:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6507, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2042}', '2023-05-10 10:30:33', 11, 0, '', 'true', NULL, '2023-05-10 10:30:33', NULL, '2023-05-10 10:30:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6508, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2043}', '2023-05-10 10:30:37', 11, 0, '', 'true', NULL, '2023-05-10 10:30:37', NULL, '2023-05-10 10:30:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6509, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2044}', '2023-05-10 10:30:40', 9, 0, '', 'true', NULL, '2023-05-10 10:30:40', NULL, '2023-05-10 10:30:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6510, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2045}', '2023-05-10 10:30:44', 8, 0, '', 'true', NULL, '2023-05-10 10:30:44', NULL, '2023-05-10 10:30:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6511, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2041}', '2023-05-10 10:30:47', 10, 0, '', 'true', NULL, '2023-05-10 10:30:47', NULL, '2023-05-10 10:30:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6512, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2048}', '2023-05-10 10:31:03', 11, 0, '', 'true', NULL, '2023-05-10 10:31:03', NULL, '2023-05-10 10:31:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6513, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2049}', '2023-05-10 10:31:06', 10, 0, '', 'true', NULL, '2023-05-10 10:31:06', NULL, '2023-05-10 10:31:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6514, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2050}', '2023-05-10 10:31:09', 8, 0, '', 'true', NULL, '2023-05-10 10:31:09', NULL, '2023-05-10 10:31:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6515, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2051}', '2023-05-10 10:31:12', 9, 0, '', 'true', NULL, '2023-05-10 10:31:12', NULL, '2023-05-10 10:31:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6516, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2052}', '2023-05-10 10:31:16', 8, 0, '', 'true', NULL, '2023-05-10 10:31:16', NULL, '2023-05-10 10:31:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6517, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2047}', '2023-05-10 10:31:19', 8, 0, '', 'true', NULL, '2023-05-10 10:31:19', NULL, '2023-05-10 10:31:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6518, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2039}', '2023-05-10 10:31:25', 8, 0, '', 'true', NULL, '2023-05-10 10:31:25', NULL, '2023-05-10 10:31:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6519, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2040}', '2023-05-10 10:31:28', 10, 0, '', 'true', NULL, '2023-05-10 10:31:28', NULL, '2023-05-10 10:31:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6520, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2038}', '2023-05-10 10:31:31', 9, 0, '', 'true', NULL, '2023-05-10 10:31:31', NULL, '2023-05-10 10:31:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6521, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2033}', '2023-05-10 10:31:36', 8, 0, '', 'true', NULL, '2023-05-10 10:31:36', NULL, '2023-05-10 10:31:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6522, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2034}', '2023-05-10 10:31:40', 7, 0, '', 'true', NULL, '2023-05-10 10:31:40', NULL, '2023-05-10 10:31:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6523, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2035}', '2023-05-10 10:31:42', 8, 0, '', 'true', NULL, '2023-05-10 10:31:42', NULL, '2023-05-10 10:31:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6524, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2036}', '2023-05-10 10:31:48', 9, 0, '', 'true', NULL, '2023-05-10 10:31:48', NULL, '2023-05-10 10:31:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6525, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2032}', '2023-05-10 10:31:51', 8, 0, '', 'true', NULL, '2023-05-10 10:31:51', NULL, '2023-05-10 10:31:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6526, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2067}', '2023-05-10 10:31:58', 8, 0, '', 'true', NULL, '2023-05-10 10:31:58', NULL, '2023-05-10 10:31:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6527, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2068}', '2023-05-10 10:32:01', 9, 0, '', 'true', NULL, '2023-05-10 10:32:01', NULL, '2023-05-10 10:32:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6528, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2069}', '2023-05-10 10:32:04', 7, 0, '', 'true', NULL, '2023-05-10 10:32:04', NULL, '2023-05-10 10:32:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6529, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2070}', '2023-05-10 10:32:07', 7, 0, '', 'true', NULL, '2023-05-10 10:32:07', NULL, '2023-05-10 10:32:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6530, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2071}', '2023-05-10 10:32:09', 7, 0, '', 'true', NULL, '2023-05-10 10:32:09', NULL, '2023-05-10 10:32:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6531, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2066}', '2023-05-10 10:32:15', 7, 0, '', 'true', NULL, '2023-05-10 10:32:15', NULL, '2023-05-10 10:32:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6532, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2060}', '2023-05-10 10:32:20', 8, 0, '', 'true', NULL, '2023-05-10 10:32:20', NULL, '2023-05-10 10:32:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6533, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2061}', '2023-05-10 10:32:24', 8, 0, '', 'true', NULL, '2023-05-10 10:32:24', NULL, '2023-05-10 10:32:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6534, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2062}', '2023-05-10 10:32:27', 8, 0, '', 'true', NULL, '2023-05-10 10:32:27', NULL, '2023-05-10 10:32:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6535, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2063}', '2023-05-10 10:32:29', 7, 0, '', 'true', NULL, '2023-05-10 10:32:29', NULL, '2023-05-10 10:32:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6536, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2064}', '2023-05-10 10:32:32', 8, 0, '', 'true', NULL, '2023-05-10 10:32:32', NULL, '2023-05-10 10:32:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6537, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2075}', '2023-05-10 10:32:35', 7, 0, '', 'true', NULL, '2023-05-10 10:32:35', NULL, '2023-05-10 10:32:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6538, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2059}', '2023-05-10 10:32:38', 9, 0, '', 'true', NULL, '2023-05-10 10:32:38', NULL, '2023-05-10 10:32:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6539, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2030}', '2023-05-10 10:32:42', 7, 0, '', 'true', NULL, '2023-05-10 10:32:42', NULL, '2023-05-10 10:32:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6540, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1282}', '2023-05-10 10:34:51', 8, 0, '', 'true', NULL, '2023-05-10 10:34:51', NULL, '2023-05-10 10:34:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6541, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2156}', '2023-05-10 10:34:57', 8, 0, '', 'true', NULL, '2023-05-10 10:34:57', NULL, '2023-05-10 10:34:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6542, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2154}', '2023-05-10 10:35:00', 7, 0, '', 'true', NULL, '2023-05-10 10:35:00', NULL, '2023-05-10 10:35:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6543, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2155}', '2023-05-10 10:35:03', 9, 0, '', 'true', NULL, '2023-05-10 10:35:03', NULL, '2023-05-10 10:35:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6544, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2157}', '2023-05-10 10:35:07', 8, 0, '', 'true', NULL, '2023-05-10 10:35:07', NULL, '2023-05-10 10:35:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6545, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2158}', '2023-05-10 10:35:10', 7, 0, '', 'true', NULL, '2023-05-10 10:35:10', NULL, '2023-05-10 10:35:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6546, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2153}', '2023-05-10 10:35:14', 7, 0, '', 'true', NULL, '2023-05-10 10:35:14', NULL, '2023-05-10 10:35:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6547, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1281}', '2023-05-10 10:35:17', 8, 0, '', 'true', NULL, '2023-05-10 10:35:17', NULL, '2023-05-10 10:35:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6548, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_material\",\"yshop_material_group\"]}}', '2023-05-10 15:19:45', 19, 500, 'ServiceException: 数据库的表字段(update_time)注释未填写', 'null', NULL, '2023-05-10 15:19:45', NULL, '2023-05-10 15:19:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6549, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_material\",\"yshop_material_group\"]}}', '2023-05-10 15:20:54', 84, 0, '', '[131,132]', NULL, '2023-05-10 15:20:54', NULL, '2023-05-10 15:20:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6550, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material\",\"tableComment\":\"素材库\",\"remark\":null,\"moduleName\":\"mall\",\"businessName\":\"material\",\"className\":\"Material\",\"classComment\":\"素材库\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":131,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":131,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"9920\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1688},{\"tableId\":131,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1689},{\"tableId\":131,\"columnName\":\"create_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"createId\",\"dictType\":\"\",\"example\":\"29395\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1690},{\"tableId\":131,\"columnName\":\"type\",\"dataType\":\"CHAR\",\"columnComment\":\"类型1、图片;2、视频\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":1691},{\"tableId\":131,\"columnName\":\"group_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"21579\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1692},{\"tableId\":131,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1693},{\"tableId\":131,\"columnName\":\"url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材链接\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"url\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1694},{\"tableId\":131,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1695},{\"tableId\":131,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1696}]}}', '2023-05-10 15:25:40', 37, 0, '', 'true', NULL, '2023-05-10 15:25:40', NULL, '2023-05-10 15:25:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6551, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material_group\",\"tableComment\":\"素材分组\",\"remark\":null,\"moduleName\":\"mall\",\"businessName\":\"materialgroup\",\"className\":\"MaterialGroup\",\"classComment\":\"素材分组\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":132,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":132,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1995\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1697},{\"tableId\":132,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1698},{\"tableId\":132,\"columnName\":\"create_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"createId\",\"dictType\":\"\",\"example\":\"24549\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1699},{\"tableId\":132,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"赵六\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1700},{\"tableId\":132,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1701},{\"tableId\":132,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1702}]}}', '2023-05-10 15:27:32', 14, 0, '', 'true', NULL, '2023-05-10 15:27:32', NULL, '2023-05-10 15:27:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6552, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material\",\"tableComment\":\"素材库\",\"remark\":null,\"moduleName\":\"Shop\",\"businessName\":\"material\",\"className\":\"Material\",\"classComment\":\"素材库\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":131,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":131,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"9920\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1688},{\"tableId\":131,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1689},{\"tableId\":131,\"columnName\":\"create_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"createId\",\"dictType\":\"\",\"example\":\"29395\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1690},{\"tableId\":131,\"columnName\":\"type\",\"dataType\":\"CHAR\",\"columnComment\":\"类型1、图片;2、视频\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":1691},{\"tableId\":131,\"columnName\":\"group_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"21579\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1692},{\"tableId\":131,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1693},{\"tableId\":131,\"columnName\":\"url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材链接\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"url\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1694},{\"tableId\":131,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1695},{\"tableId\":131,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1696}]}}', '2023-05-10 15:40:45', 22, 0, '', 'true', NULL, '2023-05-10 15:40:45', NULL, '2023-05-10 15:40:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6553, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material\",\"tableComment\":\"素材库\",\"remark\":null,\"moduleName\":\"mall\",\"businessName\":\"material\",\"className\":\"Material\",\"classComment\":\"素材库\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":131,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":131,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"9920\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1688},{\"tableId\":131,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1689},{\"tableId\":131,\"columnName\":\"create_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"createId\",\"dictType\":\"\",\"example\":\"29395\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1690},{\"tableId\":131,\"columnName\":\"type\",\"dataType\":\"CHAR\",\"columnComment\":\"类型1、图片;2、视频\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":1691},{\"tableId\":131,\"columnName\":\"group_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"21579\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1692},{\"tableId\":131,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1693},{\"tableId\":131,\"columnName\":\"url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材链接\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"url\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1694},{\"tableId\":131,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1695},{\"tableId\":131,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1696}]}}', '2023-05-10 15:42:38', 18, 0, '', 'true', NULL, '2023-05-10 15:42:38', NULL, '2023-05-10 15:42:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6554, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material\",\"tableComment\":\"素材库\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"material\",\"className\":\"Material\",\"classComment\":\"素材库\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":131,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":131,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"9920\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1688},{\"tableId\":131,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1689},{\"tableId\":131,\"columnName\":\"create_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"createId\",\"dictType\":\"\",\"example\":\"29395\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1690},{\"tableId\":131,\"columnName\":\"type\",\"dataType\":\"CHAR\",\"columnComment\":\"类型1、图片;2、视频\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":1691},{\"tableId\":131,\"columnName\":\"group_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"21579\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1692},{\"tableId\":131,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1693},{\"tableId\":131,\"columnName\":\"url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材链接\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"url\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1694},{\"tableId\":131,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1695},{\"tableId\":131,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1696}]}}', '2023-05-10 15:45:27', 21, 0, '', 'true', NULL, '2023-05-10 15:45:27', NULL, '2023-05-10 15:45:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6555, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,同步数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/sync-from-db', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.syncCodegenFromDB(Long)', '{\"tableId\":131}', '2023-05-10 16:01:50', 30, 0, '', 'true', NULL, '2023-05-10 16:01:50', NULL, '2023-05-10 16:01:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6556, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,同步数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/sync-from-db', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.syncCodegenFromDB(Long)', '{\"tableId\":132}', '2023-05-10 16:01:57', 28, 0, '', 'true', NULL, '2023-05-10 16:01:57', NULL, '2023-05-10 16:01:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6557, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material_group\",\"tableComment\":\"素材分组\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"materialgroup\",\"className\":\"MaterialGroup\",\"classComment\":\"素材分组\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":132,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":132,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1995\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1697},{\"tableId\":132,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1698},{\"tableId\":132,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"赵六\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1700},{\"tableId\":132,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1701},{\"tableId\":132,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1702},{\"tableId\":132,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":1,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1705},{\"tableId\":132,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1706}]}}', '2023-05-10 16:26:44', 12, 0, '', 'true', NULL, '2023-05-10 16:26:44', NULL, '2023-05-10 16:26:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6558, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"派县议\"}}', '2023-05-16 12:02:13', 11, 0, '', '1', NULL, '2023-05-16 12:02:13', NULL, '2023-05-16 12:02:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6559, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2025}', '2023-05-17 10:04:56', 13, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-05-17 10:04:56', NULL, '2023-05-17 10:04:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6560, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2026}', '2023-05-17 10:05:03', 28, 0, '', 'true', NULL, '2023-05-17 10:05:03', NULL, '2023-05-17 10:05:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6561, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2027}', '2023-05-17 10:05:07', 9, 0, '', 'true', NULL, '2023-05-17 10:05:07', NULL, '2023-05-17 10:05:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6562, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2028}', '2023-05-17 10:05:12', 20, 0, '', 'true', NULL, '2023-05-17 10:05:12', NULL, '2023-05-17 10:05:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6563, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2029}', '2023-05-17 10:05:18', 10, 0, '', 'true', NULL, '2023-05-17 10:05:18', NULL, '2023-05-17 10:05:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6564, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2025}', '2023-05-17 10:05:23', 10, 0, '', 'true', NULL, '2023-05-17 10:05:23', NULL, '2023-05-17 10:05:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6565, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商城中心\",\"permission\":\"\",\"type\":1,\"sort\":60,\"parentId\":0,\"path\":\"/product\",\"icon\":\"merchant\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2000}}', '2023-05-17 10:05:51', 15, 0, '', 'true', NULL, '2023-05-17 10:05:51', NULL, '2023-05-17 10:05:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6566, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品品牌\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2000,\"path\":\"brand\",\"icon\":\"dashboard\",\"component\":\"mall/product/brand/index\",\"componentName\":\"ProductBrand\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2008}}', '2023-05-17 10:25:48', 11, 0, '', 'true', NULL, '2023-05-17 10:25:48', NULL, '2023-05-17 10:25:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6567, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品列表\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2000,\"path\":\"spu\",\"icon\":\"list\",\"component\":\"mall/product/spu/index\",\"componentName\":\"ProductSpu\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2014}}', '2023-05-17 10:26:07', 10, 0, '', 'true', NULL, '2023-05-17 10:26:07', NULL, '2023-05-17 10:26:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6568, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"系统管理\",\"permission\":\"\",\"type\":1,\"sort\":300,\"parentId\":0,\"path\":\"/system\",\"icon\":\"system\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":1}}', '2023-05-17 10:32:57', 9, 0, '', 'true', NULL, '2023-05-17 10:32:57', NULL, '2023-05-17 10:32:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6569, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"基础设施\",\"permission\":\"\",\"type\":1,\"sort\":200,\"parentId\":0,\"path\":\"/infra\",\"icon\":\"monitor\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2}}', '2023-05-17 10:33:07', 9, 0, '', 'true', NULL, '2023-05-17 10:33:07', NULL, '2023-05-17 10:33:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6570, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"支付管理\",\"permission\":\"\",\"type\":1,\"sort\":100,\"parentId\":0,\"path\":\"/pay\",\"icon\":\"money\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":1117}}', '2023-05-17 10:33:20', 9, 0, '', 'true', NULL, '2023-05-17 10:33:20', NULL, '2023-05-17 10:33:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6571, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"支付管理\",\"permission\":\"\",\"type\":1,\"sort\":90,\"parentId\":0,\"path\":\"/pay\",\"icon\":\"money\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":1117}}', '2023-05-17 10:33:35', 9, 0, '', 'true', NULL, '2023-05-17 10:33:35', NULL, '2023-05-17 10:33:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6572, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1071}', '2023-05-17 10:35:28', 10, 0, '', 'true', NULL, '2023-05-17 10:35:28', NULL, '2023-05-17 10:35:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6573, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1072}', '2023-05-17 10:35:32', 10, 0, '', 'true', NULL, '2023-05-17 10:35:32', NULL, '2023-05-17 10:35:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6574, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1073}', '2023-05-17 10:35:37', 9, 0, '', 'true', NULL, '2023-05-17 10:35:37', NULL, '2023-05-17 10:35:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6575, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1074}', '2023-05-17 10:35:41', 10, 0, '', 'true', NULL, '2023-05-17 10:35:41', NULL, '2023-05-17 10:35:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6576, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1070}', '2023-05-17 10:35:45', 9, 0, '', 'true', NULL, '2023-05-17 10:35:45', NULL, '2023-05-17 10:35:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6577, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_product_rule\"]}}', '2023-05-17 10:37:29', 32, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-05-17 10:37:29', NULL, '2023-05-17 10:37:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6578, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_product_rule\"]}}', '2023-05-17 10:40:31', 99, 0, '', '[133]', NULL, '2023-05-17 10:40:31', NULL, '2023-05-17 10:40:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6579, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1139}', '2023-05-17 10:44:59', 10, 0, '', 'true', NULL, '2023-05-17 10:44:59', NULL, '2023-05-17 10:44:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6580, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1140}', '2023-05-17 10:45:08', 10, 0, '', 'true', NULL, '2023-05-17 10:45:08', NULL, '2023-05-17 10:45:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6581, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1141}', '2023-05-17 10:46:02', 8, 0, '', 'true', NULL, '2023-05-17 10:46:02', NULL, '2023-05-17 10:46:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6582, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1142}', '2023-05-17 10:46:06', 8, 0, '', 'true', NULL, '2023-05-17 10:46:06', NULL, '2023-05-17 10:46:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6583, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1143}', '2023-05-17 10:46:09', 8, 0, '', 'true', NULL, '2023-05-17 10:46:09', NULL, '2023-05-17 10:46:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6584, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1138}', '2023-05-17 10:46:15', 8, 0, '', 'true', NULL, '2023-05-17 10:46:15', NULL, '2023-05-17 10:46:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6585, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1226}', '2023-05-17 10:46:21', 9, 0, '', 'true', NULL, '2023-05-17 10:46:21', NULL, '2023-05-17 10:46:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6586, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1227}', '2023-05-17 10:46:25', 8, 0, '', 'true', NULL, '2023-05-17 10:46:25', NULL, '2023-05-17 10:46:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6587, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1228}', '2023-05-17 10:46:29', 8, 0, '', 'true', NULL, '2023-05-17 10:46:29', NULL, '2023-05-17 10:46:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6588, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1229}', '2023-05-17 10:46:34', 8, 0, '', 'true', NULL, '2023-05-17 10:46:34', NULL, '2023-05-17 10:46:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6589, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1225}', '2023-05-17 10:46:39', 10, 0, '', 'true', NULL, '2023-05-17 10:46:39', NULL, '2023-05-17 10:46:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6590, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1224}', '2023-05-17 10:46:43', 9, 0, '', 'true', NULL, '2023-05-17 10:46:43', NULL, '2023-05-17 10:46:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6591, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_rule\",\"tableComment\":\"商品规则值(规格)表\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"storeproductrule\",\"className\":\"StoreProductRule\",\"classComment\":\"商品规则值(规格)\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":133,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":133,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"2067\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1707},{\"tableId\":133,\"columnName\":\"rule_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"规格名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"ruleName\",\"dictType\":\"\",\"example\":\"赵六\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1708},{\"tableId\":133,\"columnName\":\"rule_value\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"规格值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"ruleValue\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1709},{\"tableId\":133,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1710},{\"tableId\":133,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1711},{\"tableId\":133,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1712},{\"tableId\":133,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1713},{\"tableId\":133,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"1659\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1714}]}}', '2023-05-17 10:47:51', 33, 0, '', 'true', NULL, '2023-05-17 10:47:51', NULL, '2023-05-17 10:47:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6592, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product-rule\",\"icon\":\"\",\"component\":\"shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-05-17 11:05:20', 11, 0, '', 'true', NULL, '2023-05-17 11:05:20', NULL, '2023-05-17 11:05:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6593, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product-rule\",\"icon\":\"\",\"component\":\"mall/shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-05-17 11:06:41', 9, 0, '', 'true', NULL, '2023-05-17 11:06:41', NULL, '2023-05-17 11:06:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6594, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product-rule\",\"icon\":\"ep:brush-filled\",\"component\":\"mall/shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-05-17 15:24:57', 35, 0, '', 'true', NULL, '2023-05-17 15:24:57', NULL, '2023-05-17 15:24:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6595, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product-rule\",\"icon\":\"ep:operation\",\"component\":\"mall/shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-05-17 15:28:14', 12, 0, '', 'true', NULL, '2023-05-17 15:28:14', NULL, '2023-05-17 15:28:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6596, '', 1, 2, '管理后台 - 权限', '赋予用户角色', 2, '', '', 'POST', '/admin-api/system/permission/assign-user-role', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignUserRole(PermissionAssignUserRoleReqVO)', '{\"reqVO\":{\"userId\":1,\"roleIds\":[1]}}', '2023-05-17 15:32:05', 27, 0, '', 'true', NULL, '2023-05-17 15:32:05', NULL, '2023-05-17 15:32:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6597, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-17 17:58:49', 62, 500, 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'null', NULL, '2023-05-17 17:58:49', NULL, '2023-05-17 17:58:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6598, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-17 18:02:13', 68, 500, 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'null', NULL, '2023-05-17 18:02:13', NULL, '2023-05-17 18:02:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6599, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-18 10:09:52', 9, 500, 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'null', NULL, '2023-05-18 10:09:52', NULL, '2023-05-18 10:09:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6600, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-18 10:14:09', 209, 0, '', '1', NULL, '2023-05-18 10:14:09', NULL, '2023-05-18 10:14:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6601, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-18 10:18:02', 55, 500, 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.storeproductrule.vo.StoreProductRuleCreateReqVO.getRuleValue()Ljava/lang/String;', 'null', NULL, '2023-05-18 10:18:02', NULL, '2023-05-18 10:18:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6602, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-18 10:21:49', 369, 500, 'SQLSyntaxErrorException: Unknown column \'updater\' in \'field list\'', 'null', NULL, '2023-05-18 10:21:49', NULL, '2023-05-18 10:21:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6603, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '127.0.0.1', 'Apifox/1.0.0 (https://www.apifox.cn)', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"图文打印1\",\"ruleValue\":[{\"detail\":[\"A4\",\"A3\",\"A5\",\"A6\",\"A7\"],\"value\":\"纸张\"},{\"detail\":[\"白色\",\"红色\",\"菊花色\"],\"value\":\"颜色\"}]},\"id\":0}', '2023-05-18 10:23:12', 11, 0, '', '25', NULL, '2023-05-18 10:23:12', NULL, '2023-05-18 10:23:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6604, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"手机\",\"ruleValue\":[{\"value\":\"尺寸\",\"detail\":[\"6寸\",\"7寸\"]},{\"value\":\"颜色\",\"detail\":[\"黑白\",\"红色\"]}]},\"id\":0}', '2023-05-19 18:21:12', 45, 0, '', '26', NULL, '2023-05-19 18:21:12', NULL, '2023-05-19 18:21:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6605, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/26', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":26,\"ruleName\":\"手机\",\"ruleValue\":[{\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}]},\"id\":26}', '2023-05-19 18:22:17', 16, 0, '', '1', NULL, '2023-05-19 18:22:17', NULL, '2023-05-19 18:22:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6606, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/shop/store-product-rule/save/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":null,\"ruleName\":\"1\",\"ruleValue\":[{\"value\":\"2\",\"detail\":[\"2\"]}]},\"id\":0}', '2023-05-19 18:22:41', 10, 0, '', '27', NULL, '2023-05-19 18:22:41', NULL, '2023-05-19 18:22:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6607, '', 1, 2, '管理后台 - 商品规则值(规格)', '删除商品规则值(规格)', 4, '', '', 'DELETE', '/admin-api/shop/store-product-rule/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.storeproductrule.StoreProductRuleController.deleteStoreProductRule(Integer)', '{\"id\":27}', '2023-05-19 18:22:45', 17, 0, '', 'true', NULL, '2023-05-19 18:22:45', NULL, '2023-05-19 18:22:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6608, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_product\"]}}', '2023-05-22 13:29:08', 145, 0, '', '[134]', NULL, '2023-05-22 13:29:08', NULL, '2023-05-22 13:29:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6609, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product\",\"tableComment\":\"商品表\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"storeproduct\",\"className\":\"StoreProduct\",\"classComment\":\"商品\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":134,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":134,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1175\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1715},{\"tableId\":134,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":1716},{\"tableId\":134,\"columnName\":\"slider_image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"轮播图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"sliderImage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"upload_image\",\"id\":1717},{\"tableId\":134,\"columnName\":\"store_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"storeName\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1718},{\"tableId\":134,\"columnName\":\"store_info\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品简介\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"storeInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1719},{\"tableId\":134,\"columnName\":\"keyword\",\"dataType\":\"VARCHAR\",\"columnComment\":\"关键字\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"keyword\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1720},{\"tableId\":134,\"columnName\":\"bar_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"产品条码(一维码)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"barCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1721},{\"tableId\":134,\"columnName\":\"cate_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分类id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"cateId\",\"dictType\":\"\",\"example\":\"4928\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1722},{\"tableId\":134,\"columnName\":\"price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"商品价格\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"BigDecimal\",\"javaField\":\"price\",\"dictType\":\"\",\"example\":\"18735\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1723},{\"tableId\":134,\"columnName\":\"vip_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"会员价格\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"BigDecimal\",\"javaField\":\"vipPrice\",\"dictType\":\"\",\"example\":\"18248\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1724},{\"tableId\":134,\"columnName\":\"ot_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"市场价\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"BigDecimal\",\"javaField\":\"otPrice\",\"dictType\":\"\",\"example\":\"14818\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1725},{\"tableId\":134,\"columnName\":\"postage\",\"dataType\":\"DECIMAL\",\"columnComment\":\"邮费\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"BigDecimal\",\"javaField\":\"postage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1726},{\"tableId\":134,\"columnName\":\"unit_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"单位名\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"unitName\",\"dictType\":\"\",\"example\":\"李四\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1727},{\"tableId\":134,\"columnName\":\"sort\",\"dataType\":\"SMALLINT\",\"columnComment\":\"排序\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Short\",\"javaField\":\"sort\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1728},{\"tableId\":134,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销量\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1729},{\"tableId\":134,\"columnName\":\"stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"库存\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"stock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1730},{\"tableId\":134,\"columnName\":\"is_show\",\"dataType\":\"BIT\",\"columnComment\":\"状态(0:未上架,1:上架)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Boolean\",\"javaField\":\"isShow\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1731},{\"tableId\":134,\"columnName\":\"is_hot\",\"dataType\":\"BIT\",\"columnComment\":\"是否热卖\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Boolean\",\"javaField\":\"isHot\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1732},{\"tableId\":134,\"columnName\":\"is_benefit\",\"dataType\":\"BIT\",\"columnComment\":\"是否优惠\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"Boolean\",\"javaField\":\"isBenefit\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1733},{\"tableId\":134,\"columnName\":\"is_best\",\"dataType\":\"BIT\",\"columnComment\":\"是否精品\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"Boolean\",\"javaField\":\"isBest\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOp...', '2023-05-22 13:36:41', 66, 0, '', 'true', NULL, '2023-05-22 13:36:41', NULL, '2023-05-22 13:36:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6610, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_material\",\"tableComment\":\"素材库\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"material\",\"className\":\"Material\",\"classComment\":\"素材库\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":131,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":131,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"9920\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1688},{\"tableId\":131,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1689},{\"tableId\":131,\"columnName\":\"type\",\"dataType\":\"CHAR\",\"columnComment\":\"类型1、图片;2、视频\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":1691},{\"tableId\":131,\"columnName\":\"group_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"21579\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1692},{\"tableId\":131,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1693},{\"tableId\":131,\"columnName\":\"url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"素材链接\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"url\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1694},{\"tableId\":131,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1695},{\"tableId\":131,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1696},{\"tableId\":131,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":1,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1703},{\"tableId\":131,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1704}]}}', '2023-05-22 15:04:44', 17, 0, '', 'true', NULL, '2023-05-22 15:04:44', NULL, '2023-05-22 15:04:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6611, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/index\",\"componentName\":\"StoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2168}}', '2023-05-22 15:27:19', 53, 0, '', 'true', NULL, '2023-05-22 15:27:19', NULL, '2023-05-22 15:27:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6612, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"store-product\",\"icon\":\"ep:shopping-cart\",\"component\":\"mall/product/storeProduct/index\",\"componentName\":\"StoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2168}}', '2023-05-22 15:28:44', 13, 0, '', 'true', NULL, '2023-05-22 15:28:44', NULL, '2023-05-22 15:28:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6613, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"21212\"}}', '2023-05-22 23:38:11', 9, 0, '', '2', NULL, '2023-05-22 23:38:11', NULL, '2023-05-22 23:38:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6614, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"11111\"}}', '2023-05-22 23:39:44', 6, 0, '', '3', NULL, '2023-05-22 23:39:44', NULL, '2023-05-22 23:39:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6615, '', 1, 2, '管理后台 - 素材分组', '更新素材分组', 3, '', '', 'PUT', '/admin-api/shop/material-group/update', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.updateMaterialGroup(MaterialGroupUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"1\",\"id\":3}}', '2023-05-22 23:46:22', 7, 0, '', 'true', NULL, '2023-05-22 23:46:22', NULL, '2023-05-22 23:46:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6616, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":3}', '2023-05-22 23:50:09', 8, 0, '', 'true', NULL, '2023-05-22 23:50:09', NULL, '2023-05-22 23:50:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6617, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":2}', '2023-05-22 23:51:23', 6, 0, '', 'true', NULL, '2023-05-22 23:51:23', NULL, '2023-05-22 23:51:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6618, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"1\"}}', '2023-05-22 23:52:10', 4, 0, '', '4', NULL, '2023-05-22 23:52:10', NULL, '2023-05-22 23:52:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6619, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"2\"}}', '2023-05-22 23:52:12', 6, 0, '', '5', NULL, '2023-05-22 23:52:12', NULL, '2023-05-22 23:52:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6620, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"3\"}}', '2023-05-22 23:52:14', 4, 0, '', '6', NULL, '2023-05-22 23:52:14', NULL, '2023-05-22 23:52:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6621, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":4}', '2023-05-22 23:52:22', 6, 0, '', 'true', NULL, '2023-05-22 23:52:22', NULL, '2023-05-22 23:52:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6622, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '154.53.59.44', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":6}', '2023-05-22 23:53:15', 4, 0, '', 'true', NULL, '2023-05-22 23:53:15', NULL, '2023-05-22 23:53:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6623, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":5}', '2023-05-22 23:54:26', 3, 0, '', 'true', NULL, '2023-05-22 23:54:26', NULL, '2023-05-22 23:54:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6624, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"1\"}}', '2023-05-22 23:55:30', 4, 0, '', '7', NULL, '2023-05-22 23:55:30', NULL, '2023-05-22 23:55:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6625, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"2\"}}', '2023-05-22 23:55:32', 4, 0, '', '8', NULL, '2023-05-22 23:55:32', NULL, '2023-05-22 23:55:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6626, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"4\"}}', '2023-05-22 23:55:33', 4, 0, '', '9', NULL, '2023-05-22 23:55:33', NULL, '2023-05-22 23:55:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6627, '', 1, 2, '管理后台 - 素材分组', '创建素材分组', 2, '', '', 'POST', '/admin-api/shop/material-group/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.createMaterialGroup(MaterialGroupCreateReqVO)', '{\"createReqVO\":{\"name\":\"3\"}}', '2023-05-22 23:55:33', 3, 0, '', '10', NULL, '2023-05-22 23:55:33', NULL, '2023-05-22 23:55:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6628, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":7}', '2023-05-22 23:55:48', 4, 0, '', 'true', NULL, '2023-05-22 23:55:48', NULL, '2023-05-22 23:55:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6629, '', 1, 2, '管理后台 - 素材分组', '更新素材分组', 3, '', '', 'PUT', '/admin-api/shop/material-group/update', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.updateMaterialGroup(MaterialGroupUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"3333\",\"id\":10}}', '2023-05-22 23:56:04', 5, 0, '', 'true', NULL, '2023-05-22 23:56:04', NULL, '2023-05-22 23:56:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6630, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-01-07 210510.jpg\",\"url\":null}}', '2023-05-23 00:02:32', 11, 0, '', '1', NULL, '2023-05-23 00:02:32', NULL, '2023-05-23 00:02:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6631, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":1}', '2023-05-23 00:11:30', 8, 0, '', 'true', NULL, '2023-05-23 00:11:30', NULL, '2023-05-23 00:11:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6632, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-01-23 021421.jpg\",\"url\":null}}', '2023-05-23 00:11:44', 3, 0, '', '2', NULL, '2023-05-23 00:11:44', NULL, '2023-05-23 00:11:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6633, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-02-13 165348.jpg\",\"url\":null}}', '2023-05-23 00:11:44', 2, 0, '', '3', NULL, '2023-05-23 00:11:44', NULL, '2023-05-23 00:11:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6634, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-02-05 182248.jpg\",\"url\":null}}', '2023-05-23 00:11:44', 4, 0, '', '4', NULL, '2023-05-23 00:11:44', NULL, '2023-05-23 00:11:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6635, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-05-03 210750.jpg\",\"url\":null}}', '2023-05-23 00:11:44', 4, 0, '', '5', NULL, '2023-05-23 00:11:44', NULL, '2023-05-23 00:11:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6636, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '129.232.133.46', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2016-04-19 204728.jpg\",\"url\":null}}', '2023-05-23 00:11:44', 6, 0, '', '6', NULL, '2023-05-23 00:11:44', NULL, '2023-05-23 00:11:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6637, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"iphone02.jpeg\",\"url\":null}}', '2023-05-24 14:32:09', 25, 0, '', '7', NULL, '2023-05-24 14:32:09', NULL, '2023-05-24 14:32:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6638, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:36:47', 742, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg\"', NULL, '2023-05-24 14:36:47', NULL, '2023-05-24 14:36:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6639, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"iphone02.jpeg\",\"url\":null}}', '2023-05-24 14:36:47', 5, 0, '', '8', NULL, '2023-05-24 14:36:47', NULL, '2023-05-24 14:36:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6640, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:41:23', 34, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\"', NULL, '2023-05-24 14:41:23', NULL, '2023-05-24 14:41:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6641, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"iphone03.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\"}}', '2023-05-24 14:41:23', 9, 0, '', '9', NULL, '2023-05-24 14:41:23', NULL, '2023-05-24 14:41:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6642, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":7}', '2023-05-24 14:41:39', 7, 0, '', 'true', NULL, '2023-05-24 14:41:39', NULL, '2023-05-24 14:41:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6643, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":6}', '2023-05-24 14:41:43', 8, 0, '', 'true', NULL, '2023-05-24 14:41:43', NULL, '2023-05-24 14:41:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6644, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":2}', '2023-05-24 14:41:46', 3, 0, '', 'true', NULL, '2023-05-24 14:41:46', NULL, '2023-05-24 14:41:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6645, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":3}', '2023-05-24 14:41:49', 4, 0, '', 'true', NULL, '2023-05-24 14:41:49', NULL, '2023-05-24 14:41:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6646, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":4}', '2023-05-24 14:41:51', 3, 0, '', 'true', NULL, '2023-05-24 14:41:51', NULL, '2023-05-24 14:41:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6647, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":5}', '2023-05-24 14:41:53', 3, 0, '', 'true', NULL, '2023-05-24 14:41:53', NULL, '2023-05-24 14:41:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6648, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":8}', '2023-05-24 14:41:56', 7, 0, '', 'true', NULL, '2023-05-24 14:41:56', NULL, '2023-05-24 14:41:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6649, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":10}', '2023-05-24 14:42:02', 9, 0, '', 'true', NULL, '2023-05-24 14:42:02', NULL, '2023-05-24 14:42:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6650, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":9}', '2023-05-24 14:42:06', 3, 0, '', 'true', NULL, '2023-05-24 14:42:06', NULL, '2023-05-24 14:42:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6651, '', 1, 2, '管理后台 - 素材分组', '删除素材分组', 4, '', '', 'DELETE', '/admin-api/shop/material-group/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.deleteMaterialGroup(Long)', '{\"id\":8}', '2023-05-24 14:42:10', 3, 0, '', 'true', NULL, '2023-05-24 14:42:10', NULL, '2023-05-24 14:42:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6652, '', 1, 2, '管理后台 - 素材分组', '更新素材分组', 3, '', '', 'PUT', '/admin-api/shop/material-group/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.materialgroup.MaterialGroupController.updateMaterialGroup(MaterialGroupUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"商品\",\"id\":1}}', '2023-05-24 14:42:23', 10, 0, '', 'true', NULL, '2023-05-24 14:42:23', NULL, '2023-05-24 14:42:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6653, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:42:36', 36, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"', NULL, '2023-05-24 14:42:36', NULL, '2023-05-24 14:42:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6654, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone04.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"}}', '2023-05-24 14:42:36', 5, 0, '', '10', NULL, '2023-05-24 14:42:36', NULL, '2023-05-24 14:42:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6655, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:42:55', 35, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\"', NULL, '2023-05-24 14:42:55', NULL, '2023-05-24 14:42:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6656, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone05.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\"}}', '2023-05-24 14:42:55', 14, 0, '', '11', NULL, '2023-05-24 14:42:55', NULL, '2023-05-24 14:42:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6657, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:45:40', 11, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\"', NULL, '2023-05-24 14:45:40', NULL, '2023-05-24 14:45:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6658, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone05.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\"}}', '2023-05-24 14:45:40', 2, 0, '', '12', NULL, '2023-05-24 14:45:40', NULL, '2023-05-24 14:45:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6659, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:45:54', 11, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\"', NULL, '2023-05-24 14:45:54', NULL, '2023-05-24 14:45:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6660, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone09.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\"}}', '2023-05-24 14:45:54', 2, 0, '', '13', NULL, '2023-05-24 14:45:54', NULL, '2023-05-24 14:45:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6661, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:49:02', 16, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"', NULL, '2023-05-24 14:49:02', NULL, '2023-05-24 14:49:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6662, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone08.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"}}', '2023-05-24 14:49:02', 3, 0, '', '14', NULL, '2023-05-24 14:49:02', NULL, '2023-05-24 14:49:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6663, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-24 14:49:10', 17, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\"', NULL, '2023-05-24 14:49:10', NULL, '2023-05-24 14:49:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6664, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":\"1\",\"name\":\"iphone11.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\"}}', '2023-05-24 14:49:10', 2, 0, '', '15', NULL, '2023-05-24 14:49:10', NULL, '2023-05-24 14:49:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6665, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2168,\"path\":\"product-crreate\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 13:51:38', 23, 0, '', 'true', NULL, '2023-05-26 13:51:38', NULL, '2023-05-26 13:51:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6666, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2168,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 14:08:18', 16, 0, '', 'true', NULL, '2023-05-26 14:08:18', NULL, '2023-05-26 14:08:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6667, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2168,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2170}}', '2023-05-26 14:09:51', 6, 0, '', 'true', NULL, '2023-05-26 14:09:51', NULL, '2023-05-26 14:09:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6668, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2168,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":1,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 14:11:02', 7, 0, '', 'true', NULL, '2023-05-26 14:11:02', NULL, '2023-05-26 14:11:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6669, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2168,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":0,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 14:11:46', 7, 0, '', 'true', NULL, '2023-05-26 14:11:46', NULL, '2023-05-26 14:11:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6670, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":2,\"sort\":2,\"parentId\":2000,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":0,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 14:13:03', 11, 0, '', 'true', NULL, '2023-05-26 14:13:03', NULL, '2023-05-26 14:13:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6671, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品创建\",\"permission\":\"shop:store-product:create\",\"type\":3,\"sort\":2,\"parentId\":2168,\"path\":\"product-create\",\"icon\":\"\",\"component\":\"mall/product/storeProduct/StoreProductForm\",\"componentName\":\"StoreProductForm\",\"status\":0,\"visible\":false,\"keepAlive\":true,\"alwaysShow\":false,\"id\":2170}}', '2023-05-26 14:23:49', 13, 0, '', 'true', NULL, '2023-05-26 14:23:49', NULL, '2023-05-26 14:23:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6672, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_product_attr\",\"yshop_store_product_attr_result\",\"yshop_store_product_attr_value\"]}}', '2023-05-27 09:38:35', 48, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-05-27 09:38:36', NULL, '2023-05-27 09:38:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6673, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_product_attr\",\"yshop_store_product_attr_result\",\"yshop_store_product_attr_value\"]}}', '2023-05-27 09:40:31', 247, 0, '', '[135,136,137]', NULL, '2023-05-27 09:40:31', NULL, '2023-05-27 09:40:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6674, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_attr\",\"tableComment\":\"商品属性表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproductattr\",\"className\":\"StoreProductAttr\",\"classComment\":\"商品属性\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":135,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":135,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"8611\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1758},{\"tableId\":135,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"15333\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1759},{\"tableId\":135,\"columnName\":\"attr_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"属性名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"attrName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1760},{\"tableId\":135,\"columnName\":\"attr_values\",\"dataType\":\"VARCHAR\",\"columnComment\":\"属性值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"attrValues\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1761}]}}', '2023-05-27 09:43:50', 34, 0, '', 'true', NULL, '2023-05-27 09:43:50', NULL, '2023-05-27 09:43:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6675, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_attr_result\",\"tableComment\":\"商品属性详情表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproductattrresult\",\"className\":\"StoreProductAttrResult\",\"classComment\":\"商品属性详情\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":136,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":136,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"32554\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1762},{\"tableId\":136,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"11180\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1763},{\"tableId\":136,\"columnName\":\"result\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"商品属性参数\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"result\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1764},{\"tableId\":136,\"columnName\":\"change_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"上次修改时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"LocalDateTime\",\"javaField\":\"changeTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1765}]}}', '2023-05-27 09:44:07', 16, 0, '', 'true', NULL, '2023-05-27 09:44:07', NULL, '2023-05-27 09:44:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6676, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_attr_value\",\"tableComment\":\"商品属性值表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproductattrvalue\",\"className\":\"StoreProductAttrValue\",\"classComment\":\"商品属性值\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":137,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":137,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"30784\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1766},{\"tableId\":137,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"9431\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1767},{\"tableId\":137,\"columnName\":\"sku\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品属性索引值 (attr_value|attr_value[|....])\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"sku\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1768},{\"tableId\":137,\"columnName\":\"stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"属性对应的库存\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"stock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1769},{\"tableId\":137,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销量\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1770},{\"tableId\":137,\"columnName\":\"price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"属性金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"BigDecimal\",\"javaField\":\"price\",\"dictType\":\"\",\"example\":\"24382\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1771},{\"tableId\":137,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图片\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":1772},{\"tableId\":137,\"columnName\":\"unique\",\"dataType\":\"VARCHAR\",\"columnComment\":\"唯一值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"unique\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1773},{\"tableId\":137,\"columnName\":\"cost\",\"dataType\":\"DECIMAL\",\"columnComment\":\"成本价\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"BigDecimal\",\"javaField\":\"cost\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1774},{\"tableId\":137,\"columnName\":\"bar_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品条码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"barCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1775},{\"tableId\":137,\"columnName\":\"ot_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"原价\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"BigDecimal\",\"javaField\":\"otPrice\",\"dictType\":\"\",\"example\":\"1420\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1776},{\"tableId\":137,\"columnName\":\"weight\",\"dataType\":\"DECIMAL\",\"columnComment\":\"重量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"BigDecimal\",\"javaField\":\"weight\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1777},{\"tableId\":137,\"columnName\":\"volume\",\"dataType\":\"DECIMAL\",\"columnComment\":\"体积\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"BigDecimal\",\"javaField\":\"volume\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1778},{\"tableId\":137,\"columnName\":\"brokerage\",\"dataType\":\"DECIMAL\",\"columnComment\":\"一级返佣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"BigDecimal\",\"javaField\":\"brokerage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1779},{\"tableId\":137,\"columnName\":\"brokerage_two\",\"dataType\":\"DECIMAL\",\"columnComment\":\"二级返佣\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"BigDecimal\",\"javaField\":\"brokerageTwo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1780},{\"tableId\":137,\"columnName\":\"pink_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"拼团价\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"BigDecimal\",\"javaField\":\"pinkPrice\",\"dictType\":\"\",\"example\":\"27724\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1781},{\"tableId\":137,\"columnName\":\"pink_stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"拼团库存\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Integer\",\"javaField\":\"pinkStock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1782},{\"tableId\":137,\"columnName\":\"seckill_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"秒杀价\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"BigDecimal\",\"javaField\":\"seckillPrice\",\"dictType\":\"\",\"example\":\"31664\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1783},{\"tableId\":137,\"columnName\":\"seckill_stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"秒杀库存\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"Integer\",\"javaField\":\"seckillStock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1784},{\"tableId\":137,\"columnName\":\"integral\",\"dataType\":\"INTEGER\",\"columnComment\":\"需要多少积分兑换\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"Integer\",\"javaField\":\"integral\",\"dictT...', '2023-05-27 09:44:22', 26, 0, '', 'true', NULL, '2023-05-27 09:44:22', NULL, '2023-05-27 09:44:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6677, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":0}', '2023-05-29 12:46:26', 77, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"所需兑换积分\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"integral\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-05-29 12:46:26', NULL, '2023-05-29 12:46:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6678, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":0}', '2023-05-29 12:48:06', 2, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"所需兑换积分\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"integral\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-05-29 12:48:06', NULL, '2023-05-29 12:48:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6679, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":0}', '2023-05-29 13:06:03', 149, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-05-29 13:06:03', NULL, '2023-05-29 13:06:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6680, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-05-29 13:54:36', 647, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg\"', NULL, '2023-05-29 13:54:36', NULL, '2023-05-29 13:54:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6681, '', 1, 2, '管理后台 - 商品品牌', '创建品牌', 2, '', '', 'POST', '/admin-api/product/brand/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.brand.ProductBrandController.createBrand(ProductBrandCreateReqVO)', '{\"createReqVO\":{\"name\":\"2\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg\",\"sort\":2,\"description\":\"\",\"status\":0}}', '2023-05-29 13:54:40', 20, 0, '', '2', NULL, '2023-05-29 13:54:41', NULL, '2023-05-29 13:54:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6682, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"133\",\"price\":1.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":0,\"description\":\"

3333

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":2.0,\"stock\":3,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":3.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":3.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"1\",\"store_info\":\"222\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"1\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 09:54:48', 45, 500, 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'null', NULL, '2023-05-30 09:54:48', NULL, '2023-05-30 09:54:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6683, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":0,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":0,\"integral\":0,\"pic\":\"\",\"value1\":\"\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":null,\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:16:00', 6, 500, 'ServiceException: 库存不能低于0', 'null', NULL, '2023-05-30 10:16:00', NULL, '2023-05-30 10:16:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6684, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":2,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":0,\"integral\":0,\"pic\":\"\",\"value1\":\"\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":null,\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:16:16', 1, 500, 'ServiceException: 库存不能低于0', 'null', NULL, '2023-05-30 10:16:16', NULL, '2023-05-30 10:16:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6685, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":2,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":3,\"integral\":0,\"pic\":\"\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":3.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:16:32', 27, 500, 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'unique,cost,bar_code,ot_price,weight,volume,brokerage,brokerage_two,pink_price,p\' at line 2', 'null', NULL, '2023-05-30 10:16:32', NULL, '2023-05-30 10:16:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6686, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":2,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":3,\"integral\":0,\"pic\":\"\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":3.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:34:53', 314, 500, 'ParseException: Encountered unexpected token: \",\" \",\"\n at line 2, column 43.\n\nWas expecting one of:\n\n \"&\"\n \"::\"\n \";\"\n \"<<\"\n \">>\"\n \"ACTION\"\n \"ACTIVE\"\n \"ALGORITHM\"\n \"ARCHIVE\"\n \"ARRAY\"\n \"AS\"\n \"AT\"\n \"BYTE\"\n \"CASCADE\"\n \"CASE\"\n \"CAST\"\n \"CHANGE\"\n \"CHAR\"\n \"CHARACTER\"\n \"CHECKPOINT\"\n \"COLLATE\"\n \"COLUMN\"\n \"COLUMNS\"\n \"COMMENT\"\n \"COMMIT\"\n \"CONNECT\"\n \"COSTS\"\n \"CYCLE\"\n \"DBA_RECYCLEBIN\"\n \"DEFAULT\"\n \"DESC\"\n \"DESCRIBE\"\n \"DISABLE\"\n \"DISCONNECT\"\n \"DIV\"\n \"DO\"\n \"DUMP\"\n \"DUPLICATE\"\n \"EMIT\"\n \"ENABLE\"\n \"END\"\n \"EXCLUDE\"\n \"EXTRACT\"\n \"FALSE\"\n \"FILTER\"\n \"FIRST\"\n \"FLUSH\"\n \"FN\"\n \"FOLLOWING\"\n \"FORMAT\"\n \"FULLTEXT\"\n \"GROUP\"\n \"HAVING\"\n \"HISTORY\"\n \"INDEX\"\n \"INSERT\"\n \"INTERVAL\"\n \"INTO\"\n \"ISNULL\"\n \"JSON\"\n \"KEY\"\n \"LAST\"\n \"LEADING\"\n \"LINK\"\n \"LOCAL\"\n \"LOG\"\n \"MATERIALIZED\"\n \"NO\"\n \"NOLOCK\"\n \"NULLS\"\n \"OF\"\n \"OPEN\"\n \"OVER\"\n \"PARALLEL\"\n \"PARTITION\"\n \"PATH\"\n \"PERCENT\"\n \"PRECISION\"\n \"PRIMARY\"\n \"PRIOR\"\n \"QUERY\"\n \"QUIESCE\"\n \"RANGE\"\n \"READ\"\n \"RECYCLEBIN\"\n \"REGISTER\"\n \"REPLACE\"\n \"RESTRICTED\"\n \"RESUME\"\n \"ROW\"\n \"ROWS\"\n \"SCHEMA\"\n \"SEPARATOR\"\n \"SEQUENCE\"\n \"SESSION\"\n \"SHUTDOWN\"\n \"SIBLINGS\"\n \"SIGNED\"\n \"SIZE\"\n \"SKIP\"\n \"START\"\n \"SUSPEND\"\n \"SWITCH\"\n \"SYNONYM\"\n \"SYSTEM\"\n \"TABLE\"\n \"TABLESPACE\"\n \"TEMP\"\n \"TEMPORARY\"\n \"TIMEOUT\"\n \"TO\"\n \"TOP\"\n \"TRUE\"\n \"TRUNCATE\"\n \"TRY_CAST\"\n \"TYPE\"\n \"UNQIESCE\"\n \"UNSIGNED\"\n \"USER\"\n \"VALIDATE\"\n \"VALUE\"\n \"VALUES\"\n \"VIEW\"\n \"WINDOW\"\n \"XML\"\n \"ZONE\"\n \"[\"\n \"^\"\n \"|\"\n \n \n \n \n \n \n \n \n', 'null', NULL, '2023-05-30 10:34:53', NULL, '2023-05-30 10:34:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6687, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":2,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":3,\"integral\":0,\"pic\":\"\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":3.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:37:46', 283, 500, 'SQLSyntaxErrorException: Unknown column \'create_time\' in \'field list\'', 'null', NULL, '2023-05-30 10:37:47', NULL, '2023-05-30 10:37:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6688, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"2\",\"price\":2.0,\"otPrice\":0.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":2,\"description\":\"

455555

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":3,\"integral\":0,\"pic\":\"\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":3.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"2\",\"store_info\":\"44555\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"2\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 10:43:51', 379, 0, '', 'true', NULL, '2023-05-30 10:43:52', NULL, '2023-05-30 10:43:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6689, '', 1, 2, '管理后台 - 商品', '删除商品', 4, '', '', 'DELETE', '/admin-api/product/store-product/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.deleteStoreProduct(Long)', '{\"id\":14}', '2023-05-30 11:08:59', 15, 0, '', 'true', NULL, '2023-05-30 11:08:59', NULL, '2023-05-30 11:08:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6690, '', 1, 2, '管理后台 - 商品', '删除商品', 4, '', '', 'DELETE', '/admin-api/product/store-product/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.deleteStoreProduct(Long)', '{\"id\":11}', '2023-05-30 11:09:03', 7, 0, '', 'true', NULL, '2023-05-30 11:09:03', NULL, '2023-05-30 11:09:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6691, '', 1, 2, '管理后台 - 商品', '删除商品', 4, '', '', 'DELETE', '/admin-api/product/store-product/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.deleteStoreProduct(Long)', '{\"id\":10}', '2023-05-30 11:09:06', 6, 0, '', 'true', NULL, '2023-05-30 11:09:06', NULL, '2023-05-30 11:09:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6692, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"单规格\",\"price\":99.0,\"otPrice\":100.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":10,\"description\":\"

单规格商品

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":99.0,\"cost\":299.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":399.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"单规格商品\",\"store_info\":\"单规格商品\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-05-30 13:41:51', 99, 0, '', 'true', NULL, '2023-05-30 13:41:51', NULL, '2023-05-30 13:41:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6693, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":0}', '2023-05-30 13:44:42', 32, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-05-30 13:44:42', NULL, '2023-05-30 13:44:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6694, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":299.0,\"otPrice\":399.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":999,\"description\":\"

多规格

\",\"cost\":null,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":96,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":96,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":null,\"cate_id\":\"3\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":1}}', '2023-05-30 13:46:55', 165, 0, '', 'true', NULL, '2023-05-30 13:46:55', NULL, '2023-05-30 13:46:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6695, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:31:35', 8, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:31:35', NULL, '2023-05-30 14:31:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6696, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:32:32', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:32:32', NULL, '2023-05-30 14:32:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6697, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:32:49', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:32:49', NULL, '2023-05-30 14:32:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6698, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:33:57', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:33:57', NULL, '2023-05-30 14:33:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6699, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:34:42', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:34:42', NULL, '2023-05-30 14:34:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6700, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:36:01', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:36:01', NULL, '2023-05-30 14:36:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6701, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:36:09', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:36:09', NULL, '2023-05-30 14:36:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6702, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:41:34', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:41:34', NULL, '2023-05-30 14:41:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6703, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:46:42', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:46:42', NULL, '2023-05-30 14:46:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6704, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:47:27', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:47:27', NULL, '2023-05-30 14:47:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6705, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-05-30 14:48:37', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:48:37', NULL, '2023-05-30 14:48:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6706, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:48:44', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:48:44', NULL, '2023-05-30 14:48:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6707, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:49:16', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:49:16', NULL, '2023-05-30 14:49:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6708, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:49:37', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:49:37', NULL, '2023-05-30 14:49:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6709, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 14:59:30', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 14:59:30', NULL, '2023-05-30 14:59:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6710, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 15:15:35', 6, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 15:15:35', NULL, '2023-05-30 15:15:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6711, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 15:17:34', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 15:17:34', NULL, '2023-05-30 15:17:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6712, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":16}', '2023-05-30 15:19:04', 7, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-05-30 15:19:04', NULL, '2023-05-30 15:19:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6713, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-05-30 15:23:11', 58, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-05-30 15:23:11', NULL, '2023-05-30 15:23:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6714, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":5,\"name\":\"厉害的 5G 手机\",\"picUrl\":\"https://app2.yixiang.co/file/pic/20210222221033953795.jpeg\",\"sort\":0,\"description\":\"123\",\"status\":0,\"id\":7}}', '2023-06-01 11:31:05', 48, 0, '', 'true', NULL, '2023-06-01 11:31:05', NULL, '2023-06-01 11:31:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6715, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":2,\"name\":\"222\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"sort\":2,\"description\":\"\",\"status\":0}}', '2023-06-01 11:31:50', 19, 0, '', '8', NULL, '2023-06-01 11:31:50', NULL, '2023-06-01 11:31:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6716, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":3,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":3,\"description\":\"\",\"status\":0}}', '2023-06-01 11:37:34', 18, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:37:34', NULL, '2023-06-01 11:37:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6717, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":1,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":3,\"description\":\"\",\"status\":0}}', '2023-06-01 11:37:45', 3, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:37:45', NULL, '2023-06-01 11:37:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6718, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":1,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":3,\"description\":\"\",\"status\":0}}', '2023-06-01 11:37:56', 4, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:37:56', NULL, '2023-06-01 11:37:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6719, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":1,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":3,\"description\":\"\",\"status\":0}}', '2023-06-01 11:38:50', 2, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:38:50', NULL, '2023-06-01 11:38:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6720, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":0,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":3,\"description\":\"\",\"status\":0}}', '2023-06-01 11:39:02', 6, 0, '', '9', NULL, '2023-06-01 11:39:02', NULL, '2023-06-01 11:39:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6721, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":2,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"sort\":2,\"description\":\"\",\"status\":0}}', '2023-06-01 11:48:24', 25, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:48:25', NULL, '2023-06-01 11:48:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6722, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"parentId\":1,\"name\":\"33\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"sort\":2,\"description\":\"\",\"status\":0}}', '2023-06-01 11:48:31', 8, 0, '', '10', NULL, '2023-06-01 11:48:31', NULL, '2023-06-01 11:48:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6723, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":2,\"name\":\"222\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"sort\":2,\"description\":\"\",\"status\":0,\"id\":8}}', '2023-06-01 11:48:49', 8, 500, 'ServiceException: 分类最多只有二级哦', 'null', NULL, '2023-06-01 11:48:49', NULL, '2023-06-01 11:48:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6724, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":8}', '2023-06-01 11:48:54', 17, 0, '', 'true', NULL, '2023-06-01 11:48:54', NULL, '2023-06-01 11:48:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6725, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":7}', '2023-06-01 11:49:01', 8, 0, '', 'true', NULL, '2023-06-01 11:49:01', NULL, '2023-06-01 11:49:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6726, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":9}', '2023-06-01 11:49:05', 8, 0, '', 'true', NULL, '2023-06-01 11:49:05', NULL, '2023-06-01 11:49:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6727, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":10}', '2023-06-01 11:49:12', 8, 0, '', 'true', NULL, '2023-06-01 11:49:12', NULL, '2023-06-01 11:49:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6728, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"商品管理\",\"permission\":\"\",\"type\":1,\"sort\":1,\"parentId\":2000,\"path\":\"mall\",\"icon\":\"ep:shopping-cart\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-06-02 11:22:55', 22, 500, 'ServiceException: 已经存在该名字的菜单', 'null', NULL, '2023-06-02 11:22:55', NULL, '2023-06-02 11:22:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6729, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"商品中心\",\"permission\":\"\",\"type\":1,\"sort\":1,\"parentId\":2000,\"path\":\"mall\",\"icon\":\"ep:shopping-cart\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-06-02 11:24:04', 20, 0, '', '2174', NULL, '2023-06-02 11:24:04', NULL, '2023-06-02 11:24:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6730, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"store-product-rule\",\"icon\":\"ep:operation\",\"component\":\"mall/shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-06-02 11:25:04', 26, 0, '', 'true', NULL, '2023-06-02 11:25:04', NULL, '2023-06-02 11:25:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6731, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"store-product\",\"icon\":\"ep:shopping-cart\",\"component\":\"mall/product/storeProduct/index\",\"componentName\":\"StoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2168}}', '2023-06-02 11:25:40', 11, 0, '', 'true', NULL, '2023-06-02 11:25:40', NULL, '2023-06-02 11:25:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6732, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品品牌\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2174,\"path\":\"brand\",\"icon\":\"dashboard\",\"component\":\"mall/product/brand/index\",\"componentName\":\"ProductBrand\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2008}}', '2023-06-02 11:25:51', 10, 0, '', 'true', NULL, '2023-06-02 11:25:51', NULL, '2023-06-02 11:25:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6733, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品分类\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2174,\"path\":\"category\",\"icon\":\"dict\",\"component\":\"mall/product/category/index\",\"componentName\":\"ProductCategory\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2002}}', '2023-06-02 11:26:03', 11, 0, '', 'true', NULL, '2023-06-02 11:26:03', NULL, '2023-06-02 11:26:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6734, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2015}', '2023-06-02 11:26:45', 40, 0, '', 'true', NULL, '2023-06-02 11:26:45', NULL, '2023-06-02 11:26:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6735, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2016}', '2023-06-02 11:26:49', 10, 0, '', 'true', NULL, '2023-06-02 11:26:49', NULL, '2023-06-02 11:26:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6736, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2017}', '2023-06-02 11:26:54', 9, 0, '', 'true', NULL, '2023-06-02 11:26:54', NULL, '2023-06-02 11:26:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6737, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2018}', '2023-06-02 11:26:59', 10, 0, '', 'true', NULL, '2023-06-02 11:26:59', NULL, '2023-06-02 11:26:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6738, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2014}', '2023-06-02 11:27:04', 10, 0, '', 'true', NULL, '2023-06-02 11:27:04', NULL, '2023-06-02 11:27:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6739, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2020}', '2023-06-02 11:27:12', 9, 0, '', 'true', NULL, '2023-06-02 11:27:12', NULL, '2023-06-02 11:27:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6740, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2021}', '2023-06-02 11:27:15', 8, 0, '', 'true', NULL, '2023-06-02 11:27:15', NULL, '2023-06-02 11:27:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6741, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2022}', '2023-06-02 11:27:19', 10, 0, '', 'true', NULL, '2023-06-02 11:27:19', NULL, '2023-06-02 11:27:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6742, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2023}', '2023-06-02 11:27:22', 9, 0, '', 'true', NULL, '2023-06-02 11:27:22', NULL, '2023-06-02 11:27:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6743, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2019}', '2023-06-02 11:27:26', 7, 0, '', 'true', NULL, '2023-06-02 11:27:26', NULL, '2023-06-02 11:27:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6744, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"订单中心\",\"permission\":\"\",\"type\":1,\"sort\":2,\"parentId\":2000,\"path\":\"order\",\"icon\":\"ep:list\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-06-02 11:29:29', 7, 0, '', '2175', NULL, '2023-06-02 11:29:29', NULL, '2023-06-02 11:29:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6745, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商城中心\",\"permission\":\"\",\"type\":1,\"sort\":60,\"parentId\":0,\"path\":\"/mall\",\"icon\":\"merchant\",\"component\":null,\"componentName\":null,\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2000}}', '2023-06-02 11:29:46', 11, 0, '', 'true', NULL, '2023-06-02 11:29:46', NULL, '2023-06-02 11:29:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6746, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品中心\",\"permission\":\"\",\"type\":1,\"sort\":1,\"parentId\":2000,\"path\":\"product\",\"icon\":\"ep:shopping-cart\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2174}}', '2023-06-02 11:29:55', 9, 0, '', 'true', NULL, '2023-06-02 11:29:55', NULL, '2023-06-02 11:29:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6747, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-06-02 11:30:21', 54, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-06-02 11:30:21', NULL, '2023-06-02 11:30:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6748, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"用户中心\",\"permission\":\"\",\"type\":1,\"sort\":3,\"parentId\":2000,\"path\":\"user\",\"icon\":\"ep:user\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-06-02 11:33:44', 8, 0, '', '2176', NULL, '2023-06-02 11:33:44', NULL, '2023-06-02 11:33:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6749, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品规格\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2174,\"path\":\"store-product-rule\",\"icon\":\"ep:operation\",\"component\":\"mall/shop/storeProductRule/index\",\"componentName\":\"StoreProductRule\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2162}}', '2023-06-02 11:41:21', 11, 0, '', 'true', NULL, '2023-06-02 11:41:21', NULL, '2023-06-02 11:41:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6750, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_shipping_templates\",\"yshop_shipping_templates_free\",\"yshop_shipping_templates_region\"]}}', '2023-06-02 14:34:31', 107, 500, 'ServiceException: 数据库的表注释未填写', 'null', NULL, '2023-06-02 14:34:31', NULL, '2023-06-02 14:34:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6751, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_shipping_templates\",\"yshop_shipping_templates_free\",\"yshop_shipping_templates_region\"]}}', '2023-06-02 14:35:42', 114, 0, '', '[139,140,141]', NULL, '2023-06-02 14:35:42', NULL, '2023-06-02 14:35:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6752, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_shipping_templates\",\"tableComment\":\"运费模板表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"shippingtemplates\",\"className\":\"ShippingTemplates\",\"classComment\":\"运费模板\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2174,\"id\":139,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":139,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"模板ID\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"17775\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1799},{\"tableId\":139,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"模板名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1800},{\"tableId\":139,\"columnName\":\"type\",\"dataType\":\"BIT\",\"columnComment\":\"计费方式\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Boolean\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1801},{\"tableId\":139,\"columnName\":\"region_info\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"地域以及费用\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"regionInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1802},{\"tableId\":139,\"columnName\":\"appoint\",\"dataType\":\"BIT\",\"columnComment\":\"指定包邮开关\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Boolean\",\"javaField\":\"appoint\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1803},{\"tableId\":139,\"columnName\":\"appoint_info\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"指定包邮内容\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"appointInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1804},{\"tableId\":139,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1805},{\"tableId\":139,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1806},{\"tableId\":139,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1807},{\"tableId\":139,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1808},{\"tableId\":139,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1809},{\"tableId\":139,\"columnName\":\"sort\",\"dataType\":\"INTEGER\",\"columnComment\":\"排序\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Integer\",\"javaField\":\"sort\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1810},{\"tableId\":139,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"3603\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1811}]}}', '2023-06-02 14:39:25', 34, 0, '', 'true', NULL, '2023-06-02 14:39:25', NULL, '2023-06-02 14:39:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6753, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_shipping_templates_free\",\"tableComment\":\"运费包邮明细\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"shippingtemplatesfree\",\"className\":\"ShippingTemplatesFree\",\"classComment\":\"运费包邮明细\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":10,\"parentMenuId\":2000,\"id\":140,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":140,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"11386\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1812},{\"tableId\":140,\"columnName\":\"province_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"省ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Integer\",\"javaField\":\"provinceId\",\"dictType\":\"\",\"example\":\"15786\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1813},{\"tableId\":140,\"columnName\":\"temp_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"模板ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"tempId\",\"dictType\":\"\",\"example\":\"32249\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1814},{\"tableId\":140,\"columnName\":\"city_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"城市ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"cityId\",\"dictType\":\"\",\"example\":\"4772\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1815},{\"tableId\":140,\"columnName\":\"number\",\"dataType\":\"DECIMAL\",\"columnComment\":\"包邮件数\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"BigDecimal\",\"javaField\":\"number\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1816},{\"tableId\":140,\"columnName\":\"price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"包邮金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"BigDecimal\",\"javaField\":\"price\",\"dictType\":\"\",\"example\":\"30472\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1817},{\"tableId\":140,\"columnName\":\"type\",\"dataType\":\"BIT\",\"columnComment\":\"计费方式\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Boolean\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1818},{\"tableId\":140,\"columnName\":\"uniqid\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组唯一值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"uniqid\",\"dictType\":\"\",\"example\":\"4130\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1819}]}}', '2023-06-02 14:48:50', 30, 0, '', 'true', NULL, '2023-06-02 14:48:50', NULL, '2023-06-02 14:48:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6754, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_shipping_templates_region\",\"tableComment\":\"运费区域明细\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"shippingtemplatesregion\",\"className\":\"ShippingTemplatesRegion\",\"classComment\":\"运费区域明细\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":141,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":141,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"378\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1820},{\"tableId\":141,\"columnName\":\"province_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"省ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Integer\",\"javaField\":\"provinceId\",\"dictType\":\"\",\"example\":\"20327\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1821},{\"tableId\":141,\"columnName\":\"temp_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"模板ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"tempId\",\"dictType\":\"\",\"example\":\"22266\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1822},{\"tableId\":141,\"columnName\":\"city_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"城市ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"cityId\",\"dictType\":\"\",\"example\":\"26577\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1823},{\"tableId\":141,\"columnName\":\"first\",\"dataType\":\"DECIMAL\",\"columnComment\":\"首件\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"BigDecimal\",\"javaField\":\"first\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1824},{\"tableId\":141,\"columnName\":\"first_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"首件运费\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"BigDecimal\",\"javaField\":\"firstPrice\",\"dictType\":\"\",\"example\":\"2331\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1825},{\"tableId\":141,\"columnName\":\"continues\",\"dataType\":\"DECIMAL\",\"columnComment\":\"续件\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"BigDecimal\",\"javaField\":\"continues\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1826},{\"tableId\":141,\"columnName\":\"continue_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"续件运费\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"BigDecimal\",\"javaField\":\"continuePrice\",\"dictType\":\"\",\"example\":\"21082\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1827},{\"tableId\":141,\"columnName\":\"type\",\"dataType\":\"BIT\",\"columnComment\":\"计费方式\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1828},{\"tableId\":141,\"columnName\":\"uniqid\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分组唯一值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"uniqid\",\"dictType\":\"\",\"example\":\"10545\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1829}]}}', '2023-06-02 14:49:08', 43, 0, '', 'true', NULL, '2023-06-02 14:49:08', NULL, '2023-06-02 14:49:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6755, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,同步数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/sync-from-db', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.syncCodegenFromDB(Long)', '{\"tableId\":141}', '2023-06-02 15:07:59', 42, 500, 'ServiceException: 同步失败,不存在改变', 'null', NULL, '2023-06-02 15:07:59', NULL, '2023-06-02 15:07:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6756, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"运费模板\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"shipping-templates\",\"icon\":\"\",\"component\":\"product/shippingTemplates/index\",\"componentName\":\"ShippingTemplates\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2177}}', '2023-06-02 18:38:17', 25, 0, '', 'true', NULL, '2023-06-02 18:38:17', NULL, '2023-06-02 18:38:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6757, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"运费模板\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"shipping-templates\",\"icon\":\"ep:document-copy\",\"component\":\"product/shippingTemplates/index\",\"componentName\":\"ShippingTemplates\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2177}}', '2023-06-02 18:39:01', 12, 0, '', 'true', NULL, '2023-06-02 18:39:01', NULL, '2023-06-02 18:39:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6758, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"运费模板\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"shipping-templates\",\"icon\":\"ep:document-copy\",\"component\":\"mall/product/shippingTemplates/index\",\"componentName\":\"ShippingTemplates\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2177}}', '2023-06-02 18:39:53', 15, 0, '', 'true', NULL, '2023-06-02 18:39:53', NULL, '2023-06-02 18:39:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6759, '', 1, 2, '管理后台 - 运费模板', '创建运费模板', 2, '', '', 'POST', '/admin-api/product/shipping-templates/create/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.createShippingTemplates(ShippingTemplatesCreateReqVO,Integer)', '{\"createReqVO\":{\"name\":\"666\",\"type\":true,\"appoint\":false,\"regionInfo\":null,\"appointInfo\":null,\"sort\":0},\"id\":0}', '2023-06-05 19:47:54', 60, 0, '', '37', NULL, '2023-06-05 19:47:54', NULL, '2023-06-05 19:47:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6760, '', 1, 2, '管理后台 - 运费模板', '创建运费模板', 2, '', '', 'POST', '/admin-api/product/shipping-templates/create/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.createShippingTemplates(ShippingTemplatesDto,Integer)', '{\"shippingTemplatesDto\":{\"id\":null,\"name\":\"333\",\"type\":1,\"appoint\":0,\"sort\":0,\"region_info\":[{\"regionName\":\"默认全国\",\"first\":\"1\",\"price\":\"0\",\"continue_price\":\"0\",\"region\":[{\"name\":\"默认全国\",\"city_id\":\"0\",\"children\":null}],\"_continue\":\"1\"},{\"regionName\":\"辽宁省\",\"first\":\"1\",\"price\":\"0\",\"continue_price\":\"0\",\"region\":[{\"name\":\"辽宁省\",\"city_id\":\"210000\",\"children\":[{\"city_id\":\"210100\"},{\"city_id\":\"210200\"},{\"city_id\":\"210300\"},{\"city_id\":\"210400\"},{\"city_id\":\"210500\"},{\"city_id\":\"210600\"},{\"city_id\":\"210700\"},{\"city_id\":\"210800\"},{\"city_id\":\"210900\"},{\"city_id\":\"211000\"},{\"city_id\":\"211100\"},{\"city_id\":\"211200\"},{\"city_id\":\"211300\"},{\"city_id\":\"211400\"}]}],\"_continue\":\"1\"}],\"appoint_info\":[]},\"id\":0}', '2023-06-06 11:04:36', 284, 0, '', 'true', NULL, '2023-06-06 11:04:36', NULL, '2023-06-06 11:04:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6761, '', 1, 2, '管理后台 - 运费模板', '删除运费模板', 4, '', '', 'DELETE', '/admin-api/product/shipping-templates/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.deleteShippingTemplates(Integer)', '{\"id\":38}', '2023-06-06 12:30:11', 10, 0, '', 'true', NULL, '2023-06-06 12:30:11', NULL, '2023-06-06 12:30:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6762, '', 1, 2, '管理后台 - 运费模板', '创建运费模板', 2, '', '', 'POST', '/admin-api/product/shipping-templates/create/38', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.createShippingTemplates(ShippingTemplatesDto,Integer)', '{\"shippingTemplatesDto\":{\"id\":null,\"name\":\"指定区域邮费\",\"type\":1,\"appoint\":0,\"sort\":0,\"region_info\":[{\"regionName\":\"默认全国\",\"first\":\"1\",\"price\":\"0\",\"continue_price\":\"0\",\"region\":[{\"name\":\"默认全国\",\"city_id\":\"0\",\"children\":null}],\"_continue\":\"1\"},{\"regionName\":\"辽宁省\",\"first\":\"1\",\"price\":\"0\",\"continue_price\":\"0\",\"region\":[{\"name\":\"辽宁省\",\"city_id\":\"210000\",\"children\":[{\"city_id\":\"210100\"},{\"city_id\":\"210200\"},{\"city_id\":\"210300\"},{\"city_id\":\"210400\"},{\"city_id\":\"210500\"},{\"city_id\":\"210600\"},{\"city_id\":\"210700\"},{\"city_id\":\"210800\"},{\"city_id\":\"210900\"},{\"city_id\":\"211000\"},{\"city_id\":\"211100\"},{\"city_id\":\"211200\"},{\"city_id\":\"211300\"},{\"city_id\":\"211400\"}]}],\"_continue\":\"1\"}],\"appoint_info\":[]},\"id\":38}', '2023-06-06 14:17:04', 253, 0, '', 'true', NULL, '2023-06-06 14:17:04', NULL, '2023-06-06 14:17:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6763, '', 1, 2, '管理后台 - 运费模板', '创建运费模板', 2, '', '', 'POST', '/admin-api/product/shipping-templates/create/0', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.shippingtemplates.ShippingTemplatesController.createShippingTemplates(ShippingTemplatesDto,Integer)', '{\"shippingTemplatesDto\":{\"id\":null,\"name\":\"指定包邮区域\",\"type\":1,\"appoint\":1,\"sort\":0,\"region_info\":[{\"regionName\":\"默认全国\",\"first\":\"1\",\"price\":\"0\",\"continue_price\":\"0\",\"region\":[{\"name\":\"默认全国\",\"city_id\":\"0\",\"children\":null}],\"_continue\":\"1\"}],\"appoint_info\":[{\"a_num\":\"1\",\"a_price\":\"10\",\"place\":[{\"name\":\"山西省\",\"city_id\":\"140000\",\"children\":[{\"city_id\":\"140100\"},{\"city_id\":\"140200\"},{\"city_id\":\"140300\"},{\"city_id\":\"140400\"},{\"city_id\":\"140500\"},{\"city_id\":\"140600\"},{\"city_id\":\"140700\"},{\"city_id\":\"140800\"},{\"city_id\":\"140900\"},{\"city_id\":\"141000\"},{\"city_id\":\"141100\"}]}],\"placeName\":\"山西省\"}]},\"id\":0}', '2023-06-06 14:42:12', 72, 0, '', 'true', NULL, '2023-06-06 14:42:12', NULL, '2023-06-06 14:42:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6764, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-06-08 09:54:51', 72, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-06-08 09:54:52', NULL, '2023-06-08 09:54:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6765, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品品牌\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2174,\"path\":\"brand\",\"icon\":\"ep:brush\",\"component\":\"mall/product/brand/index\",\"componentName\":\"ProductBrand\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2008}}', '2023-06-08 09:56:55', 24, 0, '', 'true', NULL, '2023-06-08 09:56:55', NULL, '2023-06-08 09:56:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6766, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品分类\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2174,\"path\":\"category\",\"icon\":\"ep:chat-dot-round\",\"component\":\"mall/product/category/index\",\"componentName\":\"ProductCategory\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2002}}', '2023-06-08 09:57:25', 13, 0, '', 'true', NULL, '2023-06-08 09:57:25', NULL, '2023-06-08 09:57:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6767, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-06-08 11:02:45', 136, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-06-08 11:02:45', NULL, '2023-06-08 11:02:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6768, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_user\"]}}', '2023-06-09 14:49:08', 122, 0, '', '[142]', NULL, '2023-06-09 14:49:08', NULL, '2023-06-09 14:49:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6769, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_user\",\"tableComment\":\"用户表\",\"remark\":null,\"moduleName\":\"member\",\"businessName\":\"user\",\"className\":\"User\",\"classComment\":\"用户\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2176,\"id\":142,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":142,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"16370\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1830},{\"tableId\":142,\"columnName\":\"username\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户账户(跟accout一样)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"username\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1831},{\"tableId\":142,\"columnName\":\"password\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户密码(跟pwd)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"password\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1832},{\"tableId\":142,\"columnName\":\"real_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"真实姓名\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"realName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1833},{\"tableId\":142,\"columnName\":\"birthday\",\"dataType\":\"INTEGER\",\"columnComment\":\"生日\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"birthday\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1834},{\"tableId\":142,\"columnName\":\"card_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"身份证号码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cardId\",\"dictType\":\"\",\"example\":\"29961\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1835},{\"tableId\":142,\"columnName\":\"mark\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户备注\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"mark\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1836},{\"tableId\":142,\"columnName\":\"partner_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"合伙人id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Integer\",\"javaField\":\"partnerId\",\"dictType\":\"\",\"example\":\"4234\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1837},{\"tableId\":142,\"columnName\":\"group_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"用户分组id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"groupId\",\"dictType\":\"\",\"example\":\"12625\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1838},{\"tableId\":142,\"columnName\":\"nickname\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户昵称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"nickname\",\"dictType\":\"\",\"example\":\"李四\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1839},{\"tableId\":142,\"columnName\":\"avatar\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户头像\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"avatar\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1840},{\"tableId\":142,\"columnName\":\"phone\",\"dataType\":\"CHAR\",\"columnComment\":\"手机号码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"phone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1841},{\"tableId\":142,\"columnName\":\"add_ip\",\"dataType\":\"VARCHAR\",\"columnComment\":\"添加ip\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"addIp\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1842},{\"tableId\":142,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1843},{\"tableId\":142,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1844},{\"tableId\":142,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1845},{\"tableId\":142,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"最后一次登录时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1846},{\"tableId\":142,\"columnName\":\"last_ip\",\"dataType\":\"VARCHAR\",\"columnComment\":\"最后一次登录ip\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"String\",\"javaField\":\"lastIp\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1847},{\"tableId\":142,\"columnName\":\"now_money\",\"dataType\":\"DECIMAL\",\"columnComment\":\"用户余额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"BigDecimal\",\"javaField\":\"nowMoney\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1848},{\"tableId\":142,\"columnName\":\"brokerage_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"佣金金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"BigDecimal\",\"javaField\":\"brokeragePrice\",\"dictType\":\"\",\"example\":\"14395\",\"...', '2023-06-09 14:59:21', 65, 0, '', 'true', NULL, '2023-06-09 14:59:21', NULL, '2023-06-09 14:59:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6770, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user\",\"icon\":\"ep:user-filled\",\"component\":\"member/user/index\",\"componentName\":\"User\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2183}}', '2023-06-09 17:22:10', 85, 0, '', 'true', NULL, '2023-06-09 17:22:10', NULL, '2023-06-09 17:22:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6771, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user\",\"icon\":\"ep:user-filled\",\"component\":\"mall/member/user/index\",\"componentName\":\"User\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2183}}', '2023-06-09 17:29:53', 17, 0, '', 'true', NULL, '2023-06-09 17:29:53', NULL, '2023-06-09 17:29:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6772, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user1\",\"icon\":\"ep:user-filled\",\"component\":\"mall/member/user/index\",\"componentName\":\"User\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2183}}', '2023-06-09 17:36:56', 26, 0, '', 'true', NULL, '2023-06-09 17:36:56', NULL, '2023-06-09 17:36:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6773, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户中心\",\"permission\":\"\",\"type\":1,\"sort\":3,\"parentId\":2000,\"path\":\"member\",\"icon\":\"ep:user\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2176}}', '2023-06-09 17:48:44', 17, 0, '', 'true', NULL, '2023-06-09 17:48:44', NULL, '2023-06-09 17:48:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6774, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user\",\"icon\":\"ep:user-filled\",\"component\":\"mall/member/user/index\",\"componentName\":\"User\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2183}}', '2023-06-09 17:48:55', 30, 0, '', 'true', NULL, '2023-06-09 17:48:55', NULL, '2023-06-09 17:48:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6775, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:02:42', 40, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-06-09 19:02:42', NULL, '2023-06-09 19:02:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6776, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:03:42', 32, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-06-09 19:03:42', NULL, '2023-06-09 19:03:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6777, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:04:46', 36, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-06-09 19:04:46', NULL, '2023-06-09 19:04:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6778, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:06:31', 375, 500, 'ServiceException: 数据库的表字段(is_mer_check)注释未填写', 'null', NULL, '2023-06-09 19:06:31', NULL, '2023-06-09 19:06:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6779, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:06:37', 191, 500, 'ServiceException: 数据库的表字段(is_mer_check)注释未填写', 'null', NULL, '2023-06-09 19:06:37', NULL, '2023-06-09 19:06:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6780, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_after_sales\",\"yshop_store_after_sales_item\",\"yshop_store_after_sales_status\",\"yshop_store_cart\",\"yshop_store_order\",\"yshop_store_order_cart_info\",\"yshop_store_order_status\",\"yshop_user_address\",\"yshop_user_bill\",\"yshop_store_product_reply\",\"yshop_store_product_relation\"]}}', '2023-06-09 19:07:42', 537, 0, '', '[151,152,153,154,155,156,157,158,159,160,161]', NULL, '2023-06-09 19:07:42', NULL, '2023-06-09 19:07:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6781, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"keyword\":\"邮费的商品\",\"price\":10.0,\"otPrice\":100.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":110,\"description\":\"

邮费的商品

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":10.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":100.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\"],\"store_name\":\"设置运费模板邮费的商品\",\"store_info\":\"邮费的商品\",\"bar_code\":null,\"cate_id\":\"2\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":0}}', '2023-06-10 11:40:05', 293, 0, '', 'true', NULL, '2023-06-10 11:40:06', NULL, '2023-06-10 11:40:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6782, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-06-10 11:40:12', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-06-10 11:40:12', NULL, '2023-06-10 11:40:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6783, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-06-10 11:40:28', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-06-10 11:40:28', NULL, '2023-06-10 11:40:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6784, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-06-10 11:46:13', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-06-10 11:46:13', NULL, '2023-06-10 11:46:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6785, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-06-10 11:46:19', 93, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-06-10 11:46:19', NULL, '2023-06-10 11:46:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6786, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":96,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":96,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"3\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":1}}', '2023-06-10 11:46:28', 115, 0, '', 'true', NULL, '2023-06-10 11:46:28', NULL, '2023-06-10 11:46:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6787, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-06-10 11:46:31', 56, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-06-10 11:46:31', NULL, '2023-06-10 11:46:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6788, '', 1, 2, '管理后台 - OAuth2 客户端', '更新 OAuth2 客户端', 3, '', '', 'PUT', '/admin-api/system/oauth2-client/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.oauth2.OAuth2ClientController.updateOAuth2Client(OAuth2ClientUpdateReqVO)', '{\"updateReqVO\":{\"clientId\":\"default\",\"secret\":\"admin123\",\"name\":\"yshop\",\"logo\":\"http://test.yshop.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png\",\"description\":\"我是描述\",\"status\":0,\"accessTokenValiditySeconds\":1800,\"refreshTokenValiditySeconds\":43200,\"redirectUris\":[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"],\"authorizedGrantTypes\":[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"],\"scopes\":[\"user.read\",\"user.write\"],\"autoApproveScopes\":[],\"authorities\":[\"user.read\",\"user.write\"],\"resourceIds\":[],\"additionalInformation\":\"{}\",\"id\":1,\"additionalInformationJson\":true}}', '2023-06-12 09:57:24', 64, 0, '', 'true', NULL, '2023-06-12 09:57:24', NULL, '2023-06-12 09:57:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6789, '', 1, 2, '管理后台 - OAuth2 客户端', '更新 OAuth2 客户端', 3, '', '', 'PUT', '/admin-api/system/oauth2-client/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.oauth2.OAuth2ClientController.updateOAuth2Client(OAuth2ClientUpdateReqVO)', '{\"updateReqVO\":{\"clientId\":\"default\",\"secret\":\"admin123\",\"name\":\"yshop\",\"logo\":\"http://test.yshop.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png\",\"description\":\"我是描述\",\"status\":0,\"accessTokenValiditySeconds\":18000000,\"refreshTokenValiditySeconds\":43200,\"redirectUris\":[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"],\"authorizedGrantTypes\":[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"],\"scopes\":[\"user.read\",\"user.write\"],\"autoApproveScopes\":[],\"authorities\":[\"user.read\",\"user.write\"],\"resourceIds\":[],\"additionalInformation\":\"{}\",\"id\":1,\"additionalInformationJson\":true}}', '2023-06-12 10:01:30', 12, 0, '', 'true', NULL, '2023-06-12 10:01:30', NULL, '2023-06-12 10:01:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6790, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":2,\"tableName\":\"yshop_store_product\",\"tableComment\":\"商品表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproduct\",\"className\":\"StoreProduct\",\"classComment\":\"商品\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":134,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":134,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1175\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1715},{\"tableId\":134,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":1716},{\"tableId\":134,\"columnName\":\"slider_image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"轮播图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"sliderImage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"upload_image\",\"id\":1717},{\"tableId\":134,\"columnName\":\"store_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"storeName\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1718},{\"tableId\":134,\"columnName\":\"store_info\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品简介\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"storeInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1719},{\"tableId\":134,\"columnName\":\"keyword\",\"dataType\":\"VARCHAR\",\"columnComment\":\"关键字\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"keyword\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1720},{\"tableId\":134,\"columnName\":\"bar_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"产品条码(一维码)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"barCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1721},{\"tableId\":134,\"columnName\":\"cate_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"分类id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"cateId\",\"dictType\":\"\",\"example\":\"4928\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1722},{\"tableId\":134,\"columnName\":\"price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"商品价格\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"BigDecimal\",\"javaField\":\"price\",\"dictType\":\"\",\"example\":\"18735\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1723},{\"tableId\":134,\"columnName\":\"vip_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"会员价格\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"BigDecimal\",\"javaField\":\"vipPrice\",\"dictType\":\"\",\"example\":\"18248\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1724},{\"tableId\":134,\"columnName\":\"ot_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"市场价\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"BigDecimal\",\"javaField\":\"otPrice\",\"dictType\":\"\",\"example\":\"14818\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1725},{\"tableId\":134,\"columnName\":\"postage\",\"dataType\":\"DECIMAL\",\"columnComment\":\"邮费\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"BigDecimal\",\"javaField\":\"postage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1726},{\"tableId\":134,\"columnName\":\"unit_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"单位名\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"unitName\",\"dictType\":\"\",\"example\":\"李四\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1727},{\"tableId\":134,\"columnName\":\"sort\",\"dataType\":\"SMALLINT\",\"columnComment\":\"排序\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Short\",\"javaField\":\"sort\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1728},{\"tableId\":134,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销量\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1729},{\"tableId\":134,\"columnName\":\"stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"库存\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"stock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1730},{\"tableId\":134,\"columnName\":\"is_show\",\"dataType\":\"BIT\",\"columnComment\":\"状态(0:未上架,1:上架)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Boolean\",\"javaField\":\"isShow\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1731},{\"tableId\":134,\"columnName\":\"is_hot\",\"dataType\":\"BIT\",\"columnComment\":\"是否热卖\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Boolean\",\"javaField\":\"isHot\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1732},{\"tableId\":134,\"columnName\":\"is_benefit\",\"dataType\":\"BIT\",\"columnComment\":\"是否优惠\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"Boolean\",\"javaField\":\"isBenefit\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1733},{\"tableId\":134,\"columnName\":\"is_best\",\"dataType\":\"BIT\",\"columnComment\":\"是否精品\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"Boolean\",\"javaField\":\"isBest\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"lis...', '2023-06-12 10:27:01', 70, 0, '', 'true', NULL, '2023-06-12 10:27:01', NULL, '2023-06-12 10:27:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6791, '', 1, 2, '管理后台 - 商品', '删除商品', 4, '', '', 'DELETE', '/admin-api/product/store-product/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.deleteStoreProduct(Long)', '{\"id\":17}', '2023-06-12 15:08:13', 30, 0, '', 'true', NULL, '2023-06-12 15:08:13', NULL, '2023-06-12 15:08:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6792, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_relation\",\"tableComment\":\"商品点赞和收藏表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproductrelation\",\"className\":\"StoreProductRelation\",\"classComment\":\"商品点赞和收藏\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2174,\"id\":161,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":161,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"24658\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2155},{\"tableId\":161,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"17942\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2156},{\"tableId\":161,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"8816\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2157},{\"tableId\":161,\"columnName\":\"type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"类型(收藏(collect)、点赞(like))\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2158},{\"tableId\":161,\"columnName\":\"category\",\"dataType\":\"VARCHAR\",\"columnComment\":\"某种类型的商品(普通商品、秒杀商品)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"category\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2159},{\"tableId\":161,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2160},{\"tableId\":161,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2161},{\"tableId\":161,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2162},{\"tableId\":161,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2163},{\"tableId\":161,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2164},{\"tableId\":161,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"27955\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2165}]}}', '2023-06-13 09:39:36', 197, 0, '', 'true', NULL, '2023-06-13 09:39:36', NULL, '2023-06-13 09:39:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6793, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_product_reply\",\"tableComment\":\"评论表\",\"remark\":null,\"moduleName\":\"product\",\"businessName\":\"storeproductreply\",\"className\":\"StoreProductReply\",\"classComment\":\"评论\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2174,\"id\":160,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":160,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"评论ID\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"7419\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2136},{\"tableId\":160,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"12573\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2137},{\"tableId\":160,\"columnName\":\"oid\",\"dataType\":\"BIGINT\",\"columnComment\":\"订单ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Long\",\"javaField\":\"oid\",\"dictType\":\"\",\"example\":\"5646\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2138},{\"tableId\":160,\"columnName\":\"unique\",\"dataType\":\"CHAR\",\"columnComment\":\"唯一id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"unique\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2139},{\"tableId\":160,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"产品id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"23509\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2140},{\"tableId\":160,\"columnName\":\"reply_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"某种商品类型(普通商品、秒杀商品)\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"replyType\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2141},{\"tableId\":160,\"columnName\":\"product_score\",\"dataType\":\"BIT\",\"columnComment\":\"商品分数\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Boolean\",\"javaField\":\"productScore\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2142},{\"tableId\":160,\"columnName\":\"service_score\",\"dataType\":\"BIT\",\"columnComment\":\"服务分数\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Boolean\",\"javaField\":\"serviceScore\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2143},{\"tableId\":160,\"columnName\":\"comment\",\"dataType\":\"VARCHAR\",\"columnComment\":\"评论内容\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"comment\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2144},{\"tableId\":160,\"columnName\":\"pics\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"评论图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"pics\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2145},{\"tableId\":160,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2146},{\"tableId\":160,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"评论时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2147},{\"tableId\":160,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2148},{\"tableId\":160,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2149},{\"tableId\":160,\"columnName\":\"merchant_reply_content\",\"dataType\":\"VARCHAR\",\"columnComment\":\"管理员回复内容\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"merchantReplyContent\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"editor\",\"id\":2150},{\"tableId\":160,\"columnName\":\"merchant_reply_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"管理员回复时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"LocalDateTime\",\"javaField\":\"merchantReplyTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2151},{\"tableId\":160,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"0未删除1已删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2152},{\"tableId\":160,\"columnName\":\"is_reply\",\"dataType\":\"BIT\",\"columnComment\":\"0未回复1已回复\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Boolean\",\"javaField\":\"isReply\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2153},{\"tableId\":160,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"17849\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2154}]}}', '2023-06-13 09:40:14', 47, 0, '', 'true', NULL, '2023-06-13 09:40:14', NULL, '2023-06-13 09:40:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6794, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_cart\",\"tableComment\":\"购物车表\",\"remark\":null,\"moduleName\":\"cart\",\"businessName\":\"storecart\",\"className\":\"StoreCart\",\"classComment\":\"购物车\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2174,\"id\":154,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":154,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"购物车表ID\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"11256\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2014},{\"tableId\":154,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"10667\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2015},{\"tableId\":154,\"columnName\":\"type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"类型\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2016},{\"tableId\":154,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"1696\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2017},{\"tableId\":154,\"columnName\":\"product_attr_unique\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商品属性\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"productAttrUnique\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2018},{\"tableId\":154,\"columnName\":\"cart_num\",\"dataType\":\"SMALLINT\",\"columnComment\":\"商品数量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Short\",\"javaField\":\"cartNum\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2019},{\"tableId\":154,\"columnName\":\"is_pay\",\"dataType\":\"BIT\",\"columnComment\":\"0 = 未购买 1 = 已购买\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Boolean\",\"javaField\":\"isPay\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2020},{\"tableId\":154,\"columnName\":\"is_new\",\"dataType\":\"BIT\",\"columnComment\":\"是否为立即购买\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Boolean\",\"javaField\":\"isNew\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2021},{\"tableId\":154,\"columnName\":\"combination_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"拼团id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"combinationId\",\"dictType\":\"\",\"example\":\"13847\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2022},{\"tableId\":154,\"columnName\":\"seckill_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"秒杀产品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Integer\",\"javaField\":\"seckillId\",\"dictType\":\"\",\"example\":\"8790\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2023},{\"tableId\":154,\"columnName\":\"bargain_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"砍价id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Integer\",\"javaField\":\"bargainId\",\"dictType\":\"\",\"example\":\"21581\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2024},{\"tableId\":154,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2025},{\"tableId\":154,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"28742\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2026},{\"tableId\":154,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2027},{\"tableId\":154,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2028},{\"tableId\":154,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2029},{\"tableId\":154,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2030}]}}', '2023-06-15 17:43:18', 153, 0, '', 'true', NULL, '2023-06-15 17:43:18', NULL, '2023-06-15 17:43:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6795, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-06-17 21:17:41', 4, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-06-17 21:17:41', NULL, '2023-06-17 21:17:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6796, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_order\",\"tableComment\":\"订单表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeorder\",\"className\":\"StoreOrder\",\"classComment\":\"订单\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":155,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":155,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"订单ID\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"31716\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2031},{\"tableId\":155,\"columnName\":\"order_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"订单号\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"orderId\",\"dictType\":\"\",\"example\":\"20527\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2032},{\"tableId\":155,\"columnName\":\"extend_order_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"额外订单号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"extendOrderId\",\"dictType\":\"\",\"example\":\"12452\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2033},{\"tableId\":155,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"8323\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2034},{\"tableId\":155,\"columnName\":\"real_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户姓名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"realName\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2035},{\"tableId\":155,\"columnName\":\"user_phone\",\"dataType\":\"VARCHAR\",\"columnComment\":\"用户电话\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"userPhone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2036},{\"tableId\":155,\"columnName\":\"user_address\",\"dataType\":\"VARCHAR\",\"columnComment\":\"详细地址\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"userAddress\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2037},{\"tableId\":155,\"columnName\":\"cart_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"购物车id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"cartId\",\"dictType\":\"\",\"example\":\"23301\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2038},{\"tableId\":155,\"columnName\":\"freight_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"运费金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"BigDecimal\",\"javaField\":\"freightPrice\",\"dictType\":\"\",\"example\":\"637\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2039},{\"tableId\":155,\"columnName\":\"total_num\",\"dataType\":\"INTEGER\",\"columnComment\":\"订单商品总数\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Integer\",\"javaField\":\"totalNum\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2040},{\"tableId\":155,\"columnName\":\"total_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"订单总价\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"BigDecimal\",\"javaField\":\"totalPrice\",\"dictType\":\"\",\"example\":\"31659\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2041},{\"tableId\":155,\"columnName\":\"total_postage\",\"dataType\":\"DECIMAL\",\"columnComment\":\"邮费\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"BigDecimal\",\"javaField\":\"totalPostage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2042},{\"tableId\":155,\"columnName\":\"pay_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"实际支付金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"BigDecimal\",\"javaField\":\"payPrice\",\"dictType\":\"\",\"example\":\"19682\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2043},{\"tableId\":155,\"columnName\":\"pay_postage\",\"dataType\":\"DECIMAL\",\"columnComment\":\"支付邮费\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"BigDecimal\",\"javaField\":\"payPostage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2044},{\"tableId\":155,\"columnName\":\"deduction_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"抵扣金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"BigDecimal\",\"javaField\":\"deductionPrice\",\"dictType\":\"\",\"example\":\"16463\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2045},{\"tableId\":155,\"columnName\":\"coupon_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"优惠券id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"couponId\",\"dictType\":\"\",\"example\":\"3299\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2046},{\"tableId\":155,\"columnName\":\"coupon_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"优惠券金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"BigDecimal\",\"javaField\":\"couponPrice\",\"dictType\":\"\",\"example\":\"22157\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2047},{\"tableId\":155,\"columnName\":\"paid\",\"dataType\":\"TINYINT\",\"columnComment\":\"支付状态\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Byte\",\"javaField\":\"paid\",\"dictType\":\"\",\"example\":\"11728\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2048},{\"tableId\":155,\"columnName\":\"pay_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"支付时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"LocalDateTime\",\"javaField\":\"payTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2049},{\"tableId\":155,\"columnName\":\"pay_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"支付方式\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"String\",\"ja...', '2023-06-17 21:53:37', 133, 0, '', 'true', NULL, '2023-06-17 21:53:37', NULL, '2023-06-17 21:53:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6797, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2175,\"path\":\"store-order\",\"icon\":\"ep:scale-to-original\",\"component\":\"order/storeOrder/index\",\"componentName\":\"StoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2207}}', '2023-06-17 22:24:10', 65, 0, '', 'true', NULL, '2023-06-17 22:24:10', NULL, '2023-06-17 22:24:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6798, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_user_address\",\"tableComment\":\"用户地址表\",\"remark\":null,\"moduleName\":\"member\",\"businessName\":\"useraddress\",\"className\":\"UserAddress\",\"classComment\":\"用户地址\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2176,\"id\":158,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":158,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户地址id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"24169\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2100},{\"tableId\":158,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"25124\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2101},{\"tableId\":158,\"columnName\":\"real_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人姓名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"realName\",\"dictType\":\"\",\"example\":\"李四\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2102},{\"tableId\":158,\"columnName\":\"phone\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人电话\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"phone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2103},{\"tableId\":158,\"columnName\":\"province\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人所在省\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"province\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2104},{\"tableId\":158,\"columnName\":\"city\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人所在市\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"city\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2105},{\"tableId\":158,\"columnName\":\"city_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"城市id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Integer\",\"javaField\":\"cityId\",\"dictType\":\"\",\"example\":\"15595\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2106},{\"tableId\":158,\"columnName\":\"district\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人所在区\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"district\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2107},{\"tableId\":158,\"columnName\":\"detail\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货人详细地址\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"detail\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2108},{\"tableId\":158,\"columnName\":\"post_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"邮编\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"postCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2109},{\"tableId\":158,\"columnName\":\"longitude\",\"dataType\":\"VARCHAR\",\"columnComment\":\"经度\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"longitude\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2110},{\"tableId\":158,\"columnName\":\"latitude\",\"dataType\":\"VARCHAR\",\"columnComment\":\"纬度\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"latitude\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2111},{\"tableId\":158,\"columnName\":\"is_default\",\"dataType\":\"TINYINT\",\"columnComment\":\"是否默认\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Byte\",\"javaField\":\"isDefault\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2112},{\"tableId\":158,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2113},{\"tableId\":158,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2114},{\"tableId\":158,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2115},{\"tableId\":158,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2116},{\"tableId\":158,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"16180\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2117},{\"tableId\":158,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2118}]}}', '2023-06-18 16:24:37', 193, 0, '', 'true', NULL, '2023-06-18 16:24:37', NULL, '2023-06-18 16:24:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6799, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_order_cart_info\",\"tableComment\":\"订单购物详情表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeordercartinfo\",\"className\":\"StoreOrderCartInfo\",\"classComment\":\"订单购物详情\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":156,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":156,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"26502\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2087},{\"tableId\":156,\"columnName\":\"oid\",\"dataType\":\"BIGINT\",\"columnComment\":\"订单id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"oid\",\"dictType\":\"\",\"example\":\"19739\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2088},{\"tableId\":156,\"columnName\":\"order_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"订单号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"orderId\",\"dictType\":\"\",\"example\":\"2153\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2089},{\"tableId\":156,\"columnName\":\"cart_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"购物车id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Long\",\"javaField\":\"cartId\",\"dictType\":\"\",\"example\":\"9449\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2090},{\"tableId\":156,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品ID\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"4909\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2091},{\"tableId\":156,\"columnName\":\"cart_info\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"购买东西的详细信息\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"cartInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2092},{\"tableId\":156,\"columnName\":\"unique\",\"dataType\":\"VARCHAR\",\"columnComment\":\"唯一id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"unique\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2093},{\"tableId\":156,\"columnName\":\"is_after_sales\",\"dataType\":\"BIT\",\"columnComment\":\"是否能售后0不能1能\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Boolean\",\"javaField\":\"isAfterSales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2094}]}}', '2023-06-18 18:04:17', 85, 0, '', 'true', NULL, '2023-06-18 18:04:17', NULL, '2023-06-18 18:04:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6800, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_order_status\",\"tableComment\":\"订单操作记录表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeorderstatus\",\"className\":\"StoreOrderStatus\",\"classComment\":\"订单操作记录\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":157,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":157,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"6933\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2095},{\"tableId\":157,\"columnName\":\"oid\",\"dataType\":\"BIGINT\",\"columnComment\":\"订单id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"oid\",\"dictType\":\"\",\"example\":\"6551\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2096},{\"tableId\":157,\"columnName\":\"change_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"操作类型\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"changeType\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2097},{\"tableId\":157,\"columnName\":\"change_message\",\"dataType\":\"VARCHAR\",\"columnComment\":\"操作备注\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"changeMessage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2098},{\"tableId\":157,\"columnName\":\"change_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"操作时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"changeTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2099}]}}', '2023-06-18 18:04:51', 27, 0, '', 'true', NULL, '2023-06-18 18:04:51', NULL, '2023-06-18 18:04:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6801, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_user_bill\",\"tableComment\":\"用户账单表\",\"remark\":null,\"moduleName\":\"member\",\"businessName\":\"userbill\",\"className\":\"UserBill\",\"classComment\":\"用户账单\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2176,\"id\":159,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":159,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户账单id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"22559\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2119},{\"tableId\":159,\"columnName\":\"uid\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户uid\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"uid\",\"dictType\":\"\",\"example\":\"9419\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2120},{\"tableId\":159,\"columnName\":\"link_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"关联id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"linkId\",\"dictType\":\"\",\"example\":\"18439\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2121},{\"tableId\":159,\"columnName\":\"pm\",\"dataType\":\"TINYINT\",\"columnComment\":\"0 = 支出 1 = 获得\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Byte\",\"javaField\":\"pm\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2122},{\"tableId\":159,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"账单标题\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2123},{\"tableId\":159,\"columnName\":\"category\",\"dataType\":\"VARCHAR\",\"columnComment\":\"明细种类\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"category\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2124},{\"tableId\":159,\"columnName\":\"type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"明细类型\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2125},{\"tableId\":159,\"columnName\":\"number\",\"dataType\":\"DECIMAL\",\"columnComment\":\"明细数字\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"BigDecimal\",\"javaField\":\"number\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2126},{\"tableId\":159,\"columnName\":\"balance\",\"dataType\":\"DECIMAL\",\"columnComment\":\"剩余\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"BigDecimal\",\"javaField\":\"balance\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2127},{\"tableId\":159,\"columnName\":\"mark\",\"dataType\":\"VARCHAR\",\"columnComment\":\"备注\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"mark\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2128},{\"tableId\":159,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2129},{\"tableId\":159,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2130},{\"tableId\":159,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2131},{\"tableId\":159,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2132},{\"tableId\":159,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"0 = 带确定 1 = 有效 -1 = 无效\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2133},{\"tableId\":159,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2134},{\"tableId\":159,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"17966\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2135}]}}', '2023-06-18 20:33:14', 237, 0, '', 'true', NULL, '2023-06-18 20:33:14', NULL, '2023-06-18 20:33:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6802, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_after_sales\",\"tableComment\":\"售后记录表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeaftersales\",\"className\":\"StoreAfterSales\",\"classComment\":\"售后记录\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":151,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":151,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"10463\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1976},{\"tableId\":151,\"columnName\":\"order_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"订单号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"orderCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1977},{\"tableId\":151,\"columnName\":\"refund_amount\",\"dataType\":\"DECIMAL\",\"columnComment\":\"退款金额\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"BigDecimal\",\"javaField\":\"refundAmount\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1978},{\"tableId\":151,\"columnName\":\"service_type\",\"dataType\":\"BIT\",\"columnComment\":\"服务类型0仅退款1退货退款\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Boolean\",\"javaField\":\"serviceType\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1979},{\"tableId\":151,\"columnName\":\"reasons\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"申请原因\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"reasons\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1980},{\"tableId\":151,\"columnName\":\"explains\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"说明\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"explains\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1981},{\"tableId\":151,\"columnName\":\"explain_img\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"说明图片->多个用逗号分割\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"explainImg\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1982},{\"tableId\":151,\"columnName\":\"shipper_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"物流公司编码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"shipperCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1983},{\"tableId\":151,\"columnName\":\"delivery_sn\",\"dataType\":\"VARCHAR\",\"columnComment\":\"物流单号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"deliverySn\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1984},{\"tableId\":151,\"columnName\":\"delivery_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"物流名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"deliveryName\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1985},{\"tableId\":151,\"columnName\":\"state\",\"dataType\":\"BIT\",\"columnComment\":\"状态 0已提交等待平台审核 1平台已审核 等待用户发货/退款 2 用户已发货 3退款成功\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"state\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1986},{\"tableId\":151,\"columnName\":\"sales_state\",\"dataType\":\"BIT\",\"columnComment\":\"售后状态-0正常1用户取消2商家拒绝\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Boolean\",\"javaField\":\"salesState\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":1987},{\"tableId\":151,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1988},{\"tableId\":151,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":1989},{\"tableId\":151,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":1990},{\"tableId\":151,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":1991},{\"tableId\":151,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":1992},{\"tableId\":151,\"columnName\":\"user_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"用户id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Long\",\"javaField\":\"userId\",\"dictType\":\"\",\"example\":\"24467\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1993},{\"tableId\":151,\"columnName\":\"consignee\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商家收货人\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"String\",\"javaField\":\"consignee\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1994},{\"tableId\":151,\"columnName\":\"phone_number\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商家手机号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\"...', '2023-06-18 20:45:36', 88, 0, '', 'true', NULL, '2023-06-18 20:45:36', NULL, '2023-06-18 20:45:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6803, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_after_sales_item\",\"tableComment\":\"售后子表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeaftersalesitem\",\"className\":\"StoreAfterSalesItem\",\"classComment\":\"售后子\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":152,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":152,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"主键id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"27129\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1998},{\"tableId\":152,\"columnName\":\"store_after_sales_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"售后id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"storeAfterSalesId\",\"dictType\":\"\",\"example\":\"12309\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":1999},{\"tableId\":152,\"columnName\":\"product_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"商品id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Long\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"27833\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2000},{\"tableId\":152,\"columnName\":\"cart_info\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"退货东西的详情信息\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"cartInfo\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2001},{\"tableId\":152,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2002},{\"tableId\":152,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"32156\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2003},{\"tableId\":152,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2004},{\"tableId\":152,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2005},{\"tableId\":152,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2006},{\"tableId\":152,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2007}]}}', '2023-06-18 20:54:31', 98, 0, '', 'true', NULL, '2023-06-18 20:54:32', NULL, '2023-06-18 20:54:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6804, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_after_sales_status\",\"tableComment\":\"售后订单操作详情表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeaftersalesstatus\",\"className\":\"StoreAfterSalesStatus\",\"classComment\":\"售后订单操作详情\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":153,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":153,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"23233\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2008},{\"tableId\":153,\"columnName\":\"store_after_sales_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"售后id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Long\",\"javaField\":\"storeAfterSalesId\",\"dictType\":\"\",\"example\":\"8825\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2009},{\"tableId\":153,\"columnName\":\"change_type\",\"dataType\":\"BIT\",\"columnComment\":\"操作类型\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Boolean\",\"javaField\":\"changeType\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2010},{\"tableId\":153,\"columnName\":\"change_message\",\"dataType\":\"VARCHAR\",\"columnComment\":\"操作备注\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"changeMessage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2011},{\"tableId\":153,\"columnName\":\"change_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"操作时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"changeTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2012},{\"tableId\":153,\"columnName\":\"operator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"操作人\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"operator\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2013}]}}', '2023-06-18 21:00:27', 80, 0, '', 'true', NULL, '2023-06-18 21:00:27', NULL, '2023-06-18 21:00:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6805, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":5,\"status\":2}', '2023-06-29 13:34:58', 372, 0, '', 'true', NULL, '2023-06-29 13:34:58', NULL, '2023-06-29 13:34:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6806, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":16,\"status\":2}', '2023-06-29 13:35:02', 11, 0, '', 'true', NULL, '2023-06-29 13:35:02', NULL, '2023-06-29 13:35:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6807, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1077}', '2023-06-29 13:39:58', 125, 0, '', 'true', NULL, '2023-06-29 13:39:58', NULL, '2023-06-29 13:39:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6808, '', 1, 2, '管理后台 - 公众号账号', '创建公众号账号', 2, '', '', 'POST', '/admin-api/mp/account/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.mp.controller.admin.account.MpAccountController.createAccount(MpAccountCreateReqVO)', '{\"createReqVO\":{\"name\":\"yshop_pro\",\"account\":\" gh_370eafba1888 \",\"appId\":\"wxdbdbc123c8c30b45\",\"appSecret\":\"3312eb2026a006bd0cc39af3021ef9c5\",\"token\":\"yshop_pro\",\"aesKey\":\"\",\"remark\":\"\"}}', '2023-06-29 13:58:21', 46, 0, '', '5', NULL, '2023-06-29 13:58:21', NULL, '2023-06-29 13:58:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6809, '', 1, 2, '管理后台 - 公众号账号', '生成公众号二维码', 3, '', '', 'PUT', '/admin-api/mp/account/generate-qr-code', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.mp.controller.admin.account.MpAccountController.generateAccountQrCode(Long)', '{\"id\":5}', '2023-06-29 13:59:57', 1078, 0, '', 'true', NULL, '2023-06-29 13:59:58', NULL, '2023-06-29 13:59:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6810, '', 1, 2, '管理后台 - 公众号菜单', '保存公众号菜单', 2, '', '', 'POST', '/admin-api/mp/menu/save', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.mp.controller.admin.menu.MpMenuController.saveMenu(MpMenuSaveReqVO)', '{\"createReqVO\":{\"accountId\":5,\"menus\":[{\"name\":\"单商户\",\"menuKey\":\"one\",\"parentId\":null,\"type\":\"view\",\"url\":\"https://www.yixiang.co\",\"miniProgramAppId\":null,\"miniProgramPagePath\":null,\"articleId\":null,\"replyMessageType\":\"text\",\"replyContent\":null,\"replyMediaId\":null,\"replyMediaUrl\":null,\"replyThumbMediaId\":null,\"replyThumbMediaUrl\":null,\"replyTitle\":null,\"replyDescription\":null,\"replyArticles\":null,\"replyMusicUrl\":null,\"replyHqMusicUrl\":null,\"children\":[{\"name\":\"小程序\",\"menuKey\":\"miniapp\",\"parentId\":null,\"type\":\"view\",\"url\":\"https://www.yixiang.co\",\"miniProgramAppId\":null,\"miniProgramPagePath\":null,\"articleId\":null,\"replyMessageType\":\"text\",\"replyContent\":null,\"replyMediaId\":null,\"replyMediaUrl\":null,\"replyThumbMediaId\":null,\"replyThumbMediaUrl\":null,\"replyTitle\":null,\"replyDescription\":null,\"replyArticles\":null,\"replyMusicUrl\":null,\"replyHqMusicUrl\":null,\"children\":null}]},{\"name\":\"多商户\",\"menuKey\":\"two\",\"parentId\":null,\"type\":\"view\",\"url\":\"https://www.yixiang.co\",\"miniProgramAppId\":null,\"miniProgramPagePath\":null,\"articleId\":null,\"replyMessageType\":\"text\",\"replyContent\":null,\"replyMediaId\":null,\"replyMediaUrl\":null,\"replyThumbMediaId\":null,\"replyThumbMediaUrl\":null,\"replyTitle\":null,\"replyDescription\":null,\"replyArticles\":null,\"replyMusicUrl\":null,\"replyHqMusicUrl\":null,\"children\":null},{\"name\":\"官网\",\"menuKey\":\"gw\",\"parentId\":null,\"type\":\"view\",\"url\":\"https://www.yixiang.co\",\"miniProgramAppId\":null,\"miniProgramPagePath\":null,\"articleId\":null,\"replyMessageType\":\"text\",\"replyContent\":null,\"replyMediaId\":null,\"replyMediaUrl\":null,\"replyThumbMediaId\":null,\"replyThumbMediaUrl\":null,\"replyTitle\":null,\"replyDescription\":null,\"replyArticles\":null,\"replyMusicUrl\":null,\"replyHqMusicUrl\":null,\"children\":null}]}}', '2023-06-29 16:24:35', 2206, 0, '', 'true', NULL, '2023-06-29 16:24:37', NULL, '2023-06-29 16:24:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6811, '', 1, 2, '管理后台 - 公众号自动回复', '创建公众号自动回复', 2, '', '', 'POST', '/admin-api/mp/auto-reply/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.mp.controller.admin.message.MpAutoReplyController.createAutoReply(MpAutoReplyCreateReqVO)', '{\"createReqVO\":{\"type\":3,\"requestKeyword\":\"yshop\",\"requestMatch\":1,\"requestMessageType\":null,\"responseMessageType\":\"text\",\"responseContent\":\"haha\",\"responseMediaId\":null,\"responseMediaUrl\":null,\"responseThumbMediaId\":null,\"responseThumbMediaUrl\":null,\"responseTitle\":null,\"responseDescription\":null,\"responseArticles\":null,\"responseMusicUrl\":null,\"responseHqMusicUrl\":null,\"accountId\":5,\"requestKeywordValid\":true,\"requestMatchValid\":true,\"requestMessageTypeValid\":true}}', '2023-06-29 16:25:06', 23, 0, '', '53', NULL, '2023-06-29 16:25:06', NULL, '2023-06-29 16:25:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6812, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"评论管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"store-product-reply\",\"icon\":\"ep:message\",\"component\":\"product/storeProductReply/index\",\"componentName\":\"StoreProductReply\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2189}}', '2023-06-29 16:37:18', 60, 0, '', 'true', NULL, '2023-06-29 16:37:18', NULL, '2023-06-29 16:37:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6813, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"收藏管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"store-product-relation\",\"icon\":\"ep:collection\",\"component\":\"product/storeProductRelation/index\",\"componentName\":\"StoreProductRelation\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2195}}', '2023-06-29 16:37:52', 34, 0, '', 'true', NULL, '2023-06-29 16:37:52', NULL, '2023-06-29 16:37:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6814, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"购物车管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2174,\"path\":\"store-cart\",\"icon\":\"ep:shopping-cart\",\"component\":\"cart/storeCart/index\",\"componentName\":\"StoreCart\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2201}}', '2023-06-29 16:38:07', 26, 0, '', 'true', NULL, '2023-06-29 16:38:07', NULL, '2023-06-29 16:38:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6815, '', 1, 2, '管理后台 - 评论', '更新评论', 3, '', '', 'PUT', '/admin-api/product/store-product-reply/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductreply.StoreProductReplyController.updateStoreProductReply(StoreProductReplyUpdateReqVO)', '{\"updateReqVO\":{\"uid\":2,\"oid\":4,\"unique\":\"b1255a14d97748f396664968f45f68e6\",\"productId\":16,\"replyType\":\"product\",\"productScore\":5,\"serviceScore\":5,\"comment\":\"评价\",\"pics\":\"http://dummyimage.com/400x400\",\"merchantReplyContent\":\"666\",\"merchantReplyTime\":null,\"isReply\":0,\"id\":4}}', '2023-06-29 18:38:36', 83, 0, '', 'true', NULL, '2023-06-29 18:38:36', NULL, '2023-06-29 18:38:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6816, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品管理\",\"permission\":\"\",\"type\":2,\"sort\":4,\"parentId\":2174,\"path\":\"store-product\",\"icon\":\"ep:shopping-cart\",\"component\":\"mall/product/storeProduct/index\",\"componentName\":\"StoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2168}}', '2023-06-30 10:38:39', 167, 0, '', 'true', NULL, '2023-06-30 10:38:39', NULL, '2023-06-30 10:38:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6817, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"运费模板\",\"permission\":\"\",\"type\":2,\"sort\":5,\"parentId\":2174,\"path\":\"shipping-templates\",\"icon\":\"ep:document-copy\",\"component\":\"mall/product/shippingTemplates/index\",\"componentName\":\"ShippingTemplates\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2177}}', '2023-06-30 10:38:52', 29, 0, '', 'true', NULL, '2023-06-30 10:38:52', NULL, '2023-06-30 10:38:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6818, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"评论管理\",\"permission\":\"\",\"type\":2,\"sort\":6,\"parentId\":2174,\"path\":\"store-product-reply\",\"icon\":\"ep:message\",\"component\":\"product/storeProductReply/index\",\"componentName\":\"StoreProductReply\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2189}}', '2023-06-30 10:39:02', 19, 0, '', 'true', NULL, '2023-06-30 10:39:02', NULL, '2023-06-30 10:39:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6819, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"收藏管理\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2174,\"path\":\"store-product-relation\",\"icon\":\"ep:collection\",\"component\":\"product/storeProductRelation/index\",\"componentName\":\"StoreProductRelation\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2195}}', '2023-06-30 10:39:10', 15, 0, '', 'true', NULL, '2023-06-30 10:39:10', NULL, '2023-06-30 10:39:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6820, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"购物车管理\",\"permission\":\"\",\"type\":2,\"sort\":8,\"parentId\":2174,\"path\":\"store-cart\",\"icon\":\"ep:shopping-cart\",\"component\":\"cart/storeCart/index\",\"componentName\":\"StoreCart\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2201}}', '2023-06-30 10:39:21', 15, 0, '', 'true', NULL, '2023-06-30 10:39:21', NULL, '2023-06-30 10:39:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6821, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-07-01 10:43:20', 21, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-01 10:43:20', NULL, '2023-07-01 10:43:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6822, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-01 10:43:30', 114, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-01 10:43:30', NULL, '2023-07-01 10:43:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6823, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-01 10:47:55', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-01 10:47:55', NULL, '2023-07-01 10:47:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6824, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_express\"]}}', '2023-07-02 10:10:18', 403, 0, '', '[162]', NULL, '2023-07-02 10:10:19', NULL, '2023-07-02 10:10:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6825, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_express\",\"tableComment\":\"快递公司表\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"express\",\"className\":\"Express\",\"classComment\":\"快递公司\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":162,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":162,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"快递公司id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"27172\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2166},{\"tableId\":162,\"columnName\":\"code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递公司简称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"code\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2167},{\"tableId\":162,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递公司全称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2168},{\"tableId\":162,\"columnName\":\"sort\",\"dataType\":\"INTEGER\",\"columnComment\":\"排序\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"sort\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2169},{\"tableId\":162,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2170},{\"tableId\":162,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2171},{\"tableId\":162,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2172},{\"tableId\":162,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2173},{\"tableId\":162,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2174}]}}', '2023-07-02 10:11:22', 76, 0, '', 'true', NULL, '2023-07-02 10:11:22', NULL, '2023-07-02 10:11:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6826, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递公司\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2175,\"path\":\"express\",\"icon\":\"ep:expand\",\"component\":\"order/express/index\",\"componentName\":\"Express\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2231}}', '2023-07-02 10:20:13', 44, 0, '', 'true', NULL, '2023-07-02 10:20:13', NULL, '2023-07-02 10:20:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6827, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"售后记录管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2175,\"path\":\"store-after-sales\",\"icon\":\"\",\"component\":\"order/storeAfterSales/index\",\"componentName\":\"StoreAfterSales\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2225}}', '2023-07-02 10:20:35', 14, 0, '', 'true', NULL, '2023-07-02 10:20:35', NULL, '2023-07-02 10:20:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6828, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"售后记录管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2175,\"path\":\"store-after-sales\",\"icon\":\"ep:fold\",\"component\":\"order/storeAfterSales/index\",\"componentName\":\"StoreAfterSales\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2225}}', '2023-07-02 10:21:00', 19, 0, '', 'true', NULL, '2023-07-02 10:21:00', NULL, '2023-07-02 10:21:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6829, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"售后订单\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2175,\"path\":\"store-after-sales\",\"icon\":\"ep:fold\",\"component\":\"order/storeAfterSales/index\",\"componentName\":\"StoreAfterSales\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2225}}', '2023-07-02 10:21:22', 16, 0, '', 'true', NULL, '2023-07-02 10:21:22', NULL, '2023-07-02 10:21:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6830, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递公司\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2175,\"path\":\"express\",\"icon\":\"ep:expand\",\"component\":\"order/express/index\",\"componentName\":\"Express\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2231}}', '2023-07-02 10:21:30', 18, 0, '', 'true', NULL, '2023-07-02 10:21:30', NULL, '2023-07-02 10:21:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6831, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"HTKY\",\"name\":\"中通快递\",\"sort\":1}}', '2023-07-02 10:40:03', 14, 0, '', '433', NULL, '2023-07-02 10:40:03', NULL, '2023-07-02 10:40:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6832, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"STO\",\"name\":\"申通快递\",\"sort\":2}}', '2023-07-02 10:40:28', 9, 0, '', '434', NULL, '2023-07-02 10:40:28', NULL, '2023-07-02 10:40:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6833, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"HTKY\",\"name\":\"百世快递\",\"sort\":3}}', '2023-07-02 10:40:50', 5, 0, '', '435', NULL, '2023-07-02 10:40:50', NULL, '2023-07-02 10:40:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6834, '', 1, 2, '管理后台 - 快递公司', '更新快递公司', 3, '', '', 'PUT', '/admin-api/order/express/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.updateExpress(ExpressUpdateReqVO)', '{\"updateReqVO\":{\"code\":\"ZTO\",\"name\":\"中通快递\",\"sort\":1,\"id\":433}}', '2023-07-02 10:41:08', 11, 0, '', 'true', NULL, '2023-07-02 10:41:08', NULL, '2023-07-02 10:41:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6835, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"YTO\",\"name\":\"圆通速递\",\"sort\":4}}', '2023-07-02 10:41:35', 5, 0, '', '436', NULL, '2023-07-02 10:41:35', NULL, '2023-07-02 10:41:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6836, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"EMS\",\"name\":\"EMS\",\"sort\":5}}', '2023-07-02 10:41:51', 6, 0, '', '437', NULL, '2023-07-02 10:41:51', NULL, '2023-07-02 10:41:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6837, '', 1, 2, '管理后台 - 快递公司', '创建快递公司', 2, '', '', 'POST', '/admin-api/order/express/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.express.ExpressController.createExpress(ExpressCreateReqVO)', '{\"createReqVO\":{\"code\":\"SF\",\"name\":\"顺丰速运\",\"sort\":6}}', '2023-07-02 10:42:16', 10, 0, '', '438', NULL, '2023-07-02 10:42:16', NULL, '2023-07-02 10:42:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6838, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675076031473516544\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"152\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1688223605000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"ZTO\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":\"111111\",\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"bec3e825553a4c80a2b3bd83d7e6e957\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":6}}', '2023-07-02 11:27:38', 122, 0, '', 'true', NULL, '2023-07-02 11:27:38', NULL, '2023-07-02 11:27:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6839, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675076031473516544\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"152\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1688223605000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"ZTO\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":\"111111\",\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"bec3e825553a4c80a2b3bd83d7e6e957\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":6}}', '2023-07-02 18:28:23', 45, 0, '', 'true', NULL, '2023-07-02 18:28:23', NULL, '2023-07-02 18:28:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6840, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675076031473516544\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"152\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1688223605000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"HTKY\",\"deliveryName\":\"百世快递\",\"deliveryType\":\"normal\",\"deliveryId\":\"111111\",\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"bec3e825553a4c80a2b3bd83d7e6e957\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":6}}', '2023-07-02 18:30:12', 69, 0, '', 'true', NULL, '2023-07-02 18:30:12', NULL, '2023-07-02 18:30:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6841, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675076031473516544\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"152\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1688223605000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"HTKY\",\"deliveryName\":\"百世快递\",\"deliveryType\":\"normal\",\"deliveryId\":\"111111\",\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"bec3e825553a4c80a2b3bd83d7e6e957\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":6,\"updateType\":\"orderSend\"}}', '2023-07-02 18:58:41', 44, 0, '', 'true', NULL, '2023-07-02 18:58:41', NULL, '2023-07-02 18:58:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6842, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675076031473516544\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"152\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1688223605000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"HTKY\",\"deliveryName\":\"百世快递\",\"deliveryType\":\"normal\",\"deliveryId\":\"111111\",\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"bec3e825553a4c80a2b3bd83d7e6e957\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":6,\"updateType\":\"orderSend\"}}', '2023-07-02 19:16:46', 133, 0, '', 'true', NULL, '2023-07-02 19:16:46', NULL, '2023-07-02 19:16:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6843, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1675346979909009408\",\"extendOrderId\":null,\"uid\":2,\"realName\":\"处龙难较八\",\"userPhone\":\"18118747768\",\"userAddress\":\"北京 北京市 东城区 777号\",\"cartId\":\"153\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":94,\"totalPostage\":10,\"payPrice\":104,\"payPostage\":10,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":0,\"payTime\":null,\"payType\":\"\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":1,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"ullamco laboris\",\"unique\":\"cc96c32433a4480e9679b3723770d0a2\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"send\",\"id\":7,\"updateType\":null}}', '2023-07-03 10:47:33', 59, 0, '', 'true', NULL, '2023-07-03 10:47:33', NULL, '2023-07-03 10:47:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6844, '', 1, 2, '管理后台 - 售后记录', '更新售后记录', 3, '', '', 'PUT', '/admin-api/order/store-after-sales/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeaftersales.StoreAfterSalesController.updateStoreAfterSales(StoreAfterSalesUpdateReqVO)', '{\"updateReqVO\":{\"orderCode\":\"1673967434274439168\",\"refundAmount\":104,\"serviceType\":1,\"reasons\":\"七天无理由\",\"explains\":\"我就是想退款\",\"explainImg\":\"http://dummyimage.com/400x400\",\"shipperCode\":null,\"deliverySn\":null,\"deliveryName\":null,\"state\":0,\"salesState\":0,\"userId\":2,\"consignee\":\"hupeng\",\"phoneNumber\":\"18000000000\",\"address\":\"中国地球\",\"id\":10}}', '2023-07-04 11:02:15', 188, 0, '', 'true', NULL, '2023-07-04 11:02:16', NULL, '2023-07-04 11:02:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6845, '', 1, 2, '管理后台 - 售后记录', '更新售后记录', 3, '', '', 'PUT', '/admin-api/order/store-after-sales/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeaftersales.StoreAfterSalesController.updateStoreAfterSales(StoreAfterSalesUpdateReqVO)', '{\"updateReqVO\":{\"orderCode\":\"1673967434274439168\",\"refundAmount\":104,\"serviceType\":1,\"reasons\":\"七天无理由\",\"explains\":\"我就是想退款\",\"explainImg\":\"http://dummyimage.com/400x400\",\"shipperCode\":null,\"deliverySn\":null,\"deliveryName\":null,\"state\":0,\"salesState\":0,\"userId\":2,\"consignee\":\"hupeng\",\"phoneNumber\":\"18000000000\",\"address\":\"中国地球\",\"id\":10,\"type\":1}}', '2023-07-04 11:22:17', 85, 0, '', 'true', NULL, '2023-07-04 11:22:17', NULL, '2023-07-04 11:22:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6846, '', 1, 2, '管理后台 - 售后记录', '更新售后记录', 3, '', '', 'PUT', '/admin-api/order/store-after-sales/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeaftersales.StoreAfterSalesController.updateStoreAfterSales(StoreAfterSalesUpdateReqVO)', '{\"updateReqVO\":{\"orderCode\":\"1673967434274439168\",\"refundAmount\":104,\"serviceType\":1,\"reasons\":\"七天无理由\",\"explains\":\"我就是想退款\",\"explainImg\":\"http://dummyimage.com/400x400\",\"shipperCode\":null,\"deliverySn\":null,\"deliveryName\":null,\"state\":1,\"salesState\":0,\"userId\":2,\"consignee\":\"hupeng\",\"phoneNumber\":\"18000000000\",\"address\":\"中国地球\",\"id\":10,\"type\":2}}', '2023-07-04 11:38:49', 16, 0, '', 'true', NULL, '2023-07-04 11:38:49', NULL, '2023-07-04 11:38:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6847, '', 1, 2, '管理后台 - 售后记录', '更新售后记录', 3, '', '', 'PUT', '/admin-api/order/store-after-sales/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeaftersales.StoreAfterSalesController.updateStoreAfterSales(StoreAfterSalesUpdateReqVO)', '{\"updateReqVO\":{\"orderCode\":\"1673967434274439168\",\"refundAmount\":104,\"serviceType\":1,\"reasons\":\"七天无理由\",\"explains\":\"我就是想退款\",\"explainImg\":\"http://dummyimage.com/400x400\",\"shipperCode\":null,\"deliverySn\":null,\"deliveryName\":null,\"state\":1,\"salesState\":2,\"userId\":2,\"consignee\":\"hupeng\",\"phoneNumber\":\"18000000000\",\"address\":\"中国地球\",\"id\":10,\"type\":1}}', '2023-07-05 16:47:46', 89, 0, '', 'true', NULL, '2023-07-05 16:47:46', NULL, '2023-07-05 16:47:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6848, '', 1, 2, '管理后台 - 售后记录', '更新售后记录', 3, '', '', 'PUT', '/admin-api/order/store-after-sales/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeaftersales.StoreAfterSalesController.updateStoreAfterSales(StoreAfterSalesUpdateReqVO)', '{\"updateReqVO\":{\"orderCode\":\"1673967434274439168\",\"refundAmount\":104,\"serviceType\":1,\"reasons\":\"七天无理由\",\"explains\":\"我就是想退款\",\"explainImg\":\"http://dummyimage.com/400x400\",\"shipperCode\":null,\"deliverySn\":null,\"deliveryName\":null,\"state\":1,\"salesState\":2,\"userId\":2,\"consignee\":\"hupeng\",\"phoneNumber\":\"18000000000\",\"address\":\"中国地球\",\"id\":10,\"type\":2}}', '2023-07-05 16:48:43', 75, 0, '', 'true', NULL, '2023-07-05 16:48:43', NULL, '2023-07-05 16:48:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6849, '', 1, 2, '管理后台 - 用户', '更新用户余额与积分', 3, '', '', 'PUT', '/admin-api/member/user/updateMony', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.updateMony(UserUpdateMoneyReqVO)', '{\"updateReqVO\":{\"id\":2,\"ptype\":1,\"money\":\"1000\",\"itype\":1,\"integral\":\"1000\"}}', '2023-07-08 16:02:03', 114, 0, '', 'true', NULL, '2023-07-08 16:02:03', NULL, '2023-07-08 16:02:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6850, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户地址管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user-address\",\"icon\":\"ep:add-location\",\"component\":\"member/userAddress/index\",\"componentName\":\"UserAddress\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2213}}', '2023-07-08 16:33:21', 44, 0, '', 'true', NULL, '2023-07-08 16:33:21', NULL, '2023-07-08 16:33:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6851, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2219}', '2023-07-08 16:33:28', 26, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-07-08 16:33:28', NULL, '2023-07-08 16:33:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6852, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2220}', '2023-07-08 16:33:41', 32, 0, '', 'true', NULL, '2023-07-08 16:33:41', NULL, '2023-07-08 16:33:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6853, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2221}', '2023-07-08 16:33:48', 13, 0, '', 'true', NULL, '2023-07-08 16:33:48', NULL, '2023-07-08 16:33:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6854, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2222}', '2023-07-08 16:33:53', 10, 0, '', 'true', NULL, '2023-07-08 16:33:53', NULL, '2023-07-08 16:33:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6855, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2223}', '2023-07-08 16:33:57', 10, 0, '', 'true', NULL, '2023-07-08 16:33:57', NULL, '2023-07-08 16:33:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6856, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2224}', '2023-07-08 16:34:01', 12, 0, '', 'true', NULL, '2023-07-08 16:34:01', NULL, '2023-07-08 16:34:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6857, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2219}', '2023-07-08 16:34:05', 11, 0, '', 'true', NULL, '2023-07-08 16:34:05', NULL, '2023-07-08 16:34:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6858, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"地址管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2176,\"path\":\"user-address\",\"icon\":\"ep:add-location\",\"component\":\"member/userAddress/index\",\"componentName\":\"UserAddress\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2213}}', '2023-07-08 16:34:26', 11, 0, '', 'true', NULL, '2023-07-08 16:34:26', NULL, '2023-07-08 16:34:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6859, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-09 09:44:59', 3, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-09 09:44:59', NULL, '2023-07-09 09:44:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6860, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2161}', '2023-07-09 09:47:51', 12, 0, '', 'true', NULL, '2023-07-09 09:47:51', NULL, '2023-07-09 09:47:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6861, '', 1, 2, '支付商户信息', '创建支付商户信息', 2, '', '', 'POST', '/admin-api/pay/merchant/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchant.PayMerchantController.createMerchant(PayMerchantCreateReqVO)', '{\"createReqVO\":{\"name\":\"yshop-pro\",\"shortName\":\"yshop\",\"status\":0,\"remark\":\"\"}}', '2023-07-10 22:27:07', 35, 0, '', '6', NULL, '2023-07-10 22:27:07', NULL, '2023-07-10 22:27:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6862, '', 1, 2, '管理后台 - 用户个人中心', '修改用户个人信息', 3, '', '', 'PUT', '/admin-api/system/user/profile/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.user.UserProfileController.updateUserProfile(UserProfileUpdateReqVO)', '{\"reqVO\":{\"nickname\":\"yshop\",\"email\":\"yshop@yixaing.co\",\"mobile\":\"18000000000\",\"sex\":1}}', '2023-07-10 22:31:50', 20, 0, '', 'true', NULL, '2023-07-10 22:31:50', NULL, '2023-07-10 22:31:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6863, '', 1, 2, '管理后台 - 支付应用信息', '创建支付应用信息', 2, '', '', 'POST', '/admin-api/pay/app/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchant.PayAppController.createApp(PayAppCreateReqVO)', '{\"createReqVO\":{\"name\":\"支付测试\",\"status\":0,\"remark\":null,\"payNotifyUrl\":\"http://127.0.0.1:48080/admin-api/pay/demo-order/update-paid\",\"refundNotifyUrl\":\"http://127.0.0.1:48080/admin-api/pay/demo-order/update-refunded\",\"merchantId\":6}}', '2023-07-10 22:37:58', 21, 0, '', '7', NULL, '2023-07-10 22:37:58', NULL, '2023-07-10 22:37:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6864, '', 1, 2, '管理后台 - 支付应用信息', '创建支付应用信息', 2, '', '', 'POST', '/admin-api/pay/app/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchant.PayAppController.createApp(PayAppCreateReqVO)', '{\"createReqVO\":{\"name\":\"1\",\"status\":0,\"remark\":null,\"payNotifyUrl\":\"1\",\"refundNotifyUrl\":\"1\",\"merchantId\":6}}', '2023-07-10 22:58:43', 7, 0, '', '8', NULL, '2023-07-10 22:58:43', NULL, '2023-07-10 22:58:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6865, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_merchant_details\"]}}', '2023-07-14 14:28:41', 28, 500, 'ServiceException: 数据库的表注释未填写', 'null', NULL, '2023-07-14 14:28:41', NULL, '2023-07-14 14:28:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6866, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_merchant_details\"]}}', '2023-07-14 14:30:07', 99, 0, '', '[163]', NULL, '2023-07-14 14:30:07', NULL, '2023-07-14 14:30:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6867, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_merchant_details\",\"tableComment\":\"支付服务商配置\",\"remark\":null,\"moduleName\":\"pay\",\"businessName\":\"merchantdetails\",\"className\":\"MerchantDetails\",\"classComment\":\"支付服务商配置\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":1117,\"id\":163,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":163,\"columnName\":\"details_id\",\"dataType\":\"CHAR\",\"columnComment\":\"列表id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"false\",\"ordinalPosition\":1,\"javaType\":\"String\",\"javaField\":\"detailsId\",\"dictType\":\"\",\"example\":\"17552\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2175},{\"tableId\":163,\"columnName\":\"pay_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"支付类型(支付渠道) 详情查看com.egzosn.pay.spring.boot.core.merchant.PaymentPlatform对应子类,aliPay 支付宝, wxPay微信..等等\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"payType\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2176},{\"tableId\":163,\"columnName\":\"appid\",\"dataType\":\"VARCHAR\",\"columnComment\":\"应用id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"appid\",\"dictType\":\"\",\"example\":\"1718\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2177},{\"tableId\":163,\"columnName\":\"mch_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"商户id,商户号,合作伙伴id等等\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"mchId\",\"dictType\":\"\",\"example\":\"21574\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2178},{\"tableId\":163,\"columnName\":\"cert_store_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"当前面私钥公钥为证书类型的时候,这里必填,可选值:PATH,STR,INPUT_STREAM,CLASS_PATH,URL\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"certStoreType\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2179},{\"tableId\":163,\"columnName\":\"key_private\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"私钥或私钥证书\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"keyPrivate\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2180},{\"tableId\":163,\"columnName\":\"key_public\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"公钥或公钥证书\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"keyPublic\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2181},{\"tableId\":163,\"columnName\":\"key_cert\",\"dataType\":\"VARCHAR\",\"columnComment\":\"key证书,附加证书使用,如SSL证书,或者银联根级证书方面\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"keyCert\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2182},{\"tableId\":163,\"columnName\":\"key_cert_pwd\",\"dataType\":\"VARCHAR\",\"columnComment\":\"私钥证书或key证书的密码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"keyCertPwd\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2183},{\"tableId\":163,\"columnName\":\"notify_url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"异步回调\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"notifyUrl\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2184},{\"tableId\":163,\"columnName\":\"return_url\",\"dataType\":\"VARCHAR\",\"columnComment\":\"同步回调地址,大部分用于付款成功后页面转跳\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"returnUrl\",\"dictType\":\"\",\"example\":\"https://www.iocoder.cn\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2185},{\"tableId\":163,\"columnName\":\"sign_type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"签名方式,目前已实现多种签名方式详情查看com.egzosn.pay.common.util.sign.encrypt。MD5,RSA等等\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"signType\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2186},{\"tableId\":163,\"columnName\":\"seller\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收款账号,暂时只有支付宝部分使用,可根据开发者自行使用\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"seller\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2187},{\"tableId\":163,\"columnName\":\"sub_app_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"子appid\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"subAppId\",\"dictType\":\"\",\"example\":\"13761\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2188},{\"tableId\":163,\"columnName\":\"sub_mch_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"子商户id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"subMchId\",\"dictType\":\"\",\"example\":\"10127\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2189},{\"tableId\":163,\"columnName\":\"input_charset\",\"dataType\":\"VARCHAR\",\"columnComment\":\"编码类型,大部分为utf-8\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"String\",\"javaField\":\"inputCharset\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2190},{\"tableId\":163,\"columnName\":\"is_test\",\"dataType\":\"BIT\",\"columnComment\":\"是否为测试环境: 0 否,1 测试环境\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Boolean\",\"javaField\":\"isTest\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2191}]}}', '2023-07-14 14:33:17', 56, 0, '', 'true', NULL, '2023-07-14 14:33:17', NULL, '2023-07-14 14:33:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6868, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"支付配置\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":1117,\"path\":\"merchant-details\",\"icon\":\"ep:money\",\"component\":\"pay/merchantDetails/index\",\"componentName\":\"MerchantDetails\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2237}}', '2023-07-14 15:09:50', 45, 0, '', 'true', NULL, '2023-07-14 15:09:50', NULL, '2023-07-14 15:09:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6869, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1180}', '2023-07-14 15:10:20', 42, 0, '', 'true', NULL, '2023-07-14 15:10:20', NULL, '2023-07-14 15:10:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6870, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1181}', '2023-07-14 15:10:29', 12, 0, '', 'true', NULL, '2023-07-14 15:10:29', NULL, '2023-07-14 15:10:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6871, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1182}', '2023-07-14 15:10:36', 12, 0, '', 'true', NULL, '2023-07-14 15:10:36', NULL, '2023-07-14 15:10:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6872, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1183}', '2023-07-14 15:10:42', 10, 0, '', 'true', NULL, '2023-07-14 15:10:42', NULL, '2023-07-14 15:10:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6873, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1184}', '2023-07-14 15:10:47', 11, 0, '', 'true', NULL, '2023-07-14 15:10:47', NULL, '2023-07-14 15:10:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6874, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1179}', '2023-07-14 15:10:52', 15, 0, '', 'true', NULL, '2023-07-14 15:10:52', NULL, '2023-07-14 15:10:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6875, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1127}', '2023-07-14 15:10:58', 11, 0, '', 'true', NULL, '2023-07-14 15:10:58', NULL, '2023-07-14 15:10:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6876, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1128}', '2023-07-14 15:11:03', 13, 0, '', 'true', NULL, '2023-07-14 15:11:03', NULL, '2023-07-14 15:11:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6877, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1129}', '2023-07-14 15:11:07', 9, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-07-14 15:11:07', NULL, '2023-07-14 15:11:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6878, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1133}', '2023-07-14 15:11:17', 10, 0, '', 'true', NULL, '2023-07-14 15:11:17', NULL, '2023-07-14 15:11:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6879, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1134}', '2023-07-14 15:11:21', 11, 0, '', 'true', NULL, '2023-07-14 15:11:21', NULL, '2023-07-14 15:11:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6880, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1135}', '2023-07-14 15:11:25', 9, 0, '', 'true', NULL, '2023-07-14 15:11:25', NULL, '2023-07-14 15:11:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6881, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1136}', '2023-07-14 15:11:29', 10, 0, '', 'true', NULL, '2023-07-14 15:11:29', NULL, '2023-07-14 15:11:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6882, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1137}', '2023-07-14 15:11:33', 10, 0, '', 'true', NULL, '2023-07-14 15:11:33', NULL, '2023-07-14 15:11:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6883, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1132}', '2023-07-14 15:11:37', 11, 0, '', 'true', NULL, '2023-07-14 15:11:37', NULL, '2023-07-14 15:11:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6884, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1150}', '2023-07-14 15:11:43', 11, 0, '', 'true', NULL, '2023-07-14 15:11:43', NULL, '2023-07-14 15:11:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6885, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1129}', '2023-07-14 15:12:40', 10, 0, '', 'true', NULL, '2023-07-14 15:12:40', NULL, '2023-07-14 15:12:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6886, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1130}', '2023-07-14 15:12:44', 9, 0, '', 'true', NULL, '2023-07-14 15:12:44', NULL, '2023-07-14 15:12:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6887, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1131}', '2023-07-14 15:12:48', 8, 0, '', 'true', NULL, '2023-07-14 15:12:48', NULL, '2023-07-14 15:12:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6888, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1126}', '2023-07-14 15:12:54', 8, 0, '', 'true', NULL, '2023-07-14 15:12:54', NULL, '2023-07-14 15:12:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6889, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1174}', '2023-07-14 15:13:01', 10, 0, '', 'true', NULL, '2023-07-14 15:13:01', NULL, '2023-07-14 15:13:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6890, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1175}', '2023-07-14 15:13:06', 10, 0, '', 'true', NULL, '2023-07-14 15:13:06', NULL, '2023-07-14 15:13:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6891, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1176}', '2023-07-14 15:13:10', 11, 0, '', 'true', NULL, '2023-07-14 15:13:10', NULL, '2023-07-14 15:13:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6892, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1177}', '2023-07-14 15:13:14', 9, 0, '', 'true', NULL, '2023-07-14 15:13:14', NULL, '2023-07-14 15:13:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6893, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1178}', '2023-07-14 15:13:18', 8, 0, '', 'true', NULL, '2023-07-14 15:13:18', NULL, '2023-07-14 15:13:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6894, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1173}', '2023-07-14 15:13:23', 9, 0, '', 'true', NULL, '2023-07-14 15:13:23', NULL, '2023-07-14 15:13:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6895, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1162}', '2023-07-14 15:13:31', 8, 0, '', 'true', NULL, '2023-07-14 15:13:31', NULL, '2023-07-14 15:13:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6896, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1163}', '2023-07-14 15:13:36', 10, 0, '', 'true', NULL, '2023-07-14 15:13:36', NULL, '2023-07-14 15:13:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6897, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1164}', '2023-07-14 15:13:40', 8, 0, '', 'true', NULL, '2023-07-14 15:13:40', NULL, '2023-07-14 15:13:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6898, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1165}', '2023-07-14 15:13:44', 8, 0, '', 'true', NULL, '2023-07-14 15:13:44', NULL, '2023-07-14 15:13:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6899, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1166}', '2023-07-14 15:13:50', 8, 0, '', 'true', NULL, '2023-07-14 15:13:50', NULL, '2023-07-14 15:13:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6900, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1161}', '2023-07-14 15:13:55', 8, 0, '', 'true', NULL, '2023-07-14 15:13:55', NULL, '2023-07-14 15:13:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6901, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"undefined\"}', '2023-07-15 17:47:03', 282, 500, 'SQLSyntaxErrorException: Table \'yshop-pro.yshop_merchant_details\' doesn\'t exist', 'null', NULL, '2023-07-15 17:47:04', NULL, '2023-07-15 17:47:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6902, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"undefined\"}', '2023-07-15 17:54:20', 55, 500, 'ServiceException: 支付服务商配置不存在', 'null', NULL, '2023-07-15 17:54:20', NULL, '2023-07-15 17:54:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6903, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"undefined\"}', '2023-07-15 17:55:54', 2, 500, 'ServiceException: 支付服务商配置不存在', 'null', NULL, '2023-07-15 17:55:54', NULL, '2023-07-15 17:55:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6904, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"undefined\"}', '2023-07-15 17:58:45', 3, 500, 'ServiceException: 支付服务商配置不存在', 'null', NULL, '2023-07-15 17:58:45', NULL, '2023-07-15 17:58:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6905, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"2\"}', '2023-07-15 17:59:00', 20, 0, '', 'true', NULL, '2023-07-15 17:59:00', NULL, '2023-07-15 17:59:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6906, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxV3CombinePay\",\"appid\":\"公众账号ID2\",\"mchId\":\"合作者id(商户号)\",\"certStoreType\":\"URL\",\"keyPrivate\":\"V3密钥\",\"keyPublic\":\"转账公钥,转账时必填\",\"keyCert\":\"http://www.egzosn.com/certs/apiclient_cert.p12\",\"keyCertPwd\":\"默认为商户号\",\"notifyUrl\":\"http://www.pay.egzosn.com/payBack3.json\",\"returnUrl\":\"http://www.pay.egzosn.com/payBack3.json\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":true,\"detailsId\":\"7\"}}', '2023-07-15 17:59:11', 28, 0, '', 'true', NULL, '2023-07-15 17:59:11', NULL, '2023-07-15 17:59:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6907, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"URL\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"转账公钥,转账时必填\",\"keyCert\":\"\",\"keyCertPwd\":\"默认为商户号\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/payBack3.json\",\"returnUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 11:02:39', 54, 0, '', 'true', NULL, '2023-07-17 11:02:39', NULL, '2023-07-17 11:02:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6908, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"URL\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"转账公钥,转账时必填\",\"keyCert\":\"\",\"keyCertPwd\":\"默认为商户号\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 11:10:54', 42, 0, '', 'true', NULL, '2023-07-17 11:10:54', NULL, '2023-07-17 11:10:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6909, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 12:03:23', 41, 0, '', 'true', NULL, '2023-07-17 12:03:23', NULL, '2023-07-17 12:03:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6910, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 12:13:02', 16, 0, '', 'true', NULL, '2023-07-17 12:13:02', NULL, '2023-07-17 12:13:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6911, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 12:17:54', 44, 0, '', 'true', NULL, '2023-07-17 12:17:54', NULL, '2023-07-17 12:17:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6912, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxV3Pay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"\",\"keyPrivate\":\"hq9bX7ENqWi94wS9Xdk8zV5UhmzBIzG2\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA2\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 12:56:42', 39, 0, '', 'true', NULL, '2023-07-17 12:56:42', NULL, '2023-07-17 12:56:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6913, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxV3Pay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"hq9bX7ENqWi94wS9Xdk8zV5UhmzBIzG2\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA2\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 15:27:59', 42, 0, '', 'true', NULL, '2023-07-17 15:27:59', NULL, '2023-07-17 15:27:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6914, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"hq9bX7ENqWi94wS9Xdk8zV5UhmzBIzG2\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"3\"}}', '2023-07-17 15:53:09', 48, 0, '', 'true', NULL, '2023-07-17 15:53:09', NULL, '2023-07-17 15:53:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6915, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"hq9bX7ENqWi94wS9Xdk8zV5UhmzBIzG2\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"3\"}}', '2023-07-17 16:21:28', 67, 0, '', 'true', NULL, '2023-07-17 16:21:28', NULL, '2023-07-17 16:21:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6916, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"3\"}}', '2023-07-17 16:27:46', 39, 0, '', 'true', NULL, '2023-07-17 16:27:46', NULL, '2023-07-17 16:27:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6917, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"快递管理\",\"permission\":\"\",\"type\":1,\"sort\":1,\"parentId\":0,\"path\":\"/express\",\"icon\":\"ep:add-location\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-07-19 15:36:23', 48, 0, '', '2243', NULL, '2023-07-19 15:36:23', NULL, '2023-07-19 15:36:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6918, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递管理\",\"permission\":\"\",\"type\":1,\"sort\":70,\"parentId\":0,\"path\":\"/express\",\"icon\":\"ep:add-location\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2243}}', '2023-07-19 15:36:57', 24, 0, '', 'true', NULL, '2023-07-19 15:36:57', NULL, '2023-07-19 15:36:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6919, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递管理\",\"permission\":\"\",\"type\":1,\"sort\":91,\"parentId\":0,\"path\":\"/express\",\"icon\":\"ep:add-location\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2243}}', '2023-07-19 15:37:48', 11, 0, '', 'true', NULL, '2023-07-19 15:37:48', NULL, '2023-07-19 15:37:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6920, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递管理\",\"permission\":\"\",\"type\":1,\"sort\":91,\"parentId\":0,\"path\":\"/express\",\"icon\":\"\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2243}}', '2023-07-19 15:40:19', 11, 0, '', 'true', NULL, '2023-07-19 15:40:19', NULL, '2023-07-19 15:40:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6921, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递管理\",\"permission\":\"\",\"type\":1,\"sort\":91,\"parentId\":0,\"path\":\"/express\",\"icon\":\"rate\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2243}}', '2023-07-19 15:42:40', 15, 0, '', 'true', NULL, '2023-07-19 15:42:40', NULL, '2023-07-19 15:42:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6922, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递公司\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2243,\"path\":\"express\",\"icon\":\"ep:expand\",\"component\":\"order/express/index\",\"componentName\":\"Express\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2231}}', '2023-07-19 15:43:07', 17, 0, '', 'true', NULL, '2023-07-19 15:43:07', NULL, '2023-07-19 15:43:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6923, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"本地磁盘\",\"remark\":\"测试下本地存储\",\"id\":5,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yshop/file_test\",\"domain\":\"http://127.0.0.1:48080\"}}}', '2023-07-19 15:46:06', 86, 0, '', 'true', NULL, '2023-07-19 15:46:06', NULL, '2023-07-19 15:46:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6924, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"快递鸟配置\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2243,\"path\":\"set\",\"icon\":\"ep:setting\",\"component\":\"order/express/ExpressSet\",\"componentName\":\"set\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-07-19 16:09:26', 25, 0, '', '2244', NULL, '2023-07-19 16:09:26', NULL, '2023-07-19 16:09:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6925, '', 1, 2, '管理后台 - 快递公司', '获得快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":null,\"reqURL\":null,\"ebusinessID\":null}}', '2023-07-19 17:22:16', 12, 0, '', 'true', NULL, '2023-07-19 17:22:16', NULL, '2023-07-19 17:22:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6926, '', 1, 2, '管理后台 - 快递公司', '获得快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":null,\"reqURL\":null,\"ebusinessID\":null}}', '2023-07-19 17:24:47', 1, 0, '', 'true', NULL, '2023-07-19 17:24:47', NULL, '2023-07-19 17:24:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6927, '', 1, 2, '管理后台 - 快递公司', '获得快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":null,\"reqURL\":null,\"ebusinessID\":null}}', '2023-07-19 17:30:23', 1, 0, '', 'true', NULL, '2023-07-19 17:30:23', NULL, '2023-07-19 17:30:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6928, '', 1, 2, '管理后台 - 快递公司', '获得快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":\"1\",\"reqURL\":null,\"ebusinessID\":\"1\"}}', '2023-07-19 17:32:07', 26, 0, '', 'true', NULL, '2023-07-19 17:32:07', NULL, '2023-07-19 17:32:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6929, '', 1, 2, '管理后台 - 快递公司', '获得快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":\"81f43a2e-f504-45c4-9b54-2637d59f8190\",\"reqURL\":null,\"ebusinessID\":\"1607734\"}}', '2023-07-19 17:32:40', 1, 0, '', 'true', NULL, '2023-07-19 17:32:40', NULL, '2023-07-19 17:32:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6930, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_electronics_order\"]}}', '2023-07-20 17:46:32', 265, 0, '', '[164]', NULL, '2023-07-20 17:46:33', NULL, '2023-07-20 17:46:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6931, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_electronics_order\",\"tableComment\":\"电子面单\",\"remark\":null,\"moduleName\":\"express\",\"businessName\":\"electronicsorder\",\"className\":\"ElectronicsOrder\",\"classComment\":\"电子面单\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2243,\"id\":164,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":164,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"主键id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"4751\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2192},{\"tableId\":164,\"columnName\":\"shipper_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"快递公司id\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Integer\",\"javaField\":\"shipperId\",\"dictType\":\"\",\"example\":\"13715\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2193},{\"tableId\":164,\"columnName\":\"paytype\",\"dataType\":\"BIT\",\"columnComment\":\"运费支付方式:1=现付,2=到付,3=月结,4=第三方付(仅SF支持)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Boolean\",\"javaField\":\"paytype\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2194},{\"tableId\":164,\"columnName\":\"customer_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"线下网点客户号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"customerName\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2195},{\"tableId\":164,\"columnName\":\"customer_pwd\",\"dataType\":\"VARCHAR\",\"columnComment\":\"线下网点密码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"customerPwd\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2196},{\"tableId\":164,\"columnName\":\"send_site\",\"dataType\":\"VARCHAR\",\"columnComment\":\"网点名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"sendSite\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2197},{\"tableId\":164,\"columnName\":\"send_staff\",\"dataType\":\"VARCHAR\",\"columnComment\":\"网点快递员\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"sendStaff\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2198},{\"tableId\":164,\"columnName\":\"month_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"月结编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"monthCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2199},{\"tableId\":164,\"columnName\":\"is_notice\",\"dataType\":\"BIT\",\"columnComment\":\"是否通知揽件:0=通知揽件,1=不通知揽件\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"isNotice\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2200},{\"tableId\":164,\"columnName\":\"is_return_temp\",\"dataType\":\"BIT\",\"columnComment\":\"是否返回电子面单模板:0=不返回,1=返回\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"isReturnTemp\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2201},{\"tableId\":164,\"columnName\":\"is_send_message\",\"dataType\":\"BIT\",\"columnComment\":\"是否需要短信提醒:0=否,1=是\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"isSendMessage\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2202},{\"tableId\":164,\"columnName\":\"template_size\",\"dataType\":\"VARCHAR\",\"columnComment\":\"模板尺寸\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"templateSize\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2203},{\"tableId\":164,\"columnName\":\"operate_require\",\"dataType\":\"VARCHAR\",\"columnComment\":\"签回单操作要求(如:签名、盖章、身份证复印件等)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"operateRequire\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2204},{\"tableId\":164,\"columnName\":\"logistic_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递单号(仅宅急送可用)\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"logisticCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2205},{\"tableId\":164,\"columnName\":\"start_date\",\"dataType\":\"INTEGER\",\"columnComment\":\"上门揽件开始时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"startDate\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2206},{\"tableId\":164,\"columnName\":\"end_date\",\"dataType\":\"INTEGER\",\"columnComment\":\"上门揽件结束时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"endDate\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2207},{\"tableId\":164,\"columnName\":\"remark\",\"dataType\":\"VARCHAR\",\"columnComment\":\"备注\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"String\",\"javaField\":\"remark\",\"dictType\":\"\",\"example\":\"你猜\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2208},{\"tableId\":164,\"columnName\":\"exp_type\",\"dataType\":\"BIT\",\"columnComment\":\"快递类型:1=标准快件\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Boolean\",\"javaField\":\"expType\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2209},{\"tableId\":164,\"columnName\":\"is_return_sign_bill\",\"dataType\":\"BIT\",\"columnComment\":\"是否要签回单:0=否,1=是\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"Boolean\",\"javaField\":\"isReturnSignBill\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2210},{\"tableId\":164,\"columnName\":\"company\",\"dataType\":\"VARCHAR\",\"columnComment\":...', '2023-07-20 17:47:48', 136, 0, '', 'true', NULL, '2023-07-20 17:47:48', NULL, '2023-07-20 17:47:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6932, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2243,\"path\":\"electronics-order\",\"icon\":\"ep:help\",\"component\":\"order/electronicsOrder/index\",\"componentName\":\"ElectronicsOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2245}}', '2023-07-20 18:14:09', 70, 0, '', 'true', NULL, '2023-07-20 18:14:09', NULL, '2023-07-20 18:14:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6933, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2243,\"path\":\"electronics-order\",\"icon\":\"ep:help\",\"component\":\"order/electronicsOrder/index\",\"componentName\":\"ElectronicsOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2245}}', '2023-07-20 18:14:34', 16, 0, '', 'true', NULL, '2023-07-20 18:14:34', NULL, '2023-07-20 18:14:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6934, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2243,\"path\":\"electronics-order\",\"icon\":\"ep:help\",\"component\":\"order/electronicsOrder/index\",\"componentName\":\"ElectronicsOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2245}}', '2023-07-20 18:15:05', 16, 0, '', 'true', NULL, '2023-07-20 18:15:05', NULL, '2023-07-20 18:15:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6935, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2243,\"path\":\"electronics-order\",\"icon\":\"ep:help\",\"component\":\"order/electronicsOrder/index\",\"componentName\":\"ElectronicsOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2245}}', '2023-07-20 18:15:14', 13, 0, '', 'true', NULL, '2023-07-20 18:15:14', NULL, '2023-07-20 18:15:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6936, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递公司\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2243,\"path\":\"express\",\"icon\":\"ep:expand\",\"component\":\"order/express/index\",\"componentName\":\"Express\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2231}}', '2023-07-20 18:15:51', 14, 0, '', 'true', NULL, '2023-07-20 18:15:52', NULL, '2023-07-20 18:15:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6937, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2243,\"path\":\"electronics-order\",\"icon\":\"ep:help\",\"component\":\"order/electronicsOrder/index\",\"componentName\":\"ElectronicsOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2245}}', '2023-07-20 18:16:03', 14, 0, '', 'true', NULL, '2023-07-20 18:16:03', NULL, '2023-07-20 18:16:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6938, '', 1, 2, '管理后台 - 电子面单', '创建电子面单', 2, '', '', 'POST', '/admin-api/express/electronics-order/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.electronicsorder.ElectronicsOrderController.createElectronicsOrder(ElectronicsOrderCreateReqVO)', '{\"createReqVO\":{\"shipperId\":436,\"paytype\":3,\"customerName\":null,\"customerPwd\":null,\"sendSite\":null,\"sendStaff\":null,\"monthCode\":null,\"isNotice\":0,\"isReturnTemp\":0,\"isSendMessage\":0,\"templateSize\":null,\"operateRequire\":null,\"logisticCode\":null,\"startDate\":null,\"endDate\":null,\"remark\":null,\"expType\":1,\"isReturnSignBill\":0,\"company\":\"大有前途\",\"provinceName\":\"河南省\",\"cityName\":\"漯河市\",\"expAreaName\":\"源汇区\",\"address\":\"交通567号\",\"name\":\"胡先生\",\"tel\":\"18000000000\",\"mobile\":\"18000000000\",\"postCode\":\"56000\",\"title\":\"圆通面单01\"}}', '2023-07-21 10:30:36', 78, 0, '', '2', NULL, '2023-07-21 10:30:36', NULL, '2023-07-21 10:30:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6939, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_order_electronics\"]}}', '2023-07-22 16:42:14', 208, 0, '', '[165]', NULL, '2023-07-22 16:42:14', NULL, '2023-07-22 16:42:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6940, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_order_electronics\",\"tableComment\":\"订单电子面单记录\",\"remark\":null,\"moduleName\":\"order\",\"businessName\":\"storeorderelectronics\",\"className\":\"StoreOrderElectronics\",\"classComment\":\"订单电子面单记录\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2175,\"id\":165,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":165,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"主键id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"21777\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2226},{\"tableId\":165,\"columnName\":\"order_sn\",\"dataType\":\"VARCHAR\",\"columnComment\":\"订单编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"orderSn\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2227},{\"tableId\":165,\"columnName\":\"print_template\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"模板\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"printTemplate\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2228},{\"tableId\":165,\"columnName\":\"kdn_order_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"KDNOrderCode\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"kdnOrderCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2229},{\"tableId\":165,\"columnName\":\"logistic_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"物流单号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"logisticCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2230},{\"tableId\":165,\"columnName\":\"shipper_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递编号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"shipperCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2231},{\"tableId\":165,\"columnName\":\"order\",\"dataType\":\"VARCHAR\",\"columnComment\":\"接口返回的json\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"order\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2232},{\"tableId\":165,\"columnName\":\"customer_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"线下网点客户号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"customerName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2233},{\"tableId\":165,\"columnName\":\"customer_pwd\",\"dataType\":\"VARCHAR\",\"columnComment\":\"线下网点密码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"customerPwd\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2234},{\"tableId\":165,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"状态:0=正常,1=已取消\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2235},{\"tableId\":165,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2236},{\"tableId\":165,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2237},{\"tableId\":165,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2238},{\"tableId\":165,\"columnName\":\"updater\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"LocalDateTime\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2239},{\"tableId\":165,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2240}]}}', '2023-07-22 17:29:35', 69, 0, '', 'true', NULL, '2023-07-22 17:29:35', NULL, '2023-07-22 17:29:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6941, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单记录\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2175,\"path\":\"store-order-electronics\",\"icon\":\"ep:list\",\"component\":\"order/storeOrderElectronics/index\",\"componentName\":\"StoreOrderElectronics\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2251}}', '2023-07-22 22:07:49', 50, 0, '', 'true', NULL, '2023-07-22 22:07:49', NULL, '2023-07-22 22:07:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6942, '', 1, 2, '管理后台 - 商品品牌', '删除品牌', 4, '', '', 'DELETE', '/admin-api/product/brand/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.brand.ProductBrandController.deleteBrand(Long)', '{\"id\":1}', '2023-07-24 10:10:58', 67, 0, '', 'true', NULL, '2023-07-24 10:10:59', NULL, '2023-07-24 10:10:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6943, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:11:49', 6, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:11:49', NULL, '2023-07-24 10:11:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6944, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":0,\"name\":\"电脑办公\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"sort\":1,\"description\":\"1234\",\"status\":0,\"id\":1}}', '2023-07-24 10:13:20', 25, 0, '', 'true', NULL, '2023-07-24 10:13:20', NULL, '2023-07-24 10:13:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6945, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":1,\"name\":\"笔记本\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"sort\":1,\"description\":\"

测试一下

\",\"status\":0,\"id\":2}}', '2023-07-24 10:13:33', 13, 0, '', 'true', NULL, '2023-07-24 10:13:33', NULL, '2023-07-24 10:13:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6946, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":1,\"name\":\"游戏本\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"sort\":2,\"description\":\"

测试一下

\",\"status\":0,\"id\":3}}', '2023-07-24 10:13:43', 26, 0, '', 'true', NULL, '2023-07-24 10:13:43', NULL, '2023-07-24 10:13:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6947, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:18:45', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:18:45', NULL, '2023-07-24 10:18:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6948, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 10:18:52', 178, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 10:18:52', NULL, '2023-07-24 10:18:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6949, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 10:22:42', 52, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 10:22:42', NULL, '2023-07-24 10:22:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6950, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 10:24:57', 26, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 10:24:57', NULL, '2023-07-24 10:24:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6951, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:25:55', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:25:55', NULL, '2023-07-24 10:25:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6952, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:26:33', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:26:33', NULL, '2023-07-24 10:26:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6953, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:26:57', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:26:57', NULL, '2023-07-24 10:26:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6954, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:27:19', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:27:19', NULL, '2023-07-24 10:27:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6955, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:27:48', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:27:48', NULL, '2023-07-24 10:27:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6956, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:33:37', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:33:37', NULL, '2023-07-24 10:33:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6957, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:34:06', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:34:06', NULL, '2023-07-24 10:34:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6958, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:34:43', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:34:43', NULL, '2023-07-24 10:34:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6959, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:35:04', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:35:04', NULL, '2023-07-24 10:35:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6960, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:41:27', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:41:27', NULL, '2023-07-24 10:41:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6961, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:41:59', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:41:59', NULL, '2023-07-24 10:41:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6962, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:42:52', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:42:52', NULL, '2023-07-24 10:42:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6963, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:43:21', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:43:21', NULL, '2023-07-24 10:43:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6964, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:45:09', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:45:09', NULL, '2023-07-24 10:45:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6965, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:45:43', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:45:43', NULL, '2023-07-24 10:45:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6966, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:51:42', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:51:42', NULL, '2023-07-24 10:51:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6967, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:52:10', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:52:10', NULL, '2023-07-24 10:52:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6968, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 10:53:06', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 10:53:06', NULL, '2023-07-24 10:53:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6969, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 11:30:44', 6, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 11:30:44', NULL, '2023-07-24 11:30:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6970, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 11:31:16', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 11:31:16', NULL, '2023-07-24 11:31:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6971, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 11:41:29', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 11:41:29', NULL, '2023-07-24 11:41:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6972, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":17,\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"keyword\":\"邮费的商品\",\"price\":2.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":99,\"description\":\"

邮费的商品

\",\"cost\":10.0,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":null,\"brokerage\":0.0,\"price\":2.0,\"cost\":10.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"规格\",\"value2\":null,\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":100.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\"],\"store_name\":\"设置运费模板邮费的商品\",\"store_info\":\"邮费的商品\",\"bar_code\":\"\",\"cate_id\":\"2\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":0}}', '2023-07-24 11:41:43', 570, 0, '', 'true', NULL, '2023-07-24 11:41:44', NULL, '2023-07-24 11:41:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6973, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 11:41:46', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 11:41:46', NULL, '2023-07-24 11:41:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6974, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:31:04', 4, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:31:04', NULL, '2023-07-24 12:31:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6975, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:32:37', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:32:37', NULL, '2023-07-24 12:32:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6976, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:34:25', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:34:25', NULL, '2023-07-24 12:34:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6977, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:35:03', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:35:03', NULL, '2023-07-24 12:35:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6978, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:36:06', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:36:06', NULL, '2023-07-24 12:36:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6979, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 12:36:45', 49, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 12:36:45', NULL, '2023-07-24 12:36:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6980, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-07-24 12:36:49', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:36:49', NULL, '2023-07-24 12:36:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6981, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 12:37:46', 41, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 12:37:46', NULL, '2023-07-24 12:37:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6982, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:40:06', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:40:06', NULL, '2023-07-24 12:40:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6983, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:40:08', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:40:08', NULL, '2023-07-24 12:40:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6984, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:40:21', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:40:21', NULL, '2023-07-24 12:40:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6985, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:40:54', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:40:54', NULL, '2023-07-24 12:40:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6986, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:43:04', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:43:04', NULL, '2023-07-24 12:43:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6987, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:46:50', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:46:50', NULL, '2023-07-24 12:46:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6988, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:48:26', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:48:26', NULL, '2023-07-24 12:48:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6989, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:49:46', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:49:46', NULL, '2023-07-24 12:49:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6990, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:50:49', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:50:49', NULL, '2023-07-24 12:50:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6991, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:51:34', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:51:34', NULL, '2023-07-24 12:51:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6992, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:51:59', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:51:59', NULL, '2023-07-24 12:51:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6993, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:52:51', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:52:51', NULL, '2023-07-24 12:52:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6994, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:53:06', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:53:06', NULL, '2023-07-24 12:53:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6995, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:53:41', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:53:41', NULL, '2023-07-24 12:53:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6996, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:54:04', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:54:04', NULL, '2023-07-24 12:54:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6997, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 12:55:08', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 12:55:08', NULL, '2023-07-24 12:55:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6998, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:00:34', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:00:34', NULL, '2023-07-24 13:00:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (6999, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:01:42', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:01:42', NULL, '2023-07-24 13:01:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7000, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:03:17', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:03:17', NULL, '2023-07-24 13:03:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7001, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:07:06', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:07:06', NULL, '2023-07-24 13:07:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7002, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:07:54', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:07:54', NULL, '2023-07-24 13:07:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7003, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:09:55', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:09:55', NULL, '2023-07-24 13:09:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7004, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:11:17', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:11:17', NULL, '2023-07-24 13:11:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7005, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:12:43', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:12:43', NULL, '2023-07-24 13:12:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7006, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:13:17', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:13:17', NULL, '2023-07-24 13:13:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7007, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:14:08', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:14:08', NULL, '2023-07-24 13:14:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7008, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:14:44', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:14:44', NULL, '2023-07-24 13:14:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7009, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:15:11', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:15:11', NULL, '2023-07-24 13:15:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7010, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:17:33', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:17:33', NULL, '2023-07-24 13:17:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7011, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:18:19', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:18:19', NULL, '2023-07-24 13:18:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7012, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:21:43', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:21:43', NULL, '2023-07-24 13:21:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7013, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:28:36', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:28:36', NULL, '2023-07-24 13:28:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7014, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:29:20', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:29:20', NULL, '2023-07-24 13:29:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7015, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:30:15', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:30:15', NULL, '2023-07-24 13:30:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7016, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:30:36', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:30:36', NULL, '2023-07-24 13:30:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7017, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:30:42', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:30:42', NULL, '2023-07-24 13:30:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7018, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:31:23', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:31:23', NULL, '2023-07-24 13:31:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7019, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"parentId\":0,\"name\":\"电脑办公\",\"picUrl\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"sort\":1,\"description\":\"1234\",\"status\":0,\"id\":1}}', '2023-07-24 13:33:56', 57, 0, '', 'true', NULL, '2023-07-24 13:33:56', NULL, '2023-07-24 13:33:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7020, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:34:05', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:34:05', NULL, '2023-07-24 13:34:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7021, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:36:35', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:36:35', NULL, '2023-07-24 13:36:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7022, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:37:34', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:37:34', NULL, '2023-07-24 13:37:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7023, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 13:40:42', 24, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 13:40:42', NULL, '2023-07-24 13:40:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7024, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 13:45:29', 21, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 13:45:29', NULL, '2023-07-24 13:45:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7025, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-07-24 13:45:47', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-07-24 13:45:47', NULL, '2023-07-24 13:45:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7026, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 13:47:29', 21, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 13:47:29', NULL, '2023-07-24 13:47:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7027, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-07-24 13:47:39', 18, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-07-24 13:47:39', NULL, '2023-07-24 13:47:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7028, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_wechat_template\"]}}', '2023-07-25 09:37:06', 171, 0, '', '[166]', NULL, '2023-07-25 09:37:06', NULL, '2023-07-25 09:37:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7029, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"消息管理\",\"permission\":\"\",\"type\":1,\"sort\":1,\"parentId\":0,\"path\":\"/message\",\"icon\":\"ep:add-location\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-07-25 09:41:06', 14, 0, '', '2257', NULL, '2023-07-25 09:41:06', NULL, '2023-07-25 09:41:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7030, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_wechat_template\",\"tableComment\":\"微信模板\",\"remark\":null,\"moduleName\":\"message\",\"businessName\":\"wechattemplate\",\"className\":\"WechatTemplate\",\"classComment\":\"微信模板\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2257,\"id\":166,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":166,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"模板id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"8445\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2241},{\"tableId\":166,\"columnName\":\"tempkey\",\"dataType\":\"CHAR\",\"columnComment\":\"模板编号\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"tempkey\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2242},{\"tableId\":166,\"columnName\":\"name\",\"dataType\":\"CHAR\",\"columnComment\":\"模板名\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2243},{\"tableId\":166,\"columnName\":\"content\",\"dataType\":\"VARCHAR\",\"columnComment\":\"回复内容\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"content\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"editor\",\"id\":2244},{\"tableId\":166,\"columnName\":\"tempid\",\"dataType\":\"CHAR\",\"columnComment\":\"模板ID\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"tempid\",\"dictType\":\"\",\"example\":\"15656\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2245},{\"tableId\":166,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2246},{\"tableId\":166,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2247},{\"tableId\":166,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2248},{\"tableId\":166,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2249},{\"tableId\":166,\"columnName\":\"status\",\"dataType\":\"TINYINT\",\"columnComment\":\"状态\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Byte\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2250},{\"tableId\":166,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2251},{\"tableId\":166,\"columnName\":\"type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"类型:template:模板消息 subscribe:订阅消息\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2252}]}}', '2023-07-25 09:43:28', 40, 0, '', 'true', NULL, '2023-07-25 09:43:28', NULL, '2023-07-25 09:43:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7031, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"消息管理\",\"permission\":\"\",\"type\":1,\"sort\":92,\"parentId\":0,\"path\":\"/message\",\"icon\":\"rate\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2257}}', '2023-07-25 10:05:51', 41, 0, '', 'true', NULL, '2023-07-25 10:05:51', NULL, '2023-07-25 10:05:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7032, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"微信消息\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2257,\"path\":\"wechat-template\",\"icon\":\"ep:message\",\"component\":\"message/wechatTemplate/index\",\"componentName\":\"WechatTemplate\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2258}}', '2023-07-25 10:06:49', 15, 0, '', 'true', NULL, '2023-07-25 10:06:49', NULL, '2023-07-25 10:06:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7033, '', 1, 2, '管理后台 - 微信模板', '创建微信模板', 2, '', '', 'POST', '/admin-api/message/wechat-template/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.message.controller.admin.wechattemplate.WechatTemplateController.createWechatTemplate(WechatTemplateCreateReqVO)', '{\"createReqVO\":{\"tempkey\":\"pay_success\",\"name\":\"订单支付成功通知\",\"content\":null,\"tempid\":\"W5r2c2kzhbq8uxStkPAVx_sk-5aapMFCqe7b7KU5jXI\",\"status\":1,\"type\":\"subscribe\"}}', '2023-07-25 10:41:17', 50, 0, '', '16', NULL, '2023-07-25 10:41:17', NULL, '2023-07-25 10:41:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7034, '', 1, 2, '管理后台 - 微信模板', '创建微信模板', 2, '', '', 'POST', '/admin-api/message/wechat-template/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.message.controller.admin.wechattemplate.WechatTemplateController.createWechatTemplate(WechatTemplateCreateReqVO)', '{\"createReqVO\":{\"tempkey\":\"pay_success\",\"name\":\"订单支付成功通知\",\"content\":null,\"tempid\":\"r6PWTcAOQodoyz0GT_0NCoFxssBT4ZB7AJqVdTdRvfA\",\"status\":1,\"type\":\"template\"}}', '2023-07-25 10:43:14', 4, 0, '', '17', NULL, '2023-07-25 10:43:14', NULL, '2023-07-25 10:43:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7035, '', 1, 2, '管理后台 - 通知公告', '修改通知公告', 3, '', '', 'PUT', '/admin-api/system/notice/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.updateNotice(NoticeUpdateReqVO)', '{\"reqVO\":{\"title\":\"YSHOP-PRO 预售开始啦\",\"type\":1,\"content\":\"

哈哈哈哈123

\",\"status\":0,\"id\":4}}', '2023-07-26 14:29:42', 22, 0, '', 'true', NULL, '2023-07-26 14:29:42', NULL, '2023-07-26 14:29:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7036, '', 1, 2, '管理后台 - 通知公告', '修改通知公告', 3, '', '', 'PUT', '/admin-api/system/notice/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.updateNotice(NoticeUpdateReqVO)', '{\"reqVO\":{\"title\":\"618最后三天,你还不来\",\"type\":2,\"content\":\"

维护内容

\",\"status\":1,\"id\":2}}', '2023-07-26 14:30:13', 8, 0, '', 'true', NULL, '2023-07-26 14:30:13', NULL, '2023-07-26 14:30:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7037, '', 1, 2, '管理后台 - 通知公告', '修改通知公告', 3, '', '', 'PUT', '/admin-api/system/notice/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.notice.NoticeController.updateNotice(NoticeUpdateReqVO)', '{\"reqVO\":{\"title\":\"B2C单商户微服务-统计报表功能正式发布!\",\"type\":1,\"content\":\"

新版本内容133

\",\"status\":0,\"id\":1}}', '2023-07-26 14:30:37', 9, 0, '', 'true', NULL, '2023-07-26 14:30:37', NULL, '2023-07-26 14:30:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7038, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"aliPay\",\"appid\":\"2016080400165436\",\"mchId\":\"2088102169916436\",\"certStoreType\":null,\"keyPrivate\":\"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKroe/8h5vC4L6T+B2WdXiVwGsMvUKgb2XsKix6VY3m2wcf6tyzpNRDCNykbIwGtaeo7FshN+qZxdXHLiIam9goYncBit/8ojfLGy2gLxO/PXfzGxYGs0KsDZ+ryVPPmE34ZZ8jiJpR0ygzCFl8pN3QJPJRGTJn5+FTT9EF/9zyZAgMBAAECgYAktngcYC35u7cQXDk+jMVyiVhWYU2ULxdSpPspgLGzrZyG1saOcTIi/XVX8Spd6+B6nmLQeF/FbU3rOeuD8U2clzul2Z2YMbJ0FYay9oVZFfp5gTEFpFRTVfzqUaZQBIjJe/xHL9kQVqc5xHlE/LVA27/Kx3dbC35Y7B4EVBDYAQJBAOhsX8ZreWLKPhXiXHTyLmNKhOHJc+0tFH7Ktise/0rNspojU7o9prOatKpNylp9v6kux7migcMRdVUWWiVe+4ECQQC8PqsuEz7B0yqirQchRg1DbHjh64bw9Kj82EN1/NzOUd53tP9tg+SO97EzsibK1F7tOcuwqsa7n2aY48mQ+y0ZAkBndA2xcRcnvOOjtAz5VO8G7R12rse181HjGfG6AeMadbKg30aeaGCyIxN1loiSfNR5xsPJwibGIBg81mUrqzqBAkB+K6rkaPXJR9XtzvdWb/N3235yPkDlw7Z4MiOVM3RzvR/VMDV7m8lXoeDde2zQyeMOMYy6ztwA6WgE1bhGOnQRAkEAouUBv1sVdSBlsexX15qphOmAevzYrpufKgJIRLFWQxroXMS7FTesj+f+FmGrpPCxIde1dqJ8lqYLTyJmbzMPYw==\",\"keyPublic\":\"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA\",\"seller\":\"2088102169916436\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"1\"}}', '2023-07-27 18:20:08', 29, 0, '', 'true', NULL, '2023-07-27 18:20:08', NULL, '2023-07-27 18:20:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7039, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-07-27 18:35:48', 702, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"', NULL, '2023-07-27 18:35:48', NULL, '2023-07-27 18:35:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7040, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"iphone08.jpeg\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"}}', '2023-07-27 18:35:48', 6, 0, '', '16', NULL, '2023-07-27 18:35:48', NULL, '2023-07-27 18:35:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7041, '', 1, 2, '管理后台 - 定时任务', '删除定时任务', 4, '', '', 'DELETE', '/admin-api/infra/job/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.job.JobController.deleteJob(Long)', '{\"id\":5}', '2023-07-27 18:45:49', 279, 0, '', 'true', NULL, '2023-07-27 18:45:49', NULL, '2023-07-27 18:45:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7042, '', 1, 2, '管理后台 - 字典数据', '删除字典数据', 4, '', '', 'DELETE', '/admin-api/system/dict-data/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.dict.DictDataController.deleteDictData(Long)', '{\"id\":1234}', '2023-07-31 09:28:27', 100, 0, '', 'true', NULL, '2023-07-31 09:28:27', NULL, '2023-07-31 09:28:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7043, '', 1, 2, '管理后台 - 字典数据', '删除字典数据', 4, '', '', 'DELETE', '/admin-api/system/dict-data/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.dict.DictDataController.deleteDictData(Long)', '{\"id\":1231}', '2023-07-31 09:28:37', 5, 0, '', 'true', NULL, '2023-07-31 09:28:37', NULL, '2023-07-31 09:28:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7044, '', 1, 2, '管理后台 - 字典数据', '删除字典数据', 4, '', '', 'DELETE', '/admin-api/system/dict-data/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.dict.DictDataController.deleteDictData(Long)', '{\"id\":1233}', '2023-07-31 09:29:37', 5, 0, '', 'true', NULL, '2023-07-31 09:29:37', NULL, '2023-07-31 09:29:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7045, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":null,\"id\":11,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2023-07-31 09:37:45', 151, 0, '', 'true', NULL, '2023-07-31 09:37:45', NULL, '2023-07-31 09:37:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7046, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":\"\",\"id\":17,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2023-07-31 09:38:14', 8, 0, '', 'true', NULL, '2023-07-31 09:38:14', NULL, '2023-07-31 09:38:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7047, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":\"\",\"id\":15,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2023-07-31 09:38:31', 8, 0, '', 'true', NULL, '2023-07-31 09:38:31', NULL, '2023-07-31 09:38:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7048, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":\"\",\"id\":16,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://img.yixiang.co\",\"bucket\":\"yshop-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2023-07-31 09:38:53', 5, 0, '', 'true', NULL, '2023-07-31 09:38:53', NULL, '2023-07-31 09:38:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7049, '', 1, 2, '管理后台 - 短信渠道', '更新短信渠道', 3, '', '', 'PUT', '/admin-api/system/sms-channel/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.sms.SmsChannelController.updateSmsChannel(SmsChannelUpdateReqVO)', '{\"updateReqVO\":{\"signature\":\"yshop\",\"status\":0,\"remark\":\"啦啦啦\",\"apiKey\":\"LTAI5tCnKso2uG3kJ5gRav88\",\"apiSecret\":\"fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C\",\"callbackUrl\":null,\"id\":2}}', '2023-07-31 10:10:34', 21, 0, '', 'true', NULL, '2023-07-31 10:10:34', NULL, '2023-07-31 10:10:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7050, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_store_shop\"]}}', '2023-08-03 14:35:03', 105, 0, '', '[167]', NULL, '2023-08-03 14:35:03', NULL, '2023-08-03 14:35:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7051, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_store_shop\",\"tableComment\":\"门店管理\",\"remark\":null,\"moduleName\":\"store\",\"businessName\":\"storeshop\",\"className\":\"StoreShop\",\"classComment\":\"门店管理\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":167,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":167,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"25450\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2253},{\"tableId\":167,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"李四\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2254},{\"tableId\":167,\"columnName\":\"mobile\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺电话\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"mobile\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2255},{\"tableId\":167,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2256},{\"tableId\":167,\"columnName\":\"images\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"多张图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"images\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2257},{\"tableId\":167,\"columnName\":\"address\",\"dataType\":\"VARCHAR\",\"columnComment\":\"详细地址\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"address\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2258},{\"tableId\":167,\"columnName\":\"address_map\",\"dataType\":\"VARCHAR\",\"columnComment\":\"地图定位地址\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"addressMap\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2259},{\"tableId\":167,\"columnName\":\"starttime\",\"dataType\":\"INTEGER\",\"columnComment\":\"营业开始时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Integer\",\"javaField\":\"starttime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2260},{\"tableId\":167,\"columnName\":\"endtime\",\"dataType\":\"INTEGER\",\"columnComment\":\"营业结束时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"endtime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2261},{\"tableId\":167,\"columnName\":\"lng\",\"dataType\":\"VARCHAR\",\"columnComment\":\"经度\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"lng\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2262},{\"tableId\":167,\"columnName\":\"lat\",\"dataType\":\"VARCHAR\",\"columnComment\":\"纬度\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"lat\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2263},{\"tableId\":167,\"columnName\":\"distance\",\"dataType\":\"INTEGER\",\"columnComment\":\"外卖配送距离,单位为千米。0表示不送外卖\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Integer\",\"javaField\":\"distance\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2264},{\"tableId\":167,\"columnName\":\"min_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"起送价钱\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"BigDecimal\",\"javaField\":\"minPrice\",\"dictType\":\"\",\"example\":\"15157\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2265},{\"tableId\":167,\"columnName\":\"delivery_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"配送价格\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"BigDecimal\",\"javaField\":\"deliveryPrice\",\"dictType\":\"\",\"example\":\"11771\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2266},{\"tableId\":167,\"columnName\":\"notice\",\"dataType\":\"VARCHAR\",\"columnComment\":\"公告\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"notice\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2267},{\"tableId\":167,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"是否营业:0=否,1=是\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2268},{\"tableId\":167,\"columnName\":\"admin_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"管理员id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"String\",\"javaField\":\"adminId\",\"dictType\":\"\",\"example\":\"22251\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2269},{\"tableId\":167,\"columnName\":\"uniprint_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"打印机id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"String\",\"javaField\":\"uniprintId\",\"dictType\":\"\",\"example\":\"5596\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2270},{\"tableId\":167,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2271},{\"tableId\":167,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"c...', '2023-08-03 14:41:11', 62, 0, '', 'true', NULL, '2023-08-03 14:41:11', NULL, '2023-08-03 14:41:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7052, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,同步数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/sync-from-db', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.syncCodegenFromDB(Long)', '{\"tableId\":167}', '2023-08-03 14:59:56', 55, 0, '', 'true', NULL, '2023-08-03 14:59:56', NULL, '2023-08-03 14:59:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7053, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"门店管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"shop\",\"icon\":\"ep:briefcase\",\"component\":\"/mall/store/shop/index\",\"componentName\":\"StoreShop\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2264}}', '2023-08-03 15:10:33', 39, 0, '', 'true', NULL, '2023-08-03 15:10:33', NULL, '2023-08-03 15:10:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7054, '', 1, 2, '管理后台 - 用户', '修改用户状态', 3, '', '', 'PUT', '/admin-api/system/user/update-status', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.user.UserController.updateUserStatus(UserUpdateStatusReqVO)', '{\"reqVO\":{\"id\":100,\"status\":0}}', '2023-08-06 10:11:13', 28, 0, '', 'true', NULL, '2023-08-06 10:11:13', NULL, '2023-08-06 10:11:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7055, '', 1, 2, '管理后台 - 门店管理', '创建门店管理', 2, '', '', 'POST', '/admin-api/store/shop/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.createShop(StoreShopCreateReqVO)', '{\"createReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":0,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"1\",\"100\"],\"uniprintId\":\"1\",\"startTime\":0,\"endTime\":0}}', '2023-08-06 11:48:43', 80, 0, '', '2', NULL, '2023-08-06 11:48:43', NULL, '2023-08-06 11:48:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7056, '', 1, 2, '管理后台 - 门店管理', '创建门店管理', 2, '', '', 'POST', '/admin-api/store/shop/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.createShop(StoreShopCreateReqVO)', '{\"createReqVO\":{\"name\":\"yshop\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"images\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\"],\"address\":\"67号\",\"addressMap\":\"北京市东城区\",\"lng\":\"116.40403593222032\",\"lat\":\"39.91643892263258\",\"distance\":0,\"minPrice\":1,\"deliveryPrice\":2,\"notice\":\"2222\",\"status\":1,\"adminId\":[\"100\"],\"uniprintId\":\"2\",\"startTime\":0,\"endTime\":0}}', '2023-08-06 13:14:53', 29, 0, '', '3', NULL, '2023-08-06 13:14:53', NULL, '2023-08-06 13:14:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7057, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"yshop\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"images\":[\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\"],\"address\":\"67号\",\"addressMap\":\"北京市东城区\",\"lng\":\"116.40403593222032\",\"lat\":\"39.91643892263258\",\"distance\":0,\"minPrice\":1,\"deliveryPrice\":2,\"notice\":\"2222\",\"status\":1,\"adminId\":[\"100\"],\"uniprintId\":\"2\",\"startTime\":1691300102000,\"endTime\":1691307302000,\"id\":3}}', '2023-08-06 13:35:22', 42, 0, '', 'true', NULL, '2023-08-06 13:35:22', NULL, '2023-08-06 13:35:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7058, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_shop_ads\"]}}', '2023-08-06 16:37:45', 149, 0, '', '[168]', NULL, '2023-08-06 16:37:45', NULL, '2023-08-06 16:37:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7059, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_shop_ads\",\"tableComment\":\"广告图管理\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"shopads\",\"className\":\"ShopAds\",\"classComment\":\"广告图管理\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":168,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":168,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"24753\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2278},{\"tableId\":168,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图片\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2279},{\"tableId\":168,\"columnName\":\"switch\",\"dataType\":\"BIT\",\"columnComment\":\"是否显现\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Boolean\",\"javaField\":\"switch\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2280},{\"tableId\":168,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2281},{\"tableId\":168,\"columnName\":\"shop_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"所支持的店铺id用\',\'区分,0代表全部\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"shopId\",\"dictType\":\"\",\"example\":\"2901\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2282},{\"tableId\":168,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2283},{\"tableId\":168,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2284},{\"tableId\":168,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2285},{\"tableId\":168,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2286},{\"tableId\":168,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2287}]}}', '2023-08-06 16:51:14', 100, 0, '', 'true', NULL, '2023-08-06 16:51:14', NULL, '2023-08-06 16:51:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7060, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_service\"]}}', '2023-08-06 17:03:51', 69, 0, '', '[169]', NULL, '2023-08-06 17:03:51', NULL, '2023-08-06 17:03:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7061, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_service\",\"tableComment\":\"我的服务\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"service\",\"className\":\"Service\",\"classComment\":\"我的服务\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":169,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":169,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"6335\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2288},{\"tableId\":169,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"标题\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"张三\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2289},{\"tableId\":169,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图标\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2290},{\"tableId\":169,\"columnName\":\"type\",\"dataType\":\"VARCHAR\",\"columnComment\":\"类型:pages=页面,miniprogram=跳转小程序,menu=菜单,content=内容,call=电话\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"select\",\"id\":2291},{\"tableId\":169,\"columnName\":\"content\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"详情\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"content\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"editor\",\"id\":2292},{\"tableId\":169,\"columnName\":\"pid\",\"dataType\":\"INTEGER\",\"columnComment\":\"父级id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Integer\",\"javaField\":\"pid\",\"dictType\":\"\",\"example\":\"25371\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2293},{\"tableId\":169,\"columnName\":\"app_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"小程序app_id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"appId\",\"dictType\":\"\",\"example\":\"20728\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2294},{\"tableId\":169,\"columnName\":\"pages\",\"dataType\":\"VARCHAR\",\"columnComment\":\"页面路径\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"pages\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2295},{\"tableId\":169,\"columnName\":\"phone\",\"dataType\":\"VARCHAR\",\"columnComment\":\"电话\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"phone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2296},{\"tableId\":169,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2297},{\"tableId\":169,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"状态:0=下架,1=上架\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2298},{\"tableId\":169,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2299},{\"tableId\":169,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2300},{\"tableId\":169,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2301},{\"tableId\":169,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2302},{\"tableId\":169,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2303}]}}', '2023-08-06 17:04:15', 35, 0, '', 'true', NULL, '2023-08-06 17:04:15', NULL, '2023-08-06 17:04:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7062, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_recharge\"]}}', '2023-08-06 17:13:12', 71, 0, '', '[170]', NULL, '2023-08-06 17:13:12', NULL, '2023-08-06 17:13:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7063, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_recharge\",\"tableComment\":\"充值金额管理\",\"remark\":null,\"moduleName\":\"shop\",\"businessName\":\"recharge\",\"className\":\"Recharge\",\"classComment\":\"充值金额管理\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":170,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":170,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"27504\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2304},{\"tableId\":170,\"columnName\":\"name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"标题\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2305},{\"tableId\":170,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2306},{\"tableId\":170,\"columnName\":\"value\",\"dataType\":\"DECIMAL\",\"columnComment\":\"价值\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"BigDecimal\",\"javaField\":\"value\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2307},{\"tableId\":170,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2308},{\"tableId\":170,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"状态:1=显示,0=隐藏\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2309},{\"tableId\":170,\"columnName\":\"sell_price\",\"dataType\":\"DECIMAL\",\"columnComment\":\"销售价\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"BigDecimal\",\"javaField\":\"sellPrice\",\"dictType\":\"\",\"example\":\"13493\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2310},{\"tableId\":170,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2311},{\"tableId\":170,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2312},{\"tableId\":170,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2313},{\"tableId\":170,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2314},{\"tableId\":170,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2315}]}}', '2023-08-06 17:13:38', 26, 0, '', 'true', NULL, '2023-08-06 17:13:38', NULL, '2023-08-06 17:13:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7064, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"广告图管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2000,\"path\":\"ads\",\"icon\":\"ep:camera-filled\",\"component\":\"shop/ads/index\",\"componentName\":\"ShopAds\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2270}}', '2023-08-06 17:54:35', 49, 0, '', 'true', NULL, '2023-08-06 17:54:35', NULL, '2023-08-06 17:54:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7065, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"我的服务\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2000,\"path\":\"service\",\"icon\":\"ep:dessert\",\"component\":\"shop/service/index\",\"componentName\":\"Service\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2276}}', '2023-08-06 17:55:08', 14, 0, '', 'true', NULL, '2023-08-06 17:55:08', NULL, '2023-08-06 17:55:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7066, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"充值金额\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2000,\"path\":\"recharge\",\"icon\":\"ep:money\",\"component\":\"shop/recharge/index\",\"componentName\":\"Recharge\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2282}}', '2023-08-06 17:55:40', 12, 0, '', 'true', NULL, '2023-08-06 17:55:40', NULL, '2023-08-06 17:55:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7067, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"商品中心\",\"permission\":\"\",\"type\":1,\"sort\":4,\"parentId\":2000,\"path\":\"product\",\"icon\":\"ep:shopping-cart\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2174}}', '2023-08-06 17:55:53', 13, 0, '', 'true', NULL, '2023-08-06 17:55:53', NULL, '2023-08-06 17:55:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7068, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单中心\",\"permission\":\"\",\"type\":1,\"sort\":5,\"parentId\":2000,\"path\":\"order\",\"icon\":\"ep:list\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2175}}', '2023-08-06 17:56:04', 19, 0, '', 'true', NULL, '2023-08-06 17:56:04', NULL, '2023-08-06 17:56:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7069, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"用户中心\",\"permission\":\"\",\"type\":1,\"sort\":6,\"parentId\":2000,\"path\":\"member\",\"icon\":\"ep:user\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2176}}', '2023-08-06 17:56:14', 16, 0, '', 'true', NULL, '2023-08-06 17:56:14', NULL, '2023-08-06 17:56:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7070, '', 1, 2, '管理后台 - 广告图管理', '创建广告图管理', 2, '', '', 'POST', '/admin-api/shop/ads/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.createAds(ShopAdsCreateReqVO)', '{\"createReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":[\"0\"]}}', '2023-08-06 18:25:48', 31, 500, 'NoSuchMethodError: co.yixiang.yshop.module.shop.controller.admin.shopads.vo.ShopAdsCreateReqVO.getShopId()Ljava/lang/String;', 'null', NULL, '2023-08-06 18:25:48', NULL, '2023-08-06 18:25:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7071, '', 1, 2, '管理后台 - 广告图管理', '创建广告图管理', 2, '', '', 'POST', '/admin-api/shop/ads/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.createAds(ShopAdsCreateReqVO)', '{\"createReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":[\"0\"]}}', '2023-08-06 18:42:28', 43, 0, '', '1', NULL, '2023-08-06 18:42:28', NULL, '2023-08-06 18:42:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7072, '', 1, 2, '管理后台 - 广告图管理', '创建广告图管理', 2, '', '', 'POST', '/admin-api/shop/ads/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.createAds(ShopAdsCreateReqVO)', '{\"createReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":[\"2\"]}}', '2023-08-08 09:21:32', 50, 0, '', '2', NULL, '2023-08-08 09:21:32', NULL, '2023-08-08 09:21:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7073, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":[\"0\"],\"id\":1}}', '2023-08-08 09:23:38', 17, 0, '', 'true', NULL, '2023-08-08 09:23:38', NULL, '2023-08-08 09:23:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7074, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"积分签到\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"type\":\"pages\",\"content\":null,\"pid\":null,\"appId\":null,\"pages\":\"/\",\"phone\":null,\"weigh\":1,\"status\":1}}', '2023-08-08 11:08:21', 143, 500, 'SQLException: Field \'content\' doesn\'t have a default value', 'null', NULL, '2023-08-08 11:08:21', NULL, '2023-08-08 11:08:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7075, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"积分签到\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"type\":\"pages\",\"content\":null,\"pid\":null,\"appId\":null,\"pages\":\"/\",\"phone\":null,\"weigh\":1,\"status\":1}}', '2023-08-08 11:09:56', 5, 0, '', '20', NULL, '2023-08-08 11:09:56', NULL, '2023-08-08 11:09:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7076, '', 1, 2, '管理后台 - 充值金额管理', '创建充值金额管理', 2, '', '', 'POST', '/admin-api/shop/recharge/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.recharge.RechargeController.createRecharge(RechargeCreateReqVO)', '{\"createReqVO\":{\"name\":\"充值活动\",\"sales\":null,\"value\":100,\"weigh\":1,\"status\":1,\"sellPrice\":80}}', '2023-08-08 15:09:17', 53, 0, '', '1', NULL, '2023-08-08 15:09:17', NULL, '2023-08-08 15:09:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7077, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_coupon\",\"yshop_coupon_user\"]}}', '2023-08-08 15:17:45', 179, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-08-08 15:17:45', NULL, '2023-08-08 15:17:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7078, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_coupon\",\"yshop_coupon_user\"]}}', '2023-08-08 15:18:05', 106, 0, '', '[172,173]', NULL, '2023-08-08 15:18:06', NULL, '2023-08-08 15:18:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7079, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_coupon\",\"tableComment\":\"优惠券表\",\"remark\":null,\"moduleName\":\"coupon\",\"businessName\":\"coupon\",\"className\":\"Coupon\",\"classComment\":\"优惠券\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":172,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":172,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"1582\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2339},{\"tableId\":172,\"columnName\":\"shop_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺id,0表示通用\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"shopId\",\"dictType\":\"\",\"example\":\"8915\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2340},{\"tableId\":172,\"columnName\":\"shop_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺名称逗号隔开\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"shopName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2341},{\"tableId\":172,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"优惠券名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2342},{\"tableId\":172,\"columnName\":\"switch\",\"dataType\":\"BIT\",\"columnComment\":\"是否上架\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Boolean\",\"javaField\":\"switch\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2343},{\"tableId\":172,\"columnName\":\"least\",\"dataType\":\"DECIMAL\",\"columnComment\":\"消费多少可用\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"BigDecimal\",\"javaField\":\"least\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2344},{\"tableId\":172,\"columnName\":\"value\",\"dataType\":\"DECIMAL\",\"columnComment\":\"优惠券金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"BigDecimal\",\"javaField\":\"value\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2345},{\"tableId\":172,\"columnName\":\"start_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"开始时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"startTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2346},{\"tableId\":172,\"columnName\":\"endt_ime\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"结束时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"LocalDateTime\",\"javaField\":\"endtIme\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2347},{\"tableId\":172,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2348},{\"tableId\":172,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2349},{\"tableId\":172,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2350},{\"tableId\":172,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2351},{\"tableId\":172,\"columnName\":\"type\",\"dataType\":\"BIT\",\"columnComment\":\"可用类型:0=通用,1=自取,2=外卖\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Boolean\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2352},{\"tableId\":172,\"columnName\":\"exchange_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"兑换码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"String\",\"javaField\":\"exchangeCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2353},{\"tableId\":172,\"columnName\":\"receive\",\"dataType\":\"INTEGER\",\"columnComment\":\"已领取\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"receive\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2354},{\"tableId\":172,\"columnName\":\"distribute\",\"dataType\":\"INTEGER\",\"columnComment\":\"发行数量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Integer\",\"javaField\":\"distribute\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2355},{\"tableId\":172,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"所需积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2356},{\"tableId\":172,\"columnName\":\"instructions\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"使用说明\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"String\",\"javaField\":\"instructions\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2357},{\"tableId\":172,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"cr...', '2023-08-08 15:19:38', 64, 0, '', 'true', NULL, '2023-08-08 15:19:38', NULL, '2023-08-08 15:19:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7080, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_coupon_user\",\"tableComment\":\"用户领的优惠券\",\"remark\":null,\"moduleName\":\"coupon\",\"businessName\":\"couponuser\",\"className\":\"CouponUser\",\"classComment\":\"用户领的优惠券\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":173,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":173,\"columnName\":\"id\",\"dataType\":\"INTEGER\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Integer\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"5159\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2362},{\"tableId\":173,\"columnName\":\"shop_id\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺id,0表示通用\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"shopId\",\"dictType\":\"\",\"example\":\"32582\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2363},{\"tableId\":173,\"columnName\":\"shop_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"店铺名称逗号隔开\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"shopName\",\"dictType\":\"\",\"example\":\"yshop\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2364},{\"tableId\":173,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"优惠券名称\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2365},{\"tableId\":173,\"columnName\":\"least\",\"dataType\":\"DECIMAL\",\"columnComment\":\"消费多少可用\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"BigDecimal\",\"javaField\":\"least\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2366},{\"tableId\":173,\"columnName\":\"value\",\"dataType\":\"DECIMAL\",\"columnComment\":\"优惠券金额\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"BigDecimal\",\"javaField\":\"value\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2367},{\"tableId\":173,\"columnName\":\"starttime\",\"dataType\":\"INTEGER\",\"columnComment\":\"开始时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Integer\",\"javaField\":\"starttime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2368},{\"tableId\":173,\"columnName\":\"endtime\",\"dataType\":\"INTEGER\",\"columnComment\":\"结束时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Integer\",\"javaField\":\"endtime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2369},{\"tableId\":173,\"columnName\":\"createtime\",\"dataType\":\"INTEGER\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"createtime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2370},{\"tableId\":173,\"columnName\":\"updatetime\",\"dataType\":\"INTEGER\",\"columnComment\":\"更新时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Integer\",\"javaField\":\"updatetime\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2371},{\"tableId\":173,\"columnName\":\"type\",\"dataType\":\"BIT\",\"columnComment\":\"可用类型:0=通用,1=自取,2=外卖\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"Boolean\",\"javaField\":\"type\",\"dictType\":\"\",\"example\":\"2\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2372},{\"tableId\":173,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"消耗积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2373},{\"tableId\":173,\"columnName\":\"instructions\",\"dataType\":\"VARCHAR\",\"columnComment\":\"使用说明\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"instructions\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2374},{\"tableId\":173,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"图片\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2375},{\"tableId\":173,\"columnName\":\"user_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"userId\",\"dictType\":\"\",\"example\":\"20961\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2376},{\"tableId\":173,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"已使用:0=否,1=是\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2377},{\"tableId\":173,\"columnName\":\"coupon_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"优惠券id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"Integer\",\"javaField\":\"couponId\",\"dictType\":\"\",\"example\":\"23870\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2378},{\"tableId\":173,\"columnName\":\"exchange_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"兑换码\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"String\",\"javaField\":\"exchangeCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2379}]}}', '2023-08-08 15:22:16', 40, 0, '', 'true', NULL, '2023-08-08 15:22:17', NULL, '2023-08-08 15:22:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7081, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"优惠券管理\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2000,\"path\":\"coupon\",\"icon\":\"ep:discount\",\"component\":\"coupon//index\",\"componentName\":\"Coupon\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2288}}', '2023-08-08 16:38:03', 60, 0, '', 'true', NULL, '2023-08-08 16:38:03', NULL, '2023-08-08 16:38:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7082, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"优惠券管理\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2000,\"path\":\"coupon\",\"icon\":\"ep:discount\",\"component\":\"mall/coupon//index\",\"componentName\":\"Coupon\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2288}}', '2023-08-08 16:46:08', 16, 0, '', 'true', NULL, '2023-08-08 16:46:08', NULL, '2023-08-08 16:46:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7083, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"优惠券管理\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2000,\"path\":\"coupons\",\"icon\":\"ep:discount\",\"component\":\"mall/coupon/index\",\"componentName\":\"Coupon\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2288}}', '2023-08-08 16:48:27', 11, 0, '', 'true', NULL, '2023-08-08 16:48:27', NULL, '2023-08-08 16:48:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7084, '', 1, 2, '管理后台 - 优惠券', '创建优惠券', 2, '', '', 'POST', '/admin-api/coupon/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponCreateReqVO)', '{\"createReqVO\":{\"shopId\":[\"2\"],\"title\":\"意向优惠券\",\"isSwitch\":1,\"least\":10,\"value\":2,\"startTime\":1691510400000,\"endtIme\":1693324800000,\"weigh\":null,\"type\":0,\"exchangeCode\":\"6666\",\"receive\":null,\"distribute\":100,\"score\":null,\"instructions\":\"111\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"limit\":1}}', '2023-08-09 10:13:15', 34, 500, 'NoSuchMethodError: co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.CouponCreateReqVO.getShopId()Ljava/lang/String;', 'null', NULL, '2023-08-09 10:13:15', NULL, '2023-08-09 10:13:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7085, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":\"3\",\"shopName\":\"全部\",\"id\":1}}', '2023-08-09 11:01:34', 44, 0, '', 'true', NULL, '2023-08-09 11:01:34', NULL, '2023-08-09 11:01:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7086, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":2}}', '2023-08-09 11:01:42', 15, 0, '', 'true', NULL, '2023-08-09 11:01:42', NULL, '2023-08-09 11:01:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7087, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":2}}', '2023-08-09 11:11:36', 21, 0, '', 'true', NULL, '2023-08-09 11:11:36', NULL, '2023-08-09 11:11:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7088, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":\"2\",\"shopName\":\"yshop\",\"id\":1}}', '2023-08-09 11:11:42', 13, 0, '', 'true', NULL, '2023-08-09 11:11:42', NULL, '2023-08-09 11:11:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7089, '', 1, 2, '管理后台 - 优惠券', '创建优惠券', 2, '', '', 'POST', '/admin-api/coupon/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponCreateReqVO)', '{\"createReqVO\":{\"shopId\":\"2\",\"shopName\":null,\"title\":\"意向店铺优惠券\",\"isSwitch\":1,\"least\":100,\"value\":10,\"startTime\":1691510400000,\"endtIme\":1693411200000,\"weigh\":null,\"type\":0,\"exchangeCode\":\"666\",\"receive\":null,\"distribute\":100,\"score\":null,\"instructions\":\"111\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"limit\":1}}', '2023-08-09 11:13:12', 217, 500, 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'limit,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) VALUES ( \'2\',\n\'意向餐�\' at line 17', 'null', NULL, '2023-08-09 11:13:13', NULL, '2023-08-09 11:13:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7090, '', 1, 2, '管理后台 - 优惠券', '创建优惠券', 2, '', '', 'POST', '/admin-api/coupon/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponCreateReqVO)', '{\"createReqVO\":{\"shopId\":\"2\",\"shopName\":null,\"title\":\"意向店铺优惠券\",\"isSwitch\":1,\"least\":100,\"value\":10,\"startTime\":1691510400000,\"endtIme\":1693411200000,\"weigh\":null,\"type\":0,\"exchangeCode\":\"666\",\"receive\":null,\"distribute\":100,\"score\":null,\"instructions\":\"111\",\"image\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"limit\":1}}', '2023-08-09 11:17:09', 69, 0, '', '2', NULL, '2023-08-09 11:17:09', NULL, '2023-08-09 11:17:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7091, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_score_order\",\"yshop_score_product\"]}}', '2023-08-09 15:37:11', 71, 500, 'ServiceException: 数据库的表字段(id)注释未填写', 'null', NULL, '2023-08-09 15:37:11', NULL, '2023-08-09 15:37:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7092, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_score_order\",\"yshop_score_product\"]}}', '2023-08-09 15:38:45', 311, 0, '', '[174,175]', NULL, '2023-08-09 15:38:46', NULL, '2023-08-09 15:38:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7093, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_score_product\",\"tableComment\":\"积分产品表\",\"remark\":null,\"moduleName\":\"Score\",\"businessName\":\"scoreproduct\",\"className\":\"ScoreProduct\",\"classComment\":\"积分产品\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":175,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":175,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"8624\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2401},{\"tableId\":175,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"产品标题\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2402},{\"tableId\":175,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"主图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2403},{\"tableId\":175,\"columnName\":\"images\",\"dataType\":\"VARCHAR\",\"columnComment\":\"组图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"images\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2404},{\"tableId\":175,\"columnName\":\"desc\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"详情\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"desc\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2405},{\"tableId\":175,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"消耗积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2406},{\"tableId\":175,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2407},{\"tableId\":175,\"columnName\":\"stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"库存\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Integer\",\"javaField\":\"stock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2408},{\"tableId\":175,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销售量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2409},{\"tableId\":175,\"columnName\":\"switch\",\"dataType\":\"BIT\",\"columnComment\":\"是否上架:0=否,1=是\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"switch\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2410},{\"tableId\":175,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2411},{\"tableId\":175,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2412},{\"tableId\":175,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2413},{\"tableId\":175,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2414},{\"tableId\":175,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2415}]}}', '2023-08-09 15:40:12', 67, 0, '', 'true', NULL, '2023-08-09 15:40:12', NULL, '2023-08-09 15:40:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7094, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_score_order\",\"tableComment\":\"积分商城订单表\",\"remark\":null,\"moduleName\":\"Score\",\"businessName\":\"scoreorder\",\"className\":\"ScoreOrder\",\"classComment\":\"积分商城订单\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":174,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":174,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"19735\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2380},{\"tableId\":174,\"columnName\":\"user_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Integer\",\"javaField\":\"userId\",\"dictType\":\"\",\"example\":\"28397\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2381},{\"tableId\":174,\"columnName\":\"product_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"商品id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"31639\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2382},{\"tableId\":174,\"columnName\":\"number\",\"dataType\":\"INTEGER\",\"columnComment\":\"数量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"number\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2383},{\"tableId\":174,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"单个商品积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2384},{\"tableId\":174,\"columnName\":\"total_score\",\"dataType\":\"INTEGER\",\"columnComment\":\"总消耗积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Integer\",\"javaField\":\"totalScore\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2385},{\"tableId\":174,\"columnName\":\"ip\",\"dataType\":\"VARCHAR\",\"columnComment\":\"下单ip\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"ip\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2386},{\"tableId\":174,\"columnName\":\"express_number\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递编号\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"expressNumber\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2387},{\"tableId\":174,\"columnName\":\"express_company\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递公司\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"expressCompany\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2388},{\"tableId\":174,\"columnName\":\"customer_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"customerName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2389},{\"tableId\":174,\"columnName\":\"customer_phone\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货电话\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"customerPhone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2390},{\"tableId\":174,\"columnName\":\"customer_address\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货地址\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"customerAddress\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2391},{\"tableId\":174,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"订单状态:0=取消订单,1=正常啊\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2392},{\"tableId\":174,\"columnName\":\"have_paid\",\"dataType\":\"INTEGER\",\"columnComment\":\"已支付:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Integer\",\"javaField\":\"havePaid\",\"dictType\":\"\",\"example\":\"12822\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2393},{\"tableId\":174,\"columnName\":\"have_delivered\",\"dataType\":\"INTEGER\",\"columnComment\":\"已发货:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"haveDelivered\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2394},{\"tableId\":174,\"columnName\":\"have_received\",\"dataType\":\"INTEGER\",\"columnComment\":\"已收货:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"haveReceived\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2395},{\"tableId\":174,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2396},{\"tableId\":174,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2397},{\"tableId\":174,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2398},{\"tableId\":174,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"java...', '2023-08-09 15:40:42', 44, 0, '', 'true', NULL, '2023-08-09 15:40:42', NULL, '2023-08-09 15:40:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7095, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_score_product\",\"tableComment\":\"积分产品表\",\"remark\":null,\"moduleName\":\"score\",\"businessName\":\"scoreproduct\",\"className\":\"ScoreProduct\",\"classComment\":\"积分产品\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":175,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":175,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"8624\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2401},{\"tableId\":175,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"产品标题\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2402},{\"tableId\":175,\"columnName\":\"image\",\"dataType\":\"VARCHAR\",\"columnComment\":\"主图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"image\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"upload_image\",\"id\":2403},{\"tableId\":175,\"columnName\":\"images\",\"dataType\":\"VARCHAR\",\"columnComment\":\"组图\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"images\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2404},{\"tableId\":175,\"columnName\":\"desc\",\"dataType\":\"LONGVARCHAR\",\"columnComment\":\"详情\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"desc\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2405},{\"tableId\":175,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"消耗积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2406},{\"tableId\":175,\"columnName\":\"weigh\",\"dataType\":\"INTEGER\",\"columnComment\":\"权重\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Integer\",\"javaField\":\"weigh\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2407},{\"tableId\":175,\"columnName\":\"stock\",\"dataType\":\"INTEGER\",\"columnComment\":\"库存\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"Integer\",\"javaField\":\"stock\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2408},{\"tableId\":175,\"columnName\":\"sales\",\"dataType\":\"INTEGER\",\"columnComment\":\"销售量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Integer\",\"javaField\":\"sales\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2409},{\"tableId\":175,\"columnName\":\"switch\",\"dataType\":\"BIT\",\"columnComment\":\"是否上架:0=否,1=是\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"switch\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2410},{\"tableId\":175,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2411},{\"tableId\":175,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2412},{\"tableId\":175,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2413},{\"tableId\":175,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2414},{\"tableId\":175,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"逻辑删除\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2415}]}}', '2023-08-09 16:06:52', 34, 0, '', 'true', NULL, '2023-08-09 16:06:52', NULL, '2023-08-09 16:06:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7096, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_score_order\",\"tableComment\":\"积分商城订单表\",\"remark\":null,\"moduleName\":\"score\",\"businessName\":\"scoreorder\",\"className\":\"ScoreOrder\",\"classComment\":\"积分商城订单\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":174,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":174,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"19735\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2380},{\"tableId\":174,\"columnName\":\"user_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"用户id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"Integer\",\"javaField\":\"userId\",\"dictType\":\"\",\"example\":\"28397\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2381},{\"tableId\":174,\"columnName\":\"product_id\",\"dataType\":\"INTEGER\",\"columnComment\":\"商品id\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"Integer\",\"javaField\":\"productId\",\"dictType\":\"\",\"example\":\"31639\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2382},{\"tableId\":174,\"columnName\":\"number\",\"dataType\":\"INTEGER\",\"columnComment\":\"数量\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"Integer\",\"javaField\":\"number\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2383},{\"tableId\":174,\"columnName\":\"score\",\"dataType\":\"INTEGER\",\"columnComment\":\"单个商品积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"score\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2384},{\"tableId\":174,\"columnName\":\"total_score\",\"dataType\":\"INTEGER\",\"columnComment\":\"总消耗积分\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"Integer\",\"javaField\":\"totalScore\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2385},{\"tableId\":174,\"columnName\":\"ip\",\"dataType\":\"VARCHAR\",\"columnComment\":\"下单ip\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"ip\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2386},{\"tableId\":174,\"columnName\":\"express_number\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递编号\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"expressNumber\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2387},{\"tableId\":174,\"columnName\":\"express_company\",\"dataType\":\"VARCHAR\",\"columnComment\":\"快递公司\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"String\",\"javaField\":\"expressCompany\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2388},{\"tableId\":174,\"columnName\":\"customer_name\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"String\",\"javaField\":\"customerName\",\"dictType\":\"\",\"example\":\"王五\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2389},{\"tableId\":174,\"columnName\":\"customer_phone\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货电话\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":11,\"javaType\":\"String\",\"javaField\":\"customerPhone\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2390},{\"tableId\":174,\"columnName\":\"customer_address\",\"dataType\":\"VARCHAR\",\"columnComment\":\"收货地址\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":12,\"javaType\":\"String\",\"javaField\":\"customerAddress\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2391},{\"tableId\":174,\"columnName\":\"status\",\"dataType\":\"BIT\",\"columnComment\":\"订单状态:0=取消订单,1=正常啊\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":13,\"javaType\":\"Boolean\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":\"1\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":2392},{\"tableId\":174,\"columnName\":\"have_paid\",\"dataType\":\"INTEGER\",\"columnComment\":\"已支付:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":14,\"javaType\":\"Integer\",\"javaField\":\"havePaid\",\"dictType\":\"\",\"example\":\"12822\",\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2393},{\"tableId\":174,\"columnName\":\"have_delivered\",\"dataType\":\"INTEGER\",\"columnComment\":\"已发货:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":15,\"javaType\":\"Integer\",\"javaField\":\"haveDelivered\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2394},{\"tableId\":174,\"columnName\":\"have_received\",\"dataType\":\"INTEGER\",\"columnComment\":\"已收货:0=否\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":16,\"javaType\":\"Integer\",\"javaField\":\"haveReceived\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2395},{\"tableId\":174,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"添加时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":17,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2396},{\"tableId\":174,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":18,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2397},{\"tableId\":174,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":19,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2398},{\"tableId\":174,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":20,\"java...', '2023-08-09 16:07:04', 47, 0, '', 'true', NULL, '2023-08-09 16:07:04', NULL, '2023-08-09 16:07:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7097, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"积分商城\",\"permission\":\"\",\"type\":1,\"sort\":70,\"parentId\":0,\"path\":\"/score\",\"icon\":\"ep:discount\",\"component\":\"\",\"componentName\":\"\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-08-09 16:49:19', 37, 0, '', '2306', NULL, '2023-08-09 16:49:19', NULL, '2023-08-09 16:49:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7098, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"积分产品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"product\",\"icon\":\"\",\"component\":\"score/product/index\",\"componentName\":\"ScoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2300}}', '2023-08-09 16:51:27', 20, 0, '', 'true', NULL, '2023-08-09 16:51:27', NULL, '2023-08-09 16:51:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7099, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"积分商城订单管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"order\",\"icon\":\"\",\"component\":\"score/order/index\",\"componentName\":\"ScoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2294}}', '2023-08-09 16:51:38', 15, 0, '', 'true', NULL, '2023-08-09 16:51:38', NULL, '2023-08-09 16:51:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7100, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"order\",\"icon\":\"\",\"component\":\"score/order/index\",\"componentName\":\"ScoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2294}}', '2023-08-09 16:51:59', 12, 0, '', 'true', NULL, '2023-08-09 16:51:59', NULL, '2023-08-09 16:51:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7101, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"产品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"product\",\"icon\":\"\",\"component\":\"score/product/index\",\"componentName\":\"ScoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2300}}', '2023-08-09 16:52:07', 11, 0, '', 'true', NULL, '2023-08-09 16:52:07', NULL, '2023-08-09 16:52:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7102, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"order\",\"icon\":\"ep:list\",\"component\":\"score/order/index\",\"componentName\":\"ScoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2294}}', '2023-08-09 16:52:32', 12, 0, '', 'true', NULL, '2023-08-09 16:52:32', NULL, '2023-08-09 16:52:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7103, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"产品管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2306,\"path\":\"product\",\"icon\":\"ep:shopping-cart-full\",\"component\":\"score/product/index\",\"componentName\":\"ScoreProduct\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2300}}', '2023-08-09 16:52:53', 14, 0, '', 'true', NULL, '2023-08-09 16:52:53', NULL, '2023-08-09 16:52:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7104, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2306,\"path\":\"order\",\"icon\":\"ep:list\",\"component\":\"score/order/index\",\"componentName\":\"ScoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2294}}', '2023-08-09 16:53:17', 15, 0, '', 'true', NULL, '2023-08-09 16:53:17', NULL, '2023-08-09 16:53:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7105, '', 1, 2, '管理后台 - 积分产品', '创建积分产品', 2, '', '', 'POST', '/admin-api/score/product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductCreateReqVO)', '{\"createReqVO\":{\"title\":\"50qq\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"desc\":\"

555

\",\"score\":10,\"weigh\":null,\"stock\":100,\"sales\":null,\"isSwitch\":1}}', '2023-08-09 17:22:48', 30, 500, 'NoSuchMethodError: co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductCreateReqVO.getImages()Ljava/lang/String;', 'null', NULL, '2023-08-09 17:22:48', NULL, '2023-08-09 17:22:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7106, '', 1, 2, '管理后台 - 积分产品', '创建积分产品', 2, '', '', 'POST', '/admin-api/score/product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductCreateReqVO)', '{\"createReqVO\":{\"title\":\"50qq\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"desc\":\"

555

\",\"score\":10,\"weigh\":null,\"stock\":100,\"sales\":null,\"isSwitch\":1}}', '2023-08-09 17:35:24', 103, 500, 'SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'desc,\nscore,\n\nstock,\n\nis_switch,\ncreate_time,\nupdate_time,\ncreator,\nupdater ) V\' at line 4', 'null', NULL, '2023-08-09 17:35:24', NULL, '2023-08-09 17:35:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7107, '', 1, 2, '管理后台 - 积分产品', '创建积分产品', 2, '', '', 'POST', '/admin-api/score/product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductCreateReqVO)', '{\"createReqVO\":{\"title\":\"50qq\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"desc\":\"

555

\",\"score\":10,\"weigh\":null,\"stock\":100,\"sales\":null,\"isSwitch\":1}}', '2023-08-09 17:41:27', 111, 500, 'SQLSyntaxErrorException: Unknown column \'is_switch\' in \'field list\'', 'null', NULL, '2023-08-09 17:41:27', NULL, '2023-08-09 17:41:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7108, '', 1, 2, '管理后台 - 积分产品', '创建积分产品', 2, '', '', 'POST', '/admin-api/score/product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductCreateReqVO)', '{\"createReqVO\":{\"title\":\"50qq\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"desc\":\"

555

\",\"score\":10,\"weigh\":null,\"stock\":100,\"sales\":null,\"isSwitch\":1}}', '2023-08-09 17:42:09', 6, 0, '', '1', NULL, '2023-08-09 17:42:09', NULL, '2023-08-09 17:42:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7109, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":2}}', '2023-08-10 16:19:09', 57, 0, '', 'true', NULL, '2023-08-10 16:19:09', NULL, '2023-08-10 16:19:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7110, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":1}}', '2023-08-10 16:19:25', 20, 0, '', 'true', NULL, '2023-08-10 16:19:25', NULL, '2023-08-10 16:19:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7111, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"0\",\"shopName\":\"意向餐饮店\",\"id\":2}}', '2023-08-10 16:36:15', 71, 0, '', 'true', NULL, '2023-08-10 16:36:15', NULL, '2023-08-10 16:36:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7112, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"11\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"type\":\"pages\",\"content\":null,\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-08-11 13:52:39', 67, 0, '', '21', NULL, '2023-08-11 13:52:39', NULL, '2023-08-11 13:52:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7113, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"11\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"type\":\"pages\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-08-11 13:57:58', 13, 0, '', '22', NULL, '2023-08-11 13:57:58', NULL, '2023-08-11 13:57:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7114, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"11\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"type\":\"pages\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":22}}', '2023-08-11 14:12:41', 45, 0, '', 'true', NULL, '2023-08-11 14:12:41', NULL, '2023-08-11 14:12:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7115, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"11\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"type\":\"pages\",\"content\":\"

rtete

\",\"pid\":0,\"appId\":\"\",\"pages\":\"\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":22}}', '2023-08-11 14:13:54', 12, 0, '', 'true', NULL, '2023-08-11 14:13:54', NULL, '2023-08-11 14:13:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7116, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 962, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7117, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 990, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7118, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 1003, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7119, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 969, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7120, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 1008, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7121, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:45', 983, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7122, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:46', 105, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7123, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"签到.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"}}', '2023-08-11 14:28:46', 48, 0, '', '17', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7124, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:46', 137, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7125, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"账户.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"}}', '2023-08-11 14:28:46', 19, 0, '', '19', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7126, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"帮助.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"}}', '2023-08-11 14:28:46', 19, 0, '', '22', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7127, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"客服.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"}}', '2023-08-11 14:28:46', 86, 0, '', '18', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7128, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:46', 119, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7129, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-08-11 14:28:46', 128, 0, '', '\"http://127.0.0.1:48080/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7130, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"我的订单 (1).png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"}}', '2023-08-11 14:28:46', 37, 0, '', '20', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7131, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"退出登录.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"}}', '2023-08-11 14:28:46', 27, 0, '', '21', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7132, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分商城.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"}}', '2023-08-11 14:28:46', 13, 0, '', '25', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7133, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"货币兑换.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"}}', '2023-08-11 14:28:46', 14, 0, '', '24', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7134, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"关于我们.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"}}', '2023-08-11 14:28:46', 28, 0, '', '23', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7135, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"导航地址.png\",\"url\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"}}', '2023-08-11 14:28:46', 43, 0, '', '26', NULL, '2023-08-11 14:28:46', NULL, '2023-08-11 14:28:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7136, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"积分签到\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\",\"type\":\"pages\",\"content\":\"

trte

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/integrals/integrals\",\"phone\":\"\",\"weigh\":1,\"status\":1,\"id\":20}}', '2023-08-11 16:13:20', 12, 0, '', 'true', NULL, '2023-08-11 16:13:20', NULL, '2023-08-11 16:13:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7137, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"我的订单\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\",\"type\":\"pages\",\"content\":\"

tetewt

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/orders/orders\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":21}}', '2023-08-11 16:14:17', 6, 0, '', 'true', NULL, '2023-08-11 16:14:17', NULL, '2023-08-11 16:14:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7138, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"积分商城\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\",\"type\":\"pages\",\"content\":\"

rtete

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/scoreproduct/list\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":22}}', '2023-08-11 16:15:10', 9, 0, '', 'true', NULL, '2023-08-11 16:15:10', NULL, '2023-08-11 16:15:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7139, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"数据库\",\"remark\":\"我是数据库\",\"id\":4,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48081\"}}}', '2023-08-12 12:45:13', 93, 0, '', 'true', NULL, '2023-08-12 12:45:13', NULL, '2023-08-12 12:45:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7140, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"shopId\":2,\"shopName\":null,\"parentId\":null,\"name\":\"甜点\",\"picUrl\":\"\",\"sort\":1,\"description\":\"\",\"status\":0}}', '2023-08-15 12:55:12', 53, 500, 'ServiceException: 父分类不存在', 'null', NULL, '2023-08-15 12:55:13', NULL, '2023-08-15 12:55:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7141, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"shopId\":2,\"shopName\":null,\"parentId\":null,\"name\":\"甜点\",\"picUrl\":\"\",\"sort\":1,\"description\":\"\",\"status\":0}}', '2023-08-15 12:57:42', 175, 500, 'SQLException: Field \'parent_id\' doesn\'t have a default value', 'null', NULL, '2023-08-15 12:57:42', NULL, '2023-08-15 12:57:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7142, '', 1, 2, '管理后台 - 商品分类', '创建商品分类', 2, '', '', 'POST', '/admin-api/product/category/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.createCategory(ProductCategoryCreateReqVO)', '{\"createReqVO\":{\"shopId\":2,\"shopName\":null,\"parentId\":null,\"name\":\"甜点\",\"picUrl\":\"\",\"sort\":1,\"description\":\"\",\"status\":0}}', '2023-08-15 13:02:48', 18, 0, '', '11', NULL, '2023-08-15 13:02:48', NULL, '2023-08-15 13:02:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7143, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":2}', '2023-08-15 13:04:16', 81, 0, '', 'true', NULL, '2023-08-15 13:04:16', NULL, '2023-08-15 13:04:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7144, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":2}', '2023-08-15 13:04:20', 8, 500, 'ServiceException: 商品分类不存在', 'null', NULL, '2023-08-15 13:04:20', NULL, '2023-08-15 13:04:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7145, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":3}', '2023-08-15 13:10:31', 26, 0, '', 'true', NULL, '2023-08-15 13:10:31', NULL, '2023-08-15 13:10:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7146, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":5}', '2023-08-15 13:10:35', 7, 0, '', 'true', NULL, '2023-08-15 13:10:35', NULL, '2023-08-15 13:10:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7147, '', 1, 2, '管理后台 - 商品分类', '删除商品分类', 4, '', '', 'DELETE', '/admin-api/product/category/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.deleteCategory(Long)', '{\"id\":6}', '2023-08-15 13:10:37', 8, 0, '', 'true', NULL, '2023-08-15 13:10:37', NULL, '2023-08-15 13:10:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7148, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":2,\"shopName\":null,\"parentId\":0,\"name\":\"饮料\",\"picUrl\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"sort\":1,\"description\":\"1234\",\"status\":0,\"id\":1}}', '2023-08-15 13:14:28', 21, 0, '', 'true', NULL, '2023-08-15 13:14:28', NULL, '2023-08-15 13:14:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7149, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":2,\"shopName\":null,\"parentId\":0,\"name\":\"手机\",\"picUrl\":\"https://app2.yixiang.co/file/pic/20210222221033953795.jpeg\",\"sort\":2,\"description\":\"

123

\",\"status\":0,\"id\":4}}', '2023-08-15 13:15:51', 10, 0, '', 'true', NULL, '2023-08-15 13:15:51', NULL, '2023-08-15 13:15:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7150, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":2,\"shopName\":\"意向餐饮店\",\"parentId\":0,\"name\":\"手机\",\"picUrl\":null,\"sort\":2,\"description\":\"

123

\",\"status\":0,\"id\":4}}', '2023-08-15 13:31:36', 8, 0, '', 'true', NULL, '2023-08-15 13:31:36', NULL, '2023-08-15 13:31:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7151, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":2,\"shopName\":\"意向餐饮店\",\"parentId\":0,\"name\":\"甜点\",\"picUrl\":\"\",\"sort\":1,\"description\":\"\",\"status\":0,\"id\":11}}', '2023-08-15 13:33:55', 9, 0, '', 'true', NULL, '2023-08-15 13:33:55', NULL, '2023-08-15 13:33:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7152, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:07:02', 9, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:07:02', NULL, '2023-08-15 14:07:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7153, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:09:13', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:09:13', NULL, '2023-08-15 14:09:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7154, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:12:51', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:12:51', NULL, '2023-08-15 14:12:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7155, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:13:15', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:13:15', NULL, '2023-08-15 14:13:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7156, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:14:36', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:14:36', NULL, '2023-08-15 14:14:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7157, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:15:15', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:15:15', NULL, '2023-08-15 14:15:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7158, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:22:32', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:22:32', NULL, '2023-08-15 14:22:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7159, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:25:00', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:25:00', NULL, '2023-08-15 14:25:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7160, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:25:46', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:25:46', NULL, '2023-08-15 14:25:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7161, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:26:56', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:26:56', NULL, '2023-08-15 14:26:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7162, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:27:40', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:27:40', NULL, '2023-08-15 14:27:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7163, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:28:28', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:28:28', NULL, '2023-08-15 14:28:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7164, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":17,\"shopId\":2,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"keyword\":\"邮费的商品\",\"price\":2.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":99,\"description\":\"

邮费的商品

\",\"cost\":10.0,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":null,\"brokerage\":0.0,\"price\":2.0,\"cost\":10.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"规格\",\"value2\":null,\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":100.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\"],\"store_name\":\"我的甜点\",\"store_info\":\"邮费的商品\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":0}}', '2023-08-15 14:29:00', 868, 0, '', 'true', NULL, '2023-08-15 14:29:01', NULL, '2023-08-15 14:29:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7165, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-08-15 14:29:11', 90, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":90,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-08-15 14:29:11', NULL, '2023-08-15 14:29:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7166, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:39:04', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:39:04', NULL, '2023-08-15 14:39:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7167, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:41:16', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:41:16', NULL, '2023-08-15 14:41:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7168, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":17,\"shopId\":2,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"keyword\":\"邮费的商品\",\"price\":2.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":99,\"description\":\"

邮费的商品

\",\"cost\":10.0,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":null,\"brokerage\":0.0,\"price\":2.0,\"cost\":10.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"value1\":\"规格\",\"value2\":null,\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":100.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"],\"store_name\":\"我的甜点\",\"store_info\":\"邮费的商品\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":0}}', '2023-08-15 14:41:51', 80, 0, '', 'true', NULL, '2023-08-15 14:41:51', NULL, '2023-08-15 14:41:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7169, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:46:49', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:46:49', NULL, '2023-08-15 14:46:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7170, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:47:09', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:47:09', NULL, '2023-08-15 14:47:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7171, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:47:21', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:47:21', NULL, '2023-08-15 14:47:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7172, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:53:50', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:53:50', NULL, '2023-08-15 14:53:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7173, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:56:09', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:56:09', NULL, '2023-08-15 14:56:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7174, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:56:24', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:56:24', NULL, '2023-08-15 14:56:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7175, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:57:23', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:57:23', NULL, '2023-08-15 14:57:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7176, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:59:29', 49, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:59:29', NULL, '2023-08-15 14:59:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7177, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 14:59:48', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 14:59:48', NULL, '2023-08-15 14:59:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7178, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:02:13', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:02:13', NULL, '2023-08-15 15:02:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7179, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:02:19', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:02:19', NULL, '2023-08-15 15:02:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7180, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:03:51', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:03:51', NULL, '2023-08-15 15:03:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7181, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:03:59', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:03:59', NULL, '2023-08-15 15:03:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7182, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:04:23', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:04:23', NULL, '2023-08-15 15:04:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7183, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:04:30', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:04:30', NULL, '2023-08-15 15:04:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7184, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:04:44', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:04:44', NULL, '2023-08-15 15:04:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7185, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-08-15 15:04:51', 87, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":90,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-08-15 15:04:51', NULL, '2023-08-15 15:04:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7186, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:05:06', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:05:06', NULL, '2023-08-15 15:05:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7187, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:05:53', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:05:53', NULL, '2023-08-15 15:05:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7188, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:07:09', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:07:09', NULL, '2023-08-15 15:07:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7189, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:08:28', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:08:28', NULL, '2023-08-15 15:08:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7190, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:08:46', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:08:46', NULL, '2023-08-15 15:08:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7191, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:10:05', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:10:05', NULL, '2023-08-15 15:10:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7192, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:10:42', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:10:42', NULL, '2023-08-15 15:10:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7193, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-08-15 15:11:54', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 15:11:54', NULL, '2023-08-15 15:11:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7194, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-08-15 17:31:26', 40, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":90,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-08-15 17:31:27', NULL, '2023-08-15 17:31:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7195, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":null,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":90,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-08-15 17:31:38', 141, 500, 'NullPointerException: null', 'null', NULL, '2023-08-15 17:31:39', NULL, '2023-08-15 17:31:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7196, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":null,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":90,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-08-15 17:31:43', 4, 500, 'NullPointerException: null', 'null', NULL, '2023-08-15 17:31:43', NULL, '2023-08-15 17:31:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7197, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":null,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":90,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-08-15 17:35:55', 5, 500, 'NullPointerException: null', 'null', NULL, '2023-08-15 17:35:55', NULL, '2023-08-15 17:35:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7198, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":null,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":90,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-08-15 17:35:59', 9, 500, 'NullPointerException: null', 'null', NULL, '2023-08-15 17:36:00', NULL, '2023-08-15 17:36:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7199, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":2,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"keyword\":\"多规格\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":0,\"stock\":580,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"attrs\":[{\"sku\":\"6寸,黑白\",\"brokerage\":0.0,\"price\":99.0,\"cost\":200.0,\"stock\":90,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,红色\",\"brokerage\":0.0,\"price\":98.0,\"cost\":200.0,\"stock\":98,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"6寸,灰色\",\"brokerage\":0.0,\"price\":97.0,\"cost\":200.0,\"stock\":97,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"6寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,黑白\",\"brokerage\":0.0,\"price\":96.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"黑白\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,红色\",\"brokerage\":0.0,\"price\":95.0,\"cost\":200.0,\"stock\":95,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"红色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"7寸,灰色\",\"brokerage\":0.0,\"price\":94.0,\"cost\":200.0,\"stock\":94,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"value1\":\"7寸\",\"value2\":\"灰色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":200.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"store_name\":\"多规格商品\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-08-15 17:37:41', 321, 0, '', 'true', NULL, '2023-08-15 17:37:41', NULL, '2023-08-15 17:37:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7200, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-08-15 17:37:49', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-08-15 17:37:49', NULL, '2023-08-15 17:37:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7201, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":15,\"shopId\":2,\"shopName\":null,\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"keyword\":\"单规格\",\"price\":99.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":99,\"description\":\"

单规格商品

\",\"cost\":299.0,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":null,\"brokerage\":0.0,\"price\":99.0,\"cost\":299.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48080/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"value1\":\"规格\",\"value2\":null,\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":399.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/a311502bef59f16c64a246c1404faed389ba9f6683d57b9134dd58e7feb19514.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/6ab0e01f94b05d6ecdab1820c86db930e392375c39b4abaded5dc416a3563991.jpeg\"],\"store_name\":\"单规格商品\",\"store_info\":\"单规格商品\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":0}}', '2023-08-15 17:38:07', 46, 0, '', 'true', NULL, '2023-08-15 17:38:07', NULL, '2023-08-15 17:38:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7202, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":0,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"1\",\"100\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-08-19 09:45:24', 127, 0, '', 'true', NULL, '2023-08-19 09:45:25', NULL, '2023-08-19 09:45:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7203, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":10,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"1\",\"100\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-08-20 16:28:02', 23, 0, '', 'true', NULL, '2023-08-20 16:28:02', NULL, '2023-08-20 16:28:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7204, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"兑换订单\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":\"/pages/components/pages/scoreproduct/order\",\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-09-03 16:00:34', 26, 0, '', '23', NULL, '2023-09-03 16:00:34', NULL, '2023-09-03 16:00:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7205, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"联系客服\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\",\"type\":\"call\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":\"18888888888\",\"weigh\":null,\"status\":1}}', '2023-09-03 16:01:40', 7, 0, '', '24', NULL, '2023-09-03 16:01:40', NULL, '2023-09-03 16:01:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7206, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"我的地址\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":\"/pages/components/pages/address/address\",\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-09-03 16:02:29', 9, 0, '', '25', NULL, '2023-09-03 16:02:29', NULL, '2023-09-03 16:02:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7207, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"帮助中心\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\",\"type\":\"content\",\"content\":\"

66666

\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-09-03 16:03:45', 11, 0, '', '26', NULL, '2023-09-03 16:03:45', NULL, '2023-09-03 16:03:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7208, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"关于我们\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\",\"type\":\"content\",\"content\":\"

88888

\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-09-03 16:04:53', 4, 0, '', '27', NULL, '2023-09-03 16:04:53', NULL, '2023-09-03 16:04:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7209, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"积分商城\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\",\"type\":\"pages\",\"content\":\"

rtete

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/scoreproduct/list\",\"phone\":\"\",\"weigh\":0,\"status\":0,\"id\":22}}', '2023-09-03 17:26:32', 18, 0, '', 'true', NULL, '2023-09-03 17:26:32', NULL, '2023-09-03 17:26:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7210, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"兑换订单\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/scoreproduct/order\",\"phone\":\"\",\"weigh\":0,\"status\":0,\"id\":23}}', '2023-09-03 17:26:38', 5, 0, '', 'true', NULL, '2023-09-03 17:26:38', NULL, '2023-09-03 17:26:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7211, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"积分签到\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\",\"type\":\"pages\",\"content\":\"

trte

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/integrals/integrals\",\"phone\":\"\",\"weigh\":1,\"status\":0,\"id\":20}}', '2023-09-04 14:09:58', 29, 0, '', 'true', NULL, '2023-09-04 14:09:58', NULL, '2023-09-04 14:09:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7212, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"工作台\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2175,\"path\":\"store-order-work\",\"icon\":\"ep:bell-filled\",\"component\":\"order/storeOrder/work\",\"componentName\":\"StoreOrderWork\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true}}', '2023-09-04 15:04:14', 41, 0, '', '2307', NULL, '2023-09-04 15:04:14', NULL, '2023-09-04 15:04:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7213, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"订单管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2175,\"path\":\"store-order\",\"icon\":\"ep:scale-to-original\",\"component\":\"order/storeOrder/index\",\"componentName\":\"StoreOrder\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2207}}', '2023-09-04 15:04:37', 27, 0, '', 'true', NULL, '2023-09-04 15:04:37', NULL, '2023-09-04 15:04:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7214, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"售后订单\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2175,\"path\":\"store-after-sales\",\"icon\":\"ep:fold\",\"component\":\"order/storeAfterSales/index\",\"componentName\":\"StoreAfterSales\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2225}}', '2023-09-04 15:04:50', 12, 0, '', 'true', NULL, '2023-09-04 15:04:50', NULL, '2023-09-04 15:04:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7215, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"电子面单记录\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2175,\"path\":\"store-order-electronics\",\"icon\":\"ep:list\",\"component\":\"order/storeOrderElectronics/index\",\"componentName\":\"StoreOrderElectronics\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2251}}', '2023-09-04 15:04:59', 11, 0, '', 'true', NULL, '2023-09-04 15:04:59', NULL, '2023-09-04 15:04:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7216, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1697560360996831232\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"hupeng01\",\"userPhone\":\"180****0000\",\"userAddress\":\" 66\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":2,\"totalPrice\":198,\"totalPostage\":20,\"payPrice\":208,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":2,\"couponPrice\":10,\"paid\":1,\"payTime\":1693564904000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takeout\",\"numberId\":1011,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"id\":27,\"updateType\":\"orderSend\"}}', '2023-09-04 16:10:15', 337, 0, '', 'true', NULL, '2023-09-04 16:10:15', NULL, '2023-09-04 16:10:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7217, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1697560360996831232\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"hupeng01\",\"userPhone\":\"180****0000\",\"userAddress\":\" 66\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":2,\"totalPrice\":198,\"totalPostage\":20,\"payPrice\":208,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":2,\"couponPrice\":10,\"paid\":1,\"payTime\":1693564904000,\"payType\":\"yue\",\"status\":1,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takeout\",\"numberId\":1011,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"id\":27,\"updateType\":\"orderSend\"}}', '2023-09-04 16:14:19', 76, 0, '', 'true', NULL, '2023-09-04 16:14:19', NULL, '2023-09-04 16:14:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7218, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1695349920321503232\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"hupeng01\",\"userPhone\":\"180****0000\",\"userAddress\":\" 66\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":99,\"totalPostage\":20,\"payPrice\":119,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693037894000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takeout\",\"numberId\":1010,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"id\":26,\"updateType\":\"orderSend\"}}', '2023-09-04 16:38:41', 152, 0, '', 'true', NULL, '2023-09-04 16:38:41', NULL, '2023-09-04 16:38:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7219, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2226}', '2023-09-04 17:01:02', 83, 0, '', 'true', NULL, '2023-09-04 17:01:02', NULL, '2023-09-04 17:01:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7220, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2227}', '2023-09-04 17:01:06', 22, 0, '', 'true', NULL, '2023-09-04 17:01:06', NULL, '2023-09-04 17:01:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7221, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2228}', '2023-09-04 17:01:10', 12, 0, '', 'true', NULL, '2023-09-04 17:01:10', NULL, '2023-09-04 17:01:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7222, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2229}', '2023-09-04 17:01:14', 25, 0, '', 'true', NULL, '2023-09-04 17:01:14', NULL, '2023-09-04 17:01:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7223, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2230}', '2023-09-04 17:01:19', 14, 0, '', 'true', NULL, '2023-09-04 17:01:19', NULL, '2023-09-04 17:01:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7224, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2225}', '2023-09-04 17:01:24', 11, 0, '', 'true', NULL, '2023-09-04 17:01:24', NULL, '2023-09-04 17:01:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7225, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2252}', '2023-09-04 17:01:31', 8, 0, '', 'true', NULL, '2023-09-04 17:01:31', NULL, '2023-09-04 17:01:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7226, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2253}', '2023-09-04 17:01:35', 10, 0, '', 'true', NULL, '2023-09-04 17:01:35', NULL, '2023-09-04 17:01:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7227, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2254}', '2023-09-04 17:01:39', 10, 0, '', 'true', NULL, '2023-09-04 17:01:39', NULL, '2023-09-04 17:01:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7228, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2255}', '2023-09-04 17:01:43', 12, 0, '', 'true', NULL, '2023-09-04 17:01:43', NULL, '2023-09-04 17:01:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7229, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2256}', '2023-09-04 17:01:46', 10, 0, '', 'true', NULL, '2023-09-04 17:01:46', NULL, '2023-09-04 17:01:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7230, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2251}', '2023-09-04 17:01:50', 11, 0, '', 'true', NULL, '2023-09-04 17:01:50', NULL, '2023-09-04 17:01:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7231, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2231}', '2023-09-04 17:02:11', 9, 500, 'ServiceException: 存在子菜单,无法删除', 'null', NULL, '2023-09-04 17:02:11', NULL, '2023-09-04 17:02:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7232, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2232}', '2023-09-04 17:02:18', 9, 0, '', 'true', NULL, '2023-09-04 17:02:18', NULL, '2023-09-04 17:02:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7233, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2233}', '2023-09-04 17:02:23', 11, 0, '', 'true', NULL, '2023-09-04 17:02:23', NULL, '2023-09-04 17:02:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7234, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2234}', '2023-09-04 17:02:32', 36, 0, '', 'true', NULL, '2023-09-04 17:02:32', NULL, '2023-09-04 17:02:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7235, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2235}', '2023-09-04 17:02:36', 11, 0, '', 'true', NULL, '2023-09-04 17:02:36', NULL, '2023-09-04 17:02:36', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7236, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2236}', '2023-09-04 17:02:40', 11, 0, '', 'true', NULL, '2023-09-04 17:02:40', NULL, '2023-09-04 17:02:40', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7237, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2231}', '2023-09-04 17:02:45', 10, 0, '', 'true', NULL, '2023-09-04 17:02:45', NULL, '2023-09-04 17:02:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7238, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2246}', '2023-09-04 17:02:52', 13, 0, '', 'true', NULL, '2023-09-04 17:02:52', NULL, '2023-09-04 17:02:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7239, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2247}', '2023-09-04 17:02:56', 19, 0, '', 'true', NULL, '2023-09-04 17:02:56', NULL, '2023-09-04 17:02:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7240, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2248}', '2023-09-04 17:03:00', 16, 0, '', 'true', NULL, '2023-09-04 17:03:00', NULL, '2023-09-04 17:03:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7241, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2249}', '2023-09-04 17:03:03', 18, 0, '', 'true', NULL, '2023-09-04 17:03:04', NULL, '2023-09-04 17:03:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7242, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2250}', '2023-09-04 17:03:07', 12, 0, '', 'true', NULL, '2023-09-04 17:03:07', NULL, '2023-09-04 17:03:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7243, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2245}', '2023-09-04 17:03:13', 19, 0, '', 'true', NULL, '2023-09-04 17:03:13', NULL, '2023-09-04 17:03:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7244, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2244}', '2023-09-04 17:03:17', 19, 0, '', 'true', NULL, '2023-09-04 17:03:17', NULL, '2023-09-04 17:03:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7245, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2243}', '2023-09-04 17:03:22', 19, 0, '', 'true', NULL, '2023-09-04 17:03:22', NULL, '2023-09-04 17:03:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7246, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2009}', '2023-09-04 18:30:46', 170, 0, '', 'true', NULL, '2023-09-04 18:30:47', NULL, '2023-09-04 18:30:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7247, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2010}', '2023-09-04 18:30:52', 24, 0, '', 'true', NULL, '2023-09-04 18:30:52', NULL, '2023-09-04 18:30:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7248, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2011}', '2023-09-04 18:30:56', 27, 0, '', 'true', NULL, '2023-09-04 18:30:56', NULL, '2023-09-04 18:30:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7249, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2012}', '2023-09-04 18:31:00', 30, 0, '', 'true', NULL, '2023-09-04 18:31:00', NULL, '2023-09-04 18:31:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7250, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2008}', '2023-09-04 18:31:05', 9, 0, '', 'true', NULL, '2023-09-04 18:31:05', NULL, '2023-09-04 18:31:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7251, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2178}', '2023-09-04 18:31:15', 10, 0, '', 'true', NULL, '2023-09-04 18:31:15', NULL, '2023-09-04 18:31:15', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7252, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2179}', '2023-09-04 18:31:20', 13, 0, '', 'true', NULL, '2023-09-04 18:31:20', NULL, '2023-09-04 18:31:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7253, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2180}', '2023-09-04 18:31:24', 18, 0, '', 'true', NULL, '2023-09-04 18:31:24', NULL, '2023-09-04 18:31:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7254, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2181}', '2023-09-04 18:31:27', 11, 0, '', 'true', NULL, '2023-09-04 18:31:27', NULL, '2023-09-04 18:31:27', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7255, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2182}', '2023-09-04 18:31:32', 39, 0, '', 'true', NULL, '2023-09-04 18:31:32', NULL, '2023-09-04 18:31:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7256, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2177}', '2023-09-04 18:31:37', 30, 0, '', 'true', NULL, '2023-09-04 18:31:37', NULL, '2023-09-04 18:31:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7257, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2190}', '2023-09-04 18:31:44', 13, 0, '', 'true', NULL, '2023-09-04 18:31:44', NULL, '2023-09-04 18:31:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7258, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2191}', '2023-09-04 18:31:48', 13, 0, '', 'true', NULL, '2023-09-04 18:31:48', NULL, '2023-09-04 18:31:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7259, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2192}', '2023-09-04 18:31:52', 32, 0, '', 'true', NULL, '2023-09-04 18:31:52', NULL, '2023-09-04 18:31:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7260, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2193}', '2023-09-04 18:31:57', 13, 0, '', 'true', NULL, '2023-09-04 18:31:57', NULL, '2023-09-04 18:31:57', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7261, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2194}', '2023-09-04 18:32:00', 37, 0, '', 'true', NULL, '2023-09-04 18:32:00', NULL, '2023-09-04 18:32:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7262, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2189}', '2023-09-04 18:32:05', 15, 0, '', 'true', NULL, '2023-09-04 18:32:05', NULL, '2023-09-04 18:32:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7263, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2202}', '2023-09-04 18:32:13', 8, 0, '', 'true', NULL, '2023-09-04 18:32:13', NULL, '2023-09-04 18:32:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7264, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2203}', '2023-09-04 18:32:17', 15, 0, '', 'true', NULL, '2023-09-04 18:32:17', NULL, '2023-09-04 18:32:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7265, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2204}', '2023-09-04 18:32:21', 26, 0, '', 'true', NULL, '2023-09-04 18:32:21', NULL, '2023-09-04 18:32:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7266, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2205}', '2023-09-04 18:32:25', 9, 0, '', 'true', NULL, '2023-09-04 18:32:25', NULL, '2023-09-04 18:32:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7267, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2206}', '2023-09-04 18:32:28', 28, 0, '', 'true', NULL, '2023-09-04 18:32:28', NULL, '2023-09-04 18:32:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7268, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2201}', '2023-09-04 18:32:32', 29, 0, '', 'true', NULL, '2023-09-04 18:32:32', NULL, '2023-09-04 18:32:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7269, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2196}', '2023-09-04 18:32:39', 26, 0, '', 'true', NULL, '2023-09-04 18:32:39', NULL, '2023-09-04 18:32:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7270, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2197}', '2023-09-04 18:32:44', 13, 0, '', 'true', NULL, '2023-09-04 18:32:44', NULL, '2023-09-04 18:32:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7271, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2198}', '2023-09-04 18:32:48', 15, 0, '', 'true', NULL, '2023-09-04 18:32:48', NULL, '2023-09-04 18:32:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7272, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2199}', '2023-09-04 18:32:51', 9, 0, '', 'true', NULL, '2023-09-04 18:32:51', NULL, '2023-09-04 18:32:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7273, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2200}', '2023-09-04 18:32:55', 9, 0, '', 'true', NULL, '2023-09-04 18:32:55', NULL, '2023-09-04 18:32:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7274, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2195}', '2023-09-04 18:33:00', 10, 0, '', 'true', NULL, '2023-09-04 18:33:00', NULL, '2023-09-04 18:33:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7275, '', 1, 2, '管理后台 - 角色', '删除角色', 4, '', '', 'DELETE', '/admin-api/system/role/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.RoleController.deleteRole(Long)', '{\"id\":138}', '2023-09-05 10:08:35', 13, 500, 'ServiceException: 不能操作类型为系统内置的角色', 'null', NULL, '2023-09-05 10:08:35', NULL, '2023-09-05 10:08:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7276, '', 1, 2, '管理后台 - 角色', '删除角色', 4, '', '', 'DELETE', '/admin-api/system/role/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.RoleController.deleteRole(Long)', '{\"id\":138}', '2023-09-05 10:09:17', 8, 500, 'ServiceException: 不能操作类型为系统内置的角色', 'null', NULL, '2023-09-05 10:09:17', NULL, '2023-09-05 10:09:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7277, '', 1, 2, '管理后台 - 角色', '修改角色', 3, '', '', 'PUT', '/admin-api/system/role/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.RoleController.updateRole(RoleUpdateReqVO)', '{\"reqVO\":{\"name\":\"门店角色\",\"code\":\"common\",\"sort\":2,\"remark\":\"普通角色\",\"id\":2}}', '2023-09-05 10:12:22', 4, 500, 'ServiceException: 不能操作类型为系统内置的角色', 'null', NULL, '2023-09-05 10:12:22', NULL, '2023-09-05 10:12:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7278, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[2307,2000,2002,2003,2004,2005,2006,2264,2265,2266,2267,2268,2269,2207,2208,2209,2210,2211,2212,2288,2289,2290,2291,2292,2293,2174,2175]}}', '2023-09-05 10:16:18', 113, 0, '', 'true', NULL, '2023-09-05 10:16:18', NULL, '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7279, '', 1, 2, '管理后台 - 用户', '新增用户', 2, '', '', 'POST', '/admin-api/system/user/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.user.UserController.createUser(UserCreateReqVO)', '{\"reqVO\":{\"username\":\"yixiang001\",\"nickname\":\"意向餐饮管理员\",\"remark\":\"\",\"deptId\":110,\"postIds\":[],\"email\":\"\",\"mobile\":\"18888888888\",\"sex\":null,\"avatar\":null,\"password\":\"123456789\"}}', '2023-09-05 10:23:17', 36, 0, '', '126', NULL, '2023-09-05 10:23:17', NULL, '2023-09-05 10:23:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7280, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":10,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"126\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-09-05 10:23:48', 27, 0, '', 'true', NULL, '2023-09-05 10:23:48', NULL, '2023-09-05 10:23:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7281, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[1024,1,1025,1026,2307,1027,1028,1029,1030,1036,1037,1038,1039,1040,1042,1043,1045,1046,1048,2083,1063,1064,1065,1093,1094,1095,1096,1097,1098,1100,1101,1102,1103,1104,1105,1106,2130,1107,2131,1108,2132,1109,2133,2134,1110,2135,1111,2136,1112,2137,1113,2138,1114,2139,1115,2140,2141,2142,2143,2144,2145,2146,2147,100,2148,101,2149,102,2150,103,2151,104,2152,105,107,108,109,2174,2175,2207,2208,2209,2210,2211,2212,2000,2002,2003,2004,2005,2006,2264,2265,2266,2267,2268,2269,1247,1248,1249,1250,1251,1252,1001,1002,1003,1004,1005,1261,1006,1007,1263,2288,1008,1264,2289,1009,1265,2290,1010,1266,2291,1011,1267,2292,1012,500,2293,1013,501,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023]}}', '2023-09-05 14:41:31', 95, 0, '', 'true', NULL, '2023-09-05 14:41:31', NULL, '2023-09-05 14:41:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7282, '', 1, 2, '管理后台 - 权限', '赋予用户角色', 2, '', '', 'POST', '/admin-api/system/permission/assign-user-role', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignUserRole(PermissionAssignUserRoleReqVO)', '{\"reqVO\":{\"userId\":100,\"roleIds\":[2]}}', '2023-09-05 14:42:08', 16, 0, '', 'true', NULL, '2023-09-05 14:42:08', NULL, '2023-09-05 14:42:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7283, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[2307,2000,2002,2003,2004,2005,2006,2264,2265,2266,2267,2268,2269,2207,2208,2209,2210,2211,2212,2288,2289,2290,2291,2292,2293,2174,2175]}}', '2023-09-05 14:42:18', 29, 0, '', 'true', NULL, '2023-09-05 14:42:18', NULL, '2023-09-05 14:42:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7284, '', 1, 2, '管理后台 - 权限', '赋予用户角色', 2, '', '', 'POST', '/admin-api/system/permission/assign-user-role', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignUserRole(PermissionAssignUserRoleReqVO)', '{\"reqVO\":{\"userId\":126,\"roleIds\":[2]}}', '2023-09-05 14:42:51', 8, 0, '', 'true', NULL, '2023-09-05 14:42:51', NULL, '2023-09-05 14:42:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7285, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[1024,1,1025,2,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1042,1043,1045,1046,1048,1050,1051,1052,1053,1054,1056,1057,1058,1059,2083,1060,1063,1064,1065,1066,1067,1075,1076,1078,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1100,1101,1102,1103,1104,1105,1106,2130,1107,2131,1108,2132,1109,2133,2134,1110,2135,1111,2136,1112,2137,1113,2138,1114,2139,1115,2140,2141,2142,2143,2144,2145,2146,2147,100,2148,101,2149,102,2150,103,2151,104,2152,105,106,107,108,109,110,111,112,113,114,115,116,2174,2175,2207,2208,2209,2210,2211,2212,1237,1238,1239,2264,1240,2265,1241,2266,1242,2267,1243,2268,2269,1247,1248,1249,1250,1251,1252,1255,1256,1257,1258,1259,1260,1261,1263,2288,1264,2289,1265,2290,1266,2291,1267,2292,2293,2307,2000,2002,2003,2004,2005,2006,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,500,1013,501,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023]}}', '2023-09-05 14:47:55', 110, 0, '', 'true', NULL, '2023-09-05 14:47:56', NULL, '2023-09-05 14:47:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7286, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[2307,2000,2002,2003,2004,2005,2006,2264,2265,2266,2267,2268,2269,2207,2208,2209,2210,2211,2212,2288,2289,2290,2291,2292,2293,2174,2175]}}', '2023-09-05 14:56:17', 47, 0, '', 'true', NULL, '2023-09-05 14:56:17', NULL, '2023-09-05 14:56:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7287, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[2307,2000,2002,2003,2004,2005,2006,2264,2265,2266,2267,2268,2269,2207,2208,2209,2210,2211,2212,2288,2289,2290,2291,2292,2293,2168,2169,2170,2171,2172,2173,2174,2175]}}', '2023-09-05 16:19:21', 45, 0, '', 'true', NULL, '2023-09-05 16:19:21', NULL, '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7288, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":2,\"menuIds\":[2307,2000,2002,2003,2004,2005,2006,2264,2265,2267,2207,2208,2210,2211,2288,2289,2290,2291,2292,2168,2169,2170,2171,2172,2174,2175]}}', '2023-09-05 16:30:37', 20, 0, '', 'true', NULL, '2023-09-05 16:30:37', NULL, '2023-09-05 16:30:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7289, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.createCodegenList(CodegenCreateListReqVO)', '{\"reqVO\":{\"dataSourceConfigId\":0,\"tableNames\":[\"yshop_web_print\"]}}', '2023-09-06 10:03:12', 198, 0, '', '[176]', NULL, '2023-09-06 10:03:12', NULL, '2023-09-06 10:03:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7290, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"scene\":1,\"tableName\":\"yshop_web_print\",\"tableComment\":\"易联云打印机\",\"remark\":null,\"moduleName\":\"store\",\"businessName\":\"webprint\",\"className\":\"WebPrint\",\"classComment\":\"易联云打印机\",\"author\":\"yshop\",\"templateType\":1,\"frontType\":20,\"parentMenuId\":2000,\"id\":176,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":176,\"columnName\":\"id\",\"dataType\":\"BIGINT\",\"columnComment\":\"id\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"false\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":\"8134\",\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2416},{\"tableId\":176,\"columnName\":\"title\",\"dataType\":\"VARCHAR\",\"columnComment\":\"打印机名称\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"title\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2417},{\"tableId\":176,\"columnName\":\"mechine_code\",\"dataType\":\"VARCHAR\",\"columnComment\":\"终端号\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"mechineCode\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2418},{\"tableId\":176,\"columnName\":\"msign\",\"dataType\":\"VARCHAR\",\"columnComment\":\"终端密钥\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"msign\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":2419},{\"tableId\":176,\"columnName\":\"creator\",\"dataType\":\"VARCHAR\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2420},{\"tableId\":176,\"columnName\":\"create_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"LocalDateTime\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":2421},{\"tableId\":176,\"columnName\":\"updater\",\"dataType\":\"VARCHAR\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2422},{\"tableId\":176,\"columnName\":\"update_time\",\"dataType\":\"TIMESTAMP\",\"columnComment\":\"更新时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"LocalDateTime\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":2423},{\"tableId\":176,\"columnName\":\"deleted\",\"dataType\":\"BIT\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":2424},{\"tableId\":176,\"columnName\":\"tenant_id\",\"dataType\":\"BIGINT\",\"columnComment\":\"租户编号\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Long\",\"javaField\":\"tenantId\",\"dictType\":\"\",\"example\":\"9240\",\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":2425}]}}', '2023-09-06 10:07:45', 44, 0, '', 'true', NULL, '2023-09-06 10:07:45', NULL, '2023-09-06 10:07:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7291, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"打印机管理\",\"permission\":\"\",\"type\":2,\"sort\":0,\"parentId\":2000,\"path\":\"web-print\",\"icon\":\"ep:printer\",\"component\":\"store/webPrint/index\",\"componentName\":\"WebPrint\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2308}}', '2023-09-06 10:37:34', 23, 0, '', 'true', NULL, '2023-09-06 10:37:34', NULL, '2023-09-06 10:37:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7292, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"门店管理\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2000,\"path\":\"shop\",\"icon\":\"ep:briefcase\",\"component\":\"/mall/store/shop/index\",\"componentName\":\"StoreShop\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2264}}', '2023-09-06 10:38:09', 90, 0, '', 'true', NULL, '2023-09-06 10:38:09', NULL, '2023-09-06 10:38:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7293, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"广告图管理\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":2000,\"path\":\"ads\",\"icon\":\"ep:camera-filled\",\"component\":\"shop/ads/index\",\"componentName\":\"ShopAds\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2270}}', '2023-09-06 10:38:20', 12, 0, '', 'true', NULL, '2023-09-06 10:38:20', NULL, '2023-09-06 10:38:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7294, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"我的服务\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2000,\"path\":\"service\",\"icon\":\"ep:dessert\",\"component\":\"shop/service/index\",\"componentName\":\"Service\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2276}}', '2023-09-06 10:38:33', 12, 0, '', 'true', NULL, '2023-09-06 10:38:33', NULL, '2023-09-06 10:38:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7295, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"充值金额\",\"permission\":\"\",\"type\":2,\"sort\":4,\"parentId\":2000,\"path\":\"recharge\",\"icon\":\"ep:money\",\"component\":\"shop/recharge/index\",\"componentName\":\"Recharge\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2282}}', '2023-09-06 10:38:46', 13, 0, '', 'true', NULL, '2023-09-06 10:38:46', NULL, '2023-09-06 10:38:46', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7296, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"充值金额\",\"permission\":\"\",\"type\":2,\"sort\":5,\"parentId\":2000,\"path\":\"recharge\",\"icon\":\"ep:money\",\"component\":\"shop/recharge/index\",\"componentName\":\"Recharge\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2282}}', '2023-09-06 10:38:55', 10, 0, '', 'true', NULL, '2023-09-06 10:38:55', NULL, '2023-09-06 10:38:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7297, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"充值金额\",\"permission\":\"\",\"type\":2,\"sort\":6,\"parentId\":2000,\"path\":\"recharge\",\"icon\":\"ep:money\",\"component\":\"shop/recharge/index\",\"componentName\":\"Recharge\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2282}}', '2023-09-06 10:39:07', 11, 0, '', 'true', NULL, '2023-09-06 10:39:07', NULL, '2023-09-06 10:39:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7298, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"充值金额\",\"permission\":\"\",\"type\":2,\"sort\":7,\"parentId\":2000,\"path\":\"recharge\",\"icon\":\"ep:money\",\"component\":\"shop/recharge/index\",\"componentName\":\"Recharge\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2282}}', '2023-09-06 10:39:19', 14, 0, '', 'true', NULL, '2023-09-06 10:39:19', NULL, '2023-09-06 10:39:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7299, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"优惠券管理\",\"permission\":\"\",\"type\":2,\"sort\":8,\"parentId\":2000,\"path\":\"coupons\",\"icon\":\"ep:discount\",\"component\":\"mall/coupon/index\",\"componentName\":\"Coupon\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2288}}', '2023-09-06 10:39:28', 11, 0, '', 'true', NULL, '2023-09-06 10:39:28', NULL, '2023-09-06 10:39:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7300, '', 1, 2, '管理后台 - 易联云打印机', '创建易联云打印机', 2, '', '', 'POST', '/admin-api/store/web-print/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.createWebPrint(WebPrintCreateReqVO)', '{\"createReqVO\":{\"title\":\"意向餐饮店-打印机\",\"mechineCode\":\"4004849210\",\"msign\":\"598981636583\"}}', '2023-09-06 15:41:44', 806, 500, 'SQLException: Field \'id\' doesn\'t have a default value', 'null', NULL, '2023-09-06 15:41:45', NULL, '2023-09-06 15:41:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7301, '', 1, 2, '管理后台 - 易联云打印机', '创建易联云打印机', 2, '', '', 'POST', '/admin-api/store/web-print/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.createWebPrint(WebPrintCreateReqVO)', '{\"createReqVO\":{\"title\":\"意向餐饮店-打印机\",\"mechineCode\":\"4004849210\",\"msign\":\"598981636583\"}}', '2023-09-06 15:42:39', 163, 0, '', '1', NULL, '2023-09-06 15:42:39', NULL, '2023-09-06 15:42:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7302, '', 1, 2, '管理后台 - 易联云打印机', '创建易联云打印机', 2, '', '', 'POST', '/admin-api/store/web-print/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.createWebPrint(WebPrintCreateReqVO)', '{\"createReqVO\":{\"title\":\"11\",\"mechineCode\":\"4004849210\",\"msign\":\"598981636583\"}}', '2023-09-06 15:54:30', 747, 0, '', '2', NULL, '2023-09-06 15:54:31', NULL, '2023-09-06 15:54:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7303, '', 1, 2, '管理后台 - 易联云打印机', '创建易联云打印机', 2, '', '', 'POST', '/admin-api/store/web-print/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.createWebPrint(WebPrintCreateReqVO)', '{\"createReqVO\":{\"title\":\"意向餐饮店-打印机\",\"mechineCode\":\"4004849210\",\"msign\":\"598981636583\"}}', '2023-09-06 16:15:55', 735, 500, 'ServiceException: success', 'null', NULL, '2023-09-06 16:15:56', NULL, '2023-09-06 16:15:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7304, '', 1, 2, '管理后台 - 易联云打印机', '删除易联云打印机', 4, '', '', 'DELETE', '/admin-api/store/web-print/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.webprint.WebPrintController.deleteWebPrint(Long)', '{\"id\":2}', '2023-09-06 16:16:49', 19, 0, '', 'true', NULL, '2023-09-06 16:16:49', NULL, '2023-09-06 16:16:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7305, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1698866660254941184\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":99,\"totalPostage\":20,\"payPrice\":119,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693876350000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1012,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693912350000,\"id\":28,\"updateType\":\"orderSend\"}}', '2023-09-06 18:07:46', 625, 0, '', 'true', NULL, '2023-09-06 18:07:47', NULL, '2023-09-06 18:07:47', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7306, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1695282136770150400\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"hupeng01\",\"userPhone\":\"180****0000\",\"userAddress\":\" 66\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":99,\"totalPostage\":20,\"payPrice\":119,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693021733000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takeout\",\"numberId\":1009,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":null,\"id\":25,\"updateType\":\"orderSend\"}}', '2023-09-06 18:13:10', 250, 0, '', 'true', NULL, '2023-09-06 18:13:10', NULL, '2023-09-06 18:13:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7307, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1695274241986920448\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"hupeng01\",\"userPhone\":\"180****0000\",\"userAddress\":\" 66\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":118,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693019851000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takeout\",\"numberId\":1007,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":null,\"id\":23,\"updateType\":\"orderSend\"}}', '2023-09-06 18:13:28', 300, 0, '', 'true', NULL, '2023-09-06 18:13:29', NULL, '2023-09-06 18:13:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7308, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1699369410948497408\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":98,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693996215000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1013,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693996215000,\"id\":29,\"updateType\":\"orderSend\"}}', '2023-09-06 18:30:34', 478, 0, '', 'true', NULL, '2023-09-06 18:30:34', NULL, '2023-09-06 18:30:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7309, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1699369410948497408\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":98,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693996215000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1013,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693996215000,\"id\":29,\"updateType\":\"orderSend\"}}', '2023-09-06 18:41:35', 400, 0, '', 'true', NULL, '2023-09-06 18:41:35', NULL, '2023-09-06 18:41:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7310, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1699369410948497408\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":98,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693996215000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1013,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693996215000,\"id\":29,\"updateType\":\"orderSend\"}}', '2023-09-06 18:47:22', 392, 0, '', 'true', NULL, '2023-09-06 18:47:22', NULL, '2023-09-06 18:47:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7311, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1699369410948497408\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":98,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693996215000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1013,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693996215000,\"id\":29,\"updateType\":\"orderSend\"}}', '2023-09-06 18:50:21', 391, 0, '', 'true', NULL, '2023-09-06 18:50:21', NULL, '2023-09-06 18:50:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7312, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":10,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"126\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-09-07 09:17:58', 60, 0, '', 'true', NULL, '2023-09-07 09:17:58', NULL, '2023-09-07 09:17:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7313, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/7599202df273d25f1ce3aeba21165a544849248fda23aad090098d7be0c063c9.jpeg\",\"images\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/22287e48511097e544b58fcf61f7660f32c4f8527450ca025f4d43a6db1d8489.jpeg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":10,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"126\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-09-07 09:24:55', 22, 0, '', 'true', NULL, '2023-09-07 09:24:55', NULL, '2023-09-07 09:24:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7314, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1699369410948497408\",\"extendOrderId\":null,\"uid\":6,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":98,\"totalPostage\":20,\"payPrice\":98,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1693996215000,\"payType\":\"yue\",\"status\":0,\"refundStatus\":0,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":null,\"refundReasonTime\":null,\"refundReasonWap\":null,\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1013,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1693996215000,\"id\":29,\"updateType\":\"orderSend\"}}', '2023-09-07 09:33:20', 828, 0, '', 'true', NULL, '2023-09-07 09:33:21', NULL, '2023-09-07 09:33:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7315, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-09-07 09:59:19', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-09-07 09:59:19', NULL, '2023-09-07 09:59:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7316, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-09-07 10:04:39', 6, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-09-07 10:04:39', NULL, '2023-09-07 10:04:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7317, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":17,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"keyword\":\"邮费的商品\",\"price\":2.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":99,\"description\":\"

邮费的商品

\",\"cost\":10.0,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":null,\"brokerage\":0.0,\"price\":0.01,\"cost\":10.0,\"stock\":99,\"integral\":0,\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"value1\":\"规格\",\"value2\":null,\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":100.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"http://127.0.0.1:48081/admin-api/infra/file/4/get/67a561f49151230b2ad2a92409267a86b107a5d9dc3bc39f342dbb1bc64f7d0a.jpeg\",\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"],\"store_name\":\"我的甜点\",\"store_info\":\"邮费的商品\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":0}}', '2023-09-07 10:04:54', 147, 0, '', 'true', NULL, '2023-09-07 10:04:55', NULL, '2023-09-07 10:04:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7318, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wx604d2ea4702620d2\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"3\"}}', '2023-09-07 10:15:34', 25, 0, '', 'true', NULL, '2023-09-07 10:15:34', NULL, '2023-09-07 10:15:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7319, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"wxPay\",\"appid\":\"wx604d2ea4702620d2\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"3\"}}', '2023-09-07 10:23:56', 23, 0, '', 'true', NULL, '2023-09-07 10:23:56', NULL, '2023-09-07 10:23:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7320, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"aliPay\",\"appid\":\"2021001187645179\",\"mchId\":\"2088821836348568\",\"certStoreType\":null,\"keyPrivate\":\"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=\",\"keyPublic\":\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://yshop.freehk.svipss.top/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA\",\"seller\":\"2088102169916436\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"1\"}}', '2023-09-07 16:43:04', 55, 0, '', 'true', NULL, '2023-09-07 16:43:04', NULL, '2023-09-07 16:43:04', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7321, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"aliPay\",\"appid\":\"2021001187645179\",\"mchId\":\"2088821836348568\",\"certStoreType\":null,\"keyPrivate\":\"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=\",\"keyPublic\":\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA\",\"seller\":\"2088102169916436\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":1,\"detailsId\":\"1\"}}', '2023-09-07 16:43:24', 6, 0, '', 'true', NULL, '2023-09-07 16:43:24', NULL, '2023-09-07 16:43:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7322, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"aliPay\",\"appid\":\"2021001187645179\",\"mchId\":\"2088821836348568\",\"certStoreType\":null,\"keyPrivate\":\"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=\",\"keyPublic\":\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA\",\"seller\":\"2088102169916436\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"1\"}}', '2023-09-07 17:53:48', 49, 0, '', 'true', NULL, '2023-09-07 17:53:48', NULL, '2023-09-07 17:53:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7323, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"payType\":\"aliPay\",\"appid\":\"2021001187645179\",\"mchId\":\"2088821836348568\",\"certStoreType\":\"STR\",\"keyPrivate\":\"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=\",\"keyPublic\":\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"RSA\",\"seller\":\"2088102169916436\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0,\"detailsId\":\"1\"}}', '2023-09-07 17:57:02', 12, 0, '', 'true', NULL, '2023-09-07 17:57:02', NULL, '2023-09-07 17:57:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7324, '', 1, 2, '管理后台 - 微信模板', '更新微信模板', 3, '', '', 'PUT', '/admin-api/message/wechat-template/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.message.controller.admin.wechattemplate.WechatTemplateController.updateWechatTemplate(WechatTemplateUpdateReqVO)', '{\"updateReqVO\":{\"tempkey\":\"pay_success\",\"name\":\"订单支付成功通知\",\"content\":\"\",\"tempid\":\"KBtfY9G1IWCzC6q-ZKo-Q-MmdP7aaF79nx0XFcBf3h4\",\"status\":1,\"type\":\"subscribe\",\"id\":16}}', '2023-09-11 15:35:56', 28, 0, '', 'true', NULL, '2023-09-11 15:35:56', NULL, '2023-09-11 15:35:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7325, '', 1, 2, '管理后台 - 用户', '更新用户余额与积分', 3, '', '', 'PUT', '/admin-api/member/user/updateMony', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.updateMony(UserUpdateMoneyReqVO)', '{\"updateReqVO\":{\"id\":13,\"ptype\":1,\"money\":\"10000\",\"itype\":1,\"integral\":\"0\"}}', '2023-09-11 16:28:54', 20, 0, '', 'true', NULL, '2023-09-11 16:28:54', NULL, '2023-09-11 16:28:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7326, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-12 18:09:42', 360, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png\"', NULL, '2023-09-12 18:09:42', NULL, '2023-09-12 18:09:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7327, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"退出.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png\"}}', '2023-09-12 18:09:42', 14, 0, '', '27', NULL, '2023-09-12 18:09:42', NULL, '2023-09-12 18:09:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7328, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"退出登录\",\"image\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/c54cb6c9433d32ade36d07bebbbd35fb5b2b836485b103a5bcf36cf47ccc9d61.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":\"/pages/components/pages/login/logout\",\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-09-12 18:10:11', 9, 0, '', '28', NULL, '2023-09-12 18:10:11', NULL, '2023-09-12 18:10:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7329, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 648, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7330, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 600, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7331, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 580, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7332, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 563, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7333, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:57', 666, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7334, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 598, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7335, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 663, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7336, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 631, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7337, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:57', 691, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7338, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:19:58', 706, 0, '', '\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7339, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"帮助.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"}}', '2023-09-14 10:19:58', 17, 0, '', '28', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7340, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"签到.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"}}', '2023-09-14 10:19:58', 27, 0, '', '29', NULL, '2023-09-14 10:19:58', NULL, '2023-09-14 10:19:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7341, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"货币兑换.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"}}', '2023-09-14 10:19:58', 47, 0, '', '30', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7342, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"客服.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"}}', '2023-09-14 10:19:58', 33, 0, '', '31', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7343, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"关于我们.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"}}', '2023-09-14 10:19:58', 34, 0, '', '32', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7344, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"账户.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"}}', '2023-09-14 10:19:58', 43, 0, '', '33', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7345, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分商城.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"}}', '2023-09-14 10:19:58', 81, 0, '', '34', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7346, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"退出登录.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"}}', '2023-09-14 10:19:58', 56, 0, '', '35', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7347, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"导航地址.png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"}}', '2023-09-14 10:19:58', 98, 0, '', '37', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7348, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"我的订单 (1).png\",\"url\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"}}', '2023-09-14 10:19:58', 116, 0, '', '36', NULL, '2023-09-14 10:19:59', NULL, '2023-09-14 10:19:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7349, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"数据库\",\"remark\":\"我是数据库\",\"id\":4,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"https://apidc.yixiang.co\"}}}', '2023-09-14 10:21:29', 114, 0, '', 'true', NULL, '2023-09-14 10:21:29', NULL, '2023-09-14 10:21:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7350, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 80, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7351, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 84, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7352, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 83, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7353, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 101, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7354, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 73, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7355, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 93, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7356, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 88, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7357, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 88, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7358, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 86, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7359, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:21:54', 101, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7360, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"帮助.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"}}', '2023-09-14 10:21:54', 43, 0, '', '38', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7361, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"客服.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"}}', '2023-09-14 10:21:54', 71, 0, '', '39', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7362, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"退出登录.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\"}}', '2023-09-14 10:21:54', 76, 0, '', '40', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7363, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"账户.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png\"}}', '2023-09-14 10:21:54', 82, 0, '', '41', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7364, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"关于我们.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\"}}', '2023-09-14 10:21:54', 75, 0, '', '43', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7365, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分商城.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\"}}', '2023-09-14 10:21:54', 84, 0, '', '42', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7366, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"导航地址.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\"}}', '2023-09-14 10:21:54', 77, 0, '', '46', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7367, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"签到.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png\"}}', '2023-09-14 10:21:54', 78, 0, '', '44', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7368, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"我的订单 (1).png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\"}}', '2023-09-14 10:21:54', 76, 0, '', '47', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7369, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"货币兑换.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\"}}', '2023-09-14 10:21:54', 90, 0, '', '45', NULL, '2023-09-14 10:21:54', NULL, '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7370, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:25:14', 38, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\"', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7371, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"u=1824446573,3306830779&fm=193&f=GIF.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\"}}', '2023-09-14 10:25:14', 18, 0, '', '48', NULL, '2023-09-14 10:25:14', NULL, '2023-09-14 10:25:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7372, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"0\",\"shopName\":\"全部\",\"id\":2}}', '2023-09-14 10:25:24', 17, 0, '', 'true', NULL, '2023-09-14 10:25:24', NULL, '2023-09-14 10:25:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7373, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":1}}', '2023-09-14 10:25:43', 19, 0, '', 'true', NULL, '2023-09-14 10:25:43', NULL, '2023-09-14 10:25:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7374, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 10:27:38', 24, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7375, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"u=1824446573,3306830779&fm=193&f=GIF.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"}}', '2023-09-14 10:27:38', 9, 0, '', '49', NULL, '2023-09-14 10:27:38', NULL, '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7376, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"isSwitch\":1,\"weigh\":2,\"shopId\":\"0\",\"shopName\":\"全部\",\"id\":2}}', '2023-09-14 10:27:43', 12, 0, '', 'true', NULL, '2023-09-14 10:27:43', NULL, '2023-09-14 10:27:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7377, '', 1, 2, '管理后台 - 广告图管理', '更新广告图管理', 3, '', '', 'PUT', '/admin-api/shop/ads/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.shopads.ShopAdsController.updateAds(ShopAdsUpdateReqVO)', '{\"updateReqVO\":{\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"isSwitch\":1,\"weigh\":1,\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"id\":1}}', '2023-09-14 10:27:55', 15, 0, '', 'true', NULL, '2023-09-14 10:27:55', NULL, '2023-09-14 10:27:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7378, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"退出登录\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/login/logout\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":28}}', '2023-09-14 16:31:52', 22, 0, '', 'true', NULL, '2023-09-14 16:31:52', NULL, '2023-09-14 16:31:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7379, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"关于我们\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png\",\"type\":\"content\",\"content\":\"

88888

\",\"pid\":0,\"appId\":\"\",\"pages\":\"\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":27}}', '2023-09-14 16:32:09', 12, 0, '', 'true', NULL, '2023-09-14 16:32:09', NULL, '2023-09-14 16:32:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7380, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 16:35:59', 18, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"', NULL, '2023-09-14 16:35:59', NULL, '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7381, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"帮助.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\"}}', '2023-09-14 16:35:59', 11, 0, '', '50', NULL, '2023-09-14 16:35:59', NULL, '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7382, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"帮助中心\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png\",\"type\":\"content\",\"content\":\"

66666

\",\"pid\":0,\"appId\":\"\",\"pages\":\"\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":26}}', '2023-09-14 16:36:24', 27, 0, '', 'true', NULL, '2023-09-14 16:36:24', NULL, '2023-09-14 16:36:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7383, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"我的地址\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/address/address\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":25}}', '2023-09-14 16:36:37', 9, 0, '', 'true', NULL, '2023-09-14 16:36:37', NULL, '2023-09-14 16:36:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7384, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 16:37:14', 23, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"', NULL, '2023-09-14 16:37:14', NULL, '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7385, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"客服.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\"}}', '2023-09-14 16:37:14', 11, 0, '', '51', NULL, '2023-09-14 16:37:14', NULL, '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7386, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"联系客服\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\",\"type\":\"call\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"\",\"phone\":\"18888888888\",\"weigh\":0,\"status\":1,\"id\":24}}', '2023-09-14 16:37:33', 11, 0, '', 'true', NULL, '2023-09-14 16:37:33', NULL, '2023-09-14 16:37:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7387, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"兑换订单\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/scoreproduct/order\",\"phone\":\"\",\"weigh\":0,\"status\":0,\"id\":23}}', '2023-09-14 16:38:02', 16, 0, '', 'true', NULL, '2023-09-14 16:38:02', NULL, '2023-09-14 16:38:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7388, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"积分商城\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png\",\"type\":\"pages\",\"content\":\"

rtete

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/scoreproduct/list\",\"phone\":\"\",\"weigh\":0,\"status\":0,\"id\":22}}', '2023-09-14 16:38:14', 14, 0, '', 'true', NULL, '2023-09-14 16:38:14', NULL, '2023-09-14 16:38:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7389, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"我的订单\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png\",\"type\":\"pages\",\"content\":\"

tetewt

\",\"pid\":0,\"appId\":\"\",\"pages\":\"/pages/components/pages/orders/orders\",\"phone\":\"\",\"weigh\":0,\"status\":1,\"id\":21}}', '2023-09-14 16:38:29', 11, 0, '', 'true', NULL, '2023-09-14 16:38:29', NULL, '2023-09-14 16:38:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7390, '', 1, 2, '管理后台 - 我的服务', '删除我的服务', 4, '', '', 'DELETE', '/admin-api/shop/service/delete', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.deleteService(Long)', '{\"id\":20}', '2023-09-14 16:38:44', 27, 0, '', 'true', NULL, '2023-09-14 16:38:44', NULL, '2023-09-14 16:38:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7391, '', 1, 2, '管理后台 - 我的服务', '删除我的服务', 4, '', '', 'DELETE', '/admin-api/shop/service/delete', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.deleteService(Long)', '{\"id\":23}', '2023-09-14 16:38:56', 9, 0, '', 'true', NULL, '2023-09-14 16:38:56', NULL, '2023-09-14 16:38:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7392, '', 1, 2, '管理后台 - 我的服务', '删除我的服务', 4, '', '', 'DELETE', '/admin-api/shop/service/delete', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.deleteService(Long)', '{\"id\":22}', '2023-09-14 16:39:00', 17, 0, '', 'true', NULL, '2023-09-14 16:39:00', NULL, '2023-09-14 16:39:00', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7393, '', 1, 2, '管理后台 - 商品分类', '更新商品分类', 3, '', '', 'PUT', '/admin-api/product/category/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.category.ProductCategoryController.updateCategory(ProductCategoryUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":2,\"shopName\":\"意向餐饮店\",\"parentId\":0,\"name\":\"主食\",\"picUrl\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png\",\"sort\":2,\"description\":\"

123

\",\"status\":0,\"id\":4}}', '2023-09-14 16:51:38', 77, 0, '', 'true', NULL, '2023-09-14 16:51:38', NULL, '2023-09-14 16:51:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7394, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/26', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":26,\"ruleName\":\"主食\",\"ruleValue\":[{\"value\":\"口味\",\"detail\":[\"微辣\",\"特辣\"]},{\"value\":\"份量\",\"detail\":[\"1人\",\"3人\"]}]},\"id\":26}', '2023-09-14 17:11:09', 26, 0, '', '1', NULL, '2023-09-14 17:11:09', NULL, '2023-09-14 17:11:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7395, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/25', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":25,\"ruleName\":\"饮料\",\"ruleValue\":[{\"value\":\"体积\",\"detail\":[\"10ml\",\"30ml\"]}]},\"id\":25}', '2023-09-14 17:12:22', 12, 0, '', '1', NULL, '2023-09-14 17:12:22', NULL, '2023-09-14 17:12:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7396, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-09-14 17:14:23', 2, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-09-14 17:14:23', NULL, '2023-09-14 17:14:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7397, '', 1, 2, '管理后台 - 素材库', '删除素材库', 4, '', '', 'DELETE', '/admin-api/shop/material/delete', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.deleteMaterial(Long)', '{\"id\":48}', '2023-09-14 17:15:25', 24, 0, '', 'true', NULL, '2023-09-14 17:15:25', NULL, '2023-09-14 17:15:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7398, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 17:21:32', 335, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\"', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7399, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"1.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\"}}', '2023-09-14 17:21:33', 12, 0, '', '52', NULL, '2023-09-14 17:21:33', NULL, '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7400, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 17:22:44', 30, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\"', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7401, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 17:22:44', 71, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\"', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7402, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-09-14 17:22:44', 105, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7403, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"2.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\"}}', '2023-09-14 17:22:44', 30, 0, '', '53', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7404, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"3.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\"}}', '2023-09-14 17:22:44', 12, 0, '', '54', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7405, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"4.jpg\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"}}', '2023-09-14 17:22:44', 10, 0, '', '55', NULL, '2023-09-14 17:22:44', NULL, '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7406, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":17}', '2023-09-14 17:22:52', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-09-14 17:22:52', NULL, '2023-09-14 17:22:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7407, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\",\"id\":17}', '2023-09-14 17:23:58', 27, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"value1\":\"10ml\",\"detail\":{\"体积\":\"10ml\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"detail\":{\"体积\":\"30ml\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"action\"}]}', NULL, '2023-09-14 17:23:58', NULL, '2023-09-14 17:23:58', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7408, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":17,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"keyword\":\"小蛋糕\",\"price\":0.01,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":41,\"stock\":58,\"description\":\"

小蛋糕

\",\"cost\":10.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.01,\"cost\":1.0,\"stock\":199,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"value1\":\"10ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":1.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.02,\"cost\":1.0,\"stock\":300,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"value1\":\"30ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":1.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\"],\"store_name\":\"小蛋糕\",\"store_info\":\"小蛋糕商品\",\"bar_code\":\"\",\"cate_id\":\"11\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":1,\"is_postage\":0,\"give_integral\":10.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":38,\"spec_type\":1}}', '2023-09-14 17:24:44', 121, 0, '', 'true', NULL, '2023-09-14 17:24:44', NULL, '2023-09-14 17:24:44', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7409, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"6寸\\\",\\\"7寸\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"黑白\\\",\\\"红色\\\",\\\"灰色\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":16}', '2023-09-14 17:24:50', 14, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"6寸\",\"7寸\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑白\",\"红色\",\"灰色\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"6寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"黑白\"},\"sku\":\"6寸,黑白\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":99.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":80,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"红色\"},\"sku\":\"6寸,红色\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":98.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"6寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"6寸\",\"颜色\":\"灰色\"},\"sku\":\"6寸,灰色\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":97.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"黑白\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"黑白\"},\"sku\":\"7寸,黑白\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":96.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"红色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"红色\"},\"sku\":\"7寸,红色\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":95.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"7寸\",\"value2\":\"灰色\",\"detail\":{\"尺寸\":\"7寸\",\"颜色\":\"灰色\"},\"sku\":\"7寸,灰色\",\"pic\":\"http://127.0.0.1:48081/admin-api/infra/file/4/get/f3535a59c688b0b51b935aad3ea459f22447a86d813b2a25d4458e47b32a6cc3.jpeg\",\"price\":94.00,\"cost\":200.00,\"ot_price\":200.00,\"stock\":93,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-09-14 17:24:50', NULL, '2023-09-14 17:24:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7410, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"}]}\",\"id\":16}', '2023-09-14 17:26:18', 9, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"}],\"value\":[{\"value1\":\"微辣\",\"value2\":\"1人\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"微辣\",\"value2\":\"3人\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"1人\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"3人\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"口味\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"份量\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-09-14 17:26:19', NULL, '2023-09-14 17:26:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7411, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/16', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"}]}\",\"id\":16}', '2023-09-14 17:26:19', 7, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"}],\"value\":[{\"value1\":\"微辣\",\"value2\":\"1人\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"微辣\",\"value2\":\"3人\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"1人\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"3人\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"口味\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"份量\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value2\",\"slot\":\"action\"}]}', NULL, '2023-09-14 17:26:19', NULL, '2023-09-14 17:26:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7412, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":16,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"土豆炒肉\",\"price\":94.0,\"otPrice\":null,\"postage\":10.0,\"sort\":0,\"sales\":14,\"stock\":555,\"description\":\"

多规格

\",\"cost\":200.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.03,\"cost\":1.0,\"stock\":996,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"微辣\",\"value2\":\"1人\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":1.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.02,\"cost\":1.0,\"stock\":994,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"微辣\",\"value2\":\"3人\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":2.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.04,\"cost\":3.0,\"stock\":666,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"特辣\",\"value2\":\"1人\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":4.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.01,\"cost\":4.0,\"stock\":777,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"特辣\",\"value2\":\"3人\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":6.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"土豆炒肉\",\"store_info\":\"多规格\",\"bar_code\":\"\",\"cate_id\":\"4\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-09-14 17:27:24', 46, 0, '', 'true', NULL, '2023-09-14 17:27:24', NULL, '2023-09-14 17:27:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7413, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":15}', '2023-09-14 17:27:26', 0, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-09-14 17:27:26', NULL, '2023-09-14 17:27:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7414, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/15', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\",\"id\":15}', '2023-09-14 17:28:05', 5, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"value1\":\"10ml\",\"detail\":{\"体积\":\"10ml\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"detail\":{\"体积\":\"30ml\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"action\"}]}', NULL, '2023-09-14 17:28:05', NULL, '2023-09-14 17:28:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7415, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":15,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\",\"keyword\":\"饮料\",\"price\":99.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":17,\"stock\":82,\"description\":\"

单规格商品

\",\"cost\":299.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.01,\"cost\":1.0,\"stock\":996,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\",\"value1\":\"10ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":2.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":0.05,\"cost\":3.0,\"stock\":997,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\",\"value1\":\"30ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":6.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\"],\"store_name\":\"饮料\",\"store_info\":\"单规格商品\",\"bar_code\":\"\",\"cate_id\":\"1\",\"unit_name\":\"个\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2023-09-14 17:28:33', 36, 0, '', 'true', NULL, '2023-09-14 17:28:33', NULL, '2023-09-14 17:28:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7416, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"yshop\",\"mobile\":\"18000000000\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"images\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"],\"address\":\"67号\",\"addressMap\":\"北京市东城区\",\"lng\":\"116.40403593222032\",\"lat\":\"39.91643892263258\",\"distance\":0,\"minPrice\":1,\"deliveryPrice\":2,\"notice\":\"2222\",\"status\":1,\"adminId\":[\"100\"],\"uniprintId\":\"2\",\"startTime\":1691300102000,\"endTime\":1691307302000,\"id\":3}}', '2023-09-14 17:30:31', 27, 0, '', 'true', NULL, '2023-09-14 17:30:31', NULL, '2023-09-14 17:30:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7417, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"意向餐饮店\",\"mobile\":\"18000000000\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"images\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"],\"address\":\"源汇区人民东路\",\"addressMap\":\"河南省漯河市源汇区团结路50号-20\",\"lng\":\"114.04877877439665\",\"lat\":\"33.57093831826829\",\"distance\":10,\"minPrice\":10,\"deliveryPrice\":20,\"notice\":\"新店开张\",\"status\":1,\"adminId\":[\"126\"],\"uniprintId\":\"1\",\"startTime\":1692406800000,\"endTime\":1692457200000,\"id\":2}}', '2023-09-14 17:30:59', 13, 0, '', 'true', NULL, '2023-09-14 17:30:59', NULL, '2023-09-14 17:30:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7418, '', 1, 2, '管理后台 - 用户个人中心', '修改用户个人密码', 3, '', '', 'PUT', '/admin-api/system/user/profile/update-password', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.user.UserProfileController.updateUserProfilePassword(UserProfileUpdatePasswordReqVO)', '{\"reqVO\":{\"oldPassword\":\"admin123\",\"newPassword\":\"xxyy8638004\"}}', '2023-09-14 17:34:56', 111, 0, '', 'true', NULL, '2023-09-14 17:34:56', NULL, '2023-09-14 17:34:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7419, '', 1, 2, '管理后台 - 优惠券', '更新优惠券', 3, '', '', 'PUT', '/admin-api/coupon/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.update(CouponUpdateReqVO)', '{\"updateReqVO\":{\"shopId\":\"2\",\"shopName\":\"意向餐饮店\",\"title\":\"意向店铺优惠券\",\"isSwitch\":1,\"least\":0.1,\"value\":0.02,\"startTime\":1691510400000,\"endTime\":1725033600000,\"weigh\":0,\"type\":0,\"exchangeCode\":\"666\",\"receive\":1,\"distribute\":100,\"score\":0,\"instructions\":\"111\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg\",\"limit\":1,\"id\":2}}', '2023-09-14 17:46:19', 24, 0, '', 'true', NULL, '2023-09-14 17:46:19', NULL, '2023-09-14 17:46:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7420, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"用户协议\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"type\":\"content\",\"content\":\"


软件许可及服务协议 (以下称”本协议”) 由您与河南星品科技有限公司(以下称“我们”)共同签署使用shopro商城软件(以下称许可软件)之前,请您仔细阅读本协议,特别是免除或者限制责任的条款、法律适用和争议解决条款免除或者限制责任的条款将以粗体标识,您需要重点阅读。如您对协议有任何疑问,可向客服咨询。如果您同意接受本协议条款和条件的约束,您可下载安装使用许可软件。我们如修改本协议或其补充协议,协议条款修改后,请您仔细阅读并接受修改后的协议后再继续使用许可软件。

本协议是您与我们之间关于您下载、安装、使用、登录本软件,以及使用本软件服务所订立的协议.

授权范围

1由于软件适配等台及终然限制。您名仅可在获授权的系统平台及终端使用许可软件,如将许可软件安装在其他终端设备上(括台式电脑、手提电脑、或授权终端外的其他手持移动终端、电现您应该理解许可软件仅可用于非商业目的,您不可为商业运营目的安装、使用、运行许可软件。3会对诗可软件及其相关能不时进行更、开级、修或,并会在许可软件系统中开发浙的功成其它服务,上冰新的以能、软件服务如无缺立场议的,仍司取得相应对能或服务的授权。、使用规范.您应该规范使用许可软件,以下方式是违反使用规范的:(1)从事违反法律法规政策、破坏公序良俗、损害公共利益的行为。(2)对许可软件及其中的相关信息自出租、出借、复制、修、能接、转载、汇编、发表、出版、建立像站点,借助许可软件发展与之有关的衍生产品、作品、服务、插件、外挂、容、互联等(3)通过非由我们及其关联公司开发、授权或认可的第三方兼容软件、系统登录或使用许可软件,或针对许可软件使用非我们及其关联公司开发、授权或认证的插件和外挂(4)删除许可软件及其他副本上关于版权的信息、内容。修改、删除或避开应用产品中我们为保护知识产权而设置的任何技术措施。未经我们的书面同意,擅自将许可软件出租、出借或再许可给第三方使用,或在获得许可软件的升级版本的许可使用后,同时使用多个版本的许可使用版本,或分开转让5)a大1?落存任制名营信息网络交全的行为,包括使用计司软件时以任何方式提坏或破不许可软件或使其不能运行或起负荷或干跃第=方对许软件的使用;未经允许进入他人计算机系统并制除、修改、增(8)利用许可软件发表、传送、传播、储存侵害他人知识产权、商业秘密权等合法权利的内容,或从事欺诈、盗用他人账户、资金等违法犯罪活动,(9)通过修改或伪造许可软件运行中的指令、数据、数包,增加、删减、变动许可软件的功能或运行效果,及/或将具有 上述用途的软件通过信息网络向公众传播或者运营(10)其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议不一致的方式使用许可软件。您理解并同意(1)我们会对您是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依约可采取的限制措施(2)对于您使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,我们会直接予以删除。(3)对于您违反上述使用规范的行为对任意第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保我们免于因此产生损失或增加费用。(4)如违反有关法律或者本协议之规定,使我们准受任何损失,或受到任何第三方的索赔,或受到任何行政管理门的处,应当赔偿我们因此造成的损失及(或)发生的费用,包括合理的律师秀

、第三方软件或服务

,许可软件可能使用或包含了由第三方提供的软件或服务(以下称该等服务了向您提供便利而设置,是取得该第三方的合法授权的3第点化的名供东该然是。美门 所 友成服博” 高但提当热用报风,的队, 们共中办本中中里了限务的任的权利,也大亲能建解许司较件车当锁律甲营摔的表框将较件搞金贫掉用来息追等服务,也无法保证将求不会他或包含该路三方的同关里或不同关亚的做件或服务或其他第三方的软4您理餐第二方需妻与核们进行您的信皇交与以便里好账人您提供服务,您同意在许司软件时使用该等服务的,然授们依《启私协议》 使用许可软件的信息传递给该第二方,或从该第系国。果该力端认您反了与之回关于使用该等服务的协议约定停止对提供该等服务并要求我们处理的会影响您继续使用许可软件,我们可能会中止、终止对

、隐私政策与数据

保护缘的人信息对我们很重要,我们制定了 德私协议》,您的信息收集、使用、共享、存、保等方面关系您切身利益的内容进行了重要,我们建议念完整地问读像私协议》,以帮助您更

、特别授权

nenn he、无担保和责任限制1.除法律法规有明确规定外,我们将尽最大努力确保许可软件及其所涉及的技术及信息安全、有效、准、可靠,但受限于现有技术,您理解我们不能对此进行担保。您理解,对于不可抗力及第三方原因导致的您的直接或间接损失,我们无法承担责任。.由于您因下述任一情况所起或与有关的人身伤害或附带的、间接的损害赔偿,包括但不限于利润损失、资料损失、业务中断的损害赔偿或其它商业损害赔偿或损失,需由您自行承担(1)使用或未能使用许可软件(2)第三方未经批准的使用许可软件或更改您的数据(3使用许可软件进行的行为产生的费用及损失;

(4)您对许可软件的误解;

(5)非因我们的原因而引起的与许可软件有关的其它损失在肃车部机感续越切开发#正式发布的美它例由许门软件书生的软件均民非法,下双、安装、使用此奖饮件,可能导政不可顶的风险,由此一生的法律责任与好与我们无关,我们有权中止、终1,您与其他使用许可软件的用户之间通过许可软件进行时,因您受误导或欺而导致或可能导致的任何心理、生理上的伤害以及经济上的损失,均应由过错方依法承担所有责任。八、知识产权1,我们拥有许可软件的著作权、商业秘察以及其他相关的知识产权,包括与许可软件有关的各种文档资料。象想关教需召盘们及缺们的人联公的知识一权,开资至阳关认法规的保未经们明说权,您不传复制、、使用或发布上标识,也不修改或湖味府用广品中体现我们及其,未经我们及我们的关联公司事先书面同意,您不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何第三方实施、利用、转让上述知识产九、协议终止和违约责任,您应理解按授权范围使用许可软件、尊重软件及软件包含内容的知识产权、按规范使用软件、技本协议约定履行义务是您获取我们授权使用软件的前提,如您严重违反本协议,我们将终止使用许可对软件的使用有载们关公司提供的配套服务,您违反与或我们关联公司条款、协议、规则、通告等相关规定,而被 述任 网站终止提供服务的,可能导致察无法正常使用许可软员想头进没起好为遭费学的且 界部电的第 减的图流公作,为对的济 早以公该条港开晚们快的与和的定进行处的,则们4.一旦怒违反本协议或与我们签订的其他协议的约定,我何通我们关联公司,要求其对的权益采取限制惜施,包活要求关联公司中止、终止对您提供份或全部服务,且在其经营或实际控制的网5许司款件电部下核平台下联取得,要要子下鞍台、系统平台、终 商对使许可软件方北与限的的定,如果上绝=方确认加土反读约定需要我们外理的,现们可能会因第三方要求终16.在本使用许可终止时,您应停止对许可软件的使用行为,并销毁许可软件的全部副本。7,如您违反本协议规定的条款,给我们或其他用户造成损失,您必须承担全部的赔偿责任,如我们承担了上述责任,则您同意赔偿我们的相关支出和失,包括合理的律师费用、管辖法律和可分割性,本协议之效力、解释、变更、执行与争议解决均适用中华人民共和国法律,如无相关法律规定的,则应参照通用国际商业惯例和(或)行业惯例.本协议由您与我们在郑州市金水区签署。因本协议产生或与本协议有关的争议,可与我们以友好协商的方式予以解决或提交有管辖权的人民法院予以裁决本协议任何条款被有管辖权的人民法院裁定为无效,不应影响其他条款或其任何部分的效力,您与我们仍应善意履行我们同能报都北多调而变更自您提供软件服多的主体,空史后的土休与您共同涨行本协议并向提供服务,以上安更不会响怒本协议项下的权益。发生争议时,您可根怒抱具体使用的服股务及对您8

.本协议的所有标题仅仅是为了醒目及阅读方便,本身并没有实际通义,不能作为解释本协议通义的依据

\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":0}}', '2023-09-15 11:16:05', 20, 0, '', '29', NULL, '2023-09-15 11:16:05', NULL, '2023-09-15 11:16:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7421, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"隐私政策\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"type\":\"content\",\"content\":\"

河南星品科技有限公司《以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的人人信息安全可靠。我们致力于维持您对我们的信任恪守以下原则,保护您的个人信息:权责一致原则、目的明原则、选择同意原则、最少够里原则、确保安全原则、主体参与原则,公开透明原则等同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。请在使用我们的shopro商城前,仔细阅读并了解本《隐私协议》、我们如何收集和使用您的个人信息个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:(一) 为您提供网上购物服务1、业务功能一: 注册成为用户为完成创建账号,您需提供以下信息: 您的姓名、手机号、创建的密码。在注州过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮号、呢称、头像、银行卡 身份证,但如果您不提供这些信息,将不会影响使用本服务的基本功能您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。

2、业务功能二:商品展示、个性化推荐、发送促销营销信息。

(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、ioS广告标识符 (IDFA)、安卓广告主标识、网卡 MAC 地国际杨设识别码 (ME) 、设号、终端制造 商、终端没作系统版本 会启司/停上时间、语言所在地 时区和网络态 WF等)、硬盘、CPU和电池传

用情况等。

(三) 其他使用情况

当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意,当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意.二、我们如何使用 Cookie 和同类技术

-) ooke万保风正常运药,我们会的-复机或备上名为 ke 文。oke 学包 站点以及-些号和字。助于 ooke。风是在的好或购物篮内的商品等数据。我不会将 Cookie 用于本政策所述目的之外的任何用途,您根自己的偏好管理或除 Cookie,您以清除计算上保存的所有 ookie,大部分网络浏览都设有阻止 Cookie 的能。(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。g,我们向您发送的电子生可能金有胜接至我刚内家的点走 LRL。如里您点击该能接,我们则会院业次点走,我们了解续的产品或明务好并改善客产务,网些信标国堂是一种我入到站或电子部件中的透明图像,借助于电子部件中的像索标签,我们能够获知电子部件是否打开。如果您不希望自己的活动以这种方式被追踪,则可以随时以我们的寄信名单中退订,(三) Do Not Track (请勿追踪)很多网络浏览露均设有 Do Not rack 能,该功向网站发布 D Not ak 请,目前,主要与联网准组织尚未没立相关第来机定网应对此类,但如您的浏览器启用了 DoNotTrack,那么我们的所有网站都会尊重您的选择。

我们如何共享、转让、公开披露您的个人信息

。

(一) 共享

我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外1、在获取明确同意的情况下共享: 获得您的明确同意后,我们会与其他方共享您的人人信息2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。4、与授权合作伙伴共享:仅为实现本私协议中声明的目的,我们的某些服务将由授权合作伙伴提供,我们可能会5合作伙伴共享您的某些个人信息,以提供更好的客产服务和用产体验例如,我们聘请来提供第三方数摆统计和分析服务的公司可能需要采集和问个人数据以进行数统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息

(二) 转让我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:1、在获取明确同意的情况下转让: 获得您的明确同意后,我们会向其他方转让您的个人信息2在涉及合并,收购或产清算时,如涉及到个人信息转让,我们会在要求新的特有您个人信息的公司、织续受得私政策的约束,双我们将要求该公司、组织重新向怒证求授权同意

(三) 开披露

我们仅会在以下情况下,公开披露您的个人信息

1、获得您明确同意后:

2、基于法律的披露: 在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息

四、我们如何保护您的个人信息

(一我们已使用符合业界标准的安全防护惜施保护您提供的个人信息,防止数遭到未经授权问公开孩露、使、修改、损坏或丢失我们会采取一切合理可行的挡施,保护您的个人信息,

,在您的浏览器5“服务” 之间交换数如信用卡信息 时受 SL 加密护,我同时对我们网提供 htps 安全方式:我会用加空技术保数的保空性我们会使用受信教的保护制防止教据遭到恶意政击,我们会部访问控制机制,确保只有授权人员才访问人信息:以及我们会举办安全和隐私保护培课程,加强员工对于保护人人信息重要性的认识,二我会采取一切合理可行的施,确保未收集无关的个人信息,我们只会在达成本政策术目的所需的期限内保留您的个人信息,除主需要延长保留期或受到法律的分许三)与联网并非绝对安全的环境,而且电子部件、即时通讯、及与其他我们用产的交流式并未加密,我们强烈建议您不要通过此类方式发送个人信息,请使用复杂密码,协助我们保证您的账号安全(四)互联网环境并非百分之百安全,我们将尽或担保您发送给我们的信息的安全,如果我们的物理、技术、或管理护设施到破坏,导致信息被非授权访问、公开被露、篡致、或毁坏导致您的合法权益受损,我们将承担相应的法律责任。(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响,我们已采取或将要采取的外置措施您可自主防范和降低风,险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。五、您的权利按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:(一) 访问您的个人信息您有权访问您的人人信息,法律法规规定的例外情况除外。如果您相行使数据访问权,可以通过以下方式自行访问:账户信息。一如果您希望访问或编您的账产中的个人资料信息和支付信息、更政您的密码、添加安全信息或关团您的账产等,您可以通过打开个人中心在设置里找理账产安全执行此类操作,搜索信息一一您可以在“我的”中访问或清除您的填写的历史记录、查看和修改以及管理其他数据。对于您在使用我们的产品或服务过程中产生的其他人人信息,只要我们不需要时多投入,我们会向您提供,如果您相行使数据访问权,请联系shopro客服(二) 更正您的个人信息当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。您可以通过 ”(一)访问您的个人信息”中罗列的方式提出更正申请。

(三) 删除您的个人信息在以下情形中,您可以向我们提出删除个人信息的请求:1、如果我们处理个人信息的行为违反法律法规;2、如果我们收集、使用您的个人信息,却未征得您的同意3、如果我们处理个人信息的行为违反了与您的约定;4、如果您不再使用我们的产品或服务,或您注销了账号5、如果我们不再为您提供产品或服务。

若我们们决定响应您的删除请求,我们还将同时通知从我们获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权当您从我们的服务中删除信息后,我们可能不会立即备份系统中删除相应的信息,但会在备份更新时删除这些信息。(四)改变您授权同意的范围每个业务功能需要一些基本的个人信息才能得以完成(见本协议“第一部分” 。对于外收集的个人信息的收集和使用,您可以随时给予或收回您的授权同意,您可以通过以下方式自行操作: 打shopro商城-我的-设置-账户安全当您收回同意后,我们将不再处理相应的个人信息。但您收回同意的决定,不会影响此前基于您的授权而开展的个人信息处理.

(五)个人信息主体注销账户您随时可注销此前注册的账户,您可以通过以下方式自行操作: 联系shopro客服在注销账户之后,我们将停止为您提供产品或服务,并依据您的要求,删除您的个人信息,法律法规另有规定的除外

(六) 约束信息系统自动决策

七) 响应您的上述请求为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再外理您的请求我们将在三十天内做出答复。如您不满意,还可以通过以下途径投诉:

在某些业务功能中,我们可能仅依据信息系统、算法等在内的非人工自动决策机制做出决定,如果这些决定显者影响您的合法权益,您有权要求我们做出解释,我们也将提供适当的救济方式.

个人中心-投诉建议

对子您合的情球我们原则上不收表。但对多次重复、超合理限度的清,我将情收取-定成本费用,对于那些重复、需要过多技术手段为,需要开发新系外根本上改变现行例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,我们可能会予以拒绝。在以下情形中,按照法律法规要求,我们将无法响应您的请求:1、与国家安全、国防安全有关的:

2、与公共安全、公共卫生、重大公共利益有关的;

3、与犯罪侦查、起诉和审判等有关的;4、有充分证据表明您存在主观恶意或滥田权利的:5、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。六、我们如何处理儿童的个人信息

我们的产品、网站和服务主要面向成人。如果没有父母或监护人的同意,儿童不得创建自己的用户账户。对于经父母同意而收集儿童个人信息的情况,我们只会在受到法律允许、父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息。尽管当地法律和习俗对儿童的定义不同,但我们将不满14周岁的任何人均视为儿童。如果我们发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息,则会设法尽快删除相关数据。七、您的个人信息如何在全球范围转移原则上,我们在中华人民共和国境内收集和产生的个人信息,将存储在中华人民共和国境内。中干我们通时追东全的咨源和条婴提出产品务、高时着、在获得您的授权同高后,您的个人信息可能会被装移到使里产品服务在国家 她区的道外管建区,或者受到来自这些管律区问。类管区可没有不同的教悟保护法,甚至未没立相关法律,在类情况下,我们会保您的个人信息得到在中华人民共和国境内足够同等的果护,1,我会求您对资境转移个人信息的同意或者在跨境数据转移之前实施数据去标识化等安全举措。八、本隐私协议如何更新找们J适时会对本总私协议进行调警或受奥本隐私协议小任何更新将以标汁更新时目队力式公什什我们网站上,余法律法规或监管规足另有经请警或受男的人谷经通知或公布后的日后生效。如您在隐私协议调整或变更后继续使用我们提供的任一服务或访问我们相关风站的,我们相信这代表您充分阅读、理解并接受修改后的隐和协议并受其约束,九、第三方SDK以及说明应用所集的第二方SDK:comigexin.sdk个准送)、com g gysdk/com.xaomimpush小米小米送、cmgetu数用,)、mhuaweilhms 华为为送、mamap.api高德图高德导航高德定阿里高德地图高德、om huawelagcomned 为为联用、cmalpay宝阿里乘车码阿里艺信实名认证艺以证、com.xlaomipush小小米推送)。我的产品基于DCouorun-appApp/Map2App发,应用行间需要收集您的设备一识(ME/nrodD/DEVICE D/DFASIM卡MS-信息)以提供统分务,并通时应用自可数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。

消息推送服务供应商(自启动)

我们可能会烧您的备平台 备商 备品 备识备信息,应列信息、 风经信息以及置相关信息供给合作以性,于为感得只治息在大安术务,我们在向感天消息5,我可能会授权合作伙伴进行链路调节,相互促活被关闭的SDK推送进程,保障您可以及时接收到我们向您准送的消息。使用场景: 推送订单付款、发货、售后以及余额提现、支付等系统类消息

微信一键登录/微信分享/微信支付 (关联启动)

可能获取信息类型;存储的个人文件设备权限: 读取外置存储器、写入外置存储器使用场景:注册登录账号、微信分享、朋友圈分享、微信小程序分享、用户下单付款、订单申请售后支付宝支付(关联启动)

设备权限: 读取网络状态

使用场景: 用户下单付款、订单申请售后隐私政策链接: https://render.alipay.com/p/c/k2cx0tg8高德地图 (自启动)可能获取信息类型 MEI、openid、位置信息设备权限:获取网络状态、访问Wi-F状态、位置信息、访问粗略位置、访问精准定位、读取手机状态和身份使用场景: 同城配送获取地址信息、同城自取自动推荐附近的门店隐私政策: https://lbs.amap.com/agreement/compliance

十、如何联系我们

如果您对本隐私政策有任何疑问、意见或建议,通过以下方式与我们联系:

邮箱: xptech@qg.com

一般情况下,我们将在三十天内回复。

\",\"pid\":null,\"appId\":null,\"pages\":null,\"phone\":null,\"weigh\":null,\"status\":0}}', '2023-09-15 11:18:26', 39, 0, '', '30', NULL, '2023-09-15 11:18:26', NULL, '2023-09-15 11:18:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7422, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"用户协议\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"type\":\"content\",\"content\":\"

本软件许可及服务协议(以下称\\\"本协议\\\")由您与河南星品科技有限公司(以下称“我们”)共同签署。


在使用shopro商城软件(以下称许可软件)之前,请您仔细阅读本协议,特别是免除或者限制责任的条款、法律适用和争议解决条款。


免除或者限制责任的条款将以粗体标识,您需要重点阅读。如您对协议有任何疑问,可向客服咨询。


如果您同意接受本协议条款和条件的约束,您可下载安装使用许可软件。


我们如修改本协议或其补充协议,协议条款修改后,请您仔细阅读并接受修改后的协议后再继续使用许可软件。


一、 定义


   

1. 本协议是您与我们之间关于您下载、安装、使用、登录本软件,以及使用本软件服务所订立的协议。


二、授权范围

   

1. 由于软件适配平台及终端限制,您理解您仅可在获授权的系统平台及终端使用许可软件,如您将许可软件安装在其他终端设备上(包括台式电脑、手提电脑、或授权终端外的其他手持移动终端、电视机及机顶盒等),可能会对您硬件或软件功能造成损害。

   

2. 您应该理解许可软件仅可用于非商业目的,您不可为商业运营目的安装、使用、运行许可软件。

 

3. 我们会对许可软件及其相关功能不时进行变更、升级、修改或转移,并会在许可软件系统中开发新的功能或其它服务。上述新的功能、软件服务如无独立协议的,您仍可取得相应功能或服务的授权,并可适用本协议。


三、使用规范

   

1. 您应该规范使用许可软件,以下方式是违反使用规范的:

 

(1)从事违反法律法规政策、破坏公序良俗、损害公共利益的行为。

   

(2)对许可软件及其中的相关信息擅自出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点,借助许可软件发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等。

   

(3)通过非由我们及其关联公司开发、授权或认可的第三方兼容软件、系统登录或使用许可软件,或针对许可软件使用非我们及其关联公司开发、授权或认证的插件和外挂。

   

(4)删除许可软件及其他副本上关于版权的信息、内容。修改、删除或避开应用产品中我们为保护知识产权而设置的任何技术措施。

   

(5)未经我们的书面同意,擅自将许可软件出租、出借或再许可给第三方使用,或在获得许可软件的升级版本的许可使用后,同时使用多个版本的许可使用版本,或分开转让。

   

(6)复制、反汇编、修改许可软件或其任何部分或制造其衍生作品;对许可软件或者许可软件运行过程中释放在终端中的任何数据及许可软件运行过程中终端与服务器端的交互数据进行复制、修改、挂接运行或创作任何衍生作品,包括使用插件、外挂或非经授权的第三方工具/服务接入许可软件和相关系统等形式。

   

(7) 进行任何危害信息网络安全的行为,包括使用许可软件时以任何方式损坏或破坏许可软件或使其不能运行或超负荷或干扰第三方对许可软件的使用;未经允许进入他人计算机系统并删除、修改、增加存储信息;故意传播恶意程序或病毒以及其他破坏、干扰正常网络信息服务的行为。

 

(8)利用许可软件发表、传送、传播、储存侵害他人知识产权、商业秘密权等合法权利的内容,或从事欺诈、盗用他人账户、资金等违法犯罪活动。

 

(9)通过修改或伪造许可软件运行中的指令、数据、数据包,增加、删减、变动许可软件的功能或运行效果,及/或将具有上述用途的软件通过信息网络向公众传播或者运营。

 

(10)其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议不一致的方式使用许可软件。

2. 您理解并同意

   

(1)我们会对您是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依约可采取的限制措施。

   

(2)对于您使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,我们会直接予以删除。

   

(3)对于您违反上述使用规范的行为对任意第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保我们免于因此产生损失或增加费用。

 

(4)如您违反有关法律或者本协议之规定,使我们遭受任何损失,或受到任何第三方的索赔,或受到任何行政管理部门的处罚,您应当赔偿我们因此造成的损失及(或)发生的费用,包括合理的律师费用、调查取证费用。


四、第三方软件或服务

     

1. 许可软件可能使用或包含了由第三方提供的软件或服务(以下称该等服务),该等服务是为了向您提供便利而设置,是取得该第三方的合法授权的。

   

2. 由于第三方为其软件或服务的提供者,您使用该等服务时,应另行与该第三方达成服务协议,支付相应费用并承担可能的风险。您应理解我们并无权在本协议中授予您使用该等服务的任何权利,也无权对该等服务提供任何形式的保证。我们无法对该等服务提供客户支持,如果您需要获取支持,您可直接与该第三方联系。因您使用该等服务引发的任何纠纷,您可直接与该第三方协商解决。

     

3. 您理解许可软件仅在当前使用或包含该等服务,我们无法保证许可软件将会永久地使用或包含该等服务,也无法保证将来不会使用或包含该第三方的同类型或不同类型的软件或服务或其他第三方的软件或服务,一旦我们在许可软件中使用或包含前述软件或服务,相应的软件或服务同样适用本条约定。

   

4. 您理解第三方需要与我们进行您的信息交互以便更好地为您提供服务,您同意在使用许可软件时如使用该等服务的,您授权我们依据《隐私协议》您使用许可软件的信息传递给该第三方,或从该第三方获取您注册或使用该等服务时提供或产生的信息。如果您不希望第三方获取您的信息的,您可停止使用该等服务,我们将停止向第三方传递您的信息。

   

5. 您同意,如果该第三方确认您违反了您与其之间关于使用该等服务的协议约定停止对您提供该等服务并要求我们处理的,由于停止该等服务可能会影响您继续使用许可软件,我们可能会中止、终止对你的使用许可或采取其他我们可对您采取的限制措施。

五、隐私政策与数据

河南星品科技有限公司(以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。

我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。

同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。

请在使用我们的shopro商城前,仔细阅读并了解本《隐私协议》。


一、我们如何收集和使用您的个人信息


个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。

我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:


(一)为您提供网上购物服务  


1、业务功能一:注册成为用户为完成创建账号,您需提供以下信息:您的姓名、手机号、创建的密码。


在注册过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮箱号、昵称、头像、银行卡、身份证。但如果您不提供这些信息,将不会影响使用本服务的基本功能。


您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。


上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。


2、业务功能二:商品展示、个性化推荐、发送促销营销信息。


(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务


我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。


我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、iOS广告标识符(IDFA)、安卓广告主标识符、网卡(MAC)地址、国际移动设备识别码(IMEI)、设备型号、终端制造厂商、终端设备操作系统版本、会话启动/停止时间、语言所在地、时区和网络状态(WiFi等)、硬盘、CPU和电池使用情况等。


(三)其他使用情况


当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意。

当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意。


二、我们如何使用 Cookie 和同类技术


(一)Cookie为确保网站正常运转,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。Cookie 通常包含标识符、站点名称以及一些号码和字符。借助于 Cookie,网站能够存储您的偏好或购物篮内的商品等数据。


我们不会将 Cookie 用于本政策所述目的之外的任何用途。您可根据自己的偏好管理或删除 Cookie。您可以清除计算机上保存的所有 Cookie,大部分网络浏览器都设有阻止 Cookie 的功能。


(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。

例如,我们向您发送的电子邮件可能含有链接至我们网站内容的点击 URL。如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好并改善客户服务。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,我们能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。


(三)Do Not Track(请勿追踪)


很多网络浏览器均设有 Do Not Track 功能,该功能可向网站发布 Do Not Track 请求。目前,主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求。但如果您的浏览器启用了 Do Not Track,那么我们的所有网站都会尊重您的选择。


三、我们如何共享、转让、公开披露您的个人信息


(一)共享


我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外:



1、在获取明确同意的情况下共享:获得您的明确同意后,我们会与其他方共享您的个人信息。


2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息。


3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束。

关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。


4、与授权合作伙伴共享:仅为实现本隐私协议中声明的目的,我们的某些服务将由授权合作伙伴提供。我们可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。


例如,我们聘请来提供第三方数据统计和分析服务的公司可能需要采集和访问个人数据以进行数据统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。


我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。


对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息。


(二)转让


我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:


1、在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;


2、在涉及合并、收购或破产清算时,如涉及到个人信息转让,我们会在要求新的持有您个人信息的公司、组织继续受此隐私政策的约束,否则我们将要求该公司、组织重新向您征求授权同意。


(三)公开披露


我们仅会在以下情况下,公开披露您的个人信息:


1、获得您明确同意后;


2、基于法律的披露:在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息。


四、我们如何保护您的个人信息


(一)我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。


例如,在您的浏览器与“服务”之间交换数据(如信用卡信息)时受 SSL 加密保护;我们同时对我们网站提供 https 安全浏览方式;我们会使用加密技术确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。


(二)我们会采取一切合理可行的措施,确保未收集无关的个人信息。我们只会在达成本政策所述目的所需的期限内保留您的个人信息,除非需要延长保留期或受到法律的允许。


(三)互联网并非绝对安全的环境,而且电子邮件、即时通讯、及与其他我们用户的交流方式并未加密,我们强烈建议您不要通过此类方式发送个人信息。请使用复杂密码,协助我们保证您的账号安全。


(四)互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。


(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。


同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


五、您的权利


按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:


(一)访问您的个人信息


您有权访问您的个人信息,法律法规规定的例外情况除外。如果您想行使数据访问权,可以通过以下方式自行访问:


账户信息——如果您希望访问或编辑您的账户中的个人资料信息和支付信息、更改您的密码、添加安全信息或关闭您的账户等,您可以通过打开个人中心在设置里找到账户安全执行此类操作。


搜索信息——您可以在“我的”中访问或清除您的填写的历史记录、查看和修改以及管理其他数据。


对于您在使用我们的产品或服务过程中产生的其他个人信息,只要我们不需要过多投入,我们会向您提供。如果您想行使数据访问权,请联系shopro客服。


(二)更正您的个人信息


当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。


您可以通过“(一)访问您的个人信息”中罗列的方式提出更正申请。


(三)删除您的个人信息


在以下情形中,您可以向我们提出删除个人信息的请求:


1、如果我们处理个人信息的行为违反法律法规;


2、如果我们收集、使用您的个人信息,却未征得您的同意;


3、如果我们处理个人信息的行为违反了与您的约定;


4、如果您不再使用我们的产品或服务,或您注销了账号;


5、如果我们不再为您提供产品或服务。



...', '2023-09-15 16:38:37', 22, 0, '', 'true', NULL, '2023-09-15 16:38:37', NULL, '2023-09-15 16:38:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7424, '', 1, 2, '管理后台 - 我的服务', '更新我的服务', 3, '', '', 'PUT', '/admin-api/shop/service/update', '223.91.183.56', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.updateService(ServiceUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"隐私政策\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"type\":\"content\",\"content\":\"

漯河市大有前途网络科技有限公司(以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。

我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。

同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。

请在使用我们的yshop-drink点餐系统前,仔细阅读并了解本《隐私协议》。


一、我们如何收集和使用您的个人信息


个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。

我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:


(一)为您提供网上购物服务  


1、业务功能一:注册成为用户为完成创建账号,您需提供以下信息:您的姓名、手机号、创建的密码。


在注册过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮箱号、昵称、头像、银行卡、身份证。但如果您不提供这些信息,将不会影响使用本服务的基本功能。


您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。


上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。


2、业务功能二:商品展示、个性化推荐、发送促销营销信息。


(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务


我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。


我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、iOS广告标识符(IDFA)、安卓广告主标识符、网卡(MAC)地址、国际移动设备识别码(IMEI)、设备型号、终端制造厂商、终端设备操作系统版本、会话启动/停止时间、语言所在地、时区和网络状态(WiFi等)、硬盘、CPU和电池使用情况等。


(三)其他使用情况


当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意。

当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意。


二、我们如何使用 Cookie 和同类技术


(一)Cookie为确保网站正常运转,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。Cookie 通常包含标识符、站点名称以及一些号码和字符。借助于 Cookie,网站能够存储您的偏好或购物篮内的商品等数据。


我们不会将 Cookie 用于本政策所述目的之外的任何用途。您可根据自己的偏好管理或删除 Cookie。您可以清除计算机上保存的所有 Cookie,大部分网络浏览器都设有阻止 Cookie 的功能。


(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。

例如,我们向您发送的电子邮件可能含有链接至我们网站内容的点击 URL。如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好并改善客户服务。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,我们能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。


(三)Do Not Track(请勿追踪)


很多网络浏览器均设有 Do Not Track 功能,该功能可向网站发布 Do Not Track 请求。目前,主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求。但如果您的浏览器启用了 Do Not Track,那么我们的所有网站都会尊重您的选择。


三、我们如何共享、转让、公开披露您的个人信息


(一)共享


我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外:



1、在获取明确同意的情况下共享:获得您的明确同意后,我们会与其他方共享您的个人信息。


2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息。


3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束。

关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。


4、与授权合作伙伴共享:仅为实现本隐私协议中声明的目的,我们的某些服务将由授权合作伙伴提供。我们可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。


例如,我们聘请来提供第三方数据统计和分析服务的公司可能需要采集和访问个人数据以进行数据统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。


我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。


对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息。


(二)转让


我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:


1、在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;


2、在涉及合并、收购或破产清算时,如涉及到个人信息转让,我们会在要求新的持有您个人信息的公司、组织继续受此隐私政策的约束,否则我们将要求该公司、组织重新向您征求授权同意。


(三)公开披露


我们仅会在以下情况下,公开披露您的个人信息:


1、获得您明确同意后;


2、基于法律的披露:在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息。


四、我们如何保护您的个人信息


(一)我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。


例如,在您的浏览器与“服务”之间交换数据(如信用卡信息)时受 SSL 加密保护;我们同时对我们网站提供 https 安全浏览方式;我们会使用加密技术确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。


(二)我们会采取一切合理可行的措施,确保未收集无关的个人信息。我们只会在达成本政策所述目的所需的期限内保留您的个人信息,除非需要延长保留期或受到法律的允许。


(三)互联网并非绝对安全的环境,而且电子邮件、即时通讯、及与其他我们用户的交流方式并未加密,我们强烈建议您不要通过此类方式发送个人信息。请使用复杂密码,协助我们保证您的账号安全。


(四)互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。


(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。


同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


五、您的权利


按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:


(一)访问您的个人信息


您有权访问您的个人信息,法律法规规定的例外情况除外。如果您想行使数据访问权,可以通过以下方式自行访问:


账户信息——如果您希望访问或编辑您的账户中的个人资料信息和支付信息、更改您的密码、添加安全信息或关闭您的账户等,您可以通过打开个人中心在设置里找到账户安全执行此类操作。


搜索信息——您可以在“我的”中访问或清除您的填写的历史记录、查看和修改以及管理其他数据。


对于您在使用我们的产品或服务过程中产生的其他个人信息,只要我们不需要过多投入,我们会向您提供。如果您想行使数据访问权,请联系yshop客服。


(二)更正您的个人信息


当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。


您可以通过“(一)访问您的个人信息”中罗列的方式提出更正申请。


(三)删除您的个人信息


在以下情形中,您可以向我们提出删除个人信息的请求:


1、如果我们处理个人信息的行为违反法律法规;


2、如果我们收集、使用您的个人信息,却未征得您的同意;


3、如果我们处理个人信息的行为违反了与您的约定;


4、如果您不再使用我们的产品或服务,或您注销了账号;


5、如果我们不再为您提供产品或服务。



本软件许可及服务协议(以下称\\\"本协议\\\")由您与漯河市大有前途网络科技有限公司(以下称“我们”)共同签署。


在使用yshop-drink点餐系统软件(以下称许可软件)之前,请您仔细阅读本协议,特别是免除或者限制责任的条款、法律适用和争议解决条款。


免除或者限制责任的条款将以粗体标识,您需要重点阅读。如您对协议有任何疑问,可向客服咨询。


如果您同意接受本协议条款和条件的约束,您可下载安装使用许可软件。


我们如修改本协议或其补充协议,协议条款修改后,请您仔细阅读并接受修改后的协议后再继续使用许可软件。


一、 定义


   

1. 本协议是您与我们之间关于您下载、安装、使用、登录本软件,以及使用本软件服务所订立的协议。


二、授权范围

   

1. 由于软件适配平台及终端限制,您理解您仅可在获授权的系统平台及终端使用许可软件,如您将许可软件安装在其他终端设备上(包括台式电脑、手提电脑、或授权终端外的其他手持移动终端、电视机及机顶盒等),可能会对您硬件或软件功能造成损害。

   

2. 您应该理解许可软件仅可用于非商业目的,您不可为商业运营目的安装、使用、运行许可软件。

 

3. 我们会对许可软件及其相关功能不时进行变更、升级、修改或转移,并会在许可软件系统中开发新的功能或其它服务。上述新的功能、软件服务如无独立协议的,您仍可取得相应功能或服务的授权,并可适用本协议。


三、使用规范

   

1. 您应该规范使用许可软件,以下方式是违反使用规范的:

 

(1)从事违反法律法规政策、破坏公序良俗、损害公共利益的行为。

   

(2)对许可软件及其中的相关信息擅自出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点,借助许可软件发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等。

   

(3)通过非由我们及其关联公司开发、授权或认可的第三方兼容软件、系统登录或使用许可软件,或针对许可软件使用非我们及其关联公司开发、授权或认证的插件和外挂。

   

(4)删除许可软件及其他副本上关于版权的信息、内容。修改、删除或避开应用产品中我们为保护知识产权而设置的任何技术措施。

   

(5)未经我们的书面同意,擅自将许可软件出租、出借或再许可给第三方使用,或在获得许可软件的升级版本的许可使用后,同时使用多个版本的许可使用版本,或分开转让。

   

(6)复制、反汇编、修改许可软件或其任何部分或制造其衍生作品;对许可软件或者许可软件运行过程中释放在终端中的任何数据及许可软件运行过程中终端与服务器端的交互数据进行复制、修改、挂接运行或创作任何衍生作品,包括使用插件、外挂或非经授权的第三方工具/服务接入许可软件和相关系统等形式。

   

(7) 进行任何危害信息网络安全的行为,包括使用许可软件时以任何方式损坏或破坏许可软件或使其不能运行或超负荷或干扰第三方对许可软件的使用;未经允许进入他人计算机系统并删除、修改、增加存储信息;故意传播恶意程序或病毒以及其他破坏、干扰正常网络信息服务的行为。

 

(8)利用许可软件发表、传送、传播、储存侵害他人知识产权、商业秘密权等合法权利的内容,或从事欺诈、盗用他人账户、资金等违法犯罪活动。

 

(9)通过修改或伪造许可软件运行中的指令、数据、数据包,增加、删减、变动许可软件的功能或运行效果,及/或将具有上述用途的软件通过信息网络向公众传播或者运营。

 

(10)其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议不一致的方式使用许可软件。

2. 您理解并同意

   

(1)我们会对您是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依约可采取的限制措施。

   

(2)对于您使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,我们会直接予以删除。

   

(3)对于您违反上述使用规范的行为对任意第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保我们免于因此产生损失或增加费用。

 

(4)如您违反有关法律或者本协议之规定,使我们遭受任何损失,或受到任何第三方的索赔,或受到任何行政管理部门的处罚,您应当赔偿我们因此造成的损失及(或)发生的费用,包括合理的律师费用、调查取证费用。


四、第三方软件或服务

     

1. 许可软件可能使用或包含了由第三方提供的软件或服务(以下称该等服务),该等服务是为了向您提供便利而设置,是取得该第三方的合法授权的。

   

2. 由于第三方为其软件或服务的提供者,您使用该等服务时,应另行与该第三方达成服务协议,支付相应费用并承担可能的风险。您应理解我们并无权在本协议中授予您使用该等服务的任何权利,也无权对该等服务提供任何形式的保证。我们无法对该等服务提供客户支持,如果您需要获取支持,您可直接与该第三方联系。因您使用该等服务引发的任何纠纷,您可直接与该第三方协商解决。

     

3. 您理解许可软件仅在当前使用或包含该等服务,我们无法保证许可软件将会永久地使用或包含该等服务,也无法保证将来不会使用或包含该第三方的同类型或不同类型的软件或服务或其他第三方的软件或服务,一旦我们在许可软件中使用或包含前述软件或服务,相应的软件或服务同样适用本条约定。

   

4. 您理解第三方需要与我们进行您的信息交互以便更好地为您提供服务,您同意在使用许可软件时如使用该等服务的,您授权我们依据《隐私协议》您使用许可软件的信息传递给该第三方,或从该第三方获取您注册或使用该等服务时提供或产生的信息。如果您不希望第三方获取您的信息的,您可停止使用该等服务,我们将停止向第三方传递您的信息。

   

5. 您同意,如果该第三方确认您违反了您与其之间关于使用该等服务的协议约定停止对您提供该等服务并要求我们处理的,由于停止该等服务可能会影响您继续使用许可软件,我们可能会中止、终止对你的使用许可或采取其他我们可对您采取的限制措施。

五、隐私政策与数据

漯河市大有前途网络科技有限公司(以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。

我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。

同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。

请在使用我们的yshop-drink点餐系统前,仔细阅读并了解本《隐私协议》。


一、我们如何收集和使用您的个人信息


个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。

我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:


(一)为您提供网上购物服务  


1、业务功能一:注册成为用户为完成创建账号,您需提供以下信息:您的姓名、手机号、创建的密码。


在注册过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮箱号、昵称、头像、银行卡、身份证。但如果您不提供这些信息,将不会影响使用本服务的基本功能。


您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。


上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。


2、业务功能二:商品展示、个性化推荐、发送促销营销信息。


(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务


我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。


我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、iOS广告标识符(IDFA)、安卓广告主标识符、网卡(MAC)地址、国际移动设备识别码(IMEI)、设备型号、终端制造厂商、终端设备操作系统版本、会话启动/停止时间、语言所在地、时区和网络状态(WiFi等)、硬盘、CPU和电池使用情况等。


(三)其他使用情况


当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意。

当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意。


二、我们如何使用 Cookie 和同类技术


(一)Cookie为确保网站正常运转,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。Cookie 通常包含标识符、站点名称以及一些号码和字符。借助于 Cookie,网站能够存储您的偏好或购物篮内的商品等数据。


我们不会将 Cookie 用于本政策所述目的之外的任何用途。您可根据自己的偏好管理或删除 Cookie。您可以清除计算机上保存的所有 Cookie,大部分网络浏览器都设有阻止 Cookie 的功能。


(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。

例如,我们向您发送的电子邮件可能含有链接至我们网站内容的点击 URL。如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好并改善客户服务。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,我们能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。


(三)Do Not Track(请勿追踪)


很多网络浏览器均设有 Do Not Track 功能,该功能可向网站发布 Do Not Track 请求。目前,主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求。但如果您的浏览器启用了 Do Not Track,那么我们的所有网站都会尊重您的选择。


三、我们如何共享、转让、公开披露您的个人信息


(一)共享


我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外:


1、在获取明确同意的情况下共享:获得您的明确同意后,我们会与其他方共享您的个人信息。


2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息。


3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束。

关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。


4、与授权合作伙伴共享:仅为实现本隐私协议中声明的目的,我们的某些服务将由授权合作伙伴提供。我们可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。


例如,我们聘请来提供第三方数据统计和分析服务的公司可能需要采集和访问个人数据以进行数据统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。


我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。


对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息。


(二)转让


我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:


1、在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;


2、在涉及合并、收购或破产清算时,如涉及到个人信息转让,我们会在要求新的持有您个人信息的公司、组织继续受此隐私政策的约束,否则我们将要求该公司、组织重新向您征求授权同意。


(三)公开披露


我们仅会在以下情况下,公开披露您的个人信息:


1、获得您明确同意后;


2、基于法律的披露:在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息。


四、我们如何保护您的个人信息


(一)我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。


例如,在您的浏览器与“服务”之间交换数据(如信用卡信息)时受 SSL 加密保护;我们同时对我们网站提供 https 安全浏览方式;我们会使用加密技术确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。


(二)我们会采取一切合理可行的措施,确保未收集无关的个人信息。我们只会在达成本政策所述目的所需的期限内保留您的个人信息,除非需要延长保留期或受到法律的允许。


(三)互联网并非绝对安全的环境,而且电子邮件、即时通讯、及与其他我们用户的交流方式并未加密,我们强烈建议您不要通过此类方式发送个人信息。请使用复杂密码,协助我们保证您的账号安全。


(四)互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。


(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。


同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


五、您的权利


按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:


(一)访问您的个人信息


您有权访问您的个人信息,法律法规规定的例外情况除外。如果您想行使数据访问权,可以通过以下方式自行访问:


账户信息——如果您希望访问或编辑您的账户中的个人资料信息和支付信息、更改您的密码、添加安全信息或关闭您的账户等,您可以通过打开个人中心在设置里找到账户安全执行此类操作。


对于您在使用我们的产品或服务过程中产生的其他个人信息,只要我们不需要过多投入,我们会向您提供。如果您想行使数据访问权,请联系yshop客服。


(二)更正您的个人信息


当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。


您可以通过“(一)访问您的个人信息”中罗列的方式提出更正申请。


(三)删除您的个人信息


在以下情形中,您可以向我们提出删除个人信息的请求:


1、如果我们处理个人信息的行为违反法律法规;


2、如果我们收集、使用您的个人信息,却未征得您的同意;


3、如果我们处理个人信息的行为违反了与您的约定;


4、如果您不再使用我们的产品或服务,或您注销了账号;


5、如果我们不再为您提供产品或服务。


若我们决定响应您的删除请求,我们还将同时通知从我们获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权。


11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"1\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"11\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 17:03:35', 414, 0, '', 'true', NULL, '2023-10-13 17:03:35', NULL, '2023-10-13 17:03:35', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7454, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"1111\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"11\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 17:04:04', 87, 0, '', 'true', NULL, '2023-10-13 17:04:05', NULL, '2023-10-13 17:04:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7455, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"2222\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"11\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 17:04:26', 53, 0, '', 'true', NULL, '2023-10-13 17:04:26', NULL, '2023-10-13 17:04:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7456, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"4444\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"4\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 17:29:08', 171, 0, '', 'true', NULL, '2023-10-13 17:29:08', NULL, '2023-10-13 17:29:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7457, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"5555\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"1\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 17:29:21', 56, 0, '', 'true', NULL, '2023-10-13 17:29:22', NULL, '2023-10-13 17:29:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7458, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"6666\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"1\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 18:15:14', 203, 0, '', 'true', NULL, '2023-10-13 18:15:14', NULL, '2023-10-13 18:15:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7459, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"7777\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"4\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 18:15:29', 129, 0, '', 'true', NULL, '2023-10-13 18:15:29', NULL, '2023-10-13 18:15:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7460, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":0,\"shopId\":2,\"shopName\":null,\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":1.0,\"postage\":0.0,\"sort\":0,\"sales\":null,\"stock\":11,\"description\":\"

11

\",\"cost\":null,\"ficti\":0,\"items\":[],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":11.0,\"stock\":11,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"规格\":\"默认\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":11.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"8888\",\"store_info\":\"\",\"bar_code\":null,\"cate_id\":\"4\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":null,\"is_benefit\":null,\"is_best\":null,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":null,\"is_sub\":0,\"is_integral\":0,\"temp_id\":null,\"spec_type\":0}}', '2023-10-13 18:15:39', 86, 0, '', 'true', NULL, '2023-10-13 18:15:39', NULL, '2023-10-13 18:15:39', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7461, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"detailsId\":\"6\",\"payType\":\"aliPay\",\"appid\":\"2021001187645179\",\"mchId\":\" 2088821836348568\",\"certStoreType\":null,\"keyPrivate\":\"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAg588CxTezsPtMT4WcLXUyzyf0qBnzSACek820D4RLdJ0KiOfQzAe3MK1rEaywwWNMJbwrKoEp/bA6DNTRsXvzZ8tF1F5MXi6GdETn3ItHGdwasJM28hvZX2plYY5aQYEpqGZJBlgfQRkeYSe1pwq4JzAELXNzVbtuokssVq3WKVVIIFXEuHxrsC1SGssn0enFd7Q6kUq1O1JLcAQWAHjf9gdVFfzXex0yN6EYGRqWlr8AC5lIr0STKmNIZeCV4WlsEah9askpAyNrlKBGy0lwdfeMQVtJo3WucM9DE2dqePN5RZIECvvYWdMjmAilomx+7di72PnmAGkkHbmosDAgMBAAECggEAMisaJn949daxQ7xIHCgrd1rDch+xzX5sOmXMUvebHPmt0JhpcBCzucPyQVfzORom2bu5rtYNpFjEATNAQer+CavhYer2CIkFkt6m5xmaDQ+OINen16UyE+oU8eVqWn9Rq7LqwYgEC+l5gcrL9aVnnxCWX/4mydV9qXzhv17PeF5yqEIjrAbhQMQbVrPLQTwi3wbC7sm6Z29A5idhld4AsXjlWPXnFzkeZFl8Qc/g5QOHFjs8uIcz+K7uE3H9Gs2LSz07bh0m9jloy/90Q0OzZbPI1NIU3oDTV7/eaRldXw3o9+8uz58MDWhYoWTLLjlkWJZJcJrfnW+P7tDEWpjv2QKBgQDyCZ0dzcz9w4IN5ujOWdplNv3M/MwSb0mGCnHv3tfnvJj4GnTmeIIWic8RhSlyN12Ph+wYaBHTEc+zaXKq5FmnEtKMPXzVci9RbCECTt5M8eYEA4wuYKnAGqPsyzvnffxGAUdvalVmkyRidI/cj+ACDmWjqnsalF9Hd2mMcrhqtQKBgQCVJHL1nJKSjgFqwN80tqlz862rsFaHOsSDT89nPHgTsmr30QFk6FL+BU/wrPsXCg5pMVZtUmw3c8X1TXd9YCnu7wg2+obIUbbXBxQTdhJMq/DUL6hGsfBLkzLzs9moyL76c4gZFqXr/d/POevzIlnATFolnoDOzoEvp7YsMyBZ1wKBgHVJb1eX+PQnn4g5EyuboxdVFJwXDJUKVKiduySv6hQj8kSYHXnpf7CIS02EJ9dvOOlqxl/1Xl3Xzbx1JtnlGgS6PEk1Kp8MXB2qtjw2F8dVmU7soSuAMAIlZrZCrd650FvkFsfI0WWJfCIxtdz942FbtKkg3dK9f4ZUOVOT7AXZAoGAQbsyv3UmVFkp3rbqqPzoaiY3oLezKx6HhagjLMjF00iLRHVlO+f4y+Pje5uBfoH8H/iSstPkxfvMf3SI+UTstlW7NR/tT1RUVSjVfE5Jemk9Vwc6Dw5VbbmOd0II6A6xvQg2L3h/4CagAWDx0NKO4+XCxVm6Q2tYHHy6GXjfBTkCgYEA2x+2PAq8iqX80cLqvh7vSoCh5m6H3aSGM8h+ZgF0lkijavQyIXE0oJxuJUpqgzv/XKqUCVQbaEHuNqKczLr0+QEE+vmexaRqKiUAL4/5xLEjfKk96QE7WbjXypJVBT5KeFPc5JDkNZN/R6d8q2/o4hiNdCyg+S4l/YOOev6YWDY=\",\"keyPublic\":\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj4e+D+2LfhldbNImCtjGbsxNQiQe6zp0SwS0iywib4pEqwS0gVDUi11uaG4R78cm7kV0GwWuYbeyl3wLmsr9269HJ/FjwWrNJLLwCLqJzNSkBssW7TXge++X3uHK93VeYmu7lRxdk5G/CqOdp5IhqveQOLxHURm+AC9iLtdtxnaCXFxcb54O63mfuZ5/9XJfBRt0boTe8vWTnr8w95PG5XlCBK0lmfZvtUazn/RYBIeCV28bwusQURvAg0Kc/gBoa3wIWiZhzaAiklUaXWoqR+yuoBwzKht8TLkXaOVxswphSoxsddrsn28Fw6rDfRiMKk3S6JcwY58P1n2By+LUPQIDAQAB\",\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"http://localhost:48081/app-api/order/payBack6.json\",\"returnUrl\":\"http://localhost:8080/#/pages/mine/mine\",\"signType\":\"RSA2\",\"seller\":\" 2088821836348568\",\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0}}', '2023-11-09 16:22:23', 38, 0, '', 'true', NULL, '2023-11-09 16:22:23', NULL, '2023-11-09 16:22:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7462, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"detailsId\":\"5\",\"payType\":\"wxPay\",\"appid\":\"wxc061dee8806ff712\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":null,\"keyCert\":null,\"keyCertPwd\":null,\"notifyUrl\":\"https://apidc.yixiang.co/app-api/order/payBack5.json\",\"returnUrl\":\"https://dc.yixiang.co/h5/#/pages/mine/mine\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"utf-8\",\"isTest\":0}}', '2023-11-09 16:22:41', 11, 0, '', 'true', NULL, '2023-11-09 16:22:41', NULL, '2023-11-09 16:22:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7463, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"detailsId\":\"3\",\"payType\":\"wxPay\",\"appid\":\"wx001e2dc50bf532df\",\"mchId\":\"1493624002\",\"certStoreType\":\"STR\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0}}', '2023-11-10 10:22:50', 36, 0, '', 'true', NULL, '2023-11-10 10:22:50', NULL, '2023-11-10 10:22:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7464, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"6\"}', '2023-11-10 14:59:11', 65, 0, '', 'true', NULL, '2023-11-10 14:59:11', NULL, '2023-11-10 14:59:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7465, '', 1, 2, '管理后台 - 支付服务商配置', '删除支付服务商配置', 4, '', '', 'DELETE', '/admin-api/pay/merchant-details/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.deleteMerchantDetails(String)', '{\"id\":\"5\"}', '2023-11-10 14:59:14', 4, 0, '', 'true', NULL, '2023-11-10 14:59:14', NULL, '2023-11-10 14:59:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7466, '', 1, 2, '管理后台 - 充值金额管理', '创建充值金额管理', 2, '', '', 'POST', '/admin-api/shop/recharge/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.recharge.RechargeController.createRecharge(RechargeCreateReqVO)', '{\"createReqVO\":{\"name\":\"充值1一份送100\",\"sales\":null,\"value\":100,\"weigh\":null,\"status\":1,\"sellPrice\":0.01}}', '2023-11-10 16:17:59', 14, 0, '', '2', NULL, '2023-11-10 16:17:59', NULL, '2023-11-10 16:17:59', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7467, '', 1, 2, '管理后台 - 订单', '更新订单', 3, '', '', 'PUT', '/admin-api/order/store-order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.updateStoreOrder(StoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"orderId\":\"1726884445237018624\",\"extendOrderId\":null,\"uid\":9,\"realName\":\"\",\"userPhone\":null,\"userAddress\":\"\",\"cartId\":\"\",\"freightPrice\":0,\"totalNum\":1,\"totalPrice\":0.01,\"totalPostage\":20,\"payPrice\":0.01,\"payPostage\":20,\"deductionPrice\":0,\"couponId\":0,\"couponPrice\":0,\"paid\":1,\"payTime\":1700556562000,\"payType\":\"weixin\",\"status\":0,\"refundStatus\":1,\"refundReasonWapImg\":null,\"refundReasonWapExplain\":\"7777\",\"refundReasonTime\":1700556550000,\"refundReasonWap\":\"协商一致\",\"refundReason\":null,\"refundPrice\":0,\"deliverySn\":\"\",\"deliveryName\":null,\"deliveryType\":\"normal\",\"deliveryId\":null,\"gainIntegral\":0,\"useIntegral\":0,\"payIntegral\":0,\"backIntegral\":0,\"mark\":\"\",\"unique\":\"\",\"remark\":null,\"merId\":0,\"combinationId\":0,\"pinkId\":0,\"cost\":0,\"seckillId\":0,\"bargainId\":0,\"verifyCode\":\"\",\"storeId\":0,\"shippingType\":1,\"isChannel\":0,\"isSystemDel\":0,\"orderType\":\"takein\",\"numberId\":1036,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"getTime\":1700556310000,\"id\":37,\"updateType\":null}}', '2023-11-21 16:51:42', 24, 0, '', 'true', NULL, '2023-11-21 16:51:42', NULL, '2023-11-21 16:51:42', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7468, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 16:56:17', 268, 500, 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'null', NULL, '2023-11-21 16:56:18', NULL, '2023-11-21 16:56:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7469, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"detailsId\":\"3\",\"payType\":\"wxPay\",\"appid\":\"wx001e2dc50bf532df\",\"mchId\":\"1493624002\",\"certStoreType\":\"PATH\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"/Users/hupeng/cert/1493624002_20231121_cert/apiclient_cert.p12\",\"keyCertPwd\":\"\",\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0}}', '2023-11-21 21:53:23', 109, 0, '', 'true', NULL, '2023-11-21 21:53:23', NULL, '2023-11-21 21:53:23', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7470, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 21:54:01', 531, 500, 'PayErrorException: 支付错误: errcode=failure, errmsg=类型转化异常,contentType:text/html\n content:\r\n400 No required SSL certificate was sent\r\n\r\n

400 Bad Request

\r\n
No required SSL certificate was sent
\r\n
nginx
\r\n\r\n\r\n', 'null', NULL, '2023-11-21 21:54:02', NULL, '2023-11-21 21:54:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7471, '', 1, 2, '管理后台 - 支付服务商配置', '更新支付服务商配置', 3, '', '', 'PUT', '/admin-api/pay/merchant-details/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.pay.controller.admin.merchantdetails.MerchantDetailsController.updateMerchantDetails(MerchantDetailsUpdateReqVO)', '{\"updateReqVO\":{\"detailsId\":\"3\",\"payType\":\"wxPay\",\"appid\":\"wx001e2dc50bf532df\",\"mchId\":\"1493624002\",\"certStoreType\":\"PATH\",\"keyPrivate\":\"dayouqiantuhupeng8638004yixiangt\",\"keyPublic\":\"\",\"keyCert\":\"/Users/hupeng/cert/1493624002_20231121_cert/apiclient_cert.p12\",\"keyCertPwd\":\"1493624002\",\"notifyUrl\":\"http://yshop.l1.ttut.cc/app-api/order/payBack3.json\",\"returnUrl\":\"\",\"signType\":\"MD5\",\"seller\":null,\"subAppId\":null,\"subMchId\":null,\"inputCharset\":\"UTF-8\",\"isTest\":0}}', '2023-11-21 22:00:28', 15, 0, '', 'true', NULL, '2023-11-21 22:00:28', NULL, '2023-11-21 22:00:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7472, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 22:00:34', 546, 500, 'NullPointerException: null', 'null', NULL, '2023-11-21 22:00:34', NULL, '2023-11-21 22:00:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7473, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 22:04:37', 756, 0, '', 'true', NULL, '2023-11-21 22:04:38', NULL, '2023-11-21 22:04:38', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7474, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 22:10:53', 1227, 500, 'ServiceException: 退款金额不正确', 'null', NULL, '2023-11-21 22:10:54', NULL, '2023-11-21 22:10:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7475, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-21 22:12:25', 753, 500, 'ServiceException: 退款金额不正确', 'null', NULL, '2023-11-21 22:12:26', NULL, '2023-11-21 22:12:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7476, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-22 09:18:47', 656, 500, 'ServiceException: 退款金额不正确', 'null', NULL, '2023-11-22 09:18:48', NULL, '2023-11-22 09:18:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7477, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":37,\"payPrice\":0.01}}', '2023-11-22 09:40:27', 1160, 500, 'ServiceException: 退款金额不正确', 'null', NULL, '2023-11-22 09:40:29', NULL, '2023-11-22 09:40:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7478, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":38,\"payPrice\":0.01}}', '2023-11-22 09:50:49', 1070, 0, '', 'true', NULL, '2023-11-22 09:50:50', NULL, '2023-11-22 09:50:50', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7479, '', 1, 2, '管理后台 - 订单', '退款', 2, '', '', 'POST', '/admin-api/order/store-order/refund', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.order.controller.admin.storeorder.StoreOrderController.refund(StoreOrderRefundVO)', '{\"updateReqVO\":{\"id\":36,\"payPrice\":0.03}}', '2023-11-22 09:56:32', 91, 0, '', 'true', NULL, '2023-11-22 09:56:32', NULL, '2023-11-22 09:56:32', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7480, '', 1, 2, '管理后台 - 积分产品', '创建积分产品', 2, '', '', 'POST', '/admin-api/score/product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreproduct.ScoreProductController.createProduct(ScoreProductCreateReqVO)', '{\"createReqVO\":{\"title\":\"j卡通小狗\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"images\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"desc\":\"

j卡通小狗

\",\"score\":10,\"weigh\":2,\"stock\":100,\"sales\":null,\"isSwitch\":1}}', '2023-11-28 11:34:25', 35, 0, '', '2', NULL, '2023-11-28 11:34:25', NULL, '2023-11-28 11:34:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7481, '', 1, 2, '管理后台 - 用户', '更新用户余额与积分', 3, '', '', 'PUT', '/admin-api/member/user/updateMony', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.updateMony(UserUpdateMoneyReqVO)', '{\"updateReqVO\":{\"id\":9,\"ptype\":1,\"money\":\"0\",\"itype\":1,\"integral\":\"10000\"}}', '2023-11-30 14:20:49', 118, 0, '', 'true', NULL, '2023-11-30 14:20:49', NULL, '2023-11-30 14:20:49', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7482, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分订单.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"}}', '2023-11-30 15:55:43', 71, 0, '', '56', NULL, '2023-11-30 15:55:43', NULL, '2023-11-30 15:55:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7483, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-11-30 15:55:42', 913, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"', NULL, '2023-11-30 15:55:43', NULL, '2023-11-30 15:55:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7484, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分订单.png\",\"url\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"}}', '2023-11-30 15:56:28', 21, 0, '', '57', NULL, '2023-11-30 15:56:28', NULL, '2023-11-30 15:56:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7485, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-11-30 15:56:27', 99, 0, '', '\"https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"', NULL, '2023-11-30 15:56:28', NULL, '2023-11-30 15:56:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7486, '', 1, 2, '管理后台 - 文件配置', '更新文件配置', 3, '', '', 'PUT', '/admin-api/infra/file-config/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileConfigController.updateFileConfig(FileConfigUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"数据库\",\"remark\":\"我是数据库\",\"id\":4,\"config\":{\"@class\":\"co.yixiang.yshop.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\" http://localhost:48081\"}}}', '2023-11-30 15:57:20', 187, 0, '', 'true', NULL, '2023-11-30 15:57:20', NULL, '2023-11-30 15:57:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7487, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.infra.controller.admin.file.FileController.uploadFile(FileUploadReqVO)', '', '2023-11-30 15:57:41', 34, 0, '', '\" http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"', NULL, '2023-11-30 15:57:41', NULL, '2023-11-30 15:57:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7488, '', 1, 2, '管理后台 - 素材库', '创建素材库', 2, '', '', 'POST', '/admin-api/shop/material/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.material.MaterialController.createMaterial(MaterialCreateReqVO)', '{\"createReqVO\":{\"type\":\"1\",\"groupId\":null,\"name\":\"积分订单.png\",\"url\":\" http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\"}}', '2023-11-30 15:57:41', 5, 0, '', '58', NULL, '2023-11-30 15:57:41', NULL, '2023-11-30 15:57:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7489, '', 1, 2, '管理后台 - 我的服务', '创建我的服务', 2, '', '', 'POST', '/admin-api/shop/service/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.createService(ServiceCreateReqVO)', '{\"createReqVO\":{\"name\":\"积分订单\",\"image\":\" http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\",\"type\":\"pages\",\"content\":\"\",\"pid\":null,\"appId\":null,\"pages\":\"/pages/components/pages/scoreproduct/order\",\"phone\":null,\"weigh\":null,\"status\":1}}', '2023-11-30 15:58:29', 25, 0, '', '31', NULL, '2023-11-30 15:58:29', NULL, '2023-11-30 15:58:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7490, '', 1, 2, '管理后台 - 积分商城订单', '删除积分商城订单', 4, '', '', 'DELETE', '/admin-api/score/order/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.deleteOrder(Long)', '{\"id\":1}', '2023-12-01 17:25:10', 103, 0, '', 'true', NULL, '2023-12-01 17:25:10', NULL, '2023-12-01 17:25:10', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7491, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递鸟配置\",\"permission\":\"\",\"type\":2,\"sort\":3,\"parentId\":2243,\"path\":\"set\",\"icon\":\"ep:setting\",\"component\":\"express/ExpressSet\",\"componentName\":\"set\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2244}}', '2023-12-02 09:51:45', 33, 0, '', 'true', NULL, '2023-12-02 09:51:45', NULL, '2023-12-02 09:51:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7492, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"快递公司\",\"permission\":\"\",\"type\":2,\"sort\":1,\"parentId\":2243,\"path\":\"express\",\"icon\":\"ep:expand\",\"component\":\"express/index\",\"componentName\":\"Express\",\"status\":0,\"visible\":true,\"keepAlive\":true,\"alwaysShow\":true,\"id\":2231}}', '2023-12-02 09:51:56', 20, 0, '', 'true', NULL, '2023-12-02 09:51:56', NULL, '2023-12-02 09:51:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7493, '', 1, 2, '管理后台 - 积分商城订单', '更新积分商城订单', 3, '', '', 'PUT', '/admin-api/score/order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.updateOrder(ScoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"uid\":9,\"orderId\":\"1730115102750801920\",\"productId\":2,\"number\":1,\"score\":10,\"totalScore\":10,\"ip\":\"0:0:0:0:0:0:0:1\",\"expressSn\":\"STO\",\"expressNumber\":\"773257186129334\",\"expressCompany\":\"\",\"customerName\":\"hupeng\",\"customerPhone\":\"18888888888\",\"customerAddress\":\"河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司520号\",\"status\":true,\"havePaid\":1,\"haveDelivered\":0,\"haveReceived\":0,\"id\":1}}', '2023-12-02 10:46:56', 14, 0, '', 'true', NULL, '2023-12-02 10:46:56', NULL, '2023-12-02 10:46:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7494, '', 1, 2, '管理后台 - 积分商城订单', '更新积分商城订单', 3, '', '', 'PUT', '/admin-api/score/order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.updateOrder(ScoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"uid\":9,\"orderId\":\"1730115102750801920\",\"productId\":2,\"number\":1,\"score\":10,\"totalScore\":10,\"ip\":\"0:0:0:0:0:0:0:1\",\"expressSn\":\"STO\",\"expressNumber\":\"773257186129334\",\"expressCompany\":\"申通快递\",\"customerName\":\"hupeng\",\"customerPhone\":\"18888888888\",\"customerAddress\":\"河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司520号\",\"status\":true,\"havePaid\":1,\"haveDelivered\":0,\"haveReceived\":0,\"id\":1}}', '2023-12-02 10:50:55', 6, 0, '', 'true', NULL, '2023-12-02 10:50:55', NULL, '2023-12-02 10:50:55', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7495, '', 1, 2, '管理后台 - 积分商城订单', '更新积分商城订单', 3, '', '', 'PUT', '/admin-api/score/order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.updateOrder(ScoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"uid\":9,\"orderId\":\"1730115102750801920\",\"productId\":2,\"number\":1,\"score\":10,\"totalScore\":10,\"ip\":\"0:0:0:0:0:0:0:1\",\"expressSn\":\"STO\",\"expressNumber\":\"773257186129334\",\"expressCompany\":\"申通快递\",\"customerName\":\"hupeng\",\"customerPhone\":\"18888888888\",\"customerAddress\":\"河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司520号\",\"status\":true,\"havePaid\":1,\"haveDelivered\":0,\"haveReceived\":0,\"id\":1}}', '2023-12-02 10:56:03', 35, 0, '', 'true', NULL, '2023-12-02 10:56:03', NULL, '2023-12-02 10:56:03', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7496, '', 1, 2, '管理后台 - 快递公司', '快递鸟配置', 2, '', '', 'POST', '/admin-api/order/express/set', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.express.controller.admin.express.ExpressController.postExpressSet(KdniaoApiBaseDTO)', '{\"kdniaoApiBaseDTO\":{\"apiKey\":\"81f43a2e-f504-45c4-9b54-2637d59f8190\",\"reqURL\":null,\"isFree\":true,\"ebusinessID\":\"1607734\"}}', '2023-12-02 11:03:31', 3, 0, '', 'true', NULL, '2023-12-02 11:03:31', NULL, '2023-12-02 11:03:31', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7497, '', 1, 2, '管理后台 - 积分商城订单', '更新积分商城订单', 3, '', '', 'PUT', '/admin-api/score/order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.updateOrder(ScoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"uid\":9,\"orderId\":\"1730115102750801920\",\"productId\":2,\"number\":1,\"score\":10,\"totalScore\":10,\"ip\":\"0:0:0:0:0:0:0:1\",\"expressSn\":\"STO\",\"expressNumber\":\"773257186129334\",\"expressCompany\":\"申通快递\",\"customerName\":\"hupeng\",\"customerPhone\":\"18888888888\",\"customerAddress\":\"河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司520号\",\"status\":true,\"havePaid\":1,\"haveDelivered\":0,\"haveReceived\":0,\"id\":1}}', '2023-12-02 11:06:30', 10, 0, '', 'true', NULL, '2023-12-02 11:06:30', NULL, '2023-12-02 11:06:30', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7498, '', 1, 2, '管理后台 - 积分商城订单', '更新积分商城订单', 3, '', '', 'PUT', '/admin-api/score/order/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.score.controller.admin.scoreorder.ScoreOrderController.updateOrder(ScoreOrderUpdateReqVO)', '{\"updateReqVO\":{\"uid\":9,\"orderId\":\"1730115102750801920\",\"productId\":2,\"number\":1,\"score\":10,\"totalScore\":10,\"ip\":\"0:0:0:0:0:0:0:1\",\"expressSn\":\"STO\",\"expressNumber\":\"773257186129334\",\"expressCompany\":\"申通快递\",\"customerName\":\"hupeng\",\"customerPhone\":\"18888888888\",\"customerAddress\":\"河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司520号\",\"status\":true,\"havePaid\":1,\"haveDelivered\":0,\"haveReceived\":0,\"id\":1}}', '2023-12-02 11:10:06', 25, 0, '', 'true', NULL, '2023-12-02 11:10:06', NULL, '2023-12-02 11:10:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7499, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":25}', '2023-12-04 10:55:53', 11, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-12-04 10:55:53', NULL, '2023-12-04 10:55:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7500, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\",\"id\":17}', '2023-12-04 10:56:02', 49, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"value1\":\"10ml\",\"detail\":{\"体积\":\"10ml\"},\"sku\":\"10ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.01,\"cost\":1.00,\"ot_price\":1.00,\"stock\":170,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"detail\":{\"体积\":\"30ml\"},\"sku\":\"30ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.02,\"cost\":1.00,\"ot_price\":1.00,\"stock\":299,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"action\"}]}', NULL, '2023-12-04 10:56:02', NULL, '2023-12-04 10:56:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7501, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2301}', '2023-12-08 09:41:17', 74, 0, '', 'true', NULL, '2023-12-08 09:41:17', NULL, '2023-12-08 09:41:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7502, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2302}', '2023-12-08 09:42:08', 17, 0, '', 'true', NULL, '2023-12-08 09:42:08', NULL, '2023-12-08 09:42:08', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7503, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2303}', '2023-12-08 09:42:13', 16, 0, '', 'true', NULL, '2023-12-08 09:42:13', NULL, '2023-12-08 09:42:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7504, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2304}', '2023-12-08 09:42:16', 12, 0, '', 'true', NULL, '2023-12-08 09:42:16', NULL, '2023-12-08 09:42:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7505, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2305}', '2023-12-08 09:42:20', 15, 0, '', 'true', NULL, '2023-12-08 09:42:20', NULL, '2023-12-08 09:42:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7506, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2300}', '2023-12-08 09:42:26', 64, 0, '', 'true', NULL, '2023-12-08 09:42:26', NULL, '2023-12-08 09:42:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7507, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2295}', '2023-12-08 09:42:33', 8, 0, '', 'true', NULL, '2023-12-08 09:42:33', NULL, '2023-12-08 09:42:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7508, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2296}', '2023-12-08 09:42:37', 14, 0, '', 'true', NULL, '2023-12-08 09:42:37', NULL, '2023-12-08 09:42:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7509, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2297}', '2023-12-08 09:42:41', 16, 0, '', 'true', NULL, '2023-12-08 09:42:41', NULL, '2023-12-08 09:42:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7510, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2298}', '2023-12-08 09:42:45', 10, 0, '', 'true', NULL, '2023-12-08 09:42:45', NULL, '2023-12-08 09:42:45', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7511, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2299}', '2023-12-08 09:42:48', 9, 0, '', 'true', NULL, '2023-12-08 09:42:48', NULL, '2023-12-08 09:42:48', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7512, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2294}', '2023-12-08 09:42:52', 14, 0, '', 'true', NULL, '2023-12-08 09:42:52', NULL, '2023-12-08 09:42:52', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7513, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2306}', '2023-12-08 09:42:56', 8, 0, '', 'true', NULL, '2023-12-08 09:42:56', NULL, '2023-12-08 09:42:56', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7514, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2309}', '2023-12-08 10:05:07', 50, 0, '', 'true', NULL, '2023-12-08 10:05:07', NULL, '2023-12-08 10:05:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7515, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2310}', '2023-12-08 10:05:11', 11, 0, '', 'true', NULL, '2023-12-08 10:05:11', NULL, '2023-12-08 10:05:11', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7516, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2311}', '2023-12-08 10:05:14', 14, 0, '', 'true', NULL, '2023-12-08 10:05:14', NULL, '2023-12-08 10:05:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7517, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2312}', '2023-12-08 10:05:18', 10, 0, '', 'true', NULL, '2023-12-08 10:05:18', NULL, '2023-12-08 10:05:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7518, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2313}', '2023-12-08 10:05:21', 9, 0, '', 'true', NULL, '2023-12-08 10:05:21', NULL, '2023-12-08 10:05:21', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7519, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2308}', '2023-12-08 10:05:25', 12, 0, '', 'true', NULL, '2023-12-08 10:05:25', NULL, '2023-12-08 10:05:25', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7520, '', 1, 2, '管理后台 - 我的服务', '删除我的服务', 4, '', '', 'DELETE', '/admin-api/shop/service/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.shop.controller.admin.service.ServiceController.deleteService(Long)', '{\"id\":31}', '2023-12-08 10:08:41', 24, 0, '', 'true', NULL, '2023-12-08 10:08:41', NULL, '2023-12-08 10:08:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7521, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"yshop\",\"mobile\":\"18000000000\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"images\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"],\"address\":\"67号\",\"addressMap\":\"北京市东城区\",\"lng\":\"116.40403593222032\",\"lat\":\"39.91643892263258\",\"distance\":0,\"minPrice\":1,\"deliveryPrice\":2,\"notice\":\"2222\",\"status\":1,\"adminId\":[\"100\"],\"uniprintId\":\"2\",\"startTime\":1691300102000,\"endTime\":1691307302000,\"id\":3}}', '2023-12-08 10:14:54', 62, 0, '', 'true', NULL, '2023-12-08 10:14:54', NULL, '2023-12-08 10:14:54', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7522, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2283}', '2023-12-08 10:25:06', 55, 0, '', 'true', NULL, '2023-12-08 10:25:06', NULL, '2023-12-08 10:25:06', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7523, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2284}', '2023-12-08 10:25:09', 11, 0, '', 'true', NULL, '2023-12-08 10:25:09', NULL, '2023-12-08 10:25:09', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7524, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2285}', '2023-12-08 10:25:13', 15, 0, '', 'true', NULL, '2023-12-08 10:25:13', NULL, '2023-12-08 10:25:13', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7525, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2286}', '2023-12-08 10:25:16', 12, 0, '', 'true', NULL, '2023-12-08 10:25:16', NULL, '2023-12-08 10:25:16', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7526, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2287}', '2023-12-08 10:25:19', 10, 0, '', 'true', NULL, '2023-12-08 10:25:19', NULL, '2023-12-08 10:25:19', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7527, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":2282}', '2023-12-08 10:25:24', 12, 0, '', 'true', NULL, '2023-12-08 10:25:24', NULL, '2023-12-08 10:25:24', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7528, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":25}', '2023-12-27 22:19:26', 6, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-12-27 22:19:26', NULL, '2023-12-27 22:19:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7529, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/22', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":22}', '2023-12-27 22:19:34', 1, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2023-12-27 22:19:34', NULL, '2023-12-27 22:19:34', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7530, '', 1, 2, '管理后台 - 优惠券', '创建优惠券', 2, '', '', 'POST', '/admin-api/coupon/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.coupon.controller.admin.coupon.CouponController.create(CouponCreateReqVO)', '{\"createReqVO\":{\"shopId\":\"2\",\"shopName\":null,\"title\":\"1\",\"isSwitch\":1,\"least\":1,\"value\":1,\"startTime\":1707148800000,\"endTime\":1708876800000,\"weigh\":null,\"type\":0,\"exchangeCode\":\"1\",\"receive\":null,\"distribute\":1,\"score\":null,\"instructions\":\"1\",\"image\":\" http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png\",\"limit\":1}}', '2024-02-24 10:25:41', 25, 0, '', '3', NULL, '2024-02-24 10:25:41', NULL, '2024-02-24 10:25:41', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7531, '', 1, 2, '管理后台 - 用户', '更新用户', 3, '', '', 'PUT', '/admin-api/member/user/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.updateUser(UserUpdateReqVO)', '{\"updateReqVO\":{\"username\":\"15136175246\",\"realName\":\"\",\"nickname\":\"yshop用户_9\",\"avatar\":null,\"mobile\":\"151****5246\",\"addIp\":\"\",\"nowMoney\":91.97,\"brokeragePrice\":0,\"integral\":9970,\"status\":0,\"isPromoter\":0,\"payCount\":8,\"spreadCount\":0,\"addres\":\"\",\"adminid\":0,\"loginType\":\"routine\",\"wxProfile\":null,\"birthday\":\"\",\"loginIp\":\"0:0:0:0:0:0:0:1\",\"lastIp\":\"\",\"level\":0,\"spreadUid\":0,\"cardId\":\"\",\"id\":9,\"password\":null,\"mark\":null,\"partnerId\":null,\"groupId\":null,\"signNum\":null,\"spreadTime\":null,\"userType\":null}}', '2024-03-26 15:24:22', 166, 0, '', 'true', NULL, '2024-03-26 15:24:22', NULL, '2024-03-26 15:24:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7532, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":25}', '2024-03-26 15:31:22', 5, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2024-03-26 15:31:22', NULL, '2024-03-26 15:31:22', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7533, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\",\"id\":17}', '2024-03-26 15:31:33', 82, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"value1\":\"10ml\",\"detail\":{\"体积\":\"10ml\"},\"sku\":\"10ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.01,\"cost\":1.00,\"ot_price\":1.00,\"stock\":167,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"detail\":{\"体积\":\"30ml\"},\"sku\":\"30ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.02,\"cost\":1.00,\"ot_price\":1.00,\"stock\":299,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"action\"}]}', NULL, '2024-03-26 15:31:33', NULL, '2024-03-26 15:31:33', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7534, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/26', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":26,\"ruleName\":\"主食\",\"ruleValue\":[{\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"},{\"value\":\"颜色\",\"detail\":[\"黑\"]}]},\"id\":26}', '2024-03-26 15:34:17', 16, 0, '', '1', NULL, '2024-03-26 15:34:17', NULL, '2024-03-26 15:34:17', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7535, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"}]}\",\"id\":17}', '2024-03-26 15:34:26', 9, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"value1\":\"10ml\",\"detail\":{\"体积\":\"10ml\"},\"sku\":\"10ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.01,\"cost\":1.00,\"ot_price\":1.00,\"stock\":167,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"detail\":{\"体积\":\"30ml\"},\"sku\":\"30ml\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"price\":0.02,\"cost\":1.00,\"ot_price\":1.00,\"stock\":299,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value1\",\"slot\":\"action\"}]}', NULL, '2024-03-26 15:34:26', NULL, '2024-03-26 15:34:26', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7536, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"},{\\\"detail\\\":[\\\"黑\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":17}', '2024-03-26 15:35:01', 19, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"微辣\",\"value2\":\"1人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"微辣\",\"value2\":\"3人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"1人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"3人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"口味\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"份量\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value3\",\"slot\":\"value3\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"action\"}]}', NULL, '2024-03-26 15:35:01', NULL, '2024-03-26 15:35:01', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7537, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/17', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"微辣\\\",\\\"特辣\\\"],\\\"value\\\":\\\"口味\\\"},{\\\"detail\\\":[\\\"1人\\\",\\\"3人\\\"],\\\"value\\\":\\\"份量\\\"},{\\\"detail\\\":[\\\"黑\\\"],\\\"value\\\":\\\"颜色\\\"}]}\",\"id\":17}', '2024-03-26 15:40:53', 14, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑\"],\"value\":\"颜色\"}],\"value\":[{\"value1\":\"微辣\",\"value2\":\"1人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"微辣\",\"value2\":\"3人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"1人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"特辣\",\"value2\":\"3人\",\"value3\":\"黑\",\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\",\"颜色\":\"黑\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"口味\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"份量\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value3\",\"slot\":\"value3\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"action\"}]}', NULL, '2024-03-26 15:40:53', NULL, '2024-03-26 15:40:53', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7538, '', 1, 2, '管理后台 - 门店管理', '更新门店管理', 3, '', '', 'PUT', '/admin-api/store/shop/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.store.controller.admin.storeshop.StoreShopController.updateShop(StoreShopUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"yshop\",\"mobile\":\"18000000000\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\",\"images\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg\"],\"address\":\"67号\",\"addressMap\":\"北京市东城区\",\"lng\":\"116.40403593222032\",\"lat\":\"39.91643892263258\",\"distance\":0,\"minPrice\":1,\"deliveryPrice\":2,\"notice\":\"2222\",\"status\":1,\"adminId\":[\"100\"],\"uniprintId\":\"2\",\"startTime\":1691300102000,\"endTime\":1691307302000,\"id\":3}}', '2024-03-26 15:42:20', 22, 0, '', 'true', NULL, '2024-03-26 15:42:20', NULL, '2024-03-26 15:42:20', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7539, '', 1, 2, '管理后台 - 用户', '更新用户', 3, '', '', 'PUT', '/admin-api/member/user/update', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.member.controller.admin.user.MemberUserController.updateUser(UserUpdateReqVO)', '{\"updateReqVO\":{\"username\":\"15136175246\",\"realName\":\"\",\"nickname\":\"yshop用户_9\",\"avatar\":null,\"mobile\":\"151****5246\",\"addIp\":\"\",\"nowMoney\":91.97,\"brokeragePrice\":0,\"integral\":9970,\"status\":0,\"isPromoter\":0,\"payCount\":8,\"spreadCount\":0,\"addres\":\"\",\"adminid\":0,\"loginType\":\"routine\",\"wxProfile\":null,\"birthday\":\"\",\"loginIp\":\"0:0:0:0:0:0:0:1\",\"lastIp\":\"\",\"level\":0,\"spreadUid\":0,\"cardId\":\"\",\"id\":9,\"password\":null,\"mark\":null,\"partnerId\":null,\"groupId\":null,\"signNum\":null,\"spreadTime\":null,\"userType\":null}}', '2024-04-03 14:24:14', 55, 0, '', 'true', NULL, '2024-04-03 14:24:14', NULL, '2024-04-03 14:24:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7540, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":25,\"ruleName\":\"饮料\",\"ruleValue\":[{\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"value\":\"颜色\",\"detail\":[\"黑色\",\"白色\"]},{\"value\":\"尺寸\",\"detail\":[\"55\",\"77\"]}]},\"id\":25}', '2024-05-08 15:15:28', 55, 0, '', '1', NULL, '2024-05-08 15:15:28', NULL, '2024-05-08 15:15:28', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7541, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[]}\",\"id\":25}', '2024-05-08 15:15:37', 4, 0, '', '{\"attr\":[],\"value\":[],\"header\":[]}', NULL, '2024-05-08 15:15:37', NULL, '2024-05-08 15:15:37', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7542, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"},{\\\"detail\\\":[\\\"黑色\\\",\\\"白色\\\"],\\\"value\\\":\\\"颜色\\\"},{\\\"detail\\\":[\\\"55\\\",\\\"77\\\"],\\\"value\\\":\\\"尺寸\\\"}]}\",\"id\":25}', '2024-05-08 15:15:50', 82, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"}],\"value\":[{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"77\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"白色\",\"value3\":\"55\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"白色\",\"value3\":\"77\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value2\",\"slot\":\"value2\"},{\"title\":\"尺寸\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value3\",\"slot\":\"value3\"},{\"title\":\"图片\",\"minWidth\":80,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"pic\"},{\"title\":\"售价\",\"minWidth\":120,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"price\"},{\"title\":\"成本价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"cost\"},{\"title\":\"原价\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"ot_price\"},{\"title\":\"库存\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"stock\"},{\"title\":\"产品编号\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"bar_code\"},{\"title\":\"重量(KG)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"weight\"},{\"title\":\"体积(m³)\",\"minWidth\":140,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"volume\"},{\"title\":\"操作\",\"minWidth\":70,\"align\":\"center\",\"key\":\"value3\",\"slot\":\"action\"}]}', NULL, '2024-05-08 15:15:51', NULL, '2024-05-08 15:15:51', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7543, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":25,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":2.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":11,\"description\":\"

11

\",\"cost\":11.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":99,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":98,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":3.0,\"cost\":0.0,\"stock\":97,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":4.0,\"cost\":0.0,\"stock\":96,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":5.0,\"cost\":0.0,\"stock\":95,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":6.0,\"cost\":0.0,\"stock\":94,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":7.0,\"cost\":0.0,\"stock\":93,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":8.0,\"cost\":0.0,\"stock\":92,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"8888\",\"store_info\":\"\",\"bar_code\":\"\",\"cate_id\":\"4\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2024-05-08 15:16:43', 209, 0, '', 'true', NULL, '2024-05-08 15:16:43', NULL, '2024-05-08 15:16:43', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7544, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":25,\"ruleName\":\"饮料\",\"ruleValue\":[{\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"value\":\"口味\",\"detail\":[\"11\",\"22\",\"33\"]}]},\"id\":25}', '2024-05-08 15:18:07', 5, 0, '', '1', NULL, '2024-05-08 15:18:07', NULL, '2024-05-08 15:18:07', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7545, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"},{\\\"detail\\\":[\\\"黑色\\\",\\\"白色\\\"],\\\"value\\\":\\\"颜色\\\"},{\\\"detail\\\":[\\\"55\\\",\\\"77\\\"],\\\"value\\\":\\\"尺寸\\\"}]}\",\"id\":25}', '2024-05-08 15:18:14', 38, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"}],\"value\":[{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"sku\":\"10ml,55,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":1.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":99,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"sku\":\"10ml,77,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":2.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":98,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"sku\":\"10ml,55,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":3.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":97,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"77\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"sku\":\"10ml,77,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":4.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":96,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\"},\"sku\":\"30ml,55,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":5.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":95,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\"},\"sku\":\"30ml,77,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":6.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":94,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"白色\",\"value3\":\"55\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"55\"},\"sku\":\"30ml,55,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":7.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":93,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"30ml\",\"value2\":\"白色\",\"value3\":\"77\",\"detail\":{\"体积\":\"30ml\",\"颜色\":\"白色\",\"尺寸\":\"77\"},\"sku\":\"30ml,77,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":8.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":92,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0}],\"header\":[{\"title\":\"体积\",\"minWidth\":\"130\",\"align\":\"center\",\"key\":\"value1\",\"slot\":\"value1\"},{\"title\":\"颜色\",\"minWidth\":\"130\",\"...', NULL, '2024-05-08 15:18:14', NULL, '2024-05-08 15:18:14', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7546, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"},{\\\"detail\\\":[\\\"黑色\\\",\\\"白色\\\"],\\\"value\\\":\\\"颜色\\\"},{\\\"detail\\\":[\\\"55\\\",\\\"77\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"11\\\",\\\"22\\\",\\\"33\\\"],\\\"value\\\":\\\"口味\\\"}]}\",\"id\":25}', '2024-05-08 15:18:28', 82, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"value\":[{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_pric...', NULL, '2024-05-08 15:18:29', NULL, '2024-05-08 15:18:29', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7547, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":25,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":764,\"description\":\"

11

\",\"cost\":0.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":2,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":3.0,\"cost\":0.0,\"stock\":3,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":4.0,\"cost\":0.0,\"stock\":4,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":4.0,\"cost\":0.0,\"stock\":5,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":6.0,\"cost\":0.0,\"stock\":6,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":7.0,\"cost\":0.0,\"stock\":7,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":8.0,\"cost\":0.0,\"stock\":8,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":9.0,\"cost\":0.0,\"stock\":9,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":10.0,\"cost\":0.0,\"stock\":99,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":88,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":77,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"10ml\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":2.0,\"cost\":0.0,\"stock\":66,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":33.0,\"cost\":0.0,\"stock\":55,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":4.0,\"cost\":0.0,\"stock\":44,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":4.0,\"cost\":0.0,\"stock\":33,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":5.0,\"cost\":0.0,\"stock\":22,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"30ml\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"30ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":...', '2024-05-08 15:20:02', 113, 0, '', 'true', NULL, '2024-05-08 15:20:02', NULL, '2024-05-08 15:20:02', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7548, '', 1, 2, '管理后台 - 商品规则值(规格)', '创建与更新商品规则值(规格)', 2, '', '', 'POST', '/admin-api/product/store-product-rule/save/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproductrule.StoreProductRuleController.createStoreProductRule(StoreProductRuleCreateReqVO,Integer)', '{\"createReqVO\":{\"id\":25,\"ruleName\":\"饮料\",\"ruleValue\":[{\"detail\":[\"90\"],\"value\":\"体积\"},{\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}]},\"id\":25}', '2024-05-08 15:25:05', 4, 0, '', '1', NULL, '2024-05-08 15:25:05', NULL, '2024-05-08 15:25:05', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7549, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"10ml\\\",\\\"30ml\\\"],\\\"value\\\":\\\"体积\\\"},{\\\"detail\\\":[\\\"黑色\\\",\\\"白色\\\"],\\\"value\\\":\\\"颜色\\\"},{\\\"detail\\\":[\\\"55\\\",\\\"77\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"11\\\",\\\"22\\\",\\\"33\\\"],\\\"value\\\":\\\"口味\\\"}]}\",\"id\":25}', '2024-05-08 15:25:11', 92, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"value\":[{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"10ml,11,55,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":1.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":1,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"10ml,22,55,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":2.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":2,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"sku\":\"10ml,33,55,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":3.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":3,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"sku\":\"10ml,11,77,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":4.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":4,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"sku\":\"10ml,22,77,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":4.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":5,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"33\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"sku\":\"10ml,33,77,黑色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":6.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":6,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"10ml,11,55,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":7.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":7,\"bar_code\":\"\",\"weight\":0.00,\"volume\":0.00,\"brokerage\":0.00,\"brokerage_two\":0.00,\"pink_price\":0.00,\"seckill_price\":0.00,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"10ml\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"10ml\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"10ml,22,55,白色\",\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"price\":8.00,\"cost\":0.00,\"ot_price\":0.00,\"stock\":8,\"ba...', NULL, '2024-05-08 15:25:12', NULL, '2024-05-08 15:25:12', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7550, '', 1, 2, '管理后台 - 商品', '生成属性', 2, '', '', 'POST', '/admin-api/product/store-product/isFormatAttr/25', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.isFormatAttr(Long,String)', '{\"jsonStr\":\"{\\\"attrs\\\":[{\\\"detail\\\":[\\\"90\\\"],\\\"value\\\":\\\"体积\\\"},{\\\"detail\\\":[\\\"黑色\\\",\\\"白色\\\"],\\\"value\\\":\\\"颜色\\\"},{\\\"detail\\\":[\\\"55\\\",\\\"77\\\"],\\\"value\\\":\\\"尺寸\\\"},{\\\"detail\\\":[\\\"11\\\",\\\"22\\\",\\\"33\\\"],\\\"value\\\":\\\"口味\\\"}]}\",\"id\":25}', '2024-05-08 15:25:18', 44, 0, '', '{\"attr\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"90\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"value\":[{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"55\",\"value4\":\"33\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"11\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"22\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"黑色\",\"value3\":\"77\",\"value4\":\"33\",\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"11\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"22\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"55\",\"value4\":\"33\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"11\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"22\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"brokerage\":0,\"brokerage_two\":0,\"pink_price\":0,\"seckill_price\":0,\"pink_stock\":0,\"seckill_stock\":0,\"integral\":0},{\"value1\":\"90\",\"value2\":\"白色\",\"value3\":\"77\",\"value4\":\"33\",\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"sku\":\"\",\"pic\":\"\",\"price\":0,\"cost\":0,\"ot_price\":0,\"stock\":0,\"bar_code\":\"\",\"weight\":0,\"volume\":0,\"broke...', NULL, '2024-05-08 15:25:18', NULL, '2024-05-08 15:25:18', b'0', 0); +INSERT INTO `system_operate_log` VALUES (7551, '', 1, 2, '管理后台 - 商品', '创建商品', 2, '', '', 'POST', '/admin-api/product/store-product/create', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'CommonResult co.yixiang.yshop.module.product.controller.admin.storeproduct.StoreProductController.createStoreProduct(StoreProductDto)', '{\"storeProductDto\":{\"id\":25,\"shopId\":2,\"shopName\":\"意向餐饮店\",\"image\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"keyword\":\"11\",\"price\":1.0,\"otPrice\":null,\"postage\":0.0,\"sort\":0,\"sales\":0,\"stock\":552,\"description\":\"

11

\",\"cost\":0.0,\"ficti\":0,\"items\":[{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"90\"],\"value\":\"体积\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"attrHidden\":null,\"detailValue\":null,\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"attrs\":[{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0},{\"sku\":\"\",\"brokerage\":0.0,\"price\":1.0,\"cost\":0.0,\"stock\":1,\"integral\":0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"bar_code\":\"\",\"brokerage_two\":0.0,\"ot_price\":0.0,\"pink_price\":0.0,\"pink_stock\":0,\"seckill_price\":0.0,\"seckill_stock\":0}],\"slider_image\":[\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\"],\"store_name\":\"8888\",\"store_info\":\"\",\"bar_code\":\"\",\"cate_id\":\"4\",\"unit_name\":\"\",\"is_show\":1,\"is_hot\":0,\"is_benefit\":0,\"is_best\":0,\"is_new\":0,\"is_postage\":0,\"give_integral\":0.0,\"is_good\":0,\"is_sub\":0,\"is_integral\":0,\"temp_id\":0,\"spec_type\":1}}', '2024-05-08 15:26:01', 69, 0, '', 'true', NULL, '2024-05-08 15:26:01', NULL, '2024-05-08 15:26:01', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_post`; +CREATE TABLE `system_post` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位编码', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位名称', + `sort` int NOT NULL COMMENT '显示顺序', + `status` tinyint NOT NULL COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位信息表'; + +-- ---------------------------- +-- Records of system_post +-- ---------------------------- +BEGIN; +INSERT INTO `system_post` VALUES (1, 'ceo', '董事长', 1, 0, '', 'admin', '2021-01-06 17:03:48', '1', '2023-02-11 15:19:04', b'0', 1); +INSERT INTO `system_post` VALUES (2, 'se', '项目经理', 2, 0, '', 'admin', '2021-01-05 17:03:48', '1', '2021-12-12 10:47:47', b'0', 1); +INSERT INTO `system_post` VALUES (4, 'user', '普通员工', 4, 0, '111', 'admin', '2021-01-05 17:03:48', '1', '2023-02-11 15:19:00', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_role`; +CREATE TABLE `system_role` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名称', + `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色权限字符串', + `sort` int NOT NULL COMMENT '显示顺序', + `data_scope` tinyint NOT NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + `data_scope_dept_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '数据范围(指定部门数组)', + `status` tinyint NOT NULL COMMENT '角色状态(0正常 1停用)', + `type` tinyint NOT NULL COMMENT '角色类型', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=139 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色信息表'; + +-- ---------------------------- +-- Records of system_role +-- ---------------------------- +BEGIN; +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', b'0', 1); +INSERT INTO `system_role` VALUES (2, '门店角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2023-09-05 10:13:24', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_role_menu`; +CREATE TABLE `system_role_menu` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `role_id` bigint NOT NULL COMMENT '角色ID', + `menu_id` bigint NOT NULL COMMENT '菜单ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=3179 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色和菜单关联表'; + +-- ---------------------------- +-- Records of system_role_menu +-- ---------------------------- +BEGIN; +INSERT INTO `system_role_menu` VALUES (263, 109, 1, '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); +INSERT INTO `system_role_menu` VALUES (434, 2, 1, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (454, 2, 1093, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (455, 2, 1094, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (460, 2, 1100, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (467, 2, 1107, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (470, 2, 1110, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (476, 2, 1117, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (477, 2, 100, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (478, 2, 101, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (479, 2, 102, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (480, 2, 1126, '1', '2022-02-22 13:09:12', '1', '2023-07-14 15:12:54', b'1', 1); +INSERT INTO `system_role_menu` VALUES (481, 2, 103, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (483, 2, 104, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (485, 2, 105, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (488, 2, 107, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (490, 2, 108, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (492, 2, 109, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (498, 2, 1138, '1', '2022-02-22 13:09:12', '1', '2023-05-17 10:46:14', b'1', 1); +INSERT INTO `system_role_menu` VALUES (523, 2, 1224, '1', '2022-02-22 13:09:12', '1', '2023-05-17 10:46:42', b'1', 1); +INSERT INTO `system_role_menu` VALUES (524, 2, 1225, '1', '2022-02-22 13:09:12', '1', '2023-05-17 10:46:38', b'1', 1); +INSERT INTO `system_role_menu` VALUES (541, 2, 500, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (543, 2, 501, '1', '2022-02-22 13:09:12', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (675, 2, 2, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (689, 2, 1077, '1', '2022-02-22 13:16:57', '1', '2023-06-29 13:39:57', b'1', 1); +INSERT INTO `system_role_menu` VALUES (690, 2, 1078, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (692, 2, 1083, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (693, 2, 1084, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (699, 2, 1090, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (703, 2, 106, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (704, 2, 110, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (705, 2, 111, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (706, 2, 112, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (707, 2, 113, '1', '2022-02-22 13:16:57', '1', '2023-09-05 10:16:18', b'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', b'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', b'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', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1494, 1, 1077, '1', '2022-02-23 20:03:57', '1', '2023-06-29 13:39:57', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1495, 1, 1078, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1496, 1, 1083, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1497, 1, 1084, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1498, 1, 1090, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1499, 1, 1093, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'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', b'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', b'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', b'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', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1505, 1, 1117, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'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', b'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', b'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', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1509, 1, 1126, '1', '2022-02-23 20:03:57', '1', '2023-07-14 15:12:54', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1510, 1, 103, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1522, 1, 1138, '1', '2022-02-23 20:03:57', '1', '2023-05-17 10:46:14', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1525, 1, 1224, '1', '2022-02-23 20:03:57', '1', '2023-05-17 10:46:42', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1526, 1, 1225, '1', '2022-02-23 20:03:57', '1', '2023-05-17 10:46:38', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1527, 1, 500, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'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', b'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', b'0', 122); +INSERT INTO `system_role_menu` VALUES (1604, 101, 1216, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:58:55', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1605, 101, 1217, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:58:59', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1606, 101, 1218, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:04', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1607, 101, 1219, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:56', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1608, 101, 1220, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:00', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1609, 101, 1221, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:32', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1610, 101, 5, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:14', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1611, 101, 1222, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:41', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1612, 101, 1118, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:07', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1613, 101, 1119, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:46:52', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1614, 101, 1120, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:46:58', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1615, 101, 1185, '1', '2022-03-19 21:45:52', '1', '2023-05-10 10:00:17', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1616, 101, 1186, '1', '2022-03-19 21:45:52', '1', '2023-05-10 10:00:13', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1617, 101, 1187, '1', '2022-03-19 21:45:52', '1', '2023-05-10 10:00:08', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1618, 101, 1188, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:50', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1619, 101, 1189, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:53', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1620, 101, 1190, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:57', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1621, 101, 1191, '1', '2022-03-19 21:45:52', '1', '2023-05-10 10:00:00', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1622, 101, 1192, '1', '2022-03-19 21:45:52', '1', '2023-05-10 10:00:04', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1623, 101, 1193, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:10', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1624, 101, 1194, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:26', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1625, 101, 1195, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:22', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1626, 101, 1196, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:59', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1627, 101, 1197, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:54:34', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1628, 101, 1198, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:58:36', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1629, 101, 1199, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:58:46', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1630, 101, 1200, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:09', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1631, 101, 1201, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:48:04', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1632, 101, 1202, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:53', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1633, 101, 1207, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:47', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1634, 101, 1208, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:47:25', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1635, 101, 1209, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:44', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1636, 101, 1210, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1637, 101, 1211, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:23', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1638, 101, 1212, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:26', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1639, 101, 1213, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:59:31', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1640, 101, 1215, '1', '2022-03-19 21:45:52', '1', '2023-05-10 09:58:51', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1641, 101, 2, '1', '2022-04-01 22:21:24', '1', '2022-04-01 22:21:24', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1642, 101, 1031, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1643, 101, 1032, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1644, 101, 1033, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1645, 101, 1034, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1646, 101, 1035, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1647, 101, 1050, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1648, 101, 1051, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1649, 101, 1052, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1650, 101, 1053, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1651, 101, 1054, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1652, 101, 1056, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1653, 101, 1057, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1654, 101, 1058, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1655, 101, 1059, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1656, 101, 1060, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1657, 101, 1066, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1658, 101, 1067, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1659, 101, 1070, '1', '2022-04-01 22:21:37', '1', '2023-05-17 10:35:45', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1660, 101, 1071, '1', '2022-04-01 22:21:37', '1', '2023-05-17 10:35:27', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1661, 101, 1072, '1', '2022-04-01 22:21:37', '1', '2023-05-17 10:35:32', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1662, 101, 1073, '1', '2022-04-01 22:21:37', '1', '2023-05-17 10:35:37', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1663, 101, 1074, '1', '2022-04-01 22:21:37', '1', '2023-05-17 10:35:40', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1664, 101, 1075, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1665, 101, 1076, '1', '2022-04-01 22:21:37', '1', '2024-06-01 14:26:46', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1666, 101, 1077, '1', '2022-04-01 22:21:37', '1', '2023-06-29 13:39:57', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1667, 101, 1078, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1668, 101, 1082, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1669, 101, 1083, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1670, 101, 1084, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1671, 101, 1085, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1672, 101, 1086, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1673, 101, 1087, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1674, 101, 1088, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1675, 101, 1089, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1679, 101, 1237, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1680, 101, 1238, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1681, 101, 1239, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1682, 101, 1240, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1683, 101, 1241, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1684, 101, 1242, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1685, 101, 1243, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1687, 101, 106, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1688, 101, 110, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1689, 101, 111, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1690, 101, 112, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1691, 101, 113, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1692, 101, 114, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1693, 101, 115, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1694, 101, 116, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1712, 113, 1024, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', 129); +INSERT INTO `system_role_menu` VALUES (1991, 2, 1024, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1992, 2, 1025, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1993, 2, 1026, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1994, 2, 1027, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1995, 2, 1028, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1996, 2, 1029, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1997, 2, 1030, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1998, 2, 1031, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (1999, 2, 1032, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2000, 2, 1033, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2001, 2, 1034, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2002, 2, 1035, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2003, 2, 1036, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2004, 2, 1037, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2005, 2, 1038, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2006, 2, 1039, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2007, 2, 1040, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2008, 2, 1042, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2009, 2, 1043, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2010, 2, 1045, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2011, 2, 1046, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2012, 2, 1048, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2013, 2, 1050, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2014, 2, 1051, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2015, 2, 1052, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2016, 2, 1053, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2017, 2, 1054, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2018, 2, 1056, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2019, 2, 1057, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2020, 2, 1058, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2021, 2, 2083, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2022, 2, 1059, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2023, 2, 1060, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2024, 2, 1063, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2025, 2, 1064, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2026, 2, 1065, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2027, 2, 1066, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2028, 2, 1067, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2029, 2, 1070, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:35:45', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2030, 2, 1071, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:35:27', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2031, 2, 1072, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:35:32', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2032, 2, 1073, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:35:37', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2033, 2, 1074, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:35:40', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2034, 2, 1075, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2035, 2, 1076, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2036, 2, 1082, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2037, 2, 1085, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2038, 2, 1086, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2039, 2, 1087, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2040, 2, 1088, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2041, 2, 1089, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2042, 2, 1091, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2043, 2, 1092, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2044, 2, 1095, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2045, 2, 1096, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2046, 2, 1097, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2047, 2, 1098, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2048, 2, 1101, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2049, 2, 1102, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2050, 2, 1103, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2051, 2, 1104, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2052, 2, 1105, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2053, 2, 1106, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2054, 2, 1108, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2055, 2, 1109, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2056, 2, 1111, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2057, 2, 1112, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2058, 2, 1113, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2059, 2, 1114, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2060, 2, 1115, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2061, 2, 1127, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:58', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2062, 2, 1128, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:02', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2063, 2, 1129, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:12:39', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2064, 2, 1130, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:12:44', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2065, 2, 1131, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:12:48', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2066, 2, 1132, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:37', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2067, 2, 1133, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:17', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2068, 2, 1134, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:21', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2069, 2, 1135, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:24', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2070, 2, 1136, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:28', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2071, 2, 1137, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:32', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2072, 2, 114, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2073, 2, 1139, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:44:58', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2074, 2, 115, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2075, 2, 1140, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:45:08', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2076, 2, 116, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2077, 2, 1141, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:02', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2078, 2, 1142, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:05', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2079, 2, 1143, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:09', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2080, 2, 1150, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:11:42', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2081, 2, 1161, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:55', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2082, 2, 1162, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:31', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2083, 2, 1163, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:35', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2084, 2, 1164, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:40', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2085, 2, 1165, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:44', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2086, 2, 1166, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:50', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2087, 2, 1173, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:22', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2088, 2, 1174, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:00', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2089, 2, 1175, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:05', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2090, 2, 1176, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:10', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2091, 2, 1177, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:13', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2092, 2, 1178, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:13:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2093, 2, 1179, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:51', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2094, 2, 1180, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:19', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2095, 2, 1181, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:29', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2096, 2, 1182, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:36', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2097, 2, 1183, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:41', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2098, 2, 1184, '1', '2023-01-25 08:42:52', '1', '2023-07-14 15:10:46', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2099, 2, 1226, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:21', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2100, 2, 1227, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:24', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2101, 2, 1228, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:28', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2102, 2, 1229, '1', '2023-01-25 08:42:52', '1', '2023-05-17 10:46:34', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2103, 2, 1237, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2104, 2, 1238, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2105, 2, 1239, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2106, 2, 1240, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2107, 2, 1241, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2108, 2, 1242, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2109, 2, 1243, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2110, 2, 1247, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2111, 2, 1248, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2112, 2, 1249, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2113, 2, 1250, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2114, 2, 1251, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2115, 2, 1252, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2116, 2, 1254, '1', '2023-01-25 08:42:52', '1', '2023-05-07 17:06:10', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2117, 2, 1255, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2118, 2, 1256, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2119, 2, 1257, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2120, 2, 1258, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2121, 2, 1259, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2122, 2, 1260, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2123, 2, 1261, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2124, 2, 1263, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2125, 2, 1264, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2126, 2, 1265, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2127, 2, 1266, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2128, 2, 1267, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2129, 2, 1001, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2130, 2, 1002, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2131, 2, 1003, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2132, 2, 1004, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2133, 2, 1005, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2134, 2, 1006, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2135, 2, 1007, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2136, 2, 1008, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2137, 2, 1009, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2138, 2, 1010, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2139, 2, 1011, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2140, 2, 1012, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2141, 2, 1013, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2142, 2, 1014, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2143, 2, 1015, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2144, 2, 1016, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2145, 2, 1017, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2146, 2, 1018, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2147, 2, 1019, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2148, 2, 1020, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2149, 2, 1021, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2150, 2, 1022, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2151, 2, 1023, '1', '2023-01-25 08:42:52', '1', '2023-09-05 10:16:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2152, 2, 1281, '1', '2023-01-25 08:42:58', '1', '2023-05-10 10:35:17', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2153, 2, 1282, '1', '2023-01-25 08:42:58', '1', '2023-05-10 10:34:51', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2154, 2, 2000, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2155, 2, 2002, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2156, 2, 2003, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2157, 2, 2004, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2158, 2, 2005, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2159, 2, 2006, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2160, 2, 2008, '1', '2023-01-25 08:42:58', '1', '2023-09-04 18:31:05', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2161, 2, 2009, '1', '2023-01-25 08:42:58', '1', '2023-09-04 18:30:46', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2162, 2, 2010, '1', '2023-01-25 08:42:58', '1', '2023-09-04 18:30:51', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2163, 2, 2011, '1', '2023-01-25 08:42:58', '1', '2023-09-04 18:30:56', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2164, 2, 2012, '1', '2023-01-25 08:42:58', '1', '2023-09-04 18:31:00', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2170, 2, 2019, '1', '2023-01-25 08:42:58', '1', '2023-06-02 11:27:25', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2171, 2, 2020, '1', '2023-01-25 08:42:58', '1', '2023-06-02 11:27:11', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2172, 2, 2021, '1', '2023-01-25 08:42:58', '1', '2023-06-02 11:27:15', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2173, 2, 2022, '1', '2023-01-25 08:42:58', '1', '2023-06-02 11:27:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2174, 2, 2023, '1', '2023-01-25 08:42:58', '1', '2023-06-02 11:27:21', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2175, 2, 2025, '1', '2023-01-25 08:42:58', '1', '2023-05-17 10:05:22', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2177, 2, 2027, '1', '2023-01-25 08:42:58', '1', '2023-05-17 10:05:07', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2178, 2, 2028, '1', '2023-01-25 08:42:58', '1', '2023-05-17 10:05:12', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2179, 2, 2029, '1', '2023-01-25 08:42:58', '1', '2023-05-17 10:05:18', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2180, 2, 2014, '1', '2023-01-25 08:43:12', '1', '2023-06-02 11:27:04', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2181, 2, 2015, '1', '2023-01-25 08:43:12', '1', '2023-06-02 11:26:45', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2182, 2, 2016, '1', '2023-01-25 08:43:12', '1', '2023-06-02 11:26:49', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2183, 2, 2017, '1', '2023-01-25 08:43:12', '1', '2023-06-02 11:26:54', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2184, 2, 2018, '1', '2023-01-25 08:43:12', '1', '2023-06-02 11:26:59', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2188, 101, 1024, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2189, 101, 1, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2190, 101, 1025, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2191, 101, 1026, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2192, 101, 1027, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2193, 101, 1028, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2194, 101, 1029, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2195, 101, 1030, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2196, 101, 1036, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2197, 101, 1037, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2198, 101, 1038, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2199, 101, 1039, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2200, 101, 1040, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2201, 101, 1042, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2202, 101, 1043, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2203, 101, 1045, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2204, 101, 1046, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2205, 101, 1048, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2206, 101, 2083, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2207, 101, 1063, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2208, 101, 1064, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2209, 101, 1065, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2210, 101, 1093, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2211, 101, 1094, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2212, 101, 1095, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2213, 101, 1096, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2214, 101, 1097, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2215, 101, 1098, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2216, 101, 1100, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2217, 101, 1101, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2218, 101, 1102, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2219, 101, 1103, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2220, 101, 1104, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2221, 101, 1105, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2222, 101, 1106, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2223, 101, 2130, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2224, 101, 1107, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2225, 101, 2131, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2226, 101, 1108, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2227, 101, 2132, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2228, 101, 1109, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2229, 101, 2133, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2230, 101, 2134, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2231, 101, 1110, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2232, 101, 2135, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2233, 101, 1111, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2234, 101, 2136, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2235, 101, 1112, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2236, 101, 2137, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2237, 101, 1113, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2238, 101, 2138, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2239, 101, 1114, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2240, 101, 2139, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2241, 101, 1115, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2242, 101, 2140, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2243, 101, 2141, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2244, 101, 2142, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2245, 101, 2143, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2246, 101, 2144, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2247, 101, 2145, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2248, 101, 2146, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2249, 101, 2147, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2250, 101, 100, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2251, 101, 2148, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2252, 101, 101, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2253, 101, 2149, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2254, 101, 102, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2255, 101, 2150, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2256, 101, 103, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2257, 101, 2151, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2258, 101, 104, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2259, 101, 2152, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2260, 101, 105, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2261, 101, 107, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2262, 101, 108, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2263, 101, 109, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2264, 101, 1138, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:14', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2265, 101, 1139, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:44:58', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2266, 101, 1140, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:45:08', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2267, 101, 1141, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:02', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2268, 101, 1142, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:05', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2269, 101, 1143, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:09', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2270, 101, 1224, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:42', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2271, 101, 1225, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:38', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2272, 101, 1226, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:21', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2273, 101, 1227, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:24', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2274, 101, 1228, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:28', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2275, 101, 1229, '1', '2023-02-09 23:49:46', '1', '2023-05-17 10:46:34', b'1', 1); +INSERT INTO `system_role_menu` VALUES (2276, 101, 1247, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2277, 101, 1248, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2278, 101, 1249, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2279, 101, 1250, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2280, 101, 1251, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2281, 101, 1252, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2282, 101, 1261, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2283, 101, 1263, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2284, 101, 1264, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2285, 101, 1265, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2286, 101, 1266, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2287, 101, 1267, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2288, 101, 1001, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2289, 101, 1002, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2290, 101, 1003, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2291, 101, 1004, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2292, 101, 1005, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2293, 101, 1006, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2294, 101, 1007, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2295, 101, 1008, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2296, 101, 1009, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2297, 101, 1010, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2298, 101, 1011, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2299, 101, 1012, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2300, 101, 500, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2301, 101, 1013, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2302, 101, 501, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2303, 101, 1014, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2304, 101, 1015, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2305, 101, 1016, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2306, 101, 1017, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2307, 101, 1018, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2308, 101, 1019, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2309, 101, 1020, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2310, 101, 1021, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2311, 101, 1022, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2312, 101, 1023, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` VALUES (2789, 136, 1, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'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', b'0', 149); +INSERT INTO `system_role_menu` VALUES (2873, 2, 2307, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2874, 2, 2264, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2875, 2, 2265, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2876, 2, 2266, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2877, 2, 2267, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2878, 2, 2268, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2879, 2, 2269, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2880, 2, 2207, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2881, 2, 2208, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2882, 2, 2209, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2883, 2, 2210, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2884, 2, 2211, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2885, 2, 2212, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2886, 2, 2288, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2887, 2, 2289, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2888, 2, 2290, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2889, 2, 2291, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2890, 2, 2292, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2891, 2, 2293, '1', '2023-09-05 10:16:18', '1', '2023-09-05 16:30:36', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2892, 2, 2174, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2893, 2, 2175, '1', '2023-09-05 10:16:18', '1', '2023-09-05 10:16:18', b'0', 0); +INSERT INTO `system_role_menu` VALUES (2894, 2, 1024, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2895, 2, 1, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2896, 2, 1025, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2897, 2, 1026, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2898, 2, 1027, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2899, 2, 1028, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2900, 2, 1029, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2901, 2, 1030, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2902, 2, 1036, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2903, 2, 1037, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2904, 2, 1038, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2905, 2, 1039, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2906, 2, 1040, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2907, 2, 1042, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2908, 2, 1043, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2909, 2, 1045, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2910, 2, 1046, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2911, 2, 1048, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2912, 2, 2083, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2913, 2, 1063, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2914, 2, 1064, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2915, 2, 1065, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2916, 2, 1093, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2917, 2, 1094, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2918, 2, 1095, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2919, 2, 1096, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2920, 2, 1097, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2921, 2, 1098, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2922, 2, 1100, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2923, 2, 1101, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2924, 2, 1102, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2925, 2, 1103, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2926, 2, 1104, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2927, 2, 1105, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2928, 2, 1106, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2929, 2, 2130, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2930, 2, 1107, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2931, 2, 2131, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2932, 2, 1108, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2933, 2, 2132, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2934, 2, 1109, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2935, 2, 2133, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2936, 2, 2134, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2937, 2, 1110, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2938, 2, 2135, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2939, 2, 1111, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2940, 2, 2136, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2941, 2, 1112, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2942, 2, 2137, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2943, 2, 1113, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2944, 2, 2138, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2945, 2, 1114, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2946, 2, 2139, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2947, 2, 1115, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2948, 2, 2140, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2949, 2, 2141, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2950, 2, 2142, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2951, 2, 2143, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2952, 2, 2144, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2953, 2, 2145, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2954, 2, 2146, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2955, 2, 2147, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2956, 2, 100, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2957, 2, 2148, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2958, 2, 101, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2959, 2, 2149, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2960, 2, 102, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2961, 2, 2150, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2962, 2, 103, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2963, 2, 2151, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2964, 2, 104, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2965, 2, 2152, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2966, 2, 105, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2967, 2, 107, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2968, 2, 108, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2969, 2, 109, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2970, 2, 1247, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2971, 2, 1248, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2972, 2, 1249, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2973, 2, 1250, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2974, 2, 1251, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2975, 2, 1252, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2976, 2, 1001, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2977, 2, 1002, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2978, 2, 1003, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2979, 2, 1004, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2980, 2, 1005, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2981, 2, 1261, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2982, 2, 1006, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2983, 2, 1007, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2984, 2, 1263, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2985, 2, 1008, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2986, 2, 1264, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2987, 2, 1009, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2988, 2, 1265, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2989, 2, 1010, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2990, 2, 1266, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2991, 2, 1011, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2992, 2, 1267, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2993, 2, 1012, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2994, 2, 500, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2995, 2, 1013, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2996, 2, 501, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2997, 2, 1014, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2998, 2, 1015, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (2999, 2, 1016, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3000, 2, 1017, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3001, 2, 1018, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3002, 2, 1019, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3003, 2, 1020, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3004, 2, 1021, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3005, 2, 1022, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3006, 2, 1023, '1', '2023-09-05 14:41:31', '1', '2023-09-05 14:42:18', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3007, 2, 1024, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3008, 2, 1, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3009, 2, 1025, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3010, 2, 2, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3011, 2, 1026, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3012, 2, 1027, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3013, 2, 1028, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3014, 2, 1029, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3015, 2, 1030, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3016, 2, 1031, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3017, 2, 1032, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3018, 2, 1033, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3019, 2, 1034, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3020, 2, 1035, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3021, 2, 1036, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3022, 2, 1037, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3023, 2, 1038, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3024, 2, 1039, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3025, 2, 1040, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3026, 2, 1042, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3027, 2, 1043, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3028, 2, 1045, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3029, 2, 1046, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3030, 2, 1048, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3031, 2, 1050, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3032, 2, 1051, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3033, 2, 1052, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3034, 2, 1053, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3035, 2, 1054, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3036, 2, 1056, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3037, 2, 1057, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3038, 2, 1058, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3039, 2, 1059, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3040, 2, 2083, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3041, 2, 1060, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3042, 2, 1063, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3043, 2, 1064, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3044, 2, 1065, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3045, 2, 1066, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3046, 2, 1067, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3047, 2, 1075, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3048, 2, 1076, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3049, 2, 1078, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3050, 2, 1082, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3051, 2, 1083, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3052, 2, 1084, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3053, 2, 1085, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3054, 2, 1086, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3055, 2, 1087, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3056, 2, 1088, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3057, 2, 1089, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3058, 2, 1090, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3059, 2, 1091, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3060, 2, 1092, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3061, 2, 1093, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3062, 2, 1094, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3063, 2, 1095, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3064, 2, 1096, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3065, 2, 1097, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3066, 2, 1098, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3067, 2, 1100, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3068, 2, 1101, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3069, 2, 1102, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3070, 2, 1103, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3071, 2, 1104, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3072, 2, 1105, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3073, 2, 1106, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3074, 2, 2130, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3075, 2, 1107, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3076, 2, 2131, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3077, 2, 1108, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3078, 2, 2132, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3079, 2, 1109, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3080, 2, 2133, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3081, 2, 2134, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3082, 2, 1110, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3083, 2, 2135, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3084, 2, 1111, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3085, 2, 2136, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3086, 2, 1112, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3087, 2, 2137, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3088, 2, 1113, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3089, 2, 2138, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3090, 2, 1114, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3091, 2, 2139, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3092, 2, 1115, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3093, 2, 2140, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3094, 2, 2141, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3095, 2, 2142, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3096, 2, 2143, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3097, 2, 2144, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3098, 2, 2145, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3099, 2, 2146, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3100, 2, 2147, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3101, 2, 100, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3102, 2, 2148, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3103, 2, 101, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3104, 2, 2149, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3105, 2, 102, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3106, 2, 2150, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3107, 2, 103, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3108, 2, 2151, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3109, 2, 104, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3110, 2, 2152, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3111, 2, 105, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3112, 2, 106, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3113, 2, 107, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3114, 2, 108, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3115, 2, 109, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3116, 2, 110, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3117, 2, 111, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3118, 2, 112, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3119, 2, 113, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3120, 2, 114, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3121, 2, 115, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3122, 2, 116, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3123, 2, 1237, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3124, 2, 1238, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3125, 2, 1239, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3126, 2, 1240, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3127, 2, 1241, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3128, 2, 1242, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3129, 2, 1243, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3130, 2, 1247, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3131, 2, 1248, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3132, 2, 1249, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3133, 2, 1250, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3134, 2, 1251, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3135, 2, 1252, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3136, 2, 1255, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3137, 2, 1256, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3138, 2, 1257, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3139, 2, 1258, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3140, 2, 1259, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3141, 2, 1260, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3142, 2, 1261, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3143, 2, 1263, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3144, 2, 1264, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3145, 2, 1265, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3146, 2, 1266, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3147, 2, 1267, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3148, 2, 1001, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3149, 2, 1002, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3150, 2, 1003, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3151, 2, 1004, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3152, 2, 1005, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3153, 2, 1006, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3154, 2, 1007, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3155, 2, 1008, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3156, 2, 1009, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3157, 2, 1010, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3158, 2, 1011, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3159, 2, 1012, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3160, 2, 500, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3161, 2, 1013, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3162, 2, 501, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3163, 2, 1014, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3164, 2, 1015, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3165, 2, 1016, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3166, 2, 1017, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3167, 2, 1018, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3168, 2, 1019, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3169, 2, 1020, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3170, 2, 1021, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3171, 2, 1022, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3172, 2, 1023, '1', '2023-09-05 14:47:56', '1', '2023-09-05 14:56:16', b'1', 0); +INSERT INTO `system_role_menu` VALUES (3173, 2, 2168, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_role_menu` VALUES (3174, 2, 2169, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_role_menu` VALUES (3175, 2, 2170, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_role_menu` VALUES (3176, 2, 2171, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_role_menu` VALUES (3177, 2, 2172, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:19:21', b'0', 0); +INSERT INTO `system_role_menu` VALUES (3178, 2, 2173, '1', '2023-09-05 16:19:21', '1', '2023-09-05 16:30:36', b'1', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sensitive_word +-- ---------------------------- +DROP TABLE IF EXISTS `system_sensitive_word`; +CREATE TABLE `system_sensitive_word` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '敏感词', + `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述', + `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标签数组', + `status` tinyint NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='敏感词'; + +-- ---------------------------- +-- Records of system_sensitive_word +-- ---------------------------- +BEGIN; +INSERT INTO `system_sensitive_word` VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2022-04-09 10:28:14', b'0'); +INSERT INTO `system_sensitive_word` VALUES (4, 'XXX', NULL, '短信', 0, '1', '2022-04-08 21:27:49', '1', '2022-06-19 00:36:50', b'0'); +INSERT INTO `system_sensitive_word` VALUES (5, '白痴', NULL, '测试', 0, '1', '2022-12-31 19:08:25', '1', '2022-12-31 19:08:25', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_channel +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_channel`; +CREATE TABLE `system_sms_channel` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `signature` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信签名', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '渠道编码', + `status` tinyint NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `api_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的账号', + `api_secret` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信 API 的秘钥', + `callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信发送回调 URL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信渠道'; + +-- ---------------------------- +-- Records of system_sms_channel +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_channel` VALUES (2, 'yshop', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2023-07-31 10:10:34', b'0'); +INSERT INTO `system_sms_channel` VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', b'0'); +INSERT INTO `system_sms_channel` VALUES (6, '测试演示', 'DEBUG_DING_TALK', 0, NULL, '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2022-04-10 23:07:59', '1', '2022-06-19 00:33:54', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_code`; +CREATE TABLE `system_sms_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号', + `code` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '验证码', + `create_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建 IP', + `scene` tinyint NOT NULL COMMENT '发送场景', + `today_index` tinyint NOT NULL COMMENT '今日发送的第几条', + `used` tinyint NOT NULL COMMENT '是否使用', + `used_time` datetime DEFAULT NULL COMMENT '使用时间', + `used_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '使用 IP', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_mobile` (`mobile`) USING BTREE COMMENT '手机号' +) ENGINE=InnoDB AUTO_INCREMENT=546 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='手机验证码'; + +-- ---------------------------- +-- Records of system_sms_code +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_code` VALUES (484, '15136175246', '9999', '127.0.0.1', 1, 1, 0, NULL, NULL, NULL, '2023-06-10 15:14:44', NULL, '2023-06-10 15:14:44', b'0', 0); +INSERT INTO `system_sms_code` VALUES (485, '15136175246', '9999', '127.0.0.1', 1, 2, 0, NULL, NULL, NULL, '2023-06-10 15:33:47', NULL, '2023-06-10 15:33:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (486, '15136175246', '9999', '127.0.0.1', 1, 3, 1, '2023-06-10 15:45:43', '127.0.0.1', NULL, '2023-06-10 15:45:40', NULL, '2023-06-10 15:45:43', b'0', 0); +INSERT INTO `system_sms_code` VALUES (487, '18126335873', '9999', '127.0.0.1', 1, 1, 0, NULL, NULL, NULL, '2023-06-15 11:27:02', NULL, '2023-06-15 11:27:02', b'0', 0); +INSERT INTO `system_sms_code` VALUES (488, '15136176246', '9999', '127.0.0.1', 1, 1, 0, NULL, NULL, NULL, '2023-06-15 11:28:11', NULL, '2023-06-15 11:28:11', b'0', 0); +INSERT INTO `system_sms_code` VALUES (489, '15136175246', '9999', '127.0.0.1', 1, 1, 1, '2023-06-15 11:28:33', '127.0.0.1', NULL, '2023-06-15 11:28:29', NULL, '2023-06-15 11:28:33', b'0', 0); +INSERT INTO `system_sms_code` VALUES (490, '15136175246', '9999', '127.0.0.1', 1, 1, 1, '2023-07-15 18:54:40', '127.0.0.1', NULL, '2023-07-15 18:54:12', NULL, '2023-07-15 18:54:40', b'0', 0); +INSERT INTO `system_sms_code` VALUES (491, '15136175246', '9999', '127.0.0.1', 1, 1, 1, '2023-07-25 16:08:02', '127.0.0.1', NULL, '2023-07-25 16:07:35', NULL, '2023-07-25 16:08:02', b'0', 0); +INSERT INTO `system_sms_code` VALUES (492, '15136175245', '9999', '0:0:0:0:0:0:0:1', 1, 1, 0, NULL, NULL, NULL, '2023-09-07 14:43:49', NULL, '2023-09-07 14:43:49', b'0', 0); +INSERT INTO `system_sms_code` VALUES (493, '15136175247', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 14:45:11', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 14:45:08', NULL, '2023-09-07 14:45:11', b'0', 0); +INSERT INTO `system_sms_code` VALUES (494, '15136175247', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-09-07 14:51:35', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 14:51:32', NULL, '2023-09-07 14:51:35', b'0', 0); +INSERT INTO `system_sms_code` VALUES (495, '15136175244', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 14:53:47', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 14:53:39', NULL, '2023-09-07 14:53:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (496, '15136175221', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 15:02:48', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 15:02:43', NULL, '2023-09-07 15:02:48', b'0', 0); +INSERT INTO `system_sms_code` VALUES (497, '15136175245', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-09-07 15:09:38', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 15:09:34', NULL, '2023-09-07 15:09:38', b'0', 0); +INSERT INTO `system_sms_code` VALUES (498, '15136175245', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-09-07 15:11:38', '0:0:0:0:0:0:0:1', '2', '2023-09-07 15:11:10', '2', '2023-09-07 15:11:38', b'0', 0); +INSERT INTO `system_sms_code` VALUES (499, '15136175245', '9999', '0:0:0:0:0:0:0:1', 1, 4, 1, '2023-09-07 15:14:32', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 15:14:29', NULL, '2023-09-07 15:14:32', b'0', 0); +INSERT INTO `system_sms_code` VALUES (500, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 15:18:47', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 15:18:45', NULL, '2023-09-07 15:18:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (501, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-09-07 16:44:47', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 16:44:45', NULL, '2023-09-07 16:44:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (502, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-09-07 16:48:02', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 16:47:59', NULL, '2023-09-07 16:48:02', b'0', 0); +INSERT INTO `system_sms_code` VALUES (503, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 4, 1, '2023-09-07 16:52:55', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 16:52:52', NULL, '2023-09-07 16:52:55', b'0', 0); +INSERT INTO `system_sms_code` VALUES (504, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 5, 1, '2023-09-07 17:45:25', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:45:22', NULL, '2023-09-07 17:45:25', b'0', 0); +INSERT INTO `system_sms_code` VALUES (505, '15136175247', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-09-07 17:46:05', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:46:04', NULL, '2023-09-07 17:46:05', b'0', 0); +INSERT INTO `system_sms_code` VALUES (506, '15136175245', '9999', '0:0:0:0:0:0:0:1', 1, 5, 1, '2023-09-07 17:47:00', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:46:57', NULL, '2023-09-07 17:47:00', b'0', 0); +INSERT INTO `system_sms_code` VALUES (507, '15136175242', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 17:47:33', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:47:32', NULL, '2023-09-07 17:47:33', b'0', 0); +INSERT INTO `system_sms_code` VALUES (508, '15136175243', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 17:54:25', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:54:21', NULL, '2023-09-07 17:54:25', b'0', 0); +INSERT INTO `system_sms_code` VALUES (509, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-07 17:57:39', '0:0:0:0:0:0:0:1', NULL, '2023-09-07 17:57:36', NULL, '2023-09-07 17:57:39', b'0', 0); +INSERT INTO `system_sms_code` VALUES (510, '15136175246', '9999', '223.91.183.134', 1, 1, 1, '2023-09-18 16:58:51', '223.91.183.134', NULL, '2023-09-18 16:58:47', NULL, '2023-09-18 16:58:51', b'0', 0); +INSERT INTO `system_sms_code` VALUES (511, '15136175246', '9999', '223.91.183.134', 1, 2, 1, '2023-09-18 17:02:37', '223.91.183.134', NULL, '2023-09-18 17:02:34', NULL, '2023-09-18 17:02:37', b'0', 0); +INSERT INTO `system_sms_code` VALUES (512, '15136176246', '9999', '223.91.183.134', 1, 1, 1, '2023-09-18 17:07:29', '223.91.183.134', NULL, '2023-09-18 17:07:26', NULL, '2023-09-18 17:07:29', b'0', 0); +INSERT INTO `system_sms_code` VALUES (513, '15136175246', '9999', '223.91.183.134', 1, 3, 1, '2023-09-18 17:08:04', '223.91.183.134', NULL, '2023-09-18 17:08:01', NULL, '2023-09-18 17:08:04', b'0', 0); +INSERT INTO `system_sms_code` VALUES (514, '15136175246', '9999', '223.91.183.134', 1, 4, 1, '2023-09-18 18:02:59', '223.91.183.134', NULL, '2023-09-18 18:02:55', NULL, '2023-09-18 18:02:59', b'0', 0); +INSERT INTO `system_sms_code` VALUES (515, '15136175246', '9999', '223.91.183.37', 1, 5, 1, '2023-09-18 18:16:14', '223.91.183.37', NULL, '2023-09-18 18:16:13', NULL, '2023-09-18 18:16:14', b'0', 0); +INSERT INTO `system_sms_code` VALUES (516, '15136175246', '9999', '223.91.183.37', 1, 6, 1, '2023-09-18 18:19:44', '223.91.183.37', NULL, '2023-09-18 18:19:41', NULL, '2023-09-18 18:19:44', b'0', 0); +INSERT INTO `system_sms_code` VALUES (517, '15136175246', '9999', '223.91.183.37', 1, 7, 1, '2023-09-18 18:30:58', '223.91.183.37', NULL, '2023-09-18 18:30:51', NULL, '2023-09-18 18:30:58', b'0', 0); +INSERT INTO `system_sms_code` VALUES (518, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-09-21 23:25:36', '0:0:0:0:0:0:0:1', NULL, '2023-09-21 23:25:33', NULL, '2023-09-21 23:25:36', b'0', 0); +INSERT INTO `system_sms_code` VALUES (519, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-19 10:02:47', '0:0:0:0:0:0:0:1', NULL, '2023-10-19 10:02:40', NULL, '2023-10-19 10:02:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (520, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-10-19 11:13:23', '0:0:0:0:0:0:0:1', NULL, '2023-10-19 11:13:18', NULL, '2023-10-19 11:13:23', b'0', 0); +INSERT INTO `system_sms_code` VALUES (521, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-21 11:35:08', '0:0:0:0:0:0:0:1', NULL, '2023-10-21 11:35:02', NULL, '2023-10-21 11:35:08', b'0', 0); +INSERT INTO `system_sms_code` VALUES (522, '15136175523', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-23 09:48:21', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 09:48:15', NULL, '2023-10-23 09:48:21', b'0', 0); +INSERT INTO `system_sms_code` VALUES (523, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-23 09:53:34', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 09:53:28', NULL, '2023-10-23 09:53:34', b'0', 0); +INSERT INTO `system_sms_code` VALUES (524, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-10-23 10:12:14', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 10:12:08', NULL, '2023-10-23 10:12:14', b'0', 0); +INSERT INTO `system_sms_code` VALUES (525, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-10-23 10:19:16', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 10:19:15', NULL, '2023-10-23 10:19:16', b'0', 0); +INSERT INTO `system_sms_code` VALUES (526, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 4, 1, '2023-10-23 10:21:40', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 10:21:36', NULL, '2023-10-23 10:21:40', b'0', 0); +INSERT INTO `system_sms_code` VALUES (527, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 5, 1, '2023-10-23 10:25:09', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 10:25:04', NULL, '2023-10-23 10:25:09', b'0', 0); +INSERT INTO `system_sms_code` VALUES (528, '15136175234', '9999', '0:0:0:0:0:0:0:1', 1, 6, 1, '2023-10-23 10:33:28', '0:0:0:0:0:0:0:1', NULL, '2023-10-23 10:33:22', NULL, '2023-10-23 10:33:28', b'0', 0); +INSERT INTO `system_sms_code` VALUES (529, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 0, NULL, NULL, NULL, '2023-10-27 17:02:20', NULL, '2023-10-27 17:02:20', b'0', 0); +INSERT INTO `system_sms_code` VALUES (530, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 2, 0, NULL, NULL, NULL, '2023-10-27 17:04:28', NULL, '2023-10-27 17:04:28', b'0', 0); +INSERT INTO `system_sms_code` VALUES (531, '15136175236', '9999', '0:0:0:0:0:0:0:1', 1, 1, 0, NULL, NULL, NULL, '2023-10-27 17:05:48', NULL, '2023-10-27 17:05:48', b'0', 0); +INSERT INTO `system_sms_code` VALUES (532, '15136175236', '9999', '0:0:0:0:0:0:0:1', 1, 2, 0, NULL, NULL, NULL, '2023-10-27 17:07:16', NULL, '2023-10-27 17:07:16', b'0', 0); +INSERT INTO `system_sms_code` VALUES (533, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-10-27 17:20:47', '0:0:0:0:0:0:0:1', NULL, '2023-10-27 17:12:23', NULL, '2023-10-27 17:20:47', b'0', 0); +INSERT INTO `system_sms_code` VALUES (534, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 4, 1, '2023-10-27 17:23:30', '0:0:0:0:0:0:0:1', NULL, '2023-10-27 17:23:26', NULL, '2023-10-27 17:23:30', b'0', 0); +INSERT INTO `system_sms_code` VALUES (535, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 5, 1, '2023-10-27 17:38:02', '0:0:0:0:0:0:0:1', NULL, '2023-10-27 17:37:55', NULL, '2023-10-27 17:38:02', b'0', 0); +INSERT INTO `system_sms_code` VALUES (536, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 6, 1, '2023-10-27 17:40:44', '0:0:0:0:0:0:0:1', NULL, '2023-10-27 17:40:37', NULL, '2023-10-27 17:40:44', b'0', 0); +INSERT INTO `system_sms_code` VALUES (537, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-28 16:37:01', '0:0:0:0:0:0:0:1', NULL, '2023-10-28 16:36:55', NULL, '2023-10-28 16:37:01', b'0', 0); +INSERT INTO `system_sms_code` VALUES (538, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-10-31 11:35:38', '0:0:0:0:0:0:0:1', NULL, '2023-10-31 11:35:34', NULL, '2023-10-31 11:35:38', b'0', 0); +INSERT INTO `system_sms_code` VALUES (539, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-10-31 11:44:06', '0:0:0:0:0:0:0:1', NULL, '2023-10-31 11:44:01', NULL, '2023-10-31 11:44:06', b'0', 0); +INSERT INTO `system_sms_code` VALUES (540, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 3, 1, '2023-10-31 11:45:58', '0:0:0:0:0:0:0:1', NULL, '2023-10-31 11:45:53', NULL, '2023-10-31 11:45:58', b'0', 0); +INSERT INTO `system_sms_code` VALUES (541, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 4, 1, '2023-10-31 11:53:04', '0:0:0:0:0:0:0:1', NULL, '2023-10-31 11:53:00', NULL, '2023-10-31 11:53:04', b'0', 0); +INSERT INTO `system_sms_code` VALUES (542, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 5, 1, '2023-10-31 12:02:55', '0:0:0:0:0:0:0:1', NULL, '2023-10-31 12:02:50', NULL, '2023-10-31 12:02:55', b'0', 0); +INSERT INTO `system_sms_code` VALUES (543, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-11-08 18:43:37', '0:0:0:0:0:0:0:1', NULL, '2023-11-08 18:43:33', NULL, '2023-11-08 18:43:37', b'0', 0); +INSERT INTO `system_sms_code` VALUES (544, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 1, 1, '2023-12-08 11:05:24', '0:0:0:0:0:0:0:1', NULL, '2023-12-08 11:05:18', NULL, '2023-12-08 11:05:24', b'0', 0); +INSERT INTO `system_sms_code` VALUES (545, '15136175246', '9999', '0:0:0:0:0:0:0:1', 1, 2, 1, '2023-12-08 11:16:20', '0:0:0:0:0:0:0:1', '9', '2023-12-08 11:16:13', '9', '2023-12-08 11:16:20', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_log`; +CREATE TABLE `system_sms_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `channel_id` bigint NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信渠道编码', + `template_id` bigint NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_type` tinyint NOT NULL COMMENT '短信类型', + `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信参数', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的模板编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号', + `user_id` bigint DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint DEFAULT NULL COMMENT '用户类型', + `send_status` tinyint NOT NULL DEFAULT '0' COMMENT '发送状态', + `send_time` datetime DEFAULT NULL COMMENT '发送时间', + `send_code` int DEFAULT NULL COMMENT '发送结果的编码', + `send_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发送结果的提示', + `api_send_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信 API 发送结果的编码', + `api_send_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信 API 发送失败的提示', + `api_request_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信 API 发送返回的唯一请求 ID', + `api_serial_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '短信 API 发送返回的序号', + `receive_status` tinyint NOT NULL DEFAULT '0' COMMENT '接收状态', + `receive_time` datetime DEFAULT NULL COMMENT '接收时间', + `api_receive_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'API 接收结果的编码', + `api_receive_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'API 接收结果的说明', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=411 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信日志'; + +-- ---------------------------- +-- Records of system_sms_log +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_log` VALUES (349, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-06-10 15:14:46', 0, '成功', '0', NULL, NULL, '5523d1ff-14b2-496d-8ed1-0f3b8584be49', 0, NULL, NULL, NULL, NULL, '2023-06-10 15:14:45', NULL, '2023-06-10 15:14:46', b'0'); +INSERT INTO `system_sms_log` VALUES (350, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-06-10 15:33:47', 0, '成功', '0', NULL, NULL, '42411501-7aa4-4428-8e2a-202e22cce52f', 0, NULL, NULL, NULL, NULL, '2023-06-10 15:33:47', NULL, '2023-06-10 15:33:47', b'0'); +INSERT INTO `system_sms_log` VALUES (351, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-06-10 15:45:40', 0, '成功', '0', NULL, NULL, '6e03f434-81b9-46a2-ad5d-3a3dda43087c', 0, NULL, NULL, NULL, NULL, '2023-06-10 15:45:40', NULL, '2023-06-10 15:45:40', b'0'); +INSERT INTO `system_sms_log` VALUES (352, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '18126335873', NULL, NULL, 10, '2023-06-15 11:27:04', 0, '成功', '0', NULL, NULL, 'eacd21d3-4d9f-4105-b802-310a046ae63d', 0, NULL, NULL, NULL, NULL, '2023-06-15 11:27:02', NULL, '2023-06-15 11:27:04', b'0'); +INSERT INTO `system_sms_log` VALUES (353, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136176246', NULL, NULL, 10, '2023-06-15 11:28:12', 0, '成功', '0', NULL, NULL, '74bdc5d1-00af-4af3-a907-d186acfcf476', 0, NULL, NULL, NULL, NULL, '2023-06-15 11:28:11', NULL, '2023-06-15 11:28:12', b'0'); +INSERT INTO `system_sms_log` VALUES (354, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-06-15 11:28:29', 0, '成功', '0', NULL, NULL, 'b0d88cf5-11e1-48ff-984a-bb5de6a05bb8', 0, NULL, NULL, NULL, NULL, '2023-06-15 11:28:29', NULL, '2023-06-15 11:28:29', b'0'); +INSERT INTO `system_sms_log` VALUES (355, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-07-15 18:54:13', 0, '成功', '0', NULL, NULL, '286c2c09-2ff9-4fa8-8c67-3a8996c10e51', 0, NULL, NULL, NULL, NULL, '2023-07-15 18:54:12', NULL, '2023-07-15 18:54:13', b'0'); +INSERT INTO `system_sms_log` VALUES (356, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-07-25 16:07:36', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, 'ac3ba6b3-5d38-47da-96d5-3823f9931dab', 0, NULL, NULL, NULL, NULL, '2023-07-25 16:07:35', NULL, '2023-07-25 16:07:36', b'0'); +INSERT INTO `system_sms_log` VALUES (357, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175245', NULL, NULL, 10, '2023-09-07 14:43:50', 0, '成功', '0', NULL, NULL, 'cfcf8688-cefc-4dc0-94ea-d36d034e3644', 0, NULL, NULL, NULL, NULL, '2023-09-07 14:43:49', NULL, '2023-09-07 14:43:50', b'0'); +INSERT INTO `system_sms_log` VALUES (358, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175247', NULL, NULL, 10, '2023-09-07 14:45:09', 0, '成功', '0', NULL, NULL, '424487c6-5e99-4de1-abea-16f95a2115c2', 0, NULL, NULL, NULL, NULL, '2023-09-07 14:45:08', NULL, '2023-09-07 14:45:09', b'0'); +INSERT INTO `system_sms_log` VALUES (359, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175247', NULL, NULL, 10, '2023-09-07 14:51:33', 0, '成功', '0', NULL, NULL, '9a13d515-347e-4faa-893e-f715677e92b3', 0, NULL, NULL, NULL, NULL, '2023-09-07 14:51:32', NULL, '2023-09-07 14:51:34', b'0'); +INSERT INTO `system_sms_log` VALUES (360, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175244', NULL, NULL, 10, '2023-09-07 14:53:39', 0, '成功', '0', NULL, NULL, '166c251d-4b64-427e-9539-b8b4e17b1a6f', 0, NULL, NULL, NULL, NULL, '2023-09-07 14:53:39', NULL, '2023-09-07 14:53:39', b'0'); +INSERT INTO `system_sms_log` VALUES (361, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175221', NULL, NULL, 10, '2023-09-07 15:02:43', 0, '成功', '0', NULL, NULL, 'ecf5cb54-83f5-4761-9b62-e752cab087ef', 0, NULL, NULL, NULL, NULL, '2023-09-07 15:02:43', NULL, '2023-09-07 15:02:43', b'0'); +INSERT INTO `system_sms_log` VALUES (362, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175245', NULL, NULL, 10, '2023-09-07 15:09:35', 0, '成功', '0', NULL, NULL, '75c35680-0df5-48b1-abb8-2e83edb5762b', 0, NULL, NULL, NULL, NULL, '2023-09-07 15:09:34', NULL, '2023-09-07 15:09:35', b'0'); +INSERT INTO `system_sms_log` VALUES (363, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175245', NULL, NULL, 10, '2023-09-07 15:11:10', 0, '成功', '0', NULL, NULL, 'b6be86ff-f8d6-49ec-a5b9-43f4263f6fd4', 0, NULL, NULL, NULL, '2', '2023-09-07 15:11:10', NULL, '2023-09-07 15:11:10', b'0'); +INSERT INTO `system_sms_log` VALUES (364, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175245', NULL, NULL, 10, '2023-09-07 15:14:29', 0, '成功', '0', NULL, NULL, '35c1cb49-e9eb-4ed4-b44b-13ce3d6ca242', 0, NULL, NULL, NULL, NULL, '2023-09-07 15:14:29', NULL, '2023-09-07 15:14:29', b'0'); +INSERT INTO `system_sms_log` VALUES (365, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-07 15:18:45', 0, '成功', '0', NULL, NULL, '842be4ef-144c-40fe-b161-3b38790590b5', 0, NULL, NULL, NULL, NULL, '2023-09-07 15:18:45', NULL, '2023-09-07 15:18:45', b'0'); +INSERT INTO `system_sms_log` VALUES (366, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-07 16:44:46', 0, '成功', '0', NULL, NULL, 'e467368b-413e-4c0a-9d02-b7b3985e753e', 0, NULL, NULL, NULL, NULL, '2023-09-07 16:44:45', NULL, '2023-09-07 16:44:46', b'0'); +INSERT INTO `system_sms_log` VALUES (367, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-07 16:47:59', 0, '成功', '0', NULL, NULL, 'e0b23391-d369-4dc0-b241-015da900186d', 0, NULL, NULL, NULL, NULL, '2023-09-07 16:47:59', NULL, '2023-09-07 16:47:59', b'0'); +INSERT INTO `system_sms_log` VALUES (368, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-07 16:52:52', 0, '成功', '0', NULL, NULL, '0ef9923d-6901-47c3-bec6-17eab417088e', 0, NULL, NULL, NULL, NULL, '2023-09-07 16:52:52', NULL, '2023-09-07 16:52:52', b'0'); +INSERT INTO `system_sms_log` VALUES (369, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-07 17:45:24', 0, '成功', '0', NULL, NULL, '07e003ac-c566-4383-a942-bcd05f56653a', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:45:22', NULL, '2023-09-07 17:45:24', b'0'); +INSERT INTO `system_sms_log` VALUES (370, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175247', NULL, NULL, 10, '2023-09-07 17:46:04', 0, '成功', '0', NULL, NULL, 'fba0823c-19c8-46f7-8568-f818e0cdeb1d', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:46:04', NULL, '2023-09-07 17:46:04', b'0'); +INSERT INTO `system_sms_log` VALUES (371, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175245', NULL, NULL, 10, '2023-09-07 17:46:57', 0, '成功', '0', NULL, NULL, '17a497b0-adee-4643-ad55-f3641fb38136', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:46:57', NULL, '2023-09-07 17:46:57', b'0'); +INSERT INTO `system_sms_log` VALUES (372, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175242', NULL, NULL, 10, '2023-09-07 17:47:32', 0, '成功', '0', NULL, NULL, 'e11b449b-898a-4df7-8b8f-47edc3000575', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:47:32', NULL, '2023-09-07 17:47:32', b'0'); +INSERT INTO `system_sms_log` VALUES (373, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175243', NULL, NULL, 10, '2023-09-07 17:54:21', 0, '成功', '0', NULL, NULL, 'f95b4206-19ca-4b84-878f-81441257387d', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:54:21', NULL, '2023-09-07 17:54:21', b'0'); +INSERT INTO `system_sms_log` VALUES (374, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-09-07 17:57:38', 0, '成功', '0', NULL, NULL, '29655f4d-a5d0-4aeb-8b30-646587c7e9cc', 0, NULL, NULL, NULL, NULL, '2023-09-07 17:57:36', NULL, '2023-09-07 17:57:38', b'0'); +INSERT INTO `system_sms_log` VALUES (375, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 16:58:48', 0, '成功', '0', NULL, NULL, 'c81d3357-2469-4795-aa66-eefaec10870c', 0, NULL, NULL, NULL, NULL, '2023-09-18 16:58:48', NULL, '2023-09-18 16:58:48', b'0'); +INSERT INTO `system_sms_log` VALUES (376, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 17:02:34', 0, '成功', '0', NULL, NULL, '01c6d2d5-1d93-4844-abd0-5c3830cb3735', 0, NULL, NULL, NULL, NULL, '2023-09-18 17:02:34', NULL, '2023-09-18 17:02:34', b'0'); +INSERT INTO `system_sms_log` VALUES (377, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136176246', NULL, NULL, 10, '2023-09-18 17:07:26', 0, '成功', '0', NULL, NULL, '3d6751d1-0535-4077-b698-1ec8ee70aa32', 0, NULL, NULL, NULL, NULL, '2023-09-18 17:07:26', NULL, '2023-09-18 17:07:26', b'0'); +INSERT INTO `system_sms_log` VALUES (378, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 17:08:01', 0, '成功', '0', NULL, NULL, '83d92d0f-4836-4b9a-a111-2689070ba2da', 0, NULL, NULL, NULL, NULL, '2023-09-18 17:08:01', NULL, '2023-09-18 17:08:01', b'0'); +INSERT INTO `system_sms_log` VALUES (379, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 18:02:55', 0, '成功', '0', NULL, NULL, '8111fabd-0f42-494d-b059-4c6706dc179c', 0, NULL, NULL, NULL, NULL, '2023-09-18 18:02:55', NULL, '2023-09-18 18:02:55', b'0'); +INSERT INTO `system_sms_log` VALUES (380, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 18:16:13', 0, '成功', '0', NULL, NULL, '404a333e-5d20-478d-b50d-7d3bd8bef8a6', 0, NULL, NULL, NULL, NULL, '2023-09-18 18:16:13', NULL, '2023-09-18 18:16:13', b'0'); +INSERT INTO `system_sms_log` VALUES (381, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 18:19:41', 0, '成功', '0', NULL, NULL, '79621f1c-f558-4246-84d5-8c222b70212e', 0, NULL, NULL, NULL, NULL, '2023-09-18 18:19:41', NULL, '2023-09-18 18:19:41', b'0'); +INSERT INTO `system_sms_log` VALUES (382, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-18 18:30:52', 0, '成功', '0', NULL, NULL, 'd9d19903-6664-4e18-9ec1-7409aad80818', 0, NULL, NULL, NULL, NULL, '2023-09-18 18:30:51', NULL, '2023-09-18 18:30:52', b'0'); +INSERT INTO `system_sms_log` VALUES (383, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-09-21 23:25:35', 0, '成功', '0', NULL, NULL, '6d7e4710-f101-467b-8594-5b2ac65c8917', 0, NULL, NULL, NULL, NULL, '2023-09-21 23:25:33', NULL, '2023-09-21 23:25:35', b'0'); +INSERT INTO `system_sms_log` VALUES (384, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-19 10:02:41', 0, '成功', '0', NULL, NULL, 'af831a91-1310-46d7-b6cc-9adce9888c33', 0, NULL, NULL, NULL, NULL, '2023-10-19 10:02:40', NULL, '2023-10-19 10:02:41', b'0'); +INSERT INTO `system_sms_log` VALUES (385, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-19 11:13:19', 0, '成功', '0', NULL, NULL, 'ab410bb1-5777-4f42-b109-ed008f57e6fa', 0, NULL, NULL, NULL, NULL, '2023-10-19 11:13:18', NULL, '2023-10-19 11:13:19', b'0'); +INSERT INTO `system_sms_log` VALUES (386, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-21 11:35:03', 0, '成功', '0', NULL, NULL, '628d99c7-8b49-4a8e-8339-47efcdb6aee4', 0, NULL, NULL, NULL, NULL, '2023-10-21 11:35:02', NULL, '2023-10-21 11:35:03', b'0'); +INSERT INTO `system_sms_log` VALUES (387, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175523', NULL, NULL, 10, '2023-10-23 09:48:16', 0, '成功', '0', NULL, NULL, 'adfd4309-491e-4c5a-85cf-adb9658debc8', 0, NULL, NULL, NULL, NULL, '2023-10-23 09:48:15', NULL, '2023-10-23 09:48:16', b'0'); +INSERT INTO `system_sms_log` VALUES (388, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-23 09:53:29', 0, '成功', '0', NULL, NULL, 'c44f34c7-30f4-45be-a3b4-222b4c82fb86', 0, NULL, NULL, NULL, NULL, '2023-10-23 09:53:28', NULL, '2023-10-23 09:53:29', b'0'); +INSERT INTO `system_sms_log` VALUES (389, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 20, '2023-10-23 10:12:08', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '056b1cf0-ad79-4d11-8536-6eaf84803480', 0, NULL, NULL, NULL, NULL, '2023-10-23 10:12:08', NULL, '2023-10-23 10:12:08', b'0'); +INSERT INTO `system_sms_log` VALUES (390, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-23 10:19:15', 0, '成功', '0', NULL, NULL, '74aff320-6ae8-4a9d-8013-6319f328d761', 0, NULL, NULL, NULL, NULL, '2023-10-23 10:19:15', NULL, '2023-10-23 10:19:15', b'0'); +INSERT INTO `system_sms_log` VALUES (391, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-23 10:21:36', 0, '成功', '0', NULL, NULL, 'f7b41617-0d73-45e4-99a7-a7deffe0cec5', 0, NULL, NULL, NULL, NULL, '2023-10-23 10:21:36', NULL, '2023-10-23 10:21:36', b'0'); +INSERT INTO `system_sms_log` VALUES (392, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-23 10:25:05', 0, '成功', '0', NULL, NULL, 'c2d4eafb-d2f1-4a36-9fd6-1fd20f85056b', 0, NULL, NULL, NULL, NULL, '2023-10-23 10:25:04', NULL, '2023-10-23 10:25:05', b'0'); +INSERT INTO `system_sms_log` VALUES (393, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175234', NULL, NULL, 10, '2023-10-23 10:33:23', 0, '成功', '0', NULL, NULL, '1742ae30-8726-4db2-97b3-bc5bee4bbc06', 0, NULL, NULL, NULL, NULL, '2023-10-23 10:33:22', NULL, '2023-10-23 10:33:23', b'0'); +INSERT INTO `system_sms_log` VALUES (394, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-27 17:02:21', 0, '成功', '0', NULL, NULL, '92919f18-f234-4fa8-8854-44292fadec0b', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:02:20', NULL, '2023-10-27 17:02:21', b'0'); +INSERT INTO `system_sms_log` VALUES (395, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-27 17:04:28', 0, '成功', '0', NULL, NULL, 'e6421e00-a452-414d-a2d3-0c0ee6671fbd', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:04:28', NULL, '2023-10-27 17:04:28', b'0'); +INSERT INTO `system_sms_log` VALUES (396, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175236', NULL, NULL, 10, '2023-10-27 17:05:49', 0, '成功', '0', NULL, NULL, '328f690e-8117-4886-8da1-43f71cee5e17', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:05:48', NULL, '2023-10-27 17:05:49', b'0'); +INSERT INTO `system_sms_log` VALUES (397, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175236', NULL, NULL, 20, '2023-10-27 17:07:16', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '6055ec8e-8da4-441d-9cd4-674a0eaceff1', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:07:16', NULL, '2023-10-27 17:07:16', b'0'); +INSERT INTO `system_sms_log` VALUES (398, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-10-27 17:12:23', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '6d096294-4943-4b75-aeef-f6b5700cff2a', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:12:23', NULL, '2023-10-27 17:12:23', b'0'); +INSERT INTO `system_sms_log` VALUES (399, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-27 17:23:27', 0, '成功', '0', NULL, NULL, '3ee230f0-8d14-4494-bfb3-e56c3b25282d', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:23:26', NULL, '2023-10-27 17:23:27', b'0'); +INSERT INTO `system_sms_log` VALUES (400, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-27 17:37:55', 0, '成功', '0', NULL, NULL, '1969e4f5-a1d9-4009-98c9-aa62740ed264', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:37:55', NULL, '2023-10-27 17:37:55', b'0'); +INSERT INTO `system_sms_log` VALUES (401, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-27 17:40:38', 0, '成功', '0', NULL, NULL, '6d8a9a1d-3c34-477e-8e60-b18cd04d2e70', 0, NULL, NULL, NULL, NULL, '2023-10-27 17:40:37', NULL, '2023-10-27 17:40:38', b'0'); +INSERT INTO `system_sms_log` VALUES (402, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-28 16:36:57', 0, '成功', '0', NULL, NULL, 'd1ada60a-a708-4299-b576-232cbab18c94', 0, NULL, NULL, NULL, NULL, '2023-10-28 16:36:55', NULL, '2023-10-28 16:36:57', b'0'); +INSERT INTO `system_sms_log` VALUES (403, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-31 11:35:36', 0, '成功', '0', NULL, NULL, 'e650a459-2e57-4623-993e-e1cefc83a4cf', 0, NULL, NULL, NULL, NULL, '2023-10-31 11:35:34', NULL, '2023-10-31 11:35:36', b'0'); +INSERT INTO `system_sms_log` VALUES (404, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-10-31 11:44:02', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '1dfa97c5-0069-498f-a86d-84ca4390c9ae', 0, NULL, NULL, NULL, NULL, '2023-10-31 11:44:01', NULL, '2023-10-31 11:44:02', b'0'); +INSERT INTO `system_sms_log` VALUES (405, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-31 11:45:53', 0, '成功', '0', NULL, NULL, 'e6a26135-7c32-4661-9f66-02e852bafc5e', 0, NULL, NULL, NULL, NULL, '2023-10-31 11:45:53', NULL, '2023-10-31 11:45:53', b'0'); +INSERT INTO `system_sms_log` VALUES (406, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-10-31 11:53:00', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '000893ea-a56f-4439-949b-31b822c693a1', 0, NULL, NULL, NULL, NULL, '2023-10-31 11:53:00', NULL, '2023-10-31 11:53:00', b'0'); +INSERT INTO `system_sms_log` VALUES (407, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-10-31 12:02:50', 0, '成功', '0', NULL, NULL, 'ba8c5f5b-d779-4cf3-8985-55996cc98e97', 0, NULL, NULL, NULL, NULL, '2023-10-31 12:02:50', NULL, '2023-10-31 12:02:50', b'0'); +INSERT INTO `system_sms_log` VALUES (408, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-11-08 18:43:35', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, 'bc252f34-2491-49f8-9ae4-1be63f7eb99a', 0, NULL, NULL, NULL, NULL, '2023-11-08 18:43:33', NULL, '2023-11-08 18:43:35', b'0'); +INSERT INTO `system_sms_log` VALUES (409, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 10, '2023-12-08 11:05:20', 0, '成功', '0', NULL, NULL, '575c3e06-8416-401c-a2ea-f24eed2014b6', 0, NULL, NULL, NULL, NULL, '2023-12-08 11:05:18', NULL, '2023-12-08 11:05:20', b'0'); +INSERT INTO `system_sms_log` VALUES (410, 6, 'DEBUG_DING_TALK', 8, 'user-sms-login', 1, '您的验证码是9999', '{\"code\":\"9999\"}', '4372216', '15136175246', NULL, NULL, 20, '2023-12-08 11:16:14', 2001000000, '未知错误,需要解析', '130101', NULL, NULL, '5fff3c63-61c6-42d2-9069-df5e28fe9ac0', 0, NULL, NULL, NULL, '9', '2023-12-08 11:16:13', NULL, '2023-12-08 11:16:14', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_template`; +CREATE TABLE `system_sms_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `type` tinyint NOT NULL COMMENT '短信签名', + `status` tinyint NOT NULL COMMENT '开启状态', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数数组', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的模板编号', + `channel_id` bigint NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信渠道编码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信模板'; + +-- ---------------------------- +-- Records of system_sms_template +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_template` VALUES (2, 1, 0, 'test_01', '测试验证码短信', '正在进行登录操作{operation},您的验证码是{code}', '[\"operation\",\"code\"]', NULL, '4383920', 6, 'DEBUG_DING_TALK', '', '2021-03-31 10:49:38', '1', '2022-12-10 21:26:20', b'0'); +INSERT INTO `system_sms_template` VALUES (3, 1, 0, 'test_02', '公告通知', '您的验证码{code},该验证码5分钟内有效,请勿泄漏于他人!', '[\"code\"]', NULL, 'SMS_207945135', 2, 'ALIYUN', '', '2021-03-31 11:56:30', '1', '2021-04-10 01:22:02', b'0'); +INSERT INTO `system_sms_template` VALUES (6, 3, 0, 'test-01', '测试模板', '哈哈哈 {name}', '[\"name\"]', 'f哈哈哈', '4383920', 6, 'DEBUG_DING_TALK', '1', '2021-04-10 01:07:21', '1', '2022-12-10 21:26:09', b'0'); +INSERT INTO `system_sms_template` VALUES (7, 3, 0, 'test-04', '测试下', '老鸡{name},牛逼{code}', '[\"name\",\"code\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2021-04-13 00:29:53', '1', '2021-04-14 00:30:38', b'0'); +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', b'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', b'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', b'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', b'0'); +INSERT INTO `system_sms_template` VALUES (12, 2, 0, 'demo', '演示模板', '我就是测试一下下', '[]', NULL, 'biubiubiu', 6, 'DEBUG_DING_TALK', '1', '2022-04-10 23:22:49', '1', '2023-03-24 23:45:07', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_social_user +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user`; +CREATE TABLE `system_social_user` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `type` tinyint NOT NULL COMMENT '社交平台的类型', + `openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '社交 openid', + `token` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '社交 token', + `raw_token_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始 Token 数据,一般是 JSON 格式', + `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户昵称', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户头像', + `raw_user_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始用户数据,一般是 JSON 格式', + `code` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最后一次的认证 code', + `state` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后一次的认证 state', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='社交用户表'; + +-- ---------------------------- +-- Records of system_social_user +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_social_user_bind +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user_bind`; +CREATE TABLE `system_social_user_bind` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `social_type` tinyint NOT NULL COMMENT '社交平台的类型', + `social_user_id` bigint NOT NULL COMMENT '社交用户的编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='社交绑定表'; + +-- ---------------------------- +-- Records of system_social_user_bind +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant`; +CREATE TABLE `system_tenant` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '租户编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户名', + `contact_user_id` bigint DEFAULT NULL COMMENT '联系人的用户编号', + `contact_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人', + `contact_mobile` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系手机', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '租户状态(0正常 1停用)', + `domain` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '绑定域名', + `package_id` bigint NOT NULL COMMENT '租户套餐编号', + `expire_time` datetime NOT NULL COMMENT '过期时间', + `account_count` int NOT NULL COMMENT '账号数量', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=150 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表'; + +-- ---------------------------- +-- Records of system_tenant +-- ---------------------------- +BEGIN; +INSERT INTO `system_tenant` VALUES (1, '芋道源码', NULL, 'yshop', '17321315478', 0, 'https://www.iocoder.cn', 0, '2099-02-19 17:14:16', 9999, '1', '2021-01-05 17:03:47', '1', '2022-02-23 12:15:11', b'0'); +INSERT INTO `system_tenant` VALUES (121, '小租户', 110, '小王2', '15601691300', 0, 'http://www.iocoder.cn', 111, '2024-03-11 00:00:00', 20, '1', '2022-02-22 00:56:14', '1', '2022-05-17 10:03:59', b'0'); +INSERT INTO `system_tenant` VALUES (122, '测试租户', 113, '芋道', '15601691300', 0, 'https://www.iocoder.cn', 111, '2022-04-30 00:00:00', 50, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant_package`; +CREATE TABLE `system_tenant_package` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '套餐编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '套餐名', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '租户状态(0正常 1停用)', + `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', + `menu_ids` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的菜单编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户套餐表'; + +-- ---------------------------- +-- Records of system_tenant_package +-- ---------------------------- +BEGIN; +INSERT INTO `system_tenant_package` VALUES (111, '普通套餐', 0, '小功能', '[1,1036,1037,1038,1039,100,101,1063,103,1064,1001,1065,1002,1003,107,1004,1005,1006,1007,1008,1009,1010,1011,1012,1017,1018,1019,1020]', '1', '2022-02-22 00:54:00', '1', '2022-09-21 22:48:12', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_post`; +CREATE TABLE `system_user_post` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `user_id` bigint NOT NULL DEFAULT '0' COMMENT '用户ID', + `post_id` bigint NOT NULL DEFAULT '0' COMMENT '岗位ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户岗位表'; + +-- ---------------------------- +-- Records of system_user_post +-- ---------------------------- +BEGIN; +INSERT INTO `system_user_post` VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` VALUES (113, 100, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` VALUES (114, 114, 3, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` VALUES (115, 104, 1, '1', '2022-05-16 19:36:28', '1', '2022-05-16 19:36:28', b'0', 1); +INSERT INTO `system_user_post` VALUES (116, 117, 2, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); +INSERT INTO `system_user_post` VALUES (117, 118, 1, '1', '2022-07-09 17:44:44', '1', '2022-07-09 17:44:44', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_role`; +CREATE TABLE `system_user_role` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `user_id` bigint NOT NULL COMMENT '用户ID', + `role_id` bigint NOT NULL COMMENT '角色ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户和角色关联表'; + +-- ---------------------------- +-- Records of system_user_role +-- ---------------------------- +BEGIN; +INSERT INTO `system_user_role` VALUES (1, 1, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:17', b'0', 1); +INSERT INTO `system_user_role` VALUES (2, 2, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); +INSERT INTO `system_user_role` VALUES (4, 100, 101, '', '2022-01-11 13:19:45', '', '2023-09-05 14:42:07', b'1', 1); +INSERT INTO `system_user_role` VALUES (5, 100, 1, '', '2022-01-11 13:19:45', '', '2023-09-05 14:42:07', b'1', 1); +INSERT INTO `system_user_role` VALUES (6, 100, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:11', b'0', 1); +INSERT INTO `system_user_role` VALUES (10, 103, 1, '1', '2022-01-11 13:19:45', '1', '2022-01-11 13:19:45', b'0', 1); +INSERT INTO `system_user_role` VALUES (11, 107, 106, '1', '2022-02-20 22:59:33', '1', '2022-02-20 22:59:33', b'0', 118); +INSERT INTO `system_user_role` VALUES (12, 108, 107, '1', '2022-02-20 23:00:50', '1', '2022-02-20 23:00:50', b'0', 119); +INSERT INTO `system_user_role` VALUES (13, 109, 108, '1', '2022-02-20 23:11:50', '1', '2022-02-20 23:11:50', b'0', 120); +INSERT INTO `system_user_role` VALUES (14, 110, 109, '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); +INSERT INTO `system_user_role` VALUES (15, 111, 110, '110', '2022-02-23 13:14:38', '110', '2022-02-23 13:14:38', b'0', 121); +INSERT INTO `system_user_role` VALUES (16, 113, 111, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); +INSERT INTO `system_user_role` VALUES (17, 114, 101, '1', '2022-03-19 21:51:13', '1', '2022-03-19 21:51:13', b'0', 1); +INSERT INTO `system_user_role` VALUES (18, 1, 2, '1', '2022-05-12 20:39:29', '1', '2023-05-17 15:32:04', b'1', 1); +INSERT INTO `system_user_role` VALUES (19, 116, 113, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_user_role` VALUES (20, 104, 101, '1', '2022-05-28 15:43:57', '1', '2022-05-28 15:43:57', b'0', 1); +INSERT INTO `system_user_role` VALUES (22, 115, 2, '1', '2022-07-21 22:08:30', '1', '2022-07-21 22:08:30', b'0', 1); +INSERT INTO `system_user_role` VALUES (23, 119, 114, '1', '2022-12-30 11:32:04', '1', '2022-12-30 11:32:04', b'0', 125); +INSERT INTO `system_user_role` VALUES (24, 120, 115, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_user_role` VALUES (25, 121, 116, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); +INSERT INTO `system_user_role` VALUES (26, 122, 118, '1', '2022-12-30 11:47:53', '1', '2022-12-30 11:47:53', b'0', 129); +INSERT INTO `system_user_role` VALUES (27, 112, 101, '1', '2023-02-09 23:18:51', '1', '2023-02-09 23:18:51', b'0', 1); +INSERT INTO `system_user_role` VALUES (28, 123, 136, '1', '2023-03-05 21:23:35', '1', '2023-03-05 21:23:35', b'0', 147); +INSERT INTO `system_user_role` VALUES (29, 124, 137, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_user_role` VALUES (30, 125, 138, '1', '2023-03-05 21:59:03', '1', '2023-03-05 21:59:03', b'0', 149); +INSERT INTO `system_user_role` VALUES (31, 126, 2, '1', '2023-09-05 14:42:51', '1', '2023-09-05 14:42:51', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for system_users +-- ---------------------------- +DROP TABLE IF EXISTS `system_users`; +CREATE TABLE `system_users` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户账号', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', + `nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户昵称', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `dept_id` bigint DEFAULT NULL COMMENT '部门ID', + `post_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '岗位编号数组', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户邮箱', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号码', + `sex` tinyint DEFAULT '0' COMMENT '用户性别', + `avatar` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '头像地址', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', + `login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `idx_username` (`username`,`update_time`,`tenant_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表'; + +-- ---------------------------- +-- Records of system_users +-- ---------------------------- +BEGIN; +INSERT INTO `system_users` VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', 'yshop', '管理员', 103, '[1]', 'yshop@yixaing.co', '18000000000', 1, 'https://app2.yixiang.co/avatar/20200705181403641316.png', 0, '0:0:0:0:0:0:0:1', '2024-06-01 13:24:32', 'admin', '2021-01-05 17:03:47', NULL, '2024-06-01 13:24:33', b'0', 1); +INSERT INTO `system_users` VALUES (100, 'yshop', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', 'yixiang', '不要吓我', 104, '[1]', 'yshop@iocoder.cn', '15601691300', 1, '', 0, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', '1', '2023-08-06 10:11:13', b'0', 1); +INSERT INTO `system_users` VALUES (126, 'yixiang001', '$2a$04$JTIqo.OqDIy/QnGD8DyalOuD2S10Rdz20abG1Vw7uaU5xDjBqEWky', '意向餐饮管理员', '', 110, '[]', '', '18888888888', 0, '', 0, '0:0:0:0:0:0:0:1', '2023-10-07 11:05:53', '1', '2023-09-05 10:23:17', NULL, '2023-10-07 11:05:53', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_coupon +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_coupon`; +CREATE TABLE `yshop_coupon` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `shop_id` varchar(500) NOT NULL DEFAULT '0' COMMENT '店铺id,0表示通用', + `shop_name` varchar(1000) DEFAULT NULL COMMENT '店铺名称逗号隔开', + `title` varchar(50) NOT NULL COMMENT '优惠券名称', + `is_switch` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否上架', + `least` decimal(10,2) NOT NULL COMMENT '消费多少可用', + `value` decimal(10,2) NOT NULL COMMENT '优惠券金额', + `start_time` datetime NOT NULL COMMENT '开始时间', + `end_time` datetime NOT NULL COMMENT '结束时间', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `weigh` int NOT NULL DEFAULT '0' COMMENT '权重', + `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '可用类型:0=通用,1=自取,2=外卖', + `exchange_code` varchar(32) DEFAULT NULL COMMENT '兑换码', + `receive` int NOT NULL DEFAULT '0' COMMENT '已领取', + `distribute` int NOT NULL DEFAULT '0' COMMENT '发行数量', + `score` int NOT NULL DEFAULT '0' COMMENT '所需积分', + `instructions` text NOT NULL COMMENT '使用说明', + `image` varchar(150) NOT NULL DEFAULT '' COMMENT '图片', + `limit` int DEFAULT '1' COMMENT '限领数量', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COMMENT='优惠券表'; + +-- ---------------------------- +-- Records of yshop_coupon +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_coupon` VALUES (2, '2', '意向餐饮店', '意向店铺优惠券', 1, 0.10, 0.02, '2023-08-09 00:00:00', '2024-08-31 00:00:00', '2023-08-09 11:17:09', '2023-09-14 17:46:19', b'0', 0, 0, '666', 6, 100, 0, '111', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 1, '1', '1'); +INSERT INTO `yshop_coupon` VALUES (3, '2', '意向餐饮店', '1', 1, 1.00, 1.00, '2024-02-06 00:00:00', '2024-02-26 00:00:00', '2024-02-24 10:25:41', '2024-02-24 10:25:41', b'0', 0, 0, '1', 0, 1, 0, '1', ' http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 1, '1', '1'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_coupon_user +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_coupon_user`; +CREATE TABLE `yshop_coupon_user` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', + `shop_id` varchar(500) NOT NULL DEFAULT '0' COMMENT '店铺id,0表示通用', + `shop_name` varchar(1000) DEFAULT NULL COMMENT '店铺名称逗号隔开', + `title` varchar(50) NOT NULL COMMENT '优惠券名称', + `least` decimal(10,2) NOT NULL COMMENT '消费多少可用', + `value` decimal(10,2) NOT NULL COMMENT '优惠券金额', + `start_time` datetime NOT NULL COMMENT '开始时间', + `end_time` datetime NOT NULL COMMENT '结束时间', + `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '可用类型:0=通用,1=自取,2=外卖', + `score` int NOT NULL DEFAULT '0' COMMENT '消耗积分', + `instructions` varchar(1000) NOT NULL DEFAULT '' COMMENT '使用说明', + `image` varchar(150) NOT NULL DEFAULT '' COMMENT '图片', + `user_id` int NOT NULL COMMENT '用户id', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '已使用:0=否,1=是', + `coupon_id` int NOT NULL COMMENT '优惠券id', + `exchange_code` varchar(32) DEFAULT NULL COMMENT '兑换码', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `user_id` (`user_id`), + KEY `coupon_iid` (`coupon_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COMMENT='用户领的优惠券'; + +-- ---------------------------- +-- Records of yshop_coupon_user +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_coupon_user` VALUES (5, '2', '意向餐饮店', '意向店铺优惠券', 0.10, 0.02, '2023-08-09 00:00:00', '2024-08-31 00:00:00', 0, 0, '111', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 2, 0, 2, NULL, '2023-08-09 11:17:09', '2023-09-14 17:46:19', '1', '1', b'0'); +INSERT INTO `yshop_coupon_user` VALUES (6, '2', '意向餐饮店', '意向店铺优惠券', 0.10, 0.02, '2023-08-09 00:00:00', '2024-08-31 00:00:00', 0, 0, '111', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', 9, 1, 2, NULL, '2023-08-09 11:17:09', '2023-09-14 17:46:19', '1', '1', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_express +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_express`; +CREATE TABLE `yshop_express` ( + `id` mediumint unsigned NOT NULL AUTO_INCREMENT COMMENT '快递公司id', + `code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '快递公司简称', + `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '快递公司全称', + `sort` int NOT NULL DEFAULT '0' COMMENT '排序', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=439 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='快递公司表'; + +-- ---------------------------- +-- Records of yshop_express +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_express` VALUES (433, 'ZTO', '中通快递', 1, '2023-07-02 10:40:03', '2023-07-02 10:41:08', '1', '1', b'0'); +INSERT INTO `yshop_express` VALUES (434, 'STO', '申通快递', 2, '2023-07-02 10:40:28', '2023-07-02 10:40:28', '1', '1', b'0'); +INSERT INTO `yshop_express` VALUES (435, 'HTKY', '百世快递', 3, '2023-07-02 10:40:50', '2023-07-02 10:40:50', '1', '1', b'0'); +INSERT INTO `yshop_express` VALUES (436, 'YTO', '圆通速递', 4, '2023-07-02 10:41:35', '2023-07-02 10:41:35', '1', '1', b'0'); +INSERT INTO `yshop_express` VALUES (437, 'EMS', 'EMS', 5, '2023-07-02 10:41:51', '2023-07-02 10:41:51', '1', '1', b'0'); +INSERT INTO `yshop_express` VALUES (438, 'SF', '顺丰速运', 6, '2023-07-02 10:42:16', '2023-07-02 10:42:16', '1', '1', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_material +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_material`; +CREATE TABLE `yshop_material` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `creator` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', + `type` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '类型1、图片;2、视频', + `group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分组ID', + `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '素材名', + `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '素材链接', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='素材库'; + +-- ---------------------------- +-- Records of yshop_material +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_material` VALUES (38, '2023-09-14 10:21:54', '1', '1', NULL, '帮助.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (39, '2023-09-14 10:21:54', '1', '1', NULL, '客服.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (40, '2023-09-14 10:21:54', '1', '1', NULL, '退出登录.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (41, '2023-09-14 10:21:54', '1', '1', NULL, '账户.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/2e4eb6d5def1f8c4d6d10a718b6a0f86176c79853242672846a493a8a669a9fb.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (42, '2023-09-14 10:21:54', '1', '1', NULL, '积分商城.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (43, '2023-09-14 10:21:54', '1', '1', NULL, '关于我们.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (44, '2023-09-14 10:21:54', '1', '1', NULL, '签到.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (45, '2023-09-14 10:21:54', '1', '1', NULL, '货币兑换.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (46, '2023-09-14 10:21:54', '1', '1', NULL, '导航地址.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (47, '2023-09-14 10:21:54', '1', '1', NULL, '我的订单 (1).png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', '1', '2023-09-14 10:21:54', b'0', 0); +INSERT INTO `yshop_material` VALUES (48, '2023-09-14 10:25:14', '1', '1', NULL, 'u=1824446573,3306830779&fm=193&f=GIF.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/29670e82a9459534f3fb401dca9f88d70ede94eb179ead81bfd8fd3a8585b2f6.jpg', '1', '2023-09-14 10:25:14', b'1', 0); +INSERT INTO `yshop_material` VALUES (49, '2023-09-14 10:27:38', '1', '1', NULL, 'u=1824446573,3306830779&fm=193&f=GIF.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '1', '2023-09-14 10:27:38', b'0', 0); +INSERT INTO `yshop_material` VALUES (50, '2023-09-14 16:35:59', '1', '1', NULL, '帮助.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', '1', '2023-09-14 16:35:59', b'0', 0); +INSERT INTO `yshop_material` VALUES (51, '2023-09-14 16:37:14', '1', '1', NULL, '客服.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', '1', '2023-09-14 16:37:14', b'0', 0); +INSERT INTO `yshop_material` VALUES (52, '2023-09-14 17:21:33', '1', '1', NULL, '1.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '1', '2023-09-14 17:21:33', b'0', 0); +INSERT INTO `yshop_material` VALUES (53, '2023-09-14 17:22:44', '1', '1', NULL, '2.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/f40cd0308c855bb145fc17c64b7a706562602081d87869a5e082ae2225d599a7.jpg', '1', '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `yshop_material` VALUES (54, '2023-09-14 17:22:44', '1', '1', NULL, '3.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '1', '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `yshop_material` VALUES (55, '2023-09-14 17:22:44', '1', '1', NULL, '4.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '1', '2023-09-14 17:22:44', b'0', 0); +INSERT INTO `yshop_material` VALUES (56, '2023-11-30 15:55:43', '1', '1', NULL, '积分订单.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', '1', '2023-11-30 15:55:43', b'0', 0); +INSERT INTO `yshop_material` VALUES (57, '2023-11-30 15:56:28', '1', '1', NULL, '积分订单.png', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', '1', '2023-11-30 15:56:28', b'0', 0); +INSERT INTO `yshop_material` VALUES (58, '2023-11-30 15:57:41', '1', '1', NULL, '积分订单.png', ' http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', '1', '2023-11-30 15:57:41', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_material_group +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_material_group`; +CREATE TABLE `yshop_material_group` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `creator` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', + `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '分组名', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='素材分组'; + +-- ---------------------------- +-- Records of yshop_material_group +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_material_group` VALUES (1, '2023-05-16 12:02:13', '1', '商品', '1', '2023-05-24 14:42:23', b'0'); +INSERT INTO `yshop_material_group` VALUES (2, '2023-05-22 23:38:11', '1', '21212', '1', '2023-05-22 23:38:11', b'1'); +INSERT INTO `yshop_material_group` VALUES (3, '2023-05-22 23:39:44', '1', '1', '1', '2023-05-22 23:46:22', b'1'); +INSERT INTO `yshop_material_group` VALUES (4, '2023-05-22 23:52:10', '1', '1', '1', '2023-05-22 23:52:10', b'1'); +INSERT INTO `yshop_material_group` VALUES (5, '2023-05-22 23:52:12', '1', '2', '1', '2023-05-22 23:52:12', b'1'); +INSERT INTO `yshop_material_group` VALUES (6, '2023-05-22 23:52:14', '1', '3', '1', '2023-05-22 23:52:14', b'1'); +INSERT INTO `yshop_material_group` VALUES (7, '2023-05-22 23:55:30', '1', '1', '1', '2023-05-22 23:55:30', b'1'); +INSERT INTO `yshop_material_group` VALUES (8, '2023-05-22 23:55:32', '1', '2', '1', '2023-05-22 23:55:32', b'1'); +INSERT INTO `yshop_material_group` VALUES (9, '2023-05-22 23:55:33', '1', '4', '1', '2023-05-22 23:55:33', b'1'); +INSERT INTO `yshop_material_group` VALUES (10, '2023-05-22 23:55:33', '1', '3333', '1', '2023-05-22 23:56:04', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_order_number +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_order_number`; +CREATE TABLE `yshop_order_number` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '取餐号', + `order_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单号', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1043 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单取餐号表'; + +-- ---------------------------- +-- Records of yshop_order_number +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_order_number` VALUES (1000, '1703615452900491264'); +INSERT INTO `yshop_order_number` VALUES (1001, '1703675877960712192'); +INSERT INTO `yshop_order_number` VALUES (1002, '1703675968628981760'); +INSERT INTO `yshop_order_number` VALUES (1003, '1703677507523313664'); +INSERT INTO `yshop_order_number` VALUES (1004, '1703695133590945792'); +INSERT INTO `yshop_order_number` VALUES (1005, '1703696098238922752'); +INSERT INTO `yshop_order_number` VALUES (1006, '1703697465292619776'); +INSERT INTO `yshop_order_number` VALUES (1007, '1703711231535218688'); +INSERT INTO `yshop_order_number` VALUES (1008, '1703714583388094464'); +INSERT INTO `yshop_order_number` VALUES (1009, '1703715497381462016'); +INSERT INTO `yshop_order_number` VALUES (1010, '1703718316423512064'); +INSERT INTO `yshop_order_number` VALUES (1011, '1704879606328197120'); +INSERT INTO `yshop_order_number` VALUES (1012, '1704880263286226944'); +INSERT INTO `yshop_order_number` VALUES (1013, '1704880316985901056'); +INSERT INTO `yshop_order_number` VALUES (1014, '1704880485911494656'); +INSERT INTO `yshop_order_number` VALUES (1015, '1710504621161578496'); +INSERT INTO `yshop_order_number` VALUES (1016, '1714842349156171776'); +INSERT INTO `yshop_order_number` VALUES (1017, '1715549852135325696'); +INSERT INTO `yshop_order_number` VALUES (1018, '1716272228393287680'); +INSERT INTO `yshop_order_number` VALUES (1019, '1716277998795096064'); +INSERT INTO `yshop_order_number` VALUES (1020, '1716278197982593024'); +INSERT INTO `yshop_order_number` VALUES (1021, '1716278745859358720'); +INSERT INTO `yshop_order_number` VALUES (1022, '1716279604374667264'); +INSERT INTO `yshop_order_number` VALUES (1023, '1716282100870545408'); +INSERT INTO `yshop_order_number` VALUES (1024, '1716282959058698240'); +INSERT INTO `yshop_order_number` VALUES (1025, '1716285974796828672'); +INSERT INTO `yshop_order_number` VALUES (1026, '1716288494575288320'); +INSERT INTO `yshop_order_number` VALUES (1027, '1716290062221574144'); +INSERT INTO `yshop_order_number` VALUES (1028, '1716291271800127488'); +INSERT INTO `yshop_order_number` VALUES (1029, '1716291285691662336'); +INSERT INTO `yshop_order_number` VALUES (1030, '1721369605764546560'); +INSERT INTO `yshop_order_number` VALUES (1031, '1721371148484083712'); +INSERT INTO `yshop_order_number` VALUES (1032, '1725000691803488256'); +INSERT INTO `yshop_order_number` VALUES (1033, '1725047622177128448'); +INSERT INTO `yshop_order_number` VALUES (1034, '1725060861086662656'); +INSERT INTO `yshop_order_number` VALUES (1035, '1725061023016157184'); +INSERT INTO `yshop_order_number` VALUES (1036, '1726884445237018624'); +INSERT INTO `yshop_order_number` VALUES (1037, '1727142223536979968'); +INSERT INTO `yshop_order_number` VALUES (1038, '1731503113317122048'); +INSERT INTO `yshop_order_number` VALUES (1039, '1731506721286782976'); +INSERT INTO `yshop_order_number` VALUES (1040, '1731517938814418944'); +INSERT INTO `yshop_order_number` VALUES (1041, '1732962343437991936'); +INSERT INTO `yshop_order_number` VALUES (1042, '1732962574971961344'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_service +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_service`; +CREATE TABLE `yshop_service` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题', + `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '图标', + `type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型:pages=页面,miniprogram=跳转小程序,menu=菜单,content=内容,call=电话', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '详情', + `pid` int DEFAULT '0' COMMENT '父级id', + `app_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '小程序app_id', + `pages` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '页面路径', + `phone` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '电话', + `weigh` int NOT NULL DEFAULT '0' COMMENT '权重', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态:0=下架,1=上架', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `weigh` (`weigh`,`id`) +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='我的服务'; + +-- ---------------------------- +-- Records of yshop_service +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_service` VALUES (20, '积分签到', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/3679a4a66fd8b7e2141442535b9920f3281e2e4d6cb0b239d281ba0799564ab1.png', 'pages', '

trte

', 0, '', '/pages/components/pages/integrals/integrals', '', 1, 0, '2023-08-08 11:09:56', '2023-09-04 14:09:58', '1', '1', b'1'); +INSERT INTO `yshop_service` VALUES (21, '我的订单', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e4c72c45a6fa12b178b9d178677093ce7e10d55c71681def9666c8b322bd72d0.png', 'pages', '

tetewt

', 0, '', '/pages/components/pages/orders/orders', '', 0, 1, '2023-08-11 13:52:39', '2023-09-14 16:38:29', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (22, '积分商城', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/9ba24bc27c61dbdca2dc4c089a747a62f374608a8ad290ed5cdd01f498e91540.png', 'pages', '

rtete

', 0, '', '/pages/components/pages/scoreproduct/list', '', 0, 0, '2023-08-11 13:57:58', '2023-09-14 16:38:14', '1', '1', b'1'); +INSERT INTO `yshop_service` VALUES (23, '兑换订单', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/60d7b27d8c7e36030b0b8eaa9d23fa05b356ba7c3e426ba79fcae174b0608edb.png', 'pages', '', 0, '', '/pages/components/pages/scoreproduct/order', '', 0, 0, '2023-09-03 16:00:34', '2023-09-14 16:38:02', '1', '1', b'1'); +INSERT INTO `yshop_service` VALUES (24, '联系客服', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 'call', '', 0, '', '', '18888888888', 0, 1, '2023-09-03 16:01:40', '2023-09-14 16:37:33', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (25, '我的地址', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 'pages', '', 0, '', '/pages/components/pages/address/address', '', 0, 1, '2023-09-03 16:02:29', '2023-09-14 16:36:37', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (26, '帮助中心', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/77286cb7280b0629172f239bb1c4ea1f9712afd24d1f4506a836a2149d40bcae.png', 'content', '

66666

', 0, '', '', '', 0, 1, '2023-09-03 16:03:45', '2023-09-14 16:36:24', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (27, '关于我们', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/e6164af29d51adfe27616116251bf64c63bf6adebeaa4625abbe133d15ca348b.png', 'content', '

88888

', 0, '', '', '', 0, 1, '2023-09-03 16:04:53', '2023-09-14 16:32:09', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (28, '退出登录', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/3b31de59fe0a24a3d772b49a4c1dd184d215d1c6390a89cfd8e9925ea678b0ae.png', 'pages', '', 0, '', '/pages/components/pages/login/logout', '', 0, 1, '2023-09-12 18:10:11', '2023-09-14 16:31:52', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (29, '用户协议', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'content', '

本软件许可及服务协议(以下称\"本协议\")由您与漯河市大有前途网络科技有限公司(以下称“我们”)共同签署。


在使用yshop-drink点餐系统软件(以下称许可软件)之前,请您仔细阅读本协议,特别是免除或者限制责任的条款、法律适用和争议解决条款。


免除或者限制责任的条款将以粗体标识,您需要重点阅读。如您对协议有任何疑问,可向客服咨询。


如果您同意接受本协议条款和条件的约束,您可下载安装使用许可软件。


我们如修改本协议或其补充协议,协议条款修改后,请您仔细阅读并接受修改后的协议后再继续使用许可软件。


一、 定义


   

1. 本协议是您与我们之间关于您下载、安装、使用、登录本软件,以及使用本软件服务所订立的协议。


二、授权范围

   

1. 由于软件适配平台及终端限制,您理解您仅可在获授权的系统平台及终端使用许可软件,如您将许可软件安装在其他终端设备上(包括台式电脑、手提电脑、或授权终端外的其他手持移动终端、电视机及机顶盒等),可能会对您硬件或软件功能造成损害。

   

2. 您应该理解许可软件仅可用于非商业目的,您不可为商业运营目的安装、使用、运行许可软件。

 

3. 我们会对许可软件及其相关功能不时进行变更、升级、修改或转移,并会在许可软件系统中开发新的功能或其它服务。上述新的功能、软件服务如无独立协议的,您仍可取得相应功能或服务的授权,并可适用本协议。


三、使用规范

   

1. 您应该规范使用许可软件,以下方式是违反使用规范的:

 

(1)从事违反法律法规政策、破坏公序良俗、损害公共利益的行为。

   

(2)对许可软件及其中的相关信息擅自出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点,借助许可软件发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等。

   

(3)通过非由我们及其关联公司开发、授权或认可的第三方兼容软件、系统登录或使用许可软件,或针对许可软件使用非我们及其关联公司开发、授权或认证的插件和外挂。

   

(4)删除许可软件及其他副本上关于版权的信息、内容。修改、删除或避开应用产品中我们为保护知识产权而设置的任何技术措施。

   

(5)未经我们的书面同意,擅自将许可软件出租、出借或再许可给第三方使用,或在获得许可软件的升级版本的许可使用后,同时使用多个版本的许可使用版本,或分开转让。

   

(6)复制、反汇编、修改许可软件或其任何部分或制造其衍生作品;对许可软件或者许可软件运行过程中释放在终端中的任何数据及许可软件运行过程中终端与服务器端的交互数据进行复制、修改、挂接运行或创作任何衍生作品,包括使用插件、外挂或非经授权的第三方工具/服务接入许可软件和相关系统等形式。

   

(7) 进行任何危害信息网络安全的行为,包括使用许可软件时以任何方式损坏或破坏许可软件或使其不能运行或超负荷或干扰第三方对许可软件的使用;未经允许进入他人计算机系统并删除、修改、增加存储信息;故意传播恶意程序或病毒以及其他破坏、干扰正常网络信息服务的行为。

 

(8)利用许可软件发表、传送、传播、储存侵害他人知识产权、商业秘密权等合法权利的内容,或从事欺诈、盗用他人账户、资金等违法犯罪活动。

 

(9)通过修改或伪造许可软件运行中的指令、数据、数据包,增加、删减、变动许可软件的功能或运行效果,及/或将具有上述用途的软件通过信息网络向公众传播或者运营。

 

(10)其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议不一致的方式使用许可软件。

2. 您理解并同意

   

(1)我们会对您是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依约可采取的限制措施。

   

(2)对于您使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,我们会直接予以删除。

   

(3)对于您违反上述使用规范的行为对任意第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保我们免于因此产生损失或增加费用。

 

(4)如您违反有关法律或者本协议之规定,使我们遭受任何损失,或受到任何第三方的索赔,或受到任何行政管理部门的处罚,您应当赔偿我们因此造成的损失及(或)发生的费用,包括合理的律师费用、调查取证费用。


四、第三方软件或服务

     

1. 许可软件可能使用或包含了由第三方提供的软件或服务(以下称该等服务),该等服务是为了向您提供便利而设置,是取得该第三方的合法授权的。

   

2. 由于第三方为其软件或服务的提供者,您使用该等服务时,应另行与该第三方达成服务协议,支付相应费用并承担可能的风险。您应理解我们并无权在本协议中授予您使用该等服务的任何权利,也无权对该等服务提供任何形式的保证。我们无法对该等服务提供客户支持,如果您需要获取支持,您可直接与该第三方联系。因您使用该等服务引发的任何纠纷,您可直接与该第三方协商解决。

     

3. 您理解许可软件仅在当前使用或包含该等服务,我们无法保证许可软件将会永久地使用或包含该等服务,也无法保证将来不会使用或包含该第三方的同类型或不同类型的软件或服务或其他第三方的软件或服务,一旦我们在许可软件中使用或包含前述软件或服务,相应的软件或服务同样适用本条约定。

   

4. 您理解第三方需要与我们进行您的信息交互以便更好地为您提供服务,您同意在使用许可软件时如使用该等服务的,您授权我们依据《隐私协议》您使用许可软件的信息传递给该第三方,或从该第三方获取您注册或使用该等服务时提供或产生的信息。如果您不希望第三方获取您的信息的,您可停止使用该等服务,我们将停止向第三方传递您的信息。

   

5. 您同意,如果该第三方确认您违反了您与其之间关于使用该等服务的协议约定停止对您提供该等服务并要求我们处理的,由于停止该等服务可能会影响您继续使用许可软件,我们可能会中止、终止对你的使用许可或采取其他我们可对您采取的限制措施。

五、隐私政策与数据

     

保护您的个人信息对我们很重要。我们制定了《隐私协议》,您的信息收集、使用、共享、存储、保护等方面关系您切身利益的内容进行了重要披露。我们建议您完整地阅读《隐私协议》,以帮助您更好的保护您的个人信息。

六、特别授权

     

您对您的个人信息依法拥有权利,并且可以通过查阅《隐私协议》了解我们对您的个人信息的保护及处理方式。对您提供的除个人信息外的信息,为了向您提供您使用的各项服务,并维护、改进这些服务,及优化我们的服务质量等用途,对于您提交的文字、图片和视频等受知识产权保护的内容,您同意授予我们排他的、可转让、可分发次级许可、无使用费的全球性许可,用于我们及我们关联公司使用、复制、修订、改写、发布、翻译、分发、执行和展示您提交的资料数据或制作派生作品。

七、 无担保和责任限制

       

1. 除法律法规有明确规定外,我们将尽最大努力确保许可软件及其所涉及的技术及信息安全、有效、准确、可靠,但受限于现有技术,您理解我们不能对此进行担保。

       

2. 您理解,对于不可抗力及第三方原因导致的您的直接或间接损失,我们无法承担责任。

       

3. 由于您因下述任一情况所引起或与此有关的人身伤害或附带的、间接的损害赔偿,包括但不限于利润损失、资料损失、业务中断的损害赔偿或其它商业损害赔偿或损失,需由您自行承担:

       

(1)使用或未能使用许可软件;

       

(2)第三方未经批准的使用许可软件或更改您的数据;

       

(3)使用许可软件进行的行为产生的费用及损失;

       

(4)您对许可软件的误解;

       

(5)非因我们的原因而引起的与许可软件有关的其它损失。

       

4. 非经我们或我们授权开发并正式发布的其它任何由许可软件衍生的软件均属非法,下载、安装、使用此类软件,可能导致不可预知的风险,由此产生的法律责任与纠纷与我们无关,我们有权中止、终止使用许可和/或其他一切服务。

       

5. 您与其他使用许可软件的用户之间通过许可软件进行时,因您受误导或欺骗而导致或可能导致的任何心理、生理上的伤害以及经济上的损失,均应由过错方依法承担所有责任。

八、知识产权

     

1. 我们拥有许可软件的著作权、商业秘密以及其他相关的知识产权,包括与许可软件有关的各种文档资料。

     

2. 许可软件的相关标识属于我们及我们的关联公司的知识产权,并受到相关法律法规的保护。未经我们明确授权,您不得复制、模仿、使用或发布上述标识,也不得修改或删除应用产品中体现我们及其关联公司的任何标识或身份信息。

     

3. 未经我们及我们的关联公司事先书面同意,您不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何第三方实施、利用、转让上述知识产权。

 

九、协议终止和违约责任

       

1. 您应理解按授权范围使用许可软件、尊重软件及软件包含内容的知识产权、按规范使用软件、按本协议约定履行义务是您获取我们授权使用软件的前提,如您严重违反本协议,我们将终止使用许可。

       

2. 您对软件的使用有赖于我们关联公司为您提供的配套服务,您违反与我们或我们关联公司的条款、协议、规则、通告等相关规定,而被上述任一网站终止提供服务的,可能导致您无法正常使用许可软件,我们有权终止使用许可。

       

3. 您理解出于维护平台秩序及保护消费者权益的目的,如果您向我们及(或)我们的关联公司作出任何形式的承诺,且相关公司已确认您违反了该承诺并通知我们依据您与其相关约定进行处理的,则我们可按您的承诺或协议约定的方式对您的使用许可及其他我们可控制的权益采取限制措施,包括中止或终止对您的使用许可。

       

4. 一旦您违反本协议或与我们签订的其他协议的约定,我们可通知我们关联公司,要求其对您的权益采取限制措施,包括要求关联公司中止、终止对您提供部分或全部服务,且在其经营或实际控制的网站依法公示您的违约情况。

         

5. 许可软件由您自下载平台下载取得,您需要遵守下载平台、系统平台、终端厂商对您使用许可软件方式与限制的约定,如果上述第三方确认您违反该约定需要我们处理的,我们可能会因第三方要求终止对您的使用许可。

       

6. 在本使用许可终止时,您应停止对许可软件的使用行为,并销毁许可软件的全部副本。

         

7. 如您违反本协议规定的条款,给我们或其他用户造成损失,您必须承担全部的赔偿责任。如我们承担了上述责任,则您同意赔偿我们的相关支出和损失,包括合理的律师费用。



十、管辖法律和可分割性

   

1. 本协议之效力、解释、变更、执行与争议解决均适用中华人民共和国法律,如无相关法律规定的,则应参照通用国际商业惯例和(或)行业惯例。

   

2. 本协议由您与我们在郑州市金水区签署。因本协议产生或与本协议有关的争议,您可与我们以友好协商的方式予以解决或提交有管辖权的人民法院予以裁决。

   

3. 本协议任何条款被有管辖权的人民法院裁定为无效,不应影响其他条款或其任何部分的效力,您与我们仍应善意履行。

十一、其他

 

1. 我们可能根据业务调整而变更向您提供软件服务的主体,变更后的主体与您共同履行本协议并向您提供服务,以上变更不会影响您本协议项下的权益。发生争议时,您可根据您具体使用的服务及对您权益产生影响的具体行为对象确定与您履约的主体及争议相对方。

   

2. 本协议的所有标题仅仅是为了醒目及阅读方便,本身并没有实际涵义,不能作为解释本协议涵义的依据。

', 0, '', '', '', 0, 0, '2023-09-15 11:16:05', '2023-09-15 16:43:29', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (30, '隐私政策', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'content', '

漯河市大有前途网络科技有限公司(以下简称“我们”)深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。

我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。

同时,我们承诺,我们将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。

请在使用我们的yshop-drink点餐系统前,仔细阅读并了解本《隐私协议》。


一、我们如何收集和使用您的个人信息


个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。

我们仅会出于本政策所述的以下目的,收集和使用您的个人信息:


(一)为您提供网上购物服务  


1、业务功能一:注册成为用户为完成创建账号,您需提供以下信息:您的姓名、手机号、创建的密码。


在注册过程中,如果您提供以下额外信息,将有助于我们给您提供更好的服务和体验:邮箱号、昵称、头像、银行卡、身份证。但如果您不提供这些信息,将不会影响使用本服务的基本功能。


您提供的上述信息,将在您使用本服务期间持续授权我们使用。在您注销账号时,我们将停止使用并删除上述信息。


上述信息将存储于中华人民共和国境内。如需跨境传输,我们将会单独征得您的授权同意。


2、业务功能二:商品展示、个性化推荐、发送促销营销信息。


(二)开展内部数据分析和研究,第三方SDK统计服务,改善我们的产品或服务


我们收集数据是根据您与我们的互动和您所做出的选择,包括您的隐私设置以及您使用的产品和功能。


我们收集的数据可能包括SDK/API/JS代码版本、浏览器、互联网服务提供商、IP地址、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、独立设备标识符、iOS广告标识符(IDFA)、安卓广告主标识符、网卡(MAC)地址、国际移动设备识别码(IMEI)、设备型号、终端制造厂商、终端设备操作系统版本、会话启动/停止时间、语言所在地、时区和网络状态(WiFi等)、硬盘、CPU和电池使用情况等。


(三)其他使用情况


当我们要将信息用于本策略未载明的其它用途时,会事先征求您的同意。

当我们要将基于特定目的收集而来的信息用于其他目的时,会事先征求您的同意。


二、我们如何使用 Cookie 和同类技术


(一)Cookie为确保网站正常运转,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。Cookie 通常包含标识符、站点名称以及一些号码和字符。借助于 Cookie,网站能够存储您的偏好或购物篮内的商品等数据。


我们不会将 Cookie 用于本政策所述目的之外的任何用途。您可根据自己的偏好管理或删除 Cookie。您可以清除计算机上保存的所有 Cookie,大部分网络浏览器都设有阻止 Cookie 的功能。


(二)网站信标和像素标签除 Cookie 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。

例如,我们向您发送的电子邮件可能含有链接至我们网站内容的点击 URL。如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好并改善客户服务。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,我们能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。


(三)Do Not Track(请勿追踪)


很多网络浏览器均设有 Do Not Track 功能,该功能可向网站发布 Do Not Track 请求。目前,主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求。但如果您的浏览器启用了 Do Not Track,那么我们的所有网站都会尊重您的选择。


三、我们如何共享、转让、公开披露您的个人信息


(一)共享


我们不会向其他任何公司、组织和个人分享您的个人信息,但以下情况除外:


1、在获取明确同意的情况下共享:获得您的明确同意后,我们会与其他方共享您的个人信息。


2、我们可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息。


3、与我们的关联公司共享:您的个人信息可能会与我们关联公司共享。我们只会共享必要的个人信息,且受本隐私协议中所声明目的的约束。

关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。


4、与授权合作伙伴共享:仅为实现本隐私协议中声明的目的,我们的某些服务将由授权合作伙伴提供。我们可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。


例如,我们聘请来提供第三方数据统计和分析服务的公司可能需要采集和访问个人数据以进行数据统计和分析。在这种情况下,这些公司 必须遵守我们的数据隐私和安全要求。


我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。


对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本隐私协议以及其他任何相关的保密和安全措施来处理个人信息。


(二)转让


我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:


1、在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;


2、在涉及合并、收购或破产清算时,如涉及到个人信息转让,我们会在要求新的持有您个人信息的公司、组织继续受此隐私政策的约束,否则我们将要求该公司、组织重新向您征求授权同意。


(三)公开披露


我们仅会在以下情况下,公开披露您的个人信息:


1、获得您明确同意后;


2、基于法律的披露:在法律、法律程序、诉讼或政府主管部门强制性要求的情况下,我们可能会公开披露您的个人信息。


四、我们如何保护您的个人信息


(一)我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。


例如,在您的浏览器与“服务”之间交换数据(如信用卡信息)时受 SSL 加密保护;我们同时对我们网站提供 https 安全浏览方式;我们会使用加密技术确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。


(二)我们会采取一切合理可行的措施,确保未收集无关的个人信息。我们只会在达成本政策所述目的所需的期限内保留您的个人信息,除非需要延长保留期或受到法律的允许。


(三)互联网并非绝对安全的环境,而且电子邮件、即时通讯、及与其他我们用户的交流方式并未加密,我们强烈建议您不要通过此类方式发送个人信息。请使用复杂密码,协助我们保证您的账号安全。


(四)互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。


(五)在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。


同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


五、您的权利


按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,我们保障您对自己的个人信息行使以下权利:


(一)访问您的个人信息


您有权访问您的个人信息,法律法规规定的例外情况除外。如果您想行使数据访问权,可以通过以下方式自行访问:


账户信息——如果您希望访问或编辑您的账户中的个人资料信息和支付信息、更改您的密码、添加安全信息或关闭您的账户等,您可以通过打开个人中心在设置里找到账户安全执行此类操作。


对于您在使用我们的产品或服务过程中产生的其他个人信息,只要我们不需要过多投入,我们会向您提供。如果您想行使数据访问权,请联系yshop客服。


(二)更正您的个人信息


当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。


您可以通过“(一)访问您的个人信息”中罗列的方式提出更正申请。


(三)删除您的个人信息


在以下情形中,您可以向我们提出删除个人信息的请求:


1、如果我们处理个人信息的行为违反法律法规;


2、如果我们收集、使用您的个人信息,却未征得您的同意;


3、如果我们处理个人信息的行为违反了与您的约定;


4、如果您不再使用我们的产品或服务,或您注销了账号;


5、如果我们不再为您提供产品或服务。


若我们决定响应您的删除请求,我们还将同时通知从我们获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权。


当您从我们的服务中删除信息后,我们可能不会立即备份系统中删除相应的信息,但会在备份更新时删除这些信息。

(四)改变您授权同意的范围


每个业务功能需要一些基本的个人信息才能得以完成(见本协议“第一部分”)。对于额外收集的个人信息的收集和使用,您可以随时给予或收回您的授权同意。


当您收回同意后,我们将不再处理相应的个人信息。但您收回同意的决定,不会影响此前基于您的授权而开展的个人信息处理。

(五)个人信息主体注销账户


您随时可注销此前注册的账户,您可以通过以下方式自行操作: 联系yshop客服

           

在注销账户之后,我们将停止为您提供产品或服务,并依据您的要求,删除您的个人信息,法律法规另有规定的除外。

(六)约束信息系统自动决策

         

在某些业务功能中,我们可能仅依据信息系统、算法等在内的非人工自动决策机制做出决定。如果这些决定显著影响您的合法权益,您有权要求我们做出解释,我们也将提供适当的救济方式。

(七)响应您的上述请求

       

为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再处理您的请求。

       

我们将在三十天内做出答复。如您不满意,还可以通过以下途径投诉:

       

个人中心-投诉建议

       

对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情收取一定成本费用。对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,我们可能会予以拒绝。

       

在以下情形中,按照法律法规要求,我们将无法响应您的请求:

       

1、与国家安全、国防安全有关的;

       

2、与公共安全、公共卫生、重大公共利益有关的;

       

3、与犯罪侦查、起诉和审判等有关的;

       

4、有充分证据表明您存在主观恶意或滥用权利的;

         

5、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。


六、我们如何处理儿童的个人信息

       

我们的产品、网站和服务主要面向成人。如果没有父母或监护人的同意,儿童不得创建自己的用户账户。

       

对于经父母同意而收集儿童个人信息的情况,我们只会在受到法律允许、父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息。

       

尽管当地法律和习俗对儿童的定义不同,但我们将不满14周岁的任何人均视为儿童。

       

如果我们发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息,则会设法尽快删除相关数据。


七、您的个人信息如何在全球范围转移

     

原则上,我们在中华人民共和国境内收集和产生的个人信息,将存储在中华人民共和国境内。

     

由于我们通过遍布全球的资源和服务器提供产品或服务,这意味着,在获得您的授权同意后,您的个人信息可能会被转移到您使用产品或服务所在国家/地区的境外管辖区,或者受到来自这些管辖区的访问。

     

此类管辖区可能设有不同的数据保护法,甚至未设立相关法律。在此类情况下,我们会确保您的个人信息得到在中华人民共和国境内足够同等的保护。例如,我们会请求您对跨境转移个人信息的同意,或者在跨境数据转移之前实施数据去标识化等安全举措。

八、本隐私协议如何更新

       

我们可能适时会对本隐私协议进行调整或变更,本隐私协议的任何更新将以标注更新时间的方式公布在我们网站上,除法律法规或监管规定另有强制性规定外,经调整或变更的内容一经通知或公布后的7日后生效。如您在隐私协议调整或变更后继续使用我们提供的任一服务或访问我们相关网站的,我们相信这代表您已充分阅读、理解并接受修改后的隐私协议并受其约束。

九、第三方SDK以及说明


我们的产品基于DCloud;uni-app;App/Wap2App)开发,应用运行期间需要收集您的设备唯一识别码(IMEI/android;ID/DEVICE_ID/IDFA、SIM卡;IMSI;信息)以提供统计分析服务,并通过应用启动数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。

消息推送服务供应商(自启动)


我们可能会将您的设备平台、设备厂商、设备品牌、设备识别码等设备信息,应用列表信息、网络信息以及位置相关信息提供给合作伙伴,用于为您提供消息推送技术服务。我们在向您推送消息时,我们可能会授权合作伙伴进行链路调节,相互促活被关闭的SDK推送进程,保障您可以及时接收到我们向您推送的消息。

使用场景:推送订单付款、发货、售后以及余额提现、支付等系统类消息


微信一键登录/微信分享/微信支付(关联启动)


可能获取信息类型;存储的个人文件


设备权限:读取外置存储器、写入外置存储器


使用场景:注册登录账号、微信分享、朋友圈分享、微信小程序分享、用户下单付款、订单申请售后


支付宝支付(关联启动)

设备权限:读取网络状态    


使用场景:用户下单付款、订单申请售后

隐私政策链接:https://render.alipay.com/p/c/k2cx0tg8


设备权限:获取网络状态、访问Wi-Fi状态、位置信息、访问粗略位置、访问精准定位、读取手机状态和身份


使用场景:同城配送获取地址信息、同城自取自动推荐附近的门店



十、如何联系我们


如果您对本隐私政策有任何疑问、意见或建议,通过以下方式与我们联系:


邮箱:yshop@yixiang.co


一般情况下,我们将在三十天内回复。


', 0, '', '', '', 0, 0, '2023-09-15 11:18:26', '2023-09-18 16:44:12', '1', '1', b'0'); +INSERT INTO `yshop_service` VALUES (31, '积分订单', ' http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 'pages', '', 0, '', '/pages/components/pages/scoreproduct/order', '', 0, 1, '2023-11-30 15:58:29', '2023-11-30 15:58:29', '1', '1', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_shipping_templates +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_shipping_templates`; +CREATE TABLE `yshop_shipping_templates` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '模板ID', + `name` varchar(255) DEFAULT NULL COMMENT '模板名称', + `type` tinyint(1) DEFAULT NULL COMMENT '计费方式', + `region_info` text COMMENT '地域以及费用', + `appoint` tinyint(1) DEFAULT NULL COMMENT '指定包邮开关', + `appoint_info` text COMMENT '指定包邮内容', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `sort` int DEFAULT NULL COMMENT '排序', + `tenant_id` bigint DEFAULT NULL COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='运费模板表'; + +-- ---------------------------- +-- Records of yshop_shipping_templates +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_shipping_templates` VALUES (38, '指定区域邮费', 1, '[{\"_continue\":\"1\",\"continue_price\":\"0\",\"first\":\"1\",\"price\":\"0\",\"region\":[{\"city_id\":\"0\",\"name\":\"默认全国\"}],\"regionName\":\"默认全国\"},{\"_continue\":\"1\",\"continue_price\":\"0\",\"first\":\"1\",\"price\":\"0\",\"region\":[{\"children\":[{\"city_id\":\"210100\"},{\"city_id\":\"210200\"},{\"city_id\":\"210300\"},{\"city_id\":\"210400\"},{\"city_id\":\"210500\"},{\"city_id\":\"210600\"},{\"city_id\":\"210700\"},{\"city_id\":\"210800\"},{\"city_id\":\"210900\"},{\"city_id\":\"211000\"},{\"city_id\":\"211100\"},{\"city_id\":\"211200\"},{\"city_id\":\"211300\"},{\"city_id\":\"211400\"}],\"city_id\":\"210000\",\"name\":\"辽宁省\"}],\"regionName\":\"辽宁省\"}]', 0, '[]', '1', '2023-06-06 11:04:36', '2023-06-06 14:17:04', '1', b'0', 0, NULL); +INSERT INTO `yshop_shipping_templates` VALUES (39, '指定包邮区域', 1, '[{\"_continue\":\"1\",\"continue_price\":\"0\",\"first\":\"1\",\"price\":\"0\",\"region\":[{\"city_id\":\"0\",\"name\":\"默认全国\"}],\"regionName\":\"默认全国\"}]', 1, '[{\"a_num\":\"1\",\"a_price\":\"10\",\"place\":[{\"children\":[{\"city_id\":\"140100\"},{\"city_id\":\"140200\"},{\"city_id\":\"140300\"},{\"city_id\":\"140400\"},{\"city_id\":\"140500\"},{\"city_id\":\"140600\"},{\"city_id\":\"140700\"},{\"city_id\":\"140800\"},{\"city_id\":\"140900\"},{\"city_id\":\"141000\"},{\"city_id\":\"141100\"}],\"city_id\":\"140000\",\"name\":\"山西省\"}],\"placeName\":\"山西省\"}]', '1', '2023-06-06 14:42:12', '2023-06-06 14:42:12', '1', b'0', 0, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_shipping_templates_free +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_shipping_templates_free`; +CREATE TABLE `yshop_shipping_templates_free` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `province_id` int NOT NULL DEFAULT '0' COMMENT '省ID', + `temp_id` int NOT NULL DEFAULT '0' COMMENT '模板ID', + `city_id` int NOT NULL DEFAULT '0' COMMENT '城市ID', + `number` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '包邮件数', + `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '包邮金额', + `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '计费方式', + `uniqid` varchar(32) NOT NULL DEFAULT '' COMMENT '分组唯一值', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=209 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='运费包邮明细'; + +-- ---------------------------- +-- Records of yshop_shipping_templates_free +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_shipping_templates_free` VALUES (198, 140000, 39, 140100, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (199, 140000, 39, 140200, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (200, 140000, 39, 140300, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (201, 140000, 39, 140400, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (202, 140000, 39, 140500, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (203, 140000, 39, 140600, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (204, 140000, 39, 140700, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (205, 140000, 39, 140800, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (206, 140000, 39, 140900, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (207, 140000, 39, 141000, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +INSERT INTO `yshop_shipping_templates_free` VALUES (208, 140000, 39, 141100, 1.00, 10.00, 1, 'f0c0b3c3ba41412cb8cd3fcd6816db0a'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_shipping_templates_region +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_shipping_templates_region`; +CREATE TABLE `yshop_shipping_templates_region` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `province_id` int NOT NULL DEFAULT '0' COMMENT '省ID', + `temp_id` int NOT NULL DEFAULT '0' COMMENT '模板ID', + `city_id` int NOT NULL DEFAULT '0' COMMENT '城市ID', + `first` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '首件', + `first_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '首件运费', + `continues` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '续件', + `continue_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '续件运费', + `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '计费方式', + `uniqid` varchar(50) NOT NULL DEFAULT '' COMMENT '分组唯一值', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=281 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='运费区域明细'; + +-- ---------------------------- +-- Records of yshop_shipping_templates_region +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_shipping_templates_region` VALUES (265, 0, 38, 0, 1.00, 0.00, 1.00, 0.00, 1, 'c22578ad3faa48808b4db605d616f261'); +INSERT INTO `yshop_shipping_templates_region` VALUES (266, 210000, 38, 210100, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (267, 210000, 38, 210200, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (268, 210000, 38, 210300, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (269, 210000, 38, 210400, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (270, 210000, 38, 210500, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (271, 210000, 38, 210600, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (272, 210000, 38, 210700, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (273, 210000, 38, 210800, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (274, 210000, 38, 210900, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (275, 210000, 38, 211000, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (276, 210000, 38, 211100, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (277, 210000, 38, 211200, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (278, 210000, 38, 211300, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (279, 210000, 38, 211400, 1.00, 0.00, 1.00, 0.00, 1, 'eac07825ccf9410cb25fe8d77262b97e'); +INSERT INTO `yshop_shipping_templates_region` VALUES (280, 0, 39, 0, 1.00, 0.00, 1.00, 0.00, 1, 'df16d9afcfa64c73af73fcf93ecdb4ea'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_shop_ads +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_shop_ads`; +CREATE TABLE `yshop_shop_ads` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `image` varchar(255) DEFAULT NULL COMMENT '图片', + `is_switch` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否显现', + `weigh` int NOT NULL DEFAULT '0' COMMENT '权重', + `shop_id` varchar(500) NOT NULL DEFAULT '0' COMMENT '所支持的店铺id用'',''区分,0代表全部', + `shop_name` varchar(1000) DEFAULT NULL COMMENT '店铺名称逗号隔开', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `weigh` (`weigh`,`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COMMENT='广告图管理'; + +-- ---------------------------- +-- Records of yshop_shop_ads +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_shop_ads` VALUES (1, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 1, 1, '0', '意向餐饮店', '2023-08-06 18:42:28', '2023-09-14 10:27:55', '1', '1', b'0'); +INSERT INTO `yshop_shop_ads` VALUES (2, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 1, 2, '0', '全部', '2023-08-08 09:21:32', '2023-09-14 10:27:43', '1', '1', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_order +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_order`; +CREATE TABLE `yshop_store_order` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单ID', + `order_id` varchar(32) NOT NULL COMMENT '订单号', + `shop_id` bigint DEFAULT NULL COMMENT '门店id', + `shop_name` varchar(100) DEFAULT NULL COMMENT '店铺名称', + `extend_order_id` varchar(32) DEFAULT NULL COMMENT '额外订单号', + `uid` bigint unsigned NOT NULL COMMENT '用户id', + `real_name` varchar(32) NOT NULL DEFAULT '' COMMENT '用户姓名', + `user_phone` varchar(18) NOT NULL DEFAULT '' COMMENT '用户电话', + `user_address` varchar(100) NOT NULL DEFAULT '' COMMENT '详细地址', + `cart_id` varchar(256) NOT NULL DEFAULT '[]' COMMENT '购物车id', + `freight_price` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '运费金额', + `total_num` int unsigned NOT NULL DEFAULT '0' COMMENT '订单商品总数', + `total_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '订单总价', + `total_postage` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '邮费', + `pay_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '实际支付金额', + `pay_postage` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '支付邮费', + `deduction_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '抵扣金额', + `coupon_id` int unsigned NOT NULL DEFAULT '0' COMMENT '优惠券id', + `coupon_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '优惠券金额', + `paid` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '支付状态', + `pay_time` datetime DEFAULT NULL COMMENT '支付时间', + `pay_type` varchar(32) NOT NULL COMMENT '支付方式', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货;1:待收货;2:已收货;3:已完成;-1:已退款)', + `refund_status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '0 未退款 1 申请中 2 已退款', + `refund_reason_wap_img` varchar(255) DEFAULT NULL COMMENT '退款图片', + `refund_reason_wap_explain` varchar(255) DEFAULT NULL COMMENT '退款用户说明', + `refund_reason_time` datetime DEFAULT NULL COMMENT '退款时间', + `refund_reason_wap` varchar(255) DEFAULT NULL COMMENT '前台退款原因', + `refund_reason` varchar(255) DEFAULT NULL COMMENT '不退款的理由', + `refund_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '退款金额', + `delivery_sn` varchar(100) DEFAULT '' COMMENT '快递公司编号', + `delivery_name` varchar(64) DEFAULT NULL COMMENT '快递名称/送货人姓名', + `delivery_type` varchar(32) DEFAULT 'normal' COMMENT '发货类型normal-手动填写 |face-电子面单', + `delivery_time` datetime DEFAULT NULL COMMENT '发货时间', + `order_type` varchar(50) DEFAULT 'send' COMMENT '购买类型:takein=自取,takeout=外卖\n', + `delivery_id` varchar(64) DEFAULT NULL COMMENT '快递单号/手机号', + `gain_integral` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '消费赚取积分', + `use_integral` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '使用积分', + `pay_integral` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '实际支付积分', + `back_integral` decimal(8,2) unsigned DEFAULT '0.00' COMMENT '给用户退了多少积分', + `mark` varchar(512) NOT NULL COMMENT '备注', + `unique` char(32) NOT NULL DEFAULT '' COMMENT '唯一id(md5加密)类似id', + `remark` varchar(512) DEFAULT NULL COMMENT '管理员备注', + `mer_id` int unsigned NOT NULL DEFAULT '0' COMMENT '商户ID', + `combination_id` bigint unsigned DEFAULT '0' COMMENT '拼团产品id0一般产品', + `pink_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '拼团id 0没有拼团', + `cost` decimal(8,2) unsigned NOT NULL COMMENT '成本价', + `seckill_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '秒杀产品ID', + `bargain_id` int unsigned DEFAULT '0' COMMENT '砍价id', + `verify_code` varchar(50) NOT NULL DEFAULT '' COMMENT '核销码', + `store_id` int NOT NULL DEFAULT '0' COMMENT '门店id', + `shipping_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '配送方式 1=快递 ,2=门店自提', + `is_channel` tinyint unsigned DEFAULT '0' COMMENT '支付渠道(0微信公众号1微信小程序)', + `is_system_del` tinyint(1) DEFAULT '0' COMMENT '系统删除', + `get_time` datetime DEFAULT NULL COMMENT '取餐时间', + `number_id` int DEFAULT NULL COMMENT '取餐号', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + `tenant_id` bigint DEFAULT NULL COMMENT '租户编号', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime NOT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `order_id_2` (`order_id`,`uid`) USING BTREE, + KEY `uid` (`uid`) USING BTREE, + KEY `pay_price` (`pay_price`) USING BTREE, + KEY `paid` (`paid`) USING BTREE, + KEY `pay_time` (`pay_time`) USING BTREE, + KEY `pay_type` (`pay_type`) USING BTREE, + KEY `status` (`status`) USING BTREE, + KEY `coupon_id` (`coupon_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='订单表'; + +-- ---------------------------- +-- Records of yshop_store_order +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_order` VALUES (33, '1725000691803488256', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-16 11:59:49', 1032, b'0', NULL, '9', '2023-11-16 11:59:49', '2023-11-16 11:59:49', '9'); +INSERT INTO `yshop_store_order` VALUES (34, '1725047622177128448', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.02, 20.00, 0.02, 20.00, 0.00, 0, 0.00, 1, '2023-11-16 15:06:18', 'yue', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-16 15:06:18', 1033, b'0', NULL, '9', '2023-11-16 15:06:18', '2023-11-16 15:06:18', '9'); +INSERT INTO `yshop_store_order` VALUES (35, '1725060861086662656', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 2, 2.01, 20.00, 2.01, 20.00, 0.00, 0, 0.00, 1, '2023-11-16 15:58:54', 'yue', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-16 15:58:54', 1034, b'0', NULL, '9', '2023-11-16 15:58:54', '2023-11-16 15:58:54', '9'); +INSERT INTO `yshop_store_order` VALUES (36, '1725061023016157184', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 2, 0.03, 20.00, 0.03, 20.00, 0.00, 0, 0.00, 1, '2023-11-16 15:59:33', 'yue', 3, 2, NULL, '66666', '2023-11-21 10:21:55', '协商一致', NULL, 0.03, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-16 15:59:33', 1035, b'0', NULL, '9', '2023-11-16 15:59:33', '2023-11-21 10:21:55', '9'); +INSERT INTO `yshop_store_order` VALUES (37, '1726884445237018624', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 1, '2023-11-21 16:49:22', 'weixin', 0, 1, NULL, '7777', '2023-11-21 16:49:10', '协商一致', NULL, 0.01, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-21 16:45:10', 1036, b'0', NULL, '9', '2023-11-21 16:45:10', '2023-11-21 16:51:42', '1'); +INSERT INTO `yshop_store_order` VALUES (38, '1727142223536979968', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 1, '2023-11-22 09:49:44', 'weixin', 0, 2, NULL, '999', '2023-11-22 09:50:22', '协商一致', NULL, 0.01, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-11-22 09:49:30', 1037, b'0', NULL, '9', '2023-11-22 09:49:30', '2023-11-22 09:50:22', '9'); +INSERT INTO `yshop_store_order` VALUES (39, '1731503113317122048', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 3, 6.00, 20.00, 5.98, 20.00, 0.00, 6, 0.02, 1, '2023-12-04 10:38:07', 'yue', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-12-04 10:38:07', 1038, b'0', NULL, '9', '2023-12-04 10:38:07', '2023-12-04 10:38:07', '9'); +INSERT INTO `yshop_store_order` VALUES (40, '1731506721286782976', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 1, '2023-12-04 10:52:27', 'yue', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 0.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-12-04 10:52:27', 1039, b'0', NULL, '9', '2023-12-04 10:52:27', '2023-12-04 10:52:27', '9'); +INSERT INTO `yshop_store_order` VALUES (41, '1731517938814418944', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 1, '2023-12-04 11:37:02', 'yue', 3, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 10.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-12-04 11:37:01', 1040, b'0', NULL, '9', '2023-12-04 11:37:01', '2023-12-04 11:40:22', '9'); +INSERT INTO `yshop_store_order` VALUES (42, '1732962343437991936', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 10.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-12-08 11:16:34', 1041, b'0', NULL, '9', '2023-12-08 11:16:34', '2023-12-08 11:16:34', '9'); +INSERT INTO `yshop_store_order` VALUES (43, '1732962574971961344', 2, '意向餐饮店', NULL, 9, '', '', '', '', 0.00, 1, 0.01, 20.00, 0.01, 20.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '', NULL, 'normal', NULL, 'takein', NULL, 10.00, 0.00, 0.00, 0.00, '', '', NULL, 0, 0, 0, 0.00, 0, 0, '', 0, 1, 0, 0, '2023-12-08 11:17:29', 1042, b'0', NULL, '9', '2023-12-08 11:17:29', '2023-12-08 11:17:29', '9'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_order_cart_info +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_order_cart_info`; +CREATE TABLE `yshop_store_order_cart_info` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `oid` bigint unsigned NOT NULL COMMENT '订单id', + `order_id` varchar(32) DEFAULT NULL COMMENT '订单号', + `cart_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '购物车id', + `product_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '商品ID', + `cart_info` text NOT NULL COMMENT '购买东西的详细信息', + `unique` varchar(50) NOT NULL DEFAULT '' COMMENT '唯一id', + `is_after_sales` tinyint(1) DEFAULT '0' COMMENT '是否能售后0不能1能', + `title` varchar(100) DEFAULT '' COMMENT '商品名称', + `image` varchar(500) DEFAULT '' COMMENT '商品图片', + `number` int DEFAULT '0' COMMENT '数量', + `price` decimal(10,2) DEFAULT NULL COMMENT '价格', + `spec` varchar(500) DEFAULT '' COMMENT '规格', + PRIMARY KEY (`id`) USING BTREE, + KEY `cart_id` (`cart_id`) USING BTREE, + KEY `product_id` (`product_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='订单购物详情表'; + +-- ---------------------------- +-- Records of yshop_store_order_cart_info +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_order_cart_info` VALUES (1, 1, '1703615452900491264', 0, 17, '', 'fc56bf55528e42faace7d3623813d559', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (2, 2, '1703675877960712192', 0, 15, '', 'b5285e89df57426a9762f2ec786761fd', 1, '饮料', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (3, 3, '1703675968628981760', 0, 16, '', 'ab91e2f6868e44e1b8a2c35408d5abdf', 1, '土豆炒肉', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 1, 0.01, '3人|特辣'); +INSERT INTO `yshop_store_order_cart_info` VALUES (4, 4, '1703677507523313664', 0, 16, '', '3e722c100a634d79b9f5169584237646', 1, '土豆炒肉', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 1, 0.01, '3人|特辣'); +INSERT INTO `yshop_store_order_cart_info` VALUES (5, 5, '1703695133590945792', 0, 17, '', '9ed3d729203e4e59a8d85bf15a420e14', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (6, 6, '1703696098238922752', 0, 17, '', '8d64c27d64b64af79c243ee4d2d3df0d', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (7, 7, '1703697465292619776', 0, 17, '', 'ce841f03af9d44faaf54dcb0af23d9d7', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (8, 8, '1703711231535218688', 0, 17, '', 'bbad8f6cd320469aae219dfa8a869117', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (9, 9, '1703714583388094464', 0, 15, '', '1150efbbb2c5473284b9888f46cbb09f', 1, '饮料', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (10, 10, '1703715497381462016', 0, 15, '', '21b2c927eb4747fa96668a66deda212d', 1, '饮料', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (11, 11, '1703718316423512064', 0, 17, '', 'ad23983ca2cf42ebaafe01fbbfd9f6e2', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (12, 12, '1704879606328197120', 0, 17, '', '89325402c09d412ab6594ccb6923cb2f', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (13, 13, '1704880263286226944', 0, 17, '', '0dc2c437be2f42cc8774a62271d922fc', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (14, 14, '1704880316985901056', 0, 17, '', '34ad392b21ca400cad16e91ed810ee19', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (15, 15, '1704880485911494656', 0, 17, '', '000f3fcb983944a78dac08306b436a4a', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (16, 16, '1710504621161578496', 0, 17, '', '7de49ee616e24dfa8570ec3c4a76d735', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (17, 17, '1714842349156171776', 0, 17, '', 'b71bf00034d849a58d97215f7b30fb4c', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (18, 18, '1715549852135325696', 0, 17, '', '82739ad2f5954c4fada1bfda75887108', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (19, 19, '1716272228393287680', 0, 17, '', '9e2c597890d84f17ae8092759a5481d7', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (20, 20, '1716277998795096064', 0, 17, '', 'd841866795ba40d3be88ded81806b1f1', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (21, 21, '1716278197982593024', 0, 17, '', 'f161a4309d754e1fa6dce388c4d8ad0b', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (22, 22, '1716278745859358720', 0, 17, '', '131e9a4d9ee84f90b7cb97bcc9c98afb', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (23, 23, '1716279604374667264', 0, 17, '', 'e01733ab17a0479c8e38565b825347f9', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (24, 24, '1716282100870545408', 0, 17, '', '2729f12201184741a1d390d04eed9f01', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (25, 25, '1716282959058698240', 0, 17, '', '66046faf578549ca886e77b2a39b3669', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (26, 26, '1716285974796828672', 0, 17, '', '2fd0c5de8dcb421286b4d550c22912c8', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (27, 27, '1716288494575288320', 0, 17, '', 'd139a1d2f1554b04b7e906aff938f604', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (28, 28, '1716290062221574144', 0, 17, '', '73d3c25e63fa435ebaf8789bc6299d68', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (29, 29, '1716291271800127488', 0, 17, '', 'f9019ebbecbb4a47b94ae70eeb2bf052', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (30, 30, '1716291285691662336', 0, 17, '', '1ea4c2e2d669474fb0aaaed6be67cfb8', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (31, 31, '1721369605764546560', 0, 18, '', 'd7758461e8474e7984369cc62c8a865d', 1, '1', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 3, 2.00, '默认'); +INSERT INTO `yshop_store_order_cart_info` VALUES (32, 32, '1721371148484083712', 0, 17, '', '81b0f0d912884d24bff9fb4982d1418e', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (33, 33, '1725000691803488256', 0, 15, '', 'd9176155c2394427a8cad79374a47c48', 1, '饮料', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (34, 34, '1725047622177128448', 0, 17, '', '13772df59720499183f9068e16e1bf2c', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.02, '30ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (35, 35, '1725060861086662656', 0, 17, '', 'b6e4b7b8f6d34e02bc3618a838ab2a16', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (36, 35, '1725060861086662656', 0, 18, '', '389f398fbdac40e3a3d9fabf0e129ad8', 1, '1', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 1, 2.00, '默认'); +INSERT INTO `yshop_store_order_cart_info` VALUES (37, 36, '1725061023016157184', 0, 17, '', 'e1d43088b8544691bfcab11c1fd70568', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.02, '30ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (38, 36, '1725061023016157184', 0, 15, '', '405cad0a357c41f5b9fe03cd374d9551', 1, '饮料', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (39, 37, '1726884445237018624', 0, 17, '', '7ddbdf7376394174b70faaebda298b79', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (40, 38, '1727142223536979968', 0, 17, '', 'b998dadd69424c77967591c6b6abe764', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (41, 39, '1731503113317122048', 0, 22, '', 'df67cd84cdfa43c0b6a11fe03f75a369', 1, '5555', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 3, 2.00, '默认'); +INSERT INTO `yshop_store_order_cart_info` VALUES (42, 40, '1731506721286782976', 0, 17, '', '01a932adf7c64901a0d85d9de18b8169', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (43, 41, '1731517938814418944', 0, 17, '', '9b14921379ab455fb073fb8ea5683ed9', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (44, 42, '1732962343437991936', 0, 17, '', '28d527c2a91e40e7984d3d0954c0fc8a', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +INSERT INTO `yshop_store_order_cart_info` VALUES (45, 43, '1732962574971961344', 0, 17, '', '8e03369da8224487aa55851a84164876', 1, '小蛋糕', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 1, 0.01, '10ml'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_order_status +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_order_status`; +CREATE TABLE `yshop_store_order_status` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `oid` bigint unsigned NOT NULL COMMENT '订单id', + `change_type` varchar(32) NOT NULL COMMENT '操作类型', + `change_message` varchar(256) NOT NULL COMMENT '操作备注', + `change_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `oid` (`oid`) USING BTREE, + KEY `change_type` (`change_type`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='订单操作记录表'; + +-- ---------------------------- +-- Records of yshop_store_order_status +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_order_status` VALUES (1, 1, 'yshop_create_order', '订单生成', '2023-09-18 11:42:30'); +INSERT INTO `yshop_store_order_status` VALUES (2, 1, 'pay_success', '用户付款成功', '2023-09-18 11:42:30'); +INSERT INTO `yshop_store_order_status` VALUES (3, 2, 'yshop_create_order', '订单生成', '2023-09-18 15:42:36'); +INSERT INTO `yshop_store_order_status` VALUES (4, 2, 'pay_success', '用户付款成功', '2023-09-18 15:42:37'); +INSERT INTO `yshop_store_order_status` VALUES (5, 3, 'yshop_create_order', '订单生成', '2023-09-18 15:42:58'); +INSERT INTO `yshop_store_order_status` VALUES (6, 4, 'yshop_create_order', '订单生成', '2023-09-18 15:49:05'); +INSERT INTO `yshop_store_order_status` VALUES (7, 4, 'pay_success', '用户付款成功', '2023-09-18 15:49:11'); +INSERT INTO `yshop_store_order_status` VALUES (8, 4, 'user_take_delivery', '用户已收货', '2023-09-18 16:22:12'); +INSERT INTO `yshop_store_order_status` VALUES (9, 2, 'user_take_delivery', '用户已收货', '2023-09-18 16:23:22'); +INSERT INTO `yshop_store_order_status` VALUES (10, 1, 'delivery_goods', '已发货 快递公司:null快递单号:null', '2023-09-18 16:23:37'); +INSERT INTO `yshop_store_order_status` VALUES (11, 1, 'user_take_delivery', '用户已收货', '2023-09-18 16:25:42'); +INSERT INTO `yshop_store_order_status` VALUES (12, 5, 'yshop_create_order', '订单生成', '2023-09-18 16:59:07'); +INSERT INTO `yshop_store_order_status` VALUES (13, 6, 'yshop_create_order', '订单生成', '2023-09-18 17:02:57'); +INSERT INTO `yshop_store_order_status` VALUES (14, 7, 'yshop_create_order', '订单生成', '2023-09-18 17:08:23'); +INSERT INTO `yshop_store_order_status` VALUES (15, 8, 'yshop_create_order', '订单生成', '2023-09-18 18:03:05'); +INSERT INTO `yshop_store_order_status` VALUES (16, 9, 'yshop_create_order', '订单生成', '2023-09-18 18:16:24'); +INSERT INTO `yshop_store_order_status` VALUES (17, 10, 'yshop_create_order', '订单生成', '2023-09-18 18:20:02'); +INSERT INTO `yshop_store_order_status` VALUES (18, 11, 'yshop_create_order', '订单生成', '2023-09-18 18:31:14'); +INSERT INTO `yshop_store_order_status` VALUES (19, 12, 'yshop_create_order', '订单生成', '2023-09-21 23:25:48'); +INSERT INTO `yshop_store_order_status` VALUES (20, 13, 'yshop_create_order', '订单生成', '2023-09-21 23:28:24'); +INSERT INTO `yshop_store_order_status` VALUES (21, 14, 'yshop_create_order', '订单生成', '2023-09-21 23:28:37'); +INSERT INTO `yshop_store_order_status` VALUES (22, 15, 'yshop_create_order', '订单生成', '2023-09-21 23:29:17'); +INSERT INTO `yshop_store_order_status` VALUES (23, 16, 'yshop_create_order', '订单生成', '2023-10-07 11:57:36'); +INSERT INTO `yshop_store_order_status` VALUES (24, 16, 'pay_success', '用户付款成功', '2023-10-07 11:57:36'); +INSERT INTO `yshop_store_order_status` VALUES (25, 16, 'user_take_delivery', '用户已收货', '2023-10-07 11:58:15'); +INSERT INTO `yshop_store_order_status` VALUES (26, 17, 'yshop_create_order', '订单生成', '2023-10-19 11:14:11'); +INSERT INTO `yshop_store_order_status` VALUES (27, 18, 'yshop_create_order', '订单生成', '2023-10-21 10:05:32'); +INSERT INTO `yshop_store_order_status` VALUES (28, 19, 'yshop_create_order', '订单生成', '2023-10-23 09:56:00'); +INSERT INTO `yshop_store_order_status` VALUES (29, 20, 'yshop_create_order', '订单生成', '2023-10-23 10:18:56'); +INSERT INTO `yshop_store_order_status` VALUES (30, 21, 'yshop_create_order', '订单生成', '2023-10-23 10:19:44'); +INSERT INTO `yshop_store_order_status` VALUES (31, 22, 'yshop_create_order', '订单生成', '2023-10-23 10:21:54'); +INSERT INTO `yshop_store_order_status` VALUES (32, 23, 'yshop_create_order', '订单生成', '2023-10-23 10:25:19'); +INSERT INTO `yshop_store_order_status` VALUES (33, 24, 'yshop_create_order', '订单生成', '2023-10-23 10:35:14'); +INSERT INTO `yshop_store_order_status` VALUES (34, 25, 'yshop_create_order', '订单生成', '2023-10-23 10:38:39'); +INSERT INTO `yshop_store_order_status` VALUES (35, 26, 'yshop_create_order', '订单生成', '2023-10-23 10:50:38'); +INSERT INTO `yshop_store_order_status` VALUES (36, 27, 'yshop_create_order', '订单生成', '2023-10-23 11:00:38'); +INSERT INTO `yshop_store_order_status` VALUES (37, 28, 'yshop_create_order', '订单生成', '2023-10-23 11:06:52'); +INSERT INTO `yshop_store_order_status` VALUES (38, 29, 'yshop_create_order', '订单生成', '2023-10-23 11:11:41'); +INSERT INTO `yshop_store_order_status` VALUES (39, 30, 'yshop_create_order', '订单生成', '2023-10-23 11:11:44'); +INSERT INTO `yshop_store_order_status` VALUES (40, 31, 'yshop_create_order', '订单生成', '2023-11-06 11:31:10'); +INSERT INTO `yshop_store_order_status` VALUES (41, 32, 'yshop_create_order', '订单生成', '2023-11-06 11:37:17'); +INSERT INTO `yshop_store_order_status` VALUES (42, 33, 'yshop_create_order', '订单生成', '2023-11-16 11:59:48'); +INSERT INTO `yshop_store_order_status` VALUES (43, 34, 'yshop_create_order', '订单生成', '2023-11-16 15:06:17'); +INSERT INTO `yshop_store_order_status` VALUES (44, 34, 'pay_success', '用户付款成功', '2023-11-16 15:06:17'); +INSERT INTO `yshop_store_order_status` VALUES (45, 35, 'yshop_create_order', '订单生成', '2023-11-16 15:58:54'); +INSERT INTO `yshop_store_order_status` VALUES (46, 35, 'pay_success', '用户付款成功', '2023-11-16 15:58:54'); +INSERT INTO `yshop_store_order_status` VALUES (47, 36, 'yshop_create_order', '订单生成', '2023-11-16 15:59:32'); +INSERT INTO `yshop_store_order_status` VALUES (48, 36, 'pay_success', '用户付款成功', '2023-11-16 15:59:32'); +INSERT INTO `yshop_store_order_status` VALUES (49, 36, 'user_take_delivery', '用户已收货', '2023-11-17 10:32:45'); +INSERT INTO `yshop_store_order_status` VALUES (50, 36, 'apply_refund', '用户申请退款,原因:协商一致', '2023-11-21 10:21:55'); +INSERT INTO `yshop_store_order_status` VALUES (51, 37, 'yshop_create_order', '订单生成', '2023-11-21 16:45:10'); +INSERT INTO `yshop_store_order_status` VALUES (52, 37, 'apply_refund', '用户申请退款,原因:协商一致', '2023-11-21 16:49:10'); +INSERT INTO `yshop_store_order_status` VALUES (53, 37, 'pay_success', '用户付款成功', '2023-11-21 16:49:22'); +INSERT INTO `yshop_store_order_status` VALUES (54, 37, 'refund_price_success', '退款给用户:0.01元', '2023-11-21 22:04:37'); +INSERT INTO `yshop_store_order_status` VALUES (55, 38, 'yshop_create_order', '订单生成', '2023-11-22 09:49:29'); +INSERT INTO `yshop_store_order_status` VALUES (56, 38, 'pay_success', '用户付款成功', '2023-11-22 09:49:43'); +INSERT INTO `yshop_store_order_status` VALUES (57, 38, 'apply_refund', '用户申请退款,原因:协商一致', '2023-11-22 09:50:22'); +INSERT INTO `yshop_store_order_status` VALUES (58, 38, 'refund_price_success', '退款给用户:0.01元', '2023-11-22 09:50:49'); +INSERT INTO `yshop_store_order_status` VALUES (59, 36, 'refund_price_success', '退款给用户:0.03元', '2023-11-22 09:56:31'); +INSERT INTO `yshop_store_order_status` VALUES (60, 39, 'yshop_create_order', '订单生成', '2023-12-04 10:38:06'); +INSERT INTO `yshop_store_order_status` VALUES (61, 39, 'pay_success', '用户付款成功', '2023-12-04 10:38:06'); +INSERT INTO `yshop_store_order_status` VALUES (62, 40, 'yshop_create_order', '订单生成', '2023-12-04 10:52:26'); +INSERT INTO `yshop_store_order_status` VALUES (63, 40, 'pay_success', '用户付款成功', '2023-12-04 10:52:27'); +INSERT INTO `yshop_store_order_status` VALUES (64, 41, 'yshop_create_order', '订单生成', '2023-12-04 11:37:01'); +INSERT INTO `yshop_store_order_status` VALUES (65, 41, 'pay_success', '用户付款成功', '2023-12-04 11:37:01'); +INSERT INTO `yshop_store_order_status` VALUES (66, 41, 'user_take_delivery', '用户已收货', '2023-12-04 11:40:22'); +INSERT INTO `yshop_store_order_status` VALUES (67, 42, 'yshop_create_order', '订单生成', '2023-12-08 11:16:34'); +INSERT INTO `yshop_store_order_status` VALUES (68, 43, 'yshop_create_order', '订单生成', '2023-12-08 11:17:29'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product`; +CREATE TABLE `yshop_store_product` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品id', + `shop_id` int DEFAULT NULL COMMENT '店铺id用''', + `shop_name` varchar(100) DEFAULT NULL COMMENT '店铺名称', + `image` varchar(256) NOT NULL COMMENT '商品图片', + `slider_image` varchar(2000) NOT NULL COMMENT '轮播图', + `store_name` varchar(128) NOT NULL COMMENT '商品名称', + `store_info` varchar(256) NOT NULL COMMENT '商品简介', + `keyword` varchar(256) NOT NULL COMMENT '关键字', + `bar_code` varchar(15) DEFAULT '' COMMENT '产品条码(一维码)', + `brand_id` bigint DEFAULT NULL COMMENT '品牌', + `cate_id` varchar(64) NOT NULL COMMENT '分类id', + `price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '商品价格', + `vip_price` decimal(8,2) unsigned DEFAULT '0.00' COMMENT '会员价格', + `ot_price` decimal(8,2) unsigned DEFAULT '0.00' COMMENT '市场价', + `postage` decimal(8,2) unsigned DEFAULT '0.00' COMMENT '邮费', + `unit_name` varchar(32) DEFAULT NULL COMMENT '单位名', + `sort` smallint DEFAULT '0' COMMENT '排序', + `sales` mediumint unsigned DEFAULT '0' COMMENT '销量', + `stock` mediumint unsigned DEFAULT '0' COMMENT '库存', + `is_show` tinyint(1) DEFAULT '1' COMMENT '状态(0:未上架,1:上架)', + `is_hot` tinyint(1) DEFAULT '0' COMMENT '是否热卖', + `is_benefit` tinyint(1) DEFAULT '0' COMMENT '是否优惠', + `is_best` tinyint(1) DEFAULT '0' COMMENT '是否精品', + `is_new` tinyint(1) DEFAULT '0' COMMENT '是否新品', + `description` text COMMENT '产品描述', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `is_postage` tinyint unsigned DEFAULT '0' COMMENT '是否包邮', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `mer_use` tinyint unsigned DEFAULT '0' COMMENT '商户是否代理 0不可代理1可代理', + `give_integral` decimal(8,2) unsigned DEFAULT NULL COMMENT '获得积分', + `cost` decimal(8,2) unsigned DEFAULT NULL COMMENT '成本价', + `is_seckill` tinyint unsigned DEFAULT '0' COMMENT '秒杀状态 0 未开启 1已开启', + `is_bargain` tinyint unsigned DEFAULT NULL COMMENT '砍价状态 0未开启 1开启', + `is_good` tinyint(1) DEFAULT '0' COMMENT '是否优品推荐', + `ficti` mediumint DEFAULT '100' COMMENT '虚拟销量', + `browse` int DEFAULT '0' COMMENT '浏览量', + `code_path` varchar(64) NOT NULL DEFAULT '' COMMENT '产品二维码地址(用户小程序海报)', + `is_sub` tinyint(1) DEFAULT '0' COMMENT '是否单独分佣', + `temp_id` int DEFAULT '0' COMMENT '运费模板ID', + `spec_type` tinyint(1) DEFAULT '0' COMMENT '规格 0单 1多', + `is_integral` tinyint(1) unsigned zerofill DEFAULT NULL COMMENT '是开启积分兑换', + `integral` int DEFAULT '0' COMMENT '需要多少积分兑换 只在开启积分兑换时生效', + `tenant_id` bigint DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + KEY `is_hot` (`is_hot`) USING BTREE, + KEY `is_benefit` (`is_benefit`) USING BTREE, + KEY `is_best` (`is_best`) USING BTREE, + KEY `is_new` (`is_new`) USING BTREE, + KEY `toggle_on_sale, is_del` (`deleted`) USING BTREE, + KEY `price` (`price`) USING BTREE, + KEY `is_show` (`is_show`) USING BTREE, + KEY `sort` (`sort`) USING BTREE, + KEY `sales` (`sales`) USING BTREE, + KEY `add_time` (`create_time`) USING BTREE, + KEY `is_postage` (`is_postage`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品表'; + +-- ---------------------------- +-- Records of yshop_store_product +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product` VALUES (15, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '饮料', '单规格商品', '饮料', '', NULL, '1', 0.01, 0.00, 2.00, 0.00, '个', 0, 21, 1989, 1, 0, 0, 0, 0, '

单规格商品

', '1', '2023-05-30 13:41:51', '2023-09-14 17:28:33', '1', 0, b'0', 0, 0.00, 1.00, 0, NULL, 0, 0, 0, '', 0, 0, 1, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (16, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '土豆炒肉', '多规格', '土豆炒肉', '', NULL, '4', 0.01, 0.00, 1.00, 10.00, '个', 0, 16, 3431, 1, 0, 0, 0, 0, '

多规格

', '1', '2023-05-30 13:46:55', '2023-09-14 17:27:24', '1', 0, b'0', 0, 0.00, 1.00, 0, NULL, 0, 0, 0, '', 0, 0, 1, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (17, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', '小蛋糕', '小蛋糕商品', '小蛋糕', '', NULL, '11', 0.01, 0.00, 1.00, 0.00, '个', 0, 74, 466, 1, 0, 0, 0, 1, '

小蛋糕

', '1', '2023-06-10 11:40:05', '2023-09-14 17:24:44', '1', 0, b'0', 0, 10.00, 1.00, 0, NULL, 0, 0, 0, '', 0, 38, 1, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (18, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '1', '', '11', '', NULL, '11', 2.00, 0.00, 11.00, 0.00, '', 0, 4, 7, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 17:03:35', '2023-10-13 17:03:35', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (19, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '1111', '', '11', '', NULL, '11', 2.00, 0.00, 11.00, 0.00, '', 0, 0, 11, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 17:04:04', '2023-10-13 17:04:04', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (20, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '2222', '', '11', '', NULL, '11', 2.00, 0.00, 11.00, 0.00, '', 0, 0, 11, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 17:04:26', '2023-10-13 17:04:26', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (21, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '4444', '', '11', '', NULL, '4', 2.00, 0.00, 11.00, 0.00, '', 0, 0, 11, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 17:29:08', '2023-10-13 17:29:08', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (22, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '5555', '', '11', '', NULL, '1', 2.00, 0.00, 11.00, 0.00, '', 0, 3, 8, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 17:29:21', '2023-10-13 17:29:21', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (23, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '6666', '', '11', '', NULL, '1', 2.00, 0.00, 11.00, 0.00, '', 0, 0, 11, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 18:15:14', '2023-10-13 18:15:14', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (24, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '7777', '', '11', '', NULL, '4', 2.00, 0.00, 11.00, 0.00, '', 0, 0, 11, 1, 0, 0, 0, 0, '

11

', '1', '2023-10-13 18:15:29', '2023-10-13 18:15:29', '1', 0, b'0', 0, 0.00, 11.00, 0, NULL, 0, 0, 0, '', 0, 0, 0, 0, 0, 0); +INSERT INTO `yshop_store_product` VALUES (25, 2, '意向餐饮店', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '8888', '', '11', '', NULL, '4', 1.00, 0.00, 0.00, 0.00, '', 0, 0, 12, 0, 0, 0, 0, 0, '

11

', '1', '2023-10-13 18:15:39', '2024-05-08 15:26:01', '1', 0, b'0', 0, 0.00, 0.00, 0, NULL, 0, 0, 0, '', 0, 0, 1, 0, 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_attr +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_attr`; +CREATE TABLE `yshop_store_product_attr` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `product_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '商品ID', + `attr_name` varchar(32) NOT NULL COMMENT '属性名', + `attr_values` varchar(256) NOT NULL COMMENT '属性值', + PRIMARY KEY (`id`) USING BTREE, + KEY `store_id` (`product_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品属性表'; + +-- ---------------------------- +-- Records of yshop_store_product_attr +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_attr` VALUES (92, 17, '体积', '10ml,30ml'); +INSERT INTO `yshop_store_product_attr` VALUES (93, 16, '口味', '微辣,特辣'); +INSERT INTO `yshop_store_product_attr` VALUES (94, 16, '份量', '1人,3人'); +INSERT INTO `yshop_store_product_attr` VALUES (95, 15, '体积', '10ml,30ml'); +INSERT INTO `yshop_store_product_attr` VALUES (96, 18, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (97, 19, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (98, 20, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (99, 21, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (100, 22, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (101, 23, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (102, 24, '规格', '默认'); +INSERT INTO `yshop_store_product_attr` VALUES (111, 25, '体积', '90'); +INSERT INTO `yshop_store_product_attr` VALUES (112, 25, '颜色', '黑色,白色'); +INSERT INTO `yshop_store_product_attr` VALUES (113, 25, '尺寸', '55,77'); +INSERT INTO `yshop_store_product_attr` VALUES (114, 25, '口味', '11,22,33'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_attr_result +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_attr_result`; +CREATE TABLE `yshop_store_product_attr_result` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `product_id` bigint unsigned NOT NULL COMMENT '商品ID', + `result` text NOT NULL COMMENT '商品属性参数', + `change_time` datetime NOT NULL COMMENT '上次修改时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `product_id` (`product_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品属性详情表'; + +-- ---------------------------- +-- Records of yshop_store_product_attr_result +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_attr_result` VALUES (61, 14, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":3.0,\"pic\":\"\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":3,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-05-30 10:43:52'); +INSERT INTO `yshop_store_product_attr_result` VALUES (72, 17, '{\"attr\":[{\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":1.0,\"detail\":{\"体积\":\"10ml\"},\"integral\":0,\"otPrice\":1.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.01,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":199,\"value1\":\"10ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":1.0,\"detail\":{\"体积\":\"30ml\"},\"integral\":0,\"otPrice\":1.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.02,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":300,\"value1\":\"30ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-09-14 17:24:44'); +INSERT INTO `yshop_store_product_attr_result` VALUES (73, 16, '{\"attr\":[{\"detail\":[\"微辣\",\"特辣\"],\"value\":\"口味\"},{\"detail\":[\"1人\",\"3人\"],\"value\":\"份量\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":1.0,\"detail\":{\"口味\":\"微辣\",\"份量\":\"1人\"},\"integral\":0,\"otPrice\":1.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.03,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":996,\"value1\":\"微辣\",\"value2\":\"1人\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":1.0,\"detail\":{\"口味\":\"微辣\",\"份量\":\"3人\"},\"integral\":0,\"otPrice\":2.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.02,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":994,\"value1\":\"微辣\",\"value2\":\"3人\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":3.0,\"detail\":{\"口味\":\"特辣\",\"份量\":\"1人\"},\"integral\":0,\"otPrice\":4.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.04,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":666,\"value1\":\"特辣\",\"value2\":\"1人\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":4.0,\"detail\":{\"口味\":\"特辣\",\"份量\":\"3人\"},\"integral\":0,\"otPrice\":6.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.01,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":777,\"value1\":\"特辣\",\"value2\":\"3人\",\"volume\":0.0,\"weight\":0.0}]}', '2023-09-14 17:27:24'); +INSERT INTO `yshop_store_product_attr_result` VALUES (74, 15, '{\"attr\":[{\"detail\":[\"10ml\",\"30ml\"],\"value\":\"体积\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":1.0,\"detail\":{\"体积\":\"10ml\"},\"integral\":0,\"otPrice\":2.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.01,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":996,\"value1\":\"10ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":3.0,\"detail\":{\"体积\":\"30ml\"},\"integral\":0,\"otPrice\":6.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":0.05,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":997,\"value1\":\"30ml\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-09-14 17:28:33'); +INSERT INTO `yshop_store_product_attr_result` VALUES (75, 18, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 17:03:35'); +INSERT INTO `yshop_store_product_attr_result` VALUES (76, 19, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 17:04:05'); +INSERT INTO `yshop_store_product_attr_result` VALUES (77, 20, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 17:04:26'); +INSERT INTO `yshop_store_product_attr_result` VALUES (78, 21, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 17:29:08'); +INSERT INTO `yshop_store_product_attr_result` VALUES (79, 22, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 17:29:22'); +INSERT INTO `yshop_store_product_attr_result` VALUES (80, 23, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 18:15:14'); +INSERT INTO `yshop_store_product_attr_result` VALUES (81, 24, '{\"attr\":[{\"attrHidden\":\"\",\"detail\":[\"默认\"],\"detailValue\":\"\",\"value\":\"规格\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":11.0,\"detail\":{\"规格\":\"默认\"},\"integral\":0,\"otPrice\":11.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":2.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":11,\"value1\":\"规格\",\"value2\":\"\",\"volume\":0.0,\"weight\":0.0}]}', '2023-10-13 18:15:29'); +INSERT INTO `yshop_store_product_attr_result` VALUES (85, 25, '{\"attr\":[{\"detail\":[\"90\"],\"value\":\"体积\"},{\"detail\":[\"黑色\",\"白色\"],\"value\":\"颜色\"},{\"detail\":[\"55\",\"77\"],\"value\":\"尺寸\"},{\"detail\":[\"11\",\"22\",\"33\"],\"value\":\"口味\"}],\"value\":[{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"黑色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"黑色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"11\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"22\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"55\",\"口味\":\"33\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"11\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"22\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0},{\"barCode\":\"\",\"brokerage\":0.0,\"brokerageTwo\":0.0,\"cost\":0.0,\"detail\":{\"体积\":\"90\",\"颜色\":\"白色\",\"尺寸\":\"77\",\"口味\":\"33\"},\"integral\":0,\"otPrice\":0.0,\"pic\":\"https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg\",\"pinkPrice\":0.0,\"pinkStock\":0,\"price\":1.0,\"seckillPrice\":0.0,\"seckillStock\":0,\"sku\":\"\",\"stock\":1,\"value1\":\"90\",\"value2\":\"白色\",\"volume\":0.0,\"weight\":0.0}]}', '2024-05-08 15:26:01'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_attr_value +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_attr_value`; +CREATE TABLE `yshop_store_product_attr_value` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `product_id` bigint unsigned NOT NULL COMMENT '商品ID', + `sku` varchar(128) NOT NULL COMMENT '商品属性索引值 (attr_value|attr_value[|....])', + `stock` int unsigned NOT NULL COMMENT '属性对应的库存', + `sales` int unsigned DEFAULT '0' COMMENT '销量', + `price` decimal(8,2) unsigned NOT NULL COMMENT '属性金额', + `image` varchar(128) DEFAULT NULL COMMENT '图片', + `unique` varchar(100) NOT NULL DEFAULT '' COMMENT '唯一值', + `cost` decimal(8,2) unsigned NOT NULL COMMENT '成本价', + `bar_code` varchar(255) DEFAULT NULL COMMENT '商品条码', + `ot_price` decimal(10,2) DEFAULT '0.00' COMMENT '原价', + `weight` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '重量', + `volume` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '体积', + `brokerage` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '一级返佣', + `brokerage_two` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '二级返佣', + `pink_price` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '拼团价', + `pink_stock` int NOT NULL DEFAULT '0' COMMENT '拼团库存', + `seckill_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '秒杀价', + `seckill_stock` int NOT NULL DEFAULT '0' COMMENT '秒杀库存', + `integral` int(10) unsigned zerofill DEFAULT '0000000000' COMMENT '需要多少积分兑换', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `unique` (`unique`,`sku`) USING BTREE, + KEY `store_id` (`product_id`,`sku`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品属性值表'; + +-- ---------------------------- +-- Records of yshop_store_product_attr_value +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_attr_value` VALUES (140, 17, '10ml', 167, 32, 0.01, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 'c0cc998c37e7494790c8b7159688f3c9', 1.00, '', 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (141, 17, '30ml', 299, 1, 0.02, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/576916bb4464e69d58c7b13745d84492c051c98c301ceff6f80ffbf11f73d65e.jpg', 'cef371f49b2b4e76872408a682fed307', 1.00, '', 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (142, 16, '1人,微辣', 996, 0, 0.03, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '63243603ac97487aae6623911fd22644', 1.00, '', 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (143, 16, '3人,微辣', 994, 0, 0.02, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '7a92701d93564665a6a74905f9ebe3d7', 1.00, '', 2.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (144, 16, '1人,特辣', 666, 0, 0.04, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '45f52550c25240f7a43fc8dae0cf5cfa', 3.00, '', 4.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (145, 16, '3人,特辣', 775, 2, 0.01, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '9a27b489220e4a7e9c8b5e3266e7d365', 4.00, '', 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (146, 15, '10ml', 992, 4, 0.01, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '917d95d36ed244be8c12333acce47b4a', 1.00, '', 2.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (147, 15, '30ml', 997, 0, 0.05, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/ad0cc3947ff9a41caceab6207e13982beed27559b9bfc311128e5992cc702056.jpg', '917ceaa8df1149f5984e18586b88bfd0', 3.00, '', 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (148, 18, '默认', 7, 4, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '11ff495a46834401af634bc0d78a46e7', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (149, 19, '默认', 11, 0, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '4b0320e229584f3886d99de917895bc6', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (150, 20, '默认', 11, 0, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'b6217da317314ee29f2ec3f6f776725c', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (151, 21, '默认', 11, 0, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '0eb397ff5a114304a51ac9cd05ecd01c', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (152, 22, '默认', 8, 3, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '40800b8d9a6c4ea7bbbdff8ea0d7cd1b', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (153, 23, '默认', 11, 0, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '6d4b575fe1024da18e1a5fd27407ef0a', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (154, 24, '默认', 11, 0, 2.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'b842b87c382548f8b6a244ad62dfb07a', 11.00, '', 11.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (188, 25, '11,55,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '3810fcde310c475eb029ec3ffc41f0ba', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (189, 25, '22,55,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'c753b24fda59487b92523618e4fa1cb2', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (190, 25, '33,55,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'e711333d77194f0dadf9679c012758f9', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (191, 25, '11,77,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '0e031b57116d45a0b937671869b569dd', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (192, 25, '22,77,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '468e7626881944c7a59fc7b856fec7ad', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (193, 25, '33,77,90,黑色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '49623e1852194ec68351fd9d3b489ce7', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (194, 25, '11,55,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'e476a3f341994fce85503a689c248067', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (195, 25, '22,55,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '3bda2da4d7cf46a28c42aca77fd00d78', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (196, 25, '33,55,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'f7d2432e774f48e1bed67cd373290247', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (197, 25, '11,77,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', 'ba479862524a41cdbe032b1330c67ca4', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (198, 25, '22,77,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '0614f36a1fff405bbe849ab9d117d7f2', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +INSERT INTO `yshop_store_product_attr_value` VALUES (199, 25, '33,77,90,白色', 1, 0, 1.00, 'https://apidc.yixiang.co/admin-api/infra/file/4/get/00b7dec2e349fcfe5a83c5dbba74a52217e5ba669049ca46f716f044c40a6939.jpg', '207ffe0bfcbc41d18ec74120a1805b37', 0.00, '', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0.00, 0, 0000000000); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_brand +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_brand`; +CREATE TABLE `yshop_store_product_brand` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌名称', + `pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌图片', + `sort` int DEFAULT '0' COMMENT '品牌排序', + `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '品牌描述', + `status` tinyint NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品品牌'; + +-- ---------------------------- +-- Records of yshop_store_product_brand +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_brand` VALUES (1, '苹果', 'https://app2.yixiang.co/file/pic/20210222221033953795.jpeg', 0, '是上市', 0, '1', '2022-07-30 22:12:18', '1', '2023-07-24 10:10:58', b'1', 1); +INSERT INTO `yshop_store_product_brand` VALUES (2, '2', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/e8b3ca5e5519e3b66768c2437744b072ed1bea09b7b7625d72ac4ac7eb70358b.jpeg', 2, '', 0, '1', '2023-05-29 13:54:40', '1', '2023-05-29 13:54:40', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_category +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_category`; +CREATE TABLE `yshop_store_product_category` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号', + `shop_id` int DEFAULT NULL COMMENT '店铺id用''', + `parent_id` bigint DEFAULT '0' COMMENT '父分类编号', + `shop_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '店铺名称', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称', + `pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类图片', + `sort` int DEFAULT '0' COMMENT '分类排序', + `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分类描述', + `status` tinyint NOT NULL COMMENT '开启状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品分类'; + +-- ---------------------------- +-- Records of yshop_store_product_category +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_category` VALUES (1, 2, 0, '意向餐饮店', '饮料', 'http://127.0.0.1:48081/admin-api/infra/file/4/get/5942d0091c32ecab3e1dc3f8abbfc15efa79cfaa39986e7955af4c1a6aecb834.png', 1, '1234', 0, '1', '2022-07-30 16:36:35', '1', '2023-09-05 16:26:45', b'0', 1); +INSERT INTO `yshop_store_product_category` VALUES (4, 2, 0, '意向餐饮店', '主食', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/dcc749871b119ca807154adccd7cb5923d5f182ccfa85c36b269e0cd6a278e54.png', 2, '

123

', 0, '1', '2022-07-30 16:40:00', '1', '2023-09-14 16:51:38', b'0', 1); +INSERT INTO `yshop_store_product_category` VALUES (11, 2, 0, '意向餐饮店', '甜点', ' http://localhost:48081/admin-api/infra/file/4/get/6f981164076d5069b11f78a9c4b27818570e54ff04fced577b224e204b998457.png', 1, '', 0, '1', '2023-08-15 13:02:48', '1', '2024-06-01 14:23:35', b'0', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_relation +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_relation`; +CREATE TABLE `yshop_store_product_relation` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `uid` bigint unsigned NOT NULL COMMENT '用户ID', + `product_id` bigint unsigned NOT NULL COMMENT '商品ID', + `type` varchar(32) DEFAULT NULL COMMENT '类型(收藏(collect)、点赞(like))', + `category` varchar(32) DEFAULT NULL COMMENT '某种类型的商品(普通商品、秒杀商品)', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime NOT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uid` (`uid`,`product_id`,`type`,`category`) USING BTREE, + KEY `type` (`type`) USING BTREE, + KEY `category` (`category`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品点赞和收藏表'; + +-- ---------------------------- +-- Records of yshop_store_product_relation +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_relation` VALUES (2, 2, 15, 'collect', 'common', '2', '2023-06-15 11:52:41', '2023-06-15 12:01:08', '2', b'0', NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_reply +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_reply`; +CREATE TABLE `yshop_store_product_reply` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论ID', + `uid` bigint NOT NULL COMMENT '用户ID', + `oid` bigint NOT NULL COMMENT '订单ID', + `unique` char(32) NOT NULL COMMENT '唯一id', + `product_id` bigint NOT NULL COMMENT '产品id', + `reply_type` varchar(32) NOT NULL DEFAULT 'product' COMMENT '某种商品类型(普通商品、秒杀商品)', + `product_score` tinyint(1) NOT NULL COMMENT '商品分数', + `service_score` tinyint(1) NOT NULL COMMENT '服务分数', + `comment` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '评论内容', + `pics` text NOT NULL COMMENT '评论图片', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime NOT NULL COMMENT '评论时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `merchant_reply_content` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '管理员回复内容', + `merchant_reply_time` datetime DEFAULT NULL COMMENT '管理员回复时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '0未删除1已删除', + `is_reply` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0未回复1已回复', + `tenant_id` bigint DEFAULT '0' COMMENT '租户ID', + PRIMARY KEY (`id`) USING BTREE, + KEY `add_time` (`create_time`) USING BTREE, + KEY `parent_id` (`reply_type`) USING BTREE, + KEY `is_del` (`deleted`) USING BTREE, + KEY `product_score` (`product_score`) USING BTREE, + KEY `service_score` (`service_score`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='评论表'; + +-- ---------------------------- +-- Records of yshop_store_product_reply +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_reply` VALUES (4, 2, 4, 'b1255a14d97748f396664968f45f68e6', 16, 'product', 5, 5, '评价', 'http://dummyimage.com/400x400', '2', '2023-06-28 17:11:06', '2023-06-29 18:38:36', '1', '666', NULL, b'0', 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_product_rule +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_product_rule`; +CREATE TABLE `yshop_store_product_rule` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', + `rule_name` varchar(32) NOT NULL COMMENT '规格名称', + `rule_value` json NOT NULL COMMENT '规格值', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `tenant_id` bigint DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='商品规则值(规格)表'; + +-- ---------------------------- +-- Records of yshop_store_product_rule +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_product_rule` VALUES (25, '饮料', '[{\"value\": \"体积\", \"detail\": [\"90\"]}, {\"value\": \"颜色\", \"detail\": [\"黑色\", \"白色\"]}, {\"value\": \"尺寸\", \"detail\": [\"55\", \"77\"]}, {\"value\": \"口味\", \"detail\": [\"11\", \"22\", \"33\"]}]', '2023-05-18 10:23:12', '1', '2024-05-08 15:25:05', '1', b'0', 0); +INSERT INTO `yshop_store_product_rule` VALUES (26, '主食', '[{\"value\": \"口味\", \"detail\": [\"微辣\", \"特辣\"]}, {\"value\": \"份量\", \"detail\": [\"1人\", \"3人\"]}, {\"value\": \"颜色\", \"detail\": [\"黑\"]}]', '2023-05-19 18:21:12', '1', '2024-03-26 15:34:17', '1', b'0', 0); +INSERT INTO `yshop_store_product_rule` VALUES (27, '1', '[{\"value\": \"2\", \"detail\": [\"2\"]}]', '2023-05-19 18:22:41', '1', '2023-05-19 18:22:41', '1', b'1', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_store_shop +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_store_shop`; +CREATE TABLE `yshop_store_shop` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '店铺名称', + `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '店铺电话', + `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '图片', + `images` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '多张图片', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '详细地址', + `address_map` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地图定位地址', + `start_time` datetime NOT NULL COMMENT '营业开始时间', + `end_time` datetime NOT NULL COMMENT '营业结束时间', + `lng` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '经度', + `lat` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '纬度', + `distance` int NOT NULL DEFAULT '0' COMMENT '外卖配送距离,单位为千米。0表示不送外卖', + `min_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '起送价钱', + `delivery_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '配送价格', + `notice` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '公告', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否营业:0=否,1=是', + `admin_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '管理员id', + `uniprint_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '打印机id', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新者', + `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店管理'; + +-- ---------------------------- +-- Records of yshop_store_shop +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_store_shop` VALUES (2, '意向餐饮店', '18000000000', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '源汇区人民东路', '河南省漯河市源汇区团结路50号-20', '2023-08-19 09:00:00', '2023-08-19 23:00:00', '114.04877877439665', '33.57093831826829', 10, 10.00, 20.00, '新店开张', 1, '126', '1', '2023-08-06 11:48:43', '2023-09-14 17:30:59', '1', '1', b'0'); +INSERT INTO `yshop_store_shop` VALUES (3, 'yshop', '18000000000', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', 'https://apidc.yixiang.co/admin-api/infra/file/4/get/44723283500f656cdd5906e13f2997cb292d17f516065ff4b3b38f9810bce4cb.jpg', '67号', '北京市东城区', '2023-08-06 13:35:02', '2023-08-06 15:35:02', '116.40403593222032', '39.91643892263258', 0, 1.00, 2.00, '2222', 1, '100', '2', '2023-08-06 13:14:53', '2024-03-26 15:42:20', '1', '1', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_user +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_user`; +CREATE TABLE `yshop_user` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户账户(跟accout一样)', + `password` varchar(255) DEFAULT NULL COMMENT '用户密码(跟pwd)', + `real_name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '真实姓名', + `birthday` varchar(100) DEFAULT '' COMMENT '生日', + `card_id` varchar(20) DEFAULT '' COMMENT '身份证号码', + `mark` varchar(255) DEFAULT '' COMMENT '用户备注', + `partner_id` int DEFAULT '0' COMMENT '合伙人id', + `group_id` int DEFAULT '0' COMMENT '用户分组id', + `nickname` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户昵称', + `avatar` varchar(256) DEFAULT NULL COMMENT '用户头像', + `mobile` char(15) DEFAULT NULL COMMENT '手机号码', + `login_date` datetime DEFAULT NULL, + `login_ip` varchar(255) DEFAULT NULL, + `register_ip` varchar(255) DEFAULT NULL COMMENT '注册ip', + `add_ip` varchar(100) DEFAULT '' COMMENT '添加ip', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '添加时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '最后一次登录时间', + `last_ip` varchar(100) DEFAULT '' COMMENT '最后一次登录ip', + `now_money` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '用户余额', + `brokerage_price` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '佣金金额', + `integral` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '用户剩余积分', + `sign_num` int NOT NULL DEFAULT '0' COMMENT '连续签到天数', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1为正常,0为禁止', + `level` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '等级', + `spread_uid` bigint unsigned DEFAULT '0' COMMENT '推广元id', + `spread_time` datetime DEFAULT NULL COMMENT '推广员关联时间', + `user_type` varchar(32) NOT NULL DEFAULT '' COMMENT '用户类型', + `is_promoter` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否为推广员', + `pay_count` int unsigned DEFAULT '0' COMMENT '用户购买次数', + `spread_count` int DEFAULT '0' COMMENT '下级人数', + `addres` varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址', + `adminid` int unsigned DEFAULT '0' COMMENT '管理员编号 ', + `login_type` varchar(36) NOT NULL DEFAULT '' COMMENT '用户登陆类型,h5,wechat,routine', + `wx_profile` json DEFAULT NULL COMMENT '微信用户json信息', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `tenant_id` bigint DEFAULT NULL COMMENT '租户编号', + `openid` varchar(100) DEFAULT NULL COMMENT '公众号openid', + `routine_openid` varchar(100) DEFAULT NULL COMMENT '小程序openid', + `gender` tinyint(1) DEFAULT '0' COMMENT '性别0-男1-女', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `username` (`username`) USING BTREE, + KEY `spreaduid` (`spread_uid`) USING BTREE, + KEY `level` (`level`) USING BTREE, + KEY `status` (`status`) USING BTREE, + KEY `is_promoter` (`is_promoter`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='用户表'; + +-- ---------------------------- +-- Records of yshop_user +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_user` VALUES (9, '15136175246', '$2a$04$f8cmulYWQy2obFePCk1sQOulaSK6ggCZok.xOjBS8lwVUhoLEbJUS', '', '', '', '', 0, 0, 'yshop用户_9', NULL, '151****5246', '2024-05-08 15:26:06', '0:0:0:0:0:0:0:1', '0:0:0:0:0:0:0:1', '', NULL, '2023-11-07 17:17:45', '9', '2024-05-08 15:26:06', '', 91.97, 0.00, 9970.00, 0, 0, 0, 0, NULL, '', 0, 8, 0, '', 0, 'routine', NULL, b'0', NULL, NULL, 'oHux265Iu9R5pMKk1O3U_J6TtMC4', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_user_address +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_user_address`; +CREATE TABLE `yshop_user_address` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户地址id', + `uid` bigint unsigned NOT NULL COMMENT '用户id', + `real_name` varchar(32) NOT NULL DEFAULT '' COMMENT '收货人姓名', + `address` varchar(500) DEFAULT NULL COMMENT '地址', + `phone` varchar(16) NOT NULL DEFAULT '' COMMENT '收货人电话', + `province` varchar(64) NOT NULL DEFAULT '' COMMENT '收货人所在省', + `city` varchar(64) NOT NULL DEFAULT '' COMMENT '收货人所在市', + `city_id` int DEFAULT NULL COMMENT '城市id', + `district` varchar(64) NOT NULL DEFAULT '' COMMENT '收货人所在区', + `detail` varchar(256) NOT NULL DEFAULT '' COMMENT '收货人详细地址', + `post_code` varchar(20) NOT NULL DEFAULT '' COMMENT '邮编', + `longitude` varchar(50) NOT NULL DEFAULT '0' COMMENT '经度', + `latitude` varchar(50) NOT NULL DEFAULT '0' COMMENT '纬度', + `is_default` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否默认', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime NOT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint DEFAULT NULL COMMENT '租户编号', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + PRIMARY KEY (`id`) USING BTREE, + KEY `uid` (`uid`) USING BTREE, + KEY `is_default` (`is_default`) USING BTREE, + KEY `is_del` (`deleted`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='用户地址表'; + +-- ---------------------------- +-- Records of yshop_user_address +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_user_address` VALUES (1, 2, '胡萝卜', '河南省漯河市源汇区交通路602号附近 富豪花园', '15136175212', '', '', NULL, '', '86号', '', '114.03841284847353', '33.5607274581116', 0, b'0', '2', '2023-09-18 11:36:10', '2023-09-18 11:36:10', NULL, '2'); +INSERT INTO `yshop_user_address` VALUES (2, 2, 'hu', '河南省漯河市源汇区 大刘镇', '18000000000', '', '', NULL, '', '88888', '', '113.9202', '33.54528', 0, b'0', '2', '2023-11-02 17:41:44', '2023-11-02 17:41:44', NULL, '2'); +INSERT INTO `yshop_user_address` VALUES (3, 9, 'hupeng', '河南省漯河市源汇区 源汇区河南众肯餐饮服务有限公司', '18888888888', '', '', NULL, '', '520号', '', '113.9202', '33.54528', 0, b'0', '9', '2023-11-29 15:45:59', '2023-11-29 15:45:59', NULL, '9'); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_user_bill +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_user_bill`; +CREATE TABLE `yshop_user_bill` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户账单id', + `uid` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户uid', + `link_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '关联id', + `pm` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '0 = 支出 1 = 获得', + `title` varchar(64) NOT NULL DEFAULT '' COMMENT '账单标题', + `category` varchar(64) NOT NULL DEFAULT '' COMMENT '明细种类', + `type` varchar(64) NOT NULL DEFAULT '' COMMENT '明细类型', + `number` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '明细数字', + `balance` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '剩余', + `mark` varchar(512) NOT NULL DEFAULT '' COMMENT '备注', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `create_time` datetime NOT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0 = 带确定 1 = 有效 -1 = 无效', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `tenant_id` bigint DEFAULT NULL COMMENT '租户编号', + `extend_field` varchar(255) DEFAULT '' COMMENT '扩展字段', + PRIMARY KEY (`id`) USING BTREE, + KEY `openid` (`uid`) USING BTREE, + KEY `status` (`status`) USING BTREE, + KEY `add_time` (`create_time`) USING BTREE, + KEY `pm` (`pm`) USING BTREE, + KEY `type` (`category`,`type`,`link_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='用户账单表'; + +-- ---------------------------- +-- Records of yshop_user_bill +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_user_bill` VALUES (1, 2, '', 1, '系统增加余额', 'now_money', 'system_add', 10000.00, 10000.00, '系统增加了10000余额', '1', '2023-09-18 11:26:59', '2023-09-18 11:26:59', '1', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (2, 2, '', 1, '系统增加积分', 'now_money', 'system_add', 0.00, 0.00, '系统增加了0积分', '1', '2023-09-18 11:26:59', '2023-09-18 11:26:59', '1', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (3, 2, '0', 0, '购买商品', 'now_money', 'pay_product', 20.01, 9979.99, '余额支付20.01元购买商品', '2', '2023-09-18 11:36:33', '2023-09-18 11:36:33', '2', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (4, 2, '0', 0, '购买商品', 'now_money', 'pay_product', 20.01, 9959.98, '余额支付20.01元购买商品', '2', '2023-09-18 11:42:30', '2023-09-18 11:42:30', '2', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (5, 2, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 9959.97, '余额支付0.01元购买商品', '2', '2023-09-18 15:42:37', '2023-09-18 15:42:37', '2', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (6, 2, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 9959.97, '微信支付0.01元购买商品', NULL, '2023-09-18 15:49:11', '2023-09-18 15:49:11', NULL, 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (7, 2, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 9959.96, '余额支付0.01元购买商品', '2', '2023-10-07 11:57:37', '2023-10-07 11:57:37', '2', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (23, 9, '2', 1, '用户充值', 'now_money', 'recharge', 100.00, 100.00, '用户充值,金额100.00', '9', '2023-11-10 17:12:39', '2023-11-10 17:12:39', '9', 1, b'0', NULL, '1722905095160463360'); +INSERT INTO `yshop_user_bill` VALUES (24, 9, '1', 1, '用户充值', 'now_money', 'recharge', 100.00, 200.00, '用户充值,金额100.00', '9', '2023-11-10 17:13:42', '2023-11-10 17:13:42', '9', 0, b'0', NULL, '1722905359481307136'); +INSERT INTO `yshop_user_bill` VALUES (25, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.02, 99.98, '余额支付0.02元购买商品', '9', '2023-11-16 15:06:18', '2023-11-16 15:06:18', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (26, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 2.01, 97.97, '余额支付2.01元购买商品', '9', '2023-11-16 15:58:54', '2023-11-16 15:58:54', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (27, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.03, 97.94, '余额支付0.03元购买商品', '9', '2023-11-16 15:59:33', '2023-11-16 15:59:33', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (28, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 97.94, '微信支付0.01元购买商品', NULL, '2023-11-21 16:49:22', '2023-11-21 16:49:22', NULL, 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (29, 9, '37', 1, '商品退款', 'now_money', 'pay_product_refund', 0.01, 97.94, '订单退款到余额0.01元', '1', '2023-11-21 22:04:38', '2023-11-21 22:04:38', '1', 0, b'0', NULL, '1726964836241244160'); +INSERT INTO `yshop_user_bill` VALUES (30, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 97.94, '微信支付0.01元购买商品', NULL, '2023-11-22 09:49:44', '2023-11-22 09:49:44', NULL, 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (31, 9, '38', 1, '商品退款', 'now_money', 'pay_product_refund', 0.01, 97.94, '订单退款到余额0.01元', '1', '2023-11-22 09:50:50', '2023-11-22 09:50:50', '1', 0, b'0', NULL, '1727142556682158080'); +INSERT INTO `yshop_user_bill` VALUES (32, 9, '36', 1, '商品退款', 'now_money', 'pay_product_refund', 0.03, 97.94, '订单退款到余额0.03元', '1', '2023-11-22 09:56:32', '2023-11-22 09:56:32', '1', 0, b'0', NULL, '1727143993793314816'); +INSERT INTO `yshop_user_bill` VALUES (33, 9, '', 1, '系统增加余额', 'now_money', 'system_add', 0.00, 97.97, '系统增加了0余额', '1', '2023-11-30 14:20:49', '2023-11-30 14:20:49', '1', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (34, 9, '', 1, '系统增加积分', 'now_money', 'system_add', 10000.00, 10000.00, '系统增加了10000积分', '1', '2023-11-30 14:20:49', '2023-11-30 14:20:49', '1', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (35, 9, '0', 0, '积分兑换', 'integral', 'pay_product', 10.00, 10000.00, '10积分兑换商品', '9', '2023-11-30 14:42:39', '2023-11-30 14:42:39', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (36, 9, '0', 0, '积分兑换', 'integral', 'pay_product', 10.00, 9990.00, '10积分兑换商品', '9', '2023-12-02 16:35:06', '2023-12-02 16:35:06', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (37, 9, '0', 0, '积分兑换', 'integral', 'pay_product', 10.00, 9980.00, '10积分兑换商品', '9', '2023-12-02 16:41:20', '2023-12-02 16:41:20', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (38, 9, '0', 0, '积分兑换', 'integral', 'pay_product', 10.00, 9970.00, '10积分兑换商品', '9', '2023-12-02 16:46:38', '2023-12-02 16:46:38', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (39, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 5.98, 91.99, '余额支付5.98元购买商品', '9', '2023-12-04 10:38:07', '2023-12-04 10:38:07', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (40, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 91.98, '余额支付0.01元购买商品', '9', '2023-12-04 10:52:27', '2023-12-04 10:52:27', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (41, 9, '0', 0, '购买商品', 'now_money', 'pay_product', 0.01, 91.97, '余额支付0.01元购买商品', '9', '2023-12-04 11:37:02', '2023-12-04 11:37:02', '9', 1, b'0', NULL, ''); +INSERT INTO `yshop_user_bill` VALUES (42, 9, '41', 1, '购买商品赠送积分', 'integral', 'gain', 10.00, 9970.00, '购买商品赠送10.00积分', '9', '2023-12-04 11:40:22', '2023-12-04 11:40:22', '9', 1, b'0', NULL, ''); +COMMIT; + +-- ---------------------------- +-- Table structure for yshop_wechat_template +-- ---------------------------- +DROP TABLE IF EXISTS `yshop_wechat_template`; +CREATE TABLE `yshop_wechat_template` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '模板id', + `tempkey` char(50) NOT NULL DEFAULT '' COMMENT '模板编号', + `name` char(100) NOT NULL DEFAULT '' COMMENT '模板名', + `content` varchar(1000) NOT NULL DEFAULT '' COMMENT '回复内容', + `tempid` char(100) DEFAULT NULL COMMENT '模板ID', + `create_time` datetime NOT NULL COMMENT '添加时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态', + `deleted` bit(1) DEFAULT b'0' COMMENT '删除', + `type` varchar(30) DEFAULT NULL COMMENT '类型:template:模板消息 subscribe:订阅消息', + PRIMARY KEY (`id`) USING BTREE, + KEY `tempkey` (`tempkey`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='微信模板'; + +-- ---------------------------- +-- Records of yshop_wechat_template +-- ---------------------------- +BEGIN; +INSERT INTO `yshop_wechat_template` VALUES (16, 'pay_success', '订单支付成功通知', '', 'KBtfY9G1IWCzC6q-ZKo-Q-MmdP7aaF79nx0XFcBf3h4', '2023-07-25 10:41:17', '2023-09-11 15:35:56', '1', '1', 1, b'0', 'subscribe'); +INSERT INTO `yshop_wechat_template` VALUES (17, 'pay_success', '订单支付成功通知', '', 'r6PWTcAOQodoyz0GT_0NCoFxssBT4ZB7AJqVdTdRvfA', '2023-07-25 10:43:14', '2023-07-25 10:43:14', '1', '1', 1, b'0', 'template'); +COMMIT; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/yshop-drink-boot3/yshop-dependencies/pom.xml b/yshop-drink-boot3/yshop-dependencies/pom.xml new file mode 100644 index 0000000..b9333aa --- /dev/null +++ b/yshop-drink-boot3/yshop-dependencies/pom.xml @@ -0,0 +1,680 @@ + + + 4.0.0 + + co.yixiang.boot + yshop-dependencies + ${revision} + pom + + ${project.artifactId} + 基础 bom 文件,管理整个项目的依赖版本 + https://gitee.com/guchengwuyue/yshop-drink + + + 3.0.0 + 1.5.0 + + 3.2.2 + + 2.2.0 + 4.3.0 + + 1.2.21 + 3.5.5 + 3.5.5 + 4.3.0 + 1.4.10 + 2.2.11 + 3.26.0 + 8.1.3.62 + + 2.3.0 + + 2.2.7 + + 9.0.0 + 3.2.1 + 0.33.0 + + 8.0.1.RELEASE + 1.0.13 + 5.2.0 + + 7.0.1 + + 2.0.3 + 1.17.2 + 1.18.30 + 1.5.5.Final + 5.8.25 + 6.0.0-M10 + 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 + 2.0.5 + 1.6.6-beta2 + 2.12.2 + 4.6.0 + 1.0.3 + 2.14.5 + 3.3.3 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + + io.github.mouzt + bizlog-sdk + ${bizlog-sdk.version} + + + org.springframework.boot + spring-boot-starter + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + ${revision} + + + co.yixiang.boot + yshop-spring-boot-starter-biz-data-permission + ${revision} + + + co.yixiang.boot + yshop-spring-boot-starter-biz-ip + ${revision} + + + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + ${revision} + + + + co.yixiang.boot + yshop-spring-boot-starter-security + ${revision} + + + + co.yixiang.boot + yshop-spring-boot-starter-websocket + ${revision} + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + ${knife4j.version} + + + org.springdoc + springdoc-openapi-starter-webmvc-api + ${springdoc.version} + + + org.springdoc + springdoc-openapi-ui + ${springdoc.version} + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + ${revision} + + + + com.alibaba + druid-spring-boot-3-starter + ${druid.version} + + + com.baomidou + mybatis-plus-spring-boot3-starter + ${mybatis-plus.version} + + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + com.baomidou + dynamic-datasource-spring-boot3-starter + ${dynamic-datasource.version} + + + com.github.yulichang + mybatis-plus-join-boot-starter + ${mybatis-plus-join.version} + + + + com.fhs-opensource + easy-trans-spring-boot-starter + ${easy-trans.version} + + + org.springframework + spring-context + + + org.springframework.cloud + spring-cloud-commons + + + + + com.fhs-opensource + easy-trans-mybatis-plus-extend + ${easy-trans.version} + + + com.fhs-opensource + easy-trans-anno + ${easy-trans.version} + + + + co.yixiang.boot + yshop-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} + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + ${revision} + + + + org.apache.rocketmq + rocketmq-spring-boot-starter + ${rocketmq-spring.version} + + + + + co.yixiang.boot + yshop-spring-boot-starter-protection + ${revision} + + + + com.baomidou + lock4j-redisson-spring-boot-starter + ${lock4j.version} + + + redisson-spring-boot-starter + org.redisson + + + + + + + co.yixiang.boot + yshop-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} + + + + + co.yixiang.boot + yshop-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} + + + + + org.flowable + flowable-spring-boot-starter-process + ${flowable.version} + + + org.flowable + flowable-spring-boot-starter-actuator + ${flowable.version} + + + + + + co.yixiang.boot + yshop-common + ${revision} + + + + co.yixiang.boot + yshop-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-5.version} + + + org.dromara.hutool + hutool-extra + ${hutool-6.version} + + + + 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} + + + + com.google.guava + guava + ${guava.version} + + + + com.google.inject + guice + ${guice.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} + + + 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 + weixin-java-pay + ${weixin-java.version} + + + com.github.binarywang + wx-java-mp-spring-boot-starter + ${weixin-java.version} + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + ${weixin-java.version} + + + + + org.jeecgframework.jimureport + jimureport-spring-boot3-starter + ${jimureport.version} + + + com.alibaba + druid + + + + + xerces + xercesImpl + ${xercesImpl.version} + + + + com.egzosn + pay-spring-boot-starter + ${pay.boot.version} + + + com.egzosn + pay-java-ali + ${pay.version} + + + com.egzosn + pay-java-wx + ${pay.version} + + + com.egzosn + pay-java-web-support + ${pay.version} + + + com.google.zxing + core + ${zxing.version} + + + + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + resolveCiFriendliesOnly + true + + + + + flatten + + flatten + process-resources + + + + clean + + flatten.clean + clean + + + + + + + diff --git a/yshop-drink-boot3/yshop-framework/pom.xml b/yshop-drink-boot3/yshop-framework/pom.xml new file mode 100644 index 0000000..a4b984b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + yshop + co.yixiang.boot + ${revision} + + pom + + yshop-common + yshop-spring-boot-starter-mybatis + yshop-spring-boot-starter-redis + yshop-spring-boot-starter-web + yshop-spring-boot-starter-security + yshop-spring-boot-starter-websocket + + yshop-spring-boot-starter-monitor + yshop-spring-boot-starter-protection + yshop-spring-boot-starter-job + yshop-spring-boot-starter-mq + + yshop-spring-boot-starter-excel + yshop-spring-boot-starter-test + + yshop-spring-boot-starter-biz-tenant + yshop-spring-boot-starter-biz-data-permission + yshop-spring-boot-starter-biz-ip + + + yshop-framework + + 该包是技术组件,每个子包,代表一个组件。每个组件包括两部分: + 1. core 包:是该组件的核心封装 + 2. config 包:是该组件基于 Spring 的配置 + + 技术组件,也分成两类: + 1. 框架组件:和我们熟悉的 MyBatis、Redis 等等的拓展 + 2. 业务组件:和业务相关的组件的封装,例如说数据字典、操作日志等等。 + 如果是业务组件,Maven 名字会包含 biz + + https://gitee.com/guchengwuyue/yshop-drink + + diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-common/pom.xml new file mode 100644 index 0000000..c8ad88f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/pom.xml @@ -0,0 +1,149 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-common + jar + + ${project.artifactId} + 定义基础 pojo 类、枚举、工具类等等 + https://gitee.com/guchengwuyue/yshop-drink + + + + + 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-starter-webmvc-api + 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 + + + + com.fhs-opensource + easy-trans-anno + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java similarity index 97% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java index 6a6d823..7a93752 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/ShopConstants.java @@ -184,4 +184,7 @@ public interface ShopConstants { //快递查询接口Logistic String KDNIAO_LOGISTIC_QUERY="https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx"; + + //跳转到扫码页面 + String PAGE_GOOD_HOME = "pages/components/pages/scan/scan"; } diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/SystemConfigConstants.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/SystemConfigConstants.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/SystemConfigConstants.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/constant/SystemConfigConstants.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/IntArrayValuable.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/IntArrayValuable.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/IntArrayValuable.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/IntArrayValuable.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java similarity index 76% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java index ffa8187..75925c1 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/core/KeyValue.java @@ -4,6 +4,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; + /** * Key Value 的键值对 * @@ -12,7 +14,7 @@ import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor -public class KeyValue { +public class KeyValue implements Serializable { private K key; private V value; diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/CommonStatusEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/CommonStatusEnum.java new file mode 100644 index 0000000..6203d3b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/CommonStatusEnum.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.framework.common.enums; + +import cn.hutool.core.util.ObjUtil; +import co.yixiang.yshop.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 通用状态枚举 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DateIntervalEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DateIntervalEnum.java new file mode 100644 index 0000000..bdf3fd7 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DateIntervalEnum.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.framework.common.enums; + +import cn.hutool.core.util.ArrayUtil; +import co.yixiang.yshop.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 时间间隔的枚举 + * + * @author dhb52 + */ +@Getter +@AllArgsConstructor +public enum DateIntervalEnum implements IntArrayValuable { + + DAY(1, "天"), + WEEK(2, "周"), + MONTH(3, "月"), + QUARTER(4, "季度"), + YEAR(5, "年") + ; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DateIntervalEnum::getInterval).toArray(); + + /** + * 类型 + */ + private final Integer interval; + /** + * 名称 + */ + private final String name; + + @Override + public int[] array() { + return ARRAYS; + } + + public static DateIntervalEnum valueOf(Integer interval) { + return ArrayUtil.firstMatch(item -> item.getInterval().equals(interval), DateIntervalEnum.values()); + } + +} \ No newline at end of file diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java similarity index 76% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java index c2675af..38ef47f 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/DocumentEnum.java @@ -12,7 +12,7 @@ import lombok.Getter; @AllArgsConstructor public enum DocumentEnum { - REDIS_INSTALL("https://www.yixiang.coJ", "Redis 安装文档"), + REDIS_INSTALL("https://gitee.com/zhijiantianya/yixiang-drink/issues/I4VCSJ", "Redis 安装文档"), TENANT("https://www.yixiang.co", "SaaS 多租户文档"); private final String url; diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java similarity index 94% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java index e9363e0..9d732b7 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderInfoEnum.java @@ -52,6 +52,9 @@ public enum OrderInfoEnum { PAY_CHANNEL_0(0,"公众号/H5支付渠道"), PAY_CHANNEL_1(1,"小程序支付渠道"), + DESK_ORDER_STATUS_CONFIRM(0,"确认完成"), + DESK_ORDER_STATUS_ING(1,"就餐中"), + SHIPPIING_TYPE_1(1,"快递"), SHIPPIING_TYPE_2(2,"门店自提"); diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderTypeEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderTypeEnum.java new file mode 100644 index 0000000..8d7d843 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/OrderTypeEnum.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.framework.common.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author hupeng + * 类型枚举 + */ +@Getter +@AllArgsConstructor +public enum OrderTypeEnum { + TYPE_WORK("work","工作台"), + TYPE_COMMON("common","普通"); + + private String value; + private String desc; +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/PayIdEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/PayIdEnum.java new file mode 100644 index 0000000..f7e5c06 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/PayIdEnum.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.common.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author hupeng + * 支付ID枚举 + */ +@Getter +@AllArgsConstructor +public enum PayIdEnum { + WX_H5("wx_h5","微信支付H5"), + WX_MINIAPP("wx_miniapp","微信支付小程序"), + WX_WECHAT("wx_wechat","微信支付公众号"), + WX_PC("wx_pc","微信支付pc"), + WX_APP("wx_app","微信支付app"), + ALI_H5("ali_h5","支付宝H5"), + ALI_MINIAPP("ali_miniapp","支付宝小程序"), + ALI_WECHAT("ali_wechat","支付宝公众号"), + ALI_PC("ali_pc","支付宝pc"), + ALI_APP("ali_app","支付宝app"); + + private String value; + private String desc; +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/ShopCommonEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/ShopCommonEnum.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/ShopCommonEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/ShopCommonEnum.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java index ea1f19b..b9fe5ea 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/TerminalEnum.java @@ -15,11 +15,11 @@ import java.util.Arrays; @Getter public enum TerminalEnum implements IntArrayValuable { + UNKNOWN(0, "未知"), // 目的:在无法解析到 terminal 时,使用它 WECHAT_MINI_PROGRAM(10, "微信小程序"), WECHAT_WAP(11, "微信公众号"), H5(20, "H5 网页"), - IOS(31, "苹果 App"), - ANDROID(32, "安卓 App"), + APP(31, "手机 App"), ; public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray(); diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/UserTypeEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/UserTypeEnum.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/UserTypeEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/UserTypeEnum.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java similarity index 93% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java index 26348d6..ea4d0e2 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/enums/WebFilterOrderEnum.java @@ -27,8 +27,6 @@ public interface WebFilterOrderEnum { int TENANT_SECURITY_FILTER = -99; // 需要保证在 Spring Security 过滤器后面 - int ACTIVITI_FILTER = -98; // 需要保证在 Spring Security 过滤后面 - int FLOWABLE_FILTER = -98; // 需要保证在 Spring Security 过滤后面 int DEMO_FILTER = Integer.MAX_VALUE; diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ErrorCode.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ErrorCode.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ErrorCode.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ErrorCode.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServerException.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServerException.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServerException.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServerException.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServiceException.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServiceException.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServiceException.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/ServiceException.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java similarity index 84% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java index 8683abf..f6fcb40 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/GlobalErrorCodeConstants.java @@ -30,6 +30,7 @@ public interface GlobalErrorCodeConstants { 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, "重复请求,请稍后重试"); // 重复请求 @@ -37,15 +38,4 @@ public interface GlobalErrorCodeConstants { ErrorCode UNKNOWN = new ErrorCode(999, "未知错误"); - /** - * 是否为服务端错误,参考 HTTP 5XX 错误码段 - * - * @param code 错误码 - * @return 是否 - */ - static boolean isServerErrorCode(Integer code) { - return code != null - && code >= INTERNAL_SERVER_ERROR.getCode() && code <= INTERNAL_SERVER_ERROR.getCode() + 99; - } - } diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java similarity index 79% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java index e799fca..1b79bbd 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/enums/ServiceErrorCodeRange.java @@ -33,7 +33,14 @@ public class ServiceErrorCodeRange { // 模块 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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/util/ServiceExceptionUtil.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/util/ServiceExceptionUtil.java new file mode 100644 index 0000000..5f75169 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/exception/util/ServiceExceptionUtil.java @@ -0,0 +1,77 @@ +package co.yixiang.yshop.framework.common.exception.util; + +import co.yixiang.yshop.framework.common.exception.ErrorCode; +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; + +/** + * {@link ServiceException} 工具类 + * + * 目的在于,格式化异常信息提示。 + * 考虑到 String.format 在参数不正确时会报错,因此使用 {} 作为占位符,并使用 {@link #doFormat(int, String, Object...)} 方法来格式化 + * + */ +@Slf4j +public class ServiceExceptionUtil { + + // ========== 和 ServiceException 的集成 ========== + + public static ServiceException exception(ErrorCode errorCode) { + return exception0(errorCode.getCode(), errorCode.getMsg()); + } + + public static ServiceException exception(ErrorCode errorCode, Object... params) { + return exception0(errorCode.getCode(), errorCode.getMsg(), 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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/params/QueryParam.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/params/QueryParam.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/params/QueryParam.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/params/QueryParam.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java similarity index 92% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java index e884f08..0535ec2 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/CommonResult.java @@ -1,7 +1,6 @@ package co.yixiang.yshop.framework.common.pojo; import co.yixiang.yshop.framework.common.exception.ErrorCode; -import co.yixiang.yshop.framework.common.exception.ServerException; import co.yixiang.yshop.framework.common.exception.ServiceException; import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -42,7 +41,7 @@ public class CommonResult implements Serializable { * 因为 A 方法返回的 CommonResult 对象,不满足调用其的 B 方法的返回,所以需要进行转换。 * * @param result 传入的 result 对象 - * @param 返回的泛型 + * @param 返回的泛型 * @return 新的 CommonResult 对象 */ public static CommonResult error(CommonResult result) { @@ -92,10 +91,6 @@ public class CommonResult implements Serializable { if (isSuccess()) { return; } - // 服务端异常 - if (GlobalErrorCodeConstants.isServerErrorCode(code)) { - throw new ServerException(code, msg); - } // 业务异常 throw new ServiceException(code, msg); } diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageParam.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageParam.java new file mode 100644 index 0000000..27b0519 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageParam.java @@ -0,0 +1,36 @@ +package co.yixiang.yshop.framework.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.Max; +import jakarta.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 = "页码不能为空") + @Min(value = 1, message = "页码最小值为 1") + private Integer pageNo = PAGE_NO; + + @Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @NotNull(message = "每页条数不能为空") + @Min(value = 1, message = "每页条数最小值为 1") + @Max(value = 100, message = "每页条数最大值为 100") + private Integer pageSize = PAGE_SIZE; + +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java similarity index 83% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java index ddd92d0..4d543fa 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/PageResult.java @@ -11,10 +11,10 @@ import java.util.List; @Data public final class PageResult implements Serializable { - @Schema(description = "数据", required = true) + @Schema(description = "数据", requiredMode = Schema.RequiredMode.REQUIRED) private List list; - @Schema(description = "总量", required = true) + @Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED) private Long total; public PageResult() { diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortablePageParam.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortablePageParam.java new file mode 100644 index 0000000..bae5f95 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortablePageParam.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortingField.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortingField.java new file mode 100644 index 0000000..af45838 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/pojo/SortingField.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/BigDecimalSerializer.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/BigDecimalSerializer.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/BigDecimalSerializer.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/BigDecimalSerializer.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/DoubleSerializer.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/DoubleSerializer.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/DoubleSerializer.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/serializer/DoubleSerializer.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/cache/CacheUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/cache/CacheUtils.java new file mode 100644 index 0000000..dc06f92 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/cache/CacheUtils.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.framework.common.util.cache; + +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.Executors; + +/** + * Cache 工具类 + * + * @author yshop + */ +public class CacheUtils { + + /** + * 构建异步刷新的 LoadingCache 对象 + * + * 注意:如果你的缓存和 ThreadLocal 有关系,要么自己处理 ThreadLocal 的传递,要么使用 {@link #buildCache(Duration, CacheLoader)} 方法 + * + * 或者简单理解: + * 1、和“人”相关的,使用 {@link #buildCache(Duration, CacheLoader)} 方法 + * 2、和“全局”、“系统”相关的,使用当前缓存方法 + * + * @param duration 过期时间 + * @param loader CacheLoader 对象 + * @return LoadingCache 对象 + */ + public static LoadingCache buildAsyncReloadingCache(Duration duration, CacheLoader loader) { + return CacheBuilder.newBuilder() + // 只阻塞当前数据加载线程,其他线程返回旧值 + .refreshAfterWrite(duration) + // 通过 asyncReloading 实现全异步加载,包括 refreshAfterWrite 被阻塞的加载线程 + .build(CacheLoader.asyncReloading(loader, Executors.newCachedThreadPool())); // TODO yshop:可能要思考下,未来要不要做成可配置 + } + + /** + * 构建同步刷新的 LoadingCache 对象 + * + * @param duration 过期时间 + * @param loader CacheLoader 对象 + * @return LoadingCache 对象 + */ + public static LoadingCache buildCache(Duration duration, CacheLoader loader) { + return CacheBuilder.newBuilder().refreshAfterWrite(duration).build(loader); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/ArrayUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/ArrayUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/ArrayUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/ArrayUtils.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtils.java new file mode 100644 index 0000000..7cccc36 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtils.java @@ -0,0 +1,322 @@ +package co.yixiang.yshop.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 yshop + */ +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().filter(Objects::nonNull).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).filter(Objects::nonNull).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) { + return convertSet(from, v -> v); + } + + 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().filter(Objects::nonNull).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).filter(Objects::nonNull).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(Collection from, Predicate predicate) { + return findFirst(from, predicate, Function.identity()); + } + + public static U findFirst(Collection 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()); + } + +} \ No newline at end of file diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java similarity index 93% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java index 9e96e9b..6443f86 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/MapUtils.java @@ -2,6 +2,7 @@ package co.yixiang.yshop.framework.common.util.collection; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjUtil; import co.yixiang.yshop.framework.common.core.KeyValue; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -40,6 +41,7 @@ public class MapUtils { /** * 从哈希表查找到 key 对应的 value,然后进一步处理 + * key 为 null 时, 不处理 * 注意,如果查找到的 value 为 null 时,不进行处理 * * @param map 哈希表 @@ -47,7 +49,7 @@ public class MapUtils { * @param consumer 进一步处理的逻辑 */ public static void findAndThen(Map map, K key, Consumer consumer) { - if (CollUtil.isEmpty(map)) { + if (ObjUtil.isNull(key) || CollUtil.isEmpty(map)) { return; } V value = map.get(key); diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/SetUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/SetUtils.java new file mode 100644 index 0000000..3e8fc8a --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/collection/SetUtils.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.framework.common.util.collection; + +import cn.hutool.core.collection.CollUtil; + +import java.util.Set; + +/** + * Set 工具类 + * + * @author yshop + */ +public class SetUtils { + + @SafeVarargs + public static Set asSet(T... objs) { + return CollUtil.newHashSet(objs); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java similarity index 75% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java index 2ab53b0..65e42ab 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/DateUtils.java @@ -23,9 +23,9 @@ public class DateUtils { */ public static final long SECOND_MILLIS = 1000; - public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; + public static final String FORMAT_YEAR_MONTH_DAY = "yyyy-MM-dd"; - public static final String FORMAT_HOUR_MINUTE_SECOND = "HH:mm:ss"; + public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; /** * 将 LocalDateTime 转换成 Date @@ -34,6 +34,9 @@ public class DateUtils { * @return LocalDateTime */ public static Date of(LocalDateTime date) { + if (date == null) { + return null; + } // 将此日期时间与时区相结合以创建 ZonedDateTime ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault()); // 本地时间线 LocalDateTime 到即时时间线 Instant 时间戳 @@ -49,30 +52,24 @@ public class DateUtils { * @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()); } - @Deprecated 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(); - } - /** * 创建指定时间 * @@ -129,37 +126,6 @@ public class DateUtils { 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(); - } - /** * 是否今天 * @@ -170,4 +136,14 @@ public class DateUtils { 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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/LocalDateTimeUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/LocalDateTimeUtils.java new file mode 100644 index 0000000..e934f81 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/date/LocalDateTimeUtils.java @@ -0,0 +1,309 @@ +package co.yixiang.yshop.framework.common.util.date; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.enums.DateIntervalEnum; + +import java.time.*; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalAdjusters; +import java.util.ArrayList; +import java.util.List; + +/** + * 时间工具类,用于 {@link java.time.LocalDateTime} + * + * @author yshop + */ +public class LocalDateTimeUtils { + + /** + * 空的 LocalDateTime 对象,主要用于 DB 唯一索引的默认值 + */ + public static LocalDateTime EMPTY = buildTime(1970, 1, 1); + + /** + * 解析时间 + * + * 相比 {@link LocalDateTimeUtil#parse(CharSequence)} 方法来说,会尽量去解析,直到成功 + * + * @param time 时间 + * @return 时间字符串 + */ + public static LocalDateTime parse(String time) { + try { + return LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN); + } catch (DateTimeParseException e) { + return LocalDateTimeUtil.parse(time); + } + } + + 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 结束时间 + * @param time 指定时间 + * @return 是否 + */ + public static boolean isBetween(LocalDateTime startTime, LocalDateTime endTime, String time) { + if (startTime == null || endTime == null || time == null) { + return false; + } + return LocalDateTimeUtil.isIn(parse(time), startTime, endTime); + } + + /** + * 判断当前时间是否在该时间范围内 + * + * @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 date 日期 + * @return 所在季度 + */ + public static int getQuarterOfYear(LocalDateTime date) { + return (date.getMonthValue() - 1) / 3 + 1; + } + + /** + * 获取指定日期到现在过了几天,如果指定日期在当前日期之后,获取结果为负 + * + * @param dateTime 日期 + * @return 相差天数 + */ + public static Long between(LocalDateTime dateTime) { + return LocalDateTimeUtil.between(dateTime, LocalDateTime.now(), ChronoUnit.DAYS); + } + + /** + * 获取今天的开始时间 + * + * @return 今天 + */ + public static LocalDateTime getToday() { + return LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); + } + + /** + * 获取昨天的开始时间 + * + * @return 昨天 + */ + public static LocalDateTime getYesterday() { + return LocalDateTimeUtil.beginOfDay(LocalDateTime.now().minusDays(1)); + } + + /** + * 获取本月的开始时间 + * + * @return 本月 + */ + public static LocalDateTime getMonth() { + return beginOfMonth(LocalDateTime.now()); + } + + /** + * 获取本年的开始时间 + * + * @return 本年 + */ + public static LocalDateTime getYear() { + return LocalDateTime.now().with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN); + } + + public static List getDateRangeList(LocalDateTime startTime, + LocalDateTime endTime, + Integer interval) { + // 1.1 找到枚举 + DateIntervalEnum intervalEnum = DateIntervalEnum.valueOf(interval); + Assert.notNull(intervalEnum, "interval({}} 找不到对应的枚举", interval); + // 1.2 将时间对齐 + startTime = LocalDateTimeUtil.beginOfDay(startTime); + endTime = LocalDateTimeUtil.endOfDay(endTime); + + // 2. 循环,生成时间范围 + List timeRanges = new ArrayList<>(); + switch (intervalEnum) { + case DAY: + while (startTime.isBefore(endTime)) { + timeRanges.add(new LocalDateTime[]{startTime, startTime.plusDays(1).minusNanos(1)}); + startTime = startTime.plusDays(1); + } + break; + case WEEK: + while (startTime.isBefore(endTime)) { + LocalDateTime endOfWeek = startTime.with(DayOfWeek.SUNDAY).plusDays(1).minusNanos(1); + timeRanges.add(new LocalDateTime[]{startTime, endOfWeek}); + startTime = endOfWeek.plusNanos(1); + } + break; + case MONTH: + while (startTime.isBefore(endTime)) { + LocalDateTime endOfMonth = startTime.with(TemporalAdjusters.lastDayOfMonth()).plusDays(1).minusNanos(1); + timeRanges.add(new LocalDateTime[]{startTime, endOfMonth}); + startTime = endOfMonth.plusNanos(1); + } + break; + case QUARTER: + while (startTime.isBefore(endTime)) { + int quarterOfYear = getQuarterOfYear(startTime); + LocalDateTime quarterEnd = quarterOfYear == 4 + ? startTime.with(TemporalAdjusters.lastDayOfYear()).plusDays(1).minusNanos(1) + : startTime.withMonth(quarterOfYear * 3 + 1).withDayOfMonth(1).minusNanos(1); + timeRanges.add(new LocalDateTime[]{startTime, quarterEnd}); + startTime = quarterEnd.plusNanos(1); + } + break; + case YEAR: + while (startTime.isBefore(endTime)) { + LocalDateTime endOfYear = startTime.with(TemporalAdjusters.lastDayOfYear()).plusDays(1).minusNanos(1); + timeRanges.add(new LocalDateTime[]{startTime, endOfYear}); + startTime = endOfYear.plusNanos(1); + } + break; + default: + throw new IllegalArgumentException("Invalid interval: " + interval); + } + // 3. 兜底,最后一个时间,需要保持在 endTime 之前 + LocalDateTime[] lastTimeRange = CollUtil.getLast(timeRanges); + if (lastTimeRange != null) { + lastTimeRange[1] = endTime; + } + return timeRanges; + } + + /** + * 格式化时间范围 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param interval 时间间隔 + * @return 时间范围 + */ + public static String formatDateRange(LocalDateTime startTime, LocalDateTime endTime, Integer interval) { + // 1. 找到枚举 + DateIntervalEnum intervalEnum = DateIntervalEnum.valueOf(interval); + Assert.notNull(intervalEnum, "interval({}} 找不到对应的枚举", interval); + + // 2. 循环,生成时间范围 + switch (intervalEnum) { + case DAY: + return LocalDateTimeUtil.format(startTime, DatePattern.NORM_DATE_PATTERN); + case WEEK: + return LocalDateTimeUtil.format(startTime, DatePattern.NORM_DATE_PATTERN) + + StrUtil.format("(第 {} 周)", LocalDateTimeUtil.weekOfYear(startTime)); + case MONTH: + return LocalDateTimeUtil.format(startTime, DatePattern.NORM_MONTH_PATTERN); + case QUARTER: + return StrUtil.format("{}-Q{}", startTime.getYear(), getQuarterOfYear(startTime)); + case YEAR: + return LocalDateTimeUtil.format(startTime, DatePattern.NORM_YEAR_PATTERN); + default: + throw new IllegalArgumentException("Invalid interval: " + interval); + } + } + +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java similarity index 99% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java index 3016a28..bc74eb2 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/http/HttpUtils.java @@ -9,7 +9,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.net.URI; import java.nio.charset.Charset; import java.util.Map; diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/FileUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/FileUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/FileUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/FileUtils.java diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/IoUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/IoUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/IoUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/io/IoUtils.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/json/JsonUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/json/JsonUtils.java new file mode 100644 index 0000000..e9eda69 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/json/JsonUtils.java @@ -0,0 +1,202 @@ +package co.yixiang.yshop.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 yshop + */ +@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); + } + } + + /** + * 解析 JSON 字符串成指定类型的对象,如果解析失败,则返回 null + * + * @param text 字符串 + * @param typeReference 类型引用 + * @return 指定类型的对象 + */ + public static T parseObjectQuietly(String text, TypeReference typeReference) { + try { + return objectMapper.readValue(text, typeReference); + } catch (IOException e) { + return null; + } + } + + 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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/monitor/TracerUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/monitor/TracerUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/monitor/TracerUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/monitor/TracerUtils.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/MoneyUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/MoneyUtils.java new file mode 100644 index 0000000..7b9e4bf --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/MoneyUtils.java @@ -0,0 +1,131 @@ +package co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/NumberUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/NumberUtils.java new file mode 100644 index 0000000..61df1b2 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/number/NumberUtils.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.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 yshop + */ +public class NumberUtils { + + public static Long parseLong(String str) { + return StrUtil.isNotEmpty(str) ? Long.valueOf(str) : null; + } + + public static Integer parseInt(String str) { + return StrUtil.isNotEmpty(str) ? Integer.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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/BeanUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/BeanUtils.java new file mode 100644 index 0000000..db8997f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/BeanUtils.java @@ -0,0 +1,62 @@ +package co.yixiang.yshop.framework.common.util.object; + +import cn.hutool.core.bean.BeanUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/ObjectUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/ObjectUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/ObjectUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/ObjectUtils.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/PageUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/PageUtils.java new file mode 100644 index 0000000..4b30439 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/object/PageUtils.java @@ -0,0 +1,67 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.SortablePageParam; +import co.yixiang.yshop.framework.common.pojo.SortingField; +import org.springframework.util.Assert; + +import static java.util.Collections.singletonList; + +/** + * {@link co.yixiang.yshop.framework.common.pojo.PageParam} 工具类 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/servlet/ServletUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/servlet/ServletUtils.java new file mode 100644 index 0000000..37b0a12 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/servlet/ServletUtils.java @@ -0,0 +1,127 @@ +package co.yixiang.yshop.framework.common.util.servlet; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.servlet.JakartaServletUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +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 java.io.IOException; +import java.net.URLEncoder; +import java.util.Map; + +/** + * 客户端工具类 + * + * @author yshop + */ +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); + JakartaServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE); + } + + /** + * @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 JakartaServletUtil.getClientIP(request); + } + + public static boolean isJsonRequest(ServletRequest request) { + return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE); + } + + public static String getBody(HttpServletRequest request) { + // 只有在 json 请求在读取,因为只有 CacheRequestBodyFilter 才会进行缓存,支持重复读取 + if (isJsonRequest(request)) { + return JakartaServletUtil.getBody(request); + } + return null; + } + + public static byte[] getBodyBytes(HttpServletRequest request) { + // 只有在 json 请求在读取,因为只有 CacheRequestBodyFilter 才会进行缓存,支持重复读取 + if (isJsonRequest(request)) { + return JakartaServletUtil.getBodyBytes(request); + } + return null; + } + + public static String getClientIP(HttpServletRequest request) { + return JakartaServletUtil.getClientIP(request); + } + + public static Map getParamMap(HttpServletRequest request) { + return JakartaServletUtil.getParamMap(request); + } + + public static String getRequstHost(HttpServletRequest request){ + String port = ":" + request.getServerPort(); + if(request.getServerPort() == 80 || request.getServerPort() == 443){ + port = ""; + } + return request.getScheme()+"://" + request.getServerName() + port; + } + + /** + * 返回附件 + * + * @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); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java index fab85b9..db759f5 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringExpressionUtils.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.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.ProceedingJoinPoint; +import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.ParameterNameDiscoverer; @@ -24,7 +24,13 @@ import java.util.Map; */ public class SpringExpressionUtils { + /** + * Spring EL 表达式解析器 + */ private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); + /** + * 参数名发现器 + */ private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); private SpringExpressionUtils() { @@ -33,11 +39,11 @@ public class SpringExpressionUtils { /** * 从切面中,单个解析 EL 表达式的结果 * - * @param joinPoint 切面点 + * @param joinPoint 切面点 * @param expressionString EL 表达式数组 * @return 执行界面 */ - public static Object parseExpression(ProceedingJoinPoint joinPoint, String expressionString) { + public static Object parseExpression(JoinPoint joinPoint, String expressionString) { Map result = parseExpressions(joinPoint, Collections.singletonList(expressionString)); return result.get(expressionString); } @@ -45,11 +51,11 @@ public class SpringExpressionUtils { /** * 从切面中,批量解析 EL 表达式的结果 * - * @param joinPoint 切面点 + * @param joinPoint 切面点 * @param expressionStrings EL 表达式数组 * @return 结果,key 为表达式,value 为对应值 */ - public static Map parseExpressions(ProceedingJoinPoint joinPoint, List expressionStrings) { + public static Map parseExpressions(JoinPoint joinPoint, List expressionStrings) { // 如果为空,则不进行解析 if (CollUtil.isEmpty(expressionStrings)) { return MapUtil.newHashMap(); @@ -79,4 +85,5 @@ public class SpringExpressionUtils { }); return result; } + } diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringUtils.java new file mode 100644 index 0000000..b53eec1 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/spring/SpringUtils.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.framework.common.util.spring; + +import cn.hutool.extra.spring.SpringUtil; + +import java.util.Objects; + +/** + * Spring 工具类 + * + * @author yshop + */ +public class SpringUtils extends SpringUtil { + + /** + * 是否为生产环境 + * + * @return 是否生产环境 + */ + public static boolean isProd() { + String activeProfile = getActiveProfile(); + return Objects.equals("prod", activeProfile); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/string/StrUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/string/StrUtils.java new file mode 100644 index 0000000..d8528d4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/string/StrUtils.java @@ -0,0 +1,80 @@ +package co.yixiang.yshop.framework.common.util.string; + +import cn.hutool.core.text.StrPool; +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.Set; +import java.util.stream.Collectors; + +/** + * 字符串工具类 + * + * @author yshop + */ +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 Set splitToLongSet(String value) { + return splitToLongSet(value, StrPool.COMMA); + } + + public static Set splitToLongSet(String value, CharSequence separator) { + long[] longs = StrUtil.splitToLong(value, separator); + return Arrays.stream(longs).boxed().collect(Collectors.toSet()); + } + + 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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java similarity index 77% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java index d1906d4..a3e9bf2 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/validation/ValidationUtils.java @@ -1,11 +1,13 @@ package co.yixiang.yshop.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.Validator; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.Validation; +import jakarta.validation.Validator; import java.util.Set; import java.util.regex.Pattern; @@ -37,6 +39,12 @@ public class ValidationUtils { && 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)) { diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java similarity index 99% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java index a5097c7..003538e 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/util/yshop/LocationUtils.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.framework.common.util.yshop; import cn.hutool.core.util.NumberUtil; - /** * 定位工具 * @author hupeng diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java similarity index 82% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java index a5ad9b8..b70bb3e 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnum.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.framework.common.validation; import co.yixiang.yshop.framework.common.core.IntArrayValuable; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.*; @Target({ @@ -17,7 +17,7 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @Constraint( - validatedBy = InEnumValidator.class + validatedBy = {InEnumValidator.class, InEnumCollectionValidator.class} ) public @interface InEnum { diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumCollectionValidator.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumCollectionValidator.java new file mode 100644 index 0000000..8ac64e1 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumCollectionValidator.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.framework.common.validation; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.common.core.IntArrayValuable; + +import jakarta.validation.ConstraintValidator; +import jakarta.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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java similarity index 93% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java index 800e19b..acf62c7 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/InEnumValidator.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.framework.common.validation; import co.yixiang.yshop.framework.common.core.IntArrayValuable; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java index e84aa55..990802d 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Mobile.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.framework.common.validation; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.*; @Target({ diff --git a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java index 97eb01d..a4120e5 100644 --- a/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/MobileValidator.java @@ -3,8 +3,8 @@ package co.yixiang.yshop.framework.common.validation; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.util.validation.ValidationUtils; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; public class MobileValidator implements ConstraintValidator { diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Telephone.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Telephone.java new file mode 100644 index 0000000..b3a3330 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/Telephone.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.common.validation; + +import jakarta.validation.Constraint; +import jakarta.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/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/TelephoneValidator.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/TelephoneValidator.java new file mode 100644 index 0000000..6aae9e0 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/TelephoneValidator.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.framework.common.validation; + +import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.PhoneUtil; + +import jakarta.validation.ConstraintValidator; +import jakarta.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/yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/package-info.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/package-info.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/package-info.java rename to yshop-drink-boot3/yshop-framework/yshop-common/src/main/java/co/yixiang/yshop/framework/common/validation/package-info.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-common/src/test/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtilsTest.java b/yshop-drink-boot3/yshop-framework/yshop-common/src/test/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtilsTest.java new file mode 100644 index 0000000..38f9a6b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-common/src/test/java/co/yixiang/yshop/framework/common/util/collection/CollectionUtilsTest.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/pom.xml new file mode 100644 index 0000000..921c979 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/pom.xml @@ -0,0 +1,52 @@ + + + + yshop-framework + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-spring-boot-starter-biz-data-permission + jar + + ${project.artifactId} + 数据权限 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + true + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDataPermissionAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDataPermissionAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDataPermissionAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDataPermissionAutoConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDeptDataPermissionAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDeptDataPermissionAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDeptDataPermissionAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/config/YshopDeptDataPermissionAutoConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/annotation/DataPermission.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/annotation/DataPermission.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/annotation/DataPermission.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/annotation/DataPermission.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolder.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolder.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolder.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolder.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java similarity index 99% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java index f79927c..02a025a 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java @@ -5,7 +5,6 @@ import co.yixiang.yshop.framework.common.util.collection.SetUtils; import co.yixiang.yshop.framework.datapermission.core.rule.DataPermissionRule; import co.yixiang.yshop.framework.datapermission.core.rule.DataPermissionRuleFactory; import co.yixiang.yshop.framework.mybatis.core.util.MyBatisUtils; -import com.alibaba.ttl.TransmittableThreadLocal; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.PluginUtils; import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport; @@ -497,7 +496,8 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme Expression allExpression = null; for (DataPermissionRule rule : ContextHolder.getRules()) { // 判断表名是否匹配 - if (!rule.getTableNames().contains(table.getName())) { + String tableName = MyBatisUtils.getTableName(table); + if (!rule.getTableNames().contains(tableName)) { continue; } // 如果有匹配的规则,说明可重写。 @@ -506,8 +506,10 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme ContextHolder.setRewrite(true); // 单条规则的条件 - String tableName = MyBatisUtils.getTableName(table); Expression oneExpress = rule.getExpression(tableName, table.getAlias()); + if (oneExpress == null){ + continue; + } // 拼接到 allExpression 中 allExpression = allExpression == null ? oneExpress : new AndExpression(allExpression, oneExpress); diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRule.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRule.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRule.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRule.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactory.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactory.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactory.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactory.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java index f11e5f1..c412d91 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java @@ -7,7 +7,6 @@ import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; import co.yixiang.yshop.framework.common.util.json.JsonUtils; import co.yixiang.yshop.framework.datapermission.core.rule.DataPermissionRule; -import co.yixiang.yshop.framework.expression.OrExpressionX; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; import co.yixiang.yshop.framework.mybatis.core.util.MyBatisUtils; import co.yixiang.yshop.framework.security.core.LoginUser; @@ -17,10 +16,8 @@ import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespD import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import net.sf.jsqlparser.expression.Alias; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; -import net.sf.jsqlparser.expression.NullValue; +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; @@ -36,7 +33,7 @@ import java.util.Set; * 注意,使用 DeptDataPermissionRule 时,需要保证表中有 dept_id 部门编号的字段,可自定义。 * * 实际业务场景下,会存在一个经典的问题?当用户修改部门时,冗余的 dept_id 是否需要修改? - * 1. 一般情况下,dept_id 不进行修改,则会导致用户看到之前的数据。【yshop-server 采用该方案】 + * 1. 一般情况下,dept_id 不进行修改,则会导致用户看不到之前的数据。【yshop-server 采用该方案】 * 2. 部分情况下,希望该用户还是能看到之前的数据,则有两种方式解决:【需要你改造该 DeptDataPermissionRule 的实现代码】 * 1)编写洗数据的脚本,将 dept_id 修改成新部门的编号;【建议】 * 最终过滤条件是 WHERE dept_id = ? @@ -144,7 +141,7 @@ public class DeptDataPermissionRule implements DataPermissionRule { return deptExpression; } // 目前,如果有指定部门 + 可查看自己,采用 OR 条件。即,WHERE (dept_id IN ? OR user_id = ?) - return new OrExpressionX(deptExpression, userExpression); + return new Parenthesis(new OrExpression(deptExpression, userExpression)); } private Expression buildDeptExpression(String tableName, Alias tableAlias, Set deptIds) { diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/package-info.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/package-info.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/package-info.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/package-info.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtils.java new file mode 100644 index 0000000..1e53e66 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtils.java @@ -0,0 +1,63 @@ +package co.yixiang.yshop.framework.datapermission.core.util; + +import co.yixiang.yshop.framework.datapermission.core.annotation.DataPermission; +import co.yixiang.yshop.framework.datapermission.core.aop.DataPermissionContextHolder; +import lombok.SneakyThrows; + +import java.util.concurrent.Callable; + +/** + * 数据权限 Util + * + * @author yshop + */ +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(); + } + } + + /** + * 忽略数据权限,执行对应的逻辑 + * + * @param callable 逻辑 + * @return 执行结果 + */ + @SneakyThrows + public static T executeIgnore(Callable callable) { + DataPermission dataPermission = getDisableDataPermissionDisable(); + DataPermissionContextHolder.add(dataPermission); + try { + // 执行 callable + return callable.call(); + } finally { + DataPermissionContextHolder.remove(); + } + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolderTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolderTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolderTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/aop/DataPermissionContextHolderTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest2.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest2.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest2.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest2.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImplTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImplTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImplTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/DataPermissionRuleFactoryImplTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java similarity index 98% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java index 9bbe8e7..c12f88e 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java @@ -4,11 +4,11 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.util.collection.SetUtils; -import co.yixiang.yshop.module.system.api.permission.PermissionApi; -import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespDTO; import co.yixiang.yshop.framework.security.core.LoginUser; import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; +import co.yixiang.yshop.module.system.api.permission.PermissionApi; +import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespDTO; import net.sf.jsqlparser.expression.Alias; import net.sf.jsqlparser.expression.Expression; import org.junit.jupiter.api.BeforeEach; @@ -23,6 +23,7 @@ import static co.yixiang.yshop.framework.datapermission.core.rule.dept.DeptDataP import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomString; import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.when; @@ -73,6 +74,8 @@ class DeptDataPermissionRuleTest extends BaseMockitoUnitTest { LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L) .setUserType(UserTypeEnum.ADMIN.getValue())); securityFrameworkUtilsMock.when(SecurityFrameworkUtils::getLoginUser).thenReturn(loginUser); + // mock 方法(permissionApi 返回 null) + when(permissionApi.getDeptDataPermission(eq(loginUser.getId()))).thenReturn(null); // 调用 NullPointerException exception = assertThrows(NullPointerException.class, diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtilsTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtilsTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtilsTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-data-permission/src/test/java/co/yixiang/yshop/framework/datapermission/core/util/DataPermissionUtilsTest.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/pom.xml new file mode 100644 index 0000000..b1ddf92 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/pom.xml @@ -0,0 +1,54 @@ + + + + yshop-framework + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-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://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.lionsoul + ip2region + + + + org.projectlombok + lombok + + + + org.slf4j + slf4j-api + provided + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/Area.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/Area.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/Area.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/Area.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/enums/AreaTypeEnum.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/enums/AreaTypeEnum.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/enums/AreaTypeEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/enums/AreaTypeEnum.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtils.java new file mode 100644 index 0000000..8ef1a16 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtils.java @@ -0,0 +1,214 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.util.object.ObjectUtils; +import co.yixiang.yshop.framework.ip.core.Area; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.findFirst; + +/** + * 区域工具类 + * + * @author yshop + */ +@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 pathStr 区域路径,例如说:河南省/石家庄市/新华区 + * @return 区域 + */ + public static Area parseArea(String pathStr) { + String[] paths = pathStr.split("/"); + Area area = null; + for (String path : paths) { + if (area == null) { + area = findFirst(areas.values(), item -> item.getName().equals(path)); + } else { + area = findFirst(area.getChildren(), item -> item.getName().equals(path)); + } + } + return area; + } + + /** + * 获取所有节点的全路径名称如:河南省/石家庄市/新华区 + * + * @param areas 地区树 + * @return 所有节点的全路径名称 + */ + public static List getAreaNodePathList(List areas) { + List paths = new ArrayList<>(); + areas.forEach(area -> getAreaNodePathList(area, "", paths)); + return paths; + } + + /** + * 构建一棵树的所有节点的全路径名称,并将其存储为 "祖先/父级/子级" 的形式 + * + * @param node 父节点 + * @param path 全路径名称 + * @param paths 全路径名称列表,省份/城市/地区 + */ + private static void getAreaNodePathList(Area node, String path, List paths) { + if (node == null) { + return; + } + // 构建当前节点的路径 + String currentPath = path.isEmpty() ? node.getName() : path + "/" + node.getName(); + paths.add(currentPath); + // 递归遍历子节点 + for (Area child : node.getChildren()) { + getAreaNodePathList(child, currentPath, paths); + } + } + + /** + * 格式化区域 + * + * @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; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/IPUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/IPUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/IPUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/java/co/yixiang/yshop/framework/ip/core/utils/IPUtils.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv similarity index 98% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv index 27e753c..06954ba 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/area.csv @@ -490,7 +490,61 @@ id,name,type,parentId 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 +442001,石岐街道,4,442000 +442002,东区街道,4,442000 +442003,中山港街道,4,442000 +442004,西区街道,4,442000 +442005,南区街道,4,442000 +442006,五桂山街道,4,442000 +442007,民众街道,4,442000 +442008,南朗街道,4,442000 +442009,黄圃镇,4,442000 +442010,东凤镇,4,442000 +442011,古镇镇,4,442000 +442012,沙溪镇,4,442000 +442013,坦洲镇,4,442000 +442014,港口镇,4,442000 +442015,三角镇,4,442000 +442016,横栏镇,4,442000 +442017,南头镇,4,442000 +442018,阜沙镇,4,442000 +442019,三乡镇,4,442000 +442020,板芙镇,4,442000 +442021,大涌镇,4,442000 +442022,神湾镇,4,442000 +442023,小榄镇,4,442000 445100,潮州市,3,440000 445200,揭阳市,3,440000 445300,云浮市,3,440000 @@ -3605,4 +3659,4 @@ id,name,type,parentId 659008,可克达拉市,4,659000 659009,昆玉市,4,659000 659010,胡杨河市,4,659000 -659011,新星市,4,659000 +659011,新星市,4,659000 \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb new file mode 100644 index 0000000..58596a5 Binary files /dev/null and b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb differ diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtilsTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtilsTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtilsTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/AreaUtilsTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/IPUtilsTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/IPUtilsTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/IPUtilsTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-ip/src/test/java/co/yixiang/yshop/framework/ip/core/utils/IPUtilsTest.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/pom.xml new file mode 100644 index 0000000..2bacfe6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/pom.xml @@ -0,0 +1,83 @@ + + + + yshop-framework + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-spring-boot-starter-biz-tenant + jar + + ${project.artifactId} + 多租户 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + + + + + co.yixiang.boot + yshop-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 + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + com.google.guava + guava + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/TenantProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/TenantProperties.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/TenantProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/TenantProperties.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java similarity index 79% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java index 82145fe..92a7757 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/config/YshopTenantAutoConfiguration.java @@ -1,14 +1,14 @@ package co.yixiang.yshop.framework.tenant.config; -import cn.hutool.core.annotation.AnnotationUtil; import co.yixiang.yshop.framework.common.enums.WebFilterOrderEnum; import co.yixiang.yshop.framework.mybatis.core.util.MyBatisUtils; -import co.yixiang.yshop.framework.quartz.core.handler.JobHandler; +import co.yixiang.yshop.framework.redis.config.YshopCacheProperties; import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnoreAspect; import co.yixiang.yshop.framework.tenant.core.db.TenantDatabaseInterceptor; -import co.yixiang.yshop.framework.tenant.core.job.TenantJob; -import co.yixiang.yshop.framework.tenant.core.job.TenantJobHandlerDecorator; -import co.yixiang.yshop.framework.tenant.core.mq.TenantRedisMessageInterceptor; +import co.yixiang.yshop.framework.tenant.core.job.TenantJobAspect; +import co.yixiang.yshop.framework.tenant.core.mq.rabbitmq.TenantRabbitMQInitializer; +import co.yixiang.yshop.framework.tenant.core.mq.redis.TenantRedisMessageInterceptor; +import co.yixiang.yshop.framework.tenant.core.mq.rocketmq.TenantRocketMQInitializer; import co.yixiang.yshop.framework.tenant.core.redis.TenantRedisCacheManager; import co.yixiang.yshop.framework.tenant.core.security.TenantSecurityWebFilter; import co.yixiang.yshop.framework.tenant.core.service.TenantFrameworkService; @@ -19,14 +19,14 @@ import co.yixiang.yshop.framework.web.core.handler.GlobalExceptionHandler; import co.yixiang.yshop.module.system.api.tenant.TenantApi; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; 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; @@ -95,28 +95,23 @@ public class YshopTenantAutoConfiguration { 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 - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") - public BeanPostProcessor jobHandlerBeanPostProcessor(TenantFrameworkService tenantFrameworkService) { - return new BeanPostProcessor() { - - @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - if (!(bean instanceof JobHandler)) { - return bean; - } - // 有 TenantJob 注解的情况下,才会进行处理 - if (!AnnotationUtil.hasAnnotation(bean.getClass(), TenantJob.class)) { - return bean; - } - - // 使用 TenantJobHandlerDecorator 装饰 - return new TenantJobHandlerDecorator(tenantFrameworkService, (JobHandler) bean); - } - - }; + public TenantJobAspect tenantJobAspect(TenantFrameworkService tenantFrameworkService) { + return new TenantJobAspect(tenantFrameworkService); } // ========== Redis ========== @@ -124,10 +119,12 @@ public class YshopTenantAutoConfiguration { @Bean @Primary // 引入租户时,tenantRedisCacheManager 为主 Bean public RedisCacheManager tenantRedisCacheManager(RedisTemplate redisTemplate, - RedisCacheConfiguration redisCacheConfiguration) { + RedisCacheConfiguration redisCacheConfiguration, + YshopCacheProperties yshopCacheProperties) { // 创建 RedisCacheWriter 对象 RedisConnectionFactory connectionFactory = Objects.requireNonNull(redisTemplate.getConnectionFactory()); - RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory); + RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory, + BatchStrategies.scan(yshopCacheProperties.getRedisScanBatchSize())); // 创建 TenantRedisCacheManager 对象 return new TenantRedisCacheManager(cacheWriter, redisCacheConfiguration); } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnore.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnore.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnore.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnore.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnoreAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnoreAspect.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnoreAspect.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/aop/TenantIgnoreAspect.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java similarity index 98% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java index 2d7db2c..5f09c0b 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/context/TenantContextHolder.java @@ -21,7 +21,7 @@ public class TenantContextHolder { private static final ThreadLocal IGNORE = new TransmittableThreadLocal<>(); /** - * 获得租户编号。 + * 获得租户编号 * * @return 租户编号 */ diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantBaseDO.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantBaseDO.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantBaseDO.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantBaseDO.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantDatabaseInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantDatabaseInterceptor.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantDatabaseInterceptor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/db/TenantDatabaseInterceptor.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java index dd6f3f6..f199fd5 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJob.java @@ -8,7 +8,7 @@ import java.lang.annotation.Target; /** * 多租户 Job 注解 */ -@Target({ElementType.TYPE}) +@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface TenantJob { } diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJobAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJobAspect.java new file mode 100644 index 0000000..0aec570 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/job/TenantJobAspect.java @@ -0,0 +1,56 @@ +package co.yixiang.yshop.framework.tenant.core.job; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.tenant.core.service.TenantFrameworkService; +import co.yixiang.yshop.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 yshop + */ +@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 yshop:先通过 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java new file mode 100644 index 0000000..44d263c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java new file mode 100644 index 0000000..16ecdcf --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.framework.tenant.core.mq.kafka; + +import cn.hutool.core.util.ReflectUtil; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * Kafka 消息队列的多租户 {@link ProducerInterceptor} 实现类 + * + * 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java new file mode 100644 index 0000000..7b356b2 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java new file mode 100644 index 0000000..bf5d2be --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.framework.tenant.core.mq.rabbitmq; + +import co.yixiang.yshop.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 co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RabbitMQ 消息队列的多租户 {@link ProducerInterceptor} 实现类 + * + * 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author yshop + */ +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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/TenantRedisMessageInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/TenantRedisMessageInterceptor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java index 58831b6..a720d47 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/TenantRedisMessageInterceptor.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java @@ -1,8 +1,8 @@ -package co.yixiang.yshop.framework.tenant.core.mq; +package co.yixiang.yshop.framework.tenant.core.mq.redis; import cn.hutool.core.util.StrUtil; -import co.yixiang.yshop.framework.mq.core.interceptor.RedisMessageInterceptor; -import co.yixiang.yshop.framework.mq.core.message.AbstractRedisMessage; +import co.yixiang.yshop.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import co.yixiang.yshop.framework.mq.redis.core.message.AbstractRedisMessage; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import static co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java new file mode 100644 index 0000000..340c64d --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.framework.tenant.core.mq.rocketmq; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RocketMQ 消息队列的多租户 {@link ConsumeMessageHook} 实现类 + * + * Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java new file mode 100644 index 0000000..2574eba --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java @@ -0,0 +1,53 @@ +package co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java new file mode 100644 index 0000000..76d87e7 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java @@ -0,0 +1,36 @@ +package co.yixiang.yshop.framework.tenant.core.mq.rocketmq; + +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; +import org.apache.rocketmq.client.hook.SendMessageContext; +import org.apache.rocketmq.client.hook.SendMessageHook; + +import static co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RocketMQ 消息队列的多租户 {@link SendMessageHook} 实现类 + * + * Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * + * @author yshop + */ +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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java similarity index 89% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java index 3b8ddf3..1b0190d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/redis/TenantRedisCacheManager.java @@ -1,5 +1,6 @@ package co.yixiang.yshop.framework.tenant.core.redis; +import co.yixiang.yshop.framework.redis.core.TimeoutRedisCacheManager; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.Cache; @@ -15,7 +16,7 @@ import org.springframework.data.redis.cache.RedisCacheWriter; * @author airhead */ @Slf4j -public class TenantRedisCacheManager extends RedisCacheManager { +public class TenantRedisCacheManager extends TimeoutRedisCacheManager { public TenantRedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) { diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java index 6ef9507..1884fc2 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/security/TenantSecurityWebFilter.java @@ -15,10 +15,10 @@ import co.yixiang.yshop.framework.web.core.handler.GlobalExceptionHandler; 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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Objects; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkService.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkService.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkService.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkService.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkServiceImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkServiceImpl.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkServiceImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/service/TenantFrameworkServiceImpl.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java similarity index 97% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java index e60f0aa..a71142d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/util/TenantUtils.java @@ -82,9 +82,9 @@ public class TenantUtils { * 将多租户编号,添加到 header 中 * * @param headers HTTP 请求 headers + * @param tenantId 租户编号 */ - public static void addTenantHeader(Map headers) { - Long tenantId = TenantContextHolder.getTenantId(); + public static void addTenantHeader(Map headers, Long tenantId) { if (tenantId != null) { headers.put(HEADER_TENANT_ID, tenantId.toString()); } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java index fedbc95..634456d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/co/yixiang/yshop/framework/tenant/core/web/TenantContextWebFilter.java @@ -4,10 +4,10 @@ import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java new file mode 100644 index 0000000..6f83fcf --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java @@ -0,0 +1,275 @@ +/* + * Copyright 2002-2023 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 java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Type; +import java.util.Arrays; + +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; +import co.yixiang.yshop.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 static co.yixiang.yshop.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 yshop:持续跟进,看看有没新的拓展点 + * + * @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 org.springframework.core.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.getCause() instanceof NullPointerException) ? + "Illegal argument": ex.getMessage(); + throw new IllegalStateException(formatInvokeError(text, args), ex); + } + catch (InvocationTargetException ex) { + // Unwrap for HandlerExceptionResolvers ... + Throwable targetException = ex.getTargetException(); + if (targetException instanceof RuntimeException runtimeException) { + throw runtimeException; + } + else if (targetException instanceof Error error) { + throw error; + } + else if (targetException instanceof Exception exception) { + throw exception; + } + else { + throw new IllegalStateException(formatInvokeError("Invocation failure", args), targetException); + } + } + } + + MethodParameter getAsyncReturnValueType(@Nullable Object returnValue) { + return new AsyncResultMethodParameter(returnValue); + } + + + private class AsyncResultMethodParameter extends AnnotatedMethodParameter { + + @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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..70df443 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.env.EnvironmentPostProcessor=\ + co.yixiang.yshop.framework.tenant.core.mq.kafka.TenantKafkaEnvironmentPostProcessor diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/pom.xml new file mode 100644 index 0000000..dd206dd --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/pom.xml @@ -0,0 +1,75 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-excel + jar + + ${project.artifactId} + Excel 拓展 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter + + + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + + + org.springframework + spring-web + provided + + + + jakarta.servlet + jakarta.servlet-api + provided + + + + + com.alibaba + easyexcel + + + + com.google.guava + guava + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-ip + true + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java index 4fadad4..f45442d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/config/YshopDictAutoConfiguration.java @@ -1,6 +1,6 @@ package co.yixiang.yshop.framework.dict.config; -import co.yixiang.yshop.framework.dict.core.util.DictFrameworkUtils; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; import co.yixiang.yshop.module.system.api.dict.DictDataApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.context.annotation.Bean; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/core/DictFrameworkUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/core/DictFrameworkUtils.java new file mode 100644 index 0000000..220d96a --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/dict/core/DictFrameworkUtils.java @@ -0,0 +1,96 @@ +package co.yixiang.yshop.framework.dict.core; + +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.cache.CacheUtils; +import co.yixiang.yshop.module.system.api.dict.DictDataApi; +import co.yixiang.yshop.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; +import java.util.List; + +/** + * 字典工具类 + * + * @author yshop + */ +@Slf4j +public class DictFrameworkUtils { + + private static DictDataApi dictDataApi; + + private static final DictDataRespDTO DICT_DATA_NULL = new DictDataRespDTO(); + + // TODO @puhui999:GET_DICT_DATA_CACHE、GET_DICT_DATA_LIST_CACHE、PARSE_DICT_DATA_CACHE 这 3 个缓存是有点重叠,可以思考下,有没可能减少 1 个。微信讨论好私聊,再具体改哈 + /** + * 针对 {@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 #getDictDataLabelList(String)} 的缓存 + */ + private static final LoadingCache> GET_DICT_DATA_LIST_CACHE = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader>() { + + @Override + public List load(String dictType) { + return dictDataApi.getDictDataLabelList(dictType); + } + + }); + + /** + * 针对 {@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 List getDictDataLabelList(String dictType) { + return GET_DICT_DATA_LIST_CACHE.get(dictType); + } + + @SneakyThrows + public static String parseDictDataValue(String dictType, String label) { + return PARSE_DICT_DATA_CACHE.get(new KeyValue<>(dictType, label)).getValue(); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/DictFormat.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/DictFormat.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/DictFormat.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/DictFormat.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/ExcelColumnSelect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/ExcelColumnSelect.java new file mode 100644 index 0000000..069488e --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/annotations/ExcelColumnSelect.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.excel.core.annotations; + +import java.lang.annotation.*; + +/** + * 给 Excel 列添加下拉选择数据 + * + * 其中 {@link #dictType()} 和 {@link #functionName()} 二选一 + * + * @author HUIHUI + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface ExcelColumnSelect { + + /** + * @return 字典类型 + */ + String dictType() default ""; + + /** + * @return 获取下拉数据源的方法名称 + */ + String functionName() default ""; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/AreaConvert.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/AreaConvert.java new file mode 100644 index 0000000..472b8ec --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/AreaConvert.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.framework.excel.core.convert; + +import cn.hutool.core.convert.Convert; +import co.yixiang.yshop.framework.ip.core.Area; +import co.yixiang.yshop.framework.ip.core.utils.AreaUtils; +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.property.ExcelContentProperty; +import lombok.extern.slf4j.Slf4j; + +/** + * Excel 数据地区转换器 + * + * @author HUIHUI + */ +@Slf4j +public class AreaConvert 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 label = readCellData.getStringValue(); + Area area = AreaUtils.parseArea(label); + if (area == null) { + log.error("[convertToJavaData][label({}) 解析不掉]", label); + return null; + } + // 将 value 转换成对应的属性 + Class fieldClazz = contentProperty.getField().getType(); + return Convert.convert(fieldClazz, area.getId()); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java similarity index 97% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java index de8de97..7231cdf 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/DictConvert.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.framework.excel.core.convert; import cn.hutool.core.convert.Convert; -import co.yixiang.yshop.framework.dict.core.util.DictFrameworkUtils; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/JsonConvert.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/JsonConvert.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/JsonConvert.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/JsonConvert.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/MoneyConvert.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/MoneyConvert.java new file mode 100644 index 0000000..1ee3e56 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/convert/MoneyConvert.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/function/ExcelColumnSelectFunction.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/function/ExcelColumnSelectFunction.java new file mode 100644 index 0000000..3bd7bff --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/function/ExcelColumnSelectFunction.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.excel.core.function; + +import java.util.List; + +/** + * Excel 列下拉数据源获取接口 + * + * 为什么不直接解析字典还搞个接口?考虑到有的下拉数据不是从字典中获取的所有需要做一个兼容 + + * @author HUIHUI + */ +public interface ExcelColumnSelectFunction { + + /** + * 获得方法名称 + * + * @return 方法名称 + */ + String getName(); + + /** + * 获得列下拉数据源 + * + * @return 下拉数据源 + */ + List getOptions(); + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/handler/SelectSheetWriteHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/handler/SelectSheetWriteHandler.java new file mode 100644 index 0000000..318c389 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/handler/SelectSheetWriteHandler.java @@ -0,0 +1,165 @@ +package co.yixiang.yshop.framework.excel.core.handler; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.hutool.poi.excel.ExcelUtil; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; +import co.yixiang.yshop.framework.excel.core.annotations.ExcelColumnSelect; +import co.yixiang.yshop.framework.excel.core.function.ExcelColumnSelectFunction; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.write.handler.SheetWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFDataValidation; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddressList; + +import java.lang.reflect.Field; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; + +/** + * 基于固定 sheet 实现下拉框 + * + * @author HUIHUI + */ +@Slf4j +public class SelectSheetWriteHandler implements SheetWriteHandler { + + /** + * 数据起始行从 0 开始 + * + * 约定:本项目第一行有标题所以从 1 开始如果您的 Excel 有多行标题请自行更改 + */ + public static final int FIRST_ROW = 1; + /** + * 下拉列需要创建下拉框的行数,默认两千行如需更多请自行调整 + */ + public static final int LAST_ROW = 2000; + + private static final String DICT_SHEET_NAME = "字典sheet"; + + /** + * key: 列 value: 下拉数据源 + */ + private final Map> selectMap = new HashMap<>(); + + public SelectSheetWriteHandler(Class head) { + // 加载下拉数据获取接口 + Map beansMap = SpringUtil.getBeanFactory().getBeansOfType(ExcelColumnSelectFunction.class); + if (MapUtil.isEmpty(beansMap)) { + return; + } + + // 解析下拉数据 + int colIndex = 0; + for (Field field : head.getDeclaredFields()) { + if (field.isAnnotationPresent(ExcelColumnSelect.class)) { + ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class); + if (excelProperty != null && excelProperty.index() != -1) { + colIndex = excelProperty.index(); + } + getSelectDataList(colIndex, field); + } + colIndex++; + } + } + + /** + * 获得下拉数据,并添加到 {@link #selectMap} 中 + * + * @param colIndex 列索引 + * @param field 字段 + */ + private void getSelectDataList(int colIndex, Field field) { + ExcelColumnSelect columnSelect = field.getAnnotation(ExcelColumnSelect.class); + String dictType = columnSelect.dictType(); + String functionName = columnSelect.functionName(); + Assert.isTrue(ObjectUtil.isNotEmpty(dictType) || ObjectUtil.isNotEmpty(functionName), + "Field({}) 的 @ExcelColumnSelect 注解,dictType 和 functionName 不能同时为空", field.getName()); + + // 情况一:使用 dictType 获得下拉数据 + if (StrUtil.isNotEmpty(dictType)) { // 情况一: 字典数据 (默认) + selectMap.put(colIndex, DictFrameworkUtils.getDictDataLabelList(dictType)); + return; + } + + // 情况二:使用 functionName 获得下拉数据 + Map functionMap = SpringUtil.getApplicationContext().getBeansOfType(ExcelColumnSelectFunction.class); + ExcelColumnSelectFunction function = CollUtil.findOne(functionMap.values(), item -> item.getName().equals(functionName)); + Assert.notNull(function, "未找到对应的 function({})", functionName); + selectMap.put(colIndex, function.getOptions()); + } + + @Override + public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + if (CollUtil.isEmpty(selectMap)) { + return; + } + + // 1. 获取相应操作对象 + DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper(); // 需要设置下拉框的 sheet 页的数据验证助手 + Workbook workbook = writeWorkbookHolder.getWorkbook(); // 获得工作簿 + List>> keyValues = convertList(selectMap.entrySet(), entry -> new KeyValue<>(entry.getKey(), entry.getValue())); + keyValues.sort(Comparator.comparing(item -> item.getValue().size())); // 升序不然创建下拉会报错 + + // 2. 创建数据字典的 sheet 页 + Sheet dictSheet = workbook.createSheet(DICT_SHEET_NAME); + for (KeyValue> keyValue : keyValues) { + int rowLength = keyValue.getValue().size(); + // 2.1 设置字典 sheet 页的值,每一列一个字典项 + for (int i = 0; i < rowLength; i++) { + Row row = dictSheet.getRow(i); + if (row == null) { + row = dictSheet.createRow(i); + } + row.createCell(keyValue.getKey()).setCellValue(keyValue.getValue().get(i)); + } + // 2.2 设置单元格下拉选择 + setColumnSelect(writeSheetHolder, workbook, helper, keyValue); + } + } + + /** + * 设置单元格下拉选择 + */ + private static void setColumnSelect(WriteSheetHolder writeSheetHolder, Workbook workbook, DataValidationHelper helper, + KeyValue> keyValue) { + // 1.1 创建可被其他单元格引用的名称 + Name name = workbook.createName(); + String excelColumn = ExcelUtil.indexToColName(keyValue.getKey()); + // 1.2 下拉框数据来源 eg:字典sheet!$B1:$B2 + String refers = DICT_SHEET_NAME + "!$" + excelColumn + "$1:$" + excelColumn + "$" + keyValue.getValue().size(); + name.setNameName("dict" + keyValue.getKey()); // 设置名称的名字 + name.setRefersToFormula(refers); // 设置公式 + + // 2.1 设置约束 + DataValidationConstraint constraint = helper.createFormulaListConstraint("dict" + keyValue.getKey()); // 设置引用约束 + // 设置下拉单元格的首行、末行、首列、末列 + CellRangeAddressList rangeAddressList = new CellRangeAddressList(FIRST_ROW, LAST_ROW, + keyValue.getKey(), keyValue.getKey()); + DataValidation validation = helper.createValidation(constraint, rangeAddressList); + if (validation instanceof HSSFDataValidation) { + validation.setSuppressDropDownArrow(false); + } else { + validation.setSuppressDropDownArrow(true); + validation.setShowErrorBox(true); + } + // 2.2 阻止输入非下拉框的值 + validation.setErrorStyle(DataValidation.ErrorStyle.STOP); + validation.createErrorBox("提示", "此值不存在于下拉选择中!"); + // 2.3 添加下拉框约束 + writeSheetHolder.getSheet().addValidationData(validation); + } + +} \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/util/ExcelUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/util/ExcelUtils.java new file mode 100644 index 0000000..319f3b7 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/java/co/yixiang/yshop/framework/excel/core/util/ExcelUtils.java @@ -0,0 +1,53 @@ +package co.yixiang.yshop.framework.excel.core.util; + +import co.yixiang.yshop.framework.excel.core.handler.SelectSheetWriteHandler; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.converters.longconverter.LongStringConverter; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.List; + +/** + * Excel 工具类 + * + * @author yshop + */ +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 宽度 + .registerWriteHandler(new SelectSheetWriteHandler(head)) // 基于固定 sheet 实现下拉框 + .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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java index 113814d..012bab9 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-dict/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-excel/src/test/java/co/yixiang/yshop/framework/dict/core/util/DictFrameworkUtilsTest.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.framework.dict.core.util; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; import co.yixiang.yshop.module.system.api.dict.DictDataApi; import co.yixiang.yshop.module.system.api.dict.dto.DictDataRespDTO; @@ -31,6 +32,7 @@ public class DictFrameworkUtilsTest extends BaseMockitoUnitTest { DictDataRespDTO dataRespDTO = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); // mock 方法 when(dictDataApi.getDictData(dataRespDTO.getDictType(), dataRespDTO.getValue())).thenReturn(dataRespDTO); + // 断言返回值 assertEquals(dataRespDTO.getLabel(), DictFrameworkUtils.getDictDataLabel(dataRespDTO.getDictType(), dataRespDTO.getValue())); } @@ -41,6 +43,7 @@ public class DictFrameworkUtilsTest extends BaseMockitoUnitTest { DictDataRespDTO resp = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); // mock 方法 when(dictDataApi.parseDictData(resp.getDictType(), resp.getLabel())).thenReturn(resp); + // 断言返回值 assertEquals(resp.getValue(), DictFrameworkUtils.parseDictDataValue(resp.getDictType(), resp.getLabel())); } diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/pom.xml new file mode 100644 index 0000000..fdeca3a --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/pom.xml @@ -0,0 +1,41 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-job + jar + + ${project.artifactId} + 任务拓展 + 1. 定时任务,基于 Quartz 拓展 + 2. 异步任务,基于 Spring Async 拓展 + + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-quartz + + + + + jakarta.validation + jakarta.validation-api + + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopAsyncAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopAsyncAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopAsyncAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopAsyncAutoConfiguration.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopQuartzAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopQuartzAutoConfiguration.java new file mode 100644 index 0000000..6d4fee3 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/config/YshopQuartzAutoConfiguration.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.framework.quartz.config; + +import co.yixiang.yshop.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 YshopQuartzAutoConfiguration { + + @Bean + public SchedulerManager schedulerManager(Optional scheduler) { + if (!scheduler.isPresent()) { + log.info("[定时任务 - 已禁用]"); + return new SchedulerManager(null); + } + return new SchedulerManager(scheduler.get()); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/enums/JobDataKeyEnum.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/enums/JobDataKeyEnum.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/enums/JobDataKeyEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/enums/JobDataKeyEnum.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java similarity index 98% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java index 5a053a4..55e09ca 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/handler/JobHandlerInvoker.java @@ -13,9 +13,8 @@ import org.quartz.PersistJobDataAfterExecution; import org.springframework.context.ApplicationContext; import org.springframework.scheduling.quartz.QuartzJobBean; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; import static cn.hutool.core.exceptions.ExceptionUtil.getRootCauseMessage; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java index 9f28585..bb20420 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/scheduler/SchedulerManager.java @@ -4,6 +4,9 @@ import co.yixiang.yshop.framework.quartz.core.enums.JobDataKeyEnum; import co.yixiang.yshop.framework.quartz.core.handler.JobHandlerInvoker; import org.quartz.*; +import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.NOT_IMPLEMENTED; +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception0; + /** * {@link org.quartz.Scheduler} 的管理器,负责创建任务 * @@ -37,6 +40,7 @@ public class SchedulerManager { 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) @@ -44,7 +48,7 @@ public class SchedulerManager { .withIdentity(jobHandlerName).build(); // 创建 Trigger 对象 Trigger trigger = this.buildTrigger(jobHandlerName, jobHandlerParam, cronExpression, retryCount, retryInterval); - // 新增调度 + // 新增 Job 调度 scheduler.scheduleJob(jobDetail, trigger); } @@ -61,6 +65,7 @@ public class SchedulerManager { 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); // 修改调度 @@ -74,6 +79,11 @@ public class SchedulerManager { * @throws SchedulerException 删除异常 */ public void deleteJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); + // 暂停 Trigger 对象 + scheduler.pauseTrigger(new TriggerKey(jobHandlerName)); + // 取消并删除 Job 调度 + scheduler.unscheduleJob(new TriggerKey(jobHandlerName)); scheduler.deleteJob(new JobKey(jobHandlerName)); } @@ -84,6 +94,7 @@ public class SchedulerManager { * @throws SchedulerException 暂停异常 */ public void pauseJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); scheduler.pauseJob(new JobKey(jobHandlerName)); } @@ -94,6 +105,7 @@ public class SchedulerManager { * @throws SchedulerException 启动异常 */ public void resumeJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); scheduler.resumeJob(new JobKey(jobHandlerName)); scheduler.resumeTrigger(new TriggerKey(jobHandlerName)); } @@ -108,11 +120,12 @@ public class SchedulerManager { */ 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); } @@ -127,4 +140,11 @@ public class SchedulerManager { .build(); } + private void validateScheduler() { + if (scheduler == null) { + throw exception0(NOT_IMPLEMENTED.getCode(), + "[定时任务 - 已禁用]"); + } + } + } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java similarity index 94% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java index 04cb866..137d5b5 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/service/JobLogFrameworkService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.framework.quartz.core.service; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; /** @@ -40,5 +40,4 @@ public interface JobLogFrameworkService { @NotNull(message = "结束时间不能为空") LocalDateTime endTime, @NotNull(message = "运行时长不能为空") Integer duration, boolean success, String result); - } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/util/CronUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/util/CronUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/util/CronUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/java/co/yixiang/yshop/framework/quartz/core/util/CronUtils.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/pom.xml new file mode 100644 index 0000000..63a8f4c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/pom.xml @@ -0,0 +1,73 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-monitor + jar + + ${project.artifactId} + 服务监控,提供链路追踪、日志服务、指标收集等等功能 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-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/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/TracerProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/TracerProperties.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/TracerProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/TracerProperties.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopMetricsAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopMetricsAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopMetricsAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopMetricsAutoConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopTracerAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopTracerAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopTracerAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/config/YshopTracerAutoConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/annotation/BizTrace.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/annotation/BizTrace.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/annotation/BizTrace.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/annotation/BizTrace.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/aop/BizTraceAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/aop/BizTraceAspect.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/aop/BizTraceAspect.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/aop/BizTraceAspect.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java similarity index 82% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java index c590786..5246565 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/filter/TraceFilter.java @@ -3,10 +3,10 @@ package co.yixiang.yshop.framework.tracer.core.filter; import co.yixiang.yshop.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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/util/TracerFrameworkUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/util/TracerFrameworkUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/util/TracerFrameworkUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/java/co/yixiang/yshop/framework/tracer/core/util/TracerFrameworkUtils.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/pom.xml new file mode 100644 index 0000000..e81cde4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/pom.xml @@ -0,0 +1,43 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-mq + jar + + ${project.artifactId} + 消息队列,支持 Redis、RocketMQ、RabbitMQ、Kafka 四种 + https://gitee.com/guchengwuyue/yshop-drink + + + + + co.yixiang.boot + yshop-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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/rabbitmq/config/YshopRabbitMQAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/rabbitmq/config/YshopRabbitMQAutoConfiguration.java new file mode 100644 index 0000000..2ab244c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/rabbitmq/config/YshopRabbitMQAutoConfiguration.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.mq.rabbitmq.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; + +/** + * RabbitMQ 消息队列配置类 + * + * @author yshop + */ +@AutoConfiguration +@Slf4j +@ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate") +public class YshopRabbitMQAutoConfiguration { + + /** + * Jackson2JsonMessageConverter Bean:使用 jackson 序列化消息 + */ + @Bean + public MessageConverter createMessageConverter() { + return new Jackson2JsonMessageConverter(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQConsumerAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQConsumerAutoConfiguration.java new file mode 100644 index 0000000..8d4541f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQConsumerAutoConfiguration.java @@ -0,0 +1,151 @@ +package co.yixiang.yshop.framework.mq.redis.config; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.system.SystemUtil; +import co.yixiang.yshop.framework.common.enums.DocumentEnum; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.job.RedisPendingMessageResendJob; +import co.yixiang.yshop.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener; +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; +import co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration; +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 yshop + */ +@Slf4j +@EnableScheduling // 启用定时任务,用于 RedisPendingMessageResendJob 重发消息 +@AutoConfiguration(after = YshopRedisAutoConfiguration.class) +public class YshopRedisMQConsumerAutoConfiguration { + + /** + * 创建 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQProducerAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQProducerAutoConfiguration.java new file mode 100644 index 0000000..d40f889 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/config/YshopRedisMQProducerAutoConfiguration.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.framework.mq.redis.config; + +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration; +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 yshop + */ +@Slf4j +@AutoConfiguration(after = YshopRedisAutoConfiguration.class) +public class YshopRedisMQProducerAutoConfiguration { + + @Bean + public RedisMQTemplate redisMQTemplate(StringRedisTemplate redisTemplate, + List interceptors) { + RedisMQTemplate redisMQTemplate = new RedisMQTemplate(redisTemplate); + // 添加拦截器 + interceptors.forEach(redisMQTemplate::addInterceptor); + return redisMQTemplate; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/RedisMQTemplate.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/RedisMQTemplate.java similarity index 80% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/RedisMQTemplate.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/RedisMQTemplate.java index 1655fe2..73c616c 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/RedisMQTemplate.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/RedisMQTemplate.java @@ -1,10 +1,10 @@ -package co.yixiang.yshop.framework.mq.core; +package co.yixiang.yshop.framework.mq.redis.core; import co.yixiang.yshop.framework.common.util.json.JsonUtils; -import co.yixiang.yshop.framework.mq.core.interceptor.RedisMessageInterceptor; -import co.yixiang.yshop.framework.mq.core.message.AbstractRedisMessage; -import co.yixiang.yshop.framework.mq.core.pubsub.AbstractChannelMessage; -import co.yixiang.yshop.framework.mq.core.stream.AbstractStreamMessage; +import co.yixiang.yshop.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import co.yixiang.yshop.framework.mq.redis.core.message.AbstractRedisMessage; +import co.yixiang.yshop.framework.mq.redis.core.pubsub.AbstractRedisChannelMessage; +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessage; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.data.redis.connection.stream.RecordId; @@ -35,7 +35,7 @@ public class RedisMQTemplate { * * @param message 消息 */ - public void send(T message) { + public void send(T message) { try { sendMessageBefore(message); // 发送消息 @@ -51,7 +51,7 @@ public class RedisMQTemplate { * @param message 消息 * @return 消息记录的编号对象 */ - public RecordId send(T message) { + public RecordId send(T message) { try { sendMessageBefore(message); // 发送消息 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/interceptor/RedisMessageInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java similarity index 79% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/interceptor/RedisMessageInterceptor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java index 76aeb55..8ab1c6c 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/interceptor/RedisMessageInterceptor.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java @@ -1,6 +1,6 @@ -package co.yixiang.yshop.framework.mq.core.interceptor; +package co.yixiang.yshop.framework.mq.redis.core.interceptor; -import co.yixiang.yshop.framework.mq.core.message.AbstractRedisMessage; +import co.yixiang.yshop.framework.mq.redis.core.message.AbstractRedisMessage; /** * {@link AbstractRedisMessage} 消息拦截器 diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/job/RedisPendingMessageResendJob.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/job/RedisPendingMessageResendJob.java new file mode 100644 index 0000000..1721fb2 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/job/RedisPendingMessageResendJob.java @@ -0,0 +1,99 @@ +package co.yixiang.yshop.framework.mq.redis.core.job; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.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(); + } + } + } + + /** + * 执行清理逻辑 + * + */ + 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/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/message/AbstractRedisMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/message/AbstractRedisMessage.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/message/AbstractRedisMessage.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/message/AbstractRedisMessage.java index 671510e..154149d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/core/message/AbstractRedisMessage.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/message/AbstractRedisMessage.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.mq.core.message; +package co.yixiang.yshop.framework.mq.redis.core.message; import lombok.Data; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java new file mode 100644 index 0000000..3ac77d1 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.framework.mq.redis.core.pubsub; + +import co.yixiang.yshop.framework.mq.redis.core.message.AbstractRedisMessage; +import com.fasterxml.jackson.annotation.JsonIgnore; + +/** + * Redis Channel Message 抽象类 + * + * @author yshop + */ +public abstract class AbstractRedisChannelMessage extends AbstractRedisMessage { + + /** + * 获得 Redis Channel,默认使用类名 + * + * @return Channel + */ + @JsonIgnore // 避免序列化。原因是,Redis 发布 Channel 消息的时候,已经会指定。 + public String getChannel() { + return getClass().getSimpleName(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java new file mode 100644 index 0000000..864dce3 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java @@ -0,0 +1,103 @@ +package co.yixiang.yshop.framework.mq.redis.core.pubsub; + +import cn.hutool.core.util.TypeUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java new file mode 100644 index 0000000..1f9175e --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.framework.mq.redis.core.stream; + +import co.yixiang.yshop.framework.mq.redis.core.message.AbstractRedisMessage; +import com.fasterxml.jackson.annotation.JsonIgnore; + +/** + * Redis Stream Message 抽象类 + * + * @author yshop + */ +public abstract class AbstractRedisStreamMessage extends AbstractRedisMessage { + + /** + * 获得 Redis Stream Key,默认使用类名 + * + * @return Channel + */ + @JsonIgnore // 避免序列化 + public String getStreamKey() { + return getClass().getSimpleName(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java new file mode 100644 index 0000000..9327ee0 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/java/co/yixiang/yshop/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java @@ -0,0 +1,113 @@ +package co.yixiang.yshop.framework.mq.redis.core.stream; + +import cn.hutool.core.util.TypeUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import co.yixiang.yshop.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 yshop + */ +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 yshop:需要额外考虑以下几个点: + // 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..90f4c6e --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +co.yixiang.yshop.framework.mq.redis.config.YshopRedisMQProducerAutoConfiguration +co.yixiang.yshop.framework.mq.redis.config.YshopRedisMQConsumerAutoConfiguration +co.yixiang.yshop.framework.mq.rabbitmq.config.YshopRabbitMQAutoConfiguration \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/pom.xml new file mode 100644 index 0000000..1a4324c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/pom.xml @@ -0,0 +1,91 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-mybatis + jar + + ${project.artifactId} + 数据库连接池、多数据源、事务、MyBatis 拓展 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + co.yixiang.boot + yshop-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-3-starter + + + com.baomidou + mybatis-plus-spring-boot3-starter + + + com.baomidou + dynamic-datasource-spring-boot3-starter + + + org.springframework.boot + spring-boot-starter-undertow + + + + + + com.github.yulichang + mybatis-plus-join-boot-starter + + + + com.fhs-opensource + easy-trans-spring-boot-starter + + + com.fhs-opensource + easy-trans-mybatis-plus-extend + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java similarity index 89% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java index 66258cf..7b9d19b 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/config/YshopDataSourceAutoConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.framework.datasource.config; import co.yixiang.yshop.framework.datasource.core.filter.DruidAdRemoveFilter; -import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; +import com.alibaba.druid.spring.boot3.autoconfigure.properties.DruidStatProperties; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -23,7 +23,7 @@ public class YshopDataSourceAutoConfiguration { * 创建 DruidAdRemoveFilter 过滤器,过滤 common.js 的广告 */ @Bean - @ConditionalOnProperty(name = "spring.datasource.druid.web-stat-filter.enabled", havingValue = "true") + @ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true") public FilterRegistrationBean druidAdRemoveFilterFilter(DruidStatProperties properties) { // 获取 druid web 监控页面的参数 DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/enums/DataSourceEnum.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/enums/DataSourceEnum.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/enums/DataSourceEnum.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/enums/DataSourceEnum.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java index b013faa..5697a5e 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/datasource/core/filter/DruidAdRemoveFilter.java @@ -3,10 +3,10 @@ package co.yixiang.yshop.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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java similarity index 86% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java index 344261d..6f93b17 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/config/YshopMybatisAutoConfiguration.java @@ -3,12 +3,10 @@ package co.yixiang.yshop.framework.mybatis.config; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.mybatis.core.handler.DefaultDBFieldHandler; import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.KingbaseKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.PostgreKeyGenerator; +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; @@ -23,7 +21,7 @@ import org.springframework.core.env.ConfigurableEnvironment; * * @author yshop */ -@AutoConfiguration +@AutoConfiguration(before = MybatisPlusAutoConfiguration.class) // 目的:先于 MyBatis Plus 自动配置,避免 @MapperScan 可能扫描不到 Mapper 打印 warn 日志 @MapperScan(value = "${yshop.info.base-package}", annotationClass = Mapper.class, lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试 public class YshopMybatisAutoConfiguration { @@ -55,6 +53,8 @@ public class YshopMybatisAutoConfiguration { return new H2KeyGenerator(); case KINGBASE_ES: return new KingbaseKeyGenerator(); + case DM: + return new DmKeyGenerator(); } } // 找不到合适的 IKeyGenerator 实现类 diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/dataobject/BaseDO.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/dataobject/BaseDO.java new file mode 100644 index 0000000..a3bc962 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/dataobject/BaseDO.java @@ -0,0 +1,56 @@ +package co.yixiang.yshop.framework.mybatis.core.dataobject; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fhs.core.trans.vo.TransPojo; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 基础实体对象 + * + * 为什么实现 {@link TransPojo} 接口? + * 因为使用 Easy-Trans TransType.SIMPLE 模式,集成 MyBatis Plus 查询 + * + * @author yshop + */ +@Data +@JsonIgnoreProperties(value = "transMap") // 由于 Easy-Trans 会添加 transMap 属性,避免 Jackson 在 Spring Cache 反序列化报错 +public abstract class BaseDO implements Serializable, TransPojo { + + /** + * 创建时间 + */ + @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/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/enums/SqlConstants.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/enums/SqlConstants.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/enums/SqlConstants.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/enums/SqlConstants.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/handler/DefaultDBFieldHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/handler/DefaultDBFieldHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/handler/DefaultDBFieldHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/handler/DefaultDBFieldHandler.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/mapper/BaseMapperX.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/mapper/BaseMapperX.java new file mode 100644 index 0000000..2b4ff9d --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/mapper/BaseMapperX.java @@ -0,0 +1,204 @@ +package co.yixiang.yshop.framework.mybatis.core.mapper; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.pojo.SortablePageParam; +import co.yixiang.yshop.framework.common.pojo.SortingField; +import co.yixiang.yshop.framework.mybatis.core.enums.SqlConstants; +import co.yixiang.yshop.framework.mybatis.core.util.MyBatisUtils; +import com.baomidou.mybatisplus.annotation.DbType; +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; +import java.util.Objects; + +/** + * 在 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) { + // 特殊:SQL Server 批量插入后,获取 id 会报错,因此通过循环处理 + if (Objects.equals(SqlConstants.DB_TYPE, DbType.SQL_SERVER)) { + entities.forEach(this::insert); + return CollUtil.isNotEmpty(entities); + } + return Db.saveBatch(entities); + } + + /** + * 批量插入,适合大量数据插入 + * + * @param entities 实体们 + * @param size 插入数量 Db.saveBatch 默认为 1000 + */ + default Boolean insertBatch(Collection entities, int size) { + // 特殊:SQL Server 批量插入后,获取 id 会报错,因此通过循环处理 + if (Objects.equals(SqlConstants.DB_TYPE, DbType.SQL_SERVER)) { + entities.forEach(this::insert); + return CollUtil.isNotEmpty(entities); + } + 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/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java similarity index 95% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java index bd15d49..764f755 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/LambdaQueryWrapperX.java @@ -2,10 +2,8 @@ package co.yixiang.yshop.framework.mybatis.core.query; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import org.springframework.util.StringUtils; @@ -28,14 +26,14 @@ public class LambdaQueryWrapperX extends LambdaQueryWrapper { } public LambdaQueryWrapperX inIfPresent(SFunction column, Collection values) { - if (!CollectionUtils.isEmpty(values)) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { return (LambdaQueryWrapperX) super.in(column, values); } return this; } public LambdaQueryWrapperX inIfPresent(SFunction column, Object... values) { - if (!ArrayUtil.isEmpty(values)) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { return (LambdaQueryWrapperX) super.in(column, values); } return this; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/MPJLambdaWrapperX.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/MPJLambdaWrapperX.java new file mode 100644 index 0000000..8bf2b0c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/MPJLambdaWrapperX.java @@ -0,0 +1,313 @@ +package co.yixiang.yshop.framework.mybatis.core.query; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.yshop.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java similarity index 99% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java index abc7790..c1a58ad 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/query/QueryWrapperX.java @@ -151,7 +151,7 @@ public class QueryWrapperX extends QueryWrapper { switch (SqlConstants.DB_TYPE) { case ORACLE: case ORACLE_12C: - super.eq("ROWNUM", n); + super.le("ROWNUM", n); break; case SQL_SERVER: case SQL_SERVER2005: diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/EncryptTypeHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/EncryptTypeHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/EncryptTypeHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/EncryptTypeHandler.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/IntegerListTypeHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/IntegerListTypeHandler.java new file mode 100644 index 0000000..ccbc54f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/IntegerListTypeHandler.java @@ -0,0 +1,56 @@ +package co.yixiang.yshop.framework.mybatis.core.type; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/JsonLongSetTypeHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/JsonLongSetTypeHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/JsonLongSetTypeHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/JsonLongSetTypeHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/LongListTypeHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/LongListTypeHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/LongListTypeHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/LongListTypeHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/StringListTypeHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/StringListTypeHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/StringListTypeHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/type/StringListTypeHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/JdbcUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/JdbcUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/JdbcUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/JdbcUtils.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java similarity index 95% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java index 2edb015..a40f461 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/mybatis/core/util/MyBatisUtils.java @@ -45,8 +45,8 @@ public class MyBatisUtils { * 由于 MybatisPlusInterceptor 不支持添加拦截器,所以只能全量设置 * * @param interceptor 链 - * @param inner 拦截器 - * @param index 位置 + * @param inner 拦截器 + * @param index 位置 */ public static void addInterceptor(MybatisPlusInterceptor interceptor, InnerInterceptor inner, int index) { List inners = new ArrayList<>(interceptor.getInterceptors()); @@ -73,9 +73,9 @@ public class MyBatisUtils { /** * 构建 Column 对象 * - * @param tableName 表名 + * @param tableName 表名 * @param tableAlias 别名 - * @param column 字段名 + * @param column 字段名 * @return Column 对象 */ public static Column buildColumn(String tableName, Alias tableAlias, String column) { diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/config/YshopTranslateAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/config/YshopTranslateAutoConfiguration.java new file mode 100644 index 0000000..23b2f32 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/config/YshopTranslateAutoConfiguration.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.framework.translate.config; + +import co.yixiang.yshop.framework.translate.core.TranslateUtils; +import com.fhs.trans.service.impl.TransService; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +@AutoConfiguration +public class YshopTranslateAutoConfiguration { + + @Bean + @SuppressWarnings({"InstantiationOfUtilityClass", "SpringJavaInjectionPointsAutowiringInspection"}) + public TranslateUtils translateUtils(TransService transService) { + TranslateUtils.init(transService); + return new TranslateUtils(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/core/TranslateUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/core/TranslateUtils.java new file mode 100644 index 0000000..e98a76b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/java/co/yixiang/yshop/framework/translate/core/TranslateUtils.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.framework.translate.core; + +import cn.hutool.core.collection.CollUtil; +import com.fhs.core.trans.vo.VO; +import com.fhs.trans.service.impl.TransService; + +import java.util.List; + +/** + * VO 数据翻译 Utils + * + * @author yshop + */ +public class TranslateUtils { + + private static TransService transService; + + public static void init(TransService transService) { + TranslateUtils.transService = transService; + } + + /** + * 数据翻译 + * + * 使用场景:无法使用 @TransMethodResult 注解的场景,只能通过手动触发翻译 + * + * @param data 数据 + * @return 翻译结果 + */ + public static List translate(List data) { + if (CollUtil.isNotEmpty((data))) { + transService.transBatch(data); + } + return data; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..642267b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +co.yixiang.yshop.framework.datasource.config.YshopDataSourceAutoConfiguration +co.yixiang.yshop.framework.mybatis.config.YshopMybatisAutoConfiguration +co.yixiang.yshop.framework.translate.config.YshopTranslateAutoConfiguration \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/pom.xml new file mode 100644 index 0000000..08147c0 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/pom.xml @@ -0,0 +1,40 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-protection + jar + + ${project.artifactId} + 服务保证,提供分布式锁、幂等、限流、熔断等等功能 + https://gitee.com/guchengwuyue/yshop-drink + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + provided + + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + com.baomidou + lock4j-redisson-spring-boot-starter + true + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java index 16f4d59..03a11a7 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/config/YshopIdempotentConfiguration.java @@ -4,6 +4,7 @@ import co.yixiang.yshop.framework.idempotent.core.aop.IdempotentAspect; import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; import co.yixiang.yshop.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver; import co.yixiang.yshop.framework.idempotent.core.redis.IdempotentRedisDAO; import org.springframework.boot.autoconfigure.AutoConfiguration; import co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration; @@ -32,6 +33,11 @@ public class YshopIdempotentConfiguration { return new DefaultIdempotentKeyResolver(); } + @Bean + public UserIdempotentKeyResolver userIdempotentKeyResolver() { + return new UserIdempotentKeyResolver(); + } + @Bean public ExpressionIdempotentKeyResolver expressionIdempotentKeyResolver() { return new ExpressionIdempotentKeyResolver(); diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/annotation/Idempotent.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/annotation/Idempotent.java new file mode 100644 index 0000000..b165c0b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/annotation/Idempotent.java @@ -0,0 +1,63 @@ +package co.yixiang.yshop.framework.idempotent.core.annotation; + +import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver; + +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 yshop + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Idempotent { + + /** + * 幂等的超时时间,默认为 1 秒 + * + * 注意,如果执行时间超过它,请求还是会进来 + */ + int timeout() default 1; + /** + * 时间单位,默认为 SECONDS 秒 + */ + TimeUnit timeUnit() default TimeUnit.SECONDS; + + /** + * 提示信息,正在执行中的提示 + */ + String message() default "重复请求,请稍后重试"; + + /** + * 使用的 Key 解析器 + * + * @see DefaultIdempotentKeyResolver 全局级别 + * @see UserIdempotentKeyResolver 用户级别 + * @see ExpressionIdempotentKeyResolver 自定义表达式,通过 {@link #keyArg()} 计算 + */ + Class keyResolver() default DefaultIdempotentKeyResolver.class; + /** + * 使用的 Key 参数 + */ + String keyArg() default ""; + + /** + * 删除 Key,当发生异常时候 + * + * 问题:为什么发生异常时,需要删除 Key 呢? + * 回答:发生异常时,说明业务发生错误,此时需要删除 Key,避免下次请求无法正常执行。 + * + * 问题:为什么不搞 deleteWhenSuccess 执行成功时,需要删除 Key 呢? + * 回答:这种情况下,本质上是分布式锁,推荐使用 @Lock4j 注解 + */ + boolean deleteKeyWhenException() default true; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/aop/IdempotentAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/aop/IdempotentAspect.java new file mode 100644 index 0000000..568570c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/aop/IdempotentAspect.java @@ -0,0 +1,68 @@ +package co.yixiang.yshop.framework.idempotent.core.aop; + +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.idempotent.core.annotation.Idempotent; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import co.yixiang.yshop.framework.idempotent.core.redis.IdempotentRedisDAO; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.Map; + +/** + * 拦截声明了 {@link Idempotent} 注解的方法,实现幂等操作 + * + * @author yshop + */ +@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; + } + + @Around(value = "@annotation(idempotent)") + public Object aroundPointCut(ProceedingJoinPoint joinPoint, Idempotent idempotent) throws Throwable { + // 获得 IdempotentKeyResolver + IdempotentKeyResolver keyResolver = keyResolvers.get(idempotent.keyResolver()); + Assert.notNull(keyResolver, "找不到对应的 IdempotentKeyResolver"); + // 解析 Key + String key = keyResolver.resolver(joinPoint, idempotent); + + // 1. 锁定 Key + boolean success = idempotentRedisDAO.setIfAbsent(key, idempotent.timeout(), idempotent.timeUnit()); + // 锁定失败,抛出异常 + if (!success) { + log.info("[aroundPointCut][方法({}) 参数({}) 存在重复请求]", joinPoint.getSignature().toString(), joinPoint.getArgs()); + throw new ServiceException(GlobalErrorCodeConstants.REPEATED_REQUESTS.getCode(), idempotent.message()); + } + + // 2. 执行逻辑 + try { + return joinPoint.proceed(); + } catch (Throwable throwable) { + // 3. 异常时,删除 Key + // 参考美团 GTIS 思路:https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html + if (idempotent.deleteKeyWhenException()) { + idempotentRedisDAO.delete(key); + } + throw throwable; + } + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java index 1bc8a0b..768de9c 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.framework.idempotent.core.keyresolver.IdempotentKeyResol import org.aspectj.lang.JoinPoint; /** - * 默认幂等 Key 解析器,使用方法名 + 方法参数,组装成一个 Key + * 默认(全局级别)幂等 Key 解析器,使用方法名 + 方法参数,组装成一个 Key * * 为了避免 Key 过长,使用 MD5 进行“压缩” * diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java similarity index 95% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java index ea82bda..9a53724 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.framework.idempotent.core.annotation.Idempotent; import co.yixiang.yshop.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.DefaultParameterNameDiscoverer; import org.springframework.core.ParameterNameDiscoverer; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; @@ -21,7 +21,8 @@ import java.lang.reflect.Method; */ public class ExpressionIdempotentKeyResolver implements IdempotentKeyResolver { - private final ParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); + private final ParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer(); + private final ExpressionParser expressionParser = new SpelExpressionParser(); @Override diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/UserIdempotentKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/UserIdempotentKeyResolver.java new file mode 100644 index 0000000..5f67964 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/keyresolver/impl/UserIdempotentKeyResolver.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.idempotent.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import co.yixiang.yshop.framework.idempotent.core.annotation.Idempotent; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; +import org.aspectj.lang.JoinPoint; + +/** + * 用户级别的幂等 Key 解析器,使用方法名 + 方法参数 + userId + userType,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author yshop + */ +public class UserIdempotentKeyResolver implements IdempotentKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, Idempotent idempotent) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + Long userId = WebFrameworkUtils.getLoginUserId(); + Integer userType = WebFrameworkUtils.getLoginUserType(); + return SecureUtil.md5(methodName + argsStr + userId + userType); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/redis/IdempotentRedisDAO.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/redis/IdempotentRedisDAO.java new file mode 100644 index 0000000..6ede334 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/idempotent/core/redis/IdempotentRedisDAO.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.framework.idempotent.core.redis; + +import lombok.AllArgsConstructor; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.concurrent.TimeUnit; + +/** + * 幂等 Redis DAO + * + * @author yshop + */ +@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); + } + + public void delete(String key) { + String redisKey = formatKey(key); + redisTemplate.delete(redisKey); + } + + private static String formatKey(String key) { + return String.format(IDEMPOTENT, key); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/config/YshopLock4jConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/config/YshopLock4jConfiguration.java new file mode 100644 index 0000000..330a478 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/config/YshopLock4jConfiguration.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.framework.lock4j.config; + +import co.yixiang.yshop.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 YshopLock4jConfiguration { + + @Bean + public DefaultLockFailureStrategy lockFailureStrategy() { + return new DefaultLockFailureStrategy(); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/DefaultLockFailureStrategy.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/DefaultLockFailureStrategy.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/DefaultLockFailureStrategy.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/DefaultLockFailureStrategy.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/Lock4jRedisKeyConstants.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/Lock4jRedisKeyConstants.java new file mode 100644 index 0000000..ee89aab --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/lock4j/core/Lock4jRedisKeyConstants.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.framework.lock4j.core; + +/** + * Lock4j Redis Key 枚举类 + * + * @author yshop + */ +public interface Lock4jRedisKeyConstants { + + /** + * 分布式锁 + * + * KEY 格式:lock4j:%s // 参数来自 DefaultLockKeyBuilder 类 + * VALUE 数据格式:HASH // RLock.class:Redisson 的 Lock 锁,使用 Hash 数据结构 + * 过期时间:不固定 + */ + String LOCK4J = "lock4j:%s"; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/config/YshopRateLimiterConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/config/YshopRateLimiterConfiguration.java new file mode 100644 index 0000000..99dad91 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/config/YshopRateLimiterConfiguration.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.framework.ratelimiter.config; + +import co.yixiang.yshop.framework.ratelimiter.core.aop.RateLimiterAspect; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl.*; +import co.yixiang.yshop.framework.ratelimiter.core.redis.RateLimiterRedisDAO; +import co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration; +import org.redisson.api.RedissonClient; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +import java.util.List; + +@AutoConfiguration(after = YshopRedisAutoConfiguration.class) +public class YshopRateLimiterConfiguration { + + @Bean + public RateLimiterAspect rateLimiterAspect(List keyResolvers, RateLimiterRedisDAO rateLimiterRedisDAO) { + return new RateLimiterAspect(keyResolvers, rateLimiterRedisDAO); + } + + @Bean + @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") + public RateLimiterRedisDAO rateLimiterRedisDAO(RedissonClient redissonClient) { + return new RateLimiterRedisDAO(redissonClient); + } + + // ========== 各种 RateLimiterRedisDAO Bean ========== + + @Bean + public DefaultRateLimiterKeyResolver defaultRateLimiterKeyResolver() { + return new DefaultRateLimiterKeyResolver(); + } + + @Bean + public UserRateLimiterKeyResolver userRateLimiterKeyResolver() { + return new UserRateLimiterKeyResolver(); + } + + @Bean + public ClientIpRateLimiterKeyResolver clientIpRateLimiterKeyResolver() { + return new ClientIpRateLimiterKeyResolver(); + } + + @Bean + public ServerNodeRateLimiterKeyResolver serverNodeRateLimiterKeyResolver() { + return new ServerNodeRateLimiterKeyResolver(); + } + + @Bean + public ExpressionRateLimiterKeyResolver expressionRateLimiterKeyResolver() { + return new ExpressionRateLimiterKeyResolver(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/annotation/RateLimiter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/annotation/RateLimiter.java new file mode 100644 index 0000000..2885f92 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/annotation/RateLimiter.java @@ -0,0 +1,62 @@ +package co.yixiang.yshop.framework.ratelimiter.core.annotation; + +import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; +import co.yixiang.yshop.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl.ClientIpRateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl.DefaultRateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl.ServerNodeRateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl.UserRateLimiterKeyResolver; + +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 yshop + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface RateLimiter { + + /** + * 限流的时间,默认为 1 秒 + */ + int time() default 1; + /** + * 时间单位,默认为 SECONDS 秒 + */ + TimeUnit timeUnit() default TimeUnit.SECONDS; + + /** + * 限流次数 + */ + int count() default 100; + + /** + * 提示信息,请求过快的提示 + * + * @see GlobalErrorCodeConstants#TOO_MANY_REQUESTS + */ + String message() default ""; // 为空时,使用 TOO_MANY_REQUESTS 错误提示 + + /** + * 使用的 Key 解析器 + * + * @see DefaultRateLimiterKeyResolver 全局级别 + * @see UserRateLimiterKeyResolver 用户 ID 级别 + * @see ClientIpRateLimiterKeyResolver 用户 IP 级别 + * @see ServerNodeRateLimiterKeyResolver 服务器 Node 级别 + * @see ExpressionIdempotentKeyResolver 自定义表达式,通过 {@link #keyArg()} 计算 + */ + Class keyResolver() default DefaultRateLimiterKeyResolver.class; + /** + * 使用的 Key 参数 + */ + String keyArg() default ""; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/aop/RateLimiterAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/aop/RateLimiterAspect.java new file mode 100644 index 0000000..195b457 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/aop/RateLimiterAspect.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.framework.ratelimiter.core.aop; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import co.yixiang.yshop.framework.ratelimiter.core.redis.RateLimiterRedisDAO; +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 RateLimiter} 注解的方法,实现限流操作 + * + * @author yshop + */ +@Aspect +@Slf4j +public class RateLimiterAspect { + + /** + * RateLimiterKeyResolver 集合 + */ + private final Map, RateLimiterKeyResolver> keyResolvers; + + private final RateLimiterRedisDAO rateLimiterRedisDAO; + + public RateLimiterAspect(List keyResolvers, RateLimiterRedisDAO rateLimiterRedisDAO) { + this.keyResolvers = CollectionUtils.convertMap(keyResolvers, RateLimiterKeyResolver::getClass); + this.rateLimiterRedisDAO = rateLimiterRedisDAO; + } + + @Before("@annotation(rateLimiter)") + public void beforePointCut(JoinPoint joinPoint, RateLimiter rateLimiter) { + // 获得 IdempotentKeyResolver 对象 + RateLimiterKeyResolver keyResolver = keyResolvers.get(rateLimiter.keyResolver()); + Assert.notNull(keyResolver, "找不到对应的 RateLimiterKeyResolver"); + // 解析 Key + String key = keyResolver.resolver(joinPoint, rateLimiter); + + // 获取 1 次限流 + boolean success = rateLimiterRedisDAO.tryAcquire(key, + rateLimiter.count(), rateLimiter.time(), rateLimiter.timeUnit()); + if (!success) { + log.info("[beforePointCut][方法({}) 参数({}) 请求过于频繁]", joinPoint.getSignature().toString(), joinPoint.getArgs()); + String message = StrUtil.blankToDefault(rateLimiter.message(), + GlobalErrorCodeConstants.TOO_MANY_REQUESTS.getMsg()); + throw new ServiceException(GlobalErrorCodeConstants.TOO_MANY_REQUESTS.getCode(), message); + } + } + +} + diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/RateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/RateLimiterKeyResolver.java new file mode 100644 index 0000000..978a1e0 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/RateLimiterKeyResolver.java @@ -0,0 +1,22 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver; + +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import org.aspectj.lang.JoinPoint; + +/** + * 限流 Key 解析器接口 + * + * @author yshop + */ +public interface RateLimiterKeyResolver { + + /** + * 解析一个 Key + * + * @param rateLimiter 限流注解 + * @param joinPoint AOP 切面 + * @return Key + */ + String resolver(JoinPoint joinPoint, RateLimiter rateLimiter); + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ClientIpRateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ClientIpRateLimiterKeyResolver.java new file mode 100644 index 0000000..6d185b5 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ClientIpRateLimiterKeyResolver.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import org.aspectj.lang.JoinPoint; + +/** + * IP 级别的限流 Key 解析器,使用方法名 + 方法参数 + IP,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author yshop + */ +public class ClientIpRateLimiterKeyResolver implements RateLimiterKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, RateLimiter rateLimiter) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + String clientIp = ServletUtils.getClientIP(); + return SecureUtil.md5(methodName + argsStr + clientIp); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/DefaultRateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/DefaultRateLimiterKeyResolver.java new file mode 100644 index 0000000..f0a70f6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/DefaultRateLimiterKeyResolver.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import org.aspectj.lang.JoinPoint; + +/** + * 默认(全局级别)限流 Key 解析器,使用方法名 + 方法参数,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author yshop + */ +public class DefaultRateLimiterKeyResolver implements RateLimiterKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, RateLimiter rateLimiter) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + return SecureUtil.md5(methodName + argsStr); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ExpressionRateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ExpressionRateLimiterKeyResolver.java new file mode 100644 index 0000000..d6be644 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ExpressionRateLimiterKeyResolver.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl; + +import cn.hutool.core.util.ArrayUtil; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +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.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 表达式的 {@link RateLimiterKeyResolver} 实现类 + * + * @author yshop + */ +public class ExpressionRateLimiterKeyResolver implements RateLimiterKeyResolver { + + private final ParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer(); + + private final ExpressionParser expressionParser = new SpelExpressionParser(); + + @Override + public String resolver(JoinPoint joinPoint, RateLimiter rateLimiter) { + // 获得被拦截方法参数名列表 + 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(rateLimiter.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ServerNodeRateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ServerNodeRateLimiterKeyResolver.java new file mode 100644 index 0000000..0fd275d --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/ServerNodeRateLimiterKeyResolver.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.system.SystemUtil; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import org.aspectj.lang.JoinPoint; + +/** + * Server 节点级别的限流 Key 解析器,使用方法名 + 方法参数 + IP,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author yshop + */ +public class ServerNodeRateLimiterKeyResolver implements RateLimiterKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, RateLimiter rateLimiter) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + String serverNode = String.format("%s@%d", SystemUtil.getHostInfo().getAddress(), SystemUtil.getCurrentPID()); + return SecureUtil.md5(methodName + argsStr + serverNode); + } + +} \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/UserRateLimiterKeyResolver.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/UserRateLimiterKeyResolver.java new file mode 100644 index 0000000..87b36e7 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/keyresolver/impl/UserRateLimiterKeyResolver.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.ratelimiter.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import co.yixiang.yshop.framework.ratelimiter.core.annotation.RateLimiter; +import co.yixiang.yshop.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; +import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; +import org.aspectj.lang.JoinPoint; + +/** + * 用户级别的限流 Key 解析器,使用方法名 + 方法参数 + userId + userType,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author yshop + */ +public class UserRateLimiterKeyResolver implements RateLimiterKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, RateLimiter rateLimiter) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + Long userId = WebFrameworkUtils.getLoginUserId(); + Integer userType = WebFrameworkUtils.getLoginUserType(); + return SecureUtil.md5(methodName + argsStr + userId + userType); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/redis/RateLimiterRedisDAO.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/redis/RateLimiterRedisDAO.java new file mode 100644 index 0000000..13e2010 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/java/co/yixiang/yshop/framework/ratelimiter/core/redis/RateLimiterRedisDAO.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.framework.ratelimiter.core.redis; + +import lombok.AllArgsConstructor; +import org.redisson.api.*; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * 限流 Redis DAO + * + * @author yshop + */ +@AllArgsConstructor +public class RateLimiterRedisDAO { + + /** + * 限流操作 + * + * KEY 格式:rate_limiter:%s // 参数为 uuid + * VALUE 格式:String + * 过期时间:不固定 + */ + private static final String RATE_LIMITER = "rate_limiter:%s"; + + private final RedissonClient redissonClient; + + public Boolean tryAcquire(String key, int count, int time, TimeUnit timeUnit) { + // 1. 获得 RRateLimiter,并设置 rate 速率 + RRateLimiter rateLimiter = getRRateLimiter(key, count, time, timeUnit); + // 2. 尝试获取 1 个 + return rateLimiter.tryAcquire(); + } + + private static String formatKey(String key) { + return String.format(RATE_LIMITER, key); + } + + private RRateLimiter getRRateLimiter(String key, long count, int time, TimeUnit timeUnit) { + String redisKey = formatKey(key); + RRateLimiter rateLimiter = redissonClient.getRateLimiter(redisKey); + long rateInterval = timeUnit.toSeconds(time); + // 1. 如果不存在,设置 rate 速率 + RateLimiterConfig config = rateLimiter.getConfig(); + if (config == null) { + rateLimiter.trySetRate(RateType.OVERALL, count, rateInterval, RateIntervalUnit.SECONDS); + return rateLimiter; + } + // 2. 如果存在,并且配置相同,则直接返回 + if (config.getRateType() == RateType.OVERALL + && Objects.equals(config.getRate(), count) + && Objects.equals(config.getRateInterval(), TimeUnit.SECONDS.toMillis(rateInterval))) { + return rateLimiter; + } + // 3. 如果存在,并且配置不同,则进行新建 + rateLimiter.setRate(RateType.OVERALL, count, rateInterval, RateIntervalUnit.SECONDS); + return rateLimiter; + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..51c0444 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +co.yixiang.yshop.framework.idempotent.config.YshopIdempotentConfiguration +co.yixiang.yshop.framework.lock4j.config.YshopLock4jConfiguration +co.yixiang.yshop.framework.ratelimiter.config.YshopRateLimiterConfiguration \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/pom.xml new file mode 100644 index 0000000..fec7405 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/pom.xml @@ -0,0 +1,41 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-redis + jar + + ${project.artifactId} + Redis 封装拓展 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.redisson + redisson-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-cache + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/RedissonConfig.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/RedissonConfig.java new file mode 100644 index 0000000..bcd0bd8 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/RedissonConfig.java @@ -0,0 +1,44 @@ +//package co.yixiang.yshop.framework.redis.config; +// +// +//import cn.hutool.core.util.StrUtil; +//import org.redisson.Redisson; +//import org.redisson.api.RedissonClient; +//import org.redisson.config.Config; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +//@Configuration +//public class RedissonConfig { +// @Value("${spring.data.redis.host}") +// private String host; +// +// @Value("${spring.data.redis.port}") +// private String port; +// +// @Value("${spring.data.redis.password}") +// private String password; +// +// @Value("${spring.data.redis.database}") +// private Integer database; +// +// +// +// @Bean(destroyMethod = "shutdown") +// public RedissonClient redissonClient() { +// Config config = new Config(); +// config.useSingleServer() +// .setDatabase(database) +// .setAddress("redis://"+host+":"+port); +// +// //.setPassword(password); +// if(StrUtil.isNotEmpty(password)){ +// config.useSingleServer().setPassword(password); +// } +// +// return Redisson.create(config); +// } +// +// +//} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheAutoConfiguration.java new file mode 100644 index 0000000..f63a601 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheAutoConfiguration.java @@ -0,0 +1,82 @@ +package co.yixiang.yshop.framework.redis.config; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration.buildRedisSerializer; + +/** + * Cache 配置类,基于 Redis 实现 + */ +@AutoConfiguration +@EnableConfigurationProperties({CacheProperties.class, YshopCacheProperties.class}) +@EnableCaching +public class YshopCacheAutoConfiguration { + + /** + * 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/yshop-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, + YshopCacheProperties yshopCacheProperties) { + // 创建 RedisCacheWriter 对象 + RedisConnectionFactory connectionFactory = Objects.requireNonNull(redisTemplate.getConnectionFactory()); + RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory, + BatchStrategies.scan(yshopCacheProperties.getRedisScanBatchSize())); + // 创建 TenantRedisCacheManager 对象 + return new TimeoutRedisCacheManager(cacheWriter, redisCacheConfiguration); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheProperties.java new file mode 100644 index 0000000..dcf61a9 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopCacheProperties.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.redis.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +/** + * Cache 配置项 + * + * @author Wanwan + */ +@ConfigurationProperties("yshop.cache") +@Data +@Validated +public class YshopCacheProperties { + + /** + * {@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopRedisAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopRedisAutoConfiguration.java new file mode 100644 index 0000000..672c426 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/config/YshopRedisAutoConfiguration.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.framework.redis.config; + +import cn.hutool.core.util.ReflectUtil; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.redisson.spring.starter.RedissonAutoConfigurationV2; +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(before = RedissonAutoConfigurationV2.class) // 目的:使用自己定义的 RedisTemplate Bean +public class YshopRedisAutoConfiguration { + + /** + * 创建 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/yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyDefine.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyDefine.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyDefine.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyDefine.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyRegistry.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyRegistry.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyRegistry.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/RedisKeyRegistry.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/TimeoutRedisCacheManager.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/TimeoutRedisCacheManager.java new file mode 100644 index 0000000..ef68899 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/core/TimeoutRedisCacheManager.java @@ -0,0 +1,86 @@ +package co.yixiang.yshop.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 yshop + */ +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) { + // 移除 # 后面的 : 以及后面的内容,避免影响解析 + String ttlStr = StrUtil.subBefore(names[1], StrUtil.COLON, false); // 获得 ttlStr 时间部分 + names[1] = StrUtil.subAfter(names[1], ttlStr, false); // 移除掉 ttlStr 时间部分 + // 解析时间 + Duration duration = parseDuration(ttlStr); + cacheConfig = cacheConfig.entryTtl(duration); + } + + // 创建 RedisCache 对象,需要忽略掉 ttlStr + return super.createRedisCache(names[0] + names[1], 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/util/redis/RedisUtil.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/util/redis/RedisUtil.java new file mode 100644 index 0000000..0672ee6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/java/co/yixiang/yshop/framework/redis/util/redis/RedisUtil.java @@ -0,0 +1,154 @@ +/** + * Copyright (C) 2018-2022 + * All rights reserved, Designed By www.yixiang.co + + */ +package co.yixiang.yshop.framework.redis.util.redis; + +import cn.hutool.extra.spring.SpringUtil; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.util.CollectionUtils; + +import java.util.Collection; +import java.util.concurrent.TimeUnit; + +@SuppressWarnings("unchecked") +public class RedisUtil { +// private static RedisTemplate redisTemplate = SpringContextUtils +// .getBean("redisTemplate",RedisTemplate.class); + + private static RedisTemplate redisTemplate = SpringUtil + .getBean("redisTemplate",RedisTemplate.class); + + /** + * 指定缓存失效时间 + * @param key 键 + * @param time 时间(秒) + * @return + */ + public static boolean expire(String key,long time){ + + try { + if(time>0){ + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key 获取过期时间 + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 失效时间为负数,说明该主键未设置失效时间(失效时间默认为-1) + */ + public static long getExpire(String key){ + return redisTemplate.getExpire(key,TimeUnit.SECONDS); + } + + /** + * 判断key是否存在 + * @param key 键 + * @return true 存在 false 不存在 + */ + public static boolean hasKey(String key){ + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public static void del(String ... key){ + if(key!=null&&key.length>0){ + if(key.length==1){ + redisTemplate.delete(key[0]); + }else{ + redisTemplate.delete((Collection) CollectionUtils.arrayToList(key)); + } + } + } + + + /** + * 普通缓存获取 + * @param key 键 + * @return 值 + */ + @SuppressWarnings("unchecked") + public static T get(String key){ + return key==null?null:(T)redisTemplate.opsForValue().get(key); + } + + /** + * 普通缓存放入 + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public static boolean set(String key,Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public static boolean set(String key,Object value,long time){ + try { + if(time>0){ + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + }else{ + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 递增 此时value值必须为int类型 否则报错 + * @param key 键 + * @param delta 要增加几(大于0) + * @return + */ + public static long incr(String key, long delta){ + if(delta<0){ + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + /** + * 递减 + * @param key 键 + * @param delta 要减少几(小于0) + * @return + */ + public static long decr(String key, long delta){ + if(delta<0){ + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/pom.xml new file mode 100644 index 0000000..0cb7ea3 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/pom.xml @@ -0,0 +1,71 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-security + jar + + ${project.artifactId} + + 1. security:用户的认证、权限的校验,实现「谁」可以做「什么事」 + 2. operatelog:操作日志,实现「谁」在「什么时间」对「什么」做了「什么事」 + + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + co.yixiang.boot + yshop-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 + + + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + + diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/config/YshopOperateLogConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/config/YshopOperateLogConfiguration.java new file mode 100644 index 0000000..b3b094f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/config/YshopOperateLogConfiguration.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.framework.operatelog.config; + +import co.yixiang.yshop.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 YshopOperateLogConfiguration { + + @Bean + @Primary + public ILogRecordService iLogRecordServiceImpl() { + return new LogRecordServiceImpl(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/core/service/LogRecordServiceImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/core/service/LogRecordServiceImpl.java new file mode 100644 index 0000000..6a6ebce --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/operatelog/core/service/LogRecordServiceImpl.java @@ -0,0 +1,87 @@ +package co.yixiang.yshop.framework.operatelog.core.service; + +import co.yixiang.yshop.framework.common.util.monitor.TracerUtils; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.security.core.LoginUser; +import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; +import co.yixiang.yshop.module.system.api.logger.OperateLogApi; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import com.mzt.logapi.beans.LogRecord; +import com.mzt.logapi.service.ILogRecordService; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; + +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. 补全通用字段 + OperateLogCreateReqDTO reqDTO = new OperateLogCreateReqDTO(); + reqDTO.setTraceId(TracerUtils.getTraceId()); + // 补充用户信息 + fillUserFields(reqDTO); + // 补全模块信息 + fillModuleFields(reqDTO, logRecord); + // 补全请求信息 + fillRequestFields(reqDTO); + + // 2. 异步记录日志 + operateLogApi.createOperateLog(reqDTO); + } + + private static void fillUserFields(OperateLogCreateReqDTO 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(OperateLogCreateReqDTO reqDTO, LogRecord logRecord) { + reqDTO.setType(logRecord.getType()); // 大模块类型,例如:CRM 客户 + reqDTO.setSubType(logRecord.getSubType());// 操作名称,例如:转移客户 + reqDTO.setBizId(Long.parseLong(logRecord.getBizNo())); // 业务编号,例如:客户编号 + reqDTO.setAction(logRecord.getAction());// 操作内容,例如:修改编号为 1 的用户信息,将性别从男改成女,将姓名从yshop改成源码。 + reqDTO.setExtra(logRecord.getExtra()); // 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ),例如说,记录订单编号,{ orderId: "1"} + } + + private static void fillRequestFields(OperateLogCreateReqDTO 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/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java similarity index 81% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java index c33181d..35e8957 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/AuthorizeRequestsCustomizer.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.framework.security.config; import co.yixiang.yshop.framework.web.config.WebProperties; +import jakarta.annotation.Resource; 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; +import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; /** * 自定义的 URL 的安全配置 @@ -15,7 +14,7 @@ import javax.annotation.Resource; * @author yshop */ public abstract class AuthorizeRequestsCustomizer - implements Customizer.ExpressionInterceptUrlRegistry>, Ordered { + implements Customizer.AuthorizationManagerRequestMatcherRegistry>, Ordered { @Resource private WebProperties webProperties; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java similarity index 76% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java index 201841e..3f24798 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/SecurityProperties.java @@ -4,8 +4,8 @@ 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 jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.Collections; import java.util.List; @@ -19,6 +19,13 @@ public class SecurityProperties { */ @NotEmpty(message = "Token Header 不能为空") private String tokenHeader = "Authorization"; + /** + * HTTP 请求时,访问令牌的请求参数 + * + * 初始目的:解决 WebSocket 无法通过 header 传参,只能通过 token 参数拼接 + */ + @NotEmpty(message = "Token Parameter 不能为空") + private String tokenParameter = "token"; /** * mock 模式的开关 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java similarity index 94% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java index ac6dc26..e7733ad 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopSecurityAutoConfiguration.java @@ -10,8 +10,10 @@ import co.yixiang.yshop.framework.security.core.service.SecurityFrameworkService import co.yixiang.yshop.framework.web.core.handler.GlobalExceptionHandler; import co.yixiang.yshop.module.system.api.oauth2.OAuth2TokenApi; import co.yixiang.yshop.module.system.api.permission.PermissionApi; +import jakarta.annotation.Resource; import org.springframework.beans.factory.config.MethodInvokingFactoryBean; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.security.core.context.SecurityContextHolder; @@ -20,8 +22,6 @@ 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 自动配置类,主要用于相关组件的配置 * @@ -31,6 +31,7 @@ import javax.annotation.Resource; * @author yshop */ @AutoConfiguration +@AutoConfigureOrder(-1) // 目的:先于 Spring Security 自动配置,避免一键改包后,org.* 基础包无法生效 @EnableConfigurationProperties(SecurityProperties.class) public class YshopSecurityAutoConfiguration { diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopWebSecurityConfigurerAdapter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopWebSecurityConfigurerAdapter.java new file mode 100644 index 0000000..f8a14d4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/config/YshopWebSecurityConfigurerAdapter.java @@ -0,0 +1,219 @@ +package co.yixiang.yshop.framework.security.config; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter; +import co.yixiang.yshop.framework.web.config.WebProperties; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureOrder; +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.Customizer; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; +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 org.springframework.web.util.pattern.PathPattern; + +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; + +/** + * 自定义的 Spring Security 配置适配器实现 + * + * @author yshop + */ +@AutoConfiguration +@AutoConfigureOrder(-1) // 目的:先于 Spring Security 自动配置,避免一键改包后,org.* 基础包无法生效 +@EnableMethodSecurity(securedEnabled = true) +public class YshopWebSecurityConfigurerAdapter { + + @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(Customizer.withDefaults()) + // CSRF 禁用,因为不使用 Session + .csrf(AbstractHttpConfigurer::disable) + // 基于 token 机制,所以不需要 Session + .sessionManagement(c -> c.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .headers(c -> c.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable)) + // 一堆自定义的 Spring Security 处理器 + .exceptionHandling(c -> c.authenticationEntryPoint(authenticationEntryPoint) + .accessDeniedHandler(accessDeniedHandler)); + // 登录、登录暂时不使用 Spring Security 的拓展点,主要考虑一方面拓展多用户、多种登录方式相对复杂,一方面用户的学习成本较高 + + // 获得 @PermitAll 带来的 URL 列表,免登录 + Multimap permitAllUrls = getPermitAllUrlsFromAnnotations(); + // 设置每个请求的权限 + httpSecurity + // ①:全局共享规则 + .authorizeHttpRequests(c -> c + // 1.1 静态资源,可匿名访问 + .requestMatchers(HttpMethod.GET, "/*.html", "/*.html", "/*.css", "/*.js").permitAll() + // 1.1 设置 @PermitAll 无需认证 + .requestMatchers(HttpMethod.GET, permitAllUrls.get(HttpMethod.GET).toArray(new String[0])).permitAll() + .requestMatchers(HttpMethod.POST, permitAllUrls.get(HttpMethod.POST).toArray(new String[0])).permitAll() + .requestMatchers(HttpMethod.PUT, permitAllUrls.get(HttpMethod.PUT).toArray(new String[0])).permitAll() + .requestMatchers(HttpMethod.DELETE, permitAllUrls.get(HttpMethod.DELETE).toArray(new String[0])).permitAll() + .requestMatchers(HttpMethod.HEAD, permitAllUrls.get(HttpMethod.HEAD).toArray(new String[0])).permitAll() + .requestMatchers(HttpMethod.PATCH, permitAllUrls.get(HttpMethod.PATCH).toArray(new String[0])).permitAll() + // 1.2 基于 yshop.security.permit-all-urls 无需认证 + .requestMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll() + // 1.3 设置 App API 无需认证 + .requestMatchers(buildAppApi("/**")).permitAll() + ) + // ②:每个项目的自定义规则 + .authorizeHttpRequests(c -> authorizeRequestsCustomizers.forEach(customizer -> customizer.customize(c))) + // ③:兜底规则,必须认证 + .authorizeHttpRequests(c -> c.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; + } + Set urls = new HashSet<>(); + if (entry.getKey().getPatternsCondition() != null) { + urls.addAll(entry.getKey().getPatternsCondition().getPatterns()); + } + if (entry.getKey().getPathPatternsCondition() != null) { + urls.addAll(convertList(entry.getKey().getPathPatternsCondition().getPatterns(), PathPattern::getPatternString)); + } + if (urls.isEmpty()) { + continue; + } + + // 特殊:使用 @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); + result.putAll(HttpMethod.HEAD, urls); + result.putAll(HttpMethod.PATCH, 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; + case HEAD: + result.putAll(HttpMethod.HEAD, urls); + break; + case PATCH: + result.putAll(HttpMethod.PATCH, urls); + break; + } + }); + } + return result; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java similarity index 85% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java index 94b41e5..0ac6e27 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/LoginUser.java @@ -17,6 +17,9 @@ import java.util.Map; @Data public class LoginUser { + public static final String INFO_KEY_NICKNAME = "nickname"; + public static final String INFO_KEY_DEPT_ID = "deptId"; + /** * 用户编号 */ @@ -27,6 +30,10 @@ public class LoginUser { * 关联 {@link UserTypeEnum} */ private Integer userType; + /** + * 额外的用户信息 + */ + private Map info; /** * 租户编号 */ diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/annotations/PreAuthenticated.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/annotations/PreAuthenticated.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/annotations/PreAuthenticated.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/annotations/PreAuthenticated.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/aop/PreAuthenticatedAspect.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/aop/PreAuthenticatedAspect.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/aop/PreAuthenticatedAspect.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/aop/PreAuthenticatedAspect.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java index 81084fb..89973ed 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/filter/TokenAuthenticationFilter.java @@ -16,10 +16,10 @@ 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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** @@ -41,7 +41,8 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { @SuppressWarnings("NullableProblems") protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { - String token = SecurityFrameworkUtils.obtainAuthorization(request, securityProperties.getTokenHeader()); + String token = SecurityFrameworkUtils.obtainAuthorization(request, + securityProperties.getTokenHeader(), securityProperties.getTokenParameter()); if (StrUtil.isNotEmpty(token)) { Integer userType = WebFrameworkUtils.getLoginUserType(request); try { @@ -74,12 +75,16 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { return null; } // 用户类型不匹配,无权限 - if (ObjectUtil.notEqual(accessToken.getUserType(), userType)) { + // 注意:只有 /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()) .setShopId(accessToken.getShopId()) + .setInfo(accessToken.getUserInfo()) // 额外的用户信息 .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes()); } catch (ServiceException serviceException) { // 校验 Token 不通过时,考虑到一些接口是无需登录的,所以直接返回 null 即可 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java similarity index 84% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java index 69c3071..6db863c 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AccessDeniedHandlerImpl.java @@ -8,16 +8,14 @@ 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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.FORBIDDEN; -import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; /** * 访问一个需要认证的 URL 资源,已经认证(登录)但是没有权限的情况下,返回 {@link GlobalErrorCodeConstants#FORBIDDEN} 错误码。 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java similarity index 92% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java index a05413f..66bb8e3 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/handler/AuthenticationEntryPointImpl.java @@ -8,9 +8,9 @@ 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 jakarta.servlet.FilterChain; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkService.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkService.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkService.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkService.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkServiceImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkServiceImpl.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkServiceImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/service/SecurityFrameworkServiceImpl.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/util/SecurityFrameworkUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/util/SecurityFrameworkUtils.java new file mode 100644 index 0000000..b60b0c3 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/java/co/yixiang/yshop/framework/security/core/util/SecurityFrameworkUtils.java @@ -0,0 +1,140 @@ +package co.yixiang.yshop.framework.security.core.util; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.security.core.LoginUser; +import co.yixiang.yshop.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 jakarta.servlet.http.HttpServletRequest; +import java.util.Collections; + +/** + * 安全服务工具类 + * + * @author yshop + */ +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; + } + + /** + * 获得当前用户的昵称,从上下文中 + * + * @return 昵称 + */ + @Nullable + public static String getLoginUserNickname() { + LoginUser loginUser = getLoginUser(); + return loginUser != null ? MapUtil.getStr(loginUser.getInfo(), LoginUser.INFO_KEY_NICKNAME) : null; + } + + /** + * 获得当前用户的部门编号,从上下文中 + * + * @return 部门编号 + */ + @Nullable + public static Long getLoginUserDeptId() { + LoginUser loginUser = getLoginUser(); + return loginUser != null ? MapUtil.getLong(loginUser.getInfo(), LoginUser.INFO_KEY_DEPT_ID) : 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..1c967ac --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +co.yixiang.yshop.framework.security.config.YshopSecurityAutoConfiguration +co.yixiang.yshop.framework.security.config.YshopWebSecurityConfigurerAdapter +co.yixiang.yshop.framework.operatelog.config.YshopOperateLogConfiguration \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/pom.xml new file mode 100644 index 0000000..e958521 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/pom.xml @@ -0,0 +1,60 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-test + jar + + ${project.artifactId} + 测试组件,用于单元测试、集成测试 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + co.yixiang.boot + yshop-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/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/RedisTestConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/RedisTestConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/RedisTestConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/RedisTestConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/SqlInitializationTestConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/SqlInitializationTestConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/SqlInitializationTestConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/config/SqlInitializationTestConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java index 6cd0953..9115849 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbAndRedisUnitTest.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.framework.mybatis.config.YshopMybatisAutoConfiguration; import co.yixiang.yshop.framework.redis.config.YshopRedisAutoConfiguration; import co.yixiang.yshop.framework.test.config.RedisTestConfiguration; import co.yixiang.yshop.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; import org.redisson.spring.starter.RedissonAutoConfiguration; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; @@ -41,9 +41,9 @@ public class BaseDbAndRedisUnitTest { // Redis 配置类 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer - RedisAutoConfiguration.class, // Spring Redis 自动配置类 YshopRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + RedissonAutoConfiguration.class, // Redisson 自动配置类 }) public static class Application { } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java index 7981772..6ef3635 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseDbUnitTest.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.framework.test.core.ut; import co.yixiang.yshop.framework.datasource.config.YshopDataSourceAutoConfiguration; import co.yixiang.yshop.framework.mybatis.config.YshopMybatisAutoConfiguration; import co.yixiang.yshop.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; import com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseMockitoUnitTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseMockitoUnitTest.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseMockitoUnitTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseMockitoUnitTest.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java similarity index 99% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java index 7221191..d8299bd 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/ut/BaseRedisUnitTest.java @@ -24,7 +24,7 @@ public class BaseRedisUnitTest { RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer RedisAutoConfiguration.class, // Spring Redis 自动配置类 YshopRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 + RedissonAutoConfiguration.class, // Redisson 自动配置类 }) public static class Application { } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/AssertUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/AssertUtils.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/AssertUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/AssertUtils.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java index dfe48eb..d8cdecf 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-test/src/main/java/co/yixiang/yshop/framework/test/core/util/RandomUtils.java @@ -7,10 +7,7 @@ import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.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; @@ -55,6 +52,9 @@ public class RandomUtils { } 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 的字段,返回非删除 @@ -82,7 +82,8 @@ public class RandomUtils { } public static LocalDateTime randomLocalDateTime() { - return LocalDateTimeUtil.of(randomDate()); + // 设置 Nano 为零的原因,避免 MySQL、H2 存储不到时间戳 + return LocalDateTimeUtil.of(randomDate()).withNano(0); } public static Short randomShort() { @@ -102,6 +103,10 @@ public class RandomUtils { return randomString() + "@qq.com"; } + public static String randomURL() { + return "https://www.yixiang.co/" + randomString(); + } + @SafeVarargs public static T randomPojo(Class clazz, Consumer... consumers) { T pojo = PODAM_FACTORY.manufacturePojo(clazz); diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/pom.xml new file mode 100644 index 0000000..0cf1669 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/pom.xml @@ -0,0 +1,82 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-web + jar + + ${project.artifactId} + Web 框架,全局异常、API 日志、脱敏、错误码等 + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + + + org.springdoc + springdoc-openapi-starter-webmvc-api + + + + org.springframework.security + spring-security-core + provided + + + + + co.yixiang.boot + yshop-module-infra-api + ${revision} + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + + + org.jsoup + jsoup + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.mockito + mockito-inline + test + + + + diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java similarity index 80% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java index 34f19f5..0508600 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/config/YshopApiLogAutoConfiguration.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.framework.apilog.config; import co.yixiang.yshop.framework.apilog.core.filter.ApiAccessLogFilter; +import co.yixiang.yshop.framework.apilog.core.interceptor.ApiAccessLogInterceptor; import co.yixiang.yshop.framework.apilog.core.service.ApiAccessLogFrameworkService; import co.yixiang.yshop.framework.apilog.core.service.ApiAccessLogFrameworkServiceImpl; import co.yixiang.yshop.framework.apilog.core.service.ApiErrorLogFrameworkService; @@ -10,23 +11,26 @@ import co.yixiang.yshop.framework.web.config.WebProperties; import co.yixiang.yshop.framework.web.config.YshopWebAutoConfiguration; import co.yixiang.yshop.module.infra.api.logger.ApiAccessLogApi; import co.yixiang.yshop.module.infra.api.logger.ApiErrorLogApi; +import jakarta.servlet.Filter; 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; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @AutoConfiguration(after = YshopWebAutoConfiguration.class) -public class YshopApiLogAutoConfiguration { +public class YshopApiLogAutoConfiguration implements WebMvcConfigurer { @Bean + @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") public ApiAccessLogFrameworkService apiAccessLogFrameworkService(ApiAccessLogApi apiAccessLogApi) { return new ApiAccessLogFrameworkServiceImpl(apiAccessLogApi); } @Bean + @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") public ApiErrorLogFrameworkService apiErrorLogFrameworkService(ApiErrorLogApi apiErrorLogApi) { return new ApiErrorLogFrameworkServiceImpl(apiErrorLogApi); } @@ -49,4 +53,9 @@ public class YshopApiLogAutoConfiguration { return bean; } + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new ApiAccessLogInterceptor()); + } + } diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/annotation/ApiAccessLog.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/annotation/ApiAccessLog.java new file mode 100644 index 0000000..8f4437b --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/annotation/ApiAccessLog.java @@ -0,0 +1,65 @@ +package co.yixiang.yshop.framework.apilog.core.annotation; + +import co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 访问日志注解 + * + * @author yshop + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ApiAccessLog { + + // ========== 开关字段 ========== + + /** + * 是否记录访问日志 + */ + boolean enable() default true; + /** + * 是否记录请求参数 + * + * 默认记录,主要考虑请求数据一般不大。可手动设置为 false 进行关闭 + */ + boolean requestEnable() default true; + /** + * 是否记录响应结果 + * + * 默认不记录,主要考虑响应数据可能比较大。可手动设置为 true 进行打开 + */ + boolean responseEnable() default false; + /** + * 敏感参数数组 + * + * 添加后,请求参数、响应结果不会记录该参数 + */ + String[] sanitizeKeys() default {}; + + // ========== 模块字段 ========== + + /** + * 操作模块 + * + * 为空时,会尝试读取 {@link io.swagger.v3.oas.annotations.tags.Tag#name()} 属性 + */ + String operateModule() default ""; + /** + * 操作名 + * + * 为空时,会尝试读取 {@link io.swagger.v3.oas.annotations.Operation#summary()} 属性 + */ + String operateName() default ""; + /** + * 操作分类 + * + * 实际并不是数组,因为枚举不能设置 null 作为默认值 + */ + OperateTypeEnum[] operateType() default {}; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/enums/OperateTypeEnum.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/enums/OperateTypeEnum.java new file mode 100644 index 0000000..3f57826 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/enums/OperateTypeEnum.java @@ -0,0 +1,51 @@ +package co.yixiang.yshop.framework.apilog.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 操作日志的操作类型 + * + * @author ruoyi + */ +@Getter +@AllArgsConstructor +public enum OperateTypeEnum { + + /** + * 查询 + */ + GET(1), + /** + * 新增 + */ + CREATE(2), + /** + * 修改 + */ + UPDATE(3), + /** + * 删除 + */ + DELETE(4), + /** + * 导出 + */ + EXPORT(5), + /** + * 导入 + */ + IMPORT(6), + /** + * 其它 + * + * 在无法归类时,可以选择使用其它。因为还有操作名可以进一步标识 + */ + OTHER(0); + + /** + * 类型 + */ + private final Integer type; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/filter/ApiAccessLogFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/filter/ApiAccessLogFilter.java new file mode 100644 index 0000000..ea35aae --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/filter/ApiAccessLogFilter.java @@ -0,0 +1,250 @@ +package co.yixiang.yshop.framework.apilog.core.filter; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum; +import co.yixiang.yshop.framework.apilog.core.service.ApiAccessLogFrameworkService; +import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.common.util.monitor.TracerUtils; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.web.config.WebProperties; +import co.yixiang.yshop.framework.web.core.filter.ApiRequestFilter; +import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; +import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import com.fasterxml.jackson.databind.JsonNode; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.method.HandlerMethod; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Iterator; +import java.util.Map; + +import static co.yixiang.yshop.framework.apilog.core.interceptor.ApiAccessLogInterceptor.*; +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; + +/** + * API 访问日志 Filter + * + * 目的:记录 API 访问日志到数据库中 + * + * @author yshop + */ +@Slf4j +public class ApiAccessLogFilter extends ApiRequestFilter { + + private static final String[] SANITIZE_KEYS = new String[]{"password", "token", "accessToken", "refreshToken"}; + + 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 + @SuppressWarnings("NullableProblems") + 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) { + ApiAccessLogCreateReqDTO accessLog = new ApiAccessLogCreateReqDTO(); + try { + boolean enable = buildApiAccessLog(accessLog, request, beginTime, queryString, requestBody, ex); + if (!enable) { + return; + } + apiAccessLogFrameworkService.createApiAccessLog(accessLog); + } catch (Throwable th) { + log.error("[createApiAccessLog][url({}) log({}) 发生异常]", request.getRequestURI(), toJsonString(accessLog), th); + } + } + + private boolean buildApiAccessLog(ApiAccessLogCreateReqDTO accessLog, HttpServletRequest request, LocalDateTime beginTime, + Map queryString, String requestBody, Exception ex) { + // 判断:是否要记录操作日志 + HandlerMethod handlerMethod = (HandlerMethod) request.getAttribute(ATTRIBUTE_HANDLER_METHOD); + ApiAccessLog accessLogAnnotation = null; + if (handlerMethod != null) { + accessLogAnnotation = handlerMethod.getMethodAnnotation(ApiAccessLog.class); + if (accessLogAnnotation != null && BooleanUtil.isFalse(accessLogAnnotation.enable())) { + return false; + } + } + + // 处理用户信息 + accessLog.setUserId(WebFrameworkUtils.getLoginUserId(request)) + .setUserType(WebFrameworkUtils.getLoginUserType(request)); + // 设置访问结果 + CommonResult result = WebFrameworkUtils.getCommonResult(request); + if (result != null) { + accessLog.setResultCode(result.getCode()).setResultMsg(result.getMsg()); + } else if (ex != null) { + accessLog.setResultCode(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode()) + .setResultMsg(ExceptionUtil.getRootCauseMessage(ex)); + } else { + accessLog.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode()).setResultMsg(""); + } + // 设置请求字段 + accessLog.setTraceId(TracerUtils.getTraceId()).setApplicationName(applicationName) + .setRequestUrl(request.getRequestURI()).setRequestMethod(request.getMethod()) + .setUserAgent(ServletUtils.getUserAgent(request)).setUserIp(ServletUtils.getClientIP(request)); + String[] sanitizeKeys = accessLogAnnotation != null ? accessLogAnnotation.sanitizeKeys() : null; + Boolean requestEnable = accessLogAnnotation != null ? accessLogAnnotation.requestEnable() : Boolean.TRUE; + if (!BooleanUtil.isFalse(requestEnable)) { // 默认记录,所以判断 !false + Map requestParams = MapUtil.builder() + .put("query", sanitizeMap(queryString, sanitizeKeys)) + .put("body", sanitizeJson(requestBody, sanitizeKeys)).build(); + accessLog.setRequestParams(toJsonString(requestParams)); + } + Boolean responseEnable = accessLogAnnotation != null ? accessLogAnnotation.responseEnable() : Boolean.FALSE; + if (BooleanUtil.isTrue(responseEnable)) { // 默认不记录,默认强制要求 true + accessLog.setResponseBody(sanitizeJson(result, sanitizeKeys)); + } + // 持续时间 + accessLog.setBeginTime(beginTime).setEndTime(LocalDateTime.now()) + .setDuration((int) LocalDateTimeUtil.between(accessLog.getBeginTime(), accessLog.getEndTime(), ChronoUnit.MILLIS)); + + // 操作模块 + if (handlerMethod != null) { + Tag tagAnnotation = handlerMethod.getBeanType().getAnnotation(Tag.class); + Operation operationAnnotation = handlerMethod.getMethodAnnotation(Operation.class); + String operateModule = accessLogAnnotation != null ? accessLogAnnotation.operateModule() : + tagAnnotation != null ? StrUtil.nullToDefault(tagAnnotation.name(), tagAnnotation.description()) : null; + String operateName = accessLogAnnotation != null ? accessLogAnnotation.operateName() : + operationAnnotation != null ? operationAnnotation.summary() : null; + OperateTypeEnum operateType = accessLogAnnotation != null && accessLogAnnotation.operateType().length > 0 ? + accessLogAnnotation.operateType()[0] : parseOperateLogType(request); + accessLog.setOperateModule(operateModule).setOperateName(operateName).setOperateType(operateType.getType()); + } + return true; + } + + // ========== 解析 @ApiAccessLog、@Swagger 注解 ========== + + private static OperateTypeEnum parseOperateLogType(HttpServletRequest request) { + RequestMethod requestMethod = RequestMethod.resolve(request.getMethod()); + if (requestMethod == null) { + return OperateTypeEnum.OTHER; + } + 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; + } + } + + // ========== 请求和响应的脱敏逻辑,移除类似 password、token 等敏感字段 ========== + + private static String sanitizeMap(Map map, String[] sanitizeKeys) { + if (CollUtil.isNotEmpty(map)) { + return null; + } + if (sanitizeKeys != null) { + MapUtil.removeAny(map, sanitizeKeys); + } + MapUtil.removeAny(map, SANITIZE_KEYS); + return JsonUtils.toJsonString(map); + } + + private static String sanitizeJson(String jsonString, String[] sanitizeKeys) { + if (StrUtil.isEmpty(jsonString)) { + return null; + } + try { + JsonNode rootNode = JsonUtils.parseTree(jsonString); + sanitizeJson(rootNode, sanitizeKeys); + return JsonUtils.toJsonString(rootNode); + } catch (Exception e) { + // 脱敏失败的情况下,直接忽略异常,避免影响用户请求 + log.error("[sanitizeJson][脱敏({}) 发生异常]", jsonString, e); + return jsonString; + } + } + + private static String sanitizeJson(CommonResult commonResult, String[] sanitizeKeys) { + if (commonResult == null) { + return null; + } + String jsonString = toJsonString(commonResult); + try { + JsonNode rootNode = JsonUtils.parseTree(jsonString); + sanitizeJson(rootNode.get("data"), sanitizeKeys); // 只处理 data 字段,不处理 code、msg 字段,避免错误被脱敏掉 + return JsonUtils.toJsonString(rootNode); + } catch (Exception e) { + // 脱敏失败的情况下,直接忽略异常,避免影响用户请求 + log.error("[sanitizeJson][脱敏({}) 发生异常]", jsonString, e); + return jsonString; + } + } + + private static void sanitizeJson(JsonNode node, String[] sanitizeKeys) { + // 情况一:数组,遍历处理 + if (node.isArray()) { + for (JsonNode childNode : node) { + sanitizeJson(childNode, sanitizeKeys); + } + return; + } + // 情况二:非 Object,只是某个值,直接返回 + if (!node.isObject()) { + return; + } + // 情况三:Object,遍历处理 + Iterator> iterator = node.properties().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + if (ArrayUtil.contains(sanitizeKeys, entry.getKey()) + || ArrayUtil.contains(SANITIZE_KEYS, entry.getKey())) { + iterator.remove(); + continue; + } + sanitizeJson(entry.getValue(), sanitizeKeys); + } + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/interceptor/ApiAccessLogInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/interceptor/ApiAccessLogInterceptor.java new file mode 100644 index 0000000..bde8236 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/interceptor/ApiAccessLogInterceptor.java @@ -0,0 +1,67 @@ +package co.yixiang.yshop.framework.apilog.core.interceptor; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.common.util.spring.SpringUtils; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StopWatch; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +import java.util.Map; + +/** + * API 访问日志 Interceptor + * + * 目的:在非 prod 环境时,打印 request 和 response 两条日志到日志文件(控制台)中。 + * + * @author yshop + */ +@Slf4j +public class ApiAccessLogInterceptor implements HandlerInterceptor { + + public static final String ATTRIBUTE_HANDLER_METHOD = "HANDLER_METHOD"; + + private static final String ATTRIBUTE_STOP_WATCH = "ApiAccessLogInterceptor.StopWatch"; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + // 记录 HandlerMethod,提供给 ApiAccessLogFilter 使用 + HandlerMethod handlerMethod = handler instanceof HandlerMethod ? (HandlerMethod) handler : null; + if (handlerMethod != null) { + request.setAttribute(ATTRIBUTE_HANDLER_METHOD, handlerMethod); + } + + // 打印 request 日志 + if (!SpringUtils.isProd()) { + Map queryString = ServletUtils.getParamMap(request); + String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtils.getBody(request) : null; + if (CollUtil.isEmpty(queryString) && StrUtil.isEmpty(requestBody)) { + log.info("[preHandle][开始请求 URL({}) 无参数]", request.getRequestURI()); + } else { + log.info("[preHandle][开始请求 URL({}) 参数({})]", request.getRequestURI(), + StrUtil.blankToDefault(requestBody, queryString.toString())); + } + // 计时 + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); + request.setAttribute(ATTRIBUTE_STOP_WATCH, stopWatch); + } + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { + // 打印 response 日志 + if (!SpringUtils.isProd()) { + StopWatch stopWatch = (StopWatch) request.getAttribute(ATTRIBUTE_STOP_WATCH); + stopWatch.stop(); + log.info("[afterCompletion][完成请求 URL({}) 耗时({} ms)]", + request.getRequestURI(), stopWatch.getTotalTimeMillis()); + } + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkService.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkService.java new file mode 100644 index 0000000..43ff182 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkService.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.framework.apilog.core.service; + +import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; + +/** + * API 访问日志 Framework Service 接口 + * + * @author yshop + */ +public interface ApiAccessLogFrameworkService { + + /** + * 创建 API 访问日志 + * + * @param reqDTO API 访问日志 + */ + void createApiAccessLog(ApiAccessLogCreateReqDTO reqDTO); + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java similarity index 76% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java index 275b669..5101412 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java @@ -1,6 +1,5 @@ package co.yixiang.yshop.framework.apilog.core.service; -import cn.hutool.core.bean.BeanUtil; import co.yixiang.yshop.module.infra.api.logger.ApiAccessLogApi; import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; import lombok.RequiredArgsConstructor; @@ -20,8 +19,7 @@ public class ApiAccessLogFrameworkServiceImpl implements ApiAccessLogFrameworkSe @Override @Async - public void createApiAccessLog(ApiAccessLog apiAccessLog) { - ApiAccessLogCreateReqDTO reqDTO = BeanUtil.copyProperties(apiAccessLog, ApiAccessLogCreateReqDTO.class); + public void createApiAccessLog(ApiAccessLogCreateReqDTO reqDTO) { apiAccessLogApi.createApiAccessLog(reqDTO); } diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkService.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkService.java new file mode 100644 index 0000000..3baa0e4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkService.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.framework.apilog.core.service; + +import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; + +/** + * API 错误日志 Framework Service 接口 + * + * @author yshop + */ +public interface ApiErrorLogFrameworkService { + + /** + * 创建 API 错误日志 + * + * @param reqDTO API 错误日志 + */ + void createApiErrorLog(ApiErrorLogCreateReqDTO reqDTO); + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java similarity index 76% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java index 1468222..87ab855 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java @@ -1,6 +1,5 @@ package co.yixiang.yshop.framework.apilog.core.service; -import cn.hutool.core.bean.BeanUtil; import co.yixiang.yshop.module.infra.api.logger.ApiErrorLogApi; import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; import lombok.RequiredArgsConstructor; @@ -20,8 +19,7 @@ public class ApiErrorLogFrameworkServiceImpl implements ApiErrorLogFrameworkServ @Override @Async - public void createApiErrorLog(ApiErrorLog apiErrorLog) { - ApiErrorLogCreateReqDTO reqDTO = BeanUtil.copyProperties(apiErrorLog, ApiErrorLogCreateReqDTO.class); + public void createApiErrorLog(ApiErrorLogCreateReqDTO reqDTO) { apiErrorLogApi.createApiErrorLog(reqDTO); } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/java/co/yixiang/yshop/framework/banner/config/YshopBannerAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/banner/config/YshopBannerAutoConfiguration.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/java/co/yixiang/yshop/framework/banner/config/YshopBannerAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/banner/config/YshopBannerAutoConfiguration.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java similarity index 75% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java index ac68d29..53c8e30 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/banner/core/BannerApplicationRunner.java @@ -17,22 +17,21 @@ import java.util.concurrent.TimeUnit; public class BannerApplicationRunner implements ApplicationRunner { @Override - public void run(ApplicationArguments args) throws Exception { + public void run(ApplicationArguments args) { ThreadUtil.execute(() -> { ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延迟 1 秒,保证输出到结尾 log.info("\n----------------------------------------------------------\n\t" + "项目启动成功!\n\t" + "接口文档: \t{} \n\t" + - "官网地址: \t{} \n\t" + + "开发文档: \t{} \n\t" + "----------------------------------------------------------", - "http://localhost/doc.html", + "https://www.yixiang.co/api-doc/", "https://www.yixiang.co"); + }); } - private static boolean isNotPresent(String className) { - return !ClassUtils.isPresent(className, ClassUtils.getDefaultClassLoader()); - } + } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/annotation/DesensitizeBy.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/annotation/DesensitizeBy.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/annotation/DesensitizeBy.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/annotation/DesensitizeBy.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/handler/DesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/handler/DesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/handler/DesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/handler/DesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/EmailDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/EmailDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/EmailDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/EmailDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/RegexDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/RegexDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/RegexDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/annotation/RegexDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/BankCardDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/BankCardDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/BankCardDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/BankCardDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/IdCardDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/IdCardDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/IdCardDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/IdCardDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/MobileDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/MobileDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/MobileDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/MobileDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/PasswordDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/PasswordDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/PasswordDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/PasswordDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/SliderDesensitize.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/SliderDesensitize.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/SliderDesensitize.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/annotation/SliderDesensitize.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/BankCardDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/BankCardDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/BankCardDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/BankCardDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/IdCardDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/IdCardDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/IdCardDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/IdCardDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/MobileDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/MobileDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/MobileDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/MobileDesensitization.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/PasswordDesensitization.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/PasswordDesensitization.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/PasswordDesensitization.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/desensitize/core/slider/handler/PasswordDesensitization.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/config/YshopJacksonAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/config/YshopJacksonAutoConfiguration.java new file mode 100644 index 0000000..b317bd6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/config/YshopJacksonAutoConfiguration.java @@ -0,0 +1,52 @@ +package co.yixiang.yshop.framework.jackson.config; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.jackson.core.databind.NumberSerializer; +import co.yixiang.yshop.framework.jackson.core.databind.TimestampLocalDateTimeDeserializer; +import co.yixiang.yshop.framework.jackson.core.databind.TimestampLocalDateTimeSerializer; +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 YshopJacksonAutoConfiguration { + + @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 序列化、反序列化规则,使用 Long 时间戳 + .addSerializer(LocalDateTime.class, TimestampLocalDateTimeSerializer.INSTANCE) + .addDeserializer(LocalDateTime.class, TimestampLocalDateTimeDeserializer.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/NumberSerializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/NumberSerializer.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/NumberSerializer.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/NumberSerializer.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeDeserializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeDeserializer.java new file mode 100644 index 0000000..073839c --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeDeserializer.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.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 反序列化器 + * + * @author 老五 + */ +public class TimestampLocalDateTimeDeserializer extends JsonDeserializer { + + public static final TimestampLocalDateTimeDeserializer INSTANCE = new TimestampLocalDateTimeDeserializer(); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + // 将 Long 时间戳,转换为 LocalDateTime 对象 + return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeSerializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeSerializer.java new file mode 100644 index 0000000..240c02f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/jackson/core/databind/TimestampLocalDateTimeSerializer.java @@ -0,0 +1,26 @@ +package co.yixiang.yshop.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 序列化器 + * + * @author 老五 + */ +public class TimestampLocalDateTimeSerializer extends JsonSerializer { + + public static final TimestampLocalDateTimeSerializer INSTANCE = new TimestampLocalDateTimeSerializer(); + + @Override + public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + // 将 LocalDateTime 对象,转换为 Long 时间戳 + gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java index 2761a92..dc9e317 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/SwaggerProperties.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.framework.swagger.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotEmpty; /** * Swagger 配置属性 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java similarity index 92% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java index 9204ea6..c1a7670 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/swagger/config/YshopSwaggerAutoConfiguration.java @@ -10,15 +10,20 @@ 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.models.GroupedOpenApi; +import org.springdoc.core.properties.SpringDocConfigProperties; import org.springdoc.core.providers.JavadocProvider; +import org.springdoc.core.service.OpenAPIService; +import org.springdoc.core.service.SecurityService; +import org.springdoc.core.utils.PropertyResolverUtils; 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.context.annotation.Primary; import org.springframework.http.HttpHeaders; import java.util.HashMap; @@ -52,7 +57,8 @@ public class YshopSwaggerAutoConfiguration { // 接口信息 .info(buildInfo(properties)) // 接口安全配置 - .components(new Components().securitySchemes(securitySchemas)); + .components(new Components().securitySchemes(securitySchemas)) + .addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION)); securitySchemas.keySet().forEach(key -> openAPI.addSecurityItem(new SecurityRequirement().addList(key))); return openAPI; } @@ -86,6 +92,7 @@ public class YshopSwaggerAutoConfiguration { * 自定义 OpenAPI 处理器 */ @Bean + @Primary // 目的:以我们创建的 OpenAPIService Bean 为主,避免一键改包后,启动报错! public OpenAPIService openApiBuilder(Optional openAPI, SecurityService securityParser, SpringDocConfigProperties springDocConfigProperties, @@ -93,7 +100,6 @@ public class YshopSwaggerAutoConfiguration { Optional> openApiBuilderCustomizers, Optional> serverBaseUrlCustomizers, Optional javadocProvider) { - return new OpenAPIService(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomizers, serverBaseUrlCustomizers, javadocProvider); } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java similarity index 93% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java index 3bcb264..1af6898 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/WebProperties.java @@ -7,9 +7,9 @@ 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; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; @ConfigurationProperties(prefix = "yshop.web") @Validated diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java index 4210752..793ad4e 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/config/YshopWebAutoConfiguration.java @@ -9,20 +9,24 @@ import co.yixiang.yshop.framework.web.core.handler.GlobalResponseBodyHandler; import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; 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; +import jakarta.annotation.Resource; +import jakarta.servlet.Filter; @AutoConfiguration @EnableConfigurationProperties(WebProperties.class) @@ -113,4 +117,15 @@ public class YshopWebAutoConfiguration implements WebMvcConfigurer { return bean; } + /** + * 创建 RestTemplate 实例 + * + * @param restTemplateBuilder {@link RestTemplateAutoConfiguration#restTemplateBuilder} + */ + @Bean + @ConditionalOnMissingBean + public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { + return restTemplateBuilder.build(); + } + } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java similarity index 94% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java index 8de1b88..ab27b03 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/ApiRequestFilter.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.framework.web.config.WebProperties; import lombok.RequiredArgsConstructor; import org.springframework.web.filter.OncePerRequestFilter; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; /** * 过滤 /admin-api、/app-api 等 API 请求的过滤器 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java similarity index 82% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java index 261341d..9797705 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyFilter.java @@ -3,10 +3,10 @@ package co.yixiang.yshop.framework.web.core.filter; import co.yixiang.yshop.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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java similarity index 89% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java index b612145..92cf6bb 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/CacheRequestBodyWrapper.java @@ -2,10 +2,10 @@ package co.yixiang.yshop.framework.web.core.filter; import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; -import javax.servlet.ReadListener; -import javax.servlet.ServletInputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.ReadListener; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/DemoFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/DemoFilter.java new file mode 100644 index 0000000..b8ad600 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/filter/DemoFilter.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.framework.web.core.filter; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.DEMO_DENY; + +/** + * 演示 Filter,禁止用户发起写操作,避免影响测试数据 + * + * @author yshop + */ +public class DemoFilter extends OncePerRequestFilter { + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + 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)); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalExceptionHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..7853343 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalExceptionHandler.java @@ -0,0 +1,334 @@ +package co.yixiang.yshop.framework.web.core.handler; + +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.apilog.core.service.ApiErrorLogFrameworkService; +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.collection.SetUtils; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.common.util.monitor.TracerUtils; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.web.core.util.WebFrameworkUtils; +import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.ValidationException; +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 java.time.LocalDateTime; +import java.util.Map; +import java.util.Set; + +import static co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants.*; + +/** + * 全局异常处理器,将 Exception 翻译成 CommonResult + 对应的异常编号 + * + * @author yshop + */ +@RestControllerAdvice +@AllArgsConstructor +@Slf4j +public class GlobalExceptionHandler { + + /** + * 忽略的 ServiceException 错误提示,避免打印过多 logger + */ + public static final Set IGNORE_ERROR_MESSAGES = SetUtils.asSet("无效的刷新令牌"); + + @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") + 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())); + } + + /** + * 处理 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) { + if (!IGNORE_ERROR_MESSAGES.contains(ex.getMessage())) { + // 不包含的时候,才进行打印,避免 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; + } + + // 情况二:处理异常 + 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) { + // 插入错误日志 + ApiErrorLogCreateReqDTO errorLog = new ApiErrorLogCreateReqDTO(); + try { + // 初始化 errorLog + buildExceptionLog(errorLog, req, e); + // 执行插入 errorLog + apiErrorLogFrameworkService.createApiErrorLog(errorLog); + } catch (Throwable th) { + log.error("[createExceptionLog][url({}) log({}) 发生异常]", req.getRequestURI(), JsonUtils.toJsonString(errorLog), th); + } + } + + private void buildExceptionLog(ApiErrorLogCreateReqDTO 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; + } + // 1. 数据报表 + if (message.contains("report_")) { + log.error("[报表模块 yshop-module-report - 表结构未导入][参考 https://www.yixiang.co/report/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[报表模块 yshop-module-report - 表结构未导入][参考 https://www.yixiang.co/report/ 开启]"); + } + // 2. 工作流 + if (message.contains("bpm_")) { + log.error("[工作流模块 yshop-module-bpm - 表结构未导入][参考 https://www.yixiang.co/bpm/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[工作流模块 yshop-module-bpm - 表结构未导入][参考 https://www.yixiang.co/bpm/ 开启]"); + } + // 3. 微信公众号 + if (message.contains("mp_")) { + log.error("[微信公众号 yshop-module-mp - 表结构未导入][参考 https://www.yixiang.co/mp/build/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[微信公众号 yshop-module-mp - 表结构未导入][参考 https://www.yixiang.co/mp/build/ 开启]"); + } + // 4. 商城系统 + if (StrUtil.containsAny(message, "product_", "promotion_", "trade_")) { + log.error("[商城系统 yshop-module-mall - 已禁用][参考 https://www.yixiang.co/mall/build/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[商城系统 yshop-module-mall - 已禁用][参考 https://www.yixiang.co/mall/build/ 开启]"); + } + // 5. ERP 系统 + if (message.contains("erp_")) { + log.error("[ERP 系统 yshop-module-erp - 表结构未导入][参考 https://www.yixiang.co/erp/build/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[ERP 系统 yshop-module-erp - 表结构未导入][参考 https://www.yixiang.co/erp/build/ 开启]"); + } + // 6. CRM 系统 + if (message.contains("crm_")) { + log.error("[CRM 系统 yshop-module-crm - 表结构未导入][参考 https://www.yixiang.co/crm/build/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[CRM 系统 yshop-module-crm - 表结构未导入][参考 https://www.yixiang.co/crm/build/ 开启]"); + } + // 7. 支付平台 + if (message.contains("pay_")) { + log.error("[支付模块 yshop-module-pay - 表结构未导入][参考 https://www.yixiang.co/pay/build/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[支付模块 yshop-module-pay - 表结构未导入][参考 https://www.yixiang.co/pay/build/ 开启]"); + } + return null; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalResponseBodyHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalResponseBodyHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalResponseBodyHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/handler/GlobalResponseBodyHandler.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java similarity index 81% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java index eee5982..3a57140 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/web/core/util/WebFrameworkUtils.java @@ -1,16 +1,18 @@ package co.yixiang.yshop.framework.web.core.util; import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.servlet.ServletUtil; +import co.yixiang.yshop.framework.common.enums.TerminalEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; import co.yixiang.yshop.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; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; /** * 专属于 web 包的工具类 @@ -26,6 +28,13 @@ public class WebFrameworkUtils { public static final String HEADER_TENANT_ID = "tenant-id"; + /** + * 终端的 Header + * + * @see co.yixiang.yshop.framework.common.enums.TerminalEnum + */ + public static final String HEADER_TERMINAL = "terminal"; + private static WebProperties properties; public WebFrameworkUtils(WebProperties webProperties) { @@ -89,10 +98,10 @@ public class WebFrameworkUtils { return userType; } // 2. 其次,基于 URL 前缀的约定 - if (request.getRequestURI().startsWith(properties.getAdminApi().getPrefix())) { + if (request.getServletPath().startsWith(properties.getAdminApi().getPrefix())) { return UserTypeEnum.ADMIN.getValue(); } - if (request.getRequestURI().startsWith(properties.getAppApi().getPrefix())) { + if (request.getServletPath().startsWith(properties.getAppApi().getPrefix())) { return UserTypeEnum.MEMBER.getValue(); } return null; @@ -108,6 +117,15 @@ public class WebFrameworkUtils { 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); } diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/XssProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/XssProperties.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/XssProperties.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/XssProperties.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java similarity index 85% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java index 59ed19a..b11471b 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/config/YshopXssAutoConfiguration.java @@ -21,6 +21,7 @@ import static co.yixiang.yshop.framework.web.config.YshopWebAutoConfiguration.cr @AutoConfiguration @EnableConfigurationProperties(XssProperties.class) +@ConditionalOnProperty(prefix = "yshop.xss", name = "enable", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用 public class YshopXssAutoConfiguration implements WebMvcConfigurer { /** @@ -43,9 +44,11 @@ public class YshopXssAutoConfiguration implements WebMvcConfigurer { @ConditionalOnMissingBean(name = "xssJacksonCustomizer") @ConditionalOnBean(ObjectMapper.class) @ConditionalOnProperty(value = "yshop.xss.enable", havingValue = "true") - public Jackson2ObjectMapperBuilderCustomizer xssJacksonCustomizer(XssCleaner xssCleaner) { + public Jackson2ObjectMapperBuilderCustomizer xssJacksonCustomizer(XssProperties properties, + PathMatcher pathMatcher, + XssCleaner xssCleaner) { // 在反序列化时进行 xss 过滤,可以替换使用 XssStringJsonSerializer,在序列化时进行处理 - return builder -> builder.deserializerByType(String.class, new XssStringJsonDeserializer(xssCleaner)); + return builder -> builder.deserializerByType(String.class, new XssStringJsonDeserializer(properties, pathMatcher, xssCleaner)); } /** diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/JsoupXssCleaner.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/JsoupXssCleaner.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/JsoupXssCleaner.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/JsoupXssCleaner.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/XssCleaner.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/XssCleaner.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/XssCleaner.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/clean/XssCleaner.java diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java index 920a96a..958f490 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssFilter.java @@ -6,10 +6,10 @@ 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 jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java similarity index 96% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java index 0e1c4ce..1bbe1e2 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/filter/XssRequestWrapper.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.framework.xss.core.filter; import co.yixiang.yshop.framework.xss.core.clean.XssCleaner; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; import java.util.LinkedHashMap; import java.util.Map; diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/json/XssStringJsonDeserializer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/json/XssStringJsonDeserializer.java new file mode 100644 index 0000000..32628ed --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/java/co/yixiang/yshop/framework/xss/core/json/XssStringJsonDeserializer.java @@ -0,0 +1,82 @@ +package co.yixiang.yshop.framework.xss.core.json; + +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.xss.config.XssProperties; +import co.yixiang.yshop.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 jakarta.servlet.http.HttpServletRequest; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.PathMatcher; + +import java.io.IOException; + +/** + * XSS 过滤 jackson 反序列化器。 + * 在反序列化的过程中,会对字符串进行 XSS 过滤。 + * + * @author Hccake + */ +@Slf4j +@AllArgsConstructor +public class XssStringJsonDeserializer extends StringDeserializer { + + /** + * 属性 + */ + private final XssProperties properties; + /** + * 路径匹配器 + */ + private final PathMatcher pathMatcher; + + private final XssCleaner xssCleaner; + + @Override + public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + // 1. 白名单 URL 的处理 + HttpServletRequest request = ServletUtils.getRequest(); + if (request != null) { + String uri = ServletUtils.getRequest().getRequestURI(); + if (properties.getExcludeUrls().stream().anyMatch(excludeUrl -> pathMatcher.match(excludeUrl, uri))) { + return p.getText(); + } + } + + // 2. 真正使用 xssCleaner 进行过滤 + 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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..3c8d886 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,6 @@ +co.yixiang.yshop.framework.apilog.config.YshopApiLogAutoConfiguration +co.yixiang.yshop.framework.jackson.config.YshopJacksonAutoConfiguration +co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration +co.yixiang.yshop.framework.web.config.YshopWebAutoConfiguration +co.yixiang.yshop.framework.xss.config.YshopXssAutoConfiguration +co.yixiang.yshop.framework.banner.config.YshopBannerAutoConfiguration \ No newline at end of file diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/resources/banner.txt b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/banner.txt similarity index 97% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/resources/banner.txt rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/banner.txt index e3f6354..41947c7 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-banner/src/main/resources/banner.txt +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/main/resources/banner.txt @@ -1,4 +1,4 @@ -yshop https://www.yixiang.co +意象电商 http://www.yixiang.co Application Version: ${yshop.info.version} Spring Boot Version: ${spring-boot.version} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java similarity index 80% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java index 4656224..00bbfa5 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/DesensitizeTest.java @@ -1,27 +1,23 @@ package co.yixiang.yshop.framework.desensitize.core; import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.desensitize.core.annotation.Address; import co.yixiang.yshop.framework.desensitize.core.regex.annotation.EmailDesensitize; import co.yixiang.yshop.framework.desensitize.core.regex.annotation.RegexDesensitize; -import co.yixiang.yshop.framework.desensitize.core.annotation.Address; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.BankCardDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.CarLicenseDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.ChineseNameDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.FixedPhoneDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.IdCardDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.PasswordDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.MobileDesensitize; -import co.yixiang.yshop.framework.desensitize.core.slider.annotation.SliderDesensitize; -import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; +import co.yixiang.yshop.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.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * {@link DesensitizeTest} 的单元测试 */ -public class DesensitizeTest extends BaseMockitoUnitTest { +@ExtendWith(MockitoExtension.class) +public class DesensitizeTest { @Test public void test() { diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java index 1aac998..6c6676e 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/annotation/Address.java @@ -1,8 +1,8 @@ package co.yixiang.yshop.framework.desensitize.core.annotation; import co.yixiang.yshop.framework.desensitize.core.DesensitizeTest; -import co.yixiang.yshop.framework.desensitize.core.base.annotation.DesensitizeBy; import co.yixiang.yshop.framework.desensitize.core.handler.AddressHandler; +import co.yixiang.yshop.framework.desensitize.core.base.annotation.DesensitizeBy; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import java.lang.annotation.Documented; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/handler/AddressHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/handler/AddressHandler.java similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-desensitize/src/test/java/co/yixiang/yshop/framework/desensitize/core/handler/AddressHandler.java rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-web/src/test/java/co/yixiang/yshop/framework/desensitize/core/handler/AddressHandler.java diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/pom.xml b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/pom.xml new file mode 100644 index 0000000..a32e060 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/pom.xml @@ -0,0 +1,73 @@ + + + + co.yixiang.boot + yshop-framework + ${revision} + + 4.0.0 + yshop-spring-boot-starter-websocket + jar + + ${project.artifactId} + WebSocket 框架,支持多节点的广播 + https://gitee.com/guchengwuyue/yshop-drink + + + + + co.yixiang.boot + yshop-common + + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + provided + + + + org.springframework.boot + spring-boot-starter-websocket + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + org.springframework.kafka + spring-kafka + true + + + org.springframework.amqp + spring-rabbit + true + + + org.apache.rocketmq + rocketmq-spring-boot-starter + true + + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + provided + + + + \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/WebSocketProperties.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/WebSocketProperties.java new file mode 100644 index 0000000..088954a --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/WebSocketProperties.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.framework.websocket.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; + +/** + * WebSocket 配置项 + * + * @author xingyu4j + */ +@ConfigurationProperties("yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/YshopWebSocketAutoConfiguration.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/YshopWebSocketAutoConfiguration.java new file mode 100644 index 0000000..0b13305 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/config/YshopWebSocketAutoConfiguration.java @@ -0,0 +1,177 @@ +package co.yixiang.yshop.framework.websocket.config; + +import co.yixiang.yshop.framework.mq.redis.config.YshopRedisMQConsumerAutoConfiguration; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.websocket.core.handler.JsonWebSocketMessageHandler; +import co.yixiang.yshop.framework.websocket.core.listener.WebSocketMessageListener; +import co.yixiang.yshop.framework.websocket.core.security.LoginUserHandshakeInterceptor; +import co.yixiang.yshop.framework.websocket.core.sender.kafka.KafkaWebSocketMessageConsumer; +import co.yixiang.yshop.framework.websocket.core.sender.kafka.KafkaWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.local.LocalWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageConsumer; +import co.yixiang.yshop.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.redis.RedisWebSocketMessageConsumer; +import co.yixiang.yshop.framework.websocket.core.sender.redis.RedisWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageConsumer; +import co.yixiang.yshop.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.session.WebSocketSessionHandlerDecorator; +import co.yixiang.yshop.framework.websocket.core.session.WebSocketSessionManager; +import co.yixiang.yshop.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 = YshopRedisMQConsumerAutoConfiguration.class) // before YshopRedisMQConsumerAutoConfiguration 的原因是,需要保证 RedisWebSocketMessageConsumer 先创建,才能创建 RedisMessageListenerContainer +@EnableWebSocket // 开启 websocket +@ConditionalOnProperty(prefix = "yshop.websocket", value = "enable", matchIfMissing = true) // 允许使用 yshop.websocket.enable=false 禁用 websocket +@EnableConfigurationProperties(WebSocketProperties.class) +public class YshopWebSocketAutoConfiguration { + + @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 = "yshop.websocket", name = "sender-type", havingValue = "local", matchIfMissing = true) + public class LocalWebSocketMessageSenderConfiguration { + + @Bean + public LocalWebSocketMessageSender localWebSocketMessageSender(WebSocketSessionManager sessionManager) { + return new LocalWebSocketMessageSender(sessionManager); + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yshop.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 = "yshop.websocket", name = "sender-type", havingValue = "rocketmq", matchIfMissing = true) + public class RocketMQWebSocketMessageSenderConfiguration { + + @Bean + public RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender( + WebSocketSessionManager sessionManager, RocketMQTemplate rocketMQTemplate, + @Value("${yshop.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 = "yshop.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("${yshop.websocket.sender-rabbitmq.exchange}") String exchange) { + return new TopicExchange(exchange, + true, // durable: 是否持久化 + false); // exclusive: 是否排它 + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yshop.websocket", name = "sender-type", havingValue = "kafka", matchIfMissing = true) + public class KafkaWebSocketMessageSenderConfiguration { + + @Bean + public KafkaWebSocketMessageSender kafkaWebSocketMessageSender( + WebSocketSessionManager sessionManager, KafkaTemplate kafkaTemplate, + @Value("${yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/handler/JsonWebSocketMessageHandler.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/handler/JsonWebSocketMessageHandler.java new file mode 100644 index 0000000..4456a09 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/handler/JsonWebSocketMessageHandler.java @@ -0,0 +1,83 @@ +package co.yixiang.yshop.framework.websocket.core.handler; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.TypeUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.tenant.core.util.TenantUtils; +import co.yixiang.yshop.framework.websocket.core.listener.WebSocketMessageListener; +import co.yixiang.yshop.framework.websocket.core.message.JsonWebSocketMessage; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/listener/WebSocketMessageListener.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/listener/WebSocketMessageListener.java new file mode 100644 index 0000000..4d71fe4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/listener/WebSocketMessageListener.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.framework.websocket.core.listener; + +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/message/JsonWebSocketMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/message/JsonWebSocketMessage.java new file mode 100644 index 0000000..68aa903 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/message/JsonWebSocketMessage.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.framework.websocket.core.message; + +import co.yixiang.yshop.framework.websocket.core.listener.WebSocketMessageListener; +import lombok.Data; + +import java.io.Serializable; + +/** + * JSON 格式的 WebSocket 消息帧 + * + * @author yshop + */ +@Data +public class JsonWebSocketMessage implements Serializable { + + /** + * 消息类型 + * + * 目的:用于分发到对应的 {@link WebSocketMessageListener} 实现类 + */ + private String type; + /** + * 消息内容 + * + * 要求 JSON 对象 + */ + private String content; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/LoginUserHandshakeInterceptor.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/LoginUserHandshakeInterceptor.java new file mode 100644 index 0000000..edd9aeb --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/LoginUserHandshakeInterceptor.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.framework.websocket.core.security; + +import co.yixiang.yshop.framework.security.core.LoginUser; +import co.yixiang.yshop.framework.security.core.filter.TokenAuthenticationFilter; +import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java new file mode 100644 index 0000000..df253d6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.framework.websocket.core.security; + +import co.yixiang.yshop.framework.security.config.AuthorizeRequestsCustomizer; +import co.yixiang.yshop.framework.websocket.config.WebSocketProperties; +import lombok.RequiredArgsConstructor; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; + +/** + * WebSocket 的权限自定义 + * + * @author yshop + */ +@RequiredArgsConstructor +public class WebSocketAuthorizeRequestsCustomizer extends AuthorizeRequestsCustomizer { + + private final WebSocketProperties webSocketProperties; + + @Override + public void customize(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry registry) { + registry.requestMatchers(webSocketProperties.getPath()).permitAll(); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/AbstractWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/AbstractWebSocketMessageSender.java new file mode 100644 index 0000000..49f6d04 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/AbstractWebSocketMessageSender.java @@ -0,0 +1,104 @@ +package co.yixiang.yshop.framework.websocket.core.sender; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.websocket.core.message.JsonWebSocketMessage; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/WebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/WebSocketMessageSender.java new file mode 100644 index 0000000..42fde38 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/WebSocketMessageSender.java @@ -0,0 +1,52 @@ +package co.yixiang.yshop.framework.websocket.core.sender; + +import co.yixiang.yshop.framework.common.util.json.JsonUtils; + +/** + * WebSocket 消息的发送器接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java new file mode 100644 index 0000000..014749f --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.framework.websocket.core.sender.kafka; + +import lombok.Data; + +/** + * Kafka 广播 WebSocket 的消息 + * + * @author yshop + */ +@Data +public class KafkaWebSocketMessage { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java new file mode 100644 index 0000000..62407ed --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.framework.websocket.core.sender.kafka; + +import lombok.RequiredArgsConstructor; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.kafka.annotation.KafkaListener; + +/** + * {@link KafkaWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author yshop + */ +@RequiredArgsConstructor +public class KafkaWebSocketMessageConsumer { + + private final KafkaWebSocketMessageSender rabbitMQWebSocketMessageSender; + + @RabbitHandler + @KafkaListener( + topics = "${yshop.websocket.sender-kafka.topic}", + // 在 Group 上,使用 UUID 生成其后缀。这样,启动的 Consumer 的 Group 不同,以达到广播消费的目的 + groupId = "${yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java new file mode 100644 index 0000000..a49f9cc --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java @@ -0,0 +1,67 @@ +package co.yixiang.yshop.framework.websocket.core.sender.kafka; + +import co.yixiang.yshop.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java new file mode 100644 index 0000000..b7deee6 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.framework.websocket.core.sender.local; + +import co.yixiang.yshop.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.session.WebSocketSessionManager; + +/** + * 本地的 {@link WebSocketMessageSender} 实现类 + * + * 注意:仅仅适合单机场景!!! + * + * @author yshop + */ +public class LocalWebSocketMessageSender extends AbstractWebSocketMessageSender { + + public LocalWebSocketMessageSender(WebSocketSessionManager sessionManager) { + super(sessionManager); + } + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java new file mode 100644 index 0000000..18fe678 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.framework.websocket.core.sender.rabbitmq; + +import lombok.Data; + +import java.io.Serializable; + +/** + * RabbitMQ 广播 WebSocket 的消息 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java new file mode 100644 index 0000000..48e01bd --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.framework.websocket.core.sender.rabbitmq; + +import lombok.RequiredArgsConstructor; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.*; + +/** + * {@link RabbitMQWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author yshop + */ +@RabbitListener( + bindings = @QueueBinding( + value = @Queue( + // 在 Queue 的名字上,使用 UUID 生成其后缀。这样,启动的 Consumer 的 Queue 不同,以达到广播消费的目的 + name = "${yshop.websocket.sender-rabbitmq.queue}" + "-" + "#{T(java.util.UUID).randomUUID()}", + // Consumer 关闭时,该队列就可以被自动删除了 + autoDelete = "true" + ), + exchange = @Exchange( + name = "${yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java new file mode 100644 index 0000000..70716ef --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java @@ -0,0 +1,62 @@ +package co.yixiang.yshop.framework.websocket.core.sender.rabbitmq; + +import co.yixiang.yshop.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessage.java new file mode 100644 index 0000000..791ba29 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessage.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.framework.websocket.core.sender.redis; + +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java new file mode 100644 index 0000000..ba4c363 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.framework.websocket.core.sender.redis; + +import co.yixiang.yshop.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener; +import lombok.RequiredArgsConstructor; + +/** + * {@link RedisWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java new file mode 100644 index 0000000..12d09c5 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java @@ -0,0 +1,57 @@ +package co.yixiang.yshop.framework.websocket.core.sender.redis; + +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; +import co.yixiang.yshop.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; + +/** + * 基于 Redis 的 {@link WebSocketMessageSender} 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java new file mode 100644 index 0000000..644f1cb --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.framework.websocket.core.sender.rocketmq; + +import lombok.Data; + +/** + * RocketMQ 广播 WebSocket 的消息 + * + * @author yshop + */ +@Data +public class RocketMQWebSocketMessage { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java new file mode 100644 index 0000000..99c14db --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.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 yshop + */ +@RocketMQMessageListener( // 重点:添加 @RocketMQMessageListener 注解,声明消费的 topic + topic = "${yshop.websocket.sender-rocketmq.topic}", + consumerGroup = "${yshop.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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java new file mode 100644 index 0000000..afd8468 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java @@ -0,0 +1,61 @@ +package co.yixiang.yshop.framework.websocket.core.sender.rocketmq; + +import co.yixiang.yshop.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.spring.core.RocketMQTemplate; + +/** + * 基于 RocketMQ 的 {@link WebSocketMessageSender} 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java new file mode 100644 index 0000000..29632a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManager.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManager.java new file mode 100644 index 0000000..8dfccd4 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManager.java @@ -0,0 +1,53 @@ +package co.yixiang.yshop.framework.websocket.core.session; + +import org.springframework.web.socket.WebSocketSession; + +import java.util.Collection; + +/** + * {@link WebSocketSession} 管理器的接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManagerImpl.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManagerImpl.java new file mode 100644 index 0000000..20d67a8 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/session/WebSocketSessionManagerImpl.java @@ -0,0 +1,125 @@ +package co.yixiang.yshop.framework.websocket.core.session; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.security.core.LoginUser; +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/util/WebSocketFrameworkUtils.java b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/util/WebSocketFrameworkUtils.java new file mode 100644 index 0000000..4d8f364 --- /dev/null +++ b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/java/co/yixiang/yshop/framework/websocket/core/util/WebSocketFrameworkUtils.java @@ -0,0 +1,67 @@ +package co.yixiang.yshop.framework.websocket.core.util; + +import co.yixiang.yshop.framework.security.core.LoginUser; +import org.springframework.web.socket.WebSocketSession; + +import java.util.Map; + +/** + * 专属于 web 包的工具类 + * + * @author yshop + */ +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/yshop-drink/yshop-framework/yshop-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to yshop-drink-boot3/yshop-framework/yshop-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/yshop-drink/yshop-module-express/pom.xml b/yshop-drink-boot3/yshop-module-express/pom.xml similarity index 100% rename from yshop-drink/yshop-module-express/pom.xml rename to yshop-drink-boot3/yshop-module-express/pom.xml diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/pom.xml b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/pom.xml rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/pom.xml diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/enums/ErrorCodeConstants.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsCodeEnum.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsCodeEnum.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsCodeEnum.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsCodeEnum.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsStatusEnum.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsStatusEnum.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/enums/KdniaoLogisticsStatusEnum.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiBaseDTO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiBaseDTO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiBaseDTO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiBaseDTO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiDTO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiDTO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiDTO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoApiDTO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderDTO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderDTO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderDTO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderDTO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java similarity index 94% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java index 7e2387a..2d13bd6 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/dto/KdniaoElectronicsOrderGoodsDTO.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.express.kdniao.model.dto; import lombok.*; -import org.omg.PortableInterceptor.INACTIVE; + /** * 电子面单 DTO diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoApiVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoApiVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoApiVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoApiVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoLogisticsVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoLogisticsVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoLogisticsVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoLogisticsVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoOrderVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoOrderVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoOrderVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/model/vo/KdniaoOrderVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java similarity index 99% rename from yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java index 0f6db36..56d7438 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-api/src/main/java/co/yixiang/yshop/module/express/kdniao/util/KdniaoUtil.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.express.kdniao.model.dto.KdniaoElectronicsOrderGo import co.yixiang.yshop.module.express.kdniao.model.vo.KdniaoApiVO; import co.yixiang.yshop.module.express.kdniao.model.vo.KdniaoOrderVO; import com.alibaba.fastjson.JSON; -import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; +import cn.hutool.core.codec.Base64; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; diff --git a/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/pom.xml b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/pom.xml new file mode 100644 index 0000000..5b1990b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/pom.xml @@ -0,0 +1,72 @@ + + + + yshop-module-express + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-express-biz + jar + + ${project.artifactId} + + 快递 模块 + + + + + co.yixiang.boot + yshop-module-express-api + ${revision} + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + + + diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java similarity index 95% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java index 65dece9..f55775b 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/ExpressController.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.express.controller.admin.express; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.module.express.controller.admin.express.vo.*; import co.yixiang.yshop.module.express.convert.express.ExpressConvert; import co.yixiang.yshop.module.express.dal.dataobject.express.ExpressDO; @@ -21,14 +20,14 @@ 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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.io.IOException; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + @Tag(name = "管理后台 - 快递公司") @RestController @@ -93,7 +92,6 @@ public class ExpressController { @GetMapping("/export-excel") @Operation(summary = "导出快递公司 Excel") @PreAuthorize("@ss.hasPermission('order:express:export')") - @OperateLog(type = EXPORT) public void exportExpressExcel(@Valid ExpressExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = expressService.getExpressList(exportReqVO); diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java similarity index 94% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java index 49382dd..67a1290 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressBaseVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.express.controller.admin.express.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * 快递公司 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressCreateReqVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressCreateReqVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressCreateReqVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExcelVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExcelVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExcelVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExportReqVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExportReqVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressExportReqVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressPageReqVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressPageReqVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressPageReqVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressRespVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressRespVO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressRespVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressRespVO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java index c3d67e5..332c124 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/admin/express/vo/ExpressUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 快递公司更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java similarity index 98% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java index e88f424..11d513b 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/controller/app/express/AppExpressController.java @@ -16,7 +16,7 @@ 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 jakarta.annotation.Resource; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/convert/express/ExpressConvert.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/convert/express/ExpressConvert.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/convert/express/ExpressConvert.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/convert/express/ExpressConvert.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/dataobject/express/ExpressDO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/dataobject/express/ExpressDO.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/dataobject/express/ExpressDO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/dataobject/express/ExpressDO.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/mysql/express/ExpressMapper.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/mysql/express/ExpressMapper.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/mysql/express/ExpressMapper.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/mysql/express/ExpressMapper.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/RedisKeyConstants.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/RedisKeyConstants.java similarity index 100% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/RedisKeyConstants.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/RedisKeyConstants.java diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java similarity index 82% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java index e260249..fd849c9 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/dal/redis/express/ExpressRedisDAO.java @@ -1,11 +1,12 @@ package co.yixiang.yshop.module.express.dal.redis.express; import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.module.express.kdniao.model.dto.KdniaoApiBaseDTO; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import static co.yixiang.yshop.module.express.dal.redis.RedisKeyConstants.YSHOP_EXPRESS_CACHE_KEY; @@ -23,17 +24,17 @@ public class ExpressRedisDAO { public KdniaoApiBaseDTO get() { - String redisKey = YSHOP_EXPRESS_CACHE_KEY.getKeyTemplate(); + String redisKey = formatKey(); return JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(redisKey), KdniaoApiBaseDTO.class); } public void set(KdniaoApiBaseDTO apiBaseDTO) { - String redisKey = YSHOP_EXPRESS_CACHE_KEY.getKeyTemplate(); + String redisKey = formatKey(); stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(apiBaseDTO)); } public void delete() { - String redisKey =YSHOP_EXPRESS_CACHE_KEY.getKeyTemplate(); + String redisKey = formatKey(); stringRedisTemplate.delete(redisKey); } diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java similarity index 98% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java index e0585c0..d1c3780 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressService.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.express.controller.admin.express.vo.ExpressUpdate import co.yixiang.yshop.module.express.dal.dataobject.express.ExpressDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java rename to yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java index b3edb08..23f0960 100644 --- a/yshop-drink/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-express/yshop-module-express-biz/src/main/java/co/yixiang/yshop/module/express/service/express/ExpressServiceImpl.java @@ -11,7 +11,7 @@ import co.yixiang.yshop.module.express.dal.mysql.express.ExpressMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-infra/pom.xml b/yshop-drink-boot3/yshop-module-infra/pom.xml similarity index 100% rename from yshop-drink/yshop-module-infra/pom.xml rename to yshop-drink-boot3/yshop-module-infra/pom.xml diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/pom.xml b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/pom.xml rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/pom.xml diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApi.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApi.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApi.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApi.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java similarity index 92% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java index d08f32b..a52739d 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.infra.api.logger; import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * API 访问日志的 API 接口 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java similarity index 92% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java index 30a8080..14fc018 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.infra.api.logger; import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * API 错误日志的 API 接口 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java similarity index 81% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java index 2423192..a06e93a 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.infra.api.logger.dto; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; /** @@ -44,8 +44,11 @@ public class ApiAccessLogCreateReqDTO { /** * 请求参数 */ - @NotNull(message = "请求参数不能为空") private String requestParams; + /** + * 响应结果 + */ + private String responseBody; /** * 用户 IP */ @@ -57,6 +60,21 @@ public class ApiAccessLogCreateReqDTO { @NotNull(message = "User-Agent 不能为空") private String userAgent; + /** + * 操作模块 + */ + private String operateModule; + /** + * 操作名 + */ + private String operateName; + /** + * 操作分类 + * + * 枚举,参见 OperateTypeEnum 类 + */ + private Integer operateType; + /** * 开始请求时间 */ diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java similarity index 98% rename from yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java index 47d3334..b9d980f 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.infra.api.logger.dto; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; /** diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApi.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApi.java new file mode 100644 index 0000000..fb6e77a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApi.java @@ -0,0 +1,54 @@ +package co.yixiang.yshop.module.infra.api.websocket; + +import co.yixiang.yshop.framework.common.util.json.JsonUtils; + +/** + * WebSocket 发送器的 API 接口 + * + * 对 WebSocketMessageSender 进行封装,提供给其它模块使用 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/DictTypeConstants.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/DictTypeConstants.java new file mode 100644 index 0000000..c0ee3dd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/DictTypeConstants.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.module.infra.enums; + +/** + * Infra 字典类型的枚举类 + * + * @author yshop + */ +public interface DictTypeConstants { + + 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 是否类型 + + String OPERATE_TYPE = "infra_operate_type"; // 操作类型 + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..7dab939 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-api/src/main/java/co/yixiang/yshop/module/infra/enums/ErrorCodeConstants.java @@ -0,0 +1,71 @@ +package co.yixiang.yshop.module.infra.enums; + +import co.yixiang.yshop.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 表达式不正确"); + ErrorCode JOB_HANDLER_BEAN_NOT_EXISTS = new ErrorCode(1_001_001_006, "定时任务的处理器 Bean 不存在"); + ErrorCode JOB_HANDLER_BEAN_TYPE_ERROR = new ErrorCode(1_001_001_007, "定时任务的处理器 Bean 类型不正确,未实现 JobHandler 接口"); + + // ========== 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_001_004_002, "表定义已经存在"); + ErrorCode CODEGEN_IMPORT_TABLE_NULL = new ErrorCode(1_001_004_001, "导入的表不存在"); + ErrorCode CODEGEN_IMPORT_COLUMNS_NULL = new ErrorCode(1_001_004_002, "导入的字段不存在"); + ErrorCode CODEGEN_TABLE_NOT_EXISTS = new ErrorCode(1_001_004_004, "表定义不存在"); + ErrorCode CODEGEN_COLUMN_NOT_EXISTS = new ErrorCode(1_001_004_005, "字段义不存在"); + ErrorCode CODEGEN_SYNC_COLUMNS_NULL = new ErrorCode(1_001_004_006, "同步的字段不存在"); + ErrorCode CODEGEN_SYNC_NONE_CHANGE = new ErrorCode(1_001_004_007, "同步失败,不存在改变"); + ErrorCode CODEGEN_TABLE_INFO_TABLE_COMMENT_IS_NULL = new ErrorCode(1_001_004_008, "数据库的表注释未填写"); + ErrorCode CODEGEN_TABLE_INFO_COLUMN_COMMENT_IS_NULL = new ErrorCode(1_001_004_009, "数据库的表字段({})注释未填写"); + ErrorCode CODEGEN_MASTER_TABLE_NOT_EXISTS = new ErrorCode(1_001_004_010, "主表(id={})定义不存在,请检查"); + ErrorCode CODEGEN_SUB_COLUMN_NOT_EXISTS = new ErrorCode(1_001_004_011, "子表的字段(id={})不存在,请检查"); + ErrorCode CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_TABLE = new ErrorCode(1_001_004_012, "主表生成代码失败,原因:它没有子表"); + + // ========== 文件配置 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-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/pom.xml b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/pom.xml new file mode 100644 index 0000000..255c012 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/pom.xml @@ -0,0 +1,130 @@ + + + + co.yixiang.boot + yshop-module-infra + ${revision} + + 4.0.0 + yshop-module-infra-biz + jar + + ${project.artifactId} + + infra 模块,主要提供两块能力: + 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 + 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 + + + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + co.yixiang.boot + yshop-module-infra-api + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + co.yixiang.boot + yshop-spring-boot-starter-websocket + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + com.baomidou + mybatis-plus-generator + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + org.apache.velocity + velocity-engine-core + + + + + co.yixiang.boot + yshop-spring-boot-starter-monitor + + + + de.codecentric + spring-boot-admin-starter-server + + + + + commons-net + commons-net + + + com.jcraft + jsch + + + io.minio + minio + + + + org.apache.tika + tika-core + + + + + diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java similarity index 93% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java index 9f3112f..4bf58b3 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/file/FileApiImpl.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.infra.service.file.FileService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 文件 API 实现类 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java similarity index 94% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java index ff01cf1..bababf5 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiAccessLogApiImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.infra.service.logger.ApiAccessLogService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * API 访问日志的 API 实现类 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java similarity index 94% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java index 094152d..c3979f6 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/logger/ApiErrorLogApiImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.infra.service.logger.ApiErrorLogService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * API 访问日志的 API 接口 diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApiImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApiImpl.java new file mode 100644 index 0000000..902ab9e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/api/websocket/WebSocketSenderApiImpl.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.infra.api.websocket; + +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import org.springframework.stereotype.Component; + +import jakarta.annotation.Resource; + +/** + * WebSocket 发送器的 API 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java similarity index 85% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java index ea1c8c4..3b9cb3d 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/CodegenController.java @@ -4,7 +4,7 @@ import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ZipUtil; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO; import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenPreviewRespVO; @@ -16,17 +16,17 @@ import co.yixiang.yshop.module.infra.convert.codegen.CodegenConvert; import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenColumnDO; import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenTableDO; import co.yixiang.yshop.module.infra.service.codegen.CodegenService; -import io.swagger.v3.oas.annotations.tags.Tag; +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.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; 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; @@ -35,6 +35,7 @@ import java.util.Map; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static co.yixiang.yshop.module.infra.framework.file.core.utils.FileTypeUtils.writeAttachment; @Tag(name = "管理后台 - 代码生成器") @RestController @@ -60,12 +61,21 @@ public class CodegenController { return success(codegenService.getDatabaseTableList(dataSourceConfigId, name, comment)); } + @GetMapping("/table/list") + @Operation(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(summary = "获得表定义分页") @PreAuthorize("@ss.hasPermission('infra:codegen:query')") - public CommonResult> getCodeGenTablePage(@Valid CodegenTablePageReqVO pageReqVO) { + public CommonResult> getCodegenTablePage(@Valid CodegenTablePageReqVO pageReqVO) { PageResult pageResult = codegenService.getCodegenTablePage(pageReqVO); - return success(CodegenConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, CodegenTableRespVO.class)); } @GetMapping("/detail") @@ -73,7 +83,7 @@ public class CodegenController { @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('infra:codegen:query')") public CommonResult getCodegenDetail(@RequestParam("tableId") Long tableId) { - CodegenTableDO table = codegenService.getCodegenTablePage(tableId); + CodegenTableDO table = codegenService.getCodegenTable(tableId); List columns = codegenService.getCodegenColumnListByTableId(tableId); // 拼装返回 return success(CodegenConvert.INSTANCE.convert(table, columns)); @@ -135,7 +145,7 @@ public class CodegenController { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ZipUtil.zip(outputStream, paths, ins); // 输出 - ServletUtils.writeAttachment(response, "codegen.zip", outputStream.toByteArray()); + writeAttachment(response, "codegen.zip", outputStream.toByteArray()); } } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java new file mode 100644 index 0000000..3445080 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.infra.controller.admin.codegen.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java new file mode 100644 index 0000000..4c81c1e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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/co.yixiang.yshop/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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java new file mode 100644 index 0000000..a324925 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.controller.admin.codegen.vo; + +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.column.CodegenColumnSaveReqVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.table.CodegenTableSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.Valid; +import jakarta.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java new file mode 100644 index 0000000..09355a8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java @@ -0,0 +1,69 @@ +package co.yixiang.yshop.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 = "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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java new file mode 100644 index 0000000..6ccd9a5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.infra.controller.admin.codegen.vo.column; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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 = "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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java similarity index 81% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java index c35026e..d8fbf59 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java @@ -17,13 +17,13 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class CodegenTablePageReqVO extends PageParam { - @Schema(description = "表名称,模糊匹配", example = "yshop") + @Schema(description = "表名称,模糊匹配", example = "yshop") private String tableName; - @Schema(description = "表描述,模糊匹配", example = "yshop") + @Schema(description = "表描述,模糊匹配", example = "yshop") private String tableComment; - @Schema(description = "实体,模糊匹配", example = "Yshop") + @Schema(description = "实体,模糊匹配", example = "Yshop") private String className; @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java new file mode 100644 index 0000000..cde01e9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java @@ -0,0 +1,72 @@ +package co.yixiang.yshop.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 = "yshop") + private String tableName; + + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + 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 = "yshop") + 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java new file mode 100644 index 0000000..8cd8639 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java @@ -0,0 +1,100 @@ +package co.yixiang.yshop.module.infra.controller.admin.codegen.vo.table; + +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenSceneEnum; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.AssertTrue; +import jakarta.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 = "yshop") + @NotNull(message = "表名称不能为空") + private String tableName; + + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java new file mode 100644 index 0000000..c3fe557 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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 = "yshop") + private String comment; + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java similarity index 81% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java index 20cc2ee..1a73d20 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/ConfigController.java @@ -1,9 +1,10 @@ package co.yixiang.yshop.module.infra.controller.admin.config; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.module.infra.controller.admin.config.vo.*; import co.yixiang.yshop.module.infra.convert.config.ConfigConvert; import co.yixiang.yshop.module.infra.dal.dataobject.config.ConfigDO; @@ -16,15 +17,15 @@ 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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.io.IOException; import java.util.List; +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 参数配置") @RestController @@ -38,15 +39,15 @@ public class ConfigController { @PostMapping("/create") @Operation(summary = "创建参数配置") @PreAuthorize("@ss.hasPermission('infra:config:create')") - public CommonResult createConfig(@Valid @RequestBody ConfigCreateReqVO reqVO) { - return success(configService.createConfig(reqVO)); + public CommonResult createConfig(@Valid @RequestBody ConfigSaveReqVO createReqVO) { + return success(configService.createConfig(createReqVO)); } @PutMapping("/update") @Operation(summary = "修改参数配置") @PreAuthorize("@ss.hasPermission('infra:config:update')") - public CommonResult updateConfig(@Valid @RequestBody ConfigUpdateReqVO reqVO) { - configService.updateConfig(reqVO); + public CommonResult updateConfig(@Valid @RequestBody ConfigSaveReqVO updateReqVO) { + configService.updateConfig(updateReqVO); return success(true); } @@ -84,22 +85,22 @@ public class ConfigController { @GetMapping("/page") @Operation(summary = "获取参数配置分页") @PreAuthorize("@ss.hasPermission('infra:config:query')") - public CommonResult> getConfigPage(@Valid ConfigPageReqVO reqVO) { - PageResult page = configService.getConfigPage(reqVO); + public CommonResult> getConfigPage(@Valid ConfigPageReqVO pageReqVO) { + PageResult page = configService.getConfigPage(pageReqVO); return success(ConfigConvert.INSTANCE.convertPage(page)); } @GetMapping("/export") @Operation(summary = "导出参数配置") @PreAuthorize("@ss.hasPermission('infra:config:export')") - @OperateLog(type = EXPORT) - public void exportConfig(@Valid ConfigExportReqVO reqVO, + @ApiAccessLog(operateType = EXPORT) + public void exportConfig(@Valid ConfigPageReqVO exportReqVO, HttpServletResponse response) throws IOException { - List list = configService.getConfigList(reqVO); - // 拼接数据 - List datas = ConfigConvert.INSTANCE.convertList(list); + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configService.getConfigPage(exportReqVO).getList(); // 输出 - ExcelUtils.write(response, "参数配置.xls", "数据", ConfigExcelVO.class, datas); + ExcelUtils.write(response, "参数配置.xls", "数据", ConfigRespVO.class, + ConfigConvert.INSTANCE.convertList(list)); } } diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java similarity index 78% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java index eb1ffd9..334875c 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigPageReqVO.java @@ -17,13 +17,13 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class ConfigPageReqVO extends PageParam { - @Schema(description = "数据源名称,模糊匹配", example = "名称") + @Schema(description = "数据源名称,模糊匹配", example = "名称") private String name; - @Schema(description = "参数键名,模糊匹配", example = "yshop.db.username") + @Schema(description = "参数键名,模糊匹配", example = "yshop.db.username") private String key; - @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", example = "1") + @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", example = "1") private Integer type; @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigRespVO.java new file mode 100644 index 0000000..3bff967 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigRespVO.java @@ -0,0 +1,56 @@ +package co.yixiang.yshop.module.infra.controller.admin.config.vo; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java new file mode 100644 index 0000000..bdce394 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.module.infra.controller.admin.config.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java similarity index 81% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java index 8baf9bd..bac6f67 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/DataSourceConfigController.java @@ -1,21 +1,20 @@ package co.yixiang.yshop.module.infra.controller.admin.db; import co.yixiang.yshop.framework.common.pojo.CommonResult; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigCreateReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigRespVO; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigUpdateReqVO; -import co.yixiang.yshop.module.infra.convert.db.DataSourceConfigConvert; +import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.db.DataSourceConfigDO; import co.yixiang.yshop.module.infra.service.db.DataSourceConfigService; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -32,14 +31,14 @@ public class DataSourceConfigController { @PostMapping("/create") @Operation(summary = "创建数据源配置") @PreAuthorize("@ss.hasPermission('infra:data-source-config:create')") - public CommonResult createDataSourceConfig(@Valid @RequestBody DataSourceConfigCreateReqVO createReqVO) { + public CommonResult createDataSourceConfig(@Valid @RequestBody DataSourceConfigSaveReqVO createReqVO) { return success(dataSourceConfigService.createDataSourceConfig(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新数据源配置") @PreAuthorize("@ss.hasPermission('infra:data-source-config:update')") - public CommonResult updateDataSourceConfig(@Valid @RequestBody DataSourceConfigUpdateReqVO updateReqVO) { + public CommonResult updateDataSourceConfig(@Valid @RequestBody DataSourceConfigSaveReqVO updateReqVO) { dataSourceConfigService.updateDataSourceConfig(updateReqVO); return success(true); } @@ -58,8 +57,8 @@ public class DataSourceConfigController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('infra:data-source-config:query')") public CommonResult getDataSourceConfig(@RequestParam("id") Long id) { - DataSourceConfigDO dataSourceConfig = dataSourceConfigService.getDataSourceConfig(id); - return success(DataSourceConfigConvert.INSTANCE.convert(dataSourceConfig)); + DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(id); + return success(BeanUtils.toBean(config, DataSourceConfigRespVO.class)); } @GetMapping("/list") @@ -67,7 +66,7 @@ public class DataSourceConfigController { @PreAuthorize("@ss.hasPermission('infra:data-source-config:query')") public CommonResult> getDataSourceConfigList() { List list = dataSourceConfigService.getDataSourceConfigList(); - return success(DataSourceConfigConvert.INSTANCE.convertList(list)); + return success(BeanUtils.toBean(list, DataSourceConfigRespVO.class)); } } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java new file mode 100644 index 0000000..ee2c151 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.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/yixiang-drink") + 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java new file mode 100644 index 0000000..8284a5f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.infra.controller.admin.db.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.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/yixiang-drink") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/Demo01ContactController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/Demo01ContactController.java new file mode 100644 index 0000000..40165ba --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/Demo01ContactController.java @@ -0,0 +1,93 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo01; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactRespVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 示例联系人") +@RestController +@RequestMapping("/infra/demo01-contact") +@Validated +public class Demo01ContactController { + + @Resource + private Demo01ContactService demo01ContactService; + + @PostMapping("/create") + @Operation(summary = "创建示例联系人") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:create')") + public CommonResult createDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO createReqVO) { + return success(demo01ContactService.createDemo01Contact(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新示例联系人") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:update')") + public CommonResult updateDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO updateReqVO) { + demo01ContactService.updateDemo01Contact(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "导出示例联系人 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java new file mode 100644 index 0000000..467aff2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java new file mode 100644 index 0000000..dea2a34 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java new file mode 100644 index 0000000..93934e3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java @@ -0,0 +1,36 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java new file mode 100644 index 0000000..33db703 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java @@ -0,0 +1,90 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo02; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryRespVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 示例分类") +@RestController +@RequestMapping("/infra/demo02-category") +@Validated +public class Demo02CategoryController { + + @Resource + private Demo02CategoryService demo02CategoryService; + + @PostMapping("/create") + @Operation(summary = "创建示例分类") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:create')") + public CommonResult createDemo02Category(@Valid @RequestBody Demo02CategorySaveReqVO createReqVO) { + return success(demo02CategoryService.createDemo02Category(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新示例分类") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:update')") + public CommonResult updateDemo02Category(@Valid @RequestBody Demo02CategorySaveReqVO updateReqVO) { + demo02CategoryService.updateDemo02Category(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "导出示例分类 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java new file mode 100644 index 0000000..63bc0b0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 示例分类列表 Request VO") +@Data +public class Demo02CategoryListReqVO { + + @Schema(description = "名字", example = "yshop") + 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java new file mode 100644 index 0000000..2f8cc7f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java new file mode 100644 index 0000000..86aec77 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/Demo03StudentController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/Demo03StudentController.java new file mode 100644 index 0000000..7d7d133 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/Demo03StudentController.java @@ -0,0 +1,197 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo03; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentRespVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 学生") +@RestController +@RequestMapping("/infra/demo03-student") +@Validated +public class Demo03StudentController { + + @Resource + private Demo03StudentService demo03StudentService; + + @PostMapping("/create") + @Operation(summary = "创建学生") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:create')") + public CommonResult createDemo03Student(@Valid @RequestBody Demo03StudentSaveReqVO createReqVO) { + return success(demo03StudentService.createDemo03Student(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新学生") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:update')") + public CommonResult updateDemo03Student(@Valid @RequestBody Demo03StudentSaveReqVO updateReqVO) { + demo03StudentService.updateDemo03Student(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "导出学生 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:export')") + @ApiAccessLog(operateType = 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(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(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(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(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(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(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(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(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(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(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(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(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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/package-info.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/package-info.java new file mode 100644 index 0000000..179fee6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/package-info.java @@ -0,0 +1 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo03; \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java new file mode 100644 index 0000000..9a286b6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static co.yixiang.yshop.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 = "yshop") + 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java new file mode 100644 index 0000000..c00a4a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java new file mode 100644 index 0000000..b1780ec --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.time.LocalDateTime; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java similarity index 86% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java index bfb8469..d06f742 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileConfigController.java @@ -2,22 +2,21 @@ package co.yixiang.yshop.module.infra.controller.admin.file; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigCreateReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigRespVO; -import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigUpdateReqVO; -import co.yixiang.yshop.module.infra.convert.file.FileConfigConvert; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.file.FileConfigDO; import co.yixiang.yshop.module.infra.service.file.FileConfigService; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -33,14 +32,14 @@ public class FileConfigController { @PostMapping("/create") @Operation(summary = "创建文件配置") @PreAuthorize("@ss.hasPermission('infra:file-config:create')") - public CommonResult createFileConfig(@Valid @RequestBody FileConfigCreateReqVO createReqVO) { + public CommonResult createFileConfig(@Valid @RequestBody FileConfigSaveReqVO createReqVO) { return success(fileConfigService.createFileConfig(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新文件配置") @PreAuthorize("@ss.hasPermission('infra:file-config:update')") - public CommonResult updateFileConfig(@Valid @RequestBody FileConfigUpdateReqVO updateReqVO) { + public CommonResult updateFileConfig(@Valid @RequestBody FileConfigSaveReqVO updateReqVO) { fileConfigService.updateFileConfig(updateReqVO); return success(true); } @@ -67,8 +66,8 @@ public class FileConfigController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('infra:file-config:query')") public CommonResult getFileConfig(@RequestParam("id") Long id) { - FileConfigDO fileConfig = fileConfigService.getFileConfig(id); - return success(FileConfigConvert.INSTANCE.convert(fileConfig)); + FileConfigDO config = fileConfigService.getFileConfig(id); + return success(BeanUtils.toBean(config, FileConfigRespVO.class)); } @GetMapping("/page") @@ -76,7 +75,7 @@ public class FileConfigController { @PreAuthorize("@ss.hasPermission('infra:file-config:query')") public CommonResult> getFileConfigPage(@Valid FileConfigPageReqVO pageVO) { PageResult pageResult = fileConfigService.getFileConfigPage(pageVO); - return success(FileConfigConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, FileConfigRespVO.class)); } @GetMapping("/test") diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileController.java new file mode 100644 index 0000000..6338b73 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/FileController.java @@ -0,0 +1,102 @@ +package co.yixiang.yshop.module.infra.controller.admin.file; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.*; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.module.infra.framework.file.core.utils.FileTypeUtils.writeAttachment; + +@Tag(name = "管理后台 - 文件存储") +@RestController +@RequestMapping("/infra/file") +@Validated +@Slf4j +public class FileController { + + @Resource + private FileService fileService; + + @PostMapping("/upload") + @Operation(summary = "上传文件", description = "模式一:后端上传文件") + public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws Exception { + MultipartFile file = uploadReqVO.getFile(); + String path = uploadReqVO.getPath(); + return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); + } + + @GetMapping("/presigned-url") + @Operation(summary = "获取文件预签名地址", description = "模式二:前端上传文件:用于前端直接上传七牛、阿里云 OSS 等文件存储器") + public CommonResult getFilePresignedUrl(@RequestParam("path") String path) throws Exception { + return success(fileService.getFilePresignedUrl(path)); + } + + @PostMapping("/create") + @Operation(summary = "创建文件", description = "模式二:前端上传文件:配合 presigned-url 接口,记录上传了上传的文件") + public CommonResult createFile(@Valid @RequestBody FileCreateReqVO createReqVO) { + return success(fileService.createFile(createReqVO)); + } + + @DeleteMapping("/delete") + @Operation(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(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/yixiang-drink/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; + } + writeAttachment(response, path, content); + } + + @GetMapping("/page") + @Operation(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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java similarity index 90% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java index 26a3692..b96a616 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java @@ -23,8 +23,8 @@ public class FileConfigPageReqVO extends PageParam { @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) - @Schema(description = "创建时间") private LocalDateTime[] createTime; -} +} \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java new file mode 100644 index 0000000..69740fe --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.infra.controller.admin.file.vo.config; + +import co.yixiang.yshop.module.infra.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java new file mode 100644 index 0000000..686a456 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.module.infra.controller.admin.file.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java new file mode 100644 index 0000000..0bc1743 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@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 = "yshop.jpg") + private String path; + + @NotNull(message = "原文件名不能为空") + @Schema(description = "原文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop.jpg") + private String name; + + @NotNull(message = "文件 URL不能为空") + @Schema(description = "文件 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.yixiang.co/yshop.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java similarity index 76% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java index dbd24ba..e5d1c8c 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePageReqVO.java @@ -17,14 +17,14 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class FilePageReqVO extends PageParam { - @Schema(description = "文件路径,模糊匹配", example = "yshop") + @Schema(description = "文件路径,模糊匹配", example = "yshop") private String path; - @Schema(description = "文件类型,模糊匹配", example = "application/octet-stream") + @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) - @Schema(description = "创建时间") private LocalDateTime[] createTime; } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java new file mode 100644 index 0000000..161ea7a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.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/yixiang-drink/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.yshop.yixiang.co/758d3a5387507358c7236de4c8f96de1c7f5097ff6a7722b34772fb7b76b140f.png") + private String url; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileRespVO.java new file mode 100644 index 0000000..26d2709 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileRespVO.java @@ -0,0 +1,36 @@ +package co.yixiang.yshop.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 = "yshop.jpg") + private String path; + + @Schema(description = "原文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop.jpg") + private String name; + + @Schema(description = "文件 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.yixiang.co/yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java new file mode 100644 index 0000000..1a5e298 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.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 jakarta.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 = "yshopyuanma.png") + private String path; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.http b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.http new file mode 100644 index 0000000..62f8dd6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.http @@ -0,0 +1,5 @@ +### 请求 /infra/job/sync 接口 => 成功 +POST {{baseUrl}}/infra/job/sync +Content-Type: application/json +tenant-id: {{adminTenentId}} +Authorization: Bearer {{token}} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java similarity index 75% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java index 307d618..2c39a09 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobController.java @@ -1,34 +1,36 @@ package co.yixiang.yshop.module.infra.controller.admin.job; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.framework.quartz.core.util.CronUtils; -import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.*; -import co.yixiang.yshop.module.infra.convert.job.JobConvert; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobRespVO; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.job.JobDO; import co.yixiang.yshop.module.infra.service.job.JobService; -import io.swagger.v3.oas.annotations.tags.Tag; +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.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; 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.Collection; import java.util.Collections; import java.util.List; +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 定时任务") @RestController @@ -42,7 +44,7 @@ public class JobController { @PostMapping("/create") @Operation(summary = "创建定时任务") @PreAuthorize("@ss.hasPermission('infra:job:create')") - public CommonResult createJob(@Valid @RequestBody JobCreateReqVO createReqVO) + public CommonResult createJob(@Valid @RequestBody JobSaveReqVO createReqVO) throws SchedulerException { return success(jobService.createJob(createReqVO)); } @@ -50,7 +52,7 @@ public class JobController { @PutMapping("/update") @Operation(summary = "更新定时任务") @PreAuthorize("@ss.hasPermission('infra:job:update')") - public CommonResult updateJob(@Valid @RequestBody JobUpdateReqVO updateReqVO) + public CommonResult updateJob(@Valid @RequestBody JobSaveReqVO updateReqVO) throws SchedulerException { jobService.updateJob(updateReqVO); return success(true); @@ -88,22 +90,21 @@ public class JobController { return success(true); } + @PostMapping("/sync") + @Operation(summary = "同步定时任务") + @PreAuthorize("@ss.hasPermission('infra:job:create')") + public CommonResult syncJob() throws SchedulerException { + jobService.syncJob(); + return success(true); + } + @GetMapping("/get") @Operation(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(JobConvert.INSTANCE.convert(job)); - } - - @GetMapping("/list") - @Operation(summary = "获得定时任务列表") - @Parameter(name = "ids", description = "编号列表", required = true) - @PreAuthorize("@ss.hasPermission('infra:job:query')") - public CommonResult> getJobList(@RequestParam("ids") Collection ids) { - List list = jobService.getJobList(ids); - return success(JobConvert.INSTANCE.convertList(list)); + return success(BeanUtils.toBean(job, JobRespVO.class)); } @GetMapping("/page") @@ -111,19 +112,20 @@ public class JobController { @PreAuthorize("@ss.hasPermission('infra:job:query')") public CommonResult> getJobPage(@Valid JobPageReqVO pageVO) { PageResult pageResult = jobService.getJobPage(pageVO); - return success(JobConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, JobRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导出定时任务 Excel") @PreAuthorize("@ss.hasPermission('infra:job:export')") - @OperateLog(type = EXPORT) - public void exportJobExcel(@Valid JobExportReqVO exportReqVO, + @ApiAccessLog(operateType = EXPORT) + public void exportJobExcel(@Valid JobPageReqVO exportReqVO, HttpServletResponse response) throws IOException { - List list = jobService.getJobList(exportReqVO); + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = jobService.getJobPage(exportReqVO).getList(); // 导出 Excel - List datas = JobConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "定时任务.xls", "数据", JobExcelVO.class, datas); + ExcelUtils.write(response, "定时任务.xls", "数据", JobRespVO.class, + BeanUtils.toBean(list, JobRespVO.class)); } @GetMapping("/get_next_times") @@ -133,8 +135,9 @@ public class JobController { @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) { + 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()); diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobLogController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobLogController.java new file mode 100644 index 0000000..d35e190 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/JobLogController.java @@ -0,0 +1,71 @@ +package co.yixiang.yshop.module.infra.controller.admin.job; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.log.JobLogRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobLogDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 定时任务日志") +@RestController +@RequestMapping("/infra/job-log") +@Validated +public class JobLogController { + + @Resource + private JobLogService jobLogService; + + @GetMapping("/get") + @Operation(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(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(summary = "导出定时任务日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:job:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobPageReqVO.java new file mode 100644 index 0000000..d94ec8a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobPageReqVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.controller.admin.job.vo.job; + +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobRespVO.java new file mode 100644 index 0000000..899d608 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobRespVO.java @@ -0,0 +1,59 @@ +package co.yixiang.yshop.module.infra.controller.admin.job.vo.job; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java new file mode 100644 index 0000000..6f38aea --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.infra.controller.admin.job.vo.job; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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 = "yshop") + 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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java similarity index 89% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java index 1fb5d41..b0e806f 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java @@ -20,7 +20,7 @@ public class JobLogPageReqVO extends PageParam { @Schema(description = "任务编号", example = "10") private Long jobId; - @Schema(description = "处理器的名字,模糊匹配") + @Schema(description = "处理器的名字,模糊匹配") private String handlerName; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @@ -31,7 +31,7 @@ public class JobLogPageReqVO extends PageParam { @Schema(description = "结束执行时间") private LocalDateTime endTime; - @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举") + @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举") private Integer status; } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogRespVO.java new file mode 100644 index 0000000..1e42245 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/job/vo/log/JobLogRespVO.java @@ -0,0 +1,63 @@ +package co.yixiang.yshop.module.infra.controller.admin.job.vo.log; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiAccessLogController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiAccessLogController.java new file mode 100644 index 0000000..34fefd1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiAccessLogController.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.module.infra.controller.admin.logger; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiAccessLogDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - API 访问日志") +@RestController +@RequestMapping("/infra/api-access-log") +@Validated +public class ApiAccessLogController { + + @Resource + private ApiAccessLogService apiAccessLogService; + + @GetMapping("/page") + @Operation(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(summary = "导出API 访问日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:api-access-log:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiErrorLogController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiErrorLogController.java new file mode 100644 index 0000000..6431ed5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/ApiErrorLogController.java @@ -0,0 +1,74 @@ +package co.yixiang.yshop.module.infra.controller.admin.logger; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiErrorLogDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.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(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(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(summary = "导出 API 错误日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:api-error-log:export')") + @ApiAccessLog(operateType = 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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java similarity index 88% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java index 45c36ae..8e06034 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java @@ -26,11 +26,11 @@ public class ApiAccessLogPageReqVO extends PageParam { @Schema(description = "应用名", example = "dashboard") private String applicationName; - @Schema(description = "请求地址,模糊匹配", example = "/xxx/yyy") + @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) - @Schema(description = "开始请求时间") private LocalDateTime[] beginTime; @Schema(description = "执行时长,大于等于,单位:毫秒", example = "100") diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java new file mode 100644 index 0000000..66bb3ee --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java @@ -0,0 +1,99 @@ +package co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "响应结果") + @ExcelProperty("响应结果") + private String responseBody; + + @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, example = "商品模块") + @ExcelProperty("操作模块") + private String operateModule; + + @Schema(description = "操作名", requiredMode = Schema.RequiredMode.REQUIRED, example = "创建商品") + @ExcelProperty("操作名") + private String operateName; + + @Schema(description = "操作分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "操作分类", converter = DictConvert.class) + @DictFormat(co.yixiang.yshop.module.infra.enums.DictTypeConstants.OPERATE_TYPE) + private Integer operateType; + + @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 = "yshop,牛逼!") + @ExcelProperty("结果提示") + private String resultMsg; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java new file mode 100644 index 0000000..b39b31d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java @@ -0,0 +1,112 @@ +package co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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(co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/RedisController.http b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/RedisController.http new file mode 100644 index 0000000..8a0e70f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/RedisController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/RedisController.java new file mode 100644 index 0000000..b01a935 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/RedisController.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.module.infra.controller.admin.redis; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.module.infra.controller.admin.redis.vo.RedisMonitorRespVO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.Properties; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - Redis 监控") +@RestController +@RequestMapping("/infra/redis") +public class RedisController { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @GetMapping("/get-monitor-info") + @Operation(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.serverCommands().info("commandstats")); + assert commandStats != null; // 断言,避免警告 + // 拼接结果返回 + return success(RedisConvert.INSTANCE.build(info, dbSize, commandStats)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java new file mode 100644 index 0000000..a56de64 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/AppFileController.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/AppFileController.java new file mode 100644 index 0000000..51b1221 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/AppFileController.java @@ -0,0 +1,38 @@ +package co.yixiang.yshop.module.infra.controller.app.file; + +import cn.hutool.core.io.IoUtil; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.module.infra.controller.app.file.vo.AppFileUploadReqVO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 文件存储") +@RestController +@RequestMapping("/infra/file") +@Validated +@Slf4j +public class AppFileController { + + @Resource + private FileService fileService; + + @PostMapping("/upload") + @Operation(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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/vo/AppFileUploadReqVO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/vo/AppFileUploadReqVO.java new file mode 100644 index 0000000..92c2190 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/controller/app/file/vo/AppFileUploadReqVO.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.module.infra.controller.app.file.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import jakarta.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 = "yshopyuanma.png") + private String path; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/codegen/CodegenConvert.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/codegen/CodegenConvert.java new file mode 100644 index 0000000..7907b63 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/codegen/CodegenConvert.java @@ -0,0 +1,68 @@ +package co.yixiang.yshop.module.infra.convert.codegen; + +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenPreviewRespVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.column.CodegenColumnRespVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import co.yixiang.yshop.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 = "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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/config/ConfigConvert.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/config/ConfigConvert.java new file mode 100644 index 0000000..220a8c9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/config/ConfigConvert.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.infra.convert.config; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigRespVO; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/file/FileConfigConvert.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/file/FileConfigConvert.java new file mode 100644 index 0000000..1402a68 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/file/FileConfigConvert.java @@ -0,0 +1,22 @@ +package co.yixiang.yshop.module.infra.convert.file; + +import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileConfigDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * 文件配置 Convert + * + * @author yshop + */ +@Mapper +public interface FileConfigConvert { + + FileConfigConvert INSTANCE = Mappers.getMapper(FileConfigConvert.class); + + @Mapping(target = "config", ignore = true) + FileConfigDO convert(FileConfigSaveReqVO bean); + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java similarity index 82% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java index 5292ae8..8c1a79c 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/convert/redis/RedisConvert.java @@ -1,14 +1,11 @@ package co.yixiang.yshop.module.infra.convert.redis; import cn.hutool.core.util.StrUtil; -import co.yixiang.yshop.framework.redis.core.RedisKeyDefine; -import co.yixiang.yshop.module.infra.controller.admin.redis.vo.RedisKeyDefineRespVO; import co.yixiang.yshop.module.infra.controller.admin.redis.vo.RedisMonitorRespVO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.ArrayList; -import java.util.List; import java.util.Properties; @Mapper @@ -29,6 +26,4 @@ public interface RedisConvert { return respVO; } - List convertList(List list); - } diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java similarity index 96% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java index fb66d05..ecf4cd2 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenColumnDO.java @@ -67,12 +67,6 @@ public class CodegenColumnDO extends BaseDO { * 关联 {@link TableField#isKeyFlag()} */ private Boolean primaryKey; - /** - * 是否自增 - * - * 关联 {@link TableField#isKeyIdentityFlag()} - */ - private Boolean autoIncrement; /** * 排序 */ diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java similarity index 76% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java index 03b38b7..3dd1132 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/codegen/CodegenTableDO.java @@ -116,4 +116,43 @@ public class CodegenTableDO extends BaseDO { */ 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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/config/ConfigDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/config/ConfigDO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/config/ConfigDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/config/ConfigDO.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/db/DataSourceConfigDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/db/DataSourceConfigDO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/db/DataSourceConfigDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/db/DataSourceConfigDO.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java new file mode 100644 index 0000000..58f2cbf --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java @@ -0,0 +1,54 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.demo.demo01; + +import co.yixiang.yshop.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; + +/** + * 示例联系人 DO + * + * @author yshop + */ +@TableName("yshop_demo01_contact") +@KeySequence("yshop_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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java new file mode 100644 index 0000000..f0cb93d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.demo.demo02; + +import co.yixiang.yshop.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.*; + +/** + * 示例分类 DO + * + * @author yshop + */ +@TableName("yshop_demo02_category") +@KeySequence("yshop_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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java new file mode 100644 index 0000000..85c57e4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03; + +import co.yixiang.yshop.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.*; + +/** + * 学生课程 DO + * + * @author yshop + */ +@TableName("yshop_demo03_course") +@KeySequence("yshop_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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java new file mode 100644 index 0000000..e4fa7ff --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03; + +import co.yixiang.yshop.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.*; + +/** + * 学生班级 DO + * + * @author yshop + */ +@TableName("yshop_demo03_grade") +@KeySequence("yshop_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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java new file mode 100644 index 0000000..148691c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java @@ -0,0 +1,50 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03; + +import co.yixiang.yshop.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; + +/** + * 学生 DO + * + * @author yshop + */ +@TableName("yshop_demo03_student") +@KeySequence("yshop_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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileConfigDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileConfigDO.java new file mode 100644 index 0000000..d5778d1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileConfigDO.java @@ -0,0 +1,101 @@ +package co.yixiang.yshop.module.infra.dal.dataobject.file; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.db.DBFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.ftp.FtpFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.local.LocalFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.s3.S3FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.sftp.SftpFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.enums.FileStorageEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; +import com.fasterxml.jackson.core.type.TypeReference; +import lombok.*; + +/** + * 文件配置表 + * + * @author yshop + */ +@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 = FileClientConfigTypeHandler.class) + private FileClientConfig config; + + public static class FileClientConfigTypeHandler extends AbstractJsonTypeHandler { + + @Override + protected Object parse(String json) { + FileClientConfig config = JsonUtils.parseObjectQuietly(json, new TypeReference<>() {}); + if (config != null) { + return config; + } + + // 兼容老版本的包路径 + String className = JsonUtils.parseObject(json, "@class", String.class); + className = StrUtil.subAfter(className, ".", true); + switch (className) { + case "DBFileClientConfig": + return JsonUtils.parseObject2(json, DBFileClientConfig.class); + case "FtpFileClientConfig": + return JsonUtils.parseObject2(json, FtpFileClientConfig.class); + case "LocalFileClientConfig": + return JsonUtils.parseObject2(json, LocalFileClientConfig.class); + case "SftpFileClientConfig": + return JsonUtils.parseObject2(json, SftpFileClientConfig.class); + case "S3FileClientConfig": + return JsonUtils.parseObject2(json, S3FileClientConfig.class); + default: + throw new IllegalArgumentException("未知的 FileClientConfig 类型:" + json); + } + } + + @Override + protected String toJson(Object obj) { + return JsonUtils.toJsonString(obj); + } + + } + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java similarity index 88% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java index 8660cc6..9967dd2 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileContentDO.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.module.infra.dal.dataobject.file; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; +import co.yixiang.yshop.module.infra.framework.file.core.client.db.DBFileClient; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,7 +11,7 @@ import lombok.*; /** * 文件内容表 * - * 专门用于存储 {@link co.yixiang.yshop.framework.file.core.client.db.DBFileClient} 的文件内容 + * 专门用于存储 {@link DBFileClient} 的文件内容 * * @author yshop */ diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileDO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/file/FileDO.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobDO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobDO.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobLogDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobLogDO.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobLogDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/job/JobLogDO.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java similarity index 78% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java index 5185acb..a088102 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiAccessLogDO.java @@ -1,5 +1,6 @@ package co.yixiang.yshop.module.infra.dal.dataobject.logger; +import co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; @@ -25,6 +26,16 @@ import java.time.LocalDateTime; @AllArgsConstructor public class ApiAccessLogDO extends BaseDO { + /** + * {@link #requestParams} 的最大长度 + */ + public static final Integer REQUEST_PARAMS_MAX_LENGTH = 8000; + + /** + * {@link #resultMsg} 的最大长度 + */ + public static final Integer RESULT_MSG_MAX_LENGTH = 512; + /** * 编号 */ @@ -70,6 +81,10 @@ public class ApiAccessLogDO extends BaseDO { * body: Quest Body */ private String requestParams; + /** + * 响应结果 + */ + private String responseBody; /** * 用户 IP */ @@ -81,6 +96,21 @@ public class ApiAccessLogDO extends BaseDO { // ========== 执行相关字段 ========== + /** + * 操作模块 + */ + private String operateModule; + /** + * 操作名 + */ + private String operateName; + /** + * 操作分类 + * + * 枚举 {@link OperateTypeEnum} + */ + private Integer operateType; + /** * 开始请求时间 */ @@ -93,6 +123,7 @@ public class ApiAccessLogDO extends BaseDO { * 执行时长,单位:毫秒 */ private Integer duration; + /** * 结果码 * diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java similarity index 96% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java index cbf36fa..28434b1 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/dataobject/logger/ApiErrorLogDO.java @@ -25,6 +25,12 @@ import java.time.LocalDateTime; @KeySequence(value = "infra_api_error_log_seq") public class ApiErrorLogDO extends BaseDO { + + /** + * {@link #requestParams} 的最大长度 + */ + public static final Integer REQUEST_PARAMS_MAX_LENGTH = 8000; + /** * 编号 */ diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenColumnMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenColumnMapper.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenColumnMapper.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenColumnMapper.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java similarity index 80% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java index 38a019e..d6df315 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/codegen/CodegenTableMapper.java @@ -22,11 +22,18 @@ public interface CodegenTableMapper extends BaseMapperX { .likeIfPresent(CodegenTableDO::getTableName, pageReqVO.getTableName()) .likeIfPresent(CodegenTableDO::getTableComment, pageReqVO.getTableComment()) .likeIfPresent(CodegenTableDO::getClassName, pageReqVO.getClassName()) - .betweenIfPresent(CodegenTableDO::getCreateTime, pageReqVO.getCreateTime())); + .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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/config/ConfigMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/config/ConfigMapper.java new file mode 100644 index 0000000..c79acb5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/config/ConfigMapper.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.infra.dal.mysql.config; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import co.yixiang.yshop.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/db/DataSourceConfigMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/db/DataSourceConfigMapper.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/db/DataSourceConfigMapper.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/db/DataSourceConfigMapper.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java new file mode 100644 index 0000000..e313f98 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java @@ -0,0 +1,26 @@ +package co.yixiang.yshop.module.infra.dal.mysql.demo.demo01; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 示例联系人 Mapper + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java new file mode 100644 index 0000000..2b7ac07 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.infra.dal.mysql.demo.demo02; + +import java.util.*; + +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 示例分类 Mapper + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java new file mode 100644 index 0000000..dd4e759 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.infra.dal.mysql.demo.demo03; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 学生课程 Mapper + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java new file mode 100644 index 0000000..eb76f11 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java @@ -0,0 +1,32 @@ +package co.yixiang.yshop.module.infra.dal.mysql.demo.demo03; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 学生班级 Mapper + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java new file mode 100644 index 0000000..9f3ac25 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.infra.dal.mysql.demo.demo03; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import org.apache.ibatis.annotations.Mapper; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.*; + +/** + * 学生 Mapper + * + * @author yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java similarity index 90% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java index 8d41a10..b624263 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileConfigMapper.java @@ -18,4 +18,8 @@ public interface FileConfigMapper extends BaseMapperX { .orderByDesc(FileConfigDO::getId)); } + default FileConfigDO selectByMaster() { + return selectOne(FileConfigDO::getMaster, true); + } + } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileContentMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileContentMapper.java new file mode 100644 index 0000000..d831f73 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileContentMapper.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.infra.dal.mysql.file; + +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileContentDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface FileContentMapper extends BaseMapper { + + default void deleteByConfigIdAndPath(Long configId, String path) { + this.delete(new LambdaQueryWrapper() + .eq(FileContentDO::getConfigId, configId) + .eq(FileContentDO::getPath, path)); + } + + default List selectListByConfigIdAndPath(Long configId, String path) { + return selectList(new LambdaQueryWrapper() + .eq(FileContentDO::getConfigId, configId) + .eq(FileContentDO::getPath, path)); + } + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileMapper.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileMapper.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/file/FileMapper.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobLogMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobLogMapper.java new file mode 100644 index 0000000..96d660f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobLogMapper.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.module.infra.dal.mysql.job; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobMapper.java new file mode 100644 index 0000000..ba5fb74 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/job/JobMapper.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.infra.dal.mysql.job; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 定时任务 Mapper + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiAccessLogMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiAccessLogMapper.java new file mode 100644 index 0000000..44355f6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiAccessLogMapper.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.module.infra.dal.mysql.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiErrorLogMapper.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiErrorLogMapper.java new file mode 100644 index 0000000..7a0c548 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/dal/mysql/logger/ApiErrorLogMapper.java @@ -0,0 +1,44 @@ +package co.yixiang.yshop.module.infra.dal.mysql.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java similarity index 85% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java index f49ddd3..3711095 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java @@ -16,8 +16,8 @@ public enum CodegenColumnHtmlTypeEnum { RADIO("radio"), // 单选框 CHECKBOX("checkbox"), // 复选框 DATETIME("datetime"), // 日期控件 - UPLOAD_IMAGE("upload_image"), // 上传图片 - UPLOAD_FILE("upload_file"), // 上传文件 + IMAGE_UPLOAD("imageUpload"), // 上传图片 + FILE_UPLOAD("fileUpload"), // 上传文件 EDITOR("editor"), // 富文本控件 ; diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnListConditionEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnListConditionEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnListConditionEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenColumnListConditionEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenFrontTypeEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenFrontTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenFrontTypeEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenFrontTypeEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenSceneEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenSceneEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenSceneEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenSceneEnum.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenTemplateTypeEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenTemplateTypeEnum.java new file mode 100644 index 0000000..8d8f86a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/codegen/CodegenTemplateTypeEnum.java @@ -0,0 +1,53 @@ +package co.yixiang.yshop.module.infra.enums.codegen; + +import co.yixiang.yshop.framework.common.util.object.ObjectUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Objects; + +/** + * 代码生成模板类型 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/config/ConfigTypeEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/config/ConfigTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/config/ConfigTypeEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/config/ConfigTypeEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobLogStatusEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobLogStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobLogStatusEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobLogStatusEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobStatusEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobStatusEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/job/JobStatusEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenConfiguration.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenConfiguration.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenConfiguration.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenConfiguration.java diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java similarity index 90% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java index 4741bd6..ad48250 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/codegen/config/CodegenProperties.java @@ -5,8 +5,8 @@ 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 jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.Collection; @ConfigurationProperties(prefix = "yshop.codegen") diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/config/YshopFileAutoConfiguration.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/config/YshopFileAutoConfiguration.java new file mode 100644 index 0000000..0e894a0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/config/YshopFileAutoConfiguration.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.infra.framework.file.config; + +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientFactory; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientFactoryImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 文件配置类 + * + * @author yshop + */ +@Configuration(proxyBeanMethods = false) +public class YshopFileAutoConfiguration { + + @Bean + public FileClientFactory fileClientFactory() { + return new FileClientFactoryImpl(); + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/AbstractFileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/AbstractFileClient.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/AbstractFileClient.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/AbstractFileClient.java index 394e87a..ec74a6d 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/AbstractFileClient.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/AbstractFileClient.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.file.core.client; +package co.yixiang.yshop.module.infra.framework.file.core.client; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; @@ -30,7 +30,7 @@ public abstract class AbstractFileClient implem */ public final void init() { doInit(); - log.info("[init][配置({}) 初始化完成]", config); + log.debug("[init][配置({}) 初始化完成]", config); } /** diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClient.java new file mode 100644 index 0000000..9096108 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClient.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.infra.framework.file.core.client; + +import co.yixiang.yshop.module.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; + +/** + * 文件客户端 + * + * @author yshop + */ +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/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientConfig.java similarity index 87% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientConfig.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientConfig.java index 5d77e51..844f476 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientConfig.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientConfig.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.file.core.client; +package co.yixiang.yshop.module.infra.framework.file.core.client; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactory.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactory.java new file mode 100644 index 0000000..1d98673 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactory.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.framework.file.core.client; + +import co.yixiang.yshop.module.infra.framework.file.core.enums.FileStorageEnum; + +public interface FileClientFactory { + + /** + * 获得文件客户端 + * + * @param configId 配置编号 + * @return 文件客户端 + */ + FileClient getFileClient(Long configId); + + /** + * 创建文件客户端 + * + * @param configId 配置编号 + * @param storage 存储器的枚举 {@link FileStorageEnum} + * @param config 文件配置 + */ + void createOrUpdateFileClient(Long configId, Integer storage, Config config); + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientFactoryImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactoryImpl.java similarity index 92% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientFactoryImpl.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactoryImpl.java index c3836d1..59e65b7 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/FileClientFactoryImpl.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/FileClientFactoryImpl.java @@ -1,8 +1,8 @@ -package co.yixiang.yshop.framework.file.core.client; +package co.yixiang.yshop.module.infra.framework.file.core.client; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ReflectUtil; -import co.yixiang.yshop.framework.file.core.enums.FileStorageEnum; +import co.yixiang.yshop.module.infra.framework.file.core.enums.FileStorageEnum; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ConcurrentHashMap; diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClient.java new file mode 100644 index 0000000..6981baa --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClient.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.infra.framework.file.core.client.db; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.extra.spring.SpringUtil; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileContentDO; +import co.yixiang.yshop.module.infra.dal.mysql.file.FileContentMapper; +import co.yixiang.yshop.module.infra.framework.file.core.client.AbstractFileClient; + +import java.util.Comparator; +import java.util.List; + +/** + * 基于 DB 存储的文件客户端的配置类 + * + * @author yshop + */ +public class DBFileClient extends AbstractFileClient { + + private FileContentMapper fileContentMapper; + + public DBFileClient(Long id, DBFileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + fileContentMapper = SpringUtil.getBean(FileContentMapper.class); + } + + @Override + public String upload(byte[] content, String path, String type) { + FileContentDO contentDO = new FileContentDO().setConfigId(getId()) + .setPath(path).setContent(content); + fileContentMapper.insert(contentDO); + // 拼接返回路径 + return super.formatFileUrl(config.getDomain(), path); + } + + @Override + public void delete(String path) { + fileContentMapper.deleteByConfigIdAndPath(getId(), path); + } + + @Override + public byte[] getContent(String path) { + List list = fileContentMapper.selectListByConfigIdAndPath(getId(), path); + if (CollUtil.isEmpty(list)) { + return null; + } + // 排序后,拿 id 最大的,即最后上传的 + list.sort(Comparator.comparing(FileContentDO::getId)); + return CollUtil.getLast(list).getContent(); + } + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClientConfig.java new file mode 100644 index 0000000..1e1f8a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/db/DBFileClientConfig.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.framework.file.core.client.db; + +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import jakarta.validation.constraints.NotEmpty; + +/** + * 基于 DB 存储的文件客户端的配置类 + * + * @author yshop + */ +@Data +public class DBFileClientConfig implements FileClientConfig { + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClient.java similarity index 94% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClient.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClient.java index 0c38367..0108def 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClient.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClient.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.file.core.client.ftp; +package co.yixiang.yshop.module.infra.framework.file.core.client.ftp; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; @@ -6,7 +6,7 @@ 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 co.yixiang.yshop.framework.file.core.client.AbstractFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.AbstractFileClient; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClientConfig.java similarity index 81% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClientConfig.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClientConfig.java index 6a633bc..724e831 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/ftp/FtpFileClientConfig.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/ftp/FtpFileClientConfig.java @@ -1,11 +1,11 @@ -package co.yixiang.yshop.framework.file.core.client.ftp; +package co.yixiang.yshop.module.infra.framework.file.core.client.ftp; -import co.yixiang.yshop.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; import lombok.Data; import org.hibernate.validator.constraints.URL; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * Ftp 文件客户端的配置类 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/local/LocalFileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClient.java similarity index 88% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/local/LocalFileClient.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClient.java index 16e9510..d753cbe 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/local/LocalFileClient.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClient.java @@ -1,7 +1,7 @@ -package co.yixiang.yshop.framework.file.core.client.local; +package co.yixiang.yshop.module.infra.framework.file.core.client.local; import cn.hutool.core.io.FileUtil; -import co.yixiang.yshop.framework.file.core.client.AbstractFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.AbstractFileClient; import java.io.File; diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClientConfig.java new file mode 100644 index 0000000..b393d01 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/local/LocalFileClientConfig.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.infra.framework.file.core.client.local; + +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import jakarta.validation.constraints.NotEmpty; + +/** + * 本地文件客户端的配置类 + * + * @author yshop + */ +@Data +public class LocalFileClientConfig implements FileClientConfig { + + /** + * 基础路径 + */ + @NotEmpty(message = "基础路径不能为空") + private String basePath; + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java new file mode 100644 index 0000000..f179a72 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.module.infra.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClient.java similarity index 77% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClient.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClient.java index f2ab2d0..5cf65aa 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClient.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClient.java @@ -1,15 +1,14 @@ -package co.yixiang.yshop.framework.file.core.client.s3; +package co.yixiang.yshop.module.infra.framework.file.core.client.s3; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; -import co.yixiang.yshop.framework.file.core.client.AbstractFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.AbstractFileClient; import io.minio.*; +import io.minio.http.Method; import java.io.ByteArrayInputStream; - -import static co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig.ENDPOINT_ALIYUN; -import static co.yixiang.yshop.framework.file.core.client.s3.S3FileClientConfig.ENDPOINT_TENCENT; +import java.util.concurrent.TimeUnit; /** * 基于 S3 协议的文件客户端,实现 MinIO、阿里云、腾讯云、七牛云、华为云等云服务 @@ -74,15 +73,15 @@ public class S3FileClient extends AbstractFileClient { */ private String buildRegion() { // 阿里云必须有 region,否则会报错 - if (config.getEndpoint().contains(ENDPOINT_ALIYUN)) { + if (config.getEndpoint().contains(S3FileClientConfig.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 + if (config.getEndpoint().contains(S3FileClientConfig.ENDPOINT_TENCENT)) { + return StrUtil.subAfter(config.getEndpoint(), "cos.", false) + .replaceAll("." + S3FileClientConfig.ENDPOINT_TENCENT, ""); // 去除 Endpoint } return null; } @@ -117,4 +116,16 @@ public class S3FileClient extends AbstractFileClient { 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/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClientConfig.java similarity index 90% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClientConfig.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClientConfig.java index 42a5691..69e501e 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/s3/S3FileClientConfig.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/s3/S3FileClientConfig.java @@ -1,13 +1,13 @@ -package co.yixiang.yshop.framework.file.core.client.s3; +package co.yixiang.yshop.module.infra.framework.file.core.client.s3; import cn.hutool.core.util.StrUtil; -import co.yixiang.yshop.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.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; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; /** * S3 文件客户端的配置类 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClient.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClient.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClient.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClient.java index ef40148..9c2fe2b 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClient.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClient.java @@ -1,9 +1,9 @@ -package co.yixiang.yshop.framework.file.core.client.sftp; +package co.yixiang.yshop.module.infra.framework.file.core.client.sftp; import cn.hutool.core.io.FileUtil; import cn.hutool.extra.ssh.Sftp; import co.yixiang.yshop.framework.common.util.io.FileUtils; -import co.yixiang.yshop.framework.file.core.client.AbstractFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.AbstractFileClient; import java.io.File; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClientConfig.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClientConfig.java similarity index 78% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClientConfig.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClientConfig.java index 271d0c7..1a8cdbe 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-file/src/main/java/co/yixiang/yshop/framework/file/core/client/sftp/SftpFileClientConfig.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/client/sftp/SftpFileClientConfig.java @@ -1,11 +1,11 @@ -package co.yixiang.yshop.framework.file.core.client.sftp; +package co.yixiang.yshop.module.infra.framework.file.core.client.sftp; -import co.yixiang.yshop.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; import lombok.Data; import org.hibernate.validator.constraints.URL; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * Sftp 文件客户端的配置类 diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/enums/FileStorageEnum.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/enums/FileStorageEnum.java new file mode 100644 index 0000000..0b53fab --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/enums/FileStorageEnum.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.infra.framework.file.core.enums; + +import cn.hutool.core.util.ArrayUtil; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.db.DBFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.db.DBFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.ftp.FtpFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.ftp.FtpFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.local.LocalFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.local.LocalFileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.s3.S3FileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.s3.S3FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.sftp.SftpFileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.sftp.SftpFileClientConfig; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件存储器枚举 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/utils/FileTypeUtils.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/utils/FileTypeUtils.java new file mode 100644 index 0000000..4d4e1fc --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/file/core/utils/FileTypeUtils.java @@ -0,0 +1,76 @@ +package co.yixiang.yshop.module.infra.framework.file.core.utils; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.ttl.TransmittableThreadLocal; +import jakarta.servlet.http.HttpServletResponse; +import lombok.SneakyThrows; +import org.apache.tika.Tika; + +import java.io.IOException; +import java.net.URLEncoder; + +/** + * 文件类型 Utils + * + * @author yshop + */ +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); + } + + /** + * 返回附件 + * + * @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")); + String contentType = getMineType(content, filename); + response.setContentType(contentType); + // 针对 video 的特殊处理,解决视频地址在移动端播放的兼容性问题 + if (StrUtil.containsIgnoreCase(contentType, "video")) { + response.setHeader("Content-Length", String.valueOf(content.length - 1)); + response.setHeader("Content-Range", String.valueOf(content.length - 1)); + response.setHeader("Accept-Ranges", "bytes"); + } + // 输出附件 + IoUtil.write(response.getOutputStream(), false, content); + } + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/monitor/config/AdminServerConfiguration.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/monitor/config/AdminServerConfiguration.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/monitor/config/AdminServerConfiguration.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/monitor/config/AdminServerConfiguration.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/security/config/SecurityConfiguration.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/security/config/SecurityConfiguration.java new file mode 100644 index 0000000..da1f045 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/security/config/SecurityConfiguration.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.infra.framework.security.config; + +import co.yixiang.yshop.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.AuthorizeHttpRequestsConfigurer; + +/** + * 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(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry registry) { + // Swagger 接口文档 + registry.requestMatchers("/v3/api-docs/**").permitAll() + .requestMatchers("/swagger-ui.html").permitAll() + .requestMatchers("/swagger-ui/**").permitAll() + .requestMatchers("/swagger-resources/**").permitAll() + .requestMatchers("/webjars/**").permitAll() + .requestMatchers("/*/api-docs").permitAll(); + // Spring Boot Actuator 的安全配置 + registry.requestMatchers("/actuator").permitAll() + .requestMatchers("/actuator/**").permitAll(); + // Druid 监控 + registry.requestMatchers("/druid/**").permitAll(); + // Spring Boot Admin Server 的安全配置 + registry.requestMatchers(adminSeverContextPath).permitAll() + .requestMatchers(adminSeverContextPath + "/**").permitAll(); + // 文件读取 + registry.requestMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll(); + } + + }; + } + +} diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java index dac875f..ed0ce87 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/framework/web/config/InfraWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.infra.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/job/JobLogCleanJob.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/job/JobLogCleanJob.java new file mode 100644 index 0000000..1ad5ee0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/job/JobLogCleanJob.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.module.infra.job.job; + +import co.yixiang.yshop.framework.quartz.core.handler.JobHandler; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; +import co.yixiang.yshop.module.infra.service.job.JobLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import jakarta.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/AccessLogCleanJob.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/AccessLogCleanJob.java new file mode 100644 index 0000000..50e66cf --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/AccessLogCleanJob.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.infra.job.logger; + +import co.yixiang.yshop.framework.quartz.core.handler.JobHandler; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; +import co.yixiang.yshop.module.infra.service.logger.ApiAccessLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import jakarta.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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/ErrorLogCleanJob.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/ErrorLogCleanJob.java new file mode 100644 index 0000000..44823dd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/job/logger/ErrorLogCleanJob.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.infra.job.logger; + +import co.yixiang.yshop.framework.quartz.core.handler.JobHandler; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; +import co.yixiang.yshop.module.infra.service.logger.ApiErrorLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import jakarta.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java similarity index 91% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java index 8baf536..59036c0 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenService.java @@ -48,6 +48,14 @@ public interface CodegenService { */ void deleteCodegen(Long tableId); + /** + * 获得表定义列表 + * + * @param dataSourceConfigId 数据源配置的编号 + * @return 表定义列表 + */ + List getCodegenTableList(Long dataSourceConfigId); + /** * 获得表定义分页 * @@ -62,7 +70,7 @@ public interface CodegenService { * @param id 表编号 * @return 表定义 */ - CodegenTableDO getCodegenTablePage(Long id); + CodegenTableDO getCodegenTable(Long id); /** * 获得指定表的字段定义数组 @@ -83,7 +91,6 @@ public interface CodegenService { /** * 获得数据库自带的表定义列表 * - * * @param dataSourceConfigId 数据源的配置编号 * @param name 表名称 * @param comment 表描述 diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenServiceImpl.java new file mode 100644 index 0000000..efef3b5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/CodegenServiceImpl.java @@ -0,0 +1,288 @@ +package co.yixiang.yshop.module.infra.service.codegen; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.CodegenUpdateReqVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenTableDO; +import co.yixiang.yshop.module.infra.dal.mysql.codegen.CodegenColumnMapper; +import co.yixiang.yshop.module.infra.dal.mysql.codegen.CodegenTableMapper; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenSceneEnum; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import co.yixiang.yshop.module.infra.framework.codegen.config.CodegenProperties; +import co.yixiang.yshop.module.infra.service.codegen.inner.CodegenBuilder; +import co.yixiang.yshop.module.infra.service.codegen.inner.CodegenEngine; +import co.yixiang.yshop.module.infra.service.db.DatabaseTableService; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.*; +import java.util.function.BiPredicate; +import java.util.stream.Collectors; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertMap; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.*; + +/** + * 代码生成 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java similarity index 93% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java index 52cf0b2..2b97f61 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenBuilder.java @@ -15,6 +15,7 @@ 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.*; @@ -49,8 +50,8 @@ public class CodegenBuilder { .put("status", CodegenColumnHtmlTypeEnum.RADIO) .put("sex", CodegenColumnHtmlTypeEnum.RADIO) .put("type", CodegenColumnHtmlTypeEnum.SELECT) - .put("image", CodegenColumnHtmlTypeEnum.UPLOAD_IMAGE) - .put("file", CodegenColumnHtmlTypeEnum.UPLOAD_FILE) + .put("image", CodegenColumnHtmlTypeEnum.IMAGE_UPLOAD) + .put("file", CodegenColumnHtmlTypeEnum.FILE_UPLOAD) .put("content", CodegenColumnHtmlTypeEnum.EDITOR) .put("description", CodegenColumnHtmlTypeEnum.EDITOR) .put("demo", CodegenColumnHtmlTypeEnum.EDITOR) @@ -118,7 +119,7 @@ public class CodegenBuilder { table.setClassName(upperFirst(toCamelCase(subAfter(tableName, '_', false)))); // 去除结尾的表,作为类描述 table.setClassComment(StrUtil.removeSuffixIgnoreCase(table.getTableComment(), "表")); - table.setTemplateType(CodegenTemplateTypeEnum.CRUD.getType()); + table.setTemplateType(CodegenTemplateTypeEnum.ONE.getType()); } public List buildColumns(Long tableId, List tableFields) { @@ -127,6 +128,10 @@ public class CodegenBuilder { 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 相关的字段的默认值 @@ -162,10 +167,13 @@ public class CodegenBuilder { .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey())) .findFirst().ifPresent(entry -> column.setHtmlType(entry.getValue().getType())); // 如果是 Boolean 类型时,设置为 radio 类型. - // 其它类型,因为字段名可以相对保障,所以不进行处理。例如说 date 对应 datetime 类型. 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()); diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenEngine.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenEngine.java new file mode 100644 index 0000000..bcb461f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/codegen/inner/CodegenEngine.java @@ -0,0 +1,518 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum; +import co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.date.DateUtils; +import co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.common.util.object.ObjectUtils; +import co.yixiang.yshop.framework.common.util.string.StrUtils; +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import co.yixiang.yshop.module.infra.dal.dataobject.codegen.CodegenTableDO; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenFrontTypeEnum; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenSceneEnum; +import co.yixiang.yshop.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import co.yixiang.yshop.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 jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import lombok.Setter; +import org.springframework.stereotype.Component; + +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 yshop + */ +@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 - 使用 jakarta.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("ApiAccessLogClassName", ApiAccessLog.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 "yshop-module-${table.moduleName}/" + // 顶级模块 + "yshop-module-${table.moduleName}-" + module + "/" + // 子模块 + "src/" + src + "/java/${basePackage}/module/${table.moduleName}/" + path + ".java"; + } + + private static String mapperXmlFilePath() { + return "yshop-module-${table.moduleName}/" + // 顶级模块 + "yshop-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 "yshop-ui-${sceneEnum.basePackage}-vue2/" + // 顶级目录 + "src/" + path; + } + + private static String vue3TemplatePath(String path) { + return "codegen/vue3/" + path + ".vm"; + } + + private static String vue3FilePath(String path) { + return "yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigService.java new file mode 100644 index 0000000..ba584e8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigService.java @@ -0,0 +1,63 @@ +package co.yixiang.yshop.module.infra.service.config; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.config.ConfigDO; + +import jakarta.validation.Valid; + +/** + * 参数配置 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigServiceImpl.java new file mode 100644 index 0000000..6c3e9ec --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/config/ConfigServiceImpl.java @@ -0,0 +1,109 @@ +package co.yixiang.yshop.module.infra.service.config; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import co.yixiang.yshop.module.infra.convert.config.ConfigConvert; +import co.yixiang.yshop.module.infra.dal.dataobject.config.ConfigDO; +import co.yixiang.yshop.module.infra.dal.mysql.config.ConfigMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java similarity index 75% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java index f330380..84283cf 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigService.java @@ -1,10 +1,9 @@ package co.yixiang.yshop.module.infra.service.db; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigCreateReqVO; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigUpdateReqVO; +import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.db.DataSourceConfigDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** @@ -20,14 +19,14 @@ public interface DataSourceConfigService { * @param createReqVO 创建信息 * @return 编号 */ - Long createDataSourceConfig(@Valid DataSourceConfigCreateReqVO createReqVO); + Long createDataSourceConfig(@Valid DataSourceConfigSaveReqVO createReqVO); /** * 更新数据源配置 * * @param updateReqVO 更新信息 */ - void updateDataSourceConfig(@Valid DataSourceConfigUpdateReqVO updateReqVO); + void updateDataSourceConfig(@Valid DataSourceConfigSaveReqVO updateReqVO); /** * 删除数据源配置 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java similarity index 80% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java index 69f9a15..dd6acc9 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DataSourceConfigServiceImpl.java @@ -1,17 +1,16 @@ package co.yixiang.yshop.module.infra.service.db; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.mybatis.core.util.JdbcUtils; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigCreateReqVO; -import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigUpdateReqVO; -import co.yixiang.yshop.module.infra.convert.db.DataSourceConfigConvert; +import co.yixiang.yshop.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.db.DataSourceConfigDO; import co.yixiang.yshop.module.infra.dal.mysql.db.DataSourceConfigMapper; -import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +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 jakarta.annotation.Resource; import java.util.List; import java.util.Objects; @@ -35,21 +34,21 @@ public class DataSourceConfigServiceImpl implements DataSourceConfigService { private DynamicDataSourceProperties dynamicDataSourceProperties; @Override - public Long createDataSourceConfig(DataSourceConfigCreateReqVO createReqVO) { - DataSourceConfigDO dataSourceConfig = DataSourceConfigConvert.INSTANCE.convert(createReqVO); - validateConnectionOK(dataSourceConfig); + public Long createDataSourceConfig(DataSourceConfigSaveReqVO createReqVO) { + DataSourceConfigDO config = BeanUtils.toBean(createReqVO, DataSourceConfigDO.class); + validateConnectionOK(config); // 插入 - dataSourceConfigMapper.insert(dataSourceConfig); + dataSourceConfigMapper.insert(config); // 返回 - return dataSourceConfig.getId(); + return config.getId(); } @Override - public void updateDataSourceConfig(DataSourceConfigUpdateReqVO updateReqVO) { + public void updateDataSourceConfig(DataSourceConfigSaveReqVO updateReqVO) { // 校验存在 validateDataSourceConfigExists(updateReqVO.getId()); - DataSourceConfigDO updateObj = DataSourceConfigConvert.INSTANCE.convert(updateReqVO); + DataSourceConfigDO updateObj = BeanUtils.toBean(updateReqVO, DataSourceConfigDO.class); validateConnectionOK(updateObj); // 更新 diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableService.java similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableService.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableService.java diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableServiceImpl.java new file mode 100644 index 0000000..3ac67a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/db/DatabaseTableServiceImpl.java @@ -0,0 +1,80 @@ +package co.yixiang.yshop.module.infra.service.db; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.mybatis.core.util.JdbcUtils; +import co.yixiang.yshop.module.infra.dal.dataobject.db.DataSourceConfigDO; +import com.baomidou.mybatisplus.annotation.DbType; +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 com.baomidou.mybatisplus.generator.query.SQLQuery; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 数据库表 Service 实现类 + * + * @author yshop + */ +@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); + DbType dbType = JdbcUtils.getDbType(config.getUrl()); + + // 使用 MyBatis Plus Generator 解析表结构 + DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(config.getUrl(), config.getUsername(), + config.getPassword()); + if (Objects.equals(dbType, DbType.SQL_SERVER)) { // 特殊:SQLServer jdbc 非标准,参见 https://github.com/baomidou/mybatis-plus/issues/5419 + dataSourceConfigBuilder.databaseQueryClass(SQLQuery.class); + } + StrategyConfig.Builder strategyConfig = new StrategyConfig.Builder().enableSkipView(); // 忽略视图,业务上一般用不到 + if (StrUtil.isNotEmpty(name)) { + strategyConfig.addInclude(name); + } else { + // 移除工作流和定时任务前缀的表名 + strategyConfig.addExclude("ACT_[\\S\\s]+|QRTZ_[\\S\\s]+|FLW_[\\S\\s]+"); + // 移除 ORACLE 相关的系统表 + strategyConfig.addExclude("IMPDP_[\\S\\s]+|ALL_[\\S\\s]+|HS_[\\S\\\\s]+"); + strategyConfig.addExclude("[\\S\\s]+\\$[\\S\\s]+|[\\S\\s]+\\$"); // 表里不能有 $,一般有都是系统的表 + } + + GlobalConfig globalConfig = new GlobalConfig.Builder().dateType(DateType.TIME_PACK).build(); // 只使用 LocalDateTime 类型,不使用 LocalDate + ConfigBuilder builder = new ConfigBuilder(null, dataSourceConfigBuilder.build(), strategyConfig.build(), + null, globalConfig, null); + // 按照名字排序 + List tables = builder.getTableInfoList(); + tables.sort(Comparator.comparing(TableInfo::getName)); + return tables; + } + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactService.java new file mode 100644 index 0000000..9672337 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactService.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.infra.service.demo.demo01; + +import jakarta.validation.*; + +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; + +/** + * 示例联系人 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java new file mode 100644 index 0000000..a22afd5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java @@ -0,0 +1,72 @@ +package co.yixiang.yshop.module.infra.service.demo.demo01; + +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; + +import co.yixiang.yshop.module.infra.dal.mysql.demo.demo01.Demo01ContactMapper; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.*; + +/** + * 示例联系人 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryService.java new file mode 100644 index 0000000..23d8459 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryService.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.infra.service.demo.demo02; + +import java.util.*; +import jakarta.validation.*; + +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; + +/** + * 示例分类 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java new file mode 100644 index 0000000..8500e54 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java @@ -0,0 +1,134 @@ +package co.yixiang.yshop.module.infra.service.demo.demo02; + +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import co.yixiang.yshop.module.infra.dal.mysql.demo.demo02.Demo02CategoryMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.util.List; +import java.util.Objects; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.*; + +/** + * 示例分类 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentService.java new file mode 100644 index 0000000..43e06c7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentService.java @@ -0,0 +1,158 @@ +package co.yixiang.yshop.module.infra.service.demo.demo03; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 学生 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java new file mode 100644 index 0000000..f1e8bd5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java @@ -0,0 +1,217 @@ +package co.yixiang.yshop.module.infra.service.demo.demo03; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import co.yixiang.yshop.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import co.yixiang.yshop.module.infra.dal.mysql.demo.demo03.Demo03CourseMapper; +import co.yixiang.yshop.module.infra.dal.mysql.demo.demo03.Demo03GradeMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.*; + +/** + * 学生 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java similarity index 79% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java index ca911ec..cbb4a60 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigService.java @@ -1,13 +1,12 @@ package co.yixiang.yshop.module.infra.service.file; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.framework.file.core.client.FileClient; -import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigCreateReqVO; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClient; import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; -import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigUpdateReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.file.FileConfigDO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 文件配置 Service 接口 @@ -16,25 +15,20 @@ import javax.validation.Valid; */ public interface FileConfigService { - /** - * 初始化文件客户端 - */ - void initLocalCache(); - /** * 创建文件配置 * * @param createReqVO 创建信息 * @return 编号 */ - Long createFileConfig(@Valid FileConfigCreateReqVO createReqVO); + Long createFileConfig(@Valid FileConfigSaveReqVO createReqVO); /** * 更新文件配置 * * @param updateReqVO 更新信息 */ - void updateFileConfig(@Valid FileConfigUpdateReqVO updateReqVO); + void updateFileConfig(@Valid FileConfigSaveReqVO updateReqVO); /** * 更新文件配置为 Master diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigServiceImpl.java new file mode 100644 index 0000000..372cf00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileConfigServiceImpl.java @@ -0,0 +1,189 @@ +package co.yixiang.yshop.module.infra.service.file; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.common.util.validation.ValidationUtils; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientConfig; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClientFactory; +import co.yixiang.yshop.module.infra.framework.file.core.enums.FileStorageEnum; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import co.yixiang.yshop.module.infra.convert.file.FileConfigConvert; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileConfigDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Validator; +import java.time.Duration; +import java.util.Map; +import java.util.Objects; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.FILE_CONFIG_DELETE_FAIL_MASTER; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.FILE_CONFIG_NOT_EXISTS; + +/** + * 文件配置 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileService.java new file mode 100644 index 0000000..5b2aa2c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileService.java @@ -0,0 +1,66 @@ +package co.yixiang.yshop.module.infra.service.file; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FileCreateReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileDO; + +/** + * 文件 Service 接口 + * + * @author yshop + */ +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; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileServiceImpl.java new file mode 100644 index 0000000..bee739d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/file/FileServiceImpl.java @@ -0,0 +1,116 @@ +package co.yixiang.yshop.module.infra.service.file; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.io.FileUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.framework.file.core.client.FileClient; +import co.yixiang.yshop.module.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; +import co.yixiang.yshop.module.infra.framework.file.core.utils.FileTypeUtils; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FileCreateReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import co.yixiang.yshop.module.infra.dal.dataobject.file.FileDO; +import co.yixiang.yshop.module.infra.dal.mysql.file.FileMapper; +import jakarta.annotation.Resource; +import lombok.SneakyThrows; +import org.springframework.stereotype.Service; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; + +/** + * 文件 Service 实现类 + * + * @author yshop + */ +@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())); + } + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogService.java new file mode 100644 index 0000000..b4d287e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogService.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.infra.service.job; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.quartz.core.service.JobLogFrameworkService; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobLogDO; + +/** + * Job 日志 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogServiceImpl.java new file mode 100644 index 0000000..4263f08 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobLogServiceImpl.java @@ -0,0 +1,80 @@ +package co.yixiang.yshop.module.infra.service.job; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobLogDO; +import co.yixiang.yshop.module.infra.dal.mysql.job.JobLogMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.time.LocalDateTime; + +/** + * Job 日志 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobService.java new file mode 100644 index 0000000..d5a311b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobService.java @@ -0,0 +1,78 @@ +package co.yixiang.yshop.module.infra.service.job; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobDO; +import org.quartz.SchedulerException; + +import jakarta.validation.Valid; + +/** + * 定时任务 Service 接口 + * + * @author yshop + */ +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; + + /** + * 同步定时任务 + * + * 目的:自己存储的 Job 信息,强制同步到 Quartz 中 + */ + void syncJob() 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobServiceImpl.java new file mode 100644 index 0000000..911aa6a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/job/JobServiceImpl.java @@ -0,0 +1,199 @@ +package co.yixiang.yshop.module.infra.service.job; + +import cn.hutool.extra.spring.SpringUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.quartz.core.handler.JobHandler; +import co.yixiang.yshop.framework.quartz.core.scheduler.SchedulerManager; +import co.yixiang.yshop.framework.quartz.core.util.CronUtils; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import co.yixiang.yshop.module.infra.controller.admin.job.vo.job.JobSaveReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.job.JobDO; +import co.yixiang.yshop.module.infra.dal.mysql.job.JobMapper; +import co.yixiang.yshop.module.infra.enums.job.JobStatusEnum; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.quartz.SchedulerException; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.List; +import java.util.Objects; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.containsAny; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.*; + +/** + * 定时任务 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +@Slf4j +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()); + // 1.1 校验唯一性 + if (jobMapper.selectByHandlerName(createReqVO.getHandlerName()) != null) { + throw exception(JOB_HANDLER_EXISTS); + } + // 1.2 校验 JobHandler 是否存在 + validateJobHandlerExists(createReqVO.getHandlerName()); + + // 2. 插入 JobDO + JobDO job = BeanUtils.toBean(createReqVO, JobDO.class); + job.setStatus(JobStatusEnum.INIT.getStatus()); + fillJobMonitorTimeoutEmpty(job); + jobMapper.insert(job); + + // 3.1 添加 Job 到 Quartz 中 + schedulerManager.addJob(job.getId(), job.getHandlerName(), job.getHandlerParam(), job.getCronExpression(), + createReqVO.getRetryCount(), createReqVO.getRetryInterval()); + // 3.2 更新 JobDO + 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()); + // 1.1 校验存在 + JobDO job = validateJobExists(updateReqVO.getId()); + // 1.2 只有开启状态,才可以修改.原因是,如果出暂停状态,修改 Quartz Job 时,会导致任务又开始执行 + if (!job.getStatus().equals(JobStatusEnum.NORMAL.getStatus())) { + throw exception(JOB_UPDATE_ONLY_NORMAL_STATUS); + } + // 1.3 校验 JobHandler 是否存在 + validateJobHandlerExists(updateReqVO.getHandlerName()); + + // 2. 更新 JobDO + JobDO updateObj = BeanUtils.toBean(updateReqVO, JobDO.class); + fillJobMonitorTimeoutEmpty(updateObj); + jobMapper.updateById(updateObj); + + // 3. 更新 Job 到 Quartz 中 + schedulerManager.updateJob(job.getHandlerName(), updateReqVO.getHandlerParam(), updateReqVO.getCronExpression(), + updateReqVO.getRetryCount(), updateReqVO.getRetryInterval()); + } + + private void validateJobHandlerExists(String handlerName) { + Object handler = SpringUtil.getBean(handlerName); + if (handler == null) { + throw exception(JOB_HANDLER_BEAN_NOT_EXISTS); + } + if (!(handler instanceof JobHandler)) { + throw exception(JOB_HANDLER_BEAN_TYPE_ERROR); + } + } + + @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 syncJob() throws SchedulerException { + // 1. 查询 Job 配置 + List jobList = jobMapper.selectList(); + + // 2. 遍历处理 + for (JobDO job : jobList) { + // 2.1 先删除,再创建 + schedulerManager.deleteJob(job.getHandlerName()); + schedulerManager.addJob(job.getId(), job.getHandlerName(), job.getHandlerParam(), job.getCronExpression(), + job.getRetryCount(), job.getRetryInterval()); + // 2.2 如果 status 为暂停,则需要暂停 + if (Objects.equals(job.getStatus(), JobStatusEnum.STOP.getStatus())) { + schedulerManager.pauseJob(job.getHandlerName()); + } + log.info("[syncJob][id({}) handlerName({}) 同步完成]", job.getId(), job.getHandlerName()); + } + } + + @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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogService.java new file mode 100644 index 0000000..5cfd06f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogService.java @@ -0,0 +1,38 @@ +package co.yixiang.yshop.module.infra.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiAccessLogDO; + +/** + * API 访问日志 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogServiceImpl.java new file mode 100644 index 0000000..bac5b08 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiAccessLogServiceImpl.java @@ -0,0 +1,63 @@ +package co.yixiang.yshop.module.infra.service.logger; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiAccessLogDO; +import co.yixiang.yshop.module.infra.dal.mysql.logger.ApiAccessLogMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; + +import static co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiAccessLogDO.REQUEST_PARAMS_MAX_LENGTH; +import static co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiAccessLogDO.RESULT_MSG_MAX_LENGTH; + +/** + * API 访问日志 Service 实现类 + * + * @author yshop + */ +@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); + apiAccessLog.setRequestParams(StrUtil.maxLength(apiAccessLog.getRequestParams(), REQUEST_PARAMS_MAX_LENGTH)); + apiAccessLog.setResultMsg(StrUtil.maxLength(apiAccessLog.getResultMsg(), RESULT_MSG_MAX_LENGTH)); + 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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java similarity index 77% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java index 6324cd7..504f81d 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogService.java @@ -2,12 +2,9 @@ package co.yixiang.yshop.module.infra.service.logger; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; -import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO; import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiErrorLogDO; -import java.util.List; - /** * API 错误日志 Service 接口 * @@ -30,14 +27,6 @@ public interface ApiErrorLogService { */ PageResult getApiErrorLogPage(ApiErrorLogPageReqVO pageReqVO); - /** - * 获得 API 错误日志列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return API 错误日志分页 - */ - List getApiErrorLogList(ApiErrorLogExportReqVO exportReqVO); - /** * 更新 API 错误日志已处理 * @@ -47,4 +36,12 @@ public interface ApiErrorLogService { */ void updateApiErrorLogProcess(Long id, Integer processStatus, Long processUserId); + /** + * 清理 exceedDay 天前的错误日志 + * + * @param exceedDay 超过多少天就进行清理 + * @param deleteLimit 清理的间隔条数 + */ + Integer cleanErrorLog(Integer exceedDay, Integer deleteLimit); + } diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogServiceImpl.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogServiceImpl.java new file mode 100644 index 0000000..9094a27 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/service/logger/ApiErrorLogServiceImpl.java @@ -0,0 +1,80 @@ +package co.yixiang.yshop.module.infra.service.logger; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import co.yixiang.yshop.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiErrorLogDO; +import co.yixiang.yshop.module.infra.dal.mysql.logger.ApiErrorLogMapper; +import co.yixiang.yshop.module.infra.enums.logger.ApiErrorLogProcessStatusEnum; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.infra.dal.dataobject.logger.ApiErrorLogDO.REQUEST_PARAMS_MAX_LENGTH; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_NOT_FOUND; +import static co.yixiang.yshop.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_PROCESSED; + +/** + * API 错误日志 Service 实现类 + * + * @author yshop + */ +@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()); + apiErrorLog.setRequestParams(StrUtil.maxLength(apiErrorLog.getRequestParams(), REQUEST_PARAMS_MAX_LENGTH)); + 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/DemoWebSocketMessageListener.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/DemoWebSocketMessageListener.java new file mode 100644 index 0000000..7600fd0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/DemoWebSocketMessageListener.java @@ -0,0 +1,48 @@ +package co.yixiang.yshop.module.infra.websocket; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.websocket.core.listener.WebSocketMessageListener; +import co.yixiang.yshop.framework.websocket.core.sender.WebSocketMessageSender; +import co.yixiang.yshop.framework.websocket.core.util.WebSocketFrameworkUtils; +import co.yixiang.yshop.module.infra.websocket.message.DemoReceiveMessage; +import co.yixiang.yshop.module.infra.websocket.message.DemoSendMessage; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.WebSocketSession; + +import jakarta.annotation.Resource; + +/** + * WebSocket 示例:单发消息 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoReceiveMessage.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoReceiveMessage.java new file mode 100644 index 0000000..0e5896f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoReceiveMessage.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.infra.websocket.message; + +import lombok.Data; + +/** + * 示例:server -> client 同步消息 + * + * @author yshop + */ +@Data +public class DemoReceiveMessage { + + /** + * 接收人的编号 + */ + private Long fromUserId; + /** + * 内容 + */ + private String text; + + /** + * 是否单聊 + */ + private Boolean single; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoSendMessage.java b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoSendMessage.java new file mode 100644 index 0000000..42789e5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/java/co/yixiang/yshop/module/infra/websocket/message/DemoSendMessage.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.infra.websocket.message; + +import lombok.Data; + +/** + * 示例:client -> server 发送消息 + * + * @author yshop + */ +@Data +public class DemoSendMessage { + + /** + * 发送给谁 + * + * 如果为空,说明发送给所有人 + */ + private Long toUserId; + /** + * 内容 + */ + private String text; + +} diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm new file mode 100644 index 0000000..a358d7c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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 ${ApiAccessLogClassName}; +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 + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/listReqVO.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/listReqVO.vm new file mode 100644 index 0000000..46b6a25 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm similarity index 86% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm index 6f9868d..003bac9 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm @@ -4,9 +4,15 @@ import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import ${PageParamClassName}; -## 处理 Date 字段的引入 #foreach ($column in $columns) -#if (${column.listOperation} && ${column.javaType} == "LocalDateTime")## 时间类型 +#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; @@ -38,4 +44,4 @@ public class ${sceneEnum.prefixClass}${table.className}PageReqVO extends PagePar #end #end -} +} \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm new file mode 100644 index 0000000..54c1667 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/saveReqVO.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/controller/vo/saveReqVO.vm new file mode 100644 index 0000000..b432c75 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm similarity index 88% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm index d551d4b..b019d6e 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do.vm @@ -28,6 +28,11 @@ import ${BaseDOClassName}; @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 的字段 /** @@ -44,4 +49,4 @@ public class ${table.className}DO extends BaseDO { #end #end -} +} \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do_sub.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/do_sub.vm new file mode 100644 index 0000000..16be55e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm new file mode 100644 index 0000000..b98b471 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm similarity index 98% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm index c1544ad..620f386 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm @@ -9,4 +9,4 @@ 文档可见:https://www.yixiang.co/MyBatis/x-plugins/ --> - + \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper_sub.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/dal/mapper_sub.vm new file mode 100644 index 0000000..e5589e9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm new file mode 100644 index 0000000..5016820 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm @@ -0,0 +1,22 @@ +// TODO 待办:请将下面的错误码复制到 yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/service/service.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/service/service.vm new file mode 100644 index 0000000..c4ee4f0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm new file mode 100644 index 0000000..a8184e4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm similarity index 83% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm index 4d9a5e5..bfd4600 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; -import javax.annotation.Resource; +import ${jakartaPackage}.annotation.Resource; import ${baseFrameworkPackage}.test.core.ut.BaseDbUnitTest; @@ -13,7 +13,7 @@ import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.business import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; import ${PageResultClassName}; -import javax.annotation.Resource; +import ${jakartaPackage}.annotation.Resource; import org.springframework.context.annotation.Import; import java.util.*; import java.time.LocalDateTime; @@ -61,10 +61,10 @@ import static org.mockito.Mockito.*; #end #end /** -* {@link ${table.className}ServiceImpl} 的单元测试类 -* -* @author ${table.author} -*/ + * {@link ${table.className}ServiceImpl} 的单元测试类 + * + * @author ${table.author} + */ @Import(${table.className}ServiceImpl.class) public class ${table.className}ServiceImplTest extends BaseDbUnitTest { @@ -77,15 +77,15 @@ public class ${table.className}ServiceImplTest extends BaseDbUnitTest { @Test public void testCreate${simpleClassName}_success() { // 准备参数 - ${sceneEnum.prefixClass}${table.className}CreateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}CreateReqVO.class); + ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class).setId(null); // 调用 - ${primaryColumn.javaType} ${classNameVar}Id = ${classNameVar}Service.create${simpleClassName}(reqVO); + ${primaryColumn.javaType} ${classNameVar}Id = ${classNameVar}Service.create${simpleClassName}(createReqVO); // 断言 assertNotNull(${classNameVar}Id); // 校验记录的属性是否正确 ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(${classNameVar}Id); - assertPojoEquals(reqVO, ${classNameVar}); + assertPojoEquals(createReqVO, ${classNameVar}, "id"); } @Test @@ -94,24 +94,24 @@ public class ${table.className}ServiceImplTest extends BaseDbUnitTest { ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class); ${classNameVar}Mapper.insert(db${simpleClassName});// @Sql: 先插入出一条存在的数据 // 准备参数 - ${sceneEnum.prefixClass}${table.className}UpdateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}UpdateReqVO.class, o -> { + ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class, o -> { o.setId(db${simpleClassName}.getId()); // 设置更新的 ID }); // 调用 - ${classNameVar}Service.update${simpleClassName}(reqVO); + ${classNameVar}Service.update${simpleClassName}(updateReqVO); // 校验是否更新正确 - ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(reqVO.getId()); // 获取最新的 - assertPojoEquals(reqVO, ${classNameVar}); + ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(updateReqVO.getId()); // 获取最新的 + assertPojoEquals(updateReqVO, ${classNameVar}); } @Test public void testUpdate${simpleClassName}_notExists() { // 准备参数 - ${sceneEnum.prefixClass}${table.className}UpdateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}UpdateReqVO.class); + ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class); // 调用, 并断言异常 - assertServiceException(() -> ${classNameVar}Service.update${simpleClassName}(reqVO), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + assertServiceException(() -> ${classNameVar}Service.update${simpleClassName}(updateReqVO), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); } @Test @@ -137,6 +137,8 @@ public class ${table.className}ServiceImplTest extends BaseDbUnitTest { 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() { @@ -149,11 +151,11 @@ public class ${table.className}ServiceImplTest extends BaseDbUnitTest { assertEquals(1, pageResult.getList().size()); assertPojoEquals(db${simpleClassName}, pageResult.getList().get(0)); } - +#else @Test @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 public void testGet${simpleClassName}List() { - #getPageCondition("ExportReqVO") + #getPageCondition("ListReqVO") // 调用 List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(reqVO); @@ -161,5 +163,6 @@ public class ${table.className}ServiceImplTest extends BaseDbUnitTest { assertEquals(1, list.size()); assertPojoEquals(db${simpleClassName}, list.get(0)); } +#end -} +} \ No newline at end of file diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm similarity index 92% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm index 03d7284..abb7389 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/h2.vm @@ -23,6 +23,8 @@ CREATE TABLE IF NOT EXISTS "${table.tableName.toLowerCase()}" ( "${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 @@ -32,4 +34,4 @@ CREATE TABLE IF NOT EXISTS "${table.tableName.toLowerCase()}" ( ) COMMENT '${table.tableComment}'; -- 将该删表 SQL 语句,添加到 yshop-module-${table.moduleName}-biz 模块的 test/resources/sql/clean.sql 文件里 -DELETE FROM "${table.tableName}"; +DELETE FROM "${table.tableName}"; \ No newline at end of file diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm similarity index 94% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm rename to yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm index 902ca74..41b107d 100644 --- a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/sql/sql.vm @@ -5,7 +5,7 @@ INSERT INTO system_menu( ) VALUES ( '${table.classComment}管理', '', 2, 0, ${table.parentMenuId}, - '${simpleClassName_strikeCase}', '', '${table.moduleName}/${classNameVar}/index', 0, '${table.className}' + '${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}' ); -- 按钮父菜单ID @@ -25,4 +25,4 @@ VALUES ( '${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, @parentId, '', '', '', 0 ); -#end +#end \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm new file mode 100644 index 0000000..835c019 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_inner.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_normal.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_erp.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_inner.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm new file mode 100644 index 0000000..634d05d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm @@ -0,0 +1,320 @@ + + + diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm new file mode 100644 index 0000000..2328007 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm @@ -0,0 +1,340 @@ + + + diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm new file mode 100644 index 0000000..c3044fb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_inner.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm new file mode 100644 index 0000000..3f0710e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm @@ -0,0 +1,184 @@ +#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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_inner.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm new file mode 100644 index 0000000..8e3596b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm new file mode 100644 index 0000000..361d379 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm new file mode 100644 index 0000000..48cd542 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm new file mode 100644 index 0000000..7aead48 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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://www.yixiang.co/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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm new file mode 100644 index 0000000..52f20a2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm @@ -0,0 +1,65 @@ + + diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm new file mode 100644 index 0000000..657218c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm @@ -0,0 +1,85 @@ + + diff --git a/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm new file mode 100644 index 0000000..b7f2651 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm new file mode 100644 index 0000000..92d3b2d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm new file mode 100644 index 0000000..1804365 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-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/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm new file mode 100644 index 0000000..84ec4bf --- /dev/null +++ b/yshop-drink-boot3/yshop-module-infra/yshop-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm @@ -0,0 +1,91 @@ + + diff --git a/yshop-drink-boot3/yshop-module-mall/pom.xml b/yshop-drink-boot3/yshop-module-mall/pom.xml new file mode 100644 index 0000000..04375af --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/pom.xml @@ -0,0 +1,31 @@ + + + + yshop + co.yixiang.boot + ${revision} + + 4.0.0 + + yshop-module-mall + pom + + ${project.artifactId} + + + 商城大模块,由 product 商品、promotion 营销、trade 交易等组成 + + + yshop-module-product-api + yshop-module-product-biz + yshop-module-shop-api + yshop-module-shop-biz + yshop-module-order-api + yshop-module-order-biz + yshop-module-store-api + yshop-module-store-biz + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/pom.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/pom.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminAfterOrderStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminAfterOrderStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminAfterOrderStatusEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminAfterOrderStatusEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminOrderStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminOrderStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminOrderStatusEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AdminOrderStatusEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterChangeTypeEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterChangeTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterChangeTypeEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterChangeTypeEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterSalesStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterSalesStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterSalesStatusEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterSalesStatusEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterStatusEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterStatusEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterTypeEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterTypeEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AfterTypeEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AppFromEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AppFromEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AppFromEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/AppFromEnum.java diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..30a3333 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ErrorCodeConstants.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.order.enums; + +import co.yixiang.yshop.framework.common.exception.ErrorCode; + +public interface ErrorCodeConstants { + // ========== 订单1008007000========== + ErrorCode STORE_ORDER_NOT_EXISTS = new ErrorCode(1008007000, "订单不存在"); + ErrorCode STORE_ORDER_CART_INFO_NOT_EXISTS = new ErrorCode(1008007001, "订单购物详情不存在"); + ErrorCode STORE_ORDER_STATUS_NOT_EXISTS = new ErrorCode(1008007002, "订单操作记录不存在"); + ErrorCode STORE_AFTER_SALES_NOT_EXISTS = new ErrorCode(1008007003, "售后记录不存在"); + ErrorCode STORE_AFTER_SALES_ITEM_NOT_EXISTS = new ErrorCode(1008007004, "售后子不存在"); + ErrorCode STORE_AFTER_SALES_STATUS_NOT_EXISTS = new ErrorCode(1008007005, "售后订单操作详情不存在"); + ErrorCode INVALID_PRODUCT = new ErrorCode(1008007005, "有失效的商品请重新提交"); + ErrorCode VALID_PRODUCT_EMPTY = new ErrorCode(1008007005, "请提交购买的商品"); + ErrorCode PARAM_ERROR = new ErrorCode(1008007006, "参数错误"); + ErrorCode ORDER_EXPIRED = new ErrorCode(1008007007, "订单已过期,请刷新当前页面"); + ErrorCode SELECT_ADDRESS = new ErrorCode(1008007008, "请选择收货地址"); + ErrorCode ORDER_GEN_FAIL = new ErrorCode(1008007009, "订单生成失败"); + ErrorCode ORDER_PAY_FINISH = new ErrorCode(1008007010, "该订单已支付"); + ErrorCode PAY_YUE_NOT = new ErrorCode(1008007011, "余额不足"); + ErrorCode ORDER_STATUS_ERROR = new ErrorCode(1008007012, "订单状态错误"); + ErrorCode ORDER_STATUS_FINISH = new ErrorCode(1008007023, "订单已经完成,不要重复操作"); + ErrorCode COMMENT_PRODUCT_NOT_EXISTS = new ErrorCode(1008007013, "评价产品不存在"); + ErrorCode COMMENT_PRODUCT_IN_EXISTS = new ErrorCode(1008007014, "该产品已评价"); + ErrorCode ORDER_NOT_DELETE = new ErrorCode(1008007018, "该订单无法删除"); + ErrorCode ORDER_STATUS_NOT_EXPRESS_ = new ErrorCode(1008007015, "当前状态不能添加物流信息"); + ErrorCode ORDER_REFUND_NOT = new ErrorCode(1008007017, "订单状态不能售后"); + ErrorCode ORDER_NOT_REVOKE = new ErrorCode(1008007016, "订单不能撤销"); + ErrorCode ORDER_NOT_CANCEL = new ErrorCode(1008007018, "订单不能取消"); + ErrorCode ORDER_ADDRESS_REQUERED = new ErrorCode(1008007019, "请输入商家收货人信息"); + ErrorCode ORDER_REFUNDING = new ErrorCode(1008007020, "正在申请退款中"); + ErrorCode ORDER_REFUNDED = new ErrorCode(1008007021, "订单已退款"); + ErrorCode ORDER_PRICE_ERROR = new ErrorCode(1008007022, "退款金额不正确"); + // ========== 订单电子面单记录 ========== + ErrorCode STORE_ORDER_ELECTRONICS_NOT_EXISTS = new ErrorCode(1008010000, "订单电子面单记录不存在"); + + + ErrorCode STORE_ORDER_DESK_NOT = new ErrorCode(1008007023, "当前桌号不存在"); + + + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java index 930164d..c36848c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderLogEnum.java @@ -13,6 +13,7 @@ import java.util.stream.Stream; @AllArgsConstructor public enum OrderLogEnum { + ORDER_TAKE_DESK("desk","扫码点餐"), ORDER_TAKE_OUT("takeout","外卖"), ORDER_TAKE_IN("takein","自取"), PINK_ORDER_FAIL_1("ORDER_EXIST","订单生成失败,你已经参加该团了,请先支付订单"), diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderStatusEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/OrderStatusEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/PayTypeEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/PayTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/PayTypeEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/PayTypeEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ShippingTempEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ShippingTempEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ShippingTempEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/ShippingTempEnum.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/UpdateOrderEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/UpdateOrderEnum.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/UpdateOrderEnum.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-api/src/main/java/co/yixiang/yshop/module/order/enums/UpdateOrderEnum.java diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/pom.xml new file mode 100644 index 0000000..2aa65a6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/pom.xml @@ -0,0 +1,79 @@ + + + + co.yixiang.boot + yshop-module-mall + ${revision} + + 4.0.0 + yshop-module-order-biz + jar + + ${project.artifactId} + + order 模块,主要实现商品购物车相关功能 + + + + + co.yixiang.boot + yshop-module-order-api + ${revision} + + + co.yixiang.boot + yshop-module-pay-biz + ${revision} + + + co.yixiang.boot + yshop-module-message-biz + ${revision} + + + co.yixiang.boot + yshop-module-product-biz + ${revision} + + + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java similarity index 93% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java index 5fadd7a..0b651d1 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java @@ -3,8 +3,6 @@ package co.yixiang.yshop.module.order.controller.admin.storeorder; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import co.yixiang.yshop.module.member.service.userbill.UserBillService; import co.yixiang.yshop.module.order.controller.admin.storeorder.vo.*; import co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvert; import co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO; @@ -18,21 +16,18 @@ 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.tags.Tag; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; 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.Collection; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 订单") @RestController @@ -129,7 +124,6 @@ public class StoreOrderController { @GetMapping("/export-excel") @Operation(summary = "导出订单 Excel") @PreAuthorize("@ss.hasPermission('order:store-order:export')") - @OperateLog(type = EXPORT) public void exportStoreOrderExcel(@Valid StoreOrderExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = storeOrderService.getStoreOrderList(exportReqVO); @@ -156,5 +150,12 @@ public class StoreOrderController { return success(true); } + @Operation(summary = "订单通知") + @GetMapping(value = "/notice") + public CommonResult refund() { + return success(storeOrderService.orderNotice()); + } + + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/ShoperOrderTimeDataVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/ShoperOrderTimeDataVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/ShoperOrderTimeDataVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/ShoperOrderTimeDataVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java index db9face..c1695ac 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderBaseVO.java @@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -33,7 +33,7 @@ public class StoreOrderBaseVO { //@NotNull(message = "用户姓名不能为空") private String realName; - @MobileDesensitize + //@MobileDesensitize @Schema(description = "用户电话", required = true) //@NotNull(message = "用户电话不能为空") private String userPhone; @@ -220,4 +220,20 @@ public class StoreOrderBaseVO { private LocalDateTime getTime; + /** + * 桌面ID + */ + private Long deskId; + + + /** + * 桌号 + */ + private String deskNumber; + + /** + * 就餐人数 + */ + private Integer deskPeople; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java index 49959bb..cfacf99 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.order.controller.admin.storeorder.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 订单创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java similarity index 79% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java index 85eb4bc..a7f6cf1 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderPageReqVO.java @@ -39,4 +39,16 @@ public class StoreOrderPageReqVO extends PageParam { @Schema(description = "支付状态搜索值") private String payStatus; + @Schema(description = "工作台订单还是普通订单") + private String type; + + @Schema(description = "店铺ID", example = "20527") + private String ShopId; + + @Schema(description = "订单类型", example = "desk") + private String orderType; + + @Schema(description = "桌面id") + private Integer deskId; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java similarity index 93% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java index bc8ce62..4c3070b 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRefundVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; @Schema(description = "管理后台 - 订单退款 Request VO") diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java index bb2e09a..8e1ad2d 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/vo/StoreOrderUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.order.controller.admin.storeorder.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 订单更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java similarity index 84% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java index 0d1f4cc..d4b7730 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/AppOrderController.java @@ -10,27 +10,35 @@ package co.yixiang.yshop.module.order.controller.app.order; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.enums.OrderInfoEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.security.core.annotations.PreAuthenticated; import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserOrderCountVo; import co.yixiang.yshop.module.order.controller.app.order.param.*; import co.yixiang.yshop.module.order.controller.app.order.vo.AppStoreOrderQueryVo; +import co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO; import co.yixiang.yshop.module.order.dal.redis.order.AsyncOrderRedisDAO; import co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderService; +import co.yixiang.yshop.module.pay.http.HttpRequestNoticeNewParams; +import co.yixiang.yshop.module.store.controller.app.storeshop.vo.AppStoreShopVO; +import co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvert; +import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; +import co.yixiang.yshop.module.store.service.storeshop.AppStoreShopService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.egzosn.pay.spring.boot.core.PayServiceManager; -import com.egzosn.pay.web.support.HttpRequestNoticeParams; 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 jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -58,7 +66,8 @@ public class AppOrderController { private final AppStoreOrderService appStoreOrderService; private final AsyncOrderRedisDAO asyncOrderRedisDAO; private final PayServiceManager manager; - + private final AppStoreShopService appStoreShopService; +; @@ -92,9 +101,9 @@ public class AppOrderController { * @param detailsId 列表id * @return 支付是否成功 */ - @RequestMapping(value = "payBack{detailsId}.json") + @RequestMapping(value = "/notify/payBack{detailsId}.json") public String payBack(HttpServletRequest request, @PathVariable String detailsId) { - return manager.payBack(detailsId, new HttpRequestNoticeParams(request)); + return manager.payBack(detailsId, new HttpRequestNoticeNewParams(request)); } @@ -206,6 +215,20 @@ public class AppOrderController { Long uid = getLoginUserId(); AppUserOrderCountVo appUserOrderCountVo = asyncOrderRedisDAO.get(uid); return success(appUserOrderCountVo); + + } + + + @PreAuthenticated + @GetMapping("/getShop") + @Operation(summary = "获取店铺") + public CommonResult getShop(@RequestParam("shopId") Integer shopId) { + StoreShopDO storeShopDO = appStoreShopService.getById(shopId); + + AppStoreShopVO appStoreShopVO = StoreShopConvert.INSTANCE.convert02(storeShopDO); + appStoreShopVO.setIsEmpty(true); + + return success(appStoreShopVO); } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppComputeOrderParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppComputeOrderParam.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppComputeOrderParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppComputeOrderParam.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java similarity index 87% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java index 2f943bf..a8fbba8 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppConfirmOrderParam.java @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; /** * @ClassName 确认订单ConfirmOrderDTO diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java similarity index 86% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java index 2fc44a9..42f94b0 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppDoOrderParam.java @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; /** * @ClassName HandleOrderParam diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppExpressParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppExpressParam.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppExpressParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppExpressParam.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java similarity index 86% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java index 9e2b998..406de8f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppHandleOrderParam.java @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; /** * @ClassName HandleOrderParam diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppOrderParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppOrderParam.java new file mode 100644 index 0000000..fcb2d3b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppOrderParam.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.module.order.controller.app.order.param; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.Size; +import java.io.Serializable; +import java.util.List; + +/** + * @ClassName OrderParam + * @Author hupeng <610796224@qq.com> + * @Date 2023/8/22 + **/ +@Data +public class AppOrderParam implements Serializable { + + @Schema(description = "地址ID", required = true) + private String addressId; + + @Schema(description = "门店ID", required = true) + private String shopId; + + @Schema(description = "手机号", required = true) + private String mobile; + + @Schema(description = "优惠券ID", required = true) + private String couponId; + + @Schema(description = "购买类型:takein=自取,takeout=外卖,desk=扫码点餐", required = true) + private String orderType; + + @Size(max = 200,message = "长度超过了限制") + @Schema(description = "备注", required = true) + private String remark; + + @Schema(description = "取餐时间", required = true) + private Integer gettime; + + @Schema(description = "秒杀产品ID", required = true) + private List productId; + + @Schema(description = "规格", required = true) + private List spec; + + @Schema(description = "数量", required = true) + private List number; + + @Schema(description = "支付类型", required = true) + private String payType; + + @Schema(description = "桌面ID", required = true) + private Long deskId; + + @Schema(description = "桌号", required = true) + private String deskNumber; + + @Schema(description = "就餐人数", required = true) + private Integer deskPeople; + + @Schema(description = "订单号", required = true) + private String orderId; + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java similarity index 91% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java index c54e66a..f740d21 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppPayParam.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.order.controller.app.order.param; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; import java.io.Serializable; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java similarity index 88% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java index 4b3b072..12cbb06 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppProductReplyParam.java @@ -4,8 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; /** * @ClassName ProductReplyParam diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java similarity index 90% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java index 96c0ad8..07986d5 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/param/AppRefundParam.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.order.controller.app.order.param; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; import java.io.Serializable; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppComputeVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppComputeVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppComputeVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppComputeVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppConfirmOrderVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppConfirmOrderVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppConfirmOrderVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppConfirmOrderVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java index 3e99bdc..1b13565 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/app/order/vo/AppStoreOrderQueryVo.java @@ -55,7 +55,7 @@ public class AppStoreOrderQueryVo implements Serializable { private List cartInfo; @Schema(description = "订单信息合集", required = true) - private StatusDto _status; + private StatusDto statusDto; @Schema(description = "运费金额", required = true) private BigDecimal freightPrice; @@ -191,8 +191,19 @@ public class AppStoreOrderQueryVo implements Serializable { @Schema(description = "前面等等的制作数量", required = true) private Long preNum; + @Schema(description = "店铺名称", required = true) private String shopName; + @Schema(description = "桌面ID", required = true) + private Long deskId; + + @Schema(description = "桌号", required = true) + private String deskNumber; + + @Schema(description = "就餐人数", required = true) + private Integer deskPeople; + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorder/StoreOrderConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorder/StoreOrderConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorder/StoreOrderConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorder/StoreOrderConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeordercartinfo/StoreOrderCartInfoConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeordercartinfo/StoreOrderCartInfoConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeordercartinfo/StoreOrderCartInfoConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeordercartinfo/StoreOrderCartInfoConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorderstatus/StoreOrderStatusConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorderstatus/StoreOrderStatusConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorderstatus/StoreOrderStatusConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/convert/storeorderstatus/StoreOrderStatusConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/ordernumber/OrderNumberDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/ordernumber/OrderNumberDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/ordernumber/OrderNumberDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/ordernumber/OrderNumberDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java index b26e0b7..7a06b64 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorder/StoreOrderDO.java @@ -270,4 +270,7 @@ public class StoreOrderDO extends BaseDO { */ private Long numberId; + + + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java index b3b93b1..4eeac4f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeordercartinfo/StoreOrderCartInfoDO.java @@ -82,4 +82,6 @@ public class StoreOrderCartInfoDO { private BigDecimal price; + + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorderstatus/StoreOrderStatusDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorderstatus/StoreOrderStatusDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorderstatus/StoreOrderStatusDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/dataobject/storeorderstatus/StoreOrderStatusDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/ordernumber/OrderNumberMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/ordernumber/OrderNumberMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/ordernumber/OrderNumberMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/ordernumber/OrderNumberMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java similarity index 81% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java index 22e39dd..1899ee1 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorder/StoreOrderMapper.java @@ -11,8 +11,8 @@ import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; import co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO; import co.yixiang.yshop.module.order.enums.AdminOrderStatusEnum; -import co.yixiang.yshop.module.order.enums.OrderStatusEnum; -import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO; +import co.yixiang.yshop.module.order.enums.OrderLogEnum; +import co.yixiang.yshop.framework.common.enums.OrderTypeEnum; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; @@ -29,19 +29,24 @@ import org.apache.ibatis.annotations.Select; public interface StoreOrderMapper extends BaseMapperX { default PageResult selectPage(StoreOrderPageReqVO reqVO) { - LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX(); Long shopId = SecurityFrameworkUtils.getLoginUser().getShopId(); if(shopId > 0) { wrapper.eq(StoreOrderDO::getShopId,shopId); } - wrapper.eqIfPresent(StoreOrderDO::getOrderId, reqVO.getOrderId()) .eqIfPresent(StoreOrderDO::getNumberId, reqVO.getNumberId()) + .eqIfPresent(StoreOrderDO::getShopId, reqVO.getShopId()) .likeIfPresent(StoreOrderDO::getRealName, reqVO.getRealName()) .eqIfPresent(StoreOrderDO::getUserPhone, reqVO.getUserPhone()) - .betweenIfPresent(StoreOrderDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(StoreOrderDO::getId); + .eqIfPresent(StoreOrderDO::getOrderType,reqVO.getOrderType()) + .betweenIfPresent(StoreOrderDO::getCreateTime, reqVO.getCreateTime()); + //.orderByDesc(StoreOrderDO::getId); + if( OrderTypeEnum.TYPE_WORK.getValue().equals(reqVO.getType())){ + wrapper.orderByAsc(StoreOrderDO::getCreateTime); + }else{ + wrapper.orderByDesc(StoreOrderDO::getCreateTime); + } if (reqVO.getOrderStatus() != null) { switch (AdminOrderStatusEnum.toType(reqVO.getOrderStatus())) { //未支付 @@ -52,9 +57,15 @@ public interface StoreOrderMapper extends BaseMapperX { break; //待发货 case STATUS_1: - wrapper.eq(StoreOrderDO::getPaid, OrderInfoEnum.PAY_STATUS_1.getValue()) - .eq(StoreOrderDO::getRefundStatus, OrderInfoEnum.REFUND_STATUS_0.getValue()) + wrapper.eq(StoreOrderDO::getRefundStatus, OrderInfoEnum.REFUND_STATUS_0.getValue()) .eq(StoreOrderDO::getStatus, OrderInfoEnum.STATUS_0.getValue()); + if( OrderTypeEnum.TYPE_WORK.getValue().equals(reqVO.getType())){ + wrapper.and(i->i.eq(StoreOrderDO::getPaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .or(j->j.eq(StoreOrderDO::getOrderType, OrderLogEnum.ORDER_TAKE_DESK.getValue()) + .eq(StoreOrderDO::getPaid, OrderInfoEnum.PAY_STATUS_0.getValue()))); + }else { + wrapper.eq(StoreOrderDO::getPaid, OrderInfoEnum.PAY_STATUS_1.getValue()); + } break; //待收货 case STATUS_2: diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeordercartinfo/StoreOrderCartInfoMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/storeorderstatus/StoreOrderStatusMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/RedisKeyConstants.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/RedisKeyConstants.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/RedisKeyConstants.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/RedisKeyConstants.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java index d469c25..7b825e6 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/ofterorder/AfterOrderRedisDAO.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.order.service.storeorder.dto.CacheDto; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import static co.yixiang.yshop.module.order.dal.redis.RedisKeyConstants.YSHOP_ORDER_SALE_STATUS_KEY; diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java similarity index 83% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java index ce7e592..ac19a13 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncCountRedisDAO.java @@ -1,13 +1,14 @@ package co.yixiang.yshop.module.order.dal.redis.order; import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserOrderCountVo; import co.yixiang.yshop.module.order.controller.admin.storeorder.vo.ShoperOrderTimeDataVo; import co.yixiang.yshop.module.order.service.storeorder.dto.OrderTimeDataDto; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import static co.yixiang.yshop.module.order.dal.redis.RedisKeyConstants.YSHOP_ADMIN_ORDER_COUNT_CACHE_KEY; @@ -23,12 +24,12 @@ public class AsyncCountRedisDAO { private StringRedisTemplate stringRedisTemplate; public OrderTimeDataDto get() { - String redisKey = YSHOP_ADMIN_ORDER_COUNT_CACHE_KEY.getKeyTemplate(); + String redisKey = formatKey(); return JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(redisKey), OrderTimeDataDto.class); } public void set(OrderTimeDataDto orderTimeDataDto) { - String redisKey = YSHOP_ADMIN_ORDER_COUNT_CACHE_KEY.getKeyTemplate(); + String redisKey = formatKey(); stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(orderTimeDataDto)); } @@ -38,8 +39,8 @@ public class AsyncCountRedisDAO { } - private static String formatKey(String key) { - return String.format(YSHOP_ADMIN_ORDER_COUNT_CACHE_KEY.getKeyTemplate(), key); + private static String formatKey() { + return String.format(YSHOP_ADMIN_ORDER_COUNT_CACHE_KEY.getKeyTemplate()); } } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java index d740fe4..9cd5709 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/AsyncOrderRedisDAO.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.order.service.storeorder.dto.CacheDto; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.concurrent.TimeUnit; import static co.yixiang.yshop.module.order.dal.redis.RedisKeyConstants.YSHOP_ORDER_CACHE_KEY; diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java index fdd6346..a751a08 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/OrderRedisDAO.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.order.service.storeorder.dto.CacheDto; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.concurrent.TimeUnit; import static co.yixiang.yshop.module.order.dal.redis.RedisKeyConstants.YSHOP_ORDER_CACHE_KEY; diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java index e93c3f0..c2e7fff 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/redis/order/PrintMechinRedisDAO.java @@ -4,7 +4,7 @@ package co.yixiang.yshop.module.order.dal.redis.order; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.concurrent.TimeUnit; import static co.yixiang.yshop.module.order.dal.redis.RedisKeyConstants.YSHOP_WEB_PRINT_MECHINE_KEY; diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/handle/RedisDelayHandle.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/handle/RedisDelayHandle.java new file mode 100644 index 0000000..1ffcb9b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/handle/RedisDelayHandle.java @@ -0,0 +1,96 @@ +package co.yixiang.yshop.module.order.handle; + +import cn.hutool.core.thread.ExecutorBuilder; +import cn.hutool.core.thread.ThreadFactoryBuilder; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.constant.ShopConstants; +import co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RBlockingDeque; +import org.redisson.api.RedissonClient; +import org.springframework.stereotype.Component; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadFactory; + +/** + * 延时队列消费 + * @author hupeng + * @date 2023.7.27 + */ +@Component +@Slf4j +public class RedisDelayHandle { + @Resource + private RedissonClient redissonClient; + @Resource + private AppStoreOrderService appStoreOrderService; + + @PostConstruct + public void startJobTimer() { + ThreadFactory threadFactory = new ThreadFactoryBuilder().setNamePrefix("delay-job-service").build(); + log.info("========延时队列开始========="); + ExecutorService executorService = ExecutorBuilder.create() + .setCorePoolSize(2) + .setMaxPoolSize(10) + .setKeepAliveTime(0) + .setThreadFactory(threadFactory) + .build(); + + executorService.execute(new ExecutorTaskUnPay()); + executorService.execute(new ExecutorTaskUnConfirm()); + } + + class ExecutorTaskUnPay implements Runnable { + @SneakyThrows + @Override + public void run() { + RBlockingDeque blockingDeque = redissonClient + .getBlockingDeque(ShopConstants.REDIS_ORDER_OUTTIME_UNPAY_QUEUE); + while (true) { + try { + log.info("======延迟队列监听未支付订单======"); + String orderId = blockingDeque.take(); + log.info("延迟队列监听未支付订单订单编号:{}", orderId); + if(StrUtil.isNotEmpty(orderId)) { + appStoreOrderService.cancelOrder(orderId,null); + } + } catch (Exception e) { + log.error("Redission延迟队列监测异常中断,忽略此消息:{}", e.getMessage()); + return; + } + + } + + } + } + + + class ExecutorTaskUnConfirm implements Runnable { + @SneakyThrows + @Override + public void run() { + RBlockingDeque blockingDeque = redissonClient + .getBlockingDeque(ShopConstants.REDIS_ORDER_OUTTIME_UNCONFIRM); + while (true) { + try { + log.info("======延迟队列监听收货超时订单======"); + String orderId = blockingDeque.take(); + log.info("延迟队列监听收货超时订单订单编号:{}", orderId); + if(StrUtil.isNotEmpty(orderId)) { + appStoreOrderService.takeOrder(orderId,null); + } + } catch (Exception e) { + log.error("Redission延迟队列监测异常中断,忽略此消息:{}", e.getMessage()); + return; + } + + } + + } + } + +} diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/mq/consumer/PayNoticeConsumer.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/mq/consumer/PayNoticeConsumer.java new file mode 100644 index 0000000..6257941 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/mq/consumer/PayNoticeConsumer.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.order.mq.consumer; + +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; +import co.yixiang.yshop.module.order.service.storeorder.AppStoreOrderService; +import co.yixiang.yshop.module.pay.mq.message.PayNoticeMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import jakarta.annotation.Resource; + +/** + * 消息队列处理支付消息 + */ +@Component +@Slf4j +public class PayNoticeConsumer extends AbstractRedisStreamMessageListener { + + @Resource + private AppStoreOrderService appStoreOrderService; + + @Override + public void onMessage(PayNoticeMessage message) { + log.info("[onMessage][支付消息内容({})]", message); + appStoreOrderService.paySuccess(message.getOrderId(),message.getPayType()); + + } +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java similarity index 79% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java index 21df92c..aab99bd 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/AppStoreOrderServiceImpl.java @@ -6,8 +6,11 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.constant.ShopConstants; import co.yixiang.yshop.framework.common.enums.OrderInfoEnum; +import co.yixiang.yshop.framework.common.enums.PayIdEnum; import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; import co.yixiang.yshop.framework.common.exception.ErrorCode; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; +import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.module.coupon.dal.dataobject.couponuser.CouponUserDO; import co.yixiang.yshop.module.coupon.service.couponuser.AppCouponUserService; import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserQueryVo; @@ -52,17 +55,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.egzosn.pay.spring.boot.core.PayServiceManager; import com.egzosn.pay.spring.boot.core.bean.MerchantPayOrder; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RBlockingDeque; import org.redisson.api.RDelayedQueue; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; +import org.redisson.client.codec.StringCodec; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.net.URLEncoder; @@ -120,15 +124,12 @@ public class AppStoreOrderServiceImpl extends ServiceImpl createOrder(Long uid, AppOrderParam param) { + if(OrderLogEnum.ORDER_TAKE_DESK.getValue().equals(param.getOrderType()) + && StrUtil.isBlank(param.getDeskNumber())){ + throw exception(STORE_ORDER_DESK_NOT); + } //转换参数 List productIds = param.getProductId(); List numbers = param.getNumber(); @@ -174,11 +179,8 @@ public class AppStoreOrderServiceImpl extends ServiceImpl blockingDeque = redissonClient.getBlockingDeque(ShopConstants.REDIS_ORDER_OUTTIME_UNPAY_QUEUE); - RDelayedQueue delayedQueue = redissonClient.getDelayedQueue(blockingDeque); - delayedQueue.offer(orderSn, ShopConstants.ORDER_OUTTIME_UNPAY, TimeUnit.MINUTES); - String s = TimeUnit.SECONDS.toSeconds(ShopConstants.ORDER_OUTTIME_UNPAY) + "分钟"; - log.info("添加延时队列成功 ,延迟时间:" + s); - } catch (Exception e) { - log.error(e.getMessage()); + //堂食点餐不需要 + if(!OrderLogEnum.ORDER_TAKE_DESK.getValue().equals(param.getOrderType())) { + //加入延时队列,30分钟自动取消 + try { + RBlockingDeque blockingDeque = redissonClient.getBlockingDeque(ShopConstants.REDIS_ORDER_OUTTIME_UNPAY_QUEUE ); + RDelayedQueue delayedQueue = redissonClient.getDelayedQueue(blockingDeque); + delayedQueue.offer(storeOrder, ShopConstants.ORDER_OUTTIME_UNPAY, TimeUnit.MINUTES); + String s = TimeUnit.SECONDS.toSeconds(ShopConstants.ORDER_OUTTIME_UNPAY) + "分钟"; + log.info("添加延时队列成功 ,延迟时间:" + s + "订单编号:" + orderSn); + } catch (Exception e) { + log.error("添加延时队列失败:{}",e.getMessage()); + } } Map map = new HashMap<>(); @@ -330,13 +346,18 @@ public class AppStoreOrderServiceImpl extends ServiceImpl pay(Long uid, AppPayParam param) { AppStoreOrderQueryVo orderInfo = getOrderInfo(param.getUni(), uid); + UserBillDO userBillDO = billService.getOne(new LambdaQueryWrapper().eq(UserBillDO::getUid,uid) + .eq(UserBillDO::getExtendField,param.getUni())); - if (ObjectUtil.isNull(orderInfo)) { + if (ObjectUtil.isNull(orderInfo) && ObjectUtil.isNull(userBillDO)) { throw exception(STORE_ORDER_NOT_EXISTS); } if(ObjectUtil.isNotNull(orderInfo) && orderInfo.getPaid().equals(OrderInfoEnum.PAY_STATUS_1.getValue())) { throw exception(ORDER_PAY_FINISH); } + if(ObjectUtil.isNotNull(userBillDO) && userBillDO.getStatus().equals(OrderInfoEnum.PAY_STATUS_1.getValue())) { + throw exception(ORDER_PAY_FINISH); + } MemberUserDO memberUserDO = userService.getUser(uid); Map map = new LinkedHashMap<>(); @@ -346,12 +367,14 @@ public class AppStoreOrderServiceImpl extends ServiceImpl() .eq(UserBillDO::getExtendField,orderId)); if(userBillDO != null) { userBillDO.setStatus(ShopCommonEnum.IS_STATUS_1.getValue()); billService.updateById(userBillDO); - userService.incMoney(userBillDO.getUid(), userBillDO.getNumber()); + if(BillDetailEnum.TYPE_1.getValue().equals(userBillDO.getType())){ + //充值 + userService.incMoney(userBillDO.getUid(), userBillDO.getNumber()); + } + return; } + log.info("orderId:[{}]",orderId); AppStoreOrderQueryVo orderInfo = getOrderInfo(orderId, null); + log.info("orderInfo:[{}]",orderInfo); + if(orderInfo == null){ + return; + } //更新订单状态 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -465,6 +503,7 @@ public class AppStoreOrderServiceImpl extends ServiceImpl storeOrderCartInfoDOList = storeOrderCartInfoService .list(new LambdaQueryWrapper() .eq(StoreOrderCartInfoDO::getOid,orderInfo.getId())); @@ -640,67 +680,67 @@ public class AppStoreOrderServiceImpl extends ServiceImpl 0) { } else { - statusDTO.set_class("state-nfh"); - statusDTO.set_msg("商家未发货,请耐心等待"); - statusDTO.set_type("1"); - statusDTO.set_title("制作中"); + statusDTO.setYClass("state-nfh"); + statusDTO.setMsg("商家未发货,请耐心等待"); + statusDTO.setType("1"); + statusDTO.setTitle("制作中"); } } else if (OrderInfoEnum.STATUS_1.getValue().equals(order.getStatus())) { if(OrderLogEnum.ORDER_TAKE_OUT.getValue().equals(order.getOrderType())){ - statusDTO.set_title("配送中"); + statusDTO.setTitle("配送中"); }else{ - statusDTO.set_title("待取餐"); + statusDTO.setTitle("待取餐"); } - statusDTO.set_class("state-ysh"); - statusDTO.set_msg("服务商已发货"); - statusDTO.set_type("2"); + statusDTO.setYClass("state-ysh"); + statusDTO.setMsg("服务商已发货"); + statusDTO.setType("2"); } else if (OrderInfoEnum.STATUS_2.getValue().equals(order.getStatus())) { if(OrderLogEnum.ORDER_TAKE_OUT.getValue().equals(order.getOrderType())){ - statusDTO.set_title("已收货"); + statusDTO.setTitle("已收货"); }else{ - statusDTO.set_title("已取餐"); + statusDTO.setTitle("已取餐"); } - statusDTO.set_class("state-ypj"); - statusDTO.set_msg("已收货,快去评价一下吧"); - statusDTO.set_type("3"); + statusDTO.setYClass("state-ypj"); + statusDTO.setMsg("已收货,快去评价一下吧"); + statusDTO.setType("3"); } else if (OrderInfoEnum.STATUS_3.getValue().equals(order.getStatus())) { - statusDTO.set_class("state-ytk"); - statusDTO.set_msg("交易完成,感谢您的支持"); - statusDTO.set_type("4"); - statusDTO.set_title("交易完成"); + statusDTO.setYClass("state-ytk"); + statusDTO.setMsg("交易完成,感谢您的支持"); + statusDTO.setType("4"); + statusDTO.setTitle("交易完成"); } if (PayTypeEnum.WEIXIN.getValue().equals(order.getPayType())) { - statusDTO.set_payType("微信支付"); + statusDTO.setPayType("微信支付"); } else if (PayTypeEnum.YUE.getValue().equals(order.getPayType())) { - statusDTO.set_payType("余额支付"); + statusDTO.setPayType("余额支付"); } else if (PayTypeEnum.ALI.getValue().equals(order.getPayType())) { - statusDTO.set_payType("支付宝支付"); + statusDTO.setPayType("支付宝支付"); }else { - statusDTO.set_payType("积分支付"); + statusDTO.setPayType("积分支付"); } - order.set_status(statusDTO); + order.setStatusDto(statusDTO); return order; @@ -720,9 +760,13 @@ public class AppStoreOrderServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper(); + Long shopId = SecurityFrameworkUtils.getLoginUser().getShopId(); + if(shopId > 0) { + wrapper.eq(StoreOrderDO::getShopId,shopId); + } + wrapper.eq(StoreOrderDO::getPaid, OrderInfoEnum.PAY_STATUS_1.getValue()); + LocalDateTime nowTime = LocalDateTime.now(); + wrapper.ge(StoreOrderDO::getCreateTime,nowTime.minusSeconds(30)); + + return storeOrderMapper.selectCount(wrapper); + + } + /** * 退回库存 * diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CacheDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CacheDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CacheDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CacheDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ChartDataDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ChartDataDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ChartDataDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ChartDataDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CountDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CountDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CountDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/CountDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderCountDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderCountDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderCountDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderCountDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderExtendDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderExtendDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderExtendDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderExtendDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderTimeDataDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderTimeDataDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderTimeDataDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OrderTimeDataDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OtherDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OtherDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OtherDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/OtherDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/PriceGroupDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/PriceGroupDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/PriceGroupDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/PriceGroupDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductAttrDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductAttrDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductAttrDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductAttrDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/ProductDto.java diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StatusDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StatusDto.java new file mode 100644 index 0000000..4f4344b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StatusDto.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.module.order.service.storeorder.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName StatusDto + * @Author hupeng <610796224@qq.com> + * @Date 2024/1/19 + **/ +@Data +public class StatusDto implements Serializable { + private String yClass; + private String msg; + private String payType; + private String title; + private String type; +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StoreOrderCartInfoDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StoreOrderCartInfoDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StoreOrderCartInfoDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/StoreOrderCartInfoDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java similarity index 86% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java index 6ac81c0..81a4001 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/TemplateDto.java @@ -7,7 +7,7 @@ import java.math.BigDecimal; /** * @ClassName TemplateDTO * @Author hupeng <610796224@qq.com> - * @Date 2020/5/28 + * @Date 2024/2/17 **/ @Getter @Setter @@ -19,7 +19,7 @@ public class TemplateDto { private BigDecimal price; private Double first; private BigDecimal firstPrice; - private Double _continue; + private Double yContinue; private BigDecimal continuePrice; private Integer tempId; private Integer cityId; diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxExpressDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxExpressDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxExpressDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxExpressDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxOrderNowOrderStatusDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxOrderNowOrderStatusDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxOrderNowOrderStatusDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxOrderNowOrderStatusDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderCartInfoDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderCartInfoDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderCartInfoDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderCartInfoDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderStatusDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderStatusDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderStatusDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeorder/dto/YxStoreOrderStatusDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java similarity index 91% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java index 00e8946..ac2d32b 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoService.java @@ -1,5 +1,6 @@ package co.yixiang.yshop.module.order.service.storeordercartinfo; +import co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO; import co.yixiang.yshop.module.order.dal.dataobject.storeordercartinfo.StoreOrderCartInfoDO; import co.yixiang.yshop.module.product.controller.app.cart.vo.AppStoreCartQueryVo; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,4 +25,5 @@ public interface StoreOrderCartInfoService extends IService productIds,List numbers,List specs); + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java similarity index 91% rename from yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java index 034e1fc..9c9880a 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/storeordercartinfo/StoreOrderCartInfoServiceImpl.java @@ -4,22 +4,19 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.module.order.dal.dataobject.storeordercartinfo.StoreOrderCartInfoDO; import co.yixiang.yshop.module.order.dal.mysql.storeordercartinfo.StoreOrderCartInfoMapper; -import co.yixiang.yshop.module.product.controller.app.cart.vo.AppStoreCartQueryVo; import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO; import co.yixiang.yshop.module.product.dal.dataobject.storeproductattrvalue.StoreProductAttrValueDO; import co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductService; import co.yixiang.yshop.module.product.service.storeproductattrvalue.StoreProductAttrValueService; -import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -38,6 +35,7 @@ public class StoreOrderCartInfoServiceImpl extends ServiceImpl productIds,List numbers,List specs) { log.info("==========添加购物车商品信息start==========="); + List list = new ArrayList<>(); for (int i = 0;i < productIds.size();i++){ String newSku = StrUtil.replace(specs.get(i),"|",","); @@ -79,4 +78,6 @@ public class StoreOrderCartInfoServiceImpl extends ServiceImpl + + + co.yixiang.boot + yshop-module-mall + ${revision} + + 4.0.0 + yshop-module-product-biz + jar + + ${project.artifactId} + + product 模块,主要实现商品相关功能 + 例如:品牌、商品分类、spu、sku等功能。 + + + + + co.yixiang.boot + yshop-module-product-api + ${revision} + + + co.yixiang.boot + yshop-module-store-biz + ${revision} + + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java index 8303083..7c54e29 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/api/product/ProductApiImpl.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.product.enums.product.ProductTypeEnum; import co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Date; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java index e961591..c983a64 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/ProductCategoryController.java @@ -16,8 +16,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.Comparator; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java similarity index 93% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java index 143c820..b36e7ea 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java @@ -3,8 +3,8 @@ package co.yixiang.yshop.module.product.controller.admin.category.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; /** * 商品分类 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java index 2538503..f8f0fc9 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 商品分类更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java index 6b6c0ff..bf566c3 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/StoreProductController.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.product.controller.admin.storeproduct; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.*; import co.yixiang.yshop.module.product.convert.storeproduct.StoreProductConvert; import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO; @@ -12,20 +11,19 @@ import co.yixiang.yshop.module.product.service.storeproduct.dto.StoreProductDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.io.IOException; import java.util.Collection; import java.util.List; import java.util.Map; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 商品") @RestController @@ -91,7 +89,6 @@ public class StoreProductController { @GetMapping("/export-excel") @Operation(summary = "导出商品 Excel") @PreAuthorize("@ss.hasPermission('shop:store-product:export')") - @OperateLog(type = EXPORT) public void exportStoreProductExcel(@Valid StoreProductExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = storeProductService.getStoreProductList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java index e3681de..9738ecd 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductBaseVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.product.controller.admin.storeproduct.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java index 7350221..243be4f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductCreateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; @Schema(description = "管理后台 - 商品创建 Request VO") diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java index 40518a7..baeb450 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproduct/vo/StoreProductUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; @Schema(description = "管理后台 - 商品更新 Request VO") diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java similarity index 87% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java index 201e9ff..cc8e9c6 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/StoreProductReplyController.java @@ -1,33 +1,24 @@ package co.yixiang.yshop.module.product.controller.admin.storeproductreply; -import co.yixiang.yshop.module.product.controller.app.product.vo.AppStoreProductReplyQueryVo; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.pojo.CommonResult; -import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; - -import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; - -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - -import co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo.*; -import co.yixiang.yshop.module.product.dal.dataobject.storeproductreply.StoreProductReplyDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo.StoreProductReplyPageReqVO; +import co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo.StoreProductReplyRespVO; +import co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo.StoreProductReplyUpdateReqVO; +import co.yixiang.yshop.module.product.controller.app.product.vo.AppStoreProductReplyQueryVo; import co.yixiang.yshop.module.product.convert.storeproductreply.StoreProductReplyConvert; +import co.yixiang.yshop.module.product.dal.dataobject.storeproductreply.StoreProductReplyDO; import co.yixiang.yshop.module.product.service.storeproductreply.StoreProductReplyService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 评论") @RestController diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java index d747928..6c61adc 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyBaseVO.java @@ -6,7 +6,7 @@ import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; import org.springframework.format.annotation.DateTimeFormat; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java index 0a27272..96b2687 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductreply/vo/StoreProductReplyUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 评论更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java index 1e0434f..509ed15 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/StoreProductRuleController.java @@ -1,15 +1,15 @@ package co.yixiang.yshop.module.product.controller.admin.storeproductrule; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -19,9 +19,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.product.controller.admin.storeproductrule.vo.*; import co.yixiang.yshop.module.product.dal.dataobject.storeproductrule.StoreProductRuleDO; import co.yixiang.yshop.module.product.convert.storeproductrule.StoreProductRuleConvert; @@ -93,7 +90,6 @@ public class StoreProductRuleController { @GetMapping("/export-excel") @Operation(summary = "导出商品规则值(规格) Excel") @PreAuthorize("@ss.hasPermission('shop:store-product-rule:export')") - @OperateLog(type = EXPORT) public void exportStoreProductRuleExcel(@Valid StoreProductRuleExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = storeProductRuleService.getStoreProductRuleList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java similarity index 95% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java index 64cf53a..aee16c6 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleBaseVO.java @@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONArray; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleCreateReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRulePageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRulePageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRulePageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRulePageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java index 99b866f..7daf015 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/storeproductrule/vo/StoreProductRuleUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.product.controller.admin.storeproductrule.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 商品规则值(规格)更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/cart/vo/AppStoreCartQueryVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/cart/vo/AppStoreCartQueryVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/cart/vo/AppStoreCartQueryVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/cart/vo/AppStoreCartQueryVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java index 29bb22e..65d2474 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/AppCategoryController.java @@ -12,7 +12,7 @@ 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 jakarta.annotation.Resource; import java.util.Comparator; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java similarity index 91% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java index 5cd5f2f..0628860 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/category/vo/AppCategoryRespVO.java @@ -4,8 +4,8 @@ import co.yixiang.yshop.module.product.controller.app.product.vo.AppStoreProduct import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.util.List; @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java similarity index 81% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java index 157664b..77eb24d 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/AppStoreProductController.java @@ -12,14 +12,15 @@ package co.yixiang.yshop.module.product.controller.app.product; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.module.product.controller.app.category.vo.AppCategoryRespVO; import co.yixiang.yshop.module.product.controller.app.product.param.AppStoreProductQueryParam; +import co.yixiang.yshop.module.product.controller.app.product.vo.AppStoreProductRespVo; import co.yixiang.yshop.module.product.service.storeproduct.AppStoreProductService; -import co.yixiang.yshop.module.product.service.storeproductreply.AppStoreProductReplyService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -43,10 +44,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; public class AppStoreProductController { private final AppStoreProductService storeProductService; - private final AppStoreProductReplyService appStoreProductReplyService; - - - /** @@ -58,6 +55,17 @@ public class AppStoreProductController { return success(storeProductService.getGoodsList(productQueryParam)); } + /** + * 获取产品详情 + */ + @GetMapping("/detail/{id}") + @Operation(summary = "获取产品详情") + public CommonResult goodsDetail(@PathVariable Long id){ + return success(storeProductService.getStoreProductById(id)); + } + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/param/AppStoreProductQueryParam.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/param/AppStoreProductQueryParam.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/param/AppStoreProductQueryParam.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/param/AppStoreProductQueryParam.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppIndexVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppIndexVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppIndexVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppIndexVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppProductVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppProductVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppProductVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppProductVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppReplyCountVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppReplyCountVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppReplyCountVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppReplyCountVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductAttrQueryVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductAttrQueryVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductAttrQueryVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductAttrQueryVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductReplyQueryVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductReplyQueryVo.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductReplyQueryVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductReplyQueryVo.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java index b043cd5..7db61e8 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/app/product/vo/AppStoreProductRespVo.java @@ -28,6 +28,9 @@ public class AppStoreProductRespVo implements Serializable { @Schema(description = "id", required = true) private Long id; + @Schema(description = "分类id", required = true) + private String cateId; + @Schema(description = "商品图片", required = true) private String image; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/category/ProductCategoryConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/category/ProductCategoryConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/category/ProductCategoryConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/category/ProductCategoryConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproduct/StoreProductConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproduct/StoreProductConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproduct/StoreProductConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproduct/StoreProductConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattr/StoreProductAttrConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattr/StoreProductAttrConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattr/StoreProductAttrConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattr/StoreProductAttrConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrresult/StoreProductAttrResultConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrresult/StoreProductAttrResultConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrresult/StoreProductAttrResultConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrresult/StoreProductAttrResultConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrvalue/StoreProductAttrValueConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrvalue/StoreProductAttrValueConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrvalue/StoreProductAttrValueConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductattrvalue/StoreProductAttrValueConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductreply/StoreProductReplyConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductreply/StoreProductReplyConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductreply/StoreProductReplyConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductreply/StoreProductReplyConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductrule/StoreProductRuleConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductrule/StoreProductRuleConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductrule/StoreProductRuleConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/convert/storeproductrule/StoreProductRuleConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/category/ProductCategoryDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/category/ProductCategoryDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/category/ProductCategoryDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/category/ProductCategoryDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproduct/StoreProductDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproduct/StoreProductDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproduct/StoreProductDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproduct/StoreProductDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattr/StoreProductAttrDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattr/StoreProductAttrDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattr/StoreProductAttrDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattr/StoreProductAttrDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrresult/StoreProductAttrResultDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrresult/StoreProductAttrResultDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrresult/StoreProductAttrResultDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrresult/StoreProductAttrResultDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrvalue/StoreProductAttrValueDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrvalue/StoreProductAttrValueDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrvalue/StoreProductAttrValueDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductattrvalue/StoreProductAttrValueDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductreply/StoreProductReplyDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductreply/StoreProductReplyDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductreply/StoreProductReplyDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductreply/StoreProductReplyDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductrule/StoreProductRuleDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductrule/StoreProductRuleDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductrule/StoreProductRuleDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/dataobject/storeproductrule/StoreProductRuleDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/category/ProductCategoryMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproduct/StoreProductMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproduct/StoreProductMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproduct/StoreProductMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproduct/StoreProductMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattr/StoreProductAttrMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattr/StoreProductAttrMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattr/StoreProductAttrMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattr/StoreProductAttrMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrresult/StoreProductAttrResultMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrresult/StoreProductAttrResultMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrresult/StoreProductAttrResultMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrresult/StoreProductAttrResultMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrvalue/StoreProductAttrValueMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrvalue/StoreProductAttrValueMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrvalue/StoreProductAttrValueMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductattrvalue/StoreProductAttrValueMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductreply/StoreProductReplyMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductRuleMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductRuleMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductRuleMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/dal/mysql/storeproductrule/StoreProductRuleMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java index 870fbcd..7ab0eb2 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/config/ProductWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.product.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/framework/web/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java index 09a591a..8828cba 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryService.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.product.dal.dataobject.category.ProductCategoryDO import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO; import com.baomidou.mybatisplus.extension.service.IService; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java index 46d2095..0b35170 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/category/ProductCategoryServiceImpl.java @@ -16,7 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import java.util.Objects; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java similarity index 95% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java index 99cab9e..13273f1 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/AppStoreProductServiceImpl.java @@ -31,7 +31,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -182,7 +182,11 @@ public class AppStoreProductServiceImpl extends ServiceImpl returnMap = appStoreProductAttrService.getProductAttrDetail(id); + storeProductRespVo.setProductAttr((List) returnMap.get("productAttr")); + storeProductRespVo.setProductValue((Map) returnMap.get("productValue")); + return storeProductRespVo; } diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java index b7b85e4..5b7c14d 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.product.service.storeproduct; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.*; import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java similarity index 93% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java index 3dedec8..248328a 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/StoreProductServiceImpl.java @@ -29,7 +29,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -538,7 +538,8 @@ public class StoreProductServiceImpl extends ServiceImpl mapAttr = (Map) result.getObject("value",ArrayList.class).get(0); ProductFormatDto productFormatDto = ProductFormatDto.builder() .pic(result.getImage()) @@ -593,6 +594,36 @@ public class StoreProductServiceImpl extends ServiceImpl mapAttr = (Map) result.getObject("value",ArrayList.class).get(0); + ProductFormatDto productFormatDto = ProductFormatDto.builder() + .pic(mapAttr.get("pic").toString()) + .price(Double.valueOf(mapAttr.get("price").toString())) + .cost(Double.valueOf(mapAttr.get("cost").toString())) + .otPrice(Double.valueOf(mapAttr.get("otPrice").toString())) + .stock(Integer.valueOf(mapAttr.get("stock").toString())) + .barCode(mapAttr.get("barCode").toString()) + .weight(Double.valueOf(mapAttr.get("weight").toString())) + .volume(Double.valueOf(mapAttr.get("volume").toString())) + .value1(mapAttr.get("value1").toString()) + .integral(mapAttr.get("integral") !=null ? Integer.valueOf(mapAttr.get("integral").toString()) : 0) + .brokerage(Double.valueOf(mapAttr.get("brokerage").toString())) + .brokerageTwo(Double.valueOf(mapAttr.get("brokerageTwo").toString())) + .pinkPrice(Double.valueOf(mapAttr.get("pinkPrice").toString())) + .pinkStock(Integer.valueOf(mapAttr.get("pinkStock").toString())) + .seckillPrice(Double.valueOf(mapAttr.get("seckillPrice").toString())) + .seckillStock(Integer.valueOf(mapAttr.get("seckillStock").toString())) + .build(); + productDto.setAttr(productFormatDto); + } + + /** * 计算产品数据 * diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/AttrValueDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/AttrValueDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/AttrValueDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/AttrValueDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/DetailDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/DetailDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/DetailDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/DetailDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/FromatDetailDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/FromatDetailDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/FromatDetailDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/FromatDetailDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductFormatDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductFormatDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductFormatDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductFormatDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductResultDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductResultDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductResultDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/ProductResultDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java index dc279d5..a311551 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/StoreProductDto.java @@ -5,8 +5,8 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRelationDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRelationDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRelationDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRelationDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductReplyDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductReplyDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductReplyDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductReplyDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRuleDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRuleDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRuleDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductRuleDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductSmallDto.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductSmallDto.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductSmallDto.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproduct/dto/YxStoreProductSmallDto.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java index bff5a56..914c1fa 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/AppStoreProductAttrServiceImpl.java @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.*; import java.util.stream.Collectors; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java index 7a9f224..f9045f4 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattr/StoreProductAttrServiceImpl.java @@ -18,7 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.math.BigDecimal; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java index 97b9afb..3516113 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrresult/StoreProductAttrResultServiceImpl.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; import java.util.Date; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java index 8615353..79250b7 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductattrvalue/StoreProductAttrValueServiceImpl.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java index d719cdd..ae5f9a3 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/AppStoreProductReplyServiceImpl.java @@ -20,7 +20,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java index 9141e6c..7911325 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyService.java @@ -6,7 +6,7 @@ import co.yixiang.yshop.module.product.controller.admin.storeproductreply.vo.Sto import co.yixiang.yshop.module.product.controller.app.product.vo.AppStoreProductReplyQueryVo; import co.yixiang.yshop.module.product.dal.dataobject.storeproductreply.StoreProductReplyDO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 评论 Service 接口 diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java index 1e1d834..87b6694 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductreply/StoreProductReplyServiceImpl.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductD import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java index 4c7043d..0b6e349 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.product.service.storeproductrule; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.product.controller.admin.storeproductrule.vo.*; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java index 74fe9c4..515c5e1 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/storeproductrule/StoreProductRuleServiceImpl.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.product.service.storeproductrule; import co.yixiang.yshop.module.product.convert.storeproductrule.StoreProductRuleConvert; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplates/ShippingTemplatesMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplates/ShippingTemplatesMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplates/ShippingTemplatesMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplates/ShippingTemplatesMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesfree/ShippingTemplatesFreeMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesfree/ShippingTemplatesFreeMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesfree/ShippingTemplatesFreeMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesfree/ShippingTemplatesFreeMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesregion/ShippingTemplatesRegionMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesregion/ShippingTemplatesRegionMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesregion/ShippingTemplatesRegionMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/shippingtemplatesregion/ShippingTemplatesRegionMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproduct/StoreProductMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproduct/StoreProductMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproduct/StoreProductMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproduct/StoreProductMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattr/StoreProductAttrMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattr/StoreProductAttrMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattr/StoreProductAttrMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattr/StoreProductAttrMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrresult/StoreProductAttrResultMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrresult/StoreProductAttrResultMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrresult/StoreProductAttrResultMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrresult/StoreProductAttrResultMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrvalue/StoreProductAttrValueMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrvalue/StoreProductAttrValueMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrvalue/StoreProductAttrValueMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductattrvalue/StoreProductAttrValueMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrelation/StoreProductRelationMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrelation/StoreProductRelationMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrelation/StoreProductRelationMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrelation/StoreProductRelationMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductreply/StoreProductReplyMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductreply/StoreProductReplyMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductreply/StoreProductReplyMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductreply/StoreProductReplyMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrule/StoreProductRuleMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrule/StoreProductRuleMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrule/StoreProductRuleMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/storeproductrule/StoreProductRuleMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-api/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-api/pom.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-api/pom.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-api/src/main/java/co/yixiang/yshop/module/shop/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-api/src/main/java/co/yixiang/yshop/module/shop/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-api/src/main/java/co/yixiang/yshop/module/shop/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-api/src/main/java/co/yixiang/yshop/module/shop/enums/ErrorCodeConstants.java diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/pom.xml new file mode 100644 index 0000000..5f7e8da --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/pom.xml @@ -0,0 +1,66 @@ + + + + co.yixiang.boot + yshop-module-mall + ${revision} + + 4.0.0 + yshop-module-shop-biz + jar + + ${project.artifactId} + + shop 模块,主要实现商品相关功能 + + + + + co.yixiang.boot + yshop-module-shop-api + ${revision} + + + co.yixiang.boot + yshop-module-store-biz + ${revision} + + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/MaterialController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/MaterialController.java new file mode 100644 index 0000000..ef2e000 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/MaterialController.java @@ -0,0 +1,86 @@ +package co.yixiang.yshop.module.shop.controller.admin.material; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.shop.controller.admin.material.vo.MaterialCreateReqVO; +import co.yixiang.yshop.module.shop.controller.admin.material.vo.MaterialPageReqVO; +import co.yixiang.yshop.module.shop.controller.admin.material.vo.MaterialRespVO; +import co.yixiang.yshop.module.shop.controller.admin.material.vo.MaterialUpdateReqVO; +import co.yixiang.yshop.module.shop.convert.material.MaterialConvert; +import co.yixiang.yshop.module.shop.dal.dataobject.material.MaterialDO; +import co.yixiang.yshop.module.shop.service.material.MaterialService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Collection; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 素材库") +@RestController +@RequestMapping("/shop/material") +@Validated +public class MaterialController { + + @Resource + private MaterialService materialService; + + @PostMapping("/create") + @Operation(summary = "创建素材库") + //@PreAuthorize("@ss.hasPermission('shop:material:create')") + public CommonResult createMaterial(@Valid @RequestBody MaterialCreateReqVO createReqVO) { + return success(materialService.createMaterial(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新素材库") + //@PreAuthorize("@ss.hasPermission('shop:material:update')") + public CommonResult updateMaterial(@Valid @RequestBody MaterialUpdateReqVO updateReqVO) { + materialService.updateMaterial(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除素材库") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('shop:material:delete')") + public CommonResult deleteMaterial(@RequestParam("id") Long id) { + materialService.deleteMaterial(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得素材库") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('shop:material:query')") + public CommonResult getMaterial(@RequestParam("id") Long id) { + MaterialDO material = materialService.getMaterial(id); + return success(MaterialConvert.INSTANCE.convert(material)); + } + + @GetMapping("/list") + @Operation(summary = "获得素材库列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + //@PreAuthorize("@ss.hasPermission('shop:material:query')") + public CommonResult> getMaterialList(@RequestParam("ids") Collection ids) { + List list = materialService.getMaterialList(ids); + return success(MaterialConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得素材库分页") + //@PreAuthorize("@ss.hasPermission('shop:material:query')") + public CommonResult> getMaterialPage(@Valid MaterialPageReqVO pageVO) { + PageResult pageResult = materialService.getMaterialPage(pageVO); + return success(MaterialConvert.INSTANCE.convertPage(pageResult)); + } + + + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java similarity index 95% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java index 211ba6d..f68f545 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialBaseVO.java @@ -5,7 +5,7 @@ import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 素材库 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java index 1169ec6..fe37851 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.material.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 素材库创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java index 5a5ba69..f5a99d2 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/material/vo/MaterialUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.material.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 素材库更新 Request VO") @Data diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/MaterialGroupController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/MaterialGroupController.java new file mode 100644 index 0000000..b12b071 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/MaterialGroupController.java @@ -0,0 +1,83 @@ +package co.yixiang.yshop.module.shop.controller.admin.materialgroup; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.*; +import co.yixiang.yshop.module.shop.convert.materialgroup.MaterialGroupConvert; +import co.yixiang.yshop.module.shop.dal.dataobject.materialgroup.MaterialGroupDO; +import co.yixiang.yshop.module.shop.service.materialgroup.MaterialGroupService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 素材分组") +@RestController +@RequestMapping("/shop/material-group") +@Validated +public class MaterialGroupController { + + @Resource + private MaterialGroupService materialGroupService; + + @PostMapping("/create") + @Operation(summary = "创建素材分组") + //@PreAuthorize("@ss.hasPermission('shop:material-group:create')") + public CommonResult createMaterialGroup(@Valid @RequestBody MaterialGroupCreateReqVO createReqVO) { + return success(materialGroupService.createMaterialGroup(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新素材分组") + //@PreAuthorize("@ss.hasPermission('shop:material-group:update')") + public CommonResult updateMaterialGroup(@Valid @RequestBody MaterialGroupUpdateReqVO updateReqVO) { + materialGroupService.updateMaterialGroup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除素材分组") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('shop:material-group:delete')") + public CommonResult deleteMaterialGroup(@RequestParam("id") Long id) { + materialGroupService.deleteMaterialGroup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得素材分组") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('shop:material-group:query')") + public CommonResult getMaterialGroup(@RequestParam("id") Long id) { + MaterialGroupDO materialGroup = materialGroupService.getMaterialGroup(id); + return success(MaterialGroupConvert.INSTANCE.convert(materialGroup)); + } + + @GetMapping("/list") + @Operation(summary = "获得素材分组列表") + //@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + //@PreAuthorize("@ss.hasPermission('shop:material-group:query')") + public CommonResult> getMaterialGroupList() { + MaterialGroupExportReqVO exportReqVO = new MaterialGroupExportReqVO(); + List list = materialGroupService.getMaterialGroupList(exportReqVO); + return success(MaterialGroupConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得素材分组分页") + //@PreAuthorize("@ss.hasPermission('shop:material-group:query')") + public CommonResult> getMaterialGroupPage(@Valid MaterialGroupPageReqVO pageVO) { + PageResult pageResult = materialGroupService.getMaterialGroupPage(pageVO); + return success(MaterialGroupConvert.INSTANCE.convertPage(pageResult)); + } + + + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java similarity index 93% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java index fe6932c..5d91fa2 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupBaseVO.java @@ -5,7 +5,7 @@ import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 素材分组 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java similarity index 90% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java index 42f32f2..c5f6c0b 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 素材分组创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java index 96953fa..771ce7e 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/materialgroup/vo/MaterialGroupUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 素材分组更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java index 3f5328d..4f69b4c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/ServiceController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.shop.controller.admin.service; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,9 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.shop.controller.admin.service.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.service.ServiceDO; import co.yixiang.yshop.module.shop.convert.service.ServiceConvert; @@ -90,7 +87,6 @@ public class ServiceController { @GetMapping("/export-excel") @Operation(summary = "导出我的服务 Excel") @PreAuthorize("@ss.hasPermission('shop:service:export')") - @OperateLog(type = EXPORT) public void exportServiceExcel(@Valid ServiceExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = serviceService.getServiceList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java index abda76f..f70c29b 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceBaseVO.java @@ -5,7 +5,7 @@ import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 我的服务 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java index 7c1ebf7..68e8432 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.service.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 我的服务创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServicePageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServicePageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServicePageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServicePageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java index c7b6af9..33d24ef 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/service/vo/ServiceUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.service.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 我的服务更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java index 9e3c746..8b17b82 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/ShopAdsController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.shop.controller.admin.shopads; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,8 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; import co.yixiang.yshop.module.shop.controller.admin.shopads.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.shopads.ShopAdsDO; @@ -90,7 +88,6 @@ public class ShopAdsController { @GetMapping("/export-excel") @Operation(summary = "导出广告图管理 Excel") @PreAuthorize("@ss.hasPermission('shop:ads:export')") - @OperateLog(type = EXPORT) public void exportAdsExcel(@Valid ShopAdsExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = adsService.getAdsList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java index de9847f..0450750 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsBaseVO.java @@ -5,7 +5,7 @@ import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 广告图管理 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java index cf2ee98..06eab72 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.shopads.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 广告图管理创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java index fcd0b63..9787412 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/shopads/vo/ShopAdsUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.admin.shopads.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 广告图管理更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/AppAdController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/AppAdController.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/AppAdController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/AppAdController.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java similarity index 88% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java index fa22a37..7d85302 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/ad/vo/AppShopAdsVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.shop.controller.app.ad.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * 广告图VO diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java index 214ffbf..ec8a5ed 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/AppServiceController.java @@ -52,7 +52,7 @@ public class AppServiceController { @Operation(summary = "服务菜单列表") public CommonResult> getList() { List appShopAdsVOS = appServiceService.list(new LambdaQueryWrapper() - .eq(ServiceDO::getStatus, ShopCommonEnum.IS_STATUS_1.getValue())); + .eq(ServiceDO::getStatus, ShopCommonEnum.IS_STATUS_1.getValue()).orderByDesc(ServiceDO::getWeigh)); return success(ServiceConvert.INSTANCE.convertList03(appShopAdsVOS)); } diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/vo/AppServiceVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/vo/AppServiceVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/vo/AppServiceVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/app/service/vo/AppServiceVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/material/MaterialConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/material/MaterialConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/material/MaterialConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/material/MaterialConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/materialgroup/MaterialGroupConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/materialgroup/MaterialGroupConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/materialgroup/MaterialGroupConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/materialgroup/MaterialGroupConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/service/ServiceConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/service/ServiceConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/service/ServiceConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/service/ServiceConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/shopads/ShopAdsConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/shopads/ShopAdsConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/shopads/ShopAdsConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/convert/shopads/ShopAdsConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/material/MaterialDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/material/MaterialDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/material/MaterialDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/material/MaterialDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/materialgroup/MaterialGroupDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/materialgroup/MaterialGroupDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/materialgroup/MaterialGroupDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/materialgroup/MaterialGroupDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/service/ServiceDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/service/ServiceDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/service/ServiceDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/service/ServiceDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/shopads/ShopAdsDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/shopads/ShopAdsDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/shopads/ShopAdsDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/dataobject/shopads/ShopAdsDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/material/MaterialMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/material/MaterialMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/material/MaterialMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/material/MaterialMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/materialgroup/MaterialGroupMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/materialgroup/MaterialGroupMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/materialgroup/MaterialGroupMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/materialgroup/MaterialGroupMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/service/ServiceMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/shopads/ShopAdsMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/shopads/ShopAdsMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/shopads/ShopAdsMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/dal/mysql/shopads/ShopAdsMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java index 3caf0d3..aacbdc7 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/config/ShopWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/package-info.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/package-info.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/framework/web/package-info.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java index d1d3988..8d9d1a8 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.material; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.shop.controller.admin.material.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.material.MaterialDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java index d581bc4..3e018b0 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.material; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java index 057f9ee..6de1878 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.materialgroup; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.shop.controller.admin.materialgroup.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.materialgroup.MaterialGroupDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java index e03c107..6864b5d 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/materialgroup/MaterialGroupServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.materialgroup; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java index 9f1cd8b..ae37428 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/AppServiceServiceImpl.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 我的服务 Service 实现类 diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java index 3165d96..73f0366 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.service; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.shop.controller.admin.service.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.service.ServiceDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java index 885efbc..8fdaa10 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/service/ServiceServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.service; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsServiceImpl.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/AppShopAdsServiceImpl.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java index aecab08..9047bae 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.shop.service.shopads; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.shop.controller.admin.shopads.vo.*; import co.yixiang.yshop.module.shop.dal.dataobject.shopads.ShopAdsDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java index 235d965..830eb50 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopads/ShopAdsServiceImpl.java @@ -6,7 +6,7 @@ import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.module.store.dal.mysql.storeshop.StoreShopMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/material/MaterialMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/material/MaterialMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/material/MaterialMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/material/MaterialMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/materialgroup/MaterialGroupMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/materialgroup/MaterialGroupMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/materialgroup/MaterialGroupMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/main/resources/mapper/materialgroup/MaterialGroupMapper.xml diff --git a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java index 83eb0ef..4dac4c4 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-shop-biz/src/test/java/co/yixiang/yshop/module/shop/service/material/MaterialServiceImplTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; @@ -13,7 +13,7 @@ import co.yixiang.yshop.module.shop.dal.dataobject.material.MaterialDO; import co.yixiang.yshop.module.shop.dal.mysql.material.MaterialMapper; import co.yixiang.yshop.framework.common.pojo.PageResult; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.context.annotation.Import; import java.util.*; import java.time.LocalDateTime; diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-api/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-api/pom.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/pom.xml diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..03c2718 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/ErrorCodeConstants.java @@ -0,0 +1,11 @@ +package co.yixiang.yshop.module.store.enums; + +import co.yixiang.yshop.framework.common.exception.ErrorCode; + +public interface ErrorCodeConstants { + ErrorCode SHOP_NOT_EXISTS = new ErrorCode(1008016000, "门店管理不存在"); + ErrorCode WEB_PRINT_NOT_EXISTS = new ErrorCode(1008016001, "易联云打印机不存在"); + ErrorCode STORE_REVENUE_NOT_EXISTS = new ErrorCode(1008016002, "店铺收支明细不存在"); + ErrorCode WITHDRAWAL_NOT_EXISTS = new ErrorCode(1008016003, "提现管理不存在"); + ErrorCode USER_BANK_NOT_EXISTS = new ErrorCode(1008016004, "提现账户不存在"); +} diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/WithdrawalStatusEnum.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/WithdrawalStatusEnum.java new file mode 100644 index 0000000..1d3b0c1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-api/src/main/java/co/yixiang/yshop/module/store/enums/WithdrawalStatusEnum.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.store.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author hupeng + * 类型枚举 + */ +@Getter +@AllArgsConstructor +public enum WithdrawalStatusEnum { + STATUS_0(0,"未审核"), + STATUS_1(1,"待到账"), + STATUS_2(2,"审核拒绝"), + STATUS_3(3,"已到账"); + + private Integer value; + private String desc; +} diff --git a/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/pom.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/pom.xml new file mode 100644 index 0000000..8d63cae --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/pom.xml @@ -0,0 +1,79 @@ + + + + co.yixiang.boot + yshop-module-mall + ${revision} + + 4.0.0 + yshop-module-store-biz + jar + + ${project.artifactId} + + 门店 模块,主要实现商品购物车相关功能 + + + + + co.yixiang.boot + yshop-module-store-api + ${revision} + + + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java index 29247e1..11d662f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/StoreShopController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.store.controller.admin.storeshop; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,9 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.store.controller.admin.storeshop.vo.*; import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvert; @@ -89,7 +86,6 @@ public class StoreShopController { @GetMapping("/export-excel") @Operation(summary = "导出门店管理 Excel") @PreAuthorize("@ss.hasPermission('store:shop:export')") - @OperateLog(type = EXPORT) public void exportShopExcel(@Valid StoreShopExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = shopService.getShopList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java index 309a532..ead713f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopBaseVO.java @@ -9,7 +9,7 @@ import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; import org.springframework.format.annotation.DateTimeFormat; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -76,7 +76,7 @@ public class StoreShopBaseVO { private List adminId; @Schema(description = "打印机id", required = true, example = "5596") - // @NotNull(message = "打印机id不能为空") + @NotNull(message = "打印机id不能为空") private String uniprintId; @Schema(description = "营业开始时间", required = true) @@ -89,4 +89,7 @@ public class StoreShopBaseVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private Date endTime; + @Schema(description = "余额", required = true, example = "5596") + private BigDecimal balance; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopCreateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopCreateReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExcelVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExcelVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExportReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExportReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopPageReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopPageReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopRespVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopRespVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java index 48ac965..a94b83c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/admin/storeshop/vo/StoreShopUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.store.controller.admin.storeshop.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 门店管理更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java similarity index 85% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java index 723bdf6..4ca3400 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/AppStoreController.java @@ -10,6 +10,8 @@ package co.yixiang.yshop.module.store.controller.app.storeshop; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.module.store.controller.app.storeshop.vo.AppStoreShopVO; +import co.yixiang.yshop.module.store.convert.storeshop.StoreShopConvert; +import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.module.store.service.storeshop.AppStoreShopService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -66,6 +68,13 @@ public class AppStoreController { return success(appStoreShopService.getStoreList(lon,lat,name,shopId)); } + @GetMapping("/getShop") + @Operation(summary = "获取最近的店铺") + public CommonResult getShop(@RequestParam("shop_id") Integer shopId) { + StoreShopDO storeShopDO = appStoreShopService.getById(shopId); + return success(StoreShopConvert.INSTANCE.convert02(storeShopDO)); + } + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java similarity index 87% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java index baa4046..eb973d7 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/controller/app/storeshop/vo/AppStoreShopVO.java @@ -66,4 +66,13 @@ public class AppStoreShopVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private Date endTime; + @Schema(description = "桌面是否空闲", required = true) + private Boolean isEmpty; + + @Schema(description = "桌面订单", required = true) + private String deskOrderId; + + @Schema(description = "是否营业:0=否,1=是", required = true) + private Integer status; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/convert/storeshop/StoreShopConvert.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/convert/storeshop/StoreShopConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/convert/storeshop/StoreShopConvert.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/convert/storeshop/StoreShopConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java similarity index 99% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java index cc5e044..869d7ab 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/dataobject/storeshop/StoreShopDO.java @@ -103,4 +103,5 @@ public class StoreShopDO extends BaseDO { */ private Date endTime; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java index cd0beba..6c08c52 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/mysql/storeshop/StoreShopMapper.java @@ -1,5 +1,6 @@ package co.yixiang.yshop.module.store.dal.mysql.storeshop; +import java.math.BigDecimal; import java.util.*; import co.yixiang.yshop.framework.common.pojo.PageResult; @@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Mapper; import co.yixiang.yshop.module.store.controller.admin.storeshop.vo.*; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; /** * 门店管理 Mapper @@ -24,6 +26,7 @@ public interface StoreShopMapper extends BaseMapperX { default PageResult selectPage(StoreShopPageReqVO reqVO) { Long shopId = SecurityFrameworkUtils.getLoginUser().getShopId(); + System.out.println("shopId2:"+shopId); if(shopId == 0) { reqVO.setShopId(null); }else { @@ -70,7 +73,7 @@ public interface StoreShopMapper extends BaseMapperX { @Select("" @@ -78,4 +81,9 @@ public interface StoreShopMapper extends BaseMapperX { List getStoreList(@Param("lon") double lon, @Param("lat") double lat, @Param("name") String name,@Param("shopId") Integer shopId); + + @Update("update yshop_store_shop set balance=balance+#{price}" + + " where id=#{shopId}") + int incMoney(@Param("shopId") Long shopId,@Param("price") BigDecimal price); + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java index 6921255..4beb2ca 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/PrintTokenRedisDAO.java @@ -4,7 +4,7 @@ package co.yixiang.yshop.module.store.dal.redis; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.concurrent.TimeUnit; @@ -31,7 +31,7 @@ public class PrintTokenRedisDAO { String redisKey = YSHOP_WEB_PRINT_TOKEN_KEY.getKeyTemplate(); - stringRedisTemplate.opsForValue().set(redisKey, o,30, TimeUnit.DAYS); + stringRedisTemplate.opsForValue().set(redisKey, o,2, TimeUnit.HOURS); } public void delete() { diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/RedisKeyConstants.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/RedisKeyConstants.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/RedisKeyConstants.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/dal/redis/RedisKeyConstants.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopService.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopService.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java similarity index 96% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java index 22bb83a..cd7b9e9 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/AppStoreShopServiceImpl.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java index 0c481fc..2dbf288 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.store.service.storeshop; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.store.controller.admin.storeshop.vo.*; import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java similarity index 90% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java index 06698f9..850f99d 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/java/co/yixiang/yshop/module/store/service/storeshop/StoreShopServiceImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.framework.common.exception.ErrorCode; import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -35,12 +35,12 @@ public class StoreShopServiceImpl implements StoreShopService { public Long createShop(StoreShopCreateReqVO createReqVO) { //管理员只能绑定一个门店 createReqVO.getAdminId().forEach(val -> { - Long count = shopMapper.selectCount(new LambdaQueryWrapper() + Long count = shopMapper.selectCount(new LambdaQueryWrapper() .apply( - "FIND_IN_SET ('" + val + "',admin_id)")); - if(count > 0){ - throw exception(new ErrorCode(1000,"管理员ID:"+val+"已经绑定过其他门店,不能再次绑定")); - } + "FIND_IN_SET ('" + val + "',admin_id)")); + if(count > 0){ + throw exception(new ErrorCode(1000,"管理员ID:"+val+"已经绑定过其他门店,不能再次绑定")); + } }); // 插入 StoreShopDO shop = StoreShopConvert.INSTANCE.convert(createReqVO); @@ -51,6 +51,7 @@ public class StoreShopServiceImpl implements StoreShopService { @Override public void updateShop(StoreShopUpdateReqVO updateReqVO) { + //管理员只能绑定一个门店 updateReqVO.getAdminId().forEach(val -> { Long count = shopMapper.selectCount(new LambdaQueryWrapper() diff --git a/yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/resources/mapper/storeshop/StoreShopMapper.xml b/yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/resources/mapper/storeshop/StoreShopMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-store-biz/src/main/resources/mapper/storeshop/StoreShopMapper.xml rename to yshop-drink-boot3/yshop-module-mall/yshop-module-store-biz/src/main/resources/mapper/storeshop/StoreShopMapper.xml diff --git a/yshop-drink-boot3/yshop-module-marketing/pom.xml b/yshop-drink-boot3/yshop-module-marketing/pom.xml new file mode 100644 index 0000000..68fec01 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-marketing/pom.xml @@ -0,0 +1,26 @@ + + + + yshop + co.yixiang.boot + ${revision} + + 4.0.0 + + yshop-module-marketing + pom + + ${project.artifactId} + + 营销模块 优惠券 会员卡 分销 拼团 + + + + yshop-module-coupon-api + yshop-module-coupon-biz + + + + \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/pom.xml b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/pom.xml new file mode 100644 index 0000000..d1eb848 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + co.yixiang.boot + yshop-module-marketing + ${revision} + + + yshop-module-coupon-api + jar + + ${project.artifactId} + + coupon模块 API,暴露给其它模块调用 + + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + diff --git a/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/CouponStatusEnum.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/CouponStatusEnum.java new file mode 100644 index 0000000..fdb7222 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/CouponStatusEnum.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2018-2022 + * All rights reserved, Designed By www.yixiang.co + + */ +package co.yixiang.yshop.module.coupon.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.stream.Stream; + +/** + * @author hupeng + * 优惠券相关枚举 + */ +@Getter +@AllArgsConstructor +public enum CouponStatusEnum { + + STATUS_0(0,"未使用"), + STATUS_1(1,"已使用"), + STATUS_2(2,"已失效"); + + + + private Integer value; + private String desc; + + public static CouponStatusEnum toType(int value) { + return Stream.of(CouponStatusEnum.values()) + .filter(p -> p.value == value) + .findAny() + .orElse(null); + } + + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-api/src/main/java/co/yixiang/yshop/module/coupon/enums/ErrorCodeConstants.java diff --git a/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/pom.xml b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/pom.xml new file mode 100644 index 0000000..b66996f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/pom.xml @@ -0,0 +1,72 @@ + + + + co.yixiang.boot + yshop-module-marketing + ${revision} + + 4.0.0 + yshop-module-coupon-biz + jar + + ${project.artifactId} + + 优惠券 模块,主要实现商品购物车相关功能 + + + + + co.yixiang.boot + yshop-module-coupon-api + ${revision} + + + co.yixiang.boot + yshop-module-store-biz + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-web + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java similarity index 88% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java index 1279e03..090555b 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/CouponController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.coupon.controller.admin.coupon; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,9 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.*; import co.yixiang.yshop.module.coupon.dal.dataobject.coupon.CouponDO; import co.yixiang.yshop.module.coupon.convert.coupon.CouponConvert; @@ -74,8 +71,8 @@ public class CouponController { @Operation(summary = "获得优惠券列表") @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") @PreAuthorize("@ss.hasPermission('coupon::query')") - public CommonResult> getList(@RequestParam("ids") Collection ids) { - List list = Service.getList(ids); + public CommonResult> getList() { + List list = Service.getList(); return success(CouponConvert.INSTANCE.convertList(list)); } @@ -90,7 +87,6 @@ public class CouponController { @GetMapping("/export-excel") @Operation(summary = "导出优惠券 Excel") @PreAuthorize("@ss.hasPermission('coupon::export')") - @OperateLog(type = EXPORT) public void exportExcel(@Valid CouponExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = Service.getList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java index 4ddc995..7a23a96 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponBaseVO.java @@ -9,7 +9,7 @@ import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; import org.springframework.format.annotation.DateTimeFormat; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java index f46a2c7..605de18 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.coupon.controller.admin.coupon.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 优惠券创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExcelVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExcelVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExportReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExportReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponExportReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponPageReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponPageReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponPageReqVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponRespVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponRespVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java index b2a7b58..c651ebb 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/coupon/vo/CouponUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.coupon.controller.admin.coupon.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 优惠券更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java index aae7e9c..ad1c088 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/CouponUserController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.coupon.controller.admin.couponuser; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,9 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.coupon.controller.admin.couponuser.vo.*; import co.yixiang.yshop.module.coupon.dal.dataobject.couponuser.CouponUserDO; import co.yixiang.yshop.module.coupon.convert.couponuser.CouponUserConvert; @@ -90,7 +87,6 @@ public class CouponUserController { @GetMapping("/export-excel") @Operation(summary = "导出用户领的优惠券 Excel") @PreAuthorize("@ss.hasPermission('coupon:user:export')") - @OperateLog(type = EXPORT) public void exportUserExcel(@Valid CouponUserExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = userService.getUserList(exportReqVO); diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java index a6b6d05..8cc2cfc 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserBaseVO.java @@ -7,7 +7,7 @@ import java.time.LocalDateTime; import java.util.*; import java.math.BigDecimal; import java.math.BigDecimal; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 用户领的优惠券 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java similarity index 90% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java index 957880f..e14225f 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.coupon.controller.admin.couponuser.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 用户领的优惠券创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExcelVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExcelVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExcelVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java index a140858..2864f1c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserExportReqVO.java @@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import co.yixiang.yshop.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java index 6671781..4e64fd3 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserPageReqVO.java @@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import co.yixiang.yshop.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserRespVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserRespVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserRespVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserRespVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java index debfebc..ef75649 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/admin/couponuser/vo/CouponUserUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.coupon.controller.admin.couponuser.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 用户领的优惠券更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java similarity index 94% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java index 4a59282..897042c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/AppCouponController.java @@ -78,6 +78,8 @@ public class AppCouponController { @Parameters({ @Parameter(name = "shopId", description = "店铺ID", example = "1"), + @Parameter(name = "type", description = "0-未使用 1-已使用 2-已过期", + example = "1"), @Parameter(name = "page", description = "页码,默认为1", required = true, example = "1"), @Parameter(name = "pagesize", description = "页大小,默认为10", @@ -85,10 +87,11 @@ public class AppCouponController { }) @Operation(summary = "获取我的优惠券") public CommonResult> myList(@RequestParam(value = "shopId",required = false) Long shopId, + @RequestParam(value = "type",defaultValue = "0") int type, @RequestParam(value = "page",defaultValue = "1") int page, @RequestParam(value = "pagesize",defaultValue = "10") int pagesize){ Long uid = getLoginUserId(); - return success(appCouponUserService.getList(uid,shopId,page,pagesize)); + return success(appCouponUserService.getList(uid,shopId,type,page,pagesize)); } /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java similarity index 95% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java index 97eab2c..d2b81da 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppCouponVO.java @@ -92,4 +92,9 @@ public class AppCouponVO { private LocalDateTime createTime; + /** + * 是否已领取 + */ + private Integer isReceive; + } diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppMyCouponVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppMyCouponVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppMyCouponVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppMyCouponVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppReceVO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppReceVO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppReceVO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/controller/app/coupon/vo/AppReceVO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java similarity index 95% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java index 62bc1e4..bd92523 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/coupon/CouponConvert.java @@ -26,6 +26,8 @@ public interface CouponConvert { CouponRespVO convert(CouponDO bean); + AppCouponVO convert01(CouponDO bean); + List convertList(List list); List convertList03(List list); diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/couponuser/CouponUserConvert.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/couponuser/CouponUserConvert.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/couponuser/CouponUserConvert.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/convert/couponuser/CouponUserConvert.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/coupon/CouponDO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/coupon/CouponDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/coupon/CouponDO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/coupon/CouponDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/couponuser/CouponUserDO.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/couponuser/CouponUserDO.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/couponuser/CouponUserDO.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/dataobject/couponuser/CouponUserDO.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/coupon/CouponMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/dal/mysql/couponuser/CouponUserMapper.java diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java similarity index 97% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java index 6ec3cf3..d4e69d7 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponService.java @@ -10,7 +10,7 @@ import co.yixiang.yshop.module.coupon.controller.app.coupon.vo.AppMyCouponVO; import co.yixiang.yshop.module.coupon.dal.dataobject.coupon.CouponDO; import com.baomidou.mybatisplus.extension.service.IService; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java similarity index 87% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java index 3099be8..1b0b93e 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/AppCouponServiceImpl.java @@ -31,8 +31,9 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -64,23 +65,26 @@ public class AppCouponServiceImpl extends ServiceImpl im */ @Override public List getNotList(Long uid, Long shopId, int page, int pagesize) { - - List couponUserDOS = appCouponUserService.list(new LambdaQueryWrapper() - .eq(CouponUserDO::getUserId,uid)); - - LocalDateTime nowTime = LocalDateTime.now(); Page pageModel = new Page<>(page, pagesize); LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); wrapper.eqIfPresent(CouponDO::getShopId, shopId) .gt(CouponDO::getEndTime,nowTime) .orderByDesc(CouponDO::getWeigh); - if(couponUserDOS != null && !couponUserDOS.isEmpty()) { - List couponIds = couponUserDOS.stream().map(CouponUserDO::getCouponId).collect(Collectors.toList()); - wrapper.notIn(CouponDO::getId,couponIds); - } IPage pageList = this.baseMapper.selectPage(pageModel, wrapper); - return CouponConvert.INSTANCE.convertList03(pageList.getRecords()); + List list = new ArrayList<>(); + for (CouponDO couponDO : pageList.getRecords()) { + AppCouponVO appCouponVO = CouponConvert.INSTANCE.convert01(couponDO); + long count = appCouponUserService.count(new LambdaQueryWrapper() + .eq(CouponUserDO::getUserId,uid).eq(CouponUserDO::getCouponId,couponDO.getId())); + if(count > 0){ + appCouponVO.setIsReceive(ShopCommonEnum.DEFAULT_1.getValue()); + }else { + appCouponVO.setIsReceive(ShopCommonEnum.DEFAULT_0.getValue()); + } + list.add(appCouponVO); + } + return list; } /** diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java similarity index 91% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java index 6106149..6fc5b07 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.coupon.service.coupon; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.coupon.controller.admin.coupon.vo.*; import co.yixiang.yshop.module.coupon.dal.dataobject.coupon.CouponDO; import co.yixiang.yshop.framework.common.pojo.PageResult; @@ -44,12 +44,11 @@ public interface CouponService { CouponDO get(Long id); /** - * 获得优惠券列表 + * 获得优惠券列表全店铺通用 * - * @param ids 编号 * @return 优惠券列表 */ - List getList(Collection ids); + List getList(); /** * 获得优惠券分页 diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java similarity index 89% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java index 99b1398..f1f75d2 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/coupon/CouponServiceImpl.java @@ -10,10 +10,12 @@ import co.yixiang.yshop.module.coupon.dal.dataobject.coupon.CouponDO; import co.yixiang.yshop.module.coupon.dal.mysql.coupon.CouponMapper; import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.module.store.dal.mysql.storeshop.StoreShopMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; import java.util.List; @@ -76,8 +78,8 @@ public class CouponServiceImpl implements CouponService { } @Override - public List getList(Collection ids) { - return Mapper.selectBatchIds(ids); + public List getList() { + return Mapper.selectList(new LambdaQueryWrapper().eq(CouponDO::getShopId,0)); } @Override diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java similarity index 84% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java index 2c5a0b4..e64173c 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserService.java @@ -16,11 +16,12 @@ public interface AppCouponUserService extends IService { /** * 获取我的优惠券列表 * @param shopId 店铺id + * @param type * @param page * @param pagesize * @return */ - List getList(Long uid, Long shopId, int page, int pagesize); + List getList(Long uid, Long shopId,int type, int page, int pagesize); diff --git a/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserServiceImpl.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserServiceImpl.java new file mode 100644 index 0000000..de57771 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/AppCouponUserServiceImpl.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.coupon.service.couponuser; + +import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.coupon.controller.app.coupon.vo.AppMyCouponVO; +import co.yixiang.yshop.module.coupon.convert.couponuser.CouponUserConvert; +import co.yixiang.yshop.module.coupon.dal.dataobject.couponuser.CouponUserDO; +import co.yixiang.yshop.module.coupon.dal.mysql.couponuser.CouponUserMapper; +import co.yixiang.yshop.module.coupon.enums.CouponStatusEnum; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 用户领的优惠券 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +public class AppCouponUserServiceImpl extends ServiceImpl implements AppCouponUserService { + + @Resource + private CouponUserMapper userMapper; + + + + /** + * 获取我的优惠券列表 + * @param shopId 店铺id + * @param page + * @param pagesize + * @return + */ + @Override + public List getList(Long uid, Long shopId, int type, int page, int pagesize) { + LocalDateTime nowTime = LocalDateTime.now(); + Page pageModel = new Page<>(page, pagesize); + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + switch (CouponStatusEnum.toType(type)) { + case STATUS_0: + wrapper.eq(CouponUserDO::getStatus,CouponStatusEnum.STATUS_0.getValue()) + .lt(CouponUserDO::getStartTime,nowTime) + .gt(CouponUserDO::getEndTime,nowTime); + break; + case STATUS_1: + wrapper.eq(CouponUserDO::getStatus,CouponStatusEnum.STATUS_1.getValue()) + .lt(CouponUserDO::getStartTime,nowTime) + .gt(CouponUserDO::getEndTime,nowTime); + break; + case STATUS_2: + wrapper.lt(CouponUserDO::getEndTime,nowTime); + break; + default: + log.warn("为了遵循阿里巴巴规范"); + } + wrapper.eqIfPresent(CouponUserDO::getShopId, shopId) + .eq(CouponUserDO::getUserId,uid); + IPage pageList = this.baseMapper.selectPage(pageModel, wrapper); + return CouponUserConvert.INSTANCE.convertList03(pageList.getRecords()); + } + + +} diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java index c1c454d..99d9480 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.coupon.service.couponuser; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.coupon.controller.admin.couponuser.vo.*; import co.yixiang.yshop.module.coupon.dal.dataobject.couponuser.CouponUserDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java index 21f789b..75744ef 100644 --- a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/java/co/yixiang/yshop/module/coupon/service/couponuser/CouponUserServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.coupon.service.couponuser; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/resources/mapper/coupon/CouponMapper.xml b/yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/resources/mapper/coupon/CouponMapper.xml similarity index 100% rename from yshop-drink/yshop-module-mall/yshop-module-coupon-biz/src/main/resources/mapper/coupon/CouponMapper.xml rename to yshop-drink-boot3/yshop-module-marketing/yshop-module-coupon-biz/src/main/resources/mapper/coupon/CouponMapper.xml diff --git a/yshop-drink/yshop-module-member/pom.xml b/yshop-drink-boot3/yshop-module-member/pom.xml similarity index 100% rename from yshop-drink/yshop-module-member/pom.xml rename to yshop-drink-boot3/yshop-module-member/pom.xml diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/pom.xml b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/pom.xml rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/pom.xml diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/package-info.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/package-info.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/package-info.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/package-info.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApi.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApi.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApi.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApi.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/MemberUserRespDTO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/MemberUserRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/MemberUserRespDTO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/MemberUserRespDTO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/WechatUserDto.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/WechatUserDto.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/WechatUserDto.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/api/user/dto/WechatUserDto.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillDetailEnum.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillDetailEnum.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillDetailEnum.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillDetailEnum.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillEnum.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillEnum.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillEnum.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/BillEnum.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/LoginTypeEnum.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/LoginTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/LoginTypeEnum.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/LoginTypeEnum.java diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/pom.xml b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/pom.xml new file mode 100644 index 0000000..9c1c411 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/pom.xml @@ -0,0 +1,103 @@ + + + + co.yixiang.boot + yshop-module-member + ${revision} + + 4.0.0 + yshop-module-member-biz + jar + + ${project.artifactId} + + member 模块,我们放会员业务。 + 例如说:会员中心等等 + + + + + co.yixiang.boot + yshop-module-member-api + ${revision} + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + co.yixiang.boot + yshop-module-infra-api + ${revision} + + + co.yixiang.boot + yshop-module-coupon-biz + ${revision} + + + co.yixiang.boot + yshop-module-shop-biz + ${revision} + + + + + com.github.binarywang + wx-java-mp-spring-boot-starter + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-validation + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + co.yixiang.boot + yshop-spring-boot-starter-biz-ip + + + + + + + diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/package-info.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/package-info.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/package-info.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/package-info.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java index 70f82b2..9865d2c 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/api/user/MemberUserApiImpl.java @@ -8,11 +8,11 @@ import co.yixiang.yshop.module.member.api.user.dto.WechatUserDto; import co.yixiang.yshop.module.member.convert.user.UserConvert; import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; import co.yixiang.yshop.module.member.service.user.MemberUserService; +import jakarta.annotation.Resource; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.util.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java index 8dca636..0668998 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java @@ -9,12 +9,12 @@ import co.yixiang.yshop.module.member.service.user.UserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; 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.Collection; import java.util.List; diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO.java new file mode 100644 index 0000000..2cb500d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserBaseVO.java @@ -0,0 +1,106 @@ +package co.yixiang.yshop.module.member.controller.admin.user.vo; + +import co.yixiang.yshop.module.member.api.user.dto.WechatUserDto; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + + +/** +* 用户 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class UserBaseVO { + + @Schema(description = "用户账户(跟accout一样)", example = "王五") + private String username; + + @Schema(description = "真实姓名", example = "王五") + private String realName; + + @Schema(description = "用户昵称", example = "李四") + private String nickname; + + @Schema(description = "用户头像") + private String avatar; + + //@MobileDesensitize + @Schema(description = "手机号码") + private String mobile; + + @Schema(description = "添加ip") + private String addIp; + + @Schema(description = "用户余额", required = true) + //@NotNull(message = "用户余额不能为空") + private BigDecimal nowMoney; + + @Schema(description = "佣金金额", required = true, example = "14395") + //@NotNull(message = "佣金金额不能为空") + private BigDecimal brokeragePrice; + + @Schema(description = "用户剩余积分", required = true) + // @NotNull(message = "用户剩余积分不能为空") + private BigDecimal integral; + + @Schema(description = "1为正常,0为禁止", required = true, example = "2") + // @NotNull(message = "1为正常,0为禁止不能为空") + private Integer status; + + @Schema(description = "是否为推广员", required = true) + // @NotNull(message = "是否为推广员不能为空") + private Integer isPromoter; + + @Schema(description = "用户购买次数", example = "16061") + private Integer payCount; + + @Schema(description = "下级人数", example = "4960") + private Integer spreadCount; + + @Schema(description = "详细地址", required = true) + // @NotNull(message = "详细地址不能为空") + private String addres; + + @Schema(description = "管理员编号 ", example = "29490") + private Integer adminid; + + @Schema(description = "用户登陆类型,h5,wechat,routine", required = true, example = "2") + // @NotNull(message = "用户登陆类型,h5,wechat,routine不能为空") + private String loginType; + + @Schema(description = "微信用户json信息") + private WechatUserDto wxProfile; + + @Schema(description = "生日") + private String birthday; + + /** + * 最后一次登录ip + */ + private String loginIp; + + /** + * 最后一次登录ip + */ + private String lastIp; + + /** + * 等级 + */ + private Integer level; + + /** + * 推广元id + */ + private Long spreadUid; + + /** + * 身份证号码 + */ + private String cardId; + + + +} diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserCreateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserCreateReqVO.java new file mode 100644 index 0000000..4d6dc40 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserCreateReqVO.java @@ -0,0 +1,57 @@ +package co.yixiang.yshop.module.member.controller.admin.user.vo; + +import jakarta.validation.constraints.NotNull; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import static co.yixiang.yshop.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 UserCreateReqVO extends UserBaseVO { + + @Schema(description = "用户密码(跟pwd)") + private String password; + + @Schema(description = "生日") + private String birthday; + + @Schema(description = "身份证号码", example = "29961") + private String cardId; + + @Schema(description = "用户备注") + private String mark; + + @Schema(description = "合伙人id", example = "4234") + private Integer partnerId; + + @Schema(description = "用户分组id", example = "12625") + private Integer groupId; + + @Schema(description = "最后一次登录ip") + private String lastIp; + + @Schema(description = "连续签到天数", required = true) + @NotNull(message = "连续签到天数不能为空") + private Integer signNum; + + @Schema(description = "等级", required = true) + @NotNull(message = "等级不能为空") + private Integer level; + + @Schema(description = "推广元id", example = "5747") + private Long spreadUid; + + @Schema(description = "推广员关联时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime spreadTime; + + @Schema(description = "用户类型", required = true, example = "1") + @NotNull(message = "用户类型不能为空") + private String userType; + +} diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserExportReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserExportReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserExportReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserPageReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserPageReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserPageReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserRespVO.java diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateMoneyReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateMoneyReqVO.java new file mode 100644 index 0000000..3745b2e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateMoneyReqVO.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.member.controller.admin.user.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "管理后台 - 用户更新 Request VO") +@Data +@ToString(callSuper = true) +public class UserUpdateMoneyReqVO { + + @Schema(description = "用户id", required = true, example = "16370") + @NotNull(message = "用户id不能为空") + private Long id; + + @Schema(description = "修改金额类型") + private Integer ptype; + + @Schema(description = "金额") + @NotNull(message = "金额不能为空") + private String money; + + @Schema(description = "修改积分类型") + private Integer itype; + + @Schema(description = "积分") + @NotNull(message = "积分不能为空") + private String integral; + + + +} diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateReqVO.java new file mode 100644 index 0000000..c23c756 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/vo/UserUpdateReqVO.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.module.member.controller.admin.user.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import static co.yixiang.yshop.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 UserUpdateReqVO extends UserBaseVO { + + @Schema(description = "用户id", required = true, example = "16370") + @NotNull(message = "用户id不能为空") + private Long id; + + @Schema(description = "用户密码(跟pwd)") + private String password; + + @Schema(description = "生日") + private String birthday; + + @Schema(description = "身份证号码", example = "29961") + private String cardId; + + @Schema(description = "用户备注") + private String mark; + + @Schema(description = "合伙人id", example = "4234") + private Integer partnerId; + + @Schema(description = "用户分组id", example = "12625") + private Integer groupId; + + @Schema(description = "最后一次登录ip") + private String lastIp; + + @Schema(description = "连续签到天数", required = true) + //@NotNull(message = "连续签到天数不能为空") + private Integer signNum; + + @Schema(description = "等级", required = true) + //@NotNull(message = "等级不能为空") + private Integer level; + + @Schema(description = "推广元id", example = "5747") + private Long spreadUid; + + @Schema(description = "推广员关联时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime spreadTime; + + @Schema(description = "用户类型", required = true, example = "1") + // @NotNull(message = "用户类型不能为空") + private String userType; + +} diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java index afbca47..d9a6a47 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/UserAddressController.java @@ -12,12 +12,12 @@ import co.yixiang.yshop.module.member.service.useraddress.UserAddressService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; 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.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java similarity index 97% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java index 80b3581..6754c97 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressBaseVO.java @@ -2,11 +2,12 @@ package co.yixiang.yshop.module.member.controller.admin.useraddress.vo; import co.yixiang.yshop.framework.desensitize.core.slider.annotation.MobileDesensitize; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; + /** * 用户地址 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java index 17a5a6b..37b0082 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressCreateReqVO.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.member.controller.admin.useraddress.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; @Schema(description = "管理后台 - 用户地址创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressExportReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressExportReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressExportReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressPageReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressPageReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressPageReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressRespVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java similarity index 91% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java index 768d344..9a9e733 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/useraddress/vo/UserAddressUpdateReqVO.java @@ -1,9 +1,10 @@ package co.yixiang.yshop.module.member.controller.admin.useraddress.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.*; import java.util.*; -import javax.validation.constraints.*; + @Schema(description = "管理后台 - 用户地址更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java similarity index 75% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java index 783c8fe..d2be90b 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/UserBillController.java @@ -1,30 +1,24 @@ package co.yixiang.yshop.module.member.controller.admin.userbill; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.pojo.CommonResult; -import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; - -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - -import co.yixiang.yshop.module.member.controller.admin.userbill.vo.*; -import co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.member.controller.admin.userbill.vo.UserBillPageReqVO; +import co.yixiang.yshop.module.member.controller.admin.userbill.vo.UserBillRespVO; import co.yixiang.yshop.module.member.convert.userbill.UserBillConvert; +import co.yixiang.yshop.module.member.dal.dataobject.userbill.UserBillDO; import co.yixiang.yshop.module.member.service.userbill.UserBillService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +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 static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 用户账单") @RestController diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java similarity index 97% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java index 5ef1ce9..aa87c7a 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillBaseVO.java @@ -1,13 +1,14 @@ package co.yixiang.yshop.module.member.controller.admin.userbill.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.*; import java.util.*; import java.math.BigDecimal; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; + /** * 用户账单 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java index b570770..9ac0a3b 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillCreateReqVO.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.member.controller.admin.userbill.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; @Schema(description = "管理后台 - 用户账单创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillExportReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillExportReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillExportReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillPageReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillPageReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillPageReqVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillRespVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java similarity index 89% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java index 15ebb99..ffb0627 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/userbill/vo/UserBillUpdateReqVO.java @@ -1,9 +1,9 @@ package co.yixiang.yshop.module.member.controller.admin.userbill.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.*; -import java.util.*; -import javax.validation.constraints.*; + @Schema(description = "管理后台 - 用户账单更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java similarity index 99% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java index 2e72b99..08b1062 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/AppUserAddressController.java @@ -25,12 +25,12 @@ import co.yixiang.yshop.module.member.service.useraddress.AppUserAddressService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AddressDetailParam.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AddressDetailParam.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AddressDetailParam.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AddressDetailParam.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java index 21912b0..2536cd4 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/param/AppAddressParam.java @@ -2,10 +2,10 @@ package co.yixiang.yshop.module.member.controller.app.address.param; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; import java.io.Serializable; /** diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressLocationVo.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressLocationVo.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressLocationVo.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressLocationVo.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressQueryVo.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressQueryVo.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressQueryVo.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AppUserAddressQueryVo.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AreaNodeRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AreaNodeRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AreaNodeRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/address/vo/AreaNodeRespVO.java diff --git a/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/AppAuthController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/AppAuthController.java new file mode 100644 index 0000000..9c5e8bd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/AppAuthController.java @@ -0,0 +1,140 @@ +package co.yixiang.yshop.module.member.controller.app.auth; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.security.config.SecurityProperties; +import co.yixiang.yshop.framework.security.core.annotations.PreAuthenticated; +import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; +import co.yixiang.yshop.module.member.controller.app.auth.vo.*; +import co.yixiang.yshop.module.member.service.auth.MemberAuthService; +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 jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "用户 APP - 认证") +@RestController +@RequestMapping("/member/auth") +@Validated +@Slf4j +public class AppAuthController { + + @Resource + private MemberAuthService authService; + + @Resource + private SecurityProperties securityProperties; + + @Value("${yshop.info.isActive}") + private Boolean isActive; + + + @PostMapping("/login") + @Operation(summary = "使用手机 + 密码登录") + public CommonResult login(@RequestBody @Valid AppAuthLoginReqVO reqVO) { + return success(authService.login(reqVO)); + } + + @PostMapping("/logout") + @PermitAll + @Operation(summary = "登出系统") + public CommonResult logout(HttpServletRequest request) { + String token = SecurityFrameworkUtils.obtainAuthorization(request, securityProperties.getTokenHeader(),securityProperties.getTokenParameter()); + if (StrUtil.isNotBlank(token)) { + authService.logout(token); + } + return success(true); + } + + @PostMapping("/refresh-token") + @Operation(summary = "刷新令牌") + @Parameter(name = "refreshToken", description = "刷新令牌", required = true) + public CommonResult refreshToken(@RequestParam("refreshToken") String refreshToken) { + return success(authService.refreshToken(refreshToken)); + } + + // ========== 短信登录相关 ========== + + @PostMapping("/sms-login") + @Operation(summary = "使用手机 + 验证码登录") + public CommonResult smsLogin(@RequestBody @Valid AppAuthSmsLoginReqVO reqVO) { + return success(authService.smsLogin(reqVO)); + } + + @PostMapping("/send-sms-code") + @Operation(summary = "发送手机验证码") + public CommonResult sendSmsCode(@RequestBody @Valid AppAuthSmsSendReqVO reqVO) { + authService.sendSmsCode(getLoginUserId(), reqVO); + return success(true); + } + +// @PostMapping("/reset-password") +// @Operation(summary = "重置密码", description = "用户忘记密码时使用") +// @PreAuthenticated +// public CommonResult resetPassword(@RequestBody @Valid AppAuthResetPasswordReqVO reqVO) { +// authService.resetPassword(reqVO); +// return success(true); +// } + + @PostMapping("/update-password") + @Operation(summary = "修改用户密码", description = "用户修改密码时使用") + @PreAuthenticated + public CommonResult updatePassword(@RequestBody @Valid AppAuthUpdatePasswordReqVO reqVO) { + authService.updatePassword(getLoginUserId(), reqVO); + return success(true); + } + + // ========== 社交登录相关 ========== + +// @GetMapping("/social-auth-redirect") +// @Operation(summary = "社交授权的跳转") +// @Parameters({ +// @Parameter(name = "type", description = "社交类型", required = true), +// @Parameter(name = "redirectUri", description = "回调路径") +// }) +// public CommonResult socialAuthRedirect(@RequestParam("type") Integer type, +// @RequestParam("redirectUri") String redirectUri) { +// return CommonResult.success(authService.getSocialAuthorizeUrl(type, redirectUri)); +// } +// +// @PostMapping("/social-login") +// @Operation(summary = "社交快捷登录,使用 code 授权码", description = "适合未登录的用户,但是社交账号已绑定用户") +// public CommonResult socialLogin(@RequestBody @Valid AppAuthSocialLoginReqVO reqVO) { +// return success(authService.socialLogin(reqVO)); +// } + + @PostMapping("/weixin-mini-app-login") + @Operation(summary = "微信小程序的一键登录") + public CommonResult weixinMiniAppLogin(@RequestBody @Valid AppAuthWeixinMiniAppLoginReqVO reqVO) { + return success(authService.weixinMiniAppLogin(reqVO)); + } + + @PostMapping("/auth-session") + @Operation(summary = "微信小程序登录") + public CommonResult weixinMiniAppLogin2(@RequestBody @Valid AppWeixinMiniLoginVO loginVO) { + AppAuthLoginRespVO appAuthLoginRespVO = authService.weixinMiniAppLogin2(loginVO); + appAuthLoginRespVO.setIsActive(isActive); + return success(appAuthLoginRespVO); + } + + @PostMapping("/auth-miniapp-login") + @Operation(summary = "微信小程序登录") + public CommonResult weixinMiniAppLogin3(@RequestBody @Valid AppWxMiniLoginVO appWxMiniLoginVO) { + return success(authService.weixinMiniAppLogin3(appWxMiniLoginVO.getEncryptedData(),appWxMiniLoginVO.getIv() + ,appWxMiniLoginVO.getOpenid())); + } + + + +} diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java index 9ed9f20..6af9d3d 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java @@ -4,15 +4,15 @@ import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; // TODO yshop:code review 相关逻辑 @Schema(description = "用户 APP - 校验验证码 Request VO") diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java similarity index 95% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java index 3b33524..c8d6d9a 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java @@ -5,14 +5,14 @@ import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; 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; @Schema(description = "用户 APP - 手机 + 密码登录 Request VO,如果登录并绑定社交用户,需要传递 social 开头的参数") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java similarity index 89% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java index 4246897..fbd6b76 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java @@ -2,15 +2,15 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import co.yixiang.yshop.framework.common.validation.Mobile; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Pattern; // TODO yshop:code review 相关逻辑 @Schema(description = "用户 APP - 重置密码 Request VO") diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java similarity index 93% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java index 3cc5317..07c8c32 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java @@ -5,15 +5,15 @@ import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; 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 = "用户 APP - 手机 + 验证码登录 Request VO,如果登录并绑定社交用户,需要传递 social 开头的参数") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java similarity index 94% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java index 818d9de..6e97521 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java @@ -4,10 +4,10 @@ import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotNull; @Schema(description = "用户 APP - 发送手机验证码 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java similarity index 92% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java index d1377cc..1837389 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java @@ -3,13 +3,13 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; @Schema(description = "用户 APP - 社交快捷登录 Request VO,使用 code 授权码") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java index e01e15a..b0866b5 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java @@ -1,14 +1,14 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; // TODO yshop:code review 相关逻辑 @Schema(description = "用户 APP - 修改密码 Request VO") diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java similarity index 94% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java index c00d2df..0aa4f73 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java @@ -1,12 +1,12 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; @Schema(description = "用户 APP - 微信小程序手机登录 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java similarity index 92% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java index 6793bf9..9cb84f9 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWeixinMiniLoginVO.java @@ -1,12 +1,12 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; @Schema(description = "用户 APP - 微信小程序手机登录 VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java similarity index 94% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java index 8f6ea0c..3b565bf 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/auth/vo/AppWxMiniLoginVO.java @@ -1,12 +1,12 @@ package co.yixiang.yshop.module.member.controller.app.auth.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; @Schema(description = "用户 APP - 微信小程序手机登录 VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java similarity index 96% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java index 672201e..5c69332 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/AppSocialUserController.java @@ -8,11 +8,11 @@ import co.yixiang.yshop.module.member.convert.social.SocialUserConvert; import co.yixiang.yshop.module.system.api.social.SocialUserApi; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import javax.validation.Valid; import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java similarity index 92% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java index c52a545..ae79c57 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java @@ -3,13 +3,13 @@ package co.yixiang.yshop.module.member.controller.app.social.vo; import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; @Schema(description = "用户 APP - 社交绑定 Request VO,使用 code 授权码") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java similarity index 91% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java index 9f58659..6f0f745 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java @@ -3,13 +3,13 @@ package co.yixiang.yshop.module.member.controller.app.social.vo; import co.yixiang.yshop.framework.common.validation.InEnum; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; @Schema(description = "用户 APP - 取消社交绑定 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java index ffdec75..484a440 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/AppUserController.java @@ -11,13 +11,13 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; 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 co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserBillVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserBillVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserBillVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserBillVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserInfoRespVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserInfoRespVO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserInfoRespVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserInfoRespVO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java similarity index 94% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java index 13db346..7681ec5 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserNickVO.java @@ -1,8 +1,8 @@ package co.yixiang.yshop.module.member.controller.app.user.vo; +import jakarta.validation.constraints.NotBlank; import lombok.*; -import javax.validation.constraints.NotBlank; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserOrderCountVo.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserOrderCountVo.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserOrderCountVo.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserOrderCountVo.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserQueryVo.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserQueryVo.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserQueryVo.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserQueryVo.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java similarity index 77% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java index 70f375b..cc6d26f 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserRechargeVO.java @@ -1,11 +1,10 @@ package co.yixiang.yshop.module.member.controller.app.user.vo; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.*; -import javax.validation.constraints.NotBlank; -import java.math.BigDecimal; -import java.time.LocalDateTime; + /** * 用户充值 vo diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java similarity index 92% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java index 434f9e2..2a79871 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java @@ -2,15 +2,15 @@ package co.yixiang.yshop.module.member.controller.app.user.vo; import co.yixiang.yshop.framework.common.validation.Mobile; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Pattern; @Schema(description = "用户 APP - 修改手机 Request VO") @Data diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java similarity index 97% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java index d1e7244..44490e4 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/weixin/AppWxMpController.java @@ -3,6 +3,7 @@ package co.yixiang.yshop.module.member.controller.app.weixin; import co.yixiang.yshop.framework.common.pojo.CommonResult; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.bean.WxJsapiSignature; import me.chanjar.weixin.common.error.WxErrorException; @@ -10,7 +11,6 @@ import me.chanjar.weixin.mp.api.WxMpService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/auth/AuthConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/auth/AuthConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/auth/AuthConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/auth/AuthConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/package-info.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/package-info.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/package-info.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/package-info.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/social/SocialUserConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/social/SocialUserConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/social/SocialUserConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/social/SocialUserConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/user/UserConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/user/UserConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/user/UserConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/user/UserConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/AreaConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/AreaConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/AreaConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/AreaConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/UserAddressConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/UserAddressConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/UserAddressConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/useraddress/UserAddressConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/userbill/UserBillConvert.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/userbill/UserBillConvert.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/userbill/UserBillConvert.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/convert/userbill/UserBillConvert.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/user/MemberUserDO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/user/MemberUserDO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/user/MemberUserDO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/user/MemberUserDO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/useraddress/UserAddressDO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/useraddress/UserAddressDO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/useraddress/UserAddressDO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/useraddress/UserAddressDO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/userbill/UserBillDO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/userbill/UserBillDO.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/userbill/UserBillDO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/userbill/UserBillDO.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/user/MemberUserMapper.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/useraddress/UserAddressMapper.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/userbill/UserBillMapper.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/userbill/UserBillMapper.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/userbill/UserBillMapper.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/userbill/UserBillMapper.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/RedisKeyConstants.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/RedisKeyConstants.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/RedisKeyConstants.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/RedisKeyConstants.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java similarity index 96% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java index cfaed2f..f0edb8e 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/redis/order/MiniRedisDAO.java @@ -1,10 +1,10 @@ package co.yixiang.yshop.module.member.dal.redis.order; import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import jakarta.annotation.Resource; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; import static co.yixiang.yshop.module.member.dal.redis.RedisKeyConstants.YSHOP_MINI_LOGIN_CACHE_KEY; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/package-info.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/package-info.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/package-info.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/package-info.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java index a5e949a..81a5561 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/config/MemberWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.member.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/package-info.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/package-info.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/package-info.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/framework/web/package-info.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java similarity index 91% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java index eb8d83d..878a5a3 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthService.java @@ -1,9 +1,9 @@ package co.yixiang.yshop.module.member.service.auth; import co.yixiang.yshop.module.member.controller.app.auth.vo.*; +import jakarta.validation.Valid; import org.springframework.web.bind.annotation.RequestParam; -import javax.validation.Valid; /** * 会员的认证 Service 接口 @@ -43,7 +43,7 @@ public interface MemberAuthService { * @param reqVO 登录信息 * @return 登录结果 */ - AppAuthLoginRespVO socialLogin(@Valid AppAuthSocialLoginReqVO reqVO); + //AppAuthLoginRespVO socialLogin(@Valid AppAuthSocialLoginReqVO reqVO); /** * 微信小程序的一键登录 @@ -79,7 +79,7 @@ public interface MemberAuthService { * @param redirectUri 跳转地址 * @return 认证 URL */ - String getSocialAuthorizeUrl(Integer type, String redirectUri); + //String getSocialAuthorizeUrl(Integer type, String redirectUri); /** * 修改用户密码 @@ -92,7 +92,7 @@ public interface MemberAuthService { * 忘记密码 * @param userReqVO 用户请求实体类 */ - void resetPassword(AppAuthResetPasswordReqVO userReqVO); + //void resetPassword(AppAuthResetPasswordReqVO userReqVO); /** * 给用户发送短信验证码 diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java similarity index 90% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java index f50b247..76ff989 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceImpl.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.member.service.auth; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; -import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -11,7 +10,6 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.util.monitor.TracerUtils; import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; -import co.yixiang.yshop.module.member.api.user.dto.WechatUserDto; import co.yixiang.yshop.module.member.controller.app.auth.vo.*; import co.yixiang.yshop.module.member.convert.auth.AuthConvert; import co.yixiang.yshop.module.member.convert.user.UserConvert; @@ -35,17 +33,14 @@ import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.annotations.VisibleForTesting; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.bean.WxOAuth2UserInfo; -import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import java.time.LocalDateTime; import java.util.Objects; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -156,24 +151,24 @@ public class MemberAuthServiceImpl implements MemberAuthService { // return createTokenAfterLoginSuccess(user, reqVO.getMobile(), LoginLogTypeEnum.LOGIN_SMS); } - @Override - public AppAuthLoginRespVO socialLogin(AppAuthSocialLoginReqVO reqVO) { - // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号 - Long userId = socialUserApi.getBindUserId(UserTypeEnum.MEMBER.getValue(), reqVO.getType(), - reqVO.getCode(), reqVO.getState()); - if (userId == null) { - throw exception(AUTH_THIRD_LOGIN_NOT_BIND); - } - - // 自动登录 - MemberUserDO user = userService.getUser(userId); - if (user == null) { - throw exception(USER_NOT_EXISTS); - } - - // 创建 Token 令牌,记录登录日志 - return createTokenAfterLoginSuccess(user, user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL); - } + // @Override +// public AppAuthLoginRespVO socialLogin(AppAuthSocialLoginReqVO reqVO) { +// // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号 +// Long userId = socialUserApi.getBindUserId(UserTypeEnum.MEMBER.getValue(), reqVO.getType(), +// reqVO.getCode(), reqVO.getState()); +// if (userId == null) { +// throw exception(AUTH_THIRD_LOGIN_NOT_BIND); +// } +// +// // 自动登录 +// MemberUserDO user = userService.getUser(userId); +// if (user == null) { +// throw exception(USER_NOT_EXISTS); +// } +// +// // 创建 Token 令牌,记录登录日志 +// return createTokenAfterLoginSuccess(user, user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL); +// } @Override public AppAuthLoginRespVO weixinMiniAppLogin(AppAuthWeixinMiniAppLoginReqVO reqVO) { @@ -288,10 +283,10 @@ public class MemberAuthServiceImpl implements MemberAuthService { return AuthConvert.INSTANCE.convert(accessTokenRespDTO); } - @Override - public String getSocialAuthorizeUrl(Integer type, String redirectUri) { - return socialUserApi.getAuthorizeUrl(type, redirectUri); - } +// @Override +// public String getSocialAuthorizeUrl(Integer type, String redirectUri) { +// return socialUserApi.getAuthorizeUrl(type, redirectUri); +// } private MemberUserDO login0(String mobile, String password) { final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE; @@ -353,19 +348,19 @@ public class MemberAuthServiceImpl implements MemberAuthService { .password(passwordEncoder.encode(reqVO.getPassword())).build()); } - @Override - public void resetPassword(AppAuthResetPasswordReqVO reqVO) { - // 检验用户是否存在 - MemberUserDO userDO = checkUserIfExists(reqVO.getMobile()); - - // 使用验证码 - smsCodeApi.useSmsCode(AuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MEMBER_FORGET_PASSWORD, - getClientIP())); - - // 更新密码 - userMapper.updateById(MemberUserDO.builder().id(userDO.getId()) - .password(passwordEncoder.encode(reqVO.getPassword())).build()); - } +// @Override +// public void resetPassword(AppAuthResetPasswordReqVO reqVO) { +// // 检验用户是否存在 +// MemberUserDO userDO = checkUserIfExists(reqVO.getMobile()); +// +// // 使用验证码 +// smsCodeApi.useSmsCode(AuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MEMBER_FORGET_PASSWORD, +// getClientIP())); +// +// // 更新密码 +// userMapper.updateById(MemberUserDO.builder().id(userDO.getId()) +// .password(passwordEncoder.encode(reqVO.getPassword())).build()); +// } @Override public void sendSmsCode(Long userId, AppAuthSmsSendReqVO reqVO) { diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserService.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserService.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java index afbe523..55ab686 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/MemberUserServiceImpl.java @@ -24,14 +24,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.annotations.VisibleForTesting; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import javax.validation.Valid; import java.io.InputStream; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java similarity index 97% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java index b8732a4..8099e3a 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserService.java @@ -1,10 +1,10 @@ package co.yixiang.yshop.module.member.service.user; import java.util.*; -import javax.validation.*; import co.yixiang.yshop.module.member.controller.admin.user.vo.*; import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; import co.yixiang.yshop.framework.common.pojo.PageResult; +import jakarta.validation.Valid; /** * 用户 Service 接口 diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java index 69be1ad..d7026cf 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/UserServiceImpl.java @@ -4,9 +4,8 @@ import cn.hutool.core.util.NumberUtil; import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; import co.yixiang.yshop.module.member.enums.BillDetailEnum; import co.yixiang.yshop.module.member.service.userbill.UserBillService; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import javax.validation.Valid; import org.springframework.validation.annotation.Validated; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/dto/WechatUserDto.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/dto/WechatUserDto.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/dto/WechatUserDto.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/user/dto/WechatUserDto.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressService.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressService.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java index 20bf314..2aea421 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/AppUserAddressServiceImpl.java @@ -12,10 +12,10 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.util.List; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java similarity index 97% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java index 7772503..e2b2652 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressService.java @@ -1,10 +1,10 @@ package co.yixiang.yshop.module.member.service.useraddress; import java.util.*; -import javax.validation.*; import co.yixiang.yshop.module.member.controller.admin.useraddress.vo.*; import co.yixiang.yshop.module.member.dal.dataobject.useraddress.UserAddressDO; import co.yixiang.yshop.framework.common.pojo.PageResult; +import jakarta.validation.Valid; /** * 用户地址 Service 接口 diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java index 170074b..6825428 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/useraddress/UserAddressServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.member.service.useraddress; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillService.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillService.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillService.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillService.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java index d6cfdd5..1cf51fd 100644 --- a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userbill/UserBillServiceImpl.java @@ -13,10 +13,10 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceTest.java b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceTest.java similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceTest.java rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/java/co/yixiang/yshop/module/member/service/auth/MemberAuthServiceTest.java diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/application-unit-test.yaml b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/application-unit-test.yaml similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/application-unit-test.yaml rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/application-unit-test.yaml diff --git a/yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/test/resources/logback.xml b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/logback.xml similarity index 100% rename from yshop-drink/yshop-module-infra/yshop-module-infra-biz/src/test/resources/logback.xml rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/logback.xml diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/clean.sql b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/clean.sql similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/clean.sql rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/clean.sql diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/create_tables.sql b/yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/create_tables.sql similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/create_tables.sql rename to yshop-drink-boot3/yshop-module-member/yshop-module-member-biz/src/test/resources/sql/create_tables.sql diff --git a/yshop-drink/yshop-module-message/pom.xml b/yshop-drink-boot3/yshop-module-message/pom.xml similarity index 100% rename from yshop-drink/yshop-module-message/pom.xml rename to yshop-drink-boot3/yshop-module-message/pom.xml diff --git a/yshop-drink/yshop-module-message/yshop-module-message-api/pom.xml b/yshop-drink-boot3/yshop-module-message/yshop-module-message-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-api/pom.xml rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-api/pom.xml diff --git a/yshop-drink/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/ErrorCodeConstants.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/WechatTempateEnum.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/WechatTempateEnum.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/WechatTempateEnum.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-api/src/main/java/co/yixiang/yshop/module/message/enums/WechatTempateEnum.java diff --git a/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/pom.xml b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/pom.xml new file mode 100644 index 0000000..a115935 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/pom.xml @@ -0,0 +1,77 @@ + + + + yshop-module-message + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-message-biz + jar + + ${project.artifactId} + + message 模块,模板消息 websocket 推送消息等等 + + + + + co.yixiang.boot + yshop-module-message-api + ${revision} + + + co.yixiang.boot + yshop-module-member-biz + ${revision} + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + + + diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java similarity index 93% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java index a82a603..c54aa95 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/WechatTemplateController.java @@ -1,16 +1,16 @@ package co.yixiang.yshop.module.message.controller.admin.wechattemplate; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.constraints.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -20,9 +20,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.message.controller.admin.wechattemplate.vo.*; import co.yixiang.yshop.module.message.dal.dataobject.wechattemplate.WechatTemplateDO; import co.yixiang.yshop.module.message.convert.wechattemplate.WechatTemplateConvert; @@ -90,7 +87,6 @@ public class WechatTemplateController { @GetMapping("/export-excel") @Operation(summary = "导出微信模板 Excel") @PreAuthorize("@ss.hasPermission('message:wechat-template:export')") - @OperateLog(type = EXPORT) public void exportWechatTemplateExcel(@Valid WechatTemplateExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = wechatTemplateService.getWechatTemplateList(exportReqVO); diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java similarity index 96% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java index 4d48311..747d51f 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateBaseVO.java @@ -5,7 +5,7 @@ import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 微信模板 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java similarity index 90% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java index fa99695..5c54826 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateCreateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.message.controller.admin.wechattemplate.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 微信模板创建 Request VO") @Data diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExcelVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExcelVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExcelVO.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExportReqVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExportReqVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateExportReqVO.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplatePageReqVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplatePageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplatePageReqVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplatePageReqVO.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateRespVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateRespVO.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateRespVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateRespVO.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java index 3472954..b105116 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/controller/admin/wechattemplate/vo/WechatTemplateUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.message.controller.admin.wechattemplate.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 微信模板更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/convert/wechattemplate/WechatTemplateConvert.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/convert/wechattemplate/WechatTemplateConvert.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/convert/wechattemplate/WechatTemplateConvert.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/convert/wechattemplate/WechatTemplateConvert.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/dataobject/wechattemplate/WechatTemplateDO.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/dataobject/wechattemplate/WechatTemplateDO.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/dataobject/wechattemplate/WechatTemplateDO.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/dataobject/wechattemplate/WechatTemplateDO.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/mysql/wechattemplate/WechatTemplateMapper.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/mysql/wechattemplate/WechatTemplateMapper.java similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/mysql/wechattemplate/WechatTemplateMapper.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/dal/mysql/wechattemplate/WechatTemplateMapper.java diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java similarity index 92% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java index 077d1c1..7d51896 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/consumer/WeixinNoticeConsumer.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.module.message.mq.consumer; -import co.yixiang.yshop.framework.mq.core.stream.AbstractStreamMessageListener; + +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; import co.yixiang.yshop.module.message.enums.WechatTempateEnum; import co.yixiang.yshop.module.message.mq.message.WeixinNoticeMessage; import co.yixiang.yshop.module.message.supply.WeiXinSubscribeService; @@ -8,7 +9,7 @@ import co.yixiang.yshop.module.message.supply.WeixinTemplateService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** @@ -16,7 +17,7 @@ import javax.annotation.Resource; */ @Component @Slf4j -public class WeixinNoticeConsumer extends AbstractStreamMessageListener { +public class WeixinNoticeConsumer extends AbstractRedisStreamMessageListener { @Resource private WeiXinSubscribeService weiXinSubscribeService; diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java similarity index 82% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java index 673c876..c080cc3 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/message/WeixinNoticeMessage.java @@ -1,10 +1,11 @@ package co.yixiang.yshop.module.message.mq.message; -import co.yixiang.yshop.framework.mq.core.stream.AbstractStreamMessage; + +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessage; import lombok.Data; @Data -public class WeixinNoticeMessage extends AbstractStreamMessage { +public class WeixinNoticeMessage extends AbstractRedisStreamMessage { /** * 模板编号 diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java similarity index 91% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java index 1ba8aa1..b3bc78a 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/mq/producer/WeixinNoticeProducer.java @@ -1,11 +1,11 @@ package co.yixiang.yshop.module.message.mq.producer; -import co.yixiang.yshop.framework.mq.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; import co.yixiang.yshop.module.message.mq.message.WeixinNoticeMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; @Slf4j @Component diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java similarity index 98% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java index 2df1437..e5269f6 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.message.service.wechattemplate; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; import co.yixiang.yshop.module.message.controller.admin.wechattemplate.vo.*; diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java index 95cec60..31bc288 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/service/wechattemplate/WechatTemplateServiceImpl.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; import co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeiXinSubscribeService.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeiXinSubscribeService.java new file mode 100644 index 0000000..7bc8e6c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeiXinSubscribeService.java @@ -0,0 +1,228 @@ +package co.yixiang.yshop.module.message.supply; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.constant.ShopConstants; +import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; +import co.yixiang.yshop.framework.common.exception.ErrorCode; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; +import co.yixiang.yshop.framework.tenant.core.util.TenantUtils; +import co.yixiang.yshop.module.member.api.user.dto.WechatUserDto; +import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; +import co.yixiang.yshop.module.member.service.user.MemberUserService; +import co.yixiang.yshop.module.message.dal.dataobject.wechattemplate.WechatTemplateDO; +import co.yixiang.yshop.module.message.enums.WechatTempateEnum; +import co.yixiang.yshop.module.message.service.wechattemplate.WechatTemplateService; +import me.chanjar.weixin.common.error.WxErrorException; +import org.springframework.stereotype.Service; + +import jakarta.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.USER_USERNAME_EXISTS; + +; + +/** + * 小程序订阅消息通知 + */ +@Service +public class WeiXinSubscribeService { + + @Resource + private MemberUserService userService; + @Resource + private WechatTemplateService wechatTemplateService; + @Resource + private WxMaService wxMaService; + + + /** + * 充值成功通知 + * @param time 时间 + * @param price 金额 + * @param uid uid + */ + public void rechargeSuccessNotice(String time,String price,Long uid){ + String openid = this.getUserOpenid(uid); + + if(StrUtil.isBlank(openid)) { + return; + } + + Map map = new HashMap<>(); + map.put("first","您的账户金币发生变动,详情如下:"); + map.put("keyword1","充值"); + map.put("keyword2",time); + map.put("keyword3",price); + map.put("remark", ShopConstants.YSHOP_WECHAT_PUSH_REMARK); + String tempId = this.getTempId(WechatTempateEnum.RECHARGE_SUCCESS.getValue()); + if(StrUtil.isNotBlank(tempId)) { + this.sendSubscribeMsg( openid, tempId, "/user/account",map); + } + } + + + /** + * 支付成功通知 + * @param numberId 取餐号 + * @param productName 商品名称 + * @param shopName 门店名称 + * @param uid uid + * @param id 订单ID + */ + public void paySuccessNotice(String numberId,String productName,String shopName,Long uid,Long id,String orderId){ + TenantUtils.executeIgnore(() -> { + String openid = this.getUserOpenid(uid); + if(StrUtil.isBlank(openid)) { + return; + } + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); + Map map = new HashMap<>(); + //取餐号 + map.put("character_string1",numberId); + //商品名 + map.put("thing2", productName); + map.put("time3",simpleDateFormat.format(new Date())); + //下单门店 + map.put("thing4",shopName); + map.put("thing5","意向点餐系统为您服务!"); + String tempId = this.getTempId(WechatTempateEnum.PAY_SUCCESS.getValue()); + if(StrUtil.isNotBlank(tempId)) { + this.sendSubscribeMsg( openid,tempId, "/pages/components/pages/orders/detail?id="+orderId,map); + } + }); + + } + + /** + * 退款成功通知 + * @param orderId 订单号 + * @param price 金额 + * @param uid uid + * @param time 时间 + */ + public void refundSuccessNotice(String orderId,String price,Long uid,String time){ + + TenantUtils.executeIgnore(() -> { + String openid = this.getUserOpenid(uid); + + if(StrUtil.isBlank(openid)) { + return; + } + + Map map = new HashMap<>(); + map.put("first","您的订单退款申请被通过,钱款将很快还至您的支付账户。"); + //订单号 + map.put("keyword1",orderId); + map.put("keyword2",price); + map.put("keyword3", time); + map.put("remark",ShopConstants.YSHOP_WECHAT_PUSH_REMARK); + String tempId = this.getTempId(WechatTempateEnum.REFUND_SUCCESS.getValue()); + if(StrUtil.isNotBlank(tempId)) { + this.sendSubscribeMsg( openid,tempId, "/order/detail/"+orderId,map); + } + }); + + } + + /** + * 发货成功通知 + * @param orderId 单号 + * @param deliveryName 快递公司 + * @param deliveryId 快递单号 + * @param uid uid + */ + public void deliverySuccessNotice(String orderId,String deliveryName, + String deliveryId,Long uid){ + + TenantUtils.executeIgnore(() -> { + String openid = this.getUserOpenid(uid); + + if(StrUtil.isEmpty(openid)) { + return; + } + + Map map = new HashMap<>(); + map.put("first","亲,宝贝已经启程了,好想快点来到你身边。"); + map.put("keyword2",deliveryName); + map.put("keyword1",orderId); + map.put("keyword3",deliveryId); + map.put("remark",ShopConstants.YSHOP_WECHAT_PUSH_REMARK); + String tempId = this.getTempId(WechatTempateEnum.DELIVERY_SUCCESS.getValue()); + if(StrUtil.isNotBlank(tempId)) { + this.sendSubscribeMsg( openid,tempId, "/order/detail/"+orderId,map); + } + }); + + } + + + /** + * 构建小程序一次性订阅消息 + * @param openId 单号 + * @param templateId 模板id + * @param page 跳转页面 + * @param map map内容 + * @return String + */ + private void sendSubscribeMsg(String openId, String templateId, String page, Map map){ + WxMaSubscribeMessage wxMaSubscribeMessage = WxMaSubscribeMessage.builder() + .toUser(openId) + .templateId(templateId) + .page(page) + .build(); + map.forEach( (k,v)-> { wxMaSubscribeMessage.addData(new WxMaSubscribeMessage.MsgData(k, v));} ); + // WxMaService wxMaService = WxMaConfiguration.getWxMaService(); + try { + wxMaService.getMsgService().sendSubscribeMsg(wxMaSubscribeMessage); + } catch (WxErrorException e) { + e.printStackTrace(); + } + } + + /** + * 获取模板消息id + * @param key 模板key + * @return string + */ + @TenantIgnore + private String getTempId(String key){ + WechatTemplateDO yxWechatTemplate = wechatTemplateService.lambdaQuery() + .eq(WechatTemplateDO::getType,"subscribe") + .eq(WechatTemplateDO::getTempkey,key) + .one(); + if (yxWechatTemplate == null) { + throw exception(new ErrorCode(9999999,"请后台配置key:" + key + "订阅消息id")); + } + if(ShopCommonEnum.IS_STATUS_0.getValue().equals(yxWechatTemplate.getStatus())){ + return ""; + } + return yxWechatTemplate.getTempid(); + } + + + /** + * 获取openid + * @param uid uid + * @return String + */ + @TenantIgnore + private String getUserOpenid(Long uid){ + MemberUserDO yxUser = userService.getById(uid); + if(yxUser == null) { + return ""; + } + if(StrUtil.isBlank(yxUser.getRoutineOpenid())) { + return ""; + } + return yxUser.getRoutineOpenid(); + + } +} diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java similarity index 99% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java index a254e6d..81e1f1d 100644 --- a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java +++ b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/java/co/yixiang/yshop/module/message/supply/WeixinTemplateService.java @@ -25,7 +25,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.HashMap; import java.util.Map; diff --git a/yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/resources/mapper/wechattemplate/WechatTemplateMapper.xml b/yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/resources/mapper/wechattemplate/WechatTemplateMapper.xml similarity index 100% rename from yshop-drink/yshop-module-message/yshop-module-message-biz/src/main/resources/mapper/wechattemplate/WechatTemplateMapper.xml rename to yshop-drink-boot3/yshop-module-message/yshop-module-message-biz/src/main/resources/mapper/wechattemplate/WechatTemplateMapper.xml diff --git a/yshop-drink/yshop-module-mp/pom.xml b/yshop-drink-boot3/yshop-module-mp/pom.xml similarity index 100% rename from yshop-drink/yshop-module-mp/pom.xml rename to yshop-drink-boot3/yshop-module-mp/pom.xml diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-api/pom.xml b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-api/pom.xml rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/pom.xml diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..a0c3df5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/ErrorCodeConstants.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.module.mp.enums; + +import co.yixiang.yshop.framework.common.exception.ErrorCode; + +/** + * Mp 错误码枚举类 + * + * mp 系统,使用 1-006-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== 公众号账号 1-006-000-000 ============ + ErrorCode ACCOUNT_NOT_EXISTS = new ErrorCode(1_006_000_000, "公众号账号不存在"); + ErrorCode ACCOUNT_GENERATE_QR_CODE_FAIL = new ErrorCode(1_006_000_001, "生成公众号二维码失败,原因:{}"); + ErrorCode ACCOUNT_CLEAR_QUOTA_FAIL = new ErrorCode(1_006_000_002, "清空公众号的 API 配额失败,原因:{}"); + + // ========== 公众号统计 1-006-001-000 ============ + ErrorCode STATISTICS_GET_USER_SUMMARY_FAIL = new ErrorCode(1_006_001_000, "获取粉丝增减数据失败,原因:{}"); + ErrorCode STATISTICS_GET_USER_CUMULATE_FAIL = new ErrorCode(1_006_001_001, "获得粉丝累计数据失败,原因:{}"); + ErrorCode STATISTICS_GET_UPSTREAM_MESSAGE_FAIL = new ErrorCode(1_006_001_002, "获得消息发送概况数据失败,原因:{}"); + ErrorCode STATISTICS_GET_INTERFACE_SUMMARY_FAIL = new ErrorCode(1_006_001_003, "获得接口分析数据失败,原因:{}"); + + // ========== 公众号标签 1-006-002-000 ============ + ErrorCode TAG_NOT_EXISTS = new ErrorCode(1_006_002_000, "标签不存在"); + ErrorCode TAG_CREATE_FAIL = new ErrorCode(1_006_002_001, "创建标签失败,原因:{}"); + ErrorCode TAG_UPDATE_FAIL = new ErrorCode(1_006_002_002, "更新标签失败,原因:{}"); + ErrorCode TAG_DELETE_FAIL = new ErrorCode(1_006_002_003, "删除标签失败,原因:{}"); + ErrorCode TAG_GET_FAIL = new ErrorCode(1_006_002_004, "获得标签失败,原因:{}"); + + // ========== 公众号粉丝 1-006-003-000 ============ + ErrorCode USER_NOT_EXISTS = new ErrorCode(1_006_003_000, "粉丝不存在"); + ErrorCode USER_UPDATE_TAG_FAIL = new ErrorCode(1_006_003_001, "更新粉丝标签失败,原因:{}"); + + // ========== 公众号素材 1-006-004-000 ============ + ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1_006_004_000, "素材不存在"); + ErrorCode MATERIAL_UPLOAD_FAIL = new ErrorCode(1_006_004_001, "上传素材失败,原因:{}"); + ErrorCode MATERIAL_IMAGE_UPLOAD_FAIL = new ErrorCode(1_006_004_002, "上传图片失败,原因:{}"); + ErrorCode MATERIAL_DELETE_FAIL = new ErrorCode(1_006_004_003, "删除素材失败,原因:{}"); + + // ========== 公众号消息 1-006-005-000 ============ + ErrorCode MESSAGE_SEND_FAIL = new ErrorCode(1_006_005_000, "发送消息失败,原因:{}"); + + // ========== 公众号发布能力 1-006-006-000 ============ + ErrorCode FREE_PUBLISH_LIST_FAIL = new ErrorCode(1_006_006_000, "获得已成功发布列表失败,原因:{}"); + ErrorCode FREE_PUBLISH_SUBMIT_FAIL = new ErrorCode(1_006_006_001, "提交发布失败,原因:{}"); + ErrorCode FREE_PUBLISH_DELETE_FAIL = new ErrorCode(1_006_006_002, "删除发布失败,原因:{}"); + + // ========== 公众号草稿 1-006-007-000 ============ + ErrorCode DRAFT_LIST_FAIL = new ErrorCode(1_006_007_000, "获得草稿列表失败,原因:{}"); + ErrorCode DRAFT_CREATE_FAIL = new ErrorCode(1_006_007_001, "创建草稿失败,原因:{}"); + ErrorCode DRAFT_UPDATE_FAIL = new ErrorCode(1_006_007_002, "更新草稿失败,原因:{}"); + ErrorCode DRAFT_DELETE_FAIL = new ErrorCode(1_006_007_003, "删除草稿失败,原因:{}"); + + // ========== 公众号菜单 1-006-008-000 ============ + ErrorCode MENU_SAVE_FAIL = new ErrorCode(1_006_008_000, "创建菜单失败,原因:{}"); + ErrorCode MENU_DELETE_FAIL = new ErrorCode(1_006_008_001, "删除菜单失败,原因:{}"); + + // ========== 公众号自动回复 1-006-009-000 ============ + ErrorCode AUTO_REPLY_NOT_EXISTS = new ErrorCode(1_006_009_000, "自动回复不存在"); + ErrorCode AUTO_REPLY_ADD_SUBSCRIBE_FAIL_EXISTS = new ErrorCode(1_006_009_001, "操作失败,原因:已存在关注时的回复"); + ErrorCode AUTO_REPLY_ADD_MESSAGE_FAIL_EXISTS = new ErrorCode(1_006_009_002, "操作失败,原因:已存在该消息类型的回复"); + ErrorCode AUTO_REPLY_ADD_KEYWORD_FAIL_EXISTS = new ErrorCode(1_006_009_003, "操作失败,原因:已关在该关键字的回复"); + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/MpAccountEnum.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/MpAccountEnum.java new file mode 100644 index 0000000..345f04c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/MpAccountEnum.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.mp.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 微信账户枚举 + * @author yshop + */ +@Getter +@AllArgsConstructor +public enum MpAccountEnum { + IS_MAIN_0(0, " 不是主账户"), + IS_MAIN_1(1, "是主账户"), + IS_MINI_0(0, "不是小程序"), + IS_MINI_1(1, "是小程序"); + + /** + * 匹配 + */ + private final Integer value; + /** + * 匹配的名字 + */ + private final String name; + + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyMatchEnum.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyMatchEnum.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyMatchEnum.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyMatchEnum.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyTypeEnum.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyTypeEnum.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpAutoReplyTypeEnum.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpMessageSendFromEnum.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpMessageSendFromEnum.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpMessageSendFromEnum.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-api/src/main/java/co/yixiang/yshop/module/mp/enums/message/MpMessageSendFromEnum.java diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/pom.xml b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/pom.xml new file mode 100644 index 0000000..52cab6d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/pom.xml @@ -0,0 +1,95 @@ + + + + yshop-module-mp + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-mp-biz + jar + + ${project.artifactId} + + mp 模块,我们放微信微信公众号。 + 例如说:提供微信公众号的账号、菜单、粉丝、标签、消息、自动回复、素材、模板通知、运营数据等功能 + + + + + co.yixiang.boot + yshop-module-mp-api + ${revision} + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + co.yixiang.boot + yshop-module-infra-api + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-validation + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + com.github.binarywang + wx-java-mp-spring-boot-starter + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + + + + diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MaAccountController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MaAccountController.java new file mode 100644 index 0000000..1291e96 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MaAccountController.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.mp.controller.admin.account; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountCreateReqVO; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountPageReqVO; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountRespVO; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountUpdateReqVO; +import co.yixiang.yshop.module.mp.convert.account.MpAccountConvert; +import co.yixiang.yshop.module.mp.dal.dataobject.account.MpAccountDO; +import co.yixiang.yshop.module.mp.enums.MpAccountEnum; +import co.yixiang.yshop.module.mp.service.account.MpAccountService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 小程序账号") +@RestController +@RequestMapping("/ma/account") +@Validated +public class MaAccountController { + + @Resource + private MpAccountService mpAccountService; + + @PostMapping("/create") + @Operation(summary = "创建小程序账号") + @PreAuthorize("@ss.hasPermission('ma:account:create')") + public CommonResult createAccount(@Valid @RequestBody MpAccountCreateReqVO createReqVO) { + createReqVO.setIsMiapp(MpAccountEnum.IS_MINI_1.getValue()); + return success(mpAccountService.createAccount(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新小程序账号") + @PreAuthorize("@ss.hasPermission('ma:account:update')") + public CommonResult updateAccount(@Valid @RequestBody MpAccountUpdateReqVO updateReqVO) { + mpAccountService.updateAccount(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除小程序账号") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('ma:account:delete')") + public CommonResult deleteAccount(@RequestParam("id") Long id) { + mpAccountService.deleteAccount(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得小程序账号") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('ma:account:query')") + public CommonResult getAccount(@RequestParam("id") Long id) { + MpAccountDO wxAccount = mpAccountService.getAccount(id); + return success(MpAccountConvert.INSTANCE.convert(wxAccount)); + } + + @GetMapping("/page") + @Operation(summary = "获得小程序账号分页") + @PreAuthorize("@ss.hasPermission('ma:account:query')") + public CommonResult> getAccountPage(@Valid MpAccountPageReqVO pageVO) { + pageVO.setIsMini(MpAccountEnum.IS_MAIN_1.getValue()); + PageResult pageResult = mpAccountService.getAccountPage(pageVO); + return success(MpAccountConvert.INSTANCE.convertPage(pageResult)); + } + + + + + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java similarity index 95% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java index b95b1b2..6b1beae 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/MpAccountController.java @@ -5,6 +5,7 @@ import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.mp.controller.admin.account.vo.*; import co.yixiang.yshop.module.mp.convert.account.MpAccountConvert; import co.yixiang.yshop.module.mp.dal.dataobject.account.MpAccountDO; +import co.yixiang.yshop.module.mp.enums.MpAccountEnum; import co.yixiang.yshop.module.mp.service.account.MpAccountService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -13,8 +14,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -65,6 +66,7 @@ public class MpAccountController { @Operation(summary = "获得公众号账号分页") @PreAuthorize("@ss.hasPermission('mp:account:query')") public CommonResult> getAccountPage(@Valid MpAccountPageReqVO pageVO) { + pageVO.setIsMini(MpAccountEnum.IS_MAIN_0.getValue()); PageResult pageResult = mpAccountService.getAccountPage(pageVO); return success(MpAccountConvert.INSTANCE.convertPage(pageResult)); } @@ -95,4 +97,5 @@ public class MpAccountController { return success(true); } + } diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountBaseVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountBaseVO.java new file mode 100644 index 0000000..2376ab8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountBaseVO.java @@ -0,0 +1,50 @@ +package co.yixiang.yshop.module.mp.controller.admin.account.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; + +/** + * 公众号账号 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @author fengdan + */ +@Data +public class MpAccountBaseVO { + + @Schema(description = "公众号名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @NotEmpty(message = "名称不能为空") + private String name; + + @Schema(description = "公众号微信号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshopyuanma") + //@NotEmpty(message = "公众号微信号不能为空") + private String account; + + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx5b23ba7a5589ecbb") + @NotEmpty(message = "appId 不能为空") + private String appId; + + @Schema(description = "公众号密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "3a7b3b20c537e52e74afd395eb85f61f") + @NotEmpty(message = "密钥不能为空") + private String appSecret; + + @Schema(description = "公众号 token", requiredMode = Schema.RequiredMode.REQUIRED, example = "kangdayuzhen") + //@NotEmpty(message = "公众号 token 不能为空") + private String token; + + @Schema(description = "加密密钥", example = "gjN+Ksei") + private String aesKey; + + @Schema(description = "备注", example = "请关注yshop,学习技术") + private String remark; + + /** + * 设置主账户 + */ + private Integer isMain; + + private Integer isMiapp; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java similarity index 89% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java index 83ac58a..ff40750 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java @@ -21,4 +21,7 @@ public class MpAccountPageReqVO extends PageParam { @Schema(name = "公众号 appid", description = "模糊匹配") private String appId; + @Schema(name = "是否是小程序", description = "") + private Integer isMini; + } diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountRespVO.java new file mode 100644 index 0000000..de51163 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountRespVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.mp.controller.admin.account.vo; + +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 MpAccountRespVO extends MpAccountBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "二维码图片URL", example = "https://www.yixiang.co/1024.png") + private String qrCodeUrl; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java new file mode 100644 index 0000000..9d8de63 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.module.mp.controller.admin.account.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 公众号账号精简信息 Response VO") +@Data +public class MpAccountSimpleRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + private String name; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java similarity index 76% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java index 2ee3f83..1e3b42f 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号账号更新 Request VO") @Data @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAccountUpdateReqVO extends MpAccountBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java index dc9e69c..9e81c69 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/MpMaterialController.java @@ -13,8 +13,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.io.IOException; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java similarity index 82% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java index 4d9788a..b20b029 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号素材的分页 Request VO") @Data @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpMaterialPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialRespVO.java new file mode 100644 index 0000000..086288f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialRespVO.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.mp.controller.admin.material.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 公众号素材 Response VO") +@Data +public class MpMaterialRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long accountId; + @Schema(description = "公众号账号的 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") + private String appId; + + @Schema(description = "素材的 media_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "123") + private String mediaId; + + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") + private String type; + + @Schema(description = "是否永久 true - 永久;false - 临时", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean permanent; + + @Schema(description = "素材的 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.yixiang.co/1.png") + private String url; + + + @Schema(description = "名字", example = "yshop.png") + private String name; + + @Schema(description = "公众号文件 URL 只有【永久素材】使用", example = "https://mmbiz.qpic.cn/xxx.mp3") + private String mpUrl; + + @Schema(description = "视频素材的标题 只有【永久素材】使用", example = "我是标题") + private String title; + @Schema(description = "视频素材的描述 只有【永久素材】使用", example = "我是介绍") + private String introduction; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java new file mode 100644 index 0000000..a6f2fbb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.module.mp.controller.admin.material.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 公众号素材上传图文内容中的图片 Request VO") +@Data +public class MpMaterialUploadNewsImageReqVO { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "文件不能为空") + @JsonIgnore // 避免被操作日志,进行序列化,导致报错 + private MultipartFile file; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java similarity index 81% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java index 8682679..c518401 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java @@ -7,23 +7,23 @@ import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; import org.springframework.web.multipart.MultipartFile; -import javax.validation.constraints.AssertTrue; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号素材上传永久 Request VO") @Data public class MpMaterialUploadPermanentReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image") + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") @NotEmpty(message = "文件类型不能为空") private String type; - @Schema(description = "文件附件", required = true) + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件不能为空") @JsonIgnore // 避免被操作日志,进行序列化,导致报错 private MultipartFile file; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java new file mode 100644 index 0000000..cf7c8ca --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.module.mp.controller.admin.material.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 公众号素材上传结果 Response VO") +@Data +public class MpMaterialUploadRespVO { + + @Schema(description = "素材的 media_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "123") + private String mediaId; + + @Schema(description = "素材的 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.yixiang.co/1.png") + private String url; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java new file mode 100644 index 0000000..e38e575 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.mp.controller.admin.material.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 公众号素材上传临时 Request VO") +@Data +public class MpMaterialUploadTemporaryReqVO { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") + @NotEmpty(message = "文件类型不能为空") + private String type; + + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "文件不能为空") + @JsonIgnore // 避免被操作日志,进行序列化,导致报错 + private MultipartFile file; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java index 269bca3..4724053 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/MpMenuController.java @@ -13,8 +13,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java index 34d071e..1bb822d 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java @@ -6,9 +6,9 @@ import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; import org.hibernate.validator.constraints.URL; -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.List; import static co.yixiang.yshop.module.mp.framework.mp.core.util.MpUtils.*; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuRespVO.java new file mode 100644 index 0000000..2ae11dc --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuRespVO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.mp.controller.admin.menu.vo; + +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 MpMenuRespVO extends MpMenuBaseVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long accountId; + + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890ox") + private String appId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java new file mode 100644 index 0000000..4fa6902 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.mp.controller.admin.menu.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 公众号菜单保存 Request VO") +@Data +public class MpMenuSaveReqVO { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + + @NotEmpty(message = "菜单不能为空") + @Valid + private List menus; + + @Schema(description = "管理后台 - 公众号菜单保存时的每个菜单") + @Data + public static class Menu extends MpMenuBaseVO { + + /** + * 子菜单数组 + */ + private List children; + + } + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java index e046e27..8c74636 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpAutoReplyController.java @@ -16,8 +16,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java similarity index 96% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java index b6c1f2a..116cef0 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/MpMessageController.java @@ -14,8 +14,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java similarity index 96% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java index a847e2d..ed7a4c2 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java @@ -9,10 +9,10 @@ import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; import org.hibernate.validator.constraints.URL; -import javax.validation.Valid; -import javax.validation.constraints.AssertTrue; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java similarity index 75% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java index 493034c..8a73cd3 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号自动回复的创建 Request VO") @Data @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyCreateReqVO extends MpAutoReplyBaseVO { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java similarity index 77% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java index a483170..8973495 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号自动回复的分页 Request VO") @Data @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java new file mode 100644 index 0000000..65b75b0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.mp.controller.admin.message.vo.autoreply; + +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 MpAutoReplyRespVO extends MpAutoReplyBaseVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long accountId; + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") + private String appId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java similarity index 77% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java index 4189123..f39b26a 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号自动回复的更新 Request VO") @Data @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyUpdateReqVO extends MpAutoReplyBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "主键不能为空") private Long id; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java similarity index 87% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java index 782889f..bda7627 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -18,7 +18,7 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class MpMessagePageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java similarity index 79% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java index a6f0e17..d935e1f 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -13,25 +14,25 @@ import java.util.List; @Data public class MpMessageRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer id; - @Schema(description = "微信公众号消息 id", required = true, example = "23953173569869169") + @Schema(description = "微信公众号消息 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23953173569869169") private Long msgId; - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long accountId; - @Schema(description = "公众号账号的 appid", required = true, example = "wx1234567890") + @Schema(description = "公众号账号的 appid", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") private String appId; - @Schema(description = "公众号粉丝编号", required = true, example = "2048") + @Schema(description = "公众号粉丝编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long userId; - @Schema(description = "公众号粉丝标志", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", required = true, example = "text") + @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "text") private String type; - @Schema(description = "消息来源 参见 MpMessageSendFromEnum 枚举", required = true, example = "1") + @Schema(description = "消息来源 参见 MpMessageSendFromEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer sendFrom; // ========= 普通消息内容 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html @@ -95,7 +96,7 @@ public class MpMessageRespVO { @Schema(description = "事件 Key 参见 WxConsts.EventType 枚举", example = "qrscene_123456") private String eventKey; - @Schema(description = "创建时间", required = true) - private Date createTime; + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; } diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java new file mode 100644 index 0000000..e989758 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java @@ -0,0 +1,58 @@ +package co.yixiang.yshop.module.mp.controller.admin.message.vo.message; + +import co.yixiang.yshop.module.mp.dal.dataobject.message.MpMessageDO; +import co.yixiang.yshop.module.mp.framework.mp.core.util.MpUtils.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 公众号消息发送 Request VO") +@Data +public class MpMessageSendReqVO { + + @Schema(description = "公众号粉丝的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "公众号粉丝的编号不能为空") + private Long userId; + + // ========== 消息内容 ========== + + @Schema(description = "消息类型 TEXT/IMAGE/VOICE/VIDEO/NEWS", requiredMode = Schema.RequiredMode.REQUIRED, example = "text") + @NotEmpty(message = "消息类型不能为空") + public String type; + + @Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好呀") + @NotEmpty(message = "消息内容不能为空", groups = TextMessageGroup.class) + private String content; + + @Schema(description = "媒体 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @NotEmpty(message = "消息内容不能为空", groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) + private String mediaId; + + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "没有标题") + @NotEmpty(message = "消息内容不能为空", groups = VideoMessageGroup.class) + private String title; + + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) + private String description; + + @Schema(description = "缩略图的媒体 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @NotEmpty(message = "缩略图的媒体 id 不能为空", groups = MusicMessageGroup.class) + private String thumbMediaId; + + @Schema(description = "图文消息", requiredMode = Schema.RequiredMode.REQUIRED) + @Valid + @NotNull(message = "图文消息不能为空", groups = NewsMessageGroup.class) + private List articles; + + @Schema(description = "音乐链接 消息类型为 MUSIC 时", example = "https://www.yixiang.co/music.mp3") + private String musicUrl; + + @Schema(description = "高质量音乐链接 消息类型为 MUSIC 时", example = "https://www.yixiang.co/music.mp3") + private String hqMusicUrl; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java index 089b6fd..1b68dbd 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpDraftController.java @@ -20,7 +20,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Map; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java index df103df..7a3996b 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/MpFreePublishController.java @@ -21,7 +21,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Map; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java similarity index 76% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java index c1db729..1a18a2b 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号草稿的分页 Request VO") @Data @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpDraftPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java similarity index 77% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java index 298c639..5bf4b60 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号已发布列表的分页 Request VO") @Data @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpFreePublishPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java similarity index 96% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java index d745d35..d9a47f0 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/MpOpenController.java @@ -2,7 +2,6 @@ package co.yixiang.yshop.module.mp.controller.admin.open; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.framework.tenant.core.util.TenantUtils; import co.yixiang.yshop.module.mp.controller.admin.open.vo.MpOpenCheckSignatureReqVO; import co.yixiang.yshop.module.mp.controller.admin.open.vo.MpOpenHandleMessageReqVO; @@ -20,7 +19,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Objects; @Tag(name = "管理后台 - 公众号回调") @@ -63,7 +62,6 @@ public class MpOpenController { */ @Operation(summary = "处理消息") @PostMapping(value = "/{appId}", produces = "application/xml; charset=UTF-8") - @OperateLog(enable = false) // 回调地址,无需记录操作日志 public String handleMessage(@PathVariable("appId") String appId, @RequestBody String content, MpOpenHandleMessageReqVO reqVO) { diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java new file mode 100644 index 0000000..ad3e5e2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.module.mp.controller.admin.open.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 公众号校验签名 Request VO") +@Data +public class MpOpenCheckSignatureReqVO { + + @Schema(description = "微信加密签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @NotEmpty(message = "微信加密签名不能为空") + private String signature; + + @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED, example = "1672587863") + @NotEmpty(message = "时间戳不能为空") + private String timestamp; + + @Schema(description = "随机数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1827365808") + @NotEmpty(message = "随机数不能为空") + private String nonce; + + @Schema(description = "随机字符串", requiredMode = Schema.RequiredMode.REQUIRED, example = "2721154047828672511") + @NotEmpty(message = "随机字符串不能为空") + @SuppressWarnings("SpellCheckingInspection") + private String echostr; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java new file mode 100644 index 0000000..c0597dd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.module.mp.controller.admin.open.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 公众号处理消息 Request VO") +@Data +public class MpOpenHandleMessageReqVO { + + public static final String ENCRYPT_TYPE_AES = "aes"; + + @Schema(description = "微信加密签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @NotEmpty(message = "微信加密签名不能为空") + private String signature; + + @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED, example = "1672587863") + @NotEmpty(message = "时间戳不能为空") + private String timestamp; + + @Schema(description = "随机数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1827365808") + @NotEmpty(message = "随机数不能为空") + private String nonce; + + @Schema(description = "粉丝 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") + @NotEmpty(message = "粉丝 openid 不能为空") + private String openid; + + @Schema(description = "消息加密类型", example = "aes") + private String encrypt_type; + + @Schema(description = "微信签名", example = "QW5kcm9pZCBUaGUgQmFzZTY0IGlzIGEgZ2VuZXJhdGVkIHN0cmluZw==") + private String msg_signature; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java index 95404fa..ae43514 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/MpStatisticsController.java @@ -16,7 +16,7 @@ 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 jakarta.annotation.Resource; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java new file mode 100644 index 0000000..71c01a2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.mp.controller.admin.statistics.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 获得统计数据 Request VO") +@Data +public class MpStatisticsGetReqVO { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + + @Schema(description = "查询时间范围", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @NotNull(message = "查询时间范围不能为空") + private LocalDateTime[] date; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java new file mode 100644 index 0000000..70a9805 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.mp.controller.admin.statistics.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 某一天的接口分析数据 Response VO") +@Data +public class MpStatisticsInterfaceSummaryRespVO { + + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime refDate; + + @Schema(description = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer callbackCount; + + @Schema(description = "上述动作的失败次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + private Integer failCount; + + @Schema(description = "总耗时,除以 callback_count 即为平均耗时", requiredMode = Schema.RequiredMode.REQUIRED, example = "30") + private Integer totalTimeCost; + + @Schema(description = "最大耗时", requiredMode = Schema.RequiredMode.REQUIRED, example = "40") + private Integer maxTimeCost; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java new file mode 100644 index 0000000..7969aa0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.mp.controller.admin.statistics.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 某一天的粉丝增减数据 Response VO") +@Data +public class MpStatisticsUpstreamMessageRespVO { + + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime refDate; + + @Schema(description = "上行发送了(向公众号发送了)消息的粉丝数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer messageUser; + + @Schema(description = "上行发送了消息的消息总数", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + private Integer messageCount; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java new file mode 100644 index 0000000..877db1d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.module.mp.controller.admin.statistics.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 某一天的消息发送概况数据 Response VO") +@Data +public class MpStatisticsUserCumulateRespVO { + + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime refDate; + + @Schema(description = "累计粉丝量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer cumulateUser; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java new file mode 100644 index 0000000..9a32bdf --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.mp.controller.admin.statistics.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 某一天的粉丝增减数据 Response VO") +@Data +public class MpStatisticsUserSummaryRespVO { + + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime refDate; + + @Schema(description = "粉丝来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + private Integer userSource; + + @Schema(description = "新关注的粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer newUser; + + @Schema(description = "取消关注的粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + private Integer cancelUser; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java similarity index 88% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java index 204c301..3f41f2a 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/MpTagController.java @@ -13,8 +13,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -52,6 +52,14 @@ public class MpTagController { return success(true); } + @GetMapping("/get") + @Operation(summary = "获取公众号标签详情") + @PreAuthorize("@ss.hasPermission('mp:tag:query')") + public CommonResult get(@RequestParam("id") Long id) { + MpTagDO mpTagDO = mpTagService.get(id); + return success(MpTagConvert.INSTANCE.convert(mpTagDO)); + } + @GetMapping("/page") @Operation(summary = "获取公众号标签分页") @PreAuthorize("@ss.hasPermission('mp:tag:query')") diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagBaseVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagBaseVO.java new file mode 100644 index 0000000..9b96b3d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagBaseVO.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.mp.controller.admin.tag.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; + +/** + * 公众号标签 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @author fengdan + */ +@Data +public class MpTagBaseVO { + + @Schema(description = "标签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + @NotEmpty(message = "标签名不能为空") + private String name; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java new file mode 100644 index 0000000..8904ad3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.module.mp.controller.admin.tag.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 公众号标签创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MpTagCreateReqVO extends MpTagBaseVO { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java new file mode 100644 index 0000000..62c770a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.mp.controller.admin.tag.vo; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import jakarta.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 公众号标签分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MpTagPageReqVO extends PageParam { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotEmpty(message = "公众号账号的编号不能为空") + private Long accountId; + + @Schema(description = "标签名,模糊匹配", example = "哈哈") + private String name; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagRespVO.java new file mode 100644 index 0000000..8516f60 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagRespVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.mp.controller.admin.tag.vo; + +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 MpTagRespVO extends MpTagBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "此标签下粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + private Integer count; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java new file mode 100644 index 0000000..f6d1b1f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.module.mp.controller.admin.tag.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 公众号标签精简信息 Response VO") +@Data +public class MpTagSimpleRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号的标签编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long tagId; + + @Schema(description = "标签名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "快乐") + private String name; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java similarity index 78% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java index 8d165df..5eca862 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; @Schema(description = "管理后台 - 公众号标签更新 Request VO") @Data @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpTagUpdateReqVO extends MpTagBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "编号不能为空") private Long id; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java index 7ee6af7..dec98a6 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/MpUserController.java @@ -15,8 +15,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserPageReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserPageReqVO.java new file mode 100644 index 0000000..652d433 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserPageReqVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.mp.controller.admin.user.vo; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 公众号粉丝分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MpUserPageReqVO extends PageParam { + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "公众号账号的编号不能为空") + private Long accountId; + + @Schema(description = "公众号粉丝标识,模糊匹配", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + private String openid; + + @Schema(description = "微信生态唯一标识,模糊匹配", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + private String unionId; + + @Schema(description = "公众号粉丝昵称,模糊匹配", example = "yshop") + private String nickname; + +} diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserRespVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserRespVO.java new file mode 100644 index 0000000..d4c4a00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserRespVO.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.mp.controller.admin.user.vo; + +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 MpUserRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公众号粉丝标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + private String openid; + + @Schema(description = "微信生态唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + private String unionId; + + @Schema(description = "关注状态 参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer subscribeStatus; + @Schema(description = "关注时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime subscribeTime; + @Schema(description = "取消关注时间") + private LocalDateTime unsubscribeTime; + + @Schema(description = "昵称", example = "yshop") + private String nickname; + @Schema(description = "头像地址", example = "https://www.yixiang.co/1.png") + private String headImageUrl; + @Schema(description = "语言", example = "zh_CN") + private String language; + @Schema(description = "国家", example = "中国") + private String country; + @Schema(description = "省份", example = "广东省") + private String province; + @Schema(description = "城市", example = "广州市") + private String city; + @Schema(description = "备注", example = "你是一个芋头嘛") + private String remark; + + @Schema(description = "标签编号数组", example = "1,2,3") + private List tagIds; + + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long accountId; + @Schema(description = "公众号账号的 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") + private String appId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java similarity index 81% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java index ca7580f..57e257c 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java @@ -3,14 +3,14 @@ package co.yixiang.yshop.module.mp.controller.admin.user.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; @Schema(description = "管理后台 - 公众号粉丝更新 Request VO") @Data public class MpUserUpdateReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/account/MpAccountConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/account/MpAccountConvert.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/account/MpAccountConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/account/MpAccountConvert.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/material/MpMaterialConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/material/MpMaterialConvert.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/material/MpMaterialConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/material/MpMaterialConvert.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java similarity index 92% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java index 289dcb5..62b9de9 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/menu/MpMenuConvert.java @@ -40,6 +40,8 @@ public interface MpMenuConvert { @Mappings({ @Mapping(source = "menuKey", target = "key"), @Mapping(source = "children", target = "subButtons"), + @Mapping(source = "miniProgramAppId", target = "appId"), + @Mapping(source = "miniProgramPagePath", target = "pagePath"), }) WxMenuButton convert(MpMenuSaveReqVO.Menu bean); diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpAutoReplyConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpAutoReplyConvert.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpAutoReplyConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpAutoReplyConvert.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpMessageConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpMessageConvert.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpMessageConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/message/MpMessageConvert.java diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/statistics/MpStatisticsConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/statistics/MpStatisticsConvert.java new file mode 100644 index 0000000..54154d8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/statistics/MpStatisticsConvert.java @@ -0,0 +1,52 @@ +package co.yixiang.yshop.module.mp.convert.statistics; + +import co.yixiang.yshop.module.mp.controller.admin.statistics.vo.MpStatisticsInterfaceSummaryRespVO; +import co.yixiang.yshop.module.mp.controller.admin.statistics.vo.MpStatisticsUpstreamMessageRespVO; +import co.yixiang.yshop.module.mp.controller.admin.statistics.vo.MpStatisticsUserCumulateRespVO; +import co.yixiang.yshop.module.mp.controller.admin.statistics.vo.MpStatisticsUserSummaryRespVO; +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeInterfaceResult; +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult; +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; +import org.mapstruct.Named; +import org.mapstruct.factory.Mappers; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; + +@Mapper +public interface MpStatisticsConvert { + + MpStatisticsConvert INSTANCE = Mappers.getMapper(MpStatisticsConvert.class); + + List convertList01(List list); + + List convertList02(List list); + + List convertList03(List list); + + @Mappings({ + @Mapping(target = "refDate", expression = "java(dateFormat0(bean.getRefDate()))"), + @Mapping(source = "msgUser", target = "messageUser"), + @Mapping(source = "msgCount", target = "messageCount"), + }) + MpStatisticsUpstreamMessageRespVO convert(WxDataCubeMsgResult bean); + + List convertList04(List list); + + @Mapping(target = "refDate", expression = "java(dateFormat0(bean.getRefDate()))") + MpStatisticsInterfaceSummaryRespVO convert(WxDataCubeInterfaceResult bean); + + @Named("dateFormat0") + default LocalDateTime dateFormat0(String date) { + return LocalDate.parse(date, DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY)).atStartOfDay(); + } + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java index 37c9f20..4014a56 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/tag/MpTagConvert.java @@ -37,6 +37,8 @@ public interface MpTagConvert { }) MpTagDO convert(WxUserTag tag, MpAccountDO account); + MpTagRespVO convert(MpTagDO mpTagDO); + List convertList02(List list); } diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java index 82643d8..d8680ce 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/convert/user/MpUserConvert.java @@ -29,6 +29,7 @@ public interface MpUserConvert { @Mappings(value = { @Mapping(source = "openId", target = "openid"), + @Mapping(source = "unionId", target = "unionId"), @Mapping(source = "headImgUrl", target = "headImageUrl"), @Mapping(target = "subscribeTime", ignore = true), // 单独转换 }) diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java index 6afd668..67046db 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/account/MpAccountDO.java @@ -59,4 +59,5 @@ public class MpAccountDO extends TenantBaseDO { */ private String remark; + } diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/material/MpMaterialDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/material/MpMaterialDO.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/material/MpMaterialDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/material/MpMaterialDO.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/menu/MpMenuDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/menu/MpMenuDO.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/menu/MpMenuDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/menu/MpMenuDO.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpAutoReplyDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpAutoReplyDO.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpAutoReplyDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpAutoReplyDO.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java index eb425c2..a45d092 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/message/MpMessageDO.java @@ -14,7 +14,7 @@ import lombok.*; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.mp.builder.kefu.NewsBuilder; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotEmpty; import java.io.Serializable; import java.util.List; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/tag/MpTagDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/tag/MpTagDO.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/tag/MpTagDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/tag/MpTagDO.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java index 05ff61d..af7da35 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/dataobject/user/MpUserDO.java @@ -38,6 +38,10 @@ public class MpUserDO extends BaseDO { * 粉丝标识 */ private String openid; + /** + * 微信生态唯一标识 + */ + private String unionId; /** * 关注状态 * diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java similarity index 82% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java index a128f13..49c0658 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/account/MpAccountMapper.java @@ -6,6 +6,9 @@ import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountPageReqVO; import co.yixiang.yshop.module.mp.dal.dataobject.account.MpAccountDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.time.LocalDateTime; @Mapper public interface MpAccountMapper extends BaseMapperX { @@ -22,4 +25,7 @@ public interface MpAccountMapper extends BaseMapperX { return selectOne(MpAccountDO::getAppId, appId); } + @Select("SELECT COUNT(*) FROM mp_account WHERE update_time > #{maxUpdateTime}") + Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime); + } diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/material/MpMaterialMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/material/MpMaterialMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/material/MpMaterialMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/material/MpMaterialMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/menu/MpMenuMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/menu/MpMenuMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/menu/MpMenuMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/menu/MpMenuMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpAutoReplyMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpAutoReplyMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpAutoReplyMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpAutoReplyMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpMessageMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpMessageMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpMessageMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/message/MpMessageMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/tag/MpTagMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/tag/MpTagMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/tag/MpTagMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/tag/MpTagMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/user/MpUserMapper.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/user/MpUserMapper.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/user/MpUserMapper.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/dal/mysql/user/MpUserMapper.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/config/MpConfiguration.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/config/MpConfiguration.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/config/MpConfiguration.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/config/MpConfiguration.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/DefaultMpServiceFactory.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/DefaultMpServiceFactory.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/DefaultMpServiceFactory.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/DefaultMpServiceFactory.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/MpServiceFactory.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/MpServiceFactory.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/MpServiceFactory.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/MpServiceFactory.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/context/MpContextHolder.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/context/MpContextHolder.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/context/MpContextHolder.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/context/MpContextHolder.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java index 3768037..1319fb1 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/mp/core/util/MpUtils.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.framework.common.util.validation.ValidationUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.api.WxConsts; -import javax.validation.Validator; +import jakarta.validation.Validator; /** * 公众号工具类 diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java index 3a059d8..23171c6 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/framework/web/config/MpWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.mp.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java similarity index 95% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java index ed9d732..19612c0 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountService.java @@ -1,12 +1,15 @@ package co.yixiang.yshop.module.mp.service.account; +import cn.binarywang.wx.miniapp.api.WxMaService; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountCreateReqVO; import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountPageReqVO; import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountUpdateReqVO; import co.yixiang.yshop.module.mp.dal.dataobject.account.MpAccountDO; -import javax.validation.Valid; +import jakarta.validation.Valid; +import me.chanjar.weixin.mp.api.WxMpService; + import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -107,4 +110,6 @@ public interface MpAccountService { */ void clearAccountQuota(Long id); + + } diff --git a/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountServiceImpl.java new file mode 100644 index 0000000..c8364c9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/account/MpAccountServiceImpl.java @@ -0,0 +1,241 @@ +package co.yixiang.yshop.module.mp.service.account; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.tenant.core.util.TenantUtils; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountCreateReqVO; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountPageReqVO; +import co.yixiang.yshop.module.mp.controller.admin.account.vo.MpAccountUpdateReqVO; +import co.yixiang.yshop.module.mp.convert.account.MpAccountConvert; +import co.yixiang.yshop.module.mp.dal.dataobject.account.MpAccountDO; +import co.yixiang.yshop.module.mp.dal.mysql.account.MpAccountMapper; +import co.yixiang.yshop.module.mp.enums.ErrorCodeConstants; +import co.yixiang.yshop.module.mp.framework.mp.core.MpServiceFactory; +import com.binarywang.spring.starter.wxjava.mp.properties.WxMpProperties; +import com.google.common.annotations.VisibleForTesting; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +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.bean.result.WxMpQrCodeTicket; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertMap; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.getMaxValue; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.USER_USERNAME_EXISTS; + +/** + * 公众号账号 Service 实现类 + * + * @author fengdan + */ +@Slf4j +@Service +@Validated +public class MpAccountServiceImpl implements MpAccountService { + + /** + * 账号缓存 + * key:账号编号 {@link MpAccountDO#getAppId()} + * + * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 + */ + @Getter + private volatile Map accountCache; + + @Resource + private MpAccountMapper mpAccountMapper; + + @Resource + @Lazy // 延迟加载,解决循环依赖的问题 + private MpServiceFactory mpServiceFactory; + + @Resource + private RedisTemplateWxRedisOps redisTemplateWxRedisOps; + @Resource + private WxMpProperties mpProperties; + + @Override + @PostConstruct + public void initLocalCache() { + // 注意:忽略自动多租户,因为要全局初始化缓存 + TenantUtils.executeIgnore(() -> { + // 第一步:查询数据 + List accounts = Collections.emptyList(); + try { + accounts = mpAccountMapper.selectList(); + } catch (Throwable ex) { + if (!ex.getMessage().contains("doesn't exist")) { + throw ex; + } + log.error("[微信公众号 yshop-module-mp - 表结构未导入][参考 https://www.yixiang.co/mp/build/ 开启]"); + } + log.info("[initLocalCacheIfUpdate][缓存公众号账号,数量为:{}]", accounts.size()); + + // 第二步:构建缓存。创建或更新支付 Client + mpServiceFactory.init(accounts); + accountCache = convertMap(accounts, MpAccountDO::getAppId); + }); + } + + /** + * 通过定时任务轮询,刷新缓存 + * + * 目的:多节点部署时,通过轮询”通知“所有节点,进行刷新 + */ + @Scheduled(initialDelay = 60, fixedRate = 60, timeUnit = TimeUnit.SECONDS) + public void refreshLocalCache() { + // 注意:忽略自动多租户,因为要全局初始化缓存 + TenantUtils.executeIgnore(() -> { + // 情况一:如果缓存里没有数据,则直接刷新缓存 + if (CollUtil.isEmpty(accountCache)) { + initLocalCache(); + return; + } + + // 情况二,如果缓存里数据,则通过 updateTime 判断是否有数据变更,有变更则刷新缓存 + LocalDateTime maxTime = getMaxValue(accountCache.values(), MpAccountDO::getUpdateTime); + if (mpAccountMapper.selectCountByUpdateTimeGt(maxTime) > 0) { + initLocalCache(); + } + }); + } + + @Override + public Long createAccount(MpAccountCreateReqVO createReqVO) { + // 校验 appId 唯一 + validateAppIdUnique(null, createReqVO.getAppId()); + + // 插入 + MpAccountDO account = MpAccountConvert.INSTANCE.convert(createReqVO); + mpAccountMapper.insert(account); + + // 刷新缓存 + initLocalCache(); + return account.getId(); + } + + @Override + public void updateAccount(MpAccountUpdateReqVO updateReqVO) { + // 校验存在 + validateAccountExists(updateReqVO.getId()); + // 校验 appId 唯一 + validateAppIdUnique(updateReqVO.getId(), updateReqVO.getAppId()); + + // 更新 + MpAccountDO updateObj = MpAccountConvert.INSTANCE.convert(updateReqVO); + mpAccountMapper.updateById(updateObj); + + // 刷新缓存 + initLocalCache(); + } + + @Override + public void deleteAccount(Long id) { + // 校验存在 + validateAccountExists(id); + // 删除 + mpAccountMapper.deleteById(id); + + // 刷新缓存 + initLocalCache(); + } + + private MpAccountDO validateAccountExists(Long id) { + MpAccountDO account = mpAccountMapper.selectById(id); + if (account == null) { + throw ServiceExceptionUtil.exception(ErrorCodeConstants.ACCOUNT_NOT_EXISTS); + } + return account; + } + + @VisibleForTesting + public void validateAppIdUnique(Long id, String appId) { + // 多个租户,appId 是不能重复,否则公众号回调会无法识别 + TenantUtils.executeIgnore(() -> { + MpAccountDO account = mpAccountMapper.selectByAppId(appId); + if (account == null) { + return; + } + // 存在 account 记录的情况下 + if (id == null // 新增时,说明重复 + || ObjUtil.notEqual(id, account.getId())) { // 更新时,如果 id 不一致,说明重复 + throw exception(USER_USERNAME_EXISTS); + } + }); + } + + @Override + public MpAccountDO getAccount(Long id) { + return mpAccountMapper.selectById(id); + } + + @Override + public MpAccountDO getAccountFromCache(String appId) { + return accountCache.get(appId); + } + + @Override + public PageResult getAccountPage(MpAccountPageReqVO pageReqVO) { + return mpAccountMapper.selectPage(pageReqVO); + } + + @Override + public List getAccountList() { + return mpAccountMapper.selectList(); + } + + @Override + public void generateAccountQrCode(Long id) { + // 校验存在 + MpAccountDO account = validateAccountExists(id); + + // 生成二维码 + WxMpService mpService = mpServiceFactory.getRequiredMpService(account.getAppId()); + String qrCodeUrl; + try { + WxMpQrCodeTicket qrCodeTicket = mpService.getQrcodeService().qrCodeCreateLastTicket("default"); + qrCodeUrl = mpService.getQrcodeService().qrCodePictureUrl(qrCodeTicket.getTicket()); + } catch (WxErrorException e) { + throw exception(ErrorCodeConstants.ACCOUNT_GENERATE_QR_CODE_FAIL, e.getError().getErrorMsg()); + } + + // 保存二维码 + mpAccountMapper.updateById(new MpAccountDO().setId(id).setQrCodeUrl(qrCodeUrl)); + } + + @Override + public void clearAccountQuota(Long id) { + // 校验存在 + MpAccountDO account = validateAccountExists(id); + + // 生成二维码 + WxMpService mpService = mpServiceFactory.getRequiredMpService(account.getAppId()); + try { + mpService.clearQuota(account.getAppId()); + } catch (WxErrorException e) { + throw exception(ErrorCodeConstants.ACCOUNT_CLEAR_QUOTA_FAIL, e.getError().getErrorMsg()); + } + } + + + + + + +} diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java index 174ff63..d1aa560 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/menu/MenuHandler.java @@ -10,7 +10,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; import static me.chanjar.weixin.common.api.WxConsts.MenuButtonType; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java index ae082a5..dbbc636 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageAutoReplyHandler.java @@ -11,7 +11,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java index 533b119..67425d3 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/message/MessageReceiveHandler.java @@ -10,7 +10,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/KfSessionHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/KfSessionHandler.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/KfSessionHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/KfSessionHandler.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/NullHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/NullHandler.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/NullHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/NullHandler.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/ScanHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/ScanHandler.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/ScanHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/ScanHandler.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/StoreCheckNotifyHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/StoreCheckNotifyHandler.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/StoreCheckNotifyHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/StoreCheckNotifyHandler.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/package-info.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/package-info.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/package-info.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/other/package-info.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java index 49024a4..02ae058 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/LocationHandler.java @@ -13,7 +13,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java index 7f8b4c6..3367288 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/SubscribeHandler.java @@ -13,7 +13,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import me.chanjar.weixin.mp.bean.result.WxMpUser; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java index eda3658..278b009 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/handler/user/UnsubscribeHandler.java @@ -11,7 +11,7 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java index c044eae..456c9ba 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialService.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.mp.controller.admin.material.vo.MpMaterialUploadT import co.yixiang.yshop.module.mp.dal.dataobject.material.MpMaterialDO; import me.chanjar.weixin.common.api.WxConsts; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.io.IOException; import java.util.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java index 50ff067..fd31aaf 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/material/MpMaterialServiceImpl.java @@ -25,7 +25,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.io.File; import java.io.IOException; import java.util.Collection; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java index 3d1d4b0..edd2dfc 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuService.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.mp.controller.admin.menu.vo.MpMenuSaveReqVO; import co.yixiang.yshop.module.mp.dal.dataobject.menu.MpMenuDO; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java index 3dfe6b6..792a305 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/menu/MpMenuServiceImpl.java @@ -22,8 +22,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Validator; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyService.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyService.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java index c10fffc..d0f8184 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpAutoReplyServiceImpl.java @@ -23,8 +23,8 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; -import javax.validation.Validator; +import jakarta.annotation.Resource; +import jakarta.validation.Validator; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java index 21e944e..76c0381 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageService.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.mp.service.message.bo.MpMessageSendOutReqBO; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 公众号消息 Service 接口 diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java similarity index 94% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java index 71eb846..ba3cbc3 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/MpMessageServiceImpl.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.module.mp.service.message; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.mp.controller.admin.message.vo.message.MpMessagePageReqVO; @@ -17,6 +18,8 @@ import co.yixiang.yshop.module.mp.service.account.MpAccountService; import co.yixiang.yshop.module.mp.service.material.MpMaterialService; import co.yixiang.yshop.module.mp.service.message.bo.MpMessageSendOutReqBO; import co.yixiang.yshop.module.mp.service.user.MpUserService; +import jakarta.annotation.Resource; +import jakarta.validation.Validator; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.error.WxErrorException; @@ -28,9 +31,6 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; -import javax.validation.Validator; - import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; import static co.yixiang.yshop.module.mp.enums.ErrorCodeConstants.MESSAGE_SEND_FAIL; @@ -72,6 +72,13 @@ public class MpMessageServiceImpl implements MpMessageService { // 获得关联信息 MpAccountDO account = mpAccountService.getAccountFromCache(appId); Assert.notNull(account, "公众号账号({}) 不存在", appId); + + // 订阅事件不记录,因为此时公众号粉丝表中还没有此粉丝的数据 + // TODO @yshop:这个修复,后续看看还有啥问题 + if (ObjUtil.equal(wxMessage.getEvent(), WxConsts.EventType.SUBSCRIBE)) { + return; + } + MpUserDO user = mpUserService.getUser(appId, wxMessage.getFromUser()); Assert.notNull(user, "公众号粉丝({}/{}) 不存在", appId, wxMessage.getFromUser()); diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java similarity index 96% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java index 2e6a657..c611102 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/message/bo/MpMessageSendOutReqBO.java @@ -6,9 +6,9 @@ import lombok.Data; import me.chanjar.weixin.common.api.WxConsts; import org.hibernate.validator.constraints.URL; -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsService.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsService.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java index dbb1200..e13d958 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/statistics/MpStatisticsServiceImpl.java @@ -11,7 +11,7 @@ import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.List; diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java similarity index 88% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java index 06ecaca..e3675e8 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagService.java @@ -6,7 +6,7 @@ import co.yixiang.yshop.module.mp.controller.admin.tag.vo.MpTagPageReqVO; import co.yixiang.yshop.module.mp.controller.admin.tag.vo.MpTagUpdateReqVO; import co.yixiang.yshop.module.mp.dal.dataobject.tag.MpTagDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** @@ -46,6 +46,13 @@ public interface MpTagService { */ PageResult getTagPage(MpTagPageReqVO pageReqVO); + /** + * 获得公众号标签详情 + * @param id id查询 + * @return 公众号标签详情 + */ + MpTagDO get(Long id); + List getTagList(); /** diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java similarity index 97% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java index 5f9b034..1b2c460 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/tag/MpTagServiceImpl.java @@ -20,7 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import java.util.Map; @@ -116,6 +116,11 @@ public class MpTagServiceImpl implements MpTagService { return mpTagMapper.selectPage(pageReqVO); } + @Override + public MpTagDO get(Long id) { + return mpTagMapper.selectById(id); + } + @Override public List getTagList() { return mpTagMapper.selectList(); diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserService.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserService.java similarity index 100% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserService.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserService.java diff --git a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java similarity index 93% rename from yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java rename to yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java index abeda18..9a8cc2e 100644 --- a/yshop-drink/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-mp/yshop-module-mp-biz/src/main/java/co/yixiang/yshop/module/mp/service/user/MpUserServiceImpl.java @@ -5,8 +5,6 @@ import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; -import co.yixiang.yshop.module.member.api.user.MemberUserApi; -import co.yixiang.yshop.module.member.api.user.dto.WechatUserDto; import co.yixiang.yshop.module.mp.controller.admin.user.vo.MpUserPageReqVO; import co.yixiang.yshop.module.mp.controller.admin.user.vo.MpUserUpdateReqVO; import co.yixiang.yshop.module.mp.convert.user.MpUserConvert; @@ -25,7 +23,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; @@ -57,9 +55,6 @@ public class MpUserServiceImpl implements MpUserService { @Resource private MpUserMapper mpUserMapper; - @Resource - private MemberUserApi memberUserApi; - @Override public MpUserDO getUser(Long id) { return mpUserMapper.selectById(id); @@ -90,13 +85,6 @@ public class MpUserServiceImpl implements MpUserService { MpUserDO dbUser = mpUserMapper.selectByAppIdAndOpenid(appId, wxMpUser.getOpenId()); if (dbUser == null) { mpUserMapper.insert(user); - WechatUserDto wechatUserDto = WechatUserDto.builder() - .openid(wxMpUser.getOpenId()) - .nickname(wxMpUser.getLanguage()) - .headimgurl(wxMpUser.getLanguage()) - .build(); - - memberUserApi.saveWechatMember(wechatUserDto); } else { user.setId(dbUser.getId()); mpUserMapper.updateById(user); diff --git a/yshop-drink-boot3/yshop-module-pay/pom.xml b/yshop-drink-boot3/yshop-module-pay/pom.xml new file mode 100644 index 0000000..b1fb3bb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-pay/pom.xml @@ -0,0 +1,24 @@ + + + + co.yixiang.boot + yshop + ${revision} + + 4.0.0 + + yshop-module-pay-api + yshop-module-pay-biz + + yshop-module-pay + pom + + ${project.artifactId} + + pay 模块 + + + + diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/pom.xml b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/pom.xml similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/pom.xml rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/pom.xml diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java similarity index 98% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java index d6e9837..177f135 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/MerchantPayServiceConfigurer.java @@ -13,7 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** diff --git a/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/PayAutoConfiguration.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/PayAutoConfiguration.java new file mode 100644 index 0000000..8c3f2ee --- /dev/null +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/PayAutoConfiguration.java @@ -0,0 +1,10 @@ +package co.yixiang.yshop.module.pay.config; + +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.Configuration; + +//@Configuration +//@EnableAutoConfiguration +public class PayAutoConfiguration +{ +} diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java similarity index 98% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java index 350780d..973bfb9 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/AliPayMessageHandler.java @@ -8,7 +8,7 @@ import com.egzosn.pay.common.bean.PayOutMessage; import com.egzosn.pay.common.exception.PayErrorException; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java similarity index 97% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java index 05fa9c9..8590628 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/handlers/WxPayMessageHandler.java @@ -10,7 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/AliPayMessageInterceptor.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/AliPayMessageInterceptor.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/AliPayMessageInterceptor.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/AliPayMessageInterceptor.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/WxPayMessageInterceptor.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/WxPayMessageInterceptor.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/WxPayMessageInterceptor.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/config/interceptor/WxPayMessageInterceptor.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/enums/ErrorCodeConstants.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/enums/ErrorCodeConstants.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/enums/ErrorCodeConstants.java diff --git a/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/message/PayNoticeMessage.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/message/PayNoticeMessage.java new file mode 100644 index 0000000..e1598fc --- /dev/null +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/message/PayNoticeMessage.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.pay.mq.message; + +import co.yixiang.yshop.framework.mq.redis.core.stream.AbstractRedisStreamMessage; +import lombok.Data; + +import jakarta.validation.constraints.NotNull; + +@Data +public class PayNoticeMessage extends AbstractRedisStreamMessage { + + /** + * 订单编号 + */ + @NotNull(message = "订单编号编号不能为空") + private String orderId; + + //支付类型 + private String payType; + + @Override + public String getStreamKey() { + return "order.pay.notice"; + } +} diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java similarity index 85% rename from yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java index b898c08..c4a56a2 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-api/src/main/java/co/yixiang/yshop/module/pay/mq/producer/PayNoticeProducer.java @@ -1,11 +1,11 @@ package co.yixiang.yshop.module.pay.mq.producer; -import co.yixiang.yshop.framework.mq.core.RedisMQTemplate; +import co.yixiang.yshop.framework.mq.redis.core.RedisMQTemplate; import co.yixiang.yshop.module.pay.mq.message.PayNoticeMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; @Slf4j @Component diff --git a/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/pom.xml b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/pom.xml new file mode 100644 index 0000000..ff8ef17 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/pom.xml @@ -0,0 +1,78 @@ + + + + yshop-module-pay + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-pay-biz + jar + + ${project.artifactId} + + pay 模块,我们放支付业务,提供业务的支付能力。 + 例如说:商户、应用、支付、退款等等 + + + + + co.yixiang.boot + yshop-module-pay-api + ${revision} + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + + + diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java similarity index 94% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java index 352a8ca..58f8f70 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/MerchantDetailsController.java @@ -1,15 +1,15 @@ package co.yixiang.yshop.module.pay.controller.admin.merchantdetails; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.*; -import javax.servlet.http.*; +import jakarta.validation.*; import java.util.*; import java.io.IOException; @@ -19,9 +19,6 @@ import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.*; - import co.yixiang.yshop.module.pay.controller.admin.merchantdetails.vo.*; import co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO; import co.yixiang.yshop.module.pay.convert.merchantdetails.MerchantDetailsConvert; @@ -89,7 +86,6 @@ public class MerchantDetailsController { @GetMapping("/export-excel") @Operation(summary = "导出支付服务商配置 Excel") @PreAuthorize("@ss.hasPermission('pay:merchant-details:export')") - @OperateLog(type = EXPORT) public void exportMerchantDetailsExcel(@Valid MerchantDetailsExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = merchantDetailsService.getMerchantDetailsList(exportReqVO); diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java similarity index 98% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java index b9117ed..19c38ab 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsBaseVO.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.framework.desensitize.core.slider.annotation.SliderDesen import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; /** * 支付服务商配置 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsCreateReqVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsCreateReqVO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsCreateReqVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsCreateReqVO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExcelVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExcelVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExcelVO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExportReqVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExportReqVO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExportReqVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsExportReqVO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsPageReqVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsPageReqVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsPageReqVO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsRespVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsRespVO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsRespVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsRespVO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java similarity index 92% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java index 3930fd9..41fd54a 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/controller/admin/merchantdetails/vo/MerchantDetailsUpdateReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.pay.controller.admin.merchantdetails.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import javax.validation.constraints.*; +import jakarta.validation.constraints.*; @Schema(description = "管理后台 - 支付服务商配置更新 Request VO") @Data diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/convert/merchantdetails/MerchantDetailsConvert.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/convert/merchantdetails/MerchantDetailsConvert.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/convert/merchantdetails/MerchantDetailsConvert.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/convert/merchantdetails/MerchantDetailsConvert.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/dataobject/merchantdetails/MerchantDetailsDO.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/dataobject/merchantdetails/MerchantDetailsDO.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/dataobject/merchantdetails/MerchantDetailsDO.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/dataobject/merchantdetails/MerchantDetailsDO.java diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/dal/mysql/merchantdetails/MerchantDetailsMapper.java diff --git a/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/http/HttpRequestNoticeNewParams.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/http/HttpRequestNoticeNewParams.java new file mode 100644 index 0000000..44e6406 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/http/HttpRequestNoticeNewParams.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.pay.http; + +import com.egzosn.pay.common.bean.NoticeRequest; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.Map; +import jakarta.servlet.http.HttpServletRequest; + +public class HttpRequestNoticeNewParams implements NoticeRequest { + private final HttpServletRequest httpServletRequest; + + public HttpRequestNoticeNewParams(HttpServletRequest httpServletRequest) { + this.httpServletRequest = httpServletRequest; + } + + /** + * 根据请求头名称获取请求头信息 + * + * @param name 名称 + * @return 请求头值 + */ + @Override + public String getHeader(String name) { + return httpServletRequest.getHeader(name); + } + + /** + * 根据请求头名称获取请求头信息 + * + * @param name 名称 + * @return 请求头值 + */ + @Override + public Enumeration getHeaders(String name) { + return httpServletRequest.getHeaders(name); + } + + /** + * 获取所有的请求头名称 + * + * @return 请求头名称 + */ + @Override + public Enumeration getHeaderNames() { + return httpServletRequest.getHeaderNames(); + } + + /** + * 输入流 + * + * @return 输入流 + * @throws IOException IOException + */ + @Override + public InputStream getInputStream() throws IOException { + return httpServletRequest.getInputStream(); + } + + /** + * 获取所有的请求参数 + * + * @return 请求参数 + */ + @Override + public Map getParameterMap() { + return httpServletRequest.getParameterMap(); + } +} diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java similarity index 98% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java index bffee20..707e6a1 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsService.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.pay.service.merchantdetails; import java.util.*; -import javax.validation.*; +import jakarta.validation.*; import co.yixiang.yshop.module.pay.controller.admin.merchantdetails.vo.*; import co.yixiang.yshop.module.pay.dal.dataobject.merchantdetails.MerchantDetailsDO; import co.yixiang.yshop.framework.common.pojo.PageResult; diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java index 7733b3e..0bfcd39 100644 --- a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/java/co/yixiang/yshop/module/pay/service/merchantdetails/MerchantDetailsServiceImpl.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.pay.service.merchantdetails; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; diff --git a/yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/resources/mapper/merchantdetails/MerchantDetailsMapper.xml b/yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/resources/mapper/merchantdetails/MerchantDetailsMapper.xml similarity index 100% rename from yshop-drink/yshop-module-pay/yshop-module-pay-biz/src/main/resources/mapper/merchantdetails/MerchantDetailsMapper.xml rename to yshop-drink-boot3/yshop-module-pay/yshop-module-pay-biz/src/main/resources/mapper/merchantdetails/MerchantDetailsMapper.xml diff --git a/yshop-drink-boot3/yshop-module-score/pom.xml b/yshop-drink-boot3/yshop-module-score/pom.xml new file mode 100644 index 0000000..d179874 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/pom.xml @@ -0,0 +1,24 @@ + + + + co.yixiang.boot + yshop + ${revision} + + 4.0.0 + yshop-module-score + pom + + yshop-module-score-api + yshop-module-score-biz + + + ${project.artifactId} + + score 模块 + + + + diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/pom.xml b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/pom.xml new file mode 100644 index 0000000..830a0d2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/pom.xml @@ -0,0 +1,64 @@ + + + + yshop-module-score + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-score-api + jar + + ${project.artifactId} + + score 模块 API,暴露给其它模块调用 + + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + + com.egzosn + pay-java-wx + + + com.egzosn + pay-java-ali + + + com.egzosn + pay-spring-boot-starter + + + com.egzosn + pay-java-web-support + + + + diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..8a183cb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/ErrorCodeConstants.java @@ -0,0 +1,10 @@ +package co.yixiang.yshop.module.score.enums; + +import co.yixiang.yshop.framework.common.exception.ErrorCode; +public interface ErrorCodeConstants { + ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1008018000, "积分商城订单不存在"); + ErrorCode PRODUCT_NOT_EXISTS = new ErrorCode(1008018001, "积分产品不存在"); + ErrorCode SCORE_NOT = new ErrorCode(1008018002, "积分不足"); + ErrorCode PRODUCT_NOT_STOCK = new ErrorCode(1008018002, "库存不足"); +} + diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/OrderStatusEnum.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/OrderStatusEnum.java new file mode 100644 index 0000000..410bff6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-api/src/main/java/co/yixiang/yshop/module/score/enums/OrderStatusEnum.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.score.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.stream.Stream; + +/** + * @author hupeng + * 订单相关枚举 + */ +@Getter +@AllArgsConstructor +public enum OrderStatusEnum { + + STATUS__1(-1,"全部订单"), + STATUS_0(0,"待发货"), + STATUS_1(1,"待收货"), + STATUS_2(2,"已完成"), + STATUS_6(6,"已删除"); + + + + private Integer value; + private String desc; + + public static OrderStatusEnum toType(int value) { + return Stream.of(OrderStatusEnum.values()) + .filter(p -> p.value == value) + .findAny() + .orElse(null); + } + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/pom.xml b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/pom.xml new file mode 100644 index 0000000..e4ab93c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/pom.xml @@ -0,0 +1,78 @@ + + + + yshop-module-score + co.yixiang.boot + ${revision} + + 4.0.0 + yshop-module-score-biz + jar + + ${project.artifactId} + + score 模块 + + + + + co.yixiang.boot + yshop-module-score-api + ${revision} + + + co.yixiang.boot + yshop-module-member-biz + ${revision} + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + + + + diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/ScoreOrderController.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/ScoreOrderController.java new file mode 100644 index 0000000..668c8de --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/ScoreOrderController.java @@ -0,0 +1,98 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder; + +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import java.util.*; +import java.io.IOException; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; + +import co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvert; +import co.yixiang.yshop.module.score.service.scoreorder.ScoreOrderService; + +@Tag(name = "管理后台 - 积分商城订单") +@RestController +@RequestMapping("/score/order") +@Validated +public class ScoreOrderController { + + @Resource + private ScoreOrderService orderService; + + + @PutMapping("/update") + @Operation(summary = "更新积分商城订单") + @PreAuthorize("@ss.hasPermission('score:order:update')") + public CommonResult updateOrder(@Valid @RequestBody ScoreOrderUpdateReqVO updateReqVO) { + orderService.updateOrder(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除积分商城订单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('score:order:delete')") + public CommonResult deleteOrder(@RequestParam("id") Long id) { + orderService.deleteOrder(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得积分商城订单") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('score:order:query')") + public CommonResult getOrder(@RequestParam("id") Long id) { + return success(orderService.getOrder(id)); + } + + @GetMapping("/list") + @Operation(summary = "获得积分商城订单列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('score:order:query')") + public CommonResult> getOrderList(@RequestParam("ids") Collection ids) { + List list = orderService.getOrderList(ids); + return success(ScoreOrderConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得积分商城订单分页") + @PreAuthorize("@ss.hasPermission('score:order:query')") + public CommonResult> getOrderPage(@Valid ScoreOrderPageReqVO pageVO) { + return success(orderService.getOrderPage(pageVO)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出积分商城订单 Excel") + @PreAuthorize("@ss.hasPermission('score:order:export')") + public void exportOrderExcel(@Valid ScoreOrderExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = orderService.getOrderList(exportReqVO); + // 导出 Excel + List datas = ScoreOrderConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "积分商城订单.xls", "数据", ScoreOrderExcelVO.class, datas); + } + + @GetMapping("/take") + @Operation(summary = "收货") + @PreAuthorize("@ss.hasPermission('score:order:update')") + public CommonResult take(@RequestParam("id") Long id) { + orderService.takeOrder(id); + return success(true); + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO.java new file mode 100644 index 0000000..27a37c5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderBaseVO.java @@ -0,0 +1,79 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import jakarta.validation.constraints.*; + +/** +* 积分商城订单 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class ScoreOrderBaseVO { + + @Schema(description = "用户id", required = true, example = "28397") + @NotNull(message = "用户id不能为空") + private Long uid; + + @Schema(description = "订单编号", required = true, example = "28397") + private String orderId; + + @Schema(description = "商品id", required = true, example = "31639") + @NotNull(message = "商品id不能为空") + private Long productId; + + @Schema(description = "数量", required = true) + @NotNull(message = "数量不能为空") + private Integer number; + + @Schema(description = "单个商品积分", required = true) + @NotNull(message = "单个商品积分不能为空") + private Integer score; + + @Schema(description = "总消耗积分", required = true) + @NotNull(message = "总消耗积分不能为空") + private Integer totalScore; + + @Schema(description = "下单ip") + private String ip; + + @Schema(description = "快递公司编码", required = true) + private String expressSn; + + @Schema(description = "快递编号", required = true) + @NotNull(message = "快递编号不能为空") + private String expressNumber; + + @Schema(description = "快递公司", required = true) + @NotNull(message = "快递公司不能为空") + private String expressCompany; + + @Schema(description = "收货名称", example = "王五") + private String customerName; + + @Schema(description = "收货电话") + private String customerPhone; + + @Schema(description = "收货地址") + private String customerAddress; + + @Schema(description = "订单状态:0=取消订单,1=正常啊", required = true, example = "1") + @NotNull(message = "订单状态:0=取消订单,1=正常啊不能为空") + private Boolean status; + + @Schema(description = "已支付:0=否", required = true, example = "12822") + @NotNull(message = "已支付:0=否不能为空") + private Integer havePaid; + + @Schema(description = "已发货:0=否", required = true) + @NotNull(message = "已发货:0=否不能为空") + private Integer haveDelivered; + + @Schema(description = "已收货:0=否", required = true) + @NotNull(message = "已收货:0=否不能为空") + private Integer haveReceived; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderCreateReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderCreateReqVO.java new file mode 100644 index 0000000..910bc46 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderCreateReqVO.java @@ -0,0 +1,14 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 积分商城订单创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ScoreOrderCreateReqVO extends ScoreOrderBaseVO { + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExcelVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExcelVO.java new file mode 100644 index 0000000..511e428 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExcelVO.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 积分商城订单 Excel VO + * + * @author yshop + */ +@Data +public class ScoreOrderExcelVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("用户id") + private Integer userId; + + @ExcelProperty("商品id") + private Integer productId; + + @ExcelProperty("数量") + private Integer number; + + @ExcelProperty("单个商品积分") + private Integer score; + + @ExcelProperty("总消耗积分") + private Integer totalScore; + + @ExcelProperty("下单ip") + private String ip; + + @ExcelProperty("快递编号") + private String expressNumber; + + @ExcelProperty("快递公司") + private String expressCompany; + + @ExcelProperty("收货名称") + private String customerName; + + @ExcelProperty("收货电话") + private String customerPhone; + + @ExcelProperty("收货地址") + private String customerAddress; + + @ExcelProperty("订单状态:0=取消订单,1=正常啊") + private Boolean status; + + @ExcelProperty("已支付:0=否") + private Integer havePaid; + + @ExcelProperty("已发货:0=否") + private Integer haveDelivered; + + @ExcelProperty("已收货:0=否") + private Integer haveReceived; + + @ExcelProperty("添加时间") + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExportReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExportReqVO.java new file mode 100644 index 0000000..4026e53 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderExportReqVO.java @@ -0,0 +1,65 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 积分商城订单 Excel 导出 Request VO,参数和 ScoreOrderPageReqVO 是一致的") +@Data +public class ScoreOrderExportReqVO { + + @Schema(description = "用户id", example = "28397") + private Integer userId; + + @Schema(description = "商品id", example = "31639") + private Integer productId; + + @Schema(description = "数量") + private Integer number; + + @Schema(description = "单个商品积分") + private Integer score; + + @Schema(description = "总消耗积分") + private Integer totalScore; + + @Schema(description = "下单ip") + private String ip; + + @Schema(description = "快递编号") + private String expressNumber; + + @Schema(description = "快递公司") + private String expressCompany; + + @Schema(description = "收货名称", example = "王五") + private String customerName; + + @Schema(description = "收货电话") + private String customerPhone; + + @Schema(description = "收货地址") + private String customerAddress; + + @Schema(description = "订单状态:0=取消订单,1=正常啊", example = "1") + private Boolean status; + + @Schema(description = "已支付:0=否", example = "12822") + private Integer havePaid; + + @Schema(description = "已发货:0=否") + private Integer haveDelivered; + + @Schema(description = "已收货:0=否") + private Integer haveReceived; + + @Schema(description = "添加时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderPageReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderPageReqVO.java new file mode 100644 index 0000000..2909f5e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderPageReqVO.java @@ -0,0 +1,73 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static co.yixiang.yshop.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 ScoreOrderPageReqVO extends PageParam { + + @Schema(description = "用户id", example = "28397") + private Long uid; + + @Schema(description = "订单编号", required = true, example = "28397") + private String orderId; + + @Schema(description = "商品id", example = "31639") + private Long productId; + + @Schema(description = "数量") + private Integer number; + + @Schema(description = "单个商品积分") + private Integer score; + + @Schema(description = "总消耗积分") + private Integer totalScore; + + @Schema(description = "下单ip") + private String ip; + + @Schema(description = "快递编号") + private String expressNumber; + + @Schema(description = "快递公司") + private String expressCompany; + + @Schema(description = "收货名称", example = "王五") + private String customerName; + + @Schema(description = "收货电话") + private String customerPhone; + + @Schema(description = "收货地址") + private String customerAddress; + + @Schema(description = "订单状态:0=取消订单,1=正常啊", example = "1") + private Boolean status; + + @Schema(description = "已支付:0=否", example = "12822") + private Integer havePaid; + + @Schema(description = "已发货:0=否") + private Integer haveDelivered; + + @Schema(description = "已收货:0=否") + private Integer haveReceived; + + @Schema(description = "添加时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + // "状态,-1全部 默认为0待发货 1待收货 2已完成" + private Integer type; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderRespVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderRespVO.java new file mode 100644 index 0000000..41c0b96 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderRespVO.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO; +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.ScoreProductRespVO; +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 ScoreOrderRespVO extends ScoreOrderBaseVO { + + @Schema(description = "id", required = true, example = "19735") + private Long id; + + @Schema(description = "添加时间") + private LocalDateTime createTime; + + @Schema(description = "商品明细") + private ScoreProductRespVO scoreProductRespVO; + + @Schema(description = "用户信息", required = true) + private UserRespVO userRespVO; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderUpdateReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderUpdateReqVO.java new file mode 100644 index 0000000..3890e47 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreorder/vo/ScoreOrderUpdateReqVO.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 积分商城订单更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ScoreOrderUpdateReqVO extends ScoreOrderBaseVO { + + @Schema(description = "id", required = true, example = "19735") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/ScoreProductController.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/ScoreProductController.java new file mode 100644 index 0000000..be72236 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/ScoreProductController.java @@ -0,0 +1,98 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct; + +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import java.util.*; +import java.io.IOException; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; + +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.module.score.convert.scoreproduct.ScoreProductConvert; +import co.yixiang.yshop.module.score.service.scoreproduct.ScoreProductService; + +@Tag(name = "管理后台 - 积分产品") +@RestController +@RequestMapping("/score/product") +@Validated +public class ScoreProductController { + + @Resource + private ScoreProductService productService; + + @PostMapping("/create") + @Operation(summary = "创建积分产品") + @PreAuthorize("@ss.hasPermission('score:product:create')") + public CommonResult createProduct(@Valid @RequestBody ScoreProductCreateReqVO createReqVO) { + return success(productService.createProduct(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新积分产品") + @PreAuthorize("@ss.hasPermission('score:product:update')") + public CommonResult updateProduct(@Valid @RequestBody ScoreProductUpdateReqVO updateReqVO) { + productService.updateProduct(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除积分产品") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('score:product:delete')") + public CommonResult deleteProduct(@RequestParam("id") Long id) { + productService.deleteProduct(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得积分产品") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('score:product:query')") + public CommonResult getProduct(@RequestParam("id") Long id) { + ScoreProductDO product = productService.getProduct(id); + return success(ScoreProductConvert.INSTANCE.convert(product)); + } + + @GetMapping("/list") + @Operation(summary = "获得积分产品列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('score:product:query')") + public CommonResult> getProductList(@RequestParam("ids") Collection ids) { + List list = productService.getProductList(ids); + return success(ScoreProductConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得积分产品分页") + @PreAuthorize("@ss.hasPermission('score:product:query')") + public CommonResult> getProductPage(@Valid ScoreProductPageReqVO pageVO) { + PageResult pageResult = productService.getProductPage(pageVO); + return success(ScoreProductConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出积分产品 Excel") + @PreAuthorize("@ss.hasPermission('score:product:export')") + public void exportProductExcel(@Valid ScoreProductExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productService.getProductList(exportReqVO); + // 导出 Excel + List datas = ScoreProductConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "积分产品.xls", "数据", ScoreProductExcelVO.class, datas); + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductBaseVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductBaseVO.java new file mode 100644 index 0000000..d2ebced --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductBaseVO.java @@ -0,0 +1,50 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import jakarta.validation.constraints.*; + +/** +* 积分产品 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class ScoreProductBaseVO { + + @Schema(description = "产品标题", required = true) + @NotNull(message = "产品标题不能为空") + private String title; + + @Schema(description = "主图", required = true) + @NotNull(message = "主图不能为空") + private String image; + + @Schema(description = "组图", required = true) + @NotNull(message = "组图不能为空") + private List images; + + @Schema(description = "详情", required = true) + @NotNull(message = "详情不能为空") + private String desc; + + @Schema(description = "消耗积分", required = true) + @NotNull(message = "消耗积分不能为空") + private Integer score; + + @Schema(description = "权重", required = true) + private Integer weigh; + + @Schema(description = "库存", required = true) + @NotNull(message = "库存不能为空") + private Integer stock; + + @Schema(description = "销售量", required = true) + private Integer sales; + + @Schema(description = "是否上架:0=否,1=是", required = true) + private Integer isSwitch; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductCreateReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductCreateReqVO.java new file mode 100644 index 0000000..ef578d2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductCreateReqVO.java @@ -0,0 +1,14 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 积分产品创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ScoreProductCreateReqVO extends ScoreProductBaseVO { + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExcelVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExcelVO.java new file mode 100644 index 0000000..9b3cb24 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExcelVO.java @@ -0,0 +1,52 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 积分产品 Excel VO + * + * @author yshop + */ +@Data +public class ScoreProductExcelVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("产品标题") + private String title; + + @ExcelProperty("主图") + private String image; + + @ExcelProperty("组图") + private List images; + + @ExcelProperty("详情") + private String desc; + + @ExcelProperty("消耗积分") + private Integer score; + + @ExcelProperty("权重") + private Integer weigh; + + @ExcelProperty("库存") + private Integer stock; + + @ExcelProperty("销售量") + private Integer sales; + + @ExcelProperty("是否上架:0=否,1=是") + private Integer isSwitch; + + @ExcelProperty("添加时间") + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExportReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExportReqVO.java new file mode 100644 index 0000000..8128bf5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductExportReqVO.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 积分产品 Excel 导出 Request VO,参数和 ScoreProductPageReqVO 是一致的") +@Data +public class ScoreProductExportReqVO { + + @Schema(description = "产品标题") + private String title; + + @Schema(description = "主图") + private String image; + + @Schema(description = "组图") + private String images; + + @Schema(description = "详情") + private String desc; + + @Schema(description = "消耗积分") + private Integer score; + + @Schema(description = "权重") + private Integer weigh; + + @Schema(description = "库存") + private Integer stock; + + @Schema(description = "销售量") + private Integer sales; + + @Schema(description = "是否上架:0=否,1=是") + private Integer isSwitch; + + @Schema(description = "添加时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductPageReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductPageReqVO.java new file mode 100644 index 0000000..6558a00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductPageReqVO.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static co.yixiang.yshop.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 ScoreProductPageReqVO extends PageParam { + + @Schema(description = "产品标题") + private String title; + + @Schema(description = "主图") + private String image; + + @Schema(description = "组图") + private List images; + + @Schema(description = "详情") + private String desc; + + @Schema(description = "消耗积分") + private Integer score; + + @Schema(description = "权重") + private Integer weigh; + + @Schema(description = "库存") + private Integer stock; + + @Schema(description = "销售量") + private Integer sales; + + @Schema(description = "是否上架:0=否,1=是") + private Integer isSwitch; + + @Schema(description = "添加时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductRespVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductRespVO.java new file mode 100644 index 0000000..592c5ad --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductRespVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +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 ScoreProductRespVO extends ScoreProductBaseVO { + + @Schema(description = "id", required = true, example = "8624") + private Long id; + + @Schema(description = "添加时间") + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductUpdateReqVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductUpdateReqVO.java new file mode 100644 index 0000000..5a70890 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/admin/scoreproduct/vo/ScoreProductUpdateReqVO.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 积分产品更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ScoreProductUpdateReqVO extends ScoreProductBaseVO { + + @Schema(description = "id", required = true, example = "8624") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/AppScoreOrderController.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/AppScoreOrderController.java new file mode 100644 index 0000000..704bec0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/AppScoreOrderController.java @@ -0,0 +1,99 @@ +package co.yixiang.yshop.module.score.controller.app.order; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.security.core.annotations.PreAuthenticated; +import co.yixiang.yshop.module.score.controller.app.order.param.AppScoreOrderParam; +import co.yixiang.yshop.module.score.controller.app.order.vo.AppScoreOrderVO; +import co.yixiang.yshop.module.score.controller.app.product.param.AppScoreProductQueryParam; +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import co.yixiang.yshop.module.score.service.scoreorder.AppScoreOrderService; +import co.yixiang.yshop.module.score.service.scoreproduct.AppScoreProductService; +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.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import jakarta.validation.Valid; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "用户 APP - 积分订单") +@RestController +@RequestMapping("/score-order") +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +public class AppScoreOrderController { + + private final AppScoreOrderService appScoreOrderService; + + /** + * 提交积分订单 + */ + @PreAuthenticated + @PostMapping("/submit") + @Operation(summary = "提交积分订单") + public CommonResult submit(@RequestBody @Valid AppScoreOrderParam appScoreOrderParam){ + Long uid = getLoginUserId(); + appScoreOrderService.submit(uid,appScoreOrderParam); + return success(true); + } + + /** + * 订单列表 + */ + @PreAuthenticated + @GetMapping("/list") + @Operation(summary = "订单列表") + @Parameters({ + @Parameter(name = "type", description = "状态,-1全部 默认为0待发货 1待收货 2已完成", + required = true, example = "1"), + @Parameter(name = "page", description = "页码,默认为1", + required = true, example = "1"), + @Parameter(name = "limit", description = "页大小,默认为10", + required = true, example = "10 ") + }) + public CommonResult> orderList(@RequestParam(value = "type", defaultValue = "0") int type, + @RequestParam(value = "page", defaultValue = "1") int page, + @RequestParam(value = "limit", defaultValue = "10") int limit) { + Long uid = getLoginUserId(); + return success(appScoreOrderService.orderList(uid, type, page, limit)); + } + + /** + * 订单详情 + */ + @PreAuthenticated + @GetMapping("/detail") + @Operation(summary = "订单详情") + @Parameters({ + @Parameter(name = "id", description = "id", + required = true, example = "1") + }) + public CommonResult orderList(@RequestParam(value = "id", defaultValue = "0") Long id) { + Long uid = getLoginUserId(); + return success(appScoreOrderService.orderDetail(uid, id)); + } + + + /** + * 收货 + */ + @PreAuthenticated + @GetMapping("/take") + @Operation(summary = "收货") + public CommonResult take(@RequestParam(value = "id", defaultValue = "0") Long id){ + Long uid = getLoginUserId(); + appScoreOrderService.take(uid,id); + return success(true); + } + + + + + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/param/AppScoreOrderParam.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/param/AppScoreOrderParam.java new file mode 100644 index 0000000..582e88b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/param/AppScoreOrderParam.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.score.controller.app.order.param; + +import co.yixiang.yshop.framework.common.params.QueryParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import jakarta.validation.constraints.NotBlank; + +/** + *

+ * 积分订单参数对象 + *

+ * + * @author hupeng + * @date 2023-11-30 + */ +@Data +@Schema(description = "用户 APP - 积分订单参数对象") +public class AppScoreOrderParam { + + @Schema(description = "积分商品ID", required = true) + @NotBlank(message = "参数有误") + private String productId; + + @Schema(description = "地址ID", required = true) + @NotBlank(message = "请选择地址") + private String addressId; + + @Schema(description = "数量", required = true) + private String num; + + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/vo/AppScoreOrderVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/vo/AppScoreOrderVO.java new file mode 100644 index 0000000..806d539 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/order/vo/AppScoreOrderVO.java @@ -0,0 +1,77 @@ +package co.yixiang.yshop.module.score.controller.app.order.vo; + +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** +* 积分商城订单 AppScoreOrderVO VO,提供给添加、修改、详细的子 VO 使用 +*/ +@Data +public class AppScoreOrderVO { + + private Long id; + + @Schema(description = "用户id", required = true, example = "28397") + private Long uid; + + @Schema(description = "订单编号", required = true, example = "28397") + private String orderId; + + @Schema(description = "商品id", required = true, example = "31639") + private Long productId; + + @Schema(description = "数量", required = true) + private Integer number; + + @Schema(description = "单个商品积分", required = true) + private Integer score; + + @Schema(description = "总消耗积分", required = true) + @NotNull(message = "总消耗积分不能为空") + private Integer totalScore; + + @Schema(description = "下单ip") + private String ip; + + @Schema(description = "快递公司编号", required = true) + private String expressSn; + + @Schema(description = "快递编号", required = true) + private String expressNumber; + + @Schema(description = "快递公司", required = true) + private String expressCompany; + + @Schema(description = "收货名称", example = "王五") + private String customerName; + + @Schema(description = "收货电话") + private String customerPhone; + + @Schema(description = "收货地址") + private String customerAddress; + + @Schema(description = "订单状态:0=取消订单,1=正常啊", required = true, example = "1") + private Boolean status; + + @Schema(description = "已支付:0=否", required = true, example = "12822") + private Integer havePaid; + + @Schema(description = "已发货:0=否", required = true) + private Integer haveDelivered; + + @Schema(description = "已收货:0=否", required = true) + private Integer haveReceived; + + @Schema(description = "订单状态字符串", required = true) + private String statusText; + + private LocalDateTime createTime; + + private AppScoreProductVO product; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/AppScoreProductController.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/AppScoreProductController.java new file mode 100644 index 0000000..d5f8018 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/AppScoreProductController.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.score.controller.app.product; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.module.score.controller.app.product.param.AppScoreProductQueryParam; +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import co.yixiang.yshop.module.score.service.scoreproduct.AppScoreProductService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +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 java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 APP - 积分商品") +@RestController +@RequestMapping("/score-product") +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +public class AppScoreProductController { + + private final AppScoreProductService appScoreProductService; + + /** + * 获取积分商品列表 + */ + @GetMapping("/list") + @Operation(summary = "获取积分商品列表") + public CommonResult> goodsList(AppScoreProductQueryParam productQueryParam){ + return success(appScoreProductService.getList(productQueryParam.getPage(),productQueryParam.getLimit())); + } + + /** + * 获取积分商品详情 + */ + @GetMapping("/detail") + @Operation(summary = "获取积分商品详情") + public CommonResult goodsDetail(@RequestParam(value = "id", defaultValue = "0") Long id){ + return success(appScoreProductService.getDetail(id)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/param/AppScoreProductQueryParam.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/param/AppScoreProductQueryParam.java new file mode 100644 index 0000000..4f2d044 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/param/AppScoreProductQueryParam.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.score.controller.app.product.param; + +import co.yixiang.yshop.framework.common.params.QueryParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 商品查询参数对象 + *

+ * + * @author hupeng + * @date 2023-11-26 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "用户 APP - 积分商品表查询参数") +public class AppScoreProductQueryParam extends QueryParam { + private static final long serialVersionUID = 1L; + @Schema(description = "关键字", required = true) + private String keyword; + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/vo/AppScoreProductVO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/vo/AppScoreProductVO.java new file mode 100644 index 0000000..f371884 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/controller/app/product/vo/AppScoreProductVO.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.module.score.controller.app.product.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotNull; +import java.util.List; + +/** +* 积分产品 AppScoreProductVO VO +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class AppScoreProductVO { + + @Schema(description = "id", required = true, example = "8624") + private Long id; + + @Schema(description = "产品标题", required = true) + private String title; + + @Schema(description = "主图", required = true) + private String image; + + @Schema(description = "组图", required = true) + private List images; + + @Schema(description = "详情", required = true) + private String desc; + + @Schema(description = "消耗积分", required = true) + private Integer score; + + + @Schema(description = "库存", required = true) + private Integer stock; + + @Schema(description = "销售量", required = true) + private Integer sales; + + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreorder/ScoreOrderConvert.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreorder/ScoreOrderConvert.java new file mode 100644 index 0000000..df3c30e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreorder/ScoreOrderConvert.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.score.convert.scoreorder; + +import java.util.*; + +import co.yixiang.yshop.framework.common.pojo.PageResult; + +import co.yixiang.yshop.module.score.controller.app.order.vo.AppScoreOrderVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; + +/** + * 积分商城订单 Convert + * + * @author yshop + */ +@Mapper +public interface ScoreOrderConvert { + + ScoreOrderConvert INSTANCE = Mappers.getMapper(ScoreOrderConvert.class); + + ScoreOrderDO convert(ScoreOrderCreateReqVO bean); + + ScoreOrderDO convert(ScoreOrderUpdateReqVO bean); + + ScoreOrderRespVO convert(ScoreOrderDO bean); + + AppScoreOrderVO convert01(ScoreOrderDO bean); + + List convertList(List list); + + List convertList01(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreproduct/ScoreProductConvert.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreproduct/ScoreProductConvert.java new file mode 100644 index 0000000..865803e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/convert/scoreproduct/ScoreProductConvert.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.score.convert.scoreproduct; + +import java.util.*; + +import co.yixiang.yshop.framework.common.pojo.PageResult; + +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; + +/** + * 积分产品 Convert + * + * @author yshop + */ +@Mapper +public interface ScoreProductConvert { + + ScoreProductConvert INSTANCE = Mappers.getMapper(ScoreProductConvert.class); + + ScoreProductDO convert(ScoreProductCreateReqVO bean); + + ScoreProductDO convert(ScoreProductUpdateReqVO bean); + + ScoreProductRespVO convert(ScoreProductDO bean); + + AppScoreProductVO convert01(ScoreProductDO bean); + + List convertList(List list); + + List convertList01(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreorder/ScoreOrderDO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreorder/ScoreOrderDO.java new file mode 100644 index 0000000..d3b2c86 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreorder/ScoreOrderDO.java @@ -0,0 +1,101 @@ +package co.yixiang.yshop.module.score.dal.dataobject.scoreorder; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; + +/** + * 积分商城订单 DO + * + * @author yshop + */ +@TableName("yshop_score_order") +@KeySequence("yshop_score_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ScoreOrderDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 用户id + */ + private Long uid; + + /** + * 订单编号 + */ + private String orderId; + /** + * 商品id + */ + private Long productId; + /** + * 数量 + */ + private Integer number; + /** + * 单个商品积分 + */ + private Integer score; + /** + * 总消耗积分 + */ + private Integer totalScore; + /** + * 下单ip + */ + private String ip; + + /** + * 快递公司编码 + */ + private String expressSn; + /** + * 快递编号 + */ + private String expressNumber; + /** + * 快递公司 + */ + private String expressCompany; + /** + * 收货名称 + */ + private String customerName; + /** + * 收货电话 + */ + private String customerPhone; + /** + * 收货地址 + */ + private String customerAddress; + /** + * 订单状态:0=取消订单,1=正常啊 + */ + private Boolean status; + /** + * 已支付:0=否 + */ + private Integer havePaid; + /** + * 已发货:0=否 + */ + private Integer haveDelivered; + /** + * 已收货:0=否 + */ + private Integer haveReceived; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreproduct/ScoreProductDO.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreproduct/ScoreProductDO.java new file mode 100644 index 0000000..7411b87 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/dataobject/scoreproduct/ScoreProductDO.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.score.dal.dataobject.scoreproduct; + +import co.yixiang.yshop.framework.mybatis.core.type.StringListTypeHandler; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; + +/** + * 积分产品 DO + * + * @author yshop + */ +@TableName(value = "yshop_score_product",autoResultMap = true) +@KeySequence("yshop_score_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ScoreProductDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 产品标题 + */ + private String title; + /** + * 主图 + */ + private String image; + /** + * 组图 + */ + @TableField(typeHandler = StringListTypeHandler.class) + private List images; + /** + * 详情 + */ + @TableField(value = "`desc`") + private String desc; + /** + * 消耗积分 + */ + private Integer score; + /** + * 权重 + */ + private Integer weigh; + /** + * 库存 + */ + private Integer stock; + /** + * 销售量 + */ + private Integer sales; + /** + * 是否上架:0=否,1=是 + */ + private Integer isSwitch; + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreorder/ScoreOrderMapper.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreorder/ScoreOrderMapper.java new file mode 100644 index 0000000..eab7165 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreorder/ScoreOrderMapper.java @@ -0,0 +1,78 @@ +package co.yixiang.yshop.module.score.dal.mysql.scoreorder; + +import java.util.*; + +import co.yixiang.yshop.framework.common.enums.OrderInfoEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import co.yixiang.yshop.module.score.enums.OrderStatusEnum; +import org.apache.ibatis.annotations.Mapper; +import co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.*; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +/** + * 积分商城订单 Mapper + * + * @author yshop + */ +@Mapper +public interface ScoreOrderMapper extends BaseMapperX { + + default PageResult selectPage(ScoreOrderPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX(); + wrapper.eqIfPresent(ScoreOrderDO::getOrderId, reqVO.getOrderId()) + .likeIfPresent(ScoreOrderDO::getCustomerName, reqVO.getCustomerName()) + .eqIfPresent(ScoreOrderDO::getCustomerPhone, reqVO.getCustomerPhone()) + .orderByDesc(ScoreOrderDO::getId); + switch (OrderStatusEnum.toType(reqVO.getType())) { + case STATUS__1: + break; + //待发货 + case STATUS_0: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_0.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_0.getValue()); + break; + //待收货 + case STATUS_1: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_0.getValue()); + break; + //已完成 + case STATUS_2: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_1.getValue()); + break; + default: + } + return selectPage(reqVO, wrapper); + } + + default List selectList(ScoreOrderExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ScoreOrderDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ScoreOrderDO::getNumber, reqVO.getNumber()) + .eqIfPresent(ScoreOrderDO::getScore, reqVO.getScore()) + .eqIfPresent(ScoreOrderDO::getTotalScore, reqVO.getTotalScore()) + .eqIfPresent(ScoreOrderDO::getIp, reqVO.getIp()) + .eqIfPresent(ScoreOrderDO::getExpressNumber, reqVO.getExpressNumber()) + .eqIfPresent(ScoreOrderDO::getExpressCompany, reqVO.getExpressCompany()) + .likeIfPresent(ScoreOrderDO::getCustomerName, reqVO.getCustomerName()) + .eqIfPresent(ScoreOrderDO::getCustomerPhone, reqVO.getCustomerPhone()) + .eqIfPresent(ScoreOrderDO::getCustomerAddress, reqVO.getCustomerAddress()) + .eqIfPresent(ScoreOrderDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ScoreOrderDO::getHavePaid, reqVO.getHavePaid()) + .eqIfPresent(ScoreOrderDO::getHaveDelivered, reqVO.getHaveDelivered()) + .eqIfPresent(ScoreOrderDO::getHaveReceived, reqVO.getHaveReceived()) + .betweenIfPresent(ScoreOrderDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ScoreOrderDO::getId)); + } + + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java new file mode 100644 index 0000000..0dd60ec --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/dal/mysql/scoreproduct/ScoreProductMapper.java @@ -0,0 +1,61 @@ +package co.yixiang.yshop.module.score.dal.mysql.scoreproduct; + +import java.util.*; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import org.apache.ibatis.annotations.Mapper; +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.*; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +/** + * 积分产品 Mapper + * + * @author yshop + */ +@Mapper +public interface ScoreProductMapper extends BaseMapperX { + + default PageResult selectPage(ScoreProductPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ScoreProductDO::getTitle, reqVO.getTitle()) + .eqIfPresent(ScoreProductDO::getImage, reqVO.getImage()) + .eqIfPresent(ScoreProductDO::getImages, reqVO.getImages()) + .eqIfPresent(ScoreProductDO::getDesc, reqVO.getDesc()) + .eqIfPresent(ScoreProductDO::getScore, reqVO.getScore()) + .eqIfPresent(ScoreProductDO::getWeigh, reqVO.getWeigh()) + .eqIfPresent(ScoreProductDO::getStock, reqVO.getStock()) + .eqIfPresent(ScoreProductDO::getSales, reqVO.getSales()) + .betweenIfPresent(ScoreProductDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ScoreProductDO::getId)); + } + + default List selectList(ScoreProductExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ScoreProductDO::getTitle, reqVO.getTitle()) + .eqIfPresent(ScoreProductDO::getImage, reqVO.getImage()) + .eqIfPresent(ScoreProductDO::getImages, reqVO.getImages()) + .eqIfPresent(ScoreProductDO::getDesc, reqVO.getDesc()) + .eqIfPresent(ScoreProductDO::getScore, reqVO.getScore()) + .eqIfPresent(ScoreProductDO::getWeigh, reqVO.getWeigh()) + .eqIfPresent(ScoreProductDO::getStock, reqVO.getStock()) + .eqIfPresent(ScoreProductDO::getSales, reqVO.getSales()) + .betweenIfPresent(ScoreProductDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ScoreProductDO::getId)); + } + + + /** + * 普通商品 减库存 加销量 + * @param num + * @param productId + * @return + */ + @Update("update yshop_score_product set stock=stock-#{num}, sales=sales+#{num}" + + " where id=#{productId} and stock >= #{num}") + int decStockIncSales(@Param("num") Integer num, @Param("productId") Long productId); + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderService.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderService.java new file mode 100644 index 0000000..d9045fa --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderService.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.module.score.service.scoreorder; + +import co.yixiang.yshop.module.score.controller.app.order.param.AppScoreOrderParam; +import co.yixiang.yshop.module.score.controller.app.order.vo.AppScoreOrderVO; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 积分商城订单 Service 接口 + * + * @author yshop + */ +public interface AppScoreOrderService extends IService { + + /** + * 提交 + * @param uid + * @param appScoreOrderParam + */ + void submit(Long uid,AppScoreOrderParam appScoreOrderParam); + + /** + * 订单列表 + * @param uid 用户id + * @param type + * @param page page + * @param limit limit + * @return list + */ + List orderList(Long uid, int type, int page, int limit); + + /** + * 订单详情 + * @param uid 用户id + * @param id + */ + AppScoreOrderVO orderDetail(Long uid, Long id); + + /** + * 收货 + * @param uid + * @param id + */ + void take(Long uid, Long id); + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderServiceImpl.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderServiceImpl.java new file mode 100644 index 0000000..ab61e00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/AppScoreOrderServiceImpl.java @@ -0,0 +1,255 @@ +package co.yixiang.yshop.module.score.service.scoreorder; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.constant.ShopConstants; +import co.yixiang.yshop.framework.common.enums.OrderInfoEnum; +import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; +import co.yixiang.yshop.framework.common.exception.ErrorCode; +import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; +import co.yixiang.yshop.framework.ip.core.utils.IPUtils; +import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; +import co.yixiang.yshop.module.member.dal.dataobject.useraddress.UserAddressDO; +import co.yixiang.yshop.module.member.enums.BillDetailEnum; +import co.yixiang.yshop.module.member.service.user.MemberUserService; +import co.yixiang.yshop.module.member.service.useraddress.AppUserAddressService; +import co.yixiang.yshop.module.member.service.userbill.UserBillService; +import co.yixiang.yshop.module.score.controller.app.order.param.AppScoreOrderParam; +import co.yixiang.yshop.module.score.controller.app.order.vo.AppScoreOrderVO; +import co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvert; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper; +import co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper; +import co.yixiang.yshop.module.score.enums.OrderStatusEnum; +import co.yixiang.yshop.module.score.service.scoreproduct.AppScoreProductService; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.member.enums.ErrorCodeConstants.USER_ADDRESS_NOT_EXISTS; +import static co.yixiang.yshop.module.score.enums.ErrorCodeConstants.*; + +/** + * 积分商城订单 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +public class AppScoreOrderServiceImpl extends ServiceImpl implements AppScoreOrderService { + + @Resource + private ScoreOrderMapper orderMapper; + @Resource + private ScoreProductMapper scoreProductMapper; + @Resource + private AppScoreProductService appScoreProductService; + @Resource + private MemberUserService userService; + @Resource + private RedissonClient redissonClient; + @Resource + private UserBillService billService; + @Resource + private AppUserAddressService appUserAddressService; + + private static final String STOCK_LOCK_KEY = "score:order:stock:lock"; + + + /** + * 提交 + * @param uid + * @param appScoreOrderParam + */ + @Override + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + public void submit(Long uid,AppScoreOrderParam appScoreOrderParam) { + ScoreProductDO scoreProductDO = appScoreProductService.getById(appScoreOrderParam.getProductId()); + if(scoreProductDO == null){ + throw exception(PRODUCT_NOT_EXISTS); + } + UserAddressDO userAddressDO = appUserAddressService.getById(appScoreOrderParam.getAddressId()); + if(userAddressDO == null){ + throw exception(USER_ADDRESS_NOT_EXISTS); + } + MemberUserDO memberUserDO = userService.getById(uid); + if(scoreProductDO.getStock() <= 0){ + throw exception(PRODUCT_NOT_STOCK); + } + if(NumberUtil.compare(memberUserDO.getIntegral().intValue(),scoreProductDO.getScore()) < 0){ + throw exception(SCORE_NOT); + } + + //生成分布式唯一值 + String orderSn = IdUtil.getSnowflake(0, 0).nextIdStr(); + ScoreOrderDO scoreOrderDO = ScoreOrderDO.builder() + .havePaid(ShopCommonEnum.IS_STATUS_1.getValue()) + .customerAddress(userAddressDO.getAddress() + userAddressDO.getDetail()) + .customerName(userAddressDO.getRealName()) + .customerPhone(userAddressDO.getPhone()) + .ip(ServletUtils.getClientIP()) + .orderId(orderSn) + .productId(scoreProductDO.getId()) + .number(Integer.valueOf(appScoreOrderParam.getNum())) + .score(scoreProductDO.getScore()) + .totalScore(scoreProductDO.getScore()) + .uid(uid) + .build(); + //保存 + this.save(scoreOrderDO); + + //减去积分 + userService.decScore(uid,scoreOrderDO.getScore()); + + this.deStockIncSale(scoreProductDO.getId(),Integer.valueOf(appScoreOrderParam.getNum())); + + //增加流水 + billService.expend(uid, "积分兑换", + BillDetailEnum.CATEGORY_2.getValue(), + BillDetailEnum.TYPE_3.getValue(), + scoreProductDO.getScore().doubleValue(), memberUserDO.getIntegral().doubleValue(), + scoreProductDO.getScore() + "积分兑换商品"); + + } + + + /** + * 订单列表 + * + * @param uid 用户id + * @param type OrderStatusEnum + * @param page page + * @param limit limit + * @return list + */ + @Override + public List orderList(Long uid, int type, int page, int limit) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScoreOrderDO::getUid, uid); + wrapper.orderByDesc(ScoreOrderDO::getId); + switch (OrderStatusEnum.toType(type)) { + case STATUS__1: + break; + //待发货 + case STATUS_0: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_0.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_0.getValue()); + break; + //待收货 + case STATUS_1: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_0.getValue()); + break; + //已完成 + case STATUS_2: + wrapper.eq(ScoreOrderDO::getHavePaid, OrderInfoEnum.PAY_STATUS_1.getValue()) + //.eq(ScoreOrderDO::getHaveDelivered, OrderInfoEnum.STATUS_1.getValue()) + .eq(ScoreOrderDO::getHaveReceived, OrderInfoEnum.STATUS_1.getValue()); + break; + default: + } + + Page pageModel = new Page<>(page, limit); + IPage pageList = orderMapper.selectPage(pageModel, wrapper); + List list = ScoreOrderConvert.INSTANCE.convertList01(pageList.getRecords()); + + return list.stream().map(this::handleOrder).collect(Collectors.toList()); + } + + /** + * 订单详情 + * @param uid 用户id + * @param id + */ + @Override + public AppScoreOrderVO orderDetail(Long uid, Long id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScoreOrderDO::getUid, uid).eq(ScoreOrderDO::getId,id); + ScoreOrderDO scoreOrderDO = this.getOne(wrapper); + + AppScoreOrderVO appScoreOrderVO = ScoreOrderConvert.INSTANCE.convert01(scoreOrderDO); + return this.handleOrder(appScoreOrderVO); + } + + /** + * 收货 + * @param uid + * @param id + */ + @Override + public void take(Long uid, Long id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScoreOrderDO::getUid, uid).eq(ScoreOrderDO::getId,id); + ScoreOrderDO scoreOrderDO = this.getOne(wrapper); + if(scoreOrderDO == null){ + throw exception(ORDER_NOT_EXISTS); + } + scoreOrderDO.setHaveReceived(ShopCommonEnum.DEFAULT_1.getValue()); + this.updateById(scoreOrderDO); + } + + /** + * 处理订单 + * @param order + * @return + */ + private AppScoreOrderVO handleOrder(AppScoreOrderVO order) { + order.setProduct(appScoreProductService.getDetail(order.getProductId())); + if (OrderInfoEnum.PAY_STATUS_1.getValue().equals(order.getHavePaid()) + && OrderInfoEnum.STATUS_0.getValue().equals(order.getHaveDelivered()) + && OrderInfoEnum.STATUS_0.getValue().equals(order.getHaveReceived())) { + order.setStatusText("待发货"); + } else if (OrderInfoEnum.PAY_STATUS_1.getValue().equals(order.getHavePaid()) + && OrderInfoEnum.STATUS_1.getValue().equals(order.getHaveDelivered()) + && OrderInfoEnum.STATUS_0.getValue().equals(order.getHaveReceived())) { + order.setStatusText("待收货"); + } else if (OrderInfoEnum.PAY_STATUS_1.getValue().equals(order.getHavePaid()) + && OrderInfoEnum.STATUS_1.getValue().equals(order.getHaveReceived())) { + order.setStatusText("已完成"); + } + return order; + } + + + + /** + * 减库存增加销量 + * + * @param productId 商品id + * @param number 商品数量 + */ + private void deStockIncSale(Long productId, Integer number) { + + //对库存加锁 + RLock lock = redissonClient.getLock(STOCK_LOCK_KEY); + if (lock.tryLock()) { + try { + scoreProductMapper.decStockIncSales(number,productId); + }catch (Exception ex) { + log.error("[deStockIncSale][执行异常]", ex); + throw exception(new ErrorCode(999999,ex.getMessage())); + } finally { + lock.unlock(); + } + } + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderService.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderService.java new file mode 100644 index 0000000..d6cc760 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderService.java @@ -0,0 +1,77 @@ +package co.yixiang.yshop.module.score.service.scoreorder; + +import java.util.*; +import jakarta.validation.*; +import co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; + +/** + * 积分商城订单 Service 接口 + * + * @author yshop + */ +public interface ScoreOrderService { + + /** + * 创建积分商城订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createOrder(@Valid ScoreOrderCreateReqVO createReqVO); + + /** + * 更新积分商城订单 + * + * @param updateReqVO 更新信息 + */ + void updateOrder(@Valid ScoreOrderUpdateReqVO updateReqVO); + + /** + * 删除积分商城订单 + * + * @param id 编号 + */ + void deleteOrder(Long id); + + /** + * 收货 + * + * @param id 编号 + */ + void takeOrder(Long id); + + /** + * 获得积分商城订单 + * + * @param id 编号 + * @return 积分商城订单 + */ + ScoreOrderRespVO getOrder(Long id); + + /** + * 获得积分商城订单列表 + * + * @param ids 编号 + * @return 积分商城订单列表 + */ + List getOrderList(Collection ids); + + /** + * 获得积分商城订单分页 + * + * @param pageReqVO 分页查询 + * @return 积分商城订单分页 + */ + PageResult getOrderPage(ScoreOrderPageReqVO pageReqVO); + + /** + * 获得积分商城订单列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 积分商城订单列表 + */ + List getOrderList(ScoreOrderExportReqVO exportReqVO); + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderServiceImpl.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderServiceImpl.java new file mode 100644 index 0000000..0a4e4c9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreorder/ScoreOrderServiceImpl.java @@ -0,0 +1,124 @@ +package co.yixiang.yshop.module.score.service.scoreorder; + +import co.yixiang.yshop.framework.common.enums.ShopCommonEnum; +import co.yixiang.yshop.module.member.controller.admin.user.vo.UserRespVO; +import co.yixiang.yshop.module.member.convert.user.UserConvert; +import co.yixiang.yshop.module.member.dal.dataobject.user.MemberUserDO; +import co.yixiang.yshop.module.member.dal.mysql.user.MemberUserMapper; +import co.yixiang.yshop.module.score.convert.scoreproduct.ScoreProductConvert; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import co.yixiang.yshop.module.score.controller.admin.scoreorder.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreorder.ScoreOrderDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; + +import co.yixiang.yshop.module.score.convert.scoreorder.ScoreOrderConvert; +import co.yixiang.yshop.module.score.dal.mysql.scoreorder.ScoreOrderMapper; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.score.enums.ErrorCodeConstants.*; + +/** + * 积分商城订单 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +public class ScoreOrderServiceImpl implements ScoreOrderService { + + @Resource + private ScoreOrderMapper orderMapper; + @Resource + private ScoreProductMapper scoreProductMapper; + @Resource + private MemberUserMapper memberUserMapper; + + @Override + public Long createOrder(ScoreOrderCreateReqVO createReqVO) { + // 插入 + ScoreOrderDO order = ScoreOrderConvert.INSTANCE.convert(createReqVO); + orderMapper.insert(order); + // 返回 + return order.getId(); + } + + @Override + public void updateOrder(ScoreOrderUpdateReqVO updateReqVO) { + // 校验存在 + validateOrderExists(updateReqVO.getId()); + // 更新 + ScoreOrderDO updateObj = ScoreOrderConvert.INSTANCE.convert(updateReqVO); + updateObj.setHaveDelivered(ShopCommonEnum.DEFAULT_1.getValue()); + orderMapper.updateById(updateObj); + } + + @Override + public void deleteOrder(Long id) { + // 校验存在 + validateOrderExists(id); + // 删除 + orderMapper.deleteById(id); + } + + @Override + public void takeOrder(Long id) { + // 校验存在 + ScoreOrderDO scoreOrderDO = orderMapper.selectById(id); + if (scoreOrderDO == null) { + throw exception(ORDER_NOT_EXISTS); + } + scoreOrderDO.setHaveReceived(ShopCommonEnum.DEFAULT_1.getValue()); + orderMapper.updateById(scoreOrderDO); + + } + + private void validateOrderExists(Long id) { + if (orderMapper.selectById(id) == null) { + throw exception(ORDER_NOT_EXISTS); + } + } + + @Override + public ScoreOrderRespVO getOrder(Long id) { + ScoreOrderDO scoreOrderDO = orderMapper.selectById(id); + ScoreOrderRespVO scoreOrderRespVO = ScoreOrderConvert.INSTANCE.convert(scoreOrderDO); + ScoreProductDO scoreProductDO = scoreProductMapper.selectById(scoreOrderRespVO.getProductId()); + scoreOrderRespVO.setScoreProductRespVO(ScoreProductConvert.INSTANCE.convert(scoreProductDO)); + MemberUserDO memberUserDO = memberUserMapper.selectById(scoreOrderRespVO.getUid()); + UserRespVO userRespVO = UserConvert.INSTANCE.convert4(memberUserDO); + scoreOrderRespVO.setUserRespVO(userRespVO); + return scoreOrderRespVO; + } + + @Override + public List getOrderList(Collection ids) { + return orderMapper.selectBatchIds(ids); + } + + @Override + public PageResult getOrderPage(ScoreOrderPageReqVO pageReqVO) { + PageResult pageResult = orderMapper.selectPage(pageReqVO); + PageResult scoreOrderRespVOPageResult = ScoreOrderConvert.INSTANCE.convertPage(pageResult); + for (ScoreOrderRespVO scoreOrderRespVO : scoreOrderRespVOPageResult.getList()) { + ScoreProductDO scoreProductDO = scoreProductMapper.selectById(scoreOrderRespVO.getProductId()); + scoreOrderRespVO.setScoreProductRespVO(ScoreProductConvert.INSTANCE.convert(scoreProductDO)); + MemberUserDO memberUserDO = memberUserMapper.selectById(scoreOrderRespVO.getUid()); + UserRespVO userRespVO = UserConvert.INSTANCE.convert4(memberUserDO); + scoreOrderRespVO.setUserRespVO(userRespVO); + } + return scoreOrderRespVOPageResult; + } + + @Override + public List getOrderList(ScoreOrderExportReqVO exportReqVO) { + return orderMapper.selectList(exportReqVO); + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductService.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductService.java new file mode 100644 index 0000000..67dca74 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductService.java @@ -0,0 +1,32 @@ +package co.yixiang.yshop.module.score.service.scoreproduct; + +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 积分产品 Service 接口 + * + * @author yshop + */ +public interface AppScoreProductService extends IService { + + /** + * 列表 + * @param page page + * @param limit limit + * @return list + */ + List getList(int page, int limit); + + /** + * 详情 + * @param id 产品ID + * @return list + */ + AppScoreProductVO getDetail(Long id); + + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductServiceImpl.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductServiceImpl.java new file mode 100644 index 0000000..bade9aa --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/AppScoreProductServiceImpl.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.module.score.service.scoreproduct; + +import co.yixiang.yshop.module.score.controller.app.product.vo.AppScoreProductVO; +import co.yixiang.yshop.module.score.convert.scoreproduct.ScoreProductConvert; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.util.List; + +/** + * 积分产品 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +public class AppScoreProductServiceImpl extends ServiceImpl implements AppScoreProductService { + + @Resource + private ScoreProductMapper productMapper; + + + /** + * 订单列表 + * @param page page + * @param limit limit + * @return list + */ + @Override + public List getList(int page, int limit) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.orderByDesc(ScoreProductDO::getWeigh); + + + Page pageModel = new Page<>(page, limit); + IPage pageList = productMapper.selectPage(pageModel, wrapper); + List list = ScoreProductConvert.INSTANCE.convertList01(pageList.getRecords()); + + return list; + } + + + /** + * 详情 + * @param id 产品ID + * @return list + */ + @Override + public AppScoreProductVO getDetail(Long id) { + ScoreProductDO scoreProductDO = this.getById(id); + return ScoreProductConvert.INSTANCE.convert01(scoreProductDO); + } +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductService.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductService.java new file mode 100644 index 0000000..0970b5b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductService.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.score.service.scoreproduct; + +import java.util.*; +import jakarta.validation.*; +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; + +/** + * 积分产品 Service 接口 + * + * @author yshop + */ +public interface ScoreProductService { + + /** + * 创建积分产品 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createProduct(@Valid ScoreProductCreateReqVO createReqVO); + + /** + * 更新积分产品 + * + * @param updateReqVO 更新信息 + */ + void updateProduct(@Valid ScoreProductUpdateReqVO updateReqVO); + + /** + * 删除积分产品 + * + * @param id 编号 + */ + void deleteProduct(Long id); + + /** + * 获得积分产品 + * + * @param id 编号 + * @return 积分产品 + */ + ScoreProductDO getProduct(Long id); + + /** + * 获得积分产品列表 + * + * @param ids 编号 + * @return 积分产品列表 + */ + List getProductList(Collection ids); + + /** + * 获得积分产品分页 + * + * @param pageReqVO 分页查询 + * @return 积分产品分页 + */ + PageResult getProductPage(ScoreProductPageReqVO pageReqVO); + + /** + * 获得积分产品列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 积分产品列表 + */ + List getProductList(ScoreProductExportReqVO exportReqVO); + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductServiceImpl.java b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductServiceImpl.java new file mode 100644 index 0000000..57b42d2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/java/co/yixiang/yshop/module/score/service/scoreproduct/ScoreProductServiceImpl.java @@ -0,0 +1,82 @@ +package co.yixiang.yshop.module.score.service.scoreproduct; + +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import co.yixiang.yshop.module.score.controller.admin.scoreproduct.vo.*; +import co.yixiang.yshop.module.score.dal.dataobject.scoreproduct.ScoreProductDO; +import co.yixiang.yshop.framework.common.pojo.PageResult; + +import co.yixiang.yshop.module.score.convert.scoreproduct.ScoreProductConvert; +import co.yixiang.yshop.module.score.dal.mysql.scoreproduct.ScoreProductMapper; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.score.enums.ErrorCodeConstants.*; + +/** + * 积分产品 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +public class ScoreProductServiceImpl implements ScoreProductService { + + @Resource + private ScoreProductMapper productMapper; + + @Override + public Long createProduct(ScoreProductCreateReqVO createReqVO) { + // 插入 + ScoreProductDO product = ScoreProductConvert.INSTANCE.convert(createReqVO); + productMapper.insert(product); + // 返回 + return product.getId(); + } + + @Override + public void updateProduct(ScoreProductUpdateReqVO updateReqVO) { + // 校验存在 + validateProductExists(updateReqVO.getId()); + // 更新 + ScoreProductDO updateObj = ScoreProductConvert.INSTANCE.convert(updateReqVO); + productMapper.updateById(updateObj); + } + + @Override + public void deleteProduct(Long id) { + // 校验存在 + validateProductExists(id); + // 删除 + productMapper.deleteById(id); + } + + private void validateProductExists(Long id) { + if (productMapper.selectById(id) == null) { + throw exception(PRODUCT_NOT_EXISTS); + } + } + + @Override + public ScoreProductDO getProduct(Long id) { + return productMapper.selectById(id); + } + + @Override + public List getProductList(Collection ids) { + return productMapper.selectBatchIds(ids); + } + + @Override + public PageResult getProductPage(ScoreProductPageReqVO pageReqVO) { + return productMapper.selectPage(pageReqVO); + } + + @Override + public List getProductList(ScoreProductExportReqVO exportReqVO) { + return productMapper.selectList(exportReqVO); + } + +} diff --git a/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/resources/mapper/scoreorder/ScoreOrderMapper.xml b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/resources/mapper/scoreorder/ScoreOrderMapper.xml new file mode 100644 index 0000000..3d1662d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-score/yshop-module-score-biz/src/main/resources/mapper/scoreorder/ScoreOrderMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yshop-drink/yshop-module-system/pom.xml b/yshop-drink-boot3/yshop-module-system/pom.xml similarity index 100% rename from yshop-drink/yshop-module-system/pom.xml rename to yshop-drink-boot3/yshop-module-system/pom.xml diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/pom.xml b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/pom.xml new file mode 100644 index 0000000..7ce08ff --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/pom.xml @@ -0,0 +1,33 @@ + + + + co.yixiang.boot + yshop-module-system + ${revision} + + 4.0.0 + yshop-module-system-api + jar + + ${project.artifactId} + + system 模块 API,暴露给其它模块调用 + + + + + co.yixiang.boot + yshop-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java index 8402d5e..d626654 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApi.java @@ -6,7 +6,6 @@ import co.yixiang.yshop.module.system.api.dept.dto.DeptRespDTO; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Set; /** * 部门 API 接口 @@ -46,9 +45,17 @@ public interface DeptApi { * @param ids 部门编号数组 * @return 部门 Map */ - default Map getDeptMap(Set ids) { + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApi.java new file mode 100644 index 0000000..07fddf7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApi.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.api.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.module.system.api.dept.dto.PostRespDTO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 岗位 API 接口 + * + * @author yshop + */ +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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/DeptRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/DeptRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/DeptRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/DeptRespDTO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/PostRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/PostRespDTO.java new file mode 100644 index 0000000..a701e14 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dept/dto/PostRespDTO.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.module.system.api.dept.dto; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import lombok.Data; + +/** + * 岗位 Response DTO + * + * @author yshop + */ +@Data +public class PostRespDTO { + + /** + * 岗位序号 + */ + private Long id; + /** + * 岗位名称 + */ + private String name; + /** + * 岗位编码 + */ + private String code; + /** + * 岗位排序 + */ + private Integer sort; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApi.java new file mode 100644 index 0000000..0ad4f15 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApi.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.system.api.dict; + +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.module.system.api.dict.dto.DictDataRespDTO; + +import java.util.Collection; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; + +/** + * 字典数据 API 接口 + * + * @author yshop + */ +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 value 字典数据值 + * @return 字典标签 + */ + default String getDictDataLabel(String type, Integer value) { + DictDataRespDTO dictData = getDictData(type, String.valueOf(value)); + if (ObjUtil.isNull(dictData)) { + return StrUtil.EMPTY; + } + return dictData.getLabel(); + } + + /** + * 解析获得指定的字典数据,从缓存中 + * + * @param type 字典类型 + * @param label 字典数据标签 + * @return 字典数据 + */ + DictDataRespDTO parseDictData(String type, String label); + + /** + * 获得指定字典类型的字典数据列表 + * + * @param dictType 字典类型 + * @return 字典数据列表 + */ + List getDictDataList(String dictType); + + /** + * 获得字典数据标签列表 + * + * @param dictType 字典类型 + * @return 字典数据标签列表 + */ + default List getDictDataLabelList(String dictType) { + List list = getDictDataList(dictType); + return convertList(list, DictDataRespDTO::getLabel); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/dto/DictDataRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/dto/DictDataRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/dto/DictDataRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/dict/dto/DictDataRespDTO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java similarity index 91% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java index f247cb4..e9c751b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.system.api.logger; import co.yixiang.yshop.module.system.api.logger.dto.LoginLogCreateReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 登录日志的 API 接口 diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApi.java new file mode 100644 index 0000000..9535687 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApi.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.module.system.api.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogRespDTO; +import jakarta.validation.Valid; + +/** + * 操作日志 API 接口 + * + * @author yshop + */ +public interface OperateLogApi { + + /** + * 创建操作日志 + * + * @param createReqDTO 请求 + */ + void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO); + + /** + * 获取指定模块的指定数据的操作日志分页 + * + * @param pageReqVO 请求 + * @return 操作日志分页 + */ + PageResult getOperateLogPage(OperateLogPageReqDTO pageReqVO); + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java similarity index 76% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java index 72af501..a7ff1ce 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/LoginLogCreateReqDTO.java @@ -2,10 +2,10 @@ package co.yixiang.yshop.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; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; /** * 登录日志创建 Request DTO @@ -36,9 +36,9 @@ public class LoginLogCreateReqDTO { private Integer userType; /** * 用户账号 + * + * 不再强制校验 username 非空,因为 Member 社交登录时,此时暂时没有 username(mobile)! */ - @NotBlank(message = "用户账号不能为空") - @Size(max = 30, message = "用户账号长度不能超过30个字符") private String username; /** diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogCreateReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogCreateReqDTO.java new file mode 100644 index 0000000..a4b6961 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogCreateReqDTO.java @@ -0,0 +1,84 @@ +package co.yixiang.yshop.module.system.api.logger.dto; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 系统操作日志 Create Request DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogCreateReqDTO { + + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,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 的用户信息,将性别从男改成女,将姓名从yshop改成源码。 + */ + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogPageReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogPageReqDTO.java new file mode 100644 index 0000000..a8a2976 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogPageReqDTO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.system.api.logger.dto; + +import co.yixiang.yshop.framework.common.pojo.PageParam; +import lombok.Data; + +/** + * 操作日志分页 Request DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogPageReqDTO extends PageParam { + + /** + * 模块类型 + */ + private String type; + /** + * 模块数据编号 + */ + private Long bizId; + + /** + * 用户编号 + */ + private Long userId; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogRespDTO.java new file mode 100644 index 0000000..d309abe --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/logger/dto/OperateLogRespDTO.java @@ -0,0 +1,83 @@ +package co.yixiang.yshop.module.system.api.logger.dto; + +import com.fhs.core.trans.anno.Trans; +import com.fhs.core.trans.constant.TransType; +import com.fhs.core.trans.vo.VO; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 系统操作日志 Resp DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogRespDTO implements VO { + + /** + * 日志编号 + */ + private Long id; + /** + * 链路追踪编号 + */ + private String traceId; + /** + * 用户编号 + */ + @Trans(type = TransType.RPC, targetClassName = "co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO", + fields = "nickname", ref = "userName") + 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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java index 4b1b987..0738815 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.system.api.mail; import co.yixiang.yshop.module.system.api.mail.dto.MailSendSingleToUserReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 邮箱发送 API 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java index ecd8315..431f085 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.module.system.api.mail.dto; import lombok.Data; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java index 153dea0..58b662b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.system.api.notify; import co.yixiang.yshop.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 站内信发送 API 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java index 2b4d214..2a86f8e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.module.system.api.notify.dto; import lombok.Data; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifyTemplateReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifyTemplateReqDTO.java new file mode 100644 index 0000000..1eebdce --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/notify/dto/NotifyTemplateReqDTO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.api.notify.dto; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java similarity index 97% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java index b6eddba..9361a7e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApi.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespD import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * OAuth2.0 Token API 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java index 00d9a29..d886aca 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serializable; import java.util.List; +import java.util.Map; /** * OAuth2.0 访问令牌的校验 Response DTO @@ -21,6 +22,10 @@ public class OAuth2AccessTokenCheckRespDTO implements Serializable { * 用户类型 */ private Integer userType; + /** + * 用户信息 + */ + private Map userInfo; /** * 租户编号 */ diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java index 9459b49..fdc56ac 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.validation.InEnum; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApi.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApi.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApi.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApi.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/dto/DeptDataPermissionRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/dto/DeptDataPermissionRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/dto/DeptDataPermissionRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/permission/dto/DeptDataPermissionRespDTO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java index 7d984ba..ac70e70 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApi.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeSendReqDTO; import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeUseReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 短信验证码 API 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java index 9a55ecf..caa143c 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApi.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.system.api.sms; import co.yixiang.yshop.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 短信发送 API 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java similarity index 88% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java index 3bc3289..6f90210 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java @@ -5,8 +5,8 @@ import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import lombok.Data; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * 短信验证码的发送 Request DTO diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java index d4a259e..9d6671c 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java @@ -5,8 +5,8 @@ import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import lombok.Data; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * 短信验证码的使用 Request DTO diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java similarity index 88% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java index 540fcd0..be446ca 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java @@ -5,8 +5,8 @@ import co.yixiang.yshop.framework.common.validation.Mobile; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; import lombok.Data; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * 短信验证码的校验 Request DTO diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java index d3492a0..14d71b7 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.api.sms.dto.send; import co.yixiang.yshop.framework.common.validation.Mobile; import lombok.Data; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotEmpty; import java.util.Map; /** diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApi.java new file mode 100644 index 0000000..8a43ce4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApi.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.system.api.social; + +import co.yixiang.yshop.module.system.api.social.dto.SocialWxJsapiSignatureRespDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; + +/** + * 社交应用的 API 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApi.java new file mode 100644 index 0000000..1140074 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApi.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.system.api.social; + +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserUnbindReqDTO; + +import jakarta.validation.Valid; + +/** + * 社交用户的 API 接口 + * + * @author yshop + */ +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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java index 770a4ac..9a8f4a9 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserBindReqDTO.java @@ -7,8 +7,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * 取消绑定社交用户 Request DTO @@ -37,7 +37,7 @@ public class SocialUserBindReqDTO { */ @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") - private Integer type; + private Integer socialType; /** * 授权码 */ diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserRespDTO.java new file mode 100644 index 0000000..a9d247b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserRespDTO.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.system.api.social.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 社交用户 Response DTO + * + * @author yshop + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SocialUserRespDTO { + + /** + * 社交用户的 openid + */ + private String openid; + /** + * 社交用户的昵称 + */ + private String nickname; + /** + * 社交用户的头像 + */ + private String avatar; + + /** + * 关联的用户编号 + */ + private Long userId; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserUnbindReqDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserUnbindReqDTO.java new file mode 100644 index 0000000..6b88202 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialUserUnbindReqDTO.java @@ -0,0 +1,48 @@ +package co.yixiang.yshop.module.system.api.social.dto; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.NoArgsConstructor; + +/** + * 社交绑定 Request DTO,使用 code 授权码 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java new file mode 100644 index 0000000..f448c44 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.api.social.dto; + +import lombok.Data; + +/** + * 微信公众号 JSAPI 签名 Response DTO + * + * @author yshop + */ +@Data +public class SocialWxJsapiSignatureRespDTO { + + /** + * 微信公众号的 appId + */ + private String appId; + /** + * 匿名串 + */ + private String nonceStr; + /** + * 时间戳 + */ + private Long timestamp; + /** + * URL + */ + private String url; + /** + * 签名 + */ + private String signature; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java new file mode 100644 index 0000000..fdfc0a2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.system.api.social.dto; + +import lombok.Data; + +/** + * 微信小程序的手机信息 Response DTO + * + * @author yshop + */ +@Data +public class SocialWxPhoneNumberInfoRespDTO { + + /** + * 用户绑定的手机号(国外手机号会有区号) + */ + private String phoneNumber; + + /** + * 没有区号的手机号 + */ + private String purePhoneNumber; + /** + * 区号 + */ + private String countryCode; + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApi.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApi.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApi.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApi.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApi.java new file mode 100644 index 0000000..0b1ad24 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApi.java @@ -0,0 +1,89 @@ +package co.yixiang.yshop.module.system.api.user; + +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/dto/AdminUserRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/dto/AdminUserRespDTO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/dto/AdminUserRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/api/user/dto/AdminUserRespDTO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/DictTypeConstants.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/DictTypeConstants.java new file mode 100644 index 0000000..f22c1d9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/DictTypeConstants.java @@ -0,0 +1,27 @@ +package co.yixiang.yshop.module.system.enums; + +/** + * System 字典类型的枚举类 + * + * @author yshop + */ +public interface DictTypeConstants { + + String USER_TYPE = "user_type"; // 用户类型 + String COMMON_STATUS = "common_status"; // 系统状态 + + // ========== SYSTEM 模块 ========== + + String USER_SEX = "system_user_sex"; // 用户性别 + + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/ErrorCodeConstants.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..f4089bd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/ErrorCodeConstants.java @@ -0,0 +1,166 @@ +package co.yixiang.yshop.module.system.enums; + +import co.yixiang.yshop.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-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_202, "社交客户端已存在配置"); + + // ========== 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/LogRecordConstants.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/LogRecordConstants.java new file mode 100644 index 0000000..9b14474 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/LogRecordConstants.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.enums; + +/** + * System 操作日志枚举 + * 目的:统一管理,也减少 Service 里各种“复杂”字符串 + * + * @author yshop + */ +public interface LogRecordConstants { + + // ======================= SYSTEM_USER 用户 ======================= + + String SYSTEM_USER_TYPE = "SYSTEM 用户"; + String SYSTEM_USER_CREATE_SUB_TYPE = "创建用户"; + String SYSTEM_USER_CREATE_SUCCESS = "创建了用户【{{#user.nickname}}】"; + String SYSTEM_USER_UPDATE_SUB_TYPE = "更新用户"; + String SYSTEM_USER_UPDATE_SUCCESS = "更新了用户【{{#user.nickname}}】: {_DIFF{#updateReqVO}}"; + String SYSTEM_USER_DELETE_SUB_TYPE = "删除用户"; + String SYSTEM_USER_DELETE_SUCCESS = "删除了用户【{{#user.nickname}}】"; + String SYSTEM_USER_UPDATE_PASSWORD_SUB_TYPE = "重置用户密码"; + String SYSTEM_USER_UPDATE_PASSWORD_SUCCESS = "将用户【{{#user.nickname}}】的密码从【{{#user.password}}】重置为【{{#newPassword}}】"; + + // ======================= SYSTEM_ROLE 角色 ======================= + + String SYSTEM_ROLE_TYPE = "SYSTEM 角色"; + String SYSTEM_ROLE_CREATE_SUB_TYPE = "创建角色"; + String SYSTEM_ROLE_CREATE_SUCCESS = "创建了角色【{{#role.name}}】"; + String SYSTEM_ROLE_UPDATE_SUB_TYPE = "更新角色"; + String SYSTEM_ROLE_UPDATE_SUCCESS = "更新了角色【{{#role.name}}】: {_DIFF{#updateReqVO}}"; + String SYSTEM_ROLE_DELETE_SUB_TYPE = "删除角色"; + String SYSTEM_ROLE_DELETE_SUCCESS = "删除了角色【{{#role.name}}】"; + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java index 59f2200..d3003a3 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/common/SexEnum.java @@ -11,13 +11,12 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum SexEnum { - /** 男 */ MALE(1), /** 女 */ FEMALE(2), /* 未知 */ - UNKNOWN(3); + UNKNOWN(0); /** * 性别 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginLogTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginLogTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginLogTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginLogTypeEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginResultEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginResultEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginResultEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/logger/LoginResultEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/mail/MailSendStatusEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/mail/MailSendStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/mail/MailSendStatusEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/mail/MailSendStatusEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notice/NoticeTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notice/NoticeTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notice/NoticeTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notice/NoticeTypeEnum.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notify/NotifyTemplateTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notify/NotifyTemplateTypeEnum.java new file mode 100644 index 0000000..ca12e9f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/notify/NotifyTemplateTypeEnum.java @@ -0,0 +1,26 @@ +package co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2ClientConstants.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2ClientConstants.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2ClientConstants.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2ClientConstants.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2GrantTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2GrantTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2GrantTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/oauth2/OAuth2GrantTypeEnum.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/DataScopeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/DataScopeEnum.java new file mode 100644 index 0000000..78840b5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/DataScopeEnum.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.module.system.enums.permission; + +import co.yixiang.yshop.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 数据范围枚举类 + * + * 用于实现数据级别的权限 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/MenuTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/MenuTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/MenuTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/MenuTypeEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java similarity index 90% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java index 97558c0..528124b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleCodeEnum.java @@ -13,6 +13,7 @@ public enum RoleCodeEnum { SUPER_ADMIN("super_admin", "超级管理员"), TENANT_ADMIN("tenant_admin", "租户管理员"), + CRM_ADMIN("crm_admin", "CRM 管理员"); // CRM 系统专用 ; /** diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/permission/RoleTypeEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsReceiveStatusEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsReceiveStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsReceiveStatusEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsReceiveStatusEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java similarity index 81% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java index d7b21b0..274d17d 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSceneEnum.java @@ -17,8 +17,9 @@ import java.util.Arrays; public enum SmsSceneEnum implements IntArrayValuable { MEMBER_LOGIN(1, "user-sms-login", "会员用户 - 手机号登陆"), - MEMBER_UPDATE_MOBILE(2, "user-sms-reset-password", "会员用户 - 修改手机"), - MEMBER_FORGET_PASSWORD(3, "user-sms-update-mobile", "会员用户 - 忘记密码"), + 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", "后台用户 - 手机号登录"); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSendStatusEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSendStatusEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSendStatusEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsSendStatusEnum.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsTemplateTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsTemplateTypeEnum.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsTemplateTypeEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/sms/SmsTemplateTypeEnum.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/social/SocialTypeEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/social/SocialTypeEnum.java new file mode 100644 index 0000000..56488e3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-api/src/main/java/co/yixiang/yshop/module/system/enums/social/SocialTypeEnum.java @@ -0,0 +1,78 @@ +package co.yixiang.yshop.module.system.enums.social; + +import cn.hutool.core.util.ArrayUtil; +import co.yixiang.yshop.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 社交平台的类型枚举 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/pom.xml b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/pom.xml new file mode 100644 index 0000000..fa9c6be --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/pom.xml @@ -0,0 +1,144 @@ + + + + co.yixiang.boot + yshop-module-system + ${revision} + + 4.0.0 + yshop-module-system-biz + jar + + ${project.artifactId} + + system 模块下,我们放通用业务,支撑上层的核心业务。 + 例如说:用户、部门、权限、数据字典等等 + + + + + co.yixiang.boot + yshop-module-system-api + ${revision} + + + co.yixiang.boot + yshop-module-infra-api + ${revision} + + + + co.yixiang.boot + yshop-module-store-biz + ${revision} + + + + + co.yixiang.boot + yshop-spring-boot-starter-biz-data-permission + + + co.yixiang.boot + yshop-spring-boot-starter-biz-tenant + + + co.yixiang.boot + yshop-spring-boot-starter-biz-ip + + + + + co.yixiang.boot + yshop-spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-validation + + + + + co.yixiang.boot + yshop-spring-boot-starter-mybatis + + + + co.yixiang.boot + yshop-spring-boot-starter-redis + + + + + co.yixiang.boot + yshop-spring-boot-starter-job + + + + + co.yixiang.boot + yshop-spring-boot-starter-mq + + + + + co.yixiang.boot + yshop-spring-boot-starter-test + test + + + + + co.yixiang.boot + yshop-spring-boot-starter-excel + + + + 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.xingyuv + spring-boot-starter-captcha-plus + + + + org.dromara.hutool + hutool-extra + + + + + diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApiImpl.java new file mode 100644 index 0000000..9a09752 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/DeptApiImpl.java @@ -0,0 +1,48 @@ +package co.yixiang.yshop.module.system.api.dept; + +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.dept.dto.DeptRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import jakarta.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * 部门 API 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApiImpl.java new file mode 100644 index 0000000..14774e5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dept/PostApiImpl.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.system.api.dept; + +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.dept.dto.PostRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; +import co.yixiang.yshop.module.system.service.dept.PostService; +import org.springframework.stereotype.Service; + +import jakarta.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * 岗位 API 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApiImpl.java new file mode 100644 index 0000000..d05cccb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/dict/DictDataApiImpl.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.system.api.dict; + +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.dict.dto.DictDataRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; +import co.yixiang.yshop.module.system.service.dict.DictDataService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; + +/** + * 字典数据 API 实现类 + * + * @author yshop + */ +@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); + } + + @Override + public List getDictDataList(String dictType) { + List list = dictDataService.getDictDataListByDictType(dictType); + return BeanUtils.toBean(list, DictDataRespDTO.class); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java similarity index 94% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java index 728511d..4d9eb8b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/LoginLogApiImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.system.service.logger.LoginLogService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 登录日志的 API 实现类 diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApiImpl.java new file mode 100644 index 0000000..b62fa76 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/logger/OperateLogApiImpl.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.system.api.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; +import co.yixiang.yshop.module.system.service.logger.OperateLogService; +import com.fhs.core.trans.anno.TransMethodResult; +import jakarta.annotation.Resource; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +/** + * 操作日志 API 实现类 + * + * @author yshop + */ +@Service +@Validated +public class OperateLogApiImpl implements OperateLogApi { + + @Resource + private OperateLogService operateLogService; + + @Override + @Async + public void createOperateLog(OperateLogCreateReqDTO createReqDTO) { + operateLogService.createOperateLog(createReqDTO); + } + + @Override + @TransMethodResult + public PageResult getOperateLogPage(OperateLogPageReqDTO pageReqVO) { + PageResult operateLogPage = operateLogService.getOperateLogPage(pageReqVO); + return BeanUtils.toBean(operateLogPage, OperateLogRespDTO.class); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java index 1fde619..79c1617 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/mail/MailSendApiImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.system.service.mail.MailSendService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 邮件发送 API 实现类 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java index 188ea2a..d7dc74d 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/notify/NotifyMessageSendApiImpl.java @@ -1,11 +1,10 @@ package co.yixiang.yshop.module.system.api.notify; import co.yixiang.yshop.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; -import co.yixiang.yshop.module.system.service.notify.NotifyMessageService; import co.yixiang.yshop.module.system.service.notify.NotifySendService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 站内信发送 API 实现类 diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApiImpl.java new file mode 100644 index 0000000..4a02980 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/oauth2/OAuth2TokenApiImpl.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.module.system.api.oauth2; + +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; +import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; +import co.yixiang.yshop.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenService; +import org.springframework.stereotype.Service; + +import jakarta.annotation.Resource; + +/** + * OAuth2.0 Token API 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java similarity index 91% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java index 6987e4a..42d231f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/PermissionApiImpl.java @@ -4,7 +4,7 @@ import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespD import co.yixiang.yshop.module.system.service.permission.PermissionService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; import java.util.Set; @@ -21,7 +21,7 @@ public class PermissionApiImpl implements PermissionApi { @Override public Set getUserRoleIdListByRoleIds(Collection roleIds) { - return permissionService.getUserRoleIdListByRoleIds(roleIds); + return permissionService.getUserRoleIdListByRoleId(roleIds); } @Override diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java index 105c663..7ecc749 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/permission/RoleApiImpl.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.api.permission; import co.yixiang.yshop.module.system.service.permission.RoleService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; /** diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java index d7d628c..715d05f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsCodeApiImpl.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.system.service.sms.SmsCodeService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 短信验证码 API 实现类 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java index 56613fc..7cfe16b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/sms/SmsSendApiImpl.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.system.service.sms.SmsSendService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 短信发送 API 接口 diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApiImpl.java new file mode 100644 index 0000000..82bf510 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialClientApiImpl.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.module.system.api.social; + +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.social.dto.SocialWxJsapiSignatureRespDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; +import co.yixiang.yshop.module.system.service.social.SocialClientService; +import me.chanjar.weixin.common.bean.WxJsapiSignature; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; + +/** + * 社交应用的 API 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApiImpl.java new file mode 100644 index 0000000..759e025 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/social/SocialUserApiImpl.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.module.system.api.social; + +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserUnbindReqDTO; +import co.yixiang.yshop.module.system.service.social.SocialUserService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; + +/** + * 社交用户的 API 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java similarity index 94% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java index 7d97922..3be3f5e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/tenant/TenantApiImpl.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.api.tenant; import co.yixiang.yshop.module.system.service.tenant.TenantService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; /** diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApiImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApiImpl.java new file mode 100644 index 0000000..62b5441 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/api/user/AdminUserApiImpl.java @@ -0,0 +1,91 @@ +package co.yixiang.yshop.module.system.api.user; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.user.dto.AdminUserRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import co.yixiang.yshop.module.system.service.user.AdminUserService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; + +/** + * Admin 用户 API 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/AuthController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/AuthController.java new file mode 100644 index 0000000..5c9a3ff --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/AuthController.java @@ -0,0 +1,157 @@ +package co.yixiang.yshop.module.system.controller.admin.auth; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.security.config.SecurityProperties; +import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; +import co.yixiang.yshop.module.system.controller.admin.auth.vo.*; +import co.yixiang.yshop.module.system.convert.auth.AuthConvert; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.enums.logger.LoginLogTypeEnum; +import co.yixiang.yshop.module.system.service.auth.AdminAuthService; +import co.yixiang.yshop.module.system.service.permission.MenuService; +import co.yixiang.yshop.module.system.service.permission.PermissionService; +import co.yixiang.yshop.module.system.service.permission.RoleService; +import co.yixiang.yshop.module.system.service.social.SocialClientService; +import co.yixiang.yshop.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 lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.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; + + @PostMapping("/login") + @PermitAll + @Operation(summary = "使用账号密码登录") + public CommonResult login(@RequestBody @Valid AuthLoginReqVO reqVO) { + return success(authService.login(reqVO)); + } + + @PostMapping("/logout") + @PermitAll + @Operation(summary = "登出系统") + public CommonResult logout(HttpServletRequest request) { + String token = SecurityFrameworkUtils.obtainAuthorization(request, + securityProperties.getTokenHeader(), securityProperties.getTokenParameter()); + if (StrUtil.isNotBlank(token)) { + authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType()); + } + return success(true); + } + + @PostMapping("/refresh-token") + @PermitAll + @Operation(summary = "刷新令牌") + @Parameter(name = "refreshToken", description = "刷新令牌", required = true) + public CommonResult refreshToken(@RequestParam("refreshToken") String refreshToken) { + return success(authService.refreshToken(refreshToken)); + } + + @GetMapping("/get-permission-info") + @Operation(summary = "获取登录用户的权限信息") + public CommonResult getPermissionInfo() { + // 1.1 获得用户信息 + AdminUserDO user = userService.getUser(getLoginUserId()); + if (user == null) { + return success(null); + } + + // 1.2 获得角色列表 + Set roleIds = permissionService.getUserRoleIdListByUserId(getLoginUserId()); + if (CollUtil.isEmpty(roleIds)) { + return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList())); + } + 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 = menuService.getMenuList(menuIds); + menuList.removeIf(menu -> !CommonStatusEnum.ENABLE.getStatus().equals(menu.getStatus())); // 移除禁用的菜单 + + // 2. 拼接结果返回 + return success(AuthConvert.INSTANCE.convert(user, roles, menuList)); + } + + // ========== 短信登录相关 ========== + + @PostMapping("/sms-login") + @PermitAll + @Operation(summary = "使用短信验证码登录") + public CommonResult smsLogin(@RequestBody @Valid AuthSmsLoginReqVO reqVO) { + return success(authService.smsLogin(reqVO)); + } + + @PostMapping("/send-sms-code") + @PermitAll + @Operation(summary = "发送手机验证码") + public CommonResult sendLoginSmsCode(@RequestBody @Valid AuthSmsSendReqVO reqVO) { + authService.sendSmsCode(reqVO); + return success(true); + } + + // ========== 社交登录相关 ========== + + @GetMapping("/social-auth-redirect") + @PermitAll + @Operation(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(summary = "社交快捷登录,使用 code 授权码", description = "适合未登录的用户,但是社交账号已绑定用户") + public CommonResult socialQuickLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) { + return success(authService.socialLogin(reqVO)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginReqVO.java new file mode 100644 index 0000000..8b2e4a5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginReqVO.java @@ -0,0 +1,69 @@ +package co.yixiang.yshop.module.system.controller.admin.auth.vo; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.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 jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; + +@Schema(description = "管理后台 - 账号密码登录 Request VO,如果登录并绑定社交用户,需要传递 social 开头的参数") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthLoginReqVO { + + @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshopyuanma") + @NotEmpty(message = "登录账号不能为空") + @Length(min = 4, max = 16, message = "账号长度为 4-16 位") + @Pattern(regexp = "^[A-Za-z0-9]+$", 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginRespVO.java new file mode 100644 index 0000000..0088124 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthLoginRespVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthMenuRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthMenuRespVO.java new file mode 100644 index 0000000..1b4f7f3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthMenuRespVO.java @@ -0,0 +1,53 @@ +package co.yixiang.yshop.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 = "yshop") + private Long id; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java new file mode 100644 index 0000000..d525f90 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -0,0 +1,98 @@ +package co.yixiang.yshop.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.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 Set 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 = "yshop") + private String nickname; + + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.yixiang.co/xx.jpg") + private String avatar; + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long deptId; + + private Long shopId; + + } + + @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO") + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class MenuVO { + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + private Long id; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java new file mode 100644 index 0000000..66bf319 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.system.controller.admin.auth.vo; + +import co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 短信验证码的登录 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthSmsLoginReqVO { + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshopyuanma") + @NotEmpty(message = "手机号不能为空") + @Mobile + private String mobile; + + @Schema(description = "短信验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "验证码不能为空") + private String code; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java new file mode 100644 index 0000000..2b5d027 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java @@ -0,0 +1,32 @@ +package co.yixiang.yshop.module.system.controller.admin.auth.vo; + +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.framework.common.validation.Mobile; +import co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 发送手机验证码 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthSmsSendReqVO { + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshopyuanma") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java new file mode 100644 index 0000000..1022811 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.controller.admin.auth.vo; + +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java index cc778b9..4c7a9cc 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/captcha/CaptchaController.java @@ -2,7 +2,6 @@ package co.yixiang.yshop.module.system.controller.admin.captcha; import cn.hutool.core.util.StrUtil; import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; -import co.yixiang.yshop.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; @@ -13,15 +12,10 @@ 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; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; -/** - * 验证码 - * - * @author yshop - */ @Tag(name = "管理后台 - 验证码") @RestController("adminCaptchaController") @RequestMapping("/system/captcha") @@ -33,7 +27,6 @@ public class CaptchaController { @PostMapping({"/get"}) @Operation(summary = "获得验证码") @PermitAll - @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) { assert request.getRemoteHost() != null; data.setBrowserInfo(getRemoteId(request)); @@ -43,7 +36,6 @@ public class CaptchaController { @PostMapping("/check") @Operation(summary = "校验验证码") @PermitAll - @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) { data.setBrowserInfo(getRemoteId(request)); return captchaService.check(data); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/DeptController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/DeptController.java new file mode 100644 index 0000000..5ed16f8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/DeptController.java @@ -0,0 +1,84 @@ +package co.yixiang.yshop.module.system.controller.admin.dept; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptRespVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 部门") +@RestController +@RequestMapping("/system/dept") +@Validated +public class DeptController { + + @Resource + private DeptService deptService; + + @PostMapping("create") + @Operation(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(summary = "更新部门") + @PreAuthorize("@ss.hasPermission('system:dept:update')") + public CommonResult updateDept(@Valid @RequestBody DeptSaveReqVO updateReqVO) { + deptService.updateDept(updateReqVO); + return success(true); + } + + @DeleteMapping("delete") + @Operation(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(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(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(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/PostController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/PostController.java new file mode 100644 index 0000000..97bbee2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/PostController.java @@ -0,0 +1,106 @@ +package co.yixiang.yshop.module.system.controller.admin.dept; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostRespVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 岗位") +@RestController +@RequestMapping("/system/post") +@Validated +public class PostController { + + @Resource + private PostService postService; + + @PostMapping("/create") + @Operation(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(summary = "修改岗位") + @PreAuthorize("@ss.hasPermission('system:post:update')") + public CommonResult updatePost(@Valid @RequestBody PostSaveReqVO updateReqVO) { + postService.updatePost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除岗位") + @PreAuthorize("@ss.hasPermission('system:post:delete')") + public CommonResult deletePost(@RequestParam("id") Long id) { + postService.deletePost(id); + return success(true); + } + + @GetMapping(value = "/get") + @Operation(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(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(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(summary = "岗位管理") + @PreAuthorize("@ss.hasPermission('system:post:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java new file mode 100644 index 0000000..85e92af --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptRespVO.java new file mode 100644 index 0000000..c5022a7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptRespVO.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.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 = "yshop") + 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 = "yshop@yixiang.co") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java new file mode 100644 index 0000000..2fd4a37 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.module.system.controller.admin.dept.vo.dept; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop") + @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 = "yshop@yixiang.co") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java new file mode 100644 index 0000000..ead29c4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + + @Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostPageReqVO.java new file mode 100644 index 0000000..3018dfa --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostPageReqVO.java @@ -0,0 +1,22 @@ +package co.yixiang.yshop.module.system.controller.admin.dept.vo.post; + +import co.yixiang.yshop.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 = "yshop") + private String code; + + @Schema(description = "岗位名称,模糊匹配", example = "yshop") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostRespVO.java new file mode 100644 index 0000000..70c1698 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostRespVO.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.module.system.controller.admin.dept.vo.post; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java new file mode 100644 index 0000000..cdb7942 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.module.system.controller.admin.dept.vo.post; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java new file mode 100644 index 0000000..f284e1d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictDataController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictDataController.java new file mode 100644 index 0000000..6988d8b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictDataController.java @@ -0,0 +1,104 @@ +package co.yixiang.yshop.module.system.controller.admin.dict; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataRespVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 字典数据") +@RestController +@RequestMapping("/system/dict-data") +@Validated +public class DictDataController { + + @Resource + private DictDataService dictDataService; + + @PostMapping("/create") + @Operation(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(summary = "修改字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictData(@Valid @RequestBody DictDataSaveReqVO updateReqVO) { + dictDataService.updateDictData(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(summary = "获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地") + // 无需添加权限认证,因为前端全局都需要 + public CommonResult> getSimpleDictDataList() { + List list = dictDataService.getDictDataList( + CommonStatusEnum.ENABLE.getStatus(), null); + return success(BeanUtils.toBean(list, DictDataSimpleRespVO.class)); + } + + @GetMapping("/page") + @Operation(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(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(summary = "导出字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictTypeController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictTypeController.java new file mode 100644 index 0000000..a9e0271 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/DictTypeController.java @@ -0,0 +1,102 @@ +package co.yixiang.yshop.module.system.controller.admin.dict; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeRespVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 字典类型") +@RestController +@RequestMapping("/system/dict-type") +@Validated +public class DictTypeController { + + @Resource + private DictTypeService dictTypeService; + + @PostMapping("/create") + @Operation(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(summary = "修改字典类型") + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictType(@Valid @RequestBody DictTypeSaveReqVO updateReqVO) { + dictTypeService.updateDictType(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项") + // 无需添加权限认证,因为前端全局都需要 + public CommonResult> getSimpleDictTypeList() { + List list = dictTypeService.getDictTypeList(); + return success(BeanUtils.toBean(list, DictTypeSimpleRespVO.class)); + } + + @Operation(summary = "导出数据类型") + @GetMapping("/export") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java new file mode 100644 index 0000000..8e1b78d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.module.system.controller.admin.dict.vo.data; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import jakarta.validation.constraints.Size; + +@Schema(description = "管理后台 - 字典类型分页列表 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class DictDataPageReqVO extends PageParam { + + @Schema(description = "字典标签", example = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataRespVO.java new file mode 100644 index 0000000..a3c1280 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataRespVO.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.system.controller.admin.dict.vo.data; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @ExcelProperty("字典标签") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "yixiang.co") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java new file mode 100644 index 0000000..0d2ee12 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java @@ -0,0 +1,52 @@ +package co.yixiang.yshop.module.system.controller.admin.dict.vo.data; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop") + @NotBlank(message = "字典标签不能为空") + @Size(max = 100, message = "字典标签长度不能超过100个字符") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "yixiang.co") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java new file mode 100644 index 0000000..fa4d0a7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java similarity index 75% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java index cf2a30e..bb2a862 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Size; import java.time.LocalDateTime; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -16,14 +16,14 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @EqualsAndHashCode(callSuper = true) public class DictTypePageReqVO extends PageParam { - @Schema(description = "字典类型名称,模糊匹配", example = "yshop") + @Schema(description = "字典类型名称,模糊匹配", example = "yshop") private String name; - @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex") + @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex") @Size(max = 100, message = "字典类型类型长度不能超过100个字符") private String type; - @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") private Integer status; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java new file mode 100644 index 0000000..6acbcf9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.system.controller.admin.dict.vo.type; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java new file mode 100644 index 0000000..6dc6da1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.controller.admin.dict.vo.type; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java new file mode 100644 index 0000000..8c431a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + private String type; + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java index ff8a507..a1fa20d 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/AreaController.java @@ -2,11 +2,11 @@ package co.yixiang.yshop.module.system.controller.admin.ip; import cn.hutool.core.lang.Assert; import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.ip.core.Area; import co.yixiang.yshop.framework.ip.core.utils.AreaUtils; import co.yixiang.yshop.framework.ip.core.utils.IPUtils; import co.yixiang.yshop.module.system.controller.admin.ip.vo.AreaNodeRespVO; -import co.yixiang.yshop.module.system.convert.ip.AreaConvert; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -31,7 +31,7 @@ public class AreaController { public CommonResult> getAreaTree() { Area area = AreaUtils.getArea(Area.ID_CHINA); Assert.notNull(area, "获取不到中国"); - return success(AreaConvert.INSTANCE.convertList(area.getChildren())); + return success(BeanUtils.toBean(area.getChildren(), AreaNodeRespVO.class)); } @GetMapping("/get-by-ip") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/vo/AreaNodeRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/vo/AreaNodeRespVO.java new file mode 100644 index 0000000..34330e8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/ip/vo/AreaNodeRespVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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; + + /** + * 子节点 + */ + private List children; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/LoginLogController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/LoginLogController.java new file mode 100644 index 0000000..b3e322c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/LoginLogController.java @@ -0,0 +1,59 @@ +package co.yixiang.yshop.module.system.controller.admin.logger; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.LoginLogDO; +import co.yixiang.yshop.module.system.service.logger.LoginLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 登录日志") +@RestController +@RequestMapping("/system/login-log") +@Validated +public class LoginLogController { + + @Resource + private LoginLogService loginLogService; + + @GetMapping("/page") + @Operation(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(summary = "导出登录日志 Excel") + @PreAuthorize("@ss.hasPermission('system:login-log:export')") + @ApiAccessLog(operateType = 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/OperateLogController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/OperateLogController.java new file mode 100644 index 0000000..e6e4111 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/OperateLogController.java @@ -0,0 +1,59 @@ +package co.yixiang.yshop.module.system.controller.admin.logger; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.framework.translate.core.TranslateUtils; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; +import co.yixiang.yshop.module.system.service.logger.OperateLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 操作日志") +@RestController +@RequestMapping("/system/operate-log") +@Validated +public class OperateLogController { + + @Resource + private OperateLogService operateLogService; + + @GetMapping("/page") + @Operation(summary = "查看操作日志分页列表") + @PreAuthorize("@ss.hasPermission('system:operate-log:query')") + public CommonResult> pageOperateLog(@Valid OperateLogPageReqVO pageReqVO) { + PageResult pageResult = operateLogService.getOperateLogPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, OperateLogRespVO.class)); + } + + @Operation(summary = "导出操作日志") + @GetMapping("/export") + @PreAuthorize("@ss.hasPermission('system:operate-log:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportOperateLog(HttpServletResponse response, @Valid OperateLogPageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = operateLogService.getOperateLogPage(exportReqVO).getList(); + ExcelUtils.write(response, "操作日志.xls", "数据列表", OperateLogRespVO.class, + TranslateUtils.translate(BeanUtils.toBean(list, OperateLogRespVO.class))); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java similarity index 86% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java index 7c26387..71a5c4b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java @@ -15,10 +15,10 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @EqualsAndHashCode(callSuper = true) public class LoginLogPageReqVO extends PageParam { - @Schema(description = "用户 IP,模拟匹配", example = "127.0.0.1") + @Schema(description = "用户 IP,模拟匹配", example = "127.0.0.1") private String userIp; - @Schema(description = "用户账号,模拟匹配", example = "yshop") + @Schema(description = "用户账号,模拟匹配", example = "yshop") private String username; @Schema(description = "操作状态", example = "true") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java new file mode 100644 index 0000000..1e6958c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java @@ -0,0 +1,57 @@ +package co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java new file mode 100644 index 0000000..99b4ef7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog; + +import co.yixiang.yshop.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 co.yixiang.yshop.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 = "yshop") + private Long userId; + + @Schema(description = "操作模块业务编号", example = "1") + private Long bizId; + + @Schema(description = "操作模块,模拟匹配", example = "订单") + private String type; + + @Schema(description = "操作名,模拟匹配", example = "创建订单") + private String subType; + + @Schema(description = "操作明细,模拟匹配", example = "修改编号为 1 的用户信息") + private String action; + + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java new file mode 100644 index 0000000..82cadae --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java @@ -0,0 +1,68 @@ +package co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog; + +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fhs.core.trans.anno.Trans; +import com.fhs.core.trans.constant.TransType; +import com.fhs.core.trans.vo.VO; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 操作日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class OperateLogRespVO implements VO { + + @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") + @Trans(type = TransType.SIMPLE, target = AdminUserDO.class, fields = "nickname", ref = "userName") + private Long userId; + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @ExcelProperty("操作人") + private String userName; + + @Schema(description = "操作模块类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单") + @ExcelProperty("操作模块类型") + private String type; + + @Schema(description = "操作名", requiredMode = Schema.RequiredMode.REQUIRED, example = "创建订单") + @ExcelProperty("操作名") + private String subType; + + @Schema(description = "操作模块业务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("操作模块业务编号") + private Long bizId; + + @Schema(description = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从yshop改成源码。") + private String action; + + @Schema(description = "拓展字段", example = "{'orderId': 1}") + private String extra; + + @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 = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailAccountController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailAccountController.java new file mode 100644 index 0000000..5a40f0d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailAccountController.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.system.controller.admin.mail; + + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountRespVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.mail.MailAccountDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 邮箱账号") +@RestController +@RequestMapping("/system/mail-account") +public class MailAccountController { + + @Resource + private MailAccountService mailAccountService; + + @PostMapping("/create") + @Operation(summary = "创建邮箱账号") + @PreAuthorize("@ss.hasPermission('system:mail-account:create')") + public CommonResult createMailAccount(@Valid @RequestBody MailAccountSaveReqVO createReqVO) { + return success(mailAccountService.createMailAccount(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "修改邮箱账号") + @PreAuthorize("@ss.hasPermission('system:mail-account:update')") + public CommonResult updateMailAccount(@Valid @RequestBody MailAccountSaveReqVO updateReqVO) { + mailAccountService.updateMailAccount(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(summary = "获得邮箱账号") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:mail-account:query')") + public CommonResult getMailAccount(@RequestParam("id") Long id) { + MailAccountDO account = mailAccountService.getMailAccount(id); + return success(BeanUtils.toBean(account, MailAccountRespVO.class)); + } + + @GetMapping("/page") + @Operation(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(summary = "获得邮箱账号精简列表") + public CommonResult> getSimpleMailAccountList() { + List list = mailAccountService.getMailAccountList(); + return success(BeanUtils.toBean(list, MailAccountSimpleRespVO.class)); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java index a0053d8..d24cae3 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailLogController.java @@ -2,9 +2,9 @@ package co.yixiang.yshop.module.system.controller.admin.mail; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; import co.yixiang.yshop.module.system.controller.admin.mail.vo.log.MailLogRespVO; -import co.yixiang.yshop.module.system.convert.mail.MailLogConvert; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailLogDO; import co.yixiang.yshop.module.system.service.mail.MailLogService; import io.swagger.v3.oas.annotations.Operation; @@ -16,8 +16,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -34,7 +34,7 @@ public class MailLogController { @PreAuthorize("@ss.hasPermission('system:mail-log:query')") public CommonResult> getMailLogPage(@Valid MailLogPageReqVO pageVO) { PageResult pageResult = mailLogService.getMailLogPage(pageVO); - return success(MailLogConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, MailLogRespVO.class)); } @GetMapping("/get") @@ -42,8 +42,8 @@ public class MailLogController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:mail-log:query')") public CommonResult getMailTemplate(@RequestParam("id") Long id) { - MailLogDO mailLogDO = mailLogService.getMailLog(id); - return success(MailLogConvert.INSTANCE.convert(mailLogDO)); + MailLogDO log = mailLogService.getMailLog(id); + return success(BeanUtils.toBean(log, MailLogRespVO.class)); } } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java similarity index 80% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java index 2d7e234..0f7176f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/MailTemplateController.java @@ -2,8 +2,8 @@ package co.yixiang.yshop.module.system.controller.admin.mail; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.*; -import co.yixiang.yshop.module.system.convert.mail.MailTemplateConvert; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailTemplateDO; import co.yixiang.yshop.module.system.service.mail.MailSendService; import co.yixiang.yshop.module.system.service.mail.MailTemplateService; @@ -13,11 +13,12 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Tag(name = "管理后台 - 邮件模版") @RestController @@ -32,14 +33,14 @@ public class MailTemplateController { @PostMapping("/create") @Operation(summary = "创建邮件模版") @PreAuthorize("@ss.hasPermission('system:mail-template:create')") - public CommonResult createMailTemplate(@Valid @RequestBody MailTemplateCreateReqVO createReqVO){ + public CommonResult createMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO createReqVO){ return success(mailTempleService.createMailTemplate(createReqVO)); } @PutMapping("/update") @Operation(summary = "修改邮件模版") @PreAuthorize("@ss.hasPermission('system:mail-template:update')") - public CommonResult updateMailTemplate(@Valid @RequestBody MailTemplateUpdateReqVO updateReqVO){ + public CommonResult updateMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO updateReqVO){ mailTempleService.updateMailTemplate(updateReqVO); return success(true); } @@ -56,10 +57,10 @@ public class MailTemplateController { @GetMapping("/get") @Operation(summary = "获得邮件模版") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('system:mail-template:get')") + @PreAuthorize("@ss.hasPermission('system:mail-template:query')") public CommonResult getMailTemplate(@RequestParam("id") Long id) { - MailTemplateDO mailTemplateDO = mailTempleService.getMailTemplate(id); - return success(MailTemplateConvert.INSTANCE.convert(mailTemplateDO)); + MailTemplateDO template = mailTempleService.getMailTemplate(id); + return success(BeanUtils.toBean(template, MailTemplateRespVO.class)); } @GetMapping("/page") @@ -67,21 +68,21 @@ public class MailTemplateController { @PreAuthorize("@ss.hasPermission('system:mail-template:query')") public CommonResult> getMailTemplatePage(@Valid MailTemplatePageReqVO pageReqVO) { PageResult pageResult = mailTempleService.getMailTemplatePage(pageReqVO); - return success(MailTemplateConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, MailTemplateRespVO.class)); } - @GetMapping("/list-all-simple") + @GetMapping({"/list-all-simple", "simple-list"}) @Operation(summary = "获得邮件模版精简列表") public CommonResult> getSimpleTemplateList() { List list = mailTempleService.getMailTemplateList(); - return success(MailTemplateConvert.INSTANCE.convertList02(list)); + return success(BeanUtils.toBean(list, MailTemplateSimpleRespVO.class)); } @PostMapping("/send-mail") @Operation(summary = "发送短信") @PreAuthorize("@ss.hasPermission('system:mail-template:send-mail')") public CommonResult sendMail(@Valid @RequestBody MailTemplateSendReqVO sendReqVO) { - return success(mailSendService.sendSingleMailToAdmin(sendReqVO.getMail(), null, + return success(mailSendService.sendSingleMailToAdmin(sendReqVO.getMail(), getLoginUserId(), sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java new file mode 100644 index 0000000..3017a00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java @@ -0,0 +1,21 @@ +package co.yixiang.yshop.module.system.controller.admin.mail.vo.account; + +import co.yixiang.yshop.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 = "yshopyuanma@123.com") + private String mail; + + @Schema(description = "用户名" , requiredMode = Schema.RequiredMode.REQUIRED , example = "yshop") + private String username; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java new file mode 100644 index 0000000..aed3d26 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.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 = "yshopyuanma@123.com") + private String mail; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + private String password; + + @Schema(description = "SMTP 服务器域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "www.yixiang.co") + 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 = "是否开启 starttls", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean starttlsEnable; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java new file mode 100644 index 0000000..7e7cc7d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.module.system.controller.admin.mail.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.Email; +import jakarta.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 = "yshopyuanma@123.com") + @NotNull(message = "邮箱不能为空") + @Email(message = "必须是 Email 格式") + private String mail; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @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.yixiang.co") + @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; + + @Schema(description = "是否开启 starttls", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否开启 starttls 必填") + private Boolean starttlsEnable; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java new file mode 100644 index 0000000..49682c0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java index 7bcdac3..64c132f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java @@ -20,10 +20,10 @@ public class MailLogPageReqVO extends PageParam { @Schema(description = "用户编号", example = "30883") private Long userId; - @Schema(description = "用户类型 - 参见 UserTypeEnum 枚举", example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", example = "2") private Integer userType; - @Schema(description = "接收邮箱地址 模糊匹配", example = "76854@qq.com") + @Schema(description = "接收邮箱地址,模糊匹配", example = "76854@qq.com") private String toMail; @Schema(description = "邮箱账号编号", example = "18107") @@ -32,7 +32,7 @@ public class MailLogPageReqVO extends PageParam { @Schema(description = "模板编号", example = "5678") private Long templateId; - @Schema(description = "发送状态 - 参见 MailSendStatusEnum 枚举", example = "1") + @Schema(description = "发送状态,参见 MailSendStatusEnum 枚举", example = "1") private Integer sendStatus; @Schema(description = "发送时间") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogRespVO.java new file mode 100644 index 0000000..ced569f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/log/MailLogRespVO.java @@ -0,0 +1,67 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java index 0e67d36..f9ca24b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java @@ -17,13 +17,13 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class MailTemplatePageReqVO extends PageParam { - @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举", example = "1") private Integer status; - @Schema(description = "标识 - 模糊匹配", example = "code_1024") + @Schema(description = "标识,模糊匹配", example = "code_1024") private String code; - @Schema(description = "名称 - 模糊匹配", example = "芋头") + @Schema(description = "名称,模糊匹配", example = "芋头") private String name; @Schema(description = "账号编号", example = "2048") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java new file mode 100644 index 0000000..4450e3a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.controller.admin.mail.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 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java new file mode 100644 index 0000000..0303055 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java new file mode 100644 index 0000000..b824d00 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java new file mode 100644 index 0000000..3621555 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/NoticeController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/NoticeController.java new file mode 100644 index 0000000..052fbbb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/NoticeController.java @@ -0,0 +1,92 @@ +package co.yixiang.yshop.module.system.controller.admin.notice; + +import cn.hutool.core.lang.Assert; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.infra.api.websocket.WebSocketSenderApi; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeRespVO; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.notice.NoticeDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; + +import static co.yixiang.yshop.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(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(summary = "修改通知公告") + @PreAuthorize("@ss.hasPermission('system:notice:update')") + public CommonResult updateNotice(@Valid @RequestBody NoticeSaveReqVO updateReqVO) { + noticeService.updateNotice(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticePageReqVO.java new file mode 100644 index 0000000..cf2de31 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticePageReqVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.module.system.controller.admin.notice.vo; + +import co.yixiang.yshop.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 = "yshop") + private String title; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeRespVO.java new file mode 100644 index 0000000..6c0031d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeRespVO.java @@ -0,0 +1,32 @@ +package co.yixiang.yshop.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; + + private String picUrl; + + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java new file mode 100644 index 0000000..5292af7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.controller.admin.notice.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java index f680c76..edb0bd8 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyMessageController.java @@ -1,12 +1,13 @@ package co.yixiang.yshop.module.system.controller.admin.notify; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; import co.yixiang.yshop.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO; import co.yixiang.yshop.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO; -import co.yixiang.yshop.module.system.convert.notify.NotifyMessageConvert; import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyMessageDO; import co.yixiang.yshop.module.system.service.notify.NotifyMessageService; import io.swagger.v3.oas.annotations.Operation; @@ -16,8 +17,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -39,8 +40,8 @@ public class NotifyMessageController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:notify-message:query')") public CommonResult getNotifyMessage(@RequestParam("id") Long id) { - NotifyMessageDO notifyMessage = notifyMessageService.getNotifyMessage(id); - return success(NotifyMessageConvert.INSTANCE.convert(notifyMessage)); + NotifyMessageDO message = notifyMessageService.getNotifyMessage(id); + return success(BeanUtils.toBean(message, NotifyMessageRespVO.class)); } @GetMapping("/page") @@ -48,7 +49,7 @@ public class NotifyMessageController { @PreAuthorize("@ss.hasPermission('system:notify-message:query')") public CommonResult> getNotifyMessagePage(@Valid NotifyMessagePageReqVO pageVO) { PageResult pageResult = notifyMessageService.getNotifyMessagePage(pageVO); - return success(NotifyMessageConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, NotifyMessageRespVO.class)); } // ========== 查看自己的站内信 ========== @@ -58,7 +59,7 @@ public class NotifyMessageController { public CommonResult> getMyMyNotifyMessagePage(@Valid NotifyMessageMyPageReqVO pageVO) { PageResult pageResult = notifyMessageService.getMyMyNotifyMessagePage(pageVO, getLoginUserId(), UserTypeEnum.ADMIN.getValue()); - return success(NotifyMessageConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, NotifyMessageRespVO.class)); } @PutMapping("/update-read") @@ -83,13 +84,15 @@ public class NotifyMessageController { @RequestParam(name = "size", defaultValue = "10") Integer size) { List list = notifyMessageService.getUnreadNotifyMessageList( getLoginUserId(), UserTypeEnum.ADMIN.getValue(), size); - return success(NotifyMessageConvert.INSTANCE.convertList(list)); + return success(BeanUtils.toBean(list, NotifyMessageRespVO.class)); } @GetMapping("/get-unread-count") @Operation(summary = "获得当前用户的未读站内信数量") + @ApiAccessLog(enable = false) // 由于前端会不断轮询该接口,记录日志没有意义 public CommonResult getUnreadNotifyMessageCount() { - return success(notifyMessageService.getUnreadNotifyMessageCount(getLoginUserId(), UserTypeEnum.ADMIN.getValue())); + return success(notifyMessageService.getUnreadNotifyMessageCount( + getLoginUserId(), UserTypeEnum.ADMIN.getValue())); } } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java similarity index 76% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java index 1afc2ae..a3582b2 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/NotifyTemplateController.java @@ -1,9 +1,10 @@ package co.yixiang.yshop.module.system.controller.admin.notify; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.*; -import co.yixiang.yshop.module.system.convert.notify.NotifyTemplateConvert; import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyTemplateDO; import co.yixiang.yshop.module.system.service.notify.NotifySendService; import co.yixiang.yshop.module.system.service.notify.NotifyTemplateService; @@ -14,8 +15,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -34,14 +35,14 @@ public class NotifyTemplateController { @PostMapping("/create") @Operation(summary = "创建站内信模版") @PreAuthorize("@ss.hasPermission('system:notify-template:create')") - public CommonResult createNotifyTemplate(@Valid @RequestBody NotifyTemplateCreateReqVO createReqVO) { + public CommonResult createNotifyTemplate(@Valid @RequestBody NotifyTemplateSaveReqVO createReqVO) { return success(notifyTemplateService.createNotifyTemplate(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新站内信模版") @PreAuthorize("@ss.hasPermission('system:notify-template:update')") - public CommonResult updateNotifyTemplate(@Valid @RequestBody NotifyTemplateUpdateReqVO updateReqVO) { + public CommonResult updateNotifyTemplate(@Valid @RequestBody NotifyTemplateSaveReqVO updateReqVO) { notifyTemplateService.updateNotifyTemplate(updateReqVO); return success(true); } @@ -60,8 +61,8 @@ public class NotifyTemplateController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:notify-template:query')") public CommonResult getNotifyTemplate(@RequestParam("id") Long id) { - NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplate(id); - return success(NotifyTemplateConvert.INSTANCE.convert(notifyTemplate)); + NotifyTemplateDO template = notifyTemplateService.getNotifyTemplate(id); + return success(BeanUtils.toBean(template, NotifyTemplateRespVO.class)); } @GetMapping("/page") @@ -69,15 +70,19 @@ public class NotifyTemplateController { @PreAuthorize("@ss.hasPermission('system:notify-template:query')") public CommonResult> getNotifyTemplatePage(@Valid NotifyTemplatePageReqVO pageVO) { PageResult pageResult = notifyTemplateService.getNotifyTemplatePage(pageVO); - return success(NotifyTemplateConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, NotifyTemplateRespVO.class)); } @PostMapping("/send-notify") @Operation(summary = "发送站内信") @PreAuthorize("@ss.hasPermission('system:notify-template:send-notify')") public CommonResult sendNotify(@Valid @RequestBody NotifyTemplateSendReqVO sendReqVO) { - return success(notifySendService.sendSingleNotifyToAdmin(sendReqVO.getUserId(), - sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java new file mode 100644 index 0000000..a824ecc --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java @@ -0,0 +1,49 @@ +package co.yixiang.yshop.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 = "yshop") + 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java similarity index 87% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java index 08f3983..26ff89f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java @@ -1,11 +1,13 @@ package co.yixiang.yshop.module.system.controller.admin.notify.vo.template; +import co.yixiang.yshop.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; -import co.yixiang.yshop.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -21,7 +23,7 @@ public class NotifyTemplatePageReqVO extends PageParam { @Schema(description = "模版名称", example = "我是名称") private String name; - @Schema(description = "状态 - 参见 CommonStatusEnum 枚举类", example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", example = "1") private Integer status; @Schema(description = "创建时间") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java new file mode 100644 index 0000000..44879a5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java new file mode 100644 index 0000000..ba3e256 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.controller.admin.notify.vo.template; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java new file mode 100644 index 0000000..7fa3135 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.module.system.controller.admin.notify.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java similarity index 81% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java index 66e5ca0..51b6e32 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2ClientController.java @@ -2,22 +2,21 @@ package co.yixiang.yshop.module.system.controller.admin.oauth2; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO; -import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; -import co.yixiang.yshop.module.system.convert.auth.OAuth2ClientConvert; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; import co.yixiang.yshop.module.system.service.oauth2.OAuth2ClientService; -import io.swagger.v3.oas.annotations.tags.Tag; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -33,14 +32,14 @@ public class OAuth2ClientController { @PostMapping("/create") @Operation(summary = "创建 OAuth2 客户端") @PreAuthorize("@ss.hasPermission('system:oauth2-client:create')") - public CommonResult createOAuth2Client(@Valid @RequestBody OAuth2ClientCreateReqVO createReqVO) { + public CommonResult createOAuth2Client(@Valid @RequestBody OAuth2ClientSaveReqVO createReqVO) { return success(oAuth2ClientService.createOAuth2Client(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新 OAuth2 客户端") @PreAuthorize("@ss.hasPermission('system:oauth2-client:update')") - public CommonResult updateOAuth2Client(@Valid @RequestBody OAuth2ClientUpdateReqVO updateReqVO) { + public CommonResult updateOAuth2Client(@Valid @RequestBody OAuth2ClientSaveReqVO updateReqVO) { oAuth2ClientService.updateOAuth2Client(updateReqVO); return success(true); } @@ -59,16 +58,16 @@ public class OAuth2ClientController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:oauth2-client:query')") public CommonResult getOAuth2Client(@RequestParam("id") Long id) { - OAuth2ClientDO oAuth2Client = oAuth2ClientService.getOAuth2Client(id); - return success(OAuth2ClientConvert.INSTANCE.convert(oAuth2Client)); + OAuth2ClientDO client = oAuth2ClientService.getOAuth2Client(id); + return success(BeanUtils.toBean(client, OAuth2ClientRespVO.class)); } @GetMapping("/page") - @Operation(summary = "获得OAuth2 客户端分页") + @Operation(summary = "获得 OAuth2 客户端分页") @PreAuthorize("@ss.hasPermission('system:oauth2-client:query')") public CommonResult> getOAuth2ClientPage(@Valid OAuth2ClientPageReqVO pageVO) { PageResult pageResult = oAuth2ClientService.getOAuth2ClientPage(pageVO); - return success(OAuth2ClientConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, OAuth2ClientRespVO.class)); } } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java similarity index 97% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java index 76a3c72..0b6e475 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenController.java @@ -8,7 +8,6 @@ import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.util.http.HttpUtils; import co.yixiang.yshop.framework.common.util.json.JsonUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAccessTokenRespVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAuthorizeInfoRespVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open.OAuth2OpenCheckTokenRespVO; @@ -30,9 +29,9 @@ 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 jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; import java.util.Collections; import java.util.List; import java.util.Map; @@ -95,7 +94,6 @@ public class OAuth2OpenController { @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, // 授权码模式 @@ -146,7 +144,6 @@ public class OAuth2OpenController { @PermitAll @Operation(summary = "删除访问令牌") @Parameter(name = "token", required = true, description = "访问令牌", example = "biu") - @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 public CommonResult revokeToken(HttpServletRequest request, @RequestParam("token") String token) { // 校验客户端 @@ -165,7 +162,6 @@ public class OAuth2OpenController { @PermitAll @Operation(summary = "校验访问令牌") @Parameter(name = "token", required = true, description = "访问令牌", example = "biu") - @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 public CommonResult checkToken(HttpServletRequest request, @RequestParam("token") String token) { // 校验客户端 @@ -216,7 +212,6 @@ public class OAuth2OpenController { @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, diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java similarity index 90% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java index bf510af..fa1e844 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2TokenController.java @@ -2,21 +2,21 @@ package co.yixiang.yshop.module.system.controller.admin.oauth2; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO; -import co.yixiang.yshop.module.system.convert.auth.OAuth2TokenConvert; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import co.yixiang.yshop.module.system.enums.logger.LoginLogTypeEnum; import co.yixiang.yshop.module.system.service.auth.AdminAuthService; import co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenService; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -35,7 +35,7 @@ public class OAuth2TokenController { @PreAuthorize("@ss.hasPermission('system:oauth2-token:page')") public CommonResult> getAccessTokenPage(@Valid OAuth2AccessTokenPageReqVO reqVO) { PageResult pageResult = oauth2TokenService.getAccessTokenPage(reqVO); - return success(OAuth2TokenConvert.INSTANCE.convert(pageResult)); + return success(BeanUtils.toBean(pageResult, OAuth2AccessTokenRespVO.class)); } @DeleteMapping("/delete") diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java similarity index 83% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java index 0a31cbe..f0ca1a9 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2UserController.java @@ -2,24 +2,25 @@ package co.yixiang.yshop.module.system.controller.admin.oauth2; import cn.hutool.core.collection.CollUtil; import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.user.OAuth2UserInfoRespVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.user.OAuth2UserUpdateReqVO; -import co.yixiang.yshop.module.system.convert.oauth2.OAuth2UserConvert; +import co.yixiang.yshop.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import co.yixiang.yshop.module.system.service.dept.DeptService; import co.yixiang.yshop.module.system.service.dept.PostService; import co.yixiang.yshop.module.system.service.user.AdminUserService; -import io.swagger.v3.oas.annotations.tags.Tag; 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -53,16 +54,16 @@ public class OAuth2UserController { public CommonResult getUserInfo() { // 获得用户基本信息 AdminUserDO user = userService.getUser(getLoginUserId()); - OAuth2UserInfoRespVO resp = OAuth2UserConvert.INSTANCE.convert(user); + OAuth2UserInfoRespVO resp = BeanUtils.toBean(user, OAuth2UserInfoRespVO.class); // 获得部门信息 if (user.getDeptId() != null) { DeptDO dept = deptService.getDept(user.getDeptId()); - resp.setDept(OAuth2UserConvert.INSTANCE.convert(dept)); + resp.setDept(BeanUtils.toBean(dept, OAuth2UserInfoRespVO.Dept.class)); } // 获得岗位信息 if (CollUtil.isNotEmpty(user.getPostIds())) { List posts = postService.getPostList(user.getPostIds()); - resp.setPosts(OAuth2UserConvert.INSTANCE.convertList(posts)); + resp.setPosts(BeanUtils.toBean(posts, OAuth2UserInfoRespVO.Post.class)); } return success(resp); } @@ -73,7 +74,7 @@ public class OAuth2UserController { public CommonResult updateUserInfo(@Valid @RequestBody OAuth2UserUpdateReqVO reqVO) { // 这里将 UserProfileUpdateReqVO =》UserProfileUpdateReqVO 对象,实现接口的复用。 // 主要是,AdminUserService 没有自己的 BO 对象,所以复用只能这么做 - userService.updateUserProfile(getLoginUserId(), OAuth2UserConvert.INSTANCE.convert(reqVO)); + userService.updateUserProfile(getLoginUserId(), BeanUtils.toBean(reqVO, UserProfileUpdateReqVO.class)); return success(true); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java new file mode 100644 index 0000000..7965e8c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java new file mode 100644 index 0000000..2a6f13e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java @@ -0,0 +1,64 @@ +package co.yixiang.yshop.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.yixiang.co/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.yixiang.co") + 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 = "{yshop: true}") + private String additionalInformation; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java new file mode 100644 index 0000000..03c0b59 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import org.hibernate.validator.constraints.URL; + +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.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.yixiang.co/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.yixiang.co") + @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 = "{yshop: true}") + private String additionalInformation; + + @AssertTrue(message = "附加信息必须是 JSON 格式") + public boolean isAdditionalInformationJson() { + return StrUtil.isEmpty(additionalInformation) || JsonUtils.isJson(additionalInformation); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java new file mode 100644 index 0000000..dd7ec0e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java new file mode 100644 index 0000000..ddc67ee --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java @@ -0,0 +1,38 @@ +package co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open; + +import co.yixiang.yshop.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.yixiang.co/xx.png") + private String logo; + + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java new file mode 100644 index 0000000..b68687f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java new file mode 100644 index 0000000..a081728 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java @@ -0,0 +1,22 @@ +package co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token; + +import co.yixiang.yshop.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; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java new file mode 100644 index 0000000..6df8241 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java @@ -0,0 +1,40 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java new file mode 100644 index 0000000..01fa641 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.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 = "yshop") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + private String nickname; + + @Schema(description = "用户邮箱", example = "yshop@yixiang.co") + private String email; + @Schema(description = "手机号码", example = "15601691300") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.yixiang.co/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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java similarity index 77% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java index be44cf4..21ec0dd 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java @@ -6,8 +6,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.Email; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Size; @Schema(description = "管理后台 - OAuth2 更新用户基本信息 Request VO") @Data @@ -15,7 +15,7 @@ import javax.validation.constraints.Size; @AllArgsConstructor public class OAuth2UserUpdateReqVO { - @Schema(description = "用户昵称", required = true, example = "yshop") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") private String nickname; @@ -28,7 +28,7 @@ public class OAuth2UserUpdateReqVO { @Length(min = 11, max = 11, message = "手机号长度必须 11 位") private String mobile; - @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") private Integer sex; } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/MenuController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/MenuController.java new file mode 100644 index 0000000..43e4631 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/MenuController.java @@ -0,0 +1,87 @@ +package co.yixiang.yshop.module.system.controller.admin.permission; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuRespVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.Comparator; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 菜单") +@RestController +@RequestMapping("/system/menu") +@Validated +public class MenuController { + + @Resource + private MenuService menuService; + + @PostMapping("/create") + @Operation(summary = "创建菜单") + @PreAuthorize("@ss.hasPermission('system:menu:create')") + public CommonResult createMenu(@Valid @RequestBody MenuSaveVO createReqVO) { + Long menuId = menuService.createMenu(createReqVO); + return success(menuId); + } + + @PutMapping("/update") + @Operation(summary = "修改菜单") + @PreAuthorize("@ss.hasPermission('system:menu:update')") + public CommonResult updateMenu(@Valid @RequestBody MenuSaveVO updateReqVO) { + menuService.updateMenu(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除菜单") + @Parameter(name = "id", description = "菜单编号", required= true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:menu:delete')") + public CommonResult deleteMenu(@RequestParam("id") Long id) { + menuService.deleteMenu(id); + return success(true); + } + + @GetMapping("/list") + @Operation(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(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(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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java index 82d0efa..50fd002 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/PermissionController.java @@ -14,8 +14,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.Set; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -37,10 +37,10 @@ public class PermissionController { @Operation(summary = "获得角色拥有的菜单编号") @Parameter(name = "roleId", description = "角色编号", required = true) - @GetMapping("/list-role-resources") + @GetMapping("/list-role-menus") @PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')") - public CommonResult> listRoleMenus(Long roleId) { - return success(permissionService.getRoleMenuIds(roleId)); + public CommonResult> getRoleMenuList(Long roleId) { + return success(permissionService.getRoleMenuListByRoleId(roleId)); } @PostMapping("/assign-role-menu") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/RoleController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/RoleController.java new file mode 100644 index 0000000..57786a7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/RoleController.java @@ -0,0 +1,100 @@ +package co.yixiang.yshop.module.system.controller.admin.permission; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.*; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.Comparator; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static java.util.Collections.singleton; + +@Tag(name = "管理后台 - 角色") +@RestController +@RequestMapping("/system/role") +@Validated +public class RoleController { + + @Resource + private RoleService roleService; + + @PostMapping("/create") + @Operation(summary = "创建角色") + @PreAuthorize("@ss.hasPermission('system:role:create')") + public CommonResult createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) { + return success(roleService.createRole(createReqVO, null)); + } + + @PutMapping("/update") + @Operation(summary = "修改角色") + @PreAuthorize("@ss.hasPermission('system:role:update')") + public CommonResult updateRole(@Valid @RequestBody RoleSaveReqVO updateReqVO) { + roleService.updateRole(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项") + public CommonResult> getSimpleRoleList() { + List list = roleService.getRoleListByStatus(singleton(CommonStatusEnum.ENABLE.getStatus())); + list.sort(Comparator.comparing(RoleDO::getSort)); + return success(BeanUtils.toBean(list, RoleRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出角色 Excel") + @ApiAccessLog(operateType = 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(); + // 输出 + ExcelUtils.write(response, "角色数据.xls", "数据", RoleRespVO.class, + BeanUtils.toBean(list, RoleRespVO.class)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java new file mode 100644 index 0000000..8d3f672 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuRespVO.java new file mode 100644 index 0000000..04a2448 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuRespVO.java @@ -0,0 +1,69 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java new file mode 100644 index 0000000..5098ee5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java @@ -0,0 +1,65 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java new file mode 100644 index 0000000..97e6f7c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java @@ -0,0 +1,22 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@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 = "yshop") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java new file mode 100644 index 0000000..5abf653 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.permission; + +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.module.system.enums.permission.DataScopeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java index 1a9fb7e..34f7276 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.controller.admin.permission.vo.permission import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Collections; import java.util.Set; @@ -11,7 +11,7 @@ import java.util.Set; @Data public class PermissionAssignRoleMenuReqVO { - @Schema(description = "角色编号", required = true, example = "1") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "角色编号不能为空") private Long roleId; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java index a73f936..4f9110b 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.controller.admin.permission.vo.permission import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Collections; import java.util.Set; @@ -11,7 +11,7 @@ import java.util.Set; @Data public class PermissionAssignUserRoleReqVO { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "用户编号不能为空") private Long userId; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java index 9cbea50..178285a 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RolePageReqVO.java @@ -15,13 +15,13 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @EqualsAndHashCode(callSuper = true) public class RolePageReqVO extends PageParam { - @Schema(description = "角色名称,模糊匹配", example = "yshop") + @Schema(description = "角色名称,模糊匹配", example = "yshop") private String name; - @Schema(description = "角色标识,模糊匹配", example = "yshop") + @Schema(description = "角色标识,模糊匹配", example = "yshop") private String code; - @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") private Integer status; @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleRespVO.java new file mode 100644 index 0000000..e54c7e8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleRespVO.java @@ -0,0 +1,58 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.role; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 jakarta.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; + + @Schema(description = "角色标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java new file mode 100644 index 0000000..5165717 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.controller.admin.permission.vo.role; + +import com.mzt.logapi.starter.annotation.DiffLogField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.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 个字符") + @DiffLogField(name = "角色名称") + private String name; + + @NotBlank(message = "角色标志不能为空") + @Size(max = 100, message = "角色标志长度不能超过 100 个字符") + @Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN") + @DiffLogField(name = "角色标志") + private String code; + + @Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + @DiffLogField(name = "显示顺序") + private Integer sort; + + @Schema(description = "备注", example = "我是一个角色") + @DiffLogField(name = "备注") + private String remark; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java new file mode 100644 index 0000000..db1c5ec --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java @@ -0,0 +1,18 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java similarity index 77% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java index ebd5ad1..5f80784 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsCallbackController.java @@ -2,8 +2,7 @@ package co.yixiang.yshop.module.system.controller.admin.sms; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.util.servlet.ServletUtils; -import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; -import co.yixiang.yshop.framework.sms.core.enums.SmsChannelEnum; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsChannelEnum; import co.yixiang.yshop.module.system.service.sms.SmsSendService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -11,9 +10,9 @@ 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 jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletRequest; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -27,8 +26,7 @@ public class SmsCallbackController { @PostMapping("/aliyun") @PermitAll - @Operation(summary = "阿里云短信的回调", description = "参见 https://help.aliyun.com/document_detail/120998.html 文档") - @OperateLog(enable = false) + @Operation(summary = "阿里云短信的回调", description = "参见 https://help.aliyun.com/zh/sms/developer-reference/configure-delivery-receipts-1 文档") public CommonResult receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable { String text = ServletUtils.getBody(request); smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text); @@ -37,8 +35,7 @@ public class SmsCallbackController { @PostMapping("/tencent") @PermitAll - @Operation(summary = "腾讯云短信的回调", description = "参见 https://cloud.tencent.com/document/product/382/52077 文档") - @OperateLog(enable = false) + @Operation(summary = "腾讯云短信的回调", description = "参见 https://cloud.tencent.com/document/product/382/59178 文档") public CommonResult receiveTencentSmsStatus(HttpServletRequest request) throws Throwable { String text = ServletUtils.getBody(request); smsSendService.receiveSmsStatus(SmsChannelEnum.TENCENT.getCode(), text); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java similarity index 77% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java index e797d43..b699ed6 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsChannelController.java @@ -1,19 +1,22 @@ package co.yixiang.yshop.module.system.controller.admin.sms; -import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.*; -import co.yixiang.yshop.module.system.convert.sms.SmsChannelConvert; -import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; -import co.yixiang.yshop.module.system.service.sms.SmsChannelService; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelRespVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.Comparator; import java.util.List; @@ -30,14 +33,14 @@ public class SmsChannelController { @PostMapping("/create") @Operation(summary = "创建短信渠道") @PreAuthorize("@ss.hasPermission('system:sms-channel:create')") - public CommonResult createSmsChannel(@Valid @RequestBody SmsChannelCreateReqVO createReqVO) { + public CommonResult createSmsChannel(@Valid @RequestBody SmsChannelSaveReqVO createReqVO) { return success(smsChannelService.createSmsChannel(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新短信渠道") @PreAuthorize("@ss.hasPermission('system:sms-channel:update')") - public CommonResult updateSmsChannel(@Valid @RequestBody SmsChannelUpdateReqVO updateReqVO) { + public CommonResult updateSmsChannel(@Valid @RequestBody SmsChannelSaveReqVO updateReqVO) { smsChannelService.updateSmsChannel(updateReqVO); return success(true); } @@ -56,8 +59,8 @@ public class SmsChannelController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:sms-channel:query')") public CommonResult getSmsChannel(@RequestParam("id") Long id) { - SmsChannelDO smsChannel = smsChannelService.getSmsChannel(id); - return success(SmsChannelConvert.INSTANCE.convert(smsChannel)); + SmsChannelDO channel = smsChannelService.getSmsChannel(id); + return success(BeanUtils.toBean(channel, SmsChannelRespVO.class)); } @GetMapping("/page") @@ -65,16 +68,15 @@ public class SmsChannelController { @PreAuthorize("@ss.hasPermission('system:sms-channel:query')") public CommonResult> getSmsChannelPage(@Valid SmsChannelPageReqVO pageVO) { PageResult pageResult = smsChannelService.getSmsChannelPage(pageVO); - return success(SmsChannelConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, SmsChannelRespVO.class)); } - @GetMapping("/list-all-simple") + @GetMapping({"/list-all-simple", "/simple-list"}) @Operation(summary = "获得短信渠道精简列表", description = "包含被禁用的短信渠道") public CommonResult> getSimpleSmsChannelList() { List list = smsChannelService.getSmsChannelList(); - // 排序后,返回给前端 list.sort(Comparator.comparing(SmsChannelDO::getId)); - return success(SmsChannelConvert.INSTANCE.convertList03(list)); + return success(BeanUtils.toBean(list, SmsChannelSimpleRespVO.class)); } } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsLogController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsLogController.java new file mode 100644 index 0000000..5680dba --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsLogController.java @@ -0,0 +1,60 @@ +package co.yixiang.yshop.module.system.controller.admin.sms; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsLogDO; +import co.yixiang.yshop.module.system.service.sms.SmsLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 短信日志") +@RestController +@RequestMapping("/system/sms-log") +@Validated +public class SmsLogController { + + @Resource + private SmsLogService smsLogService; + + @GetMapping("/page") + @Operation(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(summary = "导出短信日志 Excel") + @PreAuthorize("@ss.hasPermission('system:sms-log:export')") + @ApiAccessLog(operateType = 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java index 06a6dde..d99cfd9 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/SmsTemplateController.java @@ -1,28 +1,29 @@ package co.yixiang.yshop.module.system.controller.admin.sms; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.*; -import co.yixiang.yshop.module.system.convert.sms.SmsTemplateConvert; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; import co.yixiang.yshop.module.system.service.sms.SmsTemplateService; import co.yixiang.yshop.module.system.service.sms.SmsSendService; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; -import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.io.IOException; import java.util.List; +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; -import static co.yixiang.yshop.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 短信模板") @RestController @@ -37,14 +38,14 @@ public class SmsTemplateController { @PostMapping("/create") @Operation(summary = "创建短信模板") @PreAuthorize("@ss.hasPermission('system:sms-template:create')") - public CommonResult createSmsTemplate(@Valid @RequestBody SmsTemplateCreateReqVO createReqVO) { + public CommonResult createSmsTemplate(@Valid @RequestBody SmsTemplateSaveReqVO createReqVO) { return success(smsTemplateService.createSmsTemplate(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新短信模板") @PreAuthorize("@ss.hasPermission('system:sms-template:update')") - public CommonResult updateSmsTemplate(@Valid @RequestBody SmsTemplateUpdateReqVO updateReqVO) { + public CommonResult updateSmsTemplate(@Valid @RequestBody SmsTemplateSaveReqVO updateReqVO) { smsTemplateService.updateSmsTemplate(updateReqVO); return success(true); } @@ -63,8 +64,8 @@ public class SmsTemplateController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('system:sms-template:query')") public CommonResult getSmsTemplate(@RequestParam("id") Long id) { - SmsTemplateDO smsTemplate = smsTemplateService.getSmsTemplate(id); - return success(SmsTemplateConvert.INSTANCE.convert(smsTemplate)); + SmsTemplateDO template = smsTemplateService.getSmsTemplate(id); + return success(BeanUtils.toBean(template, SmsTemplateRespVO.class)); } @GetMapping("/page") @@ -72,19 +73,20 @@ public class SmsTemplateController { @PreAuthorize("@ss.hasPermission('system:sms-template:query')") public CommonResult> getSmsTemplatePage(@Valid SmsTemplatePageReqVO pageVO) { PageResult pageResult = smsTemplateService.getSmsTemplatePage(pageVO); - return success(SmsTemplateConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, SmsTemplateRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导出短信模板 Excel") @PreAuthorize("@ss.hasPermission('system:sms-template:export')") - @OperateLog(type = EXPORT) - public void exportSmsTemplateExcel(@Valid SmsTemplateExportReqVO exportReqVO, + @ApiAccessLog(operateType = EXPORT) + public void exportSmsTemplateExcel(@Valid SmsTemplatePageReqVO exportReqVO, HttpServletResponse response) throws IOException { - List list = smsTemplateService.getSmsTemplateList(exportReqVO); + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = smsTemplateService.getSmsTemplatePage(exportReqVO).getList(); // 导出 Excel - List datas = SmsTemplateConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "短信模板.xls", "数据", SmsTemplateExcelVO.class, datas); + ExcelUtils.write(response, "短信模板.xls", "数据", SmsTemplateRespVO.class, + BeanUtils.toBean(list, SmsTemplateRespVO.class)); } @PostMapping("/send-sms") diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java index dfa5658..7222ae7 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java @@ -20,7 +20,7 @@ public class SmsChannelPageReqVO extends PageParam { @Schema(description = "任务状态", example = "1") private Integer status; - @Schema(description = "短信签名,模糊匹配", example = "yshop") + @Schema(description = "短信签名,模糊匹配", example = "yshop") private String signature; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java new file mode 100644 index 0000000..2e6dd53 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java @@ -0,0 +1,45 @@ +package co.yixiang.yshop.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 jakarta.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 = "yshop") + @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 = "yshop") + @NotNull(message = "短信 API 的账号不能为空") + private String apiKey; + + @Schema(description = "短信 API 的密钥", example = "yuanma") + private String apiSecret; + + @Schema(description = "短信发送回调 URL", example = "https://www.yixiang.co") + @URL(message = "回调 URL 格式不正确") + private String callbackUrl; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java new file mode 100644 index 0000000..f1ac736 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.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 jakarta.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 = "yshop") + @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 = "yshop") + @NotNull(message = "短信 API 的账号不能为空") + private String apiKey; + + @Schema(description = "短信 API 的密钥", example = "yuanma") + private String apiSecret; + + @Schema(description = "短信发送回调 URL", example = "http://www.yixiang.co") + @URL(message = "回调 URL 格式不正确") + private String callbackUrl; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java new file mode 100644 index 0000000..68a8489 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java @@ -0,0 +1,19 @@ +package co.yixiang.yshop.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 = "yshop") + private String signature; + + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") + private String code; + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java similarity index 87% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java index 1e0528b..e5628dd 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java @@ -26,14 +26,14 @@ public class SmsLogPageReqVO extends PageParam { @Schema(description = "手机号", example = "15601691300") private String mobile; - @Schema(description = "发送状态,参见 SmsSendStatusEnum 枚举类", example = "1") + @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") + @Schema(description = "接收状态,参见 SmsReceiveStatusEnum 枚举类", example = "0") private Integer receiveStatus; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java new file mode 100644 index 0000000..c5ceaa8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java @@ -0,0 +1,116 @@ +package co.yixiang.yshop.module.system.controller.admin.sms.vo.log; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.framework.excel.core.convert.JsonConvert; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java similarity index 80% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java index aad99fc..36c54a3 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java @@ -23,13 +23,13 @@ public class SmsTemplatePageReqVO extends PageParam { @Schema(description = "开启状态", example = "1") private Integer status; - @Schema(description = "模板编码,模糊匹配", example = "test_01") + @Schema(description = "模板编码,模糊匹配", example = "test_01") private String code; - @Schema(description = "模板内容,模糊匹配", example = "你好,{name}。你长的太{like}啦!") + @Schema(description = "模板内容,模糊匹配", example = "你好,{name}。你长的太{like}啦!") private String content; - @Schema(description = "短信 API 的模板编号,模糊匹配", example = "4383920") + @Schema(description = "短信 API 的模板编号,模糊匹配", example = "4383920") private String apiTemplateId; @Schema(description = "短信渠道编号", example = "10") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java new file mode 100644 index 0000000..4684d17 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java @@ -0,0 +1,69 @@ +package co.yixiang.yshop.module.system.controller.admin.sms.vo.template; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java new file mode 100644 index 0000000..23f3948 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.controller.admin.sms.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java new file mode 100644 index 0000000..563c7ae --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.module.system.controller.admin.sms.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialClientController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialClientController.java new file mode 100644 index 0000000..6626eb8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialClientController.java @@ -0,0 +1,73 @@ +package co.yixiang.yshop.module.system.controller.admin.socail; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientRespVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialClientDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 社交客户端") +@RestController +@RequestMapping("/system/social-client") +@Validated +public class SocialClientController { + + @Resource + private SocialClientService socialClientService; + + @PostMapping("/create") + @Operation(summary = "创建社交客户端") + @PreAuthorize("@ss.hasPermission('system:social-client:create')") + public CommonResult createSocialClient(@Valid @RequestBody SocialClientSaveReqVO createReqVO) { + return success(socialClientService.createSocialClient(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新社交客户端") + @PreAuthorize("@ss.hasPermission('system:social-client:update')") + public CommonResult updateSocialClient(@Valid @RequestBody SocialClientSaveReqVO updateReqVO) { + socialClientService.updateSocialClient(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialUserController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialUserController.java new file mode 100644 index 0000000..de2f3d8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/SocialUserController.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.system.controller.admin.socail; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserUnbindReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserRespVO; +import co.yixiang.yshop.module.system.convert.social.SocialUserConvert; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 社交用户") +@RestController +@RequestMapping("/system/social-user") +@Validated +public class SocialUserController { + + @Resource + private SocialUserService socialUserService; + + @PostMapping("/bind") + @Operation(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(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(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(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java new file mode 100644 index 0000000..207239e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.system.controller.admin.socail.vo.client; + +import co.yixiang.yshop.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 = "yshop商城") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java new file mode 100644 index 0000000..29531d9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.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 = "yshop商城") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java new file mode 100644 index 0000000..474e95f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java @@ -0,0 +1,61 @@ +package co.yixiang.yshop.module.system.controller.admin.socail.vo.client; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.AssertTrue; +import jakarta.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 = "yshop商城") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java new file mode 100644 index 0000000..eb43a32 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.controller.admin.socail.vo.user; + +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; +import co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java new file mode 100644 index 0000000..5bc7b67 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.controller.admin.socail.vo.user; + +import co.yixiang.yshop.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 co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java new file mode 100644 index 0000000..f95e471 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java @@ -0,0 +1,48 @@ +package co.yixiang.yshop.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 = "yshop") + private String nickname; + + @Schema(description = "用户头像", example = "https://www.yixiang.co/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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java new file mode 100644 index 0000000..d614bf2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.system.controller.admin.socail.vo.user; + +import co.yixiang.yshop.framework.common.validation.InEnum; +import co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantController.java new file mode 100644 index 0000000..0957ffe --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantController.java @@ -0,0 +1,111 @@ +package co.yixiang.yshop.module.system.controller.admin.tenant; + +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantRespVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 租户") +@RestController +@RequestMapping("/system/tenant") +public class TenantController { + + @Resource + private TenantService tenantService; + + @GetMapping("/get-id-by-name") + @PermitAll + @Operation(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(summary = "使用域名,获得租户信息", description = "登录界面,根据用户的域名,获得租户信息") + @Parameter(name = "website", description = "域名", required = true, example = "www.yixiang.co") + public CommonResult getTenantByWebsite(@RequestParam("website") String website) { + TenantDO tenant = tenantService.getTenantByWebsite(website); + return success(BeanUtils.toBean(tenant, TenantSimpleRespVO.class)); + } + + @PostMapping("/create") + @Operation(summary = "创建租户") + @PreAuthorize("@ss.hasPermission('system:tenant:create')") + public CommonResult createTenant(@Valid @RequestBody TenantSaveReqVO createReqVO) { + return success(tenantService.createTenant(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新租户") + @PreAuthorize("@ss.hasPermission('system:tenant:update')") + public CommonResult updateTenant(@Valid @RequestBody TenantSaveReqVO updateReqVO) { + tenantService.updateTenant(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(summary = "导出租户 Excel") + @PreAuthorize("@ss.hasPermission('system:tenant:export')") + @ApiAccessLog(operateType = 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java index ae4ab64..7be129f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/TenantPackageController.java @@ -3,8 +3,8 @@ package co.yixiang.yshop.module.system.controller.admin.tenant; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.*; -import co.yixiang.yshop.module.system.convert.tenant.TenantPackageConvert; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantPackageDO; import co.yixiang.yshop.module.system.service.tenant.TenantPackageService; import io.swagger.v3.oas.annotations.tags.Tag; @@ -14,8 +14,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; @@ -32,14 +32,14 @@ public class TenantPackageController { @PostMapping("/create") @Operation(summary = "创建租户套餐") @PreAuthorize("@ss.hasPermission('system:tenant-package:create')") - public CommonResult createTenantPackage(@Valid @RequestBody TenantPackageCreateReqVO createReqVO) { + public CommonResult createTenantPackage(@Valid @RequestBody TenantPackageSaveReqVO createReqVO) { return success(tenantPackageService.createTenantPackage(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新租户套餐") @PreAuthorize("@ss.hasPermission('system:tenant-package:update')") - public CommonResult updateTenantPackage(@Valid @RequestBody TenantPackageUpdateReqVO updateReqVO) { + public CommonResult updateTenantPackage(@Valid @RequestBody TenantPackageSaveReqVO updateReqVO) { tenantPackageService.updateTenantPackage(updateReqVO); return success(true); } @@ -59,7 +59,7 @@ public class TenantPackageController { @PreAuthorize("@ss.hasPermission('system:tenant-package:query')") public CommonResult getTenantPackage(@RequestParam("id") Long id) { TenantPackageDO tenantPackage = tenantPackageService.getTenantPackage(id); - return success(TenantPackageConvert.INSTANCE.convert(tenantPackage)); + return success(BeanUtils.toBean(tenantPackage, TenantPackageRespVO.class)); } @GetMapping("/page") @@ -67,15 +67,14 @@ public class TenantPackageController { @PreAuthorize("@ss.hasPermission('system:tenant-package:query')") public CommonResult> getTenantPackagePage(@Valid TenantPackagePageReqVO pageVO) { PageResult pageResult = tenantPackageService.getTenantPackagePage(pageVO); - return success(TenantPackageConvert.INSTANCE.convertPage(pageResult)); + return success(BeanUtils.toBean(pageResult, TenantPackageRespVO.class)); } - @GetMapping("/get-simple-list") + @GetMapping({"/get-simple-list", "simple-list"}) @Operation(summary = "获取租户套餐精简信息列表", description = "只包含被开启的租户套餐,主要用于前端的下拉选项") public CommonResult> getTenantPackageList() { - // 获得角色列表,只要开启状态的 List list = tenantPackageService.getTenantPackageListByStatus(CommonStatusEnum.ENABLE.getStatus()); - return success(TenantPackageConvert.INSTANCE.convertList02(list)); + return success(BeanUtils.toBean(list, TenantPackageSimpleRespVO.class)); } } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java new file mode 100644 index 0000000..5dc1495 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java new file mode 100644 index 0000000..b91e397 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java new file mode 100644 index 0000000..e214883 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java @@ -0,0 +1,20 @@ +package co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java new file mode 100644 index 0000000..d607945 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java @@ -0,0 +1,55 @@ +package co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @ExcelProperty("租户名") + private String name; + + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @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.yixiang.co") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java new file mode 100644 index 0000000..9329dcb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.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 jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.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 = "yshop") + @NotNull(message = "租户名不能为空") + private String name; + + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @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.yixiang.co") + 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 = "yshop") + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java new file mode 100644 index 0000000..8b5f52b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.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 = "yshop") + private String name; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserController.java new file mode 100644 index 0000000..d43d42d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserController.java @@ -0,0 +1,172 @@ +package co.yixiang.yshop.module.system.controller.admin.user; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.apilog.core.annotation.ApiAccessLog; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.pojo.PageParam; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.*; +import co.yixiang.yshop.module.system.convert.user.UserConvert; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.enums.common.SexEnum; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +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 java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import static co.yixiang.yshop.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; + +@Tag(name = "管理后台 - 用户") +@RestController +@RequestMapping("/system/user") +@Validated +public class UserController { + + @Resource + private AdminUserService userService; + @Resource + private DeptService deptService; + + @PostMapping("/create") + @Operation(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(summary = "修改用户") + @PreAuthorize("@ss.hasPermission('system:user:update')") + public CommonResult updateUser(@Valid @RequestBody UserSaveReqVO reqVO) { + userService.updateUser(reqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(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(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(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(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(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(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); + if (user == null) { + return success(null); + } + // 拼接数据 + DeptDO dept = deptService.getDept(user.getDeptId()); + return success(UserConvert.INSTANCE.convert(user, dept)); + } + + @GetMapping("/export") + @Operation(summary = "导出用户") + @PreAuthorize("@ss.hasPermission('system:user:export')") + @ApiAccessLog(operateType = 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(summary = "获得导入用户模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = Arrays.asList( + UserImportExcelVO.builder().username("yshop").deptId(1L).email("yshop@yixiang.co").mobile("15601691300") + .nickname("yshop").status(CommonStatusEnum.ENABLE.getStatus()).sex(SexEnum.MALE.getSex()).build(), + UserImportExcelVO.builder().username("yuanma").deptId(2L).email("yuanma@yixiang.co").mobile("15601701300") + .nickname("源码").status(CommonStatusEnum.DISABLE.getStatus()).sex(SexEnum.FEMALE.getSex()).build() + ); + // 输出 + ExcelUtils.write(response, "用户导入模板.xls", "用户列表", UserImportExcelVO.class, list); + } + + @PostMapping("/import") + @Operation(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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java index 93a7e6f..bd60811 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/UserProfileController.java @@ -26,8 +26,8 @@ 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 jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -58,27 +58,18 @@ public class UserProfileController { @GetMapping("/get") @Operation(summary = "获得登录用户信息") @DataPermission(enable = false) // 关闭数据权限,避免只查看自己时,查询不到部门。 - public CommonResult profile() { + public CommonResult getUserProfile() { // 获得用户基本信息 AdminUserDO user = userService.getUser(getLoginUserId()); - UserProfileRespVO resp = UserConvert.INSTANCE.convert03(user); // 获得用户角色 List userRoles = roleService.getRoleListFromCache(permissionService.getUserRoleIdListByUserId(user.getId())); - resp.setRoles(UserConvert.INSTANCE.convertList(userRoles)); // 获得部门信息 - if (user.getDeptId() != null) { - DeptDO dept = deptService.getDept(user.getDeptId()); - resp.setDept(UserConvert.INSTANCE.convert02(dept)); - } + DeptDO dept = user.getDeptId() != null ? deptService.getDept(user.getDeptId()) : null; // 获得岗位信息 - if (CollUtil.isNotEmpty(user.getPostIds())) { - List posts = postService.getPostList(user.getPostIds()); - resp.setPosts(UserConvert.INSTANCE.convertList02(posts)); - } + List posts = CollUtil.isNotEmpty(user.getPostIds()) ? postService.getPostList(user.getPostIds()) : null; // 获得社交用户信息 List socialUsers = socialService.getSocialUserList(user.getId(), UserTypeEnum.ADMIN.getValue()); - resp.setSocialUsers(UserConvert.INSTANCE.convertList03(socialUsers)); - return success(resp); + return success(UserConvert.INSTANCE.convert(user, userRoles, dept, posts, socialUsers)); } @PutMapping("/update") @@ -95,7 +86,8 @@ public class UserProfileController { return success(true); } - @RequestMapping(value = "/update-avatar", method = {RequestMethod.POST, RequestMethod.PUT}) // 解决 uni-app 不支持 Put 上传文件的问题 + @RequestMapping(value = "/update-avatar", + method = {RequestMethod.POST, RequestMethod.PUT}) // 解决 uni-app 不支持 Put 上传文件的问题 @Operation(summary = "上传用户个人头像") public CommonResult updateUserAvatar(@RequestParam("avatarFile") MultipartFile file) throws Exception { if (file.isEmpty()) { diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java new file mode 100644 index 0000000..1855767 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java @@ -0,0 +1,75 @@ +package co.yixiang.yshop.module.system.controller.admin.user.vo.profile; + +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import co.yixiang.yshop.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 = "yshop") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + private String nickname; + + @Schema(description = "用户邮箱", example = "yshop@yixiang.co") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.yixiang.co/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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java new file mode 100644 index 0000000..f7d9ac4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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 jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java new file mode 100644 index 0000000..fcf2ee0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.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 jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Size; + + +@Schema(description = "管理后台 - 用户个人信息更新 Request VO") +@Data +public class UserProfileUpdateReqVO { + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") + private String nickname; + + @Schema(description = "用户邮箱", example = "yshop@yixiang.co") + @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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportExcelVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportExcelVO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportExcelVO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportExcelVO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportRespVO.java new file mode 100644 index 0000000..0a026e7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserImportRespVO.java @@ -0,0 +1,24 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserPageReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserPageReqVO.java new file mode 100644 index 0000000..433bdea --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserPageReqVO.java @@ -0,0 +1,38 @@ +package co.yixiang.yshop.module.system.controller.admin.user.vo.user; + +import co.yixiang.yshop.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 co.yixiang.yshop.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 = "yshop") + private String username; + + @Schema(description = "手机号码,模糊匹配", example = "yshop") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserRespVO.java new file mode 100644 index 0000000..bbbf4a3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -0,0 +1,75 @@ +package co.yixiang.yshop.module.system.controller.admin.user.vo.user; + +import co.yixiang.yshop.framework.excel.core.annotations.DictFormat; +import co.yixiang.yshop.framework.excel.core.convert.DictConvert; +import co.yixiang.yshop.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 = "yshop") + @ExcelProperty("用户名称") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @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 = "yshop@yixiang.co") + @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.yixiang.co/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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSaveReqVO.java new file mode 100644 index 0000000..e9ae69c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -0,0 +1,80 @@ +package co.yixiang.yshop.module.system.controller.admin.user.vo.user; + +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.yshop.framework.common.validation.Mobile; +import co.yixiang.yshop.module.system.framework.operatelog.core.DeptParseFunction; +import co.yixiang.yshop.module.system.framework.operatelog.core.PostParseFunction; +import co.yixiang.yshop.module.system.framework.operatelog.core.SexParseFunction; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.mzt.logapi.starter.annotation.DiffLogField; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +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 = "yshop") + @NotBlank(message = "用户账号不能为空") + @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") + @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") + @DiffLogField(name = "用户账号") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop") + @Size(max = 30, message = "用户昵称长度不能超过30个字符") + @DiffLogField(name = "用户昵称") + private String nickname; + + @Schema(description = "备注", example = "我是一个用户") + @DiffLogField(name = "备注") + private String remark; + + @Schema(description = "部门编号", example = "我是一个用户") + @DiffLogField(name = "部门", function = DeptParseFunction.NAME) + private Long deptId; + + @Schema(description = "岗位编号数组", example = "1") + @DiffLogField(name = "岗位", function = PostParseFunction.NAME) + private Set postIds; + + @Schema(description = "用户邮箱", example = "yshop@yixiang.co") + @Email(message = "邮箱格式不正确") + @Size(max = 50, message = "邮箱长度不能超过 50 个字符") + @DiffLogField(name = "用户邮箱") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + @Mobile + @DiffLogField(name = "手机号码") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + @DiffLogField(name = "用户性别", function = SexParseFunction.NAME) + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.yixiang.co/xxx.png") + @DiffLogField(name = "用户头像") + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java new file mode 100644 index 0000000..a97d283 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.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 = "yshop") + private String nickname; + + @Schema(description = "部门ID", example = "我是一个用户") + private Long deptId; + @Schema(description = "部门名称", example = "IT 部") + private String deptName; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java new file mode 100644 index 0000000..58d0b3c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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 jakarta.validation.constraints.NotEmpty; +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java new file mode 100644 index 0000000..68eb9aa --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.module.system.controller.admin.user.vo.user; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/AppDictDataController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/AppDictDataController.java new file mode 100644 index 0000000..efd6117 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/AppDictDataController.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.system.controller.app.dict; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.app.dict.vo.AppDictDataRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 字典数据") +@RestController +@RequestMapping("/system/dict-data") +@Validated +public class AppDictDataController { + + @Resource + private DictDataService dictDataService; + + @GetMapping("/type") + @Operation(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/vo/AppDictDataRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/vo/AppDictDataRespVO.java new file mode 100644 index 0000000..117dea2 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/dict/vo/AppDictDataRespVO.java @@ -0,0 +1,26 @@ +package co.yixiang.yshop.module.system.controller.app.dict.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@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 = "yshop") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "yixiang.co") + private String value; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + private String dictType; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/AppAreaController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/AppAreaController.java new file mode 100644 index 0000000..df3f4f9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/AppAreaController.java @@ -0,0 +1,34 @@ +package co.yixiang.yshop.module.system.controller.app.ip; + +import cn.hutool.core.lang.Assert; +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.ip.core.Area; +import co.yixiang.yshop.framework.ip.core.utils.AreaUtils; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 地区") +@RestController +@RequestMapping("/system/area") +@Validated +public class AppAreaController { + + @GetMapping("/tree") + @Operation(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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java new file mode 100644 index 0000000..0ffbe33 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/notice/AppNoticeController.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/notice/AppNoticeController.java new file mode 100644 index 0000000..7aa81d5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/controller/app/notice/AppNoticeController.java @@ -0,0 +1,69 @@ +/** + * Copyright (C) 2018-2022 + * All rights reserved, Designed By www.yixiang.co + * 注意: + * 本软件为www.yixiang.co开发研制,未经购买不得使用 + * 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) + * 一经发现盗用、分享等行为,将追究法律责任,后果自负 + */ +package co.yixiang.yshop.module.system.controller.app.notice; + +import co.yixiang.yshop.framework.common.pojo.CommonResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.notice.NoticeDO; +import co.yixiang.yshop.module.system.service.notice.NoticeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +import static co.yixiang.yshop.framework.common.pojo.CommonResult.success; + +/** + *

+ * 新闻控制器 + *

+ * + * @author hupeng + * @since 2024-5-6 + */ +@Slf4j +@RestController +@Tag(name = "用户 APP - 新闻") +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +@RequestMapping("/news") +public class AppNoticeController { + + private final NoticeService noticeService; + + + @GetMapping("/list") + @Operation(summary = "列表") + public CommonResult> getList() { + NoticePageReqVO noticePageReqVO = new NoticePageReqVO(); + noticePageReqVO.setPageSize(2); + List noticeDOS = noticeService.getNoticePage(noticePageReqVO).getList(); + return success(BeanUtils.toBean(noticeDOS, NoticeRespVO.class)); + } + + @GetMapping("/detail/{id}") + @Operation(summary = "详情") + public CommonResult getDetail(@PathVariable Long id) { + return success(BeanUtils.toBean(noticeService.getNotice(id), NoticeRespVO.class)); + } + + + + + +} + diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/auth/AuthConvert.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/auth/AuthConvert.java new file mode 100644 index 0000000..f58e7be --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/auth/AuthConvert.java @@ -0,0 +1,90 @@ +package co.yixiang.yshop.module.system.convert.auth; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; +import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeUseReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.controller.admin.auth.vo.*; +import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.enums.permission.MenuTypeEnum; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import org.slf4j.LoggerFactory; + +import java.util.*; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.filterList; +import static co.yixiang.yshop.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) { + Long shopId = SecurityFrameworkUtils.getLoginUser().getShopId(); + return AuthPermissionInfoRespVO.builder() + .user(BeanUtils.toBean(user, AuthPermissionInfoRespVO.UserVO.class).setShopId(shopId)) + .roles(convertSet(roleList, RoleDO::getCode)) + // 权限标识信息 + .permissions(convertSet(menuList, MenuDO::getPermission)) + // 菜单树 + .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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java similarity index 90% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java index 3d8d18c..27465a4 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/oauth2/OAuth2OpenConvert.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.LocalDateTimeUtil; import co.yixiang.yshop.framework.common.core.KeyValue; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.security.core.util.SecurityFrameworkUtils; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAccessTokenRespVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAuthorizeInfoRespVO; @@ -25,21 +26,19 @@ public interface OAuth2OpenConvert { OAuth2OpenConvert INSTANCE = Mappers.getMapper(OAuth2OpenConvert.class); default OAuth2OpenAccessTokenRespVO convert(OAuth2AccessTokenDO bean) { - OAuth2OpenAccessTokenRespVO respVO = convert0(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; } - OAuth2OpenAccessTokenRespVO convert0(OAuth2AccessTokenDO bean); default OAuth2OpenCheckTokenRespVO convert2(OAuth2AccessTokenDO bean) { - OAuth2OpenCheckTokenRespVO respVO = convert3(bean); + OAuth2OpenCheckTokenRespVO respVO = BeanUtils.toBean(bean, OAuth2OpenCheckTokenRespVO.class); respVO.setExp(LocalDateTimeUtil.toEpochMilli(bean.getExpiresTime()) / 1000L); respVO.setUserType(UserTypeEnum.ADMIN.getValue()); return respVO; } - OAuth2OpenCheckTokenRespVO convert3(OAuth2AccessTokenDO bean); default OAuth2OpenAuthorizeInfoRespVO convert(OAuth2ClientDO client, List approves) { // 构建 scopes diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/social/SocialUserConvert.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/social/SocialUserConvert.java new file mode 100644 index 0000000..3b8efc7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/social/SocialUserConvert.java @@ -0,0 +1,17 @@ +package co.yixiang.yshop.module.system.convert.social; + +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/tenant/TenantConvert.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/tenant/TenantConvert.java new file mode 100644 index 0000000..4cd6ce5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/tenant/TenantConvert.java @@ -0,0 +1,26 @@ +package co.yixiang.yshop.module.system.convert.tenant; + +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserSaveReqVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 租户 Convert + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/user/UserConvert.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/user/UserConvert.java new file mode 100644 index 0000000..9fb8bc4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/convert/user/UserConvert.java @@ -0,0 +1,58 @@ +package co.yixiang.yshop.module.system.convert.user; + +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.collection.MapUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.profile.UserProfileRespVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserRespVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserSimpleRespVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserDO; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java index 50af6d3..c78b5d1 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/DeptDO.java @@ -21,6 +21,8 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) public class DeptDO extends TenantBaseDO { + public static final Long PARENT_ID_ROOT = 0L; + /** * 部门ID */ diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/PostDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/PostDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/PostDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/PostDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/UserPostDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/UserPostDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/UserPostDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dept/UserPostDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java index 79ef45b..59512bc 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictDataDO.java @@ -55,7 +55,7 @@ public class DictDataDO extends BaseDO { /** * css 样式 */ - @TableField(updateStrategy = FieldStrategy.IGNORED) + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String cssClass; /** * 备注 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictTypeDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictTypeDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictTypeDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/dict/DictTypeDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/LoginLogDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/LoginLogDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/LoginLogDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/LoginLogDO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/OperateLogDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/OperateLogDO.java new file mode 100644 index 0000000..ea5c910 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/logger/OperateLogDO.java @@ -0,0 +1,85 @@ +package co.yixiang.yshop.module.system.dal.dataobject.logger; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.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; + +/** + * 操作日志表 + * + * @author yshop + */ +@TableName(value = "system_operate_log", autoResultMap = true) +@KeySequence("system_operate_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +public class OperateLogDO 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 的用户信息,将性别从男改成女,将姓名从yshop改成源码。 + */ + 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java index ad38903..1f575ff 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailAccountDO.java @@ -49,5 +49,9 @@ public class MailAccountDO extends BaseDO { * 是否开启 SSL */ private Boolean sslEnable; + /** + * 是否开启 STARTTLS + */ + private Boolean starttlsEnable; } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java similarity index 97% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java index e75e187..2dddb02 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailLogDO.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; import java.io.Serializable; -import java.util.Date; +import java.time.LocalDateTime; import java.util.Map; /** @@ -108,7 +108,7 @@ public class MailLogDO extends BaseDO implements Serializable { /** * 发送时间 */ - private Date sendTime; + private LocalDateTime sendTime; /** * 发送返回的消息 ID */ diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailTemplateDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailTemplateDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailTemplateDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/mail/MailTemplateDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java index c9a52a0..6d27c1d 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notice/NoticeDO.java @@ -5,6 +5,7 @@ import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; import co.yixiang.yshop.module.system.enums.notice.NoticeTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,6 +28,7 @@ public class NoticeDO extends BaseDO { * 公告标题 */ private String title; + /** * 公告类型 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyMessageDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyMessageDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyMessageDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyMessageDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyTemplateDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyTemplateDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyTemplateDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/notify/NotifyTemplateDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java index 9a7c2f7..327ec0c 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java @@ -12,6 +12,7 @@ import lombok.EqualsAndHashCode; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; /** * OAuth2 访问令牌 DO @@ -50,6 +51,11 @@ public class OAuth2AccessTokenDO extends TenantBaseDO { * 枚举 {@link UserTypeEnum} */ private Integer userType; + /** + * 用户信息 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map userInfo; /** * 客户端编号 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/MenuDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/MenuDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/MenuDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/MenuDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleMenuDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleMenuDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleMenuDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/RoleMenuDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/UserRoleDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/UserRoleDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/UserRoleDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/permission/UserRoleDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java similarity index 94% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java index 52bb463..509f7fd 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsChannelDO.java @@ -2,7 +2,7 @@ package co.yixiang.yshop.module.system.dal.dataobject.sms; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; -import co.yixiang.yshop.framework.sms.core.enums.SmsChannelEnum; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsChannelEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsCodeDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsCodeDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsCodeDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsCodeDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java index 183c5d1..873b749 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsLogDO.java @@ -1,10 +1,9 @@ package co.yixiang.yshop.module.system.dal.dataobject.sms; -import co.yixiang.yshop.module.system.enums.sms.SmsReceiveStatusEnum; -import co.yixiang.yshop.module.system.enums.sms.SmsSendStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; -import co.yixiang.yshop.framework.sms.core.enums.SmsFrameworkErrorCodeConstants; +import co.yixiang.yshop.module.system.enums.sms.SmsReceiveStatusEnum; +import co.yixiang.yshop.module.system.enums.sms.SmsSendStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @@ -115,19 +114,6 @@ public class SmsLogDO extends BaseDO { * 发送时间 */ private LocalDateTime sendTime; - /** - * 发送结果的编码 - * - * 枚举 {@link SmsFrameworkErrorCodeConstants} - */ - private Integer sendCode; - /** - * 发送结果的提示 - * - * 一般情况下,使用 {@link SmsFrameworkErrorCodeConstants} - * 异常情况下,通过格式化 Exception 的提示存储 - */ - private String sendMsg; /** * 短信 API 发送结果的编码 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsTemplateDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsTemplateDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsTemplateDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/sms/SmsTemplateDO.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialClientDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialClientDO.java new file mode 100644 index 0000000..bc89b28 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialClientDO.java @@ -0,0 +1,76 @@ +package co.yixiang.yshop.module.system.dal.dataobject.social; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.tenant.core.db.TenantBaseDO; +import co.yixiang.yshop.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 yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserBindDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserBindDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserBindDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserBindDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/social/SocialUserDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java index 332e385..f885ce4 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantDO.java @@ -4,6 +4,7 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; @@ -59,10 +60,9 @@ public class TenantDO extends BaseDO { private Integer status; /** * 绑定域名 - * - * TODO yshop:目前是预留字段,未来会支持根据域名,自动查询到对应的租户。等等 */ - private String domain; + @TableField(value = "domain") + private String website; /** * 租户套餐编号 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantPackageDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantPackageDO.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantPackageDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/tenant/TenantPackageDO.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java index bab78c4..a42e186 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/dataobject/user/AdminUserDO.java @@ -20,7 +20,7 @@ import java.util.Set; * @author yshop */ @TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users -@KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@KeySequence("system_users_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @Builder @@ -93,5 +93,4 @@ public class AdminUserDO extends TenantBaseDO { */ private LocalDateTime loginDate; - } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java index 8a5a6f9..c047a01 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/DeptMapper.java @@ -6,6 +6,7 @@ import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptListReqV import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Collection; import java.util.List; @Mapper @@ -25,4 +26,8 @@ public interface DeptMapper extends BaseMapperX { return selectCount(DeptDO::getParentId, parentId); } + default List selectListByParentId(Collection parentIds) { + return selectList(DeptDO::getParentId, parentIds); + } + } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java similarity index 77% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java index c039691..e98d990 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/PostMapper.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.system.dal.mysql.dept; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostExportReqVO; import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; import org.apache.ibatis.annotations.Mapper; @@ -28,13 +27,6 @@ public interface PostMapper extends BaseMapperX { .orderByDesc(PostDO::getId)); } - default List selectList(PostExportReqVO reqVO) { - return selectList(new LambdaQueryWrapperX() - .likeIfPresent(PostDO::getCode, reqVO.getCode()) - .likeIfPresent(PostDO::getName, reqVO.getName()) - .eqIfPresent(PostDO::getStatus, reqVO.getStatus())); - } - default PostDO selectByName(String name) { return selectOne(PostDO::getName, name); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/UserPostMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/UserPostMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/UserPostMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dept/UserPostMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java similarity index 83% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java index ef3e471..7a0d4b1 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictDataMapper.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.system.dal.mysql.dict; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -41,11 +40,10 @@ public interface DictDataMapper extends BaseMapperX { .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort))); } - default List selectList(DictDataExportReqVO reqVO) { + default List selectListByStatusAndDictType(Integer status, String dictType) { return selectList(new LambdaQueryWrapperX() - .likeIfPresent(DictDataDO::getLabel, reqVO.getLabel()) - .eqIfPresent(DictDataDO::getDictType, reqVO.getDictType()) - .eqIfPresent(DictDataDO::getStatus, reqVO.getStatus())); + .eqIfPresent(DictDataDO::getStatus, status) + .eqIfPresent(DictDataDO::getDictType, dictType)); } } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictTypeMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictTypeMapper.java new file mode 100644 index 0000000..914f55d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/dict/DictTypeMapper.java @@ -0,0 +1,37 @@ +package co.yixiang.yshop.module.system.dal.mysql.dict; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/LoginLogMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/LoginLogMapper.java new file mode 100644 index 0000000..a808d83 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/LoginLogMapper.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.system.dal.mysql.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.LoginLogDO; +import co.yixiang.yshop.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()) + .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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/OperateLogMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/OperateLogMapper.java new file mode 100644 index 0000000..4097604 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/logger/OperateLogMapper.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.dal.mysql.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OperateLogMapper extends BaseMapperX { + + default PageResult selectPage(OperateLogPageReqVO pageReqDTO) { + return selectPage(pageReqDTO, new LambdaQueryWrapperX() + .eqIfPresent(OperateLogDO::getUserId, pageReqDTO.getUserId()) + .eqIfPresent(OperateLogDO::getBizId, pageReqDTO.getBizId()) + .likeIfPresent(OperateLogDO::getType, pageReqDTO.getType()) + .likeIfPresent(OperateLogDO::getSubType, pageReqDTO.getSubType()) + .likeIfPresent(OperateLogDO::getAction, pageReqDTO.getAction()) + .betweenIfPresent(OperateLogDO::getCreateTime, pageReqDTO.getCreateTime()) + .orderByDesc(OperateLogDO::getId)); + } + + default PageResult selectPage(OperateLogPageReqDTO pageReqDTO) { + return selectPage(pageReqDTO, new LambdaQueryWrapperX() + .eqIfPresent(OperateLogDO::getType, pageReqDTO.getType()) + .eqIfPresent(OperateLogDO::getBizId, pageReqDTO.getBizId()) + .eqIfPresent(OperateLogDO::getUserId, pageReqDTO.getUserId()) + .orderByDesc(OperateLogDO::getId)); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailAccountMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailAccountMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailAccountMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailAccountMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailLogMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailLogMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailLogMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailLogMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailTemplateMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailTemplateMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailTemplateMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/mail/MailTemplateMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notice/NoticeMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyMessageMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyMessageMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyMessageMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyMessageMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyTemplateMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyTemplateMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyTemplateMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/notify/NotifyTemplateMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java index 4dfe622..a455219 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java @@ -3,6 +3,7 @@ package co.yixiang.yshop.module.system.dal.mysql.oauth2; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.framework.tenant.core.aop.TenantIgnore; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import org.apache.ibatis.annotations.Mapper; @@ -13,6 +14,7 @@ import java.util.List; @Mapper public interface OAuth2AccessTokenMapper extends BaseMapperX { + @TenantIgnore // 获取 token 的时候,需要忽略租户编号。原因是:一些场景下,可能不会传递 tenant-id 请求头,例如说文件上传、积木报表等等 default OAuth2AccessTokenDO selectByAccessToken(String accessToken) { return selectOne(OAuth2AccessTokenDO::getAccessToken, accessToken); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java similarity index 88% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java index e1bbf10..b572e33 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/MenuMapper.java @@ -25,4 +25,7 @@ public interface MenuMapper extends BaseMapperX { .eqIfPresent(MenuDO::getStatus, reqVO.getStatus())); } + default List selectListByPermission(String permission) { + return selectList(MenuDO::getPermission, permission); + } } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMapper.java new file mode 100644 index 0000000..5f23d2a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMapper.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.dal.mysql.permission; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import co.yixiang.yshop.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()) + .orderByAsc(RoleDO::getSort)); + } + + 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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java similarity index 81% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java index 92931d2..c835805 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/RoleMenuMapper.java @@ -3,9 +3,7 @@ package co.yixiang.yshop.module.system.dal.mysql.permission; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleMenuDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; import java.util.Collection; import java.util.List; @@ -13,14 +11,18 @@ import java.util.List; @Mapper public interface RoleMenuMapper extends BaseMapperX { - @Repository - class BatchInsertMapper extends ServiceImpl { - } - 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) diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/UserRoleMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/UserRoleMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/UserRoleMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/permission/UserRoleMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java index 2036aaa..2d92519 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsChannelMapper.java @@ -18,4 +18,8 @@ public interface SmsChannelMapper extends BaseMapperX { .orderByDesc(SmsChannelDO::getId)); } + default SmsChannelDO selectByCode(String code) { + return selectOne(SmsChannelDO::getCode, code); + } + } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsCodeMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsCodeMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsCodeMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsCodeMapper.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsLogMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsLogMapper.java new file mode 100644 index 0000000..d176ca7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsLogMapper.java @@ -0,0 +1,25 @@ +package co.yixiang.yshop.module.system.dal.mysql.sms; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsTemplateMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsTemplateMapper.java new file mode 100644 index 0000000..28adad8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/sms/SmsTemplateMapper.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.dal.mysql.sms; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialClientMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialClientMapper.java new file mode 100644 index 0000000..0fc72d8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialClientMapper.java @@ -0,0 +1,28 @@ +package co.yixiang.yshop.module.system.dal.mysql.social; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java similarity index 80% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java index 0af29e0..897b8f5 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserBindMapper.java @@ -34,4 +34,11 @@ public interface SocialUserBindMapper extends BaseMapperX { .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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserMapper.java new file mode 100644 index 0000000..9a3982b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/social/SocialUserMapper.java @@ -0,0 +1,36 @@ +package co.yixiang.yshop.module.system.dal.mysql.social; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantMapper.java new file mode 100644 index 0000000..f48a7b1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantMapper.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.dal.mysql.tenant; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 租户 Mapper + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantPackageMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantPackageMapper.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantPackageMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/tenant/TenantPackageMapper.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java similarity index 76% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java index 18bc366..16faf5d 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/mysql/user/AdminUserMapper.java @@ -3,7 +3,6 @@ package co.yixiang.yshop.module.system.dal.mysql.user; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; -import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserExportReqVO; import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import org.apache.ibatis.annotations.Mapper; @@ -36,15 +35,6 @@ public interface AdminUserMapper extends BaseMapperX { .orderByDesc(AdminUserDO::getId)); } - default List selectList(UserExportReqVO reqVO, Collection deptIds) { - return selectList(new LambdaQueryWrapperX() - .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername()) - .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile()) - .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime()) - .inIfPresent(AdminUserDO::getDeptId, deptIds)); - } - default List selectListByNickname(String nickname) { return selectList(new LambdaQueryWrapperX().like(AdminUserDO::getNickname, nickname)); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/RedisKeyConstants.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/RedisKeyConstants.java new file mode 100644 index 0000000..c5b8a72 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/RedisKeyConstants.java @@ -0,0 +1,101 @@ +package co.yixiang.yshop.module.system.dal.redis; + +import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; + +/** + * System Redis Key 枚举类 + * + * @author yshop + */ +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 格式:oauth_client:{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 格式:mail_account:{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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java index 79b8b60..1826a21 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.Collection; @@ -37,7 +37,7 @@ public class OAuth2AccessTokenRedisDAO { // 清理多余字段,避免缓存 accessTokenDO.setUpdater(null).setUpdateTime(null).setCreateTime(null).setCreator(null).setDeleted(null); long time = LocalDateTimeUtil.between(LocalDateTime.now(), accessTokenDO.getExpiresTime(), ChronoUnit.SECONDS); - if(time > 0) { + if (time > 0) { stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO), time, TimeUnit.SECONDS); } } @@ -53,7 +53,7 @@ public class OAuth2AccessTokenRedisDAO { } private static String formatKey(String accessToken) { - return String.format(OAUTH2_ACCESS_TOKEN.getKeyTemplate(), accessToken); + return String.format(OAUTH2_ACCESS_TOKEN, accessToken); } } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/config/YshopCaptchaConfiguration.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/config/YshopCaptchaConfiguration.java new file mode 100644 index 0000000..0741b35 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/config/YshopCaptchaConfiguration.java @@ -0,0 +1,29 @@ +package co.yixiang.yshop.module.system.framework.captcha.config; + +import co.yixiang.yshop.module.system.framework.captcha.core.RedisCaptchaServiceImpl; +import com.xingyuv.captcha.properties.AjCaptchaProperties; +import com.xingyuv.captcha.service.CaptchaCacheService; +import com.xingyuv.captcha.service.impl.CaptchaServiceFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.StringRedisTemplate; + +/** + * 验证码的配置类 + * + * @author yshop + */ +@Configuration(proxyBeanMethods = false) +public class YshopCaptchaConfiguration { + + @Bean + public CaptchaCacheService captchaCacheService(AjCaptchaProperties config, + StringRedisTemplate stringRedisTemplate) { + CaptchaCacheService captchaCacheService = CaptchaServiceFactory.getCache(config.getCacheType().name()); + if (captchaCacheService instanceof RedisCaptchaServiceImpl) { + ((RedisCaptchaServiceImpl) captchaCacheService).setStringRedisTemplate(stringRedisTemplate); + } + return captchaCacheService; + } + +} diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/java/co/yixiang/yshop/framework/captcha/core/service/RedisCaptchaServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/core/RedisCaptchaServiceImpl.java similarity index 78% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/java/co/yixiang/yshop/framework/captcha/core/service/RedisCaptchaServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/core/RedisCaptchaServiceImpl.java index c034e08..58db510 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/java/co/yixiang/yshop/framework/captcha/core/service/RedisCaptchaServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/captcha/core/RedisCaptchaServiceImpl.java @@ -1,11 +1,9 @@ -package co.yixiang.yshop.framework.captcha.core.service; +package co.yixiang.yshop.module.system.framework.captcha.core; import com.xingyuv.captcha.service.CaptchaCacheService; -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; +import lombok.Setter; import org.springframework.data.redis.core.StringRedisTemplate; -import javax.annotation.Resource; import java.util.concurrent.TimeUnit; /** @@ -13,11 +11,9 @@ import java.util.concurrent.TimeUnit; * * @author 星语 */ -@NoArgsConstructor // 保证 aj-captcha 的 SPI 创建 -@AllArgsConstructor +@Setter public class RedisCaptchaServiceImpl implements CaptchaCacheService { - @Resource // 保证 aj-captcha 的 SPI 创建时的注入 private StringRedisTemplate stringRedisTemplate; @Override diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/datapermission/config/DataPermissionConfiguration.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/datapermission/config/DataPermissionConfiguration.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/datapermission/config/DataPermissionConfiguration.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/datapermission/config/DataPermissionConfiguration.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AdminUserParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AdminUserParseFunction.java new file mode 100644 index 0000000..0eb6c64 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AdminUserParseFunction.java @@ -0,0 +1,51 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.service.user.AdminUserService; +import com.mzt.logapi.service.IParseFunction; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 管理员名字的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class AdminUserParseFunction implements IParseFunction { + + public static final String NAME = "getAdminUserById"; + + @Resource + private AdminUserService adminUserService; + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + + // 获取用户信息 + AdminUserDO user = adminUserService.getUser(Convert.toLong(value)); + if (user == null) { + log.warn("[apply][获取用户{{}}为空", value); + return ""; + } + // 返回格式 yshop(13888888888) + String nickname = user.getNickname(); + if (StrUtil.isEmpty(user.getMobile())) { + return nickname; + } + return StrUtil.format("{}({})", nickname, user.getMobile()); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AreaParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AreaParseFunction.java new file mode 100644 index 0000000..331ae14 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/AreaParseFunction.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.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(Convert.toInt(value)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/BooleanParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/BooleanParseFunction.java new file mode 100644 index 0000000..e746fb7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/BooleanParseFunction.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/DeptParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/DeptParseFunction.java new file mode 100644 index 0000000..571312c --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/DeptParseFunction.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import com.mzt.logapi.service.IParseFunction; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 部门名字的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class DeptParseFunction implements IParseFunction { + + public static final String NAME = "getDeptById"; + + @Resource + private DeptService deptService; + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + + // 获取部门信息 + DeptDO dept = deptService.getDept(Convert.toLong(value)); + if (dept == null) { + log.warn("[apply][获取部门{{}}为空", value); + return ""; + } + return dept.getName(); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/PostParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/PostParseFunction.java new file mode 100644 index 0000000..16ed0af --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/PostParseFunction.java @@ -0,0 +1,46 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; +import co.yixiang.yshop.module.system.service.dept.PostService; +import com.mzt.logapi.service.IParseFunction; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 岗位名字的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class PostParseFunction implements IParseFunction { + + public static final String NAME = "getPostById"; + + @Resource + private PostService postService; + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + + // 获取岗位信息 + PostDO post = postService.getPost(Convert.toLong(value)); + if (post == null) { + log.warn("[apply][获取岗位{{}}为空", value); + return ""; + } + return post.getName(); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/SexParseFunction.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/SexParseFunction.java new file mode 100644 index 0000000..b25eab7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/operatelog/core/SexParseFunction.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.dict.core.DictFrameworkUtils; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/SmsCodeProperties.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsCodeProperties.java similarity index 89% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/SmsCodeProperties.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsCodeProperties.java index db22b6d..9b1b057 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/SmsCodeProperties.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsCodeProperties.java @@ -1,10 +1,10 @@ -package co.yixiang.yshop.module.system.framework.sms; +package co.yixiang.yshop.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 jakarta.validation.constraints.NotNull; import java.time.Duration; @ConfigurationProperties(prefix = "yshop.sms-code") diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsConfiguration.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsConfiguration.java new file mode 100644 index 0000000..c4c62c1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/config/SmsConfiguration.java @@ -0,0 +1,23 @@ +package co.yixiang.yshop.module.system.framework.sms.config; + +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClientFactory; +import co.yixiang.yshop.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 yshop + */ +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(SmsCodeProperties.class) +public class SmsConfiguration { + + @Bean + public SmsClientFactory smsClientFactory() { + return new SmsClientFactoryImpl(); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClient.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClient.java new file mode 100644 index 0000000..898c54d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClient.java @@ -0,0 +1,54 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client; + +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/SmsClientFactory.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClientFactory.java similarity index 79% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/SmsClientFactory.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClientFactory.java index 1f0033b..dabe206 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/SmsClientFactory.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/SmsClientFactory.java @@ -1,6 +1,6 @@ -package co.yixiang.yshop.framework.sms.core.client; +package co.yixiang.yshop.module.system.framework.sms.core.client; -import co.yixiang.yshop.framework.sms.core.property.SmsChannelProperties; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; /** * 短信客户端的工厂接口 diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/dto/SmsReceiveRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/dto/SmsReceiveRespDTO.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java index c94a0c0..2452638 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/dto/SmsReceiveRespDTO.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.sms.core.client.dto; +package co.yixiang.yshop.module.system.framework.sms.core.client.dto; import lombok.Data; diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java new file mode 100644 index 0000000..7c47d7b --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java @@ -0,0 +1,43 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.dto; + +import lombok.Data; + +/** + * 短信发送 Response DTO + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java new file mode 100644 index 0000000..65f8665 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java @@ -0,0 +1,33 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.dto; + +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import lombok.Data; + +/** + * 短信模板 Response DTO + * + * @author yshop + */ +@Data +public class SmsTemplateRespDTO { + + /** + * 模板编号 + */ + private String id; + /** + * 短信内容 + */ + private String content; + /** + * 审核状态 + * + * 枚举 {@link SmsTemplateAuditStatusEnum} + */ + private Integer auditStatus; + /** + * 审核未通过的理由 + */ + private String auditReason; + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AbstractSmsClient.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AbstractSmsClient.java new file mode 100644 index 0000000..dfe0e44 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AbstractSmsClient.java @@ -0,0 +1,54 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; + +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClient.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClient.java new file mode 100644 index 0000000..3b4d657 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClient.java @@ -0,0 +1,182 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.lang.Assert; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.collection.MapUtils; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static co.yixiang.yshop.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 yshop + */ + @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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java new file mode 100644 index 0000000..5e81a37 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java @@ -0,0 +1,95 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.collection.MapUtils; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.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 yshop + */ +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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/impl/SmsClientFactoryImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java similarity index 84% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/impl/SmsClientFactoryImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java index 121d29f..b8c3ccc 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/client/impl/SmsClientFactoryImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java @@ -1,12 +1,9 @@ -package co.yixiang.yshop.framework.sms.core.client.impl; +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; -import co.yixiang.yshop.framework.sms.core.client.SmsClient; -import co.yixiang.yshop.framework.sms.core.client.SmsClientFactory; -import co.yixiang.yshop.framework.sms.core.client.impl.aliyun.AliyunSmsClient; -import co.yixiang.yshop.framework.sms.core.client.impl.debug.DebugDingTalkSmsClient; -import co.yixiang.yshop.framework.sms.core.client.impl.tencent.TencentSmsClient; -import co.yixiang.yshop.framework.sms.core.enums.SmsChannelEnum; -import co.yixiang.yshop.framework.sms.core.property.SmsChannelProperties; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClientFactory; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsChannelEnum; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Assert; import org.springframework.validation.annotation.Validated; diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClient.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClient.java new file mode 100644 index 0000000..920faf5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClient.java @@ -0,0 +1,218 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.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 co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; +import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static co.yixiang.yshop.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/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsChannelEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsChannelEnum.java similarity index 91% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsChannelEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsChannelEnum.java index b06847e..6b8653b 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsChannelEnum.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsChannelEnum.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.sms.core.enums; +package co.yixiang.yshop.module.system.framework.sms.core.enums; import cn.hutool.core.util.ArrayUtil; import lombok.AllArgsConstructor; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java similarity index 80% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java index 6b2ceb1..ba6eb84 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java @@ -1,4 +1,4 @@ -package co.yixiang.yshop.framework.sms.core.enums; +package co.yixiang.yshop.module.system.framework.sms.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/property/SmsChannelProperties.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/property/SmsChannelProperties.java similarity index 79% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/property/SmsChannelProperties.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/property/SmsChannelProperties.java index d825bb2..c693ec2 100644 --- a/yshop-drink/yshop-framework/yshop-spring-boot-starter-biz-sms/src/main/java/co/yixiang/yshop/framework/sms/core/property/SmsChannelProperties.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/sms/core/property/SmsChannelProperties.java @@ -1,11 +1,11 @@ -package co.yixiang.yshop.framework.sms.core.property; +package co.yixiang.yshop.module.system.framework.sms.core.property; -import co.yixiang.yshop.framework.sms.core.enums.SmsChannelEnum; +import co.yixiang.yshop.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; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; /** * 短信渠道配置类 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java index e6af8a2..8556d65 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/framework/web/config/SystemWebConfiguration.java @@ -1,7 +1,7 @@ package co.yixiang.yshop.module.system.framework.web.config; import co.yixiang.yshop.framework.swagger.config.YshopSwaggerAutoConfiguration; -import org.springdoc.core.GroupedOpenApi; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java similarity index 86% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java index a11576b..ccd9952 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/job/DemoJob.java @@ -7,18 +7,18 @@ import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import co.yixiang.yshop.module.system.dal.mysql.user.AdminUserMapper; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; @Component -@TenantJob // 标记多租户 public class DemoJob implements JobHandler { @Resource private AdminUserMapper adminUserMapper; @Override - public String execute(String param) throws Exception { + @TenantJob // 标记多租户 + public String execute(String param) { System.out.println("当前租户:" + TenantContextHolder.getTenantId()); List users = adminUserMapper.selectList(); return "用户数量:" + users.size(); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/mail/MailSendConsumer.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/mail/MailSendConsumer.java new file mode 100644 index 0000000..7adf9f0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/mail/MailSendConsumer.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.module.system.mq.consumer.mail; + +import co.yixiang.yshop.module.system.mq.message.mail.MailSendMessage; +import co.yixiang.yshop.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 jakarta.annotation.Resource; + +/** + * 针对 {@link MailSendMessage} 的消费者 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/sms/SmsSendConsumer.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/sms/SmsSendConsumer.java new file mode 100644 index 0000000..0a1ca57 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/consumer/sms/SmsSendConsumer.java @@ -0,0 +1,31 @@ +package co.yixiang.yshop.module.system.mq.consumer.sms; + +import co.yixiang.yshop.module.system.mq.message.sms.SmsSendMessage; +import co.yixiang.yshop.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 jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/mail/MailSendMessage.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/mail/MailSendMessage.java new file mode 100644 index 0000000..5909cfd --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/mail/MailSendMessage.java @@ -0,0 +1,47 @@ +package co.yixiang.yshop.module.system.mq.message.mail; + +import lombok.Data; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; + +/** + * 邮箱发送消息 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/sms/SmsSendMessage.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/sms/SmsSendMessage.java new file mode 100644 index 0000000..9b7faa1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/message/sms/SmsSendMessage.java @@ -0,0 +1,42 @@ +package co.yixiang.yshop.module.system.mq.message.sms; + +import co.yixiang.yshop.framework.common.core.KeyValue; +import lombok.Data; + +import jakarta.validation.constraints.NotNull; +import java.util.List; + +/** + * 短信发送消息 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/mail/MailProducer.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/mail/MailProducer.java new file mode 100644 index 0000000..524b337 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/mail/MailProducer.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.system.mq.producer.mail; + +import co.yixiang.yshop.module.system.mq.message.mail.MailSendMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/sms/SmsProducer.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/sms/SmsProducer.java new file mode 100644 index 0000000..b48b14a --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/mq/producer/sms/SmsProducer.java @@ -0,0 +1,41 @@ +package co.yixiang.yshop.module.system.mq.producer.sms; + +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.module.system.mq.message.sms.SmsSendMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import jakarta.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java similarity index 97% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java index 68a0500..e148d53 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthService.java @@ -3,7 +3,7 @@ package co.yixiang.yshop.module.system.service.auth; import co.yixiang.yshop.module.system.controller.admin.auth.vo.*; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 管理后台的认证 Service 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java index eb55284..fd98989 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImpl.java @@ -9,6 +9,7 @@ import co.yixiang.yshop.framework.common.util.validation.ValidationUtils; import co.yixiang.yshop.module.system.api.logger.dto.LoginLogCreateReqDTO; import co.yixiang.yshop.module.system.api.sms.SmsCodeApi; import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; import co.yixiang.yshop.module.system.controller.admin.auth.vo.*; import co.yixiang.yshop.module.system.convert.auth.AuthConvert; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; @@ -22,16 +23,16 @@ import co.yixiang.yshop.module.system.service.member.MemberService; import co.yixiang.yshop.module.system.service.oauth2.OAuth2TokenService; import co.yixiang.yshop.module.system.service.social.SocialUserService; import co.yixiang.yshop.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 com.google.common.annotations.VisibleForTesting; 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 jakarta.annotation.Resource; +import jakarta.validation.Validator; import java.util.Objects; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -84,7 +85,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { throw exception(AUTH_LOGIN_BAD_CREDENTIALS); } // 校验是否禁用 - if (ObjectUtil.notEqual(user.getStatus(), CommonStatusEnum.ENABLE.getStatus())) { + if (CommonStatusEnum.isDisable(user.getStatus())) { createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.USER_DISABLED); throw exception(AUTH_LOGIN_USER_DISABLED); } @@ -155,14 +156,14 @@ public class AdminAuthServiceImpl implements AdminAuthService { @Override public AuthLoginRespVO socialLogin(AuthSocialLoginReqVO reqVO) { // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号 - Long userId = socialUserService.getBindUserId(UserTypeEnum.ADMIN.getValue(), reqVO.getType(), + SocialUserRespDTO socialUser = socialUserService.getSocialUserByCode(UserTypeEnum.ADMIN.getValue(), reqVO.getType(), reqVO.getCode(), reqVO.getState()); - if (userId == null) { + if (socialUser == null || socialUser.getUserId() == null) { throw exception(AUTH_THIRD_LOGIN_NOT_BIND); } // 获得用户 - AdminUserDO user = userService.getUser(userId); + AdminUserDO user = userService.getUser(socialUser.getUserId()); if (user == null) { throw exception(USER_NOT_EXISTS); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptService.java new file mode 100644 index 0000000..e2ed3bb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptService.java @@ -0,0 +1,102 @@ +package co.yixiang.yshop.module.system.service.dept; + +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 部门 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImpl.java new file mode 100644 index 0000000..120b375 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImpl.java @@ -0,0 +1,218 @@ +package co.yixiang.yshop.module.system.service.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.datapermission.core.annotation.DataPermission; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.mysql.dept.DeptMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.*; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; + +/** + * 部门 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostService.java new file mode 100644 index 0000000..04f6440 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostService.java @@ -0,0 +1,84 @@ +package co.yixiang.yshop.module.system.service.dept; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; +import org.springframework.lang.Nullable; + +import java.util.Collection; +import java.util.List; + +/** + * 岗位 Service 接口 + * + * @author yshop + */ +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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java similarity index 83% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java index 044bf06..9b0c3e7 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dept/PostServiceImpl.java @@ -3,18 +3,17 @@ package co.yixiang.yshop.module.system.service.dept; import cn.hutool.core.collection.CollUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostExportReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; -import co.yixiang.yshop.module.system.convert.dept.PostConvert; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; import co.yixiang.yshop.module.system.dal.mysql.dept.PostMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -35,23 +34,23 @@ public class PostServiceImpl implements PostService { private PostMapper postMapper; @Override - public Long createPost(PostCreateReqVO reqVO) { + public Long createPost(PostSaveReqVO createReqVO) { // 校验正确性 - validatePostForCreateOrUpdate(null, reqVO.getName(), reqVO.getCode()); + validatePostForCreateOrUpdate(null, createReqVO.getName(), createReqVO.getCode()); // 插入岗位 - PostDO post = PostConvert.INSTANCE.convert(reqVO); + PostDO post = BeanUtils.toBean(createReqVO, PostDO.class); postMapper.insert(post); return post.getId(); } @Override - public void updatePost(PostUpdateReqVO reqVO) { + public void updatePost(PostSaveReqVO updateReqVO) { // 校验正确性 - validatePostForCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode()); + validatePostForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getName(), updateReqVO.getCode()); // 更新岗位 - PostDO updateObj = PostConvert.INSTANCE.convert(reqVO); + PostDO updateObj = BeanUtils.toBean(updateReqVO, PostDO.class); postMapper.updateById(updateObj); } @@ -109,6 +108,14 @@ public class PostServiceImpl implements PostService { } } + @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); @@ -119,11 +126,6 @@ public class PostServiceImpl implements PostService { return postMapper.selectPage(reqVO); } - @Override - public List getPostList(PostExportReqVO reqVO) { - return postMapper.selectList(reqVO); - } - @Override public PostDO getPost(Long id) { return postMapper.selectById(id); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataService.java new file mode 100644 index 0000000..8560910 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataService.java @@ -0,0 +1,110 @@ +package co.yixiang.yshop.module.system.service.dict; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import co.yixiang.yshop.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); + + /** + * 获得指定数据类型的字典数据列表 + * + * @param dictType 字典类型 + * @return 字典数据列表 + */ + List getDictDataListByDictType(String dictType); + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java similarity index 76% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java index 022efd1..bc0331e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImpl.java @@ -4,19 +4,17 @@ import cn.hutool.core.collection.CollUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; -import co.yixiang.yshop.module.system.convert.dict.DictDataConvert; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; import co.yixiang.yshop.module.system.dal.mysql.dict.DictDataMapper; import com.google.common.annotations.VisibleForTesting; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.util.Collection; import java.util.Comparator; import java.util.List; @@ -48,22 +46,15 @@ public class DictDataServiceImpl implements DictDataService { private DictDataMapper dictDataMapper; @Override - public List getDictDataList() { - List list = dictDataMapper.selectList(); + 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 reqVO) { - return dictDataMapper.selectPage(reqVO); - } - - @Override - public List getDictDataList(DictDataExportReqVO reqVO) { - List list = dictDataMapper.selectList(reqVO); - list.sort(COMPARATOR_TYPE_AND_SORT); - return list; + public PageResult getDictDataPage(DictDataPageReqVO pageReqVO) { + return dictDataMapper.selectPage(pageReqVO); } @Override @@ -72,23 +63,29 @@ public class DictDataServiceImpl implements DictDataService { } @Override - public Long createDictData(DictDataCreateReqVO reqVO) { - // 校验正确性 - validateDictDataForCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType()); + public Long createDictData(DictDataSaveReqVO createReqVO) { + // 校验字典类型有效 + validateDictTypeExists(createReqVO.getDictType()); + // 校验字典数据的值的唯一性 + validateDictDataValueUnique(null, createReqVO.getDictType(), createReqVO.getValue()); // 插入字典类型 - DictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO); + DictDataDO dictData = BeanUtils.toBean(createReqVO, DictDataDO.class); dictDataMapper.insert(dictData); return dictData.getId(); } @Override - public void updateDictData(DictDataUpdateReqVO reqVO) { - // 校验正确性 - validateDictDataForCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType()); + public void updateDictData(DictDataSaveReqVO updateReqVO) { + // 校验自己存在 + validateDictDataExists(updateReqVO.getId()); + // 校验字典类型有效 + validateDictTypeExists(updateReqVO.getDictType()); + // 校验字典数据的值的唯一性 + validateDictDataValueUnique(updateReqVO.getId(), updateReqVO.getDictType(), updateReqVO.getValue()); // 更新字典类型 - DictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO); + DictDataDO updateObj = BeanUtils.toBean(updateReqVO, DictDataDO.class); dictDataMapper.updateById(updateObj); } @@ -102,19 +99,10 @@ public class DictDataServiceImpl implements DictDataService { } @Override - public long countByDictType(String dictType) { + public long getDictDataCountByDictType(String dictType) { return dictDataMapper.selectCountByDictType(dictType); } - private void validateDictDataForCreateOrUpdate(Long id, String value, String dictType) { - // 校验自己存在 - validateDictDataExists(id); - // 校验字典类型有效 - validateDictTypeExists(dictType); - // 校验字典数据的值的唯一性 - validateDictDataValueUnique(id, dictType, value); - } - @VisibleForTesting public void validateDictDataValueUnique(Long id, String dictType, String value) { DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value); @@ -181,4 +169,11 @@ public class DictDataServiceImpl implements DictDataService { return dictDataMapper.selectByDictTypeAndLabel(dictType, label); } + @Override + public List getDictDataListByDictType(String dictType) { + List list = dictDataMapper.selectList(DictDataDO::getDictType, dictType); + list.sort(Comparator.comparing(DictDataDO::getSort)); + return list; + } + } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeService.java new file mode 100644 index 0000000..6692dec --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeService.java @@ -0,0 +1,70 @@ +package co.yixiang.yshop.module.system.service.dict; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; + +import java.util.List; + +/** + * 字典类型 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImpl.java new file mode 100644 index 0000000..9a317b0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImpl.java @@ -0,0 +1,140 @@ +package co.yixiang.yshop.module.system.service.dict; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; +import co.yixiang.yshop.module.system.dal.mysql.dict.DictTypeMapper; +import com.google.common.annotations.VisibleForTesting; +import org.springframework.stereotype.Service; + +import jakarta.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; + +/** + * 字典类型 Service 实现类 + * + * @author yshop + */ +@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); + // 校验是否有字典数据 + 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogService.java new file mode 100644 index 0000000..75c8d85 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogService.java @@ -0,0 +1,30 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.api.logger.dto.LoginLogCreateReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.LoginLogDO; + +import jakarta.validation.Valid; + +/** + * 登录日志 Service 接口 + */ +public interface LoginLogService { + + /** + * 获得登录日志分页 + * + * @param pageReqVO 分页条件 + * @return 登录日志分页 + */ + PageResult getLoginLogPage(LoginLogPageReqVO pageReqVO); + + /** + * 创建登录日志 + * + * @param reqDTO 日志信息 + */ + void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO); + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImpl.java new file mode 100644 index 0000000..96ee719 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImpl.java @@ -0,0 +1,35 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.logger.dto.LoginLogCreateReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.LoginLogDO; +import co.yixiang.yshop.module.system.dal.mysql.logger.LoginLogMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogService.java new file mode 100644 index 0000000..1f7046f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogService.java @@ -0,0 +1,39 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; + +/** + * 操作日志 Service 接口 + * + * @author yshop + */ +public interface OperateLogService { + + /** + * 记录操作日志 + * + * @param createReqDTO 创建请求 + */ + void createOperateLog(OperateLogCreateReqDTO createReqDTO); + + /** + * 获得操作日志分页列表 + * + * @param pageReqVO 分页条件 + * @return 操作日志分页列表 + */ + PageResult getOperateLogPage(OperateLogPageReqVO pageReqVO); + + /** + * 获得操作日志分页列表 + * + * @param pageReqVO 分页条件 + * @return 操作日志分页列表 + */ + PageResult getOperateLogPage(OperateLogPageReqDTO pageReqVO); + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImpl.java new file mode 100644 index 0000000..423d8d7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImpl.java @@ -0,0 +1,44 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; +import co.yixiang.yshop.module.system.dal.mysql.logger.OperateLogMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +/** + * 操作日志 Service 实现类 + * + * @author yshop + */ +@Service +@Validated +@Slf4j +public class OperateLogServiceImpl implements OperateLogService { + + @Resource + private OperateLogMapper operateLogMapper; + + @Override + public void createOperateLog(OperateLogCreateReqDTO createReqDTO) { + OperateLogDO log = BeanUtils.toBean(createReqDTO, OperateLogDO.class); + operateLogMapper.insert(log); + } + + @Override + public PageResult getOperateLogPage(OperateLogPageReqVO pageReqVO) { + return operateLogMapper.selectPage(pageReqVO); + } + + @Override + public PageResult getOperateLogPage(OperateLogPageReqDTO pageReqDTO) { + return operateLogMapper.selectPage(pageReqDTO); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java similarity index 79% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java index 2a94605..e00a425 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountService.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.module.system.service.mail; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailAccountDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** @@ -17,33 +16,20 @@ import java.util.List; */ public interface MailAccountService { - /** - * 初始化邮箱账号的本地缓存 - */ - void initLocalCache(); - - /** - * 从缓存中获取邮箱账号 - * - * @param id 编号 - * @return 邮箱账号 - */ - MailAccountDO getMailAccountFromCache(Long id); - /** * 创建邮箱账号 * * @param createReqVO 邮箱账号信息 * @return 编号 */ - Long createMailAccount(@Valid MailAccountCreateReqVO createReqVO); + Long createMailAccount(@Valid MailAccountSaveReqVO createReqVO); /** * 修改邮箱账号 * * @param updateReqVO 邮箱账号信息 */ - void updateMailAccount(@Valid MailAccountUpdateReqVO updateReqVO); + void updateMailAccount(@Valid MailAccountSaveReqVO updateReqVO); /** * 删除邮箱账号 @@ -60,6 +46,14 @@ public interface MailAccountService { */ MailAccountDO getMailAccount(Long id); + /** + * 从缓存中获取邮箱账号 + * + * @param id 编号 + * @return 邮箱账号 + */ + MailAccountDO getMailAccountFromCache(Long id); + /** * 获取邮箱账号分页信息 * diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImpl.java new file mode 100644 index 0000000..58e6a32 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImpl.java @@ -0,0 +1,99 @@ +package co.yixiang.yshop.module.system.service.mail; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.mail.MailAccountDO; +import co.yixiang.yshop.module.system.dal.mysql.mail.MailAccountMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.MAIL_ACCOUNT_NOT_EXISTS; +import static co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java index d9d3820..0e51bc4 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImpl.java @@ -10,8 +10,8 @@ import co.yixiang.yshop.module.system.enums.mail.MailSendStatusEnum; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; -import java.util.Date; +import jakarta.annotation.Resource; +import java.time.LocalDateTime; import java.util.Map; import java.util.Objects; @@ -65,12 +65,12 @@ public class MailLogServiceImpl implements MailLogService { public void updateMailSendResult(Long logId, String messageId, Exception exception) { // 1. 成功 if (exception == null) { - mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(new Date()) + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) .setSendStatus(MailSendStatusEnum.SUCCESS.getStatus()).setSendMessageId(messageId)); return; } // 2. 失败 - mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(new Date()) + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) .setSendStatus(MailSendStatusEnum.FAILURE.getStatus()).setSendException(getRootCauseMessage(exception))); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java similarity index 86% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java index 65e56d3..d0da9b2 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImpl.java @@ -1,11 +1,8 @@ package co.yixiang.yshop.module.system.service.mail; import cn.hutool.core.util.StrUtil; -import cn.hutool.extra.mail.MailAccount; -import cn.hutool.extra.mail.MailUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; -import co.yixiang.yshop.module.system.convert.mail.MailAccountConvert; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailAccountDO; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailTemplateDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; @@ -14,11 +11,12 @@ import co.yixiang.yshop.module.system.mq.producer.mail.MailProducer; import co.yixiang.yshop.module.system.service.member.MemberService; import co.yixiang.yshop.module.system.service.user.AdminUserService; import com.google.common.annotations.VisibleForTesting; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.dromara.hutool.extra.mail.*; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; import java.util.Map; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -89,13 +87,14 @@ public class MailSendServiceImpl implements MailSendService { // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志 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(), template.getTitle(), content); + template.getNickname(), title, content); } return sendLogId; } @@ -104,11 +103,11 @@ public class MailSendServiceImpl implements MailSendService { public void doSendMail(MailSendMessage message) { // 1. 创建发送账号 MailAccountDO account = validateMailAccount(message.getAccountId()); - MailAccount mailAccount = MailAccountConvert.INSTANCE.convert(account, message.getNickname()); + MailAccount mailAccount = buildMailAccount(account, message.getNickname()); // 2. 发送邮件 try { String messageId = MailUtil.send(mailAccount, message.getMail(), - message.getTitle(), message.getContent(),true); + message.getTitle(), message.getContent(), true); // 3. 更新结果(成功) mailLogService.updateMailSendResult(message.getLogId(), messageId, null); } catch (Exception e) { @@ -117,6 +116,14 @@ public class MailSendServiceImpl implements MailSendService { } } + private MailAccount buildMailAccount(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().toCharArray()) + .setHost(account.getHost()).setPort(account.getPort()) + .setSslEnable(account.getSslEnable()).setStarttlsEnable(account.getStarttlsEnable()); + } + @VisibleForTesting MailTemplateDO validateMailTemplate(String templateCode) { // 获得邮件模板。考虑到效率,从缓存中获取 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java similarity index 81% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java index 84f900b..858a952 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateService.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.module.system.service.mail; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.mail.MailTemplateDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; import java.util.Map; @@ -18,25 +17,20 @@ import java.util.Map; */ public interface MailTemplateService { - /** - * 初始化邮件模版的本地缓存 - */ - void initLocalCache(); - /** * 邮件模版创建 * * @param createReqVO 邮件信息 * @return 编号 */ - Long createMailTemplate(@Valid MailTemplateCreateReqVO createReqVO); + Long createMailTemplate(@Valid MailTemplateSaveReqVO createReqVO); /** * 邮件模版修改 * * @param updateReqVO 邮件信息 */ - void updateMailTemplate(@Valid MailTemplateUpdateReqVO updateReqVO); + void updateMailTemplate(@Valid MailTemplateSaveReqVO updateReqVO); /** * 邮件模版删除 @@ -91,6 +85,6 @@ public interface MailTemplateService { * @param accountId 账号编号 * @return 数量 */ - long countByAccountId(Long accountId); + long getMailTemplateCountByAccountId(Long accountId); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImpl.java new file mode 100644 index 0000000..257fcff --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImpl.java @@ -0,0 +1,138 @@ +package co.yixiang.yshop.module.system.service.mail; + +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.mail.MailTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.mail.MailTemplateMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.MAIL_TEMPLATE_CODE_EXISTS; +import static co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberServiceImpl.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/member/MemberServiceImpl.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeService.java new file mode 100644 index 0000000..9f91c13 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeService.java @@ -0,0 +1,51 @@ +package co.yixiang.yshop.module.system.service.notice; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeSaveReqVO; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java index b7d83dc..3bbd163 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImpl.java @@ -1,16 +1,15 @@ package co.yixiang.yshop.module.system.service.notice; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeCreateReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeUpdateReqVO; -import co.yixiang.yshop.module.system.convert.notice.NoticeConvert; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.notice.NoticeDO; import co.yixiang.yshop.module.system.dal.mysql.notice.NoticeMapper; import com.google.common.annotations.VisibleForTesting; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND; @@ -27,18 +26,18 @@ public class NoticeServiceImpl implements NoticeService { private NoticeMapper noticeMapper; @Override - public Long createNotice(NoticeCreateReqVO reqVO) { - NoticeDO notice = NoticeConvert.INSTANCE.convert(reqVO); + public Long createNotice(NoticeSaveReqVO createReqVO) { + NoticeDO notice = BeanUtils.toBean(createReqVO, NoticeDO.class); noticeMapper.insert(notice); return notice.getId(); } @Override - public void updateNotice(NoticeUpdateReqVO reqVO) { + public void updateNotice(NoticeSaveReqVO updateReqVO) { // 校验是否存在 - validateNoticeExists(reqVO.getId()); + validateNoticeExists(updateReqVO.getId()); // 更新通知公告 - NoticeDO updateObj = NoticeConvert.INSTANCE.convert(reqVO); + NoticeDO updateObj = BeanUtils.toBean(updateReqVO, NoticeDO.class); noticeMapper.updateById(updateObj); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java index d23908c..c64b96a 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImpl.java @@ -9,13 +9,11 @@ import co.yixiang.yshop.module.system.dal.mysql.notify.NotifyMessageMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Collection; import java.util.List; import java.util.Map; -import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; - /** * 站内信 Service 实现类 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java index bd18a9a..f350dd8 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendService.java @@ -48,7 +48,7 @@ public interface NotifySendService { String templateCode, Map templateParams); default void sendBatchNotify(List mobiles, List userIds, Integer userType, - String templateCode, Map templateParams) { + String templateCode, Map templateParams) { throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!"); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java index 60ddd2c..7a5a7db 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImpl.java @@ -8,7 +8,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; import java.util.Objects; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java similarity index 80% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java index 26535b9..3387961 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateService.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.module.system.service.notify; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyTemplateDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Map; /** @@ -16,33 +15,20 @@ import java.util.Map; */ public interface NotifyTemplateService { - /** - * 初始化站内信模板的本地缓存 - */ - void initLocalCache(); - - /** - * 获得站内信模板,从缓存中 - * - * @param code 模板编码 - * @return 站内信模板 - */ - NotifyTemplateDO getNotifyTemplateByCodeFromCache(String code); - /** * 创建站内信模版 * * @param createReqVO 创建信息 * @return 编号 */ - Long createNotifyTemplate(@Valid NotifyTemplateCreateReqVO createReqVO); + Long createNotifyTemplate(@Valid NotifyTemplateSaveReqVO createReqVO); /** * 更新站内信模版 * * @param updateReqVO 更新信息 */ - void updateNotifyTemplate(@Valid NotifyTemplateUpdateReqVO updateReqVO); + void updateNotifyTemplate(@Valid NotifyTemplateSaveReqVO updateReqVO); /** * 删除站内信模版 @@ -59,6 +45,14 @@ public interface NotifyTemplateService { */ NotifyTemplateDO getNotifyTemplate(Long id); + /** + * 获得站内信模板,从缓存中 + * + * @param code 模板编码 + * @return 站内信模板 + */ + NotifyTemplateDO getNotifyTemplateByCodeFromCache(String code); + /** * 获得站内信模版分页 * diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImpl.java new file mode 100644 index 0000000..62fd1b7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImpl.java @@ -0,0 +1,138 @@ +package co.yixiang.yshop.module.system.service.notify; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.notify.NotifyTemplateMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.NOTIFY_TEMPLATE_CODE_DUPLICATE; +import static co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java index 1877b77..ba55c46 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImpl.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.*; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java similarity index 78% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java index 3d84d53..6e0c75a 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientService.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.module.system.service.oauth2; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Collection; /** @@ -18,25 +17,20 @@ import java.util.Collection; */ public interface OAuth2ClientService { - /** - * 初始化 OAuth2Client 的本地缓存 - */ - void initLocalCache(); - /** * 创建 OAuth2 客户端 * * @param createReqVO 创建信息 * @return 编号 */ - Long createOAuth2Client(@Valid OAuth2ClientCreateReqVO createReqVO); + Long createOAuth2Client(@Valid OAuth2ClientSaveReqVO createReqVO); /** * 更新 OAuth2 客户端 * * @param updateReqVO 更新信息 */ - void updateOAuth2Client(@Valid OAuth2ClientUpdateReqVO updateReqVO); + void updateOAuth2Client(@Valid OAuth2ClientSaveReqVO updateReqVO); /** * 删除 OAuth2 客户端 @@ -53,6 +47,14 @@ public interface OAuth2ClientService { */ OAuth2ClientDO getOAuth2Client(Long id); + /** + * 获得 OAuth2 客户端,从缓存中 + * + * @param clientId 客户端编号 + * @return OAuth2 客户端 + */ + OAuth2ClientDO getOAuth2ClientFromCache(String clientId); + /** * 获得 OAuth2 客户端分页 * @@ -82,7 +84,7 @@ public interface OAuth2ClientService { * @param redirectUri 重定向地址 * @return 客户端 */ - OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, - String authorizedGrantType, Collection scopes, String redirectUri); + OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, String authorizedGrantType, + Collection scopes, String redirectUri); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImpl.java new file mode 100644 index 0000000..655baf3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImpl.java @@ -0,0 +1,153 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.framework.common.util.string.StrUtils; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2ClientMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.Collection; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; + +/** + * OAuth2.0 Client Service 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java similarity index 98% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java index f2e5970..62aeb6f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImpl.java @@ -7,7 +7,7 @@ import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2CodeMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.List; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java similarity index 99% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java index 301e806..6f3c548 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImpl.java @@ -11,7 +11,7 @@ import co.yixiang.yshop.module.system.enums.ErrorCodeConstants; import co.yixiang.yshop.module.system.service.auth.AdminAuthService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 1702e0d..565c45e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -1,11 +1,15 @@ package co.yixiang.yshop.module.system.service.oauth2; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.exception.enums.GlobalErrorCodeConstants; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.date.DateUtils; +import co.yixiang.yshop.framework.security.core.LoginUser; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.module.store.dal.dataobject.storeshop.StoreShopDO; import co.yixiang.yshop.module.store.dal.mysql.storeshop.StoreShopMapper; @@ -13,17 +17,21 @@ import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token.OAuth2Acc import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2RefreshTokenDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper; import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper; import co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO; +import co.yixiang.yshop.module.system.service.user.AdminUserService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; 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.Collections; import java.util.List; +import java.util.Map; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception0; import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; @@ -47,6 +55,9 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { @Resource private OAuth2ClientService oauth2ClientService; @Resource + @Lazy // 懒加载,避免循环依赖 + private AdminUserService adminUserService; + @Resource private StoreShopMapper storeShopMapper; @Override @@ -139,10 +150,10 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { } private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2RefreshTokenDO refreshTokenDO, OAuth2ClientDO clientDO) { - OAuth2AccessTokenDO accessTokenDO = new OAuth2AccessTokenDO().setAccessToken(generateAccessToken()) .setShopId(refreshTokenDO.getShopId()) .setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType()) + .setUserInfo(buildUserInfo(refreshTokenDO.getUserId(), refreshTokenDO.getUserType())) .setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes()) .setRefreshToken(refreshTokenDO.getRefreshToken()) .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds())); @@ -164,16 +175,35 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { return refreshToken; } - private Long getShopId(Long userId){ + private Long getShopId(Long userId) { StoreShopDO storeShopDO = storeShopMapper.selectOne(new LambdaQueryWrapper() - .apply(userId >0,"FIND_IN_SET ('" + userId + "',admin_id)")); - if(storeShopDO == null) { + .apply(userId > 0, "FIND_IN_SET ('" + userId + "',admin_id)")); + if (storeShopDO == null) { return 0L; } return storeShopDO.getId(); } + /** + * 加载用户信息,方便 {@link co.yixiang.yshop.framework.security.core.LoginUser} 获取到昵称、部门等信息 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @return 用户信息 + */ + private Map buildUserInfo(Long userId, Integer userType) { + if (userType.equals(UserTypeEnum.ADMIN.getValue())) { + AdminUserDO user = adminUserService.getUser(userId); + return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname()) + .put(LoginUser.INFO_KEY_DEPT_ID, StrUtil.toStringOrNull(user.getDeptId())).build(); + } else if (userType.equals(UserTypeEnum.MEMBER.getValue())) { + // 注意:目前 Member 暂时不读取,可以按需实现 + return Collections.emptyMap(); + } + return null; + } + private static String generateAccessToken() { return IdUtil.fastSimpleUUID(); } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuService.java new file mode 100644 index 0000000..7773ab3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuService.java @@ -0,0 +1,87 @@ +package co.yixiang.yshop.module.system.service.permission; + +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; + +import java.util.Collection; +import java.util.List; + +/** + * 菜单 Service 接口 + * + * @author yshop + */ +public interface MenuService { + + /** + * 创建菜单 + * + * @param createReqVO 菜单信息 + * @return 创建出来的菜单编号 + */ + Long createMenu(MenuSaveVO createReqVO); + + /** + * 更新菜单 + * + * @param updateReqVO 菜单信息 + */ + void updateMenu(MenuSaveVO updateReqVO); + + /** + * 删除菜单 + * + * @param id 菜单编号 + */ + void deleteMenu(Long id); + + /** + * 获得所有菜单列表 + * + * @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); + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImpl.java new file mode 100644 index 0000000..493a5a4 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImpl.java @@ -0,0 +1,213 @@ +package co.yixiang.yshop.module.system.service.permission; + +import cn.hutool.core.collection.CollUtil; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.MenuMapper; +import co.yixiang.yshop.module.system.dal.redis.RedisKeyConstants; +import co.yixiang.yshop.module.system.enums.permission.MenuTypeEnum; +import co.yixiang.yshop.module.system.service.tenant.TenantService; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.Lists; +import jakarta.annotation.Resource; +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 java.util.Collection; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; +import static co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO.ID_ROOT; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; + +/** + * 菜单 Service 实现 + * + * @author yshop + */ +@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(); + } + + @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) { + // 校验是否还有子菜单 + 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) { + // 当 ids 为空时,返回一个空的实例对象 + if (CollUtil.isEmpty(ids)) { + return Lists.newArrayList(); + } + return menuMapper.selectBatchIds(ids); + } + + /** + * 校验父菜单是否合法 + *

+ * 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionService.java new file mode 100644 index 0000000..6dd4568 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionService.java @@ -0,0 +1,146 @@ +package co.yixiang.yshop.module.system.service.permission; + +import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespDTO; + +import java.util.Collection; +import java.util.Set; + +import static java.util.Collections.singleton; + +/** + * 权限 Service 接口 + *

+ * 提供用户-角色、角色-菜单、角色-部门的关联权限处理 + * + * @author yshop + */ +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); + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceImpl.java new file mode 100644 index 0000000..ed59fab --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceImpl.java @@ -0,0 +1,337 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.datapermission.core.annotation.DataPermission; +import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleMenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.UserRoleDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.RoleMenuMapper; +import co.yixiang.yshop.module.system.dal.mysql.permission.UserRoleMapper; +import co.yixiang.yshop.module.system.dal.redis.RedisKeyConstants; +import co.yixiang.yshop.module.system.enums.permission.DataScopeEnum; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import co.yixiang.yshop.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.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 jakarta.annotation.Resource; +import java.util.*; +import java.util.function.Supplier; + +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; + +/** + * 权限 Service 实现类 + * + * @author yshop + */ +@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; + + @Override + public boolean hasAnyPermissions(Long userId, String... permissions) { + // 如果为空,说明已经有权限 + if (ArrayUtil.isEmpty(permissions)) { + return true; + } + + // 获得当前登录的角色。如果为空,说明没有权限 + List roles = getEnableUserRoleListByUserIdFromCache(userId); + if (CollUtil.isEmpty(roles)) { + return false; + } + + // 情况一:遍历判断每个权限,如果有一满足,说明有权限 + for (String permission : permissions) { + if (hasAnyPermission(roles, permission)) { + return true; + } + } + + // 情况二:如果是超管,也说明有权限 + 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; + } + + /** + * 获得自身的代理对象,解决 AOP 生效问题 + * + * @return 自己 + */ + private PermissionServiceImpl getSelf() { + return SpringUtil.getBean(getClass()); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleService.java new file mode 100644 index 0000000..263a383 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleService.java @@ -0,0 +1,124 @@ +package co.yixiang.yshop.module.system.service.permission; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; + +import jakarta.validation.Valid; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * 角色 Service 接口 + * + * @author yshop + */ +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 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImpl.java new file mode 100644 index 0000000..a14b9da --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImpl.java @@ -0,0 +1,261 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.RoleMapper; +import co.yixiang.yshop.module.system.dal.redis.RedisKeyConstants; +import co.yixiang.yshop.module.system.enums.permission.DataScopeEnum; +import co.yixiang.yshop.module.system.enums.permission.RoleCodeEnum; +import co.yixiang.yshop.module.system.enums.permission.RoleTypeEnum; +import com.google.common.annotations.VisibleForTesting; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.service.impl.DiffParseFunction; +import com.mzt.logapi.starter.annotation.LogRecord; +import jakarta.annotation.Resource; +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 java.util.*; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertMap; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static co.yixiang.yshop.module.system.enums.LogRecordConstants.*; + +/** + * 角色 Service 实现类 + * + * @author yshop + */ +@Service +@Slf4j +public class RoleServiceImpl implements RoleService { + + @Resource + private PermissionService permissionService; + + @Resource + private RoleMapper roleMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + @LogRecord(type = SYSTEM_ROLE_TYPE, subType = SYSTEM_ROLE_CREATE_SUB_TYPE, bizNo = "{{#role.id}}", + success = SYSTEM_ROLE_CREATE_SUCCESS) + public Long createRole(RoleSaveReqVO createReqVO, Integer type) { + // 1. 校验角色 + validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); + + // 2. 插入到数据库 + RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class) + .setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType())) + .setStatus(CommonStatusEnum.ENABLE.getStatus()) + .setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限 + roleMapper.insert(role); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("role", role); + return role.getId(); + } + + @Override + @CacheEvict(value = RedisKeyConstants.ROLE, key = "#updateReqVO.id") + @LogRecord(type = SYSTEM_ROLE_TYPE, subType = SYSTEM_ROLE_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}", + success = SYSTEM_ROLE_UPDATE_SUCCESS) + public void updateRole(RoleSaveReqVO updateReqVO) { + // 1.1 校验是否可以更新 + RoleDO role = validateRoleForUpdate(updateReqVO.getId()); + // 1.2 校验角色的唯一字段是否重复 + validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId()); + + // 2. 更新到数据库 + RoleDO updateObj = BeanUtils.toBean(updateReqVO, RoleDO.class); + roleMapper.updateById(updateObj); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("role", role); + } + + @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") + @LogRecord(type = SYSTEM_ROLE_TYPE, subType = SYSTEM_ROLE_DELETE_SUB_TYPE, bizNo = "{{#id}}", + success = SYSTEM_ROLE_DELETE_SUCCESS) + public void deleteRole(Long id) { + // 1. 校验是否可以更新 + RoleDO role = validateRoleForUpdate(id); + + // 2.1 标记删除 + roleMapper.deleteById(id); + // 2.2 删除相关数据 + permissionService.processRoleDeleted(id); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(role, RoleSaveReqVO.class)); + LogRecordContext.putVariable("role", role); + } + + /** + * 校验角色的唯一字段是否重复 + * + * 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 + RoleDO validateRoleForUpdate(Long id) { + RoleDO role = roleMapper.selectById(id); + if (role == null) { + throw exception(ROLE_NOT_EXISTS); + } + // 内置角色,不允许删除 + if (RoleTypeEnum.SYSTEM.getType().equals(role.getType())) { + throw exception(ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE); + } + return 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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelService.java new file mode 100644 index 0000000..8e70cc0 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelService.java @@ -0,0 +1,81 @@ +package co.yixiang.yshop.module.system.service.sms; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceImpl.java new file mode 100644 index 0000000..889ceeb --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceImpl.java @@ -0,0 +1,166 @@ +package co.yixiang.yshop.module.system.service.sms; + +import cn.hutool.core.util.StrUtil; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClientFactory; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.time.Duration; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; +import static co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java index 45dabd4..ebbb4d1 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeService.java @@ -5,7 +5,7 @@ import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeSendReqDTO; import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeUseReqDTO; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * 短信验证码 Service 接口 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java index fb44e9b..25edb33 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImpl.java @@ -9,11 +9,11 @@ import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsCodeDO; import co.yixiang.yshop.module.system.dal.mysql.sms.SmsCodeMapper; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; -import co.yixiang.yshop.module.system.framework.sms.SmsCodeProperties; +import co.yixiang.yshop.module.system.framework.sms.config.SmsCodeProperties; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import static cn.hutool.core.util.RandomUtil.randomInt; @@ -67,7 +67,8 @@ public class SmsCodeServiceImpl implements SmsCodeService { } // 创建验证码记录 - String code = String.valueOf(randomInt(smsCodeProperties.getBeginCode(), smsCodeProperties.getEndCode() + 1)); + String code = String.format("%0" + smsCodeProperties.getEndCode().toString().length() + "d", + 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(); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogService.java new file mode 100644 index 0000000..ac72620 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogService.java @@ -0,0 +1,68 @@ +package co.yixiang.yshop.module.system.service.sms; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsLogDO; +import co.yixiang.yshop.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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java similarity index 80% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java index a4e1558..89166f3 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImpl.java @@ -1,20 +1,17 @@ package co.yixiang.yshop.module.system.service.sms; -import co.yixiang.yshop.framework.common.pojo.CommonResult; -import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; +import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsLogDO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; import co.yixiang.yshop.module.system.dal.mysql.sms.SmsLogMapper; -import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.system.enums.sms.SmsReceiveStatusEnum; import co.yixiang.yshop.module.system.enums.sms.SmsSendStatusEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; -import java.util.List; import java.util.Map; import java.util.Objects; @@ -55,13 +52,12 @@ public class SmsLogServiceImpl implements SmsLogService { } @Override - public void updateSmsSendResult(Long id, Integer sendCode, String sendMsg, + public void updateSmsSendResult(Long id, Boolean success, String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo) { - SmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ? - SmsSendStatusEnum.SUCCESS : SmsSendStatusEnum.FAILURE; - smsLogMapper.updateById(SmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus()) - .sendTime(LocalDateTime.now()).sendCode(sendCode).sendMsg(sendMsg) + 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()); } @@ -80,9 +76,4 @@ public class SmsLogServiceImpl implements SmsLogService { return smsLogMapper.selectPage(pageReqVO); } - @Override - public List getSmsLogList(SmsLogExportReqVO exportReqVO) { - return smsLogMapper.selectList(exportReqVO); - } - } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendService.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendService.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java similarity index 83% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java index 23b3e9d..989b258 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImpl.java @@ -1,17 +1,16 @@ package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.core.KeyValue; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.datapermission.core.annotation.DataPermission; -import co.yixiang.yshop.framework.sms.core.client.SmsClient; -import co.yixiang.yshop.framework.sms.core.client.SmsClientFactory; -import co.yixiang.yshop.framework.sms.core.client.SmsCommonResult; -import co.yixiang.yshop.framework.sms.core.client.dto.SmsReceiveRespDTO; -import co.yixiang.yshop.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; @@ -20,9 +19,10 @@ import co.yixiang.yshop.module.system.mq.producer.sms.SmsProducer; import co.yixiang.yshop.module.system.service.member.MemberService; import co.yixiang.yshop.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 jakarta.annotation.Resource; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -36,6 +36,7 @@ import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; * @author yshop */ @Service +@Slf4j public class SmsSendServiceImpl implements SmsSendService { @Resource @@ -49,9 +50,6 @@ public class SmsSendServiceImpl implements SmsSendService { @Resource private SmsLogService smsLogService; - @Resource - private SmsClientFactory smsClientFactory; - @Resource private SmsProducer smsProducer; @@ -95,7 +93,6 @@ public class SmsSendServiceImpl implements SmsSendService { // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志 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); @@ -132,7 +129,7 @@ public class SmsSendServiceImpl implements SmsSendService { /** * 将参数模板,处理成有序的 KeyValue 数组 *

- * 原因是,部分短信平台并不是使用 key 作为参数,而是数组下标,例如说腾讯云 https://cloud.tencent.com/document/product/382/39023 + * 原因是,部分短信平台并不是使用 key 作为参数,而是数组下标,例如说 腾讯云 * * @param template 短信模板 * @param templateParams 原始参数 @@ -160,20 +157,26 @@ public class SmsSendServiceImpl implements SmsSendService { @Override public void doSendSms(SmsSendMessage message) { // 获得渠道对应的 SmsClient 客户端 - SmsClient smsClient = smsClientFactory.getSmsClient(message.getChannelId()); + SmsClient smsClient = smsChannelService.getSmsClient(message.getChannelId()); Assert.notNull(smsClient, "短信客户端({}) 不存在", message.getChannelId()); // 发送短信 - SmsCommonResult sendResult = smsClient.sendSms(message.getLogId(), message.getMobile(), - message.getApiTemplateId(), message.getTemplateParams()); - smsLogService.updateSmsSendResult(message.getLogId(), sendResult.getCode(), sendResult.getMsg(), - sendResult.getApiCode(), sendResult.getApiMsg(), sendResult.getApiRequestId(), - sendResult.getData() != null ? sendResult.getData().getSerialNo() : null); + 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 = smsClientFactory.getSmsClient(channelCode); + SmsClient smsClient = smsChannelService.getSmsClient(channelCode); Assert.notNull(smsClient, "短信客户端({}) 不存在", channelCode); // 解析内容 List receiveResults = smsClient.parseSmsReceiveStatus(text); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateService.java new file mode 100644 index 0000000..ee711bf --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateService.java @@ -0,0 +1,82 @@ +package co.yixiang.yshop.module.system.service.sms; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; + +import jakarta.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImpl.java new file mode 100644 index 0000000..55349e1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImpl.java @@ -0,0 +1,199 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.sms.SmsTemplateMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.regex.Pattern; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientService.java new file mode 100644 index 0000000..c946d2e --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientService.java @@ -0,0 +1,104 @@ +package co.yixiang.yshop.module.system.service.social; + +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialClientDO; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; +import com.xingyuv.jushauth.model.AuthUser; +import me.chanjar.weixin.common.bean.WxJsapiSignature; + +import jakarta.validation.Valid; + +/** + * 社交应用 Service 接口 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImpl.java new file mode 100644 index 0000000..e8cd664 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImpl.java @@ -0,0 +1,339 @@ +package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.cache.CacheUtils; +import co.yixiang.yshop.framework.common.util.http.HttpUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialClientDO; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialClientMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +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 java.time.Duration; +import java.util.Objects; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; + +/** + * 社交应用 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserService.java new file mode 100644 index 0000000..5dff41f --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserService.java @@ -0,0 +1,89 @@ +package co.yixiang.yshop.module.system.service.social; + +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserDO; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 社交用户 Service 接口,例如说社交平台的授权登录 + * + * @author yshop + */ +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/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImpl.java new file mode 100644 index 0000000..0bdaff9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImpl.java @@ -0,0 +1,173 @@ +package co.yixiang.yshop.module.system.service.social; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import co.yixiang.yshop.framework.common.exception.ServiceException; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserBindDO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserDO; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialUserBindMapper; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialUserMapper; +import co.yixiang.yshop.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 jakarta.annotation.Resource; +import jakarta.validation.constraints.NotNull; +import java.util.Collections; +import java.util.List; + +import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; +import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.SOCIAL_USER_NOT_FOUND; + +/** + * 社交用户 Service 实现类 + * + * @author yshop + */ +@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/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java index 2e2a685..c198ce0 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageService.java @@ -1,12 +1,11 @@ package co.yixiang.yshop.module.system.service.tenant; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantPackageDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; /** @@ -22,14 +21,14 @@ public interface TenantPackageService { * @param createReqVO 创建信息 * @return 编号 */ - Long createTenantPackage(@Valid TenantPackageCreateReqVO createReqVO); + Long createTenantPackage(@Valid TenantPackageSaveReqVO createReqVO); /** * 更新租户套餐 * * @param updateReqVO 更新信息 */ - void updateTenantPackage(@Valid TenantPackageUpdateReqVO updateReqVO); + void updateTenantPackage(@Valid TenantPackageSaveReqVO updateReqVO); /** * 删除租户套餐 diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java index 3e49e08..c9b6296 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImpl.java @@ -3,19 +3,18 @@ package co.yixiang.yshop.module.system.service.tenant; import cn.hutool.core.collection.CollUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageCreateReqVO; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageUpdateReqVO; -import co.yixiang.yshop.module.system.convert.tenant.TenantPackageConvert; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantPackageDO; import co.yixiang.yshop.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.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -38,21 +37,21 @@ public class TenantPackageServiceImpl implements TenantPackageService { private TenantService tenantService; @Override - public Long createTenantPackage(TenantPackageCreateReqVO createReqVO) { + public Long createTenantPackage(TenantPackageSaveReqVO createReqVO) { // 插入 - TenantPackageDO tenantPackage = TenantPackageConvert.INSTANCE.convert(createReqVO); + TenantPackageDO tenantPackage = BeanUtils.toBean(createReqVO, TenantPackageDO.class); tenantPackageMapper.insert(tenantPackage); // 返回 return tenantPackage.getId(); } @Override - @Transactional(rollbackFor = Exception.class) - public void updateTenantPackage(TenantPackageUpdateReqVO updateReqVO) { + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + public void updateTenantPackage(TenantPackageSaveReqVO updateReqVO) { // 校验存在 TenantPackageDO tenantPackage = validateTenantPackageExists(updateReqVO.getId()); // 更新 - TenantPackageDO updateObj = TenantPackageConvert.INSTANCE.convert(updateReqVO); + TenantPackageDO updateObj = BeanUtils.toBean(updateReqVO, TenantPackageDO.class); tenantPackageMapper.updateById(updateObj); // 如果菜单发生变化,则修改每个租户的菜单 if (!CollUtil.isEqualList(tenantPackage.getMenuIds(), updateReqVO.getMenuIds())) { diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java similarity index 82% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java index 8e263e7..532f04f 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantService.java @@ -2,15 +2,13 @@ package co.yixiang.yshop.module.system.service.tenant; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantExportReqVO; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; import co.yixiang.yshop.module.system.service.tenant.handler.TenantInfoHandler; import co.yixiang.yshop.module.system.service.tenant.handler.TenantMenuHandler; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.List; import java.util.Set; @@ -27,14 +25,14 @@ public interface TenantService { * @param createReqVO 创建信息 * @return 编号 */ - Long createTenant(@Valid TenantCreateReqVO createReqVO); + Long createTenant(@Valid TenantSaveReqVO createReqVO); /** * 更新租户 * * @param updateReqVO 更新信息 */ - void updateTenant(@Valid TenantUpdateReqVO updateReqVO); + void updateTenant(@Valid TenantSaveReqVO updateReqVO); /** * 更新租户的角色菜单 @@ -67,22 +65,22 @@ public interface TenantService { */ PageResult getTenantPage(TenantPageReqVO pageReqVO); - /** - * 获得租户列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 租户列表 - */ - List getTenantList(TenantExportReqVO exportReqVO); - /** * 获得名字对应的租户 * - * @param name 组户名 + * @param name 租户名 * @return 租户 */ TenantDO getTenantByName(String name); + /** + * 获得域名对应的租户 + * + * @param website 域名 + * @return 租户 + */ + TenantDO getTenantByWebsite(String website); + /** * 获得使用指定套餐的租户数量 * @@ -128,4 +126,5 @@ public interface TenantService { * @param id 租户编号 */ void validTenant(Long id); + } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java similarity index 84% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java index 6b7d30f..2733089 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImpl.java @@ -3,18 +3,18 @@ package co.yixiang.yshop.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 co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; import co.yixiang.yshop.framework.common.util.date.DateUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.tenant.config.TenantProperties; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.framework.tenant.core.util.TenantUtils; -import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantExportReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import co.yixiang.yshop.module.system.convert.tenant.TenantConvert; import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; @@ -29,14 +29,14 @@ import co.yixiang.yshop.module.system.service.permission.RoleService; import co.yixiang.yshop.module.system.service.tenant.handler.TenantInfoHandler; import co.yixiang.yshop.module.system.service.tenant.handler.TenantMenuHandler; import co.yixiang.yshop.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.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import java.util.Objects; import java.util.Set; @@ -95,17 +95,19 @@ public class TenantServiceImpl implements TenantService { } @Override - @Transactional(rollbackFor = Exception.class) - public Long createTenant(TenantCreateReqVO createReqVO) { + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + public Long createTenant(TenantSaveReqVO createReqVO) { // 校验租户名称是否重复 validTenantNameDuplicate(createReqVO.getName(), null); + // 校验租户域名是否重复 + validTenantWebsiteDuplicate(createReqVO.getWebsite(), null); // 校验套餐被禁用 TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(createReqVO.getPackageId()); // 创建租户 - TenantDO tenant = TenantConvert.INSTANCE.convert(createReqVO); + TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class); tenantMapper.insert(tenant); - + // 创建租户的管理员 TenantUtils.execute(tenant.getId(), () -> { // 创建角色 Long roleId = createRole(tenantPackage); @@ -117,7 +119,7 @@ public class TenantServiceImpl implements TenantService { return tenant.getId(); } - private Long createUser(Long roleId, TenantCreateReqVO createReqVO) { + private Long createUser(Long roleId, TenantSaveReqVO createReqVO) { // 创建用户 Long userId = userService.createUser(TenantConvert.INSTANCE.convert02(createReqVO)); // 分配角色 @@ -127,7 +129,7 @@ public class TenantServiceImpl implements TenantService { private Long createRole(TenantPackageDO tenantPackage) { // 创建角色 - RoleCreateReqVO reqVO = new RoleCreateReqVO(); + 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()); @@ -137,17 +139,19 @@ public class TenantServiceImpl implements TenantService { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateTenant(TenantUpdateReqVO updateReqVO) { + @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 = TenantConvert.INSTANCE.convert(updateReqVO); + TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class); tenantMapper.updateById(updateObj); // 如果套餐发生变化,则修改其角色的权限 if (ObjectUtil.notEqual(tenant.getPackageId(), updateReqVO.getPackageId())) { @@ -169,12 +173,29 @@ public class TenantServiceImpl implements TenantService { } } + 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 - @Transactional(rollbackFor = Exception.class) + @DSTransactional public void updateTenantRoleMenu(Long tenantId, Set menuIds) { TenantUtils.execute(tenantId, () -> { // 获得所有角色 - List roles = roleService.getRoleListByStatus(null); + List roles = roleService.getRoleList(); roles.forEach(role -> Assert.isTrue(tenantId.equals(role.getTenantId()), "角色({}/{}) 租户不匹配", role.getId(), role.getTenantId(), tenantId)); // 兜底校验 // 重新分配每个角色的权限 @@ -186,7 +207,7 @@ public class TenantServiceImpl implements TenantService { return; } // 如果是其他角色,则去掉超过套餐的权限 - Set roleMenuIds = permissionService.getRoleMenuIds(role.getId()); + Set roleMenuIds = permissionService.getRoleMenuListByRoleId(role.getId()); roleMenuIds = CollUtil.intersectionDistinct(roleMenuIds, menuIds); permissionService.assignRoleMenu(role.getId(), roleMenuIds); log.info("[updateTenantRoleMenu][角色({}/{}) 的权限修改为({})]", role.getId(), role.getTenantId(), roleMenuIds); @@ -225,13 +246,13 @@ public class TenantServiceImpl implements TenantService { } @Override - public List getTenantList(TenantExportReqVO exportReqVO) { - return tenantMapper.selectList(exportReqVO); + public TenantDO getTenantByName(String name) { + return tenantMapper.selectByName(name); } @Override - public TenantDO getTenantByName(String name) { - return tenantMapper.selectByName(name); + public TenantDO getTenantByWebsite(String website) { + return tenantMapper.selectByWebsite(website); } @Override diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantInfoHandler.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantInfoHandler.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantInfoHandler.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantInfoHandler.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantMenuHandler.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantMenuHandler.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantMenuHandler.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/tenant/handler/TenantMenuHandler.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java index cb83c75..77d155c 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserService.java @@ -8,7 +8,7 @@ import co.yixiang.yshop.module.system.controller.admin.user.vo.user.*; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.io.InputStream; import java.util.*; @@ -22,17 +22,17 @@ public interface AdminUserService { /** * 创建用户 * - * @param reqVO 用户信息 + * @param createReqVO 用户信息 * @return 用户编号 */ - Long createUser(@Valid UserCreateReqVO reqVO); + Long createUser(@Valid UserSaveReqVO createReqVO); /** * 修改用户 * - * @param reqVO 用户信息 + * @param updateReqVO 用户信息 */ - void updateUser(@Valid UserUpdateReqVO reqVO); + void updateUser(@Valid UserSaveReqVO updateReqVO); /** * 更新用户的最后登陆信息 @@ -167,14 +167,6 @@ public interface AdminUserService { return CollectionUtils.convertMap(getUserList(ids), AdminUserDO::getId); } - /** - * 获得用户列表 - * - * @param reqVO 列表请求 - * @return 用户列表 - */ - List getUserList(UserExportReqVO reqVO); - /** * 获得用户列表,基于昵称模糊匹配 * diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java similarity index 77% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java index 49212c2..5b7cd18 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImpl.java @@ -8,12 +8,15 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.exception.ServiceException; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.CollectionUtils; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; import co.yixiang.yshop.framework.datapermission.core.util.DataPermissionUtils; import co.yixiang.yshop.module.infra.api.file.FileApi; import co.yixiang.yshop.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import co.yixiang.yshop.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; -import co.yixiang.yshop.module.system.controller.admin.user.vo.user.*; -import co.yixiang.yshop.module.system.convert.user.UserConvert; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserImportExcelVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserImportRespVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.user.vo.user.UserSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; import co.yixiang.yshop.module.system.dal.dataobject.dept.UserPostDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; @@ -24,6 +27,10 @@ import co.yixiang.yshop.module.system.service.dept.PostService; import co.yixiang.yshop.module.system.service.permission.PermissionService; import co.yixiang.yshop.module.system.service.tenant.TenantService; import com.google.common.annotations.VisibleForTesting; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.service.impl.DiffParseFunction; +import com.mzt.logapi.starter.annotation.LogRecord; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; @@ -31,7 +38,6 @@ 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.*; @@ -40,6 +46,7 @@ import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionU import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertList; import static co.yixiang.yshop.framework.common.util.collection.CollectionUtils.convertSet; import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static co.yixiang.yshop.module.system.enums.LogRecordConstants.*; /** * 后台用户 Service 实现类 @@ -76,51 +83,64 @@ public class AdminUserServiceImpl implements AdminUserService { @Override @Transactional(rollbackFor = Exception.class) - public Long createUser(UserCreateReqVO reqVO) { - // 校验账户配合 + @LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_CREATE_SUB_TYPE, bizNo = "{{#user.id}}", + success = SYSTEM_USER_CREATE_SUCCESS) + public Long createUser(UserSaveReqVO createReqVO) { + // 1.1 校验账户配合 tenantService.handleTenantInfo(tenant -> { long count = userMapper.selectCount(); if (count >= tenant.getAccountCount()) { throw exception(USER_COUNT_MAX, tenant.getAccountCount()); } }); - // 校验正确性 - validateUserForCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), - reqVO.getDeptId(), reqVO.getPostIds()); - // 插入用户 - AdminUserDO user = UserConvert.INSTANCE.convert(reqVO); + // 1.2 校验正确性 + validateUserForCreateOrUpdate(null, createReqVO.getUsername(), + createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds()); + // 2.1 插入用户 + AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class); user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 - user.setPassword(encodePassword(reqVO.getPassword())); // 加密密码 + user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码 userMapper.insert(user); - // 插入关联岗位 + // 2.2 插入关联岗位 if (CollectionUtil.isNotEmpty(user.getPostIds())) { userPostMapper.insertBatch(convertList(user.getPostIds(), postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId))); } + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("user", user); return user.getId(); } @Override @Transactional(rollbackFor = Exception.class) - public void updateUser(UserUpdateReqVO reqVO) { - // 校验正确性 - validateUserForCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), - reqVO.getDeptId(), reqVO.getPostIds()); - // 更新用户 - AdminUserDO updateObj = UserConvert.INSTANCE.convert(reqVO); + @LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}", + success = SYSTEM_USER_UPDATE_SUCCESS) + public void updateUser(UserSaveReqVO updateReqVO) { + updateReqVO.setPassword(null); // 特殊:此处不更新密码 + // 1. 校验正确性 + AdminUserDO oldUser = validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(), + updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds()); + + // 2.1 更新用户 + AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class); userMapper.updateById(updateObj); - // 更新岗位 - updateUserPost(reqVO, updateObj); + // 2.2 更新岗位 + updateUserPost(updateReqVO, updateObj); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldUser, UserSaveReqVO.class)); + LogRecordContext.putVariable("user", oldUser); } - private void updateUserPost(UserUpdateReqVO reqVO, AdminUserDO updateObj) { + private void updateUserPost(UserSaveReqVO reqVO, AdminUserDO updateObj) { Long userId = reqVO.getId(); Set dbPostIds = convertSet(userPostMapper.selectListByUserId(userId), UserPostDO::getPostId); // 计算新增和删除的岗位编号 - Set postIds = updateObj.getPostIds(); + 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))); @@ -142,7 +162,7 @@ public class AdminUserServiceImpl implements AdminUserService { validateEmailUnique(id, reqVO.getEmail()); validateMobileUnique(id, reqVO.getMobile()); // 执行更新 - userMapper.updateById(UserConvert.INSTANCE.convert(reqVO).setId(id)); + userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id)); } @Override @@ -156,7 +176,7 @@ public class AdminUserServiceImpl implements AdminUserService { } @Override - public String updateUserAvatar(Long id, InputStream avatarFile) throws Exception { + public String updateUserAvatar(Long id, InputStream avatarFile) { validateUserExists(id); // 存储文件 String avatar = fileApi.createFile(IoUtil.readBytes(avatarFile)); @@ -169,14 +189,21 @@ public class AdminUserServiceImpl implements AdminUserService { } @Override + @LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_UPDATE_PASSWORD_SUB_TYPE, bizNo = "{{#id}}", + success = SYSTEM_USER_UPDATE_PASSWORD_SUCCESS) public void updateUserPassword(Long id, String password) { - // 校验用户存在 - validateUserExists(id); - // 更新密码 + // 1. 校验用户存在 + AdminUserDO user = validateUserExists(id); + + // 2. 更新密码 AdminUserDO updateObj = new AdminUserDO(); updateObj.setId(id); updateObj.setPassword(encodePassword(password)); // 加密密码 userMapper.updateById(updateObj); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("user", user); + LogRecordContext.putVariable("newPassword", updateObj.getPassword()); } @Override @@ -192,15 +219,21 @@ public class AdminUserServiceImpl implements AdminUserService { @Override @Transactional(rollbackFor = Exception.class) + @LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_DELETE_SUB_TYPE, bizNo = "{{#id}}", + success = SYSTEM_USER_DELETE_SUCCESS) public void deleteUser(Long id) { - // 校验用户存在 - validateUserExists(id); - // 删除用户 + // 1. 校验用户存在 + AdminUserDO user = validateUserExists(id); + + // 2.1 删除用户 userMapper.deleteById(id); - // 删除用户关联数据 + // 2.2 删除用户关联数据 permissionService.processUserDeleted(id); - // 删除用户岗位 + // 2.2 删除用户岗位 userPostMapper.deleteByUserId(id); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("user", user); } @Override @@ -271,11 +304,6 @@ public class AdminUserServiceImpl implements AdminUserService { }); } - @Override - public List getUserList(UserExportReqVO reqVO) { - return userMapper.selectList(reqVO, getDeptCondition(reqVO.getDeptId())); - } - @Override public List getUserListByNickname(String nickname) { return userMapper.selectListByNickname(nickname); @@ -290,18 +318,17 @@ public class AdminUserServiceImpl implements AdminUserService { if (deptId == null) { return Collections.emptySet(); } - Set deptIds = convertSet(deptService.getDeptListByParentIdFromCache( - deptId, true), DeptDO::getId); + 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) { + private AdminUserDO validateUserForCreateOrUpdate(Long id, String username, String mobile, String email, + Long deptId, Set postIds) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 - DataPermissionUtils.executeIgnore(() -> { + return DataPermissionUtils.executeIgnore(() -> { // 校验用户存在 - validateUserExists(id); + AdminUserDO user = validateUserExists(id); // 校验用户名唯一 validateUsernameUnique(id, username); // 校验手机号唯一 @@ -312,18 +339,20 @@ public class AdminUserServiceImpl implements AdminUserService { deptService.validateDeptList(CollectionUtils.singleton(deptId)); // 校验岗位处于开启状态 postService.validatePostList(postIds); + return user; }); } @VisibleForTesting - void validateUserExists(Long id) { + AdminUserDO validateUserExists(Long id) { if (id == null) { - return; + return null; } AdminUserDO user = userMapper.selectById(id); if (user == null) { throw exception(USER_NOT_EXISTS); } + return user; } @VisibleForTesting @@ -416,7 +445,7 @@ public class AdminUserServiceImpl implements AdminUserService { // 判断如果不存在,在进行插入 AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername()); if (existUser == null) { - userMapper.insert(UserConvert.INSTANCE.convert(importUser) + userMapper.insert(BeanUtils.toBean(importUser, AdminUserDO.class) .setPassword(encodePassword(userInitPassword)).setPostIds(new HashSet<>())); // 设置默认密码及空岗位编号数组 respVO.getCreateUsernames().add(importUser.getUsername()); return; @@ -426,7 +455,7 @@ public class AdminUserServiceImpl implements AdminUserService { respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg()); return; } - AdminUserDO updateUser = UserConvert.INSTANCE.convert(importUser); + AdminUserDO updateUser = BeanUtils.toBean(importUser, AdminUserDO.class); updateUser.setId(existUser.getId()); userMapper.updateById(updateUser); respVO.getUpdateUsernames().add(importUser.getUsername()); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/util/oauth2/OAuth2Utils.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/util/oauth2/OAuth2Utils.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/util/oauth2/OAuth2Utils.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/util/oauth2/OAuth2Utils.java diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService new file mode 100644 index 0000000..e18f2f9 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService @@ -0,0 +1 @@ +co.yixiang.yshop.module.system.framework.captcha.core.RedisCaptchaServiceImpl diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg1.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg1.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg2.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg2.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg3.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg3.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg4.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg4.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg5.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg5.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg6.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg6.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg7.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg7.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg8.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg8.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg9.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/original/bg9.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/1.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/1.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/10.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/10.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/11.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/11.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/12.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/12.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/13.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/13.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/14.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/14.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/15.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/15.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/16.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/16.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/17.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/17.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/18.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/18.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/19.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/19.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/8.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/8.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/9.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/11/9.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/2.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/2.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/3.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/3.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/4.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/jigsaw/slidingBlock/4.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg1.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg1.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg10.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg10.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg2.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg2.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg3.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg3.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg4.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg4.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg5.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg5.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg6.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg6.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg7.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg7.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg8.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg8.png diff --git a/yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg9.png similarity index 100% rename from yshop-drink/yshop-framework/yshop-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/main/resources/images/pic-click/bg9.png diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java similarity index 96% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java index 52b6fea..2842ddd 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java @@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -39,6 +39,9 @@ import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServic import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomString; import static java.util.Arrays.asList; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; @@ -289,7 +292,10 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest { scope, redirectUri, true, state); // 断言 assertEquals(0, result.getCode()); - assertEquals("https://www.yixiang.co#access_token=test_access_token&token_type=bearer&state=test&expires_in=30&scope=read", result.getData()); + assertThat(result.getData(), anyOf( // 29 和 30 都有一定概率,主要是时间计算 + is("https://www.yixiang.co#access_token=test_access_token&token_type=bearer&state=test&expires_in=29&scope=read"), + is("https://www.yixiang.co#access_token=test_access_token&token_type=bearer&state=test&expires_in=30&scope=read") + )); } @Test // autoApprove = false,通过 + code diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClientTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClientTest.java new file mode 100644 index 0000000..f6a5fb5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/AliyunSmsClientTest.java @@ -0,0 +1,187 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.util.ReflectUtil; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.collection.MapUtils; +import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; +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.google.common.collect.Lists; +import org.junit.jupiter.api.Test; +import org.mockito.ArgumentMatcher; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +import java.time.LocalDateTime; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.when; + +/** + * {@link AliyunSmsClient} 的单元测试 + * + * @author yshop + */ +public class AliyunSmsClientTest extends BaseMockitoUnitTest { + + private final SmsChannelProperties properties = new SmsChannelProperties() + .setApiKey(randomString()) // 随机一个 apiKey,避免构建报错 + .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错 + .setSignature("yshop"); + + @InjectMocks + private final AliyunSmsClient smsClient = new AliyunSmsClient(properties); + + @Mock + private IAcsClient client; + + @Test + public void testDoInit() { + // 准备参数 + // mock 方法 + + // 调用 + smsClient.doInit(); + // 断言 + assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "acsClient")); + } + + @Test + public void tesSendSms_success() throws Throwable { + // 准备参数 + Long sendLogId = randomLongId(); + String mobile = randomString(); + String apiTemplateId = randomString(); + List> templateParams = Lists.newArrayList( + new KeyValue<>("code", 1234), new KeyValue<>("op", "login")); + // mock 方法 + SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> o.setCode("OK")); + when(client.getAcsResponse(argThat((ArgumentMatcher) acsRequest -> { + assertEquals(mobile, acsRequest.getPhoneNumbers()); + assertEquals(properties.getSignature(), acsRequest.getSignName()); + assertEquals(apiTemplateId, acsRequest.getTemplateCode()); + assertEquals(toJsonString(MapUtils.convertMap(templateParams)), acsRequest.getTemplateParam()); + assertEquals(sendLogId.toString(), acsRequest.getOutId()); + return true; + }))).thenReturn(response); + + // 调用 + SmsSendRespDTO result = smsClient.sendSms(sendLogId, mobile, + apiTemplateId, templateParams); + // 断言 + assertTrue(result.getSuccess()); + assertEquals(response.getRequestId(), result.getApiRequestId()); + assertEquals(response.getCode(), result.getApiCode()); + assertEquals(response.getMessage(), result.getApiMsg()); + assertEquals(response.getBizId(), result.getSerialNo()); + } + + @Test + public void tesSendSms_fail() throws Throwable { + // 准备参数 + Long sendLogId = randomLongId(); + String mobile = randomString(); + String apiTemplateId = randomString(); + List> templateParams = Lists.newArrayList( + new KeyValue<>("code", 1234), new KeyValue<>("op", "login")); + // mock 方法 + SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> o.setCode("ERROR")); + when(client.getAcsResponse(argThat((ArgumentMatcher) acsRequest -> { + assertEquals(mobile, acsRequest.getPhoneNumbers()); + assertEquals(properties.getSignature(), acsRequest.getSignName()); + assertEquals(apiTemplateId, acsRequest.getTemplateCode()); + assertEquals(toJsonString(MapUtils.convertMap(templateParams)), acsRequest.getTemplateParam()); + assertEquals(sendLogId.toString(), acsRequest.getOutId()); + return true; + }))).thenReturn(response); + + // 调用 + SmsSendRespDTO result = smsClient.sendSms(sendLogId, mobile, apiTemplateId, templateParams); + // 断言 + assertFalse(result.getSuccess()); + assertEquals(response.getRequestId(), result.getApiRequestId()); + assertEquals(response.getCode(), result.getApiCode()); + assertEquals(response.getMessage(), result.getApiMsg()); + assertEquals(response.getBizId(), result.getSerialNo()); + } + + @Test + public void testParseSmsReceiveStatus() { + // 准备参数 + String text = "[\n" + + " {\n" + + " \"phone_number\" : \"13900000001\",\n" + + " \"send_time\" : \"2017-01-01 11:12:13\",\n" + + " \"report_time\" : \"2017-02-02 22:23:24\",\n" + + " \"success\" : true,\n" + + " \"err_code\" : \"DELIVERED\",\n" + + " \"err_msg\" : \"用户接收成功\",\n" + + " \"sms_size\" : \"1\",\n" + + " \"biz_id\" : \"12345\",\n" + + " \"out_id\" : \"67890\"\n" + + " }\n" + + "]"; + // mock 方法 + + // 调用 + List statuses = smsClient.parseSmsReceiveStatus(text); + // 断言 + assertEquals(1, statuses.size()); + assertTrue(statuses.get(0).getSuccess()); + assertEquals("DELIVERED", statuses.get(0).getErrorCode()); + assertEquals("用户接收成功", statuses.get(0).getErrorMsg()); + assertEquals("13900000001", statuses.get(0).getMobile()); + assertEquals(LocalDateTime.of(2017, 2, 2, 22, 23, 24), + statuses.get(0).getReceiveTime()); + assertEquals("12345", statuses.get(0).getSerialNo()); + assertEquals(67890L, statuses.get(0).getLogId()); + } + + @Test + public void testGetSmsTemplate() throws Throwable { + // 准备参数 + String apiTemplateId = randomString(); + // mock 方法 + QuerySmsTemplateResponse response = randomPojo(QuerySmsTemplateResponse.class, o -> { + o.setCode("OK"); + o.setTemplateStatus(1); // 设置模板通过 + }); + when(client.getAcsResponse(argThat((ArgumentMatcher) acsRequest -> { + assertEquals(apiTemplateId, acsRequest.getTemplateCode()); + return true; + }))).thenReturn(response); + + // 调用 + SmsTemplateRespDTO result = smsClient.getSmsTemplate(apiTemplateId); + // 断言 + assertEquals(response.getTemplateCode(), result.getId()); + assertEquals(response.getTemplateContent(), result.getContent()); + assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), result.getAuditStatus()); + assertEquals(response.getReason(), result.getAuditReason()); + } + + @Test + public void testConvertSmsTemplateAuditStatus() { + assertEquals(SmsTemplateAuditStatusEnum.CHECKING.getStatus(), + smsClient.convertSmsTemplateAuditStatus(0)); + assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), + smsClient.convertSmsTemplateAuditStatus(1)); + assertEquals(SmsTemplateAuditStatusEnum.FAIL.getStatus(), + smsClient.convertSmsTemplateAuditStatus(2)); + assertThrows(IllegalArgumentException.class, () -> smsClient.convertSmsTemplateAuditStatus(3), + "未知审核状态(3)"); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClientTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClientTest.java new file mode 100644 index 0000000..47a6a87 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/framework/sms/core/client/impl/TencentSmsClientTest.java @@ -0,0 +1,230 @@ +package co.yixiang.yshop.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.util.ReflectUtil; +import co.yixiang.yshop.framework.common.core.KeyValue; +import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; +import co.yixiang.yshop.framework.common.util.collection.MapUtils; +import co.yixiang.yshop.framework.common.util.json.JsonUtils; +import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; +import com.google.common.collect.Lists; +import com.tencentcloudapi.sms.v20210111.SmsClient; +import com.tencentcloudapi.sms.v20210111.models.DescribeSmsTemplateListResponse; +import com.tencentcloudapi.sms.v20210111.models.DescribeTemplateListStatus; +import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse; +import com.tencentcloudapi.sms.v20210111.models.SendStatus; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.when; + +/** + * {@link TencentSmsClient} 的单元测试 + * + * @author shiwp + */ +public class TencentSmsClientTest extends BaseMockitoUnitTest { + + private final SmsChannelProperties properties = new SmsChannelProperties() + .setApiKey(randomString() + " " + randomString()) // 随机一个 apiKey,避免构建报错 + .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错 + .setSignature("yshop"); + + @InjectMocks + private TencentSmsClient smsClient = new TencentSmsClient(properties); + + @Mock + private SmsClient client; + + @Test + public void testDoInit() { + // 准备参数 + // mock 方法 + + // 调用 + smsClient.doInit(); + // 断言 + assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "client")); + } + + @Test + public void testRefresh() { + // 准备参数 + SmsChannelProperties p = new SmsChannelProperties() + .setApiKey(randomString() + " " + randomString()) // 随机一个 apiKey,避免构建报错 + .setApiSecret(randomString()) // 随机一个 apiSecret,避免构建报错 + .setSignature("yshop"); + // 调用 + smsClient.refresh(p); + // 断言 + assertNotSame(client, ReflectUtil.getFieldValue(smsClient, "client")); + } + + @Test + public void testDoSendSms_success() throws Throwable { + // 准备参数 + Long sendLogId = randomLongId(); + String mobile = randomString(); + String apiTemplateId = randomString(); + List> templateParams = Lists.newArrayList( + new KeyValue<>("1", 1234), new KeyValue<>("2", "login")); + String requestId = randomString(); + String serialNo = randomString(); + // mock 方法 + SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> { + o.setRequestId(requestId); + SendStatus[] sendStatuses = new SendStatus[1]; + o.setSendStatusSet(sendStatuses); + SendStatus sendStatus = new SendStatus(); + sendStatuses[0] = sendStatus; + sendStatus.setCode(TencentSmsClient.API_CODE_SUCCESS); + sendStatus.setMessage("send success"); + sendStatus.setSerialNo(serialNo); + }); + when(client.SendSms(argThat(request -> { + assertEquals(mobile, request.getPhoneNumberSet()[0]); + assertEquals(properties.getSignature(), request.getSignName()); + assertEquals(apiTemplateId, request.getTemplateId()); + assertEquals(toJsonString(ArrayUtils.toArray(new ArrayList<>(MapUtils.convertMap(templateParams).values()), String::valueOf)), + toJsonString(request.getTemplateParamSet())); + assertEquals(sendLogId, ReflectUtil.getFieldValue(JsonUtils.parseObject(request.getSessionContext(), TencentSmsClient.SessionContext.class), "logId")); + return true; + }))).thenReturn(response); + + // 调用 + SmsSendRespDTO result = smsClient.sendSms(sendLogId, mobile, apiTemplateId, templateParams); + // 断言 + assertTrue(result.getSuccess()); + assertEquals(response.getRequestId(), result.getApiRequestId()); + assertEquals(response.getSendStatusSet()[0].getCode(), result.getApiCode()); + assertEquals(response.getSendStatusSet()[0].getMessage(), result.getApiMsg()); + assertEquals(response.getSendStatusSet()[0].getSerialNo(), result.getSerialNo()); + } + + @Test + public void testDoSendSms_fail() throws Throwable { + // 准备参数 + Long sendLogId = randomLongId(); + String mobile = randomString(); + String apiTemplateId = randomString(); + List> templateParams = Lists.newArrayList( + new KeyValue<>("1", 1234), new KeyValue<>("2", "login")); + String requestId = randomString(); + String serialNo = randomString(); + // mock 方法 + SendSmsResponse response = randomPojo(SendSmsResponse.class, o -> { + o.setRequestId(requestId); + SendStatus[] sendStatuses = new SendStatus[1]; + o.setSendStatusSet(sendStatuses); + SendStatus sendStatus = new SendStatus(); + sendStatuses[0] = sendStatus; + sendStatus.setCode("ERROR"); + sendStatus.setMessage("send success"); + sendStatus.setSerialNo(serialNo); + }); + when(client.SendSms(argThat(request -> { + assertEquals(mobile, request.getPhoneNumberSet()[0]); + assertEquals(properties.getSignature(), request.getSignName()); + assertEquals(apiTemplateId, request.getTemplateId()); + assertEquals(toJsonString(ArrayUtils.toArray(new ArrayList<>(MapUtils.convertMap(templateParams).values()), String::valueOf)), + toJsonString(request.getTemplateParamSet())); + assertEquals(sendLogId, ReflectUtil.getFieldValue(JsonUtils.parseObject(request.getSessionContext(), TencentSmsClient.SessionContext.class), "logId")); + return true; + }))).thenReturn(response); + + // 调用 + SmsSendRespDTO result = smsClient.sendSms(sendLogId, mobile, apiTemplateId, templateParams); + // 断言 + assertFalse(result.getSuccess()); + assertEquals(response.getRequestId(), result.getApiRequestId()); + assertEquals(response.getSendStatusSet()[0].getCode(), result.getApiCode()); + assertEquals(response.getSendStatusSet()[0].getMessage(), result.getApiMsg()); + assertEquals(response.getSendStatusSet()[0].getSerialNo(), result.getSerialNo()); + } + + @Test + public void testParseSmsReceiveStatus() { + // 准备参数 + String text = "[\n" + + " {\n" + + " \"user_receive_time\": \"2015-10-17 08:03:04\",\n" + + " \"nationcode\": \"86\",\n" + + " \"mobile\": \"13900000001\",\n" + + " \"report_status\": \"SUCCESS\",\n" + + " \"errmsg\": \"DELIVRD\",\n" + + " \"description\": \"用户短信送达成功\",\n" + + " \"sid\": \"12345\",\n" + + " \"ext\": {\"logId\":\"67890\"}\n" + + " }\n" + + "]"; + // mock 方法 + + // 调用 + List statuses = smsClient.parseSmsReceiveStatus(text); + // 断言 + assertEquals(1, statuses.size()); + assertTrue(statuses.get(0).getSuccess()); + assertEquals("DELIVRD", statuses.get(0).getErrorCode()); + assertEquals("用户短信送达成功", statuses.get(0).getErrorMsg()); + assertEquals("13900000001", statuses.get(0).getMobile()); + assertEquals(LocalDateTime.of(2015, 10, 17, 8, 3, 4), statuses.get(0).getReceiveTime()); + assertEquals("12345", statuses.get(0).getSerialNo()); + assertEquals(67890L, statuses.get(0).getLogId()); + } + + @Test + public void testGetSmsTemplate() throws Throwable { + // 准备参数 + Long apiTemplateId = randomLongId(); + String requestId = randomString(); + + // mock 方法 + DescribeSmsTemplateListResponse response = randomPojo(DescribeSmsTemplateListResponse.class, o -> { + DescribeTemplateListStatus[] describeTemplateListStatuses = new DescribeTemplateListStatus[1]; + DescribeTemplateListStatus templateStatus = new DescribeTemplateListStatus(); + templateStatus.setTemplateId(apiTemplateId); + templateStatus.setStatusCode(0L);// 设置模板通过 + describeTemplateListStatuses[0] = templateStatus; + o.setDescribeTemplateStatusSet(describeTemplateListStatuses); + o.setRequestId(requestId); + }); + when(client.DescribeSmsTemplateList(argThat(request -> { + assertEquals(apiTemplateId, request.getTemplateIdSet()[0]); + return true; + }))).thenReturn(response); + + // 调用 + SmsTemplateRespDTO result = smsClient.getSmsTemplate(apiTemplateId.toString()); + // 断言 + assertEquals(response.getDescribeTemplateStatusSet()[0].getTemplateId().toString(), result.getId()); + assertEquals(response.getDescribeTemplateStatusSet()[0].getTemplateContent(), result.getContent()); + assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), result.getAuditStatus()); + assertEquals(response.getDescribeTemplateStatusSet()[0].getReviewReply(), result.getAuditReason()); + } + + @Test + public void testConvertSmsTemplateAuditStatus() { + assertEquals(SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), + smsClient.convertSmsTemplateAuditStatus(0)); + assertEquals(SmsTemplateAuditStatusEnum.CHECKING.getStatus(), + smsClient.convertSmsTemplateAuditStatus(1)); + assertEquals(SmsTemplateAuditStatusEnum.FAIL.getStatus(), + smsClient.convertSmsTemplateAuditStatus(-1)); + assertThrows(IllegalArgumentException.class, () -> smsClient.convertSmsTemplateAuditStatus(3), + "未知审核状态(3)"); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java index 8d9195b..f448ecc 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/auth/AdminAuthServiceImplTest.java @@ -6,6 +6,7 @@ import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; import co.yixiang.yshop.module.system.api.sms.SmsCodeApi; import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; import co.yixiang.yshop.module.system.controller.admin.auth.vo.*; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; @@ -20,16 +21,15 @@ import co.yixiang.yshop.module.system.service.social.SocialUserService; import co.yixiang.yshop.module.system.service.user.AdminUserService; import com.xingyuv.captcha.model.common.ResponseModel; import com.xingyuv.captcha.service.CaptchaService; +import jakarta.annotation.Resource; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.Validation; +import jakarta.validation.Validator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; -import javax.validation.ConstraintViolationException; -import javax.validation.Validation; -import javax.validation.Validator; - import static cn.hutool.core.util.RandomUtil.randomEle; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; @@ -148,7 +148,7 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { ); } - @Test + @Test public void testLogin_success() { // 准备参数 AuthLoginReqVO reqVO = randomPojo(AuthLoginReqVO.class, o -> @@ -174,9 +174,9 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { assertPojoEquals(accessTokenDO, loginRespVO); // 校验调用参数 verify(loginLogService).createLoginLog( - argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) - && o.getResult().equals(LoginResultEnum.SUCCESS.getResult()) - && o.getUserId().equals(user.getId())) + argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) + && o.getResult().equals(LoginResultEnum.SUCCESS.getResult()) + && o.getUserId().equals(user.getId())) ); verify(socialUserService).bindSocialUser(eq(new SocialUserBindReqDTO( user.getId(), UserTypeEnum.ADMIN.getValue(), @@ -207,8 +207,8 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { public void testSmsLogin_success() { // 准备参数 String mobile = randomString(); - String scene = randomString(); - AuthSmsLoginReqVO reqVO = new AuthSmsLoginReqVO(mobile, scene); + String code = randomString(); + AuthSmsLoginReqVO reqVO = new AuthSmsLoginReqVO(mobile, code); // mock 方法(用户信息) AdminUserDO user = randomPojo(AdminUserDO.class, o -> o.setId(1L)); when(userService.getUserByMobile(eq(mobile))).thenReturn(user); @@ -235,8 +235,8 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { AuthSocialLoginReqVO reqVO = randomPojo(AuthSocialLoginReqVO.class); // mock 方法(绑定的用户编号) Long userId = 1L; - when(socialUserService.getBindUserId(eq(UserTypeEnum.ADMIN.getValue()), eq(reqVO.getType()), - eq(reqVO.getCode()), eq(reqVO.getState()))).thenReturn(userId); + when(socialUserService.getSocialUserByCode(eq(UserTypeEnum.ADMIN.getValue()), eq(reqVO.getType()), + eq(reqVO.getCode()), eq(reqVO.getState()))).thenReturn(new SocialUserRespDTO(randomString(), randomString(), randomString(), userId)); // mock(用户) AdminUserDO user = randomPojo(AdminUserDO.class, o -> o.setId(userId)); when(userService.getUser(eq(userId))).thenReturn(user); @@ -317,8 +317,8 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { assertServiceException(() -> authService.validateCaptcha(reqVO), AUTH_LOGIN_CAPTCHA_CODE_ERROR, "就是不对"); // 校验调用参数 verify(loginLogService).createLoginLog( - argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) - && o.getResult().equals(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())) + argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) + && o.getResult().equals(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())) ); } @@ -349,8 +349,9 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest { // 调用 authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType()); // 校验调用参数 - verify(loginLogService).createLoginLog(argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGOUT_SELF.getType()) - && o.getResult().equals(LoginResultEnum.SUCCESS.getResult())) + verify(loginLogService).createLoginLog( + argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGOUT_SELF.getType()) + && o.getResult().equals(LoginResultEnum.SUCCESS.getResult())) ); // 调用,并校验 diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImplTest.java new file mode 100644 index 0000000..dbe3ca5 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/DeptServiceImplTest.java @@ -0,0 +1,296 @@ +package co.yixiang.yshop.module.system.service.dept; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.util.object.ObjectUtils; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.mysql.dept.DeptMapper; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.Arrays; +import java.util.List; +import java.util.Set; + +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link DeptServiceImpl} 的单元测试类 + * + * @author niudehua + */ +@Import(DeptServiceImpl.class) +public class DeptServiceImplTest extends BaseDbUnitTest { + + @Resource + private DeptServiceImpl deptService; + @Resource + private DeptMapper deptMapper; + + @Test + public void testCreateDept() { + // 准备参数 + DeptSaveReqVO reqVO = randomPojo(DeptSaveReqVO.class, o -> { + o.setId(null); // 防止 id 被设置 + o.setParentId(DeptDO.PARENT_ID_ROOT); + o.setStatus(randomCommonStatus()); + }); + + // 调用 + Long deptId = deptService.createDept(reqVO); + // 断言 + assertNotNull(deptId); + // 校验记录的属性是否正确 + DeptDO deptDO = deptMapper.selectById(deptId); + assertPojoEquals(reqVO, deptDO, "id"); + } + + @Test + public void testUpdateDept() { + // mock 数据 + DeptDO dbDeptDO = randomPojo(DeptDO.class, o -> o.setStatus(randomCommonStatus())); + deptMapper.insert(dbDeptDO);// @Sql: 先插入出一条存在的数据 + // 准备参数 + DeptSaveReqVO reqVO = randomPojo(DeptSaveReqVO.class, o -> { + // 设置更新的 ID + o.setParentId(DeptDO.PARENT_ID_ROOT); + o.setId(dbDeptDO.getId()); + o.setStatus(randomCommonStatus()); + }); + + // 调用 + deptService.updateDept(reqVO); + // 校验是否更新正确 + DeptDO deptDO = deptMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, deptDO); + } + + @Test + public void testDeleteDept_success() { + // mock 数据 + DeptDO dbDeptDO = randomPojo(DeptDO.class); + deptMapper.insert(dbDeptDO);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbDeptDO.getId(); + + // 调用 + deptService.deleteDept(id); + // 校验数据不存在了 + assertNull(deptMapper.selectById(id)); + } + + @Test + public void testDeleteDept_exitsChildren() { + // mock 数据 + DeptDO parentDept = randomPojo(DeptDO.class); + deptMapper.insert(parentDept);// @Sql: 先插入出一条存在的数据 + // 准备参数 + DeptDO childrenDeptDO = randomPojo(DeptDO.class, o -> { + o.setParentId(parentDept.getId()); + o.setStatus(randomCommonStatus()); + }); + // 插入子部门 + deptMapper.insert(childrenDeptDO); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.deleteDept(parentDept.getId()), DEPT_EXITS_CHILDREN); + } + + @Test + public void testValidateDeptExists_notFound() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateDeptExists(id), DEPT_NOT_FOUND); + } + + @Test + public void testValidateParentDept_parentError() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateParentDept(id, id), + DEPT_PARENT_ERROR); + } + + @Test + public void testValidateParentDept_parentIsChild() { + // mock 数据(父节点) + DeptDO parentDept = randomPojo(DeptDO.class); + deptMapper.insert(parentDept); + // mock 数据(子节点) + DeptDO childDept = randomPojo(DeptDO.class, o -> { + o.setParentId(parentDept.getId()); + }); + deptMapper.insert(childDept); + + // 准备参数 + Long id = parentDept.getId(); + Long parentId = childDept.getId(); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateParentDept(id, parentId), DEPT_PARENT_IS_CHILD); + } + + @Test + public void testValidateNameUnique_duplicate() { + // mock 数据 + DeptDO deptDO = randomPojo(DeptDO.class); + deptMapper.insert(deptDO); + + // 准备参数 + Long id = randomLongId(); + Long parentId = deptDO.getParentId(); + String name = deptDO.getName(); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateDeptNameUnique(id, parentId, name), + DEPT_NAME_DUPLICATE); + } + + @Test + public void testGetDept() { + // mock 数据 + DeptDO deptDO = randomPojo(DeptDO.class); + deptMapper.insert(deptDO); + // 准备参数 + Long id = deptDO.getId(); + + // 调用 + DeptDO dbDept = deptService.getDept(id); + // 断言 + assertEquals(deptDO, dbDept); + } + + @Test + public void testGetDeptList_ids() { + // mock 数据 + DeptDO deptDO01 = randomPojo(DeptDO.class); + deptMapper.insert(deptDO01); + DeptDO deptDO02 = randomPojo(DeptDO.class); + deptMapper.insert(deptDO02); + // 准备参数 + List ids = Arrays.asList(deptDO01.getId(), deptDO02.getId()); + + // 调用 + List deptDOList = deptService.getDeptList(ids); + // 断言 + assertEquals(2, deptDOList.size()); + assertEquals(deptDO01, deptDOList.get(0)); + assertEquals(deptDO02, deptDOList.get(1)); + } + + @Test + public void testGetDeptList_reqVO() { + // mock 数据 + DeptDO dept = randomPojo(DeptDO.class, o -> { // 等会查询到 + o.setName("开发部"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + }); + deptMapper.insert(dept); + // 测试 name 不匹配 + deptMapper.insert(ObjectUtils.cloneIgnoreId(dept, o -> o.setName("发"))); + // 测试 status 不匹配 + deptMapper.insert(ObjectUtils.cloneIgnoreId(dept, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 准备参数 + DeptListReqVO reqVO = new DeptListReqVO(); + reqVO.setName("开"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + + // 调用 + List sysDeptDOS = deptService.getDeptList(reqVO); + // 断言 + assertEquals(1, sysDeptDOS.size()); + assertPojoEquals(dept, sysDeptDOS.get(0)); + } + + @Test + public void testGetChildDeptList() { + // mock 数据(1 级别子节点) + DeptDO dept1 = randomPojo(DeptDO.class, o -> o.setName("1")); + deptMapper.insert(dept1); + DeptDO dept2 = randomPojo(DeptDO.class, o -> o.setName("2")); + deptMapper.insert(dept2); + // mock 数据(2 级子节点) + DeptDO dept1a = randomPojo(DeptDO.class, o -> o.setName("1-a").setParentId(dept1.getId())); + deptMapper.insert(dept1a); + DeptDO dept2a = randomPojo(DeptDO.class, o -> o.setName("2-a").setParentId(dept2.getId())); + deptMapper.insert(dept2a); + // 准备参数 + Long id = dept1.getParentId(); + + // 调用 + List result = deptService.getChildDeptList(id); + // 断言 + assertEquals(result.size(), 2); + assertPojoEquals(dept1, result.get(0)); + assertPojoEquals(dept1a, result.get(1)); + } + + @Test + public void testGetChildDeptListFromCache() { + // mock 数据(1 级别子节点) + DeptDO dept1 = randomPojo(DeptDO.class, o -> o.setName("1")); + deptMapper.insert(dept1); + DeptDO dept2 = randomPojo(DeptDO.class, o -> o.setName("2")); + deptMapper.insert(dept2); + // mock 数据(2 级子节点) + DeptDO dept1a = randomPojo(DeptDO.class, o -> o.setName("1-a").setParentId(dept1.getId())); + deptMapper.insert(dept1a); + DeptDO dept2a = randomPojo(DeptDO.class, o -> o.setName("2-a").setParentId(dept2.getId())); + deptMapper.insert(dept2a); + // 准备参数 + Long id = dept1.getParentId(); + + // 调用 + Set result = deptService.getChildDeptIdListFromCache(id); + // 断言 + assertEquals(result.size(), 2); + assertTrue(result.contains(dept1.getId())); + assertTrue(result.contains(dept1a.getId())); + } + + @Test + public void testValidateDeptList_success() { + // mock 数据 + DeptDO deptDO = randomPojo(DeptDO.class).setStatus(CommonStatusEnum.ENABLE.getStatus()); + deptMapper.insert(deptDO); + // 准备参数 + List ids = singletonList(deptDO.getId()); + + // 调用,无需断言 + deptService.validateDeptList(ids); + } + + @Test + public void testValidateDeptList_notFound() { + // 准备参数 + List ids = singletonList(randomLongId()); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateDeptList(ids), DEPT_NOT_FOUND); + } + + @Test + public void testValidateDeptList_notEnable() { + // mock 数据 + DeptDO deptDO = randomPojo(DeptDO.class).setStatus(CommonStatusEnum.DISABLE.getStatus()); + deptMapper.insert(deptDO); + // 准备参数 + List ids = singletonList(deptDO.getId()); + + // 调用, 并断言异常 + assertServiceException(() -> deptService.validateDeptList(ids), DEPT_NOT_ENABLE, deptDO.getName()); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java index 98bb86e..a57dd11 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dept/PostServiceImplTest.java @@ -4,16 +4,14 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostExportReqVO; import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.dept.vo.post.PostSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dept.PostDO; import co.yixiang.yshop.module.system.dal.mysql.dept.PostMapper; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; @@ -44,8 +42,9 @@ public class PostServiceImplTest extends BaseDbUnitTest { @Test public void testCreatePost_success() { // 准备参数 - PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class, - o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus())); + PostSaveReqVO reqVO = randomPojo(PostSaveReqVO.class, + o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus())) + .setId(null); // 防止 id 被设置 // 调用 Long postId = postService.createPost(reqVO); @@ -53,7 +52,7 @@ public class PostServiceImplTest extends BaseDbUnitTest { assertNotNull(postId); // 校验记录的属性是否正确 PostDO post = postMapper.selectById(postId); - assertPojoEquals(reqVO, post); + assertPojoEquals(reqVO, post, "id"); } @Test @@ -62,7 +61,7 @@ public class PostServiceImplTest extends BaseDbUnitTest { PostDO postDO = randomPostDO(); postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据 // 准备参数 - PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, o -> { + PostSaveReqVO reqVO = randomPojo(PostSaveReqVO.class, o -> { // 设置更新的 ID o.setId(postDO.getId()); o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); @@ -103,7 +102,7 @@ public class PostServiceImplTest extends BaseDbUnitTest { PostDO postDO = randomPostDO(); postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据 // 准备参数 - PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class, + PostSaveReqVO reqVO = randomPojo(PostSaveReqVO.class, // 模拟 name 重复 o -> o.setName(postDO.getName())); assertServiceException(() -> postService.createPost(reqVO), POST_NAME_DUPLICATE); @@ -118,7 +117,7 @@ public class PostServiceImplTest extends BaseDbUnitTest { PostDO codePostDO = randomPostDO(); postMapper.insert(codePostDO); // 准备参数 - PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, o -> { + PostSaveReqVO reqVO = randomPojo(PostSaveReqVO.class, o -> { // 设置更新的 ID o.setId(postDO.getId()); // 模拟 code 重复 @@ -155,31 +154,25 @@ public class PostServiceImplTest extends BaseDbUnitTest { } @Test - public void testGetPostList_export() { + public void testGetPostList() { // mock 数据 - PostDO postDO = randomPojo(PostDO.class, o -> { - o.setName("码仔"); - o.setStatus(CommonStatusEnum.ENABLE.getStatus()); - }); - postMapper.insert(postDO); - // 测试 name 不匹配 - postMapper.insert(cloneIgnoreId(postDO, o -> o.setName("程序员"))); - // 测试 status 不匹配 - postMapper.insert(cloneIgnoreId(postDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + PostDO postDO01 = randomPojo(PostDO.class); + postMapper.insert(postDO01); + // 测试 id 不匹配 + PostDO postDO02 = randomPojo(PostDO.class); + postMapper.insert(postDO02); // 准备参数 - PostExportReqVO reqVO = new PostExportReqVO(); - reqVO.setName("码"); - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + List ids = singletonList(postDO01.getId()); // 调用 - List list = postService.getPostList(reqVO); + List list = postService.getPostList(ids); // 断言 assertEquals(1, list.size()); - assertPojoEquals(postDO, list.get(0)); + assertPojoEquals(postDO01, list.get(0)); } @Test - public void testGetPostList() { + public void testGetPostList_idsAndStatus() { // mock 数据 PostDO postDO01 = randomPojo(PostDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); postMapper.insert(postDO01); @@ -251,4 +244,5 @@ public class PostServiceImplTest extends BaseDbUnitTest { }; return randomPojo(PostDO.class, ArrayUtils.append(consumer, consumers)); } + } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java similarity index 87% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java index 316b17f..79138f0 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictDataServiceImplTest.java @@ -4,10 +4,8 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictDataDO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; import co.yixiang.yshop.module.system.dal.mysql.dict.DictDataMapper; @@ -15,7 +13,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import java.util.function.Consumer; @@ -43,14 +41,24 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @Test public void testGetDictDataList() { // mock 数据 - DictDataDO dictDataDO01 = randomDictDataDO().setDictType("yshop").setSort(2); + DictDataDO dictDataDO01 = randomDictDataDO().setDictType("yshop").setSort(2) + .setStatus(CommonStatusEnum.ENABLE.getStatus()); dictDataMapper.insert(dictDataDO01); - DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yshop").setSort(1); + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yshop").setSort(1) + .setStatus(CommonStatusEnum.ENABLE.getStatus()); dictDataMapper.insert(dictDataDO02); + DictDataDO dictDataDO03 = randomDictDataDO().setDictType("yshop").setSort(3) + .setStatus(CommonStatusEnum.DISABLE.getStatus()); + dictDataMapper.insert(dictDataDO03); + DictDataDO dictDataDO04 = randomDictDataDO().setDictType("yshop2").setSort(3) + .setStatus(CommonStatusEnum.DISABLE.getStatus()); + dictDataMapper.insert(dictDataDO04); // 准备参数 + Integer status = CommonStatusEnum.ENABLE.getStatus(); + String dictType = "yshop"; // 调用 - List dictDataDOList = dictDataService.getDictDataList(); + List dictDataDOList = dictDataService.getDictDataList(status, dictType); // 断言 assertEquals(2, dictDataDOList.size()); assertPojoEquals(dictDataDO02, dictDataDOList.get(0)); @@ -86,34 +94,6 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbDictData, pageResult.getList().get(0)); } - @Test - public void testGetDictDataList_export() { - // mock 数据 - DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到 - o.setLabel("yshop"); - o.setDictType("yshop"); - o.setStatus(CommonStatusEnum.ENABLE.getStatus()); - }); - dictDataMapper.insert(dbDictData); - // 测试 label 不匹配 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿"))); - // 测试 dictType 不匹配 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); - // 测试 status 不匹配 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); - // 准备参数 - DictDataExportReqVO reqVO = new DictDataExportReqVO(); - reqVO.setLabel("芋"); - reqVO.setDictType("yshop"); - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - - // 调用 - List list = dictDataService.getDictDataList(reqVO); - // 断言 - assertEquals(1, list.size()); - assertPojoEquals(dbDictData, list.get(0)); - } - @Test public void testGetDictData() { // mock 数据 @@ -131,8 +111,9 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @Test public void testCreateDictData_success() { // 准备参数 - DictDataCreateReqVO reqVO = randomPojo(DictDataCreateReqVO.class, - o -> o.setStatus(randomCommonStatus())); + DictDataSaveReqVO reqVO = randomPojo(DictDataSaveReqVO.class, + o -> o.setStatus(randomCommonStatus())) + .setId(null); // 防止 id 被赋值 // mock 方法 when(dictTypeService.getDictType(eq(reqVO.getDictType()))).thenReturn(randomDictTypeDO(reqVO.getDictType())); @@ -142,7 +123,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { assertNotNull(dictDataId); // 校验记录的属性是否正确 DictDataDO dictData = dictDataMapper.selectById(dictDataId); - assertPojoEquals(reqVO, dictData); + assertPojoEquals(reqVO, dictData, "id"); } @Test @@ -151,7 +132,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { DictDataDO dbDictData = randomDictDataDO(); dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 // 准备参数 - DictDataUpdateReqVO reqVO = randomPojo(DictDataUpdateReqVO.class, o -> { + DictDataSaveReqVO reqVO = randomPojo(DictDataSaveReqVO.class, o -> { o.setId(dbDictData.getId()); // 设置更新的 ID o.setStatus(randomCommonStatus()); }); @@ -260,7 +241,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { } @Test - public void testCountByDictType() { + public void testGetDictDataCountByDictType() { // mock 数据 dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("yshop"))); dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("tudou"))); @@ -269,7 +250,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { String dictType = "yshop"; // 调用 - long count = dictDataService.countByDictType(dictType); + long count = dictDataService.getDictDataCountByDictType(dictType); // 校验 assertEquals(2L, count); } diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java similarity index 83% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java index 4b8c88b..825d3f7 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/dict/DictTypeServiceImplTest.java @@ -4,17 +4,15 @@ import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO; import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.dict.DictTypeDO; import co.yixiang.yshop.module.system.dal.mysql.dict.DictTypeMapper; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; import java.util.function.Consumer; @@ -74,38 +72,6 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbDictType, pageResult.getList().get(0)); } - @Test - public void testGetDictTypeList_export() { - // mock 数据 - DictTypeDO dbDictType = randomPojo(DictTypeDO.class, o -> { // 等会查询到 - o.setName("yshop"); - o.setType("yshop"); - o.setStatus(CommonStatusEnum.ENABLE.getStatus()); - o.setCreateTime(buildTime(2021, 1, 15)); - }); - dictTypeMapper.insert(dbDictType); - // 测试 name 不匹配 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setName("tudou"))); - // 测试 type 不匹配 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setType("土豆"))); - // 测试 status 不匹配 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); - // 测试 createTime 不匹配 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1)))); - // 准备参数 - DictTypeExportReqVO reqVO = new DictTypeExportReqVO(); - reqVO.setName("nai"); - reqVO.setType("艿"); - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - reqVO.setCreateTime(buildBetweenTime(2021, 1, 10, 2021, 1, 20)); - - // 调用 - List list = dictTypeService.getDictTypeList(reqVO); - // 断言 - assertEquals(1, list.size()); - assertPojoEquals(dbDictType, list.get(0)); - } - @Test public void testGetDictType_id() { // mock 数据 @@ -139,8 +105,9 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { @Test public void testCreateDictType_success() { // 准备参数 - DictTypeCreateReqVO reqVO = randomPojo(DictTypeCreateReqVO.class, - o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus())); + DictTypeSaveReqVO reqVO = randomPojo(DictTypeSaveReqVO.class, + o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus())) + .setId(null); // 避免 id 被赋值 // 调用 Long dictTypeId = dictTypeService.createDictType(reqVO); @@ -148,7 +115,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { assertNotNull(dictTypeId); // 校验记录的属性是否正确 DictTypeDO dictType = dictTypeMapper.selectById(dictTypeId); - assertPojoEquals(reqVO, dictType); + assertPojoEquals(reqVO, dictType, "id"); } @Test @@ -157,7 +124,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { DictTypeDO dbDictType = randomDictTypeDO(); dictTypeMapper.insert(dbDictType);// @Sql: 先插入出一条存在的数据 // 准备参数 - DictTypeUpdateReqVO reqVO = randomPojo(DictTypeUpdateReqVO.class, o -> { + DictTypeSaveReqVO reqVO = randomPojo(DictTypeSaveReqVO.class, o -> { o.setId(dbDictType.getId()); // 设置更新的 ID o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); }); @@ -191,7 +158,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { // 准备参数 Long id = dbDictType.getId(); // mock 方法 - when(dictDataService.countByDictType(eq(dbDictType.getType()))).thenReturn(1L); + when(dictDataService.getDictDataCountByDictType(eq(dbDictType.getType()))).thenReturn(1L); // 调用, 并断言异常 assertServiceException(() -> dictTypeService.deleteDictType(id), DICT_TYPE_HAS_CHILDREN); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImplTest.java new file mode 100644 index 0000000..d6a8cd3 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/LoginLogServiceImplTest.java @@ -0,0 +1,76 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.api.logger.dto.LoginLogCreateReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.LoginLogDO; +import co.yixiang.yshop.module.system.dal.mysql.logger.LoginLogMapper; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; + +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; +import static co.yixiang.yshop.module.system.enums.logger.LoginResultEnum.CAPTCHA_CODE_ERROR; +import static co.yixiang.yshop.module.system.enums.logger.LoginResultEnum.SUCCESS; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@Import(LoginLogServiceImpl.class) +public class LoginLogServiceImplTest extends BaseDbUnitTest { + + @Resource + private LoginLogServiceImpl loginLogService; + + @Resource + private LoginLogMapper loginLogMapper; + + @Test + public void testGetLoginLogPage() { + // mock 数据 + LoginLogDO loginLogDO = randomPojo(LoginLogDO.class, o -> { + o.setUserIp("192.168.199.16"); + o.setUsername("wang"); + o.setResult(SUCCESS.getResult()); + o.setCreateTime(buildTime(2021, 3, 6)); + }); + loginLogMapper.insert(loginLogDO); + // 测试 status 不匹配 + loginLogMapper.insert(cloneIgnoreId(loginLogDO, o -> o.setResult(CAPTCHA_CODE_ERROR.getResult()))); + // 测试 ip 不匹配 + loginLogMapper.insert(cloneIgnoreId(loginLogDO, o -> o.setUserIp("192.168.128.18"))); + // 测试 username 不匹配 + loginLogMapper.insert(cloneIgnoreId(loginLogDO, o -> o.setUsername("yshop"))); + // 测试 createTime 不匹配 + loginLogMapper.insert(cloneIgnoreId(loginLogDO, o -> o.setCreateTime(buildTime(2021, 2, 6)))); + // 构造调用参数 + LoginLogPageReqVO reqVO = new LoginLogPageReqVO(); + reqVO.setUsername("wang"); + reqVO.setUserIp("192.168.199"); + reqVO.setStatus(true); + reqVO.setCreateTime(buildBetweenTime(2021, 3, 5, 2021, 3, 7)); + + // 调用 + PageResult pageResult = loginLogService.getLoginLogPage(reqVO); + // 断言,只查到了一条符合条件的 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(loginLogDO, pageResult.getList().get(0)); + } + + @Test + public void testCreateLoginLog() { + LoginLogCreateReqDTO reqDTO = randomPojo(LoginLogCreateReqDTO.class); + + // 调用 + loginLogService.createLoginLog(reqDTO); + // 断言 + LoginLogDO loginLogDO = loginLogMapper.selectOne(null); + assertPojoEquals(reqDTO, loginLogDO); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImplTest.java new file mode 100644 index 0000000..f018383 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/logger/OperateLogServiceImplTest.java @@ -0,0 +1,113 @@ +package co.yixiang.yshop.module.system.service.logger; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.framework.test.core.util.RandomUtils; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogCreateReqDTO; +import co.yixiang.yshop.module.system.api.logger.dto.OperateLogPageReqDTO; +import co.yixiang.yshop.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.logger.OperateLogDO; +import co.yixiang.yshop.module.system.dal.mysql.logger.OperateLogMapper; +import jakarta.annotation.Resource; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@Import({OperateLogServiceImpl.class}) +public class OperateLogServiceImplTest extends BaseDbUnitTest { + + @Resource + private OperateLogService operateLogServiceImpl; + + @Resource + private OperateLogMapper operateLogMapper; + + @Test + public void testCreateOperateLog() { + OperateLogCreateReqDTO reqVO = RandomUtils.randomPojo(OperateLogCreateReqDTO.class); + + // 调研 + operateLogServiceImpl.createOperateLog(reqVO); + // 断言 + OperateLogDO operateLogDO = operateLogMapper.selectOne(null); + assertPojoEquals(reqVO, operateLogDO); + } + + @Test + public void testGetOperateLogPage_vo() { + // 构造操作日志 + OperateLogDO operateLogDO = RandomUtils.randomPojo(OperateLogDO.class, o -> { + o.setUserId(2048L); + o.setBizId(999L); + o.setType("订单"); + o.setSubType("创建订单"); + o.setAction("修改编号为 1 的用户信息"); + o.setCreateTime(buildTime(2021, 3, 6)); + }); + operateLogMapper.insert(operateLogDO); + // 测试 userId 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setUserId(1024L))); + // 测试 bizId 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setBizId(888L))); + // 测试 type 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setType("退款"))); + // 测试 subType 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setSubType("创建退款"))); + // 测试 action 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setAction("修改编号为 1 退款信息"))); + // 测试 createTime 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setCreateTime(buildTime(2021, 2, 6)))); + + // 构造调用参数 + OperateLogPageReqVO reqVO = new OperateLogPageReqVO(); + reqVO.setUserId(2048L); + reqVO.setBizId(999L); + reqVO.setType("订"); + reqVO.setSubType("订单"); + reqVO.setAction("用户信息"); + reqVO.setCreateTime(buildBetweenTime(2021, 3, 5, 2021, 3, 7)); + + // 调用 + PageResult pageResult = operateLogServiceImpl.getOperateLogPage(reqVO); + // 断言,只查到了一条符合条件的 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(operateLogDO, pageResult.getList().get(0)); + } + + @Test + public void testGetOperateLogPage_dto() { + // 构造操作日志 + OperateLogDO operateLogDO = RandomUtils.randomPojo(OperateLogDO.class, o -> { + o.setUserId(2048L); + o.setBizId(999L); + o.setType("订单"); + }); + operateLogMapper.insert(operateLogDO); + // 测试 userId 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setUserId(1024L))); + // 测试 bizId 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setBizId(888L))); + // 测试 type 不匹配 + operateLogMapper.insert(cloneIgnoreId(operateLogDO, o -> o.setType("退款"))); + + // 构造调用参数 + OperateLogPageReqDTO reqDTO = new OperateLogPageReqDTO(); + reqDTO.setUserId(2048L); + reqDTO.setBizId(999L); + reqDTO.setType("订单"); + + // 调用 + PageResult pageResult = operateLogServiceImpl.getOperateLogPage(reqDTO); + // 断言,只查到了一条符合条件的 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(operateLogDO, pageResult.getList().get(0)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImplTest.java new file mode 100644 index 0000000..a63a005 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailAccountServiceImplTest.java @@ -0,0 +1,179 @@ +package co.yixiang.yshop.module.system.service.mail; + +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.mail.MailAccountDO; +import co.yixiang.yshop.module.system.dal.mysql.mail.MailAccountMapper; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.MAIL_ACCOUNT_NOT_EXISTS; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + +/** + * {@link MailAccountServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(MailAccountServiceImpl.class) +public class MailAccountServiceImplTest extends BaseDbUnitTest { + + @Resource + private MailAccountServiceImpl mailAccountService; + + @Resource + private MailAccountMapper mailAccountMapper; + + @MockBean + private MailTemplateService mailTemplateService; + + @Test + public void testCreateMailAccount_success() { + // 准备参数 + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class, o -> o.setMail(randomEmail())) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long mailAccountId = mailAccountService.createMailAccount(reqVO); + // 断言 + assertNotNull(mailAccountId); + // 校验记录的属性是否正确 + MailAccountDO mailAccount = mailAccountMapper.selectById(mailAccountId); + assertPojoEquals(reqVO, mailAccount, "id"); + } + + @Test + public void testUpdateMailAccount_success() { + // mock 数据 + MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount);// @Sql: 先插入出一条存在的数据 + // 准备参数 + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class, o -> { + o.setId(dbMailAccount.getId()); // 设置更新的 ID + o.setMail(randomEmail()); + }); + + // 调用 + mailAccountService.updateMailAccount(reqVO); + // 校验是否更新正确 + MailAccountDO mailAccount = mailAccountMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, mailAccount); + } + + @Test + public void testUpdateMailAccount_notExists() { + // 准备参数 + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> mailAccountService.updateMailAccount(reqVO), MAIL_ACCOUNT_NOT_EXISTS); + } + + @Test + public void testDeleteMailAccount_success() { + // mock 数据 + MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbMailAccount.getId(); + // mock 方法(无关联模版) + when(mailTemplateService.getMailTemplateCountByAccountId(eq(id))).thenReturn(0L); + + // 调用 + mailAccountService.deleteMailAccount(id); + // 校验数据不存在了 + assertNull(mailAccountMapper.selectById(id)); + } + + @Test + public void testGetMailAccountFromCache() { + // mock 数据 + MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbMailAccount.getId(); + + // 调用 + MailAccountDO mailAccount = mailAccountService.getMailAccountFromCache(id); + // 断言 + assertPojoEquals(dbMailAccount, mailAccount); + } + + @Test + public void testDeleteMailAccount_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> mailAccountService.deleteMailAccount(id), MAIL_ACCOUNT_NOT_EXISTS); + } + + @Test + public void testGetMailAccountPage() { + // mock 数据 + MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class, o -> { // 等会查询到 + o.setMail("768@qq.com"); + o.setUsername("yshop"); + }); + mailAccountMapper.insert(dbMailAccount); + // 测试 mail 不匹配 + mailAccountMapper.insert(cloneIgnoreId(dbMailAccount, o -> o.setMail("788@qq.com"))); + // 测试 username 不匹配 + mailAccountMapper.insert(cloneIgnoreId(dbMailAccount, o -> o.setUsername("tudou"))); + // 准备参数 + MailAccountPageReqVO reqVO = new MailAccountPageReqVO(); + reqVO.setMail("768"); + reqVO.setUsername("yu"); + + // 调用 + PageResult pageResult = mailAccountService.getMailAccountPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbMailAccount, pageResult.getList().get(0)); + } + + @Test + public void testGetMailAccount() { + // mock 数据 + MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbMailAccount.getId(); + + // 调用 + MailAccountDO mailAccount = mailAccountService.getMailAccount(id); + // 断言 + assertPojoEquals(dbMailAccount, mailAccount); + } + + @Test + public void testGetMailAccountList() { + // mock 数据 + MailAccountDO dbMailAccount01 = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount01); + MailAccountDO dbMailAccount02 = randomPojo(MailAccountDO.class); + mailAccountMapper.insert(dbMailAccount02); + // 准备参数 + + // 调用 + List list = mailAccountService.getMailAccountList(); + // 断言 + assertEquals(2, list.size()); + assertPojoEquals(dbMailAccount01, list.get(0)); + assertPojoEquals(dbMailAccount02, list.get(1)); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java similarity index 97% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java index 908cfac..520b37e 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailLogServiceImplTest.java @@ -13,11 +13,11 @@ import co.yixiang.yshop.module.system.enums.mail.MailSendStatusEnum; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Map; import static cn.hutool.core.util.RandomUtil.randomEle; -import static co.yixiang.yshop.framework.common.util.date.DateUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; @@ -25,10 +25,10 @@ import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; import static org.junit.jupiter.api.Assertions.*; /** -* {@link MailLogServiceImpl} 的单元测试类 -* -* @author yshop -*/ + * {@link MailLogServiceImpl} 的单元测试类 + * + * @author yshop + */ @Import(MailLogServiceImpl.class) public class MailLogServiceImplTest extends BaseDbUnitTest { diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java similarity index 90% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java index cf6b780..df189bf 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailSendServiceImplTest.java @@ -1,8 +1,6 @@ package co.yixiang.yshop.module.system.service.mail; import cn.hutool.core.map.MapUtil; -import cn.hutool.extra.mail.MailAccount; -import cn.hutool.extra.mail.MailUtil; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; @@ -15,6 +13,7 @@ import co.yixiang.yshop.module.system.mq.producer.mail.MailProducer; import co.yixiang.yshop.module.system.service.member.MemberService; import co.yixiang.yshop.module.system.service.user.AdminUserService; import org.assertj.core.util.Lists; +import org.dromara.hutool.extra.mail.*; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -28,12 +27,11 @@ import static cn.hutool.core.util.RandomUtil.randomEle; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; -class MailSendServiceImplTest extends BaseMockitoUnitTest { +public class MailSendServiceImplTest extends BaseMockitoUnitTest { @InjectMocks private MailSendServiceImpl mailSendService; @@ -61,7 +59,7 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { // .setFrom("奥特曼 ") .setFrom("ydym_test@163.com") // 邮箱地址 .setHost("smtp.163.com").setPort(465).setSslEnable(true) // SMTP 服务器 - .setAuth(true).setUser("ydym_test@163.com").setPass("WBZTEINMIFVRYSOE"); // 登录账号密码 + .setAuth(true).setUser("ydym_test@163.com").setPass("WBZTEINMIFVRYSOE".toCharArray()); // 登录账号密码 String messageId = MailUtil.send(mailAccount, "7685413@qq.com", "主题", "内容", false); System.out.println("发送结果:" + messageId); } @@ -84,6 +82,9 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { o.setParams(Lists.newArrayList("code", "op")); }); when(mailTemplateService.getMailTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); + String title = RandomUtils.randomString(); + when(mailTemplateService.formatMailTemplateContent(eq(template.getTitle()), eq(templateParams))) + .thenReturn(title); String content = RandomUtils.randomString(); when(mailTemplateService.formatMailTemplateContent(eq(template.getContent()), eq(templateParams))) .thenReturn(content); @@ -101,7 +102,7 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { assertEquals(mailLogId, resultMailLogId); // 断言调用 verify(mailProducer).sendMailSendMessage(eq(mailLogId), eq(user.getEmail()), - eq(account.getId()), eq(template.getNickname()), eq(template.getTitle()), eq(content)); + eq(account.getId()), eq(template.getNickname()), eq(title), eq(content)); } @Test @@ -122,6 +123,9 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { o.setParams(Lists.newArrayList("code", "op")); }); when(mailTemplateService.getMailTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); + String title = RandomUtils.randomString(); + when(mailTemplateService.formatMailTemplateContent(eq(template.getTitle()), eq(templateParams))) + .thenReturn(title); String content = RandomUtils.randomString(); when(mailTemplateService.formatMailTemplateContent(eq(template.getContent()), eq(templateParams))) .thenReturn(content); @@ -139,7 +143,7 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { assertEquals(mailLogId, resultMailLogId); // 断言调用 verify(mailProducer).sendMailSendMessage(eq(mailLogId), eq(mail), - eq(account.getId()), eq(template.getNickname()), eq(template.getTitle()), eq(content)); + eq(account.getId()), eq(template.getNickname()), eq(title), eq(content)); } /** @@ -161,6 +165,9 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { o.setParams(Lists.newArrayList("code", "op")); }); when(mailTemplateService.getMailTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); + String title = RandomUtils.randomString(); + when(mailTemplateService.formatMailTemplateContent(eq(template.getTitle()), eq(templateParams))) + .thenReturn(title); String content = RandomUtils.randomString(); when(mailTemplateService.formatMailTemplateContent(eq(template.getContent()), eq(templateParams))) .thenReturn(content); @@ -178,7 +185,7 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { assertEquals(mailLogId, resultMailLogId); // 断言调用 verify(mailProducer).sendMailSendMessage(eq(mailLogId), eq(mail), - eq(account.getId()), eq(template.getNickname()), eq(template.getTitle()), eq(content)); + eq(account.getId()), eq(template.getNickname()), eq(title), eq(content)); } /** @@ -200,6 +207,9 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { o.setParams(Lists.newArrayList("code", "op")); }); when(mailTemplateService.getMailTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); + String title = RandomUtils.randomString(); + when(mailTemplateService.formatMailTemplateContent(eq(template.getTitle()), eq(templateParams))) + .thenReturn(title); String content = RandomUtils.randomString(); when(mailTemplateService.formatMailTemplateContent(eq(template.getContent()), eq(templateParams))) .thenReturn(content); @@ -256,7 +266,7 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { @Test public void testDoSendMail_success() { - try (MockedStatic mailUtilMock = mockStatic(MailUtil.class)) { + try (final MockedStatic mailUtilMock = mockStatic(MailUtil.class)) { // 准备参数 MailSendMessage message = randomPojo(MailSendMessage.class, o -> o.setNickname("yshop")); // mock 方法(获得邮箱账号) @@ -266,16 +276,17 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { // mock 方法(发送邮件) String messageId = randomString(); - mailUtilMock.when(() -> MailUtil.send(argThat(mailAccount -> { - assertEquals("yshop <7685@qq.com>", mailAccount.getFrom()); - assertTrue(mailAccount.isAuth()); - assertEquals(account.getUsername(), mailAccount.getUser()); - assertEquals(account.getPassword(), mailAccount.getPass()); - assertEquals(account.getHost(), mailAccount.getHost()); - assertEquals(account.getPort(), mailAccount.getPort()); - assertEquals(account.getSslEnable(), mailAccount.isSslEnable()); - return true; - }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true))) + mailUtilMock.when(() -> MailUtil.send( + argThat(mailAccount -> { + assertEquals("yshop <7685@qq.com>", mailAccount.getFrom()); + assertTrue(mailAccount.isAuth()); + assertEquals(account.getUsername(), mailAccount.getUser()); + assertArrayEquals(account.getPassword().toCharArray(), mailAccount.getPass()); + assertEquals(account.getHost(), mailAccount.getHost()); + assertEquals(account.getPort(), mailAccount.getPort()); + assertEquals(account.getSslEnable(), mailAccount.isSslEnable()); + return true; + }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true))) .thenReturn(messageId); // 调用 @@ -298,16 +309,15 @@ class MailSendServiceImplTest extends BaseMockitoUnitTest { // mock 方法(发送邮件) Exception e = new NullPointerException("啦啦啦"); mailUtilMock.when(() -> MailUtil.send(argThat(mailAccount -> { - assertEquals("yshop <7685@qq.com>", mailAccount.getFrom()); - assertTrue(mailAccount.isAuth()); - assertEquals(account.getUsername(), mailAccount.getUser()); - assertEquals(account.getPassword(), mailAccount.getPass()); - assertEquals(account.getHost(), mailAccount.getHost()); - assertEquals(account.getPort(), mailAccount.getPort()); - assertEquals(account.getSslEnable(), mailAccount.isSslEnable()); - return true; - }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true))) - .thenThrow(e); + assertEquals("yshop <7685@qq.com>", mailAccount.getFrom()); + assertTrue(mailAccount.isAuth()); + assertEquals(account.getUsername(), mailAccount.getUser()); + assertArrayEquals(account.getPassword().toCharArray(), mailAccount.getPass()); + assertEquals(account.getHost(), mailAccount.getHost()); + assertEquals(account.getPort(), mailAccount.getPort()); + assertEquals(account.getSslEnable(), mailAccount.isSslEnable()); + return true; + }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true))).thenThrow(e); // 调用 mailSendService.doSendMail(message); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImplTest.java new file mode 100644 index 0000000..a962606 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/mail/MailTemplateServiceImplTest.java @@ -0,0 +1,215 @@ +package co.yixiang.yshop.module.system.service.mail; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; +import co.yixiang.yshop.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.mail.MailTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.mail.MailTemplateMapper; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomLongId; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.MAIL_TEMPLATE_NOT_EXISTS; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link MailTemplateServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(MailTemplateServiceImpl.class) +public class MailTemplateServiceImplTest extends BaseDbUnitTest { + + @Resource + private MailTemplateServiceImpl mailTemplateService; + + @Resource + private MailTemplateMapper mailTemplateMapper; + + @Test + public void testCreateMailTemplate_success() { + // 准备参数 + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long mailTemplateId = mailTemplateService.createMailTemplate(reqVO); + // 断言 + assertNotNull(mailTemplateId); + // 校验记录的属性是否正确 + MailTemplateDO mailTemplate = mailTemplateMapper.selectById(mailTemplateId); + assertPojoEquals(reqVO, mailTemplate, "id"); + } + + @Test + public void testUpdateMailTemplate_success() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class, o -> { + o.setId(dbMailTemplate.getId()); // 设置更新的 ID + }); + + // 调用 + mailTemplateService.updateMailTemplate(reqVO); + // 校验是否更新正确 + MailTemplateDO mailTemplate = mailTemplateMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, mailTemplate); + } + + @Test + public void testUpdateMailTemplate_notExists() { + // 准备参数 + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> mailTemplateService.updateMailTemplate(reqVO), MAIL_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testDeleteMailTemplate_success() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbMailTemplate.getId(); + + // 调用 + mailTemplateService.deleteMailTemplate(id); + // 校验数据不存在了 + assertNull(mailTemplateMapper.selectById(id)); + } + + @Test + public void testDeleteMailTemplate_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> mailTemplateService.deleteMailTemplate(id), MAIL_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testGetMailTemplatePage() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class, o -> { // 等会查询到 + o.setName("源码"); + o.setCode("test_01"); + o.setAccountId(1L); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(buildTime(2023, 2, 3)); + }); + mailTemplateMapper.insert(dbMailTemplate); + // 测试 name 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setName("yshop"))); + // 测试 code 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setCode("test_02"))); + // 测试 accountId 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setAccountId(2L))); + // 测试 status 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 createTime 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setCreateTime(buildTime(2023, 1, 5)))); + // 准备参数 + MailTemplatePageReqVO reqVO = new MailTemplatePageReqVO(); + reqVO.setName("源"); + reqVO.setCode("est_01"); + reqVO.setAccountId(1L); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 5)); + + // 调用 + PageResult pageResult = mailTemplateService.getMailTemplatePage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbMailTemplate, pageResult.getList().get(0)); + } + + @Test + public void testGetMailTemplateList() { + // mock 数据 + MailTemplateDO dbMailTemplate01 = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate01); + MailTemplateDO dbMailTemplate02 = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate02); + + // 调用 + List list = mailTemplateService.getMailTemplateList(); + // 断言 + assertEquals(2, list.size()); + assertEquals(dbMailTemplate01, list.get(0)); + assertEquals(dbMailTemplate02, list.get(1)); + } + + @Test + public void testGetMailTemplate() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate); + // 准备参数 + Long id = dbMailTemplate.getId(); + + // 调用 + MailTemplateDO mailTemplate = mailTemplateService.getMailTemplate(id); + // 断言 + assertPojoEquals(dbMailTemplate, mailTemplate); + } + + @Test + public void testGetMailTemplateByCodeFromCache() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate); + // 准备参数 + String code = dbMailTemplate.getCode(); + + // 调用 + MailTemplateDO mailTemplate = mailTemplateService.getMailTemplateByCodeFromCache(code); + // 断言 + assertPojoEquals(dbMailTemplate, mailTemplate); + } + + @Test + public void testFormatMailTemplateContent() { + // 准备参数 + Map params = new HashMap<>(); + params.put("name", "小红"); + params.put("what", "饭"); + + // 调用,并断言 + assertEquals("小红,你好,饭吃了吗?", + mailTemplateService.formatMailTemplateContent("{name},你好,{what}吃了吗?", params)); + } + + @Test + public void testCountByAccountId() { + // mock 数据 + MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); + mailTemplateMapper.insert(dbMailTemplate); + // 测试 accountId 不匹配 + mailTemplateMapper.insert(cloneIgnoreId(dbMailTemplate, o -> o.setAccountId(2L))); + // 准备参数 + Long accountId = dbMailTemplate.getAccountId(); + + // 调用 + long count = mailTemplateService.getMailTemplateCountByAccountId(accountId); + // 断言 + assertEquals(1, count); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java index fa9414f..68eba2c 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notice/NoticeServiceImplTest.java @@ -3,15 +3,14 @@ package co.yixiang.yshop.module.system.service.notice; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.notice.vo.NoticeSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.notice.NoticeDO; import co.yixiang.yshop.module.system.dal.mysql.notice.NoticeMapper; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; @@ -72,14 +71,15 @@ class NoticeServiceImplTest extends BaseDbUnitTest { @Test public void testCreateNotice_success() { // 准备参数 - NoticeCreateReqVO reqVO = randomPojo(NoticeCreateReqVO.class); + NoticeSaveReqVO reqVO = randomPojo(NoticeSaveReqVO.class) + .setId(null); // 避免 id 被赋值 // 调用 Long noticeId = noticeService.createNotice(reqVO); // 校验插入属性是否正确 assertNotNull(noticeId); NoticeDO notice = noticeMapper.selectById(noticeId); - assertPojoEquals(reqVO, notice); + assertPojoEquals(reqVO, notice, "id"); } @Test @@ -89,7 +89,7 @@ class NoticeServiceImplTest extends BaseDbUnitTest { noticeMapper.insert(dbNoticeDO); // 准备更新参数 - NoticeUpdateReqVO reqVO = randomPojo(NoticeUpdateReqVO.class, o -> o.setId(dbNoticeDO.getId())); + NoticeSaveReqVO reqVO = randomPojo(NoticeSaveReqVO.class, o -> o.setId(dbNoticeDO.getId())); // 更新 noticeService.updateNotice(reqVO); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java similarity index 99% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java index ca95fc7..12ad7ca 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyMessageServiceImplTest.java @@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.annotation.DbType; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Arrays; import java.util.Collection; import java.util.List; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java index b46ed71..4902262 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifySendServiceImplTest.java @@ -6,6 +6,7 @@ import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyTemplateDO; import org.assertj.core.util.Lists; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -172,5 +173,18 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest { NOTIFY_SEND_TEMPLATE_PARAM_MISS, "code"); } + @Test + public void testSendBatchNotify() { + // 准备参数 + // mock 方法 + + // 调用 + UnsupportedOperationException exception = Assertions.assertThrows( + UnsupportedOperationException.class, + () -> notifySendService.sendBatchNotify(null, null, null, null, null) + ); + // 断言 + assertEquals("暂时不支持该操作,感兴趣可以实现该功能哟!", exception.getMessage()); + } } diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImplTest.java new file mode 100644 index 0000000..186dd33 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/notify/NotifyTemplateServiceImplTest.java @@ -0,0 +1,178 @@ +package co.yixiang.yshop.module.system.service.notify; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.notify.NotifyTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.notify.NotifyTemplateMapper; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.NOTIFY_TEMPLATE_NOT_EXISTS; +import static org.junit.jupiter.api.Assertions.*; + +/** + * {@link NotifyTemplateServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(NotifyTemplateServiceImpl.class) +public class NotifyTemplateServiceImplTest extends BaseDbUnitTest { + + @Resource + private NotifyTemplateServiceImpl notifyTemplateService; + + @Resource + private NotifyTemplateMapper notifyTemplateMapper; + + @Test + public void testCreateNotifyTemplate_success() { + // 准备参数 + NotifyTemplateSaveReqVO reqVO = randomPojo(NotifyTemplateSaveReqVO.class, + o -> o.setStatus(randomCommonStatus())) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long notifyTemplateId = notifyTemplateService.createNotifyTemplate(reqVO); + // 断言 + assertNotNull(notifyTemplateId); + // 校验记录的属性是否正确 + NotifyTemplateDO notifyTemplate = notifyTemplateMapper.selectById(notifyTemplateId); + assertPojoEquals(reqVO, notifyTemplate, "id"); + } + + @Test + public void testUpdateNotifyTemplate_success() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); + notifyTemplateMapper.insert(dbNotifyTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + NotifyTemplateSaveReqVO reqVO = randomPojo(NotifyTemplateSaveReqVO.class, o -> { + o.setId(dbNotifyTemplate.getId()); // 设置更新的 ID + o.setStatus(randomCommonStatus()); + }); + + // 调用 + notifyTemplateService.updateNotifyTemplate(reqVO); + // 校验是否更新正确 + NotifyTemplateDO notifyTemplate = notifyTemplateMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, notifyTemplate); + } + + @Test + public void testUpdateNotifyTemplate_notExists() { + // 准备参数 + NotifyTemplateSaveReqVO reqVO = randomPojo(NotifyTemplateSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> notifyTemplateService.updateNotifyTemplate(reqVO), NOTIFY_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testDeleteNotifyTemplate_success() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); + notifyTemplateMapper.insert(dbNotifyTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbNotifyTemplate.getId(); + + // 调用 + notifyTemplateService.deleteNotifyTemplate(id); + // 校验数据不存在了 + assertNull(notifyTemplateMapper.selectById(id)); + } + + @Test + public void testDeleteNotifyTemplate_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> notifyTemplateService.deleteNotifyTemplate(id), NOTIFY_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testGetNotifyTemplatePage() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class, o -> { // 等会查询到 + o.setName("芋头"); + o.setCode("test_01"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(buildTime(2022, 2, 3)); + }); + notifyTemplateMapper.insert(dbNotifyTemplate); + // 测试 name 不匹配 + notifyTemplateMapper.insert(cloneIgnoreId(dbNotifyTemplate, o -> o.setName("投"))); + // 测试 code 不匹配 + notifyTemplateMapper.insert(cloneIgnoreId(dbNotifyTemplate, o -> o.setCode("test_02"))); + // 测试 status 不匹配 + notifyTemplateMapper.insert(cloneIgnoreId(dbNotifyTemplate, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 createTime 不匹配 + notifyTemplateMapper.insert(cloneIgnoreId(dbNotifyTemplate, o -> o.setCreateTime(buildTime(2022, 1, 5)))); + // 准备参数 + NotifyTemplatePageReqVO reqVO = new NotifyTemplatePageReqVO(); + reqVO.setName("芋"); + reqVO.setCode("est_01"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setCreateTime(buildBetweenTime(2022, 2, 1, 2022, 2, 5)); + + // 调用 + PageResult pageResult = notifyTemplateService.getNotifyTemplatePage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbNotifyTemplate, pageResult.getList().get(0)); + } + + @Test + public void testGetNotifyTemplate() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); + notifyTemplateMapper.insert(dbNotifyTemplate); + // 准备参数 + Long id = dbNotifyTemplate.getId(); + + // 调用 + NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplate(id); + // 断言 + assertPojoEquals(dbNotifyTemplate, notifyTemplate); + } + + @Test + public void testGetNotifyTemplateByCodeFromCache() { + // mock 数据 + NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); + notifyTemplateMapper.insert(dbNotifyTemplate); + // 准备参数 + String code = dbNotifyTemplate.getCode(); + + // 调用 + NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplateByCodeFromCache(code); + // 断言 + assertPojoEquals(dbNotifyTemplate, notifyTemplate); + } + + @Test + public void testFormatNotifyTemplateContent() { + // 准备参数 + Map params = new HashMap<>(); + params.put("name", "小红"); + params.put("what", "饭"); + + // 调用,并断言 + assertEquals("小红,你好,饭吃了吗?", + notifyTemplateService.formatNotifyTemplateContent("{name},你好,{what}吃了吗?", params)); + } +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java similarity index 99% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java index 48087c4..b8a3c57 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImplTest.java new file mode 100644 index 0000000..e8a635d --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2ClientServiceImplTest.java @@ -0,0 +1,220 @@ +package co.yixiang.yshop.module.system.service.oauth2; + +import cn.hutool.extra.spring.SpringUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2ClientMapper; +import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.Collections; + +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mockStatic; + +/** + * {@link OAuth2ClientServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(OAuth2ClientServiceImpl.class) +public class OAuth2ClientServiceImplTest extends BaseDbUnitTest { + + @Resource + private OAuth2ClientServiceImpl oauth2ClientService; + + @Resource + private OAuth2ClientMapper oauth2ClientMapper; + + @Test + public void testCreateOAuth2Client_success() { + // 准备参数 + OAuth2ClientSaveReqVO reqVO = randomPojo(OAuth2ClientSaveReqVO.class, + o -> o.setLogo(randomString())) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long oauth2ClientId = oauth2ClientService.createOAuth2Client(reqVO); + // 断言 + assertNotNull(oauth2ClientId); + // 校验记录的属性是否正确 + OAuth2ClientDO oAuth2Client = oauth2ClientMapper.selectById(oauth2ClientId); + assertPojoEquals(reqVO, oAuth2Client, "id"); + } + + @Test + public void testUpdateOAuth2Client_success() { + // mock 数据 + OAuth2ClientDO dbOAuth2Client = randomPojo(OAuth2ClientDO.class); + oauth2ClientMapper.insert(dbOAuth2Client);// @Sql: 先插入出一条存在的数据 + // 准备参数 + OAuth2ClientSaveReqVO reqVO = randomPojo(OAuth2ClientSaveReqVO.class, o -> { + o.setId(dbOAuth2Client.getId()); // 设置更新的 ID + o.setLogo(randomString()); + }); + + // 调用 + oauth2ClientService.updateOAuth2Client(reqVO); + // 校验是否更新正确 + OAuth2ClientDO oAuth2Client = oauth2ClientMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, oAuth2Client); + } + + @Test + public void testUpdateOAuth2Client_notExists() { + // 准备参数 + OAuth2ClientSaveReqVO reqVO = randomPojo(OAuth2ClientSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> oauth2ClientService.updateOAuth2Client(reqVO), OAUTH2_CLIENT_NOT_EXISTS); + } + + @Test + public void testDeleteOAuth2Client_success() { + // mock 数据 + OAuth2ClientDO dbOAuth2Client = randomPojo(OAuth2ClientDO.class); + oauth2ClientMapper.insert(dbOAuth2Client);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbOAuth2Client.getId(); + + // 调用 + oauth2ClientService.deleteOAuth2Client(id); + // 校验数据不存在了 + assertNull(oauth2ClientMapper.selectById(id)); + } + + @Test + public void testDeleteOAuth2Client_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> oauth2ClientService.deleteOAuth2Client(id), OAUTH2_CLIENT_NOT_EXISTS); + } + + @Test + public void testValidateClientIdExists_withId() { + // mock 数据 + OAuth2ClientDO client = randomPojo(OAuth2ClientDO.class).setClientId("tudou"); + oauth2ClientMapper.insert(client); + // 准备参数 + Long id = randomLongId(); + String clientId = "tudou"; + + // 调用,不会报错 + assertServiceException(() -> oauth2ClientService.validateClientIdExists(id, clientId), OAUTH2_CLIENT_EXISTS); + } + + @Test + public void testValidateClientIdExists_noId() { + // mock 数据 + OAuth2ClientDO client = randomPojo(OAuth2ClientDO.class).setClientId("tudou"); + oauth2ClientMapper.insert(client); + // 准备参数 + String clientId = "tudou"; + + // 调用,不会报错 + assertServiceException(() -> oauth2ClientService.validateClientIdExists(null, clientId), OAUTH2_CLIENT_EXISTS); + } + + @Test + public void testGetOAuth2Client() { + // mock 数据 + OAuth2ClientDO clientDO = randomPojo(OAuth2ClientDO.class); + oauth2ClientMapper.insert(clientDO); + // 准备参数 + Long id = clientDO.getId(); + + // 调用,并断言 + OAuth2ClientDO dbClientDO = oauth2ClientService.getOAuth2Client(id); + assertPojoEquals(clientDO, dbClientDO); + } + + @Test + public void testGetOAuth2ClientFromCache() { + // mock 数据 + OAuth2ClientDO clientDO = randomPojo(OAuth2ClientDO.class); + oauth2ClientMapper.insert(clientDO); + // 准备参数 + String clientId = clientDO.getClientId(); + + // 调用,并断言 + OAuth2ClientDO dbClientDO = oauth2ClientService.getOAuth2ClientFromCache(clientId); + assertPojoEquals(clientDO, dbClientDO); + } + + @Test + public void testGetOAuth2ClientPage() { + // mock 数据 + OAuth2ClientDO dbOAuth2Client = randomPojo(OAuth2ClientDO.class, o -> { // 等会查询到 + o.setName("潜龙"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + }); + oauth2ClientMapper.insert(dbOAuth2Client); + // 测试 name 不匹配 + oauth2ClientMapper.insert(cloneIgnoreId(dbOAuth2Client, o -> o.setName("凤凰"))); + // 测试 status 不匹配 + oauth2ClientMapper.insert(cloneIgnoreId(dbOAuth2Client, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 准备参数 + OAuth2ClientPageReqVO reqVO = new OAuth2ClientPageReqVO(); + reqVO.setName("龙"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + + // 调用 + PageResult pageResult = oauth2ClientService.getOAuth2ClientPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbOAuth2Client, pageResult.getList().get(0)); + } + + @Test + public void testValidOAuthClientFromCache() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(OAuth2ClientServiceImpl.class))) + .thenReturn(oauth2ClientService); + + // mock 方法 + OAuth2ClientDO client = randomPojo(OAuth2ClientDO.class).setClientId("default") + .setStatus(CommonStatusEnum.ENABLE.getStatus()); + oauth2ClientMapper.insert(client); + OAuth2ClientDO client02 = randomPojo(OAuth2ClientDO.class).setClientId("disable") + .setStatus(CommonStatusEnum.DISABLE.getStatus()); + oauth2ClientMapper.insert(client02); + + // 调用,并断言 + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache(randomString(), + null, null, null, null), OAUTH2_CLIENT_NOT_EXISTS); + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache("disable", + null, null, null, null), OAUTH2_CLIENT_DISABLE); + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache("default", + randomString(), null, null, null), OAUTH2_CLIENT_CLIENT_SECRET_ERROR); + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache("default", + null, randomString(), null, null), OAUTH2_CLIENT_AUTHORIZED_GRANT_TYPE_NOT_EXISTS); + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache("default", + null, null, Collections.singleton(randomString()), null), OAUTH2_CLIENT_SCOPE_OVER); + assertServiceException(() -> oauth2ClientService.validOAuthClientFromCache("default", + null, null, null, "test"), OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH, "test"); + // 成功调用(1:参数完整) + OAuth2ClientDO result = oauth2ClientService.validOAuthClientFromCache(client.getClientId(), client.getSecret(), + client.getAuthorizedGrantTypes().get(0), client.getScopes(), client.getRedirectUris().get(0)); + assertPojoEquals(client, result); + // 成功调用(2:只有 clientId 参数) + result = oauth2ClientService.validOAuthClientFromCache(client.getClientId()); + assertPojoEquals(client, result); + } + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java similarity index 99% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java index 3e0b051..99d0b36 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2CodeServiceImplTest.java @@ -10,7 +10,7 @@ import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.List; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImplTest.java similarity index 100% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2GrantServiceImplTest.java diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java similarity index 92% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java index 7647a37..2988b30 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/oauth2/OAuth2TokenServiceImplTest.java @@ -1,7 +1,6 @@ package co.yixiang.yshop.module.system.service.oauth2; import cn.hutool.core.date.LocalDateTimeUtil; -import cn.hutool.core.util.RandomUtil; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; import co.yixiang.yshop.framework.common.exception.ErrorCode; import co.yixiang.yshop.framework.common.pojo.PageResult; @@ -12,15 +11,17 @@ import co.yixiang.yshop.module.system.controller.admin.oauth2.vo.token.OAuth2Acc import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2ClientDO; import co.yixiang.yshop.module.system.dal.dataobject.oauth2.OAuth2RefreshTokenDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper; import co.yixiang.yshop.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper; import co.yixiang.yshop.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO; +import co.yixiang.yshop.module.system.service.user.AdminUserService; +import jakarta.annotation.Resource; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; @@ -53,19 +54,24 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { @MockBean private OAuth2ClientService oauth2ClientService; + @MockBean + private AdminUserService adminUserService; @Test public void testCreateAccessToken() { TenantContextHolder.setTenantId(0L); // 准备参数 Long userId = randomLongId(); - Integer userType = RandomUtil.randomEle(UserTypeEnum.values()).getValue(); + Integer userType = UserTypeEnum.ADMIN.getValue(); String clientId = randomString(); List scopes = Lists.newArrayList("read", "write"); // mock 方法 OAuth2ClientDO clientDO = randomPojo(OAuth2ClientDO.class).setClientId(clientId) .setAccessTokenValiditySeconds(30).setRefreshTokenValiditySeconds(60); when(oauth2ClientService.validOAuthClientFromCache(eq(clientId))).thenReturn(clientDO); + // mock 数据(用户) + AdminUserDO user = randomPojo(AdminUserDO.class); + when(adminUserService.getUser(userId)).thenReturn(user); // 调用 OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, userType, clientId, scopes); @@ -74,6 +80,9 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { assertPojoEquals(accessTokenDO, dbAccessTokenDO, "createTime", "updateTime", "deleted"); assertEquals(userId, accessTokenDO.getUserId()); assertEquals(userType, accessTokenDO.getUserType()); + assertEquals(2, accessTokenDO.getUserInfo().size()); + assertEquals(user.getNickname(), accessTokenDO.getUserInfo().get("nickname")); + assertEquals(user.getDeptId().toString(), accessTokenDO.getUserInfo().get("deptId")); assertEquals(clientId, accessTokenDO.getClientId()); assertEquals(scopes, accessTokenDO.getScopes()); assertFalse(DateUtils.isExpired(accessTokenDO.getExpiresTime())); @@ -149,12 +158,17 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { // mock 数据(访问令牌) OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class) .setRefreshToken(refreshToken).setClientId(clientId) - .setExpiresTime(LocalDateTime.now().plusDays(1)); + .setExpiresTime(LocalDateTime.now().plusDays(1)) + .setUserType(UserTypeEnum.ADMIN.getValue()); oauth2RefreshTokenMapper.insert(refreshTokenDO); // mock 数据(访问令牌) - OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setRefreshToken(refreshToken); + OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setRefreshToken(refreshToken) + .setUserType(refreshTokenDO.getUserType()); oauth2AccessTokenMapper.insert(accessTokenDO); oauth2AccessTokenRedisDAO.set(accessTokenDO); + // mock 数据(用户) + AdminUserDO user = randomPojo(AdminUserDO.class); + when(adminUserService.getUser(refreshTokenDO.getUserId())).thenReturn(user); // 调用 OAuth2AccessTokenDO newAccessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, clientId); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImplTest.java new file mode 100644 index 0000000..4cec054 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/MenuServiceImplTest.java @@ -0,0 +1,331 @@ +package co.yixiang.yshop.module.system.service.permission; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.MenuMapper; +import co.yixiang.yshop.module.system.enums.permission.MenuTypeEnum; +import co.yixiang.yshop.module.system.service.tenant.TenantService; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import static co.yixiang.yshop.framework.common.util.collection.SetUtils.asSet; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO.ID_ROOT; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; + +@Import(MenuServiceImpl.class) +public class MenuServiceImplTest extends BaseDbUnitTest { + + @Resource + private MenuServiceImpl menuService; + + @Resource + private MenuMapper menuMapper; + + @MockBean + private PermissionService permissionService; + @MockBean + private TenantService tenantService; + + @Test + public void testCreateMenu_success() { + // mock 数据(构造父菜单) + MenuDO menuDO = buildMenuDO(MenuTypeEnum.MENU, + "parent", 0L); + menuMapper.insert(menuDO); + Long parentId = menuDO.getId(); + // 准备参数 + MenuSaveVO reqVO = randomPojo(MenuSaveVO.class, o -> { + o.setParentId(parentId); + o.setName("testSonName"); + o.setType(MenuTypeEnum.MENU.getType()); + }).setId(null); // 防止 id 被赋值 + Long menuId = menuService.createMenu(reqVO); + + // 校验记录的属性是否正确 + MenuDO dbMenu = menuMapper.selectById(menuId); + assertPojoEquals(reqVO, dbMenu, "id"); + } + + @Test + public void testUpdateMenu_success() { + // mock 数据(构造父子菜单) + MenuDO sonMenuDO = createParentAndSonMenu(); + Long sonId = sonMenuDO.getId(); + // 准备参数 + MenuSaveVO reqVO = randomPojo(MenuSaveVO.class, o -> { + o.setId(sonId); + o.setName("testSonName"); // 修改名字 + o.setParentId(sonMenuDO.getParentId()); + o.setType(MenuTypeEnum.MENU.getType()); + }); + + // 调用 + menuService.updateMenu(reqVO); + // 校验记录的属性是否正确 + MenuDO dbMenu = menuMapper.selectById(sonId); + assertPojoEquals(reqVO, dbMenu); + } + + @Test + public void testUpdateMenu_sonIdNotExist() { + // 准备参数 + MenuSaveVO reqVO = randomPojo(MenuSaveVO.class); + // 调用,并断言异常 + assertServiceException(() -> menuService.updateMenu(reqVO), MENU_NOT_EXISTS); + } + + @Test + public void testDeleteMenu_success() { + // mock 数据 + MenuDO menuDO = randomPojo(MenuDO.class); + menuMapper.insert(menuDO); + // 准备参数 + Long id = menuDO.getId(); + + // 调用 + menuService.deleteMenu(id); + // 断言 + MenuDO dbMenuDO = menuMapper.selectById(id); + assertNull(dbMenuDO); + verify(permissionService).processMenuDeleted(id); + } + + @Test + public void testDeleteMenu_menuNotExist() { + assertServiceException(() -> menuService.deleteMenu(randomLongId()), + MENU_NOT_EXISTS); + } + + @Test + public void testDeleteMenu_existChildren() { + // mock 数据(构造父子菜单) + MenuDO sonMenu = createParentAndSonMenu(); + // 准备参数 + Long parentId = sonMenu.getParentId(); + + // 调用并断言异常 + assertServiceException(() -> menuService.deleteMenu(parentId), MENU_EXISTS_CHILDREN); + } + + @Test + public void testGetMenuList_all() { + // mock 数据 + MenuDO menu100 = randomPojo(MenuDO.class); + menuMapper.insert(menu100); + MenuDO menu101 = randomPojo(MenuDO.class); + menuMapper.insert(menu101); + // 准备参数 + + // 调用 + List list = menuService.getMenuList(); + // 断言 + assertEquals(2, list.size()); + assertPojoEquals(menu100, list.get(0)); + assertPojoEquals(menu101, list.get(1)); + } + + @Test + public void testGetMenuList() { + // mock 数据 + MenuDO menuDO = randomPojo(MenuDO.class, o -> o.setName("yshop").setStatus(CommonStatusEnum.ENABLE.getStatus())); + menuMapper.insert(menuDO); + // 测试 status 不匹配 + menuMapper.insert(cloneIgnoreId(menuDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 name 不匹配 + menuMapper.insert(cloneIgnoreId(menuDO, o -> o.setName("艿"))); + // 准备参数 + MenuListReqVO reqVO = new MenuListReqVO().setName("芋").setStatus(CommonStatusEnum.ENABLE.getStatus()); + + // 调用 + List result = menuService.getMenuList(reqVO); + // 断言 + assertEquals(1, result.size()); + assertPojoEquals(menuDO, result.get(0)); + } + + @Test + public void testGetMenuListByTenant() { + // mock 数据 + MenuDO menu100 = randomPojo(MenuDO.class, o -> o.setId(100L).setStatus(CommonStatusEnum.ENABLE.getStatus())); + menuMapper.insert(menu100); + MenuDO menu101 = randomPojo(MenuDO.class, o -> o.setId(101L).setStatus(CommonStatusEnum.DISABLE.getStatus())); + menuMapper.insert(menu101); + MenuDO menu102 = randomPojo(MenuDO.class, o -> o.setId(102L).setStatus(CommonStatusEnum.ENABLE.getStatus())); + menuMapper.insert(menu102); + // mock 过滤菜单 + Set menuIds = asSet(100L, 101L); + doNothing().when(tenantService).handleTenantMenu(argThat(handler -> { + handler.handle(menuIds); + return true; + })); + // 准备参数 + MenuListReqVO reqVO = new MenuListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()); + + // 调用 + List result = menuService.getMenuListByTenant(reqVO); + // 断言 + assertEquals(1, result.size()); + assertPojoEquals(menu100, result.get(0)); + } + + @Test + public void testGetMenuIdListByPermissionFromCache() { + // mock 数据 + MenuDO menu100 = randomPojo(MenuDO.class); + menuMapper.insert(menu100); + MenuDO menu101 = randomPojo(MenuDO.class); + menuMapper.insert(menu101); + // 准备参数 + String permission = menu100.getPermission(); + + // 调用 + List ids = menuService.getMenuIdListByPermissionFromCache(permission); + // 断言 + assertEquals(1, ids.size()); + assertEquals(menu100.getId(), ids.get(0)); + } + + @Test + public void testGetMenuList_ids() { + // mock 数据 + MenuDO menu100 = randomPojo(MenuDO.class); + menuMapper.insert(menu100); + MenuDO menu101 = randomPojo(MenuDO.class); + menuMapper.insert(menu101); + // 准备参数 + Collection ids = Collections.singleton(menu100.getId()); + + // 调用 + List list = menuService.getMenuList(ids); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(menu100, list.get(0)); + } + + @Test + public void testGetMenu() { + // mock 数据 + MenuDO menu = randomPojo(MenuDO.class); + menuMapper.insert(menu); + // 准备参数 + Long id = menu.getId(); + + // 调用 + MenuDO dbMenu = menuService.getMenu(id); + // 断言 + assertPojoEquals(menu, dbMenu); + } + + @Test + public void testValidateParentMenu_success() { + // mock 数据 + MenuDO menuDO = buildMenuDO(MenuTypeEnum.MENU, "parent", 0L); + menuMapper.insert(menuDO); + // 准备参数 + Long parentId = menuDO.getId(); + + // 调用,无需断言 + menuService.validateParentMenu(parentId, null); + } + + @Test + public void testValidateParentMenu_canNotSetSelfToBeParent() { + // 调用,并断言异常 + assertServiceException(() -> menuService.validateParentMenu(1L, 1L), + MENU_PARENT_ERROR); + } + + @Test + public void testValidateParentMenu_parentNotExist() { + // 调用,并断言异常 + assertServiceException(() -> menuService.validateParentMenu(randomLongId(), null), + MENU_PARENT_NOT_EXISTS); + } + + @Test + public void testValidateParentMenu_parentTypeError() { + // mock 数据 + MenuDO menuDO = buildMenuDO(MenuTypeEnum.BUTTON, "parent", 0L); + menuMapper.insert(menuDO); + // 准备参数 + Long parentId = menuDO.getId(); + + // 调用,并断言异常 + assertServiceException(() -> menuService.validateParentMenu(parentId, null), + MENU_PARENT_NOT_DIR_OR_MENU); + } + + @Test + public void testValidateMenu_success() { + // mock 父子菜单 + MenuDO sonMenu = createParentAndSonMenu(); + // 准备参数 + Long parentId = sonMenu.getParentId(); + Long otherSonMenuId = randomLongId(); + String otherSonMenuName = randomString(); + + // 调用,无需断言 + menuService.validateMenu(parentId, otherSonMenuName, otherSonMenuId); + } + + @Test + public void testValidateMenu_sonMenuNameDuplicate() { + // mock 父子菜单 + MenuDO sonMenu = createParentAndSonMenu(); + // 准备参数 + Long parentId = sonMenu.getParentId(); + Long otherSonMenuId = randomLongId(); + String otherSonMenuName = sonMenu.getName(); //相同名称 + + // 调用,并断言异常 + assertServiceException(() -> menuService.validateMenu(parentId, otherSonMenuName, otherSonMenuId), + MENU_NAME_DUPLICATE); + } + + // ====================== 初始化方法 ====================== + + /** + * 插入父子菜单,返回子菜单 + * + * @return 子菜单 + */ + private MenuDO createParentAndSonMenu() { + // 构造父子菜单 + MenuDO parentMenuDO = buildMenuDO(MenuTypeEnum.MENU, "parent", ID_ROOT); + menuMapper.insert(parentMenuDO); + // 构建子菜单 + MenuDO sonMenuDO = buildMenuDO(MenuTypeEnum.MENU, "testSonName", + parentMenuDO.getParentId()); + menuMapper.insert(sonMenuDO); + return sonMenuDO; + } + + private MenuDO buildMenuDO(MenuTypeEnum type, String name, Long parentId) { + return buildMenuDO(type, name, parentId, randomCommonStatus()); + } + + private MenuDO buildMenuDO(MenuTypeEnum type, String name, Long parentId, Integer status) { + return randomPojo(MenuDO.class, o -> o.setId(null).setName(name).setParentId(parentId) + .setType(type.getType()).setStatus(status)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceTest.java new file mode 100644 index 0000000..1eb9067 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/PermissionServiceTest.java @@ -0,0 +1,527 @@ +package co.yixiang.yshop.module.system.service.permission; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.extra.spring.SpringUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.api.permission.dto.DeptDataPermissionRespDTO; +import co.yixiang.yshop.module.system.dal.dataobject.dept.DeptDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleMenuDO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.UserRoleDO; +import co.yixiang.yshop.module.system.dal.dataobject.user.AdminUserDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.RoleMenuMapper; +import co.yixiang.yshop.module.system.dal.mysql.permission.UserRoleMapper; +import co.yixiang.yshop.module.system.enums.permission.DataScopeEnum; +import co.yixiang.yshop.module.system.service.dept.DeptService; +import co.yixiang.yshop.module.system.service.user.AdminUserService; +import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +import static cn.hutool.core.collection.ListUtil.toList; +import static co.yixiang.yshop.framework.common.util.collection.SetUtils.asSet; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomLongId; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; +import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.*; + +@Import({PermissionServiceImpl.class}) +public class PermissionServiceTest extends BaseDbUnitTest { + + @Resource + private PermissionServiceImpl permissionService; + + @Resource + private RoleMenuMapper roleMenuMapper; + @Resource + private UserRoleMapper userRoleMapper; + + @MockBean + private RoleService roleService; + @MockBean + private MenuService menuService; + @MockBean + private DeptService deptService; + @MockBean + private AdminUserService userService; + + @Test + public void testHasAnyPermissions_superAdmin() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + String[] roles = new String[]{"system:user:query", "system:user:create"}; + // mock 用户登录的角色 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(100L)); + RoleDO role = randomPojo(RoleDO.class, o -> o.setId(100L) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(100L)))).thenReturn(toList(role)); + // mock 其它方法 + when(roleService.hasAnySuperAdmin(eq(asSet(100L)))).thenReturn(true); + + // 调用,并断言 + assertTrue(permissionService.hasAnyPermissions(userId, roles)); + } + } + + @Test + public void testHasAnyPermissions_normal() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + String[] roles = new String[]{"system:user:query", "system:user:create"}; + // mock 用户登录的角色 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(100L)); + RoleDO role = randomPojo(RoleDO.class, o -> o.setId(100L) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(100L)))).thenReturn(toList(role)); + // mock 菜单 + Long menuId = 1000L; + when(menuService.getMenuIdListByPermissionFromCache( + eq("system:user:create"))).thenReturn(singletonList(menuId)); + roleMenuMapper.insert(randomPojo(RoleMenuDO.class).setRoleId(100L).setMenuId(1000L)); + + // 调用,并断言 + assertTrue(permissionService.hasAnyPermissions(userId, roles)); + } + } + + @Test + public void testHasAnyRoles() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + String[] roles = new String[]{"yshop", "tudou"}; + // mock 用户与角色的缓存 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(100L)); + RoleDO role = randomPojo(RoleDO.class, o -> o.setId(100L).setCode("tudou") + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(100L)))).thenReturn(toList(role)); + + // 调用,并断言 + assertTrue(permissionService.hasAnyRoles(userId, roles)); + } + } + + // ========== 角色-菜单的相关方法 ========== + + @Test + public void testAssignRoleMenu() { + // 准备参数 + Long roleId = 1L; + Set menuIds = asSet(200L, 300L); + // mock 数据 + RoleMenuDO roleMenu01 = randomPojo(RoleMenuDO.class).setRoleId(1L).setMenuId(100L); + roleMenuMapper.insert(roleMenu01); + RoleMenuDO roleMenu02 = randomPojo(RoleMenuDO.class).setRoleId(1L).setMenuId(200L); + roleMenuMapper.insert(roleMenu02); + + // 调用 + permissionService.assignRoleMenu(roleId, menuIds); + // 断言 + List roleMenuList = roleMenuMapper.selectList(); + assertEquals(2, roleMenuList.size()); + assertEquals(1L, roleMenuList.get(0).getRoleId()); + assertEquals(200L, roleMenuList.get(0).getMenuId()); + assertEquals(1L, roleMenuList.get(1).getRoleId()); + assertEquals(300L, roleMenuList.get(1).getMenuId()); + } + + @Test + public void testProcessRoleDeleted() { + // 准备参数 + Long roleId = randomLongId(); + // mock 数据 UserRole + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setRoleId(roleId)); // 被删除 + userRoleMapper.insert(userRoleDO01); + UserRoleDO userRoleDO02 = randomPojo(UserRoleDO.class); // 不被删除 + userRoleMapper.insert(userRoleDO02); + // mock 数据 RoleMenu + RoleMenuDO roleMenuDO01 = randomPojo(RoleMenuDO.class, o -> o.setRoleId(roleId)); // 被删除 + roleMenuMapper.insert(roleMenuDO01); + RoleMenuDO roleMenuDO02 = randomPojo(RoleMenuDO.class); // 不被删除 + roleMenuMapper.insert(roleMenuDO02); + + // 调用 + permissionService.processRoleDeleted(roleId); + // 断言数据 RoleMenuDO + List dbRoleMenus = roleMenuMapper.selectList(); + assertEquals(1, dbRoleMenus.size()); + assertPojoEquals(dbRoleMenus.get(0), roleMenuDO02); + // 断言数据 UserRoleDO + List dbUserRoles = userRoleMapper.selectList(); + assertEquals(1, dbUserRoles.size()); + assertPojoEquals(dbUserRoles.get(0), userRoleDO02); + } + + @Test + public void testProcessMenuDeleted() { + // 准备参数 + Long menuId = randomLongId(); + // mock 数据 + RoleMenuDO roleMenuDO01 = randomPojo(RoleMenuDO.class, o -> o.setMenuId(menuId)); // 被删除 + roleMenuMapper.insert(roleMenuDO01); + RoleMenuDO roleMenuDO02 = randomPojo(RoleMenuDO.class); // 不被删除 + roleMenuMapper.insert(roleMenuDO02); + + // 调用 + permissionService.processMenuDeleted(menuId); + // 断言数据 + List dbRoleMenus = roleMenuMapper.selectList(); + assertEquals(1, dbRoleMenus.size()); + assertPojoEquals(dbRoleMenus.get(0), roleMenuDO02); + } + + @Test + public void testGetRoleMenuIds_superAdmin() { + // 准备参数 + Long roleId = 100L; + // mock 方法 + when(roleService.hasAnySuperAdmin(eq(singleton(100L)))).thenReturn(true); + List menuList = singletonList(randomPojo(MenuDO.class).setId(1L)); + when(menuService.getMenuList()).thenReturn(menuList); + + // 调用 + Set menuIds = permissionService.getRoleMenuListByRoleId(roleId); + // 断言 + assertEquals(singleton(1L), menuIds); + } + + @Test + public void testGetRoleMenuIds_normal() { + // 准备参数 + Long roleId = 100L; + // mock 数据 + RoleMenuDO roleMenu01 = randomPojo(RoleMenuDO.class).setRoleId(100L).setMenuId(1L); + roleMenuMapper.insert(roleMenu01); + RoleMenuDO roleMenu02 = randomPojo(RoleMenuDO.class).setRoleId(100L).setMenuId(2L); + roleMenuMapper.insert(roleMenu02); + + // 调用 + Set menuIds = permissionService.getRoleMenuListByRoleId(roleId); + // 断言 + assertEquals(asSet(1L, 2L), menuIds); + } + + @Test + public void testGetMenuRoleIdListByMenuIdFromCache() { + // 准备参数 + Long menuId = 1L; + // mock 数据 + RoleMenuDO roleMenu01 = randomPojo(RoleMenuDO.class).setRoleId(100L).setMenuId(1L); + roleMenuMapper.insert(roleMenu01); + RoleMenuDO roleMenu02 = randomPojo(RoleMenuDO.class).setRoleId(200L).setMenuId(1L); + roleMenuMapper.insert(roleMenu02); + + // 调用 + Set roleIds = permissionService.getMenuRoleIdListByMenuIdFromCache(menuId); + // 断言 + assertEquals(asSet(100L, 200L), roleIds); + } + + // ========== 用户-角色的相关方法 ========== + + @Test + public void testAssignUserRole() { + // 准备参数 + Long userId = 1L; + Set roleIds = asSet(200L, 300L); + // mock 数据 + UserRoleDO userRole01 = randomPojo(UserRoleDO.class).setUserId(1L).setRoleId(100L); + userRoleMapper.insert(userRole01); + UserRoleDO userRole02 = randomPojo(UserRoleDO.class).setUserId(1L).setRoleId(200L); + userRoleMapper.insert(userRole02); + + // 调用 + permissionService.assignUserRole(userId, roleIds); + // 断言 + List userRoleDOList = userRoleMapper.selectList(); + assertEquals(2, userRoleDOList.size()); + assertEquals(1L, userRoleDOList.get(0).getUserId()); + assertEquals(200L, userRoleDOList.get(0).getRoleId()); + assertEquals(1L, userRoleDOList.get(1).getUserId()); + assertEquals(300L, userRoleDOList.get(1).getRoleId()); + } + + @Test + public void testProcessUserDeleted() { + // 准备参数 + Long userId = randomLongId(); + // mock 数据 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(userId)); // 被删除 + userRoleMapper.insert(userRoleDO01); + UserRoleDO userRoleDO02 = randomPojo(UserRoleDO.class); // 不被删除 + userRoleMapper.insert(userRoleDO02); + + // 调用 + permissionService.processUserDeleted(userId); + // 断言数据 + List dbUserRoles = userRoleMapper.selectList(); + assertEquals(1, dbUserRoles.size()); + assertPojoEquals(dbUserRoles.get(0), userRoleDO02); + } + + @Test + public void testGetUserRoleIdListByUserId() { + // 准备参数 + Long userId = 1L; + // mock 数据 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(10L)); + userRoleMapper.insert(userRoleDO01); + UserRoleDO roleMenuDO02 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(20L)); + userRoleMapper.insert(roleMenuDO02); + + // 调用 + Set result = permissionService.getUserRoleIdListByUserId(userId); + // 断言 + assertEquals(asSet(10L, 20L), result); + } + + @Test + public void testGetUserRoleIdListByUserIdFromCache() { + // 准备参数 + Long userId = 1L; + // mock 数据 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(10L)); + userRoleMapper.insert(userRoleDO01); + UserRoleDO roleMenuDO02 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(20L)); + userRoleMapper.insert(roleMenuDO02); + + // 调用 + Set result = permissionService.getUserRoleIdListByUserIdFromCache(userId); + // 断言 + assertEquals(asSet(10L, 20L), result); + } + + @Test + public void testGetUserRoleIdsFromCache() { + // 准备参数 + Long userId = 1L; + // mock 数据 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(10L)); + userRoleMapper.insert(userRoleDO01); + UserRoleDO roleMenuDO02 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(20L)); + userRoleMapper.insert(roleMenuDO02); + + // 调用 + Set result = permissionService.getUserRoleIdListByUserIdFromCache(userId); + // 断言 + assertEquals(asSet(10L, 20L), result); + } + + @Test + public void testGetUserRoleIdListByRoleId() { + // 准备参数 + Collection roleIds = asSet(10L, 20L); + // mock 数据 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(1L).setRoleId(10L)); + userRoleMapper.insert(userRoleDO01); + UserRoleDO roleMenuDO02 = randomPojo(UserRoleDO.class, o -> o.setUserId(2L).setRoleId(20L)); + userRoleMapper.insert(roleMenuDO02); + + // 调用 + Set result = permissionService.getUserRoleIdListByRoleId(roleIds); + // 断言 + assertEquals(asSet(1L, 2L), result); + } + + @Test + public void testGetEnableUserRoleListByUserIdFromCache() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户登录的角色 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(100L)); + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(200L)); + RoleDO role01 = randomPojo(RoleDO.class, o -> o.setId(100L) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + RoleDO role02 = randomPojo(RoleDO.class, o -> o.setId(200L) + .setStatus(CommonStatusEnum.DISABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(asSet(100L, 200L)))) + .thenReturn(toList(role01, role02)); + + // 调用 + List result = permissionService.getEnableUserRoleListByUserIdFromCache(userId); + // 断言 + assertEquals(1, result.size()); + assertPojoEquals(role01, result.get(0)); + } + } + + // ========== 用户-部门的相关方法 ========== + + @Test + public void testAssignRoleDataScope() { + // 准备参数 + Long roleId = 1L; + Integer dataScope = 2; + Set dataScopeDeptIds = asSet(10L, 20L); + + // 调用 + permissionService.assignRoleDataScope(roleId, dataScope, dataScopeDeptIds); + // 断言 + verify(roleService).updateRoleDataScope(eq(roleId), eq(dataScope), eq(dataScopeDeptIds)); + } + + @Test + public void testGetDeptDataPermission_All() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户的角色编号 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(2L)); + // mock 获得用户的角色 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.ALL.getScope()) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(2L)))).thenReturn(toList(roleDO)); + + // 调用 + DeptDataPermissionRespDTO result = permissionService.getDeptDataPermission(userId); + // 断言 + assertTrue(result.getAll()); + assertFalse(result.getSelf()); + assertTrue(CollUtil.isEmpty(result.getDeptIds())); + } + } + + @Test + public void testGetDeptDataPermission_DeptCustom() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户的角色编号 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(2L)); + // mock 获得用户的角色 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_CUSTOM.getScope()) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(2L)))).thenReturn(toList(roleDO)); + // mock 部门的返回 + when(userService.getUser(eq(1L))).thenReturn(new AdminUserDO().setDeptId(3L), + null, null); // 最后返回 null 的目的,看看会不会重复调用 + + // 调用 + DeptDataPermissionRespDTO result = permissionService.getDeptDataPermission(userId); + // 断言 + assertFalse(result.getAll()); + assertFalse(result.getSelf()); + assertEquals(roleDO.getDataScopeDeptIds().size() + 1, result.getDeptIds().size()); + assertTrue(CollUtil.containsAll(result.getDeptIds(), roleDO.getDataScopeDeptIds())); + assertTrue(CollUtil.contains(result.getDeptIds(), 3L)); + } + } + + @Test + public void testGetDeptDataPermission_DeptOnly() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户的角色编号 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(2L)); + // mock 获得用户的角色 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_ONLY.getScope()) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(2L)))).thenReturn(toList(roleDO)); + // mock 部门的返回 + when(userService.getUser(eq(1L))).thenReturn(new AdminUserDO().setDeptId(3L), + null, null); // 最后返回 null 的目的,看看会不会重复调用 + + // 调用 + DeptDataPermissionRespDTO result = permissionService.getDeptDataPermission(userId); + // 断言 + assertFalse(result.getAll()); + assertFalse(result.getSelf()); + assertEquals(1, result.getDeptIds().size()); + assertTrue(CollUtil.contains(result.getDeptIds(), 3L)); + } + } + + @Test + public void testGetDeptDataPermission_DeptAndChild() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户的角色编号 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(2L)); + // mock 获得用户的角色 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_AND_CHILD.getScope()) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(2L)))).thenReturn(toList(roleDO)); + // mock 部门的返回 + when(userService.getUser(eq(1L))).thenReturn(new AdminUserDO().setDeptId(3L), + null, null); // 最后返回 null 的目的,看看会不会重复调用 + // mock 方法(部门) + DeptDO deptDO = randomPojo(DeptDO.class); + when(deptService.getChildDeptIdListFromCache(eq(3L))).thenReturn(singleton(deptDO.getId())); + + // 调用 + DeptDataPermissionRespDTO result = permissionService.getDeptDataPermission(userId); + // 断言 + assertFalse(result.getAll()); + assertFalse(result.getSelf()); + assertEquals(2, result.getDeptIds().size()); + assertTrue(CollUtil.contains(result.getDeptIds(), deptDO.getId())); + assertTrue(CollUtil.contains(result.getDeptIds(), 3L)); + } + } + + @Test + public void testGetDeptDataPermission_Self() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(PermissionServiceImpl.class))) + .thenReturn(permissionService); + + // 准备参数 + Long userId = 1L; + // mock 用户的角色编号 + userRoleMapper.insert(randomPojo(UserRoleDO.class).setUserId(userId).setRoleId(2L)); + // mock 获得用户的角色 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.SELF.getScope()) + .setStatus(CommonStatusEnum.ENABLE.getStatus())); + when(roleService.getRoleListFromCache(eq(singleton(2L)))).thenReturn(toList(roleDO)); + + // 调用 + DeptDataPermissionRespDTO result = permissionService.getDeptDataPermission(userId); + // 断言 + assertFalse(result.getAll()); + assertTrue(result.getSelf()); + assertTrue(CollUtil.isEmpty(result.getDeptIds())); + } + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImplTest.java new file mode 100644 index 0000000..769d4c7 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/permission/RoleServiceImplTest.java @@ -0,0 +1,371 @@ +package co.yixiang.yshop.module.system.service.permission; + +import cn.hutool.extra.spring.SpringUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; +import co.yixiang.yshop.module.system.dal.mysql.permission.RoleMapper; +import co.yixiang.yshop.module.system.enums.permission.DataScopeEnum; +import co.yixiang.yshop.module.system.enums.permission.RoleTypeEnum; +import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; + +@Import(RoleServiceImpl.class) +public class RoleServiceImplTest extends BaseDbUnitTest { + + @Resource + private RoleServiceImpl roleService; + + @Resource + private RoleMapper roleMapper; + + @MockBean + private PermissionService permissionService; + + @Test + public void testCreateRole() { + // 准备参数 + RoleSaveReqVO reqVO = randomPojo(RoleSaveReqVO.class) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long roleId = roleService.createRole(reqVO, null); + // 断言 + RoleDO roleDO = roleMapper.selectById(roleId); + assertPojoEquals(reqVO, roleDO, "id"); + assertEquals(RoleTypeEnum.CUSTOM.getType(), roleDO.getType()); + assertEquals(CommonStatusEnum.ENABLE.getStatus(), roleDO.getStatus()); + assertEquals(DataScopeEnum.ALL.getScope(), roleDO.getDataScope()); + } + + @Test + public void testUpdateRole() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setType(RoleTypeEnum.CUSTOM.getType())); + roleMapper.insert(roleDO); + // 准备参数 + Long id = roleDO.getId(); + RoleSaveReqVO reqVO = randomPojo(RoleSaveReqVO.class, o -> o.setId(id)); + + // 调用 + roleService.updateRole(reqVO); + // 断言 + RoleDO newRoleDO = roleMapper.selectById(id); + assertPojoEquals(reqVO, newRoleDO); + } + + @Test + public void testUpdateRoleDataScope() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setType(RoleTypeEnum.CUSTOM.getType())); + roleMapper.insert(roleDO); + // 准备参数 + Long id = roleDO.getId(); + Integer dataScope = randomEle(DataScopeEnum.values()).getScope(); + Set dataScopeRoleIds = randomSet(Long.class); + + // 调用 + roleService.updateRoleDataScope(id, dataScope, dataScopeRoleIds); + // 断言 + RoleDO dbRoleDO = roleMapper.selectById(id); + assertEquals(dataScope, dbRoleDO.getDataScope()); + assertEquals(dataScopeRoleIds, dbRoleDO.getDataScopeDeptIds()); + } + + @Test + public void testDeleteRole() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setType(RoleTypeEnum.CUSTOM.getType())); + roleMapper.insert(roleDO); + // 参数准备 + Long id = roleDO.getId(); + + // 调用 + roleService.deleteRole(id); + // 断言 + assertNull(roleMapper.selectById(id)); + // verify 删除相关数据 + verify(permissionService).processRoleDeleted(id); + } + + @Test + public void testValidateRoleDuplicate_success() { + // 调用,不会抛异常 + roleService.validateRoleDuplicate(randomString(), randomString(), null); + } + + @Test + public void testValidateRoleDuplicate_nameDuplicate() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setName("role_name")); + roleMapper.insert(roleDO); + // 准备参数 + String name = "role_name"; + + // 调用,并断言异常 + assertServiceException(() -> roleService.validateRoleDuplicate(name, randomString(), null), + ROLE_NAME_DUPLICATE, name); + } + + @Test + public void testValidateRoleDuplicate_codeDuplicate() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setCode("code")); + roleMapper.insert(roleDO); + // 准备参数 + String code = "code"; + + // 调用,并断言异常 + assertServiceException(() -> roleService.validateRoleDuplicate(randomString(), code, null), + ROLE_CODE_DUPLICATE, code); + } + + @Test + public void testValidateUpdateRole_success() { + RoleDO roleDO = randomPojo(RoleDO.class); + roleMapper.insert(roleDO); + // 准备参数 + Long id = roleDO.getId(); + + // 调用,无异常 + roleService.validateRoleForUpdate(id); + } + + @Test + public void testValidateUpdateRole_roleIdNotExist() { + assertServiceException(() -> roleService.validateRoleForUpdate(randomLongId()), ROLE_NOT_EXISTS); + } + + @Test + public void testValidateUpdateRole_systemRoleCanNotBeUpdate() { + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setType(RoleTypeEnum.SYSTEM.getType())); + roleMapper.insert(roleDO); + // 准备参数 + Long id = roleDO.getId(); + + assertServiceException(() -> roleService.validateRoleForUpdate(id), + ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE); + } + + @Test + public void testGetRole() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class); + roleMapper.insert(roleDO); + // 参数准备 + Long id = roleDO.getId(); + + // 调用 + RoleDO dbRoleDO = roleService.getRole(id); + // 断言 + assertPojoEquals(roleDO, dbRoleDO); + } + + @Test + public void testGetRoleFromCache() { + // mock 数据(缓存) + RoleDO roleDO = randomPojo(RoleDO.class); + roleMapper.insert(roleDO); + // 参数准备 + Long id = roleDO.getId(); + + // 调用 + RoleDO dbRoleDO = roleService.getRoleFromCache(id); + // 断言 + assertPojoEquals(roleDO, dbRoleDO); + } + + @Test + public void testGetRoleListByStatus() { + // mock 数据 + RoleDO dbRole01 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + roleMapper.insert(dbRole01); + RoleDO dbRole02 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); + roleMapper.insert(dbRole02); + + // 调用 + List list = roleService.getRoleListByStatus( + singleton(CommonStatusEnum.ENABLE.getStatus())); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbRole01, list.get(0)); + } + + @Test + public void testGetRoleList() { + // mock 数据 + RoleDO dbRole01 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + roleMapper.insert(dbRole01); + RoleDO dbRole02 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); + roleMapper.insert(dbRole02); + + // 调用 + List list = roleService.getRoleList(); + // 断言 + assertEquals(2, list.size()); + assertPojoEquals(dbRole01, list.get(0)); + assertPojoEquals(dbRole02, list.get(1)); + } + + @Test + public void testGetRoleList_ids() { + // mock 数据 + RoleDO dbRole01 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + roleMapper.insert(dbRole01); + RoleDO dbRole02 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); + roleMapper.insert(dbRole02); + // 准备参数 + Collection ids = singleton(dbRole01.getId()); + + // 调用 + List list = roleService.getRoleList(ids); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbRole01, list.get(0)); + } + + @Test + public void testGetRoleListFromCache() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(RoleServiceImpl.class))) + .thenReturn(roleService); + + // mock 数据 + RoleDO dbRole = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + roleMapper.insert(dbRole); + // 测试 id 不匹配 + roleMapper.insert(cloneIgnoreId(dbRole, o -> {})); + // 准备参数 + Collection ids = singleton(dbRole.getId()); + + // 调用 + List list = roleService.getRoleListFromCache(ids); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbRole, list.get(0)); + } + } + + @Test + public void testGetRolePage() { + // mock 数据 + RoleDO dbRole = randomPojo(RoleDO.class, o -> { // 等会查询到 + o.setName("土豆"); + o.setCode("tudou"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(buildTime(2022, 2, 8)); + }); + roleMapper.insert(dbRole); + // 测试 name 不匹配 + roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setName("红薯"))); + // 测试 code 不匹配 + roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCode("hong"))); + // 测试 createTime 不匹配 + roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(buildTime(2022, 2, 16)))); + // 准备参数 + RolePageReqVO reqVO = new RolePageReqVO(); + reqVO.setName("土豆"); + reqVO.setCode("tu"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setCreateTime(buildBetweenTime(2022, 2, 1, 2022, 2, 12)); + + // 调用 + PageResult pageResult = roleService.getRolePage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbRole, pageResult.getList().get(0)); + } + + @Test + public void testHasAnySuperAdmin_true() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(RoleServiceImpl.class))) + .thenReturn(roleService); + + // mock 数据 + RoleDO dbRole = randomPojo(RoleDO.class).setCode("super_admin"); + roleMapper.insert(dbRole); + // 准备参数 + Long id = dbRole.getId(); + + // 调用,并调用 + assertTrue(roleService.hasAnySuperAdmin(singletonList(id))); + } + } + + @Test + public void testHasAnySuperAdmin_false() { + try (MockedStatic springUtilMockedStatic = mockStatic(SpringUtil.class)) { + springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(RoleServiceImpl.class))) + .thenReturn(roleService); + + // mock 数据 + RoleDO dbRole = randomPojo(RoleDO.class).setCode("tenant_admin"); + roleMapper.insert(dbRole); + // 准备参数 + Long id = dbRole.getId(); + + // 调用,并调用 + assertFalse(roleService.hasAnySuperAdmin(singletonList(id))); + } + } + + @Test + public void testValidateRoleList_success() { + // mock 数据 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); + roleMapper.insert(roleDO); + // 准备参数 + List ids = singletonList(roleDO.getId()); + + // 调用,无需断言 + roleService.validateRoleList(ids); + } + + @Test + public void testValidateRoleList_notFound() { + // 准备参数 + List ids = singletonList(randomLongId()); + + // 调用, 并断言异常 + assertServiceException(() -> roleService.validateRoleList(ids), ROLE_NOT_EXISTS); + } + + @Test + public void testValidateRoleList_notEnable() { + // mock 数据 + RoleDO RoleDO = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())); + roleMapper.insert(RoleDO); + // 准备参数 + List ids = singletonList(RoleDO.getId()); + + // 调用, 并断言异常 + assertServiceException(() -> roleService.validateRoleList(ids), ROLE_IS_DISABLE, RoleDO.getName()); + } +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceTest.java new file mode 100644 index 0000000..0da1f17 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsChannelServiceTest.java @@ -0,0 +1,236 @@ +package co.yixiang.yshop.module.system.service.sms; + +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.object.BeanUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClientFactory; +import co.yixiang.yshop.module.system.framework.sms.core.property.SmsChannelProperties; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; +import co.yixiang.yshop.module.system.dal.mysql.sms.SmsChannelMapper; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.List; + +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.*; + +@Import(SmsChannelServiceImpl.class) +public class SmsChannelServiceTest extends BaseDbUnitTest { + + @Resource + private SmsChannelServiceImpl smsChannelService; + + @Resource + private SmsChannelMapper smsChannelMapper; + + @MockBean + private SmsClientFactory smsClientFactory; + @MockBean + private SmsTemplateService smsTemplateService; + + @Test + public void testCreateSmsChannel_success() { + // 准备参数 + SmsChannelSaveReqVO reqVO = randomPojo(SmsChannelSaveReqVO.class, o -> o.setStatus(randomCommonStatus())) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long smsChannelId = smsChannelService.createSmsChannel(reqVO); + // 断言 + assertNotNull(smsChannelId); + // 校验记录的属性是否正确 + SmsChannelDO smsChannel = smsChannelMapper.selectById(smsChannelId); + assertPojoEquals(reqVO, smsChannel, "id"); + // 断言 cache + assertNull(smsChannelService.getIdClientCache().getIfPresent(smsChannel.getId())); + assertNull(smsChannelService.getCodeClientCache().getIfPresent(smsChannel.getCode())); + } + + @Test + public void testUpdateSmsChannel_success() { + // mock 数据 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 + // 准备参数 + SmsChannelSaveReqVO reqVO = randomPojo(SmsChannelSaveReqVO.class, o -> { + o.setId(dbSmsChannel.getId()); // 设置更新的 ID + o.setStatus(randomCommonStatus()); + o.setCallbackUrl(randomString()); + }); + + // 调用 + smsChannelService.updateSmsChannel(reqVO); + // 校验是否更新正确 + SmsChannelDO smsChannel = smsChannelMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, smsChannel); + // 断言 cache + assertNull(smsChannelService.getIdClientCache().getIfPresent(smsChannel.getId())); + assertNull(smsChannelService.getCodeClientCache().getIfPresent(smsChannel.getCode())); + } + + @Test + public void testUpdateSmsChannel_notExists() { + // 准备参数 + SmsChannelSaveReqVO reqVO = randomPojo(SmsChannelSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> smsChannelService.updateSmsChannel(reqVO), SMS_CHANNEL_NOT_EXISTS); + } + + @Test + public void testDeleteSmsChannel_success() { + // mock 数据 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSmsChannel.getId(); + + // 调用 + smsChannelService.deleteSmsChannel(id); + // 校验数据不存在了 + assertNull(smsChannelMapper.selectById(id)); + // 断言 cache + assertNull(smsChannelService.getIdClientCache().getIfPresent(dbSmsChannel.getId())); + assertNull(smsChannelService.getCodeClientCache().getIfPresent(dbSmsChannel.getCode())); + } + + @Test + public void testDeleteSmsChannel_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> smsChannelService.deleteSmsChannel(id), SMS_CHANNEL_NOT_EXISTS); + } + + @Test + public void testDeleteSmsChannel_hasChildren() { + // mock 数据 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSmsChannel.getId(); + // mock 方法 + when(smsTemplateService.getSmsTemplateCountByChannelId(eq(id))).thenReturn(10L); + + // 调用, 并断言异常 + assertServiceException(() -> smsChannelService.deleteSmsChannel(id), SMS_CHANNEL_HAS_CHILDREN); + } + + @Test + public void testGetSmsChannel() { + // mock 数据 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel); // @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSmsChannel.getId(); + + // 调用,并断言 + assertPojoEquals(dbSmsChannel, smsChannelService.getSmsChannel(id)); + } + + @Test + public void testGetSmsChannelList() { + // mock 数据 + SmsChannelDO dbSmsChannel01 = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel01); + SmsChannelDO dbSmsChannel02 = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(dbSmsChannel02); + // 准备参数 + + // 调用 + List list = smsChannelService.getSmsChannelList(); + // 断言 + assertEquals(2, list.size()); + assertPojoEquals(dbSmsChannel01, list.get(0)); + assertPojoEquals(dbSmsChannel02, list.get(1)); + } + + @Test + public void testGetSmsChannelPage() { + // mock 数据 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到 + o.setSignature("yshop"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(buildTime(2020, 12, 12)); + }); + smsChannelMapper.insert(dbSmsChannel); + // 测试 signature 不匹配 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码"))); + // 测试 status 不匹配 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 createTime 不匹配 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11)))); + // 准备参数 + SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO(); + reqVO.setSignature("yshop"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24)); + + // 调用 + PageResult pageResult = smsChannelService.getSmsChannelPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSmsChannel, pageResult.getList().get(0)); + } + + @Test + public void testGetSmsClient_id() { + // mock 数据 + SmsChannelDO channel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(channel); + // mock 参数 + Long id = channel.getId(); + // mock 方法 + SmsClient mockClient = mock(SmsClient.class); + when(smsClientFactory.getSmsClient(eq(id))).thenReturn(mockClient); + + // 调用 + SmsClient client = smsChannelService.getSmsClient(id); + // 断言 + assertSame(client, mockClient); + verify(smsClientFactory).createOrUpdateSmsClient(argThat(arg -> { + SmsChannelProperties properties = BeanUtils.toBean(channel, SmsChannelProperties.class); + return properties.equals(arg); + })); + } + + @Test + public void testGetSmsClient_code() { + // mock 数据 + SmsChannelDO channel = randomPojo(SmsChannelDO.class); + smsChannelMapper.insert(channel); + // mock 参数 + String code = channel.getCode(); + // mock 方法 + SmsClient mockClient = mock(SmsClient.class); + when(smsClientFactory.getSmsClient(eq(code))).thenReturn(mockClient); + + // 调用 + SmsClient client = smsChannelService.getSmsClient(code); + // 断言 + assertSame(client, mockClient); + verify(smsClientFactory).createOrUpdateSmsClient(argThat(arg -> { + SmsChannelProperties properties = BeanUtils.toBean(channel, SmsChannelProperties.class); + return properties.equals(arg); + })); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java similarity index 98% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java index a07bbba..3c426fb 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsCodeServiceImplTest.java @@ -9,14 +9,14 @@ import co.yixiang.yshop.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsCodeDO; import co.yixiang.yshop.module.system.dal.mysql.sms.SmsCodeMapper; import co.yixiang.yshop.module.system.enums.sms.SmsSceneEnum; -import co.yixiang.yshop.module.system.framework.sms.SmsCodeProperties; +import co.yixiang.yshop.module.system.framework.sms.config.SmsCodeProperties; import com.baomidou.mybatisplus.annotation.DbType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.Duration; import java.time.LocalDateTime; diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java similarity index 76% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java index aa9383f..f9c08e6 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsLogServiceImplTest.java @@ -2,11 +2,9 @@ package co.yixiang.yshop.module.system.service.sms; import cn.hutool.core.map.MapUtil; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; -import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; import co.yixiang.yshop.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsLogDO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; @@ -17,9 +15,8 @@ import co.yixiang.yshop.module.system.enums.sms.SmsTemplateTypeEnum; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; -import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -87,50 +84,6 @@ public class SmsLogServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbSmsLog, pageResult.getList().get(0)); } - @Test - public void testGetSmsLogList() { - // mock 数据 - SmsLogDO dbSmsLog = randomSmsLogDO(o -> { // 等会查询到 - o.setChannelId(1L); - o.setTemplateId(10L); - o.setMobile("15601691300"); - o.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); - o.setSendTime(buildTime(2020, 11, 11)); - o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); - o.setReceiveTime(buildTime(2021, 11, 11)); - }); - smsLogMapper.insert(dbSmsLog); - // 测试 channelId 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setChannelId(2L))); - // 测试 templateId 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setTemplateId(20L))); - // 测试 mobile 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setMobile("18818260999"))); - // 测试 sendStatus 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus()))); - // 测试 sendTime 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12)))); - // 测试 receiveStatus 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus()))); - // 测试 receiveTime 不匹配 - smsLogMapper.insert(cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12)))); - // 准备参数 - SmsLogExportReqVO reqVO = new SmsLogExportReqVO(); - reqVO.setChannelId(1L); - reqVO.setTemplateId(10L); - reqVO.setMobile("156"); - reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus()); - reqVO.setSendTime(buildBetweenTime(2020, 11, 1, 2020, 11, 30)); - reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); - reqVO.setReceiveTime(buildBetweenTime(2021, 11, 1, 2021, 11, 30)); - - // 调用 - List list = smsLogService.getSmsLogList(reqVO); - // 断言 - assertEquals(1, list.size()); - assertPojoEquals(dbSmsLog, list.get(0)); - } - @Test public void testCreateSmsLog() { // 准备参数 @@ -172,22 +125,20 @@ public class SmsLogServiceImplTest extends BaseDbUnitTest { smsLogMapper.insert(dbSmsLog); // 准备参数 Long id = dbSmsLog.getId(); - Integer sendCode = randomInteger(); - String sendMsg = randomString(); + Boolean success = randomBoolean(); String apiSendCode = randomString(); String apiSendMsg = randomString(); String apiRequestId = randomString(); String apiSerialNo = randomString(); // 调用 - smsLogService.updateSmsSendResult(id, sendCode, sendMsg, + smsLogService.updateSmsSendResult(id, success, apiSendCode, apiSendMsg, apiRequestId, apiSerialNo); // 断言 dbSmsLog = smsLogMapper.selectById(id); - assertEquals(CommonResult.isSuccess(sendCode) ? SmsSendStatusEnum.SUCCESS.getStatus() - : SmsSendStatusEnum.FAILURE.getStatus(), dbSmsLog.getSendStatus()); + assertEquals(success ? SmsSendStatusEnum.SUCCESS.getStatus() : SmsSendStatusEnum.FAILURE.getStatus(), + dbSmsLog.getSendStatus()); assertNotNull(dbSmsLog.getSendTime()); - assertEquals(sendMsg, dbSmsLog.getSendMsg()); assertEquals(apiSendCode, dbSmsLog.getApiSendCode()); assertEquals(apiSendMsg, dbSmsLog.getApiSendMsg()); assertEquals(apiRequestId, dbSmsLog.getApiRequestId()); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java similarity index 85% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java index 0b715ad..2d691e1 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsSendServiceImplTest.java @@ -4,11 +4,9 @@ import cn.hutool.core.map.MapUtil; import co.yixiang.yshop.framework.common.core.KeyValue; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.enums.UserTypeEnum; -import co.yixiang.yshop.framework.sms.core.client.SmsClient; -import co.yixiang.yshop.framework.sms.core.client.SmsClientFactory; -import co.yixiang.yshop.framework.sms.core.client.SmsCommonResult; -import co.yixiang.yshop.framework.sms.core.client.dto.SmsReceiveRespDTO; -import co.yixiang.yshop.framework.sms.core.client.dto.SmsSendRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsSendRespDTO; import co.yixiang.yshop.framework.test.core.ut.BaseMockitoUnitTest; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; @@ -18,6 +16,7 @@ import co.yixiang.yshop.module.system.mq.producer.sms.SmsProducer; import co.yixiang.yshop.module.system.service.member.MemberService; import co.yixiang.yshop.module.system.service.user.AdminUserService; import org.assertj.core.util.Lists; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -37,7 +36,7 @@ import static org.mockito.Mockito.*; public class SmsSendServiceImplTest extends BaseMockitoUnitTest { @InjectMocks - private SmsSendServiceImpl smsService; + private SmsSendServiceImpl smsSendService; @Mock private AdminUserService adminUserService; @@ -52,9 +51,6 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { @Mock private SmsProducer smsProducer; - @Mock - private SmsClientFactory smsClientFactory; - @Test public void testSendSingleSmsToAdmin() { // 准备参数 @@ -85,7 +81,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { eq(content), eq(templateParams))).thenReturn(smsLogId); // 调用 - Long resultSmsLogId = smsService.sendSingleSmsToAdmin(null, userId, templateCode, templateParams); + Long resultSmsLogId = smsSendService.sendSingleSmsToAdmin(null, userId, templateCode, templateParams); // 断言 assertEquals(smsLogId, resultSmsLogId); // 断言调用 @@ -124,7 +120,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { eq(content), eq(templateParams))).thenReturn(smsLogId); // 调用 - Long resultSmsLogId = smsService.sendSingleSmsToMember(null, userId, templateCode, templateParams); + Long resultSmsLogId = smsSendService.sendSingleSmsToMember(null, userId, templateCode, templateParams); // 断言 assertEquals(smsLogId, resultSmsLogId); // 断言调用 @@ -164,7 +160,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { eq(content), eq(templateParams))).thenReturn(smsLogId); // 调用 - Long resultSmsLogId = smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); + Long resultSmsLogId = smsSendService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); // 断言 assertEquals(smsLogId, resultSmsLogId); // 断言调用 @@ -204,7 +200,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { eq(content), eq(templateParams))).thenReturn(smsLogId); // 调用 - Long resultSmsLogId = smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); + Long resultSmsLogId = smsSendService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); // 断言 assertEquals(smsLogId, resultSmsLogId); // 断言调用 @@ -219,7 +215,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { // mock 方法 // 调用,并断言异常 - assertServiceException(() -> smsService.validateSmsTemplate(templateCode), + assertServiceException(() -> smsSendService.validateSmsTemplate(templateCode), SMS_SEND_TEMPLATE_NOT_EXISTS); } @@ -232,7 +228,7 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { // mock 方法 // 调用,并断言异常 - assertServiceException(() -> smsService.buildTemplateParams(template, templateParams), + assertServiceException(() -> smsSendService.buildTemplateParams(template, templateParams), SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS, "code"); } @@ -242,30 +238,43 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { // mock 方法 // 调用,并断言异常 - assertServiceException(() -> smsService.validateMobile(null), + assertServiceException(() -> smsSendService.validateMobile(null), SMS_SEND_MOBILE_NOT_EXISTS); } + @Test + public void testSendBatchNotify() { + // 准备参数 + // mock 方法 + + // 调用 + UnsupportedOperationException exception = Assertions.assertThrows( + UnsupportedOperationException.class, + () -> smsSendService.sendBatchSms(null, null, null, null, null) + ); + // 断言 + assertEquals("暂时不支持该操作,感兴趣可以实现该功能哟!", exception.getMessage()); + } + @Test @SuppressWarnings("unchecked") - public void testDoSendSms() { + public void testDoSendSms() throws Throwable { // 准备参数 SmsSendMessage message = randomPojo(SmsSendMessage.class); // mock SmsClientFactory 的方法 SmsClient smsClient = spy(SmsClient.class); - when(smsClientFactory.getSmsClient(eq(message.getChannelId()))).thenReturn(smsClient); + when(smsChannelService.getSmsClient(eq(message.getChannelId()))).thenReturn(smsClient); // mock SmsClient 的方法 - SmsCommonResult sendResult = randomPojo(SmsCommonResult.class, SmsSendRespDTO.class); - sendResult.setData(randomPojo(SmsSendRespDTO.class)); + SmsSendRespDTO sendResult = randomPojo(SmsSendRespDTO.class); when(smsClient.sendSms(eq(message.getLogId()), eq(message.getMobile()), eq(message.getApiTemplateId()), eq(message.getTemplateParams()))).thenReturn(sendResult); // 调用 - smsService.doSendSms(message); + smsSendService.doSendSms(message); // 断言 verify(smsLogService).updateSmsSendResult(eq(message.getLogId()), - eq(sendResult.getCode()), eq(sendResult.getMsg()), eq(sendResult.getApiCode()), - eq(sendResult.getApiMsg()), eq(sendResult.getApiRequestId()), eq(sendResult.getData().getSerialNo())); + eq(sendResult.getSuccess()), eq(sendResult.getApiCode()), + eq(sendResult.getApiMsg()), eq(sendResult.getApiRequestId()), eq(sendResult.getSerialNo())); } @Test @@ -275,12 +284,12 @@ public class SmsSendServiceImplTest extends BaseMockitoUnitTest { String text = randomString(); // mock SmsClientFactory 的方法 SmsClient smsClient = spy(SmsClient.class); - when(smsClientFactory.getSmsClient(eq(channelCode))).thenReturn(smsClient); + when(smsChannelService.getSmsClient(eq(channelCode))).thenReturn(smsClient); // mock SmsClient 的方法 List receiveResults = randomPojoList(SmsReceiveRespDTO.class); // 调用 - smsService.receiveSmsStatus(channelCode, text); + smsSendService.receiveSmsStatus(channelCode, text); // 断言 receiveResults.forEach(result -> smsLogService.updateSmsReceiveResult(eq(result.getLogId()), eq(result.getSuccess()), eq(result.getReceiveTime()), eq(result.getErrorCode()), eq(result.getErrorCode()))); diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImplTest.java new file mode 100644 index 0000000..6a84ac6 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/sms/SmsTemplateServiceImplTest.java @@ -0,0 +1,348 @@ +package co.yixiang.yshop.module.system.service.sms; + +import cn.hutool.core.map.MapUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.common.util.collection.ArrayUtils; +import co.yixiang.yshop.framework.common.util.object.ObjectUtils; +import co.yixiang.yshop.module.system.framework.sms.core.client.SmsClient; +import co.yixiang.yshop.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import co.yixiang.yshop.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import co.yixiang.yshop.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsChannelDO; +import co.yixiang.yshop.module.system.dal.dataobject.sms.SmsTemplateDO; +import co.yixiang.yshop.module.system.dal.mysql.sms.SmsTemplateMapper; +import co.yixiang.yshop.module.system.enums.sms.SmsTemplateTypeEnum; +import com.google.common.collect.Lists; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + +@Import(SmsTemplateServiceImpl.class) +public class SmsTemplateServiceImplTest extends BaseDbUnitTest { + + @Resource + private SmsTemplateServiceImpl smsTemplateService; + + @Resource + private SmsTemplateMapper smsTemplateMapper; + + @MockBean + private SmsChannelService smsChannelService; + @MockBean + private SmsClient smsClient; + + @Test + public void testFormatSmsTemplateContent() { + // 准备参数 + String content = "正在进行登录操作{operation},您的验证码是{code}"; + Map params = MapUtil.builder("operation", "登录") + .put("code", "1234").build(); + + // 调用 + String result = smsTemplateService.formatSmsTemplateContent(content, params); + // 断言 + assertEquals("正在进行登录操作登录,您的验证码是1234", result); + } + + @Test + public void testParseTemplateContentParams() { + // 准备参数 + String content = "正在进行登录操作{operation},您的验证码是{code}"; + // mock 方法 + + // 调用 + List params = smsTemplateService.parseTemplateContentParams(content); + // 断言 + assertEquals(Lists.newArrayList("operation", "code"), params); + } + + @Test + @SuppressWarnings("unchecked") + public void testCreateSmsTemplate_success() throws Throwable { + // 准备参数 + SmsTemplateSaveReqVO reqVO = randomPojo(SmsTemplateSaveReqVO.class, o -> { + o.setContent("正在进行登录操作{operation},您的验证码是{code}"); + o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 + o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 + }).setId(null); // 防止 id 被赋值 + // mock Channel 的方法 + SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { + o.setId(reqVO.getChannelId()); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 + }); + when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO); + // mock 获得 API 短信模板成功 + when(smsChannelService.getSmsClient(eq(reqVO.getChannelId()))).thenReturn(smsClient); + when(smsClient.getSmsTemplate(eq(reqVO.getApiTemplateId()))).thenReturn( + randomPojo(SmsTemplateRespDTO.class, o -> o.setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus()))); + + // 调用 + Long smsTemplateId = smsTemplateService.createSmsTemplate(reqVO); + // 断言 + assertNotNull(smsTemplateId); + // 校验记录的属性是否正确 + SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId); + assertPojoEquals(reqVO, smsTemplate, "id"); + assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams()); + assertEquals(channelDO.getCode(), smsTemplate.getChannelCode()); + } + + @Test + @SuppressWarnings("unchecked") + public void testUpdateSmsTemplate_success() throws Throwable { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); + smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + SmsTemplateSaveReqVO reqVO = randomPojo(SmsTemplateSaveReqVO.class, o -> { + o.setId(dbSmsTemplate.getId()); // 设置更新的 ID + o.setContent("正在进行登录操作{operation},您的验证码是{code}"); + o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 + o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 + }); + // mock 方法 + SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { + o.setId(reqVO.getChannelId()); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 + }); + when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO); + // mock 获得 API 短信模板成功 + when(smsChannelService.getSmsClient(eq(reqVO.getChannelId()))).thenReturn(smsClient); + when(smsClient.getSmsTemplate(eq(reqVO.getApiTemplateId()))).thenReturn( + randomPojo(SmsTemplateRespDTO.class, o -> o.setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus()))); + + // 调用 + smsTemplateService.updateSmsTemplate(reqVO); + // 校验是否更新正确 + SmsTemplateDO smsTemplate = smsTemplateMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, smsTemplate); + assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams()); + assertEquals(channelDO.getCode(), smsTemplate.getChannelCode()); + } + + @Test + public void testUpdateSmsTemplate_notExists() { + // 准备参数 + SmsTemplateSaveReqVO reqVO = randomPojo(SmsTemplateSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> smsTemplateService.updateSmsTemplate(reqVO), SMS_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testDeleteSmsTemplate_success() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); + smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSmsTemplate.getId(); + + // 调用 + smsTemplateService.deleteSmsTemplate(id); + // 校验数据不存在了 + assertNull(smsTemplateMapper.selectById(id)); + } + + @Test + public void testDeleteSmsTemplate_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> smsTemplateService.deleteSmsTemplate(id), SMS_TEMPLATE_NOT_EXISTS); + } + + @Test + public void testGetSmsTemplate() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); + smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSmsTemplate.getId(); + + // 调用 + SmsTemplateDO smsTemplate = smsTemplateService.getSmsTemplate(id); + // 校验 + assertPojoEquals(dbSmsTemplate, smsTemplate); + } + + @Test + public void testGetSmsTemplateByCodeFromCache() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); + smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 + // 准备参数 + String code = dbSmsTemplate.getCode(); + + // 调用 + SmsTemplateDO smsTemplate = smsTemplateService.getSmsTemplateByCodeFromCache(code); + // 校验 + assertPojoEquals(dbSmsTemplate, smsTemplate); + } + + @Test + public void testGetSmsTemplatePage() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomPojo(SmsTemplateDO.class, o -> { // 等会查询到 + o.setType(SmsTemplateTypeEnum.PROMOTION.getType()); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCode("tudou"); + o.setContent("yshop"); + o.setApiTemplateId("yshop"); + o.setChannelId(1L); + o.setCreateTime(buildTime(2021, 11, 11)); + }); + smsTemplateMapper.insert(dbSmsTemplate); + // 测试 type 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setType(SmsTemplateTypeEnum.VERIFICATION_CODE.getType()))); + // 测试 status 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 code 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCode("yuanma"))); + // 测试 content 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setContent("源码"))); + // 测试 apiTemplateId 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setApiTemplateId("nai"))); + // 测试 channelId 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L))); + // 测试 createTime 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12)))); + // 准备参数 + SmsTemplatePageReqVO reqVO = new SmsTemplatePageReqVO(); + reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType()); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setCode("tu"); + reqVO.setContent("yshop"); + reqVO.setApiTemplateId("yu"); + reqVO.setChannelId(1L); + reqVO.setCreateTime(buildBetweenTime(2021, 11, 1, 2021, 12, 1)); + + // 调用 + PageResult pageResult = smsTemplateService.getSmsTemplatePage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSmsTemplate, pageResult.getList().get(0)); + } + + @Test + public void testGetSmsTemplateCountByChannelId() { + // mock 数据 + SmsTemplateDO dbSmsTemplate = randomPojo(SmsTemplateDO.class, o -> o.setChannelId(1L)); + smsTemplateMapper.insert(dbSmsTemplate); + // 测试 channelId 不匹配 + smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L))); + // 准备参数 + Long channelId = 1L; + + // 调用 + Long count = smsTemplateService.getSmsTemplateCountByChannelId(channelId); + // 断言 + assertEquals(1, count); + } + + @Test + public void testValidateSmsChannel_success() { + // 准备参数 + Long channelId = randomLongId(); + // mock 方法 + SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { + o.setId(channelId); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 + }); + when(smsChannelService.getSmsChannel(eq(channelId))).thenReturn(channelDO); + + // 调用 + SmsChannelDO returnChannelDO = smsTemplateService.validateSmsChannel(channelId); + // 断言 + assertPojoEquals(returnChannelDO, channelDO); + } + + @Test + public void testValidateSmsChannel_notExists() { + // 准备参数 + Long channelId = randomLongId(); + + // 调用,校验异常 + assertServiceException(() -> smsTemplateService.validateSmsChannel(channelId), + SMS_CHANNEL_NOT_EXISTS); + } + + @Test + public void testValidateSmsChannel_disable() { + // 准备参数 + Long channelId = randomLongId(); + // mock 方法 + SmsChannelDO channelDO = randomPojo(SmsChannelDO.class, o -> { + o.setId(channelId); + o.setStatus(CommonStatusEnum.DISABLE.getStatus()); // 保证 status 禁用,触发失败 + }); + when(smsChannelService.getSmsChannel(eq(channelId))).thenReturn(channelDO); + + // 调用,校验异常 + assertServiceException(() -> smsTemplateService.validateSmsChannel(channelId), + SMS_CHANNEL_DISABLE); + } + + @Test + public void testValidateDictDataValueUnique_success() { + // 调用,成功 + smsTemplateService.validateSmsTemplateCodeDuplicate(randomLongId(), randomString()); + } + + @Test + public void testValidateSmsTemplateCodeDuplicate_valueDuplicateForCreate() { + // 准备参数 + String code = randomString(); + // mock 数据 + smsTemplateMapper.insert(randomSmsTemplateDO(o -> o.setCode(code))); + + // 调用,校验异常 + assertServiceException(() -> smsTemplateService.validateSmsTemplateCodeDuplicate(null, code), + SMS_TEMPLATE_CODE_DUPLICATE, code); + } + + @Test + public void testValidateDictDataValueUnique_valueDuplicateForUpdate() { + // 准备参数 + Long id = randomLongId(); + String code = randomString(); + // mock 数据 + smsTemplateMapper.insert(randomSmsTemplateDO(o -> o.setCode(code))); + + // 调用,校验异常 + assertServiceException(() -> smsTemplateService.validateSmsTemplateCodeDuplicate(id, code), + SMS_TEMPLATE_CODE_DUPLICATE, code); + } + + // ========== 随机对象 ========== + + @SafeVarargs + private static SmsTemplateDO randomSmsTemplateDO(Consumer... consumers) { + Consumer consumer = (o) -> { + o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 + o.setType(randomEle(SmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围 + }; + return randomPojo(SmsTemplateDO.class, ArrayUtils.append(consumer, consumers)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImplTest.java new file mode 100644 index 0000000..65b2f17 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialClientServiceImplTest.java @@ -0,0 +1,472 @@ +package co.yixiang.yshop.module.system.service.social; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.WxMaUserService; +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.hutool.core.util.ReflectUtil; +import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialClientDO; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialClientMapper; +import co.yixiang.yshop.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.xingyuv.jushauth.config.AuthConfig; +import com.xingyuv.jushauth.model.AuthResponse; +import com.xingyuv.jushauth.model.AuthUser; +import com.xingyuv.jushauth.request.AuthDefaultRequest; +import com.xingyuv.jushauth.request.AuthRequest; +import com.xingyuv.jushauth.utils.AuthStateUtils; +import com.xingyuv.justauth.AuthRequestFactory; +import me.chanjar.weixin.common.bean.WxJsapiSignature; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.mp.api.WxMpService; +import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.StringRedisTemplate; + +import jakarta.annotation.Resource; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link SocialClientServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(SocialClientServiceImpl.class) +public class SocialClientServiceImplTest extends BaseDbUnitTest { + + @Resource + private SocialClientServiceImpl socialClientService; + + @Resource + private SocialClientMapper socialClientMapper; + + @MockBean + private AuthRequestFactory authRequestFactory; + + @MockBean + private WxMpService wxMpService; + @MockBean + private WxMpProperties wxMpProperties; + @MockBean + private StringRedisTemplate stringRedisTemplate; + @MockBean + private WxMaService wxMaService; + @MockBean + private WxMaProperties wxMaProperties; + + @Test + public void testGetAuthorizeUrl() { + try (MockedStatic authStateUtilsMock = mockStatic(AuthStateUtils.class)) { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String redirectUri = "sss"; + // mock 获得对应的 AuthRequest 实现 + AuthRequest authRequest = mock(AuthRequest.class); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + // mock 方法 + authStateUtilsMock.when(AuthStateUtils::createState).thenReturn("aoteman"); + when(authRequest.authorize(eq("aoteman"))).thenReturn("https://www.yixiang.co?redirect_uri=yyy"); + + // 调用 + String url = socialClientService.getAuthorizeUrl(socialType, userType, redirectUri); + // 断言 + assertEquals("https://www.yixiang.co?redirect_uri=sss", url); + } + } + + @Test + public void testAuthSocialUser_success() { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String code = randomString(); + String state = randomString(); + // mock 方法(AuthRequest) + AuthRequest authRequest = mock(AuthRequest.class); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + // mock 方法(AuthResponse) + AuthUser authUser = randomPojo(AuthUser.class); + AuthResponse authResponse = new AuthResponse<>(2000, null, authUser); + when(authRequest.login(argThat(authCallback -> { + assertEquals(code, authCallback.getCode()); + assertEquals(state, authCallback.getState()); + return true; + }))).thenReturn(authResponse); + + // 调用 + AuthUser result = socialClientService.getAuthUser(socialType, userType, code, state); + // 断言 + assertSame(authUser, result); + } + + @Test + public void testAuthSocialUser_fail() { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String code = randomString(); + String state = randomString(); + // mock 方法(AuthRequest) + AuthRequest authRequest = mock(AuthRequest.class); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + // mock 方法(AuthResponse) + AuthResponse authResponse = new AuthResponse<>(0, "模拟失败", null); + when(authRequest.login(argThat(authCallback -> { + assertEquals(code, authCallback.getCode()); + assertEquals(state, authCallback.getState()); + return true; + }))).thenReturn(authResponse); + + // 调用并断言 + assertServiceException( + () -> socialClientService.getAuthUser(socialType, userType, code, state), + SOCIAL_USER_AUTH_FAILURE, "模拟失败"); + } + + @Test + public void testBuildAuthRequest_clientNull() { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(SocialTypeEnum.class).getType(); + // mock 获得对应的 AuthRequest 实现 + AuthRequest authRequest = mock(AuthDefaultRequest.class); + AuthConfig authConfig = (AuthConfig) ReflectUtil.getFieldValue(authRequest, "config"); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + + // 调用 + AuthRequest result = socialClientService.buildAuthRequest(socialType, userType); + // 断言 + assertSame(authRequest, result); + assertSame(authConfig, ReflectUtil.getFieldValue(authConfig, "config")); + } + + @Test + public void testBuildAuthRequest_clientDisable() { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(SocialTypeEnum.class).getType(); + // mock 获得对应的 AuthRequest 实现 + AuthRequest authRequest = mock(AuthDefaultRequest.class); + AuthConfig authConfig = (AuthConfig) ReflectUtil.getFieldValue(authRequest, "config"); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()) + .setUserType(userType).setSocialType(socialType)); + socialClientMapper.insert(client); + + // 调用 + AuthRequest result = socialClientService.buildAuthRequest(socialType, userType); + // 断言 + assertSame(authRequest, result); + assertSame(authConfig, ReflectUtil.getFieldValue(authConfig, "config")); + } + + @Test + public void testBuildAuthRequest_clientEnable() { + // 准备参数 + Integer socialType = SocialTypeEnum.WECHAT_MP.getType(); + Integer userType = randomPojo(SocialTypeEnum.class).getType(); + // mock 获得对应的 AuthRequest 实现 + AuthConfig authConfig = mock(AuthConfig.class); + AuthRequest authRequest = mock(AuthDefaultRequest.class); + ReflectUtil.setFieldValue(authRequest, "config", authConfig); + when(authRequestFactory.get(eq("WECHAT_MP"))).thenReturn(authRequest); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()) + .setUserType(userType).setSocialType(socialType)); + socialClientMapper.insert(client); + + // 调用 + AuthRequest result = socialClientService.buildAuthRequest(socialType, userType); + // 断言 + assertSame(authRequest, result); + assertNotSame(authConfig, ReflectUtil.getFieldValue(authRequest, "config")); + } + + // =================== 微信公众号独有 =================== + + @Test + public void testCreateWxMpJsapiSignature() throws WxErrorException { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String url = randomString(); + // mock 方法 + WxJsapiSignature signature = randomPojo(WxJsapiSignature.class); + when(wxMpService.createJsapiSignature(eq(url))).thenReturn(signature); + + // 调用 + WxJsapiSignature result = socialClientService.createWxMpJsapiSignature(userType, url); + // 断言 + assertSame(signature, result); + } + + @Test + public void testGetWxMpService_clientNull() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 方法 + + // 调用 + WxMpService result = socialClientService.getWxMpService(userType); + // 断言 + assertSame(wxMpService, result); + } + + @Test + public void testGetWxMpService_clientDisable() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()) + .setUserType(userType).setSocialType(SocialTypeEnum.WECHAT_MP.getType())); + socialClientMapper.insert(client); + + // 调用 + WxMpService result = socialClientService.getWxMpService(userType); + // 断言 + assertSame(wxMpService, result); + } + + @Test + public void testGetWxMpService_clientEnable() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()) + .setUserType(userType).setSocialType(SocialTypeEnum.WECHAT_MP.getType())); + socialClientMapper.insert(client); + // mock 方法 + WxMpProperties.ConfigStorage configStorage = mock(WxMpProperties.ConfigStorage.class); + when(wxMpProperties.getConfigStorage()).thenReturn(configStorage); + + // 调用 + WxMpService result = socialClientService.getWxMpService(userType); + // 断言 + assertNotSame(wxMpService, result); + assertEquals(client.getClientId(), result.getWxMpConfigStorage().getAppId()); + assertEquals(client.getClientSecret(), result.getWxMpConfigStorage().getSecret()); + } + + // =================== 微信小程序独有 =================== + + @Test + public void testGetWxMaPhoneNumberInfo_success() throws WxErrorException { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String phoneCode = randomString(); + // mock 方法 + WxMaUserService userService = mock(WxMaUserService.class); + when(wxMaService.getUserService()).thenReturn(userService); + WxMaPhoneNumberInfo phoneNumber = randomPojo(WxMaPhoneNumberInfo.class); + when(userService.getPhoneNoInfo(eq(phoneCode))).thenReturn(phoneNumber); + + // 调用 + WxMaPhoneNumberInfo result = socialClientService.getWxMaPhoneNumberInfo(userType, phoneCode); + // 断言 + assertSame(phoneNumber, result); + } + + @Test + public void testGetWxMaPhoneNumberInfo_exception() throws WxErrorException { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + String phoneCode = randomString(); + // mock 方法 + WxMaUserService userService = mock(WxMaUserService.class); + when(wxMaService.getUserService()).thenReturn(userService); + WxErrorException wxErrorException = new WxErrorException(new NullPointerException()); + when(userService.getPhoneNoInfo(eq(phoneCode))).thenThrow(wxErrorException); + + // 调用并断言异常 + assertServiceException(() -> socialClientService.getWxMaPhoneNumberInfo(userType, phoneCode), + SOCIAL_CLIENT_WEIXIN_MINI_APP_PHONE_CODE_ERROR); + } + + @Test + public void testGetWxMaService_clientNull() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 方法 + + // 调用 + WxMaService result = socialClientService.getWxMaService(userType); + // 断言 + assertSame(wxMaService, result); + } + + @Test + public void testGetWxMaService_clientDisable() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()) + .setUserType(userType).setSocialType(SocialTypeEnum.WECHAT_MINI_APP.getType())); + socialClientMapper.insert(client); + + // 调用 + WxMaService result = socialClientService.getWxMaService(userType); + // 断言 + assertSame(wxMaService, result); + } + + @Test + public void testGetWxMaService_clientEnable() { + // 准备参数 + Integer userType = randomPojo(UserTypeEnum.class).getValue(); + // mock 数据 + SocialClientDO client = randomPojo(SocialClientDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()) + .setUserType(userType).setSocialType(SocialTypeEnum.WECHAT_MINI_APP.getType())); + socialClientMapper.insert(client); + // mock 方法 + WxMaProperties.ConfigStorage configStorage = mock(WxMaProperties.ConfigStorage.class); + when(wxMaProperties.getConfigStorage()).thenReturn(configStorage); + + // 调用 + WxMaService result = socialClientService.getWxMaService(userType); + // 断言 + assertNotSame(wxMaService, result); + assertEquals(client.getClientId(), result.getWxMaConfig().getAppid()); + assertEquals(client.getClientSecret(), result.getWxMaConfig().getSecret()); + } + + // =================== 客户端管理 =================== + + @Test + public void testCreateSocialClient_success() { + // 准备参数 + SocialClientSaveReqVO reqVO = randomPojo(SocialClientSaveReqVO.class, + o -> o.setSocialType(randomEle(SocialTypeEnum.values()).getType()) + .setUserType(randomEle(UserTypeEnum.values()).getValue()) + .setStatus(randomCommonStatus())) + .setId(null); // 防止 id 被赋值 + + // 调用 + Long socialClientId = socialClientService.createSocialClient(reqVO); + // 断言 + assertNotNull(socialClientId); + // 校验记录的属性是否正确 + SocialClientDO socialClient = socialClientMapper.selectById(socialClientId); + assertPojoEquals(reqVO, socialClient, "id"); + } + + @Test + public void testUpdateSocialClient_success() { + // mock 数据 + SocialClientDO dbSocialClient = randomPojo(SocialClientDO.class); + socialClientMapper.insert(dbSocialClient);// @Sql: 先插入出一条存在的数据 + // 准备参数 + SocialClientSaveReqVO reqVO = randomPojo(SocialClientSaveReqVO.class, o -> { + o.setId(dbSocialClient.getId()); // 设置更新的 ID + o.setSocialType(randomEle(SocialTypeEnum.values()).getType()) + .setUserType(randomEle(UserTypeEnum.values()).getValue()) + .setStatus(randomCommonStatus()); + }); + + // 调用 + socialClientService.updateSocialClient(reqVO); + // 校验是否更新正确 + SocialClientDO socialClient = socialClientMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, socialClient); + } + + @Test + public void testUpdateSocialClient_notExists() { + // 准备参数 + SocialClientSaveReqVO reqVO = randomPojo(SocialClientSaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> socialClientService.updateSocialClient(reqVO), SOCIAL_CLIENT_NOT_EXISTS); + } + + @Test + public void testDeleteSocialClient_success() { + // mock 数据 + SocialClientDO dbSocialClient = randomPojo(SocialClientDO.class); + socialClientMapper.insert(dbSocialClient);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSocialClient.getId(); + + // 调用 + socialClientService.deleteSocialClient(id); + // 校验数据不存在了 + assertNull(socialClientMapper.selectById(id)); + } + + @Test + public void testDeleteSocialClient_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> socialClientService.deleteSocialClient(id), SOCIAL_CLIENT_NOT_EXISTS); + } + + @Test + public void testGetSocialClient() { + // mock 数据 + SocialClientDO dbSocialClient = randomPojo(SocialClientDO.class); + socialClientMapper.insert(dbSocialClient);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSocialClient.getId(); + + // 调用 + SocialClientDO socialClient = socialClientService.getSocialClient(id); + // 校验数据正确 + assertPojoEquals(dbSocialClient, socialClient); + } + + @Test + public void testGetSocialClientPage() { + // mock 数据 + SocialClientDO dbSocialClient = randomPojo(SocialClientDO.class, o -> { // 等会查询到 + o.setName("芋头"); + o.setSocialType(SocialTypeEnum.GITEE.getType()); + o.setUserType(UserTypeEnum.ADMIN.getValue()); + o.setClientId("yshop"); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + }); + socialClientMapper.insert(dbSocialClient); + // 测试 name 不匹配 + socialClientMapper.insert(cloneIgnoreId(dbSocialClient, o -> o.setName(randomString()))); + // 测试 socialType 不匹配 + socialClientMapper.insert(cloneIgnoreId(dbSocialClient, o -> o.setSocialType(SocialTypeEnum.DINGTALK.getType()))); + // 测试 userType 不匹配 + socialClientMapper.insert(cloneIgnoreId(dbSocialClient, o -> o.setUserType(UserTypeEnum.MEMBER.getValue()))); + // 测试 clientId 不匹配 + socialClientMapper.insert(cloneIgnoreId(dbSocialClient, o -> o.setClientId("dao"))); + // 测试 status 不匹配 + socialClientMapper.insert(cloneIgnoreId(dbSocialClient, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 准备参数 + SocialClientPageReqVO reqVO = new SocialClientPageReqVO(); + reqVO.setName("芋"); + reqVO.setSocialType(SocialTypeEnum.GITEE.getType()); + reqVO.setUserType(UserTypeEnum.ADMIN.getValue()); + reqVO.setClientId("yu"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + + // 调用 + PageResult pageResult = socialClientService.getSocialClientPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSocialClient, pageResult.getList().get(0)); + } + +} diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImplTest.java new file mode 100644 index 0000000..4365dc8 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/social/SocialUserServiceImplTest.java @@ -0,0 +1,288 @@ +package co.yixiang.yshop.module.system.service.social; + +import co.yixiang.yshop.framework.common.enums.UserTypeEnum; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserBindReqDTO; +import co.yixiang.yshop.module.system.api.social.dto.SocialUserRespDTO; +import co.yixiang.yshop.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserBindDO; +import co.yixiang.yshop.module.system.dal.dataobject.social.SocialUserDO; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialUserBindMapper; +import co.yixiang.yshop.module.system.dal.mysql.social.SocialUserMapper; +import co.yixiang.yshop.module.system.enums.social.SocialTypeEnum; +import com.xingyuv.jushauth.model.AuthUser; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import jakarta.annotation.Resource; +import java.util.List; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static cn.hutool.core.util.RandomUtil.randomLong; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; +import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildTime; +import static co.yixiang.yshop.framework.common.util.json.JsonUtils.toJsonString; +import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; +import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomString; +import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.SOCIAL_USER_NOT_FOUND; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.when; + +/** + * {@link SocialUserServiceImpl} 的单元测试类 + * + * @author yshop + */ +@Import(SocialUserServiceImpl.class) +public class SocialUserServiceImplTest extends BaseDbUnitTest { + + @Resource + private SocialUserServiceImpl socialUserService; + + @Resource + private SocialUserMapper socialUserMapper; + @Resource + private SocialUserBindMapper socialUserBindMapper; + + @MockBean + private SocialClientService socialClientService; + + @Test + public void testGetSocialUserList() { + Long userId = 1L; + Integer userType = UserTypeEnum.ADMIN.getValue(); + // mock 获得社交用户 + SocialUserDO socialUser = randomPojo(SocialUserDO.class).setType(SocialTypeEnum.GITEE.getType()); + socialUserMapper.insert(socialUser); // 可被查到 + socialUserMapper.insert(randomPojo(SocialUserDO.class)); // 不可被查到 + // mock 获得绑定 + socialUserBindMapper.insert(randomPojo(SocialUserBindDO.class) // 可被查询到 + .setUserId(userId).setUserType(userType).setSocialType(SocialTypeEnum.GITEE.getType()) + .setSocialUserId(socialUser.getId())); + socialUserBindMapper.insert(randomPojo(SocialUserBindDO.class) // 不可被查询到 + .setUserId(2L).setUserType(userType).setSocialType(SocialTypeEnum.DINGTALK.getType())); + + // 调用 + List result = socialUserService.getSocialUserList(userId, userType); + // 断言 + assertEquals(1, result.size()); + assertPojoEquals(socialUser, result.get(0)); + } + + @Test + public void testBindSocialUser() { + // 准备参数 + SocialUserBindReqDTO reqDTO = new SocialUserBindReqDTO() + .setUserId(1L).setUserType(UserTypeEnum.ADMIN.getValue()) + .setSocialType(SocialTypeEnum.GITEE.getType()).setCode("test_code").setState("test_state"); + // mock 数据:获得社交用户 + SocialUserDO socialUser = randomPojo(SocialUserDO.class).setType(reqDTO.getSocialType()) + .setCode(reqDTO.getCode()).setState(reqDTO.getState()); + socialUserMapper.insert(socialUser); + // mock 数据:用户可能之前已经绑定过该社交类型 + socialUserBindMapper.insert(randomPojo(SocialUserBindDO.class).setUserId(1L).setUserType(UserTypeEnum.ADMIN.getValue()) + .setSocialType(SocialTypeEnum.GITEE.getType()).setSocialUserId(-1L)); + // mock 数据:社交用户可能之前绑定过别的用户 + socialUserBindMapper.insert(randomPojo(SocialUserBindDO.class).setUserType(UserTypeEnum.ADMIN.getValue()) + .setSocialType(SocialTypeEnum.GITEE.getType()).setSocialUserId(socialUser.getId())); + + // 调用 + String openid = socialUserService.bindSocialUser(reqDTO); + // 断言 + List socialUserBinds = socialUserBindMapper.selectList(); + assertEquals(1, socialUserBinds.size()); + assertEquals(socialUser.getOpenid(), openid); + } + + @Test + public void testUnbindSocialUser_success() { + // 准备参数 + Long userId = 1L; + Integer userType = UserTypeEnum.ADMIN.getValue(); + Integer type = SocialTypeEnum.GITEE.getType(); + String openid = "test_openid"; + // mock 数据:社交用户 + SocialUserDO socialUser = randomPojo(SocialUserDO.class).setType(type).setOpenid(openid); + socialUserMapper.insert(socialUser); + // mock 数据:社交绑定关系 + SocialUserBindDO socialUserBind = randomPojo(SocialUserBindDO.class).setUserType(userType) + .setUserId(userId).setSocialType(type); + socialUserBindMapper.insert(socialUserBind); + + // 调用 + socialUserService.unbindSocialUser(userId, userType, type, openid); + // 断言 + assertEquals(0, socialUserBindMapper.selectCount(null).intValue()); + } + + @Test + public void testUnbindSocialUser_notFound() { + // 调用,并断言 + assertServiceException( + () -> socialUserService.unbindSocialUser(randomLong(), UserTypeEnum.ADMIN.getValue(), + SocialTypeEnum.GITEE.getType(), "test_openid"), + SOCIAL_USER_NOT_FOUND); + } + + @Test + public void testGetSocialUser() { + // 准备参数 + Integer userType = UserTypeEnum.ADMIN.getValue(); + Integer type = SocialTypeEnum.GITEE.getType(); + String code = "tudou"; + String state = "yuanma"; + // mock 社交用户 + SocialUserDO socialUserDO = randomPojo(SocialUserDO.class).setType(type).setCode(code).setState(state); + socialUserMapper.insert(socialUserDO); + // mock 社交用户的绑定 + Long userId = randomLong(); + SocialUserBindDO socialUserBind = randomPojo(SocialUserBindDO.class).setUserType(userType).setUserId(userId) + .setSocialType(type).setSocialUserId(socialUserDO.getId()); + socialUserBindMapper.insert(socialUserBind); + + // 调用 + SocialUserRespDTO socialUser = socialUserService.getSocialUserByCode(userType, type, code, state); + // 断言 + assertEquals(userId, socialUser.getUserId()); + assertEquals(socialUserDO.getOpenid(), socialUser.getOpenid()); + } + + @Test + public void testAuthSocialUser_exists() { + // 准备参数 + Integer socialType = SocialTypeEnum.GITEE.getType(); + Integer userType = randomEle(SocialTypeEnum.values()).getType(); + String code = "tudou"; + String state = "yuanma"; + // mock 方法 + SocialUserDO socialUser = randomPojo(SocialUserDO.class).setType(socialType).setCode(code).setState(state); + socialUserMapper.insert(socialUser); + + // 调用 + SocialUserDO result = socialUserService.authSocialUser(socialType, userType, code, state); + // 断言 + assertPojoEquals(socialUser, result); + } + + @Test + public void testAuthSocialUser_notNull() { + // mock 数据 + SocialUserDO socialUser = randomPojo(SocialUserDO.class, + o -> o.setType(SocialTypeEnum.GITEE.getType()).setCode("tudou").setState("yuanma")); + socialUserMapper.insert(socialUser); + // 准备参数 + Integer socialType = SocialTypeEnum.GITEE.getType(); + Integer userType = randomEle(SocialTypeEnum.values()).getType(); + String code = "tudou"; + String state = "yuanma"; + + // 调用 + SocialUserDO result = socialUserService.authSocialUser(socialType, userType, code, state); + // 断言 + assertPojoEquals(socialUser, result); + } + + @Test + public void testAuthSocialUser_insert() { + // 准备参数 + Integer socialType = SocialTypeEnum.GITEE.getType(); + Integer userType = randomEle(SocialTypeEnum.values()).getType(); + String code = "tudou"; + String state = "yuanma"; + // mock 方法 + AuthUser authUser = randomPojo(AuthUser.class); + when(socialClientService.getAuthUser(eq(socialType), eq(userType), eq(code), eq(state))).thenReturn(authUser); + + // 调用 + SocialUserDO result = socialUserService.authSocialUser(socialType, userType, code, state); + // 断言 + assertBindSocialUser(socialType, result, authUser); + assertEquals(code, result.getCode()); + assertEquals(state, result.getState()); + } + + @Test + public void testAuthSocialUser_update() { + // 准备参数 + Integer socialType = SocialTypeEnum.GITEE.getType(); + Integer userType = randomEle(SocialTypeEnum.values()).getType(); + String code = "tudou"; + String state = "yuanma"; + // mock 数据 + socialUserMapper.insert(randomPojo(SocialUserDO.class).setType(socialType).setOpenid("test_openid")); + // mock 方法 + AuthUser authUser = randomPojo(AuthUser.class); + when(socialClientService.getAuthUser(eq(socialType), eq(userType), eq(code), eq(state))).thenReturn(authUser); + + // 调用 + SocialUserDO result = socialUserService.authSocialUser(socialType, userType, code, state); + // 断言 + assertBindSocialUser(socialType, result, authUser); + assertEquals(code, result.getCode()); + assertEquals(state, result.getState()); + } + + private void assertBindSocialUser(Integer type, SocialUserDO socialUser, AuthUser authUser) { + assertEquals(authUser.getToken().getAccessToken(), socialUser.getToken()); + assertEquals(toJsonString(authUser.getToken()), socialUser.getRawTokenInfo()); + assertEquals(authUser.getNickname(), socialUser.getNickname()); + assertEquals(authUser.getAvatar(), socialUser.getAvatar()); + assertEquals(toJsonString(authUser.getRawUserInfo()), socialUser.getRawUserInfo()); + assertEquals(type, socialUser.getType()); + assertEquals(authUser.getUuid(), socialUser.getOpenid()); + } + + @Test + public void testGetSocialUser_id() { + // mock 数据 + SocialUserDO socialUserDO = randomPojo(SocialUserDO.class); + socialUserMapper.insert(socialUserDO); + // 参数准备 + Long id = socialUserDO.getId(); + + // 调用 + SocialUserDO dbSocialUserDO = socialUserService.getSocialUser(id); + // 断言 + assertPojoEquals(socialUserDO, dbSocialUserDO); + } + + @Test + public void testGetSocialUserPage() { + // mock 数据 + SocialUserDO dbSocialUser = randomPojo(SocialUserDO.class, o -> { // 等会查询到 + o.setType(SocialTypeEnum.GITEE.getType()); + o.setNickname("yshop"); + o.setOpenid("yshopyuanma"); + o.setCreateTime(buildTime(2020, 1, 15)); + }); + socialUserMapper.insert(dbSocialUser); + // 测试 type 不匹配 + socialUserMapper.insert(cloneIgnoreId(dbSocialUser, o -> o.setType(SocialTypeEnum.DINGTALK.getType()))); + // 测试 nickname 不匹配 + socialUserMapper.insert(cloneIgnoreId(dbSocialUser, o -> o.setNickname(randomString()))); + // 测试 openid 不匹配 + socialUserMapper.insert(cloneIgnoreId(dbSocialUser, o -> o.setOpenid("java"))); + // 测试 createTime 不匹配 + socialUserMapper.insert(cloneIgnoreId(dbSocialUser, o -> o.setCreateTime(buildTime(2020, 1, 21)))); + // 准备参数 + SocialUserPageReqVO reqVO = new SocialUserPageReqVO(); + reqVO.setType(SocialTypeEnum.GITEE.getType()); + reqVO.setNickname("芋"); + reqVO.setOpenid("yshop"); + reqVO.setCreateTime(buildBetweenTime(2020, 1, 10, 2020, 1, 20)); + + // 调用 + PageResult pageResult = socialUserService.getSocialUserPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSocialUser, pageResult.getList().get(0)); + } + +} diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java similarity index 93% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java index 81dae44..1dcda47 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantPackageServiceImplTest.java @@ -3,9 +3,8 @@ package co.yixiang.yshop.module.system.service.tenant; import co.yixiang.yshop.framework.common.enums.CommonStatusEnum; import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageCreateReqVO; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantPackageDO; import co.yixiang.yshop.module.system.dal.mysql.tenant.TenantPackageMapper; @@ -13,8 +12,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; - +import jakarta.annotation.Resource; import java.util.List; import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; @@ -22,8 +20,7 @@ import static co.yixiang.yshop.framework.common.util.date.LocalDateTimeUtils.bui import static co.yixiang.yshop.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertPojoEquals; import static co.yixiang.yshop.framework.test.core.util.AssertUtils.assertServiceException; -import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomLongId; -import static co.yixiang.yshop.framework.test.core.util.RandomUtils.randomPojo; +import static co.yixiang.yshop.framework.test.core.util.RandomUtils.*; import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.*; import static java.util.Arrays.asList; import static org.junit.jupiter.api.Assertions.*; @@ -51,7 +48,9 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest { @Test public void testCreateTenantPackage_success() { // 准备参数 - TenantPackageCreateReqVO reqVO = randomPojo(TenantPackageCreateReqVO.class); + TenantPackageSaveReqVO reqVO = randomPojo(TenantPackageSaveReqVO.class, + o -> o.setStatus(randomCommonStatus())) + .setId(null); // 防止 id 被赋值 // 调用 Long tenantPackageId = tenantPackageService.createTenantPackage(reqVO); @@ -59,17 +58,19 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest { assertNotNull(tenantPackageId); // 校验记录的属性是否正确 TenantPackageDO tenantPackage = tenantPackageMapper.selectById(tenantPackageId); - assertPojoEquals(reqVO, tenantPackage); + assertPojoEquals(reqVO, tenantPackage, "id"); } @Test public void testUpdateTenantPackage_success() { // mock 数据 - TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class); + TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class, + o -> o.setStatus(randomCommonStatus())); tenantPackageMapper.insert(dbTenantPackage);// @Sql: 先插入出一条存在的数据 // 准备参数 - TenantPackageUpdateReqVO reqVO = randomPojo(TenantPackageUpdateReqVO.class, o -> { + TenantPackageSaveReqVO reqVO = randomPojo(TenantPackageSaveReqVO.class, o -> { o.setId(dbTenantPackage.getId()); // 设置更新的 ID + o.setStatus(randomCommonStatus()); }); // mock 方法 Long tenantId01 = randomLongId(); @@ -91,7 +92,7 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest { @Test public void testUpdateTenantPackage_notExists() { // 准备参数 - TenantPackageUpdateReqVO reqVO = randomPojo(TenantPackageUpdateReqVO.class); + TenantPackageSaveReqVO reqVO = randomPojo(TenantPackageSaveReqVO.class); // 调用, 并断言异常 assertServiceException(() -> tenantPackageService.updateTenantPackage(reqVO), TENANT_PACKAGE_NOT_EXISTS); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java similarity index 87% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java index 5e76e02..7db5cbb 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/tenant/TenantServiceImplTest.java @@ -5,10 +5,8 @@ import co.yixiang.yshop.framework.common.pojo.PageResult; import co.yixiang.yshop.framework.tenant.config.TenantProperties; import co.yixiang.yshop.framework.tenant.core.context.TenantContextHolder; import co.yixiang.yshop.framework.test.core.ut.BaseDbUnitTest; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantCreateReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantExportReqVO; import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; -import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantUpdateReqVO; +import co.yixiang.yshop.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import co.yixiang.yshop.module.system.dal.dataobject.permission.MenuDO; import co.yixiang.yshop.module.system.dal.dataobject.permission.RoleDO; import co.yixiang.yshop.module.system.dal.dataobject.tenant.TenantDO; @@ -27,7 +25,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Collections; @@ -152,15 +150,15 @@ public class TenantServiceImplTest extends BaseDbUnitTest { }))).thenReturn(300L); // 准备参数 - TenantCreateReqVO reqVO = randomPojo(TenantCreateReqVO.class, o -> { + TenantSaveReqVO reqVO = randomPojo(TenantSaveReqVO.class, o -> { o.setContactName("yshop"); o.setContactMobile("15601691300"); o.setPackageId(100L); o.setStatus(randomCommonStatus()); - o.setDomain("https://www.yixiang.co"); + o.setWebsite("https://www.yixiang.co"); o.setUsername("yshop"); o.setPassword("yuanma"); - }); + }).setId(null); // 设置为 null,方便后面校验 // 调用 Long tenantId = tenantService.createTenant(reqVO); @@ -168,7 +166,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { assertNotNull(tenantId); // 校验记录的属性是否正确 TenantDO tenant = tenantMapper.selectById(tenantId); - assertPojoEquals(reqVO, tenant); + assertPojoEquals(reqVO, tenant, "id"); assertEquals(300L, tenant.getContactUserId()); // verify 分配权限 verify(permissionService).assignRoleMenu(eq(200L), same(tenantPackage.getMenuIds())); @@ -182,10 +180,10 @@ public class TenantServiceImplTest extends BaseDbUnitTest { TenantDO dbTenant = randomPojo(TenantDO.class, o -> o.setStatus(randomCommonStatus())); tenantMapper.insert(dbTenant);// @Sql: 先插入出一条存在的数据 // 准备参数 - TenantUpdateReqVO reqVO = randomPojo(TenantUpdateReqVO.class, o -> { + TenantSaveReqVO reqVO = randomPojo(TenantSaveReqVO.class, o -> { o.setId(dbTenant.getId()); // 设置更新的 ID o.setStatus(randomCommonStatus()); - o.setDomain(randomString()); + o.setWebsite(randomString()); }); // mock 套餐 @@ -197,9 +195,9 @@ public class TenantServiceImplTest extends BaseDbUnitTest { role100.setTenantId(dbTenant.getId()); RoleDO role101 = randomPojo(RoleDO.class, o -> o.setId(101L)); role101.setTenantId(dbTenant.getId()); - when(roleService.getRoleListByStatus(isNull())).thenReturn(asList(role100, role101)); + when(roleService.getRoleList()).thenReturn(asList(role100, role101)); // mock 每个角色的权限 - when(permissionService.getRoleMenuIds(eq(101L))).thenReturn(asSet(201L, 202L)); + when(permissionService.getRoleMenuListByRoleId(eq(101L))).thenReturn(asSet(201L, 202L)); // 调用 tenantService.updateTenant(reqVO); @@ -214,7 +212,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { @Test public void testUpdateTenant_notExists() { // 准备参数 - TenantUpdateReqVO reqVO = randomPojo(TenantUpdateReqVO.class); + TenantSaveReqVO reqVO = randomPojo(TenantSaveReqVO.class); // 调用, 并断言异常 assertServiceException(() -> tenantService.updateTenant(reqVO), TENANT_NOT_EXISTS); @@ -226,7 +224,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { TenantDO dbTenant = randomPojo(TenantDO.class, o -> o.setPackageId(PACKAGE_ID_SYSTEM)); tenantMapper.insert(dbTenant);// @Sql: 先插入出一条存在的数据 // 准备参数 - TenantUpdateReqVO reqVO = randomPojo(TenantUpdateReqVO.class, o -> { + TenantSaveReqVO reqVO = randomPojo(TenantSaveReqVO.class, o -> { o.setId(dbTenant.getId()); // 设置更新的 ID }); @@ -321,42 +319,6 @@ public class TenantServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbTenant, pageResult.getList().get(0)); } - @Test - public void testGetTenantList() { - // mock 数据 - TenantDO dbTenant = randomPojo(TenantDO.class, o -> { // 等会查询到 - o.setName("yshop"); - o.setContactName("yshop"); - o.setContactMobile("15601691300"); - o.setStatus(CommonStatusEnum.ENABLE.getStatus()); - o.setCreateTime(buildTime(2020, 12, 12)); - }); - tenantMapper.insert(dbTenant); - // 测试 name 不匹配 - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setName(randomString()))); - // 测试 contactName 不匹配 - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setContactName(randomString()))); - // 测试 contactMobile 不匹配 - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setContactMobile(randomString()))); - // 测试 status 不匹配 - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); - // 测试 createTime 不匹配 - tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildTime(2021, 12, 12)))); - // 准备参数 - TenantExportReqVO reqVO = new TenantExportReqVO(); - reqVO.setName("yshop"); - reqVO.setContactName("艿"); - reqVO.setContactMobile("1560"); - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24)); - - // 调用 - List list = tenantService.getTenantList(reqVO); - // 断言 - assertEquals(1, list.size()); - assertPojoEquals(dbTenant, list.get(0)); - } - @Test public void testGetTenantByName() { // mock 数据 @@ -369,6 +331,18 @@ public class TenantServiceImplTest extends BaseDbUnitTest { assertPojoEquals(result, dbTenant); } + @Test + public void testGetTenantByWebsite() { + // mock 数据 + TenantDO dbTenant = randomPojo(TenantDO.class, o -> o.setWebsite("https://www.yixiang.co")); + tenantMapper.insert(dbTenant);// @Sql: 先插入出一条存在的数据 + + // 调用 + TenantDO result = tenantService.getTenantByWebsite("https://www.yixiang.co"); + // 校验存在 + assertPojoEquals(result, dbTenant); + } + @Test public void testGetTenantListByPackageId() { // mock 数据 @@ -454,7 +428,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { TenantContextHolder.setTenantId(dbTenant.getId()); // mock 菜单 when(menuService.getMenuList()).thenReturn(Arrays.asList(randomPojo(MenuDO.class, o -> o.setId(100L)), - randomPojo(MenuDO.class, o -> o.setId(101L)))); + randomPojo(MenuDO.class, o -> o.setId(101L)))); // 调用 tenantService.handleTenantMenu(handler); diff --git a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java similarity index 95% rename from yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java index f83adb6..af04db3 100644 --- a/yshop-drink/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/java/co/yixiang/yshop/module/system/service/user/AdminUserServiceImplTest.java @@ -29,7 +29,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; import org.springframework.security.crypto.password.PasswordEncoder; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.io.ByteArrayInputStream; import java.util.Collection; import java.util.List; @@ -80,11 +80,11 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { @Test public void testCreatUser_success() { // 准备参数 - UserCreateReqVO reqVO = randomPojo(UserCreateReqVO.class, o -> { + UserSaveReqVO reqVO = randomPojo(UserSaveReqVO.class, o -> { o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex()); o.setMobile(randomString()); o.setPostIds(asSet(1L, 2L)); - }); + }).setId(null); // 避免 id 被赋值 // mock 账户额度充足 TenantDO tenant = randomPojo(TenantDO.class, o -> o.setAccountCount(1)); doNothing().when(tenantService).handleTenantInfo(argThat(handler -> { @@ -111,7 +111,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { Long userId = userService.createUser(reqVO); // 断言 AdminUserDO user = userMapper.selectById(userId); - assertPojoEquals(reqVO, user, "password"); + assertPojoEquals(reqVO, user, "password", "id"); assertEquals("yshopyuanma", user.getPassword()); assertEquals(CommonStatusEnum.ENABLE.getStatus(), user.getStatus()); // 断言关联岗位 @@ -123,7 +123,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { @Test public void testCreatUser_max() { // 准备参数 - UserCreateReqVO reqVO = randomPojo(UserCreateReqVO.class); + UserSaveReqVO reqVO = randomPojo(UserSaveReqVO.class); // mock 账户额度不足 TenantDO tenant = randomPojo(TenantDO.class, o -> o.setAccountCount(-1)); doNothing().when(tenantService).handleTenantInfo(argThat(handler -> { @@ -143,7 +143,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userPostMapper.insert(new UserPostDO().setUserId(dbUser.getId()).setPostId(1L)); userPostMapper.insert(new UserPostDO().setUserId(dbUser.getId()).setPostId(2L)); // 准备参数 - UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> { + UserSaveReqVO reqVO = randomPojo(UserSaveReqVO.class, o -> { o.setId(dbUser.getId()); o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex()); o.setMobile(randomString()); @@ -167,7 +167,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { userService.updateUser(reqVO); // 断言 AdminUserDO user = userMapper.selectById(reqVO.getId()); - assertPojoEquals(reqVO, user); + assertPojoEquals(reqVO, user, "password"); // 断言关联岗位 List userPosts = userPostMapper.selectListByUserId(user.getId()); assertEquals(2L, userPosts.get(0).getPostId()); @@ -345,7 +345,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 // mock 方法 List deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); - when(deptService.getDeptListByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); + when(deptService.getChildDeptList(eq(reqVO.getDeptId()))).thenReturn(deptList); // 调用 PageResult pageResult = userService.getUserPage(reqVO); @@ -355,28 +355,6 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { assertPojoEquals(dbUser, pageResult.getList().get(0)); } - @Test - public void testGetUserList_export() { - // mock 数据 - AdminUserDO dbUser = initGetUserPageData(); - // 准备参数 - UserExportReqVO reqVO = new UserExportReqVO(); - reqVO.setUsername("tu"); - reqVO.setMobile("1560"); - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24)); - reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门 - // mock 方法 - List deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L))); - when(deptService.getDeptListByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); - - // 调用 - List list = userService.getUserList(reqVO); - // 断言 - assertEquals(1, list.size()); - assertPojoEquals(dbUser, list.get(0)); - } - /** * 初始化 getUserPage 方法的测试数据 */ diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/application-unit-test.yaml b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/application-unit-test.yaml new file mode 100644 index 0000000..5232084 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/application-unit-test.yaml @@ -0,0 +1,53 @@ +spring: + main: + lazy-initialization: true # 开启懒加载,加快速度 + banner-mode: off # 单元测试,禁用 Banner + +--- #################### 数据库相关配置 #################### + +spring: + # 数据源配置项 + datasource: + name: yixiang-drink + url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false;NON_KEYWORDS=value; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写 + driver-class-name: org.h2.Driver + username: sa + password: + druid: + async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度 + initial-size: 1 # 单元测试,配置为 1,提升启动速度 + sql: + init: + schema-locations: classpath:/sql/create_tables.sql + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + data: + redis: + host: 127.0.0.1 # 地址 + port: 16379 # 端口(单元测试,使用 16379 端口) + database: 0 # 数据库索引 + +mybatis: + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 + +--- #################### 定时任务相关配置 #################### + +--- #################### 配置中心相关配置 #################### + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项(单元测试,禁用 Lock4j) + +--- #################### 监控相关配置 #################### + +--- #################### yshop相关配置 #################### + +# yshop配置项,设置当前项目所有自定义的配置 +yshop: + info: + base-package: co.yixiang.yshop.module + captcha: + timeout: 5m + width: 160 + height: 60 + enable: true diff --git a/yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/logback.xml b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/logback.xml similarity index 100% rename from yshop-drink/yshop-module-member/yshop-module-member-biz/src/test/resources/logback.xml rename to yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/logback.xml diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/clean.sql b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/clean.sql new file mode 100644 index 0000000..e7946a1 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/clean.sql @@ -0,0 +1,33 @@ +DELETE FROM "system_dept"; +DELETE FROM "system_dict_data"; +DELETE FROM "system_role"; +DELETE FROM "system_role_menu"; +DELETE FROM "system_menu"; +DELETE FROM "system_user_role"; +DELETE FROM "system_dict_type"; +DELETE FROM "system_user_session"; +DELETE FROM "system_post"; +DELETE FROM "system_user_post"; +DELETE FROM "system_notice"; +DELETE FROM "system_login_log"; +DELETE FROM "system_operate_log"; +DELETE FROM "system_users"; +DELETE FROM "system_sms_channel"; +DELETE FROM "system_sms_template"; +DELETE FROM "system_sms_log"; +DELETE FROM "system_sms_code"; +DELETE FROM "system_social_client"; +DELETE FROM "system_social_user"; +DELETE FROM "system_social_user_bind"; +DELETE FROM "system_tenant"; +DELETE FROM "system_tenant_package"; +DELETE FROM "system_oauth2_client"; +DELETE FROM "system_oauth2_approve"; +DELETE FROM "system_oauth2_access_token"; +DELETE FROM "system_oauth2_refresh_token"; +DELETE FROM "system_oauth2_code"; +DELETE FROM "system_mail_account"; +DELETE FROM "system_mail_template"; +DELETE FROM "system_mail_log"; +DELETE FROM "system_notify_template"; +DELETE FROM "system_notify_message"; diff --git a/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/create_tables.sql b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/create_tables.sql new file mode 100644 index 0000000..1958a88 --- /dev/null +++ b/yshop-drink-boot3/yshop-module-system/yshop-module-system-biz/src/test/resources/sql/create_tables.sql @@ -0,0 +1,614 @@ +CREATE TABLE IF NOT EXISTS "system_dept" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(30) NOT NULL DEFAULT '', + "parent_id" bigint NOT NULL DEFAULT '0', + "sort" int NOT NULL DEFAULT '0', + "leader_user_id" bigint DEFAULT NULL, + "phone" varchar(11) DEFAULT NULL, + "email" varchar(50) DEFAULT NULL, + "status" tinyint NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '部门表'; + +CREATE TABLE IF NOT EXISTS "system_dict_data" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "sort" int NOT NULL DEFAULT '0', + "label" varchar(100) NOT NULL DEFAULT '', + "value" varchar(100) NOT NULL DEFAULT '', + "dict_type" varchar(100) NOT NULL DEFAULT '', + "status" tinyint NOT NULL DEFAULT '0', + "color_type" varchar(100) NOT NULL DEFAULT '', + "css_class" varchar(100) NOT NULL DEFAULT '', + "remark" varchar(500) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '字典数据表'; + +CREATE TABLE IF NOT EXISTS "system_role" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(30) NOT NULL, + "code" varchar(100) NOT NULL, + "sort" int NOT NULL, + "data_scope" tinyint NOT NULL DEFAULT '1', + "data_scope_dept_ids" varchar(500) NOT NULL DEFAULT '', + "status" tinyint NOT NULL, + "type" tinyint NOT NULL, + "remark" varchar(500) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '角色信息表'; + +CREATE TABLE IF NOT EXISTS "system_role_menu" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "role_id" bigint NOT NULL, + "menu_id" bigint NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '角色和菜单关联表'; + +CREATE TABLE IF NOT EXISTS "system_menu" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(50) NOT NULL, + "permission" varchar(100) NOT NULL DEFAULT '', + "type" tinyint NOT NULL, + "sort" int NOT NULL DEFAULT '0', + "parent_id" bigint NOT NULL DEFAULT '0', + "path" varchar(200) DEFAULT '', + "icon" varchar(100) DEFAULT '#', + "component" varchar(255) DEFAULT NULL, + "component_name" varchar(255) DEFAULT NULL, + "status" tinyint NOT NULL DEFAULT '0', + "visible" bit NOT NULL DEFAULT TRUE, + "keep_alive" bit NOT NULL DEFAULT TRUE, + "always_show" bit NOT NULL DEFAULT TRUE, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '菜单权限表'; + +CREATE TABLE IF NOT EXISTS "system_user_role" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "role_id" bigint NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp DEFAULT NULL, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp DEFAULT NULL, + "deleted" bit DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '用户和角色关联表'; + +CREATE TABLE IF NOT EXISTS "system_dict_type" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(100) NOT NULL DEFAULT '', + "type" varchar(100) NOT NULL DEFAULT '', + "status" tinyint NOT NULL DEFAULT '0', + "remark" varchar(500) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "deleted_time" timestamp NOT NULL, + PRIMARY KEY ("id") +) COMMENT '字典类型表'; + +CREATE TABLE IF NOT EXISTS `system_user_session` ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + `token` varchar(32) NOT NULL, + `user_id` bigint DEFAULT NULL, + "user_type" tinyint NOT NULL, + `username` varchar(50) NOT NULL DEFAULT '', + `user_ip` varchar(50) DEFAULT NULL, + `user_agent` varchar(512) DEFAULT NULL, + `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updater` varchar(64) DEFAULT '' , + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY (`id`) +) COMMENT '用户在线 Session'; + +CREATE TABLE IF NOT EXISTS "system_post" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "code" varchar(64) NOT NULL, + "name" varchar(50) NOT NULL, + "sort" integer NOT NULL, + "status" tinyint NOT NULL, + "remark" varchar(500) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '岗位信息表'; + +CREATE TABLE IF NOT EXISTS `system_user_post`( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint DEFAULT NULL, + "post_id" bigint DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY (`id`) +) COMMENT ='用户岗位表'; + +CREATE TABLE IF NOT EXISTS "system_notice" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "title" varchar(50) NOT NULL COMMENT '公告标题', + "content" text NOT NULL COMMENT '公告内容', + "type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', + "status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', + "creator" varchar(64) DEFAULT '' COMMENT '创建者', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + "updater" varchar(64) DEFAULT '' COMMENT '更新者', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + "deleted" bit NOT NULL DEFAULT 0 COMMENT '是否删除', + "tenant_id" bigint not null default '0', + PRIMARY KEY("id") +) COMMENT '通知公告表'; + +CREATE TABLE IF NOT EXISTS `system_login_log` ( + `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, + `log_type` bigint(4) NOT NULL, + "user_id" bigint not null default '0', + "user_type" tinyint NOT NULL, + `trace_id` varchar(64) NOT NULL DEFAULT '', + `username` varchar(50) NOT NULL DEFAULT '', + `result` tinyint(4) NOT NULL, + `user_ip` varchar(50) NOT NULL, + `user_agent` varchar(512) NOT NULL, + `creator` varchar(64) DEFAULT '', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updater` varchar(64) DEFAULT '', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `deleted` bit(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) COMMENT ='系统访问记录'; + +CREATE TABLE IF NOT EXISTS `system_operate_log` ( + `id` bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, + `trace_id` varchar(64) NOT NULL DEFAULT '', + `user_id` bigint(20) NOT NULL, + "user_type" tinyint not null default '0', + `type` varchar(50) NOT NULL, + `sub_type` varchar(50) NOT NULL, + `biz_id` bigint(20) NOT NULL, + `action` varchar(2000) NOT NULL DEFAULT '', + `extra` varchar(512) NOT NULL DEFAULT '', + `request_method` varchar(16) DEFAULT '', + `request_url` varchar(255) DEFAULT '', + `user_ip` varchar(50) DEFAULT NULL, + `user_agent` varchar(200) DEFAULT NULL, + `creator` varchar(64) DEFAULT '', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updater` varchar(64) DEFAULT '', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `deleted` bit(1) NOT NULL DEFAULT '0', + "tenant_id" bigint not null default '0', + PRIMARY KEY (`id`) +) COMMENT ='操作日志记录'; + +CREATE TABLE IF NOT EXISTS "system_users" ( + "id" bigint not null GENERATED BY DEFAULT AS IDENTITY, + "username" varchar(30) not null, + "password" varchar(100) not null default '', + "nickname" varchar(30) not null, + "remark" varchar(500) default null, + "dept_id" bigint default null, + "post_ids" varchar(255) default null, + "email" varchar(50) default '', + "mobile" varchar(11) default '', + "sex" tinyint default '0', + "avatar" varchar(100) default '', + "status" tinyint not null default '0', + "login_ip" varchar(50) default '', + "login_date" timestamp default null, + "creator" varchar(64) default '', + "create_time" timestamp not null default current_timestamp, + "updater" varchar(64) default '', + "update_time" timestamp not null default current_timestamp, + "deleted" bit not null default false, + "tenant_id" bigint not null default '0', + primary key ("id") +) comment '用户信息表'; + +CREATE TABLE IF NOT EXISTS "system_sms_channel" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "signature" varchar(10) NOT NULL, + "code" varchar(63) NOT NULL, + "status" tinyint NOT NULL, + "remark" varchar(255) DEFAULT NULL, + "api_key" varchar(63) NOT NULL, + "api_secret" varchar(63) DEFAULT NULL, + "callback_url" varchar(255) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '短信渠道'; + +CREATE TABLE IF NOT EXISTS "system_sms_template" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "type" tinyint NOT NULL, + "status" tinyint NOT NULL, + "code" varchar(63) NOT NULL, + "name" varchar(63) NOT NULL, + "content" varchar(255) NOT NULL, + "params" varchar(255) NOT NULL, + "remark" varchar(255) DEFAULT NULL, + "api_template_id" varchar(63) NOT NULL, + "channel_id" bigint NOT NULL, + "channel_code" varchar(63) NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '短信模板'; + +CREATE TABLE IF NOT EXISTS "system_sms_log" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "channel_id" bigint NOT NULL, + "channel_code" varchar(63) NOT NULL, + "template_id" bigint NOT NULL, + "template_code" varchar(63) NOT NULL, + "template_type" tinyint NOT NULL, + "template_content" varchar(255) NOT NULL, + "template_params" varchar(255) NOT NULL, + "api_template_id" varchar(63) NOT NULL, + "mobile" varchar(11) NOT NULL, + "user_id" bigint DEFAULT '0', + "user_type" tinyint DEFAULT '0', + "send_status" tinyint NOT NULL DEFAULT '0', + "send_time" timestamp DEFAULT NULL, + "send_code" int DEFAULT NULL, + "send_msg" varchar(255) DEFAULT NULL, + "api_send_code" varchar(63) DEFAULT NULL, + "api_send_msg" varchar(255) DEFAULT NULL, + "api_request_id" varchar(255) DEFAULT NULL, + "api_serial_no" varchar(255) DEFAULT NULL, + "receive_status" tinyint NOT NULL DEFAULT '0', + "receive_time" timestamp DEFAULT NULL, + "api_receive_code" varchar(63) DEFAULT NULL, + "api_receive_msg" varchar(255) DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '短信日志'; + +CREATE TABLE IF NOT EXISTS "system_sms_code" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "mobile" varchar(11) NOT NULL, + "code" varchar(11) NOT NULL, + "scene" bigint NOT NULL, + "create_ip" varchar NOT NULL, + "today_index" int NOT NULL, + "used" bit NOT NULL DEFAULT FALSE, + "used_time" timestamp DEFAULT NULL, + "used_ip" varchar NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '短信日志'; + +CREATE TABLE IF NOT EXISTS "system_social_client" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(255) NOT NULL, + "social_type" int NOT NULL, + "user_type" int NOT NULL, + "client_id" varchar(255) NOT NULL, + "client_secret" varchar(255) NOT NULL, + "agent_id" varchar(255) NOT NULL, + "status" int NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '社交客户端表'; + +CREATE TABLE IF NOT EXISTS "system_social_user" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "type" tinyint NOT NULL, + "openid" varchar(64) NOT NULL, + "token" varchar(256) DEFAULT NULL, + "raw_token_info" varchar(1024) NOT NULL, + "nickname" varchar(32) NOT NULL, + "avatar" varchar(255) DEFAULT NULL, + "raw_user_info" varchar(1024) NOT NULL, + "code" varchar(64) NOT NULL, + "state" varchar(64), + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '社交用户'; + +CREATE TABLE IF NOT EXISTS "system_social_user_bind" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" tinyint NOT NULL, + "social_type" tinyint NOT NULL, + "social_user_id" number NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '社交用户的绑定'; + +CREATE TABLE IF NOT EXISTS "system_tenant" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(63) NOT NULL, + "contact_user_id" bigint NOT NULL DEFAULT '0', + "contact_name" varchar(255) NOT NULL, + "contact_mobile" varchar(255), + "status" tinyint NOT NULL, + "website" varchar(63) DEFAULT '', + "package_id" bigint NOT NULL, + "expire_time" timestamp NOT NULL, + "account_count" int NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '租户'; + +CREATE TABLE IF NOT EXISTS "system_tenant_package" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(30) NOT NULL, + "status" tinyint NOT NULL, + "remark" varchar(256), + "menu_ids" varchar(2048) NOT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '租户套餐表'; + +CREATE TABLE IF NOT EXISTS "system_oauth2_client" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "client_id" varchar NOT NULL, + "secret" varchar NOT NULL, + "name" varchar NOT NULL, + "logo" varchar NOT NULL, + "description" varchar, + "status" int NOT NULL, + "access_token_validity_seconds" int NOT NULL, + "refresh_token_validity_seconds" int NOT NULL, + "redirect_uris" varchar NOT NULL, + "authorized_grant_types" varchar NOT NULL, + "scopes" varchar NOT NULL DEFAULT '', + "auto_approve_scopes" varchar NOT NULL DEFAULT '', + "authorities" varchar NOT NULL DEFAULT '', + "resource_ids" varchar NOT NULL DEFAULT '', + "additional_information" varchar NOT NULL DEFAULT '', + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT 'OAuth2 客户端表'; + +CREATE TABLE IF NOT EXISTS "system_oauth2_approve" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" tinyint NOT NULL, + "client_id" varchar NOT NULL, + "scope" varchar NOT NULL, + "approved" bit NOT NULL DEFAULT FALSE, + "expires_time" datetime NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT 'OAuth2 批准表'; + +CREATE TABLE IF NOT EXISTS "system_oauth2_access_token" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" tinyint NOT NULL, + "user_info" varchar NOT NULL, + "access_token" varchar NOT NULL, + "refresh_token" varchar NOT NULL, + "client_id" varchar NOT NULL, + "scopes" varchar NOT NULL, + "approved" bit NOT NULL DEFAULT FALSE, + "expires_time" datetime NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint NOT NULL, + PRIMARY KEY ("id") +) COMMENT 'OAuth2 访问令牌'; + +CREATE TABLE IF NOT EXISTS "system_oauth2_refresh_token" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" tinyint NOT NULL, + "refresh_token" varchar NOT NULL, + "client_id" varchar NOT NULL, + "scopes" varchar NOT NULL, + "approved" bit NOT NULL DEFAULT FALSE, + "expires_time" datetime NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT 'OAuth2 刷新令牌'; + +CREATE TABLE IF NOT EXISTS "system_oauth2_code" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" tinyint NOT NULL, + "code" varchar NOT NULL, + "client_id" varchar NOT NULL, + "scopes" varchar NOT NULL, + "expires_time" datetime NOT NULL, + "redirect_uri" varchar NOT NULL, + "state" varchar NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT 'OAuth2 刷新令牌'; + +CREATE TABLE IF NOT EXISTS "system_mail_account" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "mail" varchar NOT NULL, + "username" varchar NOT NULL, + "password" varchar NOT NULL, + "host" varchar NOT NULL, + "port" int NOT NULL, + "ssl_enable" bit NOT NULL, + "starttls_enable" bit NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '邮箱账号表'; + +CREATE TABLE IF NOT EXISTS "system_mail_template" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar NOT NULL, + "code" varchar NOT NULL, + "account_id" bigint NOT NULL, + "nickname" varchar, + "title" varchar NOT NULL, + "content" varchar NOT NULL, + "params" varchar NOT NULL, + "status" varchar NOT NULL, + "remark" varchar, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '邮件模版表'; + +CREATE TABLE IF NOT EXISTS "system_mail_log" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint, + "user_type" varchar, + "to_mail" varchar NOT NULL, + "account_id" bigint NOT NULL, + "from_mail" varchar NOT NULL, + "template_id" bigint NOT NULL, + "template_code" varchar NOT NULL, + "template_nickname" varchar, + "template_title" varchar NOT NULL, + "template_content" varchar NOT NULL, + "template_params" varchar NOT NULL, + "send_status" varchar NOT NULL, + "send_time" datetime, + "send_message_id" varchar, + "send_exception" varchar, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '邮件日志表'; + +-- 将该建表 SQL 语句,添加到 yshop-module-system-biz 模块的 test/resources/sql/create_tables.sql 文件里 +CREATE TABLE IF NOT EXISTS "system_notify_template" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar NOT NULL, + "code" varchar NOT NULL, + "nickname" varchar NOT NULL, + "content" varchar NOT NULL, + "type" varchar NOT NULL, + "params" varchar, + "status" varchar NOT NULL, + "remark" varchar, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '站内信模板表'; + +CREATE TABLE IF NOT EXISTS "system_notify_message" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "user_id" bigint NOT NULL, + "user_type" varchar NOT NULL, + "template_id" bigint NOT NULL, + "template_code" varchar NOT NULL, + "template_nickname" varchar NOT NULL, + "template_content" varchar NOT NULL, + "template_type" int NOT NULL, + "template_params" varchar NOT NULL, + "read_status" bit NOT NULL, + "read_time" varchar, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint not null default '0', + PRIMARY KEY ("id") +) COMMENT '站内信消息表'; diff --git a/yshop-drink-boot3/yshop-server/Dockerfile b/yshop-drink-boot3/yshop-server/Dockerfile new file mode 100644 index 0000000..d232a84 --- /dev/null +++ b/yshop-drink-boot3/yshop-server/Dockerfile @@ -0,0 +1,23 @@ +## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性 +## 感谢复旦核博士的建议!灰子哥,牛皮! +FROM eclipse-temurin:21-jre + +## 创建目录,并使用它作为工作目录 +RUN mkdir -p /yshop-server +WORKDIR /yshop-server +## 将后端项目的 Jar 文件,复制到镜像中 +COPY ./target/yshop-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/yshop-drink-boot3/yshop-server/pom.xml b/yshop-drink-boot3/yshop-server/pom.xml new file mode 100644 index 0000000..649f0dd --- /dev/null +++ b/yshop-drink-boot3/yshop-server/pom.xml @@ -0,0 +1,139 @@ + + + + co.yixiang.boot + yshop + ${revision} + + 4.0.0 + + yshop-server + jar + + ${project.artifactId} + + 后端 Server 的主项目,通过引入需要 yshop-module-xxx 的依赖, + 从而实现提供 RESTful API 给前端项目。 + 本质上来说,它就是个空壳(容器)!! + + https://gitee.com/guchengwuyue/yshop-drink + + + + co.yixiang.boot + yshop-module-system-biz + ${revision} + + + co.yixiang.boot + yshop-module-infra-biz + ${revision} + + + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + + co.yixiang.boot + yshop-module-pay-biz + ${revision} + + + + + co.yixiang.boot + yshop-module-express-biz + ${revision} + + + + + + co.yixiang.boot + yshop-module-message-biz + ${revision} + + + + + co.yixiang.boot + yshop-module-mp-biz + ${revision} + + + co.yixiang.boot + yshop-module-shop-biz + ${revision} + + + co.yixiang.boot + yshop-module-order-biz + ${revision} + + + + + + + + co.yixiang.boot + yshop-module-coupon-biz + ${revision} + + + + co.yixiang.boot + yshop-module-score-biz + ${revision} + + + + co.yixiang.boot + yshop-module-desk-biz + ${revision} + + + + + + + + + + co.yixiang.boot + yshop-spring-boot-starter-protection + + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + + diff --git a/yshop-drink/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java b/yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java similarity index 92% rename from yshop-drink/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java rename to yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java index 7ad8bcb..5b49cd0 100644 --- a/yshop-drink/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java +++ b/yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/YshopServerApplication.java @@ -11,10 +11,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication(scanBasePackages = {"${yshop.info.base-package}.server", "${yshop.info.base-package}.module"}) public class YshopServerApplication { - public static void main(String[] args) { + public static void main(String[] args){ SpringApplication.run(YshopServerApplication.class, args); + } } diff --git a/yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/controller/DefaultController.java b/yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/controller/DefaultController.java new file mode 100644 index 0000000..d6cdf1b --- /dev/null +++ b/yshop-drink-boot3/yshop-server/src/main/java/co/yixiang/yshop/server/controller/DefaultController.java @@ -0,0 +1,16 @@ +package co.yixiang.yshop.server.controller; + +import org.springframework.web.bind.annotation.RestController; + +/** + * 默认 Controller,解决部分 module 未开启时的 404 提示。 + * 例如说,/bpm/** 路径,工作流 + * + * @author yshop + */ +@RestController +public class DefaultController { + + + +} diff --git a/yshop-drink-boot3/yshop-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yshop-drink-boot3/yshop-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..6938771 --- /dev/null +++ b/yshop-drink-boot3/yshop-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.egzosn.pay.spring.boot.autoconfigue.PayAutoConfiguration \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-server/src/main/resources/application-dev.yaml b/yshop-drink-boot3/yshop-server/src/main/resources/application-dev.yaml new file mode 100644 index 0000000..9d4bbf4 --- /dev/null +++ b/yshop-drink-boot3/yshop-server/src/main/resources/application-dev.yaml @@ -0,0 +1,203 @@ +server: + port: 48080 + +--- #################### 数据库相关配置 #################### + +spring: + # 数据源配置项 + 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: 5 # 初始连接数 + min-idle: 10 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/yixiang-drink-open?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: root + slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/yixiang-drink-open?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: root + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + data: + redis: + host: 400-infra.server.yixiang.co # 地址 + port: 6379 # 端口 + database: 1 # 数据库索引 +# password: 123456 # 密码,建议生产环境开启 + +--- #################### 定时任务相关配置 #################### + +# 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 ,我们手动创建表结构。 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + name-server: 127.0.0.1:9876 # RocketMQ Namesrv + +spring: + # RabbitMQ 配置项,对应 RabbitProperties 配置类 + rabbitmq: + host: 127.0.0.1 # RabbitMQ 服务的地址 + port: 5672 # RabbitMQ 服务的端口 + username: guest # RabbitMQ 服务的账号 + password: guest # RabbitMQ 服务的密码 + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# 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 # 日志文件名,全路径 + +--- #################### 微信公众号相关配置 #################### +wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 + mp: + # 公众号配置(必填) + app-id: wxdbdbc123c8c30b45 + secret: 3312eb2026a006bd0cc39af3021ef9c5 + # 存储配置,解决 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: wx001e2dc50bf532df + secret: d22aa6a98472ae0b5ee6dd9b7807520c + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + +--- #################### yshop相关配置 #################### + +# yshop配置项,设置当前项目所有自定义的配置 +yshop: + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + pay: + order-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + demo: true # 开启演示模式 + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + file-path: /www/wwwroot/drink/file/ + h5: https://www.yixiang.co/h5 + +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 + # noinspection SpringBootApplicationYaml + 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 分钟 \ No newline at end of file diff --git a/yshop-drink-boot3/yshop-server/src/main/resources/application-local.yaml b/yshop-drink-boot3/yshop-server/src/main/resources/application-local.yaml new file mode 100644 index 0000000..1800814 --- /dev/null +++ b/yshop-drink-boot3/yshop-server/src/main/resources/application-local.yaml @@ -0,0 +1,236 @@ +server: + port: 48081 + +--- #################### 数据库相关配置 #################### + +spring: + # 数据源配置项 + autoconfigure: + exclude: + - 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: 1 # 初始连接数 + min-idle: 1 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/yixiang-drink-open?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: root + slave: # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/yixiang-drink-open?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + username: root + password: root + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + data: + redis: + host: 127.0.0.1 # 地址 + port: 6379 # 端口 + database: 0 # 数据库索引 +# password: dev # 密码,建议生产环境开启 + +--- #################### 定时任务相关配置 #################### + +# 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 ,我们手动创建表结构。 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + name-server: 127.0.0.1:9876 # RocketMQ Namesrv + +spring: + # RabbitMQ 配置项,对应 RabbitProperties 配置类 + 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 地址,可以设置多个,以逗号分隔 + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# 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 打印日志 + co.yixiang.yshop.module.bpm.dal.mysql: debug + co.yixiang.yshop.module.infra.dal.mysql: debug + co.yixiang.yshop.module.infra.dal.mysql.logger.ApiErrorLogMapper: INFO # 配置 ApiErrorLogMapper 的日志级别为 info,避免和 GlobalExceptionHandler 重复打印 + co.yixiang.yshop.module.infra.dal.mysql.job.JobLogMapper: INFO # 配置 JobLogMapper 的日志级别为 info + co.yixiang.yshop.module.infra.dal.mysql.file.FileConfigMapper: INFO # 配置 FileConfigMapper 的日志级别为 info + co.yixiang.yshop.module.pay.dal.mysql: debug + co.yixiang.yshop.module.pay.dal.mysql.notify.PayNotifyTaskMapper: INFO # 配置 PayNotifyTaskMapper 的日志级别为 info + co.yixiang.yshop.module.system.dal.mysql: debug + co.yixiang.yshop.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info + co.yixiang.yshop.module.tool.dal.mysql: debug + co.yixiang.yshop.module.member.dal.mysql: debug + co.yixiang.yshop.module.trade.dal.mysql: debug + co.yixiang.yshop.module.promotion.dal.mysql: debug + co.yixiang.yshop.module.statistics.dal.mysql: debug + co.yixiang.yshop.module.crm.dal.mysql: debug + co.yixiang.yshop.module.erp.dal.mysql: debug + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO yshop:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 + +debug: false + +--- #################### 微信公众号、小程序相关配置 #################### +wx: + mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 + app-id: wxdbdbc123c8c30b45 # 测试号(自己的) + secret: 3312eb2026a006bd0cc39af3021ef9c5 + # 存储配置,解决 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: wx001e2dc50bf532df # wenhualian的接口测试号 + secret: d22aa6a98472ae0b5ee6dd9b7807520c + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + +--- #################### yshop相关配置 #################### + +# yshop配置项,设置当前项目所有自定义的配置 +yshop: + captcha: + enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试; + security: + mock-enable: true + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + pay: + order-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: http://yshop.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + access-log: # 访问日志的配置项 + enable: false + demo: false # 关闭演示模式 + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + file-path: /Users/hupeng/drink/file/ + h5: http://localhost:80 + +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 + # noinspection SpringBootApplicationYaml + 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 分钟 + diff --git a/yshop-drink-boot3/yshop-server/src/main/resources/application.yaml b/yshop-drink-boot3/yshop-server/src/main/resources/application.yaml new file mode 100644 index 0000000..1f69732 --- /dev/null +++ b/yshop-drink-boot3/yshop-server/src/main/resources/application.yaml @@ -0,0 +1,258 @@ +spring: + application: + name: yshop-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 yshop:不能配置,会导致 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: audit # full:保存历史数据的最高级别,可保存全部流程相关细节,包括流程流转各节点参数 + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + 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: ${yshop.info.base-package}.module.*.dal.dataobject + 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,所以直接禁用,保证启动速度 + +# VO 转换(数据翻译)相关 +easy-trans: + is-enable-global: true # 启用全局翻译(拦截所有 SpringMVC ResponseBody 进行自动翻译 )。如果对于性能要求很高可关闭此配置,或通过 @IgnoreTrans 忽略某个接口 + is-enable-cloud: false # 禁用 TransType.RPC 微服务模式 + +--- #################### 验证码相关配置 #################### + +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: yshop # 右下角水印文字(我的水印),可使用 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: + # Producer 配置项 + producer: + group: ${spring.application.name}_PRODUCER # 生产者分组 + +spring: + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + # 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 ,解决报错 + +--- #################### yshop相关配置 #################### + +yshop: + info: + version: 3.0.0 + base-package: co.yixiang.yshop + isActive: true + web: + admin-ui: + url: http://dashboard.yshop.yixiang.co # 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: yshop意象点餐系统 + description: 提供管理后台、用户 App 的所有功能 + version: ${yshop.info.version} + url: ${yshop.web.admin-ui.url} + email: yshop@yixiang.co + license: MIT + license-url: https://gitee.com/guchengwuyue/yshop-drink + captcha: + enable: true # 验证码的开关,默认为 true + codegen: + base-package: ${yshop.info.base-package} + db-schemas: ${spring.datasource.dynamic.datasource.master.name} + front-type: 10 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类 + tenant: # 多租户相关配置项 + enable: false + 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/pay/notify/** # 支付回调通知,不携带租户编号 + - /jmreport/* # 积木报表,无法携带租户编号 + - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,无法携带租户编号 + - /admin-api/file/qrcode/** # 二维码不需要 + - /app-api/order/notify/* # 支付回调通知,不携带租户编号 + ignore-tables: + - 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 + - infra_codegen_column + - infra_codegen_table + - infra_config + - infra_file_config + - infra_file + - infra_file_content + - infra_job + - infra_job_log + - infra_job_log + - infra_data_source_config + - yshop_store_product_attr + - yshop_store_product_attr_result + - yshop_store_product_attr_value + - yshop_store_order_cart_info + - yshop_store_order_status + - yshop_order_number + - yshop_qrcode + sms-code: # 短信验证码相关的配置项 + expire-times: 10m + send-frequency: 1m + send-maximum-quantity-per-day: 10 + begin-code: 9999 # 这里配置 9999 的原因是,测试方便。 + end-code: 9999 # 这里配置 9999 的原因是,测试方便。 + trade: + order: + app-id: 1 # 商户编号 + pay-expire-time: 2h # 支付的过期时间 + receive-expire-time: 14d # 收货的过期时间 + comment-expire-time: 7d # 评论的过期时间 + express: + client: kd_niao + kd-niao: + api-key: cb022f1e-48f1-4c4a-a723-9001ac9676b8 + business-id: 1809751 + kd100: + key: pLXUGAwK5305 + customer: E77DF18BE109F454A5CD319E44BF5177 + +debug: false + +# 积木报表配置 +jeecg: + jmreport: + saas-mode: tenant \ No newline at end of file diff --git a/yshop-drink/yshop-server/src/main/resources/logback-spring.xml b/yshop-drink-boot3/yshop-server/src/main/resources/logback-spring.xml similarity index 100% rename from yshop-drink/yshop-server/src/main/resources/logback-spring.xml rename to yshop-drink-boot3/yshop-server/src/main/resources/logback-spring.xml diff --git a/yshop-drink/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java b/yshop-drink-boot3/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java similarity index 98% rename from yshop-drink/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java rename to yshop-drink-boot3/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java index 27f90d3..a4c459f 100644 --- a/yshop-drink/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java +++ b/yshop-drink-boot3/yshop-server/src/test/java/co/yixiang/yshop/ProjectReactor.java @@ -34,7 +34,8 @@ public class ProjectReactor { * 白名单文件,不进行重写,避免出问题 */ private static final Set WHITE_FILE_TYPES = SetUtils.asSet("gif", "jpg", "svg", "png", // 图片 - "eot", "woff2", "ttf", "woff"); // 字体 + "eot", "woff2", "ttf", "woff", // 字体 + "xdb"); // IP 库 public static void main(String[] args) { long start = System.currentTimeMillis(); diff --git a/yshop-drink-uniapp-vue3/pages/components/pages/login/login.vue b/yshop-drink-uniapp-vue3/pages/components/pages/login/login.vue index 3b8b036..367c03d 100644 --- a/yshop-drink-uniapp-vue3/pages/components/pages/login/login.vue +++ b/yshop-drink-uniapp-vue3/pages/components/pages/login/login.vue @@ -61,9 +61,10 @@ import { ref, computed } from 'vue' -import { onLoad } from '@dcloudio/uni-app' +import { onLoad,onShow } from '@dcloudio/uni-app' import { useMainStore } from '@/store/store' import { + userAuthSession, userLoginForWechatMini, smsSend, userLogin @@ -91,6 +92,34 @@ const captchaStyle = computed(() => { return style; }); +onShow(() => { + + // #ifdef MP-WEIXIN + if(!openid.value){ + wechatMiniLogin(); + } + + // #endif +}) + + +const wechatMiniLogin = () => { + //this.$u.toast('登录中'); + uni.login({ + provider: 'weixin' + }).then(async (res) => { + let data = await userAuthSession({ + code: res.code + }); + if (data) { + console.log('data.openId001:',data.openId) + main.SET_OPENID(data.openId) + openid.value = data.openId + } + }); +} + + const loginForWechatMini = async (e) => { if(!isChecked.value){ diff --git a/yshop-drink-uniapp-vue3/pages/components/pages/orders/detail.vue b/yshop-drink-uniapp-vue3/pages/components/pages/orders/detail.vue index d050dbb..7d82698 100644 --- a/yshop-drink-uniapp-vue3/pages/components/pages/orders/detail.vue +++ b/yshop-drink-uniapp-vue3/pages/components/pages/orders/detail.vue @@ -117,7 +117,7 @@ 支付方式 - {{ order._status._payType }} + {{ order.statusDto.payType }} 订单金额 @@ -203,7 +203,7 @@ import { const title = ref('订单详情') const order = ref({ shop:{name:''}, - _status:{_payType:''} + statusDto:{payType:''} }) const numForMading = ref(5) diff --git a/yshop-drink-uniapp-vue3/pages/components/pages/orders/orders.vue b/yshop-drink-uniapp-vue3/pages/components/pages/orders/orders.vue index 7604f31..cdf4c9e 100644 --- a/yshop-drink-uniapp-vue3/pages/components/pages/orders/orders.vue +++ b/yshop-drink-uniapp-vue3/pages/components/pages/orders/orders.vue @@ -21,7 +21,7 @@ 订单编号:{{ item.orderId }} - {{ item._status._title }} + {{ item.statusDto.title }} diff --git a/yshop-drink-uniapp-vue3/pages/order/order.vue b/yshop-drink-uniapp-vue3/pages/order/order.vue index a978ee1..2312500 100644 --- a/yshop-drink-uniapp-vue3/pages/order/order.vue +++ b/yshop-drink-uniapp-vue3/pages/order/order.vue @@ -21,7 +21,7 @@ 订单编号:{{ item.orderId }} - {{ item._status._title }} + {{ item.statusDto.title }} diff --git a/yshop-drink-vue/.editorconfig b/yshop-drink-vue/.editorconfig deleted file mode 100644 index 79a12ff..0000000 --- a/yshop-drink-vue/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true -[*.{js,ts,vue}] -charset = utf-8 # 设置文件字符集为 utf-8 -end_of_line = lf # 控制换行类型(lf | cr | crlf) -insert_final_newline = true # 始终在文件末尾插入一个新行 -indent_style = space # 缩进风格(tab | space) -indent_size = 2 # 缩进大小 -max_line_length = 100 # 最大行长度 - -[*.md] # 仅 md 文件适用以下规则 -max_line_length = off # 关闭最大行长度限制 -trim_trailing_whitespace = false # 关闭末尾空格修剪 diff --git a/yshop-drink-vue/.env b/yshop-drink-vue/.env deleted file mode 100644 index 3e723f1..0000000 --- a/yshop-drink-vue/.env +++ /dev/null @@ -1,19 +0,0 @@ -# 标题 -VITE_APP_TITLE=意象点餐管理系统 - -# 项目本地运行端口号 -VITE_PORT=80 - -# open 运行 npm run dev 时自动打开浏览器 -VITE_OPEN=true - -# 租户开关 -VITE_APP_TENANT_ENABLE=false - -# 验证码的开关 -VITE_APP_CAPTCHA_ENABLE=true - -# 百度统计 -VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc -# 百度地图ak -VITE_BAIDU_MAP_AK = m1YRfvvQt9dPVNuPSieTEDgRhZkIznSn diff --git a/yshop-drink-vue/.env.base b/yshop-drink-vue/.env.base deleted file mode 100644 index 98694ef..0000000 --- a/yshop-drink-vue/.env.base +++ /dev/null @@ -1,19 +0,0 @@ -# 本地开发环境 -NODE_ENV=development - -VITE_DEV=true - -# 请求路径 -VITE_BASE_URL='http://localhost:48081' - -# 上传路径 -VITE_UPLOAD_URL='http://localhost:48081/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH=/dev-api - -# 接口地址 -VITE_API_URL=/admin-api - -# 打包路径 -VITE_BASE_PATH=/ diff --git a/yshop-drink-vue/.env.dev b/yshop-drink-vue/.env.dev deleted file mode 100644 index d3d7ad1..0000000 --- a/yshop-drink-vue/.env.dev +++ /dev/null @@ -1,31 +0,0 @@ -# 开发环境 -NODE_ENV=production - -VITE_DEV=false - -# 请求路径 -VITE_BASE_URL='https://apidc.yixiang.co' - -# 上传路径 -VITE_UPLOAD_URL='https://apidc.yixiang.co/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH=/dev-api - -# 接口地址 -VITE_API_URL=/admin-api - -# 打包路径 -VITE_BASE_PATH=/ - -# 是否删除debugger -VITE_DROP_DEBUGGER=false - -# 是否删除console.log -VITE_DROP_CONSOLE=false - -# 是否sourcemap -VITE_SOURCEMAP=true - -# 输出路径 -VITE_OUT_DIR=dist-dev diff --git a/yshop-drink-vue/.env.front b/yshop-drink-vue/.env.front deleted file mode 100644 index e2e7f1a..0000000 --- a/yshop-drink-vue/.env.front +++ /dev/null @@ -1,34 +0,0 @@ -# 本地开发环境 -NODE_ENV=development - -VITE_DEV=true - -# 请求路径 -VITE_BASE_URL='http://localhost:48081' - -# 上传路径 -VITE_UPLOAD_URL='http://localhost:48081/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH=/dev-api - -# 接口地址 -VITE_API_URL=/admin-api - -# 打包路径 -VITE_BASE_PATH=/ - -# 项目本地运行端口号, 与.vscode/launch.json配合 -VITE_PORT=80 - -# 是否删除debugger -VITE_DROP_DEBUGGER=false - -# 是否删除console.log -VITE_DROP_CONSOLE=false - -# 是否sourcemap -VITE_SOURCEMAP=true - -# 验证码的开关 -VITE_APP_CAPTCHA_ENABLE=true diff --git a/yshop-drink-vue/.env.pro b/yshop-drink-vue/.env.pro deleted file mode 100644 index f1321bd..0000000 --- a/yshop-drink-vue/.env.pro +++ /dev/null @@ -1,31 +0,0 @@ -# 生产环境 -NODE_ENV=production - -VITE_DEV=false - -# 请求路径 -VITE_BASE_URL='http://localhost:48081' - -# 上传路径 -VITE_UPLOAD_URL='http://localhost:48081/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH= - -# 接口地址 -VITE_API_URL=/admin-api - -# 是否删除debugger -VITE_DROP_DEBUGGER=true - -# 是否删除console.log -VITE_DROP_CONSOLE=true - -# 是否sourcemap -VITE_SOURCEMAP=false - -# 打包路径 -VITE_BASE_PATH=/ - -# 输出路径 -VITE_OUT_DIR=dist-pro diff --git a/yshop-drink-vue/.env.stage b/yshop-drink-vue/.env.stage deleted file mode 100644 index 748b4d9..0000000 --- a/yshop-drink-vue/.env.stage +++ /dev/null @@ -1,31 +0,0 @@ -# 生产环境 -NODE_ENV=production - -VITE_DEV=false - -# 请求路径 -VITE_BASE_URL='http://api-dashboard.yixiang.co' - -# 上传路径 -VITE_UPLOAD_URL='http://api-dashboard.yixiang.co/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH= - -# 接口地址 -VITE_API_URL=/admin-api - -# 是否删除debugger -VITE_DROP_DEBUGGER=true - -# 是否删除console.log -VITE_DROP_CONSOLE=true - -# 是否sourcemap -VITE_SOURCEMAP=false - -# 打包路径 -VITE_BASE_PATH='http://static-vue3.yixiang.co/' - -# 输出路径 -VITE_OUT_DIR=dist-stage diff --git a/yshop-drink-vue/.env.static b/yshop-drink-vue/.env.static deleted file mode 100644 index 034a7f4..0000000 --- a/yshop-drink-vue/.env.static +++ /dev/null @@ -1,31 +0,0 @@ -# 开发环境 -NODE_ENV=production - -VITE_DEV=false - -# 请求路径 -VITE_BASE_URL='http://localhost:48080' - -# 上传路径 -VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH= - -# 接口地址 -VITE_API_URL=/admin-api - -# 是否删除debugger -VITE_DROP_DEBUGGER=true - -# 是否删除console.log -VITE_DROP_CONSOLE=true - -# 是否sourcemap -VITE_SOURCEMAP=false - -# 打包路径 -VITE_BASE_PATH=/admin-ui-vue3/ - -# 输出路径 -VITE_OUT_DIR=dist-dev diff --git a/yshop-drink-vue/.env.test b/yshop-drink-vue/.env.test deleted file mode 100644 index 0793af2..0000000 --- a/yshop-drink-vue/.env.test +++ /dev/null @@ -1,31 +0,0 @@ -# 测试环境 -NODE_ENV=production - -VITE_DEV=false - -# 请求路径 -VITE_BASE_URL='http://localhost:48080' - -# 上传路径 -VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload' - -# 接口前缀 -VITE_API_BASEPATH= - -# 接口地址 -VITE_API_URL=/admin-api - -# 是否删除debugger -VITE_DROP_DEBUGGER=false - -# 是否删除console.log -VITE_DROP_CONSOLE=false - -# 是否sourcemap -VITE_SOURCEMAP=true - -# 打包路径 -VITE_BASE_PATH=/ - -# 输出路径 -VITE_OUT_DIR=dist-test diff --git a/yshop-drink-vue/.eslintignore b/yshop-drink-vue/.eslintignore deleted file mode 100644 index 1e85c0f..0000000 --- a/yshop-drink-vue/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -/build/ -/config/ -/dist/ -/*.js -/test/unit/coverage/ -/node_modules/* -/dist* -/src/main.ts diff --git a/yshop-drink-vue/.eslintrc-auto-import.json b/yshop-drink-vue/.eslintrc-auto-import.json deleted file mode 100644 index 024c96a..0000000 --- a/yshop-drink-vue/.eslintrc-auto-import.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "globals": { - "EffectScope": true, - "ElMessage": true, - "ElMessageBox": true, - "ElTag": true, - "asyncComputed": true, - "autoResetRef": true, - "computed": true, - "computedAsync": true, - "computedEager": true, - "computedInject": true, - "computedWithControl": true, - "controlledComputed": true, - "controlledRef": true, - "createApp": true, - "createEventHook": true, - "createGlobalState": true, - "createInjectionState": true, - "createReactiveFn": true, - "createSharedComposable": true, - "createUnrefFn": true, - "customRef": true, - "debouncedRef": true, - "debouncedWatch": true, - "defineAsyncComponent": true, - "defineComponent": true, - "eagerComputed": true, - "effectScope": true, - "extendRef": true, - "getCurrentInstance": true, - "getCurrentScope": true, - "h": true, - "ignorableWatch": true, - "inject": true, - "isDefined": true, - "isProxy": true, - "isReactive": true, - "isReadonly": true, - "isRef": true, - "makeDestructurable": true, - "markRaw": true, - "nextTick": true, - "onActivated": true, - "onBeforeMount": true, - "onBeforeUnmount": true, - "onBeforeUpdate": true, - "onClickOutside": true, - "onDeactivated": true, - "onErrorCaptured": true, - "onKeyStroke": true, - "onLongPress": true, - "onMounted": true, - "onRenderTracked": true, - "onRenderTriggered": true, - "onScopeDispose": true, - "onServerPrefetch": true, - "onStartTyping": true, - "onUnmounted": true, - "onUpdated": true, - "pausableWatch": true, - "provide": true, - "reactify": true, - "reactifyObject": true, - "reactive": true, - "reactiveComputed": true, - "reactiveOmit": true, - "reactivePick": true, - "readonly": true, - "ref": true, - "refAutoReset": true, - "refDebounced": true, - "refDefault": true, - "refThrottled": true, - "refWithControl": true, - "resolveComponent": true, - "resolveRef": true, - "resolveUnref": true, - "shallowReactive": true, - "shallowReadonly": true, - "shallowRef": true, - "syncRef": true, - "syncRefs": true, - "templateRef": true, - "throttledRef": true, - "throttledWatch": true, - "toRaw": true, - "toReactive": true, - "toRef": true, - "toRefs": true, - "triggerRef": true, - "tryOnBeforeMount": true, - "tryOnBeforeUnmount": true, - "tryOnMounted": true, - "tryOnScopeDispose": true, - "tryOnUnmounted": true, - "unref": true, - "unrefElement": true, - "until": true, - "useActiveElement": true, - "useArrayEvery": true, - "useArrayFilter": true, - "useArrayFind": true, - "useArrayFindIndex": true, - "useArrayJoin": true, - "useArrayMap": true, - "useArrayReduce": true, - "useArraySome": true, - "useAsyncQueue": true, - "useAsyncState": true, - "useAttrs": true, - "useBase64": true, - "useBattery": true, - "useBluetooth": true, - "useBreakpoints": true, - "useBroadcastChannel": true, - "useBrowserLocation": true, - "useCached": true, - "useClipboard": true, - "useColorMode": true, - "useConfirmDialog": true, - "useCounter": true, - "useCssModule": true, - "useCssVar": true, - "useCssVars": true, - "useCurrentElement": true, - "useCycleList": true, - "useDark": true, - "useDateFormat": true, - "useDebounce": true, - "useDebounceFn": true, - "useDebouncedRefHistory": true, - "useDeviceMotion": true, - "useDeviceOrientation": true, - "useDevicePixelRatio": true, - "useDevicesList": true, - "useDisplayMedia": true, - "useDocumentVisibility": true, - "useDraggable": true, - "useDropZone": true, - "useElementBounding": true, - "useElementByPoint": true, - "useElementHover": true, - "useElementSize": true, - "useElementVisibility": true, - "useEventBus": true, - "useEventListener": true, - "useEventSource": true, - "useEyeDropper": true, - "useFavicon": true, - "useFetch": true, - "useFileDialog": true, - "useFileSystemAccess": true, - "useFocus": true, - "useFocusWithin": true, - "useFps": true, - "useFullscreen": true, - "useGamepad": true, - "useGeolocation": true, - "useIdle": true, - "useImage": true, - "useInfiniteScroll": true, - "useIntersectionObserver": true, - "useInterval": true, - "useIntervalFn": true, - "useKeyModifier": true, - "useLastChanged": true, - "useLocalStorage": true, - "useMagicKeys": true, - "useManualRefHistory": true, - "useMediaControls": true, - "useMediaQuery": true, - "useMemoize": true, - "useMemory": true, - "useMounted": true, - "useMouse": true, - "useMouseInElement": true, - "useMousePressed": true, - "useMutationObserver": true, - "useNavigatorLanguage": true, - "useNetwork": true, - "useNow": true, - "useObjectUrl": true, - "useOffsetPagination": true, - "useOnline": true, - "usePageLeave": true, - "useParallax": true, - "usePermission": true, - "usePointer": true, - "usePointerSwipe": true, - "usePreferredColorScheme": true, - "usePreferredDark": true, - "usePreferredLanguages": true, - "useRafFn": true, - "useRefHistory": true, - "useResizeObserver": true, - "useRoute": true, - "useRouter": true, - "useScreenOrientation": true, - "useScreenSafeArea": true, - "useScriptTag": true, - "useScroll": true, - "useScrollLock": true, - "useSessionStorage": true, - "useShare": true, - "useSlots": true, - "useSpeechRecognition": true, - "useSpeechSynthesis": true, - "useStepper": true, - "useStorage": true, - "useStorageAsync": true, - "useStyleTag": true, - "useSupported": true, - "useSwipe": true, - "useTemplateRefsList": true, - "useTextDirection": true, - "useTextSelection": true, - "useTextareaAutosize": true, - "useThrottle": true, - "useThrottleFn": true, - "useThrottledRefHistory": true, - "useTimeAgo": true, - "useTimeout": true, - "useTimeoutFn": true, - "useTimeoutPoll": true, - "useTimestamp": true, - "useTitle": true, - "useToggle": true, - "useTransition": true, - "useUrlSearchParams": true, - "useUserMedia": true, - "useVModel": true, - "useVModels": true, - "useVibrate": true, - "useVirtualList": true, - "useWakeLock": true, - "useWebNotification": true, - "useWebSocket": true, - "useWebWorker": true, - "useWebWorkerFn": true, - "useWindowFocus": true, - "useWindowScroll": true, - "useWindowSize": true, - "watch": true, - "watchArray": true, - "watchAtMost": true, - "watchDebounced": true, - "watchEffect": true, - "watchIgnorable": true, - "watchOnce": true, - "watchPausable": true, - "watchPostEffect": true, - "watchSyncEffect": true, - "watchThrottled": true, - "watchTriggerable": true, - "watchWithFilter": true, - "whenever": true - } -} diff --git a/yshop-drink-vue/.eslintrc.js b/yshop-drink-vue/.eslintrc.js deleted file mode 100644 index a2f6317..0000000 --- a/yshop-drink-vue/.eslintrc.js +++ /dev/null @@ -1,75 +0,0 @@ -// @ts-check -const { defineConfig } = require('eslint-define-config') -module.exports = defineConfig({ - root: true, - env: { - browser: true, - node: true, - es6: true - }, - parser: 'vue-eslint-parser', - parserOptions: { - parser: '@typescript-eslint/parser', - ecmaVersion: 2020, - sourceType: 'module', - jsxPragma: 'React', - ecmaFeatures: { - jsx: true - } - }, - extends: [ - 'plugin:vue/vue3-recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - 'plugin:prettier/recommended', - // '@unocss' - ], - rules: { - 'vue/no-setup-props-destructure': 'off', - 'vue/script-setup-uses-vars': 'error', - 'vue/no-reserved-component-names': 'off', - '@typescript-eslint/ban-ts-ignore': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-empty-function': 'off', - 'vue/custom-event-name-casing': 'off', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-unused-vars': 'off', - 'no-unused-vars': 'off', - 'space-before-function-paren': 'off', - - 'vue/attributes-order': 'off', - 'vue/one-component-per-file': 'off', - 'vue/html-closing-bracket-newline': 'off', - 'vue/max-attributes-per-line': 'off', - 'vue/multiline-html-element-content-newline': 'off', - 'vue/singleline-html-element-content-newline': 'off', - 'vue/attribute-hyphenation': 'off', - 'vue/require-default-prop': 'off', - 'vue/require-explicit-emits': 'off', - 'vue/require-toggle-inside-transition': 'off', - 'vue/html-self-closing': [ - 'error', - { - html: { - void: 'always', - normal: 'never', - component: 'always' - }, - svg: 'always', - math: 'always' - } - ], - 'vue/multi-word-component-names': 'off', - 'vue/no-v-html': 'off', - 'prettier/prettier': 'off', - '@unocss/order': 'off', - '@unocss/order-attributify': 'off' - } -}) diff --git a/yshop-drink-vue/.gitignore b/yshop-drink-vue/.gitignore deleted file mode 100644 index 0f033cc..0000000 --- a/yshop-drink-vue/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -.DS_Store -dist -dist-ssr -*.local -/dist* -*-lock.* -pnpm-debug -auto-*.d.ts -.idea -.history diff --git a/yshop-drink-vue/.prettierignore b/yshop-drink-vue/.prettierignore deleted file mode 100644 index f68ea86..0000000 --- a/yshop-drink-vue/.prettierignore +++ /dev/null @@ -1,11 +0,0 @@ -/node_modules/** -/dist/ -/dist* -/public/* -/docs/* -/vite.config.ts -/src/types/env.d.ts -/src/types/auto-components.d.ts -/src/types/auto-imports.d.ts -/docs/**/* -CHANGELOG diff --git a/yshop-drink-vue/.stylelintignore b/yshop-drink-vue/.stylelintignore deleted file mode 100644 index aa605b4..0000000 --- a/yshop-drink-vue/.stylelintignore +++ /dev/null @@ -1,6 +0,0 @@ -/dist/* -/public/* -public/* -/dist* -/src/types/env.d.ts -/docs/**/* diff --git a/yshop-drink-vue/README.md b/yshop-drink-vue/README.md deleted file mode 100644 index 2b33fb1..0000000 --- a/yshop-drink-vue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -意向点餐系统,类似肯德基点餐小程序模式,支持多门店模式,基础技术Java,uniapp(支持H5、微信小程序) -采用当前流行技术组合的前后端分离点餐系统: SpringBoot、Spring Security OAuth2、MybatisPlus、SpringSecurity、jwt、redis、Vue3的前后端分离的系统, -包含店铺管理、积分兑换、云小票打印、图片素材库、订单管理、多规格sku、积分、优惠券、充值、多门店、微信公众号等功能,更适合企业或个人二次开发. diff --git a/yshop-drink-vue/build/vite/index.ts b/yshop-drink-vue/build/vite/index.ts deleted file mode 100644 index 574a0d6..0000000 --- a/yshop-drink-vue/build/vite/index.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { resolve } from 'path' -import Vue from '@vitejs/plugin-vue' -import VueJsx from '@vitejs/plugin-vue-jsx' -import WindiCSS from 'vite-plugin-windicss' -import progress from 'vite-plugin-progress' -import EslintPlugin from 'vite-plugin-eslint' -import PurgeIcons from 'vite-plugin-purge-icons' -import { ViteEjsPlugin } from 'vite-plugin-ejs' -// @ts-ignore -import ElementPlus from 'unplugin-element-plus/vite' -import AutoImport from 'unplugin-auto-import/vite' -import Components from 'unplugin-vue-components/vite' -import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' -import viteCompression from 'vite-plugin-compression' -import topLevelAwait from 'vite-plugin-top-level-await' -import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus' -import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' - -export function createVitePlugins() { - const root = process.cwd() - - // 路径查找 - function pathResolve(dir: string) { - return resolve(root, '.', dir) - } - - return [ - Vue(), - VueJsx(), - WindiCSS(), - progress(), - PurgeIcons(), - vueSetupExtend(), - ElementPlus({}), - AutoImport({ - include: [ - /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx - /\.vue$/, - /\.vue\?vue/, // .vue - /\.md$/ // .md - ], - imports: [ - 'vue', - 'vue-router', - // 可额外添加需要 autoImport 的组件 - { - '@/hooks/web/useI18n': ['useI18n'], - '@/hooks/web/useMessage': ['useMessage'], - '@/hooks/web/useTable': ['useTable'], - '@/hooks/web/useCrudSchemas': ['useCrudSchemas'], - '@/utils/formRules': ['required'], - '@/utils/dict': ['DICT_TYPE'] - } - ], - dts: 'src/types/auto-imports.d.ts', - resolvers: [ElementPlusResolver()], - eslintrc: { - enabled: false, // Default `false` - filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json` - globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable') - } - }), - Components({ - // 要搜索组件的目录的相对路径 - dirs: ['src/components'], - // 组件的有效文件扩展名 - extensions: ['vue', 'md'], - // 搜索子目录 - deep: true, - include: [/\.vue$/, /\.vue\?vue/], - // 生成自定义 `auto-components.d.ts` 全局声明 - dts: 'src/types/auto-components.d.ts', - // 自定义组件的解析器 - resolvers: [ElementPlusResolver()], - exclude: [/[\\/]node_modules[\\/]/] - }), - EslintPlugin({ - cache: false, - include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件 - }), - VueI18nPlugin({ - runtimeOnly: true, - compositionOnly: true, - include: [resolve(__dirname, 'src/locales/**')] - }), - createSvgIconsPlugin({ - iconDirs: [pathResolve('src/assets/svgs')], - symbolId: 'icon-[dir]-[name]', - svgoOptions: true - }), - viteCompression({ - verbose: true, // 是否在控制台输出压缩结果 - disable: false, // 是否禁用 - threshold: 10240, // 体积大于 threshold 才会被压缩,单位 b - algorithm: 'gzip', // 压缩算法,可选 [ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw'] - ext: '.gz', // 生成的压缩包后缀 - deleteOriginFile: false //压缩后是否删除源文件 - }), - ViteEjsPlugin(), - topLevelAwait({ - // https://juejin.cn/post/7152191742513512485 - // The export name of top-level await promise for each chunk module - promiseExportName: '__tla', - // The function to generate import names of top-level await promise in each chunk module - promiseImportName: (i) => `__tla_${i}` - }) - ] -} diff --git a/yshop-drink-vue/build/vite/optimize.ts b/yshop-drink-vue/build/vite/optimize.ts deleted file mode 100644 index 9d57619..0000000 --- a/yshop-drink-vue/build/vite/optimize.ts +++ /dev/null @@ -1,110 +0,0 @@ -const include = [ - 'qs', - 'url', - 'vue', - 'sass', - 'mitt', - 'axios', - 'pinia', - 'dayjs', - 'qrcode', - 'windicss', - 'vue-router', - 'vue-types', - 'vue-i18n', - 'xe-utils', - 'crypto-js', - 'cropperjs', - 'lodash-es', - 'nprogress', - 'web-storage-cache', - '@iconify/iconify', - '@vueuse/core', - '@zxcvbn-ts/core', - 'echarts/core', - 'echarts/charts', - 'echarts/components', - 'echarts/renderers', - 'echarts-wordcloud', - '@wangeditor/editor', - '@wangeditor/editor-for-vue', - 'element-plus', - 'element-plus/es', - 'element-plus/es/locale/lang/zh-cn', - 'element-plus/es/locale/lang/en', - 'element-plus/es/components/backtop/style/css', - 'element-plus/es/components/form/style/css', - 'element-plus/es/components/radio-group/style/css', - 'element-plus/es/components/radio/style/css', - 'element-plus/es/components/checkbox/style/css', - 'element-plus/es/components/checkbox-group/style/css', - 'element-plus/es/components/switch/style/css', - 'element-plus/es/components/time-picker/style/css', - 'element-plus/es/components/date-picker/style/css', - 'element-plus/es/components/descriptions/style/css', - 'element-plus/es/components/descriptions-item/style/css', - 'element-plus/es/components/link/style/css', - 'element-plus/es/components/tooltip/style/css', - 'element-plus/es/components/drawer/style/css', - 'element-plus/es/components/dialog/style/css', - 'element-plus/es/components/checkbox-button/style/css', - 'element-plus/es/components/option-group/style/css', - 'element-plus/es/components/radio-button/style/css', - 'element-plus/es/components/cascader/style/css', - 'element-plus/es/components/color-picker/style/css', - 'element-plus/es/components/input-number/style/css', - 'element-plus/es/components/rate/style/css', - 'element-plus/es/components/select-v2/style/css', - 'element-plus/es/components/tree-select/style/css', - 'element-plus/es/components/slider/style/css', - 'element-plus/es/components/time-select/style/css', - 'element-plus/es/components/autocomplete/style/css', - 'element-plus/es/components/image-viewer/style/css', - 'element-plus/es/components/upload/style/css', - 'element-plus/es/components/col/style/css', - 'element-plus/es/components/form-item/style/css', - 'element-plus/es/components/alert/style/css', - 'element-plus/es/components/breadcrumb/style/css', - 'element-plus/es/components/select/style/css', - 'element-plus/es/components/input/style/css', - 'element-plus/es/components/breadcrumb-item/style/css', - 'element-plus/es/components/tag/style/css', - 'element-plus/es/components/pagination/style/css', - 'element-plus/es/components/table/style/css', - 'element-plus/es/components/table-v2/style/css', - 'element-plus/es/components/table-column/style/css', - 'element-plus/es/components/card/style/css', - 'element-plus/es/components/row/style/css', - 'element-plus/es/components/button/style/css', - 'element-plus/es/components/menu/style/css', - 'element-plus/es/components/sub-menu/style/css', - 'element-plus/es/components/menu-item/style/css', - 'element-plus/es/components/option/style/css', - 'element-plus/es/components/dropdown/style/css', - 'element-plus/es/components/dropdown-menu/style/css', - 'element-plus/es/components/dropdown-item/style/css', - 'element-plus/es/components/skeleton/style/css', - 'element-plus/es/components/skeleton/style/css', - 'element-plus/es/components/backtop/style/css', - 'element-plus/es/components/menu/style/css', - 'element-plus/es/components/sub-menu/style/css', - 'element-plus/es/components/menu-item/style/css', - 'element-plus/es/components/dropdown/style/css', - 'element-plus/es/components/tree/style/css', - 'element-plus/es/components/dropdown-menu/style/css', - 'element-plus/es/components/dropdown-item/style/css', - 'element-plus/es/components/badge/style/css', - 'element-plus/es/components/breadcrumb/style/css', - 'element-plus/es/components/breadcrumb-item/style/css', - 'element-plus/es/components/image/style/css', - 'element-plus/es/components/collapse-transition/style/css', - 'element-plus/es/components/timeline/style/css', - 'element-plus/es/components/timeline-item/style/css', - 'element-plus/es/components/collapse/style/css', - 'element-plus/es/components/collapse-item/style/css', - 'element-plus/es/components/button-group/style/css' -] - -const exclude = ['@iconify/json'] - -export { include, exclude } diff --git a/yshop-drink-vue/index.html b/yshop-drink-vue/index.html deleted file mode 100644 index 84a9f4f..0000000 --- a/yshop-drink-vue/index.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - %VITE_APP_TITLE% - - - -

- -
-
-
- -
%VITE_APP_TITLE%
-
-
-
-
-
-
-
-
- - - - \ No newline at end of file diff --git a/yshop-drink-vue/package.json b/yshop-drink-vue/package.json deleted file mode 100644 index 012aec7..0000000 --- a/yshop-drink-vue/package.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "name": "yshop-drink-vue3", - "version": "1.2.0", - "description": "基于vue3、vite4、element-plus、typesScript", - "author": "yshop", - "private": false, - "scripts": { - "i": "pnpm install", - "dev": "vite --mode base", - "front": "vite --mode front", - "ts:check": "vue-tsc --noEmit", - "build:pro": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode pro", - "build:dev": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode dev", - "build:stage": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode stage", - "build:test": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode test", - "build:static": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode static", - "build:front": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode front", - "serve:pro": "vite preview --mode pro", - "serve:dev": "vite preview --mode dev", - "serve:test": "vite preview --mode test", - "npm:check": "npx npm-check-updates", - "clean": "npx rimraf node_modules", - "clean:cache": "npx rimraf node_modules/.cache", - "lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src", - "lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\"", - "lint:style": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", - "lint:lint-staged": "lint-staged -c ", - "lint:pretty": "pretty-quick --staged" - }, - "dependencies": { - "@element-plus/icons-vue": "^2.1.0", - "@form-create/designer": "^3.1.0", - "@form-create/element-ui": "^3.1.17", - "@iconify/iconify": "^3.1.0", - "@rollup/rollup-darwin-x64": "^4.13.2", - "@videojs-player/vue": "^1.0.0", - "@vueuse/core": "^10.1.0", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "^5.1.10", - "@zxcvbn-ts/core": "^2.2.1", - "animate.css": "^4.1.1", - "axios": "^1.3.6", - "benz-amr-recorder": "^1.1.5", - "bpmn-js-token-simulation": "^0.10.0", - "camunda-bpmn-moddle": "^7.0.1", - "cropperjs": "^1.5.13", - "crypto-js": "^4.1.1", - "dayjs": "^1.11.7", - "diagram-js": "^11.6.0", - "echarts": "^5.4.2", - "echarts-wordcloud": "^2.1.0", - "element-plus": "^2.4.3", - "fast-xml-parser": "^4.2.2", - "highlight.js": "^11.7.0", - "intro.js": "^7.0.1", - "jsencrypt": "^3.3.2", - "lodash-es": "^4.17.21", - "min-dash": "^4.1.0", - "mitt": "^3.0.0", - "nprogress": "^0.2.0", - "pinia": "^2.1.6", - "qrcode": "^1.5.3", - "qs": "^6.11.1", - "speak-tts": "^2.0.8", - "steady-xml": "^0.1.0", - "url": "^0.11.0", - "video.js": "^7.21.5", - "vue": "3.3.4", - "vue-baidu-map-3x": "^1.0.34", - "vue-i18n": "9.2.2", - "vue-jsonp": "^2.0.0", - "vue-router": "^4.1.6", - "vue-types": "^5.0.2", - "vue-ueditor-wrap": "^3.0.8", - "vue3-print-nb": "^0.1.4", - "vuedraggable": "^4.1.0", - "web-storage-cache": "^1.1.1", - "xe-utils": "^3.5.7", - "xml-js": "^1.6.11" - }, - "devDependencies": { - "@commitlint/cli": "^17.6.1", - "@commitlint/config-conventional": "^17.6.1", - "@iconify/json": "^2.2.54", - "@intlify/unplugin-vue-i18n": "^0.10.0", - "@purge-icons/generated": "^0.9.0", - "@types/intro.js": "^5.1.1", - "@types/lodash-es": "^4.17.7", - "@types/node": "^18.16.0", - "@types/nprogress": "^0.2.0", - "@types/qrcode": "^1.5.0", - "@types/qs": "^6.9.7", - "@typescript-eslint/eslint-plugin": "^5.59.0", - "@typescript-eslint/parser": "^5.59.0", - "@vitejs/plugin-legacy": "^5.3.1", - "@vitejs/plugin-vue": "^5.0.4", - "@vitejs/plugin-vue-jsx": "^3.1.0", - "autoprefixer": "^10.4.14", - "bpmn-js": "^8.9.0", - "bpmn-js-properties-panel": "^0.46.0", - "consola": "^3.1.0", - "eslint": "^8.39.0", - "eslint-config-prettier": "^8.8.0", - "eslint-define-config": "^1.18.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.11.0", - "lint-staged": "^13.2.1", - "postcss": "^8.4.23", - "postcss-html": "^1.5.0", - "postcss-scss": "^4.0.6", - "prettier": "^2.8.8", - "rimraf": "^5.0.0", - "rollup": "^4.12.0", - "sass": "^1.62.0", - "stylelint": "^15.6.0", - "stylelint-config-html": "^1.1.0", - "stylelint-config-recommended": "^12.0.0", - "stylelint-config-standard": "^33.0.0", - "stylelint-order": "^6.0.3", - "terser": "^5.17.1", - "typescript": "5.0.4", - "unplugin-auto-import": "^0.15.3", - "unplugin-element-plus": "^0.7.1", - "unplugin-vue-components": "^0.24.1", - "vite": "5.1.4", - "vite-plugin-compression": "^0.5.1", - "vite-plugin-ejs": "^1.7.0", - "vite-plugin-eslint": "^1.8.1", - "vite-plugin-progress": "^0.0.7", - "vite-plugin-purge-icons": "^0.10.0", - "vite-plugin-svg-icons": "^2.0.1", - "vite-plugin-top-level-await": "^1.3.1", - "vite-plugin-vue-setup-extend-plus": "^0.1.0", - "vite-plugin-windicss": "^1.8.10", - "vue-tsc": "^1.4.4", - "windicss": "^3.5.6" - }, - "engines": { - "node": ">=16.0.0" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://gitee.com/guchengwuyue/yshop-drink" - }, - "bugs": { - "url": "https://gitee.com/guchengwuyue/yshop-drink" - }, - "homepage": "https://gitee.com/guchengwuyue/yshop-drink" -} diff --git a/yshop-drink-vue/postcss.config.js b/yshop-drink-vue/postcss.config.js deleted file mode 100644 index 961986e..0000000 --- a/yshop-drink-vue/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/yshop-drink-vue/prettier.config.js b/yshop-drink-vue/prettier.config.js deleted file mode 100644 index b014bbf..0000000 --- a/yshop-drink-vue/prettier.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - printWidth: 100, // 每行代码长度(默认80) - tabWidth: 2, // 每个tab相当于多少个空格(默认2)ab进行缩进(默认false) - useTabs: false, // 是否使用tab - semi: false, // 声明结尾使用分号(默认true) - vueIndentScriptAndStyle: false, - singleQuote: true, // 使用单引号(默认false) - quoteProps: 'as-needed', - bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true) - trailingComma: 'none', // 多行使用拖尾逗号(默认none) - jsxSingleQuote: false, - // 箭头函数参数括号 默认avoid 可选 avoid| always - // avoid 能省略括号的时候就省略 例如x => x - // always 总是有括号 - arrowParens: 'always', - insertPragma: false, - requirePragma: false, - proseWrap: 'never', - htmlWhitespaceSensitivity: 'strict', - endOfLine: 'auto', - rangeStart: 0 -} diff --git a/yshop-drink-vue/preview/home.png b/yshop-drink-vue/preview/home.png deleted file mode 100755 index ccd4145..0000000 Binary files a/yshop-drink-vue/preview/home.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/anchor/anchor.html b/yshop-drink-vue/public/UEditor/dialogs/anchor/anchor.html deleted file mode 100644 index a6c4066..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/anchor/anchor.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - -
- -
- - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.css b/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.css deleted file mode 100644 index e9d11af..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.css +++ /dev/null @@ -1,681 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 上传附件 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} -#upload .filelist li p.imgWrap.notimage { - margin-top: 0; - width: 111px; - height: 111px; - border: 1px #eeeeee solid; -} -#upload .filelist li p.imgWrap.notimage i.file-preview { - margin-top: 15px; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background-image: url(./images/success.gif) \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #fileList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li div.file-wrapper { - cursor: pointer; - position: absolute; - display: block; - width: 111px; - height: 111px; - border: 1px solid #eee; - background: url("./images/bg.png") repeat; -} -#online li div span.file-title{ - display: block; - padding: 0 3px; - margin: 3px 0 0 0; - font-size: 12px; - height: 13px; - color: #555555; - text-align: center; - width: 107px; - white-space: nowrap; - word-break: break-all; - overflow: hidden; - text-overflow: ellipsis; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif) \9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 在线文件的文件预览图标 */ -i.file-preview { - display: block; - margin: 10px auto; - width: 70px; - height: 70px; - background-image: url("./images/file-icons.png"); - background-image: url("./images/file-icons.gif") \9; - background-position: -140px center; - background-repeat: no-repeat; -} -i.file-preview.file-type-dir{ - background-position: 0 center; -} -i.file-preview.file-type-file{ - background-position: -140px center; -} -i.file-preview.file-type-filelist{ - background-position: -210px center; -} -i.file-preview.file-type-zip, -i.file-preview.file-type-rar, -i.file-preview.file-type-7z, -i.file-preview.file-type-tar, -i.file-preview.file-type-gz, -i.file-preview.file-type-bz2{ - background-position: -280px center; -} -i.file-preview.file-type-xls, -i.file-preview.file-type-xlsx{ - background-position: -350px center; -} -i.file-preview.file-type-doc, -i.file-preview.file-type-docx{ - background-position: -420px center; -} -i.file-preview.file-type-ppt, -i.file-preview.file-type-pptx{ - background-position: -490px center; -} -i.file-preview.file-type-vsd{ - background-position: -560px center; -} -i.file-preview.file-type-pdf{ - background-position: -630px center; -} -i.file-preview.file-type-txt, -i.file-preview.file-type-md, -i.file-preview.file-type-json, -i.file-preview.file-type-htm, -i.file-preview.file-type-xml, -i.file-preview.file-type-html, -i.file-preview.file-type-js, -i.file-preview.file-type-css, -i.file-preview.file-type-php, -i.file-preview.file-type-jsp, -i.file-preview.file-type-asp{ - background-position: -700px center; -} -i.file-preview.file-type-apk{ - background-position: -770px center; -} -i.file-preview.file-type-exe{ - background-position: -840px center; -} -i.file-preview.file-type-ipa{ - background-position: -910px center; -} -i.file-preview.file-type-mp4, -i.file-preview.file-type-swf, -i.file-preview.file-type-mkv, -i.file-preview.file-type-avi, -i.file-preview.file-type-flv, -i.file-preview.file-type-mov, -i.file-preview.file-type-mpg, -i.file-preview.file-type-mpeg, -i.file-preview.file-type-ogv, -i.file-preview.file-type-webm, -i.file-preview.file-type-rm, -i.file-preview.file-type-rmvb{ - background-position: -980px center; -} -i.file-preview.file-type-ogg, -i.file-preview.file-type-wav, -i.file-preview.file-type-wmv, -i.file-preview.file-type-mid, -i.file-preview.file-type-mp3{ - background-position: -1050px center; -} -i.file-preview.file-type-jpg, -i.file-preview.file-type-jpeg, -i.file-preview.file-type-gif, -i.file-preview.file-type-bmp, -i.file-preview.file-type-png, -i.file-preview.file-type-psd{ - background-position: -140px center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.html b/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.html deleted file mode 100644 index 1a52bb9..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
-
- - -
-
- -
-
-
-
- 0% - -
-
-
-
-
-
-
-
-
-
-
-
    -
  • -
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.js b/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.js deleted file mode 100644 index 30c3706..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/attachment/attachment.js +++ /dev/null @@ -1,760 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var uploadFile, - onlineFile; - - window.onload = function () { - initTabs(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - setTabFocus('upload'); - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id') - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'upload': - uploadFile = uploadFile || new UploadFile('queueList'); - break; - case 'online': - onlineFile = onlineFile || new OnlineFile('fileList'); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'upload': - list = uploadFile.getInsertList(); - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineFile.getInsertList(); - break; - } - - editor.execCommand('insertfile', list); - }; - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')), - fileMaxSize = editor.getOpt('fileMaxSize'), - acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('fileActionName')) { - $('#filePickerReady').after($('
').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('fileFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.fileList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - getInsertList: function () { - var i, link, data, list = [], - prefix = editor.getOpt('fileUrlPrefix'); - for (i = 0; i < this.fileList.length; i++) { - data = this.fileList[i]; - link = data.url; - list.push({ - title: data.original || link.substr(link.lastIndexOf('/') + 1), - url: prefix + link - }); - } - return list; - } - }; - - - /* 在线附件 */ - function OnlineFile(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineFile.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - this.initData(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('fileList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getFileData(); - } - }); - /* 选中图片 */ - domUtils.on(this.list, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('fileManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getFileData(); - }, - /* 向后台拉取图片列表数据 */ - getFileData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), { - timeout: 100000, - data: utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - method: 'get', - onsuccess: function (r) { - try { - var json = eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - onerror: function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, filetype, preview, icon, _this = this, - urlPrefix = editor.getOpt('fileManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - icon = document.createElement('span'); - filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1); - - if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) { - preview = document.createElement('img'); - domUtils.on(preview, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - }; - })(preview)); - preview.width = 113; - preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - } else { - var ic = document.createElement('i'), - textSpan = document.createElement('span'); - textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1); - preview = document.createElement('div'); - preview.appendChild(ic); - preview.appendChild(textSpan); - domUtils.addClass(preview, 'file-wrapper'); - domUtils.addClass(textSpan, 'file-title'); - domUtils.addClass(ic, 'file-type-' + filetype); - domUtils.addClass(ic, 'file-preview'); - } - domUtils.addClass(icon, 'icon'); - item.setAttribute('data-url', urlPrefix + list[i].url); - if (list[i].original) { - item.setAttribute('data-title', list[i].original); - } - - item.appendChild(preview); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = []; - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var url = lis[i].getAttribute('data-url'); - var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1); - list.push({ - title: title, - url: url - }); - } - } - return list; - } - }; - - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif deleted file mode 100644 index 9ca4fb6..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png deleted file mode 100644 index 50ac1cb..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif deleted file mode 100644 index 206fede..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif deleted file mode 100644 index 2e3b7a2..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif deleted file mode 100644 index 5d5dec0..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif deleted file mode 100644 index b351a1f..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif deleted file mode 100644 index 26019b0..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif deleted file mode 100644 index bbb65c8..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif deleted file mode 100644 index ccb26fb..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif deleted file mode 100644 index 2e8743a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif deleted file mode 100644 index 5359e46..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif deleted file mode 100644 index e7b8dd2..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif deleted file mode 100644 index e86c1c6..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.gif deleted file mode 100644 index 005a5ac..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.png deleted file mode 100644 index 4b6c444..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/alignicon.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/bg.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.gif deleted file mode 100644 index d8c02c2..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.png deleted file mode 100644 index 3ff82c8..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/file-icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/image.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/progress.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.gif b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.png b/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/attachment/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/background/background.css b/yshop-drink-vue/public/UEditor/dialogs/background/background.css deleted file mode 100644 index 43200aa..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/background/background.css +++ /dev/null @@ -1,94 +0,0 @@ -.wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative} -.tabbody{height:225px;} -.tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;} -.tabbody .focus { display: block;} - -body{font-size: 12px;color: #888;overflow: hidden;} -input,label{vertical-align:middle} -.clear{clear: both;} -.pl{padding-left: 18px;padding-left: 23px\9;} - -#imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;} -#imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;} -#imageList img {cursor: pointer;border: 2px solid white;} - -.bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;} -.content div{margin: 10px 0 10px 5px;} -.content .iptradio{margin: 0px 5px 5px 0px;} -.txt{width:280px;} - -.wrapcolor{height: 19px;} -div.color{float: left;margin: 0;} -#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;} -div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;} -#custom input{height: 15px;min-height: 15px;width:20px;} -#repeatType{width:100px;} - - -/* 图片管理样式 */ -#imgManager { - width: 100%; - height: 225px; -} -#imgManager #imageList{ - width: 100%; - overflow-x: hidden; - overflow-y: auto; -} -#imgManager ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#imgManager li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 9px 0 0 19px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#imgManager li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#imgManager li img { - cursor: pointer; -} -#imgManager li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#imgManager li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#imgManager li.selected .icon { - background-image: url(images/success.png); - background-position: 75px 75px; -} -#imgManager li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/background/background.html b/yshop-drink-vue/public/UEditor/dialogs/background/background.html deleted file mode 100644 index 8def8a7..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/background/background.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - -
    -
    - - -
    -
    -
    -
    - -
    -
    - - -
    -
    -
    - : -
    -
    -
    -
    -
    - -
    -
    - : -
    -
    - :x:px  y:px -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/background/background.js b/yshop-drink-vue/public/UEditor/dialogs/background/background.js deleted file mode 100644 index 9d63bad..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/background/background.js +++ /dev/null @@ -1,376 +0,0 @@ -(function () { - - var onlineImage, - backupStyle = editor.queryCommandValue('background'); - - window.onload = function () { - initTabs(); - initColorSelector(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - for (var j = 0; j < tabs.length; j++) { - if(tabs[j] == target){ - tabs[j].className = "focus"; - var contentId = tabs[j].getAttribute('data-content-id'); - $G(contentId).style.display = "block"; - if(contentId == 'imgManager') { - initImagePanel(); - } - }else { - tabs[j].className = ""; - $G(tabs[j].getAttribute('data-content-id')).style.display = "none"; - } - } - }); - } - } - - /* 初始化颜色设置 */ - function initColorSelector () { - var obj = editor.queryCommandValue('background'); - if (obj) { - var color = obj['background-color'], - repeat = obj['background-repeat'] || 'repeat', - image = obj['background-image'] || '', - position = obj['background-position'] || 'center center', - pos = position.split(' '), - x = parseInt(pos[0]) || 0, - y = parseInt(pos[1]) || 0; - - if(repeat == 'no-repeat' && (x || y)) repeat = 'self'; - - image = image.match(/url[\s]*\(([^\)]*)\)/); - image = image ? image[1]:''; - updateFormState('colored', color, image, repeat, x, y); - } else { - updateFormState(); - } - - var updateHandler = function () { - updateFormState(); - updateBackground(); - } - domUtils.on($G('nocolorRadio'), 'click', updateBackground); - domUtils.on($G('coloredRadio'), 'click', updateHandler); - domUtils.on($G('url'), 'keyup', function(){ - if($G('url').value && $G('alignment').style.display == "none") { - utils.each($G('repeatType').children, function(item){ - item.selected = ('repeat' == item.getAttribute('value') ? 'selected':false); - }); - } - updateHandler(); - }); - domUtils.on($G('repeatType'), 'change', updateHandler); - domUtils.on($G('x'), 'keyup', updateBackground); - domUtils.on($G('y'), 'keyup', updateBackground); - - initColorPicker(); - } - - /* 初始化颜色选择器 */ - function initColorPicker() { - var me = editor, - cp = $G("colorPicker"); - - /* 生成颜色选择器ui对象 */ - var popup = new UE.ui.Popup({ - content: new UE.ui.ColorPicker({ - noColorText: me.getLang("clearColor"), - editor: me, - onpickcolor: function (t, color) { - updateFormState('colored', color); - updateBackground(); - UE.ui.Popup.postHide(); - }, - onpicknocolor: function (t, color) { - updateFormState('colored', 'transparent'); - updateBackground(); - UE.ui.Popup.postHide(); - } - }), - editor: me, - onhide: function () { - } - }); - - /* 设置颜色选择器 */ - domUtils.on(cp, "click", function () { - popup.showAnchor(this); - }); - domUtils.on(document, 'mousedown', function (evt) { - var el = evt.target || evt.srcElement; - UE.ui.Popup.postHide(el); - }); - domUtils.on(window, 'scroll', function () { - UE.ui.Popup.postHide(); - }); - } - - /* 初始化在线图片列表 */ - function initImagePanel() { - onlineImage = onlineImage || new OnlineImage('imageList'); - } - - /* 更新背景色设置面板 */ - function updateFormState (radio, color, url, align, x, y) { - var nocolorRadio = $G('nocolorRadio'), - coloredRadio = $G('coloredRadio'); - - if(radio) { - nocolorRadio.checked = (radio == 'colored' ? false:'checked'); - coloredRadio.checked = (radio == 'colored' ? 'checked':false); - } - if(color) { - domUtils.setStyle($G("colorPicker"), "background-color", color); - } - - if(url && /^\//.test(url)) { - var a = document.createElement('a'); - a.href = url; - browser.ie && (a.href = a.href); - url = browser.ie ? a.href:(a.protocol + '//' + a.host + a.pathname + a.search + a.hash); - } - - if(url || url === '') { - $G('url').value = url; - } - if(align) { - utils.each($G('repeatType').children, function(item){ - item.selected = (align == item.getAttribute('value') ? 'selected':false); - }); - } - if(x || y) { - $G('x').value = parseInt(x) || 0; - $G('y').value = parseInt(y) || 0; - } - - $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '':'none'; - $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '':'none'; - } - - /* 更新背景颜色 */ - function updateBackground () { - if ($G('coloredRadio').checked) { - var color = domUtils.getStyle($G("colorPicker"), "background-color"), - bgimg = $G("url").value, - align = $G("repeatType").value, - backgroundObj = { - "background-repeat": "no-repeat", - "background-position": "center center" - }; - - if (color) backgroundObj["background-color"] = color; - if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')'; - if (align == 'self') { - backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px"; - } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') { - backgroundObj["background-repeat"] = align; - } - - editor.execCommand('background', backgroundObj); - } else { - editor.execCommand('background', null); - } - } - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.id = 'imageListUl'; - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode, - nodes = $G('imageListUl').childNodes; - - if (li.tagName.toLowerCase() == 'li') { - updateFormState('nocolor', null, ''); - for (var i = 0, node; node = nodes[i++];) { - if (node == li && !domUtils.hasClass(node, 'selected')) { - domUtils.addClass(node, 'selected'); - updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat'); - } else { - domUtils.removeClasses(node, 'selected'); - } - } - updateBackground(); - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - floatStyle: align - }); - } - - } - return list; - } - }; - - dialog.onok = function () { - updateBackground(); - editor.fireEvent('saveScene'); - }; - dialog.oncancel = function () { - editor.execCommand('background', backupStyle); - }; - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/background/images/bg.png b/yshop-drink-vue/public/UEditor/dialogs/background/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/background/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/background/images/success.png b/yshop-drink-vue/public/UEditor/dialogs/background/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/background/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/chart.config.js b/yshop-drink-vue/public/UEditor/dialogs/charts/chart.config.js deleted file mode 100644 index 6483c96..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/charts/chart.config.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 图表配置文件 - * */ - - -//不同类型的配置 -var typeConfig = [ - { - chart: { - type: 'line' - }, - plotOptions: { - line: { - dataLabels: { - enabled: false - }, - enableMouseTracking: true - } - } - }, { - chart: { - type: 'line' - }, - plotOptions: { - line: { - dataLabels: { - enabled: true - }, - enableMouseTracking: false - } - } - }, { - chart: { - type: 'area' - } - }, { - chart: { - type: 'bar' - } - }, { - chart: { - type: 'column' - } - }, { - chart: { - plotBackgroundColor: null, - plotBorderWidth: null, - plotShadow: false - }, - plotOptions: { - pie: { - allowPointSelect: true, - cursor: 'pointer', - dataLabels: { - enabled: true, - color: '#000000', - connectorColor: '#000000', - formatter: function() { - return ''+ this.point.name +': '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %'; - } - } - } - } - } -]; diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.css b/yshop-drink-vue/public/UEditor/dialogs/charts/charts.css deleted file mode 100644 index cec35c7..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.css +++ /dev/null @@ -1,165 +0,0 @@ -html, body { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow-x: hidden; -} - -.main { - width: 100%; - overflow: hidden; -} - -.table-view { - height: 100%; - float: left; - margin: 20px; - width: 40%; -} - -.table-view .table-container { - width: 100%; - margin-bottom: 50px; - overflow: scroll; -} - -.table-view th { - padding: 5px 10px; - background-color: #F7F7F7; -} - -.table-view td { - width: 50px; - text-align: center; - padding:0; -} - -.table-container input { - width: 40px; - padding: 5px; - border: none; - outline: none; -} - -.table-view caption { - font-size: 18px; - text-align: left; -} - -.charts-view { - /*margin-left: 49%!important;*/ - width: 50%; - margin-left: 49%; - height: 400px; -} - -.charts-container { - border-left: 1px solid #c3c3c3; -} - -.charts-format fieldset { - padding-left: 20px; - margin-bottom: 50px; -} - -.charts-format legend { - padding-left: 10px; - padding-right: 10px; -} - -.format-item-container { - padding: 20px; -} - -.format-item-container label { - display: block; - margin: 10px 0; -} - -.charts-format .data-item { - border: 1px solid black; - outline: none; - padding: 2px 3px; -} - -/* 图表类型 */ - -.charts-type { - margin-top: 50px; - height: 300px; -} - -.scroll-view { - border: 1px solid #c3c3c3; - border-left: none; - border-right: none; - overflow: hidden; -} - -.scroll-container { - margin: 20px; - width: 100%; - overflow: hidden; -} - -.scroll-bed { - width: 10000px; - _margin-top: 20px; - -webkit-transition: margin-left .5s ease; - -moz-transition: margin-left .5s ease; - transition: margin-left .5s ease; -} - -.view-box { - display: inline-block; - *display: inline; - *zoom: 1; - margin-right: 20px; - border: 2px solid white; - line-height: 0; - overflow: hidden; - cursor: pointer; -} - -.view-box img { - border: 1px solid #cecece; -} - -.view-box.selected { - border-color: #7274A7; -} - -.button-container { - margin-bottom: 20px; - text-align: center; -} - -.button-container a { - display: inline-block; - width: 100px; - height: 25px; - line-height: 25px; - border: 1px solid #c2ccd1; - margin-right: 30px; - text-decoration: none; - color: black; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} - -.button-container a:HOVER { - background: #fcfcfc; -} - -.button-container a:ACTIVE { - border-top-color: #c2ccd1; - box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1); -} - -.edui-charts-not-data { - height: 100px; - line-height: 100px; - text-align: center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.html b/yshop-drink-vue/public/UEditor/dialogs/charts/charts.html deleted file mode 100644 index 735274f..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - chart - - - - - -
    -
    -

    -
    -

    -
    -
    -
    - -
    - - -
    -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    - -

    -
    -
    -
    - -
    - -

    -
    -
    -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.js b/yshop-drink-vue/public/UEditor/dialogs/charts/charts.js deleted file mode 100644 index 29c0c03..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/charts/charts.js +++ /dev/null @@ -1,519 +0,0 @@ -/* - * 图片转换对话框脚本 - **/ - -var tableData = [], - //编辑器页面table - editorTable = null, - chartsConfig = window.typeConfig, - resizeTimer = null, - //初始默认图表类型 - currentChartType = 0; - -window.onload = function () { - - editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true); - - //未找到表格, 显示错误页面 - if ( !editorTable ) { - document.body.innerHTML = "
    未找到数据
    "; - return; - } - - //初始化图表类型选择 - initChartsTypeView(); - renderTable( editorTable ); - initEvent(); - initUserConfig( editorTable.getAttribute( "data-chart" ) ); - $( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" ); - updateViewType( currentChartType ); - - dialog.addListener( "resize", function () { - - if ( resizeTimer != null ) { - window.clearTimeout( resizeTimer ); - } - - resizeTimer = window.setTimeout( function () { - - resizeTimer = null; - - renderCharts(); - - }, 500 ); - - } ); - -}; - -function initChartsTypeView () { - - var contents = []; - - for ( var i = 0, len = chartsConfig.length; i
    ' ); - - } - - $( "#scrollBed" ).html( contents.join( "" ) ); - -} - -//渲染table, 以便用户修改数据 -function renderTable ( table ) { - - var tableHtml = []; - - //构造数据 - for ( var i = 0, row; row = table.rows[ i ]; i++ ) { - - tableData[ i ] = []; - tableHtml[ i ] = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = getCellValue( cell ); - - if ( i > 0 && j > 0 ) { - value = +value; - } - - if ( i === 0 || j === 0 ) { - tableHtml[ i ].push( ''+ value +'' ); - } else { - tableHtml[ i ].push( '' ); - } - - tableData[ i ][ j ] = value; - - } - - tableHtml[ i ] = tableHtml[ i ].join( "" ); - - } - - //draw 表格 - $( "#tableContainer" ).html( ''+ tableHtml.join( "" ) +'
    ' ); - -} - -/* - * 根据表格已有的图表属性初始化当前图表属性 - */ -function initUserConfig ( config ) { - - var parsedConfig = {}; - - if ( !config ) { - return; - } - - config = config.split( ";" ); - - $.each( config, function ( index, item ) { - - item = item.split( ":" ); - parsedConfig[ item[ 0 ] ] = item[ 1 ]; - - } ); - - setUserConfig( parsedConfig ); - -} - -function initEvent () { - - var cacheValue = null, - //图表类型数 - typeViewCount = chartsConfig.length- 1, - $chartsTypeViewBox = $( '#scrollBed .view-box' ); - - $( ".charts-format" ).delegate( ".format-ctrl", "change", function () { - - renderCharts(); - - } ) - - $( ".table-view" ).delegate( ".data-item", "focus", function () { - - cacheValue = this.value; - - } ).delegate( ".data-item", "blur", function () { - - if ( this.value !== cacheValue ) { - renderCharts(); - } - - cacheValue = null; - - } ); - - $( "#buttonContainer" ).delegate( "a", "click", function (e) { - - e.preventDefault(); - - if ( this.getAttribute( "data-title" ) === 'prev' ) { - - if ( currentChartType > 0 ) { - currentChartType--; - updateViewType( currentChartType ); - } - - } else { - - if ( currentChartType < typeViewCount ) { - currentChartType++; - updateViewType( currentChartType ); - } - - } - - } ); - - //图表类型变化 - $( '#scrollBed' ).delegate( ".view-box", "click", function (e) { - - var index = $( this ).attr( "data-chart-type" ); - $chartsTypeViewBox.removeClass( "selected" ); - $( $chartsTypeViewBox[ index ] ).addClass( "selected" ); - - currentChartType = index | 0; - - //饼图, 禁用部分配置 - if ( currentChartType === chartsConfig.length - 1 ) { - - disableNotPieConfig(); - - //启用完整配置 - } else { - - enableNotPieConfig(); - - } - - renderCharts(); - - } ); - -} - -function renderCharts () { - - var data = collectData(); - - $('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: data.title, - x: -20 //center - }, - subtitle: { - text: data.subTitle, - x: -20 - }, - xAxis: { - title: { - text: data.xTitle - }, - categories: data.categories - }, - yAxis: { - title: { - text: data.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: data.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: data.series - - } )); - -} - -function updateViewType ( index ) { - - $( "#scrollBed" ).css( 'marginLeft', -index*324+'px' ); - -} - -function collectData () { - - var form = document.forms[ 'data-form' ], - data = null; - - if ( currentChartType !== chartsConfig.length - 1 ) { - - data = getSeriesAndCategories(); - $.extend( data, getUserConfig() ); - - //饼图数据格式 - } else { - data = getSeriesForPieChart(); - data.title = form[ 'title' ].value; - data.suffix = form[ 'unit' ].value; - } - - return data; - -} - -/** - * 获取用户配置信息 - */ -function getUserConfig () { - - var form = document.forms[ 'data-form' ], - info = { - title: form[ 'title' ].value, - subTitle: form[ 'sub-title' ].value, - xTitle: form[ 'x-title' ].value, - yTitle: form[ 'y-title' ].value, - suffix: form[ 'unit' ].value, - //数据对齐方式 - tableDataFormat: getTableDataFormat (), - //饼图提示文字 - tip: $( "#tipInput" ).val() - }; - - return info; - -} - -function setUserConfig ( config ) { - - var form = document.forms[ 'data-form' ]; - - config.title && ( form[ 'title' ].value = config.title ); - config.subTitle && ( form[ 'sub-title' ].value = config.subTitle ); - config.xTitle && ( form[ 'x-title' ].value = config.xTitle ); - config.yTitle && ( form[ 'y-title' ].value = config.yTitle ); - config.suffix && ( form[ 'unit' ].value = config.suffix ); - config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true ); - config.tip && ( form[ 'tip' ].value = config.tip ); - currentChartType = config.chartType || 0; - -} - -function getSeriesAndCategories () { - - var form = document.forms[ 'data-form' ], - series = [], - categories = [], - tmp = [], - tableData = getTableData(); - - //反转数据 - if ( getTableDataFormat() === "-1" ) { - - for ( var i = 0, len = tableData.length; i < len; i++ ) { - - for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) { - - if ( !tmp[ j ] ) { - tmp[ j ] = []; - } - - tmp[ j ][ i ] = tableData[ i ][ j ]; - - } - - } - - tableData = tmp; - - } - - categories = tableData[0].slice( 1 ); - - for ( var i = 1, data; data = tableData[ i ]; i++ ) { - - series.push( { - name: data[ 0 ], - data: data.slice( 1 ) - } ); - - } - - return { - series: series, - categories: categories - }; - -} - -/* - * 获取数据源数据对齐方式 - */ -function getTableDataFormat () { - - var form = document.forms[ 'data-form' ], - items = form['charts-format']; - - return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value; - -} - -/* - * 禁用非饼图类型的配置项 - */ -function disableNotPieConfig() { - - updateConfigItem( 'disable' ); - -} - -/* - * 启用非饼图类型的配置项 - */ -function enableNotPieConfig() { - - updateConfigItem( 'enable' ); - -} - -function updateConfigItem ( value ) { - - var table = $( "#showTable" )[ 0 ], - isDisable = value === 'disable' ? true : false; - - //table中的input处理 - for ( var i = 2 , row; row = table.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - $( "input", cell ).attr( "disabled", isDisable ); - - } - - } - - //其他项处理 - $( "input.not-pie-item" ).attr( "disabled", isDisable ); - $( "#tipInput" ).attr( "disabled", !isDisable ) - -} - -/* - * 获取饼图数据 - * 饼图的数据只取第一行的 - **/ -function getSeriesForPieChart () { - - var series = { - type: 'pie', - name: $("#tipInput").val(), - data: [] - }, - tableData = getTableData(); - - - for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) { - - var title = tableData[ 0 ][ j ], - val = tableData[ 1 ][ j ]; - - series.data.push( [ title, val ] ); - - } - - return { - series: [ series ] - }; - -} - -function getTableData () { - - var table = document.getElementById( "showTable" ), - xCount = table.rows[0].cells.length - 1, - values = getTableInputValue(); - - for ( var i = 0, value; value = values[ i ]; i++ ) { - - tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ]; - - } - - return tableData; - -} - -function getTableInputValue () { - - var table = document.getElementById( "showTable" ), - inputs = table.getElementsByTagName( "input" ), - values = []; - - for ( var i = 0, input; input = inputs[ i ]; i++ ) { - values.push( input.value | 0 ); - } - - return values; - -} - -function getCellValue ( cell ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - -} - - -//dialog确认事件 -dialog.onok = function () { - - //收集信息 - var form = document.forms[ 'data-form' ], - info = getUserConfig(); - - //添加图表类型 - info.chartType = currentChartType; - - //同步表格数据到编辑器 - syncTableData(); - - //执行图表命令 - editor.execCommand( 'charts', info ); - -}; - -/* - * 同步图表编辑视图的表格数据到编辑器里的原始表格 - */ -function syncTableData () { - - var tableData = getTableData(); - - for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - cell.innerHTML = tableData[ i ] [ j ]; - - } - - } - -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts0.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts0.png deleted file mode 100644 index 9485e5e..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts0.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts1.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts1.png deleted file mode 100644 index b5a0039..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts1.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts2.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts2.png deleted file mode 100644 index 7c91a39..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts2.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts3.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts3.png deleted file mode 100644 index a6bc29b..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts3.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts4.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts4.png deleted file mode 100644 index 742006a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts4.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts5.png b/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts5.png deleted file mode 100644 index c49a296..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/charts/images/charts5.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.css b/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.css deleted file mode 100644 index e0a56dd..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.css +++ /dev/null @@ -1,43 +0,0 @@ -.jd img{ - background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.pp img{ - background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:25px;height:25px;display:block; -} -.ldw img{ - background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.tsj img{ - background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.cat img{ - background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.bb img{ - background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.youa img{ - background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} - -.smileytable td {height: 37px;} -#tabPanel{margin-left:5px;overflow: hidden;} -#tabContent {float:left;background:#FFFFFF;} -#tabContent div{display: none;width:480px;overflow:hidden;} -#tabIconReview.show{left:17px;display:block;} -.menuFocus{background:#ACCD3C;} -.menuDefault{background:#FFFFFF;} -#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;} -img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;} - -.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;} -.tabbody table{width: 100%;} -.tabbody td{border:1px solid #BAC498;} -.tabbody td span{display: block;zoom:1;padding:0 4px;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.html b/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.html deleted file mode 100644 index 363d64c..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - -
    -
    - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.js b/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.js deleted file mode 100644 index aa01380..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/emotion/emotion.js +++ /dev/null @@ -1,186 +0,0 @@ -window.onload = function () { - editor.setOpt({ - emotionLocalization:false - }); - - emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; - emotion.SmileyBox = createTabList( emotion.tabNum ); - emotion.tabExist = createArr( emotion.tabNum ); - - initImgName(); - initEvtHandler( "tabHeads" ); -}; - -function initImgName() { - for ( var pro in emotion.SmilmgName ) { - var tempName = emotion.SmilmgName[pro], - tempBox = emotion.SmileyBox[pro], - tempStr = ""; - - if ( tempBox.length ) return; - for ( var i = 1; i <= tempName[1]; i++ ) { - tempStr = tempName[0]; - if ( i < 10 ) tempStr = tempStr + '0'; - tempStr = tempStr + i + '.gif'; - tempBox.push( tempStr ); - } - } -} - -function initEvtHandler( conId ) { - var tabHeads = $G( conId ); - for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) { - var tabObj = tabHeads.childNodes[i]; - if ( tabObj.nodeType == 1 ) { - domUtils.on( tabObj, "click", (function ( index ) { - return function () { - switchTab( index ); - }; - })( j ) ); - j++; - } - } - switchTab( 0 ); - $G( "tabIconReview" ).style.display = 'none'; -} - -function InsertSmiley( url, evt ) { - var obj = { - src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url - }; - obj._src = obj.src; - editor.execCommand( 'insertimage', obj ); - if ( !evt.ctrlKey ) { - dialog.popup.hide(); - } -} - -function switchTab( index ) { - - autoHeight( index ); - if ( emotion.tabExist[index] == 0 ) { - emotion.tabExist[index] = 1; - createTab( 'tab' + index ); - } - //获取呈现元素句柄数组 - var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ), - tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ), - i = 0, L = tabHeads.length; - //隐藏所有呈现元素 - for ( ; i < L; i++ ) { - tabHeads[i].className = ""; - tabBodys[i].style.display = "none"; - } - //显示对应呈现元素 - tabHeads[index].className = "focus"; - tabBodys[index].style.display = "block"; -} - -function autoHeight( index ) { - var iframe = dialog.getDom( "iframe" ), - parent = iframe.parentNode.parentNode; - switch ( index ) { - case 0: - iframe.style.height = "380px"; - parent.style.height = "392px"; - break; - case 1: - iframe.style.height = "220px"; - parent.style.height = "232px"; - break; - case 2: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 3: - iframe.style.height = "300px"; - parent.style.height = "312px"; - break; - case 4: - iframe.style.height = "140px"; - parent.style.height = "152px"; - break; - case 5: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 6: - iframe.style.height = "230px"; - parent.style.height = "242px"; - break; - default: - - } -} - - -function createTab( tabName ) { - var faceVersion = "?v=1.1", //版本号 - tab = $G( tabName ), //获取将要生成的Div句柄 - imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 - positionLine = 11 / 2, //中间数 - iWidth = iHeight = 35, //图片长宽 - iColWidth = 3, //表格剩余空间的显示比例 - tableCss = emotion.imageCss[tabName], - cssOffset = emotion.imageCssOffset[tabName], - textHTML = [''], - i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage, - sUrl, realUrl, posflag, offset, infor; - - for ( ; i < imgNum; ) { - textHTML.push( '' ); - for ( var j = 0; j < imgColNum; j++, i++ ) { - faceImage = emotion.SmileyBox[tabName][i]; - if ( faceImage ) { - sUrl = imagePath + faceImage + faceVersion; - realUrl = imagePath + faceImage; - posflag = j < positionLine ? 0 : 1; - offset = cssOffset * i * (-1) - 1; - infor = emotion.SmileyInfor[tabName][i]; - - textHTML.push( '' ); - } - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML.push( '' ); - textHTML.push( '' ); - textHTML.push( '' ); - } else { - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML = textHTML.join( "" ); - tab.innerHTML = textHTML; -} - -function over( td, srcPath, posFlag ) { - td.style.backgroundColor = "#ACCD3C"; - $G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")"; - if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show"; - $G( "tabIconReview" ).style.display = 'block'; -} - -function out( td ) { - td.style.backgroundColor = "transparent"; - var tabIconRevew = $G( "tabIconReview" ); - tabIconRevew.className = ""; - tabIconRevew.style.display = 'none'; -} - -function createTabList( tabNum ) { - var obj = {}; - for ( var i = 0; i < tabNum; i++ ) { - obj["tab" + i] = []; - } - return obj; -} - -function createArr( tabNum ) { - var arr = []; - for ( var i = 0; i < tabNum; i++ ) { - arr[i] = 0; - } - return arr; -} - diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/0.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/0.gif deleted file mode 100644 index 6964168..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/0.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/bface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/bface.gif deleted file mode 100644 index 14fe618..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/bface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/cface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/cface.gif deleted file mode 100644 index bff947f..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/cface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/fface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/fface.gif deleted file mode 100644 index 0d8a6af..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/fface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/jxface2.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/jxface2.gif deleted file mode 100644 index a959c90..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/jxface2.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/neweditor-tab-bg.png b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/neweditor-tab-bg.png deleted file mode 100644 index 8f398b0..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/neweditor-tab-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/tface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/tface.gif deleted file mode 100644 index 1354f54..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/tface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/wface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/wface.gif deleted file mode 100644 index 5667160..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/wface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/yface.gif b/yshop-drink-vue/public/UEditor/dialogs/emotion/images/yface.gif deleted file mode 100644 index 51608be..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/emotion/images/yface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/gmap/gmap.html b/yshop-drink-vue/public/UEditor/dialogs/gmap/gmap.html deleted file mode 100644 index 4319a6f..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/gmap/gmap.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - -
    - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/help/help.css b/yshop-drink-vue/public/UEditor/dialogs/help/help.css deleted file mode 100644 index 39ade49..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/help/help.css +++ /dev/null @@ -1,7 +0,0 @@ -.wrapper{width: 370px;margin: 10px auto;zoom: 1;} -.tabbody{height: 360px;} -.tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} -.tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} -.tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} -.tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} -.tabbody table thead{font-weight: bold;line-height: 25px;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/help/help.html b/yshop-drink-vue/public/UEditor/dialogs/help/help.html deleted file mode 100644 index 0d6f9ef..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/help/help.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - 帮助 - - - - - -
    -
    - - -
    -
    -
    -

    UEditor

    -

    -

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ctrl+b
    ctrl+c
    ctrl+x
    ctrl+v
    ctrl+y
    ctrl+z
    ctrl+i
    ctrl+u
    ctrl+a
    shift+enter
    alt+z
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/help/help.js b/yshop-drink-vue/public/UEditor/dialogs/help/help.js deleted file mode 100644 index 4ad9e76..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/help/help.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:06 - * To change this template use File | Settings | File Templates. - */ -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - body.onclick = function(){ - this.style.zoom = 1; - }; - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -switchTab("helptab"); - -document.getElementById('version').innerHTML = parent.UE.version; \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/image.css b/yshop-drink-vue/public/UEditor/dialogs/image/image.css deleted file mode 100644 index 33310ac..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/image/image.css +++ /dev/null @@ -1,894 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 图片对齐方式 */ -.alignBar{ - float:right; - margin-top: 5px; - position: relative; -} - -.alignBar .algnLabel{ - float:left; - height: 20px; - line-height: 20px; -} - -.alignBar #alignIcon{ - zoom:1; - _display: inline; - display: inline-block; - position: relative; -} -.alignBar #alignIcon span{ - float: left; - cursor: pointer; - display: block; - width: 19px; - height: 17px; - margin-right: 3px; - margin-left: 3px; - background-image: url(./images/alignicon.jpg); -} -.alignBar #alignIcon .none-align{ - background-position: 0 -18px; -} -.alignBar #alignIcon .left-align{ - background-position: -20px -18px; -} -.alignBar #alignIcon .right-align{ - background-position: -40px -18px; -} -.alignBar #alignIcon .center-align{ - background-position: -60px -18px; -} -.alignBar #alignIcon .none-align.focus{ - background-position: 0 0; -} -.alignBar #alignIcon .left-align.focus{ - background-position: -20px 0; -} -.alignBar #alignIcon .right-align.focus{ - background-position: -40px 0; -} -.alignBar #alignIcon .center-align.focus{ - background-position: -60px 0; -} - - - - -/* 远程图片样式 */ -#remote { - z-index: 200; -} - -#remote .top{ - width: 100%; - margin-top: 25px; -} -#remote .left{ - display: block; - float: left; - width: 300px; - height:10px; -} -#remote .right{ - display: block; - float: right; - width: 300px; - height:10px; -} -#remote .row{ - margin-left: 20px; - clear: both; - height: 40px; -} - -#remote .row label{ - text-align: center; - width: 50px; - zoom:1; - _display: inline; - display:inline-block; - vertical-align: middle; -} -#remote .row label.algnLabel{ - float: left; - -} - -#remote input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#remote input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#remote #url{ - width: 500px; - margin-bottom: 2px; -} -#remote #width, -#remote #height{ - width: 20px; - margin-left: 2px; - margin-right: 2px; -} -#remote #border, -#remote #vhSpace, -#remote #title{ - width: 180px; - margin-right: 5px; -} -#remote #lock{ -} -#remote #lockicon{ - zoom: 1; - _display:inline; - display: inline-block; - width: 20px; - height: 20px; - background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat; - vertical-align: middle; -} -#remote #preview{ - clear: both; - width: 260px; - height: 240px; - z-index: 9999; - margin-top: 10px; - background-color: #eee; - overflow: hidden; -} - -/* 上传图片 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; - position: relative; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background: url(./images/success.gif) no-repeat right bottom \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #imageList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif)\9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 图片搜索样式 */ -#search .searchBar { - width: 100%; - height: 30px; - margin: 10px 0 5px 0; - padding: 0; -} - -#search input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#search input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#search input.searchTxt { - margin-left:5px; - padding-left: 5px; - background: #FFF; - width: 300px; - *width: 260px; - height: 21px; - line-height: 21px; - float: left; - dislay: block; -} - -#search .searchType { - width: 65px; - height: 28px; - padding:0; - line-height: 28px; - border: 1px solid #d7d7d7; - border-radius: 0; - vertical-align: top; - margin-left: 5px; - float: left; - dislay: block; -} - -#search #searchBtn, -#search #searchReset { - display: inline-block; - margin-bottom: 0; - margin-right: 5px; - padding: 4px 10px; - font-weight: 400; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - font-size: 14px; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: top; - float: right; -} - -#search #searchBtn { - color: white; - border-color: #285e8e; - background-color: #3b97d7; -} -#search #searchReset { - color: #333; - border-color: #ccc; - background-color: #fff; -} -#search #searchBtn:hover { - background-color: #3276b1; -} -#search #searchReset:hover { - background-color: #eee; -} - -#search .msg { - margin-left: 5px; -} - -#search .searchList{ - width: 100%; - height: 300px; - overflow: hidden; - clear: both; -} -#search .searchList ul{ - margin:0; - padding:0; - list-style:none; - clear: both; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - zoom: 1; - position: relative; -} - -#search .searchList li { - list-style:none; - float: left; - display: block; - width: 115px; - margin: 5px 10px 5px 20px; - *margin: 5px 10px 5px 15px; - padding:0; - font-size: 12px; - box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - position: relative; - vertical-align: top; - text-align: center; - overflow: hidden; - cursor: pointer; - filter: alpha(Opacity=100); - -moz-opacity: 1; - opacity: 1; - border: 2px solid #eee; -} - -#search .searchList li.selected { - filter: alpha(Opacity=40); - -moz-opacity: 0.4; - opacity: 0.4; - border: 2px solid #00a0e9; -} - -#search .searchList li p { - background-color: #eee; - margin: 0; - padding: 0; - position: relative; - width:100%; - height:115px; - overflow: hidden; -} - -#search .searchList li p img { - cursor: pointer; - border: 0; -} - -#search .searchList li a { - color: #999; - border-top: 1px solid #F2F2F2; - background: #FAFAFA; - text-align: center; - display: block; - padding: 0 5px; - width: 105px; - height:32px; - line-height:32px; - white-space:nowrap; - text-overflow:ellipsis; - text-decoration: none; - overflow: hidden; - word-break: break-all; -} - -#search .searchList a:hover { - text-decoration: underline; - color: #333; -} -#search .searchList .clearFloat{ - clear: both; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/image.html b/yshop-drink-vue/public/UEditor/dialogs/image/image.html deleted file mode 100644 index 81f45ad..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/image/image.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    - -   px -   px - -
    -
    - - px -
    -
    - - px -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    - - -
    -
    -
    - - - - -
    -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/image.js b/yshop-drink-vue/public/UEditor/dialogs/image/image.js deleted file mode 100644 index b078d6a..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/image/image.js +++ /dev/null @@ -1,1148 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var remoteImage, - uploadImage, - onlineImage, - searchImage; - - window.onload = function () { - initTabs(); - initAlign(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - var img = editor.selection.getRange().getClosedNode(); - if (img && img.tagName && img.tagName.toLowerCase() == 'img') { - setTabFocus('remote'); - } else { - setTabFocus('upload'); - } - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id'); - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'remote': - remoteImage = remoteImage || new RemoteImage(); - break; - case 'upload': - setAlign(editor.getOpt('imageInsertAlign')); - uploadImage = uploadImage || new UploadImage('queueList'); - break; - case 'online': - setAlign(editor.getOpt('imageManagerInsertAlign')); - onlineImage = onlineImage || new OnlineImage('imageList'); - onlineImage.reset(); - break; - case 'search': - setAlign(editor.getOpt('imageManagerInsertAlign')); - searchImage = searchImage || new SearchImage(); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var remote = false, list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'remote': - list = remoteImage.getInsertList(); - break; - case 'upload': - list = uploadImage.getInsertList(); - var count = uploadImage.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineImage.getInsertList(); - break; - case 'search': - list = searchImage.getInsertList(); - remote = true; - break; - } - - if(list) { - editor.execCommand('insertimage', list); - remote && editor.fireEvent("catchRemoteImage"); - } - }; - } - - - /* 初始化对其方式的点击事件 */ - function initAlign(){ - /* 点击align图标 */ - domUtils.on($G("alignIcon"), 'click', function(e){ - var target = e.target || e.srcElement; - if(target.className && target.className.indexOf('-align') != -1) { - setAlign(target.getAttribute('data-align')); - } - }); - } - - /* 设置对齐方式 */ - function setAlign(align){ - align = align || 'none'; - var aligns = $G("alignIcon").children; - for(i = 0; i < aligns.length; i++){ - if(aligns[i].getAttribute('data-align') == align) { - domUtils.addClass(aligns[i], 'focus'); - $G("align").value = aligns[i].getAttribute('data-align'); - } else { - domUtils.removeClasses(aligns[i], 'focus'); - } - } - } - /* 获取对齐方式 */ - function getAlign(){ - var align = $G("align").value || 'none'; - return align == 'none' ? '':align; - } - - - /* 在线图片 */ - function RemoteImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - RemoteImage.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - }, - initContainer: function () { - this.dom = { - 'url': $G('url'), - 'width': $G('width'), - 'height': $G('height'), - 'border': $G('border'), - 'vhSpace': $G('vhSpace'), - 'title': $G('title'), - 'align': $G('align') - }; - var img = editor.selection.getRange().getClosedNode(); - if (img) { - this.setImage(img); - } - }, - initEvents: function () { - var _this = this, - locker = $G('lock'); - - /* 改变url */ - domUtils.on($G("url"), 'keyup', updatePreview); - domUtils.on($G("border"), 'keyup', updatePreview); - domUtils.on($G("title"), 'keyup', updatePreview); - - domUtils.on($G("width"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('height').value = Math.round(this.value / proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("height"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('width').value = Math.round(this.value * proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("lock"), 'change', function(){ - var proportion = parseInt($G("width").value) /parseInt($G("height").value); - locker.setAttribute('data-proportion', proportion); - }); - - function updatePreview(){ - _this.setPreview(); - } - }, - updateLocker: function(){ - var width = $G('width').value, - height = $G('height').value, - locker = $G('lock'); - if(width && height && width == parseInt(width) && height == parseInt(height)) { - locker.disabled = false; - locker.title = ''; - } else { - locker.checked = false; - locker.disabled = 'disabled'; - locker.title = lang.remoteLockError; - } - }, - setImage: function(img){ - /* 不是正常的图片 */ - if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; - - var wordImgFlag = img.getAttribute("word_img"), - src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), - align = editor.queryCommandValue("imageFloat"); - - /* 防止onchange事件循环调用 */ - if (src !== $G("url").value) $G("url").value = src; - if(src) { - /* 设置表单内容 */ - $G("width").value = img.width || ''; - $G("height").value = img.height || ''; - $G("border").value = img.getAttribute("border") || '0'; - $G("vhSpace").value = img.getAttribute("vspace") || '0'; - $G("title").value = img.title || img.alt || ''; - setAlign(align); - this.setPreview(); - this.updateLocker(); - } - }, - getData: function(){ - var data = {}; - for(var k in this.dom){ - data[k] = this.dom[k].value; - } - return data; - }, - setPreview: function(){ - var url = $G('url').value, - ow = parseInt($G('width').value, 10) || 0, - oh = parseInt($G('height').value, 10) || 0, - border = parseInt($G('border').value, 10) || 0, - title = $G('title').value, - preview = $G('preview'), - width, - height; - - url = utils.unhtmlForUrl(url); - title = utils.unhtml(title); - - width = ((!ow || !oh) ? preview.offsetWidth:Math.min(ow, preview.offsetWidth)); - width = width+(border*2) > preview.offsetWidth ? width:(preview.offsetWidth - (border*2)); - height = (!ow || !oh) ? '':width*oh/ow; - - if(url) { - preview.innerHTML = ''; - } - }, - getInsertList: function () { - var data = this.getData(); - if(data['url']) { - return [{ - src: data['url'], - _src: data['url'], - width: data['width'] || '', - height: data['height'] || '', - border: data['border'] || '', - floatStyle: data['align'] || '', - vspace: data['vhSpace'] || '', - title: data['title'] || '', - alt: data['title'] || '', - style: "width:" + data['width'] + "px;height:" + data['height'] + "px;" - }]; - } else { - return []; - } - } - }; - - - - /* 上传图片 */ - function UploadImage(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadImage.prototype = { - init: function () { - this.imageList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')), - acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), - imageMaxSize = editor.getOpt('imageMaxSize'), - imageCompressBorder = editor.getOpt('imageCompressBorder'); - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('imageActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - accept: { - title: 'Images', - extensions: acceptExtensions, - mimeTypes: 'image/*' - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('imageFieldName'), - duplicate: true, - fileSingleSizeLimit: imageMaxSize, // 默认 2 M - compress: editor.getOpt('imageCompressEnable') ? { - width: imageCompressBorder, - height: imageCompressBorder, - // 图片质量,只有type为`image/jpeg`的时候才有效。 - quality: 90, - // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false. - allowMagnify: false, - // 是否允许裁剪。 - crop: false, - // 是否保留头部meta信息。 - preserveHeaders: true - }:false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.imageList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - destroy: function () { - this.$wrap.remove(); - }, - getInsertList: function () { - var i, data, list = [], - align = getAlign(), - prefix = editor.getOpt('imageUrlPrefix'); - for (i = 0; i < this.imageList.length; i++) { - data = this.imageList[i]; - list.push({ - src: prefix + data.url, - _src: prefix + data.url, - title: data.title, - alt: data.original, - floatStyle: align - }); - } - return list; - } - }; - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - - } - return list; - } - }; - - /*搜索图片 */ - function SearchImage() { - this.init(); - } - SearchImage.prototype = { - init: function () { - this.initEvents(); - }, - initEvents: function(){ - var _this = this; - - /* 点击搜索按钮 */ - domUtils.on($G('searchBtn'), 'click', function(){ - var key = $G('searchTxt').value; - if(key && key != lang.searchRemind) { - _this.getImageData(); - } - }); - /* 点击清除妞 */ - domUtils.on($G('searchReset'), 'click', function(){ - $G('searchTxt').value = lang.searchRemind; - $G('searchListUl').innerHTML = ''; - $G('searchType').selectedIndex = 0; - }); - /* 搜索框聚焦 */ - domUtils.on($G('searchTxt'), 'focus', function(){ - var key = $G('searchTxt').value; - if(key && key == lang.searchRemind) { - $G('searchTxt').value = ''; - } - }); - /* 搜索框回车键搜索 */ - domUtils.on($G('searchTxt'), 'keydown', function(e){ - var keyCode = e.keyCode || e.which; - if (keyCode == 13) { - $G('searchBtn').click(); - } - }); - - /* 选中图片 */ - domUtils.on($G('searchList'), 'click', function(e){ - var target = e.target || e.srcElement, - li = target.parentNode.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - encodeToGb2312:function (str){ - if(!str) return ''; - var strOut = "", - z = 'D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9'; - - for (var i = 0; i < str.length; i++) { - var c = str.charAt(i), - code = str.charCodeAt(i); - if (c == " ") strOut += "+"; - else if (code >= 19968 && code <= 40869) { - var index = code - 19968; - strOut += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2); - } else { - strOut += "%" + str.charCodeAt(i).toString(16); - } - } - return strOut; - }, - /* 改变图片大小 */ - scale: function (img, w, h) { - var ow = img.width, - oh = img.height; - - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - }, - getImageData: function(){ - var _this = this, - key = $G('searchTxt').value, - type = $G('searchType').value, - keepOriginName = editor.options.keepOriginName ? "1" : "0", - url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + _this.encodeToGb2312(key) + type + "&keeporiginname=" + keepOriginName + "&" + +new Date; - - $G('searchListUl').innerHTML = lang.searchLoading; - ajax.request(url, { - 'dataType': 'jsonp', - 'charset': 'GB18030', - 'onsuccess':function(json){ - var list = []; - if(json && json.data) { - for(var i = 0; i < json.data.length; i++) { - if(json.data[i].objURL) { - list.push({ - title: json.data[i].fromPageTitleEnc, - src: json.data[i].objURL, - url: json.data[i].fromURL - }); - } - } - } - _this.setList(list); - }, - 'onerror':function(){ - $G('searchListUl').innerHTML = lang.searchRetry; - } - }); - }, - /* 添加图片到列表界面上 */ - setList: function (list) { - var i, item, p, img, link, _this = this, - listUl = $G('searchListUl'); - - listUl.innerHTML = ''; - if(list.length) { - for (i = 0; i < list.length; i++) { - item = document.createElement('li'); - p = document.createElement('p'); - img = document.createElement('img'); - link = document.createElement('a'); - - img.onload = function () { - _this.scale(this, 113, 113); - }; - img.width = 113; - img.setAttribute('src', list[i].src); - - link.href = list[i].url; - link.target = '_blank'; - link.title = list[i].title; - link.innerHTML = list[i].title; - - p.appendChild(img); - item.appendChild(p); - item.appendChild(link); - listUl.appendChild(item); - } - } else { - listUl.innerHTML = lang.searchRetry; - } - }, - getInsertList: function () { - var child, - src, - align = getAlign(), - list = [], - items = $G('searchListUl').children; - for(var i = 0; i < items.length; i++) { - child = items[i].firstChild && items[i].firstChild.firstChild; - if(child.tagName && child.tagName.toLowerCase() == 'img' && domUtils.hasClass(items[i], 'selected')) { - src = child.src; - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - } - return list; - } - }; - -})(); diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/alignicon.jpg b/yshop-drink-vue/public/UEditor/dialogs/image/images/alignicon.jpg deleted file mode 100644 index 754755b..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/alignicon.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/bg.png b/yshop-drink-vue/public/UEditor/dialogs/image/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.gif b/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.png b/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/image.png b/yshop-drink-vue/public/UEditor/dialogs/image/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/progress.png b/yshop-drink-vue/public/UEditor/dialogs/image/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/success.gif b/yshop-drink-vue/public/UEditor/dialogs/image/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/image/images/success.png b/yshop-drink-vue/public/UEditor/dialogs/image/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/image/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/insertframe/insertframe.html b/yshop-drink-vue/public/UEditor/dialogs/insertframe/insertframe.html deleted file mode 100644 index 8271f0b..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/insertframe/insertframe.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - - -
    px
    px
    - -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/internal.js b/yshop-drink-vue/public/UEditor/dialogs/internal.js deleted file mode 100644 index 0c419f4..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/internal.js +++ /dev/null @@ -1,80 +0,0 @@ -(function () { - /* eslint-disable */ - if (window.frameElement.id) { - let parent = window.parent, - - dialog = parent.$EDITORUI[window.frameElement.id.replace(/_iframe$/, '')], - - editor = dialog.editor, - - UE = parent.UE, - - domUtils = UE.dom.domUtils, - - utils = UE.utils, - - browser = UE.browser, - /* eslint-disable */ - ajax = UE.ajax, - - $G = function (id) { - return document.getElementById(id) - }, - $focus = function (node) { - setTimeout(function () { - if (browser.ie) { - var r = node.createTextRange(); - r.collapse(false); - r.select(); - } else { - node.focus() - } - }, 0) - }; - window.nowEditor = {editor: editor, dialog: dialog}; - utils.loadFile(document, { - href: editor.options.themePath + editor.options.theme + '/dialogbase.css?cache=' + Math.random(), - tag: 'link', - type: 'text/css', - rel: 'stylesheet' - }); - var lang = editor.getLang(dialog.className.split('-')[2]); - if (lang) { - domUtils.on(window, 'load', function () { - var langImgPath = editor.options.langPath + editor.options.lang + '/images/'; - // 针对静态资源 - for (var i in lang['static']) { - var dom = $G(i); - if (!dom) continue; - let tagName = dom.tagName, - content = lang['static'][i]; - if (content.src) { - // clone - content = utils.extend({}, content, false); - content.src = langImgPath + content.src; - } - if (content.style) { - content = utils.extend({}, content, false); - content.style = content.style.replace(/url\s*\(/g, 'url(' + langImgPath) - } - switch (tagName.toLowerCase()) { - case 'var': - dom.parentNode.replaceChild(document.createTextNode(content), dom); - break; - case 'select': - var ops = dom.options; - for (var j = 0, oj; oj = ops[j];) { - oj.innerHTML = content.options[j++]; - } - for (var p in content) { - p != 'options' && dom.setAttribute(p, content[p]); - } - break; - default : - domUtils.setAttributes(dom, content); - } - } - }); - } - } -})(); diff --git a/yshop-drink-vue/public/UEditor/dialogs/link/link.html b/yshop-drink-vue/public/UEditor/dialogs/link/link.html deleted file mode 100644 index 317a650..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/link/link.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/map/map.html b/yshop-drink-vue/public/UEditor/dialogs/map/map.html deleted file mode 100644 index 9857f2f..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/map/map.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - -
    - - - - - - - - - -
    ::
    -
    - -
    - - - - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/map/show.html b/yshop-drink-vue/public/UEditor/dialogs/map/show.html deleted file mode 100644 index 4ed955d..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/map/show.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - 百度地图API自定义地图 - - - - - - - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/music/music.css b/yshop-drink-vue/public/UEditor/dialogs/music/music.css deleted file mode 100644 index 82d6118..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/music/music.css +++ /dev/null @@ -1,30 +0,0 @@ -.wrapper{margin: 5px 10px;} - -.searchBar{height:30px;padding:7px 0 3px;text-align:center;} -.searchBtn{font-size:13px;height:24px;} - -.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;} - -.listPanel{overflow: hidden;} -.panelon{display:block;} -.paneloff{display:none} - -.page{width:220px;margin:20px auto;overflow: hidden;} -.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center} -.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff; - border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;} - -.m-box{width:460px;} -.m-m{float: left;line-height: 20px;height: 20px;} -.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;} -.m-l{float:left;width:40px; } -.m-t{float:left;width:140px;} -.m-s{float:left;width:110px;} -.m-z{float:left;width:100px;} -.m-try-t{float: left;width: 60px;;} - -.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;} -.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;} - -.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat} -.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/music/music.html b/yshop-drink-vue/public/UEditor/dialogs/music/music.html deleted file mode 100644 index 7dad7a7..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/music/music.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - 插入音乐 - - - - -
    - -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/music/music.js b/yshop-drink-vue/public/UEditor/dialogs/music/music.js deleted file mode 100644 index e43ea54..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/music/music.js +++ /dev/null @@ -1,192 +0,0 @@ -function Music() { - this.init(); -} -(function () { - var pages = [], - panels = [], - selectedItem = null; - Music.prototype = { - total:70, - pageSize:10, - dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common", - playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf", - - init:function () { - var me = this; - domUtils.on($G("J_searchName"), "keyup", function (event) { - var e = window.event || event; - if (e.keyCode == 13) { - me.dosearch(); - } - }); - domUtils.on($G("J_searchBtn"), "click", function () { - me.dosearch(); - }); - }, - callback:function (data) { - var me = this; - me.data = data.song_list; - setTimeout(function () { - $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list); - }, 300); - }, - dosearch:function () { - var me = this; - selectedItem = null; - var key = $G('J_searchName').value; - if (utils.trim(key) == "")return false; - key = encodeURIComponent(key); - me._sent(key); - }, - doselect:function (i) { - var me = this; - if (typeof i == 'object') { - selectedItem = i; - } else if (typeof i == 'number') { - selectedItem = me.data[i]; - } - }, - onpageclick:function (id) { - var me = this; - for (var i = 0; i < pages.length; i++) { - $G(pages[i]).className = 'pageoff'; - $G(panels[i]).className = 'paneloff'; - } - $G('page' + id).className = 'pageon'; - $G('panel' + id).className = 'panelon'; - }, - listenTest:function (elem) { - var me = this, - view = $G('J_preview'), - is_play_action = (elem.className == 'm-try'), - old_trying = me._getTryingElem(); - - if (old_trying) { - old_trying.className = 'm-try'; - view.innerHTML = ''; - } - if (is_play_action) { - elem.className = 'm-trying'; - view.innerHTML = me._buildMusicHtml(me._getUrl(true)); - } - }, - _sent:function (param) { - var me = this; - $G('J_resultBar').innerHTML = '
    '; - - utils.loadFile(document, { - src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(), - tag:"script", - type:"text/javascript", - defer:"defer" - }); - }, - _removeHtml:function (str) { - var reg = /<\s*\/?\s*[^>]*\s*>/gi; - return str.replace(reg, ""); - }, - _getUrl:function (isTryListen) { - var me = this; - var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist=' - + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra=' - + encodeURIComponent(me._removeHtml(selectedItem.album_title)) - + '&autoPlay='+isTryListen+'' + '&loop=true'; - return me.playerUrl + "?" + param; - }, - _getTryingElem:function () { - var s = $G('J_listPanel').getElementsByTagName('span'); - - for (var i = 0; i < s.length; i++) { - if (s[i].className == 'm-trying') - return s[i]; - } - return null; - }, - _buildMusicHtml:function (playerUrl) { - var html = ' 12) - return s.substring(0, 5) + '...'; - if (!s) s = " "; - return s; - }, - _rebuildData:function (data) { - var me = this, - newData = [], - d = me.pageSize, - itembox; - for (var i = 0; i < data.length; i++) { - if ((i + d) % d == 0) { - itembox = []; - newData.push(itembox) - } - itembox.push(data[i]); - } - return newData; - }, - _renderTemplate:function (data) { - var me = this; - if (data.length == 0)return '
    ' + lang.emptyTxt + '
    '; - data = me._rebuildData(data); - var s = [], p = [], t = []; - s.push('
    '); - p.push('
    '); - for (var i = 0, tmpList; tmpList = data[i++];) { - panels.push('panel' + i); - pages.push('page' + i); - if (i == 1) { - s.push('
    '); - if (data.length != 1) { - t.push('
    ' + (i ) + '
    '); - } - } else { - s.push('
    '); - t.push('
    ' + (i ) + '
    '); - } - s.push('
    '); - s.push('
    ' + lang.chapter + '' + lang.singer - + '' + lang.special + '' + lang.listenTest + '
    '); - for (var j = 0, tmpObj; tmpObj = tmpList[j++];) { - s.push(''); - } - s.push('
    '); - s.push('
    '); - } - t.reverse(); - p.push(t.join('')); - s.push('
    '); - p.push('
    '); - return s.join('') + p.join(''); - }, - exec:function () { - var me = this; - if (selectedItem == null) return; - $G('J_preview').innerHTML = ""; - editor.execCommand('music', { - url:me._getUrl(false), - width:400, - height:95 - }); - } - }; -})(); - - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/preview/preview.html b/yshop-drink-vue/public/UEditor/dialogs/preview/preview.html deleted file mode 100644 index ba3af27..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/preview/preview.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - -
    - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/addimg.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/addimg.png deleted file mode 100644 index 03a8713..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/addimg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/brush.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/brush.png deleted file mode 100644 index efa6fdb..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/brush.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimg.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimg.png deleted file mode 100644 index 5a892e4..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimgH.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimgH.png deleted file mode 100644 index 2f0c5c9..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/delimgH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/empty.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/empty.png deleted file mode 100644 index 0375196..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/empty.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/emptyH.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/emptyH.png deleted file mode 100644 index 838ca72..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/emptyH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/eraser.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/eraser.png deleted file mode 100644 index 63e87ce..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/eraser.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redo.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redo.png deleted file mode 100644 index 12cd9bb..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redo.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redoH.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redoH.png deleted file mode 100644 index d9f33d3..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/redoH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scale.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scale.png deleted file mode 100644 index 935a3f3..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scale.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scaleH.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scaleH.png deleted file mode 100644 index 72e64a9..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/scaleH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/size.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/size.png deleted file mode 100644 index 8366845..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/size.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undo.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undo.png deleted file mode 100644 index 084c7cc..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undo.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undoH.png b/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undoH.png deleted file mode 100644 index fde7eb3..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/scrawl/images/undoH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.css b/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.css deleted file mode 100644 index 4ea30c6..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.css +++ /dev/null @@ -1,72 +0,0 @@ -/*common -*/ -body{margin: 0;} -table{width:100%;} -table td{padding:2px 4px;vertical-align: middle;} -a{text-decoration: none;} -em{font-style: normal;} -.border_style1{border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -/*module -*/ -.main{margin: 8px;overflow: hidden;} - -.hot{float:left;height:335px;} -.drawBoard{position: relative; cursor: crosshair;} -.brushBorad{position: absolute;left:0;top:0;z-index: 998;} -.picBoard{border: none;text-align: center;line-height: 300px;cursor: default;} -.operateBar{margin-top:10px;font-size:12px;text-align: center;} -.operateBar span{margin-left: 10px;} - -.drawToolbar{float:right;width:110px;height:300px;overflow: hidden;} -.colorBar{margin-top:10px;font-size: 12px;text-align: center;} -.colorBar a{display:block;width: 10px;height: 10px;border:1px solid #1006F1;border-radius: 3px; box-shadow:2px 2px 5px #d3d6da;opacity: 0.3} -.sectionBar{margin-top:15px;font-size: 12px;text-align: center;} -.sectionBar a{display:inline-block;width:10px;height:12px;color: #888;text-indent: -999px;opacity: 0.3} -.size1{background: url('images/size.png') 1px center no-repeat ;} -.size2{background: url('images/size.png') -10px center no-repeat;} -.size3{background: url('images/size.png') -22px center no-repeat;} -.size4{background: url('images/size.png') -35px center no-repeat;} - -.addImgH{position: relative;} -.addImgH_form{position: absolute;left: 18px;top: -1px;width: 75px;height: 21px;opacity: 0;cursor: pointer;} -.addImgH_form input{width: 100%;} -/*scrawl遮罩层 -*/ -.maskLayerNull{display: none;} -.maskLayer{position: absolute;top:0;left:0;width: 100%; height: 100%;opacity: 0.7; - background-color: #fff;text-align:center;font-weight:bold;line-height:300px;z-index: 1000;} -/*btn state -*/ -.previousStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undoH.png');cursor: pointer;} -.previousStepH .text{color:#888;cursor:pointer;} -.previousStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undo.png');cursor:default;} -.previousStep .text{color:#ccc;cursor:default;} - -.nextStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redoH.png');cursor: pointer;} -.nextStepH .text{color:#888;cursor:pointer;} -.nextStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redo.png');cursor:default;} -.nextStep .text{color:#ccc;cursor:default;} - -.clearBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/emptyH.png');cursor: pointer;} -.clearBoardH .text{color:#888;cursor:pointer;} -.clearBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/empty.png');cursor:default;} -.clearBoard .text{color:#ccc;cursor:default;} - -.scaleBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scaleH.png');cursor: pointer;} -.scaleBoardH .text{color:#888;cursor:pointer;} -.scaleBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scale.png');cursor:default;} -.scaleBoard .text{color:#ccc;cursor:default;} - -.removeImgH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimgH.png');cursor: pointer;} -.removeImgH .text{color:#888;cursor:pointer;} -.removeImg .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimg.png');cursor:default;} -.removeImg .text{color:#ccc;cursor:default;} - -.addImgH .icon{vertical-align:top;display: inline-block;width:16px;height:16px;background-image: url('images/addimg.png')} -.addImgH .text{color:#888;cursor:pointer;} -/*icon -*/ -.brushIcon{display: inline-block;width:16px;height:16px;background-image: url('images/brush.png')} -.eraserIcon{display: inline-block;width:16px;height:16px;background-image: url('images/eraser.png')} - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.html b/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.html deleted file mode 100644 index 13f6ab1..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - 1 - 3 - 5 - 7 -
    -
    - - 1 - 3 - 5 - 7 -
    -
    -
    - - -
    - -
    - -
    -
    -
    - - - - -
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.js b/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.js deleted file mode 100644 index 45667ac..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/scrawl/scrawl.js +++ /dev/null @@ -1,671 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-5-22 - * Time: 上午11:38 - * To change this template use File | Settings | File Templates. - */ -var scrawl = function (options) { - options && this.initOptions(options); -}; -(function () { - var canvas = $G("J_brushBoard"), - context = canvas.getContext('2d'), - drawStep = [], //undo redo存储 - drawStepIndex = 0; //undo redo指针 - - scrawl.prototype = { - isScrawl:false, //是否涂鸦 - brushWidth:-1, //画笔粗细 - brushColor:"", //画笔颜色 - - initOptions:function (options) { - var me = this; - me.originalState(options);//初始页面状态 - me._buildToolbarColor(options.colorList);//动态生成颜色选择集合 - - me._addBoardListener(options.saveNum);//添加画板处理 - me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理 - me._addColorBarListener();//添加颜色选择处理 - me._addBrushBarListener();//添加画笔大小处理 - me._addEraserBarListener();//添加橡皮大小处理 - me._addAddImgListener();//添加增添背景图片处理 - me._addRemoveImgListenter();//删除背景图片处理 - me._addScalePicListenter();//添加缩放处理 - me._addClearSelectionListenter();//添加清楚选中状态处理 - - me._originalColorSelect(options.drawBrushColor);//初始化颜色选中 - me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中 - me._clearSelection();//清楚选中状态 - }, - - originalState:function (options) { - var me = this; - - me.brushWidth = options.drawBrushSize;//同步画笔粗细 - me.brushColor = options.drawBrushColor;//同步画笔颜色 - - context.lineWidth = me.brushWidth;//初始画笔大小 - context.strokeStyle = me.brushColor;//初始画笔颜色 - context.fillStyle = "transparent";//初始画布背景颜色 - context.lineCap = "round";//去除锯齿 - context.fill(); - }, - _buildToolbarColor:function (colorList) { - var tmp = null, arr = []; - arr.push(""); - for (var i = 0, color; color = colorList[i++];) { - if ((i - 1) % 5 == 0) { - if (i != 1) { - arr.push(""); - } - arr.push(""); - } - tmp = '#' + color; - arr.push(""); - } - arr.push("
    "); - $G("J_colorBar").innerHTML = arr.join(""); - }, - - _addBoardListener:function (saveNum) { - var me = this, - margin = 0, - startX = -1, - startY = -1, - isMouseDown = false, - isMouseMove = false, - isMouseUp = false, - buttonPress = 0, button, flag = ''; - - margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left")); - drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); - drawStepIndex += 1; - - domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) { - button = browser.webkit ? e.which : buttonPress; - switch (e.type) { - case 'mousedown': - buttonPress = 1; - flag = 1; - isMouseDown = true; - isMouseUp = false; - isMouseMove = false; - me.isScrawl = true; - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - break; - case 'mousemove' : - if (!flag && button == 0) { - return; - } - if (!flag && button) { - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - flag = 1; - } - if (isMouseUp || !isMouseDown) { - return; - } - var endX = e.clientX - margin, - endY = e.clientY - margin; - - context.moveTo(startX, startY); - context.lineTo(endX, endY); - context.stroke(); - startX = endX; - startY = endY; - isMouseMove = true; - break; - case 'mouseup': - buttonPress = 0; - if (!isMouseDown)return; - if (!isMouseMove) { - context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false); - context.fillStyle = context.strokeStyle; - context.fill(); - } - context.closePath(); - me._saveOPerate(saveNum); - isMouseDown = false; - isMouseMove = false; - isMouseUp = true; - startX = -1; - startY = -1; - break; - case 'mouseout': - flag = ''; - buttonPress = 0; - if (button == 1) return; - context.closePath(); - break; - } - }); - }, - _addOPerateListener:function (saveNum) { - var me = this; - domUtils.on($G("J_previousStep"), "click", function () { - if (drawStepIndex > 1) { - drawStepIndex -= 1; - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex - 1], 0, 0); - me.btn2Highlight("J_nextStep"); - drawStepIndex == 1 && me.btn2disable("J_previousStep"); - } - }); - domUtils.on($G("J_nextStep"), "click", function () { - if (drawStepIndex > 0 && drawStepIndex < drawStep.length) { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex], 0, 0); - drawStepIndex += 1; - me.btn2Highlight("J_previousStep"); - drawStepIndex == drawStep.length && me.btn2disable("J_nextStep"); - } - }); - domUtils.on($G("J_clearBoard"), "click", function () { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - drawStep = []; - me._saveOPerate(saveNum); - drawStepIndex = 1; - me.isScrawl = false; - me.btn2disable("J_previousStep"); - me.btn2disable("J_nextStep"); - me.btn2disable("J_clearBoard"); - }); - }, - _addColorBarListener:function () { - var me = this; - domUtils.on($G("J_colorBar"), "click", function (e) { - var target = me.getTarget(e), - color = target.title; - if (!!color) { - me._addColorSelect(target); - - me.brushColor = color; - context.globalCompositeOperation = "source-over"; - context.lineWidth = me.brushWidth; - context.strokeStyle = color; - } - }); - }, - _addBrushBarListener:function () { - var me = this; - domUtils.on($G("J_brushBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.globalCompositeOperation = "source-over"; - context.lineWidth = parseInt(size); - context.strokeStyle = me.brushColor; - me.brushWidth = context.lineWidth; - } - }); - }, - _addEraserBarListener:function () { - var me = this; - domUtils.on($G("J_eraserBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.lineWidth = parseInt(size); - context.globalCompositeOperation = "destination-out"; - context.strokeStyle = "#FFF"; - } - }); - }, - _addAddImgListener:function () { - var file = $G("J_imgTxt"); - if (!window.FileReader) { - $G("J_addImg").style.display = 'none'; - $G("J_removeImg").style.display = 'none'; - $G("J_sacleBoard").style.display = 'none'; - } - domUtils.on(file, "change", function (e) { - var frm = file.parentNode; - addMaskLayer(lang.backgroundUploading); - - var target = e.target || e.srcElement, - reader = new FileReader(); - reader.onload = function(evt){ - var target = evt.target || evt.srcElement; - ue_callback(target.result, 'SUCCESS'); - }; - reader.readAsDataURL(target.files[0]); - frm.reset(); - }); - }, - _addRemoveImgListenter:function () { - var me = this; - domUtils.on($G("J_removeImg"), "click", function () { - $G("J_picBoard").innerHTML = ""; - me.btn2disable("J_removeImg"); - me.btn2disable("J_sacleBoard"); - }); - }, - _addScalePicListenter:function () { - domUtils.on($G("J_sacleBoard"), "click", function () { - var picBoard = $G("J_picBoard"), - scaleCon = $G("J_scaleCon"), - img = picBoard.children[0]; - - if (img) { - if (!scaleCon) { - picBoard.style.cssText = "position:relative;z-index:1;"+picBoard.style.cssText; - img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;"; - var scale = new ScaleBoy(); - picBoard.appendChild(scale.init()); - scale.startScale(img); - } else { - if (scaleCon.style.visibility == "visible") { - scaleCon.style.visibility = "hidden"; - picBoard.style.position = ""; - picBoard.style.zIndex = ""; - } else { - scaleCon.style.visibility = "visible"; - picBoard.style.cssText += "position:relative;z-index:1"; - } - } - } - }); - }, - _addClearSelectionListenter:function () { - var doc = document; - domUtils.on(doc, 'mousemove', function (e) { - if (browser.ie && browser.version < 11) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - }); - }, - _clearSelection:function () { - var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"]; - for (var i = 0, group; group = list[i++];) { - domUtils.unSelectable($G(group)); - } - }, - - _saveOPerate:function (saveNum) { - var me = this; - if (drawStep.length <= saveNum) { - if(drawStepIndex"); - } - scale.innerHTML = arr.join(""); - return scale; - } - - var rect = [ - //[left, top, width, height] - [1, 1, -1, -1], - [0, 1, 0, -1], - [0, 1, 1, -1], - [1, 0, -1, 0], - [0, 0, 1, 0], - [1, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - ScaleBoy.prototype = { - init:function () { - _appendStyle(); - var me = this, - scale = me.dom = _getDom(); - - me.scaleMousemove.fp = me; - domUtils.on(scale, 'mousedown', function (e) { - var target = e.target || e.srcElement; - me.start = {x:e.clientX, y:e.clientY}; - if (target.className.indexOf('hand') != -1) { - me.dir = target.className.replace('hand', ''); - } - domUtils.on(document.body, 'mousemove', me.scaleMousemove); - e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; - }); - domUtils.on(document.body, 'mouseup', function (e) { - if (me.start) { - domUtils.un(document.body, 'mousemove', me.scaleMousemove); - if (me.moved) { - me.updateScaledElement({position:{x:scale.style.left, y:scale.style.top}, size:{w:scale.style.width, h:scale.style.height}}); - } - delete me.start; - delete me.moved; - delete me.dir; - } - }); - return scale; - }, - startScale:function (objElement) { - var me = this, Idom = me.dom; - - Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;'; - me.scalingElement = objElement; - }, - updateScaledElement:function (objStyle) { - var cur = this.scalingElement, - pos = objStyle.position, - size = objStyle.size; - if (pos) { - typeof pos.x != 'undefined' && (cur.style.left = pos.x); - typeof pos.y != 'undefined' && (cur.style.top = pos.y); - } - if (size) { - size.w && (cur.style.width = size.w); - size.h && (cur.style.height = size.h); - } - }, - updateStyleByDir:function (dir, offset) { - var me = this, - dom = me.dom, tmp; - - rect['def'] = [1, 1, 0, 0]; - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - if (dir === 'def') { - me.updateScaledElement({position:{x:dom.style.left, y:dom.style.top}}); - } - }, - scaleMousemove:function (e) { - var me = arguments.callee.fp, - start = me.start, - dir = me.dir || 'def', - offset = {x:e.clientX - start.x, y:e.clientY - start.y}; - - me.updateStyleByDir(dir, offset); - arguments.callee.fp.start = {x:e.clientX, y:e.clientY}; - arguments.callee.fp.moved = 1; - }, - _validScaledProp:function (prop, value) { - var ele = this.dom, - wrap = $G("J_picBoard"); - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - } - }; -})(); - -//后台回调 -function ue_callback(url, state) { - var doc = document, - picBorard = $G("J_picBoard"), - img = doc.createElement("img"); - - //图片缩放 - function scale(img, max, oWidth, oHeight) { - var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight; - if (ow > max || oh > max) { - if (ow >= oh) { - if (width = ow - max) { - percent = (width / ow).toFixed(2); - img.height = oh - oh * percent; - img.width = max; - } - } else { - if (height = oh - max) { - percent = (height / oh).toFixed(2); - img.width = ow - ow * percent; - img.height = max; - } - } - } - } - - //移除遮罩层 - removeMaskLayer(); - //状态响应 - if (state == "SUCCESS") { - picBorard.innerHTML = ""; - img.onload = function () { - scale(this, 300); - picBorard.appendChild(img); - - var obj = new scrawl(); - obj.btn2Highlight("J_removeImg"); - //trace 2457 - obj.btn2Highlight("J_sacleBoard"); - }; - img.src = url; - } else { - alert(state); - } -} -//去掉遮罩层 -function removeMaskLayer() { - var maskLayer = $G("J_maskLayer"); - maskLayer.className = "maskLayerNull"; - maskLayer.innerHTML = ""; - dialog.buttons[0].setDisabled(false); -} -//添加遮罩层 -function addMaskLayer(html) { - var maskLayer = $G("J_maskLayer"); - dialog.buttons[0].setDisabled(true); - maskLayer.className = "maskLayer"; - maskLayer.innerHTML = html; -} -//执行确认按钮方法 -function exec(scrawlObj) { - if (scrawlObj.isScrawl) { - addMaskLayer(lang.scrawlUpLoading); - var base64 = scrawlObj.getCanvasData(); - if (!!base64) { - var options = { - timeout:100000, - onsuccess:function (xhr) { - if (!scrawlObj.isCancelScrawl) { - var responseObj; - responseObj = eval("(" + xhr.responseText + ")"); - if (responseObj.state == "SUCCESS") { - var imgObj = {}, - url = editor.options.scrawlUrlPrefix + responseObj.url; - imgObj.src = url; - imgObj._src = url; - imgObj.alt = responseObj.original || ''; - imgObj.title = responseObj.title || ''; - editor.execCommand("insertImage", imgObj); - dialog.close(); - } else { - alert(responseObj.state); - } - - } - }, - onerror:function () { - alert(lang.imageError); - dialog.close(); - } - }; - options[editor.getOpt('scrawlFieldName')] = base64; - - var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')), - params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - ajax.request(url, options); - } - } else { - addMaskLayer(lang.noScarwl + "   "); - } -} - diff --git a/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.html b/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.html deleted file mode 100644 index b3eaaa5..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    :
    - -
    - - -
    -   -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    - -
    - - - - -
    -   -
    - -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.js b/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.js deleted file mode 100644 index b55bb7a..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/searchreplace/searchreplace.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午12:29 - * To change this template use File | Settings | File Templates. - */ - -//清空上次查选的痕迹 -editor.firstForSR = 0; -editor.currentRangeForSR = null; -//给tab注册切换事件 -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -$G('searchtab').onmousedown = function(){ - $G('search-msg').innerHTML = ''; - $G('replace-msg').innerHTML = '' -} -//是否区分大小写 -function getMatchCase(id) { - return $G(id).checked ? true : false; -} -//查找 -$G("nextFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - var bk = editor.selection.getRange().createBookmark(); - $G('search-msg').innerHTML = lang.getEnd; - editor.selection.getRange().moveToBookmark(bk).select(); - - - } -}; -$G("nextReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -$G("preFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - $G('search-msg').innerHTML = lang.getStart; - } -}; -$G("preReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -//替换 -$G("repalceBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt - }; - frCommond(obj); -}; -//全部替换 -$G("repalceAllBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt, - all:true - }; - var num = frCommond(obj); - if (num) { - $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); - } -}; -//执行 -var frCommond = function (obj) { - return editor.execCommand("searchreplace", obj); -}; -switchTab("searchtab"); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/snapscreen/snapscreen.html b/yshop-drink-vue/public/UEditor/dialogs/snapscreen/snapscreen.html deleted file mode 100644 index f359326..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/snapscreen/snapscreen.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - -
    -

    -
    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.html b/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.html deleted file mode 100644 index d92f515..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.js b/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.js deleted file mode 100644 index bd3b36d..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/spechars/spechars.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:09 - * To change this template use File | Settings | File Templates. - */ -var charsContent = [ - { name:"tsfh", title:lang.tsfh, content:toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞")}, - { name:"lmsz", title:lang.lmsz, content:toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, - { name:"szfh", title:lang.szfh, content:toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩")}, - { name:"rwfh", title:lang.rwfh, content:toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ")}, - { name:"xlzm", title:lang.xlzm, content:toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω")}, - { name:"ewzm", title:lang.ewzm, content:toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я")}, - { name:"pyzm", title:lang.pyzm, content:toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, - { name:"yyyb", title:lang.yyyb, content:toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,")}, - { name:"zyzf", title:lang.zyzf, content:toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ")} -]; -(function createTab(content) { - for (var i = 0, ci; ci = content[i++];) { - var span = document.createElement("span"); - span.setAttribute("tabSrc", ci.name); - span.innerHTML = ci.title; - if (i == 1)span.className = "focus"; - domUtils.on(span, "click", function () { - var tmps = $G("tabHeads").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.className = ""; - } - tmps = $G("tabBodys").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.style.display = "none"; - } - this.className = "focus"; - $G(this.getAttribute("tabSrc")).style.display = ""; - }); - $G("tabHeads").appendChild(span); - domUtils.insertAfter(span, document.createTextNode("\n")); - var div = document.createElement("div"); - div.id = ci.name; - div.style.display = (i == 1) ? "" : "none"; - var cons = ci.content; - for (var j = 0, con; con = cons[j++];) { - var charSpan = document.createElement("span"); - charSpan.innerHTML = con; - domUtils.on(charSpan, "click", function () { - editor.execCommand("insertHTML", this.innerHTML); - dialog.close(); - }); - div.appendChild(charSpan); - } - $G("tabBodys").appendChild(div); - } -})(charsContent); -function toArray(str) { - return str.split(","); -} diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/dragicon.png b/yshop-drink-vue/public/UEditor/dialogs/table/dragicon.png deleted file mode 100644 index f26203b..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/table/dragicon.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.css b/yshop-drink-vue/public/UEditor/dialogs/table/edittable.css deleted file mode 100644 index ff8e0e0..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.css +++ /dev/null @@ -1,84 +0,0 @@ -body{ - overflow: hidden; - width: 540px; -} -.wrapper { - margin: 10px auto 0; - font-size: 12px; - overflow: hidden; - width: 520px; - height: 315px; -} - -.clear { - clear: both; -} - -.wrapper .left { - float: left; - margin-left: 10px;; -} - -.wrapper .right { - float: right; - border-left: 2px dotted #EDEDED; - padding-left: 15px; -} - -.section { - margin-bottom: 15px; - width: 240px; - overflow: hidden; -} - -.section h3 { - font-weight: bold; - padding: 5px 0; - margin-bottom: 10px; - border-bottom: 1px solid #EDEDED; - font-size: 12px; -} - -.section ul { - list-style: none; - overflow: hidden; - clear: both; - -} - -.section li { - float: left; - width: 120px;; -} - -.section .tone { - width: 80px;; -} - -.section .preview { - width: 220px; -} - -.section .preview table { - text-align: center; - vertical-align: middle; - color: #666; -} - -.section .preview caption { - font-weight: bold; -} - -.section .preview td { - border-width: 1px; - border-style: solid; - height: 22px; -} - -.section .preview th { - border-style: solid; - border-color: #DDD; - border-width: 2px 1px 1px 1px; - height: 22px; - background-color: #F7F7F7; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.html b/yshop-drink-vue/public/UEditor/dialogs/table/edittable.html deleted file mode 100644 index 217c20d..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - - -
    • -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.js b/yshop-drink-vue/public/UEditor/dialogs/table/edittable.js deleted file mode 100644 index 2b4a35e..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/table/edittable.js +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-12-19 - * Time: 下午4:55 - * To change this template use File | Settings | File Templates. - */ -(function () { - var title = $G("J_title"), - titleCol = $G("J_titleCol"), - caption = $G("J_caption"), - sorttable = $G("J_sorttable"), - autoSizeContent = $G("J_autoSizeContent"), - autoSizePage = $G("J_autoSizePage"), - tone = $G("J_tone"), - me, - preview = $G("J_preview"); - - var editTable = function () { - me = this; - me.init(); - }; - editTable.prototype = { - init:function () { - var colorPiker = new UE.ui.ColorPicker({ - editor:editor - }), - colorPop = new UE.ui.Popup({ - editor:editor, - content:colorPiker - }); - - title.checked = editor.queryCommandState("inserttitle") == -1; - titleCol.checked = editor.queryCommandState("inserttitlecol") == -1; - caption.checked = editor.queryCommandState("insertcaption") == -1; - sorttable.checked = editor.queryCommandState("enablesort") == 1; - - var enablesortState = editor.queryCommandState("enablesort"), - disablesortState = editor.queryCommandState("disablesort"); - - sorttable.checked = !!(enablesortState < 0 && disablesortState >=0); - sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0); - sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg:''; - - me.createTable(title.checked, titleCol.checked, caption.checked); - me.setAutoSize(); - me.setColor(me.getColor()); - - domUtils.on(title, "click", me.titleHanler); - domUtils.on(titleCol, "click", me.titleColHanler); - domUtils.on(caption, "click", me.captionHanler); - domUtils.on(sorttable, "click", me.sorttableHanler); - domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler); - domUtils.on(autoSizePage, "click", me.autoSizePageHanler); - - domUtils.on(tone, "click", function () { - colorPop.showAnchor(tone); - }); - domUtils.on(document, 'mousedown', function () { - colorPop.hide(); - }); - colorPiker.addListener("pickcolor", function () { - me.setColor(arguments[1]); - colorPop.hide(); - }); - colorPiker.addListener("picknocolor", function () { - me.setColor(""); - colorPop.hide(); - }); - }, - - createTable:function (hasTitle, hasTitleCol, hasCaption) { - var arr = [], - sortSpan = '^'; - arr.push(""); - if (hasCaption) { - arr.push("") - } - if (hasTitle) { - arr.push(""); - if(hasTitleCol) { arr.push(""); } - for (var j = 0; j < 5; j++) { - arr.push(""); - } - arr.push(""); - } - for (var i = 0; i < 6; i++) { - arr.push(""); - if(hasTitleCol) { arr.push("") } - for (var k = 0; k < 5; k++) { - arr.push("") - } - arr.push(""); - } - arr.push("
    " + lang.captionName + "
    " + lang.titleName + "" + lang.titleName + "
    " + lang.titleName + "" + lang.cellsName + "
    "); - preview.innerHTML = arr.join(""); - this.updateSortSpan(); - }, - titleHanler:function () { - var example = $G("J_example"), - frg=document.createDocumentFragment(), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colCount = example.rows[0].children.length; - - if (title.checked) { - example.insertRow(0); - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - frg.appendChild(node); - } - example.rows[0].appendChild(frg); - - } else { - domUtils.remove(example.rows[0]); - } - me.setColor(color); - me.updateSortSpan(); - }, - titleColHanler:function () { - var example = $G("J_example"), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colArr = example.rows, - colCount = colArr.length; - - if (titleCol.checked) { - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - colArr[i].insertBefore(node, colArr[i].children[0]); - } - } else { - for (var i = 0; i < colCount; i++) { - domUtils.remove(colArr[i].children[0]); - } - } - me.setColor(color); - me.updateSortSpan(); - }, - captionHanler:function () { - var example = $G("J_example"); - if (caption.checked) { - var row = document.createElement('caption'); - row.innerHTML = lang.captionName; - example.insertBefore(row, example.firstChild); - } else { - domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]); - } - }, - sorttableHanler:function(){ - me.updateSortSpan(); - }, - autoSizeContentHanler:function () { - var example = $G("J_example"); - example.removeAttribute("width"); - }, - autoSizePageHanler:function () { - var example = $G("J_example"); - var tds = example.getElementsByTagName(example, "td"); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - example.setAttribute('width', '100%'); - }, - updateSortSpan: function(){ - var example = $G("J_example"), - row = example.rows[0]; - - var spans = domUtils.getElementsByTagName(example,"span"); - utils.each(spans,function(span){ - span.parentNode.removeChild(span); - }); - if (sorttable.checked) { - utils.each(row.cells, function(cell, i){ - var span = document.createElement("span"); - span.innerHTML = "^"; - cell.appendChild(span); - }); - } - }, - getColor:function () { - var start = editor.selection.getStart(), color, - cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - color = cell && domUtils.getComputedStyle(cell, "border-color"); - if (!color) color = "#DDDDDD"; - return color; - }, - setColor:function (color) { - var example = $G("J_example"), - arr = domUtils.getElementsByTagName(example, "td").concat( - domUtils.getElementsByTagName(example, "th"), - domUtils.getElementsByTagName(example, "caption") - ); - - tone.value = color; - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - - }, - setAutoSize:function () { - var me = this; - autoSizePage.checked = true; - me.autoSizePageHanler(); - } - }; - - new editTable; - - dialog.onok = function () { - editor.__hasEnterExecCommand = true; - - var checks = { - title:"inserttitle deletetitle", - titleCol:"inserttitlecol deletetitlecol", - caption:"insertcaption deletecaption", - sorttable:"enablesort disablesort" - }; - editor.fireEvent('saveScene'); - for(var i in checks){ - var cmds = checks[i].split(" "), - input = $G("J_" + i); - if(input["checked"]){ - editor.queryCommandState(cmds[0])!=-1 &&editor.execCommand(cmds[0]); - }else{ - editor.queryCommandState(cmds[1])!=-1 &&editor.execCommand(cmds[1]); - } - } - - editor.execCommand("edittable", tone.value); - autoSizeContent.checked ?editor.execCommand('adaptbytext') : ""; - autoSizePage.checked ? editor.execCommand("adaptbywindow") : ""; - editor.fireEvent('saveScene'); - - editor.__hasEnterExecCommand = false; - }; -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/edittd.html b/yshop-drink-vue/public/UEditor/dialogs/table/edittd.html deleted file mode 100644 index a42dc01..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/table/edittd.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - -
    - - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/table/edittip.html b/yshop-drink-vue/public/UEditor/dialogs/table/edittip.html deleted file mode 100644 index 9d8f78d..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/table/edittip.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - 表格删除提示 - - - - -
    -
    - -
    -
    - -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/config.js b/yshop-drink-vue/public/UEditor/dialogs/template/config.js deleted file mode 100644 index 42e474b..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/template/config.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:00 - * To change this template use File | Settings | File Templates. - */ -var templates = [ - { - "pre":"pre0.png", - 'title':lang.blank, - 'preHtml':'

     欢迎使用UEditor!

    ', - "html":'

    欢迎使用UEditor!

    ' - - }, - { - "pre":"pre1.png", - 'title':lang.blog, - 'preHtml':'

    深入理解Range

    UEditor二次开发

    什么是Range

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。


    Range能干什么

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。

    ', - "html":'

    [键入文档标题]

    [键入文档副标题]

    [标题 1]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。

    [标题 2]

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。 您还可以使用“开始”选项卡上的其他控件来直接设置文本格式。大多数控件都允许您选择是使用当前主题外观,还是使用某种直接指定的格式。

    [标题 3]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。


    ' - - }, - { - "pre":"pre2.png", - 'title':lang.resume, - 'preHtml':'

    WEB前端开发简历

    插

    入

    照

    片

    联系电话:[键入您的电话]

    电子邮件:[键入您的电子邮件地址]

    家庭住址:[键入您的地址]

    目标职位

    WEB前端研发工程师

    学历

    1. [起止时间] [学校名称] [所学专业] [所获学位]

    工作经验


    ', - "html":'

    [此处键入简历标题]


    【此处插入照片】


    联系电话:[键入您的电话]


    电子邮件:[键入您的电子邮件地址]


    家庭住址:[键入您的地址]


    目标职位

    [此处键入您的期望职位]

    学历

    1. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    2. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    工作经验

    1. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

      2. [键入负责项目] [键入项目简介]

    2. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

    掌握技能

     [这里可以键入您所掌握的技能]

    ' - - }, - { - "pre":"pre3.png", - 'title':lang.richText, - 'preHtml':'

    [此处键入文章标题]

    图文混排方法

    图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文


    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!

    ', - "html":'


    [此处键入文章标题]

    图文混排方法

    1. 图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文本


    2. 图片居右,文字围绕图片排版

    方法:在文字前面插入图片,设置居右对齐,然后即可在左边输入多行文本


    3. 图片居中环绕排版

    方法:亲,这个真心没有办法。。。



    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!


    占位


    占位


    占位


    占位


    占位



    ' - }, - { - "pre":"pre4.png", - 'title':lang.sciPapers, - 'preHtml':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的


    ', - 'html':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    来个列表瞅瞅:

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的

    这里可以多行

    右边是图片

    绝对没有问题的,不信你也可以试试看


    ' - } -]; \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/bg.gif b/yshop-drink-vue/public/UEditor/dialogs/template/images/bg.gif deleted file mode 100644 index 8c1d10a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/bg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre0.png b/yshop-drink-vue/public/UEditor/dialogs/template/images/pre0.png deleted file mode 100644 index 8f3c16a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre0.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre1.png b/yshop-drink-vue/public/UEditor/dialogs/template/images/pre1.png deleted file mode 100644 index 5a03f96..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre1.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre2.png b/yshop-drink-vue/public/UEditor/dialogs/template/images/pre2.png deleted file mode 100644 index 5a55672..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre2.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre3.png b/yshop-drink-vue/public/UEditor/dialogs/template/images/pre3.png deleted file mode 100644 index d852d29..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre3.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre4.png b/yshop-drink-vue/public/UEditor/dialogs/template/images/pre4.png deleted file mode 100644 index 0d7bc72..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/template/images/pre4.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/template.css b/yshop-drink-vue/public/UEditor/dialogs/template/template.css deleted file mode 100644 index 2658bd2..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/template/template.css +++ /dev/null @@ -1,18 +0,0 @@ -.wrap{ padding: 5px;font-size: 14px;} -.left{width:425px;float: left;} -.right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} -.right .pre{height: 332px;overflow-y: auto;} -.right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} -.right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} -.right .preitem img{display: block;margin: 0 auto;width:100px;} -.clear{clear: both;} -.top{height:26px;line-height: 26px;padding: 5px;} -.bottom{height:320px;width:100%;margin: 0 auto;} -.transparent{ background: url("images/bg.gif") repeat;} -.bottom table tr td{border:1px dashed #ccc;} -#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} -.border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -p{margin: 5px 0} -table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} -li{clear:both} -ol{padding-left:40px; } \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/template.html b/yshop-drink-vue/public/UEditor/dialogs/template/template.html deleted file mode 100644 index 9d71ece..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/template/template.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - - - - diff --git a/yshop-drink-vue/public/UEditor/dialogs/template/template.js b/yshop-drink-vue/public/UEditor/dialogs/template/template.js deleted file mode 100644 index 0f1cdad..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/template/template.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:09 - * To change this template use File | Settings | File Templates. - */ -(function () { - var me = editor, - preview = $G( "preview" ), - preitem = $G( "preitem" ), - tmps = templates, - currentTmp; - var initPre = function () { - var str = ""; - for ( var i = 0, tmp; tmp = tmps[i++]; ) { - str += '
    '; - } - preitem.innerHTML = str; - }; - var pre = function ( n ) { - var tmp = tmps[n - 1]; - currentTmp = tmp; - clearItem(); - domUtils.setStyles( preitem.childNodes[n - 1], { - "background-color":"lemonChiffon", - "border":"#ccc 1px solid" - } ); - preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; - }; - var clearItem = function () { - var items = preitem.children; - for ( var i = 0, item; item = items[i++]; ) { - domUtils.setStyles( item, { - "background-color":"", - "border":"white 1px solid" - } ); - } - }; - dialog.onok = function () { - if ( !$G( "issave" ).checked ){ - me.execCommand( "cleardoc" ); - } - var obj = { - html:currentTmp && currentTmp.html - }; - me.execCommand( "template", obj ); - }; - initPre(); - window.pre = pre; - pre(2) - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/bg.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/center_focus.jpg b/yshop-drink-vue/public/UEditor/dialogs/video/images/center_focus.jpg deleted file mode 100644 index 262b029..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/center_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.gif b/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.gif deleted file mode 100644 index d8c02c2..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.png deleted file mode 100644 index 3ff82c8..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/file-icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.gif b/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/image.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/left_focus.jpg b/yshop-drink-vue/public/UEditor/dialogs/video/images/left_focus.jpg deleted file mode 100644 index 7886d27..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/left_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/none_focus.jpg b/yshop-drink-vue/public/UEditor/dialogs/video/images/none_focus.jpg deleted file mode 100644 index 7c768dc..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/none_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/progress.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/right_focus.jpg b/yshop-drink-vue/public/UEditor/dialogs/video/images/right_focus.jpg deleted file mode 100644 index 173e10d..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/right_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/success.gif b/yshop-drink-vue/public/UEditor/dialogs/video/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/images/success.png b/yshop-drink-vue/public/UEditor/dialogs/video/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor/dialogs/video/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/video.css b/yshop-drink-vue/public/UEditor/dialogs/video/video.css deleted file mode 100644 index 8a17284..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/video/video.css +++ /dev/null @@ -1,635 +0,0 @@ -@charset "utf-8"; -.wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative} -.tabbody{height: 335px;} -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} -.tabbody .panel.focus { - width: 100%; - height: 335px; - display: block; -} - -.tabbody .panel table td{vertical-align: middle;} -#videoUrl { - width: 490px; - height: 21px; - line-height: 21px; - margin: 8px 5px; - background: #FFF; - border: 1px solid #d7d7d7; -} -#videoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;} -#searchList{width: 570px;overflow: auto;zoom:1;height: 270px;} -#searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;} -#searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*不用缩略图*/ -#searchList p{margin-left: 10px;} -#videoType{ - width: 65px; - height: 23px; - line-height: 22px; - border: 1px solid #d7d7d7; -} -#videoSearchBtn,#videoSearchReset{ - /*width: 80px;*/ - height: 25px; - line-height: 25px; - background: #eee; - border: 1px solid #d7d7d7; - cursor: pointer; - padding: 0 5px; -} - - - -#preview{position: relative;width: 420px;padding:0;overflow: hidden; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left} -#preview .previewMsg {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color: #666;} -#preview .previewMsg span{display:block;margin: 125px auto 0 auto;text-align:center;font-size:18px;color:#fff;} -#preview .previewVideo {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;} -.edui-video-wrapper fieldset{ - border: 1px solid #ddd; - padding-left: 5px; - margin-bottom: 20px; - padding-bottom: 5px; - width: 115px; -} - -#videoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;} -fieldset{ - border: 1px solid #ddd; - padding-left: 5px; - margin-bottom: 20px; - padding-bottom: 5px; - width: 115px; -} -fieldset legend{font-weight: bold;} -fieldset p{line-height: 30px;} -fieldset input.txt{ - width: 65px; - height: 21px; - line-height: 21px; - margin: 8px 5px; - background: #FFF; - border: 1px solid #d7d7d7; -} -label.url{font-weight: bold;margin-left: 5px;color: #06c;} -#videoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;} -#videoFloat .focus{opacity: 1;filter: alpha(opacity = 100)} -span.view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue} - - - - -/* upload video */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} -.tabbody #upload.panel.focus { - width: 100%; - height: 335px; - display: block; - clip: auto; -} -#upload_alignment div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;} -#upload_alignment .focus{opacity: 1;filter: alpha(opacity = 100)} -#upload_left { width:427px; float:left; } -#upload_left .controller { height: 30px; clear: both; } -#uploadVideoInfo{margin-top:10px;float:right;padding-right:8px;} - -#upload .queueList { - margin: 0; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - margin-right:0; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 161px; - padding-top: 150px; - text-align: center; - width: 97%; - float: left; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *margin-left: 0; - *left: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 285px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 15px 0 0 20px; - *margin: 15px 0 0 15px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} -#upload .filelist li p.imgWrap.notimage { - margin-top: 0; - width: 111px; - height: 111px; - border: 1px #eeeeee solid; -} -#upload .filelist li p.imgWrap.notimage i.file-preview { - margin-top: 15px; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background-image: url(./images/success.gif) \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - -/* 在线文件的文件预览图标 */ -i.file-preview { - display: block; - margin: 10px auto; - width: 70px; - height: 70px; - background-image: url("./images/file-icons.png"); - background-image: url("./images/file-icons.gif") \9; - background-position: -140px center; - background-repeat: no-repeat; -} -i.file-preview.file-type-dir{ - background-position: 0 center; -} -i.file-preview.file-type-file{ - background-position: -140px center; -} -i.file-preview.file-type-filelist{ - background-position: -210px center; -} -i.file-preview.file-type-zip, -i.file-preview.file-type-rar, -i.file-preview.file-type-7z, -i.file-preview.file-type-tar, -i.file-preview.file-type-gz, -i.file-preview.file-type-bz2{ - background-position: -280px center; -} -i.file-preview.file-type-xls, -i.file-preview.file-type-xlsx{ - background-position: -350px center; -} -i.file-preview.file-type-doc, -i.file-preview.file-type-docx{ - background-position: -420px center; -} -i.file-preview.file-type-ppt, -i.file-preview.file-type-pptx{ - background-position: -490px center; -} -i.file-preview.file-type-vsd{ - background-position: -560px center; -} -i.file-preview.file-type-pdf{ - background-position: -630px center; -} -i.file-preview.file-type-txt, -i.file-preview.file-type-md, -i.file-preview.file-type-json, -i.file-preview.file-type-htm, -i.file-preview.file-type-xml, -i.file-preview.file-type-html, -i.file-preview.file-type-js, -i.file-preview.file-type-css, -i.file-preview.file-type-php, -i.file-preview.file-type-jsp, -i.file-preview.file-type-asp{ - background-position: -700px center; -} -i.file-preview.file-type-apk{ - background-position: -770px center; -} -i.file-preview.file-type-exe{ - background-position: -840px center; -} -i.file-preview.file-type-ipa{ - background-position: -910px center; -} -i.file-preview.file-type-mp4, -i.file-preview.file-type-swf, -i.file-preview.file-type-mkv, -i.file-preview.file-type-avi, -i.file-preview.file-type-flv, -i.file-preview.file-type-mov, -i.file-preview.file-type-mpg, -i.file-preview.file-type-mpeg, -i.file-preview.file-type-ogv, -i.file-preview.file-type-webm, -i.file-preview.file-type-rm, -i.file-preview.file-type-rmvb{ - background-position: -980px center; -} -i.file-preview.file-type-ogg, -i.file-preview.file-type-wav, -i.file-preview.file-type-wmv, -i.file-preview.file-type-mid, -i.file-preview.file-type-mp3{ - background-position: -1050px center; -} -i.file-preview.file-type-jpg, -i.file-preview.file-type-jpeg, -i.file-preview.file-type-gif, -i.file-preview.file-type-bmp, -i.file-preview.file-type-png, -i.file-preview.file-type-psd{ - background-position: -140px center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/video.html b/yshop-drink-vue/public/UEditor/dialogs/video/video.html deleted file mode 100644 index 14f10f4..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/video/video.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    -
    -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/video/video.js b/yshop-drink-vue/public/UEditor/dialogs/video/video.js deleted file mode 100644 index 7b9378b..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/video/video.js +++ /dev/null @@ -1,797 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-2-20 - * Time: 上午11:19 - * To change this template use File | Settings | File Templates. - */ - -(function(){ - - var video = {}, - uploadVideoList = [], - isModifyUploadVideo = false, - uploadFile; - - window.onload = function(){ - $focus($G("videoUrl")); - initTabs(); - initVideo(); - initUpload(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var j, bodyId, target = e.target || e.srcElement; - for (j = 0; j < tabs.length; j++) { - bodyId = tabs[j].getAttribute('data-content-id'); - if(tabs[j] == target){ - domUtils.addClass(tabs[j], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - }else { - domUtils.removeClasses(tabs[j], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - }); - } - } - - function initVideo(){ - createAlignButton( ["videoFloat", "upload_alignment"] ); - addUrlChangeListener($G("videoUrl")); - addOkListener(); - - //编辑视频时初始化相关信息 - (function(){ - var img = editor.selection.getRange().getClosedNode(),url; - if(img && img.className){ - var hasFakedClass = (img.className == "edui-faked-video"), - hasUploadClass = img.className.indexOf("edui-upload-video")!=-1; - if(hasFakedClass || hasUploadClass) { - $G("videoUrl").value = url = img.getAttribute("_url"); - $G("videoWidth").value = img.width; - $G("videoHeight").value = img.height; - var align = domUtils.getComputedStyle(img,"float"), - parentAlign = domUtils.getComputedStyle(img.parentNode,"text-align"); - updateAlignButton(parentAlign==="center"?"center":align); - } - if(hasUploadClass) { - isModifyUploadVideo = true; - } - } - createPreviewVideo(url); - })(); - } - - /** - * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 - */ - function addOkListener(){ - dialog.onok = function(){ - $G("preview").innerHTML = ""; - var currentTab = findFocus("tabHeads","tabSrc"); - switch(currentTab){ - case "video": - return insertSingle(); - break; - case "videoSearch": - return insertSearch("searchList"); - break; - case "upload": - return insertUpload(); - break; - } - }; - dialog.oncancel = function(){ - $G("preview").innerHTML = ""; - }; - } - - /** - * 依据传入的align值更新按钮信息 - * @param align - */ - function updateAlignButton( align ) { - var aligns = $G( "videoFloat" ).children; - for ( var i = 0, ci; ci = aligns[i++]; ) { - if ( ci.getAttribute( "name" ) == align ) { - if ( ci.className !="focus" ) { - ci.className = "focus"; - } - } else { - if ( ci.className =="focus" ) { - ci.className = ""; - } - } - } - } - - /** - * 将单个视频信息插入编辑器中 - */ - function insertSingle(){ - var width = $G("videoWidth"), - height = $G("videoHeight"), - url=$G('videoUrl').value, - align = findFocus("videoFloat","name"); - if(!url) return false; - if ( !checkNum( [width, height] ) ) return false; - editor.execCommand('insertvideo', { - url: convert_url(url), - width: width.value, - height: height.value, - align: align - }, isModifyUploadVideo ? 'upload':null); - } - - /** - * 将元素id下的所有代表视频的图片插入编辑器中 - * @param id - */ - function insertSearch(id){ - var imgs = domUtils.getElementsByTagName($G(id),"img"), - videoObjs=[]; - for(var i=0,img; img=imgs[i++];){ - if(img.getAttribute("selected")){ - videoObjs.push({ - url:img.getAttribute("ue_video_url"), - width:420, - height:280, - align:"none" - }); - } - } - editor.execCommand('insertvideo',videoObjs); - } - - /** - * 找到id下具有focus类的节点并返回该节点下的某个属性 - * @param id - * @param returnProperty - */ - function findFocus( id, returnProperty ) { - var tabs = $G( id ).children, - property; - for ( var i = 0, ci; ci = tabs[i++]; ) { - if ( ci.className=="focus" ) { - property = ci.getAttribute( returnProperty ); - break; - } - } - return property; - } - function convert_url(url){ - if ( !url ) return ''; - url = utils.trim(url) - .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf') - .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") - .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1") - .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf") - .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf") - .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0") - .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1") - .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1"); - - return url; - } - - /** - * 检测传入的所有input框中输入的长宽是否是正数 - * @param nodes input框集合, - */ - function checkNum( nodes ) { - for ( var i = 0, ci; ci = nodes[i++]; ) { - var value = ci.value; - if ( !isNumber( value ) && value) { - alert( lang.numError ); - ci.value = ""; - ci.focus(); - return false; - } - } - return true; - } - - /** - * 数字判断 - * @param value - */ - function isNumber( value ) { - return /(0|^[1-9]\d*$)/.test( value ); - } - - /** - * 创建图片浮动选择按钮 - * @param ids - */ - function createAlignButton( ids ) { - for ( var i = 0, ci; ci = ids[i++]; ) { - var floatContainer = $G( ci ), - nameMaps = {"none":lang['default'], "left":lang.floatLeft, "right":lang.floatRight, "center":lang.block}; - for ( var j in nameMaps ) { - var div = document.createElement( "div" ); - div.setAttribute( "name", j ); - if ( j == "none" ) div.className="focus"; - div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; - div.setAttribute( "title", nameMaps[j] ); - floatContainer.appendChild( div ); - } - switchSelect( ci ); - } - } - - /** - * 选择切换 - * @param selectParentId - */ - function switchSelect( selectParentId ) { - var selects = $G( selectParentId ).children; - for ( var i = 0, ci; ci = selects[i++]; ) { - domUtils.on( ci, "click", function () { - for ( var j = 0, cj; cj = selects[j++]; ) { - cj.className = ""; - cj.removeAttribute && cj.removeAttribute( "class" ); - } - this.className = "focus"; - } ) - } - } - - /** - * 监听url改变事件 - * @param url - */ - function addUrlChangeListener(url){ - if (browser.ie) { - url.onpropertychange = function () { - createPreviewVideo( this.value ); - } - } else { - url.addEventListener( "input", function () { - createPreviewVideo( this.value ); - }, false ); - } - } - - /** - * 根据url生成视频预览 - * @param url - */ - function createPreviewVideo(url){ - if ( !url )return; - - var conUrl = convert_url(url); - - conUrl = utils.unhtmlForUrl(conUrl); - - $G("preview").innerHTML = '
    '+lang.urlError+'
    '+ - '' + - ''; - } - - - /* 插入上传视频 */ - function insertUpload(){ - var videoObjs=[], - uploadDir = editor.getOpt('videoUrlPrefix'), - width = parseInt($G('upload_width').value, 10) || 420, - height = parseInt($G('upload_height').value, 10) || 280, - align = findFocus("upload_alignment","name") || 'none'; - for(var key in uploadVideoList) { - var file = uploadVideoList[key]; - videoObjs.push({ - url: uploadDir + file.url, - width:width, - height:height, - align:align - }); - } - - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } else { - editor.execCommand('insertvideo', videoObjs, 'upload'); - } - } - - /*初始化上传标签*/ - function initUpload(){ - uploadFile = new UploadFile('queueList'); - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), - fileMaxSize = editor.getOpt('videoMaxSize'), - acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('videoActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('videoFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - uploadVideoList.push({ - 'url': json.url, - 'type': json.type, - 'original':json.original - }); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - refresh: function(){ - this.uploader.refresh(); - } - }; - -})(); diff --git a/yshop-drink-vue/public/UEditor/dialogs/webapp/webapp.html b/yshop-drink-vue/public/UEditor/dialogs/webapp/webapp.html deleted file mode 100644 index 73f8dc2..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/webapp/webapp.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/wordimage/tangram.js b/yshop-drink-vue/public/UEditor/dialogs/wordimage/tangram.js deleted file mode 100644 index f449962..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/wordimage/tangram.js +++ /dev/null @@ -1,1495 +0,0 @@ -// Copyright (c) 2009, Baidu Inc. All rights reserved. -// -// Licensed under the BSD License -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http:// tangram.baidu.com/license.html -// -// 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. - /** - * @namespace T Tangram七巧板 - * @name T - * @version 1.6.0 -*/ - -/** - * 声明baidu包 - * @author: allstar, erik, meizz, berg - */ -var T, - baidu = T = baidu || {version: "1.5.0"}; -baidu.guid = "$BAIDU$"; -baidu.$$ = window[baidu.guid] = window[baidu.guid] || {global:{}}; - -/** - * 使用flash资源封装的一些功能 - * @namespace baidu.flash - */ -baidu.flash = baidu.flash || {}; - -/** - * 操作dom的方法 - * @namespace baidu.dom - */ -baidu.dom = baidu.dom || {}; - - -/** - * 从文档中获取指定的DOM元素 - * @name baidu.dom.g - * @function - * @grammar baidu.dom.g(id) - * @param {string|HTMLElement} id 元素的id或DOM元素. - * @shortcut g,T.G - * @meta standard - * @see baidu.dom.q - * - * @return {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数. - */ -baidu.dom.g = function(id) { - if (!id) return null; - if ('string' == typeof id || id instanceof String) { - return document.getElementById(id); - } else if (id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) { - return id; - } - return null; -}; -baidu.g = baidu.G = baidu.dom.g; - - -/** - * 操作数组的方法 - * @namespace baidu.array - */ - -baidu.array = baidu.array || {}; - - -/** - * 遍历数组中所有元素 - * @name baidu.array.each - * @function - * @grammar baidu.array.each(source, iterator[, thisObject]) - * @param {Array} source 需要遍历的数组 - * @param {Function} iterator 对每个数组元素进行调用的函数,该函数有两个参数,第一个为数组元素,第二个为数组索引值,function (item, index)。 - * @param {Object} [thisObject] 函数调用时的this指针,如果没有此参数,默认是当前遍历的数组 - * @remark - * each方法不支持对Object的遍历,对Object的遍历使用baidu.object.each 。 - * @shortcut each - * @meta standard - * - * @returns {Array} 遍历的数组 - */ - -baidu.each = baidu.array.forEach = baidu.array.each = function (source, iterator, thisObject) { - var returnValue, item, i, len = source.length; - - if ('function' == typeof iterator) { - for (i = 0; i < len; i++) { - item = source[i]; - returnValue = iterator.call(thisObject || source, item, i); - - if (returnValue === false) { - break; - } - } - } - return source; -}; - -/** - * 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。 - * @namespace baidu.lang - */ -baidu.lang = baidu.lang || {}; - - -/** - * 判断目标参数是否为function或Function实例 - * @name baidu.lang.isFunction - * @function - * @grammar baidu.lang.isFunction(source) - * @param {Any} source 目标参数 - * @version 1.2 - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * @meta standard - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isFunction = function (source) { - return '[object Function]' == Object.prototype.toString.call(source); -}; - -/** - * 判断目标参数是否string类型或String对象 - * @name baidu.lang.isString - * @function - * @grammar baidu.lang.isString(source) - * @param {Any} source 目标参数 - * @shortcut isString - * @meta standard - * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isString = function (source) { - return '[object String]' == Object.prototype.toString.call(source); -}; -baidu.isString = baidu.lang.isString; - - -/** - * 判断浏览器类型和特性的属性 - * @namespace baidu.browser - */ -baidu.browser = baidu.browser || {}; - - -/** - * 判断是否为opera浏览器 - * @property opera opera版本号 - * @grammar baidu.browser.opera - * @meta standard - * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome - * @returns {Number} opera版本号 - */ - -/** - * opera 从10开始不是用opera后面的字符串进行版本的判断 - * 在Browser identification最后添加Version + 数字进行版本标识 - * opera后面的数字保持在9.80不变 - */ -baidu.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? + ( RegExp["\x246"] || RegExp["\x242"] ) : undefined; - - -/** - * 在目标元素的指定位置插入HTML代码 - * @name baidu.dom.insertHTML - * @function - * @grammar baidu.dom.insertHTML(element, position, html) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @param {string} position 插入html的位置信息,取值为beforeBegin,afterBegin,beforeEnd,afterEnd - * @param {string} html 要插入的html - * @remark - * - * 对于position参数,大小写不敏感
    - * 参数的意思:beforeBegin<span>afterBegin this is span! beforeEnd</span> afterEnd
    - * 此外,如果使用本函数插入带有script标签的HTML字符串,script标签对应的脚本将不会被执行。 - * - * @shortcut insertHTML - * @meta standard - * - * @returns {HTMLElement} 目标元素 - */ -baidu.dom.insertHTML = function (element, position, html) { - element = baidu.dom.g(element); - var range,begin; - if (element.insertAdjacentHTML && !baidu.browser.opera) { - element.insertAdjacentHTML(position, html); - } else { - range = element.ownerDocument.createRange(); - position = position.toUpperCase(); - if (position == 'AFTERBEGIN' || position == 'BEFOREEND') { - range.selectNodeContents(element); - range.collapse(position == 'AFTERBEGIN'); - } else { - begin = position == 'BEFOREBEGIN'; - range[begin ? 'setStartBefore' : 'setEndAfter'](element); - range.collapse(begin); - } - range.insertNode(range.createContextualFragment(html)); - } - return element; -}; - -baidu.insertHTML = baidu.dom.insertHTML; - -/** - * 操作flash对象的方法,包括创建flash对象、获取flash对象以及判断flash插件的版本号 - * @namespace baidu.swf - */ -baidu.swf = baidu.swf || {}; - - -/** - * 浏览器支持的flash插件版本 - * @property version 浏览器支持的flash插件版本 - * @grammar baidu.swf.version - * @return {String} 版本号 - * @meta standard - */ -baidu.swf.version = (function () { - var n = navigator; - if (n.plugins && n.mimeTypes.length) { - var plugin = n.plugins["Shockwave Flash"]; - if (plugin && plugin.description) { - return plugin.description - .replace(/([a-zA-Z]|\s)+/, "") - .replace(/(\s)+r/, ".") + ".0"; - } - } else if (window.ActiveXObject && !window.opera) { - for (var i = 12; i >= 2; i--) { - try { - var c = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + i); - if (c) { - var version = c.GetVariable("$version"); - return version.replace(/WIN/g,'').replace(/,/g,'.'); - } - } catch(e) {} - } - } -})(); - -/** - * 操作字符串的方法 - * @namespace baidu.string - */ -baidu.string = baidu.string || {}; - - -/** - * 对目标字符串进行html编码 - * @name baidu.string.encodeHTML - * @function - * @grammar baidu.string.encodeHTML(source) - * @param {string} source 目标字符串 - * @remark - * 编码字符有5个:&<>"' - * @shortcut encodeHTML - * @meta standard - * @see baidu.string.decodeHTML - * - * @returns {string} html编码后的字符串 - */ -baidu.string.encodeHTML = function (source) { - return String(source) - .replace(/&/g,'&') - .replace(//g,'>') - .replace(/"/g, """) - .replace(/'/g, "'"); -}; - -baidu.encodeHTML = baidu.string.encodeHTML; - -/** - * 创建flash对象的html字符串 - * @name baidu.swf.createHTML - * @function - * @grammar baidu.swf.createHTML(options) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @see baidu.swf.create - * @meta standard - * @returns {string} flash对象的html字符串 - */ -baidu.swf.createHTML = function (options) { - options = options || {}; - var version = baidu.swf.version, - needVersion = options['ver'] || '6.0.0', - vUnit1, vUnit2, i, k, len, item, tmpOpt = {}, - encodeHTML = baidu.string.encodeHTML; - for (k in options) { - tmpOpt[k] = options[k]; - } - options = tmpOpt; - if (version) { - version = version.split('.'); - needVersion = needVersion.split('.'); - for (i = 0; i < 3; i++) { - vUnit1 = parseInt(version[i], 10); - vUnit2 = parseInt(needVersion[i], 10); - if (vUnit2 < vUnit1) { - break; - } else if (vUnit2 > vUnit1) { - return ''; - } - } - } else { - return ''; - } - - var vars = options['vars'], - objProperties = ['classid', 'codebase', 'id', 'width', 'height', 'align']; - options['align'] = options['align'] || 'middle'; - options['classid'] = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'; - options['codebase'] = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'; - options['movie'] = options['url'] || ''; - delete options['vars']; - delete options['url']; - if ('string' == typeof vars) { - options['flashvars'] = vars; - } else { - var fvars = []; - for (k in vars) { - item = vars[k]; - fvars.push(k + "=" + encodeURIComponent(item)); - } - options['flashvars'] = fvars.join('&'); - } - var str = [''); - var params = { - 'wmode' : 1, - 'scale' : 1, - 'quality' : 1, - 'play' : 1, - 'loop' : 1, - 'menu' : 1, - 'salign' : 1, - 'bgcolor' : 1, - 'base' : 1, - 'allowscriptaccess' : 1, - 'allownetworking' : 1, - 'allowfullscreen' : 1, - 'seamlesstabbing' : 1, - 'devicefont' : 1, - 'swliveconnect' : 1, - 'flashvars' : 1, - 'movie' : 1 - }; - - for (k in options) { - item = options[k]; - k = k.toLowerCase(); - if (params[k] && (item || item === false || item === 0)) { - str.push(''); - } - } - options['src'] = options['movie']; - options['name'] = options['id']; - delete options['id']; - delete options['movie']; - delete options['classid']; - delete options['codebase']; - options['type'] = 'application/x-shockwave-flash'; - options['pluginspage'] = 'http://www.macromedia.com/go/getflashplayer'; - str.push(''); - - return str.join(''); -}; - - -/** - * 在页面中创建一个flash对象 - * @name baidu.swf.create - * @function - * @grammar baidu.swf.create(options[, container]) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @param {HTMLElement|string} [container] flash对象的父容器元素,不传递该参数时在当前代码位置创建flash对象。 - * @meta standard - * @see baidu.swf.createHTML,baidu.swf.getMovie - */ -baidu.swf.create = function (options, target) { - options = options || {}; - var html = baidu.swf.createHTML(options) - || options['errorMessage'] - || ''; - - if (target && 'string' == typeof target) { - target = document.getElementById(target); - } - baidu.dom.insertHTML( target || document.body ,'beforeEnd',html ); -}; -/** - * 判断是否为ie浏览器 - * @name baidu.browser.ie - * @field - * @grammar baidu.browser.ie - * @returns {Number} IE版本号 - */ -baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? (document.documentMode || + RegExp['\x241']) : undefined; - -/** - * 移除数组中的项 - * @name baidu.array.remove - * @function - * @grammar baidu.array.remove(source, match) - * @param {Array} source 需要移除项的数组 - * @param {Any} match 要移除的项 - * @meta standard - * @see baidu.array.removeAt - * - * @returns {Array} 移除后的数组 - */ -baidu.array.remove = function (source, match) { - var len = source.length; - - while (len--) { - if (len in source && source[len] === match) { - source.splice(len, 1); - } - } - return source; -}; - -/** - * 判断目标参数是否Array对象 - * @name baidu.lang.isArray - * @function - * @grammar baidu.lang.isArray(source) - * @param {Any} source 目标参数 - * @meta standard - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isArray = function (source) { - return '[object Array]' == Object.prototype.toString.call(source); -}; - - - -/** - * 将一个变量转换成array - * @name baidu.lang.toArray - * @function - * @grammar baidu.lang.toArray(source) - * @param {mix} source 需要转换成array的变量 - * @version 1.3 - * @meta standard - * @returns {array} 转换后的array - */ -baidu.lang.toArray = function (source) { - if (source === null || source === undefined) - return []; - if (baidu.lang.isArray(source)) - return source; - if (typeof source.length !== 'number' || typeof source === 'string' || baidu.lang.isFunction(source)) { - return [source]; - } - if (source.item) { - var l = source.length, array = new Array(l); - while (l--) - array[l] = source[l]; - return array; - } - - return [].slice.call(source); -}; - -/** - * 获得flash对象的实例 - * @name baidu.swf.getMovie - * @function - * @grammar baidu.swf.getMovie(name) - * @param {string} name flash对象的名称 - * @see baidu.swf.create - * @meta standard - * @returns {HTMLElement} flash对象的实例 - */ -baidu.swf.getMovie = function (name) { - var movie = document[name], ret; - return baidu.browser.ie == 9 ? - movie && movie.length ? - (ret = baidu.array.remove(baidu.lang.toArray(movie),function(item){ - return item.tagName.toLowerCase() != "embed"; - })).length == 1 ? ret[0] : ret - : movie - : movie || window[name]; -}; - - -baidu.flash._Base = (function(){ - - var prefix = 'bd__flash__'; - - /** - * 创建一个随机的字符串 - * @private - * @return {String} - */ - function _createString(){ - return prefix + Math.floor(Math.random() * 2147483648).toString(36); - }; - - /** - * 检查flash状态 - * @private - * @param {Object} target flash对象 - * @return {Boolean} - */ - function _checkReady(target){ - if(typeof target !== 'undefined' && typeof target.flashInit !== 'undefined' && target.flashInit()){ - return true; - }else{ - return false; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @param {Array} callQueue 调用队列 - * @param {Object} target flash对象 - * @return {Null} - */ - function _callFn(callQueue, target){ - var result = null; - - callQueue = callQueue.reverse(); - baidu.each(callQueue, function(item){ - result = target.call(item.fnName, item.params); - item.callBack(result); - }); - }; - - /** - * 为传入的匿名函数创建函数名 - * @private - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - function _createFunName(fun){ - var name = ''; - - if(baidu.lang.isFunction(fun)){ - name = _createString(); - window[name] = function(){ - fun.apply(window, arguments); - }; - - return name; - }else if(baidu.lang.isString){ - return fun; - } - }; - - /** - * 绘制flash - * @private - * @param {Object} options 创建参数 - * @return {Object} - */ - function _render(options){ - if(!options.id){ - options.id = _createString(); - } - - var container = options.container || ''; - delete(options.container); - - baidu.swf.create(options, container); - - return baidu.swf.getMovie(options.id); - }; - - return function(options, callBack){ - var me = this, - autoRender = (typeof options.autoRender !== 'undefined' ? options.autoRender : true), - createOptions = options.createOptions || {}, - target = null, - isReady = false, - callQueue = [], - timeHandle = null, - callBack = callBack || []; - - /** - * 将flash文件绘制到页面上 - * @public - * @return {Null} - */ - me.render = function(){ - target = _render(createOptions); - - if(callBack.length > 0){ - baidu.each(callBack, function(funName, index){ - callBack[index] = _createFunName(options[funName] || new Function()); - }); - } - me.call('setJSFuncName', [callBack]); - }; - - /** - * 返回flash状态 - * @return {Boolean} - */ - me.isReady = function(){ - return isReady; - }; - - /** - * 调用flash接口的统一入口 - * @param {String} fnName 调用的函数名 - * @param {Array} params 传入的参数组成的数组,若不许要参数,需传入空数组 - * @param {Function} [callBack] 异步调用后将返回值作为参数的调用回调函数,如无返回值,可以不传入此参数 - * @return {Null} - */ - me.call = function(fnName, params, callBack){ - if(!fnName) return null; - callBack = callBack || new Function(); - - var result = null; - - if(isReady){ - result = target.call(fnName, params); - callBack(result); - }else{ - callQueue.push({ - fnName: fnName, - params: params, - callBack: callBack - }); - - (!timeHandle) && (timeHandle = setInterval(_check, 200)); - } - }; - - /** - * 为传入的匿名函数创建函数名 - * @public - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - me.createFunName = function(fun){ - return _createFunName(fun); - }; - - /** - * 检查flash是否ready, 并进行调用 - * @private - * @return {Null} - */ - function _check(){ - if(_checkReady(target)){ - clearInterval(timeHandle); - timeHandle = null; - _call(); - - isReady = true; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @return {Null} - */ - function _call(){ - _callFn(callQueue, target); - callQueue = []; - } - - autoRender && me.render(); - }; -})(); - - - -/** - * 创建flash based imageUploader - * @class - * @grammar baidu.flash.imageUploader(options) - * @param {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {Object} vars 创建imageUploader时所需要的参数 - * @config {Number} vars.gridWidth 每一个预览图片所占的宽度,应该为flash寛的整除 - * @config {Number} vars.gridHeight 每一个预览图片所占的高度,应该为flash高的整除 - * @config {Number} vars.picWidth 单张预览图片的宽度 - * @config {Number} vars.picHeight 单张预览图片的高度 - * @config {String} vars.uploadDataFieldName POST请求中图片数据的key,默认值'picdata' - * @config {String} vars.picDescFieldName POST请求中图片描述的key,默认值'picDesc' - * @config {Number} vars.maxSize 文件的最大体积,单位'MB' - * @config {Number} vars.compressSize 上传前如果图片体积超过该值,会先压缩 - * @config {Number} vars.maxNum:32 最大上传多少个文件 - * @config {Number} vars.compressLength 能接受的最大边长,超过该值会等比压缩 - * @config {String} vars.url 上传的url地址 - * @config {Number} vars.mode mode == 0时,是使用滚动条,mode == 1时,拉伸flash, 默认值为0 - * @see baidu.swf.createHTML - * @param {String} backgroundUrl 背景图片路径 - * @param {String} listBacgroundkUrl 布局控件背景 - * @param {String} buttonUrl 按钮图片不背景 - * @param {String|Function} selectFileCallback 选择文件的回调 - * @param {String|Function} exceedFileCallback文件超出限制的最大体积时的回调 - * @param {String|Function} deleteFileCallback 删除文件的回调 - * @param {String|Function} startUploadCallback 开始上传某个文件时的回调 - * @param {String|Function} uploadCompleteCallback 某个文件上传完成的回调 - * @param {String|Function} uploadErrorCallback 某个文件上传失败的回调 - * @param {String|Function} allCompleteCallback 全部上传完成时的回调 - * @param {String|Function} changeFlashHeight 改变Flash的高度,mode==1的时候才有用 - */ -baidu.flash.imageUploader = baidu.flash.imageUploader || function(options){ - - var me = this, - options = options || {}, - _flash = new baidu.flash._Base(options, [ - 'selectFileCallback', - 'exceedFileCallback', - 'deleteFileCallback', - 'startUploadCallback', - 'uploadCompleteCallback', - 'uploadErrorCallback', - 'allCompleteCallback', - 'changeFlashHeight' - ]); - /** - * 开始或回复上传图片 - * @public - * @return {Null} - */ - me.upload = function(){ - _flash.call('upload'); - }; - - /** - * 暂停上传图片 - * @public - * @return {Null} - */ - me.pause = function(){ - _flash.call('pause'); - }; - me.addCustomizedParams = function(index,obj){ - _flash.call('addCustomizedParams',[index,obj]); - } -}; - -/** - * 操作原生对象的方法 - * @namespace baidu.object - */ -baidu.object = baidu.object || {}; - - -/** - * 将源对象的所有属性拷贝到目标对象中 - * @author erik - * @name baidu.object.extend - * @function - * @grammar baidu.object.extend(target, source) - * @param {Object} target 目标对象 - * @param {Object} source 源对象 - * @see baidu.array.merge - * @remark - * -1.目标对象中,与源对象key相同的成员将会被覆盖。
    -2.源对象的prototype成员不会拷贝。 - - * @shortcut extend - * @meta standard - * - * @returns {Object} 目标对象 - */ -baidu.extend = -baidu.object.extend = function (target, source) { - for (var p in source) { - if (source.hasOwnProperty(p)) { - target[p] = source[p]; - } - } - - return target; -}; - - - - - -/** - * 创建flash based fileUploader - * @class - * @grammar baidu.flash.fileUploader(options) - * @param {Object} options - * @config {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {String} createOptions.width - * @config {String} createOptions.height - * @config {Number} maxNum 最大可选文件数 - * @config {Function|String} selectFile - * @config {Function|String} exceedMaxSize - * @config {Function|String} deleteFile - * @config {Function|String} uploadStart - * @config {Function|String} uploadComplete - * @config {Function|String} uploadError - * @config {Function|String} uploadProgress - */ -baidu.flash.fileUploader = baidu.flash.fileUploader || function(options){ - var me = this, - options = options || {}; - - options.createOptions = baidu.extend({ - wmod: 'transparent' - },options.createOptions || {}); - - var _flash = new baidu.flash._Base(options, [ - 'selectFile', - 'exceedMaxSize', - 'deleteFile', - 'uploadStart', - 'uploadComplete', - 'uploadError', - 'uploadProgress' - ]); - - _flash.call('setMaxNum', options.maxNum ? [options.maxNum] : [1]); - - /** - * 设置当鼠标移动到flash上时,是否变成手型 - * @public - * @param {Boolean} isCursor - * @return {Null} - */ - me.setHandCursor = function(isCursor){ - _flash.call('setHandCursor', [isCursor || false]); - }; - - /** - * 设置鼠标相应函数名 - * @param {String|Function} fun - */ - me.setMSFunName = function(fun){ - _flash.call('setMSFunName',[_flash.createFunName(fun)]); - }; - - /** - * 执行上传操作 - * @param {String} url 上传的url - * @param {String} fieldName 上传的表单字段名 - * @param {Object} postData 键值对,上传的POST数据 - * @param {Number|Array|null|-1} [index]上传的文件序列 - * Int值上传该文件 - * Array一次串行上传该序列文件 - * -1/null上传所有文件 - * @return {Null} - */ - me.upload = function(url, fieldName, postData, index){ - - if(typeof url !== 'string' || typeof fieldName !== 'string') return null; - if(typeof index === 'undefined') index = -1; - - _flash.call('upload', [url, fieldName, postData, index]); - }; - - /** - * 取消上传操作 - * @public - * @param {Number|-1} index - */ - me.cancel = function(index){ - if(typeof index === 'undefined') index = -1; - _flash.call('cancel', [index]); - }; - - /** - * 删除文件 - * @public - * @param {Number|Array} [index] 要删除的index,不传则全部删除 - * @param {Function} callBack - * */ - me.deleteFile = function(index, callBack){ - - var callBackAll = function(list){ - callBack && callBack(list); - }; - - if(typeof index === 'undefined'){ - _flash.call('deleteFilesAll', [], callBackAll); - return; - }; - - if(typeof index === 'Number') index = [index]; - index.sort(function(a,b){ - return b-a; - }); - baidu.each(index, function(item){ - _flash.call('deleteFileBy', item, callBackAll); - }); - }; - - /** - * 添加文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.addFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('addFileTypes', type); - }; - - /** - * 设置文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.setFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('setFileTypes', type); - }; - - /** - * 设置可选文件的数量限制 - * @public - * @param {Number} num - * @return {Null} - */ - me.setMaxNum = function(num){ - _flash.call('setMaxNum', [num]); - }; - - /** - * 设置可选文件大小限制,以兆M为单位 - * @public - * @param {Number} num,0为无限制 - * @return {Null} - */ - me.setMaxSize = function(num){ - _flash.call('setMaxSize', [num]); - }; - - /** - * @public - */ - me.getFileAll = function(callBack){ - _flash.call('getFileAll', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {Function} [callBack] - */ - me.getFileByIndex = function(index, callBack){ - _flash.call('getFileByIndex', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {function} [callBack] - */ - me.getStatusByIndex = function(index, callBack){ - _flash.call('getStatusByIndex', [], callBack); - }; -}; - -/** - * 使用动态script标签请求服务器资源,包括由服务器端的回调和浏览器端的回调 - * @namespace baidu.sio - */ -baidu.sio = baidu.sio || {}; - -/** - * - * @param {HTMLElement} src script节点 - * @param {String} url script节点的地址 - * @param {String} [charset] 编码 - */ -baidu.sio._createScriptTag = function(scr, url, charset){ - scr.setAttribute('type', 'text/javascript'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); -}; - -/** - * 删除script的属性,再删除script标签,以解决修复内存泄漏的问题 - * - * @param {HTMLElement} src script节点 - */ -baidu.sio._removeScriptTag = function(scr){ - if (scr.clearAttributes) { - scr.clearAttributes(); - } else { - for (var attr in scr) { - if (scr.hasOwnProperty(attr)) { - delete scr[attr]; - } - } - } - if(scr && scr.parentNode){ - scr.parentNode.removeChild(scr); - } - scr = null; -}; - - -/** - * 通过script标签加载数据,加载完成由浏览器端触发回调 - * @name baidu.sio.callByBrowser - * @function - * @grammar baidu.sio.callByBrowser(url, opt_callback, opt_options) - * @param {string} url 加载数据的url - * @param {Function|string} opt_callback 数据加载结束时调用的函数或函数名 - * @param {Object} opt_options 其他可选项 - * @config {String} [charset] script的字符集 - * @config {Integer} [timeOut] 超时时间,超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 1、与callByServer不同,callback参数只支持Function类型,不支持string。 - * 2、如果请求了一个不存在的页面,callback函数在IE/opera下也会被调用,因此使用者需要在onsuccess函数中判断数据是否正确加载。 - * @meta standard - * @see baidu.sio.callByServer - */ -baidu.sio.callByBrowser = function (url, opt_callback, opt_options) { - var scr = document.createElement("SCRIPT"), - scriptLoaded = 0, - options = opt_options || {}, - charset = options['charset'], - callback = opt_callback || function(){}, - timeOut = options['timeOut'] || 0, - timer; - scr.onload = scr.onreadystatechange = function () { - if (scriptLoaded) { - return; - } - - var readyState = scr.readyState; - if ('undefined' == typeof readyState - || readyState == "loaded" - || readyState == "complete") { - scriptLoaded = 1; - try { - callback(); - clearTimeout(timer); - } finally { - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - } - } - }; - - if( timeOut ){ - timer = setTimeout(function(){ - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - options.onfailure && options.onfailure(); - }, timeOut); - } - - baidu.sio._createScriptTag(scr, url, charset); -}; - -/** - * 通过script标签加载数据,加载完成由服务器端触发回调 - * @name baidu.sio.callByServer - * @function - * @grammar baidu.sio.callByServer(url, callback[, opt_options]) - * @param {string} url 加载数据的url. - * @param {Function|string} callback 服务器端调用的函数或函数名。如果没有指定本参数,将在URL中寻找options['queryField']做为callback的方法名. - * @param {Object} opt_options 加载数据时的选项. - * @config {string} [charset] script的字符集 - * @config {string} [queryField] 服务器端callback请求字段名,默认为callback - * @config {Integer} [timeOut] 超时时间(单位:ms),超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 如果url中已经包含key为“options['queryField']”的query项,将会被替换成callback中参数传递或自动生成的函数名。 - * @meta standard - * @see baidu.sio.callByBrowser - */ -baidu.sio.callByServer = /**@function*/function(url, callback, opt_options) { - var scr = document.createElement('SCRIPT'), - prefix = 'bd__cbs__', - callbackName, - callbackImpl, - options = opt_options || {}, - charset = options['charset'], - queryField = options['queryField'] || 'callback', - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + queryField + '=([^&]*)'), - matches; - - if (baidu.lang.isFunction(callback)) { - callbackName = prefix + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackName] = getCallBack(0); - } else if(baidu.lang.isString(callback)){ - callbackName = callback; - } else { - if (matches = reg.exec(url)) { - callbackName = matches[2]; - } - } - - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - url = url.replace(reg, '\x241' + queryField + '=' + callbackName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + queryField + '=' + callbackName; - } - baidu.sio._createScriptTag(scr, url, charset); - - /* - * 返回一个函数,用于立即(挂在window上)或者超时(挂在setTimeout中)时执行 - */ - function getCallBack(onTimeOut){ - /*global callbackName, callback, scr, options;*/ - return function(){ - try { - if( onTimeOut ){ - options.onfailure && options.onfailure(); - }else{ - callback.apply(window, arguments); - clearTimeout(timer); - } - window[callbackName] = null; - delete window[callbackName]; - } catch (exception) { - } finally { - baidu.sio._removeScriptTag(scr); - } - } - } -}; - -/** - * 通过请求一个图片的方式令服务器存储一条日志 - * @function - * @grammar baidu.sio.log(url) - * @param {string} url 要发送的地址. - * @author: int08h,leeight - */ -baidu.sio.log = function(url) { - var img = new Image(), - key = 'tangram_sio_log_' + Math.floor(Math.random() * - 2147483648).toString(36); - window[key] = img; - - img.onload = img.onerror = img.onabort = function() { - img.onload = img.onerror = img.onabort = null; - - window[key] = null; - img = null; - }; - img.src = url; -}; - - - -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json.js - * author: erik - * version: 1.1.0 - * date: 2009/12/02 - */ - - -/** - * 操作json对象的方法 - * @namespace baidu.json - */ -baidu.json = baidu.json || {}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/parse.js - * author: erik, berg - * version: 1.2 - * date: 2009/11/23 - */ - - - -/** - * 将字符串解析成json对象。注:不会自动祛除空格 - * @name baidu.json.parse - * @function - * @grammar baidu.json.parse(data) - * @param {string} source 需要解析的字符串 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.parse不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.stringify,baidu.json.decode - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.parse = function (data) { - //2010/12/09:更新至不使用原生parse,不检测用户输入是否正确 - return (new Function("return (" + data + ")"))(); -}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/decode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将字符串解析成json对象,为过时接口,今后会被baidu.json.parse代替 - * @name baidu.json.decode - * @function - * @grammar baidu.json.decode(source) - * @param {string} source 需要解析的字符串 - * @meta out - * @see baidu.json.encode,baidu.json.parse - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.decode = baidu.json.parse; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/stringify.js - * author: erik - * version: 1.1.0 - * date: 2010/01/11 - */ - - - -/** - * 将json对象序列化 - * @name baidu.json.stringify - * @function - * @grammar baidu.json.stringify(value) - * @param {JSON} value 需要序列化的json对象 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.stringify不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.parse,baidu.json.encode - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.stringify = (function () { - /** - * 字符串处理时需要转义的字符表 - * @private - */ - var escapeMap = { - "\b": '\\b', - "\t": '\\t', - "\n": '\\n', - "\f": '\\f', - "\r": '\\r', - '"' : '\\"', - "\\": '\\\\' - }; - - /** - * 字符串序列化 - * @private - */ - function encodeString(source) { - if (/["\\\x00-\x1f]/.test(source)) { - source = source.replace( - /["\\\x00-\x1f]/g, - function (match) { - var c = escapeMap[match]; - if (c) { - return c; - } - c = match.charCodeAt(); - return "\\u00" - + Math.floor(c / 16).toString(16) - + (c % 16).toString(16); - }); - } - return '"' + source + '"'; - } - - /** - * 数组序列化 - * @private - */ - function encodeArray(source) { - var result = ["["], - l = source.length, - preComma, i, item; - - for (i = 0; i < l; i++) { - item = source[i]; - - switch (typeof item) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(preComma) { - result.push(','); - } - result.push(baidu.json.stringify(item)); - preComma = 1; - } - } - result.push("]"); - return result.join(""); - } - - /** - * 处理日期序列化时的补零 - * @private - */ - function pad(source) { - return source < 10 ? '0' + source : source; - } - - /** - * 日期序列化 - * @private - */ - function encodeDate(source){ - return '"' + source.getFullYear() + "-" - + pad(source.getMonth() + 1) + "-" - + pad(source.getDate()) + "T" - + pad(source.getHours()) + ":" - + pad(source.getMinutes()) + ":" - + pad(source.getSeconds()) + '"'; - } - - return function (value) { - switch (typeof value) { - case 'undefined': - return 'undefined'; - - case 'number': - return isFinite(value) ? String(value) : "null"; - - case 'string': - return encodeString(value); - - case 'boolean': - return String(value); - - default: - if (value === null) { - return 'null'; - } else if (value instanceof Array) { - return encodeArray(value); - } else if (value instanceof Date) { - return encodeDate(value); - } else { - var result = ['{'], - encode = baidu.json.stringify, - preComma, - item; - - for (var key in value) { - if (Object.prototype.hasOwnProperty.call(value, key)) { - item = value[key]; - switch (typeof item) { - case 'undefined': - case 'unknown': - case 'function': - break; - default: - if (preComma) { - result.push(','); - } - preComma = 1; - result.push(encode(key) + ':' + encode(item)); - } - } - } - result.push('}'); - return result.join(''); - } - } - }; -})(); -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/encode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将json对象序列化,为过时接口,今后会被baidu.json.stringify代替 - * @name baidu.json.encode - * @function - * @grammar baidu.json.encode(value) - * @param {JSON} value 需要序列化的json对象 - * @meta out - * @see baidu.json.decode,baidu.json.stringify - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.encode = baidu.json.stringify; diff --git a/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.html b/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.html deleted file mode 100644 index f8c0905..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    - -
    - : -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.js b/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.js deleted file mode 100644 index e360263..0000000 --- a/yshop-drink-vue/public/UEditor/dialogs/wordimage/wordimage.js +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-1-30 - * Time: 下午12:50 - * To change this template use File | Settings | File Templates. - */ - - - -var wordImage = {}; -//(function(){ -var g = baidu.g, - flashObj,flashContainer; - -wordImage.init = function(opt, callbacks) { - showLocalPath("localPath"); - //createCopyButton("clipboard","localPath"); - createFlashUploader(opt, callbacks); - addUploadListener(); - addOkListener(); -}; - -function hideFlash(){ - flashObj = null; - flashContainer.innerHTML = ""; -} -function addOkListener() { - dialog.onok = function() { - if (!imageUrls.length) return; - var urlPrefix = editor.getOpt('imageUrlPrefix'), - images = domUtils.getElementsByTagName(editor.document,"img"); - editor.fireEvent('saveScene'); - for (var i = 0,img; img = images[i++];) { - var src = img.getAttribute("word_img"); - if (!src) continue; - for (var j = 0,url; url = imageUrls[j++];) { - if (src.indexOf(url.original.replace(" ","")) != -1) { - img.src = urlPrefix + url.url; - img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 - img.setAttribute("title",url.title); - domUtils.removeAttributes(img, ["word_img","style","width","height"]); - editor.fireEvent("selectionchange"); - break; - } - } - } - editor.fireEvent('saveScene'); - hideFlash(); - }; - dialog.oncancel = function(){ - hideFlash(); - } -} - -/** - * 绑定开始上传事件 - */ -function addUploadListener() { - g("upload").onclick = function () { - flashObj.upload(); - this.style.display = "none"; - }; -} - -function showLocalPath(id) { - //单张编辑 - var img = editor.selection.getRange().getClosedNode(); - var images = editor.execCommand('wordimage'); - if(images.length==1 || img && img.tagName == 'IMG'){ - g(id).value = images[0]; - return; - } - var path = images[0]; - var leftSlashIndex = path.lastIndexOf("/")||0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 - rightSlashIndex = path.lastIndexOf("\\")||0, - separater = leftSlashIndex > rightSlashIndex ? "/":"\\" ; - - path = path.substring(0, path.lastIndexOf(separater)+1); - g(id).value = path; -} - -function createFlashUploader(opt, callbacks) { - //由于lang.flashI18n是静态属性,不可以直接进行修改,否则会影响到后续内容 - var i18n = utils.extend({},lang.flashI18n); - //处理图片资源地址的编码,补全等问题 - for(var i in i18n){ - if(!(i in {"lang":1,"uploadingTF":1,"imageTF":1,"textEncoding":1}) && i18n[i]){ - i18n[i] = encodeURIComponent(editor.options.langPath + editor.options.lang + "/images/" + i18n[i]); - } - } - opt = utils.extend(opt,i18n,false); - var option = { - createOptions:{ - id:'flash', - url:opt.flashUrl, - width:opt.width, - height:opt.height, - errorMessage:lang.flashError, - wmode:browser.safari ? 'transparent' : 'window', - ver:'10.0.0', - vars:opt, - container:opt.container - } - }; - - option = extendProperty(callbacks, option); - flashObj = new baidu.flash.imageUploader(option); - flashContainer = $G(opt.container); -} - -function extendProperty(fromObj, toObj) { - for (var i in fromObj) { - if (!toObj[i]) { - toObj[i] = fromObj[i]; - } - } - return toObj; -} - -//})(); - -function getPasteData(id) { - baidu.g("msg").innerHTML = lang.copySuccess + "
    "; - setTimeout(function() { - baidu.g("msg").innerHTML = ""; - }, 5000); - return baidu.g(id).value; -} - -function createCopyButton(id, dataFrom) { - baidu.swf.create({ - id:"copyFlash", - url:"fClipboard_ueditor.swf", - width:"58", - height:"25", - errorMessage:"", - bgColor:"#CBCBCB", - wmode:"transparent", - ver:"10.0.0", - vars:{ - tid:dataFrom - } - }, id - ); - - var clipboard = baidu.swf.getMovie("copyFlash"); - var clipinterval = setInterval(function() { - if (clipboard && clipboard.flashInit) { - clearInterval(clipinterval); - clipboard.setHandCursor(true); - clipboard.setContentFuncName("getPasteData"); - //clipboard.setMEFuncName("mouseEventHandler"); - } - }, 500); -} -createCopyButton("clipboard", "localPath"); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/index.html b/yshop-drink-vue/public/UEditor/index.html deleted file mode 100644 index f02b43c..0000000 --- a/yshop-drink-vue/public/UEditor/index.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - 完整demo - - - - - - - - - - -
    -

    完整demo

    - -
    -
    -
    - - - - - - - - - - - -
    -
    - - - - - - - -
    - -
    - - -
    - -
    -
    - - -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/lang/en/en.js b/yshop-drink-vue/public/UEditor/lang/en/en.js deleted file mode 100644 index 592eb7c..0000000 --- a/yshop-drink-vue/public/UEditor/lang/en/en.js +++ /dev/null @@ -1,755 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-6-12 - * Time: 下午6:57 - * To change this template use File | Settings | File Templates. - */ -UE.I18N['en'] = { - 'labelMap': { - 'anchor': 'Anchor', - 'undo': 'Undo', - 'redo': 'Redo', - 'bold': 'Bold', - 'indent': 'Indent', - 'snapscreen': 'SnapScreen', - 'italic': 'Italic', - 'underline': 'Underline', - 'strikethrough': 'Strikethrough', - 'subscript': 'SubScript', - 'fontborder': 'text border', - 'superscript': 'SuperScript', - 'formatmatch': 'Format Match', - 'source': 'Source', - 'blockquote': 'BlockQuote', - 'pasteplain': 'PastePlain', - 'selectall': 'SelectAll', - 'print': 'Print', - 'preview': 'Preview', - 'horizontal': 'Horizontal', - 'removeformat': 'RemoveFormat', - 'time': 'Time', - 'date': 'Date', - 'unlink': 'Unlink', - 'insertrow': 'InsertRow', - 'insertcol': 'InsertCol', - 'mergeright': 'MergeRight', - 'mergedown': 'MergeDown', - 'deleterow': 'DeleteRow', - 'deletecol': 'DeleteCol', - 'splittorows': 'SplitToRows', - 'insertcode': 'insert code', - 'splittocols': 'SplitToCols', - 'splittocells': 'SplitToCells', - 'deletecaption': 'DeleteCaption', - 'inserttitle': 'InsertTitle', - 'mergecells': 'MergeCells', - 'deletetable': 'DeleteTable', - 'cleardoc': 'Clear', - 'insertparagraphbeforetable': 'InsertParagraphBeforeTable', - 'fontfamily': 'FontFamily', - 'fontsize': 'FontSize', - 'paragraph': 'Paragraph', - 'simpleupload': 'Single Image', - 'insertimage': 'Multi Image', - 'edittable': 'Edit Table', - 'edittd': 'Edit Td', - 'link': 'Link', - 'emotion': 'Emotion', - 'spechars': 'Spechars', - 'searchreplace': 'SearchReplace', - 'map': 'BaiduMap', - 'gmap': 'GoogleMap', - 'insertvideo': 'Video', - 'help': 'Help', - 'justifyleft': 'JustifyLeft', - 'justifyright': 'JustifyRight', - 'justifycenter': 'JustifyCenter', - 'justifyjustify': 'Justify', - 'forecolor': 'FontColor', - 'backcolor': 'BackColor', - 'insertorderedlist': 'OL', - 'insertunorderedlist': 'UL', - 'fullscreen': 'FullScreen', - 'directionalityltr': 'EnterFromLeft', - 'directionalityrtl': 'EnterFromRight', - 'rowspacingtop': 'RowSpacingTop', - 'rowspacingbottom': 'RowSpacingBottom', - 'pagebreak': 'PageBreak', - 'insertframe': 'Iframe', - 'imagenone': 'Default', - 'imageleft': 'ImageLeft', - 'imageright': 'ImageRight', - 'attachment': 'Attachment', - 'imagecenter': 'ImageCenter', - 'wordimage': 'WordImage', - 'lineheight': 'LineHeight', - 'edittip': 'EditTip', - 'customstyle': 'CustomStyle', - 'scrawl': 'Scrawl', - 'autotypeset': 'AutoTypeset', - 'webapp': 'WebAPP', - 'touppercase': 'UpperCase', - 'tolowercase': 'LowerCase', - 'template': 'Template', - 'background': 'Background', - 'inserttable': 'InsertTable', - 'music': 'Music', - 'charts': 'charts', - 'drafts': 'Load from Drafts' - }, - 'insertorderedlist': { - 'num': '1,2,3...', - 'num1': '1),2),3)...', - 'num2': '(1),(2),(3)...', - 'cn': '一,二,三....', - 'cn1': '一),二),三)....', - 'cn2': '(一),(二),(三)....', - 'decimal': '1,2,3...', - 'lower-alpha': 'a,b,c...', - 'lower-roman': 'i,ii,iii...', - 'upper-alpha': 'A,B,C...', - 'upper-roman': 'I,II,III...' - }, - 'insertunorderedlist': { - 'circle': '○ Circle', - 'disc': '● Circle dot', - 'square': '■ Rectangle ', - 'dash': '- Dash', - 'dot': '。dot' - }, - 'paragraph': { 'p': 'Paragraph', 'h1': 'Title 1', 'h2': 'Title 2', 'h3': 'Title 3', 'h4': 'Title 4', 'h5': 'Title 5', 'h6': 'Title 6' }, - 'fontfamily': { - 'songti': 'Sim Sun', - 'kaiti': 'Sim Kai', - 'heiti': 'Sim Hei', - 'lishu': 'Sim Li', - 'yahei': 'Microsoft YaHei', - 'andaleMono': 'Andale Mono', - 'arial': 'Arial', - 'arialBlack': 'Arial Black', - 'comicSansMs': 'Comic Sans MS', - 'impact': 'Impact', - 'timesNewRoman': 'Times New Roman' - }, - 'customstyle': { - 'tc': 'Title center', - 'tl': 'Title left', - 'im': 'Important', - 'hi': 'Highlight' - }, - 'autoupload': { - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading': 'loading...', - 'loadError': 'load error', - 'errorLoadConfig': 'Server config not loaded, upload can not work.' - }, - 'simpleupload': { - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading': 'loading...', - 'loadError': 'load error', - 'errorLoadConfig': 'Server config not loaded, upload can not work.' - }, - 'elementPathTip': 'Path', - 'wordCountTip': 'Word Count', - 'wordCountMsg': '{#count} characters entered,{#leave} left. ', - 'wordOverFlowMsg': 'The number of characters has exceeded allowable maximum values, the server may refuse to save!', - 'ok': 'OK', - 'cancel': 'Cancel', - 'closeDialog': 'closeDialog', - 'tableDrag': 'You must import the file uiUtils.js before drag! ', - 'autofloatMsg': 'The plugin AutoFloat depends on EditorUI!', - 'loadconfigError': 'Get server config error.', - 'loadconfigFormatError': 'Server config format error.', - 'loadconfigHttpError': 'Get server config http error.', - 'snapScreen_plugin': { - 'browserMsg': 'Only IE supported!', - 'callBackErrorMsg': 'The callback data is wrong,please check the config!', - 'uploadErrorMsg': 'Upload error,please check your server environment! ' - }, - 'insertcode': { - 'as3': 'ActionScript 3', - 'bash': 'Bash/Shell', - 'cpp': 'C/C++', - 'css': 'CSS', - 'cf': 'ColdFusion', - 'c#': 'C#', - 'delphi': 'Delphi', - 'diff': 'Diff', - 'erlang': 'Erlang', - 'groovy': 'Groovy', - 'html': 'HTML', - 'java': 'Java', - 'jfx': 'JavaFX', - 'js': 'JavaScript', - 'pl': 'Perl', - 'php': 'PHP', - 'plain': 'Plain Text', - 'ps': 'PowerShell', - 'python': 'Python', - 'ruby': 'Ruby', - 'scala': 'Scala', - 'sql': 'SQL', - 'vb': 'Visual Basic', - 'xml': 'XML' - }, - 'confirmClear': 'Do you confirm to clear the Document?', - 'contextMenu': { - 'delete': 'Delete', - 'selectall': 'Select all', - 'deletecode': 'Delete Code', - 'cleardoc': 'Clear Document', - 'confirmclear': 'Do you confirm to clear the Document?', - 'unlink': 'Unlink', - 'paragraph': 'Paragraph', - 'edittable': 'Table property', - 'aligncell': 'Align cell', - 'aligntable': 'Table alignment', - 'tableleft': 'Left float', - 'tablecenter': 'Center', - 'tableright': 'Right float', - 'aligntd': 'Cell alignment', - 'edittd': 'Cell property', - 'setbordervisible': 'set table edge visible', - 'table': 'Table', - 'justifyleft': 'Justify Left', - 'justifyright': 'Justify Right', - 'justifycenter': 'Justify Center', - 'justifyjustify': 'Default', - 'deletetable': 'Delete table', - 'insertparagraphbefore': 'InsertedBeforeLine', - 'insertparagraphafter': 'InsertedAfterLine', - 'inserttable': 'Insert table', - 'insertcaption': 'Insert caption', - 'deletecaption': 'Delete Caption', - 'inserttitle': 'Insert Title', - 'deletetitle': 'Delete Title', - 'inserttitlecol': 'Insert Title Col', - 'deletetitlecol': 'Delete Title Col', - 'averageDiseRow': 'AverageDise Row', - 'averageDisCol': 'AverageDis Col', - 'deleterow': 'Delete row', - 'deletecol': 'Delete col', - 'insertrow': 'Insert row', - 'insertcol': 'Insert col', - 'insertrownext': 'Insert Row Next', - 'insertcolnext': 'Insert Col Next', - 'mergeright': 'Merge right', - 'mergeleft': 'Merge left', - 'mergedown': 'Merge down', - 'mergecells': 'Merge cells', - 'splittocells': 'Split to cells', - 'splittocols': 'Split to Cols', - 'splittorows': 'Split to Rows', - 'tablesort': 'Table sorting', - 'enablesort': 'Sorting Enable', - 'disablesort': 'Sorting Disable', - 'reversecurrent': 'Reverse current', - 'orderbyasc': 'Order By ASCII', - 'reversebyasc': 'Reverse By ASCII', - 'orderbynum': 'Order By Num', - 'reversebynum': 'Reverse By Num', - 'borderbk': 'Border shading', - 'setcolor': 'interlaced color', - 'unsetcolor': 'Cancel interlacedcolor', - 'setbackground': 'Background interlaced', - 'unsetbackground': 'Cancel Bk interlaced', - 'redandblue': 'Blue and red', - 'threecolorgradient': 'Three-color gradient', - 'copy': 'Copy(Ctrl + c)', - 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", - 'paste': 'Paste(Ctrl + v)', - 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!" - }, - 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", - 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!", - 'anthorMsg': 'Link', - 'clearColor': 'Clear', - 'standardColor': 'Standard color', - 'themeColor': 'Theme color', - 'property': 'Property', - 'default': 'Default', - 'modify': 'Modify', - 'justifyleft': 'Justify Left', - 'justifyright': 'Justify Right', - 'justifycenter': 'Justify Center', - 'justify': 'Default', - 'clear': 'Clear', - 'anchorMsg': 'Anchor', - 'delete': 'Delete', - 'clickToUpload': 'Click to upload', - 'unset': 'Language hasn\'t been set!', - 't_row': 'row', - 't_col': 'col', - 'pasteOpt': 'Paste Option', - 'pasteSourceFormat': 'Keep Source Formatting', - 'tagFormat': 'Keep tag', - 'pasteTextFormat': 'Keep Text only', - 'more': 'More', - 'autoTypeSet': { - 'mergeLine': 'Merge empty line', - 'delLine': 'Del empty line', - 'removeFormat': 'Remove format', - 'indent': 'Indent', - 'alignment': 'Alignment', - 'imageFloat': 'Image float', - 'removeFontsize': 'Remove font size', - 'removeFontFamily': 'Remove fontFamily', - 'removeHtml': 'Remove redundant HTML code', - 'pasteFilter': 'Paste filter', - 'run': 'Done', - 'symbol': 'Symbol Conversion', - 'bdc2sb': 'Full-width to Half-width', - 'tobdc': 'Half-width to Full-width' - }, - - 'background': { - 'static': { - 'lang_background_normal': 'Normal', - 'lang_background_local': 'Online', - 'lang_background_set': 'Background Set', - 'lang_background_none': 'No Background', - 'lang_background_colored': 'Colored Background', - 'lang_background_color': 'Color Set', - 'lang_background_netimg': 'Net-Image', - 'lang_background_align': 'Align Type', - 'lang_background_position': 'Position', - 'repeatType': { 'options': ['Center', 'Repeat-x', 'Repeat-y', 'Tile', 'Custom'] } - }, - 'noUploadImage': 'No pictures has been uploaded!', - 'toggleSelect': 'Change the active state by click!\n Image Size: ' - }, - //= ==============dialog i18N======================= - 'insertimage': { - 'static': { - 'lang_tab_remote': 'Insert', - 'lang_tab_upload': 'Local', - 'lang_tab_online': 'Manager', - 'lang_tab_search': 'Search', - 'lang_input_url': 'Address:', - 'lang_input_size': 'Size:', - 'lang_input_width': 'Width', - 'lang_input_height': 'Height', - 'lang_input_border': 'Border:', - 'lang_input_vhspace': 'Margins:', - 'lang_input_title': 'Title:', - 'lang_input_align': 'Image Float Style:', - 'lang_imgLoading': 'Loading...', - 'lang_start_upload': 'Start Upload', - 'lock': { 'title': 'Lock rate' }, - 'searchType': { 'title': 'ImageType', 'options': ['News', 'Wallpaper', 'emotions', 'photo'] }, - 'searchTxt': { 'value': 'Enter the search keyword!' }, - 'searchBtn': { 'value': 'Search' }, - 'searchReset': { 'value': 'Clear' }, - 'noneAlign': { 'title': 'None Float' }, - 'leftAlign': { 'title': 'Left Float' }, - 'rightAlign': { 'title': 'Right Float' }, - 'centerAlign': { 'title': 'Center In A Line' } - }, - 'uploadSelectFile': 'Select File', - 'uploadAddFile': 'Add File', - 'uploadStart': 'Start Upload', - 'uploadPause': 'Pause Upload', - 'uploadContinue': 'Continue Upload', - 'uploadRetry': 'Retry Upload', - 'uploadDelete': 'Delete', - 'uploadTurnLeft': 'Turn Left', - 'uploadTurnRight': 'Turn Right', - 'uploadPreview': 'Doing Preview', - 'uploadNoPreview': 'Can Not Preview', - 'updateStatusReady': 'Selected _ pictures, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ pictures (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize': 'File Size Exceed', - 'errorFileType': 'File Type Not Allow', - 'errorInterrupt': 'File Upload Interrupted', - 'errorUploadRetry': 'Upload Error, Please Retry.', - 'errorHttp': 'Http Error', - 'errorServerUpload': 'Server Result Error.', - 'remoteLockError': 'Cannot Lock the Proportion between width and height', - 'numError': 'Please enter the correct Num. e.g 123,400', - 'imageUrlError': 'The image format may be wrong!', - 'imageLoadError': 'Error,please check the network or URL!', - 'searchRemind': 'Enter the search keyword!', - 'searchLoading': 'Image is loading,please wait...', - 'searchRetry': " Sorry,can't find the image,please try again!" - }, - 'attachment': { - 'static': { - 'lang_tab_upload': 'Upload', - 'lang_tab_online': 'Online', - 'lang_start_upload': 'Start upload', - 'lang_drop_remind': 'You can drop files here, a single maximum of 300 files' - }, - 'uploadSelectFile': 'Select File', - 'uploadAddFile': 'Add File', - 'uploadStart': 'Start Upload', - 'uploadPause': 'Pause Upload', - 'uploadContinue': 'Continue Upload', - 'uploadRetry': 'Retry Upload', - 'uploadDelete': 'Delete', - 'uploadTurnLeft': 'Turn Left', - 'uploadTurnRight': 'Turn Right', - 'uploadPreview': 'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize': 'File Size Exceed', - 'errorFileType': 'File Type Not Allow', - 'errorInterrupt': 'File Upload Interrupted', - 'errorUploadRetry': 'Upload Error, Please Retry.', - 'errorHttp': 'Http Error', - 'errorServerUpload': 'Server Result Error.' - }, - - 'insertvideo': { - 'static': { - 'lang_tab_insertV': 'Video', - 'lang_tab_searchV': 'Search', - 'lang_tab_uploadV': 'Upload', - 'lang_video_url': ' URL ', - 'lang_video_size': 'Video Size', - 'lang_videoW': 'Width', - 'lang_videoH': 'Height', - 'lang_alignment': 'Alignment', - 'videoSearchTxt': { 'value': 'Enter the search keyword!' }, - 'videoType': { 'options': ['All', 'Hot', 'Entertainment', 'Funny', 'Sports', 'Science', 'variety'] }, - 'videoSearchBtn': { 'value': 'Search in Baidu' }, - 'videoSearchReset': { 'value': 'Clear result' }, - - 'lang_input_fileStatus': ' No file uploaded!', - 'startUpload': { 'style': 'background:url(upload.png) no-repeat;' }, - - 'lang_upload_size': 'Video Size', - 'lang_upload_width': 'Width', - 'lang_upload_height': 'Height', - 'lang_upload_alignment': 'Alignment', - 'lang_format_advice': 'Recommends mp4 format.' - }, - 'numError': 'Please enter the correct Num. e.g 123,400', - 'floatLeft': 'Float left', - 'floatRight': 'Float right', - 'default': 'Default', - 'block': 'Display in block', - 'urlError': 'The video url format may be wrong!', - 'loading': '  The video is loading, please wait…', - 'clickToSelect': 'Click to select', - 'goToSource': 'Visit source video ', - 'noVideo': "    Sorry,can't find the video,please try again!", - - 'browseFiles': 'Open files', - 'uploadSuccess': 'Upload Successful!', - 'delSuccessFile': 'Remove from the success of the queue', - 'delFailSaveFile': 'Remove the save failed file', - 'statusPrompt': ' file(s) uploaded! ', - 'flashVersionError': 'The current Flash version is too low, please update FlashPlayer,then try again!', - 'flashLoadingError': 'The Flash failed loading! Please check the path or network state', - 'fileUploadReady': 'Wait for uploading...', - 'delUploadQueue': 'Remove from the uploading queue ', - 'limitPrompt1': 'Can not choose more than single', - 'limitPrompt2': 'file(s)!Please choose again!', - 'delFailFile': 'Remove failure file', - 'fileSizeLimit': 'File size exceeds the limit!', - 'emptyFile': 'Can not upload an empty file!', - 'fileTypeError': 'File type error!', - 'unknownError': 'Unknown error!', - 'fileUploading': 'Uploading,please wait...', - 'cancelUpload': 'Cancel upload', - 'netError': 'Network error', - 'failUpload': 'Upload failed', - 'serverIOError': 'Server IO error!', - 'noAuthority': 'No Permission!', - 'fileNumLimit': 'Upload limit to the number', - 'failCheck': 'Authentication fails, the upload is skipped!', - 'fileCanceling': 'Cancel, please wait...', - 'stopUploading': 'Upload has stopped...', - - 'uploadSelectFile': 'Select File', - 'uploadAddFile': 'Add File', - 'uploadStart': 'Start Upload', - 'uploadPause': 'Pause Upload', - 'uploadContinue': 'Continue Upload', - 'uploadRetry': 'Retry Upload', - 'uploadDelete': 'Delete', - 'uploadTurnLeft': 'Turn Left', - 'uploadTurnRight': 'Turn Right', - 'uploadPreview': 'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize': 'File Size Exceed', - 'errorFileType': 'File Type Not Allow', - 'errorInterrupt': 'File Upload Interrupted', - 'errorUploadRetry': 'Upload Error, Please Retry.', - 'errorHttp': 'Http Error', - 'errorServerUpload': 'Server Result Error.' - }, - 'webapp': { - 'tip1': 'This function provided by Baidu APP,please apply for baidu APPKey webmaster first!', - 'tip2': 'And then open the file ueditor.config.js to set it! ', - 'applyFor': 'APPLY FOR', - 'anthorApi': 'Baidu API' - }, - 'template': { - 'static': { - 'lang_template_bkcolor': 'Background Color', - 'lang_template_clear': 'Keep Content', - 'lang_template_select': 'Select Template' - }, - 'blank': 'Blank', - 'blog': 'Blog', - 'resume': 'Resume', - 'richText': 'Rich Text', - 'scrPapers': 'Scientific Papers' - }, - scrawl: { - 'static': { - 'lang_input_previousStep': 'Previous', - 'lang_input_nextsStep': 'Next', - 'lang_input_clear': 'Clear', - 'lang_input_addPic': 'AddImage', - 'lang_input_ScalePic': 'ScaleImage', - 'lang_input_removePic': 'RemoveImage', - 'J_imgTxt': { title: 'Add background image' } - }, - 'noScarwl': 'No paint, a white paper...', - 'scrawlUpLoading': 'Image is uploading, please wait...', - 'continueBtn': 'Try again', - 'imageError': 'Image failed to load!', - 'backgroundUploading': 'Image is uploading,please wait...' - }, - 'music': { - 'static': { - 'lang_input_tips': 'Input singer/song/album, search you interested in music!', - 'J_searchBtn': { value: 'Search songs' } - }, - 'emptyTxt': 'Not search to the relevant music results, please change a keyword try.', - 'chapter': 'Songs', - 'singer': 'Singer', - 'special': 'Album', - 'listenTest': 'Audition' - }, - anchor: { - 'static': { - 'lang_input_anchorName': 'Anchor Name:' - } - }, - 'charts': { - 'static': { - 'lang_data_source': 'Data source:', - 'lang_chart_format': 'Chart format:', - 'lang_data_align': 'Align', - 'lang_chart_align_same': 'Consistent with the X-axis Y-axis', - 'lang_chart_align_reverse': 'X-axis Y-axis opposite', - 'lang_chart_title': 'Title', - 'lang_chart_main_title': 'main title:', - 'lang_chart_sub_title': 'sub title:', - 'lang_chart_x_title': 'X-axis title:', - 'lang_chart_y_title': 'Y-axis title:', - 'lang_chart_tip': 'Prompt', - 'lang_cahrt_tip_prefix': 'prefix:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': 'Unit', - 'lang_chart_data_unit_title': 'unit:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': 'Chart type:', - 'lang_prev_btn': 'Previous', - 'lang_next_btn': 'Next' - } - }, - emotion: { - 'static': { - 'lang_input_choice': 'Choice', - 'lang_input_Tuzki': 'Tuzki', - 'lang_input_lvdouwa': 'LvDouWa', - 'lang_input_BOBO': 'BOBO', - 'lang_input_babyCat': 'BabyCat', - 'lang_input_bubble': 'Bubble', - 'lang_input_youa': 'YouA' - } - }, - gmap: { - 'static': { - 'lang_input_address': 'Address:', - 'lang_input_search': 'Search', - 'address': { value: 'Beijing' } - }, - searchError: 'Unable to locate the address!' - }, - help: { - 'static': { - 'lang_input_about': 'About', - 'lang_input_shortcuts': 'Shortcuts', - 'lang_input_introduction': 'UEditor is developed by Baidu Co.ltd. It is lightweight, customizable , focusing on user experience and etc. , UEditor is based on open source BSD license , allowing free use and redistribution.', - 'lang_Txt_shortcuts': 'Shortcuts', - 'lang_Txt_func': 'Function', - 'lang_Txt_bold': 'Bold', - 'lang_Txt_copy': 'Copy', - 'lang_Txt_cut': 'Cut', - 'lang_Txt_Paste': 'Paste', - 'lang_Txt_undo': 'Undo', - 'lang_Txt_redo': 'Redo', - 'lang_Txt_italic': 'Italic', - 'lang_Txt_underline': 'Underline', - 'lang_Txt_selectAll': 'Select All', - 'lang_Txt_visualEnter': 'Submit', - 'lang_Txt_fullscreen': 'Fullscreen' - } - }, - insertframe: { - 'static': { - 'lang_input_address': 'Address:', - 'lang_input_width': 'Width:', - 'lang_input_height': 'height:', - 'lang_input_isScroll': 'Enable scrollbars:', - 'lang_input_frameborder': 'Show frame border:', - 'lang_input_alignMode': 'Alignment:', - 'align': { title: 'Alignment', options: ['Default', 'Left', 'Right', 'Center'] } - }, - 'enterAddress': 'Please enter an address!' - }, - link: { - 'static': { - 'lang_input_text': 'Text:', - 'lang_input_url': 'URL:', - 'lang_input_title': 'Title:', - 'lang_input_target': 'open in new window:' - }, - 'validLink': 'Supports only effective when a link is selected', - 'httpPrompt': 'The hyperlink you enter should start with "http|https|ftp://"!' - }, - map: { - 'static': { - lang_city: 'City', - lang_address: 'Address', - city: { value: 'Beijing' }, - lang_search: 'Search', - lang_dynamicmap: 'Dynamic map' - }, - cityMsg: 'Please enter the city name!', - errorMsg: "Can't find the place!" - }, - searchreplace: { - 'static': { - lang_tab_search: 'Search', - lang_tab_replace: 'Replace', - lang_search1: 'Search', - lang_search2: 'Search', - lang_replace: 'Replace', - lang_searchReg: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_searchReg1: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_case_sensitive1: 'Case sense', - lang_case_sensitive2: 'Case sense', - nextFindBtn: { value: 'Next' }, - preFindBtn: { value: 'Preview' }, - nextReplaceBtn: { value: 'Next' }, - preReplaceBtn: { value: 'Preview' }, - repalceBtn: { value: 'Replace' }, - repalceAllBtn: { value: 'Replace all' } - }, - getEnd: 'Has the search to the bottom!', - getStart: 'Has the search to the top!', - countMsg: 'Altogether replaced {#count} character(s)!' - }, - snapscreen: { - 'static': { - lang_showMsg: 'You should install the UEditor screenshots program first!', - lang_download: 'Download!', - lang_step1: 'Step1:Download the program and then run it', - lang_step2: 'Step2:After complete install,try to click the button again' - } - }, - spechars: { - 'static': {}, - tsfh: 'Special', - lmsz: 'Roman', - szfh: 'Numeral', - rwfh: 'Japanese', - xlzm: 'The Greek', - ewzm: 'Russian', - pyzm: 'Phonetic', - yyyb: 'English', - zyzf: 'Others' - }, - 'edittable': { - 'static': { - 'lang_tableStyle': 'Table style', - 'lang_insertCaption': 'Add table header row', - 'lang_insertTitle': 'Add table title row', - 'lang_insertTitleCol': 'Add table title col', - 'lang_tableSize': 'Automatically adjust table size', - 'lang_autoSizeContent': 'Adaptive by form text', - 'lang_orderbycontent': 'Table of contents sortable', - 'lang_autoSizePage': 'Page width adaptive', - 'lang_example': 'Example', - 'lang_borderStyle': 'Table Border', - 'lang_color': 'Color:' - }, - captionName: 'Caption', - titleName: 'Title', - cellsName: 'text', - errorMsg: 'There are merged cells, can not sort.' - }, - 'edittip': { - 'static': { - lang_delRow: 'Delete entire row', - lang_delCol: 'Delete entire col' - } - }, - 'edittd': { - 'static': { - lang_tdBkColor: 'Background Color:' - } - }, - 'formula': { - 'static': { - } - }, - wordimage: { - 'static': { - lang_resave: 'The re-save step', - uploadBtn: { src: 'upload.png', alt: 'Upload' }, - clipboard: { style: 'background: url(copy.png) -153px -1px no-repeat;' }, - lang_step: ' 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process.' - }, - fileType: 'Image', - flashError: 'Flash initialization failed!', - netError: 'Network error! Please try again!', - copySuccess: 'URL has been copied!', - - 'flashI18n': { - lang: encodeURI('{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}'), - uploadingTF: encodeURI('{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}'), - imageTF: encodeURI('{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}'), - textEncoding: 'utf-8', - addImageSkinURL: 'addImage.png', - allDeleteBtnUpSkinURL: 'allDeleteBtnUpSkin.png', - allDeleteBtnHoverSkinURL: 'allDeleteBtnHoverSkin.png', - rotateLeftBtnEnableSkinURL: 'rotateLeftEnable.png', - rotateLeftBtnDisableSkinURL: 'rotateLeftDisable.png', - rotateRightBtnEnableSkinURL: 'rotateRightEnable.png', - rotateRightBtnDisableSkinURL: 'rotateRightDisable.png', - deleteBtnEnableSkinURL: 'deleteEnable.png', - deleteBtnDisableSkinURL: 'deleteDisable.png', - backgroundURL: '', - listBackgroundURL: '', - buttonURL: 'button.png' - } - }, - 'autosave': { - 'success': 'Local conservation success' - } -}; diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/addimage.png b/yshop-drink-vue/public/UEditor/lang/en/images/addimage.png deleted file mode 100644 index 3a2fd17..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/addimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnhoverskin.png b/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnhoverskin.png deleted file mode 100644 index 355eeab..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnhoverskin.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnupskin.png b/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnupskin.png deleted file mode 100644 index 61658ce..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/alldeletebtnupskin.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/background.png b/yshop-drink-vue/public/UEditor/lang/en/images/background.png deleted file mode 100644 index d5bf5fd..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/background.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/button.png b/yshop-drink-vue/public/UEditor/lang/en/images/button.png deleted file mode 100644 index 098874c..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/button.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/copy.png b/yshop-drink-vue/public/UEditor/lang/en/images/copy.png deleted file mode 100644 index f982e8b..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/copy.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/deletedisable.png b/yshop-drink-vue/public/UEditor/lang/en/images/deletedisable.png deleted file mode 100644 index c8ee750..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/deletedisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/deleteenable.png b/yshop-drink-vue/public/UEditor/lang/en/images/deleteenable.png deleted file mode 100644 index 26acc88..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/deleteenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/listbackground.png b/yshop-drink-vue/public/UEditor/lang/en/images/listbackground.png deleted file mode 100644 index 4f82ccd..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/listbackground.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/localimage.png b/yshop-drink-vue/public/UEditor/lang/en/images/localimage.png deleted file mode 100644 index 12c8e6a..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/localimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/music.png b/yshop-drink-vue/public/UEditor/lang/en/images/music.png deleted file mode 100644 index 2f495fe..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/music.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftdisable.png b/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftdisable.png deleted file mode 100644 index 741526e..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftdisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftenable.png b/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftenable.png deleted file mode 100644 index e164ddb..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/rotateleftenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightdisable.png b/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightdisable.png deleted file mode 100644 index 5a78c26..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightdisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightenable.png b/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightenable.png deleted file mode 100644 index d768531..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/rotaterightenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/en/images/upload.png b/yshop-drink-vue/public/UEditor/lang/en/images/upload.png deleted file mode 100644 index 7bb15b3..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/en/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/copy.png b/yshop-drink-vue/public/UEditor/lang/zh-cn/images/copy.png deleted file mode 100644 index b2536aa..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/copy.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/localimage.png b/yshop-drink-vue/public/UEditor/lang/zh-cn/images/localimage.png deleted file mode 100644 index 7303c36..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/localimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/music.png b/yshop-drink-vue/public/UEditor/lang/zh-cn/images/music.png deleted file mode 100644 index 354edeb..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/music.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/upload.png b/yshop-drink-vue/public/UEditor/lang/zh-cn/images/upload.png deleted file mode 100644 index 08d4d92..0000000 Binary files a/yshop-drink-vue/public/UEditor/lang/zh-cn/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/lang/zh-cn/zh-cn.js b/yshop-drink-vue/public/UEditor/lang/zh-cn/zh-cn.js deleted file mode 100644 index 10ff151..0000000 --- a/yshop-drink-vue/public/UEditor/lang/zh-cn/zh-cn.js +++ /dev/null @@ -1,669 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-6-12 - * Time: 下午5:02 - * To change this template use File | Settings | File Templates. - */ -UE.I18N['zh-cn'] = { - 'labelMap':{ - 'anchor':'锚点', 'undo':'撤销', 'redo':'重做', 'bold':'加粗', 'indent':'首行缩进', 'snapscreen':'截图', - 'italic':'斜体', 'underline':'下划线', 'strikethrough':'删除线', 'subscript':'下标','fontborder':'字符边框', - 'superscript':'上标', 'formatmatch':'格式刷', 'source':'源代码', 'blockquote':'引用', - 'pasteplain':'纯文本粘贴模式', 'selectall':'全选', 'print':'打印', 'preview':'预览', - 'horizontal':'分隔线', 'removeformat':'清除格式', 'time':'时间', 'date':'日期', - 'unlink':'取消链接', 'insertrow':'前插入行', 'insertcol':'前插入列', 'mergeright':'右合并单元格', 'mergedown':'下合并单元格', - 'deleterow':'删除行', 'deletecol':'删除列', 'splittorows':'拆分成行', - 'splittocols':'拆分成列', 'splittocells':'完全拆分单元格','deletecaption':'删除表格标题','inserttitle':'插入标题', - 'mergecells':'合并多个单元格', 'deletetable':'删除表格', 'cleardoc':'清空文档','insertparagraphbeforetable':"表格前插入行",'insertcode':'代码语言', - 'fontfamily':'字体', 'fontsize':'字号', 'paragraph':'段落格式', 'simpleupload':'单图上传', 'insertimage':'多图上传','edittable':'表格属性','edittd':'单元格属性', 'link':'超链接', - 'emotion':'表情', 'spechars':'特殊字符', 'searchreplace':'查询替换', 'map':'Baidu地图', 'gmap':'Google地图', - 'insertvideo':'视频', 'help':'帮助', 'justifyleft':'居左对齐', 'justifyright':'居右对齐', 'justifycenter':'居中对齐', - 'justifyjustify':'两端对齐', 'forecolor':'字体颜色', 'backcolor':'背景色', 'insertorderedlist':'有序列表', - 'insertunorderedlist':'无序列表', 'fullscreen':'全屏', 'directionalityltr':'从左向右输入', 'directionalityrtl':'从右向左输入', - 'rowspacingtop':'段前距', 'rowspacingbottom':'段后距', 'pagebreak':'分页', 'insertframe':'插入Iframe', 'imagenone':'默认', - 'imageleft':'左浮动', 'imageright':'右浮动', 'attachment':'附件', 'imagecenter':'居中', 'wordimage':'图片转存', - 'lineheight':'行间距','edittip' :'编辑提示','customstyle':'自定义标题', 'autotypeset':'自动排版', - 'webapp':'百度应用','touppercase':'字母大写', 'tolowercase':'字母小写','background':'背景','template':'模板','scrawl':'涂鸦', - 'music':'音乐','inserttable':'插入表格','drafts': '从草稿箱加载', 'charts': '图表' - }, - 'insertorderedlist':{ - 'num':'1,2,3...', - 'num1':'1),2),3)...', - 'num2':'(1),(2),(3)...', - 'cn':'一,二,三....', - 'cn1':'一),二),三)....', - 'cn2':'(一),(二),(三)....', - 'decimal':'1,2,3...', - 'lower-alpha':'a,b,c...', - 'lower-roman':'i,ii,iii...', - 'upper-alpha':'A,B,C...', - 'upper-roman':'I,II,III...' - }, - 'insertunorderedlist':{ - 'circle':'○ 大圆圈', - 'disc':'● 小黑点', - 'square':'■ 小方块 ', - 'dash' :'— 破折号', - 'dot':' 。 小圆圈' - }, - 'paragraph':{'p':'段落', 'h1':'标题 1', 'h2':'标题 2', 'h3':'标题 3', 'h4':'标题 4', 'h5':'标题 5', 'h6':'标题 6'}, - 'fontfamily':{ - 'songti':'宋体', - 'kaiti':'楷体', - 'heiti':'黑体', - 'lishu':'隶书', - 'yahei':'微软雅黑', - 'andaleMono':'andale mono', - 'arial': 'arial', - 'arialBlack':'arial black', - 'comicSansMs':'comic sans ms', - 'impact':'impact', - 'timesNewRoman':'times new roman' - }, - 'customstyle':{ - 'tc':'标题居中', - 'tl':'标题居左', - 'im':'强调', - 'hi':'明显强调' - }, - 'autoupload': { - 'exceedSizeError': '文件大小超出限制', - 'exceedTypeError': '文件格式不允许', - 'jsonEncodeError': '服务器返回格式错误', - 'loading':"正在上传...", - 'loadError':"上传错误", - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' - }, - 'simpleupload':{ - 'exceedSizeError': '文件大小超出限制', - 'exceedTypeError': '文件格式不允许', - 'jsonEncodeError': '服务器返回格式错误', - 'loading':"正在上传...", - 'loadError':"上传错误", - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' - }, - 'elementPathTip':"元素路径", - 'wordCountTip':"字数统计", - 'wordCountMsg':'当前已输入{#count}个字符, 您还可以输入{#leave}个字符。 ', - 'wordOverFlowMsg':'字数超出最大允许值,服务器可能拒绝保存!', - 'ok':"确认", - 'cancel':"取消", - 'closeDialog':"关闭对话框", - 'tableDrag':"表格拖动必须引入uiUtils.js文件!", - 'autofloatMsg':"工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", - 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', - 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', - 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', - 'snapScreen_plugin':{ - 'browserMsg':"仅支持IE浏览器!", - 'callBackErrorMsg':"服务器返回数据有误,请检查配置项之后重试。", - 'uploadErrorMsg':"截图上传失败,请检查服务器端环境! " - }, - 'insertcode':{ - 'as3':'ActionScript 3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'CSS', - 'cf':'ColdFusion', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'HTML', - 'java':'Java', - 'jfx':'JavaFX', - 'js':'JavaScript', - 'pl':'Perl', - 'php':'PHP', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'SQL', - 'vb':'Visual Basic', - 'xml':'XML' - }, - 'confirmClear':"确定清空当前文档么?", - 'contextMenu':{ - 'delete':"删除", - 'selectall':"全选", - 'deletecode':"删除代码", - 'cleardoc':"清空文档", - 'confirmclear':"确定清空当前文档么?", - 'unlink':"删除超链接", - 'paragraph':"段落格式", - 'edittable':"表格属性", - 'aligntd':"单元格对齐方式", - 'aligntable':'表格对齐方式', - 'tableleft':'左浮动', - 'tablecenter':'居中显示', - 'tableright':'右浮动', - 'edittd':"单元格属性", - 'setbordervisible':'设置表格边线可见', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中对齐', - 'justifyjustify':'两端对齐', - 'table':"表格", - 'inserttable':'插入表格', - 'deletetable':"删除表格", - 'insertparagraphbefore':"前插入段落", - 'insertparagraphafter':'后插入段落', - 'deleterow':"删除当前行", - 'deletecol':"删除当前列", - 'insertrow':"前插入行", - 'insertcol':"左插入列", - 'insertrownext':'后插入行', - 'insertcolnext':'右插入列', - 'insertcaption':'插入表格名称', - 'deletecaption':'删除表格名称', - 'inserttitle':'插入表格标题行', - 'deletetitle':'删除表格标题行', - 'inserttitlecol':'插入表格标题列', - 'deletetitlecol':'删除表格标题列', - 'averageDiseRow':'平均分布各行', - 'averageDisCol':'平均分布各列', - 'mergeright':"向右合并", - 'mergeleft':"向左合并", - 'mergedown':"向下合并", - 'mergecells':"合并单元格", - 'splittocells':"完全拆分单元格", - 'splittocols':"拆分成列", - 'splittorows':"拆分成行", - 'tablesort':'表格排序', - 'enablesort':'设置表格可排序', - 'disablesort':'取消表格可排序', - 'reversecurrent':'逆序当前', - 'orderbyasc':'按ASCII字符升序', - 'reversebyasc':'按ASCII字符降序', - 'orderbynum':'按数值大小升序', - 'reversebynum':'按数值大小降序', - 'borderbk':'边框底纹', - 'setcolor':'表格隔行变色', - 'unsetcolor':'取消表格隔行变色', - 'setbackground':'选区背景隔行', - 'unsetbackground':'取消选区背景', - 'redandblue':'红蓝相间', - 'threecolorgradient':'三色渐变', - 'copy':"复制(Ctrl + c)", - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'paste':"粘贴(Ctrl + v)", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" - }, - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", - 'anthorMsg':"链接", - 'clearColor':'清空颜色', - 'standardColor':'标准颜色', - 'themeColor':'主题颜色', - 'property':'属性', - 'default':'默认', - 'modify':'修改', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中', - 'justify':'默认', - 'clear':'清除', - 'anchorMsg':'锚点', - 'delete':'删除', - 'clickToUpload':"点击上传", - 'unset':'尚未设置语言文件', - 't_row':'行', - 't_col':'列', - 'more':'更多', - 'pasteOpt':'粘贴选项', - 'pasteSourceFormat':"保留源格式", - 'tagFormat':'只保留标签', - 'pasteTextFormat':'只保留文本', - 'autoTypeSet':{ - 'mergeLine':"合并空行", - 'delLine':"清除空行", - 'removeFormat':"清除格式", - 'indent':"首行缩进", - 'alignment':"对齐方式", - 'imageFloat':"图片浮动", - 'removeFontsize':"清除字号", - 'removeFontFamily':"清除字体", - 'removeHtml':"清除冗余HTML代码", - 'pasteFilter':"粘贴过滤", - 'run':"执行", - 'symbol':'符号转换', - 'bdc2sb':'全角转半角', - 'tobdc':'半角转全角' - }, - - 'background':{ - 'static':{ - 'lang_background_normal':'背景设置', - 'lang_background_local':'在线图片', - 'lang_background_set':'选项', - 'lang_background_none':'无背景色', - 'lang_background_colored':'有背景色', - 'lang_background_color':'颜色设置', - 'lang_background_netimg':'网络图片', - 'lang_background_align':'对齐方式', - 'lang_background_position':'精确定位', - 'repeatType':{'options':["居中", "横向重复", "纵向重复", "平铺","自定义"]} - - }, - 'noUploadImage':"当前未上传过任何图片!", - 'toggleSelect':"单击可切换选中状态\n原图尺寸: " - }, - //===============dialog i18N======================= - 'insertimage':{ - 'static':{ - 'lang_tab_remote':"插入图片", //节点 - 'lang_tab_upload':"本地上传", - 'lang_tab_online':"在线管理", - 'lang_tab_search':"图片搜索", - 'lang_input_url':"地 址:", - 'lang_input_size':"大 小:", - 'lang_input_width':"宽度", - 'lang_input_height':"高度", - 'lang_input_border':"边 框:", - 'lang_input_vhspace':"边 距:", - 'lang_input_title':"描 述:", - 'lang_input_align':'图片浮动方式:', - 'lang_imgLoading':" 图片加载中……", - 'lang_start_upload':"开始上传", - 'lock':{'title':"锁定宽高比例"}, //属性 - 'searchType':{'title':"图片类型", 'options':["新闻", "壁纸", "表情", "头像"]}, //select的option - 'searchTxt':{'value':"请输入搜索关键词"}, - 'searchBtn':{'value':"百度一下"}, - 'searchReset':{'value':"清空搜索"}, - 'noneAlign':{'title':'无浮动'}, - 'leftAlign':{'title':'左浮动'}, - 'rightAlign':{'title':'右浮动'}, - 'centerAlign':{'title':'居中独占一行'} - }, - 'uploadSelectFile':'点击选择图片', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'uploadNoPreview':'不能预览', - 'updateStatusReady': '选中_张图片,共_KB。', - 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', - 'updateStatusFinish': '共_张(_KB),_张上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错', - 'remoteLockError':"宽高不正确,不能所定比例", - 'numError':"请输入正确的长度或者宽度值!例如:123,400", - 'imageUrlError':"不允许的图片格式或者图片域!", - 'imageLoadError':"图片加载失败!请检查链接地址或网络状态!", - 'searchRemind':"请输入搜索关键词", - 'searchLoading':"图片加载中,请稍后……", - 'searchRetry':" :( ,抱歉,没有找到图片!请重试一次!" - }, - 'attachment':{ - 'static':{ - 'lang_tab_upload': '上传附件', - 'lang_tab_online': '在线附件', - 'lang_start_upload':"开始上传", - 'lang_drop_remind':"可以将文件拖到这里,单次最多可选100个文件" - }, - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', - 'updateStatusFinish': '共_个(_KB),_个上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'insertvideo':{ - 'static':{ - 'lang_tab_insertV':"插入视频", - 'lang_tab_searchV':"搜索视频", - 'lang_tab_uploadV':"上传视频", - 'lang_video_url':"视频网址", - 'lang_video_size':"视频尺寸", - 'lang_videoW':"宽度", - 'lang_videoH':"高度", - 'lang_alignment':"对齐方式", - 'videoSearchTxt':{'value':"请输入搜索关键字!"}, - 'videoType':{'options':["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, - 'videoSearchBtn':{'value':"百度一下"}, - 'videoSearchReset':{'value':"清空结果"}, - - 'lang_input_fileStatus':' 当前未上传文件', - 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, - - 'lang_upload_size':"视频尺寸", - 'lang_upload_width':"宽度", - 'lang_upload_height':"高度", - 'lang_upload_alignment':"对齐方式", - 'lang_format_advice':"建议使用mp4格式." - - }, - 'numError':"请输入正确的数值,如123,400", - 'floatLeft':"左浮动", - 'floatRight':"右浮动", - '"default"':"默认", - 'block':"独占一行", - 'urlError':"输入的视频地址有误,请检查后再试!", - 'loading':"  视频加载中,请等待……", - 'clickToSelect':"点击选中", - 'goToSource':'访问源视频', - 'noVideo':"    抱歉,找不到对应的视频,请重试!", - - 'browseFiles':'浏览文件', - 'uploadSuccess':'上传成功!', - 'delSuccessFile':'从成功队列中移除', - 'delFailSaveFile':'移除保存失败文件', - 'statusPrompt':' 个文件已上传! ', - 'flashVersionError':'当前Flash版本过低,请更新FlashPlayer后重试!', - 'flashLoadingError':'Flash加载失败!请检查路径或网络状态', - 'fileUploadReady':'等待上传……', - 'delUploadQueue':'从上传队列中移除', - 'limitPrompt1':'单次不能选择超过', - 'limitPrompt2':'个文件!请重新选择!', - 'delFailFile':'移除失败文件', - 'fileSizeLimit':'文件大小超出限制!', - 'emptyFile':'空文件无法上传!', - 'fileTypeError':'文件类型不允许!', - 'unknownError':'未知错误!', - 'fileUploading':'上传中,请等待……', - 'cancelUpload':'取消上传', - 'netError':'网络错误', - 'failUpload':'上传失败!', - 'serverIOError':'服务器IO错误!', - 'noAuthority':'无权限!', - 'fileNumLimit':'上传个数限制', - 'failCheck':'验证失败,本次上传被跳过!', - 'fileCanceling':'取消中,请等待……', - 'stopUploading':'上传已停止……', - - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '成功上传_个,_个失败', - 'updateStatusFinish': '共_个(_KB),_个成功上传', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'webapp':{ - 'tip1':"本功能由百度APP提供,如看到此页面,请各位站长首先申请百度APPKey!", - 'tip2':"申请完成之后请至ueditor.config.js中配置获得的appkey! ", - 'applyFor':"点此申请", - 'anthorApi':"百度API" - }, - 'template':{ - 'static':{ - 'lang_template_bkcolor':'背景颜色', - 'lang_template_clear' : '保留原有内容', - 'lang_template_select' : '选择模板' - }, - 'blank':"空白文档", - 'blog':"博客文章", - 'resume':"个人简历", - 'richText':"图文混排", - 'sciPapers':"科技论文" - - - }, - 'scrawl':{ - 'static':{ - 'lang_input_previousStep':"上一步", - 'lang_input_nextsStep':"下一步", - 'lang_input_clear':'清空', - 'lang_input_addPic':'添加背景', - 'lang_input_ScalePic':'缩放背景', - 'lang_input_removePic':'删除背景', - 'J_imgTxt':{title:'添加背景图片'} - }, - 'noScarwl':"尚未作画,白纸一张~", - 'scrawlUpLoading':"涂鸦上传中,别急哦~", - 'continueBtn':"继续", - 'imageError':"糟糕,图片读取失败了!", - 'backgroundUploading':'背景图片上传中,别急哦~' - }, - 'music':{ - 'static':{ - 'lang_input_tips':"输入歌手/歌曲/专辑,搜索您感兴趣的音乐!", - 'J_searchBtn':{value:'搜索歌曲'} - }, - 'emptyTxt':'未搜索到相关音乐结果,请换一个关键词试试。', - 'chapter':'歌曲', - 'singer':'歌手', - 'special':'专辑', - 'listenTest':'试听' - }, - 'anchor':{ - 'static':{ - 'lang_input_anchorName':'锚点名字:' - } - }, - 'charts':{ - 'static':{ - 'lang_data_source':'数据源:', - 'lang_chart_format': '图表格式:', - 'lang_data_align': '数据对齐方式', - 'lang_chart_align_same': '数据源与图表X轴Y轴一致', - 'lang_chart_align_reverse': '数据源与图表X轴Y轴相反', - 'lang_chart_title': '图表标题', - 'lang_chart_main_title': '主标题:', - 'lang_chart_sub_title': '子标题:', - 'lang_chart_x_title': 'X轴标题:', - 'lang_chart_y_title': 'Y轴标题:', - 'lang_chart_tip': '提示文字', - 'lang_cahrt_tip_prefix': '提示文字前缀:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': '数据单位', - 'lang_chart_data_unit_title': '单位:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': '图表类型:', - 'lang_prev_btn': '上一个', - 'lang_next_btn': '下一个' - } - }, - 'emotion':{ - 'static':{ - 'lang_input_choice':'精选', - 'lang_input_Tuzki':'兔斯基', - 'lang_input_BOBO':'BOBO', - 'lang_input_lvdouwa':'绿豆蛙', - 'lang_input_babyCat':'baby猫', - 'lang_input_bubble':'泡泡', - 'lang_input_youa':'有啊' - } - }, - 'gmap':{ - 'static':{ - 'lang_input_address':'地址', - 'lang_input_search':'搜索', - 'address':{value:"北京"} - }, - searchError:'无法定位到该地址!' - }, - 'help':{ - 'static':{ - 'lang_input_about':'关于UEditor', - 'lang_input_shortcuts':'快捷键', - 'lang_input_introduction':'UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。开源基于BSD协议,允许自由使用和修改代码。', - 'lang_Txt_shortcuts':'快捷键', - 'lang_Txt_func':'功能', - 'lang_Txt_bold':'给选中字设置为加粗', - 'lang_Txt_copy':'复制选中内容', - 'lang_Txt_cut':'剪切选中内容', - 'lang_Txt_Paste':'粘贴', - 'lang_Txt_undo':'重新执行上次操作', - 'lang_Txt_redo':'撤销上一次操作', - 'lang_Txt_italic':'给选中字设置为斜体', - 'lang_Txt_underline':'给选中字加下划线', - 'lang_Txt_selectAll':'全部选中', - 'lang_Txt_visualEnter':'软回车', - 'lang_Txt_fullscreen':'全屏' - } - }, - 'insertframe':{ - 'static':{ - 'lang_input_address':'地址:', - 'lang_input_width':'宽度:', - 'lang_input_height':'高度:', - 'lang_input_isScroll':'允许滚动条:', - 'lang_input_frameborder':'显示框架边框:', - 'lang_input_alignMode':'对齐方式:', - 'align':{title:"对齐方式", options:["默认", "左对齐", "右对齐", "居中"]} - }, - 'enterAddress':'请输入地址!' - }, - 'link':{ - 'static':{ - 'lang_input_text':'文本内容:', - 'lang_input_url':'链接地址:', - 'lang_input_title':'标题:', - 'lang_input_target':'是否在新窗口打开:' - }, - 'validLink':'只支持选中一个链接时生效', - 'httpPrompt':'您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' - }, - 'map':{ - 'static':{ - lang_city:"城市", - lang_address:"地址", - city:{value:"北京"}, - lang_search:"搜索", - lang_dynamicmap:"插入动态地图" - }, - cityMsg:"请选择城市", - errorMsg:"抱歉,找不到该位置!" - }, - 'searchreplace':{ - 'static':{ - lang_tab_search:"查找", - lang_tab_replace:"替换", - lang_search1:"查找", - lang_search2:"查找", - lang_replace:"替换", - lang_searchReg:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_searchReg1:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_case_sensitive1:"区分大小写", - lang_case_sensitive2:"区分大小写", - nextFindBtn:{value:"下一个"}, - preFindBtn:{value:"上一个"}, - nextReplaceBtn:{value:"下一个"}, - preReplaceBtn:{value:"上一个"}, - repalceBtn:{value:"替换"}, - repalceAllBtn:{value:"全部替换"} - }, - getEnd:"已经搜索到文章末尾!", - getStart:"已经搜索到文章头部", - countMsg:"总共替换了{#count}处!" - }, - 'snapscreen':{ - 'static':{ - lang_showMsg:"截图功能需要首先安装UEditor截图插件! ", - lang_download:"点此下载", - lang_step1:"第一步,下载UEditor截图插件并运行安装。", - lang_step2:"第二步,插件安装完成后即可使用,如不生效,请重启浏览器后再试!" - } - }, - 'spechars':{ - 'static':{}, - tsfh:"特殊字符", - lmsz:"罗马字符", - szfh:"数学字符", - rwfh:"日文字符", - xlzm:"希腊字母", - ewzm:"俄文字符", - pyzm:"拼音字母", - yyyb:"英语音标", - zyzf:"其他" - }, - 'edittable':{ - 'static':{ - 'lang_tableStyle':'表格样式', - 'lang_insertCaption':'添加表格名称行', - 'lang_insertTitle':'添加表格标题行', - 'lang_insertTitleCol':'添加表格标题列', - 'lang_orderbycontent':"使表格内容可排序", - 'lang_tableSize':'自动调整表格尺寸', - 'lang_autoSizeContent':'按表格文字自适应', - 'lang_autoSizePage':'按页面宽度自适应', - 'lang_example':'示例', - 'lang_borderStyle':'表格边框', - 'lang_color':'颜色:' - }, - captionName:'表格名称', - titleName:'标题', - cellsName:'内容', - errorMsg:'有合并单元格,不可排序' - }, - 'edittip':{ - 'static':{ - lang_delRow:'删除整行', - lang_delCol:'删除整列' - } - }, - 'edittd':{ - 'static':{ - lang_tdBkColor:'背景颜色:' - } - }, - 'formula':{ - 'static':{ - } - }, - 'wordimage':{ - 'static':{ - lang_resave:"转存步骤", - uploadBtn:{src:"upload.png",alt:"上传"}, - clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, - lang_step:"1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" - }, - 'fileType':"图片", - 'flashError':"FLASH初始化失败,请检查FLASH插件是否正确安装!", - 'netError':"网络连接错误,请重试!", - 'copySuccess':"图片地址已经复制!", - 'flashI18n':{} //留空默认中文 - }, - 'autosave': { - 'saving':'保存中...', - 'success':'本地保存成功' - } -}; diff --git a/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.css b/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.css deleted file mode 100644 index ff5dd50..0000000 --- a/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.css +++ /dev/null @@ -1,1904 +0,0 @@ -/*基础UI构建 -*/ -/* common layer */ -.edui-default .edui-box { - border: none; - padding: 0; - margin: 0; - overflow: hidden; -} - -.edui-default a.edui-box { - display: block; - text-decoration: none; - color: black; -} - -.edui-default a.edui-box:hover { - text-decoration: none; -} - -.edui-default a.edui-box:active { - text-decoration: none; -} - -.edui-default table.edui-box { - border-collapse: collapse; -} - -.edui-default ul.edui-box { - list-style-type: none; -} - -div.edui-box { - position: relative; - display: -moz-inline-box !important; - display: inline-block !important; - vertical-align: top; -} - -.edui-default .edui-clearfix { - zoom: 1 -} - -.edui-default .edui-clearfix:after { - content: '\20'; - display: block; - clear: both; -} - - * html div.edui-box { - display: inline !important; -} - -*:first-child+html div.edui-box { - display: inline !important; -} - -/* control layout */ -.edui-default .edui-button-body, .edui-splitbutton-body, .edui-menubutton-body, .edui-combox-body { - position: relative; -} - -.edui-default .edui-popup { - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; -} - -.edui-default .edui-popup .edui-shadow { - position: absolute; - z-index: -1; -} - -.edui-default .edui-popup .edui-bordereraser { - position: absolute; - overflow: hidden; -} - -.edui-default .edui-tablepicker .edui-canvas { - position: relative; -} - -.edui-default .edui-tablepicker .edui-canvas .edui-overlay { - position: absolute; -} - -.edui-default .edui-dialog-modalmask, .edui-dialog-dragmask { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-toolbar { - position: relative; -} - -/* - * default theme - */ -.edui-default .edui-label { - cursor: default; -} - -.edui-default span.edui-clickable { - color: blue; - cursor: pointer; - text-decoration: underline; -} - -.edui-default span.edui-unclickable { - color: gray; - cursor: default; -} -/* 工具栏 */ -.edui-default .edui-toolbar { - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - padding: 1px; - overflow: hidden; /*全屏下单独一行不占位*/ - zoom: 1; - width:auto; - height:auto; -} - -.edui-default .edui-toolbar .edui-button, -.edui-default .edui-toolbar .edui-splitbutton, -.edui-default .edui-toolbar .edui-menubutton, -.edui-default .edui-toolbar .edui-combox { - margin: 1px; -} -/*UI工具栏、编辑区域、底部*/ -.edui-default .edui-editor { - z-index: 1 !important; - border: 1px solid #d4d4d4; - background-color: white; - position: relative; - overflow: visible; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.edui-editor div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-toolbarbox { - position: relative; - zoom: 1; - -webkit-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - -moz-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - border-top-left-radius:2px; - border-top-right-radius:2px; -} - -.edui-default .edui-editor-toolbarboxouter { - border-bottom: 1px solid #d4d4d4; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - /*border: 1px solid #d4d4d4;*/ - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.edui-default .edui-editor-toolbarboxinner { - padding: 2px; -} - -.edui-default .edui-editor-iframeholder { - position: relative; - /*for fix ie6 toolbarmsg under iframe bug. relative -> static */ - /*_position: static !important;* -} - -.edui-default .edui-editor-iframeholder textarea { - font-family: consolas, "Courier New", "lucida console", monospace; - font-size: 12px; - line-height: 18px; -} - -.edui-default .edui-editor-bottombar { - /*border-top: 1px solid #ccc;*/ - /*height: 20px;*/ - /*width: 40%;*/ - /*float: left;*/ - /*overflow: hidden;*/ -} - -.edui-default .edui-editor-bottomContainer { - overflow: hidden; -} - -.edui-default .edui-editor-bottomContainer table { - width: 100%; - height: 0; - overflow: hidden; - border-spacing: 0; -} - -.edui-default .edui-editor-bottomContainer td { - white-space: nowrap; - border-top: 1px solid #ccc; - line-height: 20px; - font-size: 12px; - font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif; -} - -.edui-default .edui-editor-wordcount { - text-align: right; - margin-right: 5px; - color: #aaa; -} -.edui-default .edui-editor-scale { - width: 12px; -} -.edui-default .edui-editor-scale .edui-editor-icon { - float: right; - width: 100%; - height: 12px; - margin-top: 10px; - background: url(../images/scale.png) no-repeat; - cursor: se-resize; -} -.edui-default .edui-editor-breadcrumb { - margin: 2px 0 0 3px; -} - -.edui-default .edui-editor-breadcrumb span { - cursor: pointer; - text-decoration: underline; - color: blue; -} - -.edui-default .edui-toolbar .edui-for-fullscreen { - float: right; -} - -.edui-default .edui-bubble .edui-popup-content { - border: 1px solid #DCAC6C; - background-color: #fff6d9; - padding: 5px; - font-size: 10pt; - font-family: "宋体"; -} - -.edui-default .edui-bubble .edui-shadow { - /*box-shadow: 1px 1px 3px #818181;*/ - /*-webkit-box-shadow: 2px 2px 3px #818181;*/ - /*-moz-box-shadow: 2px 2px 3px #818181;*/ - /*filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius = '2', MakeShadow = 'true', ShadowOpacity = '0.5');*/ -} - -.edui-default .edui-editor-toolbarmsg { - background-color: #FFF6D9; - border-bottom: 1px solid #ccc; - position: absolute; - bottom: -25px; - left: 0; - z-index: 1009; - width: 99.9%; -} - -.edui-default .edui-editor-toolbarmsg-upload { - font-size: 14px; - color: blue; - width: 100px; - height: 16px; - line-height: 16px; - cursor: pointer; - position: absolute; - top: 5px; - left: 350px; -} - -.edui-default .edui-editor-toolbarmsg-label { - font-size: 12px; - line-height: 16px; - padding: 4px; -} - -.edui-default .edui-editor-toolbarmsg-close { - float: right; - width: 20px; - height: 16px; - line-height: 16px; - cursor: pointer; - color: red; -} -/*可选中菜单按钮*/ -.edui-default .edui-list .edui-bordereraser { - display: none; -} - -.edui-default .edui-listitem { - padding: 1px; - white-space: nowrap; -} - -.edui-default .edui-list .edui-state-hover { - position: relative; - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-for-fontfamily .edui-listitem-label { - min-width: 130px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-insertcode .edui-listitem-label { - min-width: 120px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-underline .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - font-size: 12px; -} - -.edui-default .edui-for-fontsize .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - -} - -.edui-default .edui-for-paragraph .edui-listitem-label { - min-width: 200px; - _width: 200px; - padding: 2px 5px; -} - -.edui-default .edui-for-rowspacingtop .edui-listitem-label, -.edui-default .edui-for-rowspacingbottom .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-lineheight .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-customstyle .edui-listitem-label { - min-width: 200px; - _width: 200px; - width: 200px !important; - padding: 2px 5px; -} -/* 可选中按钮弹出菜单*/ -.edui-default .edui-menu { - z-index: 3000; -} - -.edui-default .edui-menu .edui-popup-content { - padding: 3px; -} - -.edui-default .edui-menu-body { - _width: 150px; - min-width: 170px; - background: url("../images/sparator_v.png") repeat-y 25px; -} - -.edui-default .edui-menuitem-body { -} - -.edui-default .edui-menuitem { - height: 20px; - cursor: default; - vertical-align: top; -} - -.edui-default .edui-menuitem .edui-icon { - width: 20px !important; - height: 20px !important; - background: url(../images/icons.png) 0 -4000px; - background: url(../images/icons.gif) 0 -4000px\9; -} - -.edui-default .edui-menuitem .edui-label { - font-size: 12px; - line-height: 20px; - height: 20px; - padding-left: 10px; -} - -.edui-default .edui-state-checked .edui-menuitem-body { - background: url("../images/icons-all.gif") no-repeat 6px -205px; -} - -.edui-default .edui-state-disabled .edui-menuitem-label { - color: gray; -} - - -/*不可选中菜单按钮 */ -.edui-default .edui-toolbar .edui-combox-body .edui-button-body { - width: 60px; - font-size: 12px; - height: 20px; - line-height: 20px; - padding-left: 5px; - white-space: nowrap; - margin: 0 3px 0 0; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-combox .edui-combox-body { - border: 1px solid #CCC; - background-color: white; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-splitborder { - display: none; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - border-left: 1px solid #CCC; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow { - border-left: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-checked .edui-combox-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow { - border-left: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-disabled .edui-combox-body { - background-color: #F0F0EE; - opacity: 0.3; - filter: alpha(opacity = 30); -} - -.edui-toolbar .edui-state-opened .edui-combox-body { - background-color: white; - border: 1px solid gray; -} -/*普通按钮样式及状态*/ -.edui-default .edui-toolbar .edui-button .edui-icon, -.edui-default .edui-toolbar .edui-menubutton .edui-icon, -.edui-default .edui-toolbar .edui-splitbutton .edui-icon { - height: 20px !important; - width: 20px !important; - background-image: url(../images/icons.png); - background-image: url(../images/icons.gif) \9; -} - -.edui-default .edui-toolbar .edui-button .edui-button-wrap { - padding: 1px; - position: relative; -} - -.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap { - background-color: #fff5d4; - padding: 0; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap { - background-color: #ffe69f; - padding: 0; - border: 1px solid #dcac6c; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap { - background-color: #ffffff; - padding: 0; - border: 1px solid gray; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-label { - color: #ccc; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-icon { - opacity: 0.3; - filter: alpha(opacity = 30); -} - -/* toolbar icons */ -.edui-default .edui-for-undo .edui-icon { - background-position: -160px 0; -} - -.edui-default .edui-for-redo .edui-icon { - background-position: -100px 0; -} - -.edui-default .edui-for-bold .edui-icon { - background-position: 0 0; -} - -.edui-default .edui-for-italic .edui-icon { - background-position: -60px 0; -} - -.edui-default .edui-for-fontborder .edui-icon { - background-position:-160px -40px; -} -.edui-default .edui-for-underline .edui-icon { - background-position: -140px 0; -} - -.edui-default .edui-for-strikethrough .edui-icon { - background-position: -120px 0; -} - -.edui-default .edui-for-subscript .edui-icon { - background-position: -600px 0; -} - -.edui-default .edui-for-superscript .edui-icon { - background-position: -620px 0; -} - -.edui-default .edui-for-blockquote .edui-icon { - background-position: -220px 0; -} - -.edui-default .edui-for-forecolor .edui-icon { - background-position: -720px 0; -} - -.edui-default .edui-for-backcolor .edui-icon { - background-position: -760px 0; -} - -.edui-default .edui-for-inserttable .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-autotypeset .edui-icon { - background-position: -640px -40px; -} - -.edui-default .edui-for-justifyleft .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-justifycenter .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-justifyright .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-justifyjustify .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-insertorderedlist .edui-icon { - background-position: -80px 0; -} - -.edui-default .edui-for-insertunorderedlist .edui-icon { - background-position: -20px 0; -} - -.edui-default .edui-for-lineheight .edui-icon { - background-position: -725px -40px; -} - -.edui-default .edui-for-rowspacingbottom .edui-icon { - background-position: -745px -40px; -} - -.edui-default .edui-for-rowspacingtop .edui-icon { - background-position: -765px -40px; -} - -.edui-default .edui-for-horizontal .edui-icon { - background-position: -360px 0; -} - -.edui-default .edui-for-link .edui-icon { - background-position: -500px 0; -} - -.edui-default .edui-for-code .edui-icon { - background-position: -440px -40px; -} - -.edui-default .edui-for-insertimage .edui-icon { - background-position: -726px -77px; -} - -.edui-default .edui-for-insertframe .edui-icon { - background-position: -240px -40px; -} - -.edui-default .edui-for-emoticon .edui-icon { - background-position: -60px -20px; -} - -.edui-default .edui-for-spechars .edui-icon { - background-position: -240px 0; -} - -.edui-default .edui-for-help .edui-icon { - background-position: -340px 0; -} - -.edui-default .edui-for-print .edui-icon { - background-position: -440px -20px; -} - -.edui-default .edui-for-preview .edui-icon { - background-position: -420px -20px; -} - -.edui-default .edui-for-selectall .edui-icon { - background-position: -400px -20px; -} - -.edui-default .edui-for-searchreplace .edui-icon { - background-position: -520px -20px; -} - -.edui-default .edui-for-map .edui-icon { - background-position: -40px -40px; -} - -.edui-default .edui-for-gmap .edui-icon { - background-position: -260px -40px; -} - -.edui-default .edui-for-insertvideo .edui-icon { - background-position: -320px -20px; -} - -.edui-default .edui-for-time .edui-icon { - background-position: -160px -20px; -} - -.edui-default .edui-for-date .edui-icon { - background-position: -140px -20px; -} - -.edui-default .edui-for-cut .edui-icon { - background-position: -680px 0; -} - -.edui-default .edui-for-copy .edui-icon { - background-position: -700px 0; -} - -.edui-default .edui-for-paste .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-formatmatch .edui-icon { - background-position: -40px 0; -} - -.edui-default .edui-for-pasteplain .edui-icon { - background-position: -360px -20px; -} - -.edui-default .edui-for-directionalityltr .edui-icon { - background-position: -20px -20px; -} - -.edui-default .edui-for-directionalityrtl .edui-icon { - background-position: -40px -20px; -} - -.edui-default .edui-for-source .edui-icon { - background-position: -261px -0px; -} - -.edui-default .edui-for-removeformat .edui-icon { - background-position: -580px 0; -} - -.edui-default .edui-for-unlink .edui-icon { - background-position: -640px 0; -} - -.edui-default .edui-for-touppercase .edui-icon { - background-position: -786px 0; -} - -.edui-default .edui-for-tolowercase .edui-icon { - background-position: -806px 0; -} - -.edui-default .edui-for-insertrow .edui-icon { - background-position: -478px -76px; -} - -.edui-default .edui-for-insertrownext .edui-icon { - background-position: -498px -76px; -} - -.edui-default .edui-for-insertcol .edui-icon { - background-position: -455px -76px; -} - -.edui-default .edui-for-insertcolnext .edui-icon { - background-position: -429px -76px; -} - -.edui-default .edui-for-mergeright .edui-icon { - background-position: -60px -40px; -} - -.edui-default .edui-for-mergedown .edui-icon { - background-position: -80px -40px; -} - -.edui-default .edui-for-splittorows .edui-icon { - background-position: -100px -40px; -} - -.edui-default .edui-for-splittocols .edui-icon { - background-position: -120px -40px; -} - -.edui-default .edui-for-insertparagraphbeforetable .edui-icon { - background-position: -140px -40px; -} - -.edui-default .edui-for-deleterow .edui-icon { - background-position: -660px -20px; -} - -.edui-default .edui-for-deletecol .edui-icon { - background-position: -640px -20px; -} - -.edui-default .edui-for-splittocells .edui-icon { - background-position: -800px -20px; -} - -.edui-default .edui-for-mergecells .edui-icon { - background-position: -760px -20px; -} - -.edui-default .edui-for-deletetable .edui-icon { - background-position: -620px -20px; -} - -.edui-default .edui-for-cleardoc .edui-icon { - background-position: -520px 0; -} - -.edui-default .edui-for-fullscreen .edui-icon { - background-position: -100px -20px; -} - -.edui-default .edui-for-anchor .edui-icon { - background-position: -200px 0; -} - -.edui-default .edui-for-pagebreak .edui-icon { - background-position: -460px -40px; -} - -.edui-default .edui-for-imagenone .edui-icon { - background-position: -480px -40px; -} - -.edui-default .edui-for-imageleft .edui-icon { - background-position: -500px -40px; -} - -.edui-default .edui-for-wordimage .edui-icon { - background-position: -660px -40px; -} - -.edui-default .edui-for-imageright .edui-icon { - background-position: -520px -40px; -} - -.edui-default .edui-for-imagecenter .edui-icon { - background-position: -540px -40px; -} - -.edui-default .edui-for-indent .edui-icon { - background-position: -400px 0; -} - -.edui-default .edui-for-outdent .edui-icon { - background-position: -540px 0; -} - -.edui-default .edui-for-webapp .edui-icon { - background-position: -601px -40px -} - -.edui-default .edui-for-table .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-edittable .edui-icon { - background-position: -420px -40px; -} - -.edui-default .edui-for-template .edui-icon { - background-position: -339px -40px; -} - -.edui-default .edui-for-delete .edui-icon { - background-position: -360px -40px; -} - -.edui-default .edui-for-attachment .edui-icon { - background-position: -620px -40px; -} - -.edui-default .edui-for-edittd .edui-icon { - background-position: -700px -40px; -} - -.edui-default .edui-for-snapscreen .edui-icon { - background-position: -581px -40px -} - -.edui-default .edui-for-scrawl .edui-icon { - background-position: -801px -41px -} - -.edui-default .edui-for-background .edui-icon { - background-position: -680px -40px; -} - -.edui-default .edui-for-music .edui-icon { - background-position: -18px -40px -} - -.edui-default .edui-for-formula .edui-icon { - background-position: -200px -40px -} - -.edui-default .edui-for-aligntd .edui-icon { - background-position: -236px -76px; -} - -.edui-default .edui-for-insertparagraphtrue .edui-icon { - background-position: -625px -76px; -} - -.edui-default .edui-for-insertparagraph .edui-icon { - background-position: -602px -76px; -} - -.edui-default .edui-for-insertcaption .edui-icon { - background-position: -336px -76px; -} - -.edui-default .edui-for-deletecaption .edui-icon { - background-position: -362px -76px; -} - -.edui-default .edui-for-inserttitle .edui-icon { - background-position: -286px -76px; -} - -.edui-default .edui-for-deletetitle .edui-icon { - background-position: -311px -76px; -} - -.edui-default .edui-for-aligntable .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-tablealignment-left .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-tablealignment-center .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-tablealignment-right .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-drafts .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-charts .edui-icon { - background: url( ../images/charts.png ) no-repeat 2px 3px!important; -} - -.edui-default .edui-for-inserttitlecol .edui-icon { - background-position: -673px -76px; -} - -.edui-default .edui-for-deletetitlecol .edui-icon { - background-position: -698px -76px; -} - -.edui-default .edui-for-simpleupload .edui-icon { - background-position: -380px 0px; -} -/*splitbutton*/ -.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow, -.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body { - padding: 1px; -} - -.edui-default .edui-toolbar .edui-splitborder { - width: 1px; - height: 20px; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-splitborder { - width: 1px; - border-left: 0px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-active .edui-splitborder { - width: 0; - border-left: 1px solid gray; -} - -.edui-default .edui-toolbar .edui-state-opened .edui-splitborder { - width: 1px; - border: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body { - background-color: #ffffff; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-state-disabled .edui-arrow { - opacity: 0.3; - _filter: alpha(opacity = 30); -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body { - background-color: white; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-for-insertorderedlist .edui-bordereraser, -.edui-default .edui-for-lineheight .edui-bordereraser, -.edui-default .edui-for-rowspacingtop .edui-bordereraser, -.edui-default .edui-for-rowspacingbottom .edui-bordereraser, -.edui-default .edui-for-insertunorderedlist .edui-bordereraser { - background-color: white; -} - -/* 解决嵌套导致的图标问题 */ -.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon, -.edui-default .edui-for-lineheight .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon, -.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon { - /*background-position: 0 -40px;*/ - background-image: none ; -} - -/* 弹出菜单 */ -.edui-default .edui-popup { - z-index: 3000; - background-color: #ffffff; - width:auto; - height:auto; - -} - -.edui-default .edui-popup .edui-shadow { - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-popup-content { - border:1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - padding: 5px; - background:#ffffff; -} - -.edui-default .edui-popup .edui-bordereraser { - background-color: white; - height: 3px; -} - -.edui-default .edui-menu .edui-bordereraser { - height: 3px; -} - -.edui-default .edui-anchor-topleft .edui-bordereraser { - left: 1px; - top: -2px; -} - -.edui-default .edui-anchor-topright .edui-bordereraser { - right: 1px; - top: -2px; -} - -.edui-default .edui-anchor-bottomleft .edui-bordereraser { - left: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-default .edui-anchor-bottomright .edui-bordereraser { - right: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-popup div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-messageholder { - display: block; - width: 150px; - height: auto; - border: 0; - margin: 0; - padding: 0; - position: absolute; - top: 28px; - right: 3px; -} - -.edui-default .edui-message{ - min-height: 10px; - text-shadow: 0 1px 0 rgba(255,255,255,0.5); - padding: 0; - margin-bottom: 3px; - position: relative; -} -.edui-default .edui-message-body{ - border-radius: 3px; - padding: 8px 15px 8px 8px; - color: #c09853; - background-color: #fcf8e3; - border: 1px solid #fbeed5; -} -.edui-default .edui-message-type-info{ - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1 -} -.edui-default .edui-message-type-success{ - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6 -} -.edui-default .edui-message-type-danger, -.edui-default .edui-message-type-error{ - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7 -} -.edui-default .edui-message .edui-message-closer { - display: block; - width: 16px; - height: 16px; - line-height: 16px; - position: absolute; - top: 0; - right: 0; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - float: right; - font-size: 20px; - font-weight: bold; - color: #999; - text-shadow: 0 1px 0 #fff; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; -} -.edui-default .edui-message .edui-message-content { - font-size: 10pt; - word-wrap: break-word; - word-break: normal; -} -/* 弹出对话框按钮和对话框大小 */ -.edui-default .edui-dialog { - z-index: 2000; - position: absolute; - -} - -.edui-dialog div{ - width:auto; -} - -.edui-default .edui-dialog-wrap { - margin-right: 6px; - margin-bottom: 6px; -} - -.edui-default .edui-dialog-fullscreen-flag { - margin-right: 0; - margin-bottom: 0; -} - -.edui-default .edui-dialog-body { - position: relative; - padding:2px 0 0 2px; - _zoom: 1; -} - -.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body { - padding: 0; -} - -.edui-default .edui-dialog-shadow { - position: absolute; - z-index: -1; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.edui-default .edui-dialog-foot { - background-color: white; -} - -.edui-default .edui-dialog-titlebar { - height: 26px; - border-bottom: 1px solid #c6c6c6; - background: url(../images/dialog-title-bg.png) repeat-x bottom; - position: relative; - cursor: move; -} -.edui-default .edui-dialog-caption { - font-weight: bold; - font-size: 12px; - line-height: 26px; - padding-left: 5px; -} - -.edui-default .edui-dialog-draghandle { - height: 26px; -} - -.edui-default .edui-dialog-closebutton { - position: absolute !important; - right: 5px; - top: 3px; -} - -.edui-default .edui-dialog-closebutton .edui-button-body { - height: 20px; - width: 20px; - cursor: pointer; - background: url("../images/icons-all.gif") no-repeat 0 -59px; -} - -.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -89px; -} - -.edui-default .edui-dialog-foot { - height: 40px; -} - -.edui-default .edui-dialog-buttons { - position: absolute; - right: 0; -} - -.edui-default .edui-dialog-buttons .edui-button { - margin-right: 10px; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-button-body { - background: url("../images/icons-all.gif") no-repeat; - height: 24px; - width: 96px; - font-size: 12px; - line-height: 24px; - text-align: center; - cursor: default; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -30px; -} - -.edui-default .edui-dialog iframe { - border: 0; - padding: 0; - margin: 0; - vertical-align: top; -} - -.edui-default .edui-dialog-modalmask { - opacity: 0.3; - filter: alpha(opacity = 30); - background-color: #ccc; - position: absolute; - /*z-index: 1999;*/ -} - -.edui-default .edui-dialog-dragmask { - position: absolute; - /*z-index: 2001;*/ - background-color: transparent; - cursor: move; -} - -.edui-default .edui-dialog-content { - position: relative; -} - -.edui-default .dialogcontmask { - cursor: move; - visibility: hidden; - display: block; - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - filter: alpha(opacity = 0); -} - -/*link-dialog*/ -.edui-default .edui-for-link .edui-dialog-content { - width: 420px; - height: 200px; - overflow: hidden; -} -/*background-dialog*/ -.edui-default .edui-for-background .edui-dialog-content { - width: 440px; - height: 280px; - overflow: hidden; -} - -/*template-dialog*/ -.edui-default .edui-for-template .edui-dialog-content { - width: 630px; - height: 390px; - overflow: hidden; -} - -/*scrawl-dialog*/ -.edui-default .edui-for-scrawl .edui-dialog-content { - width: 515px; - *width: 506px; - height: 360px; -} - -/*spechars-dialog*/ -.edui-default .edui-for-spechars .edui-dialog-content { - width: 620px; - height: 500px; - *width: 630px; - *height: 570px; -} - -/*image-dialog*/ -.edui-default .edui-for-insertimage .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} -/*webapp-dialog*/ -.edui-default .edui-for-webapp .edui-dialog-content { - width: 560px; - _width: 565px; - height: 450px; - overflow: hidden; -} - -/*image-insertframe*/ -.edui-default .edui-for-insertframe .edui-dialog-content { - width: 350px; - height: 200px; - overflow: hidden; -} - -/*wordImage-dialog*/ -.edui-default .edui-for-wordimage .edui-dialog-content { - width: 620px; - height: 380px; - overflow: hidden; -} - -/*attachment-dialog*/ -.edui-default .edui-for-attachment .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} - - -/*map-dialog*/ -.edui-default .edui-for-map .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*gmap-dialog*/ -.edui-default .edui-for-gmap .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*video-dialog*/ -.edui-default .edui-for-insertvideo .edui-dialog-content { - width: 590px; - height: 390px; -} - -/*anchor-dialog*/ -.edui-default .edui-for-anchor .edui-dialog-content { - width: 320px; - height: 60px; - overflow: hidden; -} - -/*searchreplace-dialog*/ -.edui-default .edui-for-searchreplace .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*help-dialog*/ -.edui-default .edui-for-help .edui-dialog-content { - width: 400px; - height: 420px; -} - -/*edittable-dialog*/ -.edui-default .edui-for-edittable .edui-dialog-content { - width: 540px; - _width:590px; - height: 335px; -} - -/*edittip-dialog*/ -.edui-default .edui-for-edittip .edui-dialog-content { - width: 225px; - height: 60px; -} - -/*edittd-dialog*/ -.edui-default .edui-for-edittd .edui-dialog-content { - width: 240px; - height: 50px; -} -/*snapscreen-dialog*/ -.edui-default .edui-for-snapscreen .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*music-dialog*/ -.edui-default .edui-for-music .edui-dialog-content { - width: 515px; - height: 360px; -} - -/*段落弹出菜单*/ -.edui-default .edui-for-paragraph .edui-listitem-label { - font-family: Tahoma, Verdana, Arial, Helvetica; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p { - font-size: 22px; - line-height: 27px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 { - font-weight: bolder; - font-size: 32px; - line-height: 36px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 { - font-weight: bolder; - font-size: 27px; - line-height: 29px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 { - font-weight: bolder; - font-size: 19px; - line-height: 23px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 { - font-weight: bolder; - font-size: 16px; - line-height: 19px -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 { - font-weight: bolder; - font-size: 13px; - line-height: 16px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 { - font-weight: bolder; - font-size: 12px; - line-height: 14px; -} -/* 表格弹出菜单 */ -.edui-default .edui-for-inserttable .edui-splitborder { - display: none -} -.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow { - width: 0 -} -.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{ - border-left: 1px solid transparent; -} -.edui-default .edui-tablepicker .edui-infoarea { - height: 14px; - line-height: 14px; - font-size: 12px; - width: 220px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-label { - float: left; -} - -.edui-default .edui-dialog-buttons .edui-label { - line-height: 24px; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-clickable { - float: right; -} - -.edui-default .edui-tablepicker .edui-pickarea { - background: url("../images/unhighlighted.gif") repeat; - height: 220px; - width: 220px; -} - -.edui-default .edui-tablepicker .edui-pickarea .edui-overlay { - background: url("../images/highlighted.gif") repeat; -} - -/* 颜色弹出菜单 */ -.edui-default .edui-colorpicker-topbar { - height: 27px; - width: 200px; - /*border-bottom: 1px gray dashed;*/ -} - -.edui-default .edui-colorpicker-preview { - height: 20px; - border: 1px inset black; - margin-left: 1px; - width: 128px; - float: left; -} - -.edui-default .edui-colorpicker-nocolor { - float: right; - margin-right: 1px; - font-size: 12px; - line-height: 14px; - height: 14px; - border: 1px solid #333; - padding: 3px 5px; - cursor: pointer; -} - -.edui-default .edui-colorpicker-tablefirstrow { - height: 30px; -} - -.edui-default .edui-colorpicker-colorcell { - width: 14px; - height: 14px; - display: block; - margin: 0; - cursor: pointer; -} - -.edui-default .edui-colorpicker-colorcell:hover { - width: 14px; - height: 14px; - margin: 0; -} -.edui-default .edui-colorpicker-advbtn{ - display: block; - text-align: center; - cursor: pointer; - height:20px; -} -.arrow_down{ - background: white url('../images/arrow_down.png') no-repeat center; -} -.arrow_up{ - background: white url('../images/arrow_up.png') no-repeat center; -} -/*高级的样式*/ -.edui-colorpicker-adv{ - position: relative; - overflow: hidden; - height: 180px; - display: none; -} -.edui-colorpicker-plant, .edui-colorpicker-hue { - border: solid 1px #666; -} -.edui-colorpicker-pad { - width: 150px; - height: 150px; - left: 14px; - top: 13px; - position: absolute; - background: red; - overflow: hidden; - cursor: crosshair; -} -.edui-colorpicker-cover{ - position: absolute; - top: 0; - left: 0; - width: 150px; - height: 150px; - background: url("../images/tangram-colorpicker.png") -160px -200px; -} -.edui-colorpicker-padDot{ - position: absolute; - top: 0; - left: 0; - width: 11px; - height: 11px; - overflow: hidden; - background: url(../images/tangram-colorpicker.png) 0px -200px repeat-x; - z-index: 1000; - -} -.edui-colorpicker-sliderMain { - position: absolute; - left: 171px; - top: 13px; - width: 19px; - height: 152px; - background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat; - -} -.edui-colorpicker-slider { - width: 100%; - height: 100%; - cursor: pointer; -} -.edui-colorpicker-thumb{ - position: absolute; - top: 0; - cursor: pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid black; - background: white; - opacity: .8; -} -/*自动排版弹出菜单*/ -.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body { - font-size: 12px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-autotypesetpicker-body table { - border-collapse: separate; - border-spacing: 2px; -} - -.edui-default .edui-autotypesetpicker-body td { - font-size: 12px; - word-wrap:break-word; -} - -.edui-default .edui-autotypesetpicker-body td input { - margin: 3px 3px 3px 4px; - *margin: 1px 0 0 0; -} -/*自动排版弹出菜单*/ -.edui-default .edui-cellalignpicker .edui-cellalignpicker-body { - width: 70px; - font-size: 12px; - cursor: default; -} - -.edui-default .edui-cellalignpicker-body table { - border-collapse: separate; - border-spacing: 0; -} -.edui-default .edui-cellalignpicker-body td{ - padding: 1px; -} -.edui-default .edui-cellalignpicker-body .edui-icon{ - height: 20px; - width: 20px; - padding: 1px; - background-image: url(../images/table-cell-align.png); -} - -.edui-default .edui-cellalignpicker-body .edui-left{ - background-position: 0 0; -} - -.edui-default .edui-cellalignpicker-body .edui-center{ - background-position: -25px 0; -} -.edui-default .edui-cellalignpicker-body .edui-right{ - background-position: -51px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{ - background-position: -73px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{ - background-position: -98px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{ - background-position: -124px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left { - background-position: -146px 0; - background-color: #f1f4f5; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center { - background-position: -245px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right { - background-position: -271px 0; -} -/*分隔线*/ -.edui-default .edui-toolbar .edui-separator { - width: 2px; - height: 20px; - margin: 2px 4px 2px 3px; - background: url(../images/icons.png) -181px 0; - background: url(../images/icons.gif) -181px 0 \9; -} - -/*颜色按钮 */ -.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump { - position: absolute; - overflow: hidden; - bottom: 1px; - left: 1px; - width: 18px; - height: 4px; -} -/*表情按钮及弹出菜单*/ -/*去除了表情的下拉箭头*/ -.edui-default .edui-for-emotion .edui-icon { - background-position: -60px -20px; -} -.edui-default .edui-for-emotion .edui-popup-content iframe -{ - width: 514px; - height: 380px; - overflow: hidden; -} -.edui-default .edui-for-emotion .edui-popup-content -{ - position: relative; - z-index: 555 -} - -.edui-default .edui-for-emotion .edui-splitborder { - display: none -} - -.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow -{ - width: 0 -} -.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder -{ - border-left: 1px solid transparent; -} -/*contextmenu*/ -.edui-default .edui-hassubmenu .edui-arrow { - height: 20px; - width: 20px; - float: right; - background: url("../images/icons-all.gif") no-repeat 10px -233px; -} - -.edui-default .edui-menu-body .edui-menuitem { - padding: 1px; -} - -.edui-default .edui-menuseparator { - margin: 2px 0; - height: 1px; - overflow: hidden; -} - -.edui-default .edui-menuseparator-inner { - border-bottom: 1px solid #e2e3e3; - margin-left: 29px; - margin-right: 1px; -} - -.edui-default .edui-menu-body .edui-state-hover { - padding: 0 !important; - background-color: #fff5d4; - border: 1px solid #dcac6c; -} -/*弹出菜单*/ -.edui-default .edui-shortcutmenu { - padding: 2px; - width: 190px; - height: 50px; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 5px; -} - -/*粘贴弹出菜单*/ -.edui-default .edui-wordpastepop .edui-popup-content{ - border: none; - padding: 0; - width: 54px; - height: 21px; -} -.edui-default .edui-pasteicon { - width: 100%; - height: 100%; - background-image: url('../images/wordpaste.png'); - background-position: 0 0; -} - -.edui-default .edui-pasteicon.edui-state-opened { - background-position: 0 -34px; -} - -.edui-default .edui-pastecontainer { - position: relative; - visibility: hidden; - width: 97px; - background: #fff; - border: 1px solid #ccc; -} - -.edui-default .edui-pastecontainer .edui-title { - font-weight: bold; - background: #F8F8FF; - height: 25px; - line-height: 25px; - font-size: 12px; - padding-left: 5px; -} - -.edui-default .edui-pastecontainer .edui-button { - overflow: hidden; - margin: 3px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon, -.edui-default .edui-pastecontainer .edui-button .edui-tagicon, -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{ - float: left; - cursor: pointer; - width: 29px; - height: 29px; - margin-left: 5px; - background-image: url('../images/wordpaste.png'); - background-repeat: no-repeat; -} -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon { - margin-left: 0; - background-position: -109px 0; -} -.edui-default .edui-pastecontainer .edui-button .edui-tagicon { - background-position: -148px 1px; -} - -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon { - background-position: -72px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon { - background-position: -109px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{ - background-position: -148px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{ - background-position: -72px -34px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.min.css b/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.min.css deleted file mode 100644 index 8dd924f..0000000 --- a/yshop-drink-vue/public/UEditor/themes/default/css/ueditor.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - - -.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:-moz-inline-box!important;display:inline-block!important;vertical-align:top}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:default}.edui-default span.edui-clickable{color:#00f;cursor:pointer;text-decoration:underline}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid #d4d4d4;background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;-webkit-box-shadow:0 1px 4px rgba(204,204,204,.6);-moz-box-shadow:0 1px 4px rgba(204,204,204,.6);box-shadow:0 1px 4px rgba(204,204,204,.6);border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid #d4d4d4;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid #ccc;line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px}.edui-default .edui-editor-breadcrumb span{cursor:pointer;text-decoration:underline;color:#00f}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{border:1px solid #DCAC6C;background-color:#fff6d9;padding:5px;font-size:10pt;font-family:"宋体"}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:20px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;background:url(../images/icons.png) 0 -4000px;background:url(../images/icons.gif) 0 -4000px\9}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body{background:url(../images/icons-all.gif) no-repeat 6px -205px}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:20px;line-height:20px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid #CCC;background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid #CCC}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{border-left:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3;filter:alpha(opacity=30)}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:20px!important;width:20px!important;background-image:url(../images/icons.png);background-image:url(../images/icons.gif) \9}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#fff5d4;padding:0;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#ffe69f;padding:0;border:1px solid #dcac6c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#fff;padding:0;border:1px solid gray}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-for-undo .edui-icon{background-position:-160px 0}.edui-default .edui-for-redo .edui-icon{background-position:-100px 0}.edui-default .edui-for-bold .edui-icon{background-position:0 0}.edui-default .edui-for-italic .edui-icon{background-position:-60px 0}.edui-default .edui-for-fontborder .edui-icon{background-position:-160px -40px}.edui-default .edui-for-underline .edui-icon{background-position:-140px 0}.edui-default .edui-for-strikethrough .edui-icon{background-position:-120px 0}.edui-default .edui-for-subscript .edui-icon{background-position:-600px 0}.edui-default .edui-for-superscript .edui-icon{background-position:-620px 0}.edui-default .edui-for-blockquote .edui-icon{background-position:-220px 0}.edui-default .edui-for-forecolor .edui-icon{background-position:-720px 0}.edui-default .edui-for-backcolor .edui-icon{background-position:-760px 0}.edui-default .edui-for-inserttable .edui-icon{background-position:-580px -20px}.edui-default .edui-for-autotypeset .edui-icon{background-position:-640px -40px}.edui-default .edui-for-justifyleft .edui-icon{background-position:-460px 0}.edui-default .edui-for-justifycenter .edui-icon{background-position:-420px 0}.edui-default .edui-for-justifyright .edui-icon{background-position:-480px 0}.edui-default .edui-for-justifyjustify .edui-icon{background-position:-440px 0}.edui-default .edui-for-insertorderedlist .edui-icon{background-position:-80px 0}.edui-default .edui-for-insertunorderedlist .edui-icon{background-position:-20px 0}.edui-default .edui-for-lineheight .edui-icon{background-position:-725px -40px}.edui-default .edui-for-rowspacingbottom .edui-icon{background-position:-745px -40px}.edui-default .edui-for-rowspacingtop .edui-icon{background-position:-765px -40px}.edui-default .edui-for-horizontal .edui-icon{background-position:-360px 0}.edui-default .edui-for-link .edui-icon{background-position:-500px 0}.edui-default .edui-for-code .edui-icon{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon{background-position:-726px -77px}.edui-default .edui-for-insertframe .edui-icon{background-position:-240px -40px}.edui-default .edui-for-emoticon .edui-icon{background-position:-60px -20px}.edui-default .edui-for-spechars .edui-icon{background-position:-240px 0}.edui-default .edui-for-help .edui-icon{background-position:-340px 0}.edui-default .edui-for-print .edui-icon{background-position:-440px -20px}.edui-default .edui-for-preview .edui-icon{background-position:-420px -20px}.edui-default .edui-for-selectall .edui-icon{background-position:-400px -20px}.edui-default .edui-for-searchreplace .edui-icon{background-position:-520px -20px}.edui-default .edui-for-map .edui-icon{background-position:-40px -40px}.edui-default .edui-for-gmap .edui-icon{background-position:-260px -40px}.edui-default .edui-for-insertvideo .edui-icon{background-position:-320px -20px}.edui-default .edui-for-time .edui-icon{background-position:-160px -20px}.edui-default .edui-for-date .edui-icon{background-position:-140px -20px}.edui-default .edui-for-cut .edui-icon{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon{background-position:-40px 0}.edui-default .edui-for-pasteplain .edui-icon{background-position:-360px -20px}.edui-default .edui-for-directionalityltr .edui-icon{background-position:-20px -20px}.edui-default .edui-for-directionalityrtl .edui-icon{background-position:-40px -20px}.edui-default .edui-for-source .edui-icon{background-position:-261px -0px}.edui-default .edui-for-removeformat .edui-icon{background-position:-580px 0}.edui-default .edui-for-unlink .edui-icon{background-position:-640px 0}.edui-default .edui-for-touppercase .edui-icon{background-position:-786px 0}.edui-default .edui-for-tolowercase .edui-icon{background-position:-806px 0}.edui-default .edui-for-insertrow .edui-icon{background-position:-478px -76px}.edui-default .edui-for-insertrownext .edui-icon{background-position:-498px -76px}.edui-default .edui-for-insertcol .edui-icon{background-position:-455px -76px}.edui-default .edui-for-insertcolnext .edui-icon{background-position:-429px -76px}.edui-default .edui-for-mergeright .edui-icon{background-position:-60px -40px}.edui-default .edui-for-mergedown .edui-icon{background-position:-80px -40px}.edui-default .edui-for-splittorows .edui-icon{background-position:-100px -40px}.edui-default .edui-for-splittocols .edui-icon{background-position:-120px -40px}.edui-default .edui-for-insertparagraphbeforetable .edui-icon{background-position:-140px -40px}.edui-default .edui-for-deleterow .edui-icon{background-position:-660px -20px}.edui-default .edui-for-deletecol .edui-icon{background-position:-640px -20px}.edui-default .edui-for-splittocells .edui-icon{background-position:-800px -20px}.edui-default .edui-for-mergecells .edui-icon{background-position:-760px -20px}.edui-default .edui-for-deletetable .edui-icon{background-position:-620px -20px}.edui-default .edui-for-cleardoc .edui-icon{background-position:-520px 0}.edui-default .edui-for-fullscreen .edui-icon{background-position:-100px -20px}.edui-default .edui-for-anchor .edui-icon{background-position:-200px 0}.edui-default .edui-for-pagebreak .edui-icon{background-position:-460px -40px}.edui-default .edui-for-imagenone .edui-icon{background-position:-480px -40px}.edui-default .edui-for-imageleft .edui-icon{background-position:-500px -40px}.edui-default .edui-for-wordimage .edui-icon{background-position:-660px -40px}.edui-default .edui-for-imageright .edui-icon{background-position:-520px -40px}.edui-default .edui-for-imagecenter .edui-icon{background-position:-540px -40px}.edui-default .edui-for-indent .edui-icon{background-position:-400px 0}.edui-default .edui-for-outdent .edui-icon{background-position:-540px 0}.edui-default .edui-for-webapp .edui-icon{background-position:-601px -40px}.edui-default .edui-for-table .edui-icon{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon{background-position:-339px -40px}.edui-default .edui-for-delete .edui-icon{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon{background-position:-620px -40px}.edui-default .edui-for-edittd .edui-icon{background-position:-700px -40px}.edui-default .edui-for-snapscreen .edui-icon{background-position:-581px -40px}.edui-default .edui-for-scrawl .edui-icon{background-position:-801px -41px}.edui-default .edui-for-background .edui-icon{background-position:-680px -40px}.edui-default .edui-for-music .edui-icon{background-position:-18px -40px}.edui-default .edui-for-formula .edui-icon{background-position:-200px -40px}.edui-default .edui-for-aligntd .edui-icon{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon{background-position:-480px 0}.edui-default .edui-for-drafts .edui-icon{background-position:-560px 0}.edui-default .edui-for-charts .edui-icon{background:url( ../images/charts.png ) no-repeat 2px 3px!important}.edui-default .edui-for-inserttitlecol .edui-icon{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon{background-position:-380px 0}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px}.edui-default .edui-toolbar .edui-splitborder{width:1px;height:20px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{width:1px;border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0;border-left:1px solid gray}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{width:1px;border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#FFE69F;border:1px solid #DCAC6C;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 4px rgba(0,0,0,.2);-moz-box-shadow:0 3px 4px rgba(0,0,0,.2);box-shadow:0 3px 4px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;padding:5px;background:#fff}.edui-default .edui-popup .edui-bordereraser{background-color:#fff;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative;padding:2px 0 0 2px;_zoom:1}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff}.edui-default .edui-dialog-titlebar{height:26px;border-bottom:1px solid #c6c6c6;background:url(../images/dialog-title-bg.png) repeat-x bottom;position:relative;cursor:move}.edui-default .edui-dialog-caption{font-weight:700;font-size:12px;line-height:26px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:26px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:5px;top:3px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer;background:url(../images/icons-all.gif) no-repeat 0 -59px}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -89px}.edui-default .edui-dialog-foot{height:40px}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{background:url(../images/icons-all.gif) no-repeat;height:24px;width:96px;font-size:12px;line-height:24px;text-align:center;cursor:default}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -30px}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-webapp .edui-dialog-content{width:560px;_width:565px;height:450px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:200px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-gmap .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:390px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-snapscreen .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-music .edui-dialog-content{width:515px;height:360px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:24px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:14px;height:14px;border:1px solid #333;padding:3px 5px;cursor:pointer}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:2px;height:20px;margin:2px 4px 2px 3px;background:url(../images/icons.png) -181px 0;background:url(../images/icons.gif) -181px 0 \9}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:1px;width:18px;height:4px}.edui-default .edui-for-emotion .edui-icon{background-position:-60px -20px}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;background:url(../images/icons-all.gif) no-repeat 10px -233px}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-shortcutmenu{padding:2px;width:190px;height:50px;background-color:#fff;border:1px solid #ccc;border-radius:5px}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/themes/default/dialogbase.css b/yshop-drink-vue/public/UEditor/themes/default/dialogbase.css deleted file mode 100644 index ea71266..0000000 --- a/yshop-drink-vue/public/UEditor/themes/default/dialogbase.css +++ /dev/null @@ -1,100 +0,0 @@ -/*弹出对话框页面样式组件 -*/ - -/*reset -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - outline: 0; - font-size: 100%; -} - -body { - line-height: 1; -} - -ol, ul { - list-style: none; -} - -blockquote, q { - quotes: none; -} - -ins { - text-decoration: none; -} - -del { - text-decoration: line-through; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -/*module -*/ -body { - background-color: #fff; - font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA; - color: #646464; -} - -/*tab*/ -.tabhead { - position: relative; - z-index: 10; -} - -.tabhead span { - display: inline-block; - padding: 0 5px; - height: 30px; - border: 1px solid #ccc; - background: url("images/dialog-title-bg.png") repeat-x; - text-align: center; - line-height: 30px; - cursor: pointer; - *margin-right: 5px; -} - -.tabhead span.focus { - height: 31px; - border-bottom: none; - background: #fff; -} - -.tabbody { - position: relative; - top: -1px; - margin: 0 auto; - border: 1px solid #ccc; -} - -/*button*/ -a.button { - display: block; - text-align: center; - line-height: 24px; - text-decoration: none; - height: 24px; - width: 95px; - border: 0; - color: #838383; - background: url(../../themes/default/images/icons-all.gif) no-repeat; -} - -a.button:hover { - background-position: 0 -30px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/anchor.gif b/yshop-drink-vue/public/UEditor/themes/default/images/anchor.gif deleted file mode 100644 index 5aa797b..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/anchor.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/arrow.png b/yshop-drink-vue/public/UEditor/themes/default/images/arrow.png deleted file mode 100644 index d900886..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/arrow.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/arrow_down.png b/yshop-drink-vue/public/UEditor/themes/default/images/arrow_down.png deleted file mode 100644 index e9257e8..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/arrow_down.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/arrow_up.png b/yshop-drink-vue/public/UEditor/themes/default/images/arrow_up.png deleted file mode 100644 index 74277af..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/arrow_up.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/button-bg.gif b/yshop-drink-vue/public/UEditor/themes/default/images/button-bg.gif deleted file mode 100644 index ec7fa2e..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/button-bg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/cancelbutton.gif b/yshop-drink-vue/public/UEditor/themes/default/images/cancelbutton.gif deleted file mode 100644 index df4bc2c..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/cancelbutton.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/charts.png b/yshop-drink-vue/public/UEditor/themes/default/images/charts.png deleted file mode 100644 index 713965c..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/charts.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.gif b/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.gif deleted file mode 100644 index d7c3e7e..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.png b/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.png deleted file mode 100644 index 2088fc2..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_h.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.gif b/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.gif deleted file mode 100644 index bb508db..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.png b/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.png deleted file mode 100644 index 6f39ca3..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/cursor_v.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/dialog-title-bg.png b/yshop-drink-vue/public/UEditor/themes/default/images/dialog-title-bg.png deleted file mode 100644 index f744f26..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/dialog-title-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/filescan.png b/yshop-drink-vue/public/UEditor/themes/default/images/filescan.png deleted file mode 100644 index 1d27158..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/filescan.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/highlighted.gif b/yshop-drink-vue/public/UEditor/themes/default/images/highlighted.gif deleted file mode 100644 index 9272b49..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/highlighted.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/icons-all.gif b/yshop-drink-vue/public/UEditor/themes/default/images/icons-all.gif deleted file mode 100644 index 21915e5..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/icons-all.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/icons.gif b/yshop-drink-vue/public/UEditor/themes/default/images/icons.gif deleted file mode 100644 index 7abd30a..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/icons.png b/yshop-drink-vue/public/UEditor/themes/default/images/icons.png deleted file mode 100644 index c015e3a..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/loaderror.png b/yshop-drink-vue/public/UEditor/themes/default/images/loaderror.png deleted file mode 100644 index 35ff333..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/loaderror.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/loading.gif b/yshop-drink-vue/public/UEditor/themes/default/images/loading.gif deleted file mode 100644 index b713e27..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/loading.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/lock.gif b/yshop-drink-vue/public/UEditor/themes/default/images/lock.gif deleted file mode 100644 index b4e6d78..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/lock.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/neweditor-tab-bg.png b/yshop-drink-vue/public/UEditor/themes/default/images/neweditor-tab-bg.png deleted file mode 100644 index 8f398b0..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/neweditor-tab-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/pagebreak.gif b/yshop-drink-vue/public/UEditor/themes/default/images/pagebreak.gif deleted file mode 100644 index 8d1cffd..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/pagebreak.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/scale.png b/yshop-drink-vue/public/UEditor/themes/default/images/scale.png deleted file mode 100644 index f45adb5..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/scale.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/sortable.png b/yshop-drink-vue/public/UEditor/themes/default/images/sortable.png deleted file mode 100644 index 1bca649..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/sortable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/spacer.gif b/yshop-drink-vue/public/UEditor/themes/default/images/spacer.gif deleted file mode 100644 index 5bfd67a..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/spacer.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/sparator_v.png b/yshop-drink-vue/public/UEditor/themes/default/images/sparator_v.png deleted file mode 100644 index 8cf5662..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/sparator_v.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/table-cell-align.png b/yshop-drink-vue/public/UEditor/themes/default/images/table-cell-align.png deleted file mode 100644 index ddf4285..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/table-cell-align.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/tangram-colorpicker.png b/yshop-drink-vue/public/UEditor/themes/default/images/tangram-colorpicker.png deleted file mode 100644 index 738e500..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/tangram-colorpicker.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/toolbar_bg.png b/yshop-drink-vue/public/UEditor/themes/default/images/toolbar_bg.png deleted file mode 100644 index 7ab685f..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/toolbar_bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/unhighlighted.gif b/yshop-drink-vue/public/UEditor/themes/default/images/unhighlighted.gif deleted file mode 100644 index 7ad0b67..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/unhighlighted.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/upload.png b/yshop-drink-vue/public/UEditor/themes/default/images/upload.png deleted file mode 100644 index 08d4d92..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/videologo.gif b/yshop-drink-vue/public/UEditor/themes/default/images/videologo.gif deleted file mode 100644 index 555af74..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/videologo.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/word.gif b/yshop-drink-vue/public/UEditor/themes/default/images/word.gif deleted file mode 100644 index 9ef5d09..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/word.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/default/images/wordpaste.png b/yshop-drink-vue/public/UEditor/themes/default/images/wordpaste.png deleted file mode 100644 index 9367758..0000000 Binary files a/yshop-drink-vue/public/UEditor/themes/default/images/wordpaste.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor/themes/iframe.css b/yshop-drink-vue/public/UEditor/themes/iframe.css deleted file mode 100644 index 32e7222..0000000 --- a/yshop-drink-vue/public/UEditor/themes/iframe.css +++ /dev/null @@ -1 +0,0 @@ -/*可以在这里添加你自己的css*/ diff --git a/yshop-drink-vue/public/UEditor/third-party/SyntaxHighlighter/shCore.js b/yshop-drink-vue/public/UEditor/third-party/SyntaxHighlighter/shCore.js deleted file mode 100644 index 27e59fa..0000000 --- a/yshop-drink-vue/public/UEditor/third-party/SyntaxHighlighter/shCore.js +++ /dev/null @@ -1,3655 +0,0 @@ -// XRegExp 1.5.1 -// (c) 2007-2012 Steven Levithan -// MIT License -// -// Provides an augmented, extensible, cross-browser implementation of regular expressions, -// including support for additional syntax, flags, and methods - -var XRegExp; - -if (XRegExp) { - // Avoid running twice, since that would break references to native globals - throw Error("can't load XRegExp twice in the same frame"); -} - -// Run within an anonymous function to protect variables and avoid new globals -(function (undefined) { - - //--------------------------------- - // Constructor - //--------------------------------- - - // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native - // regular expression in that additional syntax and flags are supported and cross-browser - // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and - // converts to type XRegExp - XRegExp = function (pattern, flags) { - var output = [], - currScope = XRegExp.OUTSIDE_CLASS, - pos = 0, - context, tokenResult, match, chr, regex; - - if (XRegExp.isRegExp(pattern)) { - if (flags !== undefined) - throw TypeError("can't supply flags when constructing one RegExp from another"); - return clone(pattern); - } - // Tokens become part of the regex construction process, so protect against infinite - // recursion when an XRegExp is constructed within a token handler or trigger - if (isInsideConstructor) - throw Error("can't call the XRegExp constructor within token definition functions"); - - flags = flags || ""; - context = { // `this` object for custom tokens - hasNamedCapture: false, - captureNames: [], - hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, - setFlag: function (flag) {flags += flag;} - }; - - while (pos < pattern.length) { - // Check for custom tokens at the current position - tokenResult = runTokens(pattern, pos, currScope, context); - - if (tokenResult) { - output.push(tokenResult.output); - pos += (tokenResult.match[0].length || 1); - } else { - // Check for native multicharacter metasequences (excluding character classes) at - // the current position - if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { - output.push(match[0]); - pos += match[0].length; - } else { - chr = pattern.charAt(pos); - if (chr === "[") - currScope = XRegExp.INSIDE_CLASS; - else if (chr === "]") - currScope = XRegExp.OUTSIDE_CLASS; - // Advance position one character - output.push(chr); - pos++; - } - } - } - - regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); - regex._xregexp = { - source: pattern, - captureNames: context.hasNamedCapture ? context.captureNames : null - }; - return regex; - }; - - - //--------------------------------- - // Public properties - //--------------------------------- - - XRegExp.version = "1.5.1"; - - // Token scope bitflags - XRegExp.INSIDE_CLASS = 1; - XRegExp.OUTSIDE_CLASS = 2; - - - //--------------------------------- - // Private variables - //--------------------------------- - - var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, - flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags - quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, - isInsideConstructor = false, - tokens = [], - // Copy native globals for reference ("native" is an ES3 reserved keyword) - nativ = { - exec: RegExp.prototype.exec, - test: RegExp.prototype.test, - match: String.prototype.match, - replace: String.prototype.replace, - split: String.prototype.split - }, - compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups - compliantLastIndexIncrement = function () { - var x = /^/g; - nativ.test.call(x, ""); - return !x.lastIndex; - }(), - hasNativeY = RegExp.prototype.sticky !== undefined, - nativeTokens = {}; - - // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, - // excluding character classes) - nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; - nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; - - - //--------------------------------- - // Public methods - //--------------------------------- - - // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by - // the XRegExp library and can be used to create XRegExp plugins. This function is intended for - // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can - // be disabled by `XRegExp.freezeTokens` - XRegExp.addToken = function (regex, handler, scope, trigger) { - tokens.push({ - pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), - handler: handler, - scope: scope || XRegExp.OUTSIDE_CLASS, - trigger: trigger || null - }); - }; - - // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag - // combination has previously been cached, the cached copy is returned; otherwise the newly - // created regex is cached - XRegExp.cache = function (pattern, flags) { - var key = pattern + "/" + (flags || ""); - return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); - }; - - // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh - // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` - // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve - // special properties required for named capture - XRegExp.copyAsGlobal = function (regex) { - return clone(regex, "g"); - }; - - // Accepts a string; returns the string with regex metacharacters escaped. The returned string - // can safely be used at any point within a regex to match the provided literal string. Escaped - // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace - XRegExp.escape = function (str) { - return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }; - - // Accepts a string to search, regex to search with, position to start the search within the - // string (default: 0), and an optional Boolean indicating whether matches must start at-or- - // after the position or at the specified position only. This function ignores the `lastIndex` - // of the provided regex in its own handling, but updates the property for compatibility - XRegExp.execAt = function (str, regex, pos, anchored) { - var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), - match; - r2.lastIndex = pos = pos || 0; - match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (anchored && match && match.index !== pos) - match = null; - if (regex.global) - regex.lastIndex = match ? r2.lastIndex : 0; - return match; - }; - - // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing - // syntax and flag changes. Should be run after XRegExp and any plugins are loaded - XRegExp.freezeTokens = function () { - XRegExp.addToken = function () { - throw Error("can't run addToken after freezeTokens"); - }; - }; - - // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. - // Note that this is also `true` for regex literals and regexes created by the `XRegExp` - // constructor. This works correctly for variables created in another frame, when `instanceof` - // and `constructor` checks would fail to work as intended - XRegExp.isRegExp = function (o) { - return Object.prototype.toString.call(o) === "[object RegExp]"; - }; - - // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to - // iterate over regex matches compared to the traditional approaches of subverting - // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop - XRegExp.iterate = function (str, regex, callback, context) { - var r2 = clone(regex, "g"), - i = -1, match; - while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (regex.global) - regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` - callback.call(context, match, ++i, str, regex); - if (r2.lastIndex === match.index) - r2.lastIndex++; - } - if (regex.global) - regex.lastIndex = 0; - }; - - // Accepts a string and an array of regexes; returns the result of using each successive regex - // to search within the matches of the previous regex. The array of regexes can also contain - // objects with `regex` and `backref` properties, in which case the named or numbered back- - // references specified are passed forward to the next regex or returned. E.g.: - // var xregexpImgFileNames = XRegExp.matchChain(html, [ - // {regex: /]+)>/i, backref: 1}, // tag attributes - // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values - // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths - // /[^\/]+$/ // filenames (strip directory paths) - // ]); - XRegExp.matchChain = function (str, chain) { - return function recurseChain (values, level) { - var item = chain[level].regex ? chain[level] : {regex: chain[level]}, - regex = clone(item.regex, "g"), - matches = [], i; - for (i = 0; i < values.length; i++) { - XRegExp.iterate(values[i], regex, function (match) { - matches.push(item.backref ? (match[item.backref] || "") : match[0]); - }); - } - return ((level === chain.length - 1) || !matches.length) ? - matches : recurseChain(matches, level + 1); - }([str], 0); - }; - - - //--------------------------------- - // New RegExp prototype methods - //--------------------------------- - - // Accepts a context object and arguments array; returns the result of calling `exec` with the - // first value in the arguments array. the context is ignored but is accepted for congruity - // with `Function.prototype.apply` - RegExp.prototype.apply = function (context, args) { - return this.exec(args[0]); - }; - - // Accepts a context object and string; returns the result of calling `exec` with the provided - // string. the context is ignored but is accepted for congruity with `Function.prototype.call` - RegExp.prototype.call = function (context, str) { - return this.exec(str); - }; - - - //--------------------------------- - // Overriden native methods - //--------------------------------- - - // Adds named capture support (with backreferences returned as `result.name`), and fixes two - // cross-browser issues per ES3: - // - Captured values for nonparticipating capturing groups should be returned as `undefined`, - // rather than the empty string. - // - `lastIndex` should not be incremented after zero-length matches. - RegExp.prototype.exec = function (str) { - var match, name, r2, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.apply(this, arguments); - if (match) { - // Fix browsers whose `exec` methods don't consistently return `undefined` for - // nonparticipating capturing groups - if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { - r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); - // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed - // matching due to characters outside the match - nativ.replace.call((str + "").slice(match.index), r2, function () { - for (var i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) - match[i] = undefined; - } - }); - } - // Attach named capture properties - if (this._xregexp && this._xregexp.captureNames) { - for (var i = 1; i < match.length; i++) { - name = this._xregexp.captureNames[i - 1]; - if (name) - match[name] = match[i]; - } - } - // Fix browsers that increment `lastIndex` after zero-length matches - if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - } - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return match; - }; - - // Fix browser bugs in native method - RegExp.prototype.test = function (str) { - // Use the native `exec` to skip some processing overhead, even though the altered - // `exec` would take care of the `lastIndex` fixes - var match, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.call(this, str); - // Fix browsers that increment `lastIndex` after zero-length matches - if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return !!match; - }; - - // Adds named capture support and fixes browser bugs in native method - String.prototype.match = function (regex) { - if (!XRegExp.isRegExp(regex)) - regex = RegExp(regex); // Native `RegExp` - if (regex.global) { - var result = nativ.match.apply(this, arguments); - regex.lastIndex = 0; // Fix IE bug - return result; - } - return regex.exec(this); // Run the altered `exec` - }; - - // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, - // and provides named backreferences to replacement functions as `arguments[0].name`. Also - // fixes cross-browser differences in replacement text syntax when performing a replacement - // using a nonregex search value, and the value of replacement regexes' `lastIndex` property - // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary - // third (`flags`) parameter - String.prototype.replace = function (search, replacement) { - var isRegex = XRegExp.isRegExp(search), - captureNames, result, str, origLastIndex; - - // There are too many combinations of search/replacement types/values and browser bugs that - // preclude passing to native `replace`, so don't try - //if (...) - // return nativ.replace.apply(this, arguments); - - if (isRegex) { - if (search._xregexp) - captureNames = search._xregexp.captureNames; // Array or `null` - if (!search.global) - origLastIndex = search.lastIndex; - } else { - search = search + ""; // Type conversion - } - - if (Object.prototype.toString.call(replacement) === "[object Function]") { - result = nativ.replace.call(this + "", search, function () { - if (captureNames) { - // Change the `arguments[0]` string primitive to a String object which can store properties - arguments[0] = new String(arguments[0]); - // Store named backreferences on `arguments[0]` - for (var i = 0; i < captureNames.length; i++) { - if (captureNames[i]) - arguments[0][captureNames[i]] = arguments[i + 1]; - } - } - // Update `lastIndex` before calling `replacement` (fix browsers) - if (isRegex && search.global) - search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; - return replacement.apply(null, arguments); - }); - } else { - str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) - result = nativ.replace.call(str, search, function () { - var args = arguments; // Keep this function's `arguments` available through closure - return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { - // Numbered backreference (without delimiters) or special variable - if ($1) { - switch ($1) { - case "$": return "$"; - case "&": return args[0]; - case "`": return args[args.length - 1].slice(0, args[args.length - 2]); - case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); - // Numbered backreference - default: - // What does "$10" mean? - // - Backreference 10, if 10 or more capturing groups exist - // - Backreference 1 followed by "0", if 1-9 capturing groups exist - // - Otherwise, it's the string "$10" - // Also note: - // - Backreferences cannot be more than two digits (enforced by `replacementToken`) - // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" - // - There is no "$0" token ("$&" is the entire match) - var literalNumbers = ""; - $1 = +$1; // Type conversion; drop leading zero - if (!$1) // `$1` was "0" or "00" - return $0; - while ($1 > args.length - 3) { - literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; - $1 = Math.floor($1 / 10); // Drop the last digit - } - return ($1 ? args[$1] || "" : "$") + literalNumbers; - } - // Named backreference or delimited numbered backreference - } else { - // What does "${n}" mean? - // - Backreference to numbered capture n. Two differences from "$n": - // - n can be more than two digits - // - Backreference 0 is allowed, and is the entire match - // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture - // - Otherwise, it's the string "${n}" - var n = +$2; // Type conversion; drop leading zeros - if (n <= args.length - 3) - return args[n]; - n = captureNames ? indexOf(captureNames, $2) : -1; - return n > -1 ? args[n + 1] : $0; - } - }); - }); - } - - if (isRegex) { - if (search.global) - search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) - else - search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - } - - return result; - }; - - // A consistent cross-browser, ES3 compliant `split` - String.prototype.split = function (s /* separator */, limit) { - // If separator `s` is not a regex, use the native `split` - if (!XRegExp.isRegExp(s)) - return nativ.split.apply(this, arguments); - - var str = this + "", // Type conversion - output = [], - lastLastIndex = 0, - match, lastLength; - - // Behavior for `limit`: if it's... - // - `undefined`: No limit - // - `NaN` or zero: Return an empty array - // - A positive number: Use `Math.floor(limit)` - // - A negative number: No limit - // - Other: Type-convert, then use the above rules - if (limit === undefined || +limit < 0) { - limit = Infinity; - } else { - limit = Math.floor(+limit); - if (!limit) - return []; - } - - // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero - // and restore it to its original value when we're done using the regex - s = XRegExp.copyAsGlobal(s); - - while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (s.lastIndex > lastLastIndex) { - output.push(str.slice(lastLastIndex, match.index)); - - if (match.length > 1 && match.index < str.length) - Array.prototype.push.apply(output, match.slice(1)); - - lastLength = match[0].length; - lastLastIndex = s.lastIndex; - - if (output.length >= limit) - break; - } - - if (s.lastIndex === match.index) - s.lastIndex++; - } - - if (lastLastIndex === str.length) { - if (!nativ.test.call(s, "") || lastLength) - output.push(""); - } else { - output.push(str.slice(lastLastIndex)); - } - - return output.length > limit ? output.slice(0, limit) : output; - }; - - - //--------------------------------- - // Private helper functions - //--------------------------------- - - // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` - // instance with a fresh `lastIndex` (set to zero), preserving properties required for named - // capture. Also allows adding new flags in the process of copying the regex - function clone (regex, additionalFlags) { - if (!XRegExp.isRegExp(regex)) - throw TypeError("type RegExp expected"); - var x = regex._xregexp; - regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); - if (x) { - regex._xregexp = { - source: x.source, - captureNames: x.captureNames ? x.captureNames.slice(0) : null - }; - } - return regex; - } - - function getNativeFlags (regex) { - return (regex.global ? "g" : "") + - (regex.ignoreCase ? "i" : "") + - (regex.multiline ? "m" : "") + - (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 - (regex.sticky ? "y" : ""); - } - - function runTokens (pattern, index, scope, context) { - var i = tokens.length, - result, match, t; - // Protect against constructing XRegExps within token handler and trigger functions - isInsideConstructor = true; - // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws - try { - while (i--) { // Run in reverse order - t = tokens[i]; - if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { - t.pattern.lastIndex = index; - match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. - if (match && match.index === index) { - result = { - output: t.handler.call(context, match, scope), - match: match - }; - break; - } - } - } - } catch (err) { - throw err; - } finally { - isInsideConstructor = false; - } - return result; - } - - function indexOf (array, item, from) { - if (Array.prototype.indexOf) // Use the native array method if available - return array.indexOf(item, from); - for (var i = from || 0; i < array.length; i++) { - if (array[i] === item) - return i; - } - return -1; - } - - - //--------------------------------- - // Built-in tokens - //--------------------------------- - - // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the - // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` - - // Comment pattern: (?# ) - XRegExp.addToken( - /\(\?#[^)]*\)/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - } - ); - - // Capturing group (match the opening parenthesis only). - // Required for support of named capturing groups - XRegExp.addToken( - /\((?!\?)/, - function () { - this.captureNames.push(null); - return "("; - } - ); - - // Named capturing group (match the opening delimiter only): (? - XRegExp.addToken( - /\(\?<([$\w]+)>/, - function (match) { - this.captureNames.push(match[1]); - this.hasNamedCapture = true; - return "("; - } - ); - - // Named backreference: \k - XRegExp.addToken( - /\\k<([\w$]+)>/, - function (match) { - var index = indexOf(this.captureNames, match[1]); - // Keep backreferences separate from subsequent literal numbers. Preserve back- - // references to named groups that are undefined at this point as literal strings - return index > -1 ? - "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : - match[0]; - } - ); - - // Empty character class: [] or [^] - XRegExp.addToken( - /\[\^?]/, - function (match) { - // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. - // (?!) should work like \b\B, but is unreliable in Firefox - return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; - } - ); - - // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) - // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. - XRegExp.addToken( - /^\(\?([imsx]+)\)/, - function (match) { - this.setFlag(match[1]); - return ""; - } - ); - - // Whitespace and comments, in free-spacing (aka extended) mode only - XRegExp.addToken( - /(?:\s+|#.*)+/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - }, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("x");} - ); - - // Dot, in dotall (aka singleline) mode only - XRegExp.addToken( - /\./, - function () {return "[\\s\\S]";}, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("s");} - ); - - - //--------------------------------- - // Backward compatibility - //--------------------------------- - - // Uncomment the following block for compatibility with XRegExp 1.0-1.2: - /* - XRegExp.matchWithinChain = XRegExp.matchChain; - RegExp.prototype.addFlags = function (s) {return clone(this, s);}; - RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; - RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; - RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; - */ - -})(); - -// -// Begin anonymous function. This is used to contain local scope variables without polutting global scope. -// -if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() { - -// CommonJS - if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') - { - XRegExp = require('XRegExp').XRegExp; - } - -// Shortcut object which will be assigned to the SyntaxHighlighter variable. -// This is a shorthand for local reference in order to avoid long namespace -// references to SyntaxHighlighter.whatever... - var sh = { - defaults : { - /** Additional CSS class names to be added to highlighter elements. */ - 'class-name' : '', - - /** First line number. */ - 'first-line' : 1, - - /** - * Pads line numbers. Possible values are: - * - * false - don't pad line numbers. - * true - automaticaly pad numbers with minimum required number of leading zeroes. - * [int] - length up to which pad line numbers. - */ - 'pad-line-numbers' : false, - - /** Lines to highlight. */ - 'highlight' : false, - - /** Title to be displayed above the code block. */ - 'title' : null, - - /** Enables or disables smart tabs. */ - 'smart-tabs' : true, - - /** Gets or sets tab size. */ - 'tab-size' : 4, - - /** Enables or disables gutter. */ - 'gutter' : true, - - /** Enables or disables toolbar. */ - 'toolbar' : true, - - /** Enables quick code copy and paste from double click. */ - 'quick-code' : true, - - /** Forces code view to be collapsed. */ - 'collapse' : false, - - /** Enables or disables automatic links. */ - 'auto-links' : false, - - /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ - 'light' : false, - - 'unindent' : true, - - 'html-script' : false - }, - - config : { - space : ' ', - - /** Enables use of - * - * ``` - */ - findParent:function (node, filterFn, includeSelf) { - if (node && !domUtils.isBody(node)) { - node = includeSelf ? node : node.parentNode; - while (node) { - if (!filterFn || filterFn(node) || domUtils.isBody(node)) { - return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node; - } - node = node.parentNode; - } - } - return null; - }, - /** - * 查找node的节点名为tagName的第一个祖先节点, 查找的起点是node节点的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var node = UE.dom.domUtils.findParentByTagName( document.getElementsByTagName("div")[0], [ "BODY" ] ); - * //output: BODY - * console.log( node.tagName ); - * ``` - */ - - /** - * 查找node的节点名为tagName的祖先节点, 如果includeSelf的值为true,则查找的起点是给定的节点node, - * 否则, 起点是node的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @param { Boolean } includeSelf 查找过程是否包含node节点自身 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var queryTarget = document.getElementsByTagName("div")[0]; - * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ "DIV" ], true ); - * //output: true - * console.log( queryTarget === node ); - * ``` - */ - findParentByTagName:function (node, tagNames, includeSelf, excludeFn) { - tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]); - return domUtils.findParent(node, function (node) { - return tagNames[node.tagName] && !(excludeFn && excludeFn(node)); - }, includeSelf); - }, - /** - * 查找节点node的祖先节点集合, 查找的起点是给定节点的父节点,结果集中不包含给定的节点。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - * @grammar UE.dom.domUtils.findParents(node) => Array //返回一个祖先节点数组集合,不包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf) => Array //返回一个祖先节点数组集合,includeSelf指定是否包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn) => Array //返回一个祖先节点数组集合,filterFn指定过滤条件,返回true的node将被选取 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst) => Array //返回一个祖先节点数组集合,closerFirst为true的话,node的直接父亲节点是数组的第0个 - */ - - /** - * 查找节点node的祖先节点集合, 如果includeSelf的值为true, - * 则返回的结果集中允许出现当前给定的节点, 否则, 该节点不会出现在其结果集中。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @param { Boolean } includeSelf 查找的结果中是否允许包含当前查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - */ - findParents:function (node, includeSelf, filterFn, closerFirst) { - var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : []; - while (node = domUtils.findParent(node, filterFn)) { - parents.push(node); - } - return closerFirst ? parents : parents.reverse(); - }, - - /** - * 在节点node后面插入新节点newNode - * @method insertAfter - * @param { Node } node 目标节点 - * @param { Node } newNode 新插入的节点, 该节点将置于目标节点之后 - * @return { Node } 新插入的节点 - */ - insertAfter:function (node, newNode) { - return node.nextSibling ? node.parentNode.insertBefore(newNode, node.nextSibling): - node.parentNode.appendChild(newNode); - }, - - /** - * 删除节点node及其下属的所有节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *
    - *
    你好
    - *
    - * - * ``` - */ - - /** - * 删除节点node,并根据keepChildren的值决定是否保留子节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @param { Boolean } keepChildren 是否需要保留子节点 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *
    - *
    你好
    - *
    - * - * ``` - */ - remove:function (node, keepChildren) { - var parent = node.parentNode, - child; - if (parent) { - if (keepChildren && node.hasChildNodes()) { - while (child = node.firstChild) { - parent.insertBefore(child, node); - } - } - parent.removeChild(node); - } - return node; - }, - - /** - * 取得node节点的下一个兄弟节点, 如果该节点其后没有兄弟节点, 则递归查找其父节点之后的第一个兄弟节点, - * 直到找到满足条件的节点或者递归到BODY节点之后才会结束。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```html - * - *
    - * - *
    - * xxx - * - * - * ``` - * @example - * ```html - * - *
    - * - * xxx - *
    - * xxx - * - * - * ``` - */ - - /** - * 取得node节点的下一个兄弟节点, 如果startFromChild的值为ture,则先获取其子节点, - * 如果有子节点则直接返回第一个子节点;如果没有子节点或者startFromChild的值为false, - * 则执行getNextDomNode(Node node)的查找过程。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @param { Boolean } startFromChild 查找过程是否从其子节点开始 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @see UE.dom.domUtils.getNextDomNode(Node) - */ - getNextDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard); - }, - getPreDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard); - }, - /** - * 检测节点node是否属是UEditor定义的bookmark节点 - * @method isBookmarkNode - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是bookmark节点 - * @example - * ```html - * - * - * ``` - */ - isBookmarkNode:function (node) { - return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id); - }, - /** - * 获取节点node所属的window对象 - * @method getWindow - * @param { Node } node 节点对象 - * @return { Window } 当前节点所属的window对象 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.getWindow( document.body ) === window ); - * ``` - */ - getWindow:function (node) { - var doc = node.ownerDocument || node; - return doc.defaultView || doc.parentWindow; - }, - /** - * 获取离nodeA与nodeB最近的公共的祖先节点 - * @method getCommonAncestor - * @param { Node } nodeA 第一个节点 - * @param { Node } nodeB 第二个节点 - * @remind 如果给定的两个节点是同一个节点, 将直接返回该节点。 - * @return { Node | NULL } 如果未找到公共节点, 返回NULL, 否则返回最近的公共祖先节点。 - * @example - * ```javascript - * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild ); - * //output: true - * console.log( commonAncestor.tagName.toLowerCase() === 'body' ); - * ``` - */ - getCommonAncestor:function (nodeA, nodeB) { - if (nodeA === nodeB) - return nodeA; - var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1; - while (parent = parent.parentNode) { - if (parent === nodeB) { - return parent; - } - parentsA.push(parent); - } - parent = nodeB; - while (parent = parent.parentNode) { - if (parent === nodeA) - return parent; - parentsB.push(parent); - } - parentsA.reverse(); - parentsB.reverse(); - while (i++, parentsA[i] === parentsB[i]) { - } - return i == 0 ? null : parentsA[i - 1]; - - }, - /** - * 清除node节点左右连续为空的兄弟inline节点 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * 则这些兄弟节点将被删除 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext) //ignoreNext指定是否忽略右边空节点 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre) //ignorePre指定是否忽略左边空节点 - * @example - * ```html - * - *
    - * - * - * - * xxx - * - * - * - * ``` - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作, 如果ignorePre的值为true,则忽略对左边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * @param { Boolean } ignorePre 是否忽略忽略对左边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - clearEmptySibling:function (node, ignoreNext, ignorePre) { - function clear(next, dir) { - var tmpNode; - while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next) - //这里不能把空格算进来会吧空格干掉,出现文字间的空格丢掉了 - || !new RegExp('[^\t\n\r' + domUtils.fillChar + ']').test(next.nodeValue) )) { - tmpNode = next[dir]; - domUtils.remove(next); - next = tmpNode; - } - } - !ignoreNext && clear(node.nextSibling, 'nextSibling'); - !ignorePre && clear(node.previousSibling, 'previousSibling'); - }, - /** - * 将一个文本节点textNode拆分成两个文本节点,offset指定拆分位置 - * @method split - * @param { Node } textNode 需要拆分的文本节点对象 - * @param { int } offset 需要拆分的位置, 位置计算从0开始 - * @return { Node } 拆分后形成的新节点 - * @example - * ```html - *
    abcdef
    - * - * ``` - */ - split:function (node, offset) { - var doc = node.ownerDocument; - if (browser.ie && offset == node.nodeValue.length) { - var next = doc.createTextNode(''); - return domUtils.insertAfter(node, next); - } - var retval = node.splitText(offset); - //ie8下splitText不会跟新childNodes,我们手动触发他的更新 - if (browser.ie8) { - var tmpNode = doc.createTextNode(''); - domUtils.insertAfter(retval, tmpNode); - domUtils.remove(tmpNode); - } - return retval; - }, - - /** - * 检测文本节点textNode是否为空节点(包括空格、换行、占位符等字符) - * @method isWhitespace - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 检测的节点是否为空 - * @example - * ```html - *
    - * - *
    - * - * ``` - */ - isWhitespace:function (node) { - return !new RegExp('[^ \t\n\r' + domUtils.fillChar + ']').test(node.nodeValue); - }, - /** - * 获取元素element相对于viewport的位置坐标 - * @method getXY - * @param { Node } element 需要计算位置的节点对象 - * @return { Object } 返回形如{x:left,y:top}的一个key-value映射对象, 其中键x代表水平偏移距离, - * y代表垂直偏移距离。 - * - * @example - * ```javascript - * var location = UE.dom.domUtils.getXY( document.getElementById("test") ); - * //output: test的坐标为: 12, 24 - * console.log( 'test的坐标为: ', location.x, ',', location.y ); - * ``` - */ - getXY:function (element) { - var x = 0, y = 0; - while (element.offsetParent) { - y += element.offsetTop; - x += element.offsetLeft; - element = element.offsetParent; - } - return { 'x':x, 'y':y}; - }, - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { String } type 绑定的事件类型 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,"click",function(e){ - * //e为事件对象,this为被点击元素对戏那个 - * }); - * ``` - */ - - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { Array } type 绑定的事件类型数组 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - on:function (element, type, handler) { - - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { String } type 需要接触绑定的事件类型 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body,"click",function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { Array } type 需要接触绑定的事件类型数组 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body, ["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - un:function (element, type, handler) { - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - - /** - * 比较节点nodeA与节点nodeB是否具有相同的标签名、属性名以及属性值 - * @method isSameElement - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的标签名、属性名以及属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameElement:function (nodeA, nodeB) { - if (nodeA.tagName != nodeB.tagName) { - return false; - } - var thisAttrs = nodeA.attributes, - otherAttrs = nodeB.attributes; - if (!ie && thisAttrs.length != otherAttrs.length) { - return false; - } - var attrA, attrB, al = 0, bl = 0; - for (var i = 0; attrA = thisAttrs[i++];) { - if (attrA.nodeName == 'style') { - if (attrA.specified) { - al++; - } - if (domUtils.isSameStyle(nodeA, nodeB)) { - continue; - } else { - return false; - } - } - if (ie) { - if (attrA.specified) { - al++; - attrB = otherAttrs.getNamedItem(attrA.nodeName); - } else { - continue; - } - } else { - attrB = nodeB.attributes[attrA.nodeName]; - } - if (!attrB.specified || attrA.nodeValue != attrB.nodeValue) { - return false; - } - } - // 有可能attrB的属性包含了attrA的属性之外还有自己的属性 - if (ie) { - for (i = 0; attrB = otherAttrs[i++];) { - if (attrB.specified) { - bl++; - } - } - if (al != bl) { - return false; - } - } - return true; - }, - - /** - * 判断节点nodeA与节点nodeB的元素的style属性是否一致 - * @method isSameStyle - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的style属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameStyle:function (nodeA, nodeB) { - var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'), - styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'); - if (browser.opera) { - styleA = nodeA.style; - styleB = nodeB.style; - if (styleA.length != styleB.length) - return false; - for (var p in styleA) { - if (/^(\d+|csstext)$/i.test(p)) { - continue; - } - if (styleA[p] != styleB[p]) { - return false; - } - } - return true; - } - if (!styleA || !styleB) { - return styleA == styleB; - } - styleA = styleA.split(';'); - styleB = styleB.split(';'); - if (styleA.length != styleB.length) { - return false; - } - for (var i = 0, ci; ci = styleA[i++];) { - if (utils.indexOf(styleB, ci) == -1) { - return false; - } - } - return true; - }, - /** - * 检查节点node是否为block元素 - * @method isBlockElm - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是block元素节点 - * @warning 该方法的判断规则如下: 如果该元素原本是block元素, 则不论该元素当前的css样式是什么都会返回true; - * 否则,检测该元素的css样式, 如果该元素当前是block元素, 则返回true。 其余情况下都返回false。 - * @example - * ```html - * - * - *
    - * - * - * ``` - */ - isBlockElm:function (node) { - return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName]; - }, - /** - * 检测node节点是否为body节点 - * @method isBody - * @param { Element } node 需要检测的dom元素 - * @return { Boolean } 给定的元素是否是body元素 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.isBody( document.body ) ); - * ``` - */ - isBody:function (node) { - return node && node.nodeType == 1 && node.tagName.toLowerCase() == 'body'; - }, - /** - * 以node节点为分界,将该节点的指定祖先节点parent拆分成两个独立的节点, - * 拆分形成的两个节点之间是node节点 - * @method breakParent - * @param { Node } node 作为分界的节点对象 - * @param { Node } parent 该节点必须是node节点的祖先节点, 且是block节点。 - * @return { Node } 给定的node分界节点 - * @example - * ```javascript - * - * var node = document.createElement("span"), - * wrapNode = document.createElement( "div" ), - * parent = document.createElement("p"); - * - * parent.appendChild( node ); - * wrapNode.appendChild( parent ); - * - * //拆分前 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * - * UE.dom.domUtils.breakParent( node, parent ); - * //拆分后 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * ``` - */ - breakParent:function (node, parent) { - var tmpNode, - parentClone = node, - clone = node, - leftNodes, - rightNodes; - do { - parentClone = parentClone.parentNode; - if (leftNodes) { - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(leftNodes); - leftNodes = tmpNode; - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(rightNodes); - rightNodes = tmpNode; - } else { - leftNodes = parentClone.cloneNode(false); - rightNodes = leftNodes.cloneNode(false); - } - while (tmpNode = clone.previousSibling) { - leftNodes.insertBefore(tmpNode, leftNodes.firstChild); - } - while (tmpNode = clone.nextSibling) { - rightNodes.appendChild(tmpNode); - } - clone = parentClone; - } while (parent !== parentClone); - tmpNode = parent.parentNode; - tmpNode.insertBefore(leftNodes, parent); - tmpNode.insertBefore(rightNodes, parent); - tmpNode.insertBefore(node, rightNodes); - domUtils.remove(parent); - return node; - }, - /** - * 检查节点node是否是空inline节点 - * @method isEmptyInlineElement - * @param { Node } node 需要检测的节点对象 - * @return { Number } 如果给定的节点是空的inline节点, 则返回1, 否则返回0。 - * @example - * ```html - * => 1 - * => 1 - * => 1 - * xx => 0 - * ``` - */ - isEmptyInlineElement:function (node) { - if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) { - return 0; - } - node = node.firstChild; - while (node) { - //如果是创建的bookmark就跳过 - if (domUtils.isBookmarkNode(node)) { - return 0; - } - if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) || - node.nodeType == 3 && !domUtils.isWhitespace(node) - ) { - return 0; - } - node = node.nextSibling; - } - return 1; - - }, - - /** - * 删除node节点下首尾两端的空白文本子节点 - * @method trimWhiteTextNode - * @param { Element } node 需要执行删除操作的元素对象 - * @example - * ```javascript - * var node = document.createElement("div"); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * node.appendChild( document.createElement("div") ); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * //3 - * console.log( node.childNodes.length ); - * - * UE.dom.domUtils.trimWhiteTextNode( node ); - * - * //1 - * console.log( node.childNodes.length ); - * ``` - */ - trimWhiteTextNode:function (node) { - function remove(dir) { - var child; - while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) { - node.removeChild(child); - } - } - remove('firstChild'); - remove('lastChild'); - }, - - /** - * 合并node节点下相同的子节点 - * @name mergeChild - * @desc - * UE.dom.domUtils.mergeChild(node,tagName) //tagName要合并的子节点的标签 - * @example - *

    xxaaxx

    - * ==> UE.dom.domUtils.mergeChild(node,'span') - *

    xxaaxx

    - */ - mergeChild:function (node, tagName, attrs) { - var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase()); - for (var i = 0, ci; ci = list[i++];) { - if (!ci.parentNode || domUtils.isBookmarkNode(ci)) { - continue; - } - //span单独处理 - if (ci.tagName.toLowerCase() == 'span') { - if (node === ci.parentNode) { - domUtils.trimWhiteTextNode(node); - if (node.childNodes.length == 1) { - node.style.cssText = ci.style.cssText + ";" + node.style.cssText; - domUtils.remove(ci, true); - continue; - } - } - ci.style.cssText = node.style.cssText + ';' + ci.style.cssText; - if (attrs) { - var style = attrs.style; - if (style) { - style = style.split(';'); - for (var j = 0, s; s = style[j++];) { - ci.style[utils.cssStyleToDomStyle(s.split(':')[0])] = s.split(':')[1]; - } - } - } - if (domUtils.isSameStyle(ci, node)) { - domUtils.remove(ci, true); - } - continue; - } - if (domUtils.isSameElement(node, ci)) { - domUtils.remove(ci, true); - } - } - }, - - /** - * 原生方法getElementsByTagName的封装 - * @method getElementsByTagName - * @param { Node } node 目标节点对象 - * @param { String } tagName 需要查找的节点的tagName, 多个tagName以空格分割 - * @return { Array } 符合条件的节点集合 - */ - getElementsByTagName:function (node, name,filter) { - if(filter && utils.isString(filter)){ - var className = filter; - filter = function(node){return domUtils.hasClass(node,className)} - } - name = utils.trim(name).replace(/[ ]{2,}/g,' ').split(' '); - var arr = []; - for(var n = 0,ni;ni=name[n++];){ - var list = node.getElementsByTagName(ni); - for (var i = 0, ci; ci = list[i++];) { - if(!filter || filter(ci)) - arr.push(ci); - } - } - - return arr; - }, - /** - * 将节点node提取到父节点上 - * @method mergeToParent - * @param { Element } node 需要提取的元素对象 - * @example - * ```html - *
    - *
    - * - *
    - *
    - * - * - * ``` - */ - mergeToParent:function (node) { - var parent = node.parentNode; - while (parent && dtd.$removeEmpty[parent.tagName]) { - if (parent.tagName == node.tagName || parent.tagName == 'A') {//针对a标签单独处理 - domUtils.trimWhiteTextNode(parent); - //span需要特殊处理 不处理这样的情况 xxxxxxxxx - if (parent.tagName == 'SPAN' && !domUtils.isSameStyle(parent, node) - || (parent.tagName == 'A' && node.tagName == 'SPAN')) { - if (parent.childNodes.length > 1 || parent !== node.parentNode) { - node.style.cssText = parent.style.cssText + ";" + node.style.cssText; - parent = parent.parentNode; - continue; - } else { - parent.style.cssText += ";" + node.style.cssText; - //trace:952 a标签要保持下划线 - if (parent.tagName == 'A') { - parent.style.textDecoration = 'underline'; - } - } - } - if (parent.tagName != 'A') { - parent === node.parentNode && domUtils.remove(node, true); - break; - } - } - parent = parent.parentNode; - } - }, - /** - * 合并节点node的左右兄弟节点 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点, 可以根据给定的条件选择是否忽略合并左节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点,可以根据给定的条件选择是否忽略合并左右节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @param { Boolean } ignoreNext 是否忽略合并右节点 - * @remind 如果同时忽略左右节点, 则该操作什么也不会做 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - mergeSibling:function (node, ignorePre, ignoreNext) { - function merge(rtl, start, node) { - var next; - if ((next = node[rtl]) && !domUtils.isBookmarkNode(next) && next.nodeType == 1 && domUtils.isSameElement(node, next)) { - while (next.firstChild) { - if (start == 'firstChild') { - node.insertBefore(next.lastChild, node.firstChild); - } else { - node.appendChild(next.firstChild); - } - } - domUtils.remove(next); - } - } - !ignorePre && merge('previousSibling', 'firstChild', node); - !ignoreNext && merge('nextSibling', 'lastChild', node); - }, - - /** - * 设置节点node及其子节点不会被选中 - * @method unSelectable - * @param { Element } node 需要执行操作的dom元素 - * @remind 执行该操作后的节点, 将不能被鼠标选中 - * @example - * ```javascript - * UE.dom.domUtils.unSelectable( document.body ); - * ``` - */ - unSelectable:ie && browser.ie9below || browser.opera ? function (node) { - //for ie9 - node.onselectstart = function () { - return false; - }; - node.onclick = node.onkeyup = node.onkeydown = function () { - return false; - }; - node.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - for (var i = 0, ci; ci = node.all[i++];) { - switch (ci.tagName.toLowerCase()) { - case 'iframe' : - case 'textarea' : - case 'input' : - case 'select' : - break; - default : - ci.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - } - } - } : function (node) { - node.style.MozUserSelect = - node.style.webkitUserSelect = - node.style.msUserSelect = - node.style.KhtmlUserSelect = 'none'; - }, - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { String } attrNames 可以是空格隔开的多个属性名称,该操作将会依次删除相应的属性 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { Array } attrNames 需要删除的属性名数组 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - removeAttributes:function (node, attrNames) { - attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' '); - for (var i = 0, ci; ci = attrNames[i++];) { - ci = attrFix[ci] || ci; - switch (ci) { - case 'className': - node[ci] = ''; - break; - case 'style': - node.style.cssText = ''; - var val = node.getAttributeNode('style'); - !browser.ie && val && node.removeAttributeNode(val); - } - node.removeAttribute(ci); - } - }, - /** - * 在doc下创建一个标签名为tag,属性为attrs的元素 - * @method createElement - * @param { DomDocument } doc 新创建的元素属于该document节点创建 - * @param { String } tagName 需要创建的元素的标签名 - * @param { Object } attrs 新创建的元素的属性key-value集合 - * @return { Element } 新创建的元素对象 - * @example - * ```javascript - * var ele = UE.dom.domUtils.createElement( document, 'div', { - * id: 'test' - * } ); - * - * //output: DIV - * console.log( ele.tagName ); - * - * //output: test - * console.log( ele.id ); - * - * ``` - */ - createElement:function (doc, tag, attrs) { - return domUtils.setAttributes(doc.createElement(tag), attrs) - }, - /** - * 为节点node添加属性attrs,attrs为属性键值对 - * @method setAttributes - * @param { Element } node 需要设置属性的元素对象 - * @param { Object } attrs 需要设置的属性名-值对 - * @return { Element } 设置属性的元素对象 - * @example - * ```html - * - * - * - * - */ - setAttributes:function (node, attrs) { - for (var attr in attrs) { - if(attrs.hasOwnProperty(attr)){ - var value = attrs[attr]; - switch (attr) { - case 'class': - //ie下要这样赋值,setAttribute不起作用 - node.className = value; - break; - case 'style' : - node.style.cssText = node.style.cssText + ";" + value; - break; - case 'innerHTML': - node[attr] = value; - break; - case 'value': - node.value = value; - break; - default: - node.setAttribute(attrFix[attr] || attr, value); - } - } - } - return node; - }, - - /** - * 获取元素element经过计算后的样式值 - * @method getComputedStyle - * @param { Element } element 需要获取样式的元素对象 - * @param { String } styleName 需要获取的样式名 - * @return { String } 获取到的样式值 - * @example - * ```html - * - * - * - * - * - * ``` - */ - getComputedStyle:function (element, styleName) { - //一下的属性单独处理 - var pros = 'width height top left'; - - if(pros.indexOf(styleName) > -1){ - return element['offset' + styleName.replace(/^\w/,function(s){return s.toUpperCase()})] + 'px'; - } - //忽略文本节点 - if (element.nodeType == 3) { - element = element.parentNode; - } - //ie下font-size若body下定义了font-size,则从currentStyle里会取到这个font-size. 取不到实际值,故此修改. - if (browser.ie && browser.version < 9 && styleName == 'font-size' && !element.style.fontSize && - !dtd.$empty[element.tagName] && !dtd.$nonChild[element.tagName]) { - var span = element.ownerDocument.createElement('span'); - span.style.cssText = 'padding:0;border:0;font-family:simsun;'; - span.innerHTML = '.'; - element.appendChild(span); - var result = span.offsetHeight; - element.removeChild(span); - span = null; - return result + 'px'; - } - try { - var value = domUtils.getStyle(element, styleName) || - (window.getComputedStyle ? domUtils.getWindow(element).getComputedStyle(element, '').getPropertyValue(styleName) : - ( element.currentStyle || element.style )[utils.cssStyleToDomStyle(styleName)]); - - } catch (e) { - return ""; - } - return utils.transUnitToPx(utils.fixColor(styleName, value)); - }, - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { String } classNames 需要删除的className, 多个className之间以空格分开 - * @example - * ```html - * xxx - * - * - * ``` - */ - - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { Array } classNames 需要删除的className数组 - * @example - * ```html - * xxx - * - * - * ``` - */ - removeClasses:function (elm, classNames) { - classNames = utils.isArray(classNames) ? classNames : - utils.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = utils.trim(cls).replace(/[ ]{2,}/g,' '); - if(cls){ - elm.className = cls; - }else{ - domUtils.removeAttributes(elm,['class']); - } - }, - /** - * 给元素element添加className - * @method addClass - * @param { Node } ele 需要增加className的元素 - * @param { String } classNames 需要添加的className, 多个className之间以空格分割 - * @remind 相同的类名不会被重复添加 - * @example - * ```html - * - * - * - * ``` - */ - - /** - * 判断元素element是否包含给定的样式类名className - * @method hasClass - * @param { Node } ele 需要检测的元素 - * @param { Array } classNames 需要检测的className数组 - * @return { Boolean } 元素是否包含所有给定的className - * @example - * ```html - * - * - * - * ``` - */ - hasClass:function (element, className) { - if(utils.isRegExp(className)){ - return className.test(element.className) - } - className = utils.trim(className).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = element.className;ci=className[i++];){ - if(!new RegExp('\\b' + ci + '\\b','i').test(cls)){ - return false; - } - } - return i - 1 == className.length; - }, - - /** - * 阻止事件默认行为 - * @method preventDefault - * @param { Event } evt 需要阻止默认行为的事件对象 - * @example - * ```javascript - * UE.dom.domUtils.preventDefault( evt ); - * ``` - */ - preventDefault:function (evt) { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - }, - /** - * 删除元素element指定的样式 - * @method removeStyle - * @param { Element } element 需要删除样式的元素 - * @param { String } styleName 需要删除的样式名 - * @example - * ```html - * - * - * - * ``` - */ - removeStyle:function (element, name) { - if(browser.ie ){ - //针对color先单独处理一下 - if(name == 'color'){ - name = '(^|;)' + name; - } - element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'') - }else{ - if (element.style.removeProperty) { - element.style.removeProperty (name); - }else { - element.style.removeAttribute (utils.cssStyleToDomStyle(name)); - } - } - - - if (!element.style.cssText) { - domUtils.removeAttributes(element, ['style']); - } - }, - /** - * 获取元素element的style属性的指定值 - * @method getStyle - * @param { Element } element 需要获取属性值的元素 - * @param { String } styleName 需要获取的style的名称 - * @warning 该方法仅获取元素style属性中所标明的值 - * @return { String } 该元素包含指定的style属性值 - * @example - * ```html - *
    - * - * - * ``` - */ - getStyle:function (element, name) { - var value = element.style[ utils.cssStyleToDomStyle(name) ]; - return utils.fixColor(name, value); - }, - /** - * 为元素element设置样式属性值 - * @method setStyle - * @param { Element } element 需要设置样式的元素 - * @param { String } styleName 样式名 - * @param { String } styleValue 样式值 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyle:function (element, name, value) { - element.style[utils.cssStyleToDomStyle(name)] = value; - if(!utils.trim(element.style.cssText)){ - this.removeAttributes(element,'style') - } - }, - /** - * 为元素element设置多个样式属性值 - * @method setStyles - * @param { Element } element 需要设置样式的元素 - * @param { Object } styles 样式名值对 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyles:function (element, styles) { - for (var name in styles) { - if (styles.hasOwnProperty(name)) { - domUtils.setStyle(element, name, styles[name]); - } - } - }, - /** - * 删除_moz_dirty属性 - * @private - * @method removeDirtyAttr - */ - removeDirtyAttr:function (node) { - for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - node.removeAttribute('_moz_dirty'); - }, - /** - * 获取子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @return { Number } 给定的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - - /** - * 根据给定的过滤规则, 获取符合条件的子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @param { Function } fn 过滤器, 要求对符合条件的子节点返回true, 反之则要求返回false - * @return { Number } 符合过滤条件的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - getChildCount:function (node, fn) { - var count = 0, first = node.firstChild; - fn = fn || function () { - return 1; - }; - while (first) { - if (fn(first)) { - count++; - } - first = first.nextSibling; - } - return count; - }, - - /** - * 判断给定节点是否为空节点 - * @method isEmptyNode - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否为空 - * @example - * ```javascript - * UE.dom.domUtils.isEmptyNode( document.body ); - * ``` - */ - isEmptyNode:function (node) { - return !node.firstChild || domUtils.getChildCount(node, function (node) { - return !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node) - }) == 0 - }, - clearSelectedArr:function (nodes) { - var node; - while (node = nodes.pop()) { - domUtils.removeAttributes(node, ['class']); - } - }, - /** - * 将显示区域滚动到指定节点的位置 - * @method scrollToView - * @param {Node} node 节点 - * @param {window} win window对象 - * @param {Number} offsetTop 距离上方的偏移量 - */ - scrollToView:function (node, win, offsetTop) { - var getViewPaneSize = function () { - var doc = win.document, - mode = doc.compatMode == 'CSS1Compat'; - return { - width:( mode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0, - height:( mode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0 - }; - }, - getScrollPosition = function (win) { - if ('pageXOffset' in win) { - return { - x:win.pageXOffset || 0, - y:win.pageYOffset || 0 - }; - } - else { - var doc = win.document; - return { - x:doc.documentElement.scrollLeft || doc.body.scrollLeft || 0, - y:doc.documentElement.scrollTop || doc.body.scrollTop || 0 - }; - } - }; - var winHeight = getViewPaneSize().height, offset = winHeight * -1 + offsetTop; - offset += (node.offsetHeight || 0); - var elementPosition = domUtils.getXY(node); - offset += elementPosition.y; - var currentScroll = getScrollPosition(win).y; - // offset += 50; - if (offset > currentScroll || offset < currentScroll - winHeight) { - win.scrollTo(0, offset + (offset < 0 ? -20 : 20)); - } - }, - /** - * 判断给定节点是否为br - * @method isBr - * @param { Node } node 需要判断的节点对象 - * @return { Boolean } 给定的节点是否是br节点 - */ - isBr:function (node) { - return node.nodeType == 1 && node.tagName == 'BR'; - }, - /** - * 判断给定的节点是否是一个“填充”节点 - * @private - * @method isFillChar - * @param { Node } node 需要判断的节点 - * @param { Boolean } isInStart 是否从节点内容的开始位置匹配 - * @returns { Boolean } 节点是否是填充节点 - */ - isFillChar:function (node,isInStart) { - if(node.nodeType != 3) - return false; - var text = node.nodeValue; - if(isInStart){ - return new RegExp('^' + domUtils.fillChar).test(text) - } - return !text.replace(new RegExp(domUtils.fillChar,'g'), '').length - }, - isStartInblock:function (range) { - var tmpRange = range.cloneRange(), - flag = 0, - start = tmpRange.startContainer, - tmp; - if(start.nodeType == 1 && start.childNodes[tmpRange.startOffset]){ - start = start.childNodes[tmpRange.startOffset]; - var pre = start.previousSibling; - while(pre && domUtils.isFillChar(pre)){ - start = pre; - pre = pre.previousSibling; - } - } - if(this.isFillChar(start,true) && tmpRange.startOffset == 1){ - tmpRange.setStartBefore(start); - start = tmpRange.startContainer; - } - - while (start && domUtils.isFillChar(start)) { - tmp = start; - start = start.previousSibling - } - if (tmp) { - tmpRange.setStartBefore(tmp); - start = tmpRange.startContainer; - } - if (start.nodeType == 1 && domUtils.isEmptyNode(start) && tmpRange.startOffset == 1) { - tmpRange.setStart(start, 0).collapse(true); - } - while (!tmpRange.startOffset) { - start = tmpRange.startContainer; - if (domUtils.isBlockElm(start) || domUtils.isBody(start)) { - flag = 1; - break; - } - var pre = tmpRange.startContainer.previousSibling, - tmpNode; - if (!pre) { - tmpRange.setStartBefore(tmpRange.startContainer); - } else { - while (pre && domUtils.isFillChar(pre)) { - tmpNode = pre; - pre = pre.previousSibling; - } - if (tmpNode) { - tmpRange.setStartBefore(tmpNode); - } else { - tmpRange.setStartBefore(tmpRange.startContainer); - } - } - } - return flag && !domUtils.isBody(tmpRange.startContainer) ? 1 : 0; - }, - - /** - * 判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @return { Boolean } 是否是空元素 - * @example - * ```html - *
    - * - * - * ``` - */ - - /** - * 根据指定的判断规则判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @param { RegExp } reg 对内容执行判断的正则表达式对象 - * @return { Boolean } 是否是空元素 - */ - isEmptyBlock:function (node,reg) { - // HaoChuan9421 - if(!node){ - return; - } - if(node.nodeType != 1) - return 0; - reg = reg || new RegExp('[ \xa0\t\r\n' + domUtils.fillChar + ']', 'g'); - - if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - }, - - /** - * 移动元素使得该元素的位置移动指定的偏移量的距离 - * @method setViewportOffset - * @param { Element } element 需要设置偏移量的元素 - * @param { Object } offset 偏移量, 形如{ left: 100, top: 50 }的一个键值对, 表示该元素将在 - * 现有的位置上向水平方向偏移offset.left的距离, 在竖直方向上偏移 - * offset.top的距离 - * @example - * ```html - *
    - * - * - * ``` - */ - setViewportOffset:function (element, offset) { - var left = parseInt(element.style.left) | 0; - var top = parseInt(element.style.top) | 0; - var rect = element.getBoundingClientRect(); - var offsetLeft = offset.left - rect.left; - var offsetTop = offset.top - rect.top; - if (offsetLeft) { - element.style.left = left + offsetLeft + 'px'; - } - if (offsetTop) { - element.style.top = top + offsetTop + 'px'; - } - }, - - /** - * 用“填充字符”填充节点 - * @method fillNode - * @private - * @param { DomDocument } doc 填充的节点所在的docment对象 - * @param { Node } node 需要填充的节点对象 - * @example - * ```html - *
    - * - * - * ``` - */ - fillNode:function (doc, node) { - var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br'); - node.innerHTML = ''; - node.appendChild(tmpNode); - }, - - /** - * 把节点src的所有子节点追加到另一个节点tag上去 - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被追加到该节点下 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - - /** - * 把节点src的所有子节点移动到另一个节点tag上去, 可以通过dir参数控制附加的行为是“追加”还是“插入顶部” - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被附加到该节点下 - * @param { Boolean } dir 附加方式, 如果为true, 则附加进去的节点将被放到目标节点的顶部, 反之,则放到末尾 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - moveChild:function (src, tag, dir) { - while (src.firstChild) { - if (dir && tag.firstChild) { - tag.insertBefore(src.lastChild, tag.firstChild); - } else { - tag.appendChild(src.firstChild); - } - } - }, - - /** - * 判断节点的标签上是否不存在任何属性 - * @method hasNoAttributes - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否不包含任何属性 - * @example - * ```html - *
    xxxx
    - * - * - * ``` - */ - hasNoAttributes:function (node) { - return browser.ie ? /^<\w+\s*?>/.test(node.outerHTML) : node.attributes.length == 0; - }, - - /** - * 检测节点是否是UEditor所使用的辅助节点 - * @method isCustomeNode - * @private - * @param { Node } node 需要检测的节点 - * @remind 辅助节点是指编辑器要完成工作临时添加的节点, 在输出的时候将会从编辑器内移除, 不会影响最终的结果。 - * @return { Boolean } 给定的节点是否是一个辅助节点 - */ - isCustomeNode:function (node) { - return node.nodeType == 1 && node.getAttribute('_ue_custom_node_'); - }, - - /** - * 检测节点的标签是否是给定的标签 - * @method isTagNode - * @param { Node } node 需要检测的节点对象 - * @param { String } tagName 标签 - * @return { Boolean } 节点的标签是否是给定的标签 - * @example - * ```html - *
    - * - * - * ``` - */ - isTagNode:function (node, tagNames) { - return node.nodeType == 1 && new RegExp('\\b' + node.tagName + '\\b','i').test(tagNames) - }, - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 获取其中满足过滤条件的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @return { Node | NULL } 如果找到符合过滤条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() !== 'div'; - * } ) ); - * ``` - */ - - /** - * 给定一个节点数组nodeList和一组标签名tagNames, 获取其中能够匹配标签名的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { String } tagNames 需要匹配的标签名, 多个标签名之间用空格分割 - * @return { Node | NULL } 如果找到标签名匹配的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, 'a span' ) ); - * ``` - */ - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 如果参数forAll为true, 则会返回所有满足过滤 - * 条件的节点集合, 否则, 返回满足条件的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @param { Boolean } forAll 是否返回整个节点数组, 如果该参数为false, 则返回节点集合中的第一个节点 - * @return { Array | Node | NULL } 如果找到符合过滤条件的节点, 则根据参数forAll的值决定返回满足 - * 过滤条件的节点数组或第一个节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: 3(假定有3个div) - * console.log( divNodes.length ); - * - * var nodes = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, true ); - * - * //output: 3 - * console.log( nodes.length ); - * - * var node = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, false ); - * - * //output: div - * console.log( node.nodeName ); - * ``` - */ - filterNodeList : function(nodelist,filter,forAll){ - var results = []; - if(!utils .isFunction(filter)){ - var str = filter; - filter = function(n){ - return utils.indexOf(utils.isArray(str) ? str:str.split(' '), n.tagName.toLowerCase()) != -1 - }; - } - utils.each(nodelist,function(n){ - filter(n) && results.push(n) - }); - return results.length == 0 ? null : results.length == 1 || !forAll ? results[0] : results - }, - - /** - * 查询给定的range选区是否在给定的node节点内,且在该节点的最末尾 - * @method isInNodeEndBoundary - * @param { UE.dom.Range } rng 需要判断的range对象, 该对象的startContainer不能为NULL - * @param node 需要检测的节点对象 - * @return { Number } 如果给定的选取range对象是在node内部的最末端, 则返回1, 否则返回0 - */ - isInNodeEndBoundary : function (rng,node){ - var start = rng.startContainer; - if(start.nodeType == 3 && rng.startOffset != start.nodeValue.length){ - return 0; - } - if(start.nodeType == 1 && rng.startOffset != start.childNodes.length){ - return 0; - } - while(start !== node){ - if(start.nextSibling){ - return 0 - }; - start = start.parentNode; - } - return 1; - }, - isBoundaryNode : function (node,dir){ - var tmp; - while(!domUtils.isBody(node)){ - tmp = node; - node = node.parentNode; - if(tmp !== node[dir]){ - return false; - } - } - return true; - }, - fillHtml : browser.ie11below ? ' ' : '
    ' -}; -var fillCharReg = new RegExp(domUtils.fillChar, 'g'); - -// core/Range.js -/** - * Range封装 - * @file - * @module UE.dom - * @class Range - * @since 1.2.6.1 - */ - -/** - * dom操作封装 - * @unfile - * @module UE.dom - */ - -/** - * Range实现类,本类是UEditor底层核心类,封装不同浏览器之间的Range操作。 - * @unfile - * @module UE.dom - * @class Range - */ - - -(function () { - var guid = 0, - fillChar = domUtils.fillChar, - fillData; - - /** - * 更新range的collapse状态 - * @param {Range} range range对象 - */ - function updateCollapse(range) { - range.collapsed = - range.startContainer && range.endContainer && - range.startContainer === range.endContainer && - range.startOffset == range.endOffset; - } - - function selectOneNode(rng){ - return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1 - } - function setEndPoint(toStart, node, offset, range) { - //如果node是自闭合标签要处理 - if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) { - offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1); - node = node.parentNode; - } - if (toStart) { - range.startContainer = node; - range.startOffset = offset; - if (!range.endContainer) { - range.collapse(true); - } - } else { - range.endContainer = node; - range.endOffset = offset; - if (!range.startContainer) { - range.collapse(false); - } - } - updateCollapse(range); - return range; - } - - function execContentsAction(range, action) { - //调整边界 - //range.includeBookmark(); - var start = range.startContainer, - end = range.endContainer, - startOffset = range.startOffset, - endOffset = range.endOffset, - doc = range.document, - frag = doc.createDocumentFragment(), - tmpStart, tmpEnd; - if (start.nodeType == 1) { - start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode(''))); - } - if (end.nodeType == 1) { - end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode(''))); - } - if (start === end && start.nodeType == 3) { - frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, endOffset - startOffset); - range.collapse(true); - } - return frag; - } - var current, currentLevel, clone = frag, - startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true); - for (var i = 0; startParents[i] == endParents[i];) { - i++; - } - for (var j = i, si; si = startParents[j]; j++) { - current = si.nextSibling; - if (si == start) { - if (!tmpStart) { - if (range.startContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, start.nodeValue.length - startOffset); - } - } else { - clone.appendChild(!action ? start.cloneNode(true) : start); - } - } - } else { - currentLevel = si.cloneNode(false); - clone.appendChild(currentLevel); - } - while (current) { - if (current === end || current === endParents[j]) { - break; - } - si = current.nextSibling; - clone.appendChild(!action ? current.cloneNode(true) : current); - current = si; - } - clone = currentLevel; - } - clone = frag; - if (!startParents[i]) { - clone.appendChild(startParents[i - 1].cloneNode(false)); - clone = clone.firstChild; - } - for (var j = i, ei; ei = endParents[j]; j++) { - current = ei.previousSibling; - if (ei == end) { - if (!tmpEnd && range.endContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(end.substringData(0, endOffset))); - //is not clone - if (action) { - end.deleteData(0, endOffset); - } - } - } else { - currentLevel = ei.cloneNode(false); - clone.appendChild(currentLevel); - } - //如果两端同级,右边第一次已经被开始做了 - if (j != i || !startParents[i]) { - while (current) { - if (current === start) { - break; - } - ei = current.previousSibling; - clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild); - current = ei; - } - } - clone = currentLevel; - } - if (action) { - range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true); - } - tmpStart && domUtils.remove(tmpStart); - tmpEnd && domUtils.remove(tmpEnd); - return frag; - } - - /** - * 创建一个跟document绑定的空的Range实例 - * @constructor - * @param { Document } document 新建的选区所属的文档对象 - */ - - /** - * @property { Node } startContainer 当前Range的开始边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } startOffset 当前Range的开始边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Node } endContainer 当前Range的结束边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } endOffset 当前Range的结束边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Boolean } collapsed 当前Range是否闭合 - * @default true - * @remind Range是闭合的时候, startContainer === endContainer && startOffset === endOffset - */ - - /** - * @property { Document } document 当前Range所属的Document对象 - * @remind 不同range的的document属性可以是不同的 - */ - var Range = dom.Range = function (document) { - var me = this; - me.startContainer = - me.startOffset = - me.endContainer = - me.endOffset = null; - me.document = document; - me.collapsed = true; - }; - - /** - * 删除fillData - * @param doc - * @param excludeNode - */ - function removeFillData(doc, excludeNode) { - try { - if (fillData && domUtils.inDoc(fillData, doc)) { - if (!fillData.nodeValue.replace(fillCharReg, '').length) { - var tmpNode = fillData.parentNode; - domUtils.remove(fillData); - while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) && - //safari的contains有bug - (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode)) - ) { - fillData = tmpNode.parentNode; - domUtils.remove(tmpNode); - tmpNode = fillData; - } - } else { - fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, ''); - } - } - } catch (e) { - } - } - - /** - * @param node - * @param dir - */ - function mergeSibling(node, dir) { - var tmpNode; - node = node[dir]; - while (node && domUtils.isFillChar(node)) { - tmpNode = node[dir]; - domUtils.remove(node); - node = tmpNode; - } - } - - Range.prototype = { - - /** - * 克隆选区的内容到一个DocumentFragment里 - * @method cloneContents - * @return { DocumentFragment | NULL } 如果选区是闭合的将返回null, 否则, 返回包含所clone内容的DocumentFragment元素 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - cloneContents:function () { - return this.collapsed ? null : execContentsAction(this, 0); - }, - - /** - * 删除当前选区范围中的所有内容 - * @method deleteContents - * @remind 执行完该操作后, 当前Range对象变成了闭合状态 - * @return { UE.dom.Range } 当前操作的Range对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - deleteContents:function () { - var txt; - if (!this.collapsed) { - execContentsAction(this, 1); - } - if (browser.webkit) { - txt = this.startContainer; - if (txt.nodeType == 3 && !txt.nodeValue.length) { - this.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - } - return this; - }, - - /** - * 将当前选区的内容提取到一个DocumentFragment里 - * @method extractContents - * @remind 执行该操作后, 选区将变成闭合状态 - * @warning 执行该操作后, 原来选区所选中的内容将从dom树上剥离出来 - * @return { DocumentFragment } 返回包含所提取内容的DocumentFragment对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - */ - extractContents:function () { - return this.collapsed ? null : execContentsAction(this, 2); - }, - - /** - * 设置Range的开始容器节点和偏移量 - * @method setStart - * @remind 如果给定的节点是元素节点,那么offset指的是其子元素中索引为offset的元素, - * 如果是文本节点,那么offset指的是其文本内容的第offset个字符 - * @remind 如果提供的容器节点是一个不能包含子元素的节点, 则该选区的开始容器将被设置 - * 为该节点的父节点, 此时, 其距离开始容器的偏移量也变成了该节点在其父节点 - * 中的索引 - * @param { Node } node 将被设为当前选区开始边界容器的节点对象 - * @param { int } offset 选区的开始位置偏移量 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxxxxxxxx[xxx] - * - * - * ``` - * @example - * ```html - * - * xxx[xx]x - * - * - * ``` - */ - setStart:function (node, offset) { - return setEndPoint(true, node, offset, this); - }, - - /** - * 设置Range的结束容器和偏移量 - * @method setEnd - * @param { Node } node 作为当前选区结束边界容器的节点对象 - * @param { int } offset 结束边界的偏移量 - * @see UE.dom.Range:setStart(Node,int) - * @return { UE.dom.Range } 当前range对象 - */ - setEnd:function (node, offset) { - return setEndPoint(false, node, offset, this); - }, - - /** - * 将Range开始位置设置到node节点之后 - * @method setStartAfter - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 选区的开始边界将紧接着该节点之后 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxx[xxxx] - * - * - * ``` - */ - setStartAfter:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range开始位置设置到node节点之前 - * @method setStartBefore - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 新的选区开始位置在该节点之前 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartBefore:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 将Range结束位置设置到node节点之后 - * @method setEndAfter - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * [xxxxxxx]xxxx - * - * - * ``` - */ - setEndAfter:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range结束位置设置到node节点之前 - * @method setEndBefore - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setEndAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndBefore:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 设置Range的开始位置到node节点内的第一个子节点之前 - * @method setStartAtFirst - * @remind 选区的开始容器将变成给定的节点, 且偏移量为0 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartBefore(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - setStartAtFirst:function (node) { - return this.setStart(node, 0); - }, - - /** - * 设置Range的开始位置到node节点内的最后一个节点之后 - * @method setStartAtLast - * @remind 选区的开始容器将变成给定的节点, 且偏移量为该节点的子节点数 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartAtLast:function (node) { - return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 设置Range的结束位置到node节点内的第一个节点之前 - * @method setEndAtFirst - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为0 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtFirst:function (node) { - return this.setEnd(node, 0); - }, - - /** - * 设置Range的结束位置到node节点内的最后一个节点之后 - * @method setEndAtLast - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为该节点的子节点数量 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtLast:function (node) { - return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 选中给定节点 - * @method selectNode - * @remind 此时, 选区的开始容器和结束容器都是该节点的父节点, 其startOffset是该节点在父节点中的位置索引, - * 而endOffset为startOffset+1 - * @param { Node } node 需要选中的节点 - * @return { UE.dom.Range } 当前range对象,此时的range仅包含当前给定的节点对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNode:function (node) { - return this.setStartBefore(node).setEndAfter(node); - }, - - /** - * 选中给定节点内部的所有节点 - * @method selectNodeContents - * @remind 此时, 选区的开始容器和结束容器都是该节点, 其startOffset为0, - * 而endOffset是该节点的子节点数。 - * @param { Node } node 目标节点, 当前range将包含该节点内的所有节点 - * @return { UE.dom.Range } 当前range对象, 此时range仅包含给定节点的所有子节点 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNodeContents:function (node) { - return this.setStart(node, 0).setEndAtLast(node); - }, - - /** - * clone当前Range对象 - * @method cloneRange - * @remind 返回的range是一个全新的range对象, 其内部所有属性与当前被clone的range相同。 - * @return { UE.dom.Range } 当前range对象的一个副本 - */ - cloneRange:function () { - var me = this; - return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset); - - }, - - /** - * 向当前选区的结束处闭合选区 - * @method collapse - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - - /** - * 闭合当前选区,根据给定的toStart参数项决定是向当前选区开始处闭合还是向结束处闭合, - * 如果toStart的值为true,则向开始位置闭合, 反之,向结束位置闭合。 - * @method collapse - * @param { Boolean } toStart 是否向选区开始处闭合 - * @return { UE.dom.Range } 当前range对象,此时range对象处于闭合状态 - * @see UE.dom.Range:collapse() - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - collapse:function (toStart) { - var me = this; - if (toStart) { - me.endContainer = me.startContainer; - me.endOffset = me.startOffset; - } else { - me.startContainer = me.endContainer; - me.startOffset = me.endOffset; - } - me.collapsed = true; - return me; - }, - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置 - * @method shrinkBoundary - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * xxxx[xxxxx] => xxxx[xxxxx] - * ``` - * - * @example - * ```html - * - * x[xx]xxx - * - * - * ``` - * - * @example - * ```html - * [xxxxxxxxxxx] => [xxxxxxxxxxx] - * ``` - */ - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置, - * 如果ignoreEnd的值为true,则忽略对结束位置的调整 - * @method shrinkBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束位置的调整 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.domUtils.Range:shrinkBoundary() - */ - shrinkBoundary:function (ignoreEnd) { - var me = this, child, - collapsed = me.collapsed; - function check(node){ - return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName] - } - while (me.startContainer.nodeType == 1 //是element - && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element - && check(child)) { - me.setStart(child, 0); - } - if (collapsed) { - return me.collapse(true); - } - if (!ignoreEnd) { - while (me.endContainer.nodeType == 1//是element - && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值,childNodes[endOffset]报错 - && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element - && check(child)) { - me.setEnd(child, child.childNodes.length); - } - } - return me; - }, - - /** - * 获取离当前选区内包含的所有节点最近的公共祖先节点, - * @method getCommonAncestor - * @remind 返回的公共祖先节点一定不是range自身的容器节点, 但有可能是一个文本节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @example - * ```html - * //选区示例 - * xxxx[xxx]xxxxxx - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @example - * ```html - * - * - * - * xxxxxxxxx[xxx]xxxxxxxx - * - * - * - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点; 同时可以根据 - * ignoreTextNode 参数的取值决定是否忽略类型为文本节点的祖先节点。 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @param { Boolean } ignoreTextNode 获取祖先节点的过程中是否忽略类型为文本节点的祖先节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @see UE.dom.Range:getCommonAncestor(Boolean) - * @example - * ```html - * - * - * - * xxxxxxxx[x]xxxxxxxxxxx - * - * - * - * - * ``` - */ - getCommonAncestor:function (includeSelf, ignoreTextNode) { - var me = this, - start = me.startContainer, - end = me.endContainer; - if (start === end) { - if (includeSelf && selectOneNode(this)) { - start = start.childNodes[me.startOffset]; - if(start.nodeType == 1) - return start; - } - //只有在上来就相等的情况下才会出现是文本的情况 - return ignoreTextNode && start.nodeType == 3 ? start.parentNode : start; - } - return domUtils.getCommonAncestor(start, end); - }, - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上 - * @method trimBoundary - * @remind 该操作有可能会引起文本节点被切开 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上, - * 可以根据 ignoreEnd 参数的值决定是否调整对结束边界的调整 - * @method trimBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束边界的调整 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - trimBoundary:function (ignoreEnd) { - this.txtToElmBoundary(); - var start = this.startContainer, - offset = this.startOffset, - collapsed = this.collapsed, - end = this.endContainer; - if (start.nodeType == 3) { - if (offset == 0) { - this.setStartBefore(start); - } else { - if (offset >= start.nodeValue.length) { - this.setStartAfter(start); - } else { - var textNode = domUtils.split(start, offset); - //跟新结束边界 - if (start === end) { - this.setEnd(textNode, this.endOffset - offset); - } else if (start.parentNode === end) { - this.endOffset += 1; - } - this.setStartBefore(textNode); - } - } - if (collapsed) { - return this.collapse(true); - } - } - if (!ignoreEnd) { - offset = this.endOffset; - end = this.endContainer; - if (end.nodeType == 3) { - if (offset == 0) { - this.setEndBefore(end); - } else { - offset < end.nodeValue.length && domUtils.split(end, offset); - this.setEndAfter(end); - } - } - } - return this; - }, - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则什么也不做 - * @method txtToElmBoundary - * @remind 该操作不会修改dom节点 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则根据参数项 - * ignoreCollapsed 的值决定是否执行该调整 - * @method txtToElmBoundary - * @param { Boolean } ignoreCollapsed 是否忽略选区的闭合状态, 如果该参数取值为true, 则 - * 不论选区是否闭合, 都会执行该操作, 反之, 则不会对闭合的选区执行该操作 - * @return { UE.dom.Range } 当前range对象 - */ - txtToElmBoundary:function (ignoreCollapsed) { - function adjust(r, c) { - var container = r[c + 'Container'], - offset = r[c + 'Offset']; - if (container.nodeType == 3) { - if (!offset) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'Before'](container); - } else if (offset >= container.nodeValue.length) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'After' ](container); - } - } - } - - if (ignoreCollapsed || !this.collapsed) { - adjust(this, 'start'); - adjust(this, 'end'); - } - return this; - }, - - /** - * 在当前选区的开始位置前插入节点,新插入的节点会被该range包含 - * @method insertNode - * @param { Node } node 需要插入的节点 - * @remind 插入的节点可以是一个DocumentFragment依次插入多个节点 - * @return { UE.dom.Range } 当前range对象 - */ - insertNode:function (node) { - var first = node, length = 1; - if (node.nodeType == 11) { - first = node.firstChild; - length = node.childNodes.length; - } - this.trimBoundary(true); - var start = this.startContainer, - offset = this.startOffset; - var nextNode = start.childNodes[ offset ]; - if (nextNode) { - start.insertBefore(node, nextNode); - } else { - start.appendChild(node); - } - if (first.parentNode === this.endContainer) { - this.endOffset = this.endOffset + length; - } - return this.setStartBefore(first); - }, - - /** - * 闭合选区到当前选区的开始位置, 并且定位光标到闭合后的位置 - * @method setCursor - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse() - */ - - /** - * 闭合选区,可以根据参数toEnd的值控制选区是向前闭合还是向后闭合, 并且定位光标到闭合后的位置。 - * @method setCursor - * @param { Boolean } toEnd 是否向后闭合, 如果为true, 则闭合选区时, 将向结束容器方向闭合, - * 反之,则向开始容器方向闭合 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse(Boolean) - */ - setCursor:function (toEnd, noFillData) { - return this.collapse(!toEnd).select(noFillData); - }, - - /** - * 创建当前range的一个书签,记录下当前range的位置,方便当dom树改变时,还能找回原来的选区位置 - * @method createBookmark - * @param { Boolean } serialize 控制返回的标记位置是对当前位置的引用还是ID,如果该值为true,则 - * 返回标记位置的ID, 反之则返回标记位置节点的引用 - * @return { Object } 返回一个书签记录键值对, 其包含的key有: start => 开始标记的ID或者引用, - * end => 结束标记的ID或引用, id => 当前标记的类型, 如果为true,则表示 - * 返回的记录的类型为ID, 反之则为引用 - */ - createBookmark:function (serialize, same) { - var endNode, - startNode = this.document.createElement('span'); - startNode.style.cssText = 'display:none;line-height:0px;'; - startNode.appendChild(this.document.createTextNode('\u200D')); - startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++); - - if (!this.collapsed) { - endNode = startNode.cloneNode(true); - endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++); - } - this.insertNode(startNode); - if (endNode) { - this.collapse().insertNode(endNode).setEndBefore(endNode); - } - this.setStartAfter(startNode); - return { - start:serialize ? startNode.id : startNode, - end:endNode ? serialize ? endNode.id : endNode : null, - id:serialize - } - }, - - /** - * 调整当前range的边界到书签位置,并删除该书签对象所标记的位置内的节点 - * @method moveToBookmark - * @param { BookMark } bookmark createBookmark所创建的标签对象 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:createBookmark(Boolean) - */ - moveToBookmark:function (bookmark) { - var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start, - end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end; - this.setStartBefore(start); - domUtils.remove(start); - if (end) { - this.setEndBefore(end); - domUtils.remove(end); - } else { - this.collapse(true); - } - return this; - }, - - /** - * 调整range的边界,使其"放大"到最近的父节点 - * @method enlarge - * @remind 会引起选区的变化 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 调整range的边界,使其"放大"到最近的父节点,根据参数 toBlock 的取值, 可以 - * 要求扩大之后的父节点是block节点 - * @method enlarge - * @param { Boolean } toBlock 是否要求扩大之后的父节点必须是block节点 - * @return { UE.dom.Range } 当前range对象 - */ - enlarge:function (toBlock, stopFn) { - var isBody = domUtils.isBody, - pre, node, tmp = this.document.createTextNode(''); - if (toBlock) { - node = this.startContainer; - if (node.nodeType == 1) { - if (node.childNodes[this.startOffset]) { - pre = node = node.childNodes[this.startOffset] - } else { - node.appendChild(tmp); - pre = node = tmp; - } - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.previousSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setStartBefore(node); - break; - } - pre = node; - node = node.parentNode; - } - node = this.endContainer; - if (node.nodeType == 1) { - if (pre = node.childNodes[this.endOffset]) { - node.insertBefore(tmp, pre); - } else { - node.appendChild(tmp); - } - pre = node = tmp; - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.nextSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setEndAfter(node); - break; - } - pre = node; - node = node.parentNode; - } - if (tmp.parentNode === this.endContainer) { - this.endOffset--; - } - domUtils.remove(tmp); - } - - // 扩展边界到最大 - if (!this.collapsed) { - while (this.startOffset == 0) { - if (stopFn && stopFn(this.startContainer)) { - break; - } - if (isBody(this.startContainer)) { - break; - } - this.setStartBefore(this.startContainer); - } - while (this.endOffset == (this.endContainer.nodeType == 1 ? this.endContainer.childNodes.length : this.endContainer.nodeValue.length)) { - if (stopFn && stopFn(this.endContainer)) { - break; - } - if (isBody(this.endContainer)) { - break; - } - this.setEndAfter(this.endContainer); - } - } - return this; - }, - enlargeToBlockElm:function(ignoreEnd){ - while(!domUtils.isBlockElm(this.startContainer)){ - this.setStartBefore(this.startContainer); - } - if(!ignoreEnd){ - while(!domUtils.isBlockElm(this.endContainer)){ - this.setEndAfter(this.endContainer); - } - } - return this; - }, - /** - * 调整Range的边界,使其"缩小"到最合适的位置 - * @method adjustmentBoundary - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:shrinkBoundary() - */ - adjustmentBoundary:function () { - if (!this.collapsed) { - while (!domUtils.isBody(this.startContainer) && - this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length && - this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - - this.setStartAfter(this.startContainer); - } - while (!domUtils.isBody(this.endContainer) && !this.endOffset && - this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - this.setEndBefore(this.endContainer); - } - } - return this; - }, - - /** - * 给range选区中的内容添加给定的inline标签 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @example - * ```html - *

    xxxx[xxxx]x

    ==> range.applyInlineStyle("strong") ==>

    xxxx[xxxx]x

    - * ``` - */ - - /** - * 给range选区中的内容添加给定的inline标签, 并且为标签附加上一些初始化属性。 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @param { Object } attrs 跟随新添加的标签的属性 - * @return { UE.dom.Range } 当前选区 - * @example - * ```html - *

    xxxx[xxxx]x

    - * - * ==> - * - * - * range.applyInlineStyle("strong",{"style":"font-size:12px"}) - * - * ==> - * - *

    xxxx[xxxx]x

    - * ``` - */ - applyInlineStyle:function (tagName, attrs, list) { - if (this.collapsed)return this; - this.trimBoundary().enlarge(false, - function (node) { - return node.nodeType == 1 && domUtils.isBlockElm(node) - }).adjustmentBoundary(); - var bookmark = this.createBookmark(), - end = bookmark.end, - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn), - node, - pre, - range = this.cloneRange(); - while (current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - if (current.nodeType == 3 || dtd[tagName][current.tagName]) { - range.setStartBefore(current); - node = current; - while (node && (node.nodeType == 3 || dtd[tagName][node.tagName]) && node !== end) { - pre = node; - node = domUtils.getNextDomNode(node, node.nodeType == 1, null, function (parent) { - return dtd[tagName][parent.tagName]; - }); - } - var frag = range.setEndAfter(pre).extractContents(), elm; - if (list && list.length > 0) { - var level, top; - top = level = list[0].cloneNode(false); - for (var i = 1, ci; ci = list[i++];) { - level.appendChild(ci.cloneNode(false)); - level = level.firstChild; - } - elm = level; - } else { - elm = range.document.createElement(tagName); - } - if (attrs) { - domUtils.setAttributes(elm, attrs); - } - elm.appendChild(frag); - range.insertNode(list ? top : elm); - //处理下滑线在a上的情况 - var aNode; - if (tagName == 'span' && attrs.style && /text\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(elm, 'a', true))) { - domUtils.setAttributes(aNode, attrs); - domUtils.remove(elm, true); - elm = aNode; - } else { - domUtils.mergeSibling(elm); - domUtils.clearEmptySibling(elm); - } - //去除子节点相同的 - domUtils.mergeChild(elm, attrs); - current = domUtils.getNextDomNode(elm, false, filterFn); - domUtils.mergeToParent(elm); - if (node === end) { - break; - } - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return this.moveToBookmark(bookmark); - }, - - /** - * 移除当前选区内指定的inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { String } tagName 需要移除的标签名 - * @return { UE.dom.Range } 当前的range对象 - * @example - * ```html - * xx[xxxxyyyzz]z => range.removeInlineStyle(["em"]) => xx[xxxxyyyzz]z - * ``` - */ - - /** - * 移除当前选区内指定的一组inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { Array } tagNameArr 需要移除的标签名的数组 - * @return { UE.dom.Range } 当前的range对象 - * @see UE.dom.Range:removeInlineStyle(String) - */ - removeInlineStyle:function (tagNames) { - if (this.collapsed)return this; - tagNames = utils.isArray(tagNames) ? tagNames : [tagNames]; - this.shrinkBoundary().adjustmentBoundary(); - var start = this.startContainer, end = this.endContainer; - while (1) { - if (start.nodeType == 1) { - if (utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1) { - break; - } - if (start.tagName.toLowerCase() == 'body') { - start = null; - break; - } - } - start = start.parentNode; - } - while (1) { - if (end.nodeType == 1) { - if (utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1) { - break; - } - if (end.tagName.toLowerCase() == 'body') { - end = null; - break; - } - } - end = end.parentNode; - } - var bookmark = this.createBookmark(), - frag, - tmpRange; - if (start) { - tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(start, true); - start.parentNode.insertBefore(bookmark.start, start); - } - if (end) { - tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(end, false, true); - end.parentNode.insertBefore(bookmark.end, end.nextSibling); - } - var current = domUtils.getNextDomNode(bookmark.start, false, function (node) { - return node.nodeType == 1; - }), next; - while (current && current !== bookmark.end) { - next = domUtils.getNextDomNode(current, true, function (node) { - return node.nodeType == 1; - }); - if (utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1) { - domUtils.remove(current, true); - } - current = next; - } - return this.moveToBookmark(bookmark); - }, - - /** - * 获取当前选中的自闭合的节点 - * @method getClosedNode - * @return { Node | NULL } 如果当前选中的是自闭合节点, 则返回该节点, 否则返回NULL - */ - getClosedNode:function () { - var node; - if (!this.collapsed) { - var range = this.cloneRange().adjustmentBoundary().shrinkBoundary(); - if (selectOneNode(range)) { - var child = range.startContainer.childNodes[range.startOffset]; - if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) { - node = child; - } - } - } - return node; - }, - - /** - * 在页面上高亮range所表示的选区 - * @method select - * @return { UE.dom.Range } 返回当前Range对象 - */ - //这里不区分ie9以上,trace:3824 - select:browser.ie ? function (noFillData, textRange) { - var nativeRange; - if (!this.collapsed) - this.shrinkBoundary(); - var node = this.getClosedNode(); - if (node && !textRange) { - try { - nativeRange = this.document.body.createControlRange(); - nativeRange.addElement(node); - nativeRange.select(); - } catch (e) {} - return this; - } - var bookmark = this.createBookmark(), - start = bookmark.start, - end; - nativeRange = this.document.body.createTextRange(); - nativeRange.moveToElementText(start); - nativeRange.moveStart('character', 1); - if (!this.collapsed) { - var nativeRangeEnd = this.document.body.createTextRange(); - end = bookmark.end; - nativeRangeEnd.moveToElementText(end); - nativeRange.setEndPoint('EndToEnd', nativeRangeEnd); - } else { - if (!noFillData && this.startContainer.nodeType != 3) { - //使用|x固定住光标 - var tmpText = this.document.createTextNode(fillChar), - tmp = this.document.createElement('span'); - tmp.appendChild(this.document.createTextNode(fillChar)); - start.parentNode.insertBefore(tmp, start); - start.parentNode.insertBefore(tmpText, start); - //当点b,i,u时,不能清除i上边的b - removeFillData(this.document, tmpText); - fillData = tmpText; - mergeSibling(tmp, 'previousSibling'); - mergeSibling(start, 'nextSibling'); - nativeRange.moveStart('character', -1); - nativeRange.collapse(true); - } - } - this.moveToBookmark(bookmark); - tmp && domUtils.remove(tmp); - //IE在隐藏状态下不支持range操作,catch一下 - try { - nativeRange.select(); - } catch (e) { - } - return this; - } : function (notInsertFillData) { - function checkOffset(rng){ - - function check(node,offset,dir){ - if(node.nodeType == 3 && node.nodeValue.length < offset){ - rng[dir + 'Offset'] = node.nodeValue.length - } - } - check(rng.startContainer,rng.startOffset,'start'); - check(rng.endContainer,rng.endOffset,'end'); - } - var win = domUtils.getWindow(this.document), - sel = win.getSelection(), - txtNode; - //FF下关闭自动长高时滚动条在关闭dialog时会跳 - //ff下如果不body.focus将不能定位闭合光标到编辑器内 - browser.gecko ? this.document.body.focus() : win.focus(); - if (sel) { - sel.removeAllRanges(); - // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断 - // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR' - if (this.collapsed && !notInsertFillData) { -// //opear如果没有节点接着,原生的不能够定位,不能在body的第一级插入空白节点 -// if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) { -// var tmp = this.document.createTextNode(''); -// this.insertNode(tmp).setStart(tmp, 0).collapse(true); -// } -// - //处理光标落在文本节点的情况 - //处理以下的情况 - //|xxxx - //xxxx|xxxx - //xxxx| - var start = this.startContainer,child = start; - if(start.nodeType == 1){ - child = start.childNodes[this.startOffset]; - - } - if( !(start.nodeType == 3 && this.startOffset) && - (child ? - (!child.previousSibling || child.previousSibling.nodeType != 3) - : - (!start.lastChild || start.lastChild.nodeType != 3) - ) - ){ - txtNode = this.document.createTextNode(fillChar); - //跟着前边走 - this.insertNode(txtNode); - removeFillData(this.document, txtNode); - mergeSibling(txtNode, 'previousSibling'); - mergeSibling(txtNode, 'nextSibling'); - fillData = txtNode; - this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true); - } - } - var nativeRange = this.document.createRange(); - if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){ - var child = this.startContainer.childNodes[this.startOffset]; - if(!child){ - //往前靠拢 - child = this.startContainer.lastChild; - if( child && domUtils.isBr(child)){ - this.setStartBefore(child).collapse(true); - } - }else{ - //向后靠拢 - while(child && domUtils.isBlockElm(child)){ - if(child.nodeType == 1 && child.childNodes[0]){ - child = child.childNodes[0] - }else{ - break; - } - } - child && this.setStartBefore(child).collapse(true) - } - - } - //是createAddress最后一位算的不准,现在这里进行微调 - checkOffset(this); - nativeRange.setStart(this.startContainer, this.startOffset); - nativeRange.setEnd(this.endContainer, this.endOffset); - sel.addRange(nativeRange); - } - return this; - }, - - /** - * 滚动到当前range开始的位置 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @return { UE.dom.Range } 当前Range对象 - */ - - /** - * 滚动到距离当前range开始位置 offset 的位置处 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @param { Number } offset 距离range开始位置处的偏移量, 如果为正数, 则向下偏移, 反之, 则向上偏移 - * @return { UE.dom.Range } 当前Range对象 - */ - scrollToView:function (win, offset) { - win = win ? window : domUtils.getWindow(this.document); - var me = this, - span = me.document.createElement('span'); - //trace:717 - span.innerHTML = ' '; - me.cloneRange().insertNode(span); - domUtils.scrollToView(span, win, offset); - domUtils.remove(span); - return me; - }, - - /** - * 判断当前选区内容是否占位符 - * @private - * @method inFillChar - * @return { Boolean } 如果是占位符返回true,否则返回false - */ - inFillChar : function(){ - var start = this.startContainer; - if(this.collapsed && start.nodeType == 3 - && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length - ){ - return true; - } - return false; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - createAddress : function(ignoreEnd,ignoreTxt){ - var addr = {},me = this; - - function getAddress(isStart){ - var node = isStart ? me.startContainer : me.endContainer; - var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}), - addrs = []; - for(var i = 0,ci;ci = parents[i++];){ - addrs.push(domUtils.getNodeIndex(ci,ignoreTxt)); - } - var firstIndex = 0; - - if(ignoreTxt){ - if(node.nodeType == 3){ - var tmpNode = node.previousSibling; - while(tmpNode && tmpNode.nodeType == 3){ - firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length; - tmpNode = tmpNode.previousSibling; - } - firstIndex += (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 ) - }else{ - node = node.childNodes[ isStart ? me.startOffset : me.endOffset]; - if(node){ - firstIndex = domUtils.getNodeIndex(node,ignoreTxt); - }else{ - node = isStart ? me.startContainer : me.endContainer; - var first = node.firstChild; - while(first){ - if(domUtils.isFillChar(first)){ - first = first.nextSibling; - continue; - } - firstIndex++; - if(first.nodeType == 3){ - while( first && first.nodeType == 3){ - first = first.nextSibling; - } - }else{ - first = first.nextSibling; - } - } - } - } - - }else{ - firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset : me.endOffset - } - if(firstIndex < 0){ - firstIndex = 0; - } - addrs.push(firstIndex); - return addrs; - } - addr.startAddress = getAddress(true); - if(!ignoreEnd){ - addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress(); - } - return addr; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - moveToAddress : function(addr,ignoreEnd){ - var me = this; - function getNode(address,isStart){ - var tmpNode = me.document.body, - parentNode,offset; - for(var i= 0,ci,l=address.length;i - * - * - * - * - * - * - * - * - * ``` - */ - - /** - * 遍历range内的节点。 - * 每当遍历一个节点时, 都会执行参数项 doFn 指定的函数, 该函数的接受当前遍历的节点 - * 作为其参数。 - * 可以通过参数项 filterFn 来指定一个过滤器, 只有符合该过滤器过滤规则的节点才会触 - * 发doFn函数的执行 - * @method traversal - * @param { Function } doFn 对每个遍历的节点要执行的方法, 该方法接受当前遍历的节点作为其参数 - * @param { Function } filterFn 过滤器, 该函数接受当前遍历的节点作为参数, 如果该节点满足过滤 - * 规则, 请返回true, 该节点会触发doFn, 否则, 请返回false, 则该节点不 - * 会触发doFn。 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:traversal(Function) - * @example - * ```html - * - * - * - * - * - * - * - * - * - * - * ``` - */ - traversal:function(doFn,filterFn){ - if (this.collapsed) - return this; - var bookmark = this.createBookmark(), - end = bookmark.end, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn); - while (current && current !== end && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - var tmpNode = domUtils.getNextDomNode(current,false,filterFn); - doFn(current); - current = tmpNode; - } - return this.moveToBookmark(bookmark); - } - }; -})(); - -// core/Selection.js -/** - * 选集 - * @file - * @module UE.dom - * @class Selection - * @since 1.2.6.1 - */ - -/** - * 选区集合 - * @unfile - * @module UE.dom - * @class Selection - */ -(function () { - - function getBoundaryInformation( range, start ) { - var getIndex = domUtils.getNodeIndex; - range = range.duplicate(); - range.collapse( start ); - var parent = range.parentElement(); - //如果节点里没有子节点,直接退出 - if ( !parent.hasChildNodes() ) { - return {container:parent, offset:0}; - } - var siblings = parent.children, - child, - testRange = range.duplicate(), - startIndex = 0, endIndex = siblings.length - 1, index = -1, - distance; - while ( startIndex <= endIndex ) { - index = Math.floor( (startIndex + endIndex) / 2 ); - child = siblings[index]; - testRange.moveToElementText( child ); - var position = testRange.compareEndPoints( 'StartToStart', range ); - if ( position > 0 ) { - endIndex = index - 1; - } else if ( position < 0 ) { - startIndex = index + 1; - } else { - //trace:1043 - return {container:parent, offset:getIndex( child )}; - } - } - if ( index == -1 ) { - testRange.moveToElementText( parent ); - testRange.setEndPoint( 'StartToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - siblings = parent.childNodes; - if ( !distance ) { - child = siblings[siblings.length - 1]; - return {container:child, offset:child.nodeValue.length}; - } - - var i = siblings.length; - while ( distance > 0 ){ - distance -= siblings[ --i ].nodeValue.length; - } - return {container:siblings[i], offset:-distance}; - } - testRange.collapse( position > 0 ); - testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - if ( !distance ) { - return dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ? - {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} : - {container:child, offset:position > 0 ? 0 : child.childNodes.length} - } - while ( distance > 0 ) { - try { - var pre = child; - child = child[position > 0 ? 'previousSibling' : 'nextSibling']; - distance -= child.nodeValue.length; - } catch ( e ) { - return {container:parent, offset:getIndex( pre )}; - } - } - return {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance} - } - - /** - * 将ieRange转换为Range对象 - * @param {Range} ieRange ieRange对象 - * @param {Range} range Range对象 - * @return {Range} range 返回转换后的Range对象 - */ - function transformIERangeToRange( ieRange, range ) { - if ( ieRange.item ) { - range.selectNode( ieRange.item( 0 ) ); - } else { - var bi = getBoundaryInformation( ieRange, true ); - range.setStart( bi.container, bi.offset ); - if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) { - bi = getBoundaryInformation( ieRange, false ); - range.setEnd( bi.container, bi.offset ); - } - } - return range; - } - - /** - * 获得ieRange - * @param {Selection} sel Selection对象 - * @return {ieRange} 得到ieRange - */ - function _getIERange( sel ) { - var ieRange; - //ie下有可能报错 - try { - ieRange = sel.getNative().createRange(); - } catch ( e ) { - return null; - } - var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement(); - if ( ( el.ownerDocument || el ) === sel.document ) { - return ieRange; - } - return null; - } - - var Selection = dom.Selection = function ( doc ) { - var me = this, iframe; - me.document = doc; - if ( browser.ie9below ) { - iframe = domUtils.getWindow( doc ).frameElement; - domUtils.on( iframe, 'beforedeactivate', function () { - me._bakIERange = me.getIERange(); - } ); - domUtils.on( iframe, 'activate', function () { - try { - if ( !_getIERange( me ) && me._bakIERange ) { - me._bakIERange.select(); - } - } catch ( ex ) { - } - me._bakIERange = null; - } ); - } - iframe = doc = null; - }; - - Selection.prototype = { - - rangeInBody : function(rng,txtRange){ - var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer; - - return node === this.document.body || domUtils.inDoc(node,this.document); - }, - - /** - * 获取原生seleciton对象 - * @method getNative - * @return { Object } 获得selection对象 - * @example - * ```javascript - * editor.selection.getNative(); - * ``` - */ - getNative:function () { - var doc = this.document; - try { - return !doc ? null : browser.ie9below ? doc.selection : domUtils.getWindow( doc ).getSelection(); - } catch ( e ) { - return null; - } - }, - - /** - * 获得ieRange - * @method getIERange - * @return { Object } 返回ie原生的Range - * @example - * ```javascript - * editor.selection.getIERange(); - * ``` - */ - getIERange:function () { - var ieRange = _getIERange( this ); - if ( !ieRange ) { - if ( this._bakIERange ) { - return this._bakIERange; - } - } - return ieRange; - }, - - /** - * 缓存当前选区的range和选区的开始节点 - * @method cache - */ - cache:function () { - this.clear(); - this._cachedRange = this.getRange(); - this._cachedStartElement = this.getStart(); - this._cachedStartElementPath = this.getStartElementPath(); - }, - - /** - * 获取选区开始位置的父节点到body - * @method getStartElementPath - * @return { Array } 返回父节点集合 - * @example - * ```javascript - * editor.selection.getStartElementPath(); - * ``` - */ - getStartElementPath:function () { - if ( this._cachedStartElementPath ) { - return this._cachedStartElementPath; - } - var start = this.getStart(); - if ( start ) { - return domUtils.findParents( start, true, null, true ) - } - return []; - }, - - /** - * 清空缓存 - * @method clear - */ - clear:function () { - this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null; - }, - - /** - * 编辑器是否得到了选区 - * @method isFocus - */ - isFocus:function () { - try { - if(browser.ie9below){ - - var nativeRange = _getIERange(this); - return !!(nativeRange && this.rangeInBody(nativeRange)); - }else{ - return !!this.getNative().rangeCount; - } - } catch ( e ) { - return false; - } - - }, - - /** - * 获取选区对应的Range - * @method getRange - * @return { Object } 得到Range对象 - * @example - * ```javascript - * editor.selection.getRange(); - * ``` - */ - getRange:function () { - var me = this; - function optimze( range ) { - var child = me.document.body.firstChild, - collapsed = range.collapsed; - while ( child && child.firstChild ) { - range.setStart( child, 0 ); - child = child.firstChild; - } - if ( !range.startContainer ) { - range.setStart( me.document.body, 0 ) - } - if ( collapsed ) { - range.collapse( true ); - } - } - - if ( me._cachedRange != null ) { - return this._cachedRange; - } - var range = new baidu.editor.dom.Range( me.document ); - - if ( browser.ie9below ) { - var nativeRange = me.getIERange(); - if ( nativeRange ) { - //备份的_bakIERange可能已经实效了,dom树发生了变化比如从源码模式切回来,所以try一下,实效就放到body开始位置 - try{ - transformIERangeToRange( nativeRange, range ); - }catch(e){ - optimze( range ); - } - - } else { - optimze( range ); - } - } else { - var sel = me.getNative(); - if ( sel && sel.rangeCount ) { - var firstRange = sel.getRangeAt( 0 ); - var lastRange = sel.getRangeAt( sel.rangeCount - 1 ); - range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset ); - if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) { - optimze( range ); - } - } else { - //trace:1734 有可能已经不在dom树上了,标识的节点 - if ( this._bakRange && domUtils.inDoc( this._bakRange.startContainer, this.document ) ){ - return this._bakRange; - } - optimze( range ); - } - } - return this._bakRange = range; - }, - - /** - * 获取开始元素,用于状态反射 - * @method getStart - * @return { Element } 获得开始元素 - * @example - * ```javascript - * editor.selection.getStart(); - * ``` - */ - getStart:function () { - if ( this._cachedStartElement ) { - return this._cachedStartElement; - } - var range = browser.ie9below ? this.getIERange() : this.getRange(), - tmpRange, - start, tmp, parent; - if ( browser.ie9below ) { - if ( !range ) { - //todo 给第一个值可能会有问题 - return this.document.body.firstChild; - } - //control元素 - if ( range.item ){ - return range.item( 0 ); - } - tmpRange = range.duplicate(); - //修正ie下x[xx] 闭合后 x|xx - tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 ); - tmpRange.collapse( 1 ); - start = tmpRange.parentElement(); - parent = tmp = range.parentElement(); - while ( tmp = tmp.parentNode ) { - if ( tmp == start ) { - start = parent; - break; - } - } - } else { - range.shrinkBoundary(); - start = range.startContainer; - if ( start.nodeType == 1 && start.hasChildNodes() ){ - start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )]; - } - if ( start.nodeType == 3 ){ - return start.parentNode; - } - } - return start; - }, - - /** - * 得到选区中的文本 - * @method getText - * @return { String } 选区中包含的文本 - * @example - * ```javascript - * editor.selection.getText(); - * ``` - */ - getText:function () { - var nativeSel, nativeRange; - if ( this.isFocus() && (nativeSel = this.getNative()) ) { - nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt( 0 ); - return browser.ie9below ? nativeRange.text : nativeRange.toString(); - } - return ''; - }, - - /** - * 清除选区 - * @method clearRange - * @example - * ```javascript - * editor.selection.clearRange(); - * ``` - */ - clearRange : function(){ - this.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - } - }; -})(); - -// core/Editor.js -/** - * 编辑器主类,包含编辑器提供的大部分公用接口 - * @file - * @module UE - * @class Editor - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * UEditor的核心类,为用户提供与编辑器交互的接口。 - * @unfile - * @module UE - * @class Editor - */ - -(function () { - var uid = 0, _selectionChangeTimer; - - /** - * 获取编辑器的html内容,赋值到编辑器所在表单的textarea文本域里面 - * @private - * @method setValue - * @param { UE.Editor } editor 编辑器事例 - */ - function setValue(form, editor) { - var textarea; - if (editor.textarea) { - if (utils.isString(editor.textarea)) { - for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) { - if (ti.id == 'ueditor_textarea_' + editor.options.textarea) { - textarea = ti; - break; - } - } - } else { - textarea = editor.textarea; - } - } - if (!textarea) { - form.appendChild(textarea = domUtils.createElement(document, 'textarea', { - 'name': editor.options.textarea, - 'id': 'ueditor_textarea_' + editor.options.textarea, - 'style': "display:none" - })); - //不要产生多个textarea - editor.textarea = textarea; - } - !textarea.getAttribute('name') && textarea.setAttribute('name', editor.options.textarea ); - textarea.value = editor.hasContents() ? - (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) : - '' - } - function loadPlugins(me){ - //初始化插件 - for (var pi in UE.plugins) { - UE.plugins[pi].call(me); - } - - } - function checkCurLang(I18N){ - for(var lang in I18N){ - return lang - } - } - - function langReadied(me){ - me.langIsReady = true; - - me.fireEvent("langReady"); - } - - /** - * 编辑器准备就绪后会触发该事件 - * @module UE - * @class Editor - * @event ready - * @remind render方法执行完成之后,会触发该事件 - * @remind - * @example - * ```javascript - * editor.addListener( 'ready', function( editor ) { - * editor.execCommand( 'focus' ); //编辑器家在完成后,让编辑器拿到焦点 - * } ); - * ``` - */ - /** - * 执行destroy方法,会触发该事件 - * @module UE - * @class Editor - * @event destroy - * @see UE.Editor:destroy() - */ - /** - * 执行reset方法,会触发该事件 - * @module UE - * @class Editor - * @event reset - * @see UE.Editor:reset() - */ - /** - * 执行focus方法,会触发该事件 - * @module UE - * @class Editor - * @event focus - * @see UE.Editor:focus(Boolean) - */ - /** - * 语言加载完成会触发该事件 - * @module UE - * @class Editor - * @event langReady - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event beforeExecCommand - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event afterExecCommand - */ - /** - * 运行命令之前会触发该命令 - * @module UE - * @class Editor - * @event firstBeforeExecCommand - */ - /** - * 在getContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getAllHtml方法执行时会触发该事件 - * @module UE - * @class Editor - * @event getAllHtml - * @see UE.Editor:getAllHtml() - */ - /** - * 在setContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 在setContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 每当编辑器内部选区发生改变时,将触发该事件 - * @event selectionchange - * @warning 该事件的触发非常频繁,不建议在该事件的处理过程中做重量级的处理 - * @example - * ```javascript - * editor.addListener( 'selectionchange', function( editor ) { - * console.log('选区发生改变'); - * } - */ - /** - * 在所有selectionchange的监听函数执行之前,会触发该事件 - * @module UE - * @class Editor - * @event beforeSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 在所有selectionchange的监听函数执行完之后,会触发该事件 - * @module UE - * @class Editor - * @event afterSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 编辑器内容发生改变时会触发该事件 - * @module UE - * @class Editor - * @event contentChange - */ - - - /** - * 以默认参数构建一个编辑器实例 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - - /** - * 以给定的参数集合创建一个编辑器实例,对于未指定的参数,将应用默认参数。 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @param { Object } setting 创建编辑器的参数 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - var Editor = UE.Editor = function (options) { - var me = this; - me.uid = uid++; - EventBase.call(me); - me.commands = {}; - me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true); - me.shortcutkeys = {}; - me.inputRules = []; - me.outputRules = []; - //设置默认的常用属性 - me.setOpt(Editor.defaultOptions(me)); - - /* 尝试异步加载后台配置 */ - me.loadServerConfig(); - - if(!utils.isEmptyObject(UE.I18N)){ - //修改默认的语言类型 - me.options.lang = checkCurLang(UE.I18N); - UE.plugin.load(me); - langReadied(me); - - }else{ - utils.loadFile(document, { - src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - UE.plugin.load(me); - langReadied(me); - }); - } - - UE.instants['ueditorInstant' + me.uid] = me; - }; - Editor.prototype = { - registerCommand : function(name,obj){ - this.commands[name] = obj; - }, - /** - * 编辑器对外提供的监听ready事件的接口, 通过调用该方法,达到的效果与监听ready事件是一致的 - * @method ready - * @param { Function } fn 编辑器ready之后所执行的回调, 如果在注册事件之前编辑器已经ready,将会 - * 立即触发该回调。 - * @remind 需要等待编辑器加载完成后才能执行的代码,可以使用该方法传入 - * @example - * ```javascript - * editor.ready( function( editor ) { - * editor.setContent('初始化完毕'); - * } ); - * ``` - * @see UE.Editor.event:ready - */ - ready: function (fn) { - var me = this; - if (fn) { - me.isReady ? fn.apply(me) : me.addListener('ready', fn); - } - }, - - /** - * 该方法是提供给插件里面使用,设置配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { String } key 编辑器的可接受的选项名称 - * @param { * } val 该选项可接受的值 - * @example - * ```javascript - * editor.setOpt( 'initContent', '欢迎使用编辑器' ); - * ``` - */ - - /** - * 该方法是提供给插件里面使用,以{key:value}集合的方式设置插件内用到的配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { Object } options 将要设置的选项的键值对对象 - * @example - * ```javascript - * editor.setOpt( { - * 'initContent': '欢迎使用编辑器' - * } ); - * ``` - */ - setOpt: function (key, val) { - var obj = {}; - if (utils.isString(key)) { - obj[key] = val - } else { - obj = key; - } - utils.extend(this.options, obj, true); - }, - getOpt:function(key){ - return this.options[key] - }, - /** - * 销毁编辑器实例,使用textarea代替 - * @method destroy - * @example - * ```javascript - * editor.destroy(); - * ``` - */ - destroy: function () { - - var me = this; - me.fireEvent('destroy'); - var container = me.container.parentNode; - var textarea = me.textarea; - if (!textarea) { - textarea = document.createElement('textarea'); - container.parentNode.insertBefore(textarea, container); - } else { - textarea.style.display = '' - } - - textarea.style.width = me.iframe.offsetWidth + 'px'; - textarea.style.height = me.iframe.offsetHeight + 'px'; - textarea.value = me.getContent(); - textarea.id = me.key; - container.innerHTML = ''; - domUtils.remove(container); - var key = me.key; - //trace:2004 - for (var p in me) { - if (me.hasOwnProperty(p)) { - delete this[p]; - } - } - UE.delEditor(key); - }, - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { String } containerId 指定一个容器ID - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { Element } containerDom 直接指定容器对象 - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - render: function (container) { - var me = this, - options = me.options, - getStyleValue=function(attr){ - return parseInt(domUtils.getComputedStyle(container,attr)); - }; - if (utils.isString(container)) { - container = document.getElementById(container); - } - if (container) { - if(options.initialFrameWidth){ - options.minFrameWidth = options.initialFrameWidth - }else{ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - } - if(options.initialFrameHeight){ - options.minFrameHeight = options.initialFrameHeight - }else{ - options.initialFrameHeight = options.minFrameHeight = container.offsetHeight; - } - - container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth- - getStyleValue("padding-left")- getStyleValue("padding-right") +'px'; - container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight - - getStyleValue("padding-top")- getStyleValue("padding-bottom") +'px'; - - container.style.zIndex = options.zIndex; - - var html = ( ie && browser.version < 9 ? '' : '') + - '' + - '' + - ( options.iframeCssUrl ? '' : '' ) + - (options.initialStyle ? '' : '') + - '' + - ''; - container.appendChild(domUtils.createElement(document, 'iframe', { - id: 'ueditor_' + me.uid, - width: "100%", - height: "100%", - frameborder: "0", - //先注释掉了,加的原因忘记了,但开启会直接导致全屏模式下内容多时不会出现滚动条 -// scrolling :'no', - src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain != location.hostname ? 'document.domain="' + document.domain + '";' : '') + - 'document.write("' + html + '");document.close();}())' - })); - container.style.overflow = 'hidden'; - //解决如果是给定的百分比,会导致高度算不对的问题 - setTimeout(function(){ - if( /%$/.test(options.initialFrameWidth)){ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - //如果这里给定宽度,会导致ie在拖动窗口大小时,编辑区域不随着变化 -// container.style.width = options.initialFrameWidth + 'px'; - } - if(/%$/.test(options.initialFrameHeight)){ - options.minFrameHeight = options.initialFrameHeight = container.offsetHeight; - container.style.height = options.initialFrameHeight + 'px'; - } - }) - } - }, - - /** - * 编辑器初始化 - * @method _setup - * @private - * @param { Element } doc 编辑器Iframe中的文档对象 - */ - _setup: function (doc) { - - var me = this, - options = me.options; - if (ie) { - doc.body.disabled = true; - doc.body.contentEditable = true; - doc.body.disabled = false; - } else { - doc.body.contentEditable = true; - } - doc.body.spellcheck = false; - me.document = doc; - me.window = doc.defaultView || doc.parentWindow; - me.iframe = me.window.frameElement; - me.body = doc.body; - me.selection = new dom.Selection(doc); - //gecko初始化就能得到range,无法判断isFocus了 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - this._initEvents(); - //为form提交提供一个隐藏的textarea - for (var form = this.iframe.parentNode; !domUtils.isBody(form); form = form.parentNode) { - if (form.tagName == 'FORM') { - me.form = form; - if(me.options.autoSyncData){ - domUtils.on(me.window,'blur',function(){ - setValue(form,me); - }); - }else{ - domUtils.on(form, 'submit', function () { - setValue(this, me); - }); - } - break; - } - } - if (options.initialContent) { - if (options.autoClearinitialContent) { - var oldExecCommand = me.execCommand; - me.execCommand = function () { - me.fireEvent('firstBeforeExecCommand'); - return oldExecCommand.apply(me, arguments); - }; - this._setDefaultContent(options.initialContent); - } else - this.setContent(options.initialContent, false, true); - } - - //编辑器不能为空内容 - - if (domUtils.isEmptyNode(me.body)) { - me.body.innerHTML = '

    ' + (browser.ie ? '' : '
    ') + '

    '; - } - //如果要求focus, 就把光标定位到内容开始 - if (options.focus) { - setTimeout(function () { - me.focus(me.options.focusInEnd); - //如果自动清除开着,就不需要做selectionchange; - !me.options.autoClearinitialContent && me._selectionChange(); - }, 0); - } - if (!me.container) { - me.container = this.iframe.parentNode; - } - if (options.fullscreen && me.ui) { - me.ui.setFullScreen(true); - } - - try { - me.document.execCommand('2D-position', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableInlineTableEditing', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableObjectResizing', false, false); - } catch (e) { - } - - //挂接快捷键 - me._bindshortcutKeys(); - me.isReady = 1; - me.fireEvent('ready'); - options.onready && options.onready.call(me); - if (!browser.ie9below) { - domUtils.on(me.window, ['blur', 'focus'], function (e) { - //chrome下会出现alt+tab切换时,导致选区位置不对 - if (e.type == 'blur') { - me._bakRange = me.selection.getRange(); - try { - me._bakNativeRange = me.selection.getNative().getRangeAt(0); - me.selection.getNative().removeAllRanges(); - } catch (e) { - me._bakNativeRange = null; - } - - } else { - try { - me._bakRange && me._bakRange.select(); - } catch (e) { - } - } - }); - } - //trace:1518 ff3.6body不够寛,会导致点击空白处无法获得焦点 - if (browser.gecko && browser.version <= 10902) { - //修复ff3.6初始化进来,不能点击获得焦点 - me.body.contentEditable = false; - setTimeout(function () { - me.body.contentEditable = true; - }, 100); - setInterval(function () { - me.body.style.height = me.iframe.offsetHeight - 20 + 'px' - }, 100) - } - - !options.isShow && me.setHide(); - options.readonly && me.setDisabled(); - }, - - /** - * 同步数据到编辑器所在的form - * 从编辑器的容器节点向上查找form元素,若找到,就同步编辑内容到找到的form里,为提交数据做准备,主要用于是手动提交的情况 - * 后台取得数据的键值,使用你容器上的name属性,如果没有就使用参数里的textarea项 - * @method sync - * @example - * ```javascript - * editor.sync(); - * form.sumbit(); //form变量已经指向了form元素 - * ``` - */ - - /** - * 根据传入的formId,在页面上查找要同步数据的表单,若找到,就同步编辑内容到找到的form里,为提交数据做准备 - * 后台取得数据的键值,该键值默认使用给定的编辑器容器的name属性,如果没有name属性则使用参数项里给定的“textarea”项 - * @method sync - * @param { String } formID 指定一个要同步数据的form的id,编辑器的数据会同步到你指定form下 - */ - sync: function (formId) { - var me = this, - form = formId ? document.getElementById(formId) : - domUtils.findParent(me.iframe.parentNode, function (node) { - return node.tagName == 'FORM' - }, true); - form && setValue(form, me); - }, - - /** - * 设置编辑器高度 - * @method setHeight - * @remind 当配置项autoHeightEnabled为真时,该方法无效 - * @param { Number } number 设置的高度值,纯数值,不带单位 - * @example - * ```javascript - * editor.setHeight(number); - * ``` - */ - setHeight: function (height,notSetHeight) { - if (height !== parseInt(this.iframe.parentNode.style.height)) { - this.iframe.parentNode.style.height = height + 'px'; - } - !notSetHeight && (this.options.minFrameHeight = this.options.initialFrameHeight = height); - this.body.style.height = height + 'px'; - !notSetHeight && this.trigger('setHeight') - }, - - /** - * 为编辑器的编辑命令提供快捷键 - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { Object } keyset 命令名和快捷键键值对对象,多个按钮的快捷键用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey({ - * "Bold" : "ctrl+66",//^B - * "Italic" : "ctrl+73", //^I - * }); - * ``` - */ - /** - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { String } cmd 触发快捷键时,响应的命令 - * @param { String } keys 快捷键的字符串,多个按钮用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey("Underline", "ctrl+85"); //^U - * ``` - */ - addshortcutkey: function (cmd, keys) { - var obj = {}; - if (keys) { - obj[cmd] = keys - } else { - obj = cmd; - } - utils.extend(this.shortcutkeys, obj) - }, - - /** - * 对编辑器设置keydown事件监听,绑定快捷键和命令,当快捷键组合触发成功,会响应对应的命令 - * @method _bindshortcutKeys - * @private - */ - _bindshortcutKeys: function () { - var me = this, shortcutkeys = this.shortcutkeys; - me.addListener('keydown', function (type, e) { - var keyCode = e.keyCode || e.which; - for (var i in shortcutkeys) { - var tmp = shortcutkeys[i].split(','); - for (var t = 0, ti; ti = tmp[t++];) { - ti = ti.split(':'); - var key = ti[0], param = ti[1]; - if (/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key)) { - if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0) - && (RegExp.$2 != "" ? e[RegExp.$2.slice(1) + "Key"] : 1) - && keyCode == RegExp.$3 - ) || - keyCode == RegExp.$1 - ) { - if (me.queryCommandState(i,param) != -1) - me.execCommand(i, param); - domUtils.preventDefault(e); - } - } - } - - } - }); - }, - - /** - * 获取编辑器的内容 - * @method getContent - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串, 如果编辑器的内容为空,或者是空的标签内容(如:”<p><br/></p>“), 则返回空字符串 - * @example - * ```javascript - * //编辑器html内容:

    123456

    - * var content = editor.getContent(); //返回值:

    123456

    - * ``` - */ - - /** - * 获取编辑器的内容。 可以通过参数定义编辑器内置的判空规则 - * @method getContent - * @param { Function } fn 自定的判空规则, 要求该方法返回一个boolean类型的值, - * 代表当前编辑器的内容是否空, - * 如果返回true, 则该方法将直接返回空字符串;如果返回false,则编辑器将返回 - * 经过内置过滤规则处理后的内容。 - * @remind 该方法在处理包含有初始化内容的时候能起到很好的作用。 - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串 - * @example - * ```javascript - * // editor 是一个编辑器的实例 - * var content = editor.getContent( function ( editor ) { - * return editor.body.innerHTML === '欢迎使用UEditor'; //返回空字符串 - * } ); - * ``` - */ - getContent: function (cmd, fn,notSetCursor,ignoreBlank,formatter) { - var me = this; - if (cmd && utils.isFunction(cmd)) { - fn = cmd; - cmd = ''; - } - if (fn ? !fn() : !this.hasContents()) { - return ''; - } - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML,ignoreBlank); - me.filterOutputRule(root); - me.fireEvent('aftergetcontent', cmd,root); - return root.toHtml(formatter); - }, - - /** - * 取得完整的html代码,可以直接显示成完整的html文档 - * @method getAllHtml - * @return { String } 编辑器的内容html文档字符串 - * @eaxmple - * ```javascript - * editor.getAllHtml(); //返回格式大致是: ...... - * ``` - */ - getAllHtml: function () { - var me = this, - headHtml = [], - html = ''; - me.fireEvent('getAllHtml', headHtml); - if (browser.ie && browser.version > 8) { - var headHtmlForIE9 = ''; - utils.each(me.document.styleSheets, function (si) { - headHtmlForIE9 += ( si.href ? '' : ''); - }); - utils.each(me.document.getElementsByTagName('script'), function (si) { - headHtmlForIE9 += si.outerHTML; - }); - - } - return '' + (me.options.charset ? '' : '') - + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\n') + '' - + '' + me.getContent(null, null, true) + ''; - }, - - /** - * 得到编辑器的纯文本内容,但会保留段落格式 - * @method getPlainTxt - * @return { String } 编辑器带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"1\n2\n - * ``` - */ - getPlainTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'), - html = this.body.innerHTML.replace(/[\n\r]/g, '');//ie要先去了\n在处理 - html = html.replace(/<(p|div)[^>]*>(| )<\/\1>/gi, '\n') - .replace(//gi, '\n') - .replace(/<[^>/]+>/g, '') - .replace(/(\n)?<\/([^>]+)>/g, function (a, b, c) { - return dtd.$block[c] ? '\n' : b ? b : ''; - }); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return html.replace(reg, '').replace(/\u00a0/g, ' ').replace(/ /g, ' '); - }, - - /** - * 获取编辑器中的纯文本内容,没有段落格式 - * @method getContentTxt - * @return { String } 编辑器不带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"12 - * ``` - */ - getContentTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\u00a0/g, ' '); - }, - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @example - * ```javascript - * editor.getContent('

    test

    '); - * ``` - */ - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @param { Boolean } isAppendTo 若传入true,不清空原来的内容,在最后插入内容,否则,清空内容再插入 - * @example - * ```javascript - * //假设设置前的编辑器内容是

    old text

    - * editor.setContent('

    new text

    ', true); //插入的结果是

    old text

    new text

    - * ``` - */ - setContent: function (html, isAppendTo, notFireSelectionchange) { - var me = this; - - me.fireEvent('beforesetcontent', html); - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - - me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html; - - - function isCdataDiv(node){ - return node.tagName == 'DIV' && node.getAttribute('cdata_tag'); - } - //给文本或者inline节点套p标签 - if (me.options.enterTag == 'p') { - - var child = this.body.firstChild, tmpNode; - if (!child || child.nodeType == 1 && - (dtd.$cdata[child.tagName] || isCdataDiv(child) || - domUtils.isCustomeNode(child) - ) - && child === this.body.lastChild) { - this.body.innerHTML = '

    ' + (browser.ie ? ' ' : '
    ') + '

    ' + this.body.innerHTML; - - } else { - var p = me.document.createElement('p'); - while (child) { - while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) { - tmpNode = child.nextSibling; - p.appendChild(child); - child = tmpNode; - } - if (p.firstChild) { - if (!child) { - me.body.appendChild(p); - break; - } else { - child.parentNode.insertBefore(p, child); - p = me.document.createElement('p'); - } - } - child = child.nextSibling; - } - } - } - me.fireEvent('aftersetcontent'); - me.fireEvent('contentchange'); - - !notFireSelectionchange && me._selectionChange(); - //清除保存的选区 - me._bakRange = me._bakIERange = me._bakNativeRange = null; - //trace:1742 setContent后gecko能得到焦点问题 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - if(me.options.autoSyncData){ - me.form && setValue(me.form,me); - } - }, - - /** - * 让编辑器获得焦点,默认focus到编辑器头部 - * @method focus - * @example - * ```javascript - * editor.focus() - * ``` - */ - - /** - * 让编辑器获得焦点,toEnd确定focus位置 - * @method focus - * @param { Boolean } toEnd 默认focus到编辑器头部,toEnd为true时focus到内容尾部 - * @example - * ```javascript - * editor.focus(true) - * ``` - */ - focus: function (toEnd) { - try { - var me = this, - rng = me.selection.getRange(); - if (toEnd) { - var node = me.body.lastChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - if(domUtils.isEmptyBlock(node)){ - rng.setStartAtFirst(node) - }else{ - rng.setStartAtLast(node) - } - rng.collapse(true); - } - rng.setCursor(true); - } else { - if(!rng.collapsed && domUtils.isBody(rng.startContainer) && rng.startOffset == 0){ - - var node = me.body.firstChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - rng.setStartAtFirst(node).collapse(true); - } - } - - rng.select(true); - - } - this.fireEvent('focus selectionchange'); - } catch (e) { - } - - }, - isFocus:function(){ - return this.selection.isFocus(); - }, - blur:function(){ - var sel = this.selection.getNative(); - if(sel.empty && browser.ie){ - var nativeRng = document.body.createTextRange(); - nativeRng.moveToElementText(document.body); - nativeRng.collapse(true); - nativeRng.select(); - sel.empty() - }else{ - sel.removeAllRanges() - } - - //this.fireEvent('blur selectionchange'); - }, - /** - * 初始化UE事件及部分事件代理 - * @method _initEvents - * @private - */ - _initEvents: function () { - var me = this, - doc = me.document, - win = me.window; - me._proxyDomEvent = utils.bind(me._proxyDomEvent, me); - domUtils.on(doc, ['click', 'contextmenu', 'mousedown', 'keydown', 'keyup', 'keypress', 'mouseup', 'mouseover', 'mouseout', 'selectstart'], me._proxyDomEvent); - domUtils.on(win, ['focus', 'blur'], me._proxyDomEvent); - domUtils.on(me.body,'drop',function(e){ - //阻止ff下默认的弹出新页面打开图片 - if(browser.gecko && e.stopPropagation) { e.stopPropagation(); } - me.fireEvent('contentchange') - }); - domUtils.on(doc, ['mouseup', 'keydown'], function (evt) { - //特殊键不触发selectionchange - if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) { - return; - } - if (evt.button == 2)return; - me._selectionChange(250, evt); - }); - }, - /** - * 触发事件代理 - * @method _proxyDomEvent - * @private - * @return { * } fireEvent的返回值 - * @see UE.EventBase:fireEvent(String) - */ - _proxyDomEvent: function (evt) { - if(this.fireEvent('before' + evt.type.replace(/^on/, '').toLowerCase()) === false){ - return false; - } - if(this.fireEvent(evt.type.replace(/^on/, ''), evt) === false){ - return false; - } - return this.fireEvent('after' + evt.type.replace(/^on/, '').toLowerCase()) - }, - /** - * 变化选区 - * @method _selectionChange - * @private - */ - _selectionChange: function (delay, evt) { - var me = this; - //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题(source命令notNeedUndo=1) -// if ( !me.selection.isFocus() ){ -// return; -// } - - - var hackForMouseUp = false; - var mouseX, mouseY; - if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') { - var range = this.selection.getRange(); - if (!range.collapsed) { - hackForMouseUp = true; - mouseX = evt.clientX; - mouseY = evt.clientY; - } - } - clearTimeout(_selectionChangeTimer); - _selectionChangeTimer = setTimeout(function () { - if (!me.selection || !me.selection.getNative()) { - return; - } - //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时,可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值. - //IE下如果用户是拖拽一段已选择文本,则不会触发mouseup事件,所以这里的特殊处理不会对其有影响 - var ieRange; - if (hackForMouseUp && me.selection.getNative().type == 'None') { - ieRange = me.document.body.createTextRange(); - try { - ieRange.moveToPoint(mouseX, mouseY); - } catch (ex) { - ieRange = null; - } - } - var bakGetIERange; - if (ieRange) { - bakGetIERange = me.selection.getIERange; - me.selection.getIERange = function () { - return ieRange; - }; - } - me.selection.cache(); - if (bakGetIERange) { - me.selection.getIERange = bakGetIERange; - } - if (me.selection._cachedRange && me.selection._cachedStartElement) { - me.fireEvent('beforeselectionchange'); - // 第二个参数causeByUi为true代表由用户交互造成的selectionchange. - me.fireEvent('selectionchange', !!evt); - me.fireEvent('afterselectionchange'); - me.selection.clear(); - } - }, delay || 50); - }, - - /** - * 执行编辑命令 - * @method _callCmdFn - * @private - * @param { String } fnName 函数名称 - * @param { * } args 传给命令函数的参数 - * @return { * } 返回命令函数运行的返回值 - */ - _callCmdFn: function (fnName, args) { - var cmdName = args[0].toLowerCase(), - cmd, cmdFn; - cmd = this.commands[cmdName] || UE.commands[cmdName]; - cmdFn = cmd && cmd[fnName]; - //没有querycommandstate或者没有command的都默认返回0 - if ((!cmd || !cmdFn) && fnName == 'queryCommandState') { - return 0; - } else if (cmdFn) { - return cmdFn.apply(this, args); - } - }, - - /** - * 执行编辑命令cmdName,完成富文本编辑效果 - * @method execCommand - * @param { String } cmdName 需要执行的命令 - * @remind 具体命令的使用请参考命令列表 - * @return { * } 返回命令函数运行的返回值 - * @example - * ```javascript - * editor.execCommand(cmdName); - * ``` - */ - execCommand: function (cmdName) { - cmdName = cmdName.toLowerCase(); - var me = this, - result, - cmd = me.commands[cmdName] || UE.commands[cmdName]; - if (!cmd || !cmd.execCommand) { - return null; - } - if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - if (me.queryCommandState.apply(me,arguments) != -1) { - me.fireEvent('saveScene'); - me.fireEvent.apply(me, ['beforeexeccommand', cmdName].concat(arguments)); - result = this._callCmdFn('execCommand', arguments); - //保存场景时,做了内容对比,再看是否进行contentchange触发,这里多触发了一次,去掉 -// (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange'); - me.fireEvent.apply(me, ['afterexeccommand', cmdName].concat(arguments)); - me.fireEvent('saveScene'); - } - me.__hasEnterExecCommand = false; - } else { - result = this._callCmdFn('execCommand', arguments); - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange') - } - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange(); - return result; - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,返回命令的状态 - * @method queryCommandState - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @return { Number } number 返回放前命令的状态,返回值三种情况:(-1|0|1) - * @example - * ```javascript - * editor.queryCommandState(cmdName) => (-1|0|1) - * ``` - * @see COMMAND.LIST - */ - queryCommandState: function (cmdName) { - return this._callCmdFn('queryCommandState', arguments); - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,根据命令返回相关的值 - * @method queryCommandValue - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @remind 只有部分插件有此方法 - * @return { * } 返回每个命令特定的当前状态值 - * @grammar editor.queryCommandValue(cmdName) => {*} - * @see COMMAND.LIST - */ - queryCommandValue: function (cmdName) { - return this._callCmdFn('queryCommandValue', arguments); - }, - - /** - * 检查编辑区域中是否有内容 - * @method hasContents - * @remind 默认有文本内容,或者有以下节点都不认为是空 - * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param - * @return { Boolean } 检查有内容返回true,否则返回false - * @example - * ```javascript - * editor.hasContents() - * ``` - */ - - /** - * 检查编辑区域中是否有内容,若包含参数tags中的节点类型,直接返回true - * @method hasContents - * @param { Array } tags 传入数组判断时用到的节点类型 - * @return { Boolean } 若文档中包含tags数组里对应的tag,返回true,否则返回false - * @example - * ```javascript - * editor.hasContents(['span']); - * ``` - */ - hasContents: function (tags) { - if (tags) { - for (var i = 0, ci; ci = tags[i++];) { - if (this.document.getElementsByTagName(ci).length > 0) { - return true; - } - } - } - if (!domUtils.isEmptyBlock(this.body)) { - return true - } - //随时添加,定义的特殊标签如果存在,不能认为是空 - tags = ['div']; - for (i = 0; ci = tags[i++];) { - var nodes = domUtils.getElementsByTagName(this.document, ci); - for (var n = 0, cn; cn = nodes[n++];) { - if (domUtils.isCustomeNode(cn)) { - return true; - } - } - } - return false; - }, - - /** - * 重置编辑器,可用来做多个tab使用同一个编辑器实例 - * @method reset - * @remind 此方法会清空编辑器内容,清空回退列表,会触发reset事件 - * @example - * ```javascript - * editor.reset() - * ``` - */ - reset: function () { - this.fireEvent('reset'); - }, - - /** - * 设置当前编辑区域可以编辑 - * @method setEnabled - * @example - * ```javascript - * editor.setEnabled() - * ``` - */ - setEnabled: function () { - var me = this, range; - if (me.body.contentEditable == 'false') { - me.body.contentEditable = true; - range = me.selection.getRange(); - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - range.select(true); - if (me.bkqueryCommandState) { - me.queryCommandState = me.bkqueryCommandState; - delete me.bkqueryCommandState; - } - if (me.bkqueryCommandValue) { - me.queryCommandValue = me.bkqueryCommandValue; - delete me.bkqueryCommandValue; - } - me.fireEvent('selectionchange'); - } - }, - enable: function () { - return this.setEnabled(); - }, - - /** 设置当前编辑区域不可编辑 - * @method setDisabled - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { String } except 例外命令的字符串 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled('bold'); //禁用工具栏中除加粗之外的所有功能 - * ``` - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { Array } except 例外命令的字符串数组,数组中的命令仍然可以执行 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled(['bold','insertimage']); //禁用工具栏中除加粗和插入图片之外的所有功能 - * ``` - */ - setDisabled: function (except) { - var me = this; - except = except ? utils.isArray(except) ? except : [except] : []; - if (me.body.contentEditable == 'true') { - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.body.contentEditable = false; - me.bkqueryCommandState = me.queryCommandState; - me.bkqueryCommandValue = me.queryCommandValue; - me.queryCommandState = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandState.apply(me, arguments); - } - return -1; - }; - me.queryCommandValue = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandValue.apply(me, arguments); - } - return null; - }; - me.fireEvent('selectionchange'); - } - }, - disable: function (except) { - return this.setDisabled(except); - }, - - /** - * 设置默认内容 - * @method _setDefaultContent - * @private - * @param { String } cont 要存入的内容 - */ - _setDefaultContent: function () { - function clear() { - var me = this; - if (me.document.getElementById('initContent')) { - me.body.innerHTML = '

    ' + (ie ? '' : '
    ') + '

    '; - me.removeListener('firstBeforeExecCommand focus', clear); - setTimeout(function () { - me.focus(); - me._selectionChange(); - }, 0) - } - } - - return function (cont) { - var me = this; - me.body.innerHTML = '

    ' + cont + '

    '; - - me.addListener('firstBeforeExecCommand focus', clear); - } - }(), - - /** - * 显示编辑器 - * @method setShow - * @example - * ```javascript - * editor.setShow() - * ``` - */ - setShow: function () { - var me = this, range = me.selection.getRange(); - if (me.container.style.display == 'none') { - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - //ie下focus实效,所以做了个延迟 - setTimeout(function () { - range.select(true); - }, 100); - me.container.style.display = ''; - } - - }, - show: function () { - return this.setShow(); - }, - /** - * 隐藏编辑器 - * @method setHide - * @example - * ```javascript - * editor.setHide() - * ``` - */ - setHide: function () { - var me = this; - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.container.style.display = 'none' - }, - hide: function () { - return this.setHide(); - }, - - /** - * 根据指定的路径,获取对应的语言资源 - * @method getLang - * @param { String } path 路径根据的是lang目录下的语言文件的路径结构 - * @return { Object | String } 根据路径返回语言资源的Json格式对象或者语言字符串 - * @example - * ```javascript - * editor.getLang('contextMenu.delete'); //如果当前是中文,那返回是的是'删除' - * ``` - */ - getLang: function (path) { - // HaoChuan9421 - if(!this.options){ - return ''; - } - var lang = UE.I18N[this.options.lang]; - if (!lang) { - throw Error("not import language file"); - } - path = (path || "").split("."); - for (var i = 0, ci; ci = path[i++];) { - lang = lang[ci]; - if (!lang)break; - } - return lang; - }, - - /** - * 计算编辑器html内容字符串的长度 - * @method getContentLength - * @return { Number } 返回计算的长度 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回27 - * ``` - */ - /** - * 计算编辑器当前纯文本内容的长度 - * @method getContentLength - * @param { Boolean } ingoneHtml 传入true时,只按照纯文本来计算 - * @return { Number } 返回计算的长度,内容中有hr/img/iframe标签,长度加1 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回3 - * ``` - */ - getContentLength: function (ingoneHtml, tagNames) { - var count = this.getContent(false,false,true).length; - if (ingoneHtml) { - tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']); - count = this.getContentTxt().replace(/[\t\r\n]+/g, '').length; - for (var i = 0, ci; ci = tagNames[i++];) { - count += this.document.getElementsByTagName(ci).length; - } - } - return count; - }, - - /** - * 注册输入过滤规则 - * @method addInputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addInputRule(function(root){ - * $.each(root.getNodesByTagName('div'),function(i,node){ - * node.tagName="p"; - * }); - * }); - * ``` - */ - addInputRule: function (rule) { - this.inputRules.push(rule); - }, - - /** - * 执行注册的过滤规则 - * @method filterInputRule - * @param { UE.uNode } root 要过滤的uNode节点 - * @remind 执行editor.setContent方法和执行'inserthtml'命令后,会运行该过滤函数 - * @example - * ```javascript - * editor.filterInputRule(editor.body); - * ``` - * @see UE.Editor:addInputRule - */ - filterInputRule: function (root) { - for (var i = 0, ci; ci = this.inputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 注册输出过滤规则 - * @method addOutputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addOutputRule(function(root){ - * $.each(root.getNodesByTagName('p'),function(i,node){ - * node.tagName="div"; - * }); - * }); - * ``` - */ - addOutputRule: function (rule) { - this.outputRules.push(rule) - }, - - /** - * 根据输出过滤规则,过滤编辑器内容 - * @method filterOutputRule - * @remind 执行editor.getContent方法的时候,会先运行该过滤函数 - * @param { UE.uNode } root 要过滤的uNode节点 - * @example - * ```javascript - * editor.filterOutputRule(editor.body); - * ``` - * @see UE.Editor:addOutputRule - */ - filterOutputRule: function (root) { - for (var i = 0, ci; ci = this.outputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 根据action名称获取请求的路径 - * @method getActionUrl - * @remind 假如没有设置serverUrl,会根据imageUrl设置默认的controller路径 - * @param { String } action action名称 - * @example - * ```javascript - * editor.getActionUrl('config'); //返回 "/ueditor/php/controller.php?action=config" - * editor.getActionUrl('image'); //返回 "/ueditor/php/controller.php?action=uplaodimage" - * editor.getActionUrl('scrawl'); //返回 "/ueditor/php/controller.php?action=uplaodscrawl" - * editor.getActionUrl('imageManager'); //返回 "/ueditor/php/controller.php?action=listimage" - * ``` - */ - getActionUrl: function(action){ - var actionName = this.getOpt(action) || action, - imageUrl = this.getOpt('imageUrl'), - serverUrl = this.getOpt('serverUrl'); - - if(!serverUrl && imageUrl) { - serverUrl = imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2'); - } - - if(serverUrl) { - serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?':'&') + 'action=' + (actionName || ''); - return utils.formatUrl(serverUrl); - } else { - return ''; - } - } - }; - utils.inherits(Editor, EventBase); -})(); - - -// core/Editor.defaultoptions.js -//维护编辑器一下默认的不在插件中的配置项 -UE.Editor.defaultOptions = function(editor){ - - var _url = editor.options.UEDITOR_HOME_URL; - return { - isShow: true, - initialContent: '', - initialStyle:'', - autoClearinitialContent: false, - iframeCssUrl: _url + 'themes/iframe.css', - textarea: 'editorValue', - focus: false, - focusInEnd: true, - autoClearEmptyNode: true, - fullscreen: false, - readonly: false, - zIndex: 999, - imagePopup: true, - enterTag: 'p', - customDomain: false, - lang: 'zh-cn', - langPath: _url + 'lang/', - theme: 'default', - themePath: _url + 'themes/', - allHtmlEnabled: false, - scaleEnabled: false, - tableNativeEditInFF: false, - autoSyncData : true, - fileNameFormat: '{time}{rand:6}' - } -}; - -// core/loadconfig.js -(function(){ - - UE.Editor.prototype.loadServerConfig = function(){ - var me = this; - setTimeout(function(){ - try{ - me.options.imageUrl && me.setOpt('serverUrl', me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2')); - - var configUrl = me.getActionUrl('config'), - isJsonp = utils.isCrossDomainUrl(configUrl); - - /* 发出ajax请求 */ - me._serverConfigLoaded = false; - - configUrl && UE.ajax.request(configUrl,{ - 'method': 'GET', - 'dataType': isJsonp ? 'jsonp':'', - 'onsuccess':function(r){ - try { - var config = isJsonp ? r:eval("("+r.responseText+")"); - utils.extend(me.options, config); - me.fireEvent('serverConfigLoaded'); - me._serverConfigLoaded = true; - } catch (e) { - showErrorMsg(me.getLang('loadconfigFormatError')); - } - }, - 'onerror':function(){ - showErrorMsg(me.getLang('loadconfigHttpError')); - } - }); - } catch(e){ - showErrorMsg(me.getLang('loadconfigError')); - } - }); - - function showErrorMsg(msg) { - console && console.error(msg); - //me.fireEvent('showMessage', { - // 'title': msg, - // 'type': 'error' - //}); - } - }; - - UE.Editor.prototype.isServerConfigLoaded = function(){ - var me = this; - return me._serverConfigLoaded || false; - }; - - UE.Editor.prototype.afterConfigReady = function(handler){ - if (!handler || !utils.isFunction(handler)) return; - var me = this; - var readyHandler = function(){ - handler.apply(me, arguments); - me.removeListener('serverConfigLoaded', readyHandler); - }; - - if (me.isServerConfigLoaded()) { - handler.call(me, 'serverConfigLoaded'); - } else { - me.addListener('serverConfigLoaded', readyHandler); - } - }; - -})(); - - -// core/ajax.js -/** - * @file - * @module UE.ajax - * @since 1.2.6.1 - */ - -/** - * 提供对ajax请求的支持 - * @module UE.ajax - */ -UE.ajax = function() { - - //创建一个ajaxRequest对象 - var fnStr = 'XMLHttpRequest()'; - try { - new ActiveXObject("Msxml2.XMLHTTP"); - fnStr = 'ActiveXObject(\'Msxml2.XMLHTTP\')'; - } catch (e) { - try { - new ActiveXObject("Microsoft.XMLHTTP"); - fnStr = 'ActiveXObject(\'Microsoft.XMLHTTP\')' - } catch (e) { - } - } - var creatAjaxRequest = new Function('return new ' + fnStr); - - - /** - * 将json参数转化成适合ajax提交的参数列表 - * @param json - */ - function json2str(json) { - var strArr = []; - for (var i in json) { - //忽略默认的几个参数 - if(i=="method" || i=="timeout" || i=="async" || i=="dataType" || i=="callback") continue; - //忽略控制 - if(json[i] == undefined || json[i] == null) continue; - //传递过来的对象和函数不在提交之列 - if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) { - strArr.push( encodeURIComponent(i) + "="+encodeURIComponent(json[i]) ); - } else if (utils.isArray(json[i])) { - //支持传数组内容 - for(var j = 0; j < json[i].length; j++) { - strArr.push( encodeURIComponent(i) + "[]="+encodeURIComponent(json[i][j]) ); - } - } - } - return strArr.join("&"); - } - - function doAjax(url, ajaxOptions) { - var xhr = creatAjaxRequest(), - //是否超时 - timeIsOut = false, - //默认参数 - defaultAjaxOptions = { - method:"POST", - timeout:5000, - async:true, - data:{},//需要传递对象的话只能覆盖 - onsuccess:function() { - }, - onerror:function() { - } - }; - - if (typeof url === "object") { - ajaxOptions = url; - url = ajaxOptions.url; - } - if (!xhr || !url) return; - var ajaxOpts = ajaxOptions ? utils.extend(defaultAjaxOptions,ajaxOptions) : defaultAjaxOptions; - - var submitStr = json2str(ajaxOpts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(ajaxOpts.data)){ - submitStr += (submitStr? "&":"") + json2str(ajaxOpts.data); - } - //超时检测 - var timerID = setTimeout(function() { - if (xhr.readyState != 4) { - timeIsOut = true; - xhr.abort(); - clearTimeout(timerID); - } - }, ajaxOpts.timeout); - - var method = ajaxOpts.method.toUpperCase(); - var str = url + (url.indexOf("?")==-1?"?":"&") + (method=="POST"?"":submitStr+ "&noCache=" + +new Date); - xhr.open(method, str, ajaxOpts.async); - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - if (!timeIsOut && xhr.status == 200) { - ajaxOpts.onsuccess(xhr); - } else { - ajaxOpts.onerror(xhr); - } - } - }; - if (method == "POST") { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - xhr.send(submitStr); - } else { - xhr.send(null); - } - } - - function doJsonp(url, opts) { - - var successhandler = opts.onsuccess || function(){}, - scr = document.createElement('SCRIPT'), - options = opts || {}, - charset = options['charset'], - callbackField = options['jsonp'] || 'callback', - callbackFnName, - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + callbackField + '=([^&]*)'), - matches; - - if (utils.isFunction(successhandler)) { - callbackFnName = 'bd__editor__' + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackFnName] = getCallBack(0); - } else if(utils.isString(successhandler)){ - callbackFnName = successhandler; - } else { - if (matches = reg.exec(url)) { - callbackFnName = matches[2]; - } - } - - url = url.replace(reg, '\x241' + callbackField + '=' + callbackFnName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + callbackField + '=' + callbackFnName; - } - - var queryStr = json2str(opts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(opts.data)){ - queryStr += (queryStr? "&":"") + json2str(opts.data); - } - if (queryStr) { - url = url.replace(/\?/, '?' + queryStr + '&'); - } - - scr.onerror = getCallBack(1); - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - createScriptTag(scr, url, charset); - - function createScriptTag(scr, url, charset) { - scr.setAttribute('type', 'text/javascript'); - scr.setAttribute('defer', 'defer'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); - } - - function getCallBack(onTimeOut){ - return function(){ - try { - if(onTimeOut){ - options.onerror && options.onerror(); - }else{ - try{ - clearTimeout(timer); - successhandler.apply(window, arguments); - } catch (e){} - } - } catch (exception) { - options.onerror && options.onerror.call(window, exception); - } finally { - options.oncomplete && options.oncomplete.apply(window, arguments); - scr.parentNode && scr.parentNode.removeChild(scr); - window[callbackFnName] = null; - try { - delete window[callbackFnName]; - }catch(e){} - } - } - } - } - - return { - /** - * 根据给定的参数项,向指定的url发起一个ajax请求。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调 - * @method request - * @param { URLString } url ajax请求的url地址 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * //向sayhello.php发起一个异步的Ajax GET请求, 请求超时时间为10s, 请求完成后执行相应的回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求方法。可选值: 'GET', 'POST',默认值是'POST' - * method: 'GET', - * - * //超时时间。 默认为5000, 单位是ms - * timeout: 10000, - * - * //是否是异步请求。 true为异步请求, false为同步请求 - * async: true, - * - * //请求携带的数据。如果请求为GET请求, data会经过stringify后附加到请求url之后。 - * data: { - * name: 'ueditor' - * }, - * - * //请求成功后的回调, 该回调接受当前的XMLHttpRequest对象作为参数。 - * onsuccess: function ( xhr ) { - * console.log( xhr.responseText ); - * }, - * - * //请求失败或者超时后的回调。 - * onerror: function ( xhr ) { - * alert( 'Ajax请求失败' ); - * } - * - * } ); - * ``` - */ - - /** - * 根据给定的参数项发起一个ajax请求, 参数项里必须包含一个url地址。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调。 - * @method request - * @warning 如果在参数项里未提供一个key为“url”的地址值,则该请求将直接退出。 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * - * //向sayhello.php发起一个异步的Ajax POST请求, 请求超时时间为5s, 请求完成后不执行任何回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求的地址, 该项是必须的。 - * url: 'sayhello.php' - * - * } ); - * ``` - */ - request:function(url, opts) { - if (opts && opts.dataType == 'jsonp') { - doJsonp(url, opts); - } else { - doAjax(url, opts); - } - }, - getJSONP:function(url, data, fn) { - var opts = { - 'data': data, - 'oncomplete': fn - }; - doJsonp(url, opts); - } - }; - - -}(); - - -// core/filterword.js -/** - * UE过滤word的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入html字符串过滤word - * @module UE - * @since 1.2.6.1 - * @method filterWord - * @param { String } html html字符串 - * @return { String } 已过滤后的结果字符串 - * @example - * ```javascript - * UE.filterWord(html); - * ``` - */ -var filterWord = UE.filterWord = function () { - - //是否是word过来的内容 - function isWordDocument( str ) { - return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/ig.test( str ); - } - //去掉小数 - function transUnit( v ) { - v = v.replace( /[\d.]+\w+/g, function ( m ) { - return utils.transUnitToPx(m); - } ); - return v; - } - - function filterPasteWord( str ) { - return str.replace(/[\t\r\n]+/g,' ') - .replace( //ig, "" ) - //转换图片 - .replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(str){ - //opera能自己解析出image所这里直接返回空 - if(browser.opera){ - return ''; - } - try{ - //有可能是bitmap占为图,无用,直接过滤掉,主要体现在粘贴excel表格中 - if(/Bitmap/i.test(str)){ - return ''; - } - var width = str.match(/width:([ \d.]*p[tx])/i)[1], - height = str.match(/height:([ \d.]*p[tx])/i)[1], - src = str.match(/src=\s*"([^"]*)"/i)[1]; - return ''; - } catch(e){ - return ''; - } - }) - //针对wps添加的多余标签处理 - .replace(/<\/?div[^>]*>/g,'') - //去掉多余的属性 - .replace( /v:\w+=(["']?)[^'"]+\1/g, '' ) - .replace( /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi, "" ) - .replace( /

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

    $1

    " ) - //去掉多余的属性 - .replace( /\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/ig, function(str,name,marks,val){ - //保留list的标示 - return name == 'class' && val == 'MsoListParagraph' ? str : '' - }) - //清除多余的font/span不能匹配 有可能是空格 - .replace( /<(font|span)[^>]*>(\s*)<\/\1>/gi, function(a,b,c){ - return c.replace(/[\t\r\n ]+/g,' ') - }) - //处理style的问题 - .replace( /(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, function( str, tag, tmp, style ) { - var n = [], - s = style.replace( /^\s+|\s+$/, '' ) - .replace(/'/g,'\'') - .replace( /"/gi, "'" ) - .replace(/[\d.]+(cm|pt)/g,function(str){ - return utils.transUnitToPx(str) - }) - .split( /;\s*/g ); - - for ( var i = 0,v; v = s[i];i++ ) { - - var name, value, - parts = v.split( ":" ); - - if ( parts.length == 2 ) { - name = parts[0].toLowerCase(); - value = parts[1].toLowerCase(); - if(/^(background)\w*/.test(name) && value.replace(/(initial|\s)/g,'').length == 0 - || - /^(margin)\w*/.test(name) && /^0\w+$/.test(value) - ){ - continue; - } - - switch ( name ) { - case "mso-padding-alt": - case "mso-padding-top-alt": - case "mso-padding-right-alt": - case "mso-padding-bottom-alt": - case "mso-padding-left-alt": - case "mso-margin-alt": - case "mso-margin-top-alt": - case "mso-margin-right-alt": - case "mso-margin-bottom-alt": - case "mso-margin-left-alt": - //ie下会出现挤到一起的情况 - //case "mso-table-layout-alt": - case "mso-height": - case "mso-width": - case "mso-vertical-align-alt": - //trace:1819 ff下会解析出padding在table上 - if(!/]/.test(html)) { - return UE.htmlparser(html).children[0] - } else { - return new uNode({ - type:'element', - children:[], - tagName:html - }) - } - }; - uNode.createText = function (data,noTrans) { - return new UE.uNode({ - type:'text', - 'data':noTrans ? data : utils.unhtml(data || '') - }) - }; - function nodeToHtml(node, arr, formatter, current) { - switch (node.type) { - case 'root': - for (var i = 0, ci; ci = node.children[i++];) { - //插入新行 - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current, true); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - break; - case 'text': - isText(node, arr); - break; - case 'element': - isElement(node, arr, formatter, current); - break; - case 'comment': - isComment(node, arr, formatter); - } - return arr; - } - - function isText(node, arr) { - if(node.parentNode.tagName == 'pre'){ - //源码模式下输入html标签,不能做转换处理,直接输出 - arr.push(node.data) - }else{ - arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,'  ')) - } - - } - - function isElement(node, arr, formatter, current) { - var attrhtml = ''; - if (node.attrs) { - attrhtml = []; - var attrs = node.attrs; - for (var a in attrs) { - //这里就针对 - //

    '

    - //这里边的\"做转换,要不用innerHTML直接被截断了,属性src - //有可能做的不够 - attrhtml.push(a + (attrs[a] !== undefined ? '="' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(/["]/g, function (a) { - return '"' - }) : utils.unhtml(attrs[a])) + '"' : '')) - } - attrhtml = attrhtml.join(' '); - } - arr.push('<' + node.tagName + - (attrhtml ? ' ' + attrhtml : '') + - (dtd.$empty[node.tagName] ? '\/' : '' ) + '>' - ); - //插入新行 - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - if(node.children && node.children.length){ - current = insertLine(arr, current, true); - insertIndent(arr, current) - } - - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - } - if (!dtd.$empty[node.tagName]) { - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - - if(node.children && node.children.length){ - current = insertLine(arr, current); - insertIndent(arr, current) - } - } - arr.push('<\/' + node.tagName + '>'); - } - - } - - function isComment(node, arr) { - arr.push(''); - } - - function getNodeById(root, id) { - var node; - if (root.type == 'element' && root.getAttr('id') == id) { - return root; - } - if (root.children && root.children.length) { - for (var i = 0, ci; ci = root.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - } - - function getNodesByTagName(node, tagName, arr) { - if (node.type == 'element' && node.tagName == tagName) { - arr.push(node); - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - } - function nodeTraversal(root,fn){ - if(root.children && root.children.length){ - for(var i= 0,ci;ci=root.children[i];){ - nodeTraversal(ci,fn); - //ci被替换的情况,这里就不再走 fn了 - if(ci.parentNode ){ - if(ci.children && ci.children.length){ - fn(ci) - } - if(ci.parentNode) i++ - } - } - }else{ - fn(root) - } - - } - uNode.prototype = { - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml(); - * ``` - */ - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @param { Boolean } formatter 是否格式化返回值 - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml( true ); - * ``` - */ - toHtml:function (formatter) { - var arr = []; - nodeToHtml(this, arr, formatter, 0); - return arr.join('') - }, - - /** - * 获取节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的html内容 - * @example - * ```javascript - * var htmlstr = node.innerHTML(); - * ``` - */ - - /** - * 设置节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } htmlstr 传入要设置的html内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerHTML('text'); - * ``` - */ - innerHTML:function (htmlstr) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (utils.isString(htmlstr)) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - var tmpRoot = UE.htmlparser(htmlstr); - for (var i = 0, ci; ci = tmpRoot.children[i++];) { - this.children.push(ci); - ci.parentNode = this; - } - return this; - } else { - var tmpRoot = new UE.uNode({ - type:'root', - children:this.children - }); - return tmpRoot.toHtml(); - } - }, - - /** - * 获取节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的存文本内容 - * @example - * ```javascript - * var textStr = node.innerText(); - * ``` - */ - - /** - * 设置节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } textStr 传入要设置的文本内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerText('text'); - * ``` - */ - innerText:function (textStr,noTrans) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (textStr) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - this.appendChild(uNode.createText(textStr,noTrans)); - return this; - } else { - return this.toHtml().replace(/<[^>]+>/g, ''); - } - }, - - /** - * 获取当前对象的data属性 - * @method getData - * @return { Object } 若节点的type值是elemenet,返回空字符串,否则返回节点的data属性 - * @example - * ```javascript - * node.getData(); - * ``` - */ - getData:function () { - if (this.type == 'element') - return ''; - return this.data - }, - - /** - * 获取当前节点下的第一个子节点 - * @method firstChild - * @return { UE.uNode } 返回第一个子节点 - * @example - * ```javascript - * node.firstChild(); //返回第一个子节点 - * ``` - */ - firstChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName]) { -// return this; -// } - return this.children ? this.children[0] : null; - }, - - /** - * 获取当前节点下的最后一个子节点 - * @method lastChild - * @return { UE.uNode } 返回最后一个子节点 - * @example - * ```javascript - * node.lastChild(); //返回最后一个子节点 - * ``` - */ - lastChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName] ) { -// return this; -// } - return this.children ? this.children[this.children.length - 1] : null; - }, - - /** - * 获取和当前节点有相同父亲节点的前一个节点 - * @method previousSibling - * @return { UE.uNode } 返回前一个节点 - * @example - * ```javascript - * node.children[2].previousSibling(); //返回子节点node.children[1] - * ``` - */ - previousSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i]; i++) { - if (ci === this) { - return i == 0 ? null : parent.children[i-1]; - } - } - - }, - - /** - * 获取和当前节点有相同父亲节点的后一个节点 - * @method nextSibling - * @return { UE.uNode } 返回后一个节点,找不到返回null - * @example - * ```javascript - * node.children[2].nextSibling(); //如果有,返回子节点node.children[3] - * ``` - */ - nextSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i++];) { - if (ci === this) { - return parent.children[i]; - } - } - }, - - /** - * 用新的节点替换当前节点 - * @method replaceChild - * @param { UE.uNode } target 要替换成该节点参数 - * @param { UE.uNode } source 要被替换掉的节点 - * @return { UE.uNode } 返回替换之后的节点对象 - * @example - * ```javascript - * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点 - * ``` - */ - replaceChild:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 1, target); - source.parentNode = null; - target.parentNode = this; - return target; - } - } - } - }, - - /** - * 在节点的子节点列表最后位置插入一个节点 - * @method appendChild - * @param { UE.uNode } node 要插入的节点 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.appendChild( newNode ); //在node内插入子节点newNode - * ``` - */ - appendChild:function (node) { - if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) { - if (!this.children) { - this.children = [] - } - if(node.parentNode){ - node.parentNode.removeChild(node); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - break; - } - } - this.children.push(node); - node.parentNode = this; - return node; - } - - - }, - - /** - * 在传入节点的前面插入一个节点 - * @method insertBefore - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点前面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertBefore:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 0, target); - target.parentNode = this; - return target; - } - } - - } - }, - - /** - * 在传入节点的后面插入一个节点 - * @method insertAfter - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点后面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertAfter:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i + 1, 0, target); - target.parentNode = this; - return target; - } - - } - } - }, - - /** - * 从当前节点的子节点列表中,移除节点 - * @method removeChild - * @param { UE.uNode } node 要移除的节点引用 - * @param { Boolean } keepChildren 是否保留移除节点的子节点,若传入true,自动把移除节点的子节点插入到移除的位置 - * @return { * } 返回刚移除的子节点 - * @example - * ```javascript - * node.removeChild(childNode,true); //在node的子节点列表中移除child节点,并且吧child的子节点插入到移除的位置 - * ``` - */ - removeChild:function (node,keepChildren) { - if (this.children) { - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - ci.parentNode = null; - if(keepChildren && ci.children && ci.children.length){ - for(var j= 0,cj;cj=ci.children[j];j++){ - this.children.splice(i+j,0,cj); - cj.parentNode = this; - - } - } - return ci; - } - } - } - }, - - /** - * 获取当前节点所代表的元素属性,即获取attrs对象下的属性值 - * @method getAttr - * @param { String } attrName 要获取的属性名称 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.getAttr('title'); - * ``` - */ - getAttr:function (attrName) { - return this.attrs && this.attrs[attrName.toLowerCase()] - }, - - /** - * 设置当前节点所代表的元素属性,即设置attrs对象下的属性值 - * @method setAttr - * @param { String } attrName 要设置的属性名称 - * @param { * } attrVal 要设置的属性值,类型视设置的属性而定 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.setAttr('title','标题'); - * ``` - */ - setAttr:function (attrName, attrVal) { - if (!attrName) { - delete this.attrs; - return; - } - if(!this.attrs){ - this.attrs = {}; - } - if (utils.isObject(attrName)) { - for (var a in attrName) { - if (!attrName[a]) { - delete this.attrs[a] - } else { - this.attrs[a.toLowerCase()] = attrName[a]; - } - } - } else { - if (!attrVal) { - delete this.attrs[attrName] - } else { - this.attrs[attrName.toLowerCase()] = attrVal; - } - - } - }, - - /** - * 获取当前节点在父节点下的位置索引 - * @method getIndex - * @return { Number } 返回索引数值,如果没有父节点,返回-1 - * @example - * ```javascript - * node.getIndex(); - * ``` - */ - getIndex:function(){ - var parent = this.parentNode; - for(var i= 0,ci;ci=parent.children[i];i++){ - if(ci === this){ - return i; - } - } - return -1; - }, - - /** - * 在当前节点下,根据id查找节点 - * @method getNodeById - * @param { String } id 要查找的id - * @return { UE.uNode } 返回找到的节点 - * @example - * ```javascript - * node.getNodeById('textId'); - * ``` - */ - getNodeById:function (id) { - var node; - if (this.children && this.children.length) { - for (var i = 0, ci; ci = this.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - }, - - /** - * 在当前节点下,根据元素名称查找节点列表 - * @method getNodesByTagName - * @param { String } tagNames 要查找的元素名称 - * @return { Array } 返回找到的节点列表 - * @example - * ```javascript - * node.getNodesByTagName('span'); - * ``` - */ - getNodesByTagName:function (tagNames) { - tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' '); - var arr = [], me = this; - utils.each(tagNames, function (tagName) { - if (me.children && me.children.length) { - for (var i = 0, ci; ci = me.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - }); - return arr; - }, - - /** - * 根据样式名称,获取节点的样式值 - * @method getStyle - * @param { String } name 要获取的样式名称 - * @return { String } 返回样式值 - * @example - * ```javascript - * node.getStyle('font-size'); - * ``` - */ - getStyle:function (name) { - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - return '' - } - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+)','i'); - var match = cssStyle.match(reg); - if (match && match[0]) { - return match[2] - } - return ''; - }, - - /** - * 给节点设置样式 - * @method setStyle - * @param { String } name 要设置的的样式名称 - * @param { String } val 要设置的的样值 - * @example - * ```javascript - * node.setStyle('font-size', '12px'); - * ``` - */ - setStyle:function (name, val) { - function exec(name, val) { - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+;?)', 'gi'); - cssStyle = cssStyle.replace(reg, '$1'); - if (val) { - cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle - } - - } - - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - cssStyle = ''; - } - if (utils.isObject(name)) { - for (var a in name) { - exec(a, name[a]) - } - } else { - exec(name, val) - } - this.setAttr('style', utils.trim(cssStyle)) - }, - - /** - * 传入一个函数,递归遍历当前节点下的所有节点 - * @method traversal - * @param { Function } fn 遍历到节点的时,传入节点作为参数,运行此函数 - * @example - * ```javascript - * traversal(node, function(){ - * console.log(node.type); - * }); - * ``` - */ - traversal:function(fn){ - if(this.children && this.children.length){ - nodeTraversal(this,fn); - } - return this; - } - } -})(); - - -// core/htmlparser.js -/** - * html字符串转换成uNode节点 - * @file - * @module UE - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * html字符串转换成uNode节点的静态方法 - * @method htmlparser - * @param { String } htmlstr 要转换的html代码 - * @param { Boolean } ignoreBlank 若设置为true,转换的时候忽略\n\r\t等空白字符 - * @return { uNode } 给定的html片段转换形成的uNode对象 - * @example - * ```javascript - * var root = UE.htmlparser('

    htmlparser

    ', true); - * ``` - */ - -var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { - //todo 原来的方式 [^"'<>\/] 有\/就不能配对上 ') - } - html.push('') - } - //禁止指定table-width - return '
    这样的标签了 - //先去掉了,加上的原因忘了,这里先记录 - var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, - re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g; - - //ie下取得的html可能会有\n存在,要去掉,在处理replace(/[\t\r\n]*/g,'');代码高量的\n不能去除 - var allowEmptyTags = { - b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1, - sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1 - }; - htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), ''); - if(!ignoreBlank){ - htmlstr = htmlstr.replace(new RegExp('[\\r\\t\\n'+(ignoreBlank?'':' ')+']*<\/?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n'+(ignoreBlank?'':' ')+']*','g'), function(a,b){ - //br暂时单独处理 - if(b && allowEmptyTags[b.toLowerCase()]){ - return a.replace(/(^[\n\r]+)|([\n\r]+$)/g,''); - } - return a.replace(new RegExp('^[\\r\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\r\\n'+(ignoreBlank?'':' ')+']+$'),''); - }); - } - - var notTransAttrs = { - 'href':1, - 'src':1 - }; - - var uNode = UE.uNode, - needParentNode = { - 'td':'tr', - 'tr':['tbody','thead','tfoot'], - 'tbody':'table', - 'th':'tr', - 'thead':'table', - 'tfoot':'table', - 'caption':'table', - 'li':['ul', 'ol'], - 'dt':'dl', - 'dd':'dl', - 'option':'select' - }, - needChild = { - 'ol':'li', - 'ul':'li' - }; - - function text(parent, data) { - - if(needChild[parent.tagName]){ - var tmpNode = uNode.createElement(needChild[parent.tagName]); - parent.appendChild(tmpNode); - tmpNode.appendChild(uNode.createText(data)); - parent = tmpNode; - }else{ - - parent.appendChild(uNode.createText(data)); - } - } - - function element(parent, tagName, htmlattr) { - var needParentTag; - if (needParentTag = needParentNode[tagName]) { - var tmpParent = parent,hasParent; - while(tmpParent.type != 'root'){ - if(utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag == tmpParent.tagName){ - parent = tmpParent; - hasParent = true; - break; - } - tmpParent = tmpParent.parentNode; - } - if(!hasParent){ - parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag) - } - } - //按dtd处理嵌套 -// if(parent.type != 'root' && !dtd[parent.tagName][tagName]) -// parent = parent.parentNode; - var elm = new uNode({ - parentNode:parent, - type:'element', - tagName:tagName.toLowerCase(), - //是自闭合的处理一下 - children:dtd.$empty[tagName] ? null : [] - }); - //如果属性存在,处理属性 - if (htmlattr) { - var attrs = {}, match; - while (match = re_attr.exec(htmlattr)) { - attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) : utils.unhtml(match[2] || match[3] || match[4]) - } - elm.attrs = attrs; - } - //trace:3970 -// //如果parent下不能放elm -// if(dtd.$inline[parent.tagName] && dtd.$block[elm.tagName] && !dtd[parent.tagName][elm.tagName]){ -// parent = parent.parentNode; -// elm.parentNode = parent; -// } - parent.children.push(elm); - //如果是自闭合节点返回父亲节点 - return dtd.$empty[tagName] ? parent : elm - } - - function comment(parent, data) { - parent.children.push(new uNode({ - type:'comment', - data:data, - parentNode:parent - })); - } - - var match, currentIndex = 0, nextIndex = 0; - //设置根节点 - var root = new uNode({ - type:'root', - children:[] - }); - var currentParent = root; - - while (match = re_tag.exec(htmlstr)) { - currentIndex = match.index; - try{ - if (currentIndex > nextIndex) { - //text node - text(currentParent, htmlstr.slice(nextIndex, currentIndex)); - } - if (match[3]) { - - if(dtd.$cdata[currentParent.tagName]){ - text(currentParent, match[0]); - }else{ - //start tag - currentParent = element(currentParent, match[3].toLowerCase(), match[4]); - } - - - } else if (match[1]) { - if(currentParent.type != 'root'){ - if(dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]){ - text(currentParent, match[0]); - }else{ - var tmpParent = currentParent; - while(currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()){ - currentParent = currentParent.parentNode; - if(currentParent.type == 'root'){ - currentParent = tmpParent; - throw 'break' - } - } - //end tag - currentParent = currentParent.parentNode; - } - - } - - } else if (match[2]) { - //comment - comment(currentParent, match[2]) - } - }catch(e){} - - nextIndex = re_tag.lastIndex; - - } - //如果结束是文本,就有可能丢掉,所以这里手动判断一下 - //例如
  • sdfsdfsdf
  • sdfsdfsdfsdf - if (nextIndex < htmlstr.length) { - text(currentParent, htmlstr.slice(nextIndex)); - } - return root; -}; - - -// core/filternode.js -/** - * UE过滤节点的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入节点和过滤规则过滤相应节点 - * @module UE - * @since 1.2.6.1 - * @method filterNode - * @param { Object } root 指定root节点 - * @param { Object } rules 过滤规则json对象 - * @example - * ```javascript - * UE.filterNode(root,editor.options.filterRules); - * ``` - */ -var filterNode = UE.filterNode = function () { - function filterNode(node,rules){ - switch (node.type) { - case 'text': - break; - case 'element': - var val; - if(val = rules[node.tagName]){ - if(val === '-'){ - node.parentNode.removeChild(node) - }else if(utils.isFunction(val)){ - var parentNode = node.parentNode, - index = node.getIndex(); - val(node); - if(node.parentNode){ - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - }else{ - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - - - }else{ - var attrs = val['$']; - if(attrs && node.attrs){ - var tmpAttrs = {},tmpVal; - for(var a in attrs){ - tmpVal = node.getAttr(a); - //todo 只先对style单独处理 - if(a == 'style' && utils.isArray(attrs[a])){ - var tmpCssStyle = []; - utils.each(attrs[a],function(v){ - var tmp; - if(tmp = node.getStyle(v)){ - tmpCssStyle.push(v + ':' + tmp); - } - }); - tmpVal = tmpCssStyle.join(';') - } - if(tmpVal){ - tmpAttrs[a] = tmpVal; - } - - } - node.attrs = tmpAttrs; - } - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - }else{ - //如果不在名单里扣出子节点并删除该节点,cdata除外 - if(dtd.$cdata[node.tagName]){ - node.parentNode.removeChild(node) - }else{ - var parentNode = node.parentNode, - index = node.getIndex(); - node.parentNode.removeChild(node,true); - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - break; - case 'comment': - node.parentNode.removeChild(node) - } - - } - return function(root,rules){ - if(utils.isEmptyObject(rules)){ - return root; - } - var val; - if(val = rules['-']){ - utils.each(val.split(' '),function(k){ - rules[k] = '-' - }) - } - for(var i= 0,ci;ci=root.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - return root; - } -}(); - -// core/plugin.js -/** - * Created with JetBrains PhpStorm. - * User: campaign - * Date: 10/8/13 - * Time: 6:15 PM - * To change this template use File | Settings | File Templates. - */ -UE.plugin = function(){ - var _plugins = {}; - return { - register : function(pluginName,fn,oldOptionName,afterDisabled){ - if(oldOptionName && utils.isFunction(oldOptionName)){ - afterDisabled = oldOptionName; - oldOptionName = null - } - _plugins[pluginName] = { - optionName : oldOptionName || pluginName, - execFn : fn, - //当插件被禁用时执行 - afterDisabled : afterDisabled - } - }, - load : function(editor){ - utils.each(_plugins,function(plugin){ - var _export = plugin.execFn.call(editor); - if(editor.options[plugin.optionName] !== false){ - if(_export){ - //后边需要再做扩展 - utils.each(_export,function(v,k){ - switch(k.toLowerCase()){ - case 'shortcutkey': - editor.addshortcutkey(v); - break; - case 'bindevents': - utils.each(v,function(fn,eventName){ - editor.addListener(eventName,fn); - }); - break; - case 'bindmultievents': - utils.each(utils.isArray(v) ? v:[v],function(event){ - var types = utils.trim(event.type).split(/\s+/); - utils.each(types,function(eventName){ - editor.addListener(eventName, event.handler); - }); - }); - break; - case 'commands': - utils.each(v,function(execFn,execName){ - editor.commands[execName] = execFn - }); - break; - case 'outputrule': - editor.addOutputRule(v); - break; - case 'inputrule': - editor.addInputRule(v); - break; - case 'defaultoptions': - editor.setOpt(v) - } - }) - } - - }else if(plugin.afterDisabled){ - plugin.afterDisabled.call(editor) - } - - }); - //向下兼容 - utils.each(UE.plugins,function(plugin){ - plugin.call(editor); - }); - }, - run : function(pluginName,editor){ - var plugin = _plugins[pluginName]; - if(plugin){ - plugin.exeFn.call(editor) - } - } - } -}(); - -// core/keymap.js -var keymap = UE.keymap = { - 'Backspace' : 8, - 'Tab' : 9, - 'Enter' : 13, - - 'Shift':16, - 'Control':17, - 'Alt':18, - 'CapsLock':20, - - 'Esc':27, - - 'Spacebar':32, - - 'PageUp':33, - 'PageDown':34, - 'End':35, - 'Home':36, - - 'Left':37, - 'Up':38, - 'Right':39, - 'Down':40, - - 'Insert':45, - - 'Del':46, - - 'NumLock':144, - - 'Cmd':91, - - '=':187, - '-':189, - - "b":66, - 'i':73, - //回退 - 'z':90, - 'y':89, - //粘贴 - 'v' : 86, - 'x' : 88, - - 's' : 83, - - 'n' : 78 -}; - -// core/localstorage.js -//存储媒介封装 -var LocalStorage = UE.LocalStorage = (function () { - - var storage = window.localStorage || getUserData() || null, - LOCAL_FILE = 'localStorage'; - - return { - - saveLocalData: function (key, data) { - - if (storage && data) { - storage.setItem(key, data); - return true; - } - - return false; - - }, - - getLocalData: function (key) { - - if (storage) { - return storage.getItem(key); - } - - return null; - - }, - - removeItem: function (key) { - - storage && storage.removeItem(key); - - } - - }; - - function getUserData() { - - var container = document.createElement("div"); - container.style.display = "none"; - - if (!container.addBehavior) { - return null; - } - - container.addBehavior("#default#userdata"); - - return { - - getItem: function (key) { - - var result = null; - - try { - document.body.appendChild(container); - container.load(LOCAL_FILE); - result = container.getAttribute(key); - document.body.removeChild(container); - } catch (e) { - } - - return result; - - }, - - setItem: function (key, value) { - - document.body.appendChild(container); - container.setAttribute(key, value); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - }, - - //// 暂时没有用到 - //clear: function () { - // - // var expiresTime = new Date(); - // expiresTime.setFullYear(expiresTime.getFullYear() - 1); - // document.body.appendChild(container); - // container.expires = expiresTime.toUTCString(); - // container.save(LOCAL_FILE); - // document.body.removeChild(container); - // - //}, - - removeItem: function (key) { - - document.body.appendChild(container); - container.removeAttribute(key); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - } - - }; - - } - -})(); - -(function () { - - var ROOTKEY = 'ueditor_preference'; - - UE.Editor.prototype.setPreferences = function(key,value){ - var obj = {}; - if (utils.isString(key)) { - obj[ key ] = value; - } else { - obj = key; - } - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - utils.extend(data, obj); - } else { - data = obj; - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - - UE.Editor.prototype.getPreferences = function(key){ - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - return key ? data[key] : data - } - return null; - }; - - UE.Editor.prototype.removePreferences = function (key) { - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - data[key] = undefined; - delete data[key] - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - -})(); - - -// plugins/defaultfilter.js -///import core -///plugin 编辑器默认的过滤转换机制 - -UE.plugins['defaultfilter'] = function () { - var me = this; - me.setOpt({ - 'allowDivTransToP':true, - 'disabledTableInTable':true - }); - //默认的过滤处理 - //进入编辑器的内容处理 - me.addInputRule(function (root) { - var allowDivTransToP = this.options.allowDivTransToP; - var val; - function tdParent(node){ - while(node && node.type == 'element'){ - if(node.tagName == 'td'){ - return true; - } - node = node.parentNode; - } - return false; - } - //进行默认的处理 - root.traversal(function (node) { - if (node.type == 'element') { - if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'style': - case 'script': - node.setAttr({ - cdata_tag: node.tagName, - cdata_data: (node.innerHTML() || ''), - '_ue_custom_node_':'true' - }); - node.tagName = 'div'; - node.innerHTML(''); - break; - case 'a': - if (val = node.getAttr('href')) { - node.setAttr('_href', val) - } - break; - case 'img': - //todo base64暂时去掉,后边做远程图片上传后,干掉这个 - if (val = node.getAttr('src')) { - if (/^data:/.test(val)) { - node.parentNode.removeChild(node); - break; - } - } - node.setAttr('_src', node.getAttr('src')); - break; - case 'span': - if (browser.webkit && (val = node.getStyle('white-space'))) { - if (/nowrap|normal/.test(val)) { - node.setStyle('white-space', ''); - if (me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs)) { - node.parentNode.removeChild(node, true) - } - } - } - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'p': - if (val = node.getAttr('align')) { - node.setAttr('align'); - node.setStyle('text-align', val) - } - //trace:3431 -// var cssStyle = node.getAttr('style'); -// if (cssStyle) { -// cssStyle = cssStyle.replace(/(margin|padding)[^;]+/g, ''); -// node.setAttr('style', cssStyle) -// -// } - //p标签不允许嵌套 - utils.each(node.children,function(n){ - if(n.type == 'element' && n.tagName == 'p'){ - var next = n.nextSibling(); - node.parentNode.insertAfter(n,node); - var last = n; - while(next){ - var tmp = next.nextSibling(); - node.parentNode.insertAfter(next,last); - last = next; - next = tmp; - } - return false; - } - }); - if (!node.firstChild()) { - node.innerHTML(browser.ie ? ' ' : '
    ') - } - break; - case 'div': - if(node.getAttr('cdata_tag')){ - break; - } - //针对代码这里不处理插入代码的div - val = node.getAttr('class'); - if(val && /^line number\d+/.test(val)){ - break; - } - if(!allowDivTransToP){ - break; - } - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - break; - case 'dl': - node.tagName = 'ul'; - break; - case 'dt': - case 'dd': - node.tagName = 'li'; - break; - case 'li': - var className = node.getAttr('class'); - if (!className || !/list\-/.test(className)) { - node.setAttr() - } - var tmpNodes = node.getNodesByTagName('ol ul'); - UE.utils.each(tmpNodes, function (n) { - node.parentNode.insertAfter(n, node); - }); - break; - case 'td': - case 'th': - case 'caption': - if(!node.children || !node.children.length){ - node.appendChild(browser.ie11below ? UE.uNode.createText(' ') : UE.uNode.createElement('br')) - } - break; - case 'table': - if(me.options.disabledTableInTable && tdParent(node)){ - node.parentNode.insertBefore(UE.uNode.createText(node.innerText()),node); - node.parentNode.removeChild(node) - } - } - - } -// if(node.type == 'comment'){ -// node.parentNode.removeChild(node); -// } - }) - - }); - - //从编辑器出去的内容处理 - me.addOutputRule(function (root) { - - var val; - root.traversal(function (node) { - if (node.type == 'element') { - - if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'div': - if (val = node.getAttr('cdata_tag')) { - node.tagName = val; - node.appendChild(UE.uNode.createText(node.getAttr('cdata_data'))); - node.setAttr({cdata_tag: '', cdata_data: '','_ue_custom_node_':''}); - } - break; - case 'a': - if (val = node.getAttr('_href')) { - node.setAttr({ - 'href': utils.html(val), - '_href': '' - }) - } - break; - break; - case 'span': - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'img': - if (val = node.getAttr('_src')) { - node.setAttr({ - 'src': node.getAttr('_src'), - '_src': '' - }) - } - - - } - } - - }) - - - }); -}; - - -// plugins/inserthtml.js -/** - * 插入html字符串插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入html代码 - * @command inserthtml - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } html 插入的html字符串 - * @remaind 插入的标签内容是在当前的选区位置上插入,如果当前是闭合状态,那直接插入内容, 如果当前是选中状态,将先清除当前选中内容后,再做插入 - * @warning 注意:该命令会对当前选区的位置,对插入的内容进行过滤转换处理。 过滤的规则遵循html语意化的原则。 - * @example - * ```javascript - * //xxx[BB]xxx 当前选区为非闭合选区,选中BB这两个文本 - * //执行命令,插入CC - * //插入后的效果 xxxCCxxx - * //

    xx|xxx

    当前选区为闭合状态 - * //插入

    CC

    - * //结果

    xx

    CC

    xxx

    - * //

    xxxx

    |

    xxx

    当前选区在两个p标签之间 - * //插入 xxxx - * //结果

    xxxx

    xxxx

    xxx

    - * ``` - */ - -UE.commands['inserthtml'] = { - execCommand: function (command,html,notNeedFilter){ - var me = this, - range, - div; - if(!html){ - return; - } - if(me.fireEvent('beforeinserthtml',html) === true){ - return; - } - range = me.selection.getRange(); - div = range.document.createElement( 'div' ); - div.style.display = 'inline'; - - if (!notNeedFilter) { - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if(me.options.filterRules){ - UE.filterNode(root,me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - html = root.toHtml() - } - div.innerHTML = utils.trim( html ); - - if ( !range.collapsed ) { - var tmpNode = range.startContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setStartBefore(tmpNode) - } - tmpNode = range.endContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setEndAfter(tmpNode) - } - range.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(range.endContainer && range.endContainer.nodeType == 1){ - tmpNode = range.endContainer.childNodes[range.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - range.setEndAfter(tmpNode); - } - } - if(range.startOffset == 0){ - tmpNode = range.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = range.endContainer; - if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - range.setStart(me.body.firstChild,0).collapse(true) - - } - } - } - !range.collapsed && range.deleteContents(); - if(range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset],pre; - if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){ - range.setEnd(pre,pre.childNodes.length).collapse(); - while(child.firstChild){ - pre.appendChild(child.firstChild); - } - domUtils.remove(child); - } - } - - } - - - var child,parent,pre,tmp,hadBreak = 0, nextNode; - //如果当前位置选中了fillchar要干掉,要不会产生空行 - if(range.inFillChar()){ - child = range.startContainer; - if(domUtils.isFillChar(child)){ - range.setStartBefore(child).collapse(true); - domUtils.remove(child); - }else if(domUtils.isFillChar(child,true)){ - child.nodeValue = child.nodeValue.replace(fillCharReg,''); - range.startOffset--; - range.collapsed && range.collapse(true) - } - } - //列表单独处理 - var li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(li){ - var next,last; - while(child = div.firstChild){ - //针对hr单独处理一下先 - while(child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName=='HR' )){ - next = child.nextSibling; - range.insertNode( child).collapse(); - last = child; - child = next; - - } - if(child){ - if(/^(ol|ul)$/i.test(child.tagName)){ - while(child.firstChild){ - last = child.firstChild; - domUtils.insertAfter(li,child.firstChild); - li = li.nextSibling; - } - domUtils.remove(child) - }else{ - var tmpLi; - next = child.nextSibling; - tmpLi = me.document.createElement('li'); - domUtils.insertAfter(li,tmpLi); - tmpLi.appendChild(child); - last = child; - child = next; - li = tmpLi; - } - } - } - li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(domUtils.isEmptyBlock(li)){ - domUtils.remove(li) - } - if(last){ - - range.setStartAfter(last).collapse(true).select(true) - } - }else{ - while ( child = div.firstChild ) { - if(hadBreak){ - var p = me.document.createElement('p'); - while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){ - nextNode = child.nextSibling; - p.appendChild(child); - child = nextNode; - } - if(p.firstChild){ - - child = p - } - } - range.insertNode( child ); - nextNode = child.nextSibling; - if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){ - - parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } ); - if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){ - if(!dtd[parent.tagName][child.nodeName]){ - pre = parent; - }else{ - tmp = child.parentNode; - while (tmp !== parent){ - pre = tmp; - tmp = tmp.parentNode; - - } - } - - - domUtils.breakParent( child, pre || tmp ); - //去掉break后前一个多余的节点

    |<[p> ==>

    |

    - var pre = child.previousSibling; - domUtils.trimWhiteTextNode(pre); - if(!pre.childNodes.length){ - domUtils.remove(pre); - } - //trace:2012,在非ie的情况,切开后剩下的节点有可能不能点入光标添加br占位 - - if(!browser.ie && - (next = child.nextSibling) && - domUtils.isBlockElm(next) && - next.lastChild && - !domUtils.isBr(next.lastChild)){ - next.appendChild(me.document.createElement('br')); - } - hadBreak = 1; - } - } - var next = child.nextSibling; - if(!div.firstChild && next && domUtils.isBlockElm(next)){ - - range.setStart(next,0).collapse(true); - break; - } - range.setEndAfter( child ).collapse(); - - } - - child = range.startContainer; - - if(nextNode && domUtils.isBr(nextNode)){ - domUtils.remove(nextNode) - } - //用chrome可能有空白展位符 - if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){ - if(nextNode = child.nextSibling){ - domUtils.remove(child); - if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){ - - range.setStart(nextNode,0).collapse(true).shrinkBoundary() - } - }else{ - - try{ - child.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - }catch(e){ - range.setStartBefore(child); - domUtils.remove(child) - } - - } - - } - //加上true因为在删除表情等时会删两次,第一次是删的fillData - try{ - range.select(true); - }catch(e){} - - } - - - - setTimeout(function(){ - range = me.selection.getRange(); - range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled ? domUtils.getXY(me.iframe).y:0); - me.fireEvent('afterinserthtml', html); - },200); - } -}; - - -// plugins/autotypeset.js -/** - * 自动排版 - * @file - * @since 1.2.6.1 - */ - -/** - * 对当前编辑器的内容执行自动排版, 排版的行为根据config配置文件里的“autotypeset”选项进行控制。 - * @command autotypeset - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autotypeset' ); - * ``` - */ - -UE.plugins['autotypeset'] = function(){ - - this.setOpt({'autotypeset': { - mergeEmptyline: true, //合并空行 - removeClass: true, //去掉冗余的class - removeEmptyline: false, //去掉空行 - textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - removeEmptyNode: false, // 去掉空节点 - //可以去掉的标签 - removeTagNames: utils.extend({div:1},dtd.$removeEmpty), - indent: false, // 行首缩进 - indentValue : '2em', //行首缩进的大小 - bdc2sb: false, - tobdc: false - }}); - - var me = this, - opt = me.options.autotypeset, - remainClass = { - 'selectTdClass':1, - 'pagebreak':1, - 'anchorclass':1 - }, - remainTag = { - 'li':1 - }, - tags = { - div:1, - p:1, - //trace:2183 这些也认为是行 - blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1, - span:1 - }, - highlightCont; - //升级了版本,但配置项目里没有autotypeset - if(!opt){ - return; - } - - readLocalOpts(); - - function isLine(node,notEmpty){ - if(!node || node.nodeType == 3) - return 0; - if(domUtils.isBr(node)) - return 1; - if(node && node.parentNode && tags[node.tagName.toLowerCase()]){ - if(highlightCont && highlightCont.contains(node) - || - node.getAttribute('pagebreak') - ){ - return 0; - } - - return notEmpty ? !domUtils.isEmptyBlock(node) : domUtils.isEmptyBlock(node,new RegExp('[\\s'+domUtils.fillChar - +']','g')); - } - } - - function removeNotAttributeSpan(node){ - if(!node.style.cssText){ - domUtils.removeAttributes(node,['style']); - if(node.tagName.toLowerCase() == 'span' && domUtils.hasNoAttributes(node)){ - domUtils.remove(node,true); - } - } - } - function autotype(type,html){ - - var me = this,cont; - if(html){ - if(!opt.pasteFilter){ - return; - } - cont = me.document.createElement('div'); - cont.innerHTML = html.html; - }else{ - cont = me.document.body; - } - var nodes = domUtils.getElementsByTagName(cont,'*'); - - // 行首缩进,段落方向,段间距,段内间距 - for(var i=0,ci;ci=nodes[i++];){ - - if(me.fireEvent('excludeNodeinautotype',ci) === true){ - continue; - } - //font-size - if(opt.clearFontSize && ci.style.fontSize){ - domUtils.removeStyle(ci,'font-size'); - - removeNotAttributeSpan(ci); - - } - //font-family - if(opt.clearFontFamily && ci.style.fontFamily){ - domUtils.removeStyle(ci,'font-family'); - removeNotAttributeSpan(ci); - } - - if(isLine(ci)){ - //合并空行 - if(opt.mergeEmptyline ){ - var next = ci.nextSibling,tmpNode,isBr = domUtils.isBr(ci); - while(isLine(next)){ - tmpNode = next; - next = tmpNode.nextSibling; - if(isBr && (!next || next && !domUtils.isBr(next))){ - break; - } - domUtils.remove(tmpNode); - } - - } - //去掉空行,保留占位的空行 - if(opt.removeEmptyline && domUtils.inDoc(ci,cont) && !remainTag[ci.parentNode.tagName.toLowerCase()] ){ - if(domUtils.isBr(ci)){ - next = ci.nextSibling; - if(next && !domUtils.isBr(next)){ - continue; - } - } - domUtils.remove(ci); - continue; - - } - - } - if(isLine(ci,true) && ci.tagName != 'SPAN'){ - if(opt.indent){ - ci.style.textIndent = opt.indentValue; - } - if(opt.textAlign){ - ci.style.textAlign = opt.textAlign; - } - // if(opt.lineHeight) - // ci.style.lineHeight = opt.lineHeight + 'cm'; - - } - - //去掉class,保留的class不去掉 - if(opt.removeClass && ci.className && !remainClass[ci.className.toLowerCase()]){ - - if(highlightCont && highlightCont.contains(ci)){ - continue; - } - domUtils.removeAttributes(ci,['class']); - } - - //表情不处理 - if(opt.imageBlockLine && ci.tagName.toLowerCase() == 'img' && !ci.getAttribute('emotion')){ - if(html){ - var img = ci; - switch (opt.imageBlockLine){ - case 'left': - case 'right': - case 'none': - var pN = img.parentNode,tmpNode,pre,next; - while(dtd.$inline[pN.tagName] || pN.tagName == 'A'){ - pN = pN.parentNode; - } - tmpNode = pN; - if(tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode,'text-align') == 'center'){ - if(!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1){ - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if(pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)){ - pre.appendChild(tmpNode.firstChild); - while(next.firstChild){ - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - }else{ - domUtils.setStyle(tmpNode,'text-align',''); - } - - - } - - - } - domUtils.setStyle(img,'float', opt.imageBlockLine); - break; - case 'center': - if(me.queryCommandValue('imagefloat') != 'center'){ - pN = img.parentNode; - domUtils.setStyle(img,'float','none'); - tmpNode = img; - while(pN && domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')){ - tmpNode = pN; - pN = pN.parentNode; - } - var pNode = me.document.createElement('p'); - domUtils.setAttributes(pNode,{ - - style:'text-align:center' - }); - tmpNode.parentNode.insertBefore(pNode,tmpNode); - pNode.appendChild(tmpNode); - domUtils.setStyle(tmpNode,'float',''); - - } - - - } - } else { - var range = me.selection.getRange(); - range.selectNode(ci).select(); - me.execCommand('imagefloat', opt.imageBlockLine); - } - - } - - //去掉冗余的标签 - if(opt.removeEmptyNode){ - if(opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(ci)){ - domUtils.remove(ci); - } - } - } - if(opt.tobdc){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = ToDBC(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(opt.bdc2sb){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = DBC2SB(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(html){ - html.html = cont.innerHTML; - } - } - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - - function DBC2SB(str) { - var result = ''; - for (var i = 0; i < str.length; i++) { - var code = str.charCodeAt(i); //获取当前字符的unicode编码 - if (code >= 65281 && code <= 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符 - { - result += String.fromCharCode(str.charCodeAt(i) - 65248); //把全角字符的unicode编码转换为对应半角字符的unicode码 - } else if (code == 12288)//空格 - { - result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32); - } else { - result += str.charAt(i); - } - } - return result; - } - function ToDBC(txtstring) { - txtstring = utils.html(txtstring); - var tmp = ""; - var mark = "";/*用于判断,如果是html尖括里的标记,则不进行全角的转换*/ - for (var i = 0; i < txtstring.length; i++) { - if (txtstring.charCodeAt(i) == 32) { - tmp = tmp + String.fromCharCode(12288); - } - else if (txtstring.charCodeAt(i) < 127) { - tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248); - } - else { - tmp += txtstring.charAt(i); - } - } - return tmp; - } - - function readLocalOpts() { - var cookieOpt = me.getPreferences('autotypeset'); - utils.extend(me.options.autotypeset, cookieOpt); - } - - me.commands['autotypeset'] = { - execCommand:function () { - me.removeListener('beforepaste',autotype); - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - autotype.call(me) - } - - }; - -}; - - - -// plugins/autosubmit.js -/** - * 快捷键提交 - * @file - * @since 1.2.6.1 - */ - -/** - * 提交表单 - * @command autosubmit - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autosubmit' ); - * ``` - */ - -UE.plugin.register('autosubmit',function(){ - return { - shortcutkey:{ - "autosubmit":"ctrl+13" //手动提交 - }, - commands:{ - 'autosubmit':{ - execCommand:function () { - var me=this, - form = domUtils.findParentByTagName(me.iframe,"form", false); - if (form){ - if(me.fireEvent("beforesubmit")===false){ - return; - } - me.sync(); - form.submit(); - } - } - } - } - } -}); - -// plugins/background.js -/** - * 背景插件,为UEditor提供设置背景功能 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('background', function () { - var me = this, - cssRuleId = 'editor_background', - isSetColored, - reg = new RegExp('body[\\s]*\\{(.+)\\}', 'i'); - - function stringToObj(str) { - var obj = {}, styles = str.split(';'); - utils.each(styles, function (v) { - var index = v.indexOf(':'), - key = utils.trim(v.substr(0, index)).toLowerCase(); - key && (obj[key] = utils.trim(v.substr(index + 1) || '')); - }); - return obj; - } - - function setBackground(obj) { - if (obj) { - var styles = []; - for (var name in obj) { - if (obj.hasOwnProperty(name)) { - styles.push(name + ":" + obj[name] + '; '); - } - } - utils.cssRule(cssRuleId, styles.length ? ('body{' + styles.join("") + '}') : '', me.document); - } else { - utils.cssRule(cssRuleId, '', me.document) - } - } - //重写editor.hasContent方法 - - var orgFn = me.hasContents; - me.hasContents = function(){ - if(me.queryCommandValue('background')){ - return true - } - return orgFn.apply(me,arguments); - }; - return { - bindEvents: { - 'getAllHtml': function (type, headHtml) { - var body = this.body, - su = domUtils.getComputedStyle(body, "background-image"), - url = ""; - if (su.indexOf(me.options.imagePath) > 0) { - url = su.substring(su.indexOf(me.options.imagePath), su.length - 1).replace(/"|\(|\)/ig, ""); - } else { - url = su != "none" ? su.replace(/url\("?|"?\)/ig, "") : ""; - } - var html = ' '; - headHtml.push(html); - }, - 'aftersetcontent': function () { - if(isSetColored == false) setBackground(); - } - }, - inputRule: function (root) { - isSetColored = false; - utils.each(root.getNodesByTagName('p'), function (p) { - var styles = p.getAttr('data-background'); - if (styles) { - isSetColored = true; - setBackground(stringToObj(styles)); - p.parentNode.removeChild(p); - } - }) - }, - outputRule: function (root) { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - if (styles) { - root.appendChild(UE.uNode.createElement('


    ')); - } - }, - commands: { - 'background': { - execCommand: function (cmd, obj) { - setBackground(obj); - }, - queryCommandValue: function () { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - return styles ? stringToObj(styles[1]) : null; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/image.js -/** - * 图片插入、排版插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 图片对齐方式 - * @command imagefloat - * @method execCommand - * @remind 值center为独占一行居中 - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式,可传left、right、none、center - * @remaind center表示图片独占一行 - * @example - * ```javascript - * editor.execCommand( 'imagefloat', 'center' ); - * ``` - */ - -/** - * 如果选区所在位置是图片区域 - * @command imagefloat - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回图片对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'imagefloat' ); - * ``` - */ - -UE.commands['imagefloat'] = { - execCommand:function (cmd, align) { - var me = this, - range = me.selection.getRange(); - if (!range.collapsed) { - var img = range.getClosedNode(); - if (img && img.tagName == 'IMG') { - switch (align) { - case 'left': - case 'right': - case 'none': - var pN = img.parentNode, tmpNode, pre, next; - while (dtd.$inline[pN.tagName] || pN.tagName == 'A') { - pN = pN.parentNode; - } - tmpNode = pN; - if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') { - if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1) { - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)) { - pre.appendChild(tmpNode.firstChild); - while (next.firstChild) { - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - } else { - domUtils.setStyle(tmpNode, 'text-align', ''); - } - - - } - - range.selectNode(img).select(); - } - domUtils.setStyle(img, 'float', align == 'none' ? '' : align); - if(align == 'none'){ - domUtils.removeAttributes(img,'align'); - } - - break; - case 'center': - if (me.queryCommandValue('imagefloat') != 'center') { - pN = img.parentNode; - domUtils.setStyle(img, 'float', ''); - domUtils.removeAttributes(img,'align'); - tmpNode = img; - while (pN && domUtils.getChildCount(pN, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')) { - tmpNode = pN; - pN = pN.parentNode; - } - range.setStartBefore(tmpNode).setCursor(false); - pN = me.document.createElement('div'); - pN.appendChild(tmpNode); - domUtils.setStyle(tmpNode, 'float', ''); - - me.execCommand('insertHtml', '

    ' + pN.innerHTML + '

    '); - - tmpNode = me.document.getElementById('_img_parent_tmp'); - tmpNode.removeAttribute('id'); - tmpNode = tmpNode.firstChild; - range.selectNode(tmpNode).select(); - //去掉后边多余的元素 - next = tmpNode.parentNode.nextSibling; - if (next && domUtils.isEmptyNode(next)) { - domUtils.remove(next); - } - - } - - break; - } - - } - } - }, - queryCommandValue:function () { - var range = this.selection.getRange(), - startNode, floatStyle; - if (range.collapsed) { - return 'none'; - } - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - floatStyle = domUtils.getComputedStyle(startNode, 'float') || startNode.getAttribute('align'); - - if (floatStyle == 'none') { - floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' : floatStyle; - } - return { - left:1, - right:1, - center:1 - }[floatStyle] ? floatStyle : 'none'; - } - return 'none'; - - - }, - queryCommandState:function () { - var range = this.selection.getRange(), - startNode; - - if (range.collapsed) return -1; - - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - return 0; - } - return -1; - } -}; - - -/** - * 插入图片 - * @command insertimage - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } opt 属性键值对,这些属性都将被复制到当前插入图片 - * @remind 该命令第二个参数可接受一个图片配置项对象的数组,可以插入多张图片, - * 此时数组的每一个元素都是一个Object类型的图片属性集合。 - * @example - * ```javascript - * editor.execCommand( 'insertimage', { - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * } ); - * ``` - * @example - * ```javascript - * editor.execCommand( 'insertimage', [{ - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * },{ - * src:'a/b/d.jpg', - * width:'100', - * height:'100' - * }] ); - * ``` - */ - -UE.commands['insertimage'] = { - execCommand:function (cmd, opt) { - - opt = utils.isArray(opt) ? opt : [opt]; - if (!opt.length) { - return; - } - var me = this, - range = me.selection.getRange(), - img = range.getClosedNode(); - - if(me.fireEvent('beforeinsertimage', opt) === true){ - return; - } - - function unhtmlData(imgCi) { - - utils.each('width,height,border,hspace,vspace'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = parseInt(imgCi[item], 10) || 0; - } - }); - - utils.each('src,_src'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtmlForUrl(imgCi[item]); - } - }); - utils.each('title,alt'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtml(imgCi[item]); - } - }); - } - - if (img && /img/i.test(img.tagName) && (img.className != "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1) && !img.getAttribute("word_img")) { - var first = opt.shift(); - var floatStyle = first['floatStyle']; - delete first['floatStyle']; -//// img.style.border = (first.border||0) +"px solid #000"; -//// img.style.margin = (first.margin||0) +"px"; -// img.style.cssText += ';margin:' + (first.margin||0) +"px;" + 'border:' + (first.border||0) +"px solid #000"; - domUtils.setAttributes(img, first); - me.execCommand('imagefloat', floatStyle); - if (opt.length > 0) { - range.setStartAfter(img).setCursor(false, true); - me.execCommand('insertimage', opt); - } - - } else { - var html = [], str = '', ci; - ci = opt[0]; - if (opt.length == 1) { - unhtmlData(ci); - - str = '' + ci.alt + ''; - if (ci['floatStyle'] == 'center') { - str = '

    ' + str + '

    '; - } - html.push(str); - - } else { - for (var i = 0; ci = opt[i++];) { - unhtmlData(ci); - str = '

    '; - html.push(str); - } - } - - me.execCommand('insertHtml', html.join('')); - } - - me.fireEvent('afterinsertimage', opt) - } -}; - - -// plugins/justify.js -/** - * 段落格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落对齐方式 - * @command justify - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式:left => 居左,right => 居右,center => 居中,justify => 两端对齐 - * @example - * ```javascript - * editor.execCommand( 'justify', 'center' ); - * ``` - */ -/** - * 如果选区所在位置是段落区域,返回当前段落对齐方式 - * @command justify - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回段落对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'justify' ); - * ``` - */ - -UE.plugins['justify']=function(){ - var me=this, - block = domUtils.isBlockElm, - defaultValue = { - left:1, - right:1, - center:1, - justify:1 - }, - doJustify = function (range, style) { - var bookmark = range.createBookmark(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }; - - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode; - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - if (current.nodeType == 3 || !block(current)) { - tmpRange.setStartBefore(current); - while (current && current !== bookmark2.end && !block(current)) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !block(node); - }); - } - tmpRange.setEndAfter(tmpNode); - var common = tmpRange.getCommonAncestor(); - if (!domUtils.isBody(common) && block(common)) { - domUtils.setStyles(common, utils.isString(style) ? {'text-align':style} : style); - current = common; - } else { - var p = range.document.createElement('p'); - domUtils.setStyles(p, utils.isString(style) ? {'text-align':style} : style); - var frag = tmpRange.extractContents(); - p.appendChild(frag); - tmpRange.insertNode(p); - current = p; - } - current = domUtils.getNextDomNode(current, false, filterFn); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); - }; - - UE.commands['justify'] = { - execCommand:function (cmdName, align) { - var range = this.selection.getRange(), - txt; - - //闭合时单独处理 - if (range.collapsed) { - txt = this.document.createTextNode('p'); - range.insertNode(txt); - } - doJustify(range, align); - if (txt) { - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - - - return true; - }, - queryCommandValue:function () { - var startNode = this.selection.getStart(), - value = domUtils.getComputedStyle(startNode, 'text-align'); - return defaultValue[value] ? value : 'left'; - }, - queryCommandState:function () { - var start = this.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th","caption"], true); - - return cell? -1:0; - } - - }; -}; - - -// plugins/font.js -/** - * 字体颜色,背景色,字号,字体,下划线,删除线 - * @file - * @since 1.2.6.1 - */ - -/** - * 字体颜色 - * @command forecolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'forecolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command forecolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'forecolor' ); - * ``` - */ - -/** - * 字体背景颜色 - * @command backcolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'backcolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command backcolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体背景颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'backcolor' ); - * ``` - */ - -/** - * 字体大小 - * @command fontsize - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体大小 - * @example - * ```javascript - * editor.execCommand( 'fontsize', '14px' ); - * ``` - */ -/** - * 返回选区字体大小 - * @command fontsize - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体大小 - * @example - * ```javascript - * editor.queryCommandValue( 'fontsize' ); - * ``` - */ - -/** - * 字体样式 - * @command fontfamily - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体样式 - * @example - * ```javascript - * editor.execCommand( 'fontfamily', '微软雅黑' ); - * ``` - */ -/** - * 返回选区字体样式 - * @command fontfamily - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体样式 - * @example - * ```javascript - * editor.queryCommandValue( 'fontfamily' ); - * ``` - */ - -/** - * 字体下划线,与删除线互斥 - * @command underline - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'underline' ); - * ``` - */ - -/** - * 字体删除线,与下划线互斥 - * @command strikethrough - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'strikethrough' ); - * ``` - */ - -/** - * 字体边框 - * @command fontborder - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'fontborder' ); - * ``` - */ - -UE.plugins['font'] = function () { - var me = this, - fonts = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family', - 'underline': 'text-decoration', - 'strikethrough': 'text-decoration', - 'fontborder': 'border' - }, - needCmd = {'underline': 1, 'strikethrough': 1, 'fontborder': 1}, - needSetChild = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family' - - }; - me.setOpt({ - 'fontfamily': [ - { name: 'songti', val: '宋体,SimSun'}, - { name: 'yahei', val: '微软雅黑,Microsoft YaHei'}, - { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'}, - { name: 'heiti', val: '黑体, SimHei'}, - { name: 'lishu', val: '隶书, SimLi'}, - { name: 'andaleMono', val: 'andale mono'}, - { name: 'arial', val: 'arial, helvetica,sans-serif'}, - { name: 'arialBlack', val: 'arial black,avant garde'}, - { name: 'comicSansMs', val: 'comic sans ms'}, - { name: 'impact', val: 'impact,chicago'}, - { name: 'timesNewRoman', val: 'times new roman'} - ], - 'fontsize': [10, 11, 12, 14, 16, 18, 20, 24, 36] - }); - - function mergeWithParent(node){ - var parent; - while(parent = node.parentNode){ - if(parent.tagName == 'SPAN' && domUtils.getChildCount(parent,function(child){ - return !domUtils.isBookmarkNode(child) && !domUtils.isBr(child) - }) == 1) { - parent.style.cssText += node.style.cssText; - domUtils.remove(node,true); - node = parent; - - }else{ - break; - } - } - - } - function mergeChild(rng,cmdName,value){ - if(needSetChild[cmdName]){ - rng.adjustmentBoundary(); - if(!rng.collapsed && rng.startContainer.nodeType == 1){ - var start = rng.startContainer.childNodes[rng.startOffset]; - if(start && domUtils.isTagNode(start,'span')){ - var bk = rng.createBookmark(); - utils.each(domUtils.getElementsByTagName(start, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if(cmdName == 'backcolor' && domUtils.getComputedStyle(span,'background-color').toLowerCase() === value){ - return; - } - domUtils.removeStyle(span,needSetChild[cmdName]); - if(span.style.cssText.replace(/^\s+$/,'').length == 0){ - domUtils.remove(span,true) - } - }); - rng.moveToBookmark(bk) - } - } - } - - } - function mergesibling(rng,cmdName,value) { - var collapsed = rng.collapsed, - bk = rng.createBookmark(), common; - if (collapsed) { - common = bk.start.parentNode; - while (dtd.$inline[common.tagName]) { - common = common.parentNode; - } - } else { - common = domUtils.getCommonAncestor(bk.start, bk.end); - } - utils.each(domUtils.getElementsByTagName(common, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if (/\s*border\s*:\s*none;?\s*/i.test(span.style.cssText)) { - if(/^\s*border\s*:\s*none;?\s*$/.test(span.style.cssText)){ - domUtils.remove(span, true); - }else{ - domUtils.removeStyle(span,'border'); - } - return - } - if (/border/i.test(span.style.cssText) && span.parentNode.tagName == 'SPAN' && /border/i.test(span.parentNode.style.cssText)) { - span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, ''); - } - if(!(cmdName=='fontborder' && value=='none')){ - var next = span.nextSibling; - while (next && next.nodeType == 1 && next.tagName == 'SPAN' ) { - if(domUtils.isBookmarkNode(next) && cmdName == 'fontborder') { - span.appendChild(next); - next = span.nextSibling; - continue; - } - if (next.style.cssText == span.style.cssText) { - domUtils.moveChild(next, span); - domUtils.remove(next); - } - if (span.nextSibling === next) - break; - next = span.nextSibling; - } - } - - - mergeWithParent(span); - if(browser.ie && browser.version > 8 ){ - //拷贝父亲们的特别的属性,这里只做背景颜色的处理 - var parent = domUtils.findParent(span,function(n){return n.tagName == 'SPAN' && /background-color/.test(n.style.cssText)}); - if(parent && !/background-color/.test(span.style.cssText)){ - span.style.backgroundColor = parent.style.backgroundColor; - } - } - - }); - rng.moveToBookmark(bk); - mergeChild(rng,cmdName,value) - } - - me.addInputRule(function (root) { - utils.each(root.getNodesByTagName('u s del font strike'), function (node) { - if (node.tagName == 'font') { - var cssStyle = []; - for (var p in node.attrs) { - switch (p) { - case 'size': - cssStyle.push('font-size:' + - ({ - '1':'10', - '2':'12', - '3':'16', - '4':'18', - '5':'24', - '6':'32', - '7':'48' - }[node.attrs[p]] || node.attrs[p]) + 'px'); - break; - case 'color': - cssStyle.push('color:' + node.attrs[p]); - break; - case 'face': - cssStyle.push('font-family:' + node.attrs[p]); - break; - case 'style': - cssStyle.push(node.attrs[p]); - } - } - node.attrs = { - 'style': cssStyle.join(';') - }; - } else { - var val = node.tagName == 'u' ? 'underline' : 'line-through'; - node.attrs = { - 'style': (node.getAttr('style') || '') + 'text-decoration:' + val + ';' - } - } - node.tagName = 'span'; - }); -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getAttr('class')){ -// if(/fontstrikethrough/.test(val)){ -// node.setStyle('text-decoration','line-through'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontstrikethrough/,''); -// }else{ -// node.setAttr('class') -// } -// } -// if(/fontborder/.test(val)){ -// node.setStyle('border','1px solid #000'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontborder/,''); -// }else{ -// node.setAttr('class') -// } -// } -// } -// }); - }); -// me.addOutputRule(function(root){ -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getStyle('text-decoration')){ -// if(/line-through/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontstrikethrough'; -// }else{ -// node.setAttr('class','fontstrikethrough') -// } -// } -// -// node.setStyle('text-decoration') -// } -// if(val = node.getStyle('border')){ -// if(/1px/.test(val) && /solid/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontborder'; -// -// }else{ -// node.setAttr('class','fontborder') -// } -// } -// node.setStyle('border') -// -// } -// }); -// }); - for (var p in fonts) { - (function (cmd, style) { - UE.commands[cmd] = { - execCommand: function (cmdName, value) { - value = value || (this.queryCommandState(cmdName) ? 'none' : cmdName == 'underline' ? 'underline' : - cmdName == 'fontborder' ? '1px solid #000' : - 'line-through'); - var me = this, - range = this.selection.getRange(), - text; - - if (value == 'default') { - - if (range.collapsed) { - text = me.document.createTextNode('font'); - range.insertNode(text).select(); - - } - me.execCommand('removeFormat', 'span,a', style); - if (text) { - range.setStartBefore(text).collapse(true); - domUtils.remove(text); - } - mergesibling(range,cmdName,value); - range.select() - } else { - if (!range.collapsed) { - if (needCmd[cmd] && me.queryCommandValue(cmd)) { - me.execCommand('removeFormat', 'span,a', style); - } - range = me.selection.getRange(); - - range.applyInlineStyle('span', {'style': style + ':' + value}); - mergesibling(range, cmdName,value); - range.select(); - } else { - - var span = domUtils.findParentByTagName(range.startContainer, 'span', true); - text = me.document.createTextNode('font'); - if (span && !span.children.length && !span[browser.ie ? 'innerText' : 'textContent'].replace(fillCharReg, '').length) { - //for ie hack when enter - range.insertNode(text); - if (needCmd[cmd]) { - range.selectNode(text).select(); - me.execCommand('removeFormat', 'span,a', style, null); - - span = domUtils.findParentByTagName(text, 'span', true); - range.setStartBefore(text); - - } - span && (span.style.cssText += ';' + style + ':' + value); - range.collapse(true).select(); - - - } else { - range.insertNode(text); - range.selectNode(text).select(); - span = range.document.createElement('span'); - - if (needCmd[cmd]) { - //a标签内的不处理跳过 - if (domUtils.findParentByTagName(text, 'a', true)) { - range.setStartBefore(text).setCursor(); - domUtils.remove(text); - return; - } - me.execCommand('removeFormat', 'span,a', style); - } - - span.style.cssText = style + ':' + value; - - - text.parentNode.insertBefore(span, text); - //修复,span套span 但样式不继承的问题 - if (!browser.ie || browser.ie && browser.version == 9) { - var spanParent = span.parentNode; - while (!domUtils.isBlockElm(spanParent)) { - if (spanParent.tagName == 'SPAN') { - //opera合并style不会加入";" - span.style.cssText = spanParent.style.cssText + ";" + span.style.cssText; - } - spanParent = spanParent.parentNode; - } - } - - - if (opera) { - setTimeout(function () { - range.setStart(span, 0).collapse(true); - mergesibling(range, cmdName,value); - range.select(); - }); - } else { - range.setStart(span, 0).collapse(true); - mergesibling(range,cmdName,value); - range.select(); - } - - //trace:981 - //domUtils.mergeToParent(span) - } - domUtils.remove(text); - } - - - } - return true; - }, - queryCommandValue: function (cmdName) { - var startNode = this.selection.getStart(); - - //trace:946 - if (cmdName == 'underline' || cmdName == 'strikethrough') { - var tmpNode = startNode, value; - while (tmpNode && !domUtils.isBlockElm(tmpNode) && !domUtils.isBody(tmpNode)) { - if (tmpNode.nodeType == 1) { - value = domUtils.getComputedStyle(tmpNode, style); - if (value != 'none') { - return value; - } - } - - tmpNode = tmpNode.parentNode; - } - return 'none'; - } - if (cmdName == 'fontborder') { - var tmp = startNode, val; - while (tmp && dtd.$inline[tmp.tagName]) { - if (val = domUtils.getComputedStyle(tmp, 'border')) { - - if (/1px/.test(val) && /solid/.test(val)) { - return val; - } - } - tmp = tmp.parentNode; - } - return '' - } - - if( cmdName == 'FontSize' ) { - var styleVal = domUtils.getComputedStyle(startNode, style), - tmp = /^([\d\.]+)(\w+)$/.exec( styleVal ); - - if( tmp ) { - - return Math.floor( tmp[1] ) + tmp[2]; - - } - - return styleVal; - - } - - return domUtils.getComputedStyle(startNode, style); - }, - queryCommandState: function (cmdName) { - if (!needCmd[cmdName]) - return 0; - var val = this.queryCommandValue(cmdName); - if (cmdName == 'fontborder') { - return /1px/.test(val) && /solid/.test(val) - } else { - return cmdName == 'underline' ? /underline/.test(val) : /line\-through/.test(val); - - } - - } - }; - })(p, fonts[p]); - } -}; - -// plugins/link.js -/** - * 超链接 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入超链接 - * @command link - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } options 设置自定义属性,例如:url、title、target - * @example - * ```javascript - * editor.execCommand( 'link', '{ - * url:'ueditor.baidu.com', - * title:'ueditor', - * target:'_blank' - * }' ); - * ``` - */ -/** - * 返回当前选中的第一个超链接节点 - * @command link - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { Element } 超链接节点 - * @example - * ```javascript - * editor.queryCommandValue( 'link' ); - * ``` - */ - -/** - * 取消超链接 - * @command unlink - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'unlink'); - * ``` - */ - -UE.plugins['link'] = function(){ - function optimize( range ) { - var start = range.startContainer,end = range.endContainer; - - if ( start = domUtils.findParentByTagName( start, 'a', true ) ) { - range.setStartBefore( start ); - } - if ( end = domUtils.findParentByTagName( end, 'a', true ) ) { - range.setEndAfter( end ); - } - } - - - UE.commands['unlink'] = { - execCommand : function() { - var range = this.selection.getRange(), - bookmark; - if(range.collapsed && !domUtils.findParentByTagName( range.startContainer, 'a', true )){ - return; - } - bookmark = range.createBookmark(); - optimize( range ); - range.removeInlineStyle( 'a' ).moveToBookmark( bookmark ).select(); - }, - queryCommandState : function(){ - return !this.highlight && this.queryCommandValue('link') ? 0 : -1; - } - - }; - function doLink(range,opt,me){ - var rngClone = range.cloneRange(), - link = me.queryCommandValue('link'); - optimize( range = range.adjustmentBoundary() ); - var start = range.startContainer; - if(start.nodeType == 1 && link){ - start = start.childNodes[range.startOffset]; - if(start && start.nodeType == 1 && start.tagName == 'A' && /^(?:https?|ftp|file)\s*:\s*\/\//.test(start[browser.ie?'innerText':'textContent'])){ - start[browser.ie ? 'innerText' : 'textContent'] = utils.html(opt.textValue||opt.href); - - } - } - if( !rngClone.collapsed || link){ - range.removeInlineStyle( 'a' ); - rngClone = range.cloneRange(); - } - - if ( rngClone.collapsed ) { - var a = range.document.createElement( 'a'), - text = ''; - if(opt.textValue){ - - text = utils.html(opt.textValue); - delete opt.textValue; - }else{ - text = utils.html(opt.href); - - } - domUtils.setAttributes( a, opt ); - start = domUtils.findParentByTagName( rngClone.startContainer, 'a', true ); - if(start && domUtils.isInNodeEndBoundary(rngClone,start)){ - range.setStartAfter(start).collapse(true); - - } - a[browser.ie ? 'innerText' : 'textContent'] = text; - range.insertNode(a).selectNode( a ); - } else { - range.applyInlineStyle( 'a', opt ); - - } - } - UE.commands['link'] = { - execCommand : function( cmdName, opt ) { - var range; - opt._href && (opt._href = utils.unhtml(opt._href,/[<">]/g)); - opt.href && (opt.href = utils.unhtml(opt.href,/[<">]/g)); - opt.textValue && (opt.textValue = utils.unhtml(opt.textValue,/[<">]/g)); - doLink(range=this.selection.getRange(),opt,this); - //闭合都不加占位符,如果加了会在a后边多个占位符节点,导致a是图片背景组成的列表,出现空白问题 - range.collapse().select(true); - - }, - queryCommandValue : function() { - var range = this.selection.getRange(), - node; - if ( range.collapsed ) { -// node = this.selection.getStart(); - //在ie下getstart()取值偏上了 - node = range.startContainer; - node = node.nodeType == 1 ? node : node.parentNode; - - if ( node && (node = domUtils.findParentByTagName( node, 'a', true )) && ! domUtils.isInNodeEndBoundary(range,node)) { - - return node; - } - } else { - //trace:1111 如果是

    xx

    startContainer是p就会找不到a - range.shrinkBoundary(); - var start = range.startContainer.nodeType == 3 || !range.startContainer.childNodes[range.startOffset] ? range.startContainer : range.startContainer.childNodes[range.startOffset], - end = range.endContainer.nodeType == 3 || range.endOffset == 0 ? range.endContainer : range.endContainer.childNodes[range.endOffset-1], - common = range.getCommonAncestor(); - node = domUtils.findParentByTagName( common, 'a', true ); - if ( !node && common.nodeType == 1){ - - var as = common.getElementsByTagName( 'a' ), - ps,pe; - - for ( var i = 0,ci; ci = as[i++]; ) { - ps = domUtils.getPosition( ci, start ),pe = domUtils.getPosition( ci,end); - if ( (ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) { - node = ci; - break; - } - } - } - return node; - } - - }, - queryCommandState : function() { - //判断如果是视频的话连接不可用 - //fix 853 - var img = this.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1); - return flag ? -1 : 0; - } - }; -}; - -// plugins/iframe.js -///import core -///import plugins\inserthtml.js -///commands 插入框架 -///commandsName InsertFrame -///commandsTitle 插入Iframe -///commandsDialog dialogs\insertframe - -UE.plugins['insertframe'] = function() { - var me =this; - function deleteIframe(){ - me._iframe && delete me._iframe; - } - - me.addListener("selectionchange",function(){ - deleteIframe(); - }); - -}; - - - -// plugins/scrawl.js -///import core -///commands 涂鸦 -///commandsName Scrawl -///commandsTitle 涂鸦 -///commandsDialog dialogs\scrawl -UE.commands['scrawl'] = { - queryCommandState : function(){ - return ( browser.ie && browser.version <= 8 ) ? -1 :0; - } -}; - - -// plugins/removeformat.js -/** - * 清除格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 清除文字样式 - * @command removeformat - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} tags 以逗号隔开的标签。如:strong - * @param {String} style 样式如:color - * @param {String} attrs 属性如:width - * @example - * ```javascript - * editor.execCommand( 'removeformat', 'strong','color','width' ); - * ``` - */ - -UE.plugins['removeformat'] = function(){ - var me = this; - me.setOpt({ - 'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var', - 'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign' - }); - me.commands['removeformat'] = { - execCommand : function( cmdName, tags, style, attrs,notIncludeA ) { - - var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) , - removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ), - range = new dom.Range( this.document ), - bookmark,node,parent, - filter = function( node ) { - return node.nodeType == 1; - }; - - function isRedundantSpan (node) { - if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){ - return 0; - } - if (browser.ie) { - //ie 下判断实效,所以只能简单用style来判断 - //return node.style.cssText == '' ? 1 : 0; - var attrs = node.attributes; - if ( attrs.length ) { - for ( var i = 0,l = attrs.length; i - var node = range.startContainer, - tmp, - collapsed = range.collapsed; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setStartBefore(node); - //trace:937 - //更新结束边界 - if(range.startContainer === range.endContainer){ - range.endOffset--; - } - domUtils.remove(node); - node = tmp; - } - - if(!collapsed){ - node = range.endContainer; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setEndBefore(node); - domUtils.remove(node); - - node = tmp; - } - - - } - } - - - - range = this.selection.getRange(); - doRemove( range ); - range.select(); - - } - - }; - -}; - - -// plugins/blockquote.js -/** - * 添加引用 - * @file - * @since 1.2.6.1 - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'blockquote' ); - * ``` - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } attrs 节点属性 - * @example - * ```javascript - * editor.execCommand( 'blockquote',{ - * style: "color: red;" - * } ); - * ``` - */ - - -UE.plugins['blockquote'] = function(){ - var me = this; - function getObj(editor){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),'blockquote'); - } - me.commands['blockquote'] = { - execCommand : function( cmdName, attrs ) { - var range = this.selection.getRange(), - obj = getObj(this), - blockquote = dtd.blockquote, - bookmark = range.createBookmark(); - - if ( obj ) { - - var start = range.startContainer, - startBlock = domUtils.isBlockElm(start) ? start : domUtils.findParent(start,function(node){return domUtils.isBlockElm(node)}), - - end = range.endContainer, - endBlock = domUtils.isBlockElm(end) ? end : domUtils.findParent(end,function(node){return domUtils.isBlockElm(node)}); - - //处理一下li - startBlock = domUtils.findParentByTagName(startBlock,'li',true) || startBlock; - endBlock = domUtils.findParentByTagName(endBlock,'li',true) || endBlock; - - - if(startBlock.tagName == 'LI' || startBlock.tagName == 'TD' || startBlock === obj || domUtils.isBody(startBlock)){ - domUtils.remove(obj,true); - }else{ - domUtils.breakParent(startBlock,obj); - } - - if(startBlock !== endBlock){ - obj = domUtils.findParentByTagName(endBlock,'blockquote'); - if(obj){ - if(endBlock.tagName == 'LI' || endBlock.tagName == 'TD'|| domUtils.isBody(endBlock)){ - obj.parentNode && domUtils.remove(obj,true); - }else{ - domUtils.breakParent(endBlock,obj); - } - - } - } - - var blockquotes = domUtils.getElementsByTagName(this.document,'blockquote'); - for(var i=0,bi;bi=blockquotes[i++];){ - if(!bi.childNodes.length){ - domUtils.remove(bi); - }else if(domUtils.getPosition(bi,startBlock)&domUtils.POSITION_FOLLOWING && domUtils.getPosition(bi,endBlock)&domUtils.POSITION_PRECEDING){ - domUtils.remove(bi,true); - } - } - - - - - } else { - - var tmpRange = range.cloneRange(), - node = tmpRange.startContainer.nodeType == 1 ? tmpRange.startContainer : tmpRange.startContainer.parentNode, - preNode = node, - doEnd = 1; - - //调整开始 - while ( 1 ) { - if ( domUtils.isBody(node) ) { - if ( preNode !== node ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - doEnd = 0; - } else { - tmpRange.setStartBefore( preNode ); - } - }else{ - tmpRange.setStart(node,0); - } - - break; - } - if ( !blockquote[node.tagName] ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - } else{ - tmpRange.setStartBefore( preNode); - } - break; - } - - preNode = node; - node = node.parentNode; - } - - //调整结束 - if ( doEnd ) { - preNode = node = node = tmpRange.endContainer.nodeType == 1 ? tmpRange.endContainer : tmpRange.endContainer.parentNode; - while ( 1 ) { - - if ( domUtils.isBody( node ) ) { - if ( preNode !== node ) { - - tmpRange.setEndAfter( preNode ); - - } else { - tmpRange.setEnd( node, node.childNodes.length ); - } - - break; - } - if ( !blockquote[node.tagName] ) { - tmpRange.setEndAfter( preNode ); - break; - } - - preNode = node; - node = node.parentNode; - } - - } - - - node = range.document.createElement( 'blockquote' ); - domUtils.setAttributes( node, attrs ); - node.appendChild( tmpRange.extractContents() ); - tmpRange.insertNode( node ); - //去除重复的 - var childs = domUtils.getElementsByTagName(node,'blockquote'); - for(var i=0,ci;ci=childs[i++];){ - if(ci.parentNode){ - domUtils.remove(ci,true); - } - } - - } - range.moveToBookmark( bookmark ).select(); - }, - queryCommandState : function() { - return getObj(this) ? 1 : 0; - } - }; -}; - - - -// plugins/convertcase.js -/** - * 大小写转换 - * @file - * @since 1.2.6.1 - */ - -/** - * 把选区内文本变大写,与“tolowercase”命令互斥 - * @command touppercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'touppercase' ); - * ``` - */ - -/** - * 把选区内文本变小写,与“touppercase”命令互斥 - * @command tolowercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'tolowercase' ); - * ``` - */ -UE.commands['touppercase'] = -UE.commands['tolowercase'] = { - execCommand:function (cmd) { - var me = this; - var rng = me.selection.getRange(); - if(rng.collapsed){ - return rng; - } - var bk = rng.createBookmark(), - bkEnd = bk.end, - filterFn = function( node ) { - return !domUtils.isBr(node) && !domUtils.isWhitespace( node ); - }, - curNode = domUtils.getNextDomNode( bk.start, false, filterFn ); - while ( curNode && (domUtils.getPosition( curNode, bkEnd ) & domUtils.POSITION_PRECEDING) ) { - - if ( curNode.nodeType == 3 ) { - curNode.nodeValue = curNode.nodeValue[cmd == 'touppercase' ? 'toUpperCase' : 'toLowerCase'](); - } - curNode = domUtils.getNextDomNode( curNode, true, filterFn ); - if(curNode === bkEnd){ - break; - } - - } - rng.moveToBookmark(bk).select(); - } -}; - - - -// plugins/indent.js -/** - * 首行缩进 - * @file - * @since 1.2.6.1 - */ - -/** - * 缩进 - * @command indent - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'indent' ); - * ``` - */ -UE.commands['indent'] = { - execCommand : function() { - var me = this,value = me.queryCommandState("indent") ? "0em" : (me.options.indentValue || '2em'); - me.execCommand('Paragraph','p',{style:'text-indent:'+ value}); - }, - queryCommandState : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return pN && pN.style.textIndent && parseInt(pN.style.textIndent) ? 1 : 0; - } - -}; - - -// plugins/print.js -/** - * 打印 - * @file - * @since 1.2.6.1 - */ - -/** - * 打印 - * @command print - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'print' ); - * ``` - */ -UE.commands['print'] = { - execCommand : function(){ - this.window.print(); - }, - notNeedUndo : 1 -}; - - - -// plugins/preview.js -/** - * 预览 - * @file - * @since 1.2.6.1 - */ - -/** - * 预览 - * @command preview - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'preview' ); - * ``` - */ -UE.commands['preview'] = { - execCommand : function(){ - var w = window.open('', '_blank', ''), - d = w.document; - d.open(); - d.write('
    '+this.getContent(null,null,true)+'
    '); - d.close(); - }, - notNeedUndo : 1 -}; - - -// plugins/selectall.js -/** - * 全选 - * @file - * @since 1.2.6.1 - */ - -/** - * 选中所有内容 - * @command selectall - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'selectall' ); - * ``` - */ -UE.plugins['selectall'] = function(){ - var me = this; - me.commands['selectall'] = { - execCommand : function(){ - //去掉了原生的selectAll,因为会出现报错和当内容为空时,不能出现闭合状态的光标 - var me = this,body = me.body, - range = me.selection.getRange(); - range.selectNodeContents(body); - if(domUtils.isEmptyBlock(body)){ - //opera不能自动合并到元素的里边,要手动处理一下 - if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){ - range.setStartAtFirst(body.firstChild); - } - range.collapse(true); - } - range.select(true); - }, - notNeedUndo : 1 - }; - - - //快捷键 - me.addshortcutkey({ - "selectAll" : "ctrl+65" - }); -}; - - -// plugins/paragraph.js -/** - * 段落样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落格式 - * @command paragraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' - * @param {Object} attrs 标签的属性 - * @example - * ```javascript - * editor.execCommand( 'Paragraph','h1','{ - * class:'test' - * }' ); - * ``` - */ - -/** - * 返回选区内节点标签名 - * @command paragraph - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 节点标签名 - * @example - * ```javascript - * editor.queryCommandValue( 'Paragraph' ); - * ``` - */ - -UE.plugins['paragraph'] = function() { - var me = this, - block = domUtils.isBlockElm, - notExchange = ['TD','LI','PRE'], - - doParagraph = function(range,style,attrs,sourceCmdName){ - var bookmark = range.createBookmark(), - filterFn = function( node ) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace( node ); - }, - para; - - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - - para = range.document.createElement( style ); - if(attrs){ - domUtils.setAttributes(para,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - para.style.cssText = attrs.style; - } - } - para.appendChild( tmpRange.extractContents() ); - //需要内容占位 - if(domUtils.isEmptyNode(para)){ - domUtils.fillChar(range.document,para); - - } - - tmpRange.insertNode( para ); - - var parent = para.parentNode; - //如果para上一级是一个block元素且不是body,td就删除它 - if ( block( parent ) && !domUtils.isBody( para.parentNode ) && utils.indexOf(notExchange,parent.tagName)==-1) { - //存储dir,style - if(!(sourceCmdName && sourceCmdName == 'customstyle')){ - parent.getAttribute('dir') && para.setAttribute('dir',parent.getAttribute('dir')); - //trace:1070 - parent.style.cssText && (para.style.cssText = parent.style.cssText + ';' + para.style.cssText); - //trace:1030 - parent.style.textAlign && !para.style.textAlign && (para.style.textAlign = parent.style.textAlign); - parent.style.textIndent && !para.style.textIndent && (para.style.textIndent = parent.style.textIndent); - parent.style.padding && !para.style.padding && (para.style.padding = parent.style.padding); - } - - //trace:1706 选择的就是h1-6要删除 - if(attrs && /h\d/i.test(parent.tagName) && !/h\d/i.test(para.tagName) ){ - domUtils.setAttributes(parent,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - parent.style.cssText = attrs.style; - } - domUtils.remove(para,true); - para = parent; - }else{ - domUtils.remove( para.parentNode, true ); - } - - } - if( utils.indexOf(notExchange,parent.tagName)!=-1){ - current = parent; - }else{ - current = para; - } - - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}); - me.commands['paragraph'] = { - execCommand : function( cmdName, style,attrs,sourceCmdName ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('p'); - range.insertNode(txt); - //去掉冗余的fillchar - if(browser.ie){ - var node = txt.previousSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - node = txt.nextSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - } - - } - range = doParagraph(range,style,attrs,sourceCmdName); - if(txt){ - range.setStartBefore(txt).collapse(true); - pN = txt.parentNode; - - domUtils.remove(txt); - - if(domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)){ - domUtils.fillNode(this.document,pN); - } - - } - - if(browser.gecko && range.collapsed && range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset]; - if(child && child.nodeType == 1 && child.tagName.toLowerCase() == style){ - range.setStart(child,0).collapse(true); - } - } - //trace:1097 原来有true,原因忘了,但去了就不能清除多余的占位符了 - range.select(); - - - return true; - }, - queryCommandValue : function() { - var node = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return node ? node.tagName.toLowerCase() : ''; - } - }; -}; - - -// plugins/directionality.js -/** - * 设置文字输入的方向的插件 - * @file - * @since 1.2.6.1 - */ -(function() { - var block = domUtils.isBlockElm , - getObj = function(editor){ -// var startNode = editor.selection.getStart(), -// parents; -// if ( startNode ) { -// //查找所有的是block的父亲节点 -// parents = domUtils.findParents( startNode, true, block, true ); -// for ( var i = 0,ci; ci = parents[i++]; ) { -// if ( ci.getAttribute( 'dir' ) ) { -// return ci; -// } -// } -// } - return domUtils.filterNodeList(editor.selection.getStartElementPath(),function(n){return n && n.nodeType == 1 && n.getAttribute('dir')}); - - }, - doDirectionality = function(range,editor,forward){ - - var bookmark, - filterFn = function( node ) { - return node.nodeType == 1 ? !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }, - - obj = getObj( editor ); - - if ( obj && range.collapsed ) { - obj.setAttribute( 'dir', forward ); - return range; - } - bookmark = range.createBookmark(); - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - var common = tmpRange.getCommonAncestor(); - if ( !domUtils.isBody( common ) && block( common ) ) { - //遍历到了block节点 - common.setAttribute( 'dir', forward ); - current = common; - } else { - //没有遍历到,添加一个block节点 - var p = range.document.createElement( 'p' ); - p.setAttribute( 'dir', forward ); - var frag = tmpRange.extractContents(); - p.appendChild( frag ); - tmpRange.insertNode( p ); - current = p; - } - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - - /** - * 文字输入方向 - * @command directionality - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } forward 传入'ltr'表示从左向右输入,传入'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.execCommand( 'directionality', 'ltr'); - * ``` - */ - - /** - * 查询当前选区的文字输入方向 - * @command directionality - * @method queryCommandValue - * @param { String } cmdName 命令字符串 - * @return { String } 返回'ltr'表示从左向右输入,返回'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.queryCommandValue( 'directionality'); - * ``` - */ - UE.commands['directionality'] = { - execCommand : function( cmdName,forward ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('d'); - range.insertNode(txt); - } - doDirectionality(range,this,forward); - if(txt){ - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - return true; - }, - queryCommandValue : function() { - var node = getObj(this); - return node ? node.getAttribute('dir') : 'ltr'; - } - }; -})(); - - - -// plugins/horizontal.js -/** - * 插入分割线插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入分割线 - * @command horizontal - * @method execCommand - * @param { String } cmdName 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'horizontal' ); - * ``` - */ -UE.plugins['horizontal'] = function(){ - var me = this; - me.commands['horizontal'] = { - execCommand : function( cmdName ) { - var me = this; - if(me.queryCommandState(cmdName)!==-1){ - me.execCommand('insertHtml','
    '); - var range = me.selection.getRange(), - start = range.startContainer; - if(start.nodeType == 1 && !start.childNodes[range.startOffset] ){ - - var tmp; - if(tmp = start.childNodes[range.startOffset - 1]){ - if(tmp.nodeType == 1 && tmp.tagName == 'HR'){ - if(me.options.enterTag == 'p'){ - tmp = me.document.createElement('p'); - range.insertNode(tmp); - range.setStart(tmp,0).setCursor(); - - }else{ - tmp = me.document.createElement('br'); - range.insertNode(tmp); - range.setStartBefore(tmp).setCursor(); - } - } - } - - } - return true; - } - - }, - //边界在table里不能加分隔线 - queryCommandState : function() { - return domUtils.filterNodeList(this.selection.getStartElementPath(),'table') ? -1 : 0; - } - }; -// me.addListener('delkeyup',function(){ -// var rng = this.selection.getRange(); -// if(browser.ie && browser.version > 8){ -// rng.txtToElmBoundary(true); -// if(domUtils.isStartInblock(rng)){ -// var tmpNode = rng.startContainer; -// var pre = tmpNode.previousSibling; -// if(pre && domUtils.isTagNode(pre,'hr')){ -// domUtils.remove(pre); -// rng.select(); -// return; -// } -// } -// } -// if(domUtils.isBody(rng.startContainer)){ -// var hr = rng.startContainer.childNodes[rng.startOffset -1]; -// if(hr && hr.nodeName == 'HR'){ -// var next = hr.nextSibling; -// if(next){ -// rng.setStart(next,0) -// }else if(hr.previousSibling){ -// rng.setStartAtLast(hr.previousSibling) -// }else{ -// var p = this.document.createElement('p'); -// hr.parentNode.insertBefore(p,hr); -// domUtils.fillNode(this.document,p); -// rng.setStart(p,0); -// } -// domUtils.remove(hr); -// rng.setCursor(false,true); -// } -// } -// }) - me.addListener('delkeydown',function(name,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - if(domUtils.isStartInblock(rng)){ - var tmpNode = rng.startContainer; - var pre = tmpNode.previousSibling; - if(pre && domUtils.isTagNode(pre,'hr')){ - domUtils.remove(pre); - rng.select(); - domUtils.preventDefault(evt); - return true; - - } - } - - }) -}; - - - -// plugins/time.js -/** - * 插入时间和日期 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入时间,默认格式:12:59:59 - * @command time - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'time'); - * ``` - */ - -/** - * 插入日期,默认格式:2013-08-30 - * @command date - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'date'); - * ``` - */ -UE.commands['time'] = UE.commands["date"] = { - execCommand : function(cmd, format){ - var date = new Date; - - function formatTime(date, format) { - var hh = ('0' + date.getHours()).slice(-2), - ii = ('0' + date.getMinutes()).slice(-2), - ss = ('0' + date.getSeconds()).slice(-2); - format = format || 'hh:ii:ss'; - return format.replace(/hh/ig, hh).replace(/ii/ig, ii).replace(/ss/ig, ss); - } - function formatDate(date, format) { - var yyyy = ('000' + date.getFullYear()).slice(-4), - yy = yyyy.slice(-2), - mm = ('0' + (date.getMonth()+1)).slice(-2), - dd = ('0' + date.getDate()).slice(-2); - format = format || 'yyyy-mm-dd'; - return format.replace(/yyyy/ig, yyyy).replace(/yy/ig, yy).replace(/mm/ig, mm).replace(/dd/ig, dd); - } - - this.execCommand('insertHtml',cmd == "time" ? formatTime(date, format):formatDate(date, format) ); - } -}; - - -// plugins/rowspacing.js -/** - * 段前段后间距插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 设置段间距 - * @command rowspacing - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 段间距的值,以px为单位 - * @param { String } dir 间距位置,top或bottom,分别表示段前和段后 - * @example - * ```javascript - * editor.execCommand( 'rowspacing', '10', 'top' ); - * ``` - */ - -UE.plugins['rowspacing'] = function(){ - var me = this; - me.setOpt({ - 'rowspacingtop':['5', '10', '15', '20', '25'], - 'rowspacingbottom':['5', '10', '15', '20', '25'] - - }); - me.commands['rowspacing'] = { - execCommand : function( cmdName,value,dir ) { - this.execCommand('paragraph','p',{style:'margin-'+dir+':'+value + 'px'}); - return true; - }, - queryCommandValue : function(cmdName,dir) { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node) }), - value; - //trace:1026 - if(pN){ - value = domUtils.getComputedStyle(pN,'margin-'+dir).replace(/[^\d]/g,''); - return !value ? 0 : value; - } - return 0; - - } - }; -}; - - - - -// plugins/lineheight.js -/** - * 设置行内间距 - * @file - * @since 1.2.6.1 - */ -UE.plugins['lineheight'] = function(){ - var me = this; - me.setOpt({'lineheight':['1', '1.5','1.75','2', '3', '4', '5']}); - - /** - * 行距 - * @command lineheight - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } value 传入的行高值, 该值是当前字体的倍数, 例如: 1.5, 1.75 - * @example - * ```javascript - * editor.execCommand( 'lineheight', 1.5); - * ``` - */ - /** - * 查询当前选区内容的行高大小 - * @command lineheight - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前行高大小 - * @example - * ```javascript - * editor.queryCommandValue( 'lineheight' ); - * ``` - */ - - me.commands['lineheight'] = { - execCommand : function( cmdName,value ) { - this.execCommand('paragraph','p',{style:'line-height:'+ (value == "1" ? "normal" : value + 'em') }); - return true; - }, - queryCommandValue : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node)}); - if(pN){ - var value = domUtils.getComputedStyle(pN,'line-height'); - return value == 'normal' ? 1 : value.replace(/[^\d.]*/ig,""); - } - } - }; -}; - - - - -// plugins/insertcode.js -/** - * 插入代码插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['insertcode'] = function() { - var me = this; - me.ready(function(){ - utils.cssRule('pre','pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}', - me.document) - }); - me.setOpt('insertcode',{ - 'as3':'ActionScript3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'Css', - 'cf':'CodeFunction', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'Html', - 'java':'Java', - 'jfx':'JavaFx', - 'js':'Javascript', - 'pl':'Perl', - 'php':'Php', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'Sql', - 'vb':'Vb', - 'xml':'Xml' - }); - - /** - * 插入代码 - * @command insertcode - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } lang 插入代码的语言 - * @example - * ```javascript - * editor.execCommand( 'insertcode', 'javascript' ); - * ``` - */ - - /** - * 如果选区所在位置是插入插入代码区域,返回代码的语言 - * @command insertcode - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回代码的语言 - * @example - * ```javascript - * editor.queryCommandValue( 'insertcode' ); - * ``` - */ - - me.commands['insertcode'] = { - execCommand : function(cmd,lang){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - pre.className = 'brush:'+lang+';toolbar:false;'; - }else{ - var code = ''; - if(rng.collapsed){ - code = browser.ie && browser.ie11below ? (browser.version <= 8 ? ' ':''):'
    '; - }else{ - var frag = rng.extractContents(); - var div = me.document.createElement('div'); - div.appendChild(frag); - - utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\r\t]/g,'')),me.options.filterTxtRules).children,function(node){ - if(browser.ie && browser.ie11below && browser.version > 8){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }) - if(!/\n$/.test(code)){ - code += '\n'; - } - } - }else{ - code += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(code)){ - code = code.replace(/\n$/,''); - } - }else{ - if(browser.ie && browser.ie11below){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }); - if(!/br>$/.test(code)){ - code += '
    '; - } - } - }else{ - code += node.data + '
    ' - } - if(!node.nextSibling() && /
    $/.test(code)){ - code = code.replace(/
    $/,''); - } - - }else{ - code += (node.type == 'element' ? (dtd.$empty[node.tagName] ? '' : node.innerText()) : node.data); - if(!/br\/?\s*>$/.test(code)){ - if(!node.nextSibling()) - return; - code += '
    ' - } - } - - } - - }); - } - me.execCommand('inserthtml','
    '+code+'
    ',true); - - pre = me.document.getElementById('coder'); - domUtils.removeAttributes(pre,'id'); - var tmpNode = pre.previousSibling; - - if(tmpNode && (tmpNode.nodeType == 3 && tmpNode.nodeValue.length == 1 && browser.ie && browser.version == 6 || domUtils.isEmptyBlock(tmpNode))){ - - domUtils.remove(tmpNode) - } - var rng = me.selection.getRange(); - if(domUtils.isEmptyBlock(pre)){ - rng.setStart(pre,0).setCursor(false,true) - }else{ - rng.selectNodeContents(pre).select() - } - } - - - - }, - queryCommandValue : function(){ - var path = this.selection.getStartElementPath(); - var lang = ''; - utils.each(path,function(node){ - if(node.nodeName =='PRE'){ - var match = node.className.match(/brush:([^;]+)/); - lang = match && match[1] ? match[1] : ''; - return false; - } - }); - return lang; - } - }; - - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var brs = pre.getNodesByTagName('br'); - if(brs.length){ - browser.ie && browser.ie11below && browser.version > 8 && utils.each(brs,function(br){ - var txt = UE.uNode.createText('\n'); - br.parentNode.insertBefore(txt,br); - br.parentNode.removeChild(br); - }); - return; - } - if(browser.ie && browser.ie11below && browser.version > 8) - return; - var code = pre.innerText().split(/\n/); - pre.innerHTML(''); - utils.each(code,function(c){ - if(c.length){ - pre.appendChild(UE.uNode.createText(c)); - } - pre.appendChild(UE.uNode.createElement('br')) - }) - }) - }); - me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var code = ''; - utils.each(pre.children,function(n){ - if(n.type == 'text'){ - //在ie下文本内容有可能末尾带有\n要去掉 - //trace:3396 - code += n.data.replace(/[ ]/g,' ').replace(/\n$/,''); - }else{ - if(n.tagName == 'br'){ - code += '\n' - }else{ - code += (!dtd.$empty[n.tagName] ? '' : n.innerText()); - } - - } - - }); - - pre.innerText(code.replace(/( |\n)+$/,'')) - }) - }); - //不需要判断highlight的command列表 - me.notNeedCodeQuery ={ - help:1, - undo:1, - redo:1, - source:1, - print:1, - searchreplace:1, - fullscreen:1, - preview:1, - insertparagraph:1, - elementpath:1, - insertcode:1, - inserthtml:1, - selectall:1 - }; - //将queyCommamndState重置 - var orgQuery = me.queryCommandState; - me.queryCommandState = function(cmd){ - var me = this; - - if(!me.notNeedCodeQuery[cmd.toLowerCase()] && me.selection && me.queryCommandValue('insertcode')){ - return -1; - } - return UE.Editor.prototype.queryCommandState.apply(this,arguments) - }; - me.addListener('beforeenterkeydown',function(){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(!rng.collapsed){ - rng.deleteContents(); - } - if(!browser.ie || browser.ie9above){ - var tmpNode = me.document.createElement('br'),pre; - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true); - var next = tmpNode.nextSibling; - if(!next && (!browser.ie || browser.version > 10)){ - rng.insertNode(tmpNode.cloneNode(false)); - }else{ - rng.setStartAfter(tmpNode); - } - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[\\s'+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([\\s'+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - if(str){ - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - } - rng.collapse(true).select(true); - }else{ - if(browser.version > 8){ - - var txt = me.document.createTextNode('\n'); - var start = rng.startContainer; - if(rng.startOffset == 0){ - var preNode = start.previousSibling; - if(preNode){ - rng.insertNode(txt); - var fillchar = me.document.createTextNode(' '); - rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - }else{ - rng.insertNode(txt).setStartAfter(txt); - var fillchar = me.document.createTextNode(' '); - start = rng.startContainer.childNodes[rng.startOffset]; - if(start && !/^\n/.test(start.nodeValue)){ - rng.setStartBefore(txt) - } - rng.insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - - }else{ - var tmpNode = me.document.createElement('br'); - rng.insertNode(tmpNode); - rng.insertNode(me.document.createTextNode(domUtils.fillChar)); - rng.setStartAfter(tmpNode); - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[ '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([ '+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - rng.collapse(true).select(); - } - - - } - me.fireEvent('saveScene'); - return true; - } - - - }); - - me.addListener('tabkeydown',function(cmd,evt){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(evt.shiftKey){ - - }else{ - if(!rng.collapsed){ - var bk = rng.createBookmark(); - var start = bk.start.previousSibling; - - while(start){ - if(pre.firstChild === start && !domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start); - - break; - } - if(domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling); - - break; - } - start = start.previousSibling; - } - var end = bk.end; - start = bk.start.nextSibling; - if(pre.firstChild === bk.start){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - - } - while(start && start !== end){ - if(domUtils.isBr(start) && start.nextSibling){ - if(start.nextSibling === end){ - break; - } - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - } - - start = start.nextSibling; - } - rng.moveToBookmark(bk).select(); - }else{ - var tmpNode = me.document.createTextNode(' '); - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true); - } - } - - - me.fireEvent('saveScene'); - return true; - } - - - }); - - - me.addListener('beforeinserthtml',function(evtName,html){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - if(!rng.collapsed){ - rng.deleteContents() - } - var htmlstr = ''; - if(browser.ie && browser.version > 8){ - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - htmlstr += cn.innerText(); - } - }else{ - htmlstr += cn.data - } - }) - if(!/\n$/.test(htmlstr)){ - htmlstr += '\n'; - } - } - }else{ - htmlstr += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(htmlstr)){ - htmlstr = htmlstr.replace(/\n$/,''); - } - }); - var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/ /g,' '))); - rng.insertNode(tmpNode).selectNode(tmpNode).select(); - }else{ - var frag = me.document.createDocumentFragment(); - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(/ /g,' ')))); - - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( cn.data.replace(/ /g,' ')))); - - } - }) - if(frag.lastChild.nodeName != 'BR'){ - frag.appendChild(me.document.createElement('br')) - } - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( node.data.replace(/ /g,' ')))); - } - if(!node.nextSibling() && frag.lastChild.nodeName == 'BR'){ - frag.removeChild(frag.lastChild) - } - - - }); - rng.insertNode(frag).select(); - - } - - return true; - } - }); - //方向键的处理 - me.addListener('keydown',function(cmd,evt){ - var me = this,keyCode = evt.keyCode || evt.which; - if(keyCode == 40){ - var rng = me.selection.getRange(),pre,start = rng.startContainer; - if(rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer,'pre',true)) && !pre.nextSibling){ - var last = pre.lastChild - while(last && last.nodeName == 'BR'){ - last = last.previousSibling; - } - if(last === start || rng.startContainer === pre && rng.startOffset == pre.childNodes.length){ - me.execCommand('insertparagraph'); - domUtils.preventDefault(evt) - } - - } - } - }); - //trace:3395 - me.addListener('delkeydown',function(type,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - var start = rng.startContainer; - if(domUtils.isTagNode(start,'pre') && rng.collapsed && domUtils.isStartInblock(rng)){ - var p = me.document.createElement('p'); - domUtils.fillNode(me.document,p); - start.parentNode.insertBefore(p,start); - domUtils.remove(start); - rng.setStart(p,0).setCursor(false,true); - domUtils.preventDefault(evt); - return true; - } - }) -}; - - -// plugins/cleardoc.js -/** - * 清空文档插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 清空文档 - * @command cleardoc - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('cleardoc'); - * ``` - */ - -UE.commands['cleardoc'] = { - execCommand : function( cmdName) { - var me = this, - enterTag = me.options.enterTag, - range = me.selection.getRange(); - if(enterTag == "br"){ - me.body.innerHTML = "
    "; - range.setStart(me.body,0).setCursor(); - }else{ - me.body.innerHTML = "

    "+(ie ? "" : "
    ")+"

    "; - range.setStart(me.body.firstChild,0).setCursor(false,true); - } - setTimeout(function(){ - me.fireEvent("clearDoc"); - },0); - - } -}; - - - -// plugins/anchor.js -/** - * 锚点插件,为UEditor提供插入锚点支持 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('anchor', function (){ - - return { - bindEvents:{ - 'ready':function(){ - utils.cssRule('anchor', - '.anchorclass{background: url(\'' - + this.options.themePath - + this.options.theme +'/images/anchor.gif\') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}', - this.document); - } - }, - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(a){ - var val; - if(val = a.getAttr('anchorname')){ - a.tagName = 'a'; - a.setAttr({ - anchorname : '', - name : val, - 'class' : '' - }) - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('a'),function(a){ - var val; - if((val = a.getAttr('name')) && !a.getAttr('href')){ - a.tagName = 'img'; - a.setAttr({ - anchorname :a.getAttr('name'), - 'class' : 'anchorclass' - }); - a.setAttr('name') - - } - }) - - }, - commands:{ - /** - * 插入锚点 - * @command anchor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } name 锚点名称字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('anchor', 'anchor1'); - * ``` - */ - 'anchor':{ - execCommand:function (cmd, name) { - var range = this.selection.getRange(),img = range.getClosedNode(); - if (img && img.getAttribute('anchorname')) { - if (name) { - img.setAttribute('anchorname', name); - } else { - range.setStartBefore(img).setCursor(); - domUtils.remove(img); - } - } else { - if (name) { - //只在选区的开始插入 - var anchor = this.document.createElement('img'); - range.collapse(true); - domUtils.setAttributes(anchor,{ - 'anchorname':name, - 'class':'anchorclass' - }); - range.insertNode(anchor).setStartAfter(anchor).setCursor(false,true); - } - } - } - } - } - } -}); - - -// plugins/wordcount.js -///import core -///commands 字数统计 -///commandsName WordCount,wordCount -///commandsTitle 字数统计 -/* - * Created by JetBrains WebStorm. - * User: taoqili - * Date: 11-9-7 - * Time: 下午8:18 - * To change this template use File | Settings | File Templates. - */ - -UE.plugins['wordcount'] = function(){ - var me = this; - me.setOpt('wordCount',true); - me.addListener('contentchange',function(){ - me.fireEvent('wordcount'); - }); - var timer; - me.addListener('ready',function(){ - var me = this; - domUtils.on(me.body,"keyup",function(evt){ - var code = evt.keyCode||evt.which, - //忽略的按键,ctr,alt,shift,方向键 - ignores = {"16":1,"18":1,"20":1,"37":1,"38":1,"39":1,"40":1}; - if(code in ignores) return; - clearTimeout(timer); - timer = setTimeout(function(){ - me.fireEvent('wordcount'); - },200) - }) - }); -}; - - -// plugins/pagebreak.js -/** - * 分页功能插件 - * @file - * @since 1.2.6.1 - */ -UE.plugins['pagebreak'] = function () { - var me = this, - notBreakTags = ['td']; - me.setOpt('pageBreakTag','_ueditor_page_break_tag_'); - - function fillNode(node){ - if(domUtils.isEmptyBlock(node)){ - var firstChild = node.firstChild,tmpNode; - - while(firstChild && firstChild.nodeType == 1 && domUtils.isEmptyBlock(firstChild)){ - tmpNode = firstChild; - firstChild = firstChild.firstChild; - } - !tmpNode && (tmpNode = node); - domUtils.fillNode(me.document,tmpNode); - } - } - //分页符样式添加 - - me.ready(function(){ - utils.cssRule('pagebreak','.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',me.document); - }); - function isHr(node){ - return node && node.nodeType == 1 && node.tagName == 'HR' && node.className == 'pagebreak'; - } - me.addInputRule(function(root){ - root.traversal(function(node){ - if(node.type == 'text' && node.data == me.options.pageBreakTag){ - var hr = UE.uNode.createElement('
    '); - node.parentNode.insertBefore(hr,node); - node.parentNode.removeChild(node) - } - }) - }); - me.addOutputRule(function(node){ - utils.each(node.getNodesByTagName('hr'),function(n){ - if(n.getAttr('class') == 'pagebreak'){ - var txt = UE.uNode.createText(me.options.pageBreakTag); - n.parentNode.insertBefore(txt,n); - n.parentNode.removeChild(n); - } - }) - - }); - - /** - * 插入分页符 - * @command pagebreak - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 在表格中插入分页符会把表格切分成两部分 - * @remind 获取编辑器内的数据时, 编辑器会把分页符转换成“_ueditor_page_break_tag_”字符串, - * 以便于提交数据到服务器端后处理分页。 - * @example - * ```javascript - * editor.execCommand( 'pagebreak'); //插入一个hr标签,带有样式类名pagebreak - * ``` - */ - - me.commands['pagebreak'] = { - execCommand:function () { - var range = me.selection.getRange(),hr = me.document.createElement('hr'); - domUtils.setAttributes(hr,{ - 'class' : 'pagebreak', - noshade:"noshade", - size:"5" - }); - domUtils.unSelectable(hr); - //table单独处理 - var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true), - - parents = [], pN; - if (node) { - switch (node.tagName) { - case 'TD': - pN = node.parentNode; - if (!pN.previousSibling) { - var table = domUtils.findParentByTagName(pN, 'table'); -// var tableWrapDiv = table.parentNode; -// if(tableWrapDiv && tableWrapDiv.nodeType == 1 -// && tableWrapDiv.tagName == 'DIV' -// && tableWrapDiv.getAttribute('dropdrag') -// ){ -// domUtils.remove(tableWrapDiv,true); -// } - table.parentNode.insertBefore(hr, table); - parents = domUtils.findParents(hr, true); - - } else { - pN.parentNode.insertBefore(hr, pN); - parents = domUtils.findParents(hr); - - } - pN = parents[1]; - if (hr !== pN) { - domUtils.breakParent(hr, pN); - - } - //table要重写绑定一下拖拽 - me.fireEvent('afteradjusttable',me.document); - } - - } else { - - if (!range.collapsed) { - range.deleteContents(); - var start = range.startContainer; - while ( !domUtils.isBody(start) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start)) { - range.setStartBefore(start).collapse(true); - domUtils.remove(start); - start = range.startContainer; - } - - } - range.insertNode(hr); - - var pN = hr.parentNode, nextNode; - while (!domUtils.isBody(pN)) { - domUtils.breakParent(hr, pN); - nextNode = hr.nextSibling; - if (nextNode && domUtils.isEmptyBlock(nextNode)) { - domUtils.remove(nextNode); - } - pN = hr.parentNode; - } - nextNode = hr.nextSibling; - var pre = hr.previousSibling; - if(isHr(pre)){ - domUtils.remove(pre); - }else{ - pre && fillNode(pre); - } - - if(!nextNode){ - var p = me.document.createElement('p'); - - hr.parentNode.appendChild(p); - domUtils.fillNode(me.document,p); - range.setStart(p,0).collapse(true); - }else{ - if(isHr(nextNode)){ - domUtils.remove(nextNode); - }else{ - fillNode(nextNode); - } - range.setEndAfter(hr).collapse(false); - } - - range.select(true); - - } - - } - }; -}; - -// plugins/wordimage.js -///import core -///commands 本地图片引导上传 -///commandsName WordImage -///commandsTitle 本地图片引导上传 -///commandsDialog dialogs\wordimage - -UE.plugin.register('wordimage',function(){ - var me = this, - images = []; - return { - commands : { - 'wordimage':{ - execCommand:function () { - var images = domUtils.getElementsByTagName(me.body, "img"); - var urlList = []; - for (var i = 0, ci; ci = images[i++];) { - var url = ci.getAttribute("word_img"); - url && urlList.push(url); - } - return urlList; - }, - queryCommandState:function () { - images = domUtils.getElementsByTagName(me.body, "img"); - for (var i = 0, ci; ci = images[i++];) { - if (ci.getAttribute("word_img")) { - return 1; - } - } - return -1; - }, - notNeedUndo:true - } - }, - inputRule : function (root) { - utils.each(root.getNodesByTagName('img'), function (img) { - var attrs = img.attrs, - flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43, - opt = me.options, - src = opt.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif'; - if (attrs['src'] && /^(?:(file:\/+))/.test(attrs['src'])) { - img.setAttr({ - width:attrs.width, - height:attrs.height, - alt:attrs.alt, - word_img: attrs.src, - src:src, - 'style':'background:url(' + ( flag ? opt.themePath + opt.theme + '/images/word.gif' : opt.langPath + opt.lang + '/images/localimage.png') + ') no-repeat center center;border:1px solid #ddd' - }) - } - }) - } - } -}); - -// plugins/dragdrop.js -UE.plugins['dragdrop'] = function (){ - - var me = this; - me.ready(function(){ - domUtils.on(this.body,'dragend',function(){ - var rng = me.selection.getRange(); - var node = rng.getClosedNode()||me.selection.getStart(); - - if(node && node.tagName == 'IMG'){ - - var pre = node.previousSibling,next; - while(next = node.nextSibling){ - if(next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild){ - domUtils.remove(next) - }else{ - break; - } - } - - - if((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !domUtils.isEmptyBlock(next))){ - if(pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)){ - pre.appendChild(node); - domUtils.moveChild(next,pre); - domUtils.remove(next); - }else if(next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)){ - next.insertBefore(node,next.firstChild); - } - - if(pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)){ - domUtils.remove(pre) - } - if(next && next.tagName == 'P' && domUtils.isEmptyBlock(next)){ - domUtils.remove(next) - } - rng.selectNode(node).select(); - me.fireEvent('saveScene'); - - } - - } - - }) - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var rng = me.selection.getRange(),node; - if(node = domUtils.findParentByTagName(rng.startContainer,'p',true)){ - if(domUtils.getComputedStyle(node,'text-align') == 'center'){ - domUtils.removeStyle(node,'text-align') - } - } - } - }) -}; - - -// plugins/undo.js -/** - * undo redo - * @file - * @since 1.2.6.1 - */ - -/** - * 撤销上一次执行的命令 - * @command undo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'undo' ); - * ``` - */ - -/** - * 重做上一次执行的命令 - * @command redo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'redo' ); - * ``` - */ - -UE.plugins['undo'] = function () { - var saveSceneTimer; - var me = this, - maxUndoCount = me.options.maxUndoCount || 20, - maxInputCount = me.options.maxInputCount || 20, - fillchar = new RegExp(domUtils.fillChar + '|<\/hr>', 'gi');// ie会产生多余的 - var noNeedFillCharTags = { - ol:1,ul:1,table:1,tbody:1,tr:1,body:1 - }; - var orgState = me.options.autoClearEmptyNode; - function compareAddr(indexA, indexB) { - if (indexA.length != indexB.length) - return 0; - for (var i = 0, l = indexA.length; i < l; i++) { - if (indexA[i] != indexB[i]) - return 0 - } - return 1; - } - - function compareRangeAddress(rngAddrA, rngAddrB) { - if (rngAddrA.collapsed != rngAddrB.collapsed) { - return 0; - } - if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) { - return 0; - } - return 1; - } - - function UndoManager() { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.undo = function () { - if (this.hasUndo) { - if (!this.list[this.index - 1] && this.list.length == 1) { - this.reset(); - return; - } - while (this.list[this.index].content == this.list[this.index - 1].content) { - this.index--; - if (this.index == 0) { - return this.restore(0); - } - } - this.restore(--this.index); - } - }; - this.redo = function () { - if (this.hasRedo) { - while (this.list[this.index].content == this.list[this.index + 1].content) { - this.index++; - if (this.index == this.list.length - 1) { - return this.restore(this.index); - } - } - this.restore(++this.index); - } - }; - - this.restore = function () { - var me = this.editor; - var scene = this.list[this.index]; - var root = UE.htmlparser(scene.content.replace(fillchar, '')); - me.options.autoClearEmptyNode = false; - me.filterInputRule(root); - me.options.autoClearEmptyNode = orgState; - //trace:873 - //去掉展位符 - me.document.body.innerHTML = root.toHtml(); - me.fireEvent('afterscencerestore'); - //处理undo后空格不展位的问题 - if (browser.ie) { - utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){ - if(domUtils.isEmptyNode(node)){ - domUtils.fillNode(me.document, node); - } - }) - } - - try{ - var rng = new dom.Range(me.document).moveToAddress(scene.address); - rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]); - }catch(e){} - - this.update(); - this.clearKey(); - //不能把自己reset了 - me.fireEvent('reset', true); - }; - - this.getScene = function () { - var me = this.editor; - var rng = me.selection.getRange(), - rngAddress = rng.createAddress(false,true); - me.fireEvent('beforegetscene'); - var root = UE.htmlparser(me.body.innerHTML); - me.options.autoClearEmptyNode = false; - me.filterOutputRule(root); - me.options.autoClearEmptyNode = orgState; - var cont = root.toHtml(); - //trace:3461 - //这个会引起回退时导致空格丢失的情况 -// browser.ie && (cont = cont.replace(/> <').replace(/\s*\s*/g, '>')); - me.fireEvent('aftergetscene'); - - return { - address:rngAddress, - content:cont - } - }; - this.save = function (notCompareRange,notSetCursor) { - clearTimeout(saveSceneTimer); - var currentScene = this.getScene(notSetCursor), - lastScene = this.list[this.index]; - - if(lastScene && lastScene.content != currentScene.content){ - me.trigger('contentchange') - } - //内容相同位置相同不存 - if (lastScene && lastScene.content == currentScene.content && - ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) ) - ) { - return; - } - this.list = this.list.slice(0, this.index + 1); - this.list.push(currentScene); - //如果大于最大数量了,就把最前的剔除 - if (this.list.length > maxUndoCount) { - this.list.shift(); - } - this.index = this.list.length - 1; - this.clearKey(); - //跟新undo/redo状态 - this.update(); - - }; - this.update = function () { - this.hasRedo = !!this.list[this.index + 1]; - this.hasUndo = !!this.list[this.index - 1]; - }; - this.reset = function () { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.clearKey(); - }; - this.clearKey = function () { - keycont = 0; - lastKeyCode = null; - }; - } - - me.undoManger = new UndoManager(); - me.undoManger.editor = me; - function saveScene() { - this.undoManger.save(); - } - - me.addListener('saveScene', function () { - var args = Array.prototype.splice.call(arguments,1); - this.undoManger.save.apply(this.undoManger,args); - }); - -// me.addListener('beforeexeccommand', saveScene); -// me.addListener('afterexeccommand', saveScene); - - me.addListener('reset', function (type, exclude) { - if (!exclude) { - this.undoManger.reset(); - } - }); - me.commands['redo'] = me.commands['undo'] = { - execCommand:function (cmdName) { - this.undoManger[cmdName](); - }, - queryCommandState:function (cmdName) { - return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1; - }, - notNeedUndo:1 - }; - - var keys = { - // /*Backspace*/ 8:1, /*Delete*/ 46:1, - /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1, - 37:1, 38:1, 39:1, 40:1 - - }, - keycont = 0, - lastKeyCode; - //输入法状态下不计算字符数 - var inputType = false; - me.addListener('ready', function () { - domUtils.on(this.body, 'compositionstart', function () { - inputType = true; - }); - domUtils.on(this.body, 'compositionend', function () { - inputType = false; - }) - }); - //快捷键 - me.addshortcutkey({ - "Undo":"ctrl+90", //undo - "Redo":"ctrl+89" //redo - - }); - var isCollapsed = true; - me.addListener('keydown', function (type, evt) { - - var me = this; - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - - if(!me.selection.getRange().collapsed){ - me.undoManger.save(false,true); - isCollapsed = false; - return; - } - if (me.undoManger.list.length == 0) { - me.undoManger.save(true); - } - clearTimeout(saveSceneTimer); - function save(cont){ - cont.undoManger.save(false,true); - cont.fireEvent('selectionchange'); - } - saveSceneTimer = setTimeout(function(){ - if(inputType){ - var interalTimer = setInterval(function(){ - if(!inputType){ - save(me); - clearInterval(interalTimer) - } - },300) - return; - } - save(me); - },200); - - lastKeyCode = keyCode; - keycont++; - if (keycont >= maxInputCount ) { - save(me) - } - } - }); - me.addListener('keyup', function (type, evt) { - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - if(!isCollapsed){ - this.undoManger.save(false,true); - isCollapsed = true; - } - } - }); - //扩展实例,添加关闭和开启命令undo - me.stopCmdUndo = function(){ - me.__hasEnterExecCommand = true; - }; - me.startCmdUndo = function(){ - me.__hasEnterExecCommand = false; - } -}; - - -// plugins/copy.js -UE.plugin.register('copy', function () { - - var me = this; - - function initZeroClipboard() { - - ZeroClipboard.config({ - debug: false, - swfPath: me.options.UEDITOR_HOME_URL + 'third-party/zeroclipboard/ZeroClipboard.swf' - }); - - var client = me.zeroclipboard = new ZeroClipboard(); - - // 复制内容 - client.on('copy', function (e) { - var client = e.client, - rng = me.selection.getRange(), - div = document.createElement('div'); - - div.appendChild(rng.cloneContents()); - client.setText(div.innerText || div.textContent); - client.setHtml(div.innerHTML); - rng.select(); - }); - // hover事件传递到target - client.on('mouseover mouseout', function (e) { - var target = e.target; - if (e.type == 'mouseover') { - domUtils.addClass(target, 'edui-state-hover'); - } else if (e.type == 'mouseout') { - domUtils.removeClasses(target, 'edui-state-hover'); - } - }); - // flash加载不成功 - client.on('wrongflash noflash', function () { - ZeroClipboard.destroy(); - }); - } - - return { - bindEvents: { - 'ready': function () { - if (!browser.ie) { - if (window.ZeroClipboard) { - initZeroClipboard(); - } else { - utils.loadFile(document, { - src: me.options.UEDITOR_HOME_URL + "third-party/zeroclipboard/ZeroClipboard.js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - initZeroClipboard(); - }); - } - } - } - }, - commands: { - 'copy': { - execCommand: function (cmd) { - if (!me.document.execCommand('copy')) { - alert(me.getLang('copymsg')); - } - } - } - } - } -}); - - -// plugins/paste.js -///import core -///import plugins/inserthtml.js -///import plugins/undo.js -///import plugins/serialize.js -///commands 粘贴 -///commandsName PastePlain -///commandsTitle 纯文本粘贴模式 -/** - * @description 粘贴 - * @author zhanyi - */ -UE.plugins['paste'] = function () { - function getClipboardData(callback) { - var doc = this.document; - if (doc.getElementById('baidu_pastebin')) { - return; - } - var range = this.selection.getRange(), - bk = range.createBookmark(), - //创建剪贴的容器div - pastebin = doc.createElement('div'); - pastebin.id = 'baidu_pastebin'; - // Safari 要求div必须有内容,才能粘贴内容进来 - browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar)); - doc.body.appendChild(pastebin); - //trace:717 隐藏的span不能得到top - //bk.start.innerHTML = ' '; - bk.start.style.display = ''; - pastebin.style.cssText = "position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" + - //要在现在光标平行的位置加入,否则会出现跳动的问题 - domUtils.getXY(bk.start).y + 'px'; - - range.selectNodeContents(pastebin).select(true); - - setTimeout(function () { - if (browser.webkit) { - for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) { - if (domUtils.isEmptyNode(pi)) { - domUtils.remove(pi); - } else { - pastebin = pi; - break; - } - } - } - try { - pastebin.parentNode.removeChild(pastebin); - } catch (e) { - } - range.moveToBookmark(bk).select(true); - callback(pastebin); - }, 0); - } - - var me = this; - - me.setOpt({ - retainOnlyLabelPasted : false - }); - - var txtContent, htmlContent, address; - - function getPureHtml(html){ - return html.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function (a, b, tagName, attrs) { - tagName = tagName.toLowerCase(); - if ({img: 1}[tagName]) { - return a; - } - attrs = attrs.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, function (str, atr, val) { - if ({ - 'src': 1, - 'href': 1, - 'name': 1 - }[atr.toLowerCase()]) { - return atr + '=' + val + ' ' - } - return '' - }); - if ({ - 'span': 1, - 'div': 1 - }[tagName]) { - return '' - } else { - - return '<' + b + tagName + ' ' + utils.trim(attrs) + '>' - } - - }); - } - function filter(div) { - var html; - if (div.firstChild) { - //去掉cut中添加的边界值 - var nodes = domUtils.getElementsByTagName(div, 'span'); - for (var i = 0, ni; ni = nodes[i++];) { - if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') { - domUtils.remove(ni); - } - } - - if (browser.webkit) { - - var brs = div.querySelectorAll('div br'); - for (var i = 0, bi; bi = brs[i++];) { - var pN = bi.parentNode; - if (pN.tagName == 'DIV' && pN.childNodes.length == 1) { - pN.innerHTML = '


    '; - domUtils.remove(pN); - } - } - var divs = div.querySelectorAll('#baidu_pastebin'); - for (var i = 0, di; di = divs[i++];) { - var tmpP = me.document.createElement('p'); - di.parentNode.insertBefore(tmpP, di); - while (di.firstChild) { - tmpP.appendChild(di.firstChild); - } - domUtils.remove(di); - } - - var metas = div.querySelectorAll('meta'); - for (var i = 0, ci; ci = metas[i++];) { - domUtils.remove(ci); - } - - var brs = div.querySelectorAll('br'); - for (i = 0; ci = brs[i++];) { - if (/^apple-/i.test(ci.className)) { - domUtils.remove(ci); - } - } - } - if (browser.gecko) { - var dirtyNodes = div.querySelectorAll('[_moz_dirty]'); - for (i = 0; ci = dirtyNodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - } - if (!browser.ie) { - var spans = div.querySelectorAll('span.Apple-style-span'); - for (var i = 0, ci; ci = spans[i++];) { - domUtils.remove(ci, true); - } - } - - //ie下使用innerHTML会产生多余的\r\n字符,也会产生 这里过滤掉 - html = div.innerHTML;//.replace(/>(?:(\s| )*?)<'); - - //过滤word粘贴过来的冗余属性 - html = UE.filterWord(html); - //取消了忽略空白的第二个参数,粘贴过来的有些是有空白的,会被套上相关的标签 - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if (me.options.filterRules) { - UE.filterNode(root, me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - //针对chrome的处理 - if (browser.webkit) { - var br = root.lastChild(); - if (br && br.type == 'element' && br.tagName == 'br') { - root.removeChild(br) - } - utils.each(me.body.querySelectorAll('div'), function (node) { - if (domUtils.isEmptyBlock(node)) { - domUtils.remove(node,true) - } - }) - } - html = {'html': root.toHtml()}; - me.fireEvent('beforepaste', html, root); - //抢了默认的粘贴,那后边的内容就不执行了,比如表格粘贴 - if(!html.html){ - return; - } - root = UE.htmlparser(html.html,true); - //如果开启了纯文本模式 - if (me.queryCommandState('pasteplain') === 1) { - me.execCommand('insertHtml', UE.filterNode(root, me.options.filterTxtRules).toHtml(), true); - } else { - //文本模式 - UE.filterNode(root, me.options.filterTxtRules); - txtContent = root.toHtml(); - //完全模式 - htmlContent = html.html; - - address = me.selection.getRange().createAddress(true); - me.execCommand('insertHtml', me.getOpt('retainOnlyLabelPasted') === true ? getPureHtml(htmlContent) : htmlContent, true); - } - me.fireEvent("afterpaste", html); - } - } - - me.addListener('pasteTransfer', function (cmd, plainType) { - - if (address && txtContent && htmlContent && txtContent != htmlContent) { - var range = me.selection.getRange(); - range.moveToAddress(address, true); - - if (!range.collapsed) { - - while (!domUtils.isBody(range.startContainer) - ) { - var start = range.startContainer; - if(start.nodeType == 1){ - start = start.childNodes[range.startOffset]; - if(!start){ - range.setStartBefore(range.startContainer); - continue; - } - var pre = start.previousSibling; - - if(pre && pre.nodeType == 3 && new RegExp('^[\n\r\t '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - range.setStartBefore(pre) - } - } - if(range.startOffset == 0){ - range.setStartBefore(range.startContainer); - }else{ - break; - } - - } - while (!domUtils.isBody(range.endContainer) - ) { - var end = range.endContainer; - if(end.nodeType == 1){ - end = end.childNodes[range.endOffset]; - if(!end){ - range.setEndAfter(range.endContainer); - continue; - } - var next = end.nextSibling; - if(next && next.nodeType == 3 && new RegExp('^[\n\r\t'+domUtils.fillChar+']*$').test(next.nodeValue)){ - range.setEndAfter(next) - } - } - if(range.endOffset == range.endContainer[range.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length){ - range.setEndAfter(range.endContainer); - }else{ - break; - } - - } - - } - - range.deleteContents(); - range.select(true); - me.__hasEnterExecCommand = true; - var html = htmlContent; - if (plainType === 2 ) { - html = getPureHtml(html); - } else if (plainType) { - html = txtContent; - } - me.execCommand('inserthtml', html, true); - me.__hasEnterExecCommand = false; - var rng = me.selection.getRange(); - while (!domUtils.isBody(rng.startContainer) && !rng.startOffset && - rng.startContainer[rng.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - rng.setStartBefore(rng.startContainer); - } - var tmpAddress = rng.createAddress(true); - address.endAddress = tmpAddress.startAddress; - } - }); - - me.addListener('ready', function () { - domUtils.on(me.body, 'cut', function () { - var range = me.selection.getRange(); - if (!range.collapsed && me.undoManger) { - me.undoManger.save(); - } - }); - - //ie下beforepaste在点击右键时也会触发,所以用监控键盘才处理 - domUtils.on(me.body, browser.ie || browser.opera ? 'keydown' : 'paste', function (e) { - if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) { - return; - } - getClipboardData.call(me, function (div) { - filter(div); - }); - }); - - }); - - me.commands['paste'] = { - execCommand: function (cmd) { - if (browser.ie) { - getClipboardData.call(me, function (div) { - filter(div); - }); - me.document.execCommand('paste'); - } else { - alert(me.getLang('pastemsg')); - } - } - } -}; - - - -// plugins/puretxtpaste.js -/** - * 纯文本粘贴插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['pasteplain'] = function(){ - var me = this; - me.setOpt({ - 'pasteplain':false, - 'filterTxtRules' : function(){ - function transP(node){ - node.tagName = 'p'; - node.setStyle(); - } - function removeNode(node){ - node.parentNode.removeChild(node,true) - } - return { - //直接删除及其字节点内容 - '-' : 'script style object iframe embed input select', - 'p': {$:{}}, - 'br':{$:{}}, - div: function (node) { - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - }, - ol: removeNode, - ul: removeNode, - dl:removeNode, - dt:removeNode, - dd:removeNode, - 'li':removeNode, - 'caption':transP, - 'th':transP, - 'tr':transP, - 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - 'td':function(node){ - //没有内容的td直接删掉 - var txt = !!node.innerText(); - if(txt){ - node.parentNode.insertAfter(UE.uNode.createText('    '),node); - } - node.parentNode.removeChild(node,node.innerText()) - } - } - }() - }); - //暂时这里支持一下老版本的属性 - var pasteplain = me.options.pasteplain; - - /** - * 启用或取消纯文本粘贴模式 - * @command pasteplain - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - - /** - * 查询当前是否处于纯文本粘贴模式 - * @command pasteplain - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果处于纯文本模式,返回1,否则,返回0 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - me.commands['pasteplain'] = { - queryCommandState: function (){ - return pasteplain ? 1 : 0; - }, - execCommand: function (){ - pasteplain = !pasteplain|0; - }, - notNeedUndo : 1 - }; -}; - -// plugins/list.js -/** - * 有序列表,无序列表插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['list'] = function () { - var me = this, - notExchange = { - 'TD':1, - 'PRE':1, - 'BLOCKQUOTE':1 - }; - var customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num': 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot':'dot' - }; - - me.setOpt( { - 'autoTransWordToList':false, - 'insertorderedlist':{ - 'num':'', - 'num1':'', - 'num2':'', - 'cn':'', - 'cn1':'', - 'cn2':'', - 'decimal':'', - 'lower-alpha':'', - 'lower-roman':'', - 'upper-alpha':'', - 'upper-roman':'' - }, - 'insertunorderedlist':{ - 'circle':'', - 'disc':'', - 'square':'', - 'dash' : '', - 'dot':'' - }, - listDefaultPaddingLeft : '30', - listiconpath : 'http://bs.baidu.com/listicon/', - maxListLevel : -1,//-1不限制 - disablePInList:false - } ); - function listToArray(list){ - var arr = []; - for(var p in list){ - arr.push(p) - } - return arr; - } - var listStyle = { - 'OL':listToArray(me.options.insertorderedlist), - 'UL':listToArray(me.options.insertunorderedlist) - }; - var liiconpath = me.options.listiconpath; - - //根据用户配置,调整customStyle - for(var s in customStyle){ - if(!me.options.insertorderedlist.hasOwnProperty(s) && !me.options.insertunorderedlist.hasOwnProperty(s)){ - delete customStyle[s]; - } - } - - me.ready(function () { - var customCss = []; - for(var p in customStyle){ - if(p == 'dash' || p == 'dot'){ - customCss.push('li.list-' + customStyle[p] + '{background-image:url(' + liiconpath +customStyle[p]+'.gif)}'); - customCss.push('ul.custom_'+p+'{list-style:none;}ul.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - }else{ - for(var i= 0;i<99;i++){ - customCss.push('li.list-' + customStyle[p] + i + '{background-image:url(' + liiconpath + 'list-'+customStyle[p] + i + '.gif)}') - } - customCss.push('ol.custom_'+p+'{list-style:none;}ol.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(p){ - case 'cn': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:30px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:55px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:35px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - customCss.push('li.list-'+p+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - customCss.push('li.list-'+p+'-paddingleft{padding-left:20px}'); - } - } - customCss.push('.list-paddingleft-1{padding-left:0}'); - customCss.push('.list-paddingleft-2{padding-left:'+me.options.listDefaultPaddingLeft+'px}'); - customCss.push('.list-paddingleft-3{padding-left:'+me.options.listDefaultPaddingLeft*2+'px}'); - //如果不给宽度会在自定应样式里出现滚动条 - utils.cssRule('list', 'ol,ul{margin:0;pading:0;'+(browser.ie ? '' : 'width:95%')+'}li{clear:both;}'+customCss.join('\n'), me.document); - }); - //单独处理剪切的问题 - me.ready(function(){ - domUtils.on(me.body,'cut',function(){ - setTimeout(function(){ - var rng = me.selection.getRange(),li; - //trace:3416 - if(!rng.collapsed){ - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - if(!li.nextSibling && domUtils.isEmptyBlock(li)){ - var pn = li.parentNode,node; - if(node = pn.previousSibling){ - domUtils.remove(pn); - rng.setStartAtLast(node).collapse(true); - rng.select(true); - }else if(node = pn.nextSibling){ - domUtils.remove(pn); - rng.setStartAtFirst(node).collapse(true); - rng.select(true); - }else{ - var tmpNode = me.document.createElement('p'); - domUtils.fillNode(me.document,tmpNode); - pn.parentNode.insertBefore(tmpNode,pn); - domUtils.remove(pn); - rng.setStart(tmpNode,0).collapse(true); - rng.select(true); - } - } - } - } - - }) - }) - }); - - function getStyle(node){ - var cls = node.className; - if(domUtils.hasClass(node,/custom_/)){ - return cls.match(/custom_(\w+)/)[1] - } - return domUtils.getStyle(node, 'list-style-type') - - } - - me.addListener('beforepaste',function(type,html){ - var me = this, - rng = me.selection.getRange(),li; - var root = UE.htmlparser(html.html,true); - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - var list = li.parentNode,tagName = list.tagName == 'OL' ? 'ul':'ol'; - utils.each(root.getNodesByTagName(tagName),function(n){ - n.tagName = list.tagName; - n.setAttr(); - if(n.parentNode === root){ - type = getStyle(list) || (list.tagName == 'OL' ? 'decimal' : 'disc') - }else{ - var className = n.parentNode.getAttr('class'); - if(className && /custom_/.test(className)){ - type = className.match(/custom_(\w+)/)[1] - }else{ - type = n.parentNode.getStyle('list-style-type'); - } - if(!type){ - type = list.tagName == 'OL' ? 'decimal' : 'disc'; - } - } - var index = utils.indexOf(listStyle[list.tagName], type); - if(n.parentNode !== root) - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - if(customStyle[currentStyle]){ - n.setAttr('class', 'custom_' + currentStyle) - - }else{ - n.setStyle('list-style-type',currentStyle) - } - }) - - } - - html.html = root.toHtml(); - }); - //导出时,去掉p标签 - me.getOpt('disablePInList') === true && me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var newChildrens = [],index=0; - utils.each(li.children,function(n){ - if(n.tagName == 'p'){ - var tmpNode; - while(tmpNode = n.children.pop()) { - newChildrens.splice(index,0,tmpNode); - tmpNode.parentNode = li; - lastNode = tmpNode; - } - tmpNode = newChildrens[newChildrens.length-1]; - if(!tmpNode || tmpNode.type != 'element' || tmpNode.tagName != 'br'){ - var br = UE.uNode.createElement('br'); - br.parentNode = li; - newChildrens.push(br); - } - - index = newChildrens.length; - } - }); - if(newChildrens.length){ - li.children = newChildrens; - } - }); - }); - //进入编辑器的li要套p标签 - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var tmpP = UE.uNode.createElement('p'); - for(var i= 0,ci;ci=li.children[i];){ - if(ci.type == 'text' || dtd.p[ci.tagName]){ - tmpP.appendChild(ci); - }else{ - if(tmpP.firstChild()){ - li.insertBefore(tmpP,ci); - tmpP = UE.uNode.createElement('p'); - i = i + 2; - }else{ - i++; - } - - } - } - if(tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()){ - li.appendChild(tmpP); - } - //trace:3357 - //p不能为空 - if (!tmpP.firstChild()) { - tmpP.innerHTML(browser.ie ? ' ' : '
    ') - } - //去掉末尾的空白 - var p = li.firstChild(); - var lastChild = p.lastChild(); - if(lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)){ - p.removeChild(lastChild) - } - }); - if(me.options.autoTransWordToList){ - var orderlisttype = { - 'num1':/^\d+\)/, - 'decimal':/^\d+\./, - 'lower-alpha':/^[a-z]+\)/, - 'upper-alpha':/^[A-Z]+\./, - 'cn':/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/, - 'cn2':/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/ - }, - unorderlisttype = { - 'square':'n' - }; - function checkListType(content,container){ - var span = container.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle('font-family'))){ - for(var p in unorderlisttype){ - if(unorderlisttype[p] == span.data){ - return p - } - } - return 'disc' - } - for(var p in orderlisttype){ - if(orderlisttype[p].test(content)){ - return p; - } - } - - } - utils.each(root.getNodesByTagName('p'),function(node){ - if(node.getAttr('class') != 'MsoListParagraph'){ - return - } - - //word粘贴过来的会带有margin要去掉,但这样也可能会误命中一些央视 - node.setStyle('margin',''); - node.setStyle('margin-left',''); - node.setAttr('class',''); - - function appendLi(list,p,type){ - if(list.tagName == 'ol'){ - if(browser.ie){ - var first = p.firstChild(); - if(first.type =='element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())){ - p.removeChild(first); - } - }else{ - p.innerHTML(p.innerHTML().replace(orderlisttype[type],'')); - } - }else{ - p.removeChild(p.firstChild()) - } - - var li = UE.uNode.createElement('li'); - li.appendChild(p); - list.appendChild(li); - } - var tmp = node,type,cacheNode = node; - - if(node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(),node))){ - - var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' : 'ul'); - if(customStyle[type]){ - list.setAttr('class','custom_'+type) - }else{ - list.setStyle('list-style-type',type) - } - while(node && node.parentNode.tagName != 'li' && checkListType(node.innerText(),node)){ - tmp = node.nextSibling(); - if(!tmp){ - node.parentNode.insertBefore(list,node) - } - appendLi(list,node,type); - node = tmp; - } - if(!list.parentNode && node && node.parentNode){ - node.parentNode.insertBefore(list,node) - } - } - var span = cacheNode.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /^\s*( )+\s*$/.test(span.innerText())){ - span.parentNode.removeChild(span) - } - }) - } - - }); - - //调整索引标签 - me.addListener('contentchange',function(){ - adjustListStyle(me.document) - }); - - function adjustListStyle(doc,ignore){ - utils.each(domUtils.getElementsByTagName(doc,'ol ul'),function(node){ - - if(!domUtils.inDoc(node,doc)) - return; - - var parent = node.parentNode; - if(parent.tagName == node.tagName){ - var nodeStyleType = getStyle(node) || (node.tagName == 'OL' ? 'decimal' : 'disc'), - parentStyleType = getStyle(parent) || (parent.tagName == 'OL' ? 'decimal' : 'disc'); - if(nodeStyleType == parentStyleType){ - var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType); - styleIndex = styleIndex + 1 == listStyle[node.tagName].length ? 0 : styleIndex + 1; - setListStyle(node,listStyle[node.tagName][styleIndex]) - } - - } - var index = 0,type = 2; - if( domUtils.hasClass(node,/custom_/)){ - if(!(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/))){ - type = 1; - } - }else{ - if(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/)){ - type = 3; - } - } - - var style = domUtils.getStyle(node, 'list-style-type'); - style && (node.style.cssText = 'list-style-type:' + style); - node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type; - utils.each(domUtils.getElementsByTagName(node,'li'),function(li){ - li.style.cssText && (li.style.cssText = ''); - if(!li.firstChild){ - domUtils.remove(li); - return; - } - if(li.parentNode !== node){ - return; - } - index++; - if(domUtils.hasClass(node,/custom_/) ){ - var paddingLeft = 1,currentStyle = getStyle(node); - if(node.tagName == 'OL'){ - if(currentStyle){ - switch(currentStyle){ - case 'cn' : - case 'cn1': - case 'cn2': - if(index > 10 && (index % 10 == 0 || index > 10 && index < 20)){ - paddingLeft = 2 - }else if(index > 20){ - paddingLeft = 3 - } - break; - case 'num2' : - if(index > 9){ - paddingLeft = 2 - } - } - } - li.className = 'list-'+customStyle[currentStyle]+ index + ' ' + 'list-'+currentStyle+'-paddingleft-' + paddingLeft; - }else{ - li.className = 'list-'+customStyle[currentStyle] + ' ' + 'list-'+currentStyle+'-paddingleft'; - } - }else{ - li.className = li.className.replace(/list-[\w\-]+/gi,''); - } - var className = li.getAttribute('class'); - if(className !== null && !className.replace(/\s/g,'')){ - domUtils.removeAttributes(li,'class') - } - }); - !ignore && adjustList(node,node.tagName.toLowerCase(),getStyle(node)||domUtils.getStyle(node, 'list-style-type'),true); - }) - } - function adjustList(list, tag, style,ignoreEmpty) { - var nextList = list.nextSibling; - if (nextList && nextList.nodeType == 1 && nextList.tagName.toLowerCase() == tag && (getStyle(nextList) || domUtils.getStyle(nextList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(nextList, list); - if (nextList.childNodes.length == 0) { - domUtils.remove(nextList); - } - } - if(nextList && domUtils.isFillChar(nextList)){ - domUtils.remove(nextList); - } - var preList = list.previousSibling; - if (preList && preList.nodeType == 1 && preList.tagName.toLowerCase() == tag && (getStyle(preList) || domUtils.getStyle(preList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(list, preList); - } - if(preList && domUtils.isFillChar(preList)){ - domUtils.remove(preList); - } - !ignoreEmpty && domUtils.isEmptyBlock(list) && domUtils.remove(list); - if(getStyle(list)){ - adjustListStyle(list.ownerDocument,true) - } - } - - function setListStyle(list,style){ - if(customStyle[style]){ - list.className = 'custom_' + style; - } - try{ - domUtils.setStyle(list, 'list-style-type', style); - }catch(e){} - } - function clearEmptySibling(node) { - var tmpNode = node.previousSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - tmpNode = node.nextSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - } - - me.addListener('keydown', function (type, evt) { - function preventAndSave() { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - me.fireEvent('contentchange'); - me.undoManger && me.undoManger.save(); - } - function findList(node,filterFn){ - while(node && !domUtils.isBody(node)){ - if(filterFn(node)){ - return null - } - if(node.nodeType == 1 && /[ou]l/i.test(node.tagName)){ - return node; - } - node = node.parentNode; - } - return null; - } - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13 && !evt.shiftKey) {//回车 - var rng = me.selection.getRange(), - parent = domUtils.findParent(rng.startContainer,function(node){return domUtils.isBlockElm(node)},true), - li = domUtils.findParentByTagName(rng.startContainer,'li',true); - if(parent && parent.tagName != 'PRE' && !li){ - var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, 'g'),''); - if(/^\s*1\s*\.[^\d]/.test(html)){ - parent.innerHTML = html.replace(/^\s*1\s*\./,''); - rng.setStartAtLast(parent).collapse(true).select(); - me.__hasEnterExecCommand = true; - me.execCommand('insertorderedlist'); - me.__hasEnterExecCommand = false; - } - } - var range = me.selection.getRange(), - start = findList(range.startContainer,function (node) { - return node.tagName == 'TABLE'; - }), - end = range.collapsed ? start : findList(range.endContainer,function (node) { - return node.tagName == 'TABLE'; - }); - - if (start && end && start === end) { - - if (!range.collapsed) { - start = domUtils.findParentByTagName(range.startContainer, 'li', true); - end = domUtils.findParentByTagName(range.endContainer, 'li', true); - if (start && end && start === end) { - range.deleteContents(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if (li && domUtils.isEmptyBlock(li)) { - - pre = li.previousSibling; - next = li.nextSibling; - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - parentList = li.parentNode; - if (pre && next) { - range.setStart(next, 0).collapse(true).select(true); - domUtils.remove(li); - - } else { - if (!pre && !next || !pre) { - - parentList.parentNode.insertBefore(p, parentList); - - - } else { - li.parentNode.parentNode.insertBefore(p, parentList.nextSibling); - } - domUtils.remove(li); - if (!parentList.firstChild) { - domUtils.remove(parentList); - } - range.setStart(p, 0).setCursor(); - - - } - preventAndSave(); - return; - - } - } else { - var tmpRange = range.cloneRange(), - bk = tmpRange.collapse(false).createBookmark(); - - range.deleteContents(); - tmpRange.moveToBookmark(bk); - var li = domUtils.findParentByTagName(tmpRange.startContainer, 'li', true); - - clearEmptySibling(li); - tmpRange.select(); - preventAndSave(); - return; - } - } - - - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - - if (li) { - if (domUtils.isEmptyBlock(li)) { - bk = range.createBookmark(); - var parentList = li.parentNode; - if (li !== parentList.lastChild) { - domUtils.breakParent(li, parentList); - clearEmptySibling(li); - } else { - - parentList.parentNode.insertBefore(li, parentList.nextSibling); - if (domUtils.isEmptyNode(parentList)) { - domUtils.remove(parentList); - } - } - //嵌套不处理 - if (!dtd.$list[li.parentNode.tagName]) { - - if (!domUtils.isBlockElm(li.firstChild)) { - p = me.document.createElement('p'); - li.parentNode.insertBefore(p, li); - while (li.firstChild) { - p.appendChild(li.firstChild); - } - domUtils.remove(li); - } else { - domUtils.remove(li, true); - } - } - range.moveToBookmark(bk).select(); - - - } else { - var first = li.firstChild; - if (!first || !domUtils.isBlockElm(first)) { - var p = me.document.createElement('p'); - - !li.firstChild && domUtils.fillNode(me.document, p); - while (li.firstChild) { - - p.appendChild(li.firstChild); - } - li.appendChild(p); - first = p; - } - - var span = me.document.createElement('span'); - - range.insertNode(span); - domUtils.breakParent(span, li); - - var nextLi = span.nextSibling; - first = nextLi.firstChild; - - if (!first) { - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - nextLi.appendChild(p); - first = p; - } - if (domUtils.isEmptyNode(first)) { - first.innerHTML = ''; - domUtils.fillNode(me.document, first); - } - - range.setStart(first, 0).collapse(true).shrinkBoundary().select(); - domUtils.remove(span); - var pre = nextLi.previousSibling; - if (pre && domUtils.isEmptyBlock(pre)) { - pre.innerHTML = '

    '; - domUtils.fillNode(me.document, pre.firstChild); - } - - } -// } - preventAndSave(); - } - - - } - - - } - if (keyCode == 8) { - //修中ie中li下的问题 - range = me.selection.getRange(); - if (range.collapsed && domUtils.isStartInblock(range)) { - tmpRange = range.cloneRange().trimBoundary(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - //要在li的最左边,才能处理 - if (li && domUtils.isStartInblock(tmpRange)) { - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - if (start && start !== li.firstChild) { - var parentList = domUtils.findParentByTagName(start,['ol','ul']); - domUtils.breakParent(start,parentList); - clearEmptySibling(start); - me.fireEvent('contentchange'); - range.setStart(start,0).setCursor(false,true); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - - if (li && (pre = li.previousSibling)) { - if (keyCode == 46 && li.childNodes.length) { - return; - } - //有可能上边的兄弟节点是个2级菜单,要追加到2级菜单的最后的li - if (dtd.$list[pre.tagName]) { - pre = pre.lastChild; - } - me.undoManger && me.undoManger.save(); - first = li.firstChild; - if (domUtils.isBlockElm(first)) { - if (domUtils.isEmptyNode(first)) { -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - pre.appendChild(first); - range.setStart(first, 0).setCursor(false, true); - //first不是唯一的节点 - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } else { - - span = me.document.createElement('span'); - range.insertNode(span); - //判断pre是否是空的节点,如果是


    类型的空节点,干掉p标签防止它占位 - if (domUtils.isEmptyBlock(pre)) { - pre.innerHTML = ''; - } - domUtils.moveChild(li, pre); - range.setStartBefore(span).collapse(true).select(true); - - domUtils.remove(span); - - } - } else { - if (domUtils.isEmptyNode(li)) { - var p = me.document.createElement('p'); - pre.appendChild(p); - range.setStart(p, 0).setCursor(); -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - } else { - range.setEnd(pre, pre.childNodes.length).collapse().select(true); - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } - } - domUtils.remove(li); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - //trace:980 - - if (li && !li.previousSibling) { - var parentList = li.parentNode; - var bk = range.createBookmark(); - if(domUtils.isTagNode(parentList.parentNode,'ol ul')){ - parentList.parentNode.insertBefore(li,parentList); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - }else{ - - while(li.firstChild){ - parentList.parentNode.insertBefore(li.firstChild,parentList); - } - - domUtils.remove(li); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - - } - range.moveToBookmark(bk).setCursor(false,true); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - - - } - - - } - - } - }); - - me.addListener('keyup',function(type, evt){ - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8) { - var rng = me.selection.getRange(),list; - if(list = domUtils.findParentByTagName(rng.startContainer,['ol', 'ul'],true)){ - adjustList(list,list.tagName.toLowerCase(),getStyle(list)||domUtils.getComputedStyle(list,'list-style-type'),true) - } - } - }); - //处理tab键 - me.addListener('tabkeydown',function(){ - - var range = me.selection.getRange(); - - //控制级数 - function checkLevel(li){ - if(me.options.maxListLevel != -1){ - var level = li.parentNode,levelNum = 0; - while(/[ou]l/i.test(level.tagName)){ - levelNum++; - level = level.parentNode; - } - if(levelNum >= me.options.maxListLevel){ - return true; - } - } - } - //只以开始为准 - //todo 后续改进 - var li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if(li){ - - var bk; - if(range.collapsed){ - if(checkLevel(li)) - return true; - var parentLi = li.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - setListStyle(list,currentStyle); - if(domUtils.isStartInblock(range)){ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - parentLi.insertBefore(list, li); - list.appendChild(li); - adjustList(list,list.tagName.toLowerCase(),currentStyle); - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(true); - return true; - } - }else{ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - for(var i= 0,closeList,parents = domUtils.findParents(li),ci;ci=parents[i++];){ - if(domUtils.isTagNode(ci,'ol ul')){ - closeList = ci; - break; - } - } - var current = li; - if(bk.end){ - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - if(checkLevel(current)){ - current = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - continue; - } - var parentLi = current.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - var currentIndex = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][currentIndex]; - setListStyle(list,currentStyle); - parentLi.insertBefore(list, current); - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - li = current.nextSibling; - list.appendChild(current); - if(!li || domUtils.isTagNode(li,'ol ul')){ - if(li){ - while(li = li.firstChild){ - if(li.tagName == 'LI'){ - break; - } - } - }else{ - li = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - } - break; - } - current = li; - } - adjustList(list,list.tagName.toLowerCase(),currentStyle); - current = li; - } - } - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(); - return true; - } - } - - }); - function getLi(start){ - while(start && !domUtils.isBody(start)){ - if(start.nodeName == 'TABLE'){ - return null; - } - if(start.nodeName == 'LI'){ - return start - } - start = start.parentNode; - } - } - - /** - * 有序列表,与“insertunorderedlist”命令互斥 - * @command insertorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的有序列表类型,值为:decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.execCommand( 'insertorderedlist','decimal'); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前选区是有序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前有序列表的类型,值为null或decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.queryCommandValue( 'insertorderedlist' ); - * ``` - */ - - /** - * 无序列表,与“insertorderedlist”命令互斥 - * @command insertunorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的无序列表类型,值为:circle,disc,square,dash,dot - * @example - * ```javascript - * editor.execCommand( 'insertunorderedlist','circle'); - * ``` - */ - /** - * 查询当前是否有word文档粘贴进来的图片 - * @command insertunorderedlist - * @method insertunorderedlist - * @param { String } command 命令字符串 - * @return { int } 如果当前选区是无序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertunorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertunorderedlist - * @method queryCommandValue - * @param { String } command 命令字符串 - * @return { String } 返回当前无序列表的类型,值为null或circle,disc,square,dash,dot - * @example - * ```javascript - * editor.queryCommandValue( 'insertunorderedlist' ); - * ``` - */ - - me.commands['insertorderedlist'] = - me.commands['insertunorderedlist'] = { - execCommand:function (command, style) { - - if (!style) { - style = command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'; - } - var me = this, - range = this.selection.getRange(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul', - frag = me.document.createDocumentFragment(); - //去掉是因为会出现选到末尾,导致adjustmentBoundary缩到ol/ul的位置 - //range.shrinkBoundary();//.adjustmentBoundary(); - range.adjustmentBoundary().shrinkBoundary(); - var bko = range.createBookmark(true), - start = getLi(me.document.getElementById(bko.start)), - modifyStart = 0, - end = getLi(me.document.getElementById(bko.end)), - modifyEnd = 0, - startParent, endParent, - list, tmp; - - if (start || end) { - start && (startParent = start.parentNode); - if (!bko.end) { - end = start; - } - end && (endParent = end.parentNode); - - if (startParent === endParent) { - while (start !== end) { - tmp = start; - start = start.nextSibling; - if (!domUtils.isBlockElm(tmp.firstChild)) { - var p = me.document.createElement('p'); - while (tmp.firstChild) { - p.appendChild(tmp.firstChild); - } - tmp.appendChild(p); - } - frag.appendChild(tmp); - } - tmp = me.document.createElement('span'); - startParent.insertBefore(tmp, end); - if (!domUtils.isBlockElm(end.firstChild)) { - p = me.document.createElement('p'); - while (end.firstChild) { - p.appendChild(end.firstChild); - } - end.appendChild(p); - } - frag.appendChild(end); - domUtils.breakParent(tmp, startParent); - if (domUtils.isEmptyNode(tmp.previousSibling)) { - domUtils.remove(tmp.previousSibling); - } - if (domUtils.isEmptyNode(tmp.nextSibling)) { - domUtils.remove(tmp.nextSibling) - } - var nodeStyle = getStyle(startParent) || domUtils.getComputedStyle(startParent, 'list-style-type') || (command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'); - if (startParent.tagName.toLowerCase() == tag && nodeStyle == style) { - for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); ci = frag.firstChild;) { - if(domUtils.isTagNode(ci,'ol ul')){ -// 删除时,子列表不处理 -// utils.each(domUtils.getElementsByTagName(ci,'li'),function(li){ -// while(li.firstChild){ -// tmpFrag.appendChild(li.firstChild); -// } -// -// }); - tmpFrag.appendChild(ci); - }else{ - while (ci.firstChild) { - - tmpFrag.appendChild(ci.firstChild); - domUtils.remove(ci); - } - } - - } - tmp.parentNode.insertBefore(tmpFrag, tmp); - } else { - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - tmp.parentNode.insertBefore(list, tmp); - } - - domUtils.remove(tmp); - list && adjustList(list, tag, style); - range.moveToBookmark(bko).select(); - return; - } - //开始 - if (start) { - while (start) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - var tmpfrag = me.document.createDocumentFragment(), - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - var tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - - start = tmp; - } - startParent.parentNode.insertBefore(frag, startParent.nextSibling); - if (domUtils.isEmptyNode(startParent)) { - range.setStartBefore(startParent); - domUtils.remove(startParent); - } else { - range.setStartAfter(startParent); - } - modifyStart = 1; - } - - if (end && domUtils.inDoc(endParent, me.document)) { - //结束 - start = endParent.firstChild; - while (start && start !== end) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - tmpfrag = me.document.createDocumentFragment(); - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - start = tmp; - } - var tmpDiv = domUtils.createElement(me.document, 'div', { - 'tmpDiv':1 - }); - domUtils.moveChild(end, tmpDiv); - - frag.appendChild(tmpDiv); - domUtils.remove(end); - endParent.parentNode.insertBefore(frag, endParent); - range.setEndBefore(endParent); - if (domUtils.isEmptyNode(endParent)) { - domUtils.remove(endParent); - } - - modifyEnd = 1; - } - - - } - - if (!modifyStart) { - range.setStartBefore(me.document.getElementById(bko.start)); - } - if (bko.end && !modifyEnd) { - range.setEndAfter(me.document.getElementById(bko.end)); - } - range.enlarge(true, function (node) { - return notExchange[node.tagName]; - }); - - frag = me.document.createDocumentFragment(); - - var bk = range.createBookmark(), - current = domUtils.getNextDomNode(bk.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode, - block = domUtils.isBlockElm; - - while (current && current !== bk.end && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING)) { - - if (current.nodeType == 3 || dtd.li[current.tagName]) { - if (current.nodeType == 1 && dtd.$list[current.tagName]) { - while (current.firstChild) { - frag.appendChild(current.firstChild); - } - tmpNode = domUtils.getNextDomNode(current, false, filterFn); - domUtils.remove(current); - current = tmpNode; - continue; - - } - tmpNode = current; - tmpRange.setStartBefore(current); - - while (current && current !== bk.end && (!block(current) || domUtils.isBookmarkNode(current) )) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !notExchange[node.tagName]; - }); - } - - if (current && block(current)) { - tmp = domUtils.getNextDomNode(tmpNode, false, filterFn); - if (tmp && domUtils.isBookmarkNode(tmp)) { - current = domUtils.getNextDomNode(tmp, false, filterFn); - tmpNode = tmp; - } - } - tmpRange.setEndAfter(tmpNode); - - current = domUtils.getNextDomNode(tmpNode, false, filterFn); - - var li = range.document.createElement('li'); - - li.appendChild(tmpRange.extractContents()); - if(domUtils.isEmptyNode(li)){ - var tmpNode = range.document.createElement('p'); - while(li.firstChild){ - tmpNode.appendChild(li.firstChild) - } - li.appendChild(tmpNode); - } - frag.appendChild(li); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - range.moveToBookmark(bk).collapse(true); - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - range.insertNode(list); - //当前list上下看能否合并 - adjustList(list, tag, style); - //去掉冗余的tmpDiv - for (var i = 0, ci, tmpDivs = domUtils.getElementsByTagName(list, 'div'); ci = tmpDivs[i++];) { - if (ci.getAttribute('tmpDiv')) { - domUtils.remove(ci, true) - } - } - range.moveToBookmark(bko).select(); - - }, - queryCommandState:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(); - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - return 0 - } - if(tag == ci.nodeName.toLowerCase()){ - return 1 - }; - } - return 0; - - }, - queryCommandValue:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(), - node; - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - node = null; - break; - } - if(tag == ci.nodeName.toLowerCase()){ - node = ci; - break; - }; - } - return node ? getStyle(node) || domUtils.getComputedStyle(node, 'list-style-type') : null; - } - }; -}; - - - -// plugins/source.js -/** - * 源码编辑插件 - * @file - * @since 1.2.6.1 - */ - -(function (){ - var sourceEditors = { - textarea: function (editor, holder){ - var textarea = holder.ownerDocument.createElement('textarea'); - textarea.style.cssText = 'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;'; - // todo: IE下只有onresize属性可用... 很纠结 - if (browser.ie && browser.version < 8) { - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - holder.onresize = function (){ - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - }; - } - holder.appendChild(textarea); - return { - setContent: function (content){ - textarea.value = content; - }, - getContent: function (){ - return textarea.value; - }, - select: function (){ - var range; - if (browser.ie) { - range = textarea.createTextRange(); - range.collapse(true); - range.select(); - } else { - //todo: chrome下无法设置焦点 - textarea.setSelectionRange(0, 0); - textarea.focus(); - } - }, - dispose: function (){ - holder.removeChild(textarea); - // todo - holder.onresize = null; - textarea = null; - holder = null; - } - }; - }, - codemirror: function (editor, holder){ - - var codeEditor = window.CodeMirror(holder, { - mode: "text/html", - tabMode: "indent", - lineNumbers: true, - lineWrapping:true - }); - var dom = codeEditor.getWrapperElement(); - dom.style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;'; - codeEditor.getScrollerElement().style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;'; - codeEditor.refresh(); - return { - getCodeMirror:function(){ - return codeEditor; - }, - setContent: function (content){ - codeEditor.setValue(content); - }, - getContent: function (){ - return codeEditor.getValue(); - }, - select: function (){ - codeEditor.focus(); - }, - dispose: function (){ - holder.removeChild(dom); - dom = null; - codeEditor = null; - } - }; - } - }; - - UE.plugins['source'] = function (){ - var me = this; - var opt = this.options; - var sourceMode = false; - var sourceEditor; - var orgSetContent; - opt.sourceEditor = browser.ie ? 'textarea' : (opt.sourceEditor || 'codemirror'); - - me.setOpt({ - sourceEditorFirst:false - }); - function createSourceEditor(holder){ - return sourceEditors[opt.sourceEditor == 'codemirror' && window.CodeMirror ? 'codemirror' : 'textarea'](me, holder); - } - - var bakCssText; - //解决在源码模式下getContent不能得到最新的内容问题 - var oldGetContent, - bakAddress; - - /** - * 切换源码模式和编辑模式 - * @command source - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'source'); - * ``` - */ - - /** - * 查询当前编辑区域的状态是源码模式还是可视化模式 - * @command source - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前是源码编辑模式,返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'source' ); - * ``` - */ - - me.commands['source'] = { - execCommand: function (){ - - sourceMode = !sourceMode; - if (sourceMode) { - bakAddress = me.selection.getRange().createAddress(false,true); - me.undoManger && me.undoManger.save(true); - if(browser.gecko){ - me.body.contentEditable = false; - } - - bakCssText = me.iframe.style.cssText; - me.iframe.style.cssText += 'position:absolute;left:-32768px;top:-32768px;'; - - - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML); - me.filterOutputRule(root); - root.traversal(function (node) { - if (node.type == 'element') { - switch (node.tagName) { - case 'td': - case 'th': - case 'caption': - if(node.children && node.children.length == 1){ - if(node.firstChild().tagName == 'br' ){ - node.removeChild(node.firstChild()) - } - }; - break; - case 'pre': - node.innerText(node.innerText().replace(/ /g,' ')) - - } - } - }); - - me.fireEvent('aftergetcontent'); - - var content = root.toHtml(true); - - sourceEditor = createSourceEditor(me.iframe.parentNode); - - sourceEditor.setContent(content); - - orgSetContent = me.setContent; - - me.setContent = function(html){ - //这里暂时不触发事件,防止报错 - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - sourceEditor.setContent(html); - }; - - setTimeout(function (){ - sourceEditor.select(); - me.addListener('fullscreenchanged', function(){ - try{ - sourceEditor.getCodeMirror().refresh() - }catch(e){} - }); - }); - - //重置getContent,源码模式下取值也能是最新的数据 - oldGetContent = me.getContent; - me.getContent = function (){ - return sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - }; - } else { - me.iframe.style.cssText = bakCssText; - var cont = sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - //处理掉block节点前后的空格,有可能会误命中,暂时不考虑 - cont = cont.replace(new RegExp('[\\r\\t\\n ]*<\/?(\\w+)\\s*(?:[^>]*)>','g'), function(a,b){ - if(b && !dtd.$inlineWithA[b.toLowerCase()]){ - return a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,''); - } - return a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,'') - }); - - me.setContent = orgSetContent; - - me.setContent(cont); - sourceEditor.dispose(); - sourceEditor = null; - //还原getContent方法 - me.getContent = oldGetContent; - var first = me.body.firstChild; - //trace:1106 都删除空了,下边会报错,所以补充一个p占位 - if(!first){ - me.body.innerHTML = '

    '+(browser.ie?'':'
    ')+'

    '; - first = me.body.firstChild; - } - - - //要在ifm为显示时ff才能取到selection,否则报错 - //这里不能比较位置了 - me.undoManger && me.undoManger.save(true); - - if(browser.gecko){ - - var input = document.createElement('input'); - input.style.cssText = 'position:absolute;left:0;top:-32768px'; - - document.body.appendChild(input); - - me.body.contentEditable = false; - setTimeout(function(){ - domUtils.setViewportOffset(input, { left: -32768, top: 0 }); - input.focus(); - setTimeout(function(){ - me.body.contentEditable = true; - me.selection.getRange().moveToAddress(bakAddress).select(true); - domUtils.remove(input); - }); - - }); - }else{ - //ie下有可能报错,比如在代码顶头的情况 - try{ - me.selection.getRange().moveToAddress(bakAddress).select(true); - }catch(e){} - - } - } - this.fireEvent('sourcemodechanged', sourceMode); - }, - queryCommandState: function (){ - return sourceMode|0; - }, - notNeedUndo : 1 - }; - var oldQueryCommandState = me.queryCommandState; - - me.queryCommandState = function (cmdName){ - cmdName = cmdName.toLowerCase(); - if (sourceMode) { - //源码模式下可以开启的命令 - return cmdName in { - 'source' : 1, - 'fullscreen' : 1 - } ? 1 : -1 - } - return oldQueryCommandState.apply(this, arguments); - }; - - if(opt.sourceEditor == "codemirror"){ - - me.addListener("ready",function(){ - utils.loadFile(document,{ - src : opt.codeMirrorJsUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - if(opt.sourceEditorFirst){ - setTimeout(function(){ - me.execCommand("source"); - },0); - } - }); - utils.loadFile(document,{ - tag : "link", - rel : "stylesheet", - type : "text/css", - href : opt.codeMirrorCssUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css" - }); - - }); - } - - }; - -})(); - -// plugins/enterkey.js -///import core -///import plugins/undo.js -///commands 设置回车标签p或br -///commandsName EnterKey -///commandsTitle 设置回车标签p或br -/** - * @description 处理回车 - * @author zhanyi - */ -UE.plugins['enterkey'] = function() { - var hTag, - me = this, - tag = me.options.enterTag; - me.addListener('keyup', function(type, evt) { - - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var range = me.selection.getRange(), - start = range.startContainer, - doSave; - - //修正在h1-h6里边回车后不能嵌套p的问题 - if (!browser.ie) { - - if (/h\d/i.test(hTag)) { - if (browser.gecko) { - var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true); - if (!h) { - me.document.execCommand('formatBlock', false, '

    '); - doSave = 1; - } - } else { - //chrome remove div - if (start.nodeType == 1) { - var tmp = me.document.createTextNode(''),div; - range.insertNode(tmp); - div = domUtils.findParentByTagName(tmp, 'div', true); - if (div) { - var p = me.document.createElement('p'); - while (div.firstChild) { - p.appendChild(div.firstChild); - } - div.parentNode.insertBefore(p, div); - domUtils.remove(div); - range.setStartBefore(tmp).setCursor(); - doSave = 1; - } - domUtils.remove(tmp); - - } - } - - if (me.undoManger && doSave) { - me.undoManger.save(); - } - } - //没有站位符,会出现多行的问题 - browser.opera && range.select(); - }else{ - me.fireEvent('saveScene',true,true) - } - } - }); - - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) {//回车 - if(me.fireEvent('beforeenterkeydown')){ - domUtils.preventDefault(evt); - return; - } - me.fireEvent('saveScene',true,true); - hTag = ''; - - - var range = me.selection.getRange(); - - if (!range.collapsed) { - //跨td不能删 - var start = range.startContainer, - end = range.endContainer, - startTd = domUtils.findParentByTagName(start, 'td', true), - endTd = domUtils.findParentByTagName(end, 'td', true); - if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - return; - } - } - if (tag == 'p') { - - - if (!browser.ie) { - - start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true); - - //opera下执行formatblock会在table的场景下有问题,回车在opera原生支持很好,所以暂时在opera去掉调用这个原生的command - //trace:2431 - if (!start && !browser.opera) { - - me.document.execCommand('formatBlock', false, '

    '); - - if (browser.gecko) { - range = me.selection.getRange(); - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - start && domUtils.removeDirtyAttr(start); - } - - - } else { - hTag = start.tagName; - start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start); - } - - } - - } else { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - - if (!range.collapsed) { - range.deleteContents(); - start = range.startContainer; - if (start.nodeType == 1 && (start = start.childNodes[range.startOffset])) { - while (start.nodeType == 1) { - if (dtd.$empty[start.tagName]) { - range.setStartBefore(start).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - if (!start.firstChild) { - var br = range.document.createElement('br'); - start.appendChild(br); - range.setStart(start, 0).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - start = start.firstChild; - } - if (start === range.startContainer.childNodes[range.startOffset]) { - br = range.document.createElement('br'); - range.insertNode(br).setCursor(); - - } else { - range.setStart(start, 0).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br).setStartAfter(br).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br); - var parent = br.parentNode; - if (parent.lastChild === br) { - br.parentNode.insertBefore(br.cloneNode(true), br); - range.setStartBefore(br); - } else { - range.setStartAfter(br); - } - range.setCursor(); - - } - - } - - } - }); -}; - - -// plugins/keystrokes.js -/* 处理特殊键的兼容性问题 */ -UE.plugins['keystrokes'] = function() { - var me = this; - var collapsed = true; - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng = me.selection.getRange(); - - //处理全选的情况 - if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90 - || keyCode >= 48 && keyCode <= 57 || - keyCode >= 96 && keyCode <= 111 || { - 13:1, - 8:1, - 46:1 - }[keyCode]) - ){ - - var tmpNode = rng.startContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setStartBefore(tmpNode) - } - tmpNode = rng.endContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setEndAfter(tmpNode) - } - rng.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(rng.endContainer && rng.endContainer.nodeType == 1){ - tmpNode = rng.endContainer.childNodes[rng.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - rng.setEndAfter(tmpNode); - } - } - if(rng.startOffset == 0){ - tmpNode = rng.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = rng.endContainer; - if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.fireEvent('saveScene'); - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - rng.setStart(me.body.firstChild,0).setCursor(false,true); - me._selectionChange(); - return; - } - } - } - } - - //处理backspace - if (keyCode == keymap.Backspace) { - rng = me.selection.getRange(); - collapsed = rng.collapsed; - if(me.fireEvent('delkeydown',evt)){ - return; - } - var start,end; - //避免按两次删除才能生效的问题 - if(rng.collapsed && rng.inFillChar()){ - start = rng.startContainer; - - if(domUtils.isFillChar(start)){ - rng.setStartBefore(start).shrinkBoundary(true).collapse(true); - domUtils.remove(start) - }else{ - start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),''); - rng.startOffset--; - rng.collapse(true).select(true) - } - } - - //解决选中control元素不能删除的问题 - if (start = rng.getClosedNode()) { - me.fireEvent('saveScene'); - rng.setStartBefore(start); - domUtils.remove(start); - rng.setCursor(); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - //阻止在table上的删除 - if (!browser.ie) { - start = domUtils.findParentByTagName(rng.startContainer, 'table', true); - end = domUtils.findParentByTagName(rng.endContainer, 'table', true); - if (start && !end || !start && end || start !== end) { - evt.preventDefault(); - return; - } - } - - } - //处理tab键的逻辑 - if (keyCode == keymap.Tab) { - //不处理以下标签 - var excludeTagNameForTabKey = { - 'ol' : 1, - 'ul' : 1, - 'table':1 - }; - //处理组件里的tab按下事件 - if(me.fireEvent('tabkeydown',evt)){ - domUtils.preventDefault(evt); - return; - } - var range = me.selection.getRange(); - me.fireEvent('saveScene'); - for (var i = 0,txt = '',tabSize = me.options.tabSize|| 4,tabNode = me.options.tabNode || ' '; i < tabSize; i++) { - txt += tabNode; - } - var span = me.document.createElement('span'); - span.innerHTML = txt + domUtils.fillChar; - if (range.collapsed) { - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var filterFn = function(node) { - return domUtils.isBlockElm(node) && !excludeTagNameForTabKey[node.tagName.toLowerCase()] - - }; - //普通的情况 - start = domUtils.findParent(range.startContainer, filterFn,true); - end = domUtils.findParent(range.endContainer, filterFn,true); - if (start && end && start === end) { - range.deleteContents(); - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var bookmark = range.createBookmark(); - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn); - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - current.insertBefore(span.cloneNode(true).firstChild, current.firstChild); - current = domUtils.getNextDomNode(current, false, filterFn); - } - range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select(); - } - } - domUtils.preventDefault(evt) - } - //trace:1634 - //ff的del键在容器空的时候,也会删除 - if(browser.gecko && keyCode == 46){ - range = me.selection.getRange(); - if(range.collapsed){ - start = range.startContainer; - if(domUtils.isEmptyBlock(start)){ - var parent = start.parentNode; - while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){ - start = parent; - parent = parent.parentNode; - } - if(start === parent.lastChild) - evt.preventDefault(); - return; - } - } - } - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng,me = this; - if(keyCode == keymap.Backspace){ - if(me.fireEvent('delkeyup')){ - return; - } - rng = me.selection.getRange(); - if(rng.collapsed){ - var tmpNode, - autoClearTagName = ['h1','h2','h3','h4','h5','h6']; - if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){ - if(domUtils.isEmptyBlock(tmpNode)){ - var pre = tmpNode.previousSibling; - if(pre && pre.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtLast(pre).setCursor(false,true); - return; - }else{ - var next = tmpNode.nextSibling; - if(next && next.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtFirst(next).setCursor(false,true); - return; - } - } - } - } - //处理当删除到body时,要重新给p标签展位 - if(domUtils.isBody(rng.startContainer)){ - var tmpNode = domUtils.createElement(me.document,'p',{ - 'innerHTML' : browser.ie ? domUtils.fillChar : '
    ' - }); - rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true); - } - } - - - //chrome下如果删除了inline标签,浏览器会有记忆,在输入文字还是会套上刚才删除的标签,所以这里再选一次就不会了 - if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){ - if(browser.ie){ - var span = rng.document.createElement('span'); - rng.insertNode(span).setStartBefore(span).collapse(true); - rng.select(); - domUtils.remove(span) - }else{ - rng.select() - } - - } - } - - - }) -}; - -// plugins/fiximgclick.js -///import core -///commands 修复chrome下图片不能点击的问题,出现八个角可改变大小 -///commandsName FixImgClick -///commandsTitle 修复chrome下图片不能点击的问题,出现八个角可改变大小 -//修复chrome下图片不能点击的问题,出现八个角可改变大小 - -UE.plugins['fiximgclick'] = (function () { - - var elementUpdated = false; - function Scale() { - this.editor = null; - this.resizer = null; - this.cover = null; - this.doc = document; - this.prePos = {x: 0, y: 0}; - this.startPos = {x: 0, y: 0}; - } - - (function () { - var rect = [ - //[left, top, width, height] - [0, 0, -1, -1], - [0, 0, 0, -1], - [0, 0, 1, -1], - [0, 0, -1, 0], - [0, 0, 1, 0], - [0, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - - Scale.prototype = { - init: function (editor) { - var me = this; - me.editor = editor; - me.startPos = this.prePos = {x: 0, y: 0}; - me.dragId = -1; - - var hands = [], - cover = me.cover = document.createElement('div'), - resizer = me.resizer = document.createElement('div'); - - cover.id = me.editor.ui.id + '_imagescale_cover'; - cover.style.cssText = 'position:absolute;display:none;z-index:' + (me.editor.options.zIndex) + ';filter:alpha(opacity=0); opacity:0;background:#CCC;'; - domUtils.on(cover, 'mousedown click', function () { - me.hide(); - }); - - for (i = 0; i < 8; i++) { - hands.push(''); - } - resizer.id = me.editor.ui.id + '_imagescale'; - resizer.className = 'edui-editor-imagescale'; - resizer.innerHTML = hands.join(''); - resizer.style.cssText += ';display:none;border:1px solid #3b77ff;z-index:' + (me.editor.options.zIndex) + ';'; - - me.editor.ui.getDom().appendChild(cover); - me.editor.ui.getDom().appendChild(resizer); - - me.initStyle(); - me.initEvents(); - }, - initStyle: function () { - utils.cssRule('imagescale', '.edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}' + - '.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}'); - }, - initEvents: function () { - var me = this; - - me.startPos.x = me.startPos.y = 0; - me.isDraging = false; - }, - _eventHandler: function (e) { - var me = this; - switch (e.type) { - case 'mousedown': - var hand = e.target || e.srcElement, hand; - if (hand.className.indexOf('edui-editor-imagescale-hand') != -1 && me.dragId == -1) { - me.dragId = hand.className.slice(-1); - me.startPos.x = me.prePos.x = e.clientX; - me.startPos.y = me.prePos.y = e.clientY; - domUtils.on(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - } - break; - case 'mousemove': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.prePos.x = e.clientX; - me.prePos.y = e.clientY; - elementUpdated = true; - me.updateTargetElement(); - - } - break; - case 'mouseup': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.updateTargetElement(); - if (me.target.parentNode) me.attachTo(me.target); - me.dragId = -1; - } - domUtils.un(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - //修复只是点击挪动点,但没有改变大小,不应该触发contentchange - if(elementUpdated){ - elementUpdated = false; - me.editor.fireEvent('contentchange'); - } - - break; - default: - break; - } - }, - updateTargetElement: function () { - var me = this; - domUtils.setStyles(me.target, { - 'width': me.resizer.style.width, - 'height': me.resizer.style.height - }); - me.target.width = parseInt(me.resizer.style.width); - me.target.height = parseInt(me.resizer.style.height); - me.attachTo(me.target); - }, - updateContainerStyle: function (dir, offset) { - var me = this, - dom = me.resizer, tmp; - - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - }, - _validScaledProp: function (prop, value) { - var ele = this.resizer, - wrap = document; - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - }, - hideCover: function () { - this.cover.style.display = 'none'; - }, - showCover: function () { - var me = this, - editorPos = domUtils.getXY(me.editor.ui.getDom()), - iframePos = domUtils.getXY(me.editor.iframe); - - domUtils.setStyles(me.cover, { - 'width': me.editor.iframe.offsetWidth + 'px', - 'height': me.editor.iframe.offsetHeight + 'px', - 'top': iframePos.y - editorPos.y + 'px', - 'left': iframePos.x - editorPos.x + 'px', - 'position': 'absolute', - 'display': '' - }) - }, - show: function (targetObj) { - var me = this; - me.resizer.style.display = 'block'; - if(targetObj) me.attachTo(targetObj); - - domUtils.on(this.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.on(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - - me.showCover(); - me.editor.fireEvent('afterscaleshow', me); - me.editor.fireEvent('saveScene'); - }, - hide: function () { - var me = this; - me.hideCover(); - me.resizer.style.display = 'none'; - - domUtils.un(me.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.un(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - me.editor.fireEvent('afterscalehide', me); - }, - proxy: function( fn, context ) { - return function(e) { - return fn.apply( context || this, arguments); - }; - }, - attachTo: function (targetObj) { - var me = this, - target = me.target = targetObj, - resizer = this.resizer, - imgPos = domUtils.getXY(target), - iframePos = domUtils.getXY(me.editor.iframe), - editorPos = domUtils.getXY(resizer.parentNode); - - domUtils.setStyles(resizer, { - 'width': target.width + 'px', - 'height': target.height + 'px', - 'left': iframePos.x + imgPos.x - me.editor.document.body.scrollLeft - editorPos.x - parseInt(resizer.style.borderLeftWidth) + 'px', - 'top': iframePos.y + imgPos.y - me.editor.document.body.scrollTop - editorPos.y - parseInt(resizer.style.borderTopWidth) + 'px' - }); - } - } - })(); - - return function () { - var me = this, - imageScale; - - me.setOpt('imageScaleEnabled', true); - - if ( !browser.ie && me.options.imageScaleEnabled) { - me.addListener('click', function (type, e) { - - var range = me.selection.getRange(), - img = range.getClosedNode(); - - if (img && img.tagName == 'IMG' && me.body.contentEditable!="false") { - - if (img.className.indexOf("edui-faked-music") != -1 || - img.getAttribute("anchorname") || - domUtils.hasClass(img, 'loadingclass') || - domUtils.hasClass(img, 'loaderrorclass')) { return } - - if (!imageScale) { - imageScale = new Scale(); - imageScale.init(me); - me.ui.getDom().appendChild(imageScale.resizer); - - var _keyDownHandler = function (e) { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(imageScale.target).select(); - }, _mouseDownHandler = function (e) { - var ele = e.target || e.srcElement; - if (ele && (ele.className===undefined || ele.className.indexOf('edui-editor-imagescale') == -1)) { - _keyDownHandler(e); - } - }, timer; - - me.addListener('afterscaleshow', function (e) { - me.addListener('beforekeydown', _keyDownHandler); - me.addListener('beforemousedown', _mouseDownHandler); - domUtils.on(document, 'keydown', _keyDownHandler); - domUtils.on(document,'mousedown', _mouseDownHandler); - me.selection.getNative().removeAllRanges(); - }); - me.addListener('afterscalehide', function (e) { - me.removeListener('beforekeydown', _keyDownHandler); - me.removeListener('beforemousedown', _mouseDownHandler); - domUtils.un(document, 'keydown', _keyDownHandler); - domUtils.un(document,'mousedown', _mouseDownHandler); - var target = imageScale.target; - if (target.parentNode) { - me.selection.getRange().selectNode(target).select(); - } - }); - //TODO 有iframe的情况,mousedown不能往下传。。 - domUtils.on(imageScale.resizer, 'mousedown', function (e) { - me.selection.getNative().removeAllRanges(); - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - timer = setTimeout(function () { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(ele).select(); - }, 200); - } - }); - domUtils.on(imageScale.resizer, 'mouseup', function (e) { - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - clearTimeout(timer); - } - }); - } - imageScale.show(img); - } else { - if (imageScale && imageScale.resizer.style.display != 'none') imageScale.hide(); - } - }); - } - - if (browser.webkit) { - me.addListener('click', function (type, e) { - if (e.target.tagName == 'IMG' && me.body.contentEditable!="false") { - var range = new dom.Range(me.document); - range.selectNode(e.target).select(); - } - }); - } - } -})(); - -// plugins/autolink.js -///import core -///commands 为非ie浏览器自动添加a标签 -///commandsName AutoLink -///commandsTitle 自动增加链接 -/** - * @description 为非ie浏览器自动添加a标签 - * @author zhanyi - */ - -UE.plugin.register('autolink',function(){ - var cont = 0; - - return !browser.ie ? { - - bindEvents:{ - 'reset' : function(){ - cont = 0; - }, - 'keydown':function(type, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - - var sel = me.selection.getNative(), - range = sel.getRangeAt(0).cloneRange(), - offset, - charCode; - - var start = range.startContainer; - while (start.nodeType == 1 && range.startOffset > 0) { - start = range.startContainer.childNodes[range.startOffset - 1]; - if (!start){ - break; - } - range.setStart(start, start.nodeType == 1 ? start.childNodes.length : start.nodeValue.length); - range.collapse(true); - start = range.startContainer; - } - - do{ - if (range.startOffset == 0) { - start = range.startContainer.previousSibling; - - while (start && start.nodeType == 1) { - start = start.lastChild; - } - if (!start || domUtils.isFillChar(start)){ - break; - } - offset = start.nodeValue.length; - } else { - start = range.startContainer; - offset = range.startOffset; - } - range.setStart(start, offset - 1); - charCode = range.toString().charCodeAt(0); - } while (charCode != 160 && charCode != 32); - - if (range.toString().replace(new RegExp(domUtils.fillChar, 'g'), '').match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) { - while(range.toString().length){ - if(/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(range.toString())){ - break; - } - try{ - range.setStart(range.startContainer,range.startOffset+1); - }catch(e){ - //trace:2121 - var start = range.startContainer; - while(!(next = start.nextSibling)){ - if(domUtils.isBody(start)){ - return; - } - start = start.parentNode; - - } - range.setStart(next,0); - - } - - } - //range的开始边界已经在a标签里的不再处理 - if(domUtils.findParentByTagName(range.startContainer,'a',true)){ - return; - } - var a = me.document.createElement('a'),text = me.document.createTextNode(' '),href; - - me.undoManger && me.undoManger.save(); - a.appendChild(range.extractContents()); - a.href = a.innerHTML = a.innerHTML.replace(/<[^>]+>/g,''); - href = a.getAttribute("href").replace(new RegExp(domUtils.fillChar,'g'),''); - href = /^(?:https?:\/\/)/ig.test(href) ? href : "http://"+ href; - a.setAttribute('_src',utils.html(href)); - a.href = utils.html(href); - - range.insertNode(a); - a.parentNode.insertBefore(text, a.nextSibling); - range.setStart(text, 0); - range.collapse(true); - sel.removeAllRanges(); - sel.addRange(range); - me.undoManger && me.undoManger.save(); - } - } - } - } - }:{} - },function(){ - var keyCodes = { - 37:1, 38:1, 39:1, 40:1, - 13:1,32:1 - }; - function checkIsCludeLink(node){ - if(node.nodeType == 3){ - return null - } - if(node.nodeName == 'A'){ - return node; - } - var lastChild = node.lastChild; - - while(lastChild){ - if(lastChild.nodeName == 'A'){ - return lastChild; - } - if(lastChild.nodeType == 3){ - if(domUtils.isWhitespace(lastChild)){ - lastChild = lastChild.previousSibling; - continue; - } - return null - } - lastChild = lastChild.lastChild; - } - } - browser.ie && this.addListener('keyup',function(cmd,evt){ - var me = this,keyCode = evt.keyCode; - if(keyCodes[keyCode]){ - var rng = me.selection.getRange(); - var start = rng.startContainer; - - if(keyCode == 13){ - while(start && !domUtils.isBody(start) && !domUtils.isBlockElm(start)){ - start = start.parentNode; - } - if(start && !domUtils.isBody(start) && start.nodeName == 'P'){ - var pre = start.previousSibling; - if(pre && pre.nodeType == 1){ - var pre = checkIsCludeLink(pre); - if(pre && !pre.getAttribute('_href')){ - domUtils.remove(pre,true); - } - } - } - }else if(keyCode == 32 ){ - if(start.nodeType == 3 && /^\s$/.test(start.nodeValue)){ - start = start.previousSibling; - if(start && start.nodeName == 'A' && !start.getAttribute('_href')){ - domUtils.remove(start,true); - } - } - }else { - start = domUtils.findParentByTagName(start,'a',true); - if(start && !start.getAttribute('_href')){ - var bk = rng.createBookmark(); - - domUtils.remove(start,true); - rng.moveToBookmark(bk).select(true) - } - } - - } - - - }); - } -); - -// plugins/autoheight.js -///import core -///commands 当输入内容超过编辑器高度时,编辑器自动增高 -///commandsName AutoHeight,autoHeightEnabled -///commandsTitle 自动增高 -/** - * @description 自动伸展 - * @author zhanyi - */ -UE.plugins['autoheight'] = function () { - var me = this; - //提供开关,就算加载也可以关闭 - me.autoHeightEnabled = me.options.autoHeightEnabled !== false; - if (!me.autoHeightEnabled) { - return; - } - - var bakOverflow, - lastHeight = 0, - options = me.options, - currentHeight, - timer; - - function adjustHeight() { - var me = this; - clearTimeout(timer); - if(isFullscreen)return; - if (!me.queryCommandState || me.queryCommandState && me.queryCommandState('source') != 1) { - timer = setTimeout(function(){ - - var node = me.body.lastChild; - while(node && node.nodeType != 1){ - node = node.previousSibling; - } - if(node && node.nodeType == 1){ - node.style.clear = 'both'; - currentHeight = Math.max(domUtils.getXY(node).y + node.offsetHeight + 25 ,Math.max(options.minFrameHeight, options.initialFrameHeight)) ; - if (currentHeight != lastHeight) { - if (currentHeight !== parseInt(me.iframe.parentNode.style.height)) { - me.iframe.parentNode.style.height = currentHeight + 'px'; - } - me.body.style.height = currentHeight + 'px'; - lastHeight = currentHeight; - } - domUtils.removeStyle(node,'clear'); - } - - - },50) - } - } - var isFullscreen; - me.addListener('fullscreenchanged',function(cmd,f){ - isFullscreen = f - }); - me.addListener('destroy', function () { - me.removeListener('contentchange afterinserthtml keyup mouseup',adjustHeight) - }); - me.enableAutoHeight = function () { - var me = this; - if (!me.autoHeightEnabled) { - return; - } - var doc = me.document; - me.autoHeightEnabled = true; - bakOverflow = doc.body.style.overflowY; - doc.body.style.overflowY = 'hidden'; - me.addListener('contentchange afterinserthtml keyup mouseup',adjustHeight); - //ff不给事件算得不对 - - setTimeout(function () { - adjustHeight.call(me); - }, browser.gecko ? 100 : 0); - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - me.disableAutoHeight = function () { - - me.body.style.overflowY = bakOverflow || ''; - - me.removeListener('contentchange', adjustHeight); - me.removeListener('keyup', adjustHeight); - me.removeListener('mouseup', adjustHeight); - me.autoHeightEnabled = false; - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - - me.on('setHeight',function(){ - me.disableAutoHeight() - }); - me.addListener('ready', function () { - me.enableAutoHeight(); - //trace:1764 - var timer; - domUtils.on(browser.ie ? me.body : me.document, browser.webkit ? 'dragover' : 'drop', function () { - clearTimeout(timer); - timer = setTimeout(function () { - //trace:3681 - adjustHeight.call(me); - }, 100); - - }); - //修复内容过多时,回到顶部,顶部内容被工具栏遮挡问题 - var lastScrollY; - window.onscroll = function(){ - if(lastScrollY === null){ - lastScrollY = this.scrollY - }else if(this.scrollY == 0 && lastScrollY != 0){ - me.window.scrollTo(0,0); - lastScrollY = null; - } - } - }); - - -}; - - - -// plugins/autofloat.js -///import core -///commands 悬浮工具栏 -///commandsName AutoFloat,autoFloatEnabled -///commandsTitle 悬浮工具栏 -/** - * modified by chengchao01 - * 注意: 引入此功能后,在IE6下会将body的背景图片覆盖掉! - */ -UE.plugins['autofloat'] = function() { - var me = this, - lang = me.getLang(); - me.setOpt({ - topOffset:0 - }); - var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false, - topOffset = me.options.topOffset; - - - //如果不固定toolbar的位置,则直接退出 - if(!optsAutoFloatEnabled){ - return; - } - var uiUtils = UE.ui.uiUtils, - LteIE6 = browser.ie && browser.version <= 6, - quirks = browser.quirks; - - function checkHasUI(){ - if(!UE.ui){ - alert(lang.autofloatMsg); - return 0; - } - return 1; - } - function fixIE6FixedPos(){ - var docStyle = document.body.style; - docStyle.backgroundImage = 'url("about:blank")'; - docStyle.backgroundAttachment = 'fixed'; - } - var bakCssText, - placeHolder = document.createElement('div'), - toolbarBox,orgTop, - getPosition, - flag =true; //ie7模式下需要偏移 - function setFloating(){ - var toobarBoxPos = domUtils.getXY(toolbarBox), - origalFloat = domUtils.getComputedStyle(toolbarBox,'position'), - origalLeft = domUtils.getComputedStyle(toolbarBox,'left'); - toolbarBox.style.width = toolbarBox.offsetWidth + 'px'; - toolbarBox.style.zIndex = me.options.zIndex * 1 + 1; - toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox); - if (LteIE6 || (quirks && browser.ie)) { - if(toolbarBox.style.position != 'absolute'){ - toolbarBox.style.position = 'absolute'; - } - toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset + 'px'; - } else { - if (browser.ie7Compat && flag) { - flag = false; - toolbarBox.style.left = domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left+2 + 'px'; - } - if(toolbarBox.style.position != 'fixed'){ - toolbarBox.style.position = 'fixed'; - toolbarBox.style.top = topOffset +"px"; - ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px'); - } - } - } - function unsetFloating(){ - flag = true; - if(placeHolder.parentNode){ - placeHolder.parentNode.removeChild(placeHolder); - } - - toolbarBox.style.cssText = bakCssText; - } - - function updateFloating(){ - var rect3 = getPosition(me.container); - var offset=me.options.toolbarTopOffset||0; - if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) { - setFloating(); - }else{ - unsetFloating(); - } - } - var defer_updateFloating = utils.defer(function(){ - updateFloating(); - },browser.ie ? 200 : 100,true); - - me.addListener('destroy',function(){ - domUtils.un(window, ['scroll','resize'], updateFloating); - me.removeListener('keydown', defer_updateFloating); - }); - - me.addListener('ready', function(){ - if(checkHasUI(me)){ - //加载了ui组件,但在new时,没有加载ui,导致编辑器实例上没有ui类,所以这里做判断 - if(!me.ui){ - return; - } - getPosition = uiUtils.getClientRect; - toolbarBox = me.ui.getDom('toolbarbox'); - orgTop = getPosition(toolbarBox).top; - bakCssText = toolbarBox.style.cssText; - placeHolder.style.height = toolbarBox.offsetHeight + 'px'; - if(LteIE6){ - fixIE6FixedPos(); - } - domUtils.on(window, ['scroll','resize'], updateFloating); - me.addListener('keydown', defer_updateFloating); - - me.addListener('beforefullscreenchange', function (t, enabled){ - if (enabled) { - unsetFloating(); - } - }); - me.addListener('fullscreenchanged', function (t, enabled){ - if (!enabled) { - updateFloating(); - } - }); - me.addListener('sourcemodechanged', function (t, enabled){ - setTimeout(function (){ - updateFloating(); - },0); - }); - me.addListener("clearDoc",function(){ - setTimeout(function(){ - updateFloating(); - },0); - - }) - } - }); -}; - - -// plugins/video.js -/** - * video插件, 为UEditor提供视频插入支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['video'] = function (){ - var me =this; - - /** - * 创建插入视频字符窜 - * @param url 视频地址 - * @param width 视频宽度 - * @param height 视频高度 - * @param align 视频对齐 - * @param toEmbed 是否以flash代替显示 - * @param addParagraph 是否需要添加P 标签 - */ - function creatInsertStr(url,width,height,id,align,classname,type){ - - url = utils.unhtmlForUrl(url); - align = utils.unhtml(align); - classname = utils.unhtml(classname).trim(); - - width = parseInt(width, 10) || 0; - height = parseInt(height, 10) || 0; - - var str; - switch (type){ - case 'image': - str = '' - break; - case 'embed': - str = ''; - break; - case 'video': - var ext = url.substr(url.lastIndexOf('.') + 1); - if(ext == 'ogv') ext = 'ogg'; - str = '' + - ''; - break; - } - return str; - } - - function switchImgAndVideo(root,img2video){ - utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'),function(node){ - var className = node.getAttr('class'); - if(className && className.indexOf('edui-faked-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - if(className && className.indexOf('edui-upload-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - }) - } - - me.addOutputRule(function(root){ - switchImgAndVideo(root,true) - }); - me.addInputRule(function(root){ - switchImgAndVideo(root) - }); - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } videoAttr 键值对对象, 描述一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }; - * - * //editor 是编辑器实例 - * //向编辑器插入单个视频 - * editor.execCommand( 'insertvideo', videoAttr ); - * ``` - */ - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Array } videoArr 需要插入的视频的数组, 其中的每一个元素都是一个键值对对象, 描述了一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr1 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }, - * videoAttr2 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * } - * - * //editor 是编辑器实例 - * //该方法将会向编辑器内插入两个视频 - * editor.execCommand( 'insertvideo', [ videoAttr1, videoAttr2 ] ); - * ``` - */ - - /** - * 查询当前光标所在处是否是一个视频 - * @command insertvideo - * @method queryCommandState - * @param { String } cmd 需要查询的命令字符串 - * @return { int } 如果当前光标所在处的元素是一个视频对象, 则返回1,否则返回0 - * @example - * ```javascript - * - * //editor 是编辑器实例 - * editor.queryCommandState( 'insertvideo' ); - * ``` - */ - me.commands["insertvideo"] = { - execCommand: function (cmd, videoObjs, type){ - videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs]; - var html = [],id = 'tmpVedio', cl; - for(var i=0,vi,len = videoObjs.length;i 0) { - return 0; - } - for (var i in dtd.$isNotEmpty) if (dtd.$isNotEmpty.hasOwnProperty(i)) { - if (node.getElementsByTagName(i).length) { - return 0; - } - } - return 1; - }; - UETable.getWidth = function (cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - }; - - /** - * 获取单元格或者单元格组的“对齐”状态。 如果当前的检测对象是一个单元格组, 只有在满足所有单元格的 水平和竖直 对齐属性都相同的 - * 条件时才会返回其状态值,否则将返回null; 如果当前只检测了一个单元格, 则直接返回当前单元格的对齐状态; - * @param table cell or table cells , 支持单个单元格dom对象 或者 单元格dom对象数组 - * @return { align: 'left' || 'right' || 'center', valign: 'top' || 'middle' || 'bottom' } 或者 null - */ - UETable.getTableCellAlignState = function ( cells ) { - - !utils.isArray( cells ) && ( cells = [cells] ); - - var result = {}, - status = ['align', 'valign'], - tempStatus = null, - isSame = true;//状态是否相同 - - utils.each( cells, function( cellNode ){ - - utils.each( status, function( currentState ){ - - tempStatus = cellNode.getAttribute( currentState ); - - if( !result[ currentState ] && tempStatus ) { - result[ currentState ] = tempStatus; - } else if( !result[ currentState ] || ( tempStatus !== result[ currentState ] ) ) { - isSame = false; - return false; - } - - } ); - - return isSame; - - }); - - return isSame ? result : null; - - }; - - /** - * 根据当前选区获取相关的table信息 - * @return {Object} - */ - UETable.getTableItemsByRange = function (editor) { - var start = editor.selection.getStart(); - - //ff下会选中bookmark - if( start && start.id && start.id.indexOf('_baidu_bookmark_start_') === 0 && start.nextSibling) { - start = start.nextSibling; - } - - //在table或者td边缘有可能存在选中tr的情况 - var cell = start && domUtils.findParentByTagName(start, ["td", "th"], true), - tr = cell && cell.parentNode, - caption = start && domUtils.findParentByTagName(start, 'caption', true), - table = caption ? caption.parentNode : tr && tr.parentNode.parentNode; - - return { - cell:cell, - tr:tr, - table:table, - caption:caption - } - }; - UETable.getUETableBySelected = function (editor) { - var table = UETable.getTableItemsByRange(editor).table; - if (table && table.ueTable && table.ueTable.selectedTds.length) { - return table.ueTable; - } - return null; - }; - - UETable.getDefaultValue = function (editor, table) { - var borderMap = { - thin:'0px', - medium:'1px', - thick:'2px' - }, - tableBorder, tdPadding, tdBorder, tmpValue; - if (!table) { - table = editor.document.createElement('table'); - table.insertRow(0).insertCell(0).innerHTML = 'xxx'; - editor.body.appendChild(table); - var td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - domUtils.remove(table); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } else { - td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } - }; - /** - * 根据当前点击的td或者table获取索引对象 - * @param tdOrTable - */ - UETable.getUETable = function (tdOrTable) { - var tag = tdOrTable.tagName.toLowerCase(); - tdOrTable = (tag == "td" || tag == "th" || tag == 'caption') ? domUtils.findParentByTagName(tdOrTable, "table", true) : tdOrTable; - if (!tdOrTable.ueTable) { - tdOrTable.ueTable = new UETable(tdOrTable); - } - return tdOrTable.ueTable; - }; - - UETable.cloneCell = function(cell,ignoreMerge,keepPro){ - if (!cell || utils.isString(cell)) { - return this.table.ownerDocument.createElement(cell || 'td'); - } - var flag = domUtils.hasClass(cell, "selectTdClass"); - flag && domUtils.removeClasses(cell, "selectTdClass"); - var tmpCell = cell.cloneNode(true); - if (ignoreMerge) { - tmpCell.rowSpan = tmpCell.colSpan = 1; - } - //去掉宽高 - !keepPro && domUtils.removeAttributes(tmpCell,'width height'); - !keepPro && domUtils.removeAttributes(tmpCell,'style'); - - tmpCell.style.borderLeftStyle = ""; - tmpCell.style.borderTopStyle = ""; - tmpCell.style.borderLeftColor = cell.style.borderRightColor; - tmpCell.style.borderLeftWidth = cell.style.borderRightWidth; - tmpCell.style.borderTopColor = cell.style.borderBottomColor; - tmpCell.style.borderTopWidth = cell.style.borderBottomWidth; - flag && domUtils.addClass(cell, "selectTdClass"); - return tmpCell; - } - - UETable.prototype = { - getMaxRows:function () { - var rows = this.table.rows, maxLen = 1; - for (var i = 0, row; row = rows[i]; i++) { - var currentMax = 1; - for (var j = 0, cj; cj = row.cells[j++];) { - currentMax = Math.max(cj.rowSpan || 1, currentMax); - } - maxLen = Math.max(currentMax + i, maxLen); - } - return maxLen; - }, - /** - * 获取当前表格的最大列数 - */ - getMaxCols:function () { - var rows = this.table.rows, maxLen = 0, cellRows = {}; - for (var i = 0, row; row = rows[i]; i++) { - var cellsNum = 0; - for (var j = 0, cj; cj = row.cells[j++];) { - cellsNum += (cj.colSpan || 1); - if (cj.rowSpan && cj.rowSpan > 1) { - for (var k = 1; k < cj.rowSpan; k++) { - if (!cellRows['row_' + (i + k)]) { - cellRows['row_' + (i + k)] = (cj.colSpan || 1); - } else { - cellRows['row_' + (i + k)]++ - } - } - - } - } - cellsNum += cellRows['row_' + i] || 0; - maxLen = Math.max(cellsNum, maxLen); - } - return maxLen; - }, - getCellColIndex:function (cell) { - - }, - /** - * 获取当前cell旁边的单元格, - * @param cell - * @param right - */ - getHSideCell:function (cell, right) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!right && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (right && (!len ? (cellInfo.colIndex == (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !len ? cellInfo.rowIndex : range.beginRowIndex; - previewColIndex = !right ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex + 1 : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getTabNextCell:function (cell, preRowIndex) { - var cellInfo = this.getCellInfo(cell), - rowIndex = preRowIndex || cellInfo.rowIndex, - colIndex = cellInfo.colIndex + 1 + (cellInfo.colSpan - 1), - nextCell; - try { - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - try { - rowIndex = rowIndex * 1 + 1; - colIndex = 0; - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - } - } - return nextCell; - - }, - /** - * 获取视觉上的后置单元格 - * @param cell - * @param bottom - */ - getVSideCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 获取相同结束位置的单元格,xOrY指代了是获取x轴相同还是y轴相同 - */ - getSameEndPosCells:function (cell, xOrY) { - try { - var flag = (xOrY.toLowerCase() === "x"), - end = domUtils.getXY(cell)[flag ? 'x' : 'y'] + cell["offset" + (flag ? 'Width' : 'Height')], - rows = this.table.rows, - cells = null, returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpEnd = domUtils.getXY(tmpCell)[flag ? 'x' : 'y'] + tmpCell["offset" + (flag ? 'Width' : 'Height')]; - //对应行的td已经被上面行rowSpan了 - if (tmpEnd > end && flag) break; - if (cell == tmpCell || end == tmpEnd) { - //只获取单一的单元格 - //todo 仅获取单一单元格在特定情况下会造成returns为空,从而影响后续的拖拽实现,修正这个。需考虑性能 - if (tmpCell[flag ? "colSpan" : "rowSpan"] == 1) { - returns.push(tmpCell); - } - if (flag) break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - setCellContent:function (cell, content) { - cell.innerHTML = content || (browser.ie ? domUtils.fillChar : "
    "); - }, - cloneCell:UETable.cloneCell, - /** - * 获取跟当前单元格的右边竖线为左边的所有未合并单元格 - */ - getSameStartPosXCells:function (cell) { - try { - var start = domUtils.getXY(cell).x + cell.offsetWidth, - rows = this.table.rows, cells , returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpStart = domUtils.getXY(tmpCell).x; - if (tmpStart > start) break; - if (tmpStart == start && tmpCell.colSpan == 1) { - returns.push(tmpCell); - break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - /** - * 更新table对应的索引表 - */ - update:function (table) { - this.table = table || this.table; - this.selectedTds = []; - this.cellsRange = {}; - this.indexTable = []; - var rows = this.table.rows, - rowsNum = this.getMaxRows(), - dNum = rowsNum - rows.length, - colsNum = this.getMaxCols(); - while (dNum--) { - this.table.insertRow(rows.length); - } - this.rowsNum = rowsNum; - this.colsNum = colsNum; - for (var i = 0, len = rows.length; i < len; i++) { - this.indexTable[i] = new Array(colsNum); - } - //填充索引表 - for (var rowIndex = 0, row; row = rows[rowIndex]; rowIndex++) { - for (var cellIndex = 0, cell, cells = row.cells; cell = cells[cellIndex]; cellIndex++) { - //修正整行被rowSpan时导致的行数计算错误 - if (cell.rowSpan > rowsNum) { - cell.rowSpan = rowsNum; - } - var colIndex = cellIndex, - rowSpan = cell.rowSpan || 1, - colSpan = cell.colSpan || 1; - //当已经被上一行rowSpan或者被前一列colSpan了,则跳到下一个单元格进行 - while (this.indexTable[rowIndex][colIndex]) colIndex++; - for (var j = 0; j < rowSpan; j++) { - for (var k = 0; k < colSpan; k++) { - this.indexTable[rowIndex + j][colIndex + k] = { - rowIndex:rowIndex, - cellIndex:cellIndex, - colIndex:colIndex, - rowSpan:rowSpan, - colSpan:colSpan - } - } - } - } - } - //修复残缺td - for (j = 0; j < rowsNum; j++) { - for (k = 0; k < colsNum; k++) { - if (this.indexTable[j][k] === undefined) { - row = rows[j]; - cell = row.cells[row.cells.length - 1]; - cell = cell ? cell.cloneNode(true) : this.table.ownerDocument.createElement("td"); - this.setCellContent(cell); - if (cell.colSpan !== 1)cell.colSpan = 1; - if (cell.rowSpan !== 1)cell.rowSpan = 1; - row.appendChild(cell); - this.indexTable[j][k] = { - rowIndex:j, - cellIndex:cell.cellIndex, - colIndex:k, - rowSpan:1, - colSpan:1 - } - } - } - } - //当框选后删除行或者列后撤销,需要重建选区。 - var tds = domUtils.getElementsByTagName(this.table, "td"), - selectTds = []; - utils.each(tds, function (td) { - if (domUtils.hasClass(td, "selectTdClass")) { - selectTds.push(td); - } - }); - if (selectTds.length) { - var start = selectTds[0], - end = selectTds[selectTds.length - 1], - startInfo = this.getCellInfo(start), - endInfo = this.getCellInfo(end); - this.selectedTds = selectTds; - this.cellsRange = { - beginRowIndex:startInfo.rowIndex, - beginColIndex:startInfo.colIndex, - endRowIndex:endInfo.rowIndex + endInfo.rowSpan - 1, - endColIndex:endInfo.colIndex + endInfo.colSpan - 1 - }; - } - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!domUtils.hasClass(this.table.rows[0], "firstRow")) { - domUtils.addClass(this.table.rows[0], "firstRow"); - for(var i = 1; i< this.table.rows.length; i++) { - domUtils.removeClasses(this.table.rows[i], "firstRow"); - } - } - }, - /** - * 获取单元格的索引信息 - */ - getCellInfo:function (cell) { - if (!cell) return; - var cellIndex = cell.cellIndex, - rowIndex = cell.parentNode.rowIndex, - rowInfo = this.indexTable[rowIndex], - numCols = this.colsNum; - for (var colIndex = cellIndex; colIndex < numCols; colIndex++) { - var cellInfo = rowInfo[colIndex]; - if (cellInfo.rowIndex === rowIndex && cellInfo.cellIndex === cellIndex) { - return cellInfo; - } - } - }, - /** - * 根据行列号获取单元格 - */ - getCell:function (rowIndex, cellIndex) { - return rowIndex < this.rowsNum && this.table.rows[rowIndex].cells[cellIndex] || null; - }, - /** - * 删除单元格 - */ - deleteCell:function (cell, rowIndex) { - rowIndex = typeof rowIndex == 'number' ? rowIndex : cell.parentNode.rowIndex; - var row = this.table.rows[rowIndex]; - row.deleteCell(cell.cellIndex); - }, - /** - * 根据始末两个单元格获取被框选的所有单元格范围 - */ - getCellsRange:function (cellA, cellB) { - function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) { - var tmpBeginRowIndex = beginRowIndex, - tmpBeginColIndex = beginColIndex, - tmpEndRowIndex = endRowIndex, - tmpEndColIndex = endColIndex, - cellInfo, colIndex, rowIndex; - // 通过indexTable检查是否存在超出TableRange上边界的情况 - if (beginRowIndex > 0) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[beginRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex; - if (rowIndex < beginRowIndex) { - tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex); - } - } - } - // 通过indexTable检查是否存在超出TableRange右边界的情况 - if (endColIndex < me.colsNum) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][endColIndex]; - colIndex = cellInfo.colIndex + cellInfo.colSpan - 1; - if (colIndex > endColIndex) { - tmpEndColIndex = Math.max(colIndex, tmpEndColIndex); - } - } - } - // 检查是否有超出TableRange下边界的情况 - if (endRowIndex < me.rowsNum) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[endRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex + cellInfo.rowSpan - 1; - if (rowIndex > endRowIndex) { - tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex); - } - } - } - // 检查是否有超出TableRange左边界的情况 - if (beginColIndex > 0) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][beginColIndex]; - colIndex = cellInfo.colIndex; - if (colIndex < beginColIndex) { - tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex); - } - } - } - //递归调用直至所有完成所有框选单元格的扩展 - if (tmpBeginRowIndex != beginRowIndex || tmpBeginColIndex != beginColIndex || tmpEndRowIndex != endRowIndex || tmpEndColIndex != endColIndex) { - return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex); - } else { - // 不需要扩展TableRange的情况 - return { - beginRowIndex:beginRowIndex, - beginColIndex:beginColIndex, - endRowIndex:endRowIndex, - endColIndex:endColIndex - }; - } - } - - try { - var me = this, - cellAInfo = me.getCellInfo(cellA); - if (cellA === cellB) { - return { - beginRowIndex:cellAInfo.rowIndex, - beginColIndex:cellAInfo.colIndex, - endRowIndex:cellAInfo.rowIndex + cellAInfo.rowSpan - 1, - endColIndex:cellAInfo.colIndex + cellAInfo.colSpan - 1 - }; - } - var cellBInfo = me.getCellInfo(cellB); - // 计算TableRange的四个边 - var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex), - beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex), - endRowIndex = Math.max(cellAInfo.rowIndex + cellAInfo.rowSpan - 1, cellBInfo.rowIndex + cellBInfo.rowSpan - 1), - endColIndex = Math.max(cellAInfo.colIndex + cellAInfo.colSpan - 1, cellBInfo.colIndex + cellBInfo.colSpan - 1); - - return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex); - } catch (e) { - //throw e; - } - }, - /** - * 依据cellsRange获取对应的单元格集合 - */ - getCells:function (range) { - //每次获取cells之前必须先清除上次的选择,否则会对后续获取操作造成影响 - this.clearSelected(); - var beginRowIndex = range.beginRowIndex, - beginColIndex = range.beginColIndex, - endRowIndex = range.endRowIndex, - endColIndex = range.endColIndex, - cellInfo, rowIndex, colIndex, tdHash = {}, returnTds = []; - for (var i = beginRowIndex; i <= endRowIndex; i++) { - for (var j = beginColIndex; j <= endColIndex; j++) { - cellInfo = this.indexTable[i][j]; - rowIndex = cellInfo.rowIndex; - colIndex = cellInfo.colIndex; - // 如果Cells里已经包含了此Cell则跳过 - var key = rowIndex + '|' + colIndex; - if (tdHash[key]) continue; - tdHash[key] = 1; - if (rowIndex < i || colIndex < j || rowIndex + cellInfo.rowSpan - 1 > endRowIndex || colIndex + cellInfo.colSpan - 1 > endColIndex) { - return null; - } - returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex)); - } - } - return returnTds; - }, - /** - * 清理已经选中的单元格 - */ - clearSelected:function () { - UETable.removeSelectedClass(this.selectedTds); - this.selectedTds = []; - this.cellsRange = {}; - }, - /** - * 根据range设置已经选中的单元格 - */ - setSelected:function (range) { - var cells = this.getCells(range); - UETable.addSelectedClass(cells); - this.selectedTds = cells; - this.cellsRange = range; - }, - isFullRow:function () { - var range = this.cellsRange; - return (range.endColIndex - range.beginColIndex + 1) == this.colsNum; - }, - isFullCol:function () { - var range = this.cellsRange, - table = this.table, - ths = table.getElementsByTagName("th"), - rows = range.endRowIndex - range.beginRowIndex + 1; - return !ths.length ? rows == this.rowsNum : rows == this.rowsNum || (rows == this.rowsNum - 1); - - }, - /** - * 获取视觉上的前置单元格,默认是左边,top传入时 - * @param cell - * @param top - */ - getNextCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getPreviewCell:function (cell, top) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!top && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (top && (!len ? (cellInfo.rowIndex > (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !top ? ( !len ? cellInfo.rowIndex : range.beginRowIndex ) - : ( !len ? (cellInfo.rowIndex < 1 ? 0 : (cellInfo.rowIndex - 1)) : range.beginRowIndex); - previewColIndex = !top ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 移动单元格中的内容 - */ - moveContent:function (cellTo, cellFrom) { - if (UETable.isEmptyBlock(cellFrom)) return; - if (UETable.isEmptyBlock(cellTo)) { - cellTo.innerHTML = cellFrom.innerHTML; - return; - } - var child = cellTo.lastChild; - if (child.nodeType == 3 || !dtd.$block[child.tagName]) { - cellTo.appendChild(cellTo.ownerDocument.createElement('br')) - } - while (child = cellFrom.firstChild) { - cellTo.appendChild(child); - } - }, - /** - * 向右合并单元格 - */ - mergeRight:function (cell) { - var cellInfo = this.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan, - rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex); - //合并 - cell.colSpan = cellInfo.colSpan + rightCellInfo.colSpan; - //被合并的单元格不应存在宽度属性 - cell.removeAttribute("width"); - //移动内容 - this.moveContent(cell, rightCell); - //删掉被合并的Cell - this.deleteCell(rightCell, rightCellInfo.rowIndex); - this.update(); - }, - /** - * 向下合并单元格 - */ - mergeDown:function (cell) { - var cellInfo = this.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan, - downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex], - downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + downCellInfo.rowSpan; - cell.removeAttribute("height"); - this.moveContent(cell, downCell); - this.deleteCell(downCell, downCellInfo.rowIndex); - this.update(); - }, - /** - * 合并整个range中的内容 - */ - mergeRange:function () { - //由于合并操作可以在任意时刻进行,所以无法通过鼠标位置等信息实时生成range,只能通过缓存实例中的cellsRange对象来访问 - var range = this.cellsRange, - leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex].cellIndex); - - if (leftTopCell.tagName == "TH" && range.endRowIndex !== range.beginRowIndex) { - var index = this.indexTable, - info = this.getCellInfo(leftTopCell); - leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex); - range = this.getCellsRange(leftTopCell, this.getCell(index[this.rowsNum - 1][info.colIndex].rowIndex, index[this.rowsNum - 1][info.colIndex].cellIndex)); - } - - // 删除剩余的Cells - var cells = this.getCells(range); - for(var i= 0,ci;ci=cells[i++];){ - if (ci !== leftTopCell) { - this.moveContent(leftTopCell, ci); - this.deleteCell(ci); - } - } - // 修改左上角Cell的rowSpan和colSpan,并调整宽度属性设置 - leftTopCell.rowSpan = range.endRowIndex - range.beginRowIndex + 1; - leftTopCell.rowSpan > 1 && leftTopCell.removeAttribute("height"); - leftTopCell.colSpan = range.endColIndex - range.beginColIndex + 1; - leftTopCell.colSpan > 1 && leftTopCell.removeAttribute("width"); - if (leftTopCell.rowSpan == this.rowsNum && leftTopCell.colSpan != 1) { - leftTopCell.colSpan = 1; - } - - if (leftTopCell.colSpan == this.colsNum && leftTopCell.rowSpan != 1) { - var rowIndex = leftTopCell.parentNode.rowIndex; - //解决IE下的表格操作问题 - if( this.table.deleteRow ) { - for (var i = rowIndex+ 1, curIndex=rowIndex+ 1, len=leftTopCell.rowSpan; i < len; i++) { - this.table.deleteRow(curIndex); - } - } else { - for (var i = 0, len=leftTopCell.rowSpan - 1; i < len; i++) { - var row = this.table.rows[rowIndex + 1]; - row.parentNode.removeChild(row); - } - } - leftTopCell.rowSpan = 1; - } - this.update(); - }, - /** - * 插入一行单元格 - */ - insertRow:function (rowIndex, sourceCell) { - var numCols = this.colsNum, - table = this.table, - row = table.insertRow(rowIndex), cell, - isInsertTitle = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(colIndex, cell, tableRow) { - if (colIndex == 0) { - var tr = tableRow.nextSibling || tableRow.previousSibling, - th = tr.cells[colIndex]; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - //首行直接插入,无需考虑部分单元格被rowspan的情况 - if (rowIndex == 0 || rowIndex == this.rowsNum) { - for (var colIndex = 0; colIndex < numCols; colIndex++) { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - cell.getAttribute('vAlign') && cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - row.appendChild(cell); - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } else { - var infoRow = this.indexTable[rowIndex], - cellIndex = 0; - for (colIndex = 0; colIndex < numCols; colIndex++) { - var cellInfo = infoRow[colIndex]; - //如果存在某个单元格的rowspan穿过待插入行的位置,则修改该单元格的rowspan即可,无需插入单元格 - if (cellInfo.rowIndex < rowIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + 1; - } else { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - row.appendChild(cell); - } - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } - //框选时插入不触发contentchange,需要手动更新索引。 - this.update(); - return row; - }, - /** - * 删除一行单元格 - * @param rowIndex - */ - deleteRow:function (rowIndex) { - var row = this.table.rows[rowIndex], - infoRow = this.indexTable[rowIndex], - colsNum = this.colsNum, - count = 0; //处理计数 - for (var colIndex = 0; colIndex < colsNum;) { - var cellInfo = infoRow[colIndex], - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (cell.rowSpan > 1) { - if (cellInfo.rowIndex == rowIndex) { - var clone = cell.cloneNode(true); - clone.rowSpan = cell.rowSpan - 1; - clone.innerHTML = ""; - cell.rowSpan = 1; - var nextRowIndex = rowIndex + 1, - nextRow = this.table.rows[nextRowIndex], - insertCellIndex, - preMerged = this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count; - if (preMerged < colIndex) { - insertCellIndex = colIndex - preMerged - 1; - //nextRow.insertCell(insertCellIndex); - domUtils.insertAfter(nextRow.cells[insertCellIndex], clone); - } else { - if (nextRow.cells.length) nextRow.insertBefore(clone, nextRow.cells[0]) - } - count += 1; - //cell.parentNode.removeChild(cell); - } - } - colIndex += cell.colSpan || 1; - } - var deleteTds = [], cacheMap = {}; - for (colIndex = 0; colIndex < colsNum; colIndex++) { - var tmpRowIndex = infoRow[colIndex].rowIndex, - tmpCellIndex = infoRow[colIndex].cellIndex, - key = tmpRowIndex + "_" + tmpCellIndex; - if (cacheMap[key])continue; - cacheMap[key] = 1; - cell = this.getCell(tmpRowIndex, tmpCellIndex); - deleteTds.push(cell); - } - var mergeTds = []; - utils.each(deleteTds, function (td) { - if (td.rowSpan == 1) { - td.parentNode.removeChild(td); - } else { - mergeTds.push(td); - } - }); - utils.each(mergeTds, function (td) { - td.rowSpan--; - }); - row.parentNode.removeChild(row); - //浏览器方法本身存在bug,采用自定义方法删除 - //this.table.deleteRow(rowIndex); - this.update(); - }, - insertCol:function (colIndex, sourceCell, defaultValue) { - var rowsNum = this.rowsNum, - rowIndex = 0, - tableRow, cell, - backWidth = parseInt((this.table.offsetWidth - (this.colsNum + 1) * 20 - (this.colsNum + 1)) / (this.colsNum + 1), 10), - isInsertTitleCol = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(rowIndex, cell, tableRow) { - if (rowIndex == 0) { - var th = cell.nextSibling || cell.previousSibling; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - var preCell; - if (colIndex == 0 || colIndex == this.colsNum) { - for (; rowIndex < rowsNum; rowIndex++) { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[colIndex == 0 ? colIndex : tableRow.cells.length]; - cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(colIndex == 0 ? colIndex : tableRow.cells.length); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - if (!colIndex) { - tableRow.insertBefore(cell, tableRow.cells[0]); - } else { - domUtils.insertAfter(tableRow.cells[tableRow.cells.length - 1], cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow) - } - } else { - for (; rowIndex < rowsNum; rowIndex++) { - var cellInfo = this.indexTable[rowIndex][colIndex]; - if (cellInfo.colIndex < colIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.colSpan = cellInfo.colSpan + 1; - } else { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[cellInfo.cellIndex]; - - cell = this.cloneCell(sourceCell, true);//tableRow.insertCell(cellInfo.cellIndex); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - //防止IE下报错 - preCell ? tableRow.insertBefore(cell, preCell) : tableRow.appendChild(cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow); - } - } - //框选时插入不触发contentchange,需要手动更新索引 - this.update(); - this.updateWidth(backWidth, defaultValue || {tdPadding:10, tdBorder:1}); - }, - updateWidth:function (width, defaultValue) { - var table = this.table, - tmpWidth = UETable.getWidth(table) - defaultValue.tdPadding * 2 - defaultValue.tdBorder + width; - if (tmpWidth < table.ownerDocument.body.offsetWidth) { - table.setAttribute("width", tmpWidth); - return; - } - var tds = domUtils.getElementsByTagName(this.table, "td th"); - utils.each(tds, function (td) { - td.setAttribute("width", width); - }) - }, - deleteCol:function (colIndex) { - var indexTable = this.indexTable, - tableRows = this.table.rows, - backTableWidth = this.table.getAttribute("width"), - backTdWidth = 0, - rowsNum = this.rowsNum, - cacheMap = {}; - for (var rowIndex = 0; rowIndex < rowsNum;) { - var infoRow = indexTable[rowIndex], - cellInfo = infoRow[colIndex], - key = cellInfo.rowIndex + '_' + cellInfo.colIndex; - // 跳过已经处理过的Cell - if (cacheMap[key])continue; - cacheMap[key] = 1; - var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (!backTdWidth) backTdWidth = cell && parseInt(cell.offsetWidth / cell.colSpan, 10).toFixed(0); - // 如果Cell的colSpan大于1, 就修改colSpan, 否则就删掉这个Cell - if (cell.colSpan > 1) { - cell.colSpan--; - } else { - tableRows[rowIndex].deleteCell(cellInfo.cellIndex); - } - rowIndex += cellInfo.rowSpan || 1; - } - this.table.setAttribute("width", backTableWidth - backTdWidth); - this.update(); - }, - splitToCells:function (cell) { - var me = this, - cells = this.splitToRows(cell); - utils.each(cells, function (cell) { - me.splitToCols(cell); - }) - }, - splitToRows:function (cell) { - var cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.rowSpan = 1; - results.push(cell); - // 补齐单元格 - for (var i = rowIndex, endRow = rowIndex + cellInfo.rowSpan; i < endRow; i++) { - if (i == rowIndex)continue; - var tableRow = this.table.rows[i], - tmpCell = tableRow.insertCell(colIndex - this.getPreviewMergedCellsNum(i, colIndex)); - tmpCell.colSpan = cellInfo.colSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - results.push(tmpCell); - } - this.update(); - return results; - }, - getPreviewMergedCellsNum:function (rowIndex, colIndex) { - var indexRow = this.indexTable[rowIndex], - num = 0; - for (var i = 0; i < colIndex;) { - var colSpan = indexRow[i].colSpan, - tmpRowIndex = indexRow[i].rowIndex; - num += (colSpan - (tmpRowIndex == rowIndex ? 1 : 0)); - i += colSpan; - } - return num; - }, - splitToCols:function (cell) { - var backWidth = (cell.offsetWidth / cell.colSpan - 22).toFixed(0), - - cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.colSpan = 1; - cell.setAttribute("width", backWidth); - results.push(cell); - // 补齐单元格 - for (var j = colIndex, endCol = colIndex + cellInfo.colSpan; j < endCol; j++) { - if (j == colIndex)continue; - var tableRow = this.table.rows[rowIndex], - tmpCell = tableRow.insertCell(this.indexTable[rowIndex][j].cellIndex + 1); - tmpCell.rowSpan = cellInfo.rowSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - tmpCell.setAttribute('width', backWidth); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - //处理th的情况 - if (cell.tagName == 'TH') { - var th = cell.ownerDocument.createElement('th'); - th.appendChild(tmpCell.firstChild); - th.setAttribute('vAlign', cell.getAttribute('vAlign')); - th.rowSpan = tmpCell.rowSpan; - tableRow.insertBefore(th, tmpCell); - domUtils.remove(tmpCell); - } - results.push(tmpCell); - } - this.update(); - return results; - }, - isLastCell:function (cell, rowsNum, colsNum) { - rowsNum = rowsNum || this.rowsNum; - colsNum = colsNum || this.colsNum; - var cellInfo = this.getCellInfo(cell); - return ((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) && - ((cellInfo.colIndex + cellInfo.colSpan) == colsNum); - }, - getLastCell:function (cells) { - cells = cells || this.table.getElementsByTagName("td"); - var firstInfo = this.getCellInfo(cells[0]); - var me = this, last = cells[0], - tr = last.parentNode, - cellsNum = 0, cols = 0, rows; - utils.each(cells, function (cell) { - if (cell.parentNode == tr)cols += cell.colSpan || 1; - cellsNum += cell.rowSpan * cell.colSpan || 1; - }); - rows = cellsNum / cols; - utils.each(cells, function (cell) { - if (me.isLastCell(cell, rows, cols)) { - last = cell; - return false; - } - }); - return last; - - }, - selectRow:function (rowIndex) { - var indexRow = this.indexTable[rowIndex], - start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex), - end = this.getCell(indexRow[this.colsNum - 1].rowIndex, indexRow[this.colsNum - 1].cellIndex), - range = this.getCellsRange(start, end); - this.setSelected(range); - }, - selectTable:function () { - var tds = this.table.getElementsByTagName("td"), - range = this.getCellsRange(tds[0], tds[tds.length - 1]); - this.setSelected(range); - }, - setBackground:function (cells, value) { - if (typeof value === "string") { - utils.each(cells, function (cell) { - cell.style.backgroundColor = value; - }) - } else if (typeof value === "object") { - value = utils.extend({ - repeat:true, - colorList:["#ddd", "#fff"] - }, value); - var rowIndex = this.getCellInfo(cells[0]).rowIndex, - count = 0, - colors = value.colorList, - getColor = function (list, index, repeat) { - return list[index] ? list[index] : repeat ? list[index % list.length] : ""; - }; - for (var i = 0, cell; cell = cells[i++];) { - var cellInfo = this.getCellInfo(cell); - cell.style.backgroundColor = getColor(colors, ((rowIndex + count) == cellInfo.rowIndex) ? count : ++count, value.repeat); - } - } - }, - removeBackground:function (cells) { - utils.each(cells, function (cell) { - cell.style.backgroundColor = ""; - }) - } - - - }; - function showError(e) { - } -})(); - -// plugins/table.cmds.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 13-2-20 - * Time: 下午6:25 - * To change this template use File | Settings | File Templates. - */ -; -(function () { - var UT = UE.UETable, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor) - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }; - - - UE.commands['inserttable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? -1 : 0; - }, - execCommand: function (cmd, opt) { - function createTable(opt, tdWidth) { - var html = [], - rowsNum = opt.numRows, - colsNum = opt.numCols; - for (var r = 0; r < rowsNum; r++) { - html.push(''); - for (var c = 0; c < colsNum; c++) { - html.push('
  • ' + (browser.ie && browser.version < 11 ? domUtils.fillChar : '
    ') + '
    ' + html.join('') + '
    ' - } - - if (!opt) { - opt = utils.extend({}, { - numCols: this.options.defaultCols, - numRows: this.options.defaultRows, - tdvalign: this.options.tdvalign - }) - } - var me = this; - var range = this.selection.getRange(), - start = range.startContainer, - firstParentBlock = domUtils.findParent(start, function (node) { - return domUtils.isBlockElm(node); - }, true) || me.body; - - var defaultValue = getDefaultValue(me), - tableWidth = firstParentBlock.offsetWidth, - tdWidth = Math.floor(tableWidth / opt.numCols - defaultValue.tdPadding * 2 - defaultValue.tdBorder); - - //todo其他属性 - !opt.tdvalign && (opt.tdvalign = me.options.tdvalign); - me.execCommand("inserthtml", createTable(opt, tdWidth)); - } - }; - - UE.commands['insertparagraphbeforetable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).cell ? 0 : -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var p = this.document.createElement("p"); - p.innerHTML = browser.ie ? ' ' : '
    '; - table.parentNode.insertBefore(p, table); - this.selection.getRange().setStart(p, 0).setCursor(); - } - } - }; - - UE.commands['deletetable'] = { - queryCommandState: function () { - var rng = this.selection.getRange(); - return domUtils.findParentByTagName(rng.startContainer, 'table', true) ? 0 : -1; - }, - execCommand: function (cmd, table) { - var rng = this.selection.getRange(); - table = table || domUtils.findParentByTagName(rng.startContainer, 'table', true); - if (table) { - var next = table.nextSibling; - if (!next) { - next = domUtils.createElement(this.document, 'p', { - 'innerHTML': browser.ie ? domUtils.fillChar : '
    ' - }); - table.parentNode.insertBefore(next, table); - } - domUtils.remove(table); - rng = this.selection.getRange(); - if (next.nodeType == 3) { - rng.setStartBefore(next) - } else { - rng.setStart(next, 0) - } - rng.setCursor(false, true) - this.fireEvent("tablehasdeleted") - - } - - } - }; - UE.commands['cellalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1 - }, - execCommand: function (cmd, align) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('align', align); - } - } - } - }; - UE.commands['cellvalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1; - }, - execCommand: function (cmd, valign) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('vAlign', valign); - } - } - } - }; - UE.commands['insertcaption'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - return table.getElementsByTagName('caption').length == 0 ? 1 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var caption = this.document.createElement('caption'); - caption.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - table.insertBefore(caption, table.firstChild); - var range = this.selection.getRange(); - range.setStart(caption, 0).setCursor(); - } - - } - }; - UE.commands['deletecaption'] = { - queryCommandState: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - return table.getElementsByTagName('caption').length == 0 ? -1 : 1; - } - return -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - domUtils.remove(table.getElementsByTagName('caption')[0]); - var range = this.selection.getRange(); - range.setStart(table.rows[0].cells[0], 0).setCursor(); - } - - } - }; - UE.commands['inserttitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() != 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertRow(0, 'th'); - } - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() == 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - domUtils.remove(table.rows[0]) - } - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - UE.commands['inserttitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? -1 : 0; - } - return -1; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertCol(0, 'th'); - } - resetTdWidth(table, this); - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? 0 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - for(var i = 0; i< table.rows.length; i++ ){ - domUtils.remove(table.rows[i].children[0]) - } - } - resetTdWidth(table, this); - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - - UE.commands["mergeright"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length) return -1; - - var cellInfo = ut.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan; - if (rightColIndex >= ut.colsNum) return -1; // 如果处于最右边则不能向右合并 - - var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = table.rows[rightCellInfo.rowIndex].cells[rightCellInfo.cellIndex]; - if (!rightCell || cell.tagName != rightCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (rightCellInfo.rowIndex == cellInfo.rowIndex && rightCellInfo.rowSpan == cellInfo.rowSpan) ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeRight(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergedown"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length)return -1; - - var cellInfo = ut.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan; - if (downRowIndex >= ut.rowsNum) return -1; // 如果处于最下边则不能向下合并 - - var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex], - downCell = table.rows[downCellInfo.rowIndex].cells[downCellInfo.cellIndex]; - if (!downCell || cell.tagName != downCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (downCellInfo.colIndex == cellInfo.colIndex && downCellInfo.colSpan == cellInfo.colSpan) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeDown(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergecells"] = { - queryCommandState: function () { - return getUETableBySelected(this) ? 0 : -1; - }, - execCommand: function () { - var ut = getUETableBySelected(this); - if (ut && ut.selectedTds.length) { - var cell = ut.selectedTds[0]; - ut.mergeRange(); - var rng = this.selection.getRange(); - if (domUtils.isEmptyBlock(cell)) { - rng.setStart(cell, 0).collapse(true) - } else { - rng.selectNodeContents(cell) - } - rng.select(); - } - - - } - }; - UE.commands["insertrow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && tableItems.tr !== tableItems.table.rows[0])) && - getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length ? cellInfo.rowIndex:ut.cellsRange.beginRowIndex,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.beginRowIndex, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - //后插入行 - UE.commands["insertrownext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD") && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length? cellInfo.rowIndex + cellInfo.rowSpan : ut.cellsRange.endRowIndex + 1,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex + cellInfo.rowSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.endRowIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["deleterow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellsRange = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getVSideCell(cell), - nextCell = ut.getVSideCell(cell, true), - rng = this.selection.getRange(); - if (utils.isEmptyObject(cellsRange)) { - ut.deleteRow(cellInfo.rowIndex); - } else { - for (var i = cellsRange.beginRowIndex; i < cellsRange.endRowIndex + 1; i++) { - ut.deleteRow(cellsRange.beginRowIndex); - } - } - var table = ut.table; - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (cellInfo.rowSpan == 1 || cellInfo.rowSpan == cellsRange.endRowIndex - cellsRange.beginRowIndex + 1) { - if (nextCell || preCell) rng.selectNodeContents(nextCell || preCell).setCursor(false, true); - } else { - var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex); - if (newCell) rng.selectNodeContents(newCell).setCursor(false, true); - } - } - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["insertcol"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && cell !== tableItems.tr.cells[0])) && - getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - if (this.queryCommandState(cmd) == -1)return; - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex:ut.cellsRange.beginColIndex); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.beginColIndex, cell); - } - } - rng.moveToBookmark(bk).select(true); - } - }; - UE.commands["insertcolnext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex + cellInfo.colSpan:ut.cellsRange.endColIndex +1); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex + cellInfo.colSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.endColIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - } - }; - - UE.commands["deletecol"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - range = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getHSideCell(cell), - nextCell = ut.getHSideCell(cell, true); - if (utils.isEmptyObject(range)) { - ut.deleteCol(cellInfo.colIndex); - } else { - for (var i = range.beginColIndex; i < range.endColIndex + 1; i++) { - ut.deleteCol(range.beginColIndex); - } - } - var table = ut.table, - rng = this.selection.getRange(); - - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (domUtils.inDoc(cell, this.document)) { - rng.setStart(cell, 0).setCursor(false, true); - } else { - if (nextCell && domUtils.inDoc(nextCell, this.document)) { - rng.selectNodeContents(nextCell).setCursor(false, true); - } else { - if (preCell && domUtils.inDoc(preCell, this.document)) { - rng.selectNodeContents(preCell).setCursor(true, true); - } - } - } - } - } - }; - UE.commands["splittocells"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && (cell.colSpan > 1 || cell.rowSpan > 1) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCells(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittorows"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.rowSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToRows(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittocols"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.colSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCols(cell); - rng.moveToBookmark(bk).select(); - - } - }; - - UE.commands["adaptbytext"] = - UE.commands["adaptbywindow"] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table; - if (table) { - if (cmd == 'adaptbywindow') { - resetTdWidth(table, this); - } else { - var cells = domUtils.getElementsByTagName(table, "td th"); - utils.each(cells, function (cell) { - cell.removeAttribute("width"); - }); - table.removeAttribute("width"); - } - } - } - }; - - //平均分配各列 - UE.commands['averagedistributecol'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageWidth() { - var tb = ut.table, - averageWidth, sumWidth = 0, colsNum = 0, - tbAttr = getDefaultValue(me, tb); - - if (ut.isFullRow()) { - sumWidth = tb.offsetWidth; - colsNum = ut.colsNum; - } else { - var begin = ut.cellsRange.beginColIndex, - end = ut.cellsRange.endColIndex, - node; - for (var i = begin; i <= end;) { - node = ut.selectedTds[i]; - sumWidth += node.offsetWidth; - i += node.colSpan; - colsNum += 1; - } - } - averageWidth = Math.ceil(sumWidth / colsNum) - tbAttr.tdBorder * 2 - tbAttr.tdPadding * 2; - return averageWidth; - } - - function setAverageWidth(averageWidth) { - utils.each(domUtils.getElementsByTagName(ut.table, "th"), function (node) { - node.setAttribute("width", ""); - }); - var cells = ut.isFullRow() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - - utils.each(cells, function (node) { - if (node.colSpan == 1) { - node.setAttribute("width", averageWidth); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageWidth(getAverageWidth()); - } - } - }; - //平均分配各行 - UE.commands['averagedistributerow'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - if (ut.selectedTds && /th/ig.test(ut.selectedTds[0].tagName)) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageHeight() { - var averageHeight, rowNum, sumHeight = 0, - tb = ut.table, - tbAttr = getDefaultValue(me, tb), - tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName('td')[0], "padding-top")); - - if (ut.isFullCol()) { - var captionArr = domUtils.getElementsByTagName(tb, "caption"), - thArr = domUtils.getElementsByTagName(tb, "th"), - captionHeight, thHeight; - - if (captionArr.length > 0) { - captionHeight = captionArr[0].offsetHeight; - } - if (thArr.length > 0) { - thHeight = thArr[0].offsetHeight; - } - - sumHeight = tb.offsetHeight - (captionHeight || 0) - (thHeight || 0); - rowNum = thArr.length == 0 ? ut.rowsNum : (ut.rowsNum - 1); - } else { - var begin = ut.cellsRange.beginRowIndex, - end = ut.cellsRange.endRowIndex, - count = 0, - trs = domUtils.getElementsByTagName(tb, "tr"); - for (var i = begin; i <= end; i++) { - sumHeight += trs[i].offsetHeight; - count += 1; - } - rowNum = count; - } - //ie8下是混杂模式 - if (browser.ie && browser.version < 9) { - averageHeight = Math.ceil(sumHeight / rowNum); - } else { - averageHeight = Math.ceil(sumHeight / rowNum) - tbAttr.tdBorder * 2 - tdpadding * 2; - } - return averageHeight; - } - - function setAverageHeight(averageHeight) { - var cells = ut.isFullCol() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - utils.each(cells, function (node) { - if (node.rowSpan == 1) { - node.setAttribute("height", averageHeight); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageHeight(getAverageHeight()); - } - } - }; - - //单元格对齐方式 - UE.commands['cellalignment'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, data) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (!/caption/ig.test(cell.tagName)) { - domUtils.setAttributes(cell, data); - } else { - cell.style.textAlign = data.align; - cell.style.verticalAlign = data.vAlign; - } - me.selection.getRange().setCursor(true); - } else { - utils.each(ut.selectedTds, function (cell) { - domUtils.setAttributes(cell, data); - }); - } - }, - /** - * 查询当前点击的单元格的对齐状态, 如果当前已经选择了多个单元格, 则会返回所有单元格经过统一协调过后的状态 - * @see UE.UETable.getTableCellAlignState - */ - queryCommandValue: function (cmd) { - - var activeMenuCell = getTableItemsByRange( this).cell; - - if( !activeMenuCell ) { - activeMenuCell = getSelectedArr(this)[0]; - } - - if (!activeMenuCell) { - - return null; - - } else { - - //获取同时选中的其他单元格 - var cells = UE.UETable.getUETable(activeMenuCell).selectedTds; - - !cells.length && ( cells = activeMenuCell ); - - return UE.UETable.getTableCellAlignState(cells); - - } - - } - }; - //表格对齐方式 - UE.commands['tablealignment'] = { - queryCommandState: function () { - if (browser.ie && browser.version < 8) { - return -1; - } - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, value) { - var me = this, - start = me.selection.getStart(), - table = start && domUtils.findParentByTagName(start, ["table"], true); - - if (table) { - table.setAttribute("align",value); - } - } - }; - - //表格属性 - UE.commands['edittable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, color) { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var arr = domUtils.getElementsByTagName(table, "td").concat( - domUtils.getElementsByTagName(table, "th"), - domUtils.getElementsByTagName(table, "caption") - ); - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - } - } - }; - //单元格属性 - UE.commands['edittd'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, bkColor) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (cell) { - cell.style.backgroundColor = bkColor; - } - } else { - utils.each(ut.selectedTds, function (cell) { - cell.style.backgroundColor = bkColor; - }); - } - } - }; - - UE.commands["settablebackground"] = { - queryCommandState: function () { - return getSelectedArr(this).length > 1 ? 0 : -1; - }, - execCommand: function (cmd, value) { - var cells, ut; - cells = getSelectedArr(this); - ut = getUETable(cells[0]); - ut.setBackground(cells, value); - } - }; - - UE.commands["cleartablebackground"] = { - queryCommandState: function () { - var cells = getSelectedArr(this); - if (!cells.length)return -1; - for (var i = 0, cell; cell = cells[i++];) { - if (cell.style.backgroundColor !== "") return 0; - } - return -1; - }, - execCommand: function () { - var cells = getSelectedArr(this), - ut = getUETable(cells[0]); - ut.removeBackground(cells); - } - }; - - UE.commands["interlacetable"] = UE.commands["uninterlacetable"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - var interlaced = table.getAttribute("interlaced"); - if (cmd == "interlacetable") { - //TODO 待定 - //是否需要待定,如果设置,则命令只能单次执行成功,但反射具备toggle效果;否则可以覆盖前次命令,但反射将不存在toggle效果 - return (interlaced === "enabled") ? -1 : 0; - } else { - return (!interlaced || interlaced === "disabled") ? -1 : 0; - } - }, - execCommand: function (cmd, classList) { - var table = getTableItemsByRange(this).table; - if (cmd == "interlacetable") { - table.setAttribute("interlaced", "enabled"); - this.fireEvent("interlacetable", table, classList); - } else { - table.setAttribute("interlaced", "disabled"); - this.fireEvent("uninterlacetable", table); - } - } - }; - UE.commands["setbordervisible"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - return 0; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - utils.each(domUtils.getElementsByTagName(table,'td'),function(td){ - td.style.borderWidth = '1px'; - td.style.borderStyle = 'solid'; - }) - } - }; - function resetTdWidth(table, editor) { - var tds = domUtils.getElementsByTagName(table,'td th'); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - table.setAttribute('width', getTableWidth(editor, true, getDefaultValue(editor, table))); - var tdsWidths = []; - setTimeout(function () { - utils.each(tds, function (td) { - (td.colSpan == 1) && tdsWidths.push(td.offsetWidth) - }) - utils.each(tds, function (td,i) { - (td.colSpan == 1) && td.setAttribute("width", tdsWidths[i] + ""); - }) - }, 0); - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - function getSelectedArr(editor) { - var cell = getTableItemsByRange(editor).cell; - if (cell) { - var ut = getUETable(cell); - return ut.selectedTds.length ? ut.selectedTds : [cell]; - } else { - return []; - } - } -})(); - - -// plugins/table.action.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-10-12 - * Time: 上午10:05 - * To change this template use File | Settings | File Templates. - */ -UE.plugins['table'] = function () { - var me = this, - tabTimer = null, - //拖动计时器 - tableDragTimer = null, - //双击计时器 - tableResizeTimer = null, - //单元格最小宽度 - cellMinWidth = 5, - isInResizeBuffer = false, - //单元格边框大小 - cellBorderWidth = 5, - //鼠标偏移距离 - offsetOfTableCell = 10, - //记录在有限时间内的点击状态, 共有3个取值, 0, 1, 2。 0代表未初始化, 1代表单击了1次,2代表2次 - singleClickState = 0, - userActionStatus = null, - //双击允许的时间范围 - dblclickTime = 360, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor); - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - removeSelectedClass = function (cells) { - return UT.removeSelectedClass(cells); - }; - - function showError(e) { -// throw e; - } - me.ready(function(){ - var me = this; - var orgGetText = me.selection.getText; - me.selection.getText = function(){ - var table = getUETableBySelected(me); - if(table){ - var str = ''; - utils.each(table.selectedTds,function(td){ - str += td[browser.ie?'innerText':'textContent']; - }) - return str; - }else{ - return orgGetText.call(me.selection) - } - - } - }) - - //处理拖动及框选相关方法 - var startTd = null, //鼠标按下时的锚点td - currentTd = null, //当前鼠标经过时的td - onDrag = "", //指示当前拖动状态,其值可为"","h","v" ,分别表示未拖动状态,横向拖动状态,纵向拖动状态,用于鼠标移动过程中的判断 - onBorder = false, //检测鼠标按下时是否处在单元格边缘位置 - dragButton = null, - dragOver = false, - dragLine = null, //模拟的拖动线 - dragTd = null; //发生拖动的目标td - - var mousedown = false, - //todo 判断混乱模式 - needIEHack = true; - - me.setOpt({ - 'maxColNum':20, - 'maxRowNum':100, - 'defaultCols':5, - 'defaultRows':5, - 'tdvalign':'top', - 'cursorpath':me.options.UEDITOR_HOME_URL + "themes/default/images/cursor_", - 'tableDragable':false, - 'classList':["ue-table-interlace-color-single","ue-table-interlace-color-double"] - }); - me.getUETable = getUETable; - var commands = { - 'deletetable':1, - 'inserttable':1, - 'cellvalign':1, - 'insertcaption':1, - 'deletecaption':1, - 'inserttitle':1, - 'deletetitle':1, - "mergeright":1, - "mergedown":1, - "mergecells":1, - "insertrow":1, - "insertrownext":1, - "deleterow":1, - "insertcol":1, - "insertcolnext":1, - "deletecol":1, - "splittocells":1, - "splittorows":1, - "splittocols":1, - "adaptbytext":1, - "adaptbywindow":1, - "adaptbycustomer":1, - "insertparagraph":1, - "insertparagraphbeforetable":1, - "averagedistributecol":1, - "averagedistributerow":1 - }; - me.ready(function () { - utils.cssRule('table', - //选中的td上的样式 - '.selectTdClass{background-color:#edf5fa !important}' + - 'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' + - //插入的表格的默认样式 - 'table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - 'td,th{padding: 5px 10px;border: 1px solid #DDD;}' + - 'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - 'th{border-top:1px solid #BBB;background-color:#F7F7F7;}' + - 'table tr.firstRow th{border-top-width:2px;}' + - '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' + - 'td p{margin:0;padding:0;}', me.document); - - var tableCopyList, isFullCol, isFullRow; - //注册del/backspace事件 - me.addListener('keydown', function (cmd, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 8) { - - var ut = getUETableBySelected(me); - if (ut && ut.selectedTds.length) { - - if (ut.isFullCol()) { - me.execCommand('deletecol') - } else if (ut.isFullRow()) { - me.execCommand('deleterow') - } else { - me.fireEvent('delcells'); - } - domUtils.preventDefault(evt); - } - - var caption = domUtils.findParentByTagName(me.selection.getStart(), 'caption', true), - range = me.selection.getRange(); - if (range.collapsed && caption && isEmptyBlock(caption)) { - me.fireEvent('saveScene'); - var table = caption.parentNode; - domUtils.remove(caption); - if (table) { - range.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - me.fireEvent('saveScene'); - } - - } - - if (keyCode == 46) { - - ut = getUETableBySelected(me); - if (ut) { - me.fireEvent('saveScene'); - for (var i = 0, ci; ci = ut.selectedTds[i++];) { - domUtils.fillNode(me.document, ci) - } - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - - } - - } - if (keyCode == 13) { - - var rng = me.selection.getRange(), - caption = domUtils.findParentByTagName(rng.startContainer, 'caption', true); - if (caption) { - var table = domUtils.findParentByTagName(caption, 'table'); - if (!rng.collapsed) { - - rng.deleteContents(); - me.fireEvent('saveScene'); - } else { - if (caption) { - rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - } - domUtils.preventDefault(evt); - return; - } - if (rng.collapsed) { - var table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var cell = table.rows[0].cells[0], - start = domUtils.findParentByTagName(me.selection.getStart(), ['td', 'th'], true), - preNode = table.previousSibling; - if (cell === start && (!preNode || preNode.nodeType == 1 && preNode.tagName == 'TABLE' ) && domUtils.isStartInblock(rng)) { - var first = domUtils.findParent(me.selection.getStart(), function(n){return domUtils.isBlockElm(n)}, true); - if(first && ( /t(h|d)/i.test(first.tagName) || first === start.firstChild )){ - me.execCommand('insertparagraphbeforetable'); - domUtils.preventDefault(evt); - } - - } - } - } - } - - if ((evt.ctrlKey || evt.metaKey) && evt.keyCode == '67') { - tableCopyList = null; - var ut = getUETableBySelected(me); - if (ut) { - var tds = ut.selectedTds; - isFullCol = ut.isFullCol(); - isFullRow = ut.isFullRow(); - tableCopyList = [ - [ut.cloneCell(tds[0],null,true)] - ]; - for (var i = 1, ci; ci = tds[i]; i++) { - if (ci.parentNode !== tds[i - 1].parentNode) { - tableCopyList.push([ut.cloneCell(ci,null,true)]); - } else { - tableCopyList[tableCopyList.length - 1].push(ut.cloneCell(ci,null,true)); - } - - } - } - } - }); - me.addListener("tablehasdeleted",function(){ - toggleDraggableState(this, false, "", null); - if (dragButton)domUtils.remove(dragButton); - }); - - me.addListener('beforepaste', function (cmd, html) { - var me = this; - var rng = me.selection.getRange(); - if (domUtils.findParentByTagName(rng.startContainer, 'caption', true)) { - var div = me.document.createElement("div"); - div.innerHTML = html.html; - //trace:3729 - html.html = div[browser.ie9below ? 'innerText' : 'textContent']; - return; - } - var table = getUETableBySelected(me); - if (tableCopyList) { - me.fireEvent('saveScene'); - var rng = me.selection.getRange(); - var td = domUtils.findParentByTagName(rng.startContainer, ['td', 'th'], true), tmpNode, preNode; - if (td) { - var ut = getUETable(td); - if (isFullRow) { - var rowIndex = ut.getCellInfo(td).rowIndex; - if (td.tagName == 'TH') { - rowIndex++; - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = ut.insertRow(rowIndex++, "td"); - for (var j = 0, cj; cj = ci[j]; j++) { - var cell = tr.cells[j]; - if (!cell) { - cell = tr.insertCell(j) - } - cell.innerHTML = cj.innerHTML; - cj.getAttribute('width') && cell.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && cell.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && cell.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (cell.style.cssText = cj.style.cssText) - } - for (var j = 0, cj; cj = tr.cells[j]; j++) { - if (!ci[j]) - break; - cj.innerHTML = ci[j].innerHTML; - ci[j].getAttribute('width') && cj.setAttribute('width', ci[j].getAttribute('width')); - ci[j].getAttribute('vAlign') && cj.setAttribute('vAlign', ci[j].getAttribute('vAlign')); - ci[j].getAttribute('align') && cj.setAttribute('align', ci[j].getAttribute('align')); - ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText) - } - } - } else { - if (isFullCol) { - cellInfo = ut.getCellInfo(td); - var maxColNum = 0; - for (var j = 0, ci = tableCopyList[0], cj; cj = ci[j++];) { - maxColNum += cj.colSpan || 1; - } - me.__hasEnterExecCommand = true; - for (i = 0; i < maxColNum; i++) { - me.execCommand('insertcol'); - } - me.__hasEnterExecCommand = false; - td = ut.table.rows[0].cells[cellInfo.cellIndex]; - if (td.tagName == 'TH') { - td = ut.table.rows[1].cells[cellInfo.cellIndex]; - } - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - tmpNode = td; - for (var j = 0, cj; cj = ci[j++];) { - if (td) { - td.innerHTML = cj.innerHTML; - //todo 定制处理 - cj.getAttribute('width') && td.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && td.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && td.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (td.style.cssText = cj.style.cssText); - preNode = td; - td = td.nextSibling; - } else { - var cloneTd = cj.cloneNode(true); - domUtils.removeAttributes(cloneTd, ['class', 'rowSpan', 'colSpan']); - - preNode.parentNode.appendChild(cloneTd) - } - } - td = ut.getNextCell(tmpNode, true, true); - if (!tableCopyList[i]) - break; - if (!td) { - var cellInfo = ut.getCellInfo(tmpNode); - ut.table.insertRow(ut.table.rows.length); - ut.update(); - td = ut.getVSideCell(tmpNode, true); - } - } - } - ut.update(); - } else { - table = me.document.createElement('table'); - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = table.insertRow(table.rows.length); - for (var j = 0, cj; cj = ci[j++];) { - cloneTd = UT.cloneCell(cj,null,true); - domUtils.removeAttributes(cloneTd, ['class']); - tr.appendChild(cloneTd) - } - if (j == 2 && cloneTd.rowSpan > 1) { - cloneTd.rowSpan = 1; - } - } - - var defaultValue = getDefaultValue(me), - width = me.body.offsetWidth - - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0); - me.execCommand('insertHTML', '' + table.innerHTML.replace(/>\s*<').replace(/\bth\b/gi, "td") + '
    ') - } - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - html.html = ''; - return true; - } else { - var div = me.document.createElement("div"), tables; - div.innerHTML = html.html; - tables = div.getElementsByTagName("table"); - if (domUtils.findParentByTagName(me.selection.getStart(), 'table')) { - utils.each(tables, function (t) { - domUtils.remove(t) - }); - if (domUtils.findParentByTagName(me.selection.getStart(), 'caption', true)) { - div.innerHTML = div[browser.ie ? 'innerText' : 'textContent']; - } - } else { - utils.each(tables, function (table) { - removeStyleSize(table, true); - domUtils.removeAttributes(table, ['style', 'border']); - utils.each(domUtils.getElementsByTagName(table, "td"), function (td) { - if (isEmptyBlock(td)) { - domUtils.fillNode(me.document, td); - } - removeStyleSize(td, true); -// domUtils.removeAttributes(td, ['style']) - }); - }); - } - html.html = div.innerHTML; - } - }); - - me.addListener('afterpaste', function () { - utils.each(domUtils.getElementsByTagName(me.body, "table"), function (table) { - if (table.offsetWidth > me.body.offsetWidth) { - var defaultValue = getDefaultValue(me, table); - table.style.width = me.body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0) + 'px' - } - }) - }); - me.addListener('blur', function () { - tableCopyList = null; - }); - var timer; - me.addListener('keydown', function () { - clearTimeout(timer); - timer = setTimeout(function () { - var rng = me.selection.getRange(), - cell = domUtils.findParentByTagName(rng.startContainer, ['th', 'td'], true); - if (cell) { - var table = cell.parentNode.parentNode.parentNode; - if (table.offsetWidth > table.getAttribute("width")) { - cell.style.wordBreak = "break-all"; - } - } - - }, 100); - }); - me.addListener("selectionchange", function () { - toggleDraggableState(me, false, "", null); - }); - - - //内容变化时触发索引更新 - //todo 可否考虑标记检测,如果不涉及表格的变化就不进行索引重建和更新 - me.addListener("contentchange", function () { - var me = this; - //尽可能排除一些不需要更新的状况 - hideDragLine(me); - if (getUETableBySelected(me))return; - var rng = me.selection.getRange(); - var start = rng.startContainer; - start = domUtils.findParentByTagName(start, ['td', 'th'], true); - utils.each(domUtils.getElementsByTagName(me.document, 'table'), function (table) { - if (me.fireEvent("excludetable", table) === true) return; - table.ueTable = new UT(table); - //trace:3742 -// utils.each(domUtils.getElementsByTagName(me.document, 'td'), function (td) { -// -// if (domUtils.isEmptyBlock(td) && td !== start) { -// domUtils.fillNode(me.document, td); -// if (browser.ie && browser.version == 6) { -// td.innerHTML = ' ' -// } -// } -// }); -// utils.each(domUtils.getElementsByTagName(me.document, 'th'), function (th) { -// if (domUtils.isEmptyBlock(th) && th !== start) { -// domUtils.fillNode(me.document, th); -// if (browser.ie && browser.version == 6) { -// th.innerHTML = ' ' -// } -// } -// }); - table.onmouseover = function () { - me.fireEvent('tablemouseover', table); - }; - table.onmousemove = function () { - me.fireEvent('tablemousemove', table); - me.options.tableDragable && toggleDragButton(true, this, me); - utils.defer(function(){ - me.fireEvent('contentchange',50) - },true) - }; - table.onmouseout = function () { - me.fireEvent('tablemouseout', table); - toggleDraggableState(me, false, "", null); - hideDragLine(me); - }; - table.onclick = function (evt) { - evt = me.window.event || evt; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (!target)return; - var ut = getUETable(target), - table = ut.table, - cellInfo = ut.getCellInfo(target), - cellsRange, - rng = me.selection.getRange(); -// if ("topLeft" == inPosition(table, mouseCoords(evt))) { -// cellsRange = ut.getCellsRange(ut.table.rows[0].cells[0], ut.getLastCell()); -// ut.setSelected(cellsRange); -// return; -// } -// if ("bottomRight" == inPosition(table, mouseCoords(evt))) { -// -// return; -// } - if (inTableSide(table, target, evt, true)) { - var endTdCol = ut.getCell(ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].rowIndex, ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdCol) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } else { - if (target !== endTdCol) { - cellsRange = ut.getCellsRange(target, endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } - return; - } - if (inTableSide(table, target, evt)) { - var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].rowIndex, ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdRow) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } else { - if (target !== endTdRow) { - cellsRange = ut.getCellsRange(target, endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } - } - }; - }); - - switchBorderColor(me, true); - }); - - domUtils.on(me.document, "mousemove", mouseMoveEvent); - - domUtils.on(me.document, "mouseout", function (evt) { - var target = evt.target || evt.srcElement; - if (target.tagName == "TABLE") { - toggleDraggableState(me, false, "", null); - } - }); - /** - * 表格隔行变色 - */ - me.addListener("interlacetable",function(type,table,classList){ - if(!table) return; - var me = this, - rows = table.rows, - len = rows.length, - getClass = function(list,index,repeat){ - return list[index] ? list[index] : repeat ? list[index % list.length]: ""; - }; - for(var i = 0;i 1 ? currentRowIndex : ua.getCellInfo(cell).rowIndex; - var nextCell = ua.getTabNextCell(cell, currentRowIndex); - if (nextCell) { - if (isEmptyBlock(nextCell)) { - range.setStart(nextCell, 0).setCursor(false, true) - } else { - range.selectNodeContents(nextCell).select() - } - } else { - me.fireEvent('saveScene'); - me.__hasEnterExecCommand = true; - this.execCommand('insertrownext'); - me.__hasEnterExecCommand = false; - range = this.selection.getRange(); - range.setStart(table.rows[table.rows.length - 1].cells[0], 0).setCursor(); - me.fireEvent('saveScene'); - } - } - return true; - } - - }); - browser.ie && me.addListener('selectionchange', function () { - toggleDraggableState(this, false, "", null); - }); - me.addListener("keydown", function (type, evt) { - var me = this; - //处理在表格的最后一个输入tab产生新的表格 - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8 || keyCode == 46) { - return; - } - var notCtrlKey = !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey; - notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, "td")); - var ut = getUETableBySelected(me); - if (!ut) return; - notCtrlKey && ut.clearSelected(); - }); - - me.addListener("beforegetcontent", function () { - switchBorderColor(this, false); - browser.ie && utils.each(this.document.getElementsByTagName('caption'), function (ci) { - if (domUtils.isEmptyNode(ci)) { - ci.innerHTML = ' ' - } - }); - }); - me.addListener("aftergetcontent", function () { - switchBorderColor(this, true); - }); - me.addListener("getAllHtml", function () { - removeSelectedClass(me.document.getElementsByTagName("td")); - }); - //修正全屏状态下插入的表格宽度在非全屏状态下撑开编辑器的情况 - me.addListener("fullscreenchanged", function (type, fullscreen) { - if (!fullscreen) { - var ratio = this.body.offsetWidth / document.body.offsetWidth, - tables = domUtils.getElementsByTagName(this.body, "table"); - utils.each(tables, function (table) { - if (table.offsetWidth < me.body.offsetWidth) return false; - var tds = domUtils.getElementsByTagName(table, "td"), - backWidths = []; - utils.each(tds, function (td) { - backWidths.push(td.offsetWidth); - }); - for (var i = 0, td; td = tds[i]; i++) { - td.setAttribute("width", Math.floor(backWidths[i] * ratio)); - } - table.setAttribute("width", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me)))) - }); - } - }); - - //重写execCommand命令,用于处理框选时的处理 - var oldExecCommand = me.execCommand; - me.execCommand = function (cmd, datatat) { - - var me = this, - args = arguments; - - cmd = cmd.toLowerCase(); - var ut = getUETableBySelected(me), tds, - range = new dom.Range(me.document), - cmdFun = me.commands[cmd] || UE.commands[cmd], - result; - if (!cmdFun) return; - if (ut && !commands[cmd] && !cmdFun.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - me.fireEvent("beforeexeccommand", cmd); - tds = ut.selectedTds; - var lastState = -2, lastValue = -2, value, state; - for (var i = 0, td; td = tds[i]; i++) { - if (isEmptyBlock(td)) { - range.setStart(td, 0).setCursor(false, true) - } else { - range.selectNode(td).select(true); - } - state = me.queryCommandState(cmd); - value = me.queryCommandValue(cmd); - if (state != -1) { - if (lastState !== state || lastValue !== value) { - me._ignoreContentChange = true; - result = oldExecCommand.apply(me, arguments); - me._ignoreContentChange = false; - - } - lastState = me.queryCommandState(cmd); - lastValue = me.queryCommandValue(cmd); - if (domUtils.isEmptyBlock(td)) { - domUtils.fillNode(me.document, td) - } - } - } - range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true); - me.fireEvent('contentchange'); - me.fireEvent("afterexeccommand", cmd); - me.__hasEnterExecCommand = false; - me._selectionChange(); - } else { - result = oldExecCommand.apply(me, arguments); - } - return result; - }; - - - }); - /** - * 删除obj的宽高style,改成属性宽高 - * @param obj - * @param replaceToProperty - */ - function removeStyleSize(obj, replaceToProperty) { - removeStyle(obj, "width", true); - removeStyle(obj, "height", true); - } - - function removeStyle(obj, styleName, replaceToProperty) { - if (obj.style[styleName]) { - replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10)); - obj.style[styleName] = ""; - } - } - - function getParentTdOrTh(ele) { - if (ele.tagName == "TD" || ele.tagName == "TH") return ele; - var td; - if (td = domUtils.findParentByTagName(ele, "td", true) || domUtils.findParentByTagName(ele, "th", true)) return td; - return null; - } - - function isEmptyBlock(node) { - var reg = new RegExp(domUtils.fillChar, 'g'); - if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\s*$/, '').replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - } - - - function mouseCoords(evt) { - if (evt.pageX || evt.pageY) { - return { x:evt.pageX, y:evt.pageY }; - } - return { - x:evt.clientX + me.document.body.scrollLeft - me.document.body.clientLeft, - y:evt.clientY + me.document.body.scrollTop - me.document.body.clientTop - }; - } - - function mouseMoveEvent(evt) { - - if( isEditorDisabled() ) { - return; - } - - try { - - //普通状态下鼠标移动 - var target = getParentTdOrTh(evt.target || evt.srcElement), - pos; - - //区分用户的行为是拖动还是双击 - if( isInResizeBuffer ) { - - me.body.style.webkitUserSelect = 'none'; - - if( Math.abs( userActionStatus.x - evt.clientX ) > offsetOfTableCell || Math.abs( userActionStatus.y - evt.clientY ) > offsetOfTableCell ) { - clearTableDragTimer(); - isInResizeBuffer = false; - singleClickState = 0; - //drag action - tableBorderDrag(evt); - } - } - - //修改单元格大小时的鼠标移动 - if (onDrag && dragTd) { - singleClickState = 0; - me.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - pos = mouseCoords(evt); - toggleDraggableState(me, true, onDrag, pos, target); - if (onDrag == "h") { - dragLine.style.left = getPermissionX(dragTd, evt) + "px"; - } else if (onDrag == "v") { - dragLine.style.top = getPermissionY(dragTd, evt) + "px"; - } - return; - } - //当鼠标处于table上时,修改移动过程中的光标状态 - if (target) { - //针对使用table作为容器的组件不触发拖拽效果 - if (me.fireEvent('excludetable', target) === true) - return; - pos = mouseCoords(evt); - var state = getRelation(target, pos), - table = domUtils.findParentByTagName(target, "table", true); - - if (inTableSide(table, target, evt, true)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "h.png),pointer"; - } else if (inTableSide(table, target, evt)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "v.png),pointer"; - } else { - me.body.style.cursor = "text"; - var curCell = target; - if (/\d/.test(state)) { - state = state.replace(/\d/, ''); - target = getUETable(target).getPreviewCell(target, state == "v"); - } - //位于第一行的顶部或者第一列的左边时不可拖动 - toggleDraggableState(me, target ? !!state : false, target ? state : '', pos, target); - - } - } else { - toggleDragButton(false, table, me); - } - - } catch (e) { - showError(e); - } - } - - var dragButtonTimer; - - function toggleDragButton(show, table, editor) { - if (!show) { - if (dragOver)return; - dragButtonTimer = setTimeout(function () { - !dragOver && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton); - }, 2000); - } else { - createDragButton(table, editor); - } - } - - function createDragButton(table, editor) { - var pos = domUtils.getXY(table), - doc = table.ownerDocument; - if (dragButton && dragButton.parentNode)return dragButton; - dragButton = doc.createElement("div"); - dragButton.contentEditable = false; - dragButton.innerHTML = ""; - dragButton.style.cssText = "width:15px;height:15px;background-image:url(" + editor.options.UEDITOR_HOME_URL + "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (pos.y - 15) + "px;left:" + (pos.x) + "px;"; - domUtils.unSelectable(dragButton); - dragButton.onmouseover = function (evt) { - dragOver = true; - }; - dragButton.onmouseout = function (evt) { - dragOver = false; - }; - domUtils.on(dragButton, 'click', function (type, evt) { - doClick(evt, this); - }); - domUtils.on(dragButton, 'dblclick', function (type, evt) { - doDblClick(evt); - }); - domUtils.on(dragButton, 'dragstart', function (type, evt) { - domUtils.preventDefault(evt); - }); - var timer; - - function doClick(evt, button) { - // 部分浏览器下需要清理 - clearTimeout(timer); - timer = setTimeout(function () { - editor.fireEvent("tableClicked", table, button); - }, 300); - } - - function doDblClick(evt) { - clearTimeout(timer); - var ut = getUETable(table), - start = table.rows[0].cells[0], - end = ut.getLastCell(), - range = ut.getCellsRange(start, end); - editor.selection.getRange().setStart(start, 0).setCursor(false, true); - ut.setSelected(range); - } - - doc.body.appendChild(dragButton); - } - - -// function inPosition(table, pos) { -// var tablePos = domUtils.getXY(table), -// width = table.offsetWidth, -// height = table.offsetHeight; -// if (pos.x - tablePos.x < 5 && pos.y - tablePos.y < 5) { -// return "topLeft"; -// } else if (tablePos.x + width - pos.x < 5 && tablePos.y + height - pos.y < 5) { -// return "bottomRight"; -// } -// } - - function inTableSide(table, cell, evt, top) { - var pos = mouseCoords(evt), - state = getRelation(cell, pos); - - if (top) { - var caption = table.getElementsByTagName("caption")[0], - capHeight = caption ? caption.offsetHeight : 0; - return (state == "v1") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8); - } else { - return (state == "h1") && ((pos.x - domUtils.getXY(table).x) < 8); - } - } - - /** - * 获取拖动时允许的X轴坐标 - * @param dragTd - * @param evt - */ - function getPermissionX(dragTd, evt) { - var ut = getUETable(dragTd); - if (ut) { - var preTd = ut.getSameEndPosCells(dragTd, "x")[0], - nextTd = ut.getSameStartPosXCells(dragTd)[0], - mouseX = mouseCoords(evt).x, - left = (preTd ? domUtils.getXY(preTd).x : domUtils.getXY(ut.table).x) + 20 , - right = nextTd ? domUtils.getXY(nextTd).x + nextTd.offsetWidth - 20 : (me.body.offsetWidth + 5 || parseInt(domUtils.getComputedStyle(me.body, "width"), 10)); - - left += cellMinWidth; - right -= cellMinWidth; - - return mouseX < left ? left : mouseX > right ? right : mouseX; - } - } - - /** - * 获取拖动时允许的Y轴坐标 - */ - function getPermissionY(dragTd, evt) { - try { - var top = domUtils.getXY(dragTd).y, - mousePosY = mouseCoords(evt).y; - return mousePosY < top ? top : mousePosY; - } catch (e) { - showError(e); - } - } - - /** - * 移动状态切换 - */ - function toggleDraggableState(editor, draggable, dir, mousePos, cell) { - try { - editor.body.style.cursor = dir == "h" ? "col-resize" : dir == "v" ? "row-resize" : "text"; - if (browser.ie) { - if (dir && !mousedown && !getUETableBySelected(editor)) { - getDragLine(editor, editor.document); - showDragLineAt(dir, cell); - } else { - hideDragLine(editor) - } - } - onBorder = draggable; - } catch (e) { - showError(e); - } - } - - /** - * 获取与UETable相关的resize line - * @param uetable UETable对象 - */ - function getResizeLineByUETable() { - - var lineId = '_UETableResizeLine', - line = this.document.getElementById( lineId ); - - if( !line ) { - line = this.document.createElement("div"); - line.id = lineId; - line.contnetEditable = false; - line.setAttribute("unselectable", "on"); - - var styles = { - width: 2*cellBorderWidth + 1 + 'px', - position: 'absolute', - 'z-index': 100000, - cursor: 'col-resize', - background: 'red', - display: 'none' - }; - - //切换状态 - line.onmouseout = function(){ - this.style.display = 'none'; - }; - - utils.extend( line.style, styles ); - - this.document.body.appendChild( line ); - - } - - return line; - - } - - /** - * 更新resize-line - */ - function updateResizeLine( cell, uetable ) { - - var line = getResizeLineByUETable.call( this ), - table = uetable.table, - styles = { - top: domUtils.getXY( table ).y + 'px', - left: domUtils.getXY( cell).x + cell.offsetWidth - cellBorderWidth + 'px', - display: 'block', - height: table.offsetHeight + 'px' - }; - - utils.extend( line.style, styles ); - - } - - /** - * 显示resize-line - */ - function showResizeLine( cell ) { - - var uetable = getUETable( cell ); - - updateResizeLine.call( this, cell, uetable ); - - } - - /** - * 获取鼠标与当前单元格的相对位置 - * @param ele - * @param mousePos - */ - function getRelation(ele, mousePos) { - var elePos = domUtils.getXY(ele); - - if( !elePos ) { - return ''; - } - - if (elePos.x + ele.offsetWidth - mousePos.x < cellBorderWidth) { - return "h"; - } - if (mousePos.x - elePos.x < cellBorderWidth) { - return 'h1' - } - if (elePos.y + ele.offsetHeight - mousePos.y < cellBorderWidth) { - return "v"; - } - if (mousePos.y - elePos.y < cellBorderWidth) { - return 'v1' - } - return ''; - } - - function mouseDownEvent(type, evt) { - - if( isEditorDisabled() ) { - return ; - } - - userActionStatus = { - x: evt.clientX, - y: evt.clientY - }; - - //右键菜单单独处理 - if (evt.button == 2) { - var ut = getUETableBySelected(me), - flag = false; - - if (ut) { - var td = getTargetTd(me, evt); - utils.each(ut.selectedTds, function (ti) { - if (ti === td) { - flag = true; - } - }); - if (!flag) { - removeSelectedClass(domUtils.getElementsByTagName(me.body, "th td")); - ut.clearSelected() - } else { - td = ut.selectedTds[0]; - setTimeout(function () { - me.selection.getRange().setStart(td, 0).setCursor(false, true); - }, 0); - - } - } - } else { - tableClickHander( evt ); - } - - } - - //清除表格的计时器 - function clearTableTimer() { - tabTimer && clearTimeout( tabTimer ); - tabTimer = null; - } - - //双击收缩 - function tableDbclickHandler(evt) { - singleClickState = 0; - evt = evt || me.window.event; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (target) { - var h; - if (h = getRelation(target, mouseCoords(evt))) { - - hideDragLine( me ); - - if (h == 'h1') { - h = 'h'; - if (inTableSide(domUtils.findParentByTagName(target, "table"), target, evt)) { - me.execCommand('adaptbywindow'); - } else { - target = getUETable(target).getPreviewCell(target); - if (target) { - var rng = me.selection.getRange(); - rng.selectNodeContents(target).setCursor(true, true) - } - } - } - if (h == 'h') { - var ut = getUETable(target), - table = ut.table, - cells = getCellsByMoveBorder( target, table, true ); - - cells = extractArray( cells, 'left' ); - - ut.width = ut.offsetWidth; - - var oldWidth = [], - newWidth = []; - - utils.each( cells, function( cell ){ - - oldWidth.push( cell.offsetWidth ); - - } ); - - utils.each( cells, function( cell ){ - - cell.removeAttribute("width"); - - } ); - - window.setTimeout( function(){ - - //是否允许改变 - var changeable = true; - - utils.each( cells, function( cell, index ){ - - var width = cell.offsetWidth; - - if( width > oldWidth[index] ) { - changeable = false; - return false; - } - - newWidth.push( width ); - - } ); - - var change = changeable ? newWidth : oldWidth; - - utils.each( cells, function( cell, index ){ - - cell.width = change[index] - getTabcellSpace(); - - } ); - - - }, 0 ); - -// minWidth -= cellMinWidth; -// -// table.removeAttribute("width"); -// utils.each(cells, function (cell) { -// cell.style.width = ""; -// cell.width -= minWidth; -// }); - - } - } - } - } - - function tableClickHander( evt ) { - - removeSelectedClass(domUtils.getElementsByTagName(me.body, "td th")); - //trace:3113 - //选中单元格,点击table外部,不会清掉table上挂的ueTable,会引起getUETableBySelected方法返回值 - utils.each(me.document.getElementsByTagName('table'), function (t) { - t.ueTable = null; - }); - startTd = getTargetTd(me, evt); - if( !startTd ) return; - var table = domUtils.findParentByTagName(startTd, "table", true); - ut = getUETable(table); - ut && ut.clearSelected(); - - //判断当前鼠标状态 - if (!onBorder) { - me.document.body.style.webkitUserSelect = ''; - mousedown = true; - me.addListener('mouseover', mouseOverEvent); - } else { - //边框上的动作处理 - borderActionHandler( evt ); - } - - - } - - //处理表格边框上的动作, 这里做延时处理,避免两种动作互相影响 - function borderActionHandler( evt ) { - - if ( browser.ie ) { - evt = reconstruct(evt ); - } - - clearTableDragTimer(); - - //是否正在等待resize的缓冲中 - isInResizeBuffer = true; - - tableDragTimer = setTimeout(function(){ - tableBorderDrag( evt ); - }, dblclickTime); - - } - - function extractArray( originArr, key ) { - - var result = [], - tmp = null; - - for( var i = 0, len = originArr.length; i 0 && singleClickState--; - }, dblclickTime ); - - if( singleClickState === 2 ) { - - singleClickState = 0; - tableDbclickHandler(evt); - return; - - } - - } - - if (evt.button == 2)return; - var me = this; - //清除表格上原生跨选问题 - var range = me.selection.getRange(), - start = domUtils.findParentByTagName(range.startContainer, 'table', true), - end = domUtils.findParentByTagName(range.endContainer, 'table', true); - - if (start || end) { - if (start === end) { - start = domUtils.findParentByTagName(range.startContainer, ['td', 'th', 'caption'], true); - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th', 'caption'], true); - if (start !== end) { - me.selection.clearRange() - } - } else { - me.selection.clearRange() - } - } - mousedown = false; - me.document.body.style.webkitUserSelect = ''; - //拖拽状态下的mouseUP - if ( onDrag && dragTd ) { - - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - - singleClickState = 0; - dragLine = me.document.getElementById('ue_tableDragLine'); - - // trace 3973 - if (dragLine) { - var dragTdPos = domUtils.getXY(dragTd), - dragLinePos = domUtils.getXY(dragLine); - - switch (onDrag) { - case "h": - changeColWidth(dragTd, dragLinePos.x - dragTdPos.x); - break; - case "v": - changeRowHeight(dragTd, dragLinePos.y - dragTdPos.y - dragTd.offsetHeight); - break; - default: - } - onDrag = ""; - dragTd = null; - - hideDragLine(me); - me.fireEvent('saveScene'); - return; - } - } - //正常状态下的mouseup - if (!startTd) { - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, "td", true); - if (!target) target = domUtils.findParentByTagName(evt.target || evt.srcElement, "th", true); - if (target && (target.tagName == "TD" || target.tagName == "TH")) { - if (me.fireEvent("excludetable", target) === true) return; - range = new dom.Range(me.document); - range.setStart(target, 0).setCursor(false, true); - } - } else { - var ut = getUETable(startTd), - cell = ut ? ut.selectedTds[0] : null; - if (cell) { - range = new dom.Range(me.document); - if (domUtils.isEmptyBlock(cell)) { - range.setStart(cell, 0).setCursor(false, true); - } else { - range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true); - } - } else { - range = me.selection.getRange().shrinkBoundary(); - if (!range.collapsed) { - var start = domUtils.findParentByTagName(range.startContainer, ['td', 'th'], true), - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th'], true); - //在table里边的不能清除 - if (start && !end || !start && end || start && end && start !== end) { - range.setCursor(false, true); - } - } - } - startTd = null; - me.removeListener('mouseover', mouseOverEvent); - } - me._selectionChange(250, evt); - } - - function mouseOverEvent(type, evt) { - - if( isEditorDisabled() ) { - return; - } - - var me = this, - tar = evt.target || evt.srcElement; - currentTd = domUtils.findParentByTagName(tar, "td", true) || domUtils.findParentByTagName(tar, "th", true); - //需要判断两个TD是否位于同一个表格内 - if (startTd && currentTd && - ((startTd.tagName == "TD" && currentTd.tagName == "TD") || (startTd.tagName == "TH" && currentTd.tagName == "TH")) && - domUtils.findParentByTagName(startTd, 'table') == domUtils.findParentByTagName(currentTd, 'table')) { - var ut = getUETable(currentTd); - if (startTd != currentTd) { - me.document.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - var range = ut.getCellsRange(startTd, currentTd); - ut.setSelected(range); - } else { - me.document.body.style.webkitUserSelect = ''; - ut.clearSelected(); - } - - } - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - } - - function setCellHeight(cell, height, backHeight) { - var lineHight = parseInt(domUtils.getComputedStyle(cell, "line-height"), 10), - tmpHeight = backHeight + height; - height = tmpHeight < lineHight ? lineHight : tmpHeight; - if (cell.style.height) cell.style.height = ""; - cell.rowSpan == 1 ? cell.setAttribute("height", height) : (cell.removeAttribute && cell.removeAttribute("height")); - } - - function getWidth(cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - } - - function changeColWidth(cell, changeValue) { - - var ut = getUETable(cell); - if (ut) { - - //根据当前移动的边框获取相关的单元格 - var table = ut.table, - cells = getCellsByMoveBorder( cell, table ); - - table.style.width = ""; - table.removeAttribute("width"); - - //修正改变量 - changeValue = correctChangeValue( changeValue, cell, cells ); - - if (cell.nextSibling) { - - var i=0; - - utils.each( cells, function( cellGroup ){ - - cellGroup.left.width = (+cellGroup.left.width)+changeValue; - cellGroup.right && ( cellGroup.right.width = (+cellGroup.right.width)-changeValue ); - - } ); - - } else { - - utils.each( cells, function( cellGroup ){ - cellGroup.left.width -= -changeValue; - } ); - - } - } - - } - - function isEditorDisabled() { - return me.body.contentEditable === "false"; - } - - function changeRowHeight(td, changeValue) { - if (Math.abs(changeValue) < 10) return; - var ut = getUETable(td); - if (ut) { - var cells = ut.getSameEndPosCells(td, "y"), - //备份需要连带变化的td的原始高度,否则后期无法获取正确的值 - backHeight = cells[0] ? cells[0].offsetHeight : 0; - for (var i = 0, cell; cell = cells[i++];) { - setCellHeight(cell, changeValue, backHeight); - } - } - - } - - /** - * 获取调整单元格大小的相关单元格 - * @isContainMergeCell 返回的结果中是否包含发生合并后的单元格 - */ - function getCellsByMoveBorder( cell, table, isContainMergeCell ) { - - if( !table ) { - table = domUtils.findParentByTagName( cell, 'table' ); - } - - if( !table ) { - return null; - } - - //获取到该单元格所在行的序列号 - var index = domUtils.getNodeIndex( cell ), - temp = cell, - rows = table.rows, - colIndex = 0; - - while( temp ) { - //获取到当前单元格在未发生单元格合并时的序列 - if( temp.nodeType === 1 ) { - colIndex += (temp.colSpan || 1); - } - temp = temp.previousSibling; - } - - temp = null; - - //记录想关的单元格 - var borderCells = []; - - utils.each(rows, function( tabRow ){ - - var cells = tabRow.cells, - currIndex = 0; - - utils.each( cells, function( tabCell ){ - - currIndex += (tabCell.colSpan || 1); - - if( currIndex === colIndex ) { - - borderCells.push({ - left: tabCell, - right: tabCell.nextSibling || null - }); - - return false; - - } else if( currIndex > colIndex ) { - - if( isContainMergeCell ) { - borderCells.push({ - left: tabCell - }); - } - - return false; - } - - - } ); - - }); - - return borderCells; - - } - - - /** - * 通过给定的单元格集合获取最小的单元格width - */ - function getMinWidthByTableCells( cells ) { - - var minWidth = Number.MAX_VALUE; - - for( var i = 0, curCell; curCell = cells[ i ] ; i++ ) { - - minWidth = Math.min( minWidth, curCell.width || getTableCellWidth( curCell ) ); - - } - - return minWidth; - - } - - function correctChangeValue( changeValue, relatedCell, cells ) { - - //为单元格的paading预留空间 - changeValue -= getTabcellSpace(); - - if( changeValue < 0 ) { - return 0; - } - - changeValue -= getTableCellWidth( relatedCell ); - - //确定方向 - var direction = changeValue < 0 ? 'left':'right'; - - changeValue = Math.abs(changeValue); - - //只关心非最后一个单元格就可以 - utils.each( cells, function( cellGroup ){ - - var curCell = cellGroup[direction]; - - //为单元格保留最小空间 - if( curCell ) { - changeValue = Math.min( changeValue, getTableCellWidth( curCell )-cellMinWidth ); - } - - - } ); - - - //修正越界 - changeValue = changeValue < 0 ? 0 : changeValue; - - return direction === 'left' ? -changeValue : changeValue; - - } - - function getTableCellWidth( cell ) { - - var width = 0, - //偏移纠正量 - offset = 0, - width = cell.offsetWidth - getTabcellSpace(); - - //最后一个节点纠正一下 - if( !cell.nextSibling ) { - - width -= getTableCellOffset( cell ); - - } - - width = width < 0 ? 0 : width; - - try { - cell.width = width; - } catch(e) { - } - - return width; - - } - - /** - * 获取单元格所在表格的最末单元格的偏移量 - */ - function getTableCellOffset( cell ) { - - tab = domUtils.findParentByTagName( cell, "table", false); - - if( tab.offsetVal === undefined ) { - - var prev = cell.previousSibling; - - if( prev ) { - - //最后一个单元格和前一个单元格的width diff结果 如果恰好为一个border width, 则条件成立 - tab.offsetVal = cell.offsetWidth - prev.offsetWidth === UT.borderWidth ? UT.borderWidth : 0; - - } else { - tab.offsetVal = 0; - } - - } - - return tab.offsetVal; - - } - - function getTabcellSpace() { - - if( UT.tabcellSpace === undefined ) { - - var cell = null, - tab = me.document.createElement("table"), - tbody = me.document.createElement("tbody"), - trow = me.document.createElement("tr"), - tabcell = me.document.createElement("td"), - mirror = null; - - tabcell.style.cssText = 'border: 0;'; - tabcell.width = 1; - - trow.appendChild( tabcell ); - trow.appendChild( mirror = tabcell.cloneNode( false ) ); - - tbody.appendChild( trow ); - - tab.appendChild( tbody ); - - tab.style.cssText = "visibility: hidden;"; - - me.body.appendChild( tab ); - - UT.paddingSpace = tabcell.offsetWidth - 1; - - var tmpTabWidth = tab.offsetWidth; - - tabcell.style.cssText = ''; - mirror.style.cssText = ''; - - UT.borderWidth = ( tab.offsetWidth - tmpTabWidth ) / 3; - - UT.tabcellSpace = UT.paddingSpace + UT.borderWidth; - - me.body.removeChild( tab ); - - } - - getTabcellSpace = function(){ return UT.tabcellSpace; }; - - return UT.tabcellSpace; - - } - - function getDragLine(editor, doc) { - if (mousedown)return; - dragLine = editor.document.createElement("div"); - domUtils.setAttributes(dragLine, { - id:"ue_tableDragLine", - unselectable:'on', - contenteditable:false, - 'onresizestart':'return false', - 'ondragstart':'return false', - 'onselectstart':'return false', - style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)" - }); - editor.body.appendChild(dragLine); - } - - function hideDragLine(editor) { - if (mousedown)return; - var line; - while (line = editor.document.getElementById('ue_tableDragLine')) { - domUtils.remove(line) - } - } - - /** - * 依据state(v|h)在cell位置显示横线 - * @param state - * @param cell - */ - function showDragLineAt(state, cell) { - if (!cell) return; - var table = domUtils.findParentByTagName(cell, "table"), - caption = table.getElementsByTagName('caption'), - width = table.offsetWidth, - height = table.offsetHeight - (caption.length > 0 ? caption[0].offsetHeight : 0), - tablePos = domUtils.getXY(table), - cellPos = domUtils.getXY(cell), css; - switch (state) { - case "h": - css = 'height:' + height + 'px;top:' + (tablePos.y + (caption.length > 0 ? caption[0].offsetHeight : 0)) + 'px;left:' + (cellPos.x + cell.offsetWidth); - dragLine.style.cssText = css + 'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)'; - break; - case "v": - css = 'width:' + width + 'px;left:' + tablePos.x + 'px;top:' + (cellPos.y + cell.offsetHeight ); - //必须加上border:0和color:blue,否则低版ie不支持背景色显示 - dragLine.style.cssText = css + 'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)'; - break; - default: - } - } - - /** - * 当表格边框颜色为白色时设置为虚线,true为添加虚线 - * @param editor - * @param flag - */ - function switchBorderColor(editor, flag) { - var tableArr = domUtils.getElementsByTagName(editor.body, "table"), color; - for (var i = 0, node; node = tableArr[i++];) { - var td = domUtils.getElementsByTagName(node, "td"); - if (td[0]) { - if (flag) { - color = (td[0].style.borderColor).replace(/\s/g, ""); - if (/(#ffffff)|(rgb\(255,255,255\))/ig.test(color)) - domUtils.addClass(node, "noBorderTable") - } else { - domUtils.removeClasses(node, "noBorderTable") - } - } - - } - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - /** - * 获取当前拖动的单元格 - */ - function getTargetTd(editor, evt) { - - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, ["td", "th"], true), - dir = null; - - if( !target ) { - return null; - } - - dir = getRelation( target, mouseCoords( evt ) ); - - //如果有前一个节点, 需要做一个修正, 否则可能会得到一个错误的td - - if( !target ) { - return null; - } - - if( dir === 'h1' && target.previousSibling ) { - - var position = domUtils.getXY( target), - cellWidth = target.offsetWidth; - - if( Math.abs( position.x + cellWidth - evt.clientX ) > cellWidth / 3 ) { - target = target.previousSibling; - } - - } else if( dir === 'v1' && target.parentNode.previousSibling ) { - - var position = domUtils.getXY( target), - cellHeight = target.offsetHeight; - - if( Math.abs( position.y + cellHeight - evt.clientY ) > cellHeight / 3 ) { - target = target.parentNode.previousSibling.firstChild; - } - - } - - - //排除了非td内部以及用于代码高亮部分的td - return target && !(editor.fireEvent("excludetable", target) === true) ? target : null; - } - -}; - - -// plugins/table.sort.js -/** - * Created with JetBrains PhpStorm. - * User: Jinqn - * Date: 13-10-12 - * Time: 上午10:20 - * To change this template use File | Settings | File Templates. - */ - -UE.UETable.prototype.sortTable = function (sortByCellIndex, compareFn) { - var table = this.table, - rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - if(this.selectedTds.length){ - var range = this.cellsRange, - len = range.endRowIndex + 1; - for (var i = range.beginRowIndex; i < len; i++) { - trArray[i] = rows[i]; - } - trArray.splice(0,range.beginRowIndex); - lastRowIndex = (range.endRowIndex +1) === this.rowsNum ? 0 : range.endRowIndex +1; - }else{ - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = utils.sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } -}; - -UE.plugins['tablesort'] = function () { - var me = this, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }; - - - me.ready(function () { - //添加表格可排序的样式 - utils.cssRule('tablesort', - 'table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right;' + - ' background-image:url(' + me.options.themePath + me.options.theme + '/images/sortable.png);}', - me.document); - - //做单元格合并操作时,清除可排序标识 - me.addListener("afterexeccommand", function (type, cmd) { - if( cmd == 'mergeright' || cmd == 'mergedown' || cmd == 'mergecells') { - this.execCommand('disablesort'); - } - }); - }); - - - - //表格排序 - UE.commands['sorttable'] = { - queryCommandState: function () { - var me = this, - tableItems = getTableItemsByRange(me); - if (!tableItems.cell) return -1; - var table = tableItems.table, - cells = table.getElementsByTagName("td"); - for (var i = 0, cell; cell = cells[i++];) { - if (cell.rowSpan != 1 || cell.colSpan != 1) return -1; - } - return 0; - }, - execCommand: function (cmd, fn) { - var me = this, - range = me.selection.getRange(), - bk = range.createBookmark(true), - tableItems = getTableItemsByRange(me), - cell = tableItems.cell, - ut = getUETable(tableItems.table), - cellInfo = ut.getCellInfo(cell); - ut.sortTable(cellInfo.cellIndex, fn); - range.moveToBookmark(bk); - try{ - range.select(); - }catch(e){} - } - }; - - //设置表格可排序,清除表格可排序 - UE.commands["enablesort"] = UE.commands["disablesort"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if(table && cmd=='enablesort') { - var cells = domUtils.getElementsByTagName(table, 'th td'); - for(var i = 0; i1 || cells[i].getAttribute('rowspan')>1) return -1; - } - } - - return !table ? -1: cmd=='enablesort' ^ table.getAttribute('data-sort')!='sortEnabled' ? -1:0; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - table.setAttribute("data-sort", cmd == "enablesort" ? "sortEnabled" : "sortDisabled"); - cmd == "enablesort" ? domUtils.addClass(table,"sortEnabled"):domUtils.removeClasses(table,"sortEnabled"); - } - }; -}; - - -// plugins/contextmenu.js -///import core -///commands 右键菜单 -///commandsName ContextMenu -///commandsTitle 右键菜单 -/** - * 右键菜单 - * @function - * @name baidu.editor.plugins.contextmenu - * @author zhanyi - */ - -UE.plugins['contextmenu'] = function () { - var me = this; - me.setOpt('enableContextMenu',true); - if(me.getOpt('enableContextMenu') === false){ - return; - } - var lang = me.getLang( "contextMenu" ), - menu, - items = me.options.contextMenu || [ - {label:lang['selectall'], cmdName:'selectall'}, - { - label:lang.cleardoc, - cmdName:'cleardoc', - exec:function () { - if ( confirm( lang.confirmclear ) ) { - this.execCommand( 'cleardoc' ); - } - } - }, - '-', - { - label:lang.unlink, - cmdName:'unlink' - }, - '-', - { - group:lang.paragraph, - icon:'justifyjustify', - subMenu:[ - { - label:lang.justifyleft, - cmdName:'justify', - value:'left' - }, - { - label:lang.justifyright, - cmdName:'justify', - value:'right' - }, - { - label:lang.justifycenter, - cmdName:'justify', - value:'center' - }, - { - label:lang.justifyjustify, - cmdName:'justify', - value:'justify' - } - ] - }, - '-', - { - group:lang.table, - icon:'table', - subMenu:[ - { - label:lang.inserttable, - cmdName:'inserttable' - }, - { - label:lang.deletetable, - cmdName:'deletetable' - }, - '-', - { - label:lang.deleterow, - cmdName:'deleterow' - }, - { - label:lang.deletecol, - cmdName:'deletecol' - }, - { - label:lang.insertcol, - cmdName:'insertcol' - }, - { - label:lang.insertcolnext, - cmdName:'insertcolnext' - }, - { - label:lang.insertrow, - cmdName:'insertrow' - }, - { - label:lang.insertrownext, - cmdName:'insertrownext' - }, - '-', - { - label:lang.insertcaption, - cmdName:'insertcaption' - }, - { - label:lang.deletecaption, - cmdName:'deletecaption' - }, - { - label:lang.inserttitle, - cmdName:'inserttitle' - }, - { - label:lang.deletetitle, - cmdName:'deletetitle' - }, - { - label:lang.inserttitlecol, - cmdName:'inserttitlecol' - }, - { - label:lang.deletetitlecol, - cmdName:'deletetitlecol' - }, - '-', - { - label:lang.mergecells, - cmdName:'mergecells' - }, - { - label:lang.mergeright, - cmdName:'mergeright' - }, - { - label:lang.mergedown, - cmdName:'mergedown' - }, - '-', - { - label:lang.splittorows, - cmdName:'splittorows' - }, - { - label:lang.splittocols, - cmdName:'splittocols' - }, - { - label:lang.splittocells, - cmdName:'splittocells' - }, - '-', - { - label:lang.averageDiseRow, - cmdName:'averagedistributerow' - }, - { - label:lang.averageDisCol, - cmdName:'averagedistributecol' - }, - '-', - { - label:lang.edittd, - cmdName:'edittd', - exec:function () { - if ( UE.ui['edittd'] ) { - new UE.ui['edittd']( this ); - } - this.getDialog('edittd').open(); - } - }, - { - label:lang.edittable, - cmdName:'edittable', - exec:function () { - if ( UE.ui['edittable'] ) { - new UE.ui['edittable']( this ); - } - this.getDialog('edittable').open(); - } - }, - { - label:lang.setbordervisible, - cmdName:'setbordervisible' - } - ] - }, - { - group:lang.tablesort, - icon:'tablesort', - subMenu:[ - { - label:lang.enablesort, - cmdName:'enablesort' - }, - { - label:lang.disablesort, - cmdName:'disablesort' - }, - '-', - { - label:lang.reversecurrent, - cmdName:'sorttable', - value:'reversecurrent' - }, - { - label:lang.orderbyasc, - cmdName:'sorttable', - value:'orderbyasc' - }, - { - label:lang.reversebyasc, - cmdName:'sorttable', - value:'reversebyasc' - }, - { - label:lang.orderbynum, - cmdName:'sorttable', - value:'orderbynum' - }, - { - label:lang.reversebynum, - cmdName:'sorttable', - value:'reversebynum' - } - ] - }, - { - group:lang.borderbk, - icon:'borderBack', - subMenu:[ - { - label:lang.setcolor, - cmdName:"interlacetable", - exec:function(){ - this.execCommand("interlacetable"); - } - }, - { - label:lang.unsetcolor, - cmdName:"uninterlacetable", - exec:function(){ - this.execCommand("uninterlacetable"); - } - }, - { - label:lang.setbackground, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#bbb","#ccc"]}); - } - }, - { - label:lang.unsetbackground, - cmdName:"cleartablebackground", - exec:function(){ - this.execCommand("cleartablebackground"); - } - }, - { - label:lang.redandblue, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["red","blue"]}); - } - }, - { - label:lang.threecolorgradient, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#aaa","#bbb","#ccc"]}); - } - } - ] - }, - { - group:lang.aligntd, - icon:'aligntd', - subMenu:[ - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'bottom'} - } - ] - }, - { - group:lang.aligntable, - icon:'aligntable', - subMenu:[ - { - cmdName:'tablealignment', - className: 'left', - label:lang.tableleft, - value:"left" - }, - { - cmdName:'tablealignment', - className: 'center', - label:lang.tablecenter, - value:"center" - }, - { - cmdName:'tablealignment', - className: 'right', - label:lang.tableright, - value:"right" - } - ] - }, - '-', - { - label:lang.insertparagraphbefore, - cmdName:'insertparagraph', - value:true - }, - { - label:lang.insertparagraphafter, - cmdName:'insertparagraph' - }, - { - label:lang['copy'], - cmdName:'copy' - }, - { - label:lang['paste'], - cmdName:'paste' - } - ]; - if ( !items.length ) { - return; - } - var uiUtils = UE.ui.uiUtils; - - me.addListener( 'contextmenu', function ( type, evt ) { - - var offset = uiUtils.getViewportOffsetByEvent( evt ); - me.fireEvent( 'beforeselectionchange' ); - if ( menu ) { - menu.destroy(); - } - for ( var i = 0, ti, contextItems = []; ti = items[i]; i++ ) { - var last; - (function ( item ) { - if ( item == '-' ) { - if ( (last = contextItems[contextItems.length - 1 ] ) && last !== '-' ) { - contextItems.push( '-' ); - } - } else if ( item.hasOwnProperty( "group" ) ) { - for ( var j = 0, cj, subMenu = []; cj = item.subMenu[j]; j++ ) { - (function ( subItem ) { - if ( subItem == '-' ) { - if ( (last = subMenu[subMenu.length - 1 ] ) && last !== '-' ) { - subMenu.push( '-' ); - }else{ - subMenu.splice(subMenu.length-1); - } - } else { - if ( (me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) && - (subItem.query ? subItem.query() : me.queryCommandState( subItem.cmdName )) > -1 ) { - subMenu.push( { - 'label':subItem.label || me.getLang( "contextMenu." + subItem.cmdName + (subItem.value || '') )||"", - 'className':'edui-for-' +subItem.cmdName + ( subItem.className ? ( ' edui-for-' + subItem.cmdName + '-' + subItem.className ) : '' ), - onclick:subItem.exec ? function () { - subItem.exec.call( me ); - } : function () { - me.execCommand( subItem.cmdName, subItem.value ); - } - } ); - } - } - })( cj ); - } - if ( subMenu.length ) { - function getLabel(){ - switch (item.icon){ - case "table": - return me.getLang( "contextMenu.table" ); - case "justifyjustify": - return me.getLang( "contextMenu.paragraph" ); - case "aligntd": - return me.getLang("contextMenu.aligntd"); - case "aligntable": - return me.getLang("contextMenu.aligntable"); - case "tablesort": - return lang.tablesort; - case "borderBack": - return lang.borderbk; - default : - return ''; - } - } - contextItems.push( { - //todo 修正成自动获取方式 - 'label':getLabel(), - className:'edui-for-' + item.icon, - 'subMenu':{ - items:subMenu, - editor:me - } - } ); - } - - } else { - //有可能commmand没有加载右键不能出来,或者没有command也想能展示出来添加query方法 - if ( (me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) && - (item.query ? item.query.call(me) : me.queryCommandState( item.cmdName )) > -1 ) { - - contextItems.push( { - 'label':item.label || me.getLang( "contextMenu." + item.cmdName ), - className:'edui-for-' + (item.icon ? item.icon : item.cmdName + (item.value || '')), - onclick:item.exec ? function () { - item.exec.call( me ); - } : function () { - me.execCommand( item.cmdName, item.value ); - } - } ); - } - - } - - })( ti ); - } - if ( contextItems[contextItems.length - 1] == '-' ) { - contextItems.pop(); - } - - menu = new UE.ui.Menu( { - items:contextItems, - className:"edui-contextmenu", - editor:me - } ); - menu.render(); - menu.showAt( offset ); - - me.fireEvent("aftershowcontextmenu",menu); - - domUtils.preventDefault( evt ); - if ( browser.ie ) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch ( e ) { - return; - } - if ( ieRange.item ) { - var range = new dom.Range( me.document ); - range.selectNode( ieRange.item( 0 ) ).select( true, true ); - } - } - }); - - // 添加复制的flash按钮 - me.addListener('aftershowcontextmenu', function(type, menu) { - if (me.zeroclipboard) { - var items = menu.items; - for (var key in items) { - if (items[key].className == 'edui-for-copy') { - me.zeroclipboard.clip(items[key].getDom()); - } - } - } - }); - -}; - - -// plugins/shortcutmenu.js -///import core -///commands 弹出菜单 -// commandsName popupmenu -///commandsTitle 弹出菜单 -/** - * 弹出菜单 - * @function - * @name baidu.editor.plugins.popupmenu - * @author xuheng - */ - -UE.plugins['shortcutmenu'] = function () { - var me = this, - menu, - items = me.options.shortcutMenu || []; - - if (!items.length) { - return; - } - - me.addListener ('contextmenu mouseup' , function (type , e) { - var me = this, - customEvt = { - type : type , - target : e.target || e.srcElement , - screenX : e.screenX , - screenY : e.screenY , - clientX : e.clientX , - clientY : e.clientY - }; - - setTimeout (function () { - var rng = me.selection.getRange (); - if (rng.collapsed === false || type == "contextmenu") { - - if (!menu) { - menu = new baidu.editor.ui.ShortCutMenu ({ - editor : me , - items : items , - theme : me.options.theme , - className : 'edui-shortcutmenu' - }); - - menu.render (); - me.fireEvent ("afterrendershortcutmenu" , menu); - } - - menu.show (customEvt , !!UE.plugins['contextmenu']); - } - }); - - if (type == 'contextmenu') { - domUtils.preventDefault (e); - if (browser.ie9below) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch (e) { - return; - } - if (ieRange.item) { - var range = new dom.Range (me.document); - range.selectNode (ieRange.item (0)).select (true , true); - - } - } - } - }); - - me.addListener ('keydown' , function (type) { - if (type == "keydown") { - menu && !menu.isHidden && menu.hide (); - } - - }); - -}; - - - - -// plugins/basestyle.js -/** - * B、I、sub、super命令支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['basestyle'] = function(){ - - /** - * 字体加粗 - * @command bold - * @param { String } cmd 命令字符串 - * @remind 对已加粗的文本内容执行该命令, 将取消加粗 - * @method execCommand - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行加粗操作 - * //第一次执行, 文本内容加粗 - * editor.execCommand( 'bold' ); - * - * //第二次执行, 文本内容取消加粗 - * editor.execCommand( 'bold' ); - * ``` - */ - - - /** - * 字体倾斜 - * @command italic - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 对已倾斜的文本内容执行该命令, 将取消倾斜 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行斜体操作 - * //第一次操作, 文本内容将变成斜体 - * editor.execCommand( 'italic' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'italic' ); - * ``` - */ - - /** - * 下标文本,与“superscript”命令互斥 - * @command subscript - * @method execCommand - * @remind 把选中的文本内容切换成下标文本, 如果当前选中的文本已经是下标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行下标操作 - * //第一次操作, 文本内容将变成下标文本 - * editor.execCommand( 'subscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'subscript' ); - * ``` - */ - - /** - * 上标文本,与“subscript”命令互斥 - * @command superscript - * @method execCommand - * @remind 把选中的文本内容切换成上标文本, 如果当前选中的文本已经是上标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行上标操作 - * //第一次操作, 文本内容将变成上标文本 - * editor.execCommand( 'superscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'superscript' ); - * ``` - */ - var basestyles = { - 'bold':['strong','b'], - 'italic':['em','i'], - 'subscript':['sub'], - 'superscript':['sup'] - }, - getObj = function(editor,tagNames){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),tagNames); - }, - me = this; - //添加快捷键 - me.addshortcutkey({ - "Bold" : "ctrl+66",//^B - "Italic" : "ctrl+73", //^I - "Underline" : "ctrl+85"//^U - }); - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('b i'),function(node){ - switch (node.tagName){ - case 'b': - node.tagName = 'strong'; - break; - case 'i': - node.tagName = 'em'; - } - }); - }); - for ( var style in basestyles ) { - (function( cmd, tagNames ) { - me.commands[cmd] = { - execCommand : function( cmdName ) { - var range = me.selection.getRange(),obj = getObj(this,tagNames); - if ( range.collapsed ) { - if ( obj ) { - var tmpText = me.document.createTextNode(''); - range.insertNode( tmpText ).removeInlineStyle( tagNames ); - range.setStartBefore(tmpText); - domUtils.remove(tmpText); - } else { - var tmpNode = range.document.createElement( tagNames[0] ); - if(cmdName == 'superscript' || cmdName == 'subscript'){ - tmpText = me.document.createTextNode(''); - range.insertNode(tmpText) - .removeInlineStyle(['sub','sup']) - .setStartBefore(tmpText) - .collapse(true); - } - range.insertNode( tmpNode ).setStart( tmpNode, 0 ); - } - range.collapse( true ); - } else { - if(cmdName == 'superscript' || cmdName == 'subscript'){ - if(!obj || obj.tagName.toLowerCase() != cmdName){ - range.removeInlineStyle(['sub','sup']); - } - } - obj ? range.removeInlineStyle( tagNames ) : range.applyInlineStyle( tagNames[0] ); - } - range.select(); - }, - queryCommandState : function() { - return getObj(this,tagNames) ? 1 : 0; - } - }; - })( style, basestyles[style] ); - } -}; - - - -// plugins/elementpath.js -/** - * 选取路径命令 - * @file - */ -UE.plugins['elementpath'] = function(){ - var currentLevel, - tagNames, - me = this; - me.setOpt('elementPathEnabled',true); - if(!me.options.elementPathEnabled){ - return; - } - me.commands['elementpath'] = { - execCommand : function( cmdName, level ) { - var start = tagNames[level], - range = me.selection.getRange(); - currentLevel = level*1; - range.selectNode(start).select(); - }, - queryCommandValue : function() { - //产生一个副本,不能修改原来的startElementPath; - var parents = [].concat(this.selection.getStartElementPath()).reverse(), - names = []; - tagNames = parents; - for(var i=0,ci;ci=parents[i];i++){ - if(ci.nodeType == 3) { - continue; - } - var name = ci.tagName.toLowerCase(); - if(name == 'img' && ci.getAttribute('anchorname')){ - name = 'anchor'; - } - names[i] = name; - if(currentLevel == i){ - currentLevel = -1; - break; - } - } - return names; - } - }; -}; - - - -// plugins/formatmatch.js -/** - * 格式刷,只格式inline的 - * @file - * @since 1.2.6.1 - */ - -/** - * 格式刷 - * @command formatmatch - * @method execCommand - * @remind 该操作不能复制段落格式 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //获取格式刷 - * editor.execCommand( 'formatmatch' ); - * ``` - */ -UE.plugins['formatmatch'] = function(){ - - var me = this, - list = [],img, - flag = 0; - - me.addListener('reset',function(){ - list = []; - flag = 0; - }); - - function addList(type,evt){ - - if(browser.webkit){ - var target = evt.target.tagName == 'IMG' ? evt.target : null; - } - - function addFormat(range){ - - if(text){ - range.selectNode(text); - } - return range.applyInlineStyle(list[list.length-1].tagName,null,list); - - } - - me.undoManger && me.undoManger.save(); - - var range = me.selection.getRange(), - imgT = target || range.getClosedNode(); - if(img && imgT && imgT.tagName == 'IMG'){ - //trace:964 - - imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat ||'none') + ';display:' + (img.style.display||'inline'); - - img = null; - }else{ - if(!img){ - var collapsed = range.collapsed; - if(collapsed){ - var text = me.document.createTextNode('match'); - range.insertNode(text).select(); - - - } - me.__hasEnterExecCommand = true; - //不能把block上的属性干掉 - //trace:1553 - var removeFormatAttributes = me.options.removeFormatAttributes; - me.options.removeFormatAttributes = ''; - me.execCommand('removeformat'); - me.options.removeFormatAttributes = removeFormatAttributes; - me.__hasEnterExecCommand = false; - //trace:969 - range = me.selection.getRange(); - if(list.length){ - addFormat(range); - } - if(text){ - range.setStartBefore(text).collapse(true); - - } - range.select(); - text && domUtils.remove(text); - } - - } - - - - - me.undoManger && me.undoManger.save(); - me.removeListener('mouseup',addList); - flag = 0; - } - - me.commands['formatmatch'] = { - execCommand : function( cmdName ) { - - if(flag){ - flag = 0; - list = []; - me.removeListener('mouseup',addList); - return; - } - - - - var range = me.selection.getRange(); - img = range.getClosedNode(); - if(!img || img.tagName != 'IMG'){ - range.collapse(true).shrinkBoundary(); - var start = range.startContainer; - list = domUtils.findParents(start,true,function(node){ - return !domUtils.isBlockElm(node) && node.nodeType == 1; - }); - //a不能加入格式刷, 并且克隆节点 - for(var i=0,ci;ci=list[i];i++){ - if(ci.tagName == 'A'){ - list.splice(i,1); - break; - } - } - - } - - me.addListener('mouseup',addList); - flag = 1; - - - }, - queryCommandState : function() { - return flag; - }, - notNeedUndo : 1 - }; -}; - - - -// plugins/searchreplace.js -///import core -///commands 查找替换 -///commandsName SearchReplace -///commandsTitle 查询替换 -///commandsDialog dialogs\searchreplace -/** - * @description 查找替换 - * @author zhanyi - */ - -UE.plugin.register('searchreplace',function(){ - var me = this; - - var _blockElm = {'table':1,'tbody':1,'tr':1,'ol':1,'ul':1}; - - function findTextInString(textContent,opt,currentIndex){ - var str = opt.searchStr; - if(opt.dir == -1){ - textContent = textContent.split('').reverse().join(''); - str = str.split('').reverse().join(''); - currentIndex = textContent.length - currentIndex; - - } - var reg = new RegExp(str,'g' + (opt.casesensitive ? '' : 'i')),match; - - while(match = reg.exec(textContent)){ - if(match.index >= currentIndex){ - return opt.dir == -1 ? textContent.length - match.index - opt.searchStr.length : match.index; - } - } - return -1 - } - function findTextBlockElm(node,currentIndex,opt){ - var textContent,index,methodName = opt.all || opt.dir == 1 ? 'getNextDomNode' : 'getPreDomNode'; - if(domUtils.isBody(node)){ - node = node.firstChild; - } - var first = 1; - while(node){ - textContent = node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']; - index = findTextInString(textContent,opt,currentIndex ); - first = 0; - if(index!=-1){ - return { - 'node':node, - 'index':index - } - } - node = domUtils[methodName](node); - while(node && _blockElm[node.nodeName.toLowerCase()]){ - node = domUtils[methodName](node,true); - } - if(node){ - currentIndex = opt.dir == -1 ? (node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']).length : 0; - } - - } - } - function findNTextInBlockElm(node,index,str){ - var currentIndex = 0, - currentNode = node.firstChild, - currentNodeLength = 0, - result; - while(currentNode){ - if(currentNode.nodeType == 3){ - currentNodeLength = currentNode.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length; - currentIndex += currentNodeLength; - if(currentIndex >= index){ - return { - 'node':currentNode, - 'index': currentNodeLength - (currentIndex - index) - } - } - }else if(!dtd.$empty[currentNode.tagName]){ - currentNodeLength = currentNode[browser.ie ? 'innerText' : 'textContent'].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length - currentIndex += currentNodeLength; - if(currentIndex >= index){ - result = findNTextInBlockElm(currentNode,currentNodeLength - (currentIndex - index),str); - if(result){ - return result; - } - } - } - currentNode = domUtils.getNextDomNode(currentNode); - - } - } - - function searchReplace(me,opt){ - - var rng = me.selection.getRange(), - startBlockNode, - searchStr = opt.searchStr, - span = me.document.createElement('span'); - span.innerHTML = '$$ueditor_searchreplace_key$$'; - - rng.shrinkBoundary(true); - - //判断是不是第一次选中 - if(!rng.collapsed){ - rng.select(); - var rngText = me.selection.getText(); - if(new RegExp('^' + opt.searchStr + '$',(opt.casesensitive ? '' : 'i')).test(rngText)){ - if(opt.replaceStr != undefined){ - replaceText(rng,opt.replaceStr); - rng.select(); - return true; - }else{ - rng.collapse(opt.dir == -1) - } - - } - } - - - rng.insertNode(span); - rng.enlargeToBlockElm(true); - startBlockNode = rng.startContainer; - var currentIndex = startBlockNode[browser.ie ? 'innerText' : 'textContent'].indexOf('$$ueditor_searchreplace_key$$'); - rng.setStartBefore(span); - domUtils.remove(span); - var result = findTextBlockElm(startBlockNode,currentIndex,opt); - if(result){ - var rngStart = findNTextInBlockElm(result.node,result.index,searchStr); - var rngEnd = findNTextInBlockElm(result.node,result.index + searchStr.length,searchStr); - rng.setStart(rngStart.node,rngStart.index).setEnd(rngEnd.node,rngEnd.index); - - if(opt.replaceStr !== undefined){ - replaceText(rng,opt.replaceStr) - } - rng.select(); - return true; - }else{ - rng.setCursor() - } - - } - function replaceText(rng,str){ - - str = me.document.createTextNode(str); - rng.deleteContents().insertNode(str); - - } - return { - commands:{ - 'searchreplace':{ - execCommand:function(cmdName,opt){ - utils.extend(opt,{ - all : false, - casesensitive : false, - dir : 1 - },true); - var num = 0; - if(opt.all){ - - var rng = me.selection.getRange(), - first = me.body.firstChild; - if(first && first.nodeType == 1){ - rng.setStart(first,0); - rng.shrinkBoundary(true); - }else if(first.nodeType == 3){ - rng.setStartBefore(first) - } - rng.collapse(true).select(true); - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - while(searchReplace(this,opt)){ - num++; - } - if(num){ - me.fireEvent('saveScene'); - } - }else{ - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - if(searchReplace(this,opt)){ - num++ - } - if(num){ - me.fireEvent('saveScene'); - } - - } - - return num; - }, - notNeedUndo:1 - } - } - } -}); - -// plugins/customstyle.js -/** - * 自定义样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 根据config配置文件里“customstyle”选项的值对匹配的标签执行样式替换。 - * @command customstyle - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'customstyle' ); - * ``` - */ -UE.plugins['customstyle'] = function() { - var me = this; - me.setOpt({ 'customstyle':[ - {tag:'h1',name:'tc', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - {tag:'h1',name:'tl', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'}, - {tag:'span',name:'im', style:'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'}, - {tag:'span',name:'hi', style:'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'} - ]}); - me.commands['customstyle'] = { - execCommand : function(cmdName, obj) { - var me = this, - tagName = obj.tag, - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true), - range,bk,tmpObj = {}; - for (var p in obj) { - if(obj[p]!==undefined) - tmpObj[p] = obj[p]; - } - delete tmpObj.tag; - if (node && node.getAttribute('label') == obj.label) { - range = this.selection.getRange(); - bk = range.createBookmark(); - if (range.collapsed) { - //trace:1732 删掉自定义标签,要有p来回填站位 - if(dtd.$block[node.tagName]){ - var fillNode = me.document.createElement('p'); - domUtils.moveChild(node, fillNode); - node.parentNode.insertBefore(fillNode, node); - domUtils.remove(node); - }else{ - domUtils.remove(node,true); - } - - } else { - - var common = domUtils.getCommonAncestor(bk.start, bk.end), - nodes = domUtils.getElementsByTagName(common, tagName); - if(new RegExp(tagName,'i').test(common.tagName)){ - nodes.push(common); - } - for (var i = 0,ni; ni = nodes[i++];) { - if (ni.getAttribute('label') == obj.label) { - var ps = domUtils.getPosition(ni, bk.start),pe = domUtils.getPosition(ni, bk.end); - if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) - if (dtd.$block[tagName]) { - var fillNode = me.document.createElement('p'); - domUtils.moveChild(ni, fillNode); - ni.parentNode.insertBefore(fillNode, ni); - } - domUtils.remove(ni, true); - } - } - node = domUtils.findParent(common, function(node) { - return node.getAttribute('label') == obj.label; - }, true); - if (node) { - - domUtils.remove(node, true); - - } - - } - range.moveToBookmark(bk).select(); - } else { - if (dtd.$block[tagName]) { - this.execCommand('paragraph', tagName, tmpObj,'customstyle'); - range = me.selection.getRange(); - if (!range.collapsed) { - range.collapse(); - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label') == obj.label; - }, true); - var pNode = me.document.createElement('p'); - domUtils.insertAfter(node, pNode); - domUtils.fillNode(me.document, pNode); - range.setStart(pNode, 0).setCursor(); - } - } else { - - range = me.selection.getRange(); - if (range.collapsed) { - node = me.document.createElement(tagName); - domUtils.setAttributes(node, tmpObj); - range.insertNode(node).setStart(node, 0).setCursor(); - - return; - } - - bk = range.createBookmark(); - range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select(); - } - } - - }, - queryCommandValue : function() { - var parent = domUtils.filterNodeList( - this.selection.getStartElementPath(), - function(node){return node.getAttribute('label')} - ); - return parent ? parent.getAttribute('label') : ''; - } - }; - //当去掉customstyle是,如果是块元素,用p代替 - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - var range = me.selection.getRange(); - if (range.collapsed) { - var node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true); - if (node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node)) { - var p = me.document.createElement('p'); - domUtils.insertAfter(node, p); - domUtils.fillNode(me.document, p); - domUtils.remove(node); - range.setStart(p, 0).setCursor(); - - - } - } - } - }); -}; - -// plugins/catchremoteimage.js -///import core -///commands 远程图片抓取 -///commandsName catchRemoteImage,catchremoteimageenable -///commandsTitle 远程图片抓取 -/** - * 远程图片抓取,当开启本插件时所有不符合本地域名的图片都将被抓取成为本地服务器上的图片 - */ -UE.plugins['catchremoteimage'] = function () { - var me = this, - ajax = UE.ajax; - - /* 设置默认值 */ - if (me.options.catchRemoteImageEnable === false) return; - me.setOpt({ - catchRemoteImageEnable: false - }); - - me.addListener("afterpaste", function () { - me.fireEvent("catchRemoteImage"); - }); - - me.addListener("catchRemoteImage", function () { - - var catcherLocalDomain = me.getOpt('catcherLocalDomain'), - catcherActionUrl = me.getActionUrl(me.getOpt('catcherActionName')), - catcherUrlPrefix = me.getOpt('catcherUrlPrefix'), - catcherFieldName = me.getOpt('catcherFieldName'); - - var remoteImages = [], - imgs = domUtils.getElementsByTagName(me.document, "img"), - test = function (src, urls) { - if (src.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(src)) { - return true; - } - if (urls) { - for (var j = 0, url; url = urls[j++];) { - if (src.indexOf(url) !== -1) { - return true; - } - } - } - return false; - }; - - for (var i = 0, ci; ci = imgs[i++];) { - if (ci.getAttribute("word_img")) { - continue; - } - var src = ci.getAttribute("_src") || ci.src || ""; - if (/^(https?|ftp):/i.test(src) && !test(src, catcherLocalDomain)) { - remoteImages.push(src); - } - } - - if (remoteImages.length) { - catchremoteimage(remoteImages, { - //成功抓取 - success: function (r) { - try { - var info = r.state !== undefined ? r:eval("(" + r.responseText + ")"); - } catch (e) { - return; - } - - /* 获取源路径和新路径 */ - var i, j, ci, cj, oldSrc, newSrc, list = info.list; - - for (i = 0; ci = imgs[i++];) { - oldSrc = ci.getAttribute("_src") || ci.src || ""; - for (j = 0; cj = list[j++];) { - if (oldSrc == cj.source && cj.state == "SUCCESS") { //抓取失败时不做替换处理 - newSrc = catcherUrlPrefix + cj.url; - domUtils.setAttributes(ci, { - "src": newSrc, - "_src": newSrc - }); - break; - } - } - } - me.fireEvent('catchremotesuccess') - }, - //回调失败,本次请求超时 - error: function () { - me.fireEvent("catchremoteerror"); - } - }); - } - - function catchremoteimage(imgs, callbacks) { - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(catcherActionUrl + (catcherActionUrl.indexOf('?') == -1 ? '?':'&') + params), - isJsonp = utils.isCrossDomainUrl(url), - opt = { - 'method': 'POST', - 'dataType': isJsonp ? 'jsonp':'', - 'timeout': 60000, //单位:毫秒,回调请求超时设置。目标用户如果网速不是很快的话此处建议设置一个较大的数值 - 'onsuccess': callbacks["success"], - 'onerror': callbacks["error"] - }; - opt[catcherFieldName] = imgs; - ajax.request(url, opt); - } - - }); -}; - -// plugins/snapscreen.js -/** - * 截屏插件,为UEditor提供插入支持 - * @file - * @since 1.4.2 - */ -UE.plugin.register('snapscreen', function (){ - - var me = this; - var snapplugin; - - function getLocation(url){ - var search, - a = document.createElement('a'), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - - a.href = url; - if (browser.ie) { - a.href = a.href; - } - - - search = a.search; - if (params) { - search = search + (search.indexOf('?') == -1 ? '?':'&')+ params; - search = search.replace(/[&]+/ig, '&'); - } - return { - 'port': a.port, - 'hostname': a.hostname, - 'path': a.pathname + search || + a.hash - } - } - - return { - commands:{ - /** - * 字体背景颜色 - * @command snapscreen - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('snapscreen'); - * ``` - */ - 'snapscreen':{ - execCommand:function (cmd) { - var url, local, res; - var lang = me.getLang("snapScreen_plugin"); - - if(!snapplugin){ - var container = me.container; - var doc = me.container.ownerDocument || me.container.document; - snapplugin = doc.createElement("object"); - try{snapplugin.type = "application/x-pluginbaidusnap";}catch(e){ - return; - } - snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;"; - snapplugin.setAttribute("width","0"); - snapplugin.setAttribute("height","0"); - container.appendChild(snapplugin); - } - - function onSuccess(rs){ - try{ - rs = eval("("+ rs +")"); - if(rs.state == 'SUCCESS'){ - var opt = me.options; - me.execCommand('insertimage', { - src: opt.snapscreenUrlPrefix + rs.url, - _src: opt.snapscreenUrlPrefix + rs.url, - alt: rs.title || '', - floatStyle: opt.snapscreenImgAlign - }); - } else { - alert(rs.state); - } - }catch(e){ - alert(lang.callBackErrorMsg); - } - } - url = me.getActionUrl(me.getOpt('snapscreenActionName')); - local = getLocation(url); - setTimeout(function () { - try{ - res =snapplugin.saveSnapshot(local.hostname, local.path, local.port); - }catch(e){ - me.ui._dialogs['snapscreenDialog'].open(); - return; - } - - onSuccess(res); - }, 50); - }, - queryCommandState: function(){ - return (navigator.userAgent.indexOf("Windows",0) != -1) ? 0:-1; - } - } - } - } -}); - - -// plugins/insertparagraph.js -/** - * 插入段落 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入段落 - * @command insertparagraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * editor.execCommand( 'insertparagraph' ); - * ``` - */ - -UE.commands['insertparagraph'] = { - execCommand : function( cmdName,front) { - var me = this, - range = me.selection.getRange(), - start = range.startContainer,tmpNode; - while(start ){ - if(domUtils.isBody(start)){ - break; - } - tmpNode = start; - start = start.parentNode; - } - if(tmpNode){ - var p = me.document.createElement('p'); - if(front){ - tmpNode.parentNode.insertBefore(p,tmpNode) - }else{ - tmpNode.parentNode.insertBefore(p,tmpNode.nextSibling) - } - domUtils.fillNode(me.document,p); - range.setStart(p,0).setCursor(false,true); - } - } -}; - - - -// plugins/webapp.js -/** - * 百度应用 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - -//UE.plugins['webapp'] = function () { -// var me = this; -// function createInsertStr( obj, toIframe, addParagraph ) { -// return !toIframe ? -// (addParagraph ? '

    ' : '') + '' + -// (addParagraph ? '

    ' : '') -// : -// ''; -// } -// -// function switchImgAndIframe( img2frame ) { -// var tmpdiv, -// nodes = domUtils.getElementsByTagName( me.document, !img2frame ? "iframe" : "img" ); -// for ( var i = 0, node; node = nodes[i++]; ) { -// if ( node.className != "edui-faked-webapp" ){ -// continue; -// } -// tmpdiv = me.document.createElement( "div" ); -// tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( "_url" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace("url(","").replace(")","")} : {url:node.getAttribute( "src", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute("logo_url")}, img2frame ? true : false,false ); -// node.parentNode.replaceChild( tmpdiv.firstChild, node ); -// } -// } -// -// me.addListener( "beforegetcontent", function () { -// switchImgAndIframe( true ); -// } ); -// me.addListener( 'aftersetcontent', function () { -// switchImgAndIframe( false ); -// } ); -// me.addListener( 'aftergetcontent', function ( cmdName ) { -// if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){ -// return; -// } -// switchImgAndIframe( false ); -// } ); -// -// me.commands['webapp'] = { -// execCommand:function ( cmd, obj ) { -// me.execCommand( "inserthtml", createInsertStr( obj, false,true ) ); -// } -// }; -//}; - -UE.plugin.register('webapp', function (){ - var me = this; - function createInsertStr(obj,toEmbed){ - return !toEmbed ? - '' - : - '' - - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-webapp'){ - html = createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("_url"), - 'logo':node.getAttr('_logo_url') - },true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('iframe'),function(node){ - if(node.getAttr('class') == 'edui-faked-webapp'){ - var img = UE.uNode.createElement(createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("src"), - 'logo':node.getAttr('logo_url') - })); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - 'webapp':{ - execCommand:function (cmd, obj) { - - var me = this, - str = createInsertStr(utils.extend(obj,{ - align:'none' - }), false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-webapp"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/template.js -///import core -///import plugins\inserthtml.js -///import plugins\cleardoc.js -///commands 模板 -///commandsName template -///commandsTitle 模板 -///commandsDialog dialogs\template -UE.plugins['template'] = function () { - UE.commands['template'] = { - execCommand:function (cmd, obj) { - obj.html && this.execCommand("inserthtml", obj.html); - } - }; - this.addListener("click", function (type, evt) { - var el = evt.target || evt.srcElement, - range = this.selection.getRange(); - var tnode = domUtils.findParent(el, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - tnode && range.selectNode(tnode).shrinkBoundary().select(); - }); - this.addListener("keydown", function (type, evt) { - var range = this.selection.getRange(); - if (!range.collapsed) { - if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - var tnode = domUtils.findParent(range.startContainer, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - if (tnode) { - domUtils.removeClasses(tnode, ["ue_t"]); - } - } - } - }); -}; - - -// plugins/music.js -/** - * 插入音乐命令 - * @file - */ -UE.plugin.register('music', function (){ - var me = this; - function creatInsertStr(url,width,height,align,cssfloat,toEmbed){ - return !toEmbed ? - '' - : - ''; - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("_url"), node.getAttr('width'), node.getAttr('height'), align, cssfloat, true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('embed'),function(node){ - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("src"), node.getAttr('width'), node.getAttr('height'), align, cssfloat,false); - var img = UE.uNode.createElement(html); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入音乐 - * @command music - * @method execCommand - * @param { Object } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址; - * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'music' , { - * width: 400, - * height: 95, - * align: "center", - * url: "音乐地址" - * } ); - * ``` - */ - 'music':{ - execCommand:function (cmd, musicObj) { - var me = this, - str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-music"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/autoupload.js -/** - * @description - * 1.拖放文件到编辑区域,自动上传并插入到选区 - * 2.插入粘贴板的图片,自动上传并插入到选区 - * @author Jinqn - * @date 2013-10-14 - */ -UE.plugin.register('autoupload', function (){ - - function sendAndInsertFile(file, editor) { - var me = editor; - //模拟数据 - var fieldName, urlPrefix, maxSize, allowFiles, actionUrl, - loadingHtml, errorHandler, successHandler, - filetype = /image\/\w+/i.test(file.type) ? 'image':'file', - loadingId = 'loading_' + (+new Date()).toString(36); - - fieldName = me.getOpt(filetype + 'FieldName'); - urlPrefix = me.getOpt(filetype + 'UrlPrefix'); - maxSize = me.getOpt(filetype + 'MaxSize'); - allowFiles = me.getOpt(filetype + 'AllowFiles'); - actionUrl = me.getActionUrl(me.getOpt(filetype + 'ActionName')); - errorHandler = function(title) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - }; - - if (filetype == 'image') { - loadingHtml = ''; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - if (loader) { - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', data.title || ''); - loader.setAttribute('alt', data.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - } - }; - } else { - loadingHtml = '

    ' + - '' + - '

    '; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - - var rng = me.selection.getRange(), - bk = rng.createBookmark(); - rng.selectNode(loader).select(); - me.execCommand('insertfile', {'url': link}); - rng.moveToBookmark(bk).select(); - }; - } - - /* 插入loading的占位符 */ - me.execCommand('inserthtml', loadingHtml); - - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt(filetype + 'ActionName')) { - errorHandler(me.getLang('autoupload.errorLoadConfig')); - return; - } - /* 判断文件大小是否超出限制 */ - if(file.size > maxSize) { - errorHandler(me.getLang('autoupload.exceedSizeError')); - return; - } - /* 判断文件格式是否超出允许 */ - var fileext = file.name ? file.name.substr(file.name.lastIndexOf('.')):''; - if ((fileext && filetype != 'image') || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - errorHandler(me.getLang('autoupload.exceedTypeError')); - return; - } - - /* 创建Ajax并提交 */ - var xhr = new XMLHttpRequest(), - fd = new FormData(), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - - fd.append(fieldName, file, file.name || ('blob.' + file.type.substr('image/'.length))); - fd.append('type', 'ajax'); - xhr.open("post", url, true); - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - xhr.addEventListener('load', function (e) { - try{ - var json = (new Function("return " + utils.trim(e.target.response)))(); - if (json.state == 'SUCCESS' && json.url) { - successHandler(json); - } else { - errorHandler(json.state); - } - }catch(er){ - errorHandler(me.getLang('autoupload.loadError')); - } - }); - xhr.send(fd); - } - - function getPasteImage(e){ - return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\//.test(e.clipboardData.items[0].type) ? e.clipboardData.items:null; - } - function getDropImage(e){ - return e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files:null; - } - - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(n){ - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - utils.each(root.getNodesByTagName('p'),function(n){ - if (/\bloadpara\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - }, - bindEvents:{ - //插入粘贴板的图片,拖放插入图片 - 'ready':function(e){ - var me = this; - if(window.FormData && window.FileReader) { - domUtils.on(me.body, 'paste drop', function(e){ - var hasImg = false, - items; - //获取粘贴板文件列表或者拖放文件列表 - items = e.type == 'paste' ? getPasteImage(e):getDropImage(e); - if(items){ - var len = items.length, - file; - while (len--){ - file = items[len]; - if(file.getAsFile) file = file.getAsFile(); - if(file && file.size > 0) { - sendAndInsertFile(file, me); - hasImg = true; - } - } - hasImg && e.preventDefault(); - } - - }); - //取消拖放图片时出现的文字光标位置提示 - domUtils.on(me.body, 'dragover', function (e) { - if(e.dataTransfer.types[0] == 'Files') { - e.preventDefault(); - } - }); - - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - } - } - } - } -}); - -// plugins/autosave.js -UE.plugin.register('autosave', function (){ - - var me = this, - //无限循环保护 - lastSaveTime = new Date(), - //最小保存间隔时间 - MIN_TIME = 20, - //auto save key - saveKey = null; - - function save ( editor ) { - - var saveData; - - if ( new Date() - lastSaveTime < MIN_TIME ) { - return; - } - - if ( !editor.hasContents() ) { - //这里不能调用命令来删除, 会造成事件死循环 - saveKey && me.removePreferences( saveKey ); - return; - } - - lastSaveTime = new Date(); - - editor._saveFlag = null; - - saveData = me.body.innerHTML; - - if ( editor.fireEvent( "beforeautosave", { - content: saveData - } ) === false ) { - return; - } - - me.setPreferences( saveKey, saveData ); - - editor.fireEvent( "afterautosave", { - content: saveData - } ); - - } - - return { - defaultOptions: { - //默认间隔时间 - saveInterval: 500, - enableAutoSave: true // HaoChuan9421 - }, - bindEvents:{ - 'ready':function(){ - - var _suffix = "-drafts-data", - key = null; - - if ( me.key ) { - key = me.key + _suffix; - } else { - key = ( me.container.parentNode.id || 'ue-common' ) + _suffix; - } - - //页面地址+编辑器ID 保持唯一 - saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\/]/g, '_' ) + key; - - }, - - 'contentchange': function () { - // HaoChuan9421 - if (!me.getOpt('enableAutoSave')) { - return; - } - - if ( !saveKey ) { - return; - } - - if ( me._saveFlag ) { - window.clearTimeout( me._saveFlag ); - } - - if ( me.options.saveInterval > 0 ) { - - me._saveFlag = window.setTimeout( function () { - - save( me ); - - }, me.options.saveInterval ); - - } else { - - save(me); - - } - - - } - }, - commands:{ - 'clearlocaldata':{ - execCommand:function (cmd, name) { - if ( saveKey && me.getPreferences( saveKey ) ) { - me.removePreferences( saveKey ) - } - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'getlocaldata':{ - execCommand:function (cmd, name) { - return saveKey ? me.getPreferences( saveKey ) || '' : ''; - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'drafts':{ - execCommand:function (cmd, name) { - if ( saveKey ) { - me.body.innerHTML = me.getPreferences( saveKey ) || '

    '+domUtils.fillHtml+'

    '; - me.focus(true); - } - }, - queryCommandState: function () { - return saveKey ? ( me.getPreferences( saveKey ) === null ? -1 : 0 ) : -1; - }, - notNeedUndo: true, - ignoreContentChange:true - } - } - } - -}); - -// plugins/charts.js -UE.plugin.register('charts', function (){ - - var me = this; - - return { - bindEvents: { - 'chartserror': function () { - } - }, - commands:{ - 'charts': { - execCommand: function ( cmd, data ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true), - flagText = [], - config = {}; - - if ( !tableNode ) { - return false; - } - - if ( !validData( tableNode ) ) { - me.fireEvent( "chartserror" ); - return false; - } - - config.title = data.title || ''; - config.subTitle = data.subTitle || ''; - config.xTitle = data.xTitle || ''; - config.yTitle = data.yTitle || ''; - config.suffix = data.suffix || ''; - config.tip = data.tip || ''; - //数据对齐方式 - config.dataFormat = data.tableDataFormat || ''; - //图表类型 - config.chartType = data.chartType || 0; - - for ( var key in config ) { - - if ( !config.hasOwnProperty( key ) ) { - continue; - } - - flagText.push( key+":"+config[ key ] ); - - } - - tableNode.setAttribute( "data-chart", flagText.join( ";" ) ); - domUtils.addClass( tableNode, "edui-charts-table" ); - - - - }, - queryCommandState: function ( cmd, name ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true); - return tableNode && validData( tableNode ) ? 0 : -1; - - } - } - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style"); - } - - }) - - }, - outputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style", "display: none;"); - } - - }) - - } - } - - function validData ( table ) { - - var firstRows = null, - cellCount = 0; - - //行数不够 - if ( table.rows.length < 2 ) { - return false; - } - - //列数不够 - if ( table.rows[0].cells.length < 2 ) { - return false; - } - - //第一行所有cell必须是th - firstRows = table.rows[ 0 ].cells; - cellCount = firstRows.length; - - for ( var i = 0, cell; cell = firstRows[ i ]; i++ ) { - - if ( cell.tagName.toLowerCase() !== 'th' ) { - return false; - } - - } - - for ( var i = 1, row; row = table.rows[ i ]; i++ ) { - - //每行单元格数不匹配, 返回false - if ( row.cells.length != cellCount ) { - return false; - } - - //第一列不是th也返回false - if ( row.cells[0].tagName.toLowerCase() !== 'th' ) { - return false; - } - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - value = value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - - //必须是数字 - if ( !/^\d*\.?\d+$/.test( value ) ) { - return false; - } - - } - - } - - return true; - - } - -}); - -// plugins/section.js -/** - * 目录大纲支持插件 - * @file - * @since 1.3.0 - */ -UE.plugin.register('section', function (){ - /* 目录节点对象 */ - function Section(option){ - this.tag = ''; - this.level = -1, - this.dom = null; - this.nextSection = null; - this.previousSection = null; - this.parentSection = null; - this.startAddress = []; - this.endAddress = []; - this.children = []; - } - function getSection(option) { - var section = new Section(); - return utils.extend(section, option); - } - function getNodeFromAddress(startAddress, root) { - var current = root; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var me = this; - - return { - bindMultiEvents:{ - type: 'aftersetcontent afterscencerestore', - handler: function(){ - me.fireEvent('updateSections'); - } - }, - bindEvents:{ - /* 初始化、拖拽、粘贴、执行setcontent之后 */ - 'ready': function (){ - me.fireEvent('updateSections'); - domUtils.on(me.body, 'drop paste', function(){ - me.fireEvent('updateSections'); - }); - }, - /* 执行paragraph命令之后 */ - 'afterexeccommand': function (type, cmd) { - if(cmd == 'paragraph') { - me.fireEvent('updateSections'); - } - }, - /* 部分键盘操作,触发updateSections事件 */ - 'keyup': function (type, e) { - var me = this, - range = me.selection.getRange(); - if(range.collapsed != true) { - me.fireEvent('updateSections'); - } else { - var keyCode = e.keyCode || e.which; - if(keyCode == 13 || keyCode == 8 || keyCode == 46) { - me.fireEvent('updateSections'); - } - } - } - }, - commands:{ - 'getsections': { - execCommand: function (cmd, levels) { - var levelFn = levels || ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']; - - for (var i = 0; i < levelFn.length; i++) { - if (typeof levelFn[i] == 'string') { - levelFn[i] = function(fn){ - return function(node){ - return node.tagName == fn.toUpperCase() - }; - }(levelFn[i]); - } else if (typeof levelFn[i] != 'function') { - levelFn[i] = function (node) { - return null; - } - } - } - function getSectionLevel(node) { - for (var i = 0; i < levelFn.length; i++) { - if (levelFn[i](node)) return i; - } - return -1; - } - - var me = this, - Directory = getSection({'level':-1, 'title':'root'}), - previous = Directory; - - function traversal(node, Directory) { - var level, - tmpSection = null, - parent, - child, - children = node.childNodes; - for (var i = 0, len = children.length; i < len; i++) { - child = children[i]; - level = getSectionLevel(child); - if (level >= 0) { - var address = me.selection.getRange().selectNode(child).createAddress(true).startAddress, - current = getSection({ - 'tag': child.tagName, - 'title': child.innerText || child.textContent || '', - 'level': level, - 'dom': child, - 'startAddress': utils.clone(address, []), - 'endAddress': utils.clone(address, []), - 'children': [] - }); - previous.nextSection = current; - current.previousSection = previous; - parent = previous; - while(level <= parent.level){ - parent = parent.parentSection; - } - current.parentSection = parent; - parent.children.push(current); - tmpSection = previous = current; - } else { - child.nodeType === 1 && traversal(child, Directory); - tmpSection && tmpSection.endAddress[tmpSection.endAddress.length - 1] ++; - } - } - } - traversal(me.body, Directory); - return Directory; - }, - notNeedUndo: true - }, - 'movesection': { - execCommand: function (cmd, sourceSection, targetSection, isAfter) { - - var me = this, - targetAddress, - target; - - if(!sourceSection || !targetSection || targetSection.level == -1) return; - - targetAddress = isAfter ? targetSection.endAddress:targetSection.startAddress; - target = getNodeFromAddress(targetAddress, me.body); - - /* 判断目标地址是否被源章节包含 */ - if(!targetAddress || !target || isContainsAddress(sourceSection.startAddress, sourceSection.endAddress, targetAddress)) return; - - var startNode = getNodeFromAddress(sourceSection.startAddress, me.body), - endNode = getNodeFromAddress(sourceSection.endAddress, me.body), - current, - nextNode; - - if(isAfter) { - current = endNode; - while ( current && !(domUtils.getPosition( startNode, current ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.previousSibling; - domUtils.insertAfter(target, current); - if(current == startNode) break; - current = nextNode; - } - } else { - current = startNode; - while ( current && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - target.parentNode.insertBefore(current, target); - if(current == endNode) break; - current = nextNode; - } - } - - me.fireEvent('updateSections'); - - /* 获取地址的包含关系 */ - function isContainsAddress(startAddress, endAddress, addressTarget){ - var isAfterStartAddress = false, - isBeforeEndAddress = false; - for(var i = 0; i< startAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] > startAddress[i]) { - isAfterStartAddress = true; - break; - } else if(addressTarget[i] < startAddress[i]) { - break; - } - } - for(var i = 0; i< endAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] < startAddress[i]) { - isBeforeEndAddress = true; - break; - } else if(addressTarget[i] > startAddress[i]) { - break; - } - } - return isAfterStartAddress && isBeforeEndAddress; - } - } - }, - 'deletesection': { - execCommand: function (cmd, section, keepChildren) { - var me = this; - - if(!section) return; - - function getNodeFromAddress(startAddress) { - var current = me.body; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var startNode = getNodeFromAddress(section.startAddress), - endNode = getNodeFromAddress(section.endAddress), - current = startNode, - nextNode; - - if(!keepChildren) { - while ( current && domUtils.inDoc(endNode, me.document) && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - domUtils.remove(current); - current = nextNode; - } - } else { - domUtils.remove(current); - } - - me.fireEvent('updateSections'); - } - }, - 'selectsection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':utils.clone(section.startAddress, []), - 'endAddress':utils.clone(section.endAddress, []) - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).select().scrollToView(); - return true; - }, - notNeedUndo: true - }, - 'scrolltosection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':section.startAddress, - 'endAddress':section.endAddress - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).scrollToView(); - return true; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/simpleupload.js -/** - * @description - * 简单上传:点击按钮,直接选择文件上传。 - * 原 UEditor 作者使用了 form 表单 + iframe 的方式上传 - * 但由于同源策略的限制,父页面无法访问跨域的 iframe 内容 - * 导致无法获取接口返回的数据,使得单图上传无法在跨域的情况下使用 - * 这里改为普通的XHR上传,兼容到IE10+ - * @author HaoChuan9421 - * @date 2018-12-20 - */ -UE.plugin.register('simpleupload', function() { - var me = this, - containerBtn, - timestrap = (+new Date()).toString(36); - - function initUploadBtn() { - var w = containerBtn.offsetWidth || 20, - h = containerBtn.offsetHeight || 20, - btnStyle = 'display:block;width:' + w + 'px;height:' + h + 'px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;'; - - var form = document.createElement('form'); - var input = document.createElement('input'); - form.id = 'edui_form_' + timestrap; - form.enctype = 'multipart/form-data'; - form.style = btnStyle; - input.id = 'edui_input_' + timestrap; - input.type = 'file' - input.accept = 'image/*'; - input.name = me.options.imageFieldName; - input.style = btnStyle; - form.appendChild(input); - containerBtn.appendChild(form); - - input.addEventListener('change', function(event) { - if (!input.value) return; - var loadingId = 'loading_' + (+new Date()).toString(36); - var imageActionUrl = me.getActionUrl(me.getOpt('imageActionName')); - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - var action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params); - var allowFiles = me.getOpt('imageAllowFiles'); - me.focus(); - me.execCommand('inserthtml', ''); - - function showErrorLoader(title) { - if (loadingId) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - } - } - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt('imageActionName')) { - showErrorLoader(me.getLang('autoupload.errorLoadConfig')); - return; - } - // 判断文件格式是否错误 - var filename = input.value, - fileext = filename ? filename.substr(filename.lastIndexOf('.')) : ''; - if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - showErrorLoader(me.getLang('simpleupload.exceedTypeError')); - return; - } - - var xhr = new XMLHttpRequest() - xhr.open('post', action, true) - if (me.options.headers && Object.prototype.toString.apply(me.options.headers) === "[object Object]") { - for (var key in me.options.headers) { - xhr.setRequestHeader(key, me.options.headers[key]) - } - } - xhr.onload = function() { - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { - var res = JSON.parse(xhr.responseText) - var link = me.options.imageUrlPrefix + res.url; - - if (res.state == 'SUCCESS' && res.url) { - loader = me.document.getElementById(loadingId); - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', res.title || ''); - loader.setAttribute('alt', res.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - me.fireEvent("contentchange"); - } else { - showErrorLoader(res.state); - } - } else { - showErrorLoader(me.getLang('simpleupload.loadError')); - } - }; - xhr.onerror = function() { - showErrorLoader(me.getLang('simpleupload.loadError')); - }; - xhr.send(new FormData(form)); - form.reset(); - }) - } - - return { - bindEvents: { - 'ready': function() { - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - }, - /* 初始化简单上传按钮 */ - 'simpleuploadbtnready': function(type, container) { - containerBtn = container; - me.afterConfigReady(initUploadBtn); - } - }, - outputRule: function(root) { - utils.each(root.getNodesByTagName('img'), function(n) { - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - } - } -}); - -// plugins/serverparam.js -/** - * 服务器提交的额外参数列表设置插件 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('serverparam', function (){ - - var me = this, - serverParam = {}; - - return { - commands:{ - /** - * 修改服务器提交的额外参数列表,清除所有项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('serverparam'); - * editor.queryCommandValue('serverparam'); //返回空 - * ``` - */ - /** - * 修改服务器提交的额外参数列表,删除指定项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要清除的属性 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name'); //删除属性name - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用键值添加项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要添加的属性 - * @param { String } value 要添加属性的值 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name', 'hello'); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,传入键值对对象添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } key 传入的键值对对象 - * @example - * ```javascript - * editor.execCommand('serverparam', {'name': 'hello'}); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用自定义函数添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Function } key 自定义获取参数的函数 - * @example - * ```javascript - * editor.execCommand('serverparam', function(editor){ - * return {'key': 'value'}; - * }); - * editor.queryCommandValue('serverparam'); //返回对象 {'key': 'value'} - * ``` - */ - - /** - * 获取服务器提交的额外参数列表 - * @command serverparam - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandValue( 'serverparam' ); //返回对象 {'key': 'value'} - * ``` - */ - 'serverparam':{ - execCommand:function (cmd, key, value) { - if (key === undefined || key === null) { //不传参数,清空列表 - serverParam = {}; - } else if (utils.isString(key)) { //传入键值 - if(value === undefined || value === null) { - delete serverParam[key]; - } else { - serverParam[key] = value; - } - } else if (utils.isObject(key)) { //传入对象,覆盖列表项 - utils.extend(serverParam, key, true); - } else if (utils.isFunction(key)){ //传入函数,添加列表项 - utils.extend(serverParam, key(), true); - } - }, - queryCommandValue: function(){ - return serverParam || {}; - } - } - } - } -}); - - -// plugins/insertfile.js -/** - * 插入附件 - */ -UE.plugin.register('insertfile', function (){ - - var me = this; - - function getFileIcon(url){ - var ext = url.substr(url.lastIndexOf('.') + 1).toLowerCase(), - maps = { - "rar":"icon_rar.gif", - "zip":"icon_rar.gif", - "tar":"icon_rar.gif", - "gz":"icon_rar.gif", - "bz2":"icon_rar.gif", - "doc":"icon_doc.gif", - "docx":"icon_doc.gif", - "pdf":"icon_pdf.gif", - "mp3":"icon_mp3.gif", - "xls":"icon_xls.gif", - "chm":"icon_chm.gif", - "ppt":"icon_ppt.gif", - "pptx":"icon_ppt.gif", - "avi":"icon_mv.gif", - "rmvb":"icon_mv.gif", - "wmv":"icon_mv.gif", - "flv":"icon_mv.gif", - "swf":"icon_mv.gif", - "rm":"icon_mv.gif", - "exe":"icon_exe.gif", - "psd":"icon_psd.gif", - "txt":"icon_txt.gif", - "jpg":"icon_jpg.gif", - "png":"icon_jpg.gif", - "jpeg":"icon_jpg.gif", - "gif":"icon_jpg.gif", - "ico":"icon_jpg.gif", - "bmp":"icon_jpg.gif" - }; - return maps[ext] ? maps[ext]:maps['txt']; - } - - return { - commands:{ - 'insertfile': { - execCommand: function (command, filelist){ - filelist = utils.isArray(filelist) ? filelist : [filelist]; - - var i, item, icon, title, - html = '', - URL = me.getOpt('UEDITOR_HOME_URL'), - iconDir = URL + (URL.substr(URL.length - 1) == '/' ? '':'/') + 'dialogs/attachment/fileTypeImages/'; - for (i = 0; i < filelist.length; i++) { - item = filelist[i]; - icon = iconDir + getFileIcon(item.url); - title = item.title || item.url.substr(item.url.lastIndexOf('/') + 1); - html += '

    ' + - '' + - '' + title + '' + - '

    '; - } - me.execCommand('insertHtml', html); - } - } - } - } -}); - - - - -// plugins/xssFilter.js -/** - * @file xssFilter.js - * @desc xss过滤器 - * @author robbenmu - */ - -UE.plugins.xssFilter = function() { - - var config = UEDITOR_CONFIG; - var whitList = config.whitList; - - function filter(node) { - - var tagName = node.tagName; - var attrs = node.attrs; - - if (!whitList.hasOwnProperty(tagName)) { - node.parentNode.removeChild(node); - return false; - } - - UE.utils.each(attrs, function (val, key) { - - if (whitList[tagName].indexOf(key) === -1) { - node.setAttr(key); - } - }); - } - - // 添加inserthtml\paste等操作用的过滤规则 - if (whitList && config.xssFilterRules) { - this.options.filterRules = function () { - - var result = {}; - - UE.utils.each(whitList, function(val, key) { - result[key] = function (node) { - return filter(node); - }; - }); - - return result; - }(); - } - - var tagList = []; - - UE.utils.each(whitList, function (val, key) { - tagList.push(key); - }); - - // 添加input过滤规则 - // - if (whitList && config.inputXssFilter) { - this.addInputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - // 添加output过滤规则 - // - if (whitList && config.outputXssFilter) { - this.addOutputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - -}; - - -// ui/ui.js -var baidu = baidu || {}; -baidu.editor = baidu.editor || {}; -UE.ui = baidu.editor.ui = {}; - -// ui/uiutils.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils; - - var magic = '$EDITORUI'; - var root = window[magic] = {}; - var uidMagic = 'ID' + magic; - var uidCount = 0; - - var uiUtils = baidu.editor.ui.uiUtils = { - uid: function (obj){ - return (obj ? obj[uidMagic] || (obj[uidMagic] = ++ uidCount) : ++ uidCount); - }, - hook: function ( fn, callback ) { - var dg; - if (fn && fn._callbacks) { - dg = fn; - } else { - dg = function (){ - var q; - if (fn) { - q = fn.apply(this, arguments); - } - var callbacks = dg._callbacks; - var k = callbacks.length; - while (k --) { - var r = callbacks[k].apply(this, arguments); - if (q === undefined) { - q = r; - } - } - return q; - }; - dg._callbacks = []; - } - dg._callbacks.push(callback); - return dg; - }, - createElementByHtml: function (html){ - var el = document.createElement('div'); - el.innerHTML = html; - el = el.firstChild; - el.parentNode.removeChild(el); - return el; - }, - getViewportElement: function (){ - return (browser.ie && browser.quirks) ? - document.body : document.documentElement; - }, - getClientRect: function (element){ - var bcr; - //trace IE6下在控制编辑器显隐时可能会报错,catch一下 - try{ - bcr = element.getBoundingClientRect(); - }catch(e){ - bcr={left:0,top:0,height:0,width:0} - } - var rect = { - left: Math.round(bcr.left), - top: Math.round(bcr.top), - height: Math.round(bcr.bottom - bcr.top), - width: Math.round(bcr.right - bcr.left) - }; - var doc; - while ((doc = element.ownerDocument) !== document && - (element = domUtils.getWindow(doc).frameElement)) { - bcr = element.getBoundingClientRect(); - rect.left += bcr.left; - rect.top += bcr.top; - } - rect.bottom = rect.top + rect.height; - rect.right = rect.left + rect.width; - return rect; - }, - getViewportRect: function (){ - var viewportEl = uiUtils.getViewportElement(); - var width = (window.innerWidth || viewportEl.clientWidth) | 0; - var height = (window.innerHeight ||viewportEl.clientHeight) | 0; - return { - left: 0, - top: 0, - height: height, - width: width, - bottom: height, - right: width - }; - }, - setViewportOffset: function (element, offset){ - var rect; - var fixedLayer = uiUtils.getFixedLayer(); - if (element.parentNode === fixedLayer) { - element.style.left = offset.left + 'px'; - element.style.top = offset.top + 'px'; - } else { - domUtils.setViewportOffset(element, offset); - } - }, - getEventOffset: function (evt){ - var el = evt.target || evt.srcElement; - var rect = uiUtils.getClientRect(el); - var offset = uiUtils.getViewportOffsetByEvent(evt); - return { - left: offset.left - rect.left, - top: offset.top - rect.top - }; - }, - getViewportOffsetByEvent: function (evt){ - var el = evt.target || evt.srcElement; - var frameEl = domUtils.getWindow(el).frameElement; - var offset = { - left: evt.clientX, - top: evt.clientY - }; - if (frameEl && el.ownerDocument !== document) { - var rect = uiUtils.getClientRect(frameEl); - offset.left += rect.left; - offset.top += rect.top; - } - return offset; - }, - setGlobal: function (id, obj){ - root[id] = obj; - return magic + '["' + id + '"]'; - }, - unsetGlobal: function (id){ - delete root[id]; - }, - copyAttributes: function (tgt, src){ - var attributes = src.attributes; - var k = attributes.length; - while (k --) { - var attrNode = attributes[k]; - if ( attrNode.nodeName != 'style' && attrNode.nodeName != 'class' && (!browser.ie || attrNode.specified) ) { - tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue); - } - } - if (src.className) { - domUtils.addClass(tgt,src.className); - } - if (src.style.cssText) { - tgt.style.cssText += ';' + src.style.cssText; - } - }, - removeStyle: function (el, styleName){ - if (el.style.removeProperty) { - el.style.removeProperty(styleName); - } else if (el.style.removeAttribute) { - el.style.removeAttribute(styleName); - } else throw ''; - }, - contains: function (elA, elB){ - return elA && elB && (elA === elB ? false : ( - elA.contains ? elA.contains(elB) : - elA.compareDocumentPosition(elB) & 16 - )); - }, - startDrag: function (evt, callbacks,doc){ - var doc = doc || document; - var startX = evt.clientX; - var startY = evt.clientY; - function handleMouseMove(evt){ - var x = evt.clientX - startX; - var y = evt.clientY - startY; - callbacks.ondragmove(x, y,evt); - if (evt.stopPropagation) { - evt.stopPropagation(); - } else { - evt.cancelBubble = true; - } - } - if (doc.addEventListener) { - function handleMouseUp(evt){ - doc.removeEventListener('mousemove', handleMouseMove, true); - doc.removeEventListener('mouseup', handleMouseUp, true); - window.removeEventListener('mouseup', handleMouseUp, true); - callbacks.ondragstop(); - } - doc.addEventListener('mousemove', handleMouseMove, true); - doc.addEventListener('mouseup', handleMouseUp, true); - window.addEventListener('mouseup', handleMouseUp, true); - - evt.preventDefault(); - } else { - var elm = evt.srcElement; - elm.setCapture(); - function releaseCaptrue(){ - elm.releaseCapture(); - elm.detachEvent('onmousemove', handleMouseMove); - elm.detachEvent('onmouseup', releaseCaptrue); - elm.detachEvent('onlosecaptrue', releaseCaptrue); - callbacks.ondragstop(); - } - elm.attachEvent('onmousemove', handleMouseMove); - elm.attachEvent('onmouseup', releaseCaptrue); - elm.attachEvent('onlosecaptrue', releaseCaptrue); - evt.returnValue = false; - } - callbacks.ondragstart(); - }, - getFixedLayer: function (){ - var layer = document.getElementById('edui_fixedlayer'); - if (layer == null) { - layer = document.createElement('div'); - layer.id = 'edui_fixedlayer'; - document.body.appendChild(layer); - if (browser.ie && browser.version <= 8) { - layer.style.position = 'absolute'; - bindFixedLayer(); - setTimeout(updateFixedOffset); - } else { - layer.style.position = 'fixed'; - } - layer.style.left = '0'; - layer.style.top = '0'; - layer.style.width = '0'; - layer.style.height = '0'; - } - return layer; - }, - makeUnselectable: function (element){ - if (browser.opera || (browser.ie && browser.version < 9)) { - element.unselectable = 'on'; - if (element.hasChildNodes()) { - for (var i=0; i
    '; - } - }; - utils.inherits(Separator, UIBase); - -})(); - - -// ui/mask.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - uiUtils = baidu.editor.ui.uiUtils; - - var Mask = baidu.editor.ui.Mask = function (options){ - this.initOptions(options); - this.initUIBase(); - }; - Mask.prototype = { - getHtmlTpl: function (){ - return '
    '; - }, - postRender: function (){ - var me = this; - domUtils.on(window, 'resize', function (){ - setTimeout(function (){ - if (!me.isHidden()) { - me._fill(); - } - }); - }); - }, - show: function (zIndex){ - this._fill(); - this.getDom().style.display = ''; - this.getDom().style.zIndex = zIndex; - }, - hide: function (){ - this.getDom().style.display = 'none'; - this.getDom().style.zIndex = ''; - }, - isHidden: function (){ - return this.getDom().style.display == 'none'; - }, - _onMouseDown: function (){ - return false; - }, - _onClick: function (e, target){ - this.fireEvent('click', e, target); - }, - _fill: function (){ - var el = this.getDom(); - var vpRect = uiUtils.getViewportRect(); - el.style.width = vpRect.width + 'px'; - el.style.height = vpRect.height + 'px'; - } - }; - utils.inherits(Mask, UIBase); -})(); - - -// ui/popup.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Popup = baidu.editor.ui.Popup = function (options){ - this.initOptions(options); - this.initPopup(); - }; - - var allPopups = []; - function closeAllPopup( evt,el ){ - for ( var i = 0; i < allPopups.length; i++ ) { - var pop = allPopups[i]; - if (!pop.isHidden()) { - if (pop.queryAutoHide(el) !== false) { - if(evt&&/scroll/ig.test(evt.type)&&pop.className=="edui-wordpastepop") return; - pop.hide(); - } - } - } - - if(allPopups.length) - pop.editor.fireEvent("afterhidepop"); - } - - Popup.postHide = closeAllPopup; - - var ANCHOR_CLASSES = ['edui-anchor-topleft','edui-anchor-topright', - 'edui-anchor-bottomleft','edui-anchor-bottomright']; - Popup.prototype = { - SHADOW_RADIUS: 5, - content: null, - _hidden: false, - autoRender: true, - canSideLeft: true, - canSideUp: true, - initPopup: function (){ - this.initUIBase(); - allPopups.push( this ); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - this.getContentHtmlTpl() + - '
    ' + - '
    ' + - '
    '; - }, - getContentHtmlTpl: function (){ - if(this.content){ - if (typeof this.content == 'string') { - return this.content; - } - return this.content.renderHtml(); - }else{ - return '' - } - - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - - - if (this.content instanceof UIBase) { - this.content.postRender(); - } - - //捕获鼠标滚轮 - if( this.captureWheel && !this.captured ) { - - this.captured = true; - - var winHeight = ( document.documentElement.clientHeight || document.body.clientHeight ) - 80, - _height = this.getDom().offsetHeight, - _top = uiUtils.getClientRect( this.combox.getDom() ).top, - content = this.getDom('content'), - ifr = this.getDom('body').getElementsByTagName('iframe'), - me = this; - - ifr.length && ( ifr = ifr[0] ); - - while( _top + _height > winHeight ) { - _height -= 30; - } - content.style.height = _height + 'px'; - //同步更改iframe高度 - ifr && ( ifr.style.height = _height + 'px' ); - - //阻止在combox上的鼠标滚轮事件, 防止用户的正常操作被误解 - if( window.XMLHttpRequest ) { - - domUtils.on( content, ( 'onmousewheel' in document.body ) ? 'mousewheel' :'DOMMouseScroll' , function(e){ - - if(e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - - if( e.wheelDelta ) { - - content.scrollTop -= ( e.wheelDelta / 120 )*60; - - } else { - - content.scrollTop -= ( e.detail / -3 )*60; - - } - - }); - - } else { - - //ie6 - domUtils.on( this.getDom(), 'mousewheel' , function(e){ - - e.returnValue = false; - - me.getDom('content').scrollTop -= ( e.wheelDelta / 120 )*60; - - }); - - } - - } - this.fireEvent('postRenderAfter'); - this.hide(true); - this._UIBase_postRender(); - }, - _doAutoRender: function (){ - if (!this.getDom() && this.autoRender) { - this.render(); - } - }, - mesureSize: function (){ - var box = this.getDom('content'); - return uiUtils.getClientRect(box); - }, - fitSize: function (){ - if( this.captureWheel && this.sized ) { - return this.__size; - } - this.sized = true; - var popBodyEl = this.getDom('body'); - popBodyEl.style.width = ''; - popBodyEl.style.height = ''; - var size = this.mesureSize(); - if( this.captureWheel ) { - popBodyEl.style.width = -(-20 -size.width) + 'px'; - var height = parseInt( this.getDom('content').style.height, 10 ); - !window.isNaN( height ) && ( size.height = height ); - } else { - popBodyEl.style.width = size.width + 'px'; - } - popBodyEl.style.height = size.height + 'px'; - this.__size = size; - this.captureWheel && (this.getDom('content').style.overflow = 'auto'); - return size; - }, - showAnchor: function ( element, hoz ){ - this.showAnchorRect( uiUtils.getClientRect( element ), hoz ); - }, - showAnchorRect: function ( rect, hoz, adj ){ - this._doAutoRender(); - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.visibility = 'hidden'; - this._show(); - var popSize = this.fitSize(); - - var sideLeft, sideUp, left, top; - if (hoz) { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.left - popSize.width : rect.right); - top = (sideUp ? rect.bottom - popSize.height : rect.top); - } else { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.right - popSize.width : rect.left); - top = (sideUp ? rect.top - popSize.height : rect.bottom); - } - - var popEl = this.getDom(); - uiUtils.setViewportOffset(popEl, { - left: left, - top: top - }); - domUtils.removeClasses(popEl, ANCHOR_CLASSES); - popEl.className += ' ' + ANCHOR_CLASSES[(sideUp ? 1 : 0) * 2 + (sideLeft ? 1 : 0)]; - if(this.editor){ - popEl.style.zIndex = this.editor.container.style.zIndex * 1 + 10; - baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = popEl.style.zIndex - 1; - } - this.getDom().style.visibility = 'visible'; - - }, - showAt: function (offset) { - var left = offset.left; - var top = offset.top; - var rect = { - left: left, - top: top, - right: left, - bottom: top, - height: 0, - width: 0 - }; - this.showAnchorRect(rect, false, true); - }, - _show: function (){ - if (this._hidden) { - var box = this.getDom(); - box.style.display = ''; - this._hidden = false; -// if (box.setActive) { -// box.setActive(); -// } - this.fireEvent('show'); - } - }, - isHidden: function (){ - return this._hidden; - }, - show: function (){ - this._doAutoRender(); - this._show(); - }, - hide: function (notNofity){ - if (!this._hidden && this.getDom()) { - this.getDom().style.display = 'none'; - this._hidden = true; - if (!notNofity) { - this.fireEvent('hide'); - } - } - }, - queryAutoHide: function (el){ - return !el || !uiUtils.contains(this.getDom(), el); - } - }; - utils.inherits(Popup, UIBase); - - domUtils.on( document, 'mousedown', function ( evt ) { - var el = evt.target || evt.srcElement; - closeAllPopup( evt,el ); - } ); - domUtils.on( window, 'scroll', function (evt,el) { - closeAllPopup( evt,el ); - } ); - -})(); - - -// ui/colorpicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - ColorPicker = baidu.editor.ui.ColorPicker = function (options){ - this.initOptions(options); - this.noColorText = this.noColorText || this.editor.getLang("clearColor"); - this.initUIBase(); - }; - - ColorPicker.prototype = { - getHtmlTpl: function (){ - return genColorPicker(this.noColorText,this.editor); - }, - _onTableClick: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.fireEvent('pickcolor', color); - } - }, - _onTableOver: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.getDom('preview').style.backgroundColor = color; - } - }, - _onTableOut: function (){ - this.getDom('preview').style.backgroundColor = ''; - }, - _onPickNoColor: function (){ - this.fireEvent('picknocolor'); - } - }; - utils.inherits(ColorPicker, UIBase); - - var COLORS = ( - 'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' + - 'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' + - 'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' + - 'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' + - 'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' + - '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' + - 'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(','); - - function genColorPicker(noColorText,editor){ - var html = '
    ' + - '
    ' + - '
    ' + - '
    '+ noColorText +'
    ' + - '
    ' + - '' + - ''+ - ''; - for (var i=0; i':'')+''; - } - html += i<70 ? '':''; - } - html += '
    '+editor.getLang("themeColor")+'
    '+editor.getLang("standardColor")+'
    '; - return html; - } -})(); - - -// ui/tablepicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var TablePicker = baidu.editor.ui.TablePicker = function (options){ - this.initOptions(options); - this.initTablePicker(); - }; - TablePicker.prototype = { - defaultNumRows: 10, - defaultNumCols: 10, - maxNumRows: 20, - maxNumCols: 20, - numRows: 10, - numCols: 10, - lengthOfCellSide: 22, - initTablePicker: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - var me = this; - return '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - _UIBase_render: UIBase.prototype.render, - render: function (holder){ - this._UIBase_render(holder); - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_row")+' x 0'+this.editor.getLang("t_col"); - }, - _track: function (numCols, numRows){ - var style = this.getDom('overlay').style; - var sideLen = this.lengthOfCellSide; - style.width = numCols * sideLen + 'px'; - style.height = numRows * sideLen + 'px'; - var label = this.getDom('label'); - label.innerHTML = numCols +this.editor.getLang("t_col")+' x ' + numRows + this.editor.getLang("t_row"); - this.numCols = numCols; - this.numRows = numRows; - }, - _onMouseOver: function (evt, el){ - var rel = evt.relatedTarget || evt.fromElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = ''; - } - }, - _onMouseOut: function (evt, el){ - var rel = evt.relatedTarget || evt.toElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = 'hidden'; - } - }, - _onMouseMove: function (evt, el){ - var style = this.getDom('overlay').style; - var offset = uiUtils.getEventOffset(evt); - var sideLen = this.lengthOfCellSide; - var numCols = Math.ceil(offset.left / sideLen); - var numRows = Math.ceil(offset.top / sideLen); - this._track(numCols, numRows); - }, - _onClick: function (){ - this.fireEvent('picktable', this.numCols, this.numRows); - } - }; - utils.inherits(TablePicker, UIBase); -})(); - - -// ui/stateful.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils, - uiUtils = baidu.editor.ui.uiUtils; - - var TPL_STATEFUL = 'onmousedown="$$.Stateful_onMouseDown(event, this);"' + - ' onmouseup="$$.Stateful_onMouseUp(event, this);"' + - ( browser.ie ? ( - ' onmouseenter="$$.Stateful_onMouseEnter(event, this);"' + - ' onmouseleave="$$.Stateful_onMouseLeave(event, this);"' ) - : ( - ' onmouseover="$$.Stateful_onMouseOver(event, this);"' + - ' onmouseout="$$.Stateful_onMouseOut(event, this);"' )); - - baidu.editor.ui.Stateful = { - alwalysHoverable: false, - target:null,//目标元素和this指向dom不一样 - Stateful_init: function (){ - this._Stateful_dGetHtmlTpl = this.getHtmlTpl; - this.getHtmlTpl = this.Stateful_getHtmlTpl; - }, - Stateful_getHtmlTpl: function (){ - var tpl = this._Stateful_dGetHtmlTpl(); - // 使用function避免$转义 - return tpl.replace(/stateful/g, function (){ return TPL_STATEFUL; }); - }, - Stateful_onMouseEnter: function (evt, el){ - this.target=el; - if (!this.isDisabled() || this.alwalysHoverable) { - this.addState('hover'); - this.fireEvent('over'); - } - }, - Stateful_onMouseLeave: function (evt, el){ - if (!this.isDisabled() || this.alwalysHoverable) { - this.removeState('hover'); - this.removeState('active'); - this.fireEvent('out'); - } - }, - Stateful_onMouseOver: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseEnter(evt, el); - } - }, - Stateful_onMouseOut: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseLeave(evt, el); - } - }, - Stateful_onMouseDown: function (evt, el){ - if (!this.isDisabled()) { - this.addState('active'); - } - }, - Stateful_onMouseUp: function (evt, el){ - if (!this.isDisabled()) { - this.removeState('active'); - } - }, - Stateful_postRender: function (){ - if (this.disabled && !this.hasState('disabled')) { - this.addState('disabled'); - } - }, - hasState: function (state){ - return domUtils.hasClass(this.getStateDom(), 'edui-state-' + state); - }, - addState: function (state){ - if (!this.hasState(state)) { - this.getStateDom().className += ' edui-state-' + state; - } - }, - removeState: function (state){ - if (this.hasState(state)) { - domUtils.removeClasses(this.getStateDom(), ['edui-state-' + state]); - } - }, - getStateDom: function (){ - return this.getDom('state'); - }, - isChecked: function (){ - return this.hasState('checked'); - }, - setChecked: function (checked){ - if (!this.isDisabled() && checked) { - this.addState('checked'); - } else { - this.removeState('checked'); - } - }, - isDisabled: function (){ - return this.hasState('disabled'); - }, - setDisabled: function (disabled){ - if (disabled) { - this.removeState('hover'); - this.removeState('checked'); - this.removeState('active'); - this.addState('disabled'); - } else { - this.removeState('disabled'); - } - } - }; -})(); - - -// ui/button.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - Button = baidu.editor.ui.Button = function (options){ - if(options.name){ - var btnName = options.name; - var cssRules = options.cssRules; - if(!options.className){ - options.className = 'edui-for-' + btnName; - } - options.cssRules = '.edui-default .edui-for-'+ btnName +' .edui-icon {'+ cssRules +'}' - } - this.initOptions(options); - this.initButton(); - }; - Button.prototype = { - uiName: 'button', - label: '', - title: '', - showIcon: true, - showText: true, - cssRules:'', - initButton: function (){ - this.initUIBase(); - this.Stateful_init(); - if(this.cssRules){ - utils.cssRule('edui-customize-'+this.name+'-style',this.cssRules); - } - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - (this.showIcon ? '
    ' : '') + - (this.showText ? '
    ' + this.label + '
    ' : '') + - '
    ' + - '
    ' + - '
    '; - }, - postRender: function (){ - this.Stateful_postRender(); - this.setDisabled(this.disabled) - }, - _onMouseDown: function (e){ - var target = e.target || e.srcElement, - tagName = target && target.tagName && target.tagName.toLowerCase(); - if (tagName == 'input' || tagName == 'object' || tagName == 'object') { - return false; - } - }, - _onClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('click'); - } - }, - setTitle: function(text){ - var label = this.getDom('label'); - label.innerHTML = text; - } - }; - utils.inherits(Button, UIBase); - utils.extend(Button.prototype, Stateful); - -})(); - - -// ui/splitbutton.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - SplitButton = baidu.editor.ui.SplitButton = function (options){ - this.initOptions(options); - this.initSplitButton(); - }; - SplitButton.prototype = { - popup: null, - uiName: 'splitbutton', - title: '', - initSplitButton: function (){ - this.initUIBase(); - this.Stateful_init(); - var me = this; - if (this.popup != null) { - var popup = this.popup; - this.popup = null; - this.setPopup(popup); - } - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - this.Stateful_postRender(); - this._UIBase_postRender(); - }, - setPopup: function (popup){ - if (this.popup === popup) return; - if (this.popup != null) { - this.popup.dispose(); - } - popup.addListener('show', utils.bind(this._onPopupShow, this)); - popup.addListener('hide', utils.bind(this._onPopupHide, this)); - popup.addListener('postrender', utils.bind(function (){ - popup.getDom('body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - popup.getDom().className += ' ' + this.className; - }, this)); - this.popup = popup; - }, - _onPopupShow: function (){ - this.addState('opened'); - }, - _onPopupHide: function (){ - this.removeState('opened'); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - showPopup: function (){ - // 当popup往上弹出的时候,做特殊处理 - var rect = uiUtils.getClientRect(this.getDom()); - rect.top -= this.popup.SHADOW_RADIUS; - rect.height += this.popup.SHADOW_RADIUS; - this.popup.showAnchorRect(rect); - }, - _onArrowClick: function (event, el){ - if (!this.isDisabled()) { - this.showPopup(); - } - }, - _onButtonClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('buttonclick'); - } - } - }; - utils.inherits(SplitButton, UIBase); - utils.extend(SplitButton.prototype, Stateful, true); - -})(); - - -// ui/colorbutton.js -///import core -///import uicore -///import ui/colorpicker.js -///import ui/popup.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - ColorPicker = baidu.editor.ui.ColorPicker, - Popup = baidu.editor.ui.Popup, - SplitButton = baidu.editor.ui.SplitButton, - ColorButton = baidu.editor.ui.ColorButton = function (options){ - this.initOptions(options); - this.initColorButton(); - }; - ColorButton.prototype = { - initColorButton: function (){ - var me = this; - this.popup = new Popup({ - content: new ColorPicker({ - noColorText: me.editor.getLang("clearColor"), - editor:me.editor, - onpickcolor: function (t, color){ - me._onPickColor(color); - }, - onpicknocolor: function (t, color){ - me._onPickNoColor(color); - } - }), - editor:me.editor - }); - this.initSplitButton(); - }, - _SplitButton_postRender: SplitButton.prototype.postRender, - postRender: function (){ - this._SplitButton_postRender(); - this.getDom('button_body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - this.getDom().className += ' edui-colorbutton'; - }, - setColor: function (color){ - this.getDom('colorlump').style.backgroundColor = color; - this.color = color; - }, - _onPickColor: function (color){ - if (this.fireEvent('pickcolor', color) !== false) { - this.setColor(color); - this.popup.hide(); - } - }, - _onPickNoColor: function (color){ - if (this.fireEvent('picknocolor') !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(ColorButton, SplitButton); - -})(); - - -// ui/tablebutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/tablepicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - TablePicker = baidu.editor.ui.TablePicker, - SplitButton = baidu.editor.ui.SplitButton, - TableButton = baidu.editor.ui.TableButton = function (options){ - this.initOptions(options); - this.initTableButton(); - }; - TableButton.prototype = { - initTableButton: function (){ - var me = this; - this.popup = new Popup({ - content: new TablePicker({ - editor:me.editor, - onpicktable: function (t, numCols, numRows){ - me._onPickTable(numCols, numRows); - } - }), - 'editor':me.editor - }); - this.initSplitButton(); - }, - _onPickTable: function (numCols, numRows){ - if (this.fireEvent('picktable', numCols, numRows) !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(TableButton, SplitButton); - -})(); - - -// ui/autotypesetpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase; - - var AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker = function (options) { - this.initOptions(options); - this.initAutoTypeSetPicker(); - }; - AutoTypeSetPicker.prototype = { - initAutoTypeSetPicker:function () { - this.initUIBase(); - }, - getHtmlTpl:function () { - var me = this.editor, - opt = me.options.autotypeset, - lang = me.getLang("autoTypeSet"); - - var textAlignInputName = 'textAlignValue' + me.uid, - imageBlockInputName = 'imageBlockLineValue' + me.uid, - symbolConverInputName = 'symbolConverValue' + me.uid; - - return '
    ' + - '
    ' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
    ' + lang.mergeLine + '' + lang.delLine + '
    ' + lang.removeFormat + '' + lang.indent + '
    ' + lang.alignment + '' + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.imageFloat + '' + - '' + me.getLang("default") + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.removeFontsize + '' + lang.removeFontFamily + '
    ' + lang.removeHtml + '
    ' + lang.pasteFilter + '
    ' + lang.symbol + '' + - '' + lang.bdc2sb + - '' + lang.tobdc + '' + - '
    ' + - '
    ' + - '
    '; - - - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(AutoTypeSetPicker, UIBase); -})(); - - -// ui/autotypesetbutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/autotypesetpicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker, - SplitButton = baidu.editor.ui.SplitButton, - AutoTypeSetButton = baidu.editor.ui.AutoTypeSetButton = function (options){ - this.initOptions(options); - this.initAutoTypeSetButton(); - }; - function getPara(me){ - - var opt = {}, - cont = me.getDom(), - editorId = me.editor.uid, - inputType = null, - attrName = null, - ipts = domUtils.getElementsByTagName(cont,"input"); - for(var i=ipts.length-1,ipt;ipt=ipts[i--];){ - inputType = ipt.getAttribute("type"); - if(inputType=="checkbox"){ - attrName = ipt.getAttribute("name"); - opt[attrName] && delete opt[attrName]; - if(ipt.checked){ - var attrValue = document.getElementById( attrName + "Value" + editorId ); - if(attrValue){ - if(/input/ig.test(attrValue.tagName)){ - opt[attrName] = attrValue.value; - } else { - var iptChilds = attrValue.getElementsByTagName("input"); - for(var j=iptChilds.length-1,iptchild;iptchild=iptChilds[j--];){ - if(iptchild.checked){ - opt[attrName] = iptchild.value; - break; - } - } - } - } else { - opt[attrName] = true; - } - } else { - opt[attrName] = false; - } - } else { - opt[ipt.getAttribute("value")] = ipt.checked; - } - - } - - var selects = domUtils.getElementsByTagName(cont,"select"); - for(var i=0,si;si=selects[i++];){ - var attr = si.getAttribute('name'); - opt[attr] = opt[attr] ? si.value : ''; - } - - utils.extend(me.editor.options.autotypeset,opt); - - me.editor.setPreferences('autotypeset', opt); - } - - AutoTypeSetButton.prototype = { - initAutoTypeSetButton: function (){ - - var me = this; - this.popup = new Popup({ - //传入配置参数 - content: new AutoTypeSetPicker({editor:me.editor}), - 'editor':me.editor, - hide : function(){ - if (!this._hidden && this.getDom()) { - getPara(this); - this.getDom().style.display = 'none'; - this._hidden = true; - this.fireEvent('hide'); - } - } - }); - var flag = 0; - this.popup.addListener('postRenderAfter',function(){ - var popupUI = this; - if(flag)return; - var cont = this.getDom(), - btn = cont.getElementsByTagName('button')[0]; - - btn.onclick = function(){ - getPara(popupUI); - me.editor.execCommand('autotypeset'); - popupUI.hide() - }; - - domUtils.on(cont, 'click', function(e) { - var target = e.target || e.srcElement, - editorId = me.editor.uid; - if (target && target.tagName == 'INPUT') { - - // 点击图片浮动的checkbox,去除对应的radio - if (target.name == 'imageBlockLine' || target.name == 'textAlign' || target.name == 'symbolConver') { - var checked = target.checked, - radioTd = document.getElementById( target.name + 'Value' + editorId), - radios = radioTd.getElementsByTagName('input'), - defalutSelect = { - 'imageBlockLine': 'none', - 'textAlign': 'left', - 'symbolConver': 'tobdc' - }; - - for (var i = 0; i < radios.length; i++) { - if (checked) { - if (radios[i].value == defalutSelect[target.name]) { - radios[i].checked = 'checked'; - } - } else { - radios[i].checked = false; - } - } - } - // 点击radio,选中对应的checkbox - if (target.name == ('imageBlockLineValue' + editorId) || target.name == ('textAlignValue' + editorId) || target.name == 'bdc') { - var checkboxs = target.parentNode.previousSibling.getElementsByTagName('input'); - checkboxs && (checkboxs[0].checked = true); - } - - getPara(popupUI); - } - }); - - flag = 1; - }); - this.initSplitButton(); - } - }; - utils.inherits(AutoTypeSetButton, SplitButton); - -})(); - - -// ui/cellalignpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - Stateful = baidu.editor.ui.Stateful, - UIBase = baidu.editor.ui.UIBase; - - /** - * 该参数将新增一个参数: selected, 参数类型为一个Object, 形如{ 'align': 'center', 'valign': 'top' }, 表示单元格的初始 - * 对齐状态为: 竖直居上,水平居中; 其中 align的取值为:'center', 'left', 'right'; valign的取值为: 'top', 'middle', 'bottom' - * @update 2013/4/2 hancong03@baidu.com - */ - var CellAlignPicker = baidu.editor.ui.CellAlignPicker = function (options) { - this.initOptions(options); - this.initSelected(); - this.initCellAlignPicker(); - }; - CellAlignPicker.prototype = { - //初始化选中状态, 该方法将根据传递进来的参数获取到应该选中的对齐方式图标的索引 - initSelected: function(){ - - var status = { - - valign: { - top: 0, - middle: 1, - bottom: 2 - }, - align: { - left: 0, - center: 1, - right: 2 - }, - count: 3 - - }, - result = -1; - - if( this.selected ) { - this.selectedIndex = status.valign[ this.selected.valign ] * status.count + status.align[ this.selected.align ]; - } - - }, - initCellAlignPicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - - var alignType = [ 'left', 'center', 'right' ], - COUNT = 9, - tempClassName = null, - tempIndex = -1, - tmpl = []; - - - for( var i= 0; i'); - - tmpl.push( '
    ' ); - - tempIndex === 2 && tmpl.push(''); - - } - - return '
    ' + - '
    ' + - '' + - tmpl.join('') + - '
    ' + - '
    ' + - '
    '; - }, - getStateDom: function (){ - return this.target; - }, - _onClick: function (evt){ - var target= evt.target || evt.srcElement; - if(/icon/.test(target.className)){ - this.items[target.parentNode.getAttribute("index")].onclick(); - Popup.postHide(evt); - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(CellAlignPicker, UIBase); - utils.extend(CellAlignPicker.prototype, Stateful,true); -})(); - - - - - -// ui/pastepicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Stateful = baidu.editor.ui.Stateful, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var PastePicker = baidu.editor.ui.PastePicker = function (options) { - this.initOptions(options); - this.initPastePicker(); - }; - PastePicker.prototype = { - initPastePicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - '
    ' + this.editor.getLang("pasteOpt") + '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' - }, - getStateDom:function () { - return this.target; - }, - format:function (param) { - this.editor.ui._isTransfer = true; - this.editor.fireEvent('pasteTransfer', param); - }, - _onClick:function (cur) { - var node = domUtils.getNextDomNode(cur), - screenHt = uiUtils.getViewportRect().height, - subPop = uiUtils.getClientRect(node); - - if ((subPop.top + subPop.height) > screenHt) - node.style.top = (-subPop.height - cur.offsetHeight) + "px"; - else - node.style.top = ""; - - if (/hidden/ig.test(domUtils.getComputedStyle(node, "visibility"))) { - node.style.visibility = "visible"; - domUtils.addClass(cur, "edui-state-opened"); - } else { - node.style.visibility = "hidden"; - domUtils.removeClasses(cur, "edui-state-opened") - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(PastePicker, UIBase); - utils.extend(PastePicker.prototype, Stateful, true); -})(); - - - - - - -// ui/toolbar.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - Toolbar = baidu.editor.ui.Toolbar = function (options){ - this.initOptions(options); - this.initToolbar(); - }; - Toolbar.prototype = { - items: null, - initToolbar: function (){ - this.items = this.items || []; - this.initUIBase(); - }, - add: function (item,index){ - if(index === undefined){ - this.items.push(item); - }else{ - this.items.splice(index,0,item) - } - - }, - getHtmlTpl: function (){ - var buff = []; - for (var i=0; i' + - buff.join('') + - '
    ' - }, - postRender: function (){ - var box = this.getDom(); - for (var i=0; i
    '; - }, - postRender:function () { - }, - queryAutoHide:function () { - return true; - } - }; - Menu.prototype = { - items:null, - uiName:'menu', - initMenu:function () { - this.items = this.items || []; - this.initPopup(); - this.initItems(); - }, - initItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item == '-') { - this.items[i] = this.getSeparator(); - } else if (!(item instanceof MenuItem)) { - item.editor = this.editor; - item.theme = this.editor.options.theme; - this.items[i] = this.createItem(item); - } - } - }, - getSeparator:function () { - return menuSeparator; - }, - createItem:function (item) { - //新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - item.menu = this; - return new MenuItem(item); - }, - _Popup_getContentHtmlTpl:Popup.prototype.getContentHtmlTpl, - getContentHtmlTpl:function () { - if (this.items.length == 0) { - return this._Popup_getContentHtmlTpl(); - } - var buff = []; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - buff[i] = item.renderHtml(); - } - return ('
    ' + buff.join('') + '
    '); - }, - _Popup_postRender:Popup.prototype.postRender, - postRender:function () { - var me = this; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - item.ownerMenu = this; - item.postRender(); - } - domUtils.on(this.getDom(), 'mouseover', function (evt) { - evt = evt || event; - var rel = evt.relatedTarget || evt.fromElement; - var el = me.getDom(); - if (!uiUtils.contains(el, rel) && el !== rel) { - me.fireEvent('over'); - } - }); - this._Popup_postRender(); - }, - queryAutoHide:function (el) { - if (el) { - if (uiUtils.contains(this.getDom(), el)) { - return false; - } - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item.queryAutoHide(el) === false) { - return false; - } - } - } - }, - clearItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - clearTimeout(item._showingTimer); - clearTimeout(item._closingTimer); - if (item.subMenu) { - item.subMenu.destroy(); - } - } - this.items = []; - }, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - this.clearItems(); - }, - dispose:function () { - this.destroy(); - } - }; - utils.inherits(Menu, Popup); - - /** - * @update 2013/04/03 hancong03 新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - * @type {Function} - */ - var MenuItem = baidu.editor.ui.MenuItem = function (options) { - this.initOptions(options); - this.initUIBase(); - this.Stateful_init(); - if (this.subMenu && !(this.subMenu instanceof Menu)) { - if (options.className && options.className.indexOf("aligntd") != -1) { - var me = this; - - //获取单元格对齐初始状态 - this.subMenu.selected = this.editor.queryCommandValue( 'cellalignment' ); - - this.subMenu = new Popup({ - content:new CellAlignPicker(this.subMenu), - parentMenu:me, - editor:me.editor, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - } - }); - this.subMenu.addListener("postRenderAfter", function () { - domUtils.on(this.getDom(), "mouseover", function () { - me.addState('opened'); - }); - }); - } else { - this.subMenu = new Menu(this.subMenu); - } - } - }; - MenuItem.prototype = { - label:'', - subMenu:null, - ownerMenu:null, - uiName:'menuitem', - alwalysHoverable:true, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - this.renderLabelHtml() + - '
    ' + - '
    '; - }, - postRender:function () { - var me = this; - this.addListener('over', function () { - me.ownerMenu.fireEvent('submenuover', me); - if (me.subMenu) { - me.delayShowSubMenu(); - } - }); - if (this.subMenu) { - this.getDom().className += ' edui-hassubmenu'; - this.subMenu.render(); - this.addListener('out', function () { - me.delayHideSubMenu(); - }); - this.subMenu.addListener('over', function () { - clearTimeout(me._closingTimer); - me._closingTimer = null; - me.addState('opened'); - }); - this.ownerMenu.addListener('hide', function () { - me.hideSubMenu(); - }); - this.ownerMenu.addListener('submenuover', function (t, subMenu) { - if (subMenu !== me) { - me.delayHideSubMenu(); - } - }); - this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide; - this.subMenu.queryAutoHide = function (el) { - if (el && uiUtils.contains(me.getDom(), el)) { - return false; - } - return this._bakQueryAutoHide(el); - }; - } - this.getDom().style.tabIndex = '-1'; - uiUtils.makeUnselectable(this.getDom()); - this.Stateful_postRender(); - }, - delayShowSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.addState('opened'); - clearTimeout(me._showingTimer); - clearTimeout(me._closingTimer); - me._closingTimer = null; - me._showingTimer = setTimeout(function () { - me.showSubMenu(); - }, 250); - } - }, - delayHideSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.removeState('opened'); - clearTimeout(me._showingTimer); - if (!me._closingTimer) { - me._closingTimer = setTimeout(function () { - if (!me.hasState('opened')) { - me.hideSubMenu(); - } - me._closingTimer = null; - }, 400); - } - } - }, - renderLabelHtml:function () { - return '
    ' + - '
    ' + - '
    ' + (this.label || '') + '
    '; - }, - getStateDom:function () { - return this.getDom(); - }, - queryAutoHide:function (el) { - if (this.subMenu && this.hasState('opened')) { - return this.subMenu.queryAutoHide(el); - } - }, - _onClick:function (event, this_) { - if (this.hasState('disabled')) return; - if (this.fireEvent('click', event, this_) !== false) { - if (this.subMenu) { - this.showSubMenu(); - } else { - Popup.postHide(event); - } - } - }, - showSubMenu:function () { - var rect = uiUtils.getClientRect(this.getDom()); - rect.right -= 5; - rect.left += 2; - rect.width -= 7; - rect.top -= 4; - rect.bottom += 4; - rect.height += 8; - this.subMenu.showAnchorRect(rect, true, true); - }, - hideSubMenu:function () { - this.subMenu.hide(); - } - }; - utils.inherits(MenuItem, UIBase); - utils.extend(MenuItem.prototype, Stateful, true); -})(); - - -// ui/combox.js -///import core -///import uicore -///import ui/menu.js -///import ui/splitbutton.js -(function (){ - // todo: menu和item提成通用list - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - Menu = baidu.editor.ui.Menu, - SplitButton = baidu.editor.ui.SplitButton, - Combox = baidu.editor.ui.Combox = function (options){ - this.initOptions(options); - this.initCombox(); - }; - Combox.prototype = { - uiName: 'combox', - onbuttonclick:function () { - this.showPopup(); - }, - initCombox: function (){ - var me = this; - this.items = this.items || []; - for (var i=0; i vpRect.right) { - left = vpRect.right - rect.width; - } - var top = offset.top; - if (top + rect.height > vpRect.bottom) { - top = vpRect.bottom - rect.height; - } - el.style.left = Math.max(left, 0) + 'px'; - el.style.top = Math.max(top, 0) + 'px'; - }, - showAtCenter: function (){ - - var vpRect = uiUtils.getViewportRect(); - - if ( !this.fullscreen ) { - this.getDom().style.display = ''; - var popSize = this.fitSize(); - var titleHeight = this.getDom('titlebar').offsetHeight | 0; - var left = vpRect.width / 2 - popSize.width / 2; - var top = vpRect.height / 2 - (popSize.height - titleHeight) / 2 - titleHeight; - var popEl = this.getDom(); - this.safeSetOffset({ - left: Math.max(left | 0, 0), - top: Math.max(top | 0, 0) - }); - if (!domUtils.hasClass(popEl, 'edui-state-centered')) { - popEl.className += ' edui-state-centered'; - } - } else { - var dialogWrapNode = this.getDom(), - contentNode = this.getDom('content'); - - dialogWrapNode.style.display = "block"; - - var wrapRect = UE.ui.uiUtils.getClientRect( dialogWrapNode ), - contentRect = UE.ui.uiUtils.getClientRect( contentNode ); - dialogWrapNode.style.left = "-100000px"; - - contentNode.style.width = ( vpRect.width - wrapRect.width + contentRect.width ) + "px"; - contentNode.style.height = ( vpRect.height - wrapRect.height + contentRect.height ) + "px"; - - dialogWrapNode.style.width = vpRect.width + "px"; - dialogWrapNode.style.height = vpRect.height + "px"; - dialogWrapNode.style.left = 0; - - //保存环境的overflow值 - this._originalContext = { - html: { - overflowX: document.documentElement.style.overflowX, - overflowY: document.documentElement.style.overflowY - }, - body: { - overflowX: document.body.style.overflowX, - overflowY: document.body.style.overflowY - } - }; - - document.documentElement.style.overflowX = 'hidden'; - document.documentElement.style.overflowY = 'hidden'; - document.body.style.overflowX = 'hidden'; - document.body.style.overflowY = 'hidden'; - - } - - this._show(); - }, - getContentHtml: function (){ - var contentHtml = ''; - if (typeof this.content == 'string') { - contentHtml = this.content; - } else if (this.iframeUrl) { - contentHtml = ''; - } - return contentHtml; - }, - getHtmlTpl: function (){ - var footHtml = ''; - - if (this.buttons) { - var buff = []; - for (var i=0; i' + buff.join('') + '
    ' + - '
    '; - } - - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + (this.title || '') + '' + - '
    ' + - this.closeButton.renderHtml() + - '
    ' + - '
    '+ ( this.autoReset ? '' : this.getContentHtml()) +'
    ' + - footHtml + - '
    '; - }, - postRender: function (){ - // todo: 保持居中/记住上次关闭位置选项 - if (!this.modalMask.getDom()) { - this.modalMask.render(); - this.modalMask.hide(); - } - if (!this.dragMask.getDom()) { - this.dragMask.render(); - this.dragMask.hide(); - } - var me = this; - this.addListener('show', function (){ - me.modalMask.show(this.getDom().style.zIndex - 2); - }); - this.addListener('hide', function (){ - me.modalMask.hide(); - }); - if (this.buttons) { - for (var i=0; i'; - me.editor.container.style.zIndex && (this.getDom().style.zIndex = me.editor.container.style.zIndex * 1 + 1); - } - } - // canSideUp:false, - // canSideLeft:false - }); - this.onbuttonclick = function(){ - this.showPopup(); - }; - this.initSplitButton(); - } - - }; - - utils.inherits(MultiMenuPop, SplitButton); -})(); - - -// ui/shortcutmenu.js -(function () { - var UI = baidu.editor.ui, - UIBase = UI.UIBase, - uiUtils = UI.uiUtils, - utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils; - - var allMenus = [],//存储所有快捷菜单 - timeID, - isSubMenuShow = false;//是否有子pop显示 - - var ShortCutMenu = UI.ShortCutMenu = function (options) { - this.initOptions (options); - this.initShortCutMenu (); - }; - - ShortCutMenu.postHide = hideAllMenu; - - ShortCutMenu.prototype = { - isHidden : true , - SPACE : 5 , - initShortCutMenu : function () { - this.items = this.items || []; - this.initUIBase (); - this.initItems (); - this.initEvent (); - allMenus.push (this); - } , - initEvent : function () { - var me = this, - doc = me.editor.document; - - domUtils.on (doc , "mousemove" , function (e) { - if (me.isHidden === false) { - //有pop显示就不隐藏快捷菜单 - if (me.getSubMenuMark () || me.eventType == "contextmenu") return; - - - var flag = true, - el = me.getDom (), - wt = el.offsetWidth, - ht = el.offsetHeight, - distanceX = wt / 2 + me.SPACE,//距离中心X标准 - distanceY = ht / 2,//距离中心Y标准 - x = Math.abs (e.screenX - me.left),//离中心距离横坐标 - y = Math.abs (e.screenY - me.top);//离中心距离纵坐标 - - clearTimeout (timeID); - timeID = setTimeout (function () { - if (y > 0 && y < distanceY) { - me.setOpacity (el , "1"); - } else if (y > distanceY && y < distanceY + 70) { - me.setOpacity (el , "0.5"); - flag = false; - } else if (y > distanceY + 70 && y < distanceY + 140) { - me.hide (); - } - - if (flag && x > 0 && x < distanceX) { - me.setOpacity (el , "1") - } else if (x > distanceX && x < distanceX + 70) { - me.setOpacity (el , "0.5") - } else if (x > distanceX + 70 && x < distanceX + 140) { - me.hide (); - } - }); - } - }); - - //ie\ff下 mouseout不准 - if (browser.chrome) { - domUtils.on (doc , "mouseout" , function (e) { - var relatedTgt = e.relatedTarget || e.toElement; - - if (relatedTgt == null || relatedTgt.tagName == "HTML") { - me.hide (); - } - }); - } - - me.editor.addListener ("afterhidepop" , function () { - if (!me.isHidden) { - isSubMenuShow = true; - } - }); - - } , - initItems : function () { - if (utils.isArray (this.items)) { - for (var i = 0, len = this.items.length ; i < len ; i++) { - var item = this.items[i].toLowerCase (); - - if (UI[item]) { - this.items[i] = new UI[item] (this.editor); - this.items[i].className += " edui-shortcutsubmenu "; - } - } - } - } , - setOpacity : function (el , value) { - if (browser.ie && browser.version < 9) { - el.style.filter = "alpha(opacity = " + parseFloat (value) * 100 + ");" - } else { - el.style.opacity = value; - } - } , - getSubMenuMark : function () { - isSubMenuShow = false; - var layerEle = uiUtils.getFixedLayer (); - var list = domUtils.getElementsByTagName (layerEle , "div" , function (node) { - return domUtils.hasClass (node , "edui-shortcutsubmenu edui-popup") - }); - - for (var i = 0, node ; node = list[i++] ;) { - if (node.style.display != "none") { - isSubMenuShow = true; - } - } - return isSubMenuShow; - } , - show : function (e , hasContextmenu) { - var me = this, - offset = {}, - el = this.getDom (), - fixedlayer = uiUtils.getFixedLayer (); - - function setPos (offset) { - if (offset.left < 0) { - offset.left = 0; - } - if (offset.top < 0) { - offset.top = 0; - } - el.style.cssText = "position:absolute;left:" + offset.left + "px;top:" + offset.top + "px;"; - } - - function setPosByCxtMenu (menu) { - if (!menu.tagName) { - menu = menu.getDom (); - } - offset.left = parseInt (menu.style.left); - offset.top = parseInt (menu.style.top); - offset.top -= el.offsetHeight + 15; - setPos (offset); - } - - - me.eventType = e.type; - el.style.cssText = "display:block;left:-9999px"; - - if (e.type == "contextmenu" && hasContextmenu) { - var menu = domUtils.getElementsByTagName (fixedlayer , "div" , "edui-contextmenu")[0]; - if (menu) { - setPosByCxtMenu (menu) - } else { - me.editor.addListener ("aftershowcontextmenu" , function (type , menu) { - setPosByCxtMenu (menu); - }); - } - } else { - offset = uiUtils.getViewportOffsetByEvent (e); - offset.top -= el.offsetHeight + me.SPACE; - offset.left += me.SPACE + 20; - setPos (offset); - me.setOpacity (el , 0.2); - } - - - me.isHidden = false; - me.left = e.screenX + el.offsetWidth / 2 - me.SPACE; - me.top = e.screenY - (el.offsetHeight / 2) - me.SPACE; - - if (me.editor) { - el.style.zIndex = me.editor.container.style.zIndex * 1 + 10; - fixedlayer.style.zIndex = el.style.zIndex - 1; - } - } , - hide : function () { - if (this.getDom ()) { - this.getDom ().style.display = "none"; - } - this.isHidden = true; - } , - postRender : function () { - if (utils.isArray (this.items)) { - for (var i = 0, item ; item = this.items[i++] ;) { - item.postRender (); - } - } - } , - getHtmlTpl : function () { - var buff; - if (utils.isArray (this.items)) { - buff = []; - for (var i = 0 ; i < this.items.length ; i++) { - buff[i] = this.items[i].renderHtml (); - } - buff = buff.join (""); - } else { - buff = this.items; - } - - return '
    ' + - buff + - '
    '; - } - }; - - utils.inherits (ShortCutMenu , UIBase); - - function hideAllMenu (e) { - var tgt = e.target || e.srcElement, - cur = domUtils.findParent (tgt , function (node) { - return domUtils.hasClass (node , "edui-shortcutmenu") || domUtils.hasClass (node , "edui-popup"); - } , true); - - if (!cur) { - for (var i = 0, menu ; menu = allMenus[i++] ;) { - menu.hide () - } - } - } - - domUtils.on (document , 'mousedown' , function (e) { - hideAllMenu (e); - }); - - domUtils.on (window , 'scroll' , function (e) { - hideAllMenu (e); - }); - -}) (); - - -// ui/breakline.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Breakline = baidu.editor.ui.Breakline = function (options){ - this.initOptions(options); - this.initSeparator(); - }; - Breakline.prototype = { - uiName: 'Breakline', - initSeparator: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    '; - } - }; - utils.inherits(Breakline, UIBase); - -})(); - - -// ui/message.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Message = baidu.editor.ui.Message = function (options){ - this.initOptions(options); - this.initMessage(); - }; - - Message.prototype = { - initMessage: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ×
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - reset: function(opt){ - var me = this; - if (!opt.keepshow) { - clearTimeout(this.timer); - me.timer = setTimeout(function(){ - me.hide(); - }, opt.timeout || 4000); - } - - opt.content !== undefined && me.setContent(opt.content); - opt.type !== undefined && me.setType(opt.type); - - me.show(); - }, - postRender: function(){ - var me = this, - closer = this.getDom('closer'); - closer && domUtils.on(closer, 'click', function(){ - me.hide(); - }); - }, - setContent: function(content){ - this.getDom('content').innerHTML = content; - }, - setType: function(type){ - type = type || 'info'; - var body = this.getDom('body'); - body.className = body.className.replace(/edui-message-type-[\w-]+/, 'edui-message-type-' + type); - }, - getContent: function(){ - return this.getDom('content').innerHTML; - }, - getType: function(){ - var arr = this.getDom('body').match(/edui-message-type-([\w-]+)/); - return arr ? arr[1]:''; - }, - show: function (){ - this.getDom().style.display = 'block'; - }, - hide: function (){ - var dom = this.getDom(); - if (dom) { - dom.style.display = 'none'; - dom.parentNode && dom.parentNode.removeChild(dom); - } - } - }; - - utils.inherits(Message, UIBase); - -})(); - - -// adapter/editorui.js -//ui跟编辑器的适配層 -//那个按钮弹出是dialog,是下拉筐等都是在这个js中配置 -//自己写的ui也要在这里配置,放到baidu.editor.ui下边,当编辑器实例化的时候会根据ueditor.config中的toolbars找到相应的进行实例化 -(function () { - var utils = baidu.editor.utils; - var editorui = baidu.editor.ui; - var _Dialog = editorui.Dialog; - editorui.buttons = {}; - - editorui.Dialog = function (options) { - var dialog = new _Dialog(options); - dialog.addListener('hide', function () { - - if (dialog.editor) { - var editor = dialog.editor; - try { - if (browser.gecko) { - var y = editor.window.scrollY, - x = editor.window.scrollX; - editor.body.focus(); - editor.window.scrollTo(x, y); - } else { - editor.focus(); - } - - - } catch (ex) { - } - } - }); - return dialog; - }; - - var iframeUrlMap = { - 'anchor':'~/dialogs/anchor/anchor.html', - 'insertimage':'~/dialogs/image/image.html', - 'link':'~/dialogs/link/link.html', - 'spechars':'~/dialogs/spechars/spechars.html', - 'searchreplace':'~/dialogs/searchreplace/searchreplace.html', - 'map':'~/dialogs/map/map.html', - 'gmap':'~/dialogs/gmap/gmap.html', - 'insertvideo':'~/dialogs/video/video.html', - 'help':'~/dialogs/help/help.html', - 'preview':'~/dialogs/preview/preview.html', - 'emotion':'~/dialogs/emotion/emotion.html', - 'wordimage':'~/dialogs/wordimage/wordimage.html', - 'attachment':'~/dialogs/attachment/attachment.html', - 'insertframe':'~/dialogs/insertframe/insertframe.html', - 'edittip':'~/dialogs/table/edittip.html', - 'edittable':'~/dialogs/table/edittable.html', - 'edittd':'~/dialogs/table/edittd.html', - 'webapp':'~/dialogs/webapp/webapp.html', - 'snapscreen':'~/dialogs/snapscreen/snapscreen.html', - 'scrawl':'~/dialogs/scrawl/scrawl.html', - 'music':'~/dialogs/music/music.html', - 'template':'~/dialogs/template/template.html', - 'background':'~/dialogs/background/background.html', - 'charts': '~/dialogs/charts/charts.html' - }; - //为工具栏添加按钮,以下都是统一的按钮触发命令,所以写在一起 - var btnCmds = ['undo', 'redo', 'formatmatch', - 'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase', - 'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent', - 'blockquote', 'pasteplain', 'pagebreak', - 'selectall', 'print','horizontal', 'removeformat', 'time', 'date', 'unlink', - 'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow', - 'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable', 'drafts']; - - for (var i = 0, ci; ci = btnCmds[i++];) { - ci = ci.toLowerCase(); - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - onclick:function () { - editor.execCommand(cmd); - }, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - }(ci); - } - - //清除文档 - editorui.cleardoc = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-cleardoc', - title:editor.options.labelMap.cleardoc || editor.getLang("labelMap.cleardoc") || '', - theme:editor.options.theme, - onclick:function () { - if (confirm(editor.getLang("confirmClear"))) { - editor.execCommand('cleardoc'); - } - } - }); - editorui.buttons["cleardoc"] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('cleardoc') == -1); - }); - return ui; - }; - - //排版,图片排版,文字方向 - var typeset = { - 'justify':['left', 'right', 'center', 'justify'], - 'imagefloat':['none', 'left', 'center', 'right'], - 'directionality':['ltr', 'rtl'] - }; - - for (var p in typeset) { - - (function (cmd, val) { - for (var i = 0, ci; ci = val[i++];) { - (function (cmd2) { - editorui[cmd.replace('float', '') + cmd2] = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd.replace('float', '') + cmd2, - title:editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang("labelMap." + cmd.replace('float', '') + cmd2) || '', - theme:editor.options.theme, - onclick:function () { - editor.execCommand(cmd, cmd2); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady); - }); - return ui; - }; - })(ci) - } - })(p, typeset[p]) - } - - //字体颜色和背景颜色 - for (var i = 0, ci; ci = ['backcolor', 'forecolor'][i++];) { - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.ColorButton({ - className:'edui-for-' + cmd, - color:'default', - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - editor:editor, - onpickcolor:function (t, color) { - editor.execCommand(cmd, color); - }, - onpicknocolor:function () { - editor.execCommand(cmd, 'default'); - this.setColor('transparent'); - this.color = 'default'; - }, - onbuttonclick:function () { - editor.execCommand(cmd, this.color); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - }); - return ui; - }; - }(ci); - } - - - var dialogBtns = { - noOk:['searchreplace', 'help', 'spechars', 'webapp','preview'], - ok:['attachment', 'anchor', 'link', 'insertimage', 'map', 'gmap', 'insertframe', 'wordimage', - 'insertvideo', 'insertframe', 'edittip', 'edittable', 'edittd', 'scrawl', 'template', 'music', 'background', 'charts'] - }; - - for (var p in dialogBtns) { - (function (type, vals) { - for (var i = 0, ci; ci = vals[i++];) { - //todo opera下存在问题 - if (browser.opera && ci === "searchreplace") { - continue; - } - (function (cmd) { - editorui[cmd] = function (editor, iframeUrl, title) { - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]; - title = editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || ''; - - var dialog; - //没有iframeUrl不创建dialog - if (iframeUrl) { - dialog = new editorui.Dialog(utils.extend({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-' + cmd, - title:title, - holdScroll: cmd === 'insertimage', - fullscreen: /charts|preview/.test(cmd), - closeDialog:editor.getLang("closeDialog") - }, type == 'ok' ? { - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - } : {})); - - editor.ui._dialogs[cmd + "Dialog"] = dialog; - } - - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:title, - onclick:function () { - if (dialog) { - switch (cmd) { - case "wordimage": - var images = editor.execCommand("wordimage"); - if (images && images.length) { - dialog.render(); - dialog.open(); - } - break; - case "scrawl": - if (editor.queryCommandState("scrawl") != -1) { - dialog.render(); - dialog.open(); - } - - break; - default: - dialog.render(); - dialog.open(); - } - } - }, - theme:editor.options.theme, - disabled:(cmd == 'scrawl' && editor.queryCommandState("scrawl") == -1) || ( cmd == 'charts' ) - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - //只存在于右键菜单而无工具栏按钮的ui不需要检测状态 - var unNeedCheckState = {'edittable':1}; - if (cmd in unNeedCheckState)return; - - var state = editor.queryCommandState(cmd); - if (ui.getDom()) { - ui.setDisabled(state == -1); - ui.setChecked(state); - } - - }); - - return ui; - }; - })(ci.toLowerCase()) - } - })(p, dialogBtns[p]); - } - - editorui.snapscreen = function (editor, iframeUrl, title) { - title = editor.options.labelMap['snapscreen'] || editor.getLang("labelMap.snapscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-snapscreen', - title:title, - onclick:function () { - editor.execCommand("snapscreen"); - }, - theme:editor.options.theme - - }); - editorui.buttons['snapscreen'] = ui; - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})["snapscreen"] || iframeUrlMap["snapscreen"]; - if (iframeUrl) { - var dialog = new editorui.Dialog({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-snapscreen', - title:title, - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - - }); - dialog.render(); - editor.ui._dialogs["snapscreenDialog"] = dialog; - } - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('snapscreen') == -1); - }); - return ui; - }; - - editorui.insertcode = function (editor, list, title) { - list = editor.options['insertcode'] || []; - title = editor.options.labelMap['insertcode'] || editor.getLang("labelMap.insertcode") || ''; - // if (!list.length) return; - var items = []; - utils.each(list,function(key,val){ - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - }); - - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('insertcode', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-insertcode', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['insertcode'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('insertcode'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('insertcode'); - if(!value){ - ui.setValue(title); - return; - } - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - editorui.fontfamily = function (editor, list, title) { - - list = editor.options['fontfamily'] || []; - title = editor.options.labelMap['fontfamily'] || editor.getLang("labelMap.fontfamily") || ''; - if (!list.length) return; - for (var i = 0, ci, items = []; ci = list[i]; i++) { - var langLabel = editor.getLang('fontfamily')[ci.name] || ""; - (function (key, val) { - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - })(ci.label || langLabel, ci.val) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('FontFamily', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-fontfamily', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['fontfamily'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontFamily'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('FontFamily'); - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - - editorui.fontsize = function (editor, list, title) { - title = editor.options.labelMap['fontsize'] || editor.getLang("labelMap.fontsize") || ''; - list = list || editor.options['fontsize'] || []; - if (!list.length) return; - var items = []; - for (var i = 0; i < list.length; i++) { - var size = list[i] + 'px'; - items.push({ - label:size, - value:size, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - onselect:function (t, index) { - editor.execCommand('FontSize', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - className:'edui-for-fontsize' - }); - editorui.buttons['fontsize'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontSize'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - ui.setValue(editor.queryCommandValue('FontSize')); - } - } - - }); - return ui; - }; - - editorui.paragraph = function (editor, list, title) { - title = editor.options.labelMap['paragraph'] || editor.getLang("labelMap.paragraph") || ''; - list = editor.options['paragraph'] || []; - if (utils.isEmptyObject(list)) return; - var items = []; - for (var i in list) { - items.push({ - value:i, - label:list[i] || editor.getLang("paragraph")[i], - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-paragraph', - onselect:function (t, index) { - editor.execCommand('Paragraph', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['paragraph'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('Paragraph'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('Paragraph'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - - - //自定义标题 - editorui.customstyle = function (editor) { - var list = editor.options['customstyle'] || [], - title = editor.options.labelMap['customstyle'] || editor.getLang("labelMap.customstyle") || ''; - if (!list.length)return; - var langCs = editor.getLang('customstyle'); - for (var i = 0, items = [], t; t = list[i++];) { - (function (t) { - var ck = {}; - ck.label = t.label ? t.label : langCs[t.name]; - ck.style = t.style; - ck.className = t.className; - ck.tag = t.tag; - items.push({ - label:ck.label, - value:ck, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + '<' + ck.tag + ' ' + (ck.className ? ' class="' + ck.className + '"' : "") - + (ck.style ? ' style="' + ck.style + '"' : "") + '>' + ck.label + "<\/" + ck.tag + ">" - + '
    '; - } - }); - })(t); - } - - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-customstyle', - onselect:function (t, index) { - editor.execCommand('customstyle', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - indexByValue:function (value) { - for (var i = 0, ti; ti = this.items[i++];) { - if (ti.label == value) { - return i - 1 - } - } - return -1; - } - }); - editorui.buttons['customstyle'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('customstyle'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('customstyle'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - editorui.inserttable = function (editor, iframeUrl, title) { - title = editor.options.labelMap['inserttable'] || editor.getLang("labelMap.inserttable") || ''; - var ui = new editorui.TableButton({ - editor:editor, - title:title, - className:'edui-for-inserttable', - onpicktable:function (t, numCols, numRows) { - editor.execCommand('InsertTable', {numRows:numRows, numCols:numCols, border:1}); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['inserttable'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('inserttable') == -1); - }); - return ui; - }; - - editorui.lineheight = function (editor) { - var val = editor.options.lineheight || []; - if (!val.length)return; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - //todo:写死了 - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("lineheight", this.value); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-lineheight', - title:editor.options.labelMap['lineheight'] || editor.getLang("labelMap.lineheight") || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('LineHeight') || this.value; - editor.execCommand("LineHeight", value); - } - }); - editorui.buttons['lineheight'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('LineHeight'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('LineHeight'); - value && ui.setValue((value + '').replace(/cm/, '')); - ui.setChecked(state) - } - }); - return ui; - }; - - var rowspacings = ['top', 'bottom']; - for (var r = 0, ri; ri = rowspacings[r++];) { - (function (cmd) { - editorui['rowspacing' + cmd] = function (editor) { - var val = editor.options['rowspacing' + cmd] || []; - if (!val.length) return null; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("rowspacing", this.value, cmd); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-rowspacing' + cmd, - title:editor.options.labelMap['rowspacing' + cmd] || editor.getLang("labelMap.rowspacing" + cmd) || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('rowspacing', cmd) || this.value; - editor.execCommand("rowspacing", value, cmd); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('rowspacing', cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('rowspacing', cmd); - value && ui.setValue((value + '').replace(/%/, '')); - ui.setChecked(state) - } - }); - return ui; - } - })(ri) - } - //有序,无序列表 - var lists = ['insertorderedlist', 'insertunorderedlist']; - for (var l = 0, cl; cl = lists[l++];) { - (function (cmd) { - editorui[cmd] = function (editor) { - var vals = editor.options[cmd], - _onMenuClick = function () { - editor.execCommand(cmd, this.value); - }, items = []; - for (var i in vals) { - items.push({ - label:vals[i] || editor.getLang()[cmd][i] || "", - value:i, - theme:editor.options.theme, - onclick:_onMenuClick - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-' + cmd, - title:editor.getLang("labelMap." + cmd) || '', - 'items':items, - onbuttonclick:function () { - var value = editor.queryCommandValue(cmd) || this.value; - editor.execCommand(cmd, value); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue(cmd); - ui.setValue(value); - ui.setChecked(state) - } - }); - return ui; - }; - })(cl) - } - - editorui.fullscreen = function (editor, title) { - title = editor.options.labelMap['fullscreen'] || editor.getLang("labelMap.fullscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-fullscreen', - title:title, - theme:editor.options.theme, - onclick:function () { - if (editor.ui) { - editor.ui.setFullScreen(!editor.ui.isFullScreen()); - } - this.setChecked(editor.ui.isFullScreen()); - } - }); - editorui.buttons['fullscreen'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('fullscreen'); - ui.setDisabled(state == -1); - ui.setChecked(editor.ui.isFullScreen()); - }); - return ui; - }; - - // 表情 - editorui["emotion"] = function (editor, iframeUrl) { - var cmd = "emotion"; - var ui = new editorui.MultiMenuPop({ - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd + "") || '', - editor:editor, - className:'edui-for-' + cmd, - iframeUrl:editor.ui.mapUrl(iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]) - }); - editorui.buttons[cmd] = ui; - - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1) - }); - return ui; - }; - - editorui.autotypeset = function (editor) { - var ui = new editorui.AutoTypeSetButton({ - editor:editor, - title:editor.options.labelMap['autotypeset'] || editor.getLang("labelMap.autotypeset") || '', - className:'edui-for-autotypeset', - onbuttonclick:function () { - editor.execCommand('autotypeset') - } - }); - editorui.buttons['autotypeset'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('autotypeset') == -1); - }); - return ui; - }; - - /* 简单上传插件 */ - editorui["simpleupload"] = function (editor) { - var name = 'simpleupload', - ui = new editorui.Button({ - className:'edui-for-' + name, - title:editor.options.labelMap[name] || editor.getLang("labelMap." + name) || '', - onclick:function () {}, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[name] = ui; - editor.addListener('ready', function() { - var b = ui.getDom('body'), - iconSpan = b.children[0]; - editor.fireEvent('simpleuploadbtnready', iconSpan); - }); - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(name); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - -})(); - - -// adapter/editor.js -///import core -///commands 全屏 -///commandsName FullScreen -///commandsTitle 全屏 -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - domUtils = baidu.editor.dom.domUtils; - var nodeStack = []; - - function EditorUI(options) { - this.initOptions(options); - this.initEditorUI(); - } - - EditorUI.prototype = { - uiName:'editor', - initEditorUI:function () { - this.editor.ui = this; - this._dialogs = {}; - this.initUIBase(); - this._initToolbars(); - var editor = this.editor, - me = this; - - editor.addListener('ready', function () { - //提供getDialog方法 - editor.getDialog = function (name) { - return editor.ui._dialogs[name + "Dialog"]; - }; - domUtils.on(editor.window, 'scroll', function (evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - //提供编辑器实时宽高(全屏时宽高不变化) - editor.ui._actualFrameWidth = editor.options.initialFrameWidth; - - UE.browser.ie && UE.browser.version === 6 && editor.container.ownerDocument.execCommand("BackgroundImageCache", false, true); - - //display bottom-bar label based on config - if (editor.options.elementPathEnabled) { - editor.ui.getDom('elementpath').innerHTML = '
    ' + editor.getLang("elementPathTip") + ':
    '; - } - if (editor.options.wordCount) { - function countFn() { - setCount(editor,me); - domUtils.un(editor.document, "click", arguments.callee); - } - domUtils.on(editor.document, "click", countFn); - editor.ui.getDom('wordcount').innerHTML = editor.getLang("wordCountTip"); - } - editor.ui._scale(); - if (editor.options.scaleEnabled) { - if (editor.autoHeightEnabled) { - editor.disableAutoHeight(); - } - me.enableScale(); - } else { - me.disableScale(); - } - if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) { - editor.ui.getDom('elementpath').style.display = "none"; - editor.ui.getDom('wordcount').style.display = "none"; - editor.ui.getDom('scale').style.display = "none"; - } - - if (!editor.selection.isFocus())return; - editor.fireEvent('selectionchange', false, true); - - - }); - - editor.addListener('mousedown', function (t, evt) { - var el = evt.target || evt.srcElement; - baidu.editor.ui.Popup.postHide(evt, el); - baidu.editor.ui.ShortCutMenu.postHide(evt); - - }); - editor.addListener("delcells", function () { - if (UE.ui['edittip']) { - new UE.ui['edittip'](editor); - } - editor.getDialog('edittip').open(); - }); - - var pastePop, isPaste = false, timer; - editor.addListener("afterpaste", function () { - if(editor.queryCommandState('pasteplain')) - return; - if(baidu.editor.ui.PastePicker){ - pastePop = new baidu.editor.ui.Popup({ - content:new baidu.editor.ui.PastePicker({editor:editor}), - editor:editor, - className:'edui-wordpastepop' - }); - pastePop.render(); - } - isPaste = true; - }); - - editor.addListener("afterinserthtml", function () { - clearTimeout(timer); - timer = setTimeout(function () { - if (pastePop && (isPaste || editor.ui._isTransfer)) { - if(pastePop.isHidden()){ - var span = domUtils.createElement(editor.document, 'span', { - 'style':"line-height:0px;", - 'innerHTML':'\ufeff' - }), - range = editor.selection.getRange(); - range.insertNode(span); - var tmp= getDomNode(span, 'firstChild', 'previousSibling'); - tmp && pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp); - domUtils.remove(span); - }else{ - pastePop.show(); - } - delete editor.ui._isTransfer; - isPaste = false; - } - }, 200) - }); - editor.addListener('contextmenu', function (t, evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - editor.addListener('keydown', function (t, evt) { - if (pastePop) pastePop.dispose(evt); - var keyCode = evt.keyCode || evt.which; - if(evt.altKey&&keyCode==90){ - UE.ui.buttons['fullscreen'].onclick(); - } - }); - editor.addListener('wordcount', function (type) { - setCount(this,me); - }); - function setCount(editor,ui) { - editor.setOpt({ - wordCount:true, - maximumWords:10000, - wordCountMsg:editor.options.wordCountMsg || editor.getLang("wordCountMsg"), - wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg") - }); - var opt = editor.options, - max = opt.maximumWords, - msg = opt.wordCountMsg , - errMsg = opt.wordOverFlowMsg, - countDom = ui.getDom('wordcount'); - if (!opt.wordCount) { - return; - } - var count = editor.getContentLength(true); - if (count > max) { - countDom.innerHTML = errMsg; - editor.fireEvent("wordcountoverflow"); - } else { - countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count); - } - } - - editor.addListener('selectionchange', function () { - if (editor.options.elementPathEnabled) { - me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']() - } - if (editor.options.scaleEnabled) { - me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale'](); - - } - }); - var popup = new baidu.editor.ui.Popup({ - editor:editor, - content:'', - className:'edui-bubble', - _onEditButtonClick:function () { - this.hide(); - editor.ui._dialogs.linkDialog.open(); - }, - _onImgEditButtonClick:function (name) { - this.hide(); - editor.ui._dialogs[name] && editor.ui._dialogs[name].open(); - - }, - _onImgSetFloat:function (value) { - this.hide(); - editor.execCommand("imagefloat", value); - - }, - _setIframeAlign:function (value) { - var frame = popup.anchorEl; - var newFrame = frame.cloneNode(true); - switch (value) { - case -2: - newFrame.setAttribute("align", ""); - break; - case -1: - newFrame.setAttribute("align", "left"); - break; - case 1: - newFrame.setAttribute("align", "right"); - break; - } - frame.parentNode.insertBefore(newFrame, frame); - domUtils.remove(frame); - popup.anchorEl = newFrame; - popup.showAnchor(popup.anchorEl); - }, - _updateIframe:function () { - var frame = editor._iframe = popup.anchorEl; - if(domUtils.hasClass(frame, 'ueditor_baidumap')) { - editor.selection.getRange().selectNode(frame).select(); - editor.ui._dialogs.mapDialog.open(); - popup.hide(); - } else { - editor.ui._dialogs.insertframeDialog.open(); - popup.hide(); - } - }, - _onRemoveButtonClick:function (cmdName) { - editor.execCommand(cmdName); - this.hide(); - }, - queryAutoHide:function (el) { - if (el && el.ownerDocument == editor.document) { - if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) { - return el !== popup.anchorEl; - } - } - return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el); - } - }); - popup.render(); - if (editor.options.imagePopup) { - editor.addListener('mouseover', function (t, evt) { - evt = evt || window.event; - var el = evt.target || evt.srcElement; - if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) { - var html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("default") + '  ' + editor.getLang("justifyleft") + '  ' + editor.getLang("justifyright") + '  ' + - ' ' + editor.getLang("modify") + ''); - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = el; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - } - }); - editor.addListener('selectionchange', function (t, causeByUi) { - if (!causeByUi) return; - var html = '', str = "", - img = editor.selection.getRange().getClosedNode(), - dialogs = editor.ui._dialogs; - if (img && img.tagName == 'IMG') { - var dialogName = 'insertimageDialog'; - if (img.className.indexOf("edui-faked-video") != -1 || img.className.indexOf("edui-upload-video") != -1) { - dialogName = "insertvideoDialog" - } - if (img.className.indexOf("edui-faked-webapp") != -1) { - dialogName = "webappDialog" - } - if (img.src.indexOf("http://api.map.baidu.com") != -1) { - dialogName = "mapDialog" - } - if (img.className.indexOf("edui-faked-music") != -1) { - dialogName = "musicDialog" - } - if (img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1) { - dialogName = "gmapDialog" - } - if (img.getAttribute("anchorname")) { - dialogName = "anchorDialog"; - html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("modify") + '  ' + - '' + editor.getLang("delete") + ''); - } - if (img.getAttribute("word_img")) { - //todo 放到dialog去做查询 - editor.word_img = [img.getAttribute("word_img")]; - dialogName = "wordimageDialog" - } - if(domUtils.hasClass(img, 'loadingclass') || domUtils.hasClass(img, 'loaderrorclass')) { - dialogName = ""; - } - if (!dialogs[dialogName]) { - return; - } - str = '' + editor.getLang("property") + ': '+ - '' + editor.getLang("default") + '  ' + - '' + editor.getLang("justifyleft") + '  ' + - '' + editor.getLang("justifyright") + '  ' + - '' + editor.getLang("justifycenter") + '  '+ - '' + editor.getLang("modify") + ''; - - !html && (html = popup.formatHtml(str)) - - } - if (editor.ui._dialogs.linkDialog) { - var link = editor.queryCommandValue('link'); - var url; - if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) { - var txt = url; - if (url.length > 30) { - txt = url.substring(0, 20) + "..."; - } - if (html) { - html += '
    ' - } - html += popup.formatHtml( - '' + editor.getLang("anthorMsg") + ': ' + txt + '' + - ' ' + editor.getLang("modify") + '' + - ' ' + editor.getLang("clear") + ''); - popup.showAnchor(link); - } - } - - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = img || link; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - }); - } - - }, - _initToolbars:function () { - var editor = this.editor; - var toolbars = this.toolbars || []; - var toolbarUis = []; - for (var i = 0; i < toolbars.length; i++) { - var toolbar = toolbars[i]; - var toolbarUi = new baidu.editor.ui.Toolbar({theme:editor.options.theme}); - for (var j = 0; j < toolbar.length; j++) { - var toolbarItem = toolbar[j]; - var toolbarItemUi = null; - if (typeof toolbarItem == 'string') { - toolbarItem = toolbarItem.toLowerCase(); - if (toolbarItem == '|') { - toolbarItem = 'Separator'; - } - if(toolbarItem == '||'){ - toolbarItem = 'Breakline'; - } - if (baidu.editor.ui[toolbarItem]) { - toolbarItemUi = new baidu.editor.ui[toolbarItem](editor); - } - - //fullscreen这里单独处理一下,放到首行去 - if (toolbarItem == 'fullscreen') { - if (toolbarUis && toolbarUis[0]) { - toolbarUis[0].items.splice(0, 0, toolbarItemUi); - } else { - toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi); - } - - continue; - - - } - } else { - toolbarItemUi = toolbarItem; - } - if (toolbarItemUi && toolbarItemUi.id) { - - toolbarUi.add(toolbarItemUi); - } - } - toolbarUis[i] = toolbarUi; - } - - //接受外部定制的UI(修复因 utils.each 无法准确的循环出对象的全部元素而导致的自定义 UI 不符合预期的 BUG by HaoChuan9421) - - // utils.each(UE._customizeUI,function(obj,key){ - // var itemUI,index; - // if(obj.id && obj.id != editor.key){ - // return false; - // } - // itemUI = obj.execFn.call(editor,editor,key); - // if(itemUI){ - // index = obj.index; - // if(index === undefined){ - // index = toolbarUi.items.length; - // } - // toolbarUi.add(itemUI,index) - // } - // }); - - - for(var key in UE._customizeUI){ - var obj = UE._customizeUI[key] - var itemUI,index; - if(!obj.id || obj.id == editor.key){ - itemUI = obj.execFn.call(editor,editor,key); - if(itemUI){ - index = obj.index; - if(index === undefined){ - index = toolbarUi.items.length; - } - toolbarUi.add(itemUI,index) - } - } - } - - this.toolbars = toolbarUis; - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - (this.toolbars.length ? - '
    ' + - this.renderToolbarBoxHtml() + - '
    ' : '') + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - //modify wdcount by matao - '
    ' + - '' + - '' + - '' + - '
    ' + - '
    ' + - '
    '; - }, - showWordImageDialog:function () { - this._dialogs['wordimageDialog'].open(); - }, - renderToolbarBoxHtml:function () { - var buff = []; - for (var i = 0; i < this.toolbars.length; i++) { - buff.push(this.toolbars[i].renderHtml()); - } - return buff.join(''); - }, - setFullScreen:function (fullscreen) { - - var editor = this.editor, - container = editor.container.parentNode.parentNode; - if (this._fullscreen != fullscreen) { - this._fullscreen = fullscreen; - this.editor.fireEvent('beforefullscreenchange', fullscreen); - if (baidu.editor.browser.gecko) { - var bk = editor.selection.getRange().createBookmark(); - } - if (fullscreen) { - while (container.tagName != "BODY") { - var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position"); - nodeStack.push(position); - container.style.position = "static"; - container = container.parentNode; - } - this._bakHtmlOverflow = document.documentElement.style.overflow; - this._bakBodyOverflow = document.body.style.overflow; - this._bakAutoHeight = this.editor.autoHeightEnabled; - this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); - - this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth; - if (this._bakAutoHeight) { - //当全屏时不能执行自动长高 - editor.autoHeightEnabled = false; - this.editor.disableAutoHeight(); - } - - document.documentElement.style.overflow = 'hidden'; - //修复,滚动条不收起的问题 - - window.scrollTo(0,window.scrollY); - this._bakCssText = this.getDom().style.cssText; - this._bakCssText1 = this.getDom('iframeholder').style.cssText; - editor.iframe.parentNode.style.width = ''; - this._updateFullScreen(); - } else { - while (container.tagName != "BODY") { - container.style.position = nodeStack.shift(); - container = container.parentNode; - } - this.getDom().style.cssText = this._bakCssText; - this.getDom('iframeholder').style.cssText = this._bakCssText1; - if (this._bakAutoHeight) { - editor.autoHeightEnabled = true; - this.editor.enableAutoHeight(); - } - - document.documentElement.style.overflow = this._bakHtmlOverflow; - document.body.style.overflow = this._bakBodyOverflow; - editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px'; - window.scrollTo(0, this._bakScrollTop); - } - if (browser.gecko && editor.body.contentEditable === 'true') { - var input = document.createElement('input'); - document.body.appendChild(input); - editor.body.contentEditable = false; - setTimeout(function () { - input.focus(); - setTimeout(function () { - editor.body.contentEditable = true; - editor.fireEvent('fullscreenchanged', fullscreen); - editor.selection.getRange().moveToBookmark(bk).select(true); - baidu.editor.dom.domUtils.remove(input); - fullscreen && window.scroll(0, 0); - }, 0) - }, 0) - } - - if(editor.body.contentEditable === 'true'){ - this.editor.fireEvent('fullscreenchanged', fullscreen); - this.triggerLayout(); - } - - } - }, - _updateFullScreen:function () { - if (this._fullscreen) { - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset || 0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style.zIndex * 1 + 100); - uiUtils.setViewportOffset(this.getDom(), { left:0, top:this.editor.options.topOffset || 0 }); - this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom('bottombar').offsetHeight - (this.editor.options.topOffset || 0),true); - //不手动调一下,会导致全屏失效 - if(browser.gecko){ - try{ - window.onresize(); - }catch(e){ - - } - - } - } - }, - _updateElementPath:function () { - var bottom = this.getDom('elementpath'), list; - if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) { - - var buff = []; - for (var i = 0, ci; ci = list[i]; i++) { - buff[i] = this.formatHtml('' + ci + ''); - } - bottom.innerHTML = '
    ' + this.editor.getLang("elementPathTip") + ': ' + buff.join(' > ') + '
    '; - - } else { - bottom.style.display = 'none' - } - }, - disableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.innerHTML = ''; - bottom.style.display = 'none'; - this.elementPathEnabled = false; - - }, - enableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.style.display = ''; - this.elementPathEnabled = true; - this._updateElementPath(); - }, - _scale:function () { - var doc = document, - editor = this.editor, - editorHolder = editor.container, - editorDocument = editor.document, - toolbarBox = this.getDom("toolbarbox"), - bottombar = this.getDom("bottombar"), - scale = this.getDom("scale"), - scalelayer = this.getDom("scalelayer"); - - var isMouseMove = false, - position = null, - minEditorHeight = 0, - minEditorWidth = editor.options.minFrameWidth, - pageX = 0, - pageY = 0, - scaleWidth = 0, - scaleHeight = 0; - - function down() { - position = domUtils.getXY(editorHolder); - - if (!minEditorHeight) { - minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight; - } - - scalelayer.style.cssText = "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + editorHolder.offsetWidth + "px;height:" - + editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1); - - domUtils.on(doc, "mousemove", move); - domUtils.on(editorDocument, "mouseup", up); - domUtils.on(doc, "mouseup", up); - } - - var me = this; - //by xuheng 全屏时关掉缩放 - this.editor.addListener('fullscreenchanged', function (e, fullScreen) { - if (fullScreen) { - me.disableScale(); - - } else { - if (me.editor.options.scaleEnabled) { - me.enableScale(); - var tmpNode = me.editor.document.createElement('span'); - me.editor.body.appendChild(tmpNode); - me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight - 20) + 'px'; - domUtils.remove(tmpNode) - } - } - }); - function move(event) { - clearSelection(); - var e = event || window.event; - pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX); - pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY); - scaleWidth = pageX - position.x; - scaleHeight = pageY - position.y; - - if (scaleWidth >= minEditorWidth) { - isMouseMove = true; - scalelayer.style.width = scaleWidth + 'px'; - } - if (scaleHeight >= minEditorHeight) { - isMouseMove = true; - scalelayer.style.height = scaleHeight + "px"; - } - } - - function up() { - if (isMouseMove) { - isMouseMove = false; - editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2; - editorHolder.style.width = editor.ui._actualFrameWidth + 'px'; - - editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2,true); - } - if (scalelayer) { - scalelayer.style.display = "none"; - } - clearSelection(); - domUtils.un(doc, "mousemove", move); - domUtils.un(editorDocument, "mouseup", up); - domUtils.un(doc, "mouseup", up); - } - - function clearSelection() { - if (browser.ie) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - } - - this.enableScale = function () { - //trace:2868 - if (editor.queryCommandState("source") == 1) return; - scale.style.display = ""; - this.scaleEnabled = true; - domUtils.on(scale, "mousedown", down); - }; - this.disableScale = function () { - scale.style.display = "none"; - this.scaleEnabled = false; - domUtils.un(scale, "mousedown", down); - }; - }, - isFullScreen:function () { - return this._fullscreen; - }, - postRender:function () { - UIBase.prototype.postRender.call(this); - for (var i = 0; i < this.toolbars.length; i++) { - this.toolbars[i].postRender(); - } - var me = this; - var timerId, - domUtils = baidu.editor.dom.domUtils, - updateFullScreenTime = function () { - clearTimeout(timerId); - timerId = setTimeout(function () { - me._updateFullScreen(); - }); - }; - domUtils.on(window, 'resize', updateFullScreenTime); - - me.addListener('destroy', function () { - domUtils.un(window, 'resize', updateFullScreenTime); - clearTimeout(timerId); - }) - }, - showToolbarMsg:function (msg, flag) { - this.getDom('toolbarmsg_label').innerHTML = msg; - this.getDom('toolbarmsg').style.display = ''; - // - if (!flag) { - var w = this.getDom('upload_dialog'); - w.style.display = 'none'; - } - }, - hideToolbarMsg:function () { - this.getDom('toolbarmsg').style.display = 'none'; - }, - mapUrl:function (url) { - return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : '' - }, - triggerLayout:function () { - var dom = this.getDom(); - if (dom.style.zoom == '1') { - dom.style.zoom = '100%'; - } else { - dom.style.zoom = '1'; - } - } - }; - utils.inherits(EditorUI, baidu.editor.ui.UIBase); - - - var instances = {}; - - - UE.ui.Editor = function (options) { - var editor = new UE.Editor(options); - editor.options.editor = editor; - utils.loadFile(document, { - href:editor.options.themePath + editor.options.theme + "/css/ueditor.css", - tag:"link", - type:"text/css", - rel:"stylesheet" - }); - - var oldRender = editor.render; - editor.render = function (holder) { - if (holder.constructor === String) { - editor.key = holder; - instances[holder] = editor; - } - utils.domReady(function () { - editor.langIsReady ? renderUI() : editor.addListener("langReady", renderUI); - function renderUI() { - editor.setOpt({ - labelMap:editor.options.labelMap || editor.getLang('labelMap') - }); - new EditorUI(editor.options); - if (holder) { - if (holder.constructor === String) { - holder = document.getElementById(holder); - } - holder && holder.getAttribute('name') && ( editor.options.textarea = holder.getAttribute('name')); - if (holder && /script|textarea/ig.test(holder.tagName)) { - var newDiv = document.createElement('div'); - holder.parentNode.insertBefore(newDiv, holder); - var cont = holder.value || holder.innerHTML; - editor.options.initialContent = /^[\t\r\n ]*$/.test(cont) ? editor.options.initialContent : - cont.replace(/>[\n\r\t]+([ ]{4})+/g, '>') - .replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<'); - holder.className && (newDiv.className = holder.className); - holder.style.cssText && (newDiv.style.cssText = holder.style.cssText); - if (/textarea/i.test(holder.tagName)) { - editor.textarea = holder; - editor.textarea.style.display = 'none'; - - - } else { - holder.parentNode.removeChild(holder); - - - } - if(holder.id){ - newDiv.id = holder.id; - domUtils.removeAttributes(holder,'id'); - } - holder = newDiv; - holder.innerHTML = ''; - } - - } - domUtils.addClass(holder, "edui-" + editor.options.theme); - editor.ui.render(holder); - var opt = editor.options; - //给实例添加一个编辑器的容器引用 - editor.container = editor.ui.getDom(); - var parents = domUtils.findParents(holder,true); - var displays = []; - for(var i = 0 ,ci;ci=parents[i];i++){ - displays[i] = ci.style.display; - ci.style.display = 'block' - } - if (opt.initialFrameWidth) { - opt.minFrameWidth = opt.initialFrameWidth; - } else { - opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth; - var styleWidth = holder.style.width; - if(/%$/.test(styleWidth)) { - opt.initialFrameWidth = styleWidth; - } - } - if (opt.initialFrameHeight) { - opt.minFrameHeight = opt.initialFrameHeight; - } else { - opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight; - } - for(var i = 0 ,ci;ci=parents[i];i++){ - ci.style.display = displays[i] - } - //编辑器最外容器设置了高度,会导致,编辑器不占位 - //todo 先去掉,没有找到原因 - if(holder.style.height){ - holder.style.height = '' - } - editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' : 'px'); - editor.container.style.zIndex = opt.zIndex; - oldRender.call(editor, editor.ui.getDom('iframeholder')); - editor.fireEvent("afteruiready"); - } - }) - }; - return editor; - }; - - - /** - * @file - * @name UE - * @short UE - * @desc UEditor的顶部命名空间 - */ - /** - * @name getEditor - * @since 1.2.4+ - * @grammar UE.getEditor(id,[opt]) => Editor实例 - * @desc 提供一个全局的方法得到编辑器实例 - * - * * ''id'' 放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回 - * * ''opt'' 编辑器的可选参数 - * @example - * UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例 - * this.setContent('hello') - * }}); - * UE.getEditor('containerId'); //返回刚创建的实例 - * - */ - UE.getEditor = function (id, opt) { - var editor = instances[id]; - if (!editor) { - editor = instances[id] = new UE.ui.Editor(opt); - editor.render(id); - } - return editor; - }; - - - UE.delEditor = function (id) { - var editor; - if (editor = instances[id]) { - editor.key && editor.destroy(); - delete instances[id] - } - }; - - UE.registerUI = function(uiName,fn,index,editorId){ - utils.each(uiName.split(/\s+/), function (name) { - UE._customizeUI[name] = { - id : editorId, - execFn:fn, - index:index - }; - }) - - } - -})(); - -// adapter/message.js -UE.registerUI('message', function(editor) { - - var editorui = baidu.editor.ui; - var Message = editorui.Message; - var holder; - var _messageItems = []; - var me = editor; - - me.addListener('ready', function(){ - holder = document.getElementById(me.ui.id + '_message_holder'); - updateHolderPos(); - // HaoChuan9421 - // setTimeout(function(){ - // updateHolderPos(); - // }, 500); - }); - - me.addListener('showmessage', function(type, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = new Message({ - 'timeout': opt.timeout, - 'type': opt.type, - 'content': opt.content, - 'keepshow': opt.keepshow, - 'editor': me - }), - mid = opt.id || ('msg_' + (+new Date()).toString(36)); - message.render(holder); - _messageItems[mid] = message; - message.reset(opt); - updateHolderPos(); - return mid; - }); - - me.addListener('updatemessage',function(type, id, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = _messageItems[id]; - message.render(holder); - message && message.reset(opt); - }); - - me.addListener('hidemessage',function(type, id){ - var message = _messageItems[id]; - message && message.hide(); - }); - - function updateHolderPos(){ - var toolbarbox = me.ui.getDom('toolbarbox'); - if (toolbarbox) { - holder.style.top = toolbarbox.offsetHeight + 3 + 'px'; - } - holder.style.zIndex = Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1; - } - -}); - - -// adapter/autosave.js -UE.registerUI('autosave', function(editor) { - var timer = null,uid = null; - editor.on('afterautosave',function(){ - clearTimeout(timer); - - timer = setTimeout(function(){ - if(uid){ - editor.trigger('hidemessage',uid); - } - uid = editor.trigger('showmessage',{ - content : editor.getLang('autosave.success'), - timeout : 2000 - }); - - },2000) - }) - -}); - - - -})(); diff --git a/yshop-drink-vue/public/UEditor/ueditor.all.min.js b/yshop-drink-vue/public/UEditor/ueditor.all.min.js deleted file mode 100644 index e60dcb0..0000000 --- a/yshop-drink-vue/public/UEditor/ueditor.all.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -!function(){function getListener(a,b,c){var d;return b=b.toLowerCase(),(d=a.__allListeners||c&&(a.__allListeners={}))&&(d[b]||c&&(d[b]=[]))}function getDomNode(a,b,c,d,e,f){var g,h=d&&a[b];for(!h&&(h=a[c]);!h&&(g=(g||a).parentNode);){if("BODY"==g.tagName||f&&!f(g))return null;h=g[c]}return h&&e&&!e(h)?getDomNode(h,b,c,!1,e):h}UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu,window.UE=baidu.editor=window.UE||{},UE.plugins={},UE.commands={},UE.instants={},UE.I18N={},UE._customizeUI={},UE.version="1.4.3";var dom=UE.dom={},browser=UE.browser=function(){var a=navigator.userAgent.toLowerCase(),b=window.opera,c={ie:/(msie\s|trident.*rv:)([\w.]+)/.test(a),opera:!!b&&b.version,webkit:a.indexOf(" applewebkit/")>-1,mac:a.indexOf("macintosh")>-1,quirks:"BackCompat"==document.compatMode};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.opera&&!c.ie;var d=0;if(c.ie){var e=a.match(/(?:msie\s([\w.]+))/),f=a.match(/(?:trident.*rv:([\w.]+))/);d=e&&f&&e[1]&&f[1]?Math.max(1*e[1],1*f[1]):e&&e[1]?1*e[1]:f&&f[1]?1*f[1]:0,c.ie11Compat=11==document.documentMode,c.ie9Compat=9==document.documentMode,c.ie8=!!document.documentMode,c.ie8Compat=8==document.documentMode,c.ie7Compat=7==d&&!document.documentMode||7==document.documentMode,c.ie6Compat=d<7||c.quirks,c.ie9above=d>8,c.ie9below=d<9,c.ie11above=d>10,c.ie11below=d<11}if(c.gecko){var g=a.match(/rv:([\d\.]+)/);g&&(g=g[1].split("."),d=1e4*g[0]+100*(g[1]||0)+1*(g[2]||0))}return/chrome\/(\d+\.\d)/i.test(a)&&(c.chrome=+RegExp.$1),/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a)&&!/chrome/i.test(a)&&(c.safari=+(RegExp.$1||RegExp.$2)),c.opera&&(d=parseFloat(b.version())),c.webkit&&(d=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),c.version=d,c.isCompatible=!c.mobile&&(c.ie&&d>=6||c.gecko&&d>=10801||c.opera&&d>=9.5||c.air&&d>=1||c.webkit&&d>=522||!1),c}(),ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera,utils=UE.utils={each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d=c&&a===b)return d=e,!1}),d},removeItem:function(a,b){for(var c=0,d=a.length;c'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,function(a,b){return b?a:{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},unhtmlForUrl:function(a,b){return a?a.replace(b||/[<">']/g,function(a){return{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},html:function(a){return a?a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g,function(a){return{"<":"<","&":"&",""":'"',">":">","'":"'"," ":" "}[a]}):""},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b={"float":void 0!=a.cssFloat?"cssFloat":void 0!=a.styleFloat?"styleFloat":"float"};return function(a){return b[a]||(b[a]=a.toLowerCase().replace(/-./g,function(a){return a.charAt(1).toUpperCase()}))}}(),loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url settings of file ueditor.config.js ")},c.getElementsByTagName("head")[0].appendChild(i)}}}(),isEmptyObject:function(a){if(null==a)return!0;if(this.isArray(a)||this.isString(a))return 0===a.length;for(var b in a)if(a.hasOwnProperty(b))return!1;return!0},fixColor:function(a,b){if(/color/i.test(a)&&/rgba?/.test(b)){var c=b.split(",");if(c.length>3)return"";b="#";for(var d,e=0;d=c[e++];)d=parseInt(d.replace(/[^\d]/gi,""),10).toString(16),b+=1==d.length?"0"+d:d;b=b.toUpperCase()}return b},optCss:function(a){function b(a,b){if(!a)return"";var c=a.top,d=a.bottom,e=a.left,f=a.right,g="";if(c&&e&&d&&f)g+=";"+b+":"+(c==d&&d==e&&e==f?c:c==d&&e==f?c+" "+e:e==f?c+" "+e+" "+d:c+" "+f+" "+d+" "+e)+";";else for(var h in a)g+=";"+b+"-"+h+":"+a[h]+";";return g}var c,d;return a=a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(a,b,e,f){if(1==f.split(" ").length)switch(b){case"padding":return!c&&(c={}),c[e]=f,"";case"margin":return!d&&(d={}),d[e]=f,"";case"border":return"initial"==f?"":a}return a}),a+=b(c,"padding")+b(d,"margin"),a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";"})},clone:function(a,b){var c;b=b||{};for(var d in a)a.hasOwnProperty(d)&&(c=a[d],"object"==typeof c?(b[d]=utils.isArray(c)?[]:{},utils.clone(a[d],b[d])):b[d]=c);return b},transUnitToPx:function(a){if(!/(pt|cm)/.test(a))return a;var b;switch(a.replace(/([\d.]+)(\w+)/,function(c,d,e){a=d,b=e}),b){case"cm":a=25*parseFloat(a);break;case"pt":a=Math.round(96*parseFloat(a)/72)}return a+(a?"px":"")},domReady:function(){function a(a){a.isReady=!0;for(var c;c=b.pop();c());}var b=[];return function(c,d){d=d||window;var e=d.document;c&&b.push(c),"complete"===e.readyState?a(e):(e.isReady&&a(e),browser.ie&&11!=browser.version?(!function(){if(!e.isReady){try{e.documentElement.doScroll("left")}catch(b){return void setTimeout(arguments.callee,0)}a(e)}}(),d.attachEvent("onload",function(){a(e)})):(e.addEventListener("DOMContentLoaded",function(){e.removeEventListener("DOMContentLoaded",arguments.callee,!1),a(e)},!1),d.addEventListener("load",function(){a(e)},!1)))}}(),cssRule:browser.ie&&11!=browser.version?function(a,b,c){var d,e;if(void 0===b||b&&b.nodeType&&9==b.nodeType){if(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.indexList||(c.indexList={}),e=d[a],void 0!==e)return c.styleSheets[e].cssText}else{if(c=c||document,d=c.indexList||(c.indexList={}),e=d[a],""===b)return void 0!==e&&(c.styleSheets[e].cssText="",delete d[a],!0);void 0!==e?sheetStyle=c.styleSheets[e]:(sheetStyle=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e),sheetStyle.cssText=b}}:function(a,b,c){var d;return void 0===b||b&&b.nodeType&&9==b.nodeType?(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.getElementById(a),d?d.innerHTML:void 0):(c=c||document,d=c.getElementById(a),""===b?!!d&&(d.parentNode.removeChild(d),!0):void(d?d.innerHTML=b:(d=c.createElement("style"),d.id=a,d.innerHTML=b,c.getElementsByTagName("head")[0].appendChild(d))))},sort:function(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c0){var g=a[c];a[c]=a[e],a[e]=g}return a},serializeParam:function(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c)if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d1||b!==a.parentNode){a.style.cssText=b.style.cssText+";"+a.style.cssText,b=b.parentNode;continue}b.style.cssText+=";"+a.style.cssText,"A"==b.tagName&&(b.style.textDecoration="underline")}if("A"!=b.tagName){b===a.parentNode&&domUtils.remove(a,!0);break}}b=b.parentNode}},mergeSibling:function(a,b,c){function d(a,b,c){var d;if((d=c[a])&&!domUtils.isBookmarkNode(d)&&1==d.nodeType&&domUtils.isSameElement(c,d)){for(;d.firstChild;)"firstChild"==b?c.insertBefore(d.lastChild,c.firstChild):c.appendChild(d.firstChild);domUtils.remove(d)}}!b&&d("previousSibling","firstChild",a),!c&&d("nextSibling","lastChild",a)},unSelectable:ie&&browser.ie9below||browser.opera?function(a){a.onselectstart=function(){return!1},a.onclick=a.onkeyup=a.onkeydown=function(){return!1},a.unselectable="on",a.setAttribute("unselectable","on");for(var b,c=0;b=a.all[c++];)switch(b.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:b.unselectable="on",a.setAttribute("unselectable","on")}}:function(a){a.style.MozUserSelect=a.style.webkitUserSelect=a.style.msUserSelect=a.style.KhtmlUserSelect="none"},removeAttributes:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0;c=b[d++];){switch(c=attrFix[c]||c){case"className":a[c]="";break;case"style":a.style.cssText="";var e=a.getAttributeNode("style");!browser.ie&&e&&a.removeAttributeNode(e)}a.removeAttribute(c)}},createElement:function(a,b,c){return domUtils.setAttributes(a.createElement(b),c)},setAttributes:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];switch(c){case"class":a.className=d;break;case"style":a.style.cssText=a.style.cssText+";"+d;break;case"innerHTML":a[c]=d;break;case"value":a.value=d;break;default:a.setAttribute(attrFix[c]||c,d)}}return a},getComputedStyle:function(a,b){var c="width height top left";if(c.indexOf(b)>-1)return a["offset"+b.replace(/^\w/,function(a){return a.toUpperCase()})]+"px";if(3==a.nodeType&&(a=a.parentNode),browser.ie&&browser.version<9&&"font-size"==b&&!a.style.fontSize&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]){var d=a.ownerDocument.createElement("span");d.style.cssText="padding:0;border:0;font-family:simsun;",d.innerHTML=".",a.appendChild(d);var e=d.offsetHeight;return a.removeChild(d),d=null,e+"px"}try{var f=domUtils.getStyle(a,b)||(window.getComputedStyle?domUtils.getWindow(a).getComputedStyle(a,"").getPropertyValue(b):(a.currentStyle||a.style)[utils.cssStyleToDomStyle(b)])}catch(g){return""}return utils.transUnitToPx(utils.fixColor(b,f))},removeClasses:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=utils.trim(e).replace(/[ ]{2,}/g," "),e?a.className=e:domUtils.removeAttributes(a,["class"])},addClass:function(a,b){if(a){b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)new RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=utils.trim(e)}},hasClass:function(a,b){if(utils.isRegExp(b))return b.test(a.className);b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},removeStyle:function(a,b){browser.ie?("color"==b&&(b="(^|;)"+b),a.style.cssText=a.style.cssText.replace(new RegExp(b+"[^:]*:[^;]+;?","ig"),"")):a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(utils.cssStyleToDomStyle(b)),a.style.cssText||domUtils.removeAttributes(a,["style"])},getStyle:function(a,b){var c=a.style[utils.cssStyleToDomStyle(b)];return utils.fixColor(b,c)},setStyle:function(a,b,c){a.style[utils.cssStyleToDomStyle(b)]=c,utils.trim(a.style.cssText)||this.removeAttributes(a,"style")},setStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&domUtils.setStyle(a,c,b[c])},removeDirtyAttr:function(a){for(var b,c=0,d=a.getElementsByTagName("*");b=d[c++];)b.removeAttribute("_moz_dirty");a.removeAttribute("_moz_dirty")},getChildCount:function(a,b){var c=0,d=a.firstChild;for(b=b||function(){return 1};d;)b(d)&&c++,d=d.nextSibling;return c},isEmptyNode:function(a){return!a.firstChild||0==domUtils.getChildCount(a,function(a){return!domUtils.isBr(a)&&!domUtils.isBookmarkNode(a)&&!domUtils.isWhitespace(a)})},clearSelectedArr:function(a){for(var b;b=a.pop();)domUtils.removeAttributes(b,["class"])},scrollToView:function(a,b,c){var d=function(){var a=b.document,c="CSS1Compat"==a.compatMode;return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},e=function(a){if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};var b=a.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},f=d().height,g=f*-1+c;g+=a.offsetHeight||0;var h=domUtils.getXY(a);g+=h.y;var i=e(b).y;(g>i||g0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}},setViewportOffset:function(a,b){var c=0|parseInt(a.style.left),d=0|parseInt(a.style.top),e=a.getBoundingClientRect(),f=b.left-e.left,g=b.top-e.top;f&&(a.style.left=c+f+"px"),g&&(a.style.top=d+g+"px")},fillNode:function(a,b){var c=browser.ie?a.createTextNode(domUtils.fillChar):a.createElement("br");b.innerHTML="",b.appendChild(c)},moveChild:function(a,b,c){for(;a.firstChild;)c&&b.firstChild?b.insertBefore(a.lastChild,b.firstChild):b.appendChild(a.firstChild)},hasNoAttributes:function(a){return browser.ie?/^<\w+\s*?>/.test(a.outerHTML):0==a.attributes.length},isCustomeNode:function(a){return 1==a.nodeType&&a.getAttribute("_ue_custom_node_")},isTagNode:function(a,b){return 1==a.nodeType&&new RegExp("\\b"+a.tagName+"\\b","i").test(b)},filterNodeList:function(a,b,c){var d=[];if(!utils.isFunction(b)){var e=b;b=function(a){return utils.indexOf(utils.isArray(e)?e:e.split(" "),a.tagName.toLowerCase())!=-1}}return utils.each(a,function(a){b(a)&&d.push(a)}),0==d.length?null:1!=d.length&&c?d:d[0]},isInNodeEndBoundary:function(a,b){var c=a.startContainer;if(3==c.nodeType&&a.startOffset!=c.nodeValue.length)return 0;if(1==c.nodeType&&a.startOffset!=c.childNodes.length)return 0;for(;c!==b;){if(c.nextSibling)return 0;c=c.parentNode}return 1},isBoundaryNode:function(a,b){for(var c;!domUtils.isBody(a);)if(c=a,a=a.parentNode,c!==a[b])return!1;return!0},fillHtml:browser.ie11below?" ":"
    "},fillCharReg=new RegExp(domUtils.fillChar,"g");!function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer===a.endContainer&&a.startOffset==a.endOffset}function b(a){return!a.collapsed&&1==a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.endOffset-a.startOffset==1}function c(b,c,d,e){return 1==c.nodeType&&(dtd.$empty[c.tagName]||dtd.$nonChild[c.tagName])&&(d=domUtils.getNodeIndex(c)+(b?0:1),c=c.parentNode),b?(e.startContainer=c,e.startOffset=d,e.endContainer||e.collapse(!0)):(e.endContainer=c,e.endOffset=d,e.startContainer||e.collapse(!1)),a(e),e}function d(a,b){var c,d,e=a.startContainer,f=a.endContainer,g=a.startOffset,h=a.endOffset,i=a.document,j=i.createDocumentFragment();if(1==e.nodeType&&(e=e.childNodes[g]||(c=e.appendChild(i.createTextNode("")))),1==f.nodeType&&(f=f.childNodes[h]||(d=f.appendChild(i.createTextNode("")))),e===f&&3==e.nodeType)return j.appendChild(i.createTextNode(e.substringData(g,h-g))),b&&(e.deleteData(g,h-g),a.collapse(!0)),j;for(var k,l,m=j,n=domUtils.findParents(e,!0),o=domUtils.findParents(f,!0),p=0;n[p]==o[p];)p++;for(var q,r=p;q=n[r];r++){for(k=q.nextSibling,q==e?c||(3==a.startContainer.nodeType?(m.appendChild(i.createTextNode(e.nodeValue.slice(g))),b&&e.deleteData(g,e.nodeValue.length-g)):m.appendChild(b?e:e.cloneNode(!0))):(l=q.cloneNode(!1),m.appendChild(l));k&&k!==f&&k!==o[r];)q=k.nextSibling,m.appendChild(b?k:k.cloneNode(!0)),k=q;m=l}m=j,n[p]||(m.appendChild(n[p-1].cloneNode(!1)),m=m.firstChild);for(var s,r=p;s=o[r];r++){if(k=s.previousSibling,s==f?d||3!=a.endContainer.nodeType||(m.appendChild(i.createTextNode(f.substringData(0,h))),b&&f.deleteData(0,h)):(l=s.cloneNode(!1),m.appendChild(l)),r!=p||!n[p])for(;k&&k!==e;)s=k.previousSibling,m.insertBefore(b?k:k.cloneNode(!0),m.firstChild),k=s;m=l}return b&&a.setStartBefore(o[p]?n[p]?o[p]:n[p-1]:o[p-1]).collapse(!0),c&&domUtils.remove(c),d&&domUtils.remove(d),j}function e(a,b){try{if(g&&domUtils.inDoc(g,a))if(g.nodeValue.replace(fillCharReg,"").length)g.nodeValue=g.nodeValue.replace(fillCharReg,"");else{var c=g.parentNode;for(domUtils.remove(g);c&&domUtils.isEmptyInlineElement(c)&&(browser.safari?!(domUtils.getPosition(c,b)&domUtils.POSITION_CONTAINS):!c.contains(b));)g=c.parentNode,domUtils.remove(c),c=g; -}}catch(d){}}function f(a,b){var c;for(a=a[b];a&&domUtils.isFillChar(a);)c=a[b],domUtils.remove(a),a=c}var g,h=0,i=domUtils.fillChar,j=dom.Range=function(a){var b=this;b.startContainer=b.startOffset=b.endContainer=b.endOffset=null,b.document=a,b.collapsed=!0};j.prototype={cloneContents:function(){return this.collapsed?null:d(this,0)},deleteContents:function(){var a;return this.collapsed||d(this,1),browser.webkit&&(a=this.startContainer,3!=a.nodeType||a.nodeValue.length||(this.setStartBefore(a).collapse(!0),domUtils.remove(a))),this},extractContents:function(){return this.collapsed?null:d(this,2)},setStart:function(a,b){return c(!0,a,b,this)},setEnd:function(a,b){return c(!1,a,b,this)},setStartAfter:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a)+1)},setStartBefore:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a))},setEndAfter:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a)+1)},setEndBefore:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a))},setStartAtFirst:function(a){return this.setStart(a,0)},setStartAtLast:function(a){return this.setStart(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},setEndAtFirst:function(a){return this.setEnd(a,0)},setEndAtLast:function(a){return this.setEnd(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){return this.setStart(a,0).setEndAtLast(a)},cloneRange:function(){var a=this;return new j(a.document).setStart(a.startContainer,a.startOffset).setEnd(a.endContainer,a.endOffset)},collapse:function(a){var b=this;return a?(b.endContainer=b.startContainer,b.endOffset=b.startOffset):(b.startContainer=b.endContainer,b.startOffset=b.endOffset),b.collapsed=!0,b},shrinkBoundary:function(a){function b(a){return 1==a.nodeType&&!domUtils.isBookmarkNode(a)&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]}for(var c,d=this,e=d.collapsed;1==d.startContainer.nodeType&&(c=d.startContainer.childNodes[d.startOffset])&&b(c);)d.setStart(c,0);if(e)return d.collapse(!0);if(!a)for(;1==d.endContainer.nodeType&&d.endOffset>0&&(c=d.endContainer.childNodes[d.endOffset-1])&&b(c);)d.setEnd(c,c.childNodes.length);return d},getCommonAncestor:function(a,c){var d=this,e=d.startContainer,f=d.endContainer;return e===f?a&&b(this)&&(e=e.childNodes[d.startOffset],1==e.nodeType)?e:c&&3==e.nodeType?e.parentNode:e:domUtils.getCommonAncestor(e,f)},trimBoundary:function(a){this.txtToElmBoundary();var b=this.startContainer,c=this.startOffset,d=this.collapsed,e=this.endContainer;if(3==b.nodeType){if(0==c)this.setStartBefore(b);else if(c>=b.nodeValue.length)this.setStartAfter(b);else{var f=domUtils.split(b,c);b===e?this.setEnd(f,this.endOffset-c):b.parentNode===e&&(this.endOffset+=1),this.setStartBefore(f)}if(d)return this.collapse(!0)}return a||(c=this.endOffset,e=this.endContainer,3==e.nodeType&&(0==c?this.setEndBefore(e):(c=c.nodeValue.length&&a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"After"](c):a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"Before"](c))}return!a&&this.collapsed||(b(this,"start"),b(this,"end")),this},insertNode:function(a){var b=a,c=1;11==a.nodeType&&(b=a.firstChild,c=a.childNodes.length),this.trimBoundary(!0);var d=this.startContainer,e=this.startOffset,f=d.childNodes[e];return f?d.insertBefore(a,f):d.appendChild(a),b.parentNode===this.endContainer&&(this.endOffset=this.endOffset+c),this.setStartBefore(b)},setCursor:function(a,b){return this.collapse(!a).select(b)},createBookmark:function(a,b){var c,d=this.document.createElement("span");return d.style.cssText="display:none;line-height:0px;",d.appendChild(this.document.createTextNode("‍")),d.id="_baidu_bookmark_start_"+(b?"":h++),this.collapsed||(c=d.cloneNode(!0),c.id="_baidu_bookmark_end_"+(b?"":h++)),this.insertNode(d),c&&this.collapse().insertNode(c).setEndBefore(c),this.setStartAfter(d),{start:a?d.id:d,end:c?a?c.id:c:null,id:a}},moveToBookmark:function(a){var b=a.id?this.document.getElementById(a.start):a.start,c=a.end&&a.id?this.document.getElementById(a.end):a.end;return this.setStartBefore(b),domUtils.remove(b),c?(this.setEndBefore(c),domUtils.remove(c)):this.collapse(!0),this},enlarge:function(a,b){var c,d,e=domUtils.isBody,f=this.document.createTextNode("");if(a){for(d=this.startContainer,1==d.nodeType?d.childNodes[this.startOffset]?c=d=d.childNodes[this.startOffset]:(d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.previousSibling)&&!domUtils.isBlockElm(c);)d=c;this.setStartBefore(d);break}c=d,d=d.parentNode}for(d=this.endContainer,1==d.nodeType?((c=d.childNodes[this.endOffset])?d.insertBefore(f,c):d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.nextSibling)&&!domUtils.isBlockElm(c);)d=c;this.setEndAfter(d);break}c=d,d=d.parentNode}f.parentNode===this.endContainer&&this.endOffset--,domUtils.remove(f)}if(!this.collapsed){for(;!(0!=this.startOffset||b&&b(this.startContainer)||e(this.startContainer));)this.setStartBefore(this.startContainer);for(;!(this.endOffset!=(1==this.endContainer.nodeType?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)||b&&b(this.endContainer)||e(this.endContainer));)this.setEndAfter(this.endContainer)}return this},enlargeToBlockElm:function(a){for(;!domUtils.isBlockElm(this.startContainer);)this.setStartBefore(this.startContainer);if(!a)for(;!domUtils.isBlockElm(this.endContainer);)this.setEndAfter(this.endContainer);return this},adjustmentBoundary:function(){if(!this.collapsed){for(;!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length&&this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length;)this.setStartAfter(this.startContainer);for(;!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[3==this.endContainer.nodeType?"nodeValue":"childNodes"].length;)this.setEndBefore(this.endContainer)}return this},applyInlineStyle:function(a,b,c){if(this.collapsed)return this;this.trimBoundary().enlarge(!1,function(a){return 1==a.nodeType&&domUtils.isBlockElm(a)}).adjustmentBoundary();for(var d,e,f=this.createBookmark(),g=f.end,h=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},i=domUtils.getNextDomNode(f.start,!1,h),j=this.cloneRange();i&&domUtils.getPosition(i,g)&domUtils.POSITION_PRECEDING;)if(3==i.nodeType||dtd[a][i.tagName]){for(j.setStartBefore(i),d=i;d&&(3==d.nodeType||dtd[a][d.tagName])&&d!==g;)e=d,d=domUtils.getNextDomNode(d,1==d.nodeType,null,function(b){return dtd[a][b.tagName]});var k,l=j.setEndAfter(e).extractContents();if(c&&c.length>0){var m,n;n=m=c[0].cloneNode(!1);for(var o,p=1;o=c[p++];)m.appendChild(o.cloneNode(!1)),m=m.firstChild;k=m}else k=j.document.createElement(a);b&&domUtils.setAttributes(k,b),k.appendChild(l),j.insertNode(c?n:k);var q;if("span"==a&&b.style&&/text\-decoration/.test(b.style)&&(q=domUtils.findParentByTagName(k,"a",!0))?(domUtils.setAttributes(q,b),domUtils.remove(k,!0),k=q):(domUtils.mergeSibling(k),domUtils.clearEmptySibling(k)),domUtils.mergeChild(k,b),i=domUtils.getNextDomNode(k,!1,h),domUtils.mergeToParent(k),d===g)break}else i=domUtils.getNextDomNode(i,!0,h);return this.moveToBookmark(f)},removeInlineStyle:function(a){if(this.collapsed)return this;a=utils.isArray(a)?a:[a],this.shrinkBoundary().adjustmentBoundary();for(var b=this.startContainer,c=this.endContainer;;){if(1==b.nodeType){if(utils.indexOf(a,b.tagName.toLowerCase())>-1)break;if("body"==b.tagName.toLowerCase()){b=null;break}}b=b.parentNode}for(;;){if(1==c.nodeType){if(utils.indexOf(a,c.tagName.toLowerCase())>-1)break;if("body"==c.tagName.toLowerCase()){c=null;break}}c=c.parentNode}var d,e,f=this.createBookmark();b&&(e=this.cloneRange().setEndBefore(f.start).setStartBefore(b),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(b,!0),b.parentNode.insertBefore(f.start,b)),c&&(e=this.cloneRange().setStartAfter(f.end).setEndAfter(c),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(c,!1,!0),c.parentNode.insertBefore(f.end,c.nextSibling));for(var g,h=domUtils.getNextDomNode(f.start,!1,function(a){return 1==a.nodeType});h&&h!==f.end;)g=domUtils.getNextDomNode(h,!0,function(a){return 1==a.nodeType}),utils.indexOf(a,h.tagName.toLowerCase())>-1&&domUtils.remove(h,!0),h=g;return this.moveToBookmark(f)},getClosedNode:function(){var a;if(!this.collapsed){var c=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(b(c)){var d=c.startContainer.childNodes[c.startOffset];d&&1==d.nodeType&&(dtd.$empty[d.tagName]||dtd.$nonChild[d.tagName])&&(a=d)}}return a},select:browser.ie?function(a,b){var c;this.collapsed||this.shrinkBoundary();var d=this.getClosedNode();if(d&&!b){try{c=this.document.body.createControlRange(),c.addElement(d),c.select()}catch(h){}return this}var j,k=this.createBookmark(),l=k.start;if(c=this.document.body.createTextRange(),c.moveToElementText(l),c.moveStart("character",1),this.collapsed){if(!a&&3!=this.startContainer.nodeType){var m=this.document.createTextNode(i),n=this.document.createElement("span");n.appendChild(this.document.createTextNode(i)),l.parentNode.insertBefore(n,l),l.parentNode.insertBefore(m,l),e(this.document,m),g=m,f(n,"previousSibling"),f(l,"nextSibling"),c.moveStart("character",-1),c.collapse(!0)}}else{var o=this.document.body.createTextRange();j=k.end,o.moveToElementText(j),c.setEndPoint("EndToEnd",o)}this.moveToBookmark(k),n&&domUtils.remove(n);try{c.select()}catch(h){}return this}:function(a){function b(a){function b(b,c,d){3==b.nodeType&&b.nodeValue.length0)j=k-1;else{if(!(l<0))return{container:d,offset:c(e)};i=k+1}}if(k==-1){if(h.moveToElementText(d),h.setEndPoint("StartToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,g=d.childNodes,!f)return e=g[g.length-1],{container:e,offset:e.nodeValue.length};for(var m=g.length;f>0;)f-=g[--m].nodeValue.length;return{container:g[m],offset:-f}}if(h.collapse(l>0),h.setEndPoint(l>0?"StartToStart":"EndToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,!f)return dtd.$empty[e.tagName]||dtd.$nonChild[e.tagName]?{container:d,offset:c(e)+(l>0?0:1)}:{container:e,offset:l>0?0:e.childNodes.length};for(;f>0;)try{var n=e;e=e[l>0?"previousSibling":"nextSibling"],f-=e.nodeValue.length}catch(o){return{container:d,offset:c(n)}}return{container:e,offset:l>0?-f:e.nodeValue.length+f}}function b(b,c){if(b.item)c.selectNode(b.item(0));else{var d=a(b,!0);c.setStart(d.container,d.offset),0!=b.compareEndPoints("StartToEnd",b)&&(d=a(b,!1),c.setEnd(d.container,d.offset))}return c}function c(a){var b;try{b=a.getNative().createRange()}catch(c){return null}var d=b.item?b.item(0):b.parentElement();return(d.ownerDocument||d)===a.document?b:null}var d=dom.Selection=function(a){var b,d=this;d.document=a,browser.ie9below&&(b=domUtils.getWindow(a).frameElement,domUtils.on(b,"beforedeactivate",function(){d._bakIERange=d.getIERange()}),domUtils.on(b,"activate",function(){try{!c(d)&&d._bakIERange&&d._bakIERange.select()}catch(a){}d._bakIERange=null})),b=a=null};d.prototype={rangeInBody:function(a,b){var c=browser.ie9below||b?a.item?a.item():a.parentElement():a.startContainer;return c===this.document.body||domUtils.inDoc(c,this.document)},getNative:function(){var a=this.document;try{return a?browser.ie9below?a.selection:domUtils.getWindow(a).getSelection():null}catch(b){return null}},getIERange:function(){var a=c(this);return!a&&this._bakIERange?this._bakIERange:a},cache:function(){this.clear(),this._cachedRange=this.getRange(),this._cachedStartElement=this.getStart(),this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath)return this._cachedStartElementPath;var a=this.getStart();return a?domUtils.findParents(a,!0,null,!0):[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){try{if(browser.ie9below){var a=c(this);return!(!a||!this.rangeInBody(a))}return!!this.getNative().rangeCount}catch(b){return!1}},getRange:function(){function a(a){for(var b=c.document.body.firstChild,d=a.collapsed;b&&b.firstChild;)a.setStart(b,0),b=b.firstChild;a.startContainer||a.setStart(c.document.body,0),d&&a.collapse(!0)}var c=this;if(null!=c._cachedRange)return this._cachedRange;var d=new baidu.editor.dom.Range(c.document);if(browser.ie9below){var e=c.getIERange();if(e)try{b(e,d)}catch(f){a(d)}else a(d)}else{var g=c.getNative();if(g&&g.rangeCount){var h=g.getRangeAt(0),i=g.getRangeAt(g.rangeCount-1);d.setStart(h.startContainer,h.startOffset).setEnd(i.endContainer,i.endOffset),d.collapsed&&domUtils.isBody(d.startContainer)&&!d.startOffset&&a(d)}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document))return this._bakRange;a(d)}}return this._bakRange=d},getStart:function(){if(this._cachedStartElement)return this._cachedStartElement;var a,b,c,d,e=browser.ie9below?this.getIERange():this.getRange();if(browser.ie9below){if(!e)return this.document.body.firstChild;if(e.item)return e.item(0);for(a=e.duplicate(),a.text.length>0&&a.moveStart("character",1),a.collapse(1),b=a.parentElement(),d=c=e.parentElement();c=c.parentNode;)if(c==b){b=d;break}}else if(e.shrinkBoundary(),b=e.startContainer,1==b.nodeType&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,e.startOffset)]),3==b.nodeType)return b.parentNode;return b},getText:function(){var a,b;return this.isFocus()&&(a=this.getNative())?(b=browser.ie9below?a.createRange():a.getRangeAt(0),browser.ie9below?b.text:b.toString()):""},clearRange:function(){this.getNative()[browser.ie9below?"empty":"removeAllRanges"]()}}}(),function(){function a(a,b){var c;if(b.textarea)if(utils.isString(b.textarea)){for(var d,e=0,f=domUtils.getElementsByTagName(a,"textarea");d=f[e++];)if(d.id=="ueditor_textarea_"+b.options.textarea){c=d;break}}else c=b.textarea;c||(a.appendChild(c=domUtils.createElement(document,"textarea",{name:b.options.textarea,id:"ueditor_textarea_"+b.options.textarea,style:"display:none"})),b.textarea=c),!c.getAttribute("name")&&c.setAttribute("name",b.options.textarea),c.value=b.hasContents()?b.options.allHtmlEnabled?b.getAllHtml():b.getContent(null,null,!0):""}function b(a){for(var b in a)return b}function c(a){a.langIsReady=!0,a.fireEvent("langReady")}var d,e=0,f=UE.Editor=function(a){var d=this;d.uid=e++,EventBase.call(d),d.commands={},d.options=utils.extend(utils.clone(a||{}),UEDITOR_CONFIG,!0),d.shortcutkeys={},d.inputRules=[],d.outputRules=[],d.setOpt(f.defaultOptions(d)),d.loadServerConfig(),utils.isEmptyObject(UE.I18N)?utils.loadFile(document,{src:d.options.langPath+d.options.lang+"/"+d.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){UE.plugin.load(d),c(d)}):(d.options.lang=b(UE.I18N),UE.plugin.load(d),c(d)),UE.instants["ueditorInstant"+d.uid]=d};f.prototype={registerCommand:function(a,b){this.commands[a]=b},ready:function(a){var b=this;a&&(b.isReady?a.apply(b):b.addListener("ready",a))},setOpt:function(a,b){var c={};utils.isString(a)?c[a]=b:c=a,utils.extend(this.options,c,!0)},getOpt:function(a){return this.options[a]},destroy:function(){var a=this;a.fireEvent("destroy");var b=a.container.parentNode,c=a.textarea;c?c.style.display="":(c=document.createElement("textarea"),b.parentNode.insertBefore(c,b)),c.style.width=a.iframe.offsetWidth+"px",c.style.height=a.iframe.offsetHeight+"px",c.value=a.getContent(),c.id=a.key,b.innerHTML="",domUtils.remove(b);var d=a.key;for(var e in a)a.hasOwnProperty(e)&&delete this[e];UE.delEditor(d)},render:function(a){var b=this,c=b.options,d=function(b){return parseInt(domUtils.getComputedStyle(a,b))};if(utils.isString(a)&&(a=document.getElementById(a)),a){c.initialFrameWidth?c.minFrameWidth=c.initialFrameWidth:c.minFrameWidth=c.initialFrameWidth=a.offsetWidth,c.initialFrameHeight?c.minFrameHeight=c.initialFrameHeight:c.initialFrameHeight=c.minFrameHeight=a.offsetHeight,a.style.width=/%$/.test(c.initialFrameWidth)?"100%":c.initialFrameWidth-d("padding-left")-d("padding-right")+"px",a.style.height=/%$/.test(c.initialFrameHeight)?"100%":c.initialFrameHeight-d("padding-top")-d("padding-bottom")+"px",a.style.zIndex=c.zIndex;var e=(ie&&browser.version<9?"":"")+""+(c.iframeCssUrl?"":"")+(c.initialStyle?"":"")+"";a.appendChild(domUtils.createElement(document,"iframe",{id:"ueditor_"+b.uid,width:"100%",height:"100%",frameborder:"0",src:"javascript:void(function(){document.open();"+(c.customDomain&&document.domain!=location.hostname?'document.domain="'+document.domain+'";':"")+'document.write("'+e+'");document.close();}())'})),a.style.overflow="hidden",setTimeout(function(){/%$/.test(c.initialFrameWidth)&&(c.minFrameWidth=c.initialFrameWidth=a.offsetWidth),/%$/.test(c.initialFrameHeight)&&(c.minFrameHeight=c.initialFrameHeight=a.offsetHeight,a.style.height=c.initialFrameHeight+"px")})}},_setup:function(b){var c=this,d=c.options;ie?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.disabled=!1):b.body.contentEditable=!0,b.body.spellcheck=!1,c.document=b,c.window=b.defaultView||b.parentWindow,c.iframe=c.window.frameElement,c.body=b.body,c.selection=new dom.Selection(b);var e;browser.gecko&&(e=this.selection.getNative())&&e.removeAllRanges(),this._initEvents();for(var f=this.iframe.parentNode;!domUtils.isBody(f);f=f.parentNode)if("FORM"==f.tagName){c.form=f,c.options.autoSyncData?domUtils.on(c.window,"blur",function(){a(f,c)}):domUtils.on(f,"submit",function(){a(this,c)});break}if(d.initialContent)if(d.autoClearinitialContent){var g=c.execCommand;c.execCommand=function(){return c.fireEvent("firstBeforeExecCommand"),g.apply(c,arguments)},this._setDefaultContent(d.initialContent)}else this.setContent(d.initialContent,!1,!0);domUtils.isEmptyNode(c.body)&&(c.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    "),d.focus&&setTimeout(function(){c.focus(c.options.focusInEnd),!c.options.autoClearinitialContent&&c._selectionChange()},0),c.container||(c.container=this.iframe.parentNode),d.fullscreen&&c.ui&&c.ui.setFullScreen(!0);try{c.document.execCommand("2D-position",!1,!1)}catch(h){}try{c.document.execCommand("enableInlineTableEditing",!1,!1)}catch(h){}try{c.document.execCommand("enableObjectResizing",!1,!1)}catch(h){}c._bindshortcutKeys(),c.isReady=1,c.fireEvent("ready"),d.onready&&d.onready.call(c),browser.ie9below||domUtils.on(c.window,["blur","focus"],function(a){if("blur"==a.type){c._bakRange=c.selection.getRange();try{c._bakNativeRange=c.selection.getNative().getRangeAt(0),c.selection.getNative().removeAllRanges()}catch(a){c._bakNativeRange=null}}else try{c._bakRange&&c._bakRange.select()}catch(a){}}),browser.gecko&&browser.version<=10902&&(c.body.contentEditable=!1,setTimeout(function(){c.body.contentEditable=!0},100),setInterval(function(){c.body.style.height=c.iframe.offsetHeight-20+"px"},100)),!d.isShow&&c.setHide(),d.readonly&&c.setDisabled()},sync:function(b){var c=this,d=b?document.getElementById(b):domUtils.findParent(c.iframe.parentNode,function(a){return"FORM"==a.tagName},!0);d&&a(d,c)},setHeight:function(a,b){a!==parseInt(this.iframe.parentNode.style.height)&&(this.iframe.parentNode.style.height=a+"px"),!b&&(this.options.minFrameHeight=this.options.initialFrameHeight=a),this.body.style.height=a+"px",!b&&this.trigger("setHeight")},addshortcutkey:function(a,b){var c={};b?c[a]=b:c=a,utils.extend(this.shortcutkeys,c)},_bindshortcutKeys:function(){var a=this,b=this.shortcutkeys;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which;for(var f in b)for(var g,h=b[f].split(","),i=0;g=h[i++];){g=g.split(":");var j=g[0],k=g[1];(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase())||/^(\d+)$/.test(j))&&(("ctrl"==RegExp.$1?d.ctrlKey||d.metaKey:0)&&(""!=RegExp.$2?d[RegExp.$2.slice(1)+"Key"]:1)&&e==RegExp.$3||e==RegExp.$1)&&(a.queryCommandState(f,k)!=-1&&a.execCommand(f,k),domUtils.preventDefault(d))}})},getContent:function(a,b,c,d,e){var f=this;if(a&&utils.isFunction(a)&&(b=a,a=""),b?!b():!this.hasContents())return"";f.fireEvent("beforegetcontent");var g=UE.htmlparser(f.body.innerHTML,d);return f.filterOutputRule(g),f.fireEvent("aftergetcontent",a,g),g.toHtml(e)},getAllHtml:function(){var a=this,b=[];if(a.fireEvent("getAllHtml",b),browser.ie&&browser.version>8){var c="";utils.each(a.document.styleSheets,function(a){c+=a.href?'':""}),utils.each(a.document.getElementsByTagName("script"),function(a){c+=a.outerHTML})}return""+(a.options.charset?'':"")+(c||a.document.getElementsByTagName("head")[0].innerHTML)+b.join("\n")+""+a.getContent(null,null,!0)+""},getPlainTxt:function(){var a=new RegExp(domUtils.fillChar,"g"),b=this.body.innerHTML.replace(/[\n\r]/g,"");return b=b.replace(/<(p|div)[^>]*>(| )<\/\1>/gi,"\n").replace(//gi,"\n").replace(/<[^>\/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:""}),b.replace(a,"").replace(/\u00a0/g," ").replace(/ /g," ")},getContentTxt:function(){var a=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(a,"").replace(/\u00a0/g," ")},setContent:function(b,c,d){function e(a){return"DIV"==a.tagName&&a.getAttribute("cdata_tag")}var f=this;f.fireEvent("beforesetcontent",b);var g=UE.htmlparser(b);if(f.filterInputRule(g),b=g.toHtml(),f.body.innerHTML=(c?f.body.innerHTML:"")+b,"p"==f.options.enterTag){var h,i=this.body.firstChild;if(!i||1==i.nodeType&&(dtd.$cdata[i.tagName]||e(i)||domUtils.isCustomeNode(i))&&i===this.body.lastChild)this.body.innerHTML="

    "+(browser.ie?" ":"
    ")+"

    "+this.body.innerHTML;else for(var j=f.document.createElement("p");i;){for(;i&&(3==i.nodeType||1==i.nodeType&&dtd.p[i.tagName]&&!dtd.$cdata[i.tagName]);)h=i.nextSibling,j.appendChild(i),i=h;if(j.firstChild){if(!i){f.body.appendChild(j);break}i.parentNode.insertBefore(j,i),j=f.document.createElement("p")}i=i.nextSibling}}f.fireEvent("aftersetcontent"),f.fireEvent("contentchange"),!d&&f._selectionChange(),f._bakRange=f._bakIERange=f._bakNativeRange=null;var k;browser.gecko&&(k=this.selection.getNative())&&k.removeAllRanges(),f.options.autoSyncData&&f.form&&a(f.form,f)},focus:function(a){try{var b=this,c=b.selection.getRange();if(a){var d=b.body.lastChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&(domUtils.isEmptyBlock(d)?c.setStartAtFirst(d):c.setStartAtLast(d),c.collapse(!0)),c.setCursor(!0)}else{if(!c.collapsed&&domUtils.isBody(c.startContainer)&&0==c.startOffset){var d=b.body.firstChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&c.setStartAtFirst(d).collapse(!0)}c.select(!0)}this.fireEvent("focus selectionchange")}catch(e){}},isFocus:function(){return this.selection.isFocus()},blur:function(){var a=this.selection.getNative();if(a.empty&&browser.ie){var b=document.body.createTextRange();b.moveToElementText(document.body),b.collapse(!0),b.select(),a.empty()}else a.removeAllRanges()},_initEvents:function(){var a=this,b=a.document,c=a.window;a._proxyDomEvent=utils.bind(a._proxyDomEvent,a),domUtils.on(b,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],a._proxyDomEvent),domUtils.on(c,["focus","blur"],a._proxyDomEvent),domUtils.on(a.body,"drop",function(b){browser.gecko&&b.stopPropagation&&b.stopPropagation(),a.fireEvent("contentchange")}),domUtils.on(b,["mouseup","keydown"],function(b){"keydown"==b.type&&(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)||2!=b.button&&a._selectionChange(250,b)})},_proxyDomEvent:function(a){return this.fireEvent("before"+a.type.replace(/^on/,"").toLowerCase())!==!1&&(this.fireEvent(a.type.replace(/^on/,""),a)!==!1&&this.fireEvent("after"+a.type.replace(/^on/,"").toLowerCase()))},_selectionChange:function(a,b){var c,e,f=this,g=!1;if(browser.ie&&browser.version<9&&b&&"mouseup"==b.type){var h=this.selection.getRange();h.collapsed||(g=!0,c=b.clientX,e=b.clientY)}clearTimeout(d),d=setTimeout(function(){if(f.selection&&f.selection.getNative()){var a;if(g&&"None"==f.selection.getNative().type){a=f.document.body.createTextRange();try{a.moveToPoint(c,e)}catch(d){a=null}}var h;a&&(h=f.selection.getIERange,f.selection.getIERange=function(){return a}),f.selection.cache(),h&&(f.selection.getIERange=h),f.selection._cachedRange&&f.selection._cachedStartElement&&(f.fireEvent("beforeselectionchange"),f.fireEvent("selectionchange",!!b),f.fireEvent("afterselectionchange"),f.selection.clear())}},a||50)},_callCmdFn:function(a,b){var c,d,e=b[0].toLowerCase();return c=this.commands[e]||UE.commands[e],d=c&&c[a],c&&d||"queryCommandState"!=a?d?d.apply(this,b):void 0:0},execCommand:function(a){a=a.toLowerCase();var b,c=this,d=c.commands[a]||UE.commands[a];return d&&d.execCommand?(d.notNeedUndo||c.__hasEnterExecCommand?(b=this._callCmdFn("execCommand",arguments),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c.fireEvent("contentchange")):(c.__hasEnterExecCommand=!0,c.queryCommandState.apply(c,arguments)!=-1&&(c.fireEvent("saveScene"),c.fireEvent.apply(c,["beforeexeccommand",a].concat(arguments)),b=this._callCmdFn("execCommand",arguments),c.fireEvent.apply(c,["afterexeccommand",a].concat(arguments)),c.fireEvent("saveScene")),c.__hasEnterExecCommand=!1),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c._selectionChange(),b):null},queryCommandState:function(a){return this._callCmdFn("queryCommandState",arguments)},queryCommandValue:function(a){return this._callCmdFn("queryCommandValue",arguments)},hasContents:function(a){if(a)for(var b,c=0;b=a[c++];)if(this.document.getElementsByTagName(b).length>0)return!0;if(!domUtils.isEmptyBlock(this.body))return!0;for(a=["div"],c=0;b=a[c++];)for(var d,e=domUtils.getElementsByTagName(this.document,b),f=0;d=e[f++];)if(domUtils.isCustomeNode(d))return!0;return!1},reset:function(){this.fireEvent("reset")},setEnabled:function(){var a,b=this;if("false"==b.body.contentEditable){b.body.contentEditable=!0,a=b.selection.getRange();try{a.moveToBookmark(b.lastBk),delete b.lastBk}catch(c){a.setStartAtFirst(b.body).collapse(!0)}a.select(!0),b.bkqueryCommandState&&(b.queryCommandState=b.bkqueryCommandState,delete b.bkqueryCommandState),b.bkqueryCommandValue&&(b.queryCommandValue=b.bkqueryCommandValue,delete b.bkqueryCommandValue),b.fireEvent("selectionchange")}},enable:function(){return this.setEnabled()},setDisabled:function(a){var b=this;a=a?utils.isArray(a)?a:[a]:[],"true"==b.body.contentEditable&&(b.lastBk||(b.lastBk=b.selection.getRange().createBookmark(!0)),b.body.contentEditable=!1,b.bkqueryCommandState=b.queryCommandState,b.bkqueryCommandValue=b.queryCommandValue,b.queryCommandState=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandState.apply(b,arguments):-1},b.queryCommandValue=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandValue.apply(b,arguments):null},b.fireEvent("selectionchange"))},disable:function(a){return this.setDisabled(a)},_setDefaultContent:function(){function a(){var b=this;b.document.getElementById("initContent")&&(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",b.removeListener("firstBeforeExecCommand focus",a),setTimeout(function(){b.focus(),b._selectionChange()},0))}return function(b){var c=this;c.body.innerHTML='

    '+b+"

    ",c.addListener("firstBeforeExecCommand focus",a)}}(),setShow:function(){var a=this,b=a.selection.getRange();if("none"==a.container.style.display){try{b.moveToBookmark(a.lastBk),delete a.lastBk}catch(c){b.setStartAtFirst(a.body).collapse(!0)}setTimeout(function(){b.select(!0)},100),a.container.style.display=""}},show:function(){return this.setShow(); -},setHide:function(){var a=this;a.lastBk||(a.lastBk=a.selection.getRange().createBookmark(!0)),a.container.style.display="none"},hide:function(){return this.setHide()},getLang:function(a){if(!this.options)return"";var b=UE.I18N[this.options.lang];if(!b)throw Error("not import language file");a=(a||"").split(".");for(var c,d=0;(c=a[d++])&&(b=b[c],b););return b},getContentLength:function(a,b){var c=this.getContent(!1,!1,!0).length;if(a){b=(b||[]).concat(["hr","img","iframe"]),c=this.getContentTxt().replace(/[\t\r\n]+/g,"").length;for(var d,e=0;d=b[e++];)c+=this.document.getElementsByTagName(d).length}return c},addInputRule:function(a){this.inputRules.push(a)},filterInputRule:function(a){for(var b,c=0;b=this.inputRules[c++];)b.call(this,a)},addOutputRule:function(a){this.outputRules.push(a)},filterOutputRule:function(a){for(var b,c=0;b=this.outputRules[c++];)b.call(this,a)},getActionUrl:function(a){var b=this.getOpt(a)||a,c=this.getOpt("imageUrl"),d=this.getOpt("serverUrl");return!d&&c&&(d=c.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2")),d?(d=d+(d.indexOf("?")==-1?"?":"&")+"action="+(b||""),utils.formatUrl(d)):""}},utils.inherits(f,EventBase)}(),UE.Editor.defaultOptions=function(a){var b=a.options.UEDITOR_HOME_URL;return{isShow:!0,initialContent:"",initialStyle:"",autoClearinitialContent:!1,iframeCssUrl:b+"themes/iframe.css",textarea:"editorValue",focus:!1,focusInEnd:!0,autoClearEmptyNode:!0,fullscreen:!1,readonly:!1,zIndex:999,imagePopup:!0,enterTag:"p",customDomain:!1,lang:"zh-cn",langPath:b+"lang/",theme:"default",themePath:b+"themes/",allHtmlEnabled:!1,scaleEnabled:!1,tableNativeEditInFF:!1,autoSyncData:!0,fileNameFormat:"{time}{rand:6}"}},function(){UE.Editor.prototype.loadServerConfig=function(){function showErrorMsg(a){console&&console.error(a)}var me=this;setTimeout(function(){try{me.options.imageUrl&&me.setOpt("serverUrl",me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2"));var configUrl=me.getActionUrl("config"),isJsonp=utils.isCrossDomainUrl(configUrl);me._serverConfigLoaded=!1,configUrl&&UE.ajax.request(configUrl,{method:"GET",dataType:isJsonp?"jsonp":"",onsuccess:function(r){try{var config=isJsonp?r:eval("("+r.responseText+")");utils.extend(me.options,config),me.fireEvent("serverConfigLoaded"),me._serverConfigLoaded=!0}catch(e){showErrorMsg(me.getLang("loadconfigFormatError"))}},onerror:function(){showErrorMsg(me.getLang("loadconfigHttpError"))}})}catch(e){showErrorMsg(me.getLang("loadconfigError"))}})},UE.Editor.prototype.isServerConfigLoaded=function(){var a=this;return a._serverConfigLoaded||!1},UE.Editor.prototype.afterConfigReady=function(a){if(a&&utils.isFunction(a)){var b=this,c=function(){a.apply(b,arguments),b.removeListener("serverConfigLoaded",c)};b.isServerConfigLoaded()?a.call(b,"serverConfigLoaded"):b.addListener("serverConfigLoaded",c)}}}(),UE.ajax=function(){function a(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c&&"dataType"!=c&&"callback"!=c&&void 0!=a[c]&&null!=a[c])if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d/gi,"").replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(a){if(browser.opera)return"";try{if(/Bitmap/i.test(a))return"";var c=a.match(/width:([ \d.]*p[tx])/i)[1],d=a.match(/height:([ \d.]*p[tx])/i)[1],e=a.match(/src=\s*"([^"]*)"/i)[1];return''}catch(f){return""}}).replace(/<\/?div[^>]*>/g,"").replace(/v:\w+=(["']?)[^'"]+\1/g,"").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,"").replace(/

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"

    $1

    ").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,function(a,b,c,d){return"class"==b&&"MsoListParagraph"==d?a:""}).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi,function(a,b,c){return c.replace(/[\t\r\n ]+/g," ")}).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,function(a,c,d,e){for(var f,g=[],h=e.replace(/^\s+|\s+$/,"").replace(/'/g,"'").replace(/"/gi,"'").replace(/[\d.]+(cm|pt)/g,function(a){return utils.transUnitToPx(a)}).split(/;\s*/g),i=0;f=h[i];i++){var j,k,l=f.split(":");if(2==l.length){if(j=l[0].toLowerCase(),k=l[1].toLowerCase(),/^(background)\w*/.test(j)&&0==k.replace(/(initial|\s)/g,"").length||/^(margin)\w*/.test(j)&&/^0\w+$/.test(k))continue;switch(j){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":/1&&(a(h,j,!0),b(h,j)),c(k,h,i,j);break;case"text":d(g,h);break;case"element":e(g,h,i,j);break;case"comment":f(g,h,i)}return h}function d(a,b){"pre"==a.parentNode.tagName?b.push(a.data):b.push(l[a.parentNode.tagName]?utils.html(a.data):a.data.replace(/[ ]{2}/g,"  "))}function e(d,e,f,g){var h="";if(d.attrs){h=[];var i=d.attrs;for(var j in i)h.push(j+(void 0!==i[j]?'="'+(k[j]?utils.html(i[j]).replace(/["]/g,function(a){return"""}):utils.unhtml(i[j]))+'"':""));h=h.join(" ")}if(e.push("<"+d.tagName+(h?" "+h:"")+(dtd.$empty[d.tagName]?"/":"")+">"),f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g,!0),b(e,g)),d.children&&d.children.length)for(var l,m=0;l=d.children[m++];)f&&"element"==l.type&&!dtd.$inlineWithA[l.tagName]&&m>1&&(a(e,g),b(e,g)),c(l,e,f,g);dtd.$empty[d.tagName]||(f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g),b(e,g)),e.push(""))}function f(a,b){b.push("")}function g(a,b){var c;if("element"==a.type&&a.getAttr("id")==b)return a;if(a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)if(c=g(d,b))return c}function h(a,b,c){if("element"==a.type&&a.tagName==b&&c.push(a),a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)h(d,b,c)}function i(a,b){if(a.children&&a.children.length)for(var c,d=0;c=a.children[d];)i(c,b),c.parentNode&&(c.children&&c.children.length&&b(c),c.parentNode&&d++);else b(a)}var j=UE.uNode=function(a){this.type=a.type,this.data=a.data,this.tagName=a.tagName,this.parentNode=a.parentNode,this.attrs=a.attrs||{},this.children=a.children},k={href:1,src:1,_src:1,_href:1,cdata_data:1},l={style:1,script:1},m=" ",n="\n";j.createElement=function(a){return/[<>]/.test(a)?UE.htmlparser(a).children[0]:new j({type:"element",children:[],tagName:a})},j.createText=function(a,b){return new UE.uNode({type:"text",data:b?a:utils.unhtml(a||"")})},j.prototype={toHtml:function(a){var b=[];return c(this,b,a,0),b.join("")},innerHTML:function(a){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(utils.isString(a)){if(this.children)for(var b,c=0;b=this.children[c++];)b.parentNode=null;this.children=[];for(var b,d=UE.htmlparser(a),c=0;b=d.children[c++];)this.children.push(b),b.parentNode=this;return this}var d=new UE.uNode({type:"root",children:this.children});return d.toHtml()},innerText:function(a,b){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(a){if(this.children)for(var c,d=0;c=this.children[d++];)c.parentNode=null;return this.children=[],this.appendChild(j.createText(a,b)),this}return this.toHtml().replace(/<[^>]+>/g,"")},getData:function(){return"element"==this.type?"":this.data},firstChild:function(){return this.children?this.children[0]:null},lastChild:function(){return this.children?this.children[this.children.length-1]:null},previousSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return 0==c?null:b.children[c-1]},nextSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c++];)if(a===this)return b.children[c]},replaceChild:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,1,a),b.parentNode=null,a.parentNode=this,a}},appendChild:function(a){if("root"==this.type||"element"==this.type&&!dtd.$empty[this.tagName]){this.children||(this.children=[]),a.parentNode&&a.parentNode.removeChild(a);for(var b,c=0;b=this.children[c];c++)if(b===a){this.children.splice(c,1);break}return this.children.push(a),a.parentNode=this,a}},insertBefore:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,0,a),a.parentNode=this,a}},insertAfter:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d+1,0,a),a.parentNode=this,a}},removeChild:function(a,b){if(this.children)for(var c,d=0;c=this.children[d];d++)if(c===a){if(this.children.splice(d,1),c.parentNode=null,b&&c.children&&c.children.length)for(var e,f=0;e=c.children[f];f++)this.children.splice(d+f,0,e),e.parentNode=this;return c}},getAttr:function(a){return this.attrs&&this.attrs[a.toLowerCase()]},setAttr:function(a,b){if(!a)return void delete this.attrs;if(this.attrs||(this.attrs={}),utils.isObject(a))for(var c in a)a[c]?this.attrs[c.toLowerCase()]=a[c]:delete this.attrs[c];else b?this.attrs[a.toLowerCase()]=b:delete this.attrs[a]},getIndex:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return c;return-1},getNodeById:function(a){var b;if(this.children&&this.children.length)for(var c,d=0;c=this.children[d++];)if(b=g(c,a))return b},getNodesByTagName:function(a){a=utils.trim(a).replace(/[ ]{2,}/g," ").split(" ");var b=[],c=this;return utils.each(a,function(a){if(c.children&&c.children.length)for(var d,e=0;d=c.children[e++];)h(d,a,b)}),b},getStyle:function(a){var b=this.getAttr("style");if(!b)return"";var c=new RegExp("(^|;)\\s*"+a+":([^;]+)","i"),d=b.match(c);return d&&d[0]?d[2]:""},setStyle:function(a,b){function c(a,b){var c=new RegExp("(^|;)\\s*"+a+":([^;]+;?)","gi");d=d.replace(c,"$1"),b&&(d=a+":"+utils.unhtml(b)+";"+d)}var d=this.getAttr("style");if(d||(d=""),utils.isObject(a))for(var e in a)c(e,a[e]);else c(a,b);this.setAttr("style",utils.trim(d))},traversal:function(a){return this.children&&this.children.length&&i(this,a),this}}}();var htmlparser=UE.htmlparser=function(a,b){function c(a,b){if(m[a.tagName]){var c=k.createElement(m[a.tagName]);a.appendChild(c),c.appendChild(k.createText(b)),a=c}else a.appendChild(k.createText(b))}function d(a,b,c){var e;if(e=l[b]){for(var f,h=a;"root"!=h.type;){if(utils.isArray(e)?utils.indexOf(e,h.tagName)!=-1:e==h.tagName){a=h,f=!0;break}h=h.parentNode}f||(a=d(a,utils.isArray(e)?e[0]:e))}var i=new k({parentNode:a,type:"element",tagName:b.toLowerCase(),children:dtd.$empty[b]?null:[]});if(c){for(var m,n={};m=g.exec(c);)n[m[1].toLowerCase()]=j[m[1].toLowerCase()]?m[2]||m[3]||m[4]:utils.unhtml(m[2]||m[3]||m[4]);i.attrs=n}return a.children.push(i),dtd.$empty[b]?a:i}function e(a,b){a.children.push(new k({type:"comment",data:b,parentNode:a}))}var f=/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,g=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1};a=a.replace(new RegExp(domUtils.fillChar,"g"),""),b||(a=a.replace(new RegExp("[\\r\\t\\n"+(b?"":" ")+"]*]*)>[\\r\\t\\n"+(b?"":" ")+"]*","g"),function(a,c){return c&&h[c.toLowerCase()]?a.replace(/(^[\n\r]+)|([\n\r]+$)/g,""):a.replace(new RegExp("^[\\r\\n"+(b?"":" ")+"]+"),"").replace(new RegExp("[\\r\\n"+(b?"":" ")+"]+$"),"")}));for(var i,j={href:1,src:1},k=UE.uNode,l={td:"tr",tr:["tbody","thead","tfoot"],tbody:"table",th:"tr",thead:"table",tfoot:"table",caption:"table",li:["ul","ol"],dt:"dl",dd:"dl",option:"select"},m={ol:"li",ul:"li"},n=0,o=0,p=new k({type:"root",children:[]}),q=p;i=f.exec(a);){n=i.index;try{if(n>o&&c(q,a.slice(o,n)),i[3])dtd.$cdata[q.tagName]?c(q,i[0]):q=d(q,i[3].toLowerCase(),i[4]);else if(i[1]){if("root"!=q.type)if(dtd.$cdata[q.tagName]&&!dtd.$cdata[i[1]])c(q,i[0]);else{for(var r=q;"element"==q.type&&q.tagName!=i[1].toLowerCase();)if(q=q.parentNode,"root"==q.type)throw q=r,"break";q=q.parentNode}}else i[2]&&e(q,i[2])}catch(s){}o=f.lastIndex}return o");break;case"div":if(b.getAttr("cdata_tag"))break;if(d=b.getAttr("class"),d&&/^line number\d+/.test(d))break;if(!e)break;for(var f,g=UE.uNode.createElement("p");f=b.firstChild();)"text"!=f.type&&UE.dom.dtd.$block[f.tagName]?g.firstChild()?(b.parentNode.insertBefore(g,b),g=UE.uNode.createElement("p")):b.parentNode.insertBefore(f,b):g.appendChild(f);g.firstChild()&&b.parentNode.insertBefore(g,b),b.parentNode.removeChild(b);break;case"dl":b.tagName="ul";break;case"dt":case"dd":b.tagName="li";break;case"li":var h=b.getAttr("class");h&&/list\-/.test(h)||b.setAttr();var i=b.getNodesByTagName("ol ul");UE.utils.each(i,function(a){b.parentNode.insertAfter(a,b)});break;case"td":case"th":case"caption":b.children&&b.children.length||b.appendChild(browser.ie11below?UE.uNode.createText(" "):UE.uNode.createElement("br"));break;case"table":a.options.disabledTableInTable&&c(b)&&(b.parentNode.insertBefore(UE.uNode.createText(b.innerText()),b),b.parentNode.removeChild(b))}}})}),a.addOutputRule(function(b){var c;b.traversal(function(b){if("element"==b.type){if(a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"div":(c=b.getAttr("cdata_tag"))&&(b.tagName=c,b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))),b.setAttr({cdata_tag:"",cdata_data:"",_ue_custom_node_:""}));break;case"a":(c=b.getAttr("_href"))&&b.setAttr({href:utils.html(c),_href:""});break;case"span":c=b.getAttr("id"),c&&/^_baidu_bookmark_/i.test(c)&&b.parentNode.removeChild(b);break;case"img":(c=b.getAttr("_src"))&&b.setAttr({src:b.getAttr("_src"),_src:""})}}})})},UE.commands.inserthtml={execCommand:function(a,b,c){var d,e,f=this;if(b&&f.fireEvent("beforeinserthtml",b)!==!0){if(d=f.selection.getRange(),e=d.document.createElement("div"),e.style.display="inline",!c){var g=UE.htmlparser(b);f.options.filterRules&&UE.filterNode(g,f.options.filterRules),f.filterInputRule(g),b=g.toHtml()}if(e.innerHTML=utils.trim(b),!d.collapsed){var h=d.startContainer;if(domUtils.isFillChar(h)&&d.setStartBefore(h),h=d.endContainer,domUtils.isFillChar(h)&&d.setEndAfter(h),d.txtToElmBoundary(),d.endContainer&&1==d.endContainer.nodeType&&(h=d.endContainer.childNodes[d.endOffset],h&&domUtils.isBr(h)&&d.setEndAfter(h)),0==d.startOffset&&(h=d.startContainer,domUtils.isBoundaryNode(h,"firstChild")&&(h=d.endContainer,d.endOffset==(3==h.nodeType?h.nodeValue.length:h.childNodes.length)&&domUtils.isBoundaryNode(h,"lastChild")&&(f.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",d.setStart(f.body.firstChild,0).collapse(!0)))),!d.collapsed&&d.deleteContents(),1==d.startContainer.nodeType){var i,j=d.startContainer.childNodes[d.startOffset];if(j&&domUtils.isBlockElm(j)&&(i=j.previousSibling)&&domUtils.isBlockElm(i)){for(d.setEnd(i,i.childNodes.length).collapse();j.firstChild;)i.appendChild(j.firstChild);domUtils.remove(j)}}}var j,k,i,l,m,n=0;d.inFillChar()&&(j=d.startContainer,domUtils.isFillChar(j)?(d.setStartBefore(j).collapse(!0),domUtils.remove(j)):domUtils.isFillChar(j,!0)&&(j.nodeValue=j.nodeValue.replace(fillCharReg,""),d.startOffset--,d.collapsed&&d.collapse(!0)));var o=domUtils.findParentByTagName(d.startContainer,"li",!0);if(o){for(var p,q;j=e.firstChild;){for(;j&&(3==j.nodeType||!domUtils.isBlockElm(j)||"HR"==j.tagName);)p=j.nextSibling,d.insertNode(j).collapse(),q=j,j=p;if(j)if(/^(ol|ul)$/i.test(j.tagName)){for(;j.firstChild;)q=j.firstChild,domUtils.insertAfter(o,j.firstChild),o=o.nextSibling;domUtils.remove(j)}else{var r;p=j.nextSibling,r=f.document.createElement("li"),domUtils.insertAfter(o,r),r.appendChild(j),q=j,j=p,o=r}}o=domUtils.findParentByTagName(d.startContainer,"li",!0),domUtils.isEmptyBlock(o)&&domUtils.remove(o),q&&d.setStartAfter(q).collapse(!0).select(!0)}else{for(;j=e.firstChild;){if(n){for(var s=f.document.createElement("p");j&&(3==j.nodeType||!dtd.$block[j.tagName]);)m=j.nextSibling,s.appendChild(j),j=m;s.firstChild&&(j=s)}if(d.insertNode(j),m=j.nextSibling,!n&&j.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(j)&&(k=domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)}),k&&"body"!=k.tagName.toLowerCase()&&(!dtd[k.tagName][j.nodeName]||j.parentNode!==k))){if(dtd[k.tagName][j.nodeName])for(l=j.parentNode;l!==k;)i=l,l=l.parentNode;else i=k;domUtils.breakParent(j,i||l);var i=j.previousSibling;domUtils.trimWhiteTextNode(i),i.childNodes.length||domUtils.remove(i),!browser.ie&&(p=j.nextSibling)&&domUtils.isBlockElm(p)&&p.lastChild&&!domUtils.isBr(p.lastChild)&&p.appendChild(f.document.createElement("br")),n=1}var p=j.nextSibling;if(!e.firstChild&&p&&domUtils.isBlockElm(p)){d.setStart(p,0).collapse(!0);break}d.setEndAfter(j).collapse()}if(j=d.startContainer,m&&domUtils.isBr(m)&&domUtils.remove(m),domUtils.isBlockElm(j)&&domUtils.isEmptyNode(j))if(m=j.nextSibling)domUtils.remove(j),1==m.nodeType&&dtd.$block[m.tagName]&&d.setStart(m,0).collapse(!0).shrinkBoundary();else try{j.innerHTML=browser.ie?domUtils.fillChar:"
    "}catch(t){d.setStartBefore(j),domUtils.remove(j)}try{d.select(!0)}catch(t){}}setTimeout(function(){d=f.selection.getRange(),d.scrollToView(f.autoHeightEnabled,f.autoHeightEnabled?domUtils.getXY(f.iframe).y:0),f.fireEvent("afterinserthtml",b)},200)}}},UE.plugins.autotypeset=function(){function a(a,b){return a&&3!=a.nodeType?domUtils.isBr(a)?1:a&&a.parentNode&&l[a.tagName.toLowerCase()]?g&&g.contains(a)||a.getAttribute("pagebreak")?0:b?!domUtils.isEmptyBlock(a):domUtils.isEmptyBlock(a,new RegExp("[\\s"+domUtils.fillChar+"]","g")):void 0:0}function b(a){a.style.cssText||(domUtils.removeAttributes(a,["style"]),"span"==a.tagName.toLowerCase()&&domUtils.hasNoAttributes(a)&&domUtils.remove(a,!0))}function c(c,f){var h,l=this;if(f){if(!i.pasteFilter)return;h=l.document.createElement("div"),h.innerHTML=f.html}else h=l.document.body;for(var m,n=domUtils.getElementsByTagName(h,"*"),o=0;m=n[o++];)if(l.fireEvent("excludeNodeinautotype",m)!==!0){if(i.clearFontSize&&m.style.fontSize&&(domUtils.removeStyle(m,"font-size"),b(m)),i.clearFontFamily&&m.style.fontFamily&&(domUtils.removeStyle(m,"font-family"),b(m)),a(m)){if(i.mergeEmptyline)for(var p,q=m.nextSibling,r=domUtils.isBr(m);a(q)&&(p=q,q=p.nextSibling,!r||q&&(!q||domUtils.isBr(q)));)domUtils.remove(p);if(i.removeEmptyline&&domUtils.inDoc(m,h)&&!k[m.parentNode.tagName.toLowerCase()]){if(domUtils.isBr(m)&&(q=m.nextSibling,q&&!domUtils.isBr(q)))continue;domUtils.remove(m);continue}}if(a(m,!0)&&"SPAN"!=m.tagName&&(i.indent&&(m.style.textIndent=i.indentValue),i.textAlign&&(m.style.textAlign=i.textAlign)),i.removeClass&&m.className&&!j[m.className.toLowerCase()]){if(g&&g.contains(m))continue;domUtils.removeAttributes(m,["class"])}if(i.imageBlockLine&&"img"==m.tagName.toLowerCase()&&!m.getAttribute("emotion"))if(f){var s=m;switch(i.imageBlockLine){case"left":case"right":case"none":for(var p,t,q,u=s.parentNode;dtd.$inline[u.tagName]||"A"==u.tagName;)u=u.parentNode;if(p=u,"P"==p.tagName&&"center"==domUtils.getStyle(p,"text-align")&&!domUtils.isBody(p)&&1==domUtils.getChildCount(p,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(t=p.previousSibling,q=p.nextSibling,t&&q&&1==t.nodeType&&1==q.nodeType&&t.tagName==q.tagName&&domUtils.isBlockElm(t)){for(t.appendChild(p.firstChild);q.firstChild;)t.appendChild(q.firstChild);domUtils.remove(p),domUtils.remove(q)}else domUtils.setStyle(p,"text-align","");domUtils.setStyle(s,"float",i.imageBlockLine);break;case"center":if("center"!=l.queryCommandValue("imagefloat")){for(u=s.parentNode,domUtils.setStyle(s,"float","none"),p=s;u&&1==domUtils.getChildCount(u,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[u.tagName]||"A"==u.tagName);)p=u,u=u.parentNode;var v=l.document.createElement("p");domUtils.setAttributes(v,{style:"text-align:center"}),p.parentNode.insertBefore(v,p),v.appendChild(p),domUtils.setStyle(p,"float","")}}}else{var w=l.selection.getRange();w.selectNode(m).select(),l.execCommand("imagefloat",i.imageBlockLine)}i.removeEmptyNode&&i.removeTagNames[m.tagName.toLowerCase()]&&domUtils.hasNoAttributes(m)&&domUtils.isEmptyBlock(m)&&domUtils.remove(m)}if(i.tobdc){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=e(a.data))}),h.innerHTML=x.toHtml()}if(i.bdc2sb){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=d(a.data))}),h.innerHTML=x.toHtml()}f&&(f.html=h.innerHTML)}function d(a){for(var b="",c=0;c=65281&&d<=65373?String.fromCharCode(a.charCodeAt(c)-65248):12288==d?String.fromCharCode(a.charCodeAt(c)-12288+32):a.charAt(c)}return b}function e(a){a=utils.html(a);for(var b="",c=0;c0?e.substring(e.indexOf(d.options.imagePath),e.length-1).replace(/"|\(|\)/gi,""):"none"!=e?e.replace(/url\("?|"?\)/gi,""):"";var g=' ",b.push(g)},aftersetcontent:function(){0==c&&b()}},inputRule:function(d){c=!1,utils.each(d.getNodesByTagName("p"),function(d){var e=d.getAttr("data-background");e&&(c=!0,b(a(e)),d.parentNode.removeChild(d))})},outputRule:function(a){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);c&&a.appendChild(UE.uNode.createElement('


    '))},commands:{background:{execCommand:function(a,c){b(c)},queryCommandValue:function(){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);return c?a(c[1]):null},notNeedUndo:!0}}}}),UE.commands.imagefloat={execCommand:function(a,b){var c=this,d=c.selection.getRange();if(!d.collapsed){var e=d.getClosedNode();if(e&&"IMG"==e.tagName)switch(b){case"left":case"right":case"none":for(var f,g,h,i=e.parentNode;dtd.$inline[i.tagName]||"A"==i.tagName;)i=i.parentNode;if(f=i,"P"==f.tagName&&"center"==domUtils.getStyle(f,"text-align")){if(!domUtils.isBody(f)&&1==domUtils.getChildCount(f,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(g=f.previousSibling,h=f.nextSibling,g&&h&&1==g.nodeType&&1==h.nodeType&&g.tagName==h.tagName&&domUtils.isBlockElm(g)){for(g.appendChild(f.firstChild);h.firstChild;)g.appendChild(h.firstChild);domUtils.remove(f),domUtils.remove(h)}else domUtils.setStyle(f,"text-align","");d.selectNode(e).select()}domUtils.setStyle(e,"float","none"==b?"":b),"none"==b&&domUtils.removeAttributes(e,"align");break;case"center":if("center"!=c.queryCommandValue("imagefloat")){for(i=e.parentNode,domUtils.setStyle(e,"float",""),domUtils.removeAttributes(e,"align"),f=e;i&&1==domUtils.getChildCount(i,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[i.tagName]||"A"==i.tagName);)f=i,i=i.parentNode;d.setStartBefore(f).setCursor(!1),i=c.document.createElement("div"),i.appendChild(f),domUtils.setStyle(f,"float",""),c.execCommand("insertHtml",'

    '+i.innerHTML+"

    "),f=c.document.getElementById("_img_parent_tmp"),f.removeAttribute("id"),f=f.firstChild,d.selectNode(f).select(),h=f.parentNode.nextSibling,h&&domUtils.isEmptyNode(h)&&domUtils.remove(h)}}}},queryCommandValue:function(){var a,b,c=this.selection.getRange();return c.collapsed?"none":(a=c.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?(b=domUtils.getComputedStyle(a,"float")||a.getAttribute("align"),"none"==b&&(b="center"==domUtils.getComputedStyle(a.parentNode,"text-align")?"center":b),{left:1,right:1,center:1}[b]?b:"none"):"none")},queryCommandState:function(){var a,b=this.selection.getRange();return b.collapsed?-1:(a=b.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?0:-1)}},UE.commands.insertimage={execCommand:function(a,b){function c(a){utils.each("width,height,border,hspace,vspace".split(","),function(b){a[b]&&(a[b]=parseInt(a[b],10)||0)}),utils.each("src,_src".split(","),function(b){a[b]&&(a[b]=utils.unhtmlForUrl(a[b]))}),utils.each("title,alt".split(","),function(b){a[b]&&(a[b]=utils.unhtml(a[b]))})}if(b=utils.isArray(b)?b:[b],b.length){var d=this,e=d.selection.getRange(),f=e.getClosedNode();if(d.fireEvent("beforeinsertimage",b)!==!0){if(!f||!/img/i.test(f.tagName)||"edui-faked-video"==f.className&&f.className.indexOf("edui-upload-video")==-1||f.getAttribute("word_img")){var g,h=[],i="";if(g=b[0],1==b.length)c(g),i=''+g.alt+'","center"==g.floatStyle&&(i='

    '+i+"

    "),h.push(i);else for(var j=0;g=b[j++];)c(g),i="

    ",h.push(i);d.execCommand("insertHtml",h.join(""))}else{var k=b.shift(),l=k.floatStyle;delete k.floatStyle,domUtils.setAttributes(f,k),d.execCommand("imagefloat",l),b.length>0&&(e.setStartAfter(f).setCursor(!1,!0),d.execCommand("insertimage",b))}d.fireEvent("afterinsertimage",b)}}}},UE.plugins.justify=function(){var a=domUtils.isBlockElm,b={left:1,right:1,center:1,justify:1},c=function(b,c){var d=b.createBookmark(),e=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};b.enlarge(!0);for(var f,g=b.createBookmark(),h=domUtils.getNextDomNode(g.start,!1,e),i=b.cloneRange();h&&!(domUtils.getPosition(h,g.end)&domUtils.POSITION_FOLLOWING);)if(3!=h.nodeType&&a(h))h=domUtils.getNextDomNode(h,!0,e);else{for(i.setStartBefore(h);h&&h!==g.end&&!a(h);)f=h,h=domUtils.getNextDomNode(h,!1,null,function(b){return!a(b)});i.setEndAfter(f);var j=i.getCommonAncestor();if(!domUtils.isBody(j)&&a(j))domUtils.setStyles(j,utils.isString(c)?{"text-align":c}:c),h=j;else{var k=b.document.createElement("p");domUtils.setStyles(k,utils.isString(c)?{"text-align":c}:c);var l=i.extractContents();k.appendChild(l),i.insertNode(k),h=k}h=domUtils.getNextDomNode(h,!1,e)}return b.moveToBookmark(g).moveToBookmark(d)};UE.commands.justify={execCommand:function(a,b){var d,e=this.selection.getRange();return e.collapsed&&(d=this.document.createTextNode("p"),e.insertNode(d)),c(e,b),d&&(e.setStartBefore(d).collapse(!0),domUtils.remove(d)),e.select(),!0},queryCommandValue:function(){var a=this.selection.getStart(),c=domUtils.getComputedStyle(a,"text-align");return b[c]?c:"left"},queryCommandState:function(){var a=this.selection.getStart(),b=a&&domUtils.findParentByTagName(a,["td","th","caption"],!0);return b?-1:0}}},UE.plugins.font=function(){function a(a){for(var b;(b=a.parentNode)&&"SPAN"==b.tagName&&1==domUtils.getChildCount(b,function(a){return!domUtils.isBookmarkNode(a)&&!domUtils.isBr(a)});)b.style.cssText+=a.style.cssText,domUtils.remove(a,!0),a=b}function b(a,b,c){if(g[b]&&(a.adjustmentBoundary(),!a.collapsed&&1==a.startContainer.nodeType)){var d=a.startContainer.childNodes[a.startOffset];if(d&&domUtils.isTagNode(d,"span")){var e=a.createBookmark();utils.each(domUtils.getElementsByTagName(d,"span"),function(a){a.parentNode&&!domUtils.isBookmarkNode(a)&&("backcolor"==b&&domUtils.getComputedStyle(a,"background-color").toLowerCase()===c||(domUtils.removeStyle(a,g[b]),0==a.style.cssText.replace(/^\s+$/,"").length&&domUtils.remove(a,!0)))}),a.moveToBookmark(e)}}}function c(c,d,e){var f,g=c.collapsed,h=c.createBookmark();if(g)for(f=h.start.parentNode;dtd.$inline[f.tagName];)f=f.parentNode;else f=domUtils.getCommonAncestor(h.start,h.end);utils.each(domUtils.getElementsByTagName(f,"span"),function(b){if(b.parentNode&&!domUtils.isBookmarkNode(b)){if(/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))return void(/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)?domUtils.remove(b,!0):domUtils.removeStyle(b,"border"));if(/border/i.test(b.style.cssText)&&"SPAN"==b.parentNode.tagName&&/border/i.test(b.parentNode.style.cssText)&&(b.style.cssText=b.style.cssText.replace(/border[^:]*:[^;]+;?/gi,"")),"fontborder"!=d||"none"!=e)for(var c=b.nextSibling;c&&1==c.nodeType&&"SPAN"==c.tagName;)if(domUtils.isBookmarkNode(c)&&"fontborder"==d)b.appendChild(c),c=b.nextSibling;else{if(c.style.cssText==b.style.cssText&&(domUtils.moveChild(c,b),domUtils.remove(c)),b.nextSibling===c)break;c=b.nextSibling}if(a(b),browser.ie&&browser.version>8){var f=domUtils.findParent(b,function(a){return"SPAN"==a.tagName&&/background-color/.test(a.style.cssText)});f&&!/background-color/.test(b.style.cssText)&&(b.style.backgroundColor=f.style.backgroundColor)}}}),c.moveToBookmark(h),b(c,d,e)}var d=this,e={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family",underline:"text-decoration",strikethrough:"text-decoration",fontborder:"border"},f={underline:1,strikethrough:1,fontborder:1},g={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family"};d.setOpt({fontfamily:[{name:"songti",val:"宋体,SimSun"},{name:"yahei",val:"微软雅黑,Microsoft YaHei"},{name:"kaiti",val:"楷体,楷体_GB2312, SimKai"},{name:"heiti",val:"黑体, SimHei"},{name:"lishu",val:"隶书, SimLi"},{name:"andaleMono",val:"andale mono"},{name:"arial",val:"arial, helvetica,sans-serif"},{name:"arialBlack",val:"arial black,avant garde"},{name:"comicSansMs",val:"comic sans ms"},{name:"impact",val:"impact,chicago"},{name:"timesNewRoman",val:"times new roman"}],fontsize:[10,11,12,14,16,18,20,24,36]}),d.addInputRule(function(a){utils.each(a.getNodesByTagName("u s del font strike"),function(a){if("font"==a.tagName){var b=[];for(var c in a.attrs)switch(c){case"size":b.push("font-size:"+({1:"10",2:"12",3:"16",4:"18",5:"24",6:"32",7:"48"}[a.attrs[c]]||a.attrs[c])+"px");break;case"color":b.push("color:"+a.attrs[c]);break;case"face":b.push("font-family:"+a.attrs[c]);break;case"style":b.push(a.attrs[c])}a.attrs={style:b.join(";")}}else{var d="u"==a.tagName?"underline":"line-through";a.attrs={style:(a.getAttr("style")||"")+"text-decoration:"+d+";"}}a.tagName="span"})});for(var h in e)!function(a,b){UE.commands[a]={execCommand:function(d,e){e=e||(this.queryCommandState(d)?"none":"underline"==d?"underline":"fontborder"==d?"1px solid #000":"line-through");var g,h=this,i=this.selection.getRange();if("default"==e)i.collapsed&&(g=h.document.createTextNode("font"),i.insertNode(g).select()),h.execCommand("removeFormat","span,a",b),g&&(i.setStartBefore(g).collapse(!0),domUtils.remove(g)),c(i,d,e),i.select();else if(i.collapsed){var j=domUtils.findParentByTagName(i.startContainer,"span",!0);if(g=h.document.createTextNode("font"),!j||j.children.length||j[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){if(i.insertNode(g),i.selectNode(g).select(),j=i.document.createElement("span"),f[a]){if(domUtils.findParentByTagName(g,"a",!0))return i.setStartBefore(g).setCursor(),void domUtils.remove(g);h.execCommand("removeFormat","span,a",b)}if(j.style.cssText=b+":"+e,g.parentNode.insertBefore(j,g),!browser.ie||browser.ie&&9==browser.version)for(var k=j.parentNode;!domUtils.isBlockElm(k);)"SPAN"==k.tagName&&(j.style.cssText=k.style.cssText+";"+j.style.cssText),k=k.parentNode;opera?setTimeout(function(){i.setStart(j,0).collapse(!0),c(i,d,e),i.select()}):(i.setStart(j,0).collapse(!0),c(i,d,e),i.select())}else i.insertNode(g),f[a]&&(i.selectNode(g).select(),h.execCommand("removeFormat","span,a",b,null),j=domUtils.findParentByTagName(g,"span",!0),i.setStartBefore(g)),j&&(j.style.cssText+=";"+b+":"+e),i.collapse(!0).select();domUtils.remove(g)}else f[a]&&h.queryCommandValue(a)&&h.execCommand("removeFormat","span,a",b),i=h.selection.getRange(),i.applyInlineStyle("span",{style:b+":"+e}),c(i,d,e),i.select();return!0},queryCommandValue:function(a){var c=this.selection.getStart();if("underline"==a||"strikethrough"==a){for(var d,e=c;e&&!domUtils.isBlockElm(e)&&!domUtils.isBody(e);){if(1==e.nodeType&&(d=domUtils.getComputedStyle(e,b),"none"!=d))return d;e=e.parentNode}return"none"}if("fontborder"==a){for(var f,g=c;g&&dtd.$inline[g.tagName];){if((f=domUtils.getComputedStyle(g,"border"))&&/1px/.test(f)&&/solid/.test(f))return f;g=g.parentNode}return""}if("FontSize"==a){var h=domUtils.getComputedStyle(c,b),g=/^([\d\.]+)(\w+)$/.exec(h);return g?Math.floor(g[1])+g[2]:h}return domUtils.getComputedStyle(c,b)},queryCommandState:function(a){if(!f[a])return 0;var b=this.queryCommandValue(a);return"fontborder"==a?/1px/.test(b)&&/solid/.test(b):"underline"==a?/underline/.test(b):/line\-through/.test(b)}}}(h,e[h])},UE.plugins.link=function(){function a(a){var b=a.startContainer,c=a.endContainer;(b=domUtils.findParentByTagName(b,"a",!0))&&a.setStartBefore(b),(c=domUtils.findParentByTagName(c,"a",!0))&&a.setEndAfter(c)}function b(b,c,d){var e=b.cloneRange(),f=d.queryCommandValue("link");a(b=b.adjustmentBoundary());var g=b.startContainer;if(1==g.nodeType&&f&&(g=g.childNodes[b.startOffset],g&&1==g.nodeType&&"A"==g.tagName&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie?"innerText":"textContent"])&&(g[browser.ie?"innerText":"textContent"]=utils.html(c.textValue||c.href))),e.collapsed&&!f||(b.removeInlineStyle("a"),e=b.cloneRange()),e.collapsed){var h=b.document.createElement("a"),i="";c.textValue?(i=utils.html(c.textValue),delete c.textValue):i=utils.html(c.href),domUtils.setAttributes(h,c),g=domUtils.findParentByTagName(e.startContainer,"a",!0),g&&domUtils.isInNodeEndBoundary(e,g)&&b.setStartAfter(g).collapse(!0),h[browser.ie?"innerText":"textContent"]=i,b.insertNode(h).selectNode(h)}else b.applyInlineStyle("a",c)}UE.commands.unlink={execCommand:function(){var b,c=this.selection.getRange();c.collapsed&&!domUtils.findParentByTagName(c.startContainer,"a",!0)||(b=c.createBookmark(),a(c),c.removeInlineStyle("a").moveToBookmark(b).select())},queryCommandState:function(){return!this.highlight&&this.queryCommandValue("link")?0:-1}},UE.commands.link={execCommand:function(a,c){var d;c._href&&(c._href=utils.unhtml(c._href,/[<">]/g)),c.href&&(c.href=utils.unhtml(c.href,/[<">]/g)),c.textValue&&(c.textValue=utils.unhtml(c.textValue,/[<">]/g)),b(d=this.selection.getRange(),c,this),d.collapse().select(!0)},queryCommandValue:function(){var a,b=this.selection.getRange();if(!b.collapsed){b.shrinkBoundary();var c=3!=b.startContainer.nodeType&&b.startContainer.childNodes[b.startOffset]?b.startContainer.childNodes[b.startOffset]:b.startContainer,d=3==b.endContainer.nodeType||0==b.endOffset?b.endContainer:b.endContainer.childNodes[b.endOffset-1],e=b.getCommonAncestor();if(a=domUtils.findParentByTagName(e,"a",!0),!a&&1==e.nodeType)for(var f,g,h,i=e.getElementsByTagName("a"),j=0;h=i[j++];)if(f=domUtils.getPosition(h,c),g=domUtils.getPosition(h,d),(f&domUtils.POSITION_FOLLOWING||f&domUtils.POSITION_CONTAINS)&&(g&domUtils.POSITION_PRECEDING||g&domUtils.POSITION_CONTAINS)){a=h;break}return a}if(a=b.startContainer,a=1==a.nodeType?a:a.parentNode,a&&(a=domUtils.findParentByTagName(a,"a",!0))&&!domUtils.isInNodeEndBoundary(b,a))return a},queryCommandState:function(){var a=this.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?-1:0}}},UE.plugins.insertframe=function(){function a(){b._iframe&&delete b._iframe}var b=this;b.addListener("selectionchange",function(){a()})},UE.commands.scrawl={queryCommandState:function(){return browser.ie&&browser.version<=8?-1:0}},UE.plugins.removeformat=function(){var a=this;a.setOpt({removeFormatTags:"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var",removeFormatAttributes:"class,style,lang,width,height,align,hspace,valign"}),a.commands.removeformat={execCommand:function(a,b,c,d,e){function f(a){if(3==a.nodeType||"span"!=a.tagName.toLowerCase())return 0;if(browser.ie){var b=a.attributes;if(b.length){for(var c=0,d=b.length;c
    "+this.getContent(null,null,!0)+"
    "),b.close()},notNeedUndo:1},UE.plugins.selectall=function(){var a=this;a.commands.selectall={execCommand:function(){var a=this,b=a.body,c=a.selection.getRange();c.selectNodeContents(b),domUtils.isEmptyBlock(b)&&(browser.opera&&b.firstChild&&1==b.firstChild.nodeType&&c.setStartAtFirst(b.firstChild),c.collapse(!0)),c.select(!0)},notNeedUndo:1},a.addshortcutkey({selectAll:"ctrl+65"})},UE.plugins.paragraph=function(){var a=this,b=domUtils.isBlockElm,c=["TD","LI","PRE"],d=function(a,d,e,f){var g,h=a.createBookmark(),i=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};a.enlarge(!0);for(var j,k=a.createBookmark(),l=domUtils.getNextDomNode(k.start,!1,i),m=a.cloneRange();l&&!(domUtils.getPosition(l,k.end)&domUtils.POSITION_FOLLOWING);)if(3!=l.nodeType&&b(l))l=domUtils.getNextDomNode(l,!0,i);else{for(m.setStartBefore(l);l&&l!==k.end&&!b(l);)j=l,l=domUtils.getNextDomNode(l,!1,null,function(a){return!b(a)});m.setEndAfter(j),g=a.document.createElement(d),e&&(domUtils.setAttributes(g,e),f&&"customstyle"==f&&e.style&&(g.style.cssText=e.style)),g.appendChild(m.extractContents()),domUtils.isEmptyNode(g)&&domUtils.fillChar(a.document,g),m.insertNode(g);var n=g.parentNode;b(n)&&!domUtils.isBody(g.parentNode)&&utils.indexOf(c,n.tagName)==-1&&(f&&"customstyle"==f||(n.getAttribute("dir")&&g.setAttribute("dir",n.getAttribute("dir")),n.style.cssText&&(g.style.cssText=n.style.cssText+";"+g.style.cssText),n.style.textAlign&&!g.style.textAlign&&(g.style.textAlign=n.style.textAlign),n.style.textIndent&&!g.style.textIndent&&(g.style.textIndent=n.style.textIndent),n.style.padding&&!g.style.padding&&(g.style.padding=n.style.padding)),e&&/h\d/i.test(n.tagName)&&!/h\d/i.test(g.tagName)?(domUtils.setAttributes(n,e),f&&"customstyle"==f&&e.style&&(n.style.cssText=e.style),domUtils.remove(g,!0),g=n):domUtils.remove(g.parentNode,!0)),l=utils.indexOf(c,n.tagName)!=-1?n:g,l=domUtils.getNextDomNode(l,!1,i)}return a.moveToBookmark(k).moveToBookmark(h)};a.setOpt("paragraph",{p:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:""}),a.commands.paragraph={execCommand:function(a,b,c,e){var f=this.selection.getRange();if(f.collapsed){var g=this.document.createTextNode("p");if(f.insertNode(g),browser.ie){var h=g.previousSibling;h&&domUtils.isWhitespace(h)&&domUtils.remove(h),h=g.nextSibling,h&&domUtils.isWhitespace(h)&&domUtils.remove(h)}}if(f=d(f,b,c,e),g&&(f.setStartBefore(g).collapse(!0),pN=g.parentNode,domUtils.remove(g),domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)&&domUtils.fillNode(this.document,pN)),browser.gecko&&f.collapsed&&1==f.startContainer.nodeType){var i=f.startContainer.childNodes[f.startOffset];i&&1==i.nodeType&&i.tagName.toLowerCase()==b&&f.setStart(i,0).collapse(!0)}return f.select(),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a?a.tagName.toLowerCase():""}}},function(){var a=domUtils.isBlockElm,b=function(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),function(a){return a&&1==a.nodeType&&a.getAttribute("dir")})},c=function(c,d,e){var f,g=function(a){return 1==a.nodeType?!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)},h=b(d);if(h&&c.collapsed)return h.setAttribute("dir",e),c;f=c.createBookmark(),c.enlarge(!0);for(var i,j=c.createBookmark(),k=domUtils.getNextDomNode(j.start,!1,g),l=c.cloneRange();k&&!(domUtils.getPosition(k,j.end)&domUtils.POSITION_FOLLOWING);)if(3!=k.nodeType&&a(k))k=domUtils.getNextDomNode(k,!0,g);else{for(l.setStartBefore(k);k&&k!==j.end&&!a(k);)i=k,k=domUtils.getNextDomNode(k,!1,null,function(b){return!a(b)});l.setEndAfter(i);var m=l.getCommonAncestor();if(!domUtils.isBody(m)&&a(m))m.setAttribute("dir",e),k=m;else{var n=c.document.createElement("p");n.setAttribute("dir",e);var o=l.extractContents();n.appendChild(o),l.insertNode(n),k=n}k=domUtils.getNextDomNode(k,!1,g)}return c.moveToBookmark(j).moveToBookmark(f)};UE.commands.directionality={execCommand:function(a,b){var d=this.selection.getRange();if(d.collapsed){var e=this.document.createTextNode("d");d.insertNode(e)}return c(d,this,b),e&&(d.setStartBefore(e).collapse(!0),domUtils.remove(e)),d.select(),!0},queryCommandValue:function(){var a=b(this);return a?a.getAttribute("dir"):"ltr"}}}(),UE.plugins.horizontal=function(){var a=this;a.commands.horizontal={execCommand:function(a){var b=this;if(b.queryCommandState(a)!==-1){b.execCommand("insertHtml","
    ");var c=b.selection.getRange(),d=c.startContainer;if(1==d.nodeType&&!d.childNodes[c.startOffset]){var e;(e=d.childNodes[c.startOffset-1])&&1==e.nodeType&&"HR"==e.tagName&&("p"==b.options.enterTag?(e=b.document.createElement("p"),c.insertNode(e),c.setStart(e,0).setCursor()):(e=b.document.createElement("br"),c.insertNode(e),c.setStartBefore(e).setCursor()))}return!0}},queryCommandState:function(){return domUtils.filterNodeList(this.selection.getStartElementPath(),"table")?-1:0}},a.addListener("delkeydown",function(a,b){var c=this.selection.getRange();if(c.txtToElmBoundary(!0),domUtils.isStartInblock(c)){var d=c.startContainer,e=d.previousSibling;if(e&&domUtils.isTagNode(e,"hr"))return domUtils.remove(e),c.select(),domUtils.preventDefault(b),!0}})},UE.commands.time=UE.commands.date={execCommand:function(a,b){function c(a,b){var c=("0"+a.getHours()).slice(-2),d=("0"+a.getMinutes()).slice(-2),e=("0"+a.getSeconds()).slice(-2);return b=b||"hh:ii:ss",b.replace(/hh/gi,c).replace(/ii/gi,d).replace(/ss/gi,e)}function d(a,b){var c=("000"+a.getFullYear()).slice(-4),d=c.slice(-2),e=("0"+(a.getMonth()+1)).slice(-2),f=("0"+a.getDate()).slice(-2);return b=b||"yyyy-mm-dd",b.replace(/yyyy/gi,c).replace(/yy/gi,d).replace(/mm/gi,e).replace(/dd/gi,f)}var e=new Date;this.execCommand("insertHtml","time"==a?c(e,b):d(e,b))}},UE.plugins.rowspacing=function(){var a=this;a.setOpt({rowspacingtop:["5","10","15","20","25"],rowspacingbottom:["5","10","15","20","25"]}),a.commands.rowspacing={execCommand:function(a,b,c){return this.execCommand("paragraph","p",{style:"margin-"+c+":"+b+"px"}),!0},queryCommandValue:function(a,b){var c,d=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});return d?(c=domUtils.getComputedStyle(d,"margin-"+b).replace(/[^\d]/g,""),c?c:0):0}}},UE.plugins.lineheight=function(){var a=this;a.setOpt({lineheight:["1","1.5","1.75","2","3","4","5"]}),a.commands.lineheight={execCommand:function(a,b){return this.execCommand("paragraph","p",{style:"line-height:"+("1"==b?"normal":b+"em")}),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});if(a){var b=domUtils.getComputedStyle(a,"line-height");return"normal"==b?1:b.replace(/[^\d.]*/gi,"")}}}},UE.plugins.insertcode=function(){var a=this;a.ready(function(){utils.cssRule("pre","pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}",a.document)}),a.setOpt("insertcode",{as3:"ActionScript3",bash:"Bash/Shell",cpp:"C/C++",css:"Css",cf:"CodeFunction","c#":"C#",delphi:"Delphi",diff:"Diff",erlang:"Erlang",groovy:"Groovy",html:"Html",java:"Java",jfx:"JavaFx",js:"Javascript",pl:"Perl",php:"Php",plain:"Plain Text",ps:"PowerShell",python:"Python",ruby:"Ruby",scala:"Scala",sql:"Sql",vb:"Vb",xml:"Xml"}),a.commands.insertcode={execCommand:function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e)e.className="brush:"+b+";toolbar:false;";else{var f="";if(d.collapsed)f=browser.ie&&browser.ie11below?browser.version<=8?" ":"":"
    ";else{var g=d.extractContents(),h=c.document.createElement("div");h.appendChild(g),utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g,"")),c.options.filterTxtRules).children,function(a){if(browser.ie&&browser.ie11below&&browser.version>8)"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""));else if(browser.ie&&browser.ie11below)"element"==a.type?"br"==a.tagName?f+="
    ":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="
    ":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/br>$/.test(f)||(f+="
    ")):f+=a.data+"
    ",!a.nextSibling()&&/
    $/.test(f)&&(f=f.replace(/
    $/,""));else if(f+="element"==a.type?dtd.$empty[a.tagName]?"":a.innerText():a.data,!/br\/?\s*>$/.test(f)){if(!a.nextSibling())return;f+="
    "}})}c.execCommand("inserthtml",'
    '+f+"
    ",!0),e=c.document.getElementById("coder"),domUtils.removeAttributes(e,"id");var i=e.previousSibling;i&&(3==i.nodeType&&1==i.nodeValue.length&&browser.ie&&6==browser.version||domUtils.isEmptyBlock(i))&&domUtils.remove(i);var d=c.selection.getRange();domUtils.isEmptyBlock(e)?d.setStart(e,0).setCursor(!1,!0):d.selectNodeContents(e).select()}},queryCommandValue:function(){var a=this.selection.getStartElementPath(),b="";return utils.each(a,function(a){if("PRE"==a.nodeName){var c=a.className.match(/brush:([^;]+)/);return b=c&&c[1]?c[1]:"",!1}}),b}},a.addInputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b=a.getNodesByTagName("br");if(b.length)return void(browser.ie&&browser.ie11below&&browser.version>8&&utils.each(b,function(a){var b=UE.uNode.createText("\n");a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}));if(!(browser.ie&&browser.ie11below&&browser.version>8)){var c=a.innerText().split(/\n/);a.innerHTML(""),utils.each(c,function(b){b.length&&a.appendChild(UE.uNode.createText(b)),a.appendChild(UE.uNode.createElement("br"))})}})}),a.addOutputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b="";utils.each(a.children,function(a){b+="text"==a.type?a.data.replace(/[ ]/g," ").replace(/\n$/,""):"br"==a.tagName?"\n":dtd.$empty[a.tagName]?a.innerText():""}),a.innerText(b.replace(/( |\n)+$/,""))})}),a.notNeedCodeQuery={help:1,undo:1,redo:1,source:1,print:1,searchreplace:1,fullscreen:1,preview:1,insertparagraph:1,elementpath:1,insertcode:1,inserthtml:1,selectall:1};a.queryCommandState;a.queryCommandState=function(a){var b=this;return!b.notNeedCodeQuery[a.toLowerCase()]&&b.selection&&b.queryCommandValue("insertcode")?-1:UE.Editor.prototype.queryCommandState.apply(this,arguments)},a.addListener("beforeenterkeydown",function(){var b=a.selection.getRange(),c=domUtils.findParentByTagName(b.startContainer,"pre",!0);if(c){if(a.fireEvent("saveScene"),b.collapsed||b.deleteContents(),!browser.ie||browser.ie9above){var c,d=a.document.createElement("br");b.insertNode(d).setStartAfter(d).collapse(!0); -var e=d.nextSibling;e||browser.ie&&!(browser.version>10)?b.setStartAfter(d):b.insertNode(d.cloneNode(!1)),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[\\s"+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([\\s"+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g&&(g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g))}b.collapse(!0).select(!0)}else if(browser.version>8){var i=a.document.createTextNode("\n"),j=b.startContainer;if(0==b.startOffset){var k=j.previousSibling;if(k){b.insertNode(i);var l=a.document.createTextNode(" ");b.setStartAfter(i).insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{b.insertNode(i).setStartAfter(i);var l=a.document.createTextNode(" ");j=b.startContainer.childNodes[b.startOffset],j&&!/^\n/.test(j.nodeValue)&&b.setStartBefore(i),b.insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{var d=a.document.createElement("br");b.insertNode(d),b.insertNode(a.document.createTextNode(domUtils.fillChar)),b.setStartAfter(d),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[ "+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([ "+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g)}b.collapse(!0).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("tabkeydown",function(b,c){var d=a.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){if(a.fireEvent("saveScene"),c.shiftKey);else if(d.collapsed){var f=a.document.createTextNode(" ");d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)}else{for(var g=d.createBookmark(),h=g.start.previousSibling;h;){if(e.firstChild===h&&!domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h);break}if(domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h.nextSibling);break}h=h.previousSibling}var i=g.end;for(h=g.start.nextSibling,e.firstChild===g.start&&e.insertBefore(a.document.createTextNode(" "),h.nextSibling);h&&h!==i;){if(domUtils.isBr(h)&&h.nextSibling){if(h.nextSibling===i)break;e.insertBefore(a.document.createTextNode(" "),h.nextSibling)}h=h.nextSibling}d.moveToBookmark(g).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("beforeinserthtml",function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){d.collapsed||d.deleteContents();var f="";if(browser.ie&&browser.version>8){utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""))});var g=c.document.createTextNode(utils.html(f.replace(/ /g," ")));d.insertNode(g).selectNode(g).select()}else{var h=c.document.createDocumentFragment();utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/ /g," ")))):h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/ /g," "))))}),"BR"!=h.lastChild.nodeName&&h.appendChild(c.document.createElement("br"))):h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/ /g," ")))),a.nextSibling()||"BR"!=h.lastChild.nodeName||h.removeChild(h.lastChild)}),d.insertNode(h).select()}return!0}}),a.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(40==d){var e,f=c.selection.getRange(),g=f.startContainer;if(f.collapsed&&(e=domUtils.findParentByTagName(f.startContainer,"pre",!0))&&!e.nextSibling){for(var h=e.lastChild;h&&"BR"==h.nodeName;)h=h.previousSibling;(h===g||f.startContainer===e&&f.startOffset==e.childNodes.length)&&(c.execCommand("insertparagraph"),domUtils.preventDefault(b))}}}),a.addListener("delkeydown",function(b,c){var d=this.selection.getRange();d.txtToElmBoundary(!0);var e=d.startContainer;if(domUtils.isTagNode(e,"pre")&&d.collapsed&&domUtils.isStartInblock(d)){var f=a.document.createElement("p");return domUtils.fillNode(a.document,f),e.parentNode.insertBefore(f,e),domUtils.remove(e),d.setStart(f,0).setCursor(!1,!0),domUtils.preventDefault(c),!0}})},UE.commands.cleardoc={execCommand:function(a){var b=this,c=b.options.enterTag,d=b.selection.getRange();"br"==c?(b.body.innerHTML="
    ",d.setStart(b.body,0).setCursor()):(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",d.setStart(b.body.firstChild,0).setCursor(!1,!0)),setTimeout(function(){b.fireEvent("clearDoc")},0)}},UE.plugin.register("anchor",function(){return{bindEvents:{ready:function(){utils.cssRule("anchor",".anchorclass{background: url('"+this.options.themePath+this.options.theme+"/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",this.document)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){var b;(b=a.getAttr("anchorname"))&&(a.tagName="a",a.setAttr({anchorname:"",name:b,"class":""}))})},inputRule:function(a){utils.each(a.getNodesByTagName("a"),function(a){var b;(b=a.getAttr("name"))&&!a.getAttr("href")&&(a.tagName="img",a.setAttr({anchorname:a.getAttr("name"),"class":"anchorclass"}),a.setAttr("name"))})},commands:{anchor:{execCommand:function(a,b){var c=this.selection.getRange(),d=c.getClosedNode();if(d&&d.getAttribute("anchorname"))b?d.setAttribute("anchorname",b):(c.setStartBefore(d).setCursor(),domUtils.remove(d));else if(b){var e=this.document.createElement("img");c.collapse(!0),domUtils.setAttributes(e,{anchorname:b,"class":"anchorclass"}),c.insertNode(e).setStartAfter(e).setCursor(!1,!0)}}}}}}),UE.plugins.wordcount=function(){var a=this;a.setOpt("wordCount",!0),a.addListener("contentchange",function(){a.fireEvent("wordcount")});var b;a.addListener("ready",function(){var a=this;domUtils.on(a.body,"keyup",function(c){var d=c.keyCode||c.which,e={16:1,18:1,20:1,37:1,38:1,39:1,40:1};d in e||(clearTimeout(b),b=setTimeout(function(){a.fireEvent("wordcount")},200))})})},UE.plugins.pagebreak=function(){function a(a){if(domUtils.isEmptyBlock(a)){for(var b,d=a.firstChild;d&&1==d.nodeType&&domUtils.isEmptyBlock(d);)b=d,d=d.firstChild;!b&&(b=a),domUtils.fillNode(c.document,b)}}function b(a){return a&&1==a.nodeType&&"HR"==a.tagName&&"pagebreak"==a.className}var c=this,d=["td"];c.setOpt("pageBreakTag","_ueditor_page_break_tag_"),c.ready(function(){utils.cssRule("pagebreak",".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}",c.document)}),c.addInputRule(function(a){a.traversal(function(a){if("text"==a.type&&a.data==c.options.pageBreakTag){var b=UE.uNode.createElement('
    ');a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.addOutputRule(function(a){utils.each(a.getNodesByTagName("hr"),function(a){if("pagebreak"==a.getAttr("class")){var b=UE.uNode.createText(c.options.pageBreakTag);a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.commands.pagebreak={execCommand:function(){var e=c.selection.getRange(),f=c.document.createElement("hr");domUtils.setAttributes(f,{"class":"pagebreak",noshade:"noshade",size:"5"}),domUtils.unSelectable(f);var g,h=domUtils.findParentByTagName(e.startContainer,d,!0),i=[];if(h)switch(h.tagName){case"TD":if(g=h.parentNode,g.previousSibling)g.parentNode.insertBefore(f,g),i=domUtils.findParents(f);else{var j=domUtils.findParentByTagName(g,"table");j.parentNode.insertBefore(f,j),i=domUtils.findParents(f,!0)}g=i[1],f!==g&&domUtils.breakParent(f,g),c.fireEvent("afteradjusttable",c.document)}else{if(!e.collapsed){e.deleteContents();for(var k=e.startContainer;!domUtils.isBody(k)&&domUtils.isBlockElm(k)&&domUtils.isEmptyNode(k);)e.setStartBefore(k).collapse(!0),domUtils.remove(k),k=e.startContainer}e.insertNode(f);for(var l,g=f.parentNode;!domUtils.isBody(g);)domUtils.breakParent(f,g),l=f.nextSibling,l&&domUtils.isEmptyBlock(l)&&domUtils.remove(l),g=f.parentNode;l=f.nextSibling;var m=f.previousSibling;if(b(m)?domUtils.remove(m):m&&a(m),l)b(l)?domUtils.remove(l):a(l),e.setEndAfter(f).collapse(!1);else{var n=c.document.createElement("p");f.parentNode.appendChild(n),domUtils.fillNode(c.document,n),e.setStart(n,0).collapse(!0)}e.select(!0)}}}},UE.plugin.register("wordimage",function(){var a=this,b=[];return{commands:{wordimage:{execCommand:function(){for(var b,c=domUtils.getElementsByTagName(a.body,"img"),d=[],e=0;b=c[e++];){var f=b.getAttribute("word_img");f&&d.push(f)}return d},queryCommandState:function(){b=domUtils.getElementsByTagName(a.body,"img");for(var c,d=0;c=b[d++];)if(c.getAttribute("word_img"))return 1;return-1},notNeedUndo:!0}},inputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c=b.attrs,d=parseInt(c.width)<128||parseInt(c.height)<43,e=a.options,f=e.UEDITOR_HOME_URL+"themes/default/images/spacer.gif";c.src&&/^(?:(file:\/+))/.test(c.src)&&b.setAttr({width:c.width,height:c.height,alt:c.alt,word_img:c.src,src:f,style:"background:url("+(d?e.themePath+e.theme+"/images/word.gif":e.langPath+e.lang+"/images/localimage.png")+") no-repeat center center;border:1px solid #ddd"})})}}}),UE.plugins.dragdrop=function(){var a=this;a.ready(function(){domUtils.on(this.body,"dragend",function(){var b=a.selection.getRange(),c=b.getClosedNode()||a.selection.getStart();if(c&&"IMG"==c.tagName){for(var d,e=c.previousSibling;(d=c.nextSibling)&&1==d.nodeType&&"SPAN"==d.tagName&&!d.firstChild;)domUtils.remove(d);(!e||1!=e.nodeType||domUtils.isEmptyBlock(e))&&e||d&&(!d||domUtils.isEmptyBlock(d))||(e&&"P"==e.tagName&&!domUtils.isEmptyBlock(e)?(e.appendChild(c),domUtils.moveChild(d,e),domUtils.remove(d)):d&&"P"==d.tagName&&!domUtils.isEmptyBlock(d)&&d.insertBefore(c,d.firstChild),e&&"P"==e.tagName&&domUtils.isEmptyBlock(e)&&domUtils.remove(e),d&&"P"==d.tagName&&domUtils.isEmptyBlock(d)&&domUtils.remove(d),b.selectNode(c).select(),a.fireEvent("saveScene"))}})}),a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(13==d){var e,f=a.selection.getRange();(e=domUtils.findParentByTagName(f.startContainer,"p",!0))&&"center"==domUtils.getComputedStyle(e,"text-align")&&domUtils.removeStyle(e,"text-align")}})},UE.plugins.undo=function(){function a(a,b){if(a.length!=b.length)return 0;for(var c=0,d=a.length;cf&&this.list.shift(),this.index=this.list.length-1,this.clearKey(),this.update())},this.update=function(){this.hasRedo=!!this.list[this.index+1],this.hasUndo=!!this.list[this.index-1]},this.reset=function(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.clearKey()},this.clearKey=function(){m=0,k=null}}var d,e=this,f=e.options.maxUndoCount||20,g=e.options.maxInputCount||20,h=new RegExp(domUtils.fillChar+"|","gi"),i={ol:1,ul:1,table:1,tbody:1,tr:1,body:1},j=e.options.autoClearEmptyNode;e.undoManger=new c,e.undoManger.editor=e,e.addListener("saveScene",function(){var a=Array.prototype.splice.call(arguments,1);this.undoManger.save.apply(this.undoManger,a)}),e.addListener("reset",function(a,b){b||this.undoManger.reset()}),e.commands.redo=e.commands.undo={execCommand:function(a){this.undoManger[a]()},queryCommandState:function(a){return this.undoManger["has"+("undo"==a.toLowerCase()?"Undo":"Redo")]?0:-1},notNeedUndo:1};var k,l={16:1,17:1,18:1,37:1,38:1,39:1,40:1},m=0,n=!1;e.addListener("ready",function(){domUtils.on(this.body,"compositionstart",function(){n=!0}),domUtils.on(this.body,"compositionend",function(){n=!1})}),e.addshortcutkey({Undo:"ctrl+90",Redo:"ctrl+89"});var o=!0;e.addListener("keydown",function(a,b){function c(a){a.undoManger.save(!1,!0),a.fireEvent("selectionchange")}var e=this,f=b.keyCode||b.which;if(!(l[f]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;if(!e.selection.getRange().collapsed)return e.undoManger.save(!1,!0),void(o=!1);0==e.undoManger.list.length&&e.undoManger.save(!0),clearTimeout(d),d=setTimeout(function(){if(n)var a=setInterval(function(){n||(c(e),clearInterval(a))},300);else c(e)},200),k=f,m++,m>=g&&c(e)}}),e.addListener("keyup",function(a,b){var c=b.keyCode||b.which;if(!(l[c]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;o||(this.undoManger.save(!1,!0),o=!0)}}),e.stopCmdUndo=function(){e.__hasEnterExecCommand=!0},e.startCmdUndo=function(){e.__hasEnterExecCommand=!1}},UE.plugin.register("copy",function(){function a(){ZeroClipboard.config({debug:!1,swfPath:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.swf"});var a=b.zeroclipboard=new ZeroClipboard;a.on("copy",function(a){var c=a.client,d=b.selection.getRange(),e=document.createElement("div");e.appendChild(d.cloneContents()),c.setText(e.innerText||e.textContent),c.setHtml(e.innerHTML),d.select()}),a.on("mouseover mouseout",function(a){var b=a.target;"mouseover"==a.type?domUtils.addClass(b,"edui-state-hover"):"mouseout"==a.type&&domUtils.removeClasses(b,"edui-state-hover")}),a.on("wrongflash noflash",function(){ZeroClipboard.destroy()})}var b=this;return{bindEvents:{ready:function(){browser.ie||(window.ZeroClipboard?a():utils.loadFile(document,{src:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.js",tag:"script",type:"text/javascript",defer:"defer"},function(){a()}))}},commands:{copy:{execCommand:function(a){b.document.execCommand("copy")||alert(b.getLang("copymsg"))}}}}}),UE.plugins.paste=function(){function a(a){var b=this.document;if(!b.getElementById("baidu_pastebin")){var c=this.selection.getRange(),d=c.createBookmark(),e=b.createElement("div");e.id="baidu_pastebin",browser.webkit&&e.appendChild(b.createTextNode(domUtils.fillChar+domUtils.fillChar)),b.body.appendChild(e),d.start.style.display="",e.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:"+domUtils.getXY(d.start).y+"px",c.selectNodeContents(e).select(!0),setTimeout(function(){if(browser.webkit)for(var f,g=0,h=b.querySelectorAll("#baidu_pastebin");f=h[g++];){if(!domUtils.isEmptyNode(f)){e=f;break}domUtils.remove(f)}try{e.parentNode.removeChild(e)}catch(i){}c.moveToBookmark(d).select(!0),a(e)},0)}}function b(a){return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi,function(a,b,c,d){return c=c.toLowerCase(),{img:1}[c]?a:(d=d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,function(a,b,c){return{src:1,href:1,name:1}[b.toLowerCase()]?b+"="+c+" ":""}),{span:1,div:1}[c]?"":"<"+b+c+" "+utils.trim(d)+">")})}function c(a){var c;if(a.firstChild){for(var h,i=domUtils.getElementsByTagName(a,"span"),j=0;h=i[j++];)"_baidu_cut_start"!=h.id&&"_baidu_cut_end"!=h.id||domUtils.remove(h);if(browser.webkit){for(var k,l=a.querySelectorAll("div br"),j=0;k=l[j++];){var m=k.parentNode;"DIV"==m.tagName&&1==m.childNodes.length&&(m.innerHTML="


    ",domUtils.remove(m))}for(var n,o=a.querySelectorAll("#baidu_pastebin"),j=0;n=o[j++];){var p=d.document.createElement("p");for(n.parentNode.insertBefore(p,n);n.firstChild;)p.appendChild(n.firstChild);domUtils.remove(n)}for(var q,r=a.querySelectorAll("meta"),j=0;q=r[j++];)domUtils.remove(q);var l=a.querySelectorAll("br");for(j=0;q=l[j++];)/^apple-/i.test(q.className)&&domUtils.remove(q)}if(browser.gecko){var s=a.querySelectorAll("[_moz_dirty]");for(j=0;q=s[j++];)q.removeAttribute("_moz_dirty")}if(!browser.ie)for(var q,t=a.querySelectorAll("span.Apple-style-span"),j=0;q=t[j++];)domUtils.remove(q,!0);c=a.innerHTML,c=UE.filterWord(c);var u=UE.htmlparser(c);if(d.options.filterRules&&UE.filterNode(u,d.options.filterRules),d.filterInputRule(u),browser.webkit){var v=u.lastChild();v&&"element"==v.type&&"br"==v.tagName&&u.removeChild(v),utils.each(d.body.querySelectorAll("div"),function(a){domUtils.isEmptyBlock(a)&&domUtils.remove(a,!0)})}if(c={html:u.toHtml()},d.fireEvent("beforepaste",c,u),!c.html)return;u=UE.htmlparser(c.html,!0),1===d.queryCommandState("pasteplain")?d.execCommand("insertHtml",UE.filterNode(u,d.options.filterTxtRules).toHtml(),!0):(UE.filterNode(u,d.options.filterTxtRules),e=u.toHtml(),f=c.html,g=d.selection.getRange().createAddress(!0),d.execCommand("insertHtml",d.getOpt("retainOnlyLabelPasted")===!0?b(f):f,!0)),d.fireEvent("afterpaste",c)}}var d=this;d.setOpt({retainOnlyLabelPasted:!1});var e,f,g;d.addListener("pasteTransfer",function(a,c){if(g&&e&&f&&e!=f){var h=d.selection.getRange();if(h.moveToAddress(g,!0),!h.collapsed){for(;!domUtils.isBody(h.startContainer);){var i=h.startContainer;if(1==i.nodeType){if(i=i.childNodes[h.startOffset],!i){h.setStartBefore(h.startContainer);continue}var j=i.previousSibling;j&&3==j.nodeType&&new RegExp("^[\n\r\t "+domUtils.fillChar+"]*$").test(j.nodeValue)&&h.setStartBefore(j)}if(0!=h.startOffset)break;h.setStartBefore(h.startContainer)}for(;!domUtils.isBody(h.endContainer);){var k=h.endContainer;if(1==k.nodeType){if(k=k.childNodes[h.endOffset],!k){h.setEndAfter(h.endContainer);continue}var l=k.nextSibling;l&&3==l.nodeType&&new RegExp("^[\n\r\t"+domUtils.fillChar+"]*$").test(l.nodeValue)&&h.setEndAfter(l)}if(h.endOffset!=h.endContainer[3==h.endContainer.nodeType?"nodeValue":"childNodes"].length)break;h.setEndAfter(h.endContainer)}}h.deleteContents(),h.select(!0),d.__hasEnterExecCommand=!0;var m=f;2===c?m=b(m):c&&(m=e),d.execCommand("inserthtml",m,!0),d.__hasEnterExecCommand=!1;for(var n=d.selection.getRange();!domUtils.isBody(n.startContainer)&&!n.startOffset&&n.startContainer[3==n.startContainer.nodeType?"nodeValue":"childNodes"].length;)n.setStartBefore(n.startContainer);var o=n.createAddress(!0);g.endAddress=o.startAddress}}),d.addListener("ready",function(){domUtils.on(d.body,"cut",function(){var a=d.selection.getRange();!a.collapsed&&d.undoManger&&d.undoManger.save()}),domUtils.on(d.body,browser.ie||browser.opera?"keydown":"paste",function(b){(!browser.ie&&!browser.opera||(b.ctrlKey||b.metaKey)&&"86"==b.keyCode)&&a.call(d,function(a){c(a)})})}),d.commands.paste={execCommand:function(b){browser.ie?(a.call(d,function(a){c(a)}),d.document.execCommand("paste")):alert(d.getLang("pastemsg"))}}},UE.plugins.pasteplain=function(){var a=this;a.setOpt({pasteplain:!1,filterTxtRules:function(){function a(a){a.tagName="p",a.setStyle()}function b(a){a.parentNode.removeChild(a,!0)}return{"-":"script style object iframe embed input select",p:{$:{}},br:{$:{}},div:function(a){for(var b,c=UE.uNode.createElement("p");b=a.firstChild();)"text"!=b.type&&UE.dom.dtd.$block[b.tagName]?c.firstChild()?(a.parentNode.insertBefore(c,a),c=UE.uNode.createElement("p")):a.parentNode.insertBefore(b,a):c.appendChild(b);c.firstChild()&&a.parentNode.insertBefore(c,a),a.parentNode.removeChild(a)},ol:b,ul:b,dl:b,dt:b,dd:b,li:b,caption:a,th:a,tr:a,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,td:function(a){var b=!!a.innerText();b&&a.parentNode.insertAfter(UE.uNode.createText("    "),a),a.parentNode.removeChild(a,a.innerText())}}}()});var b=a.options.pasteplain;a.commands.pasteplain={queryCommandState:function(){return b?1:0},execCommand:function(){b=0|!b},notNeedUndo:1}},UE.plugins.list=function(){function a(a){var b=[];for(var c in a)b.push(c);return b}function b(a){var b=a.className;return domUtils.hasClass(a,/custom_/)?b.match(/custom_(\w+)/)[1]:domUtils.getStyle(a,"list-style-type")}function c(a,c){utils.each(domUtils.getElementsByTagName(a,"ol ul"),function(f){if(domUtils.inDoc(f,a)){var g=f.parentNode;if(g.tagName==f.tagName){var h=b(f)||("OL"==f.tagName?"decimal":"disc"),i=b(g)||("OL"==g.tagName?"decimal":"disc");if(h==i){var l=utils.indexOf(k[f.tagName],h);l=l+1==k[f.tagName].length?0:l+1,e(f,k[f.tagName][l])}}var m=0,n=2;domUtils.hasClass(f,/custom_/)?/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)||(n=1):/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)&&(n=3);var o=domUtils.getStyle(f,"list-style-type");o&&(f.style.cssText="list-style-type:"+o),f.className=utils.trim(f.className.replace(/list-paddingleft-\w+/,""))+" list-paddingleft-"+n,utils.each(domUtils.getElementsByTagName(f,"li"),function(a){if(a.style.cssText&&(a.style.cssText=""),!a.firstChild)return void domUtils.remove(a);if(a.parentNode===f){if(m++,domUtils.hasClass(f,/custom_/)){var c=1,d=b(f);if("OL"==f.tagName){if(d)switch(d){case"cn":case"cn1":case"cn2":m>10&&(m%10==0||m>10&&m<20)?c=2:m>20&&(c=3);break;case"num2":m>9&&(c=2)}a.className="list-"+j[d]+m+" list-"+d+"-paddingleft-"+c}else a.className="list-"+j[d]+" list-"+d+"-paddingleft"}else a.className=a.className.replace(/list-[\w\-]+/gi,"");var e=a.getAttribute("class");null===e||e.replace(/\s/g,"")||domUtils.removeAttributes(a,"class")}}),!c&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getStyle(f,"list-style-type"),!0)}})}function d(a,d,e,f){var g=a.nextSibling;g&&1==g.nodeType&&g.tagName.toLowerCase()==d&&(b(g)||domUtils.getStyle(g,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&(domUtils.moveChild(g,a),0==g.childNodes.length&&domUtils.remove(g)),g&&domUtils.isFillChar(g)&&domUtils.remove(g);var h=a.previousSibling;h&&1==h.nodeType&&h.tagName.toLowerCase()==d&&(b(h)||domUtils.getStyle(h,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&domUtils.moveChild(a,h),h&&domUtils.isFillChar(h)&&domUtils.remove(h),!f&&domUtils.isEmptyBlock(a)&&domUtils.remove(a),b(a)&&c(a.ownerDocument,!0)}function e(a,b){j[b]&&(a.className="custom_"+b);try{domUtils.setStyle(a,"list-style-type",b)}catch(c){}}function f(a){var b=a.previousSibling;b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b),b=a.nextSibling,b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b)}function g(a){for(;a&&!domUtils.isBody(a);){if("TABLE"==a.nodeName)return null;if("LI"==a.nodeName)return a;a=a.parentNode}}var h=this,i={TD:1,PRE:1,BLOCKQUOTE:1},j={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};h.setOpt({autoTransWordToList:!1,insertorderedlist:{num:"",num1:"",num2:"",cn:"",cn1:"",cn2:"",decimal:"","lower-alpha":"","lower-roman":"","upper-alpha":"","upper-roman":""},insertunorderedlist:{circle:"",disc:"",square:"",dash:"",dot:""},listDefaultPaddingLeft:"30",listiconpath:"http://bs.baidu.com/listicon/",maxListLevel:-1,disablePInList:!1});var k={OL:a(h.options.insertorderedlist),UL:a(h.options.insertunorderedlist)},l=h.options.listiconpath;for(var m in j)h.options.insertorderedlist.hasOwnProperty(m)||h.options.insertunorderedlist.hasOwnProperty(m)||delete j[m];h.ready(function(){var a=[];for(var b in j){if("dash"==b||"dot"==b)a.push("li.list-"+j[b]+"{background-image:url("+l+j[b]+".gif)}"),a.push("ul.custom_"+b+"{list-style:none;}ul.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}");else{for(var c=0;c<99;c++)a.push("li.list-"+j[b]+c+"{background-image:url("+l+"list-"+j[b]+c+".gif)}");a.push("ol.custom_"+b+"{list-style:none;}ol.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(b){case"cn":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.push("li.list-"+b+"-paddingleft-1{padding-left:30px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.push("li.list-"+b+"-paddingleft-1{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:55px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}");break;case"num2":a.push("li.list-"+b+"-paddingleft-1{padding-left:35px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}");break;case"dash":a.push("li.list-"+b+"-paddingleft{padding-left:35px}");break;case"dot":a.push("li.list-"+b+"-paddingleft{padding-left:20px}")}}a.push(".list-paddingleft-1{padding-left:0}"),a.push(".list-paddingleft-2{padding-left:"+h.options.listDefaultPaddingLeft+"px}"),a.push(".list-paddingleft-3{padding-left:"+2*h.options.listDefaultPaddingLeft+"px}"),utils.cssRule("list","ol,ul{margin:0;pading:0;"+(browser.ie?"":"width:95%")+"}li{clear:both;}"+a.join("\n"),h.document)}),h.ready(function(){domUtils.on(h.body,"cut",function(){setTimeout(function(){var a,b=h.selection.getRange();if(!b.collapsed&&(a=domUtils.findParentByTagName(b.startContainer,"li",!0))&&!a.nextSibling&&domUtils.isEmptyBlock(a)){var c,d=a.parentNode;if(c=d.previousSibling)domUtils.remove(d),b.setStartAtLast(c).collapse(!0),b.select(!0);else if(c=d.nextSibling)domUtils.remove(d),b.setStartAtFirst(c).collapse(!0),b.select(!0);else{var e=h.document.createElement("p");domUtils.fillNode(h.document,e),d.parentNode.insertBefore(e,d),domUtils.remove(d),b.setStart(e,0).collapse(!0),b.select(!0)}}})})}),h.addListener("beforepaste",function(a,c){var d,e=this,f=e.selection.getRange(),g=UE.htmlparser(c.html,!0);if(d=domUtils.findParentByTagName(f.startContainer,"li",!0)){var h=d.parentNode,i="OL"==h.tagName?"ul":"ol";utils.each(g.getNodesByTagName(i),function(c){if(c.tagName=h.tagName,c.setAttr(),c.parentNode===g)a=b(h)||("OL"==h.tagName?"decimal":"disc");else{var d=c.parentNode.getAttr("class");a=d&&/custom_/.test(d)?d.match(/custom_(\w+)/)[1]:c.parentNode.getStyle("list-style-type"),a||(a="OL"==h.tagName?"decimal":"disc")}var e=utils.indexOf(k[h.tagName],a);c.parentNode!==g&&(e=e+1==k[h.tagName].length?0:e+1);var f=k[h.tagName][e];j[f]?c.setAttr("class","custom_"+f):c.setStyle("list-style-type",f)})}c.html=g.toHtml()}),h.getOpt("disablePInList")===!0&&h.addOutputRule(function(a){utils.each(a.getNodesByTagName("li"),function(a){var b=[],c=0;utils.each(a.children,function(d){if("p"==d.tagName){for(var e;e=d.children.pop();)b.splice(c,0,e),e.parentNode=a,lastNode=e;if(e=b[b.length-1],!e||"element"!=e.type||"br"!=e.tagName){var f=UE.uNode.createElement("br");f.parentNode=a,b.push(f)}c=b.length}}),b.length&&(a.children=b)})}),h.addInputRule(function(a){function b(a,b){var e=b.firstChild();if(e&&"element"==e.type&&"span"==e.tagName&&/Wingdings|Symbol/.test(e.getStyle("font-family"))){for(var f in d)if(d[f]==e.data)return f;return"disc"}for(var f in c)if(c[f].test(a))return f}if(utils.each(a.getNodesByTagName("li"),function(a){for(var b,c=UE.uNode.createElement("p"),d=0;b=a.children[d];)"text"==b.type||dtd.p[b.tagName]?c.appendChild(b):c.firstChild()?(a.insertBefore(c,b),c=UE.uNode.createElement("p"),d+=2):d++;(c.firstChild()&&!c.parentNode||!a.firstChild())&&a.appendChild(c),c.firstChild()||c.innerHTML(browser.ie?" ":"
    ");var e=a.firstChild(),f=e.lastChild();f&&"text"==f.type&&/^\s*$/.test(f.data)&&e.removeChild(f)}),h.options.autoTransWordToList){var c={num1:/^\d+\)/,decimal:/^\d+\./,"lower-alpha":/^[a-z]+\)/,"upper-alpha":/^[A-Z]+\./,cn:/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,cn2:/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/},d={square:"n"};utils.each(a.getNodesByTagName("p"),function(a){function d(a,b,d){if("ol"==a.tagName)if(browser.ie){var e=b.firstChild();"element"==e.type&&"span"==e.tagName&&c[d].test(e.innerText())&&b.removeChild(e)}else b.innerHTML(b.innerHTML().replace(c[d],""));else b.removeChild(b.firstChild());var f=UE.uNode.createElement("li");f.appendChild(b),a.appendChild(f)}if("MsoListParagraph"==a.getAttr("class")){a.setStyle("margin",""),a.setStyle("margin-left",""),a.setAttr("class","");var e,f=a,g=a;if("li"!=a.parentNode.tagName&&(e=b(a.innerText(),a))){var i=UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e)?"ol":"ul");for(j[e]?i.setAttr("class","custom_"+e):i.setStyle("list-style-type",e);a&&"li"!=a.parentNode.tagName&&b(a.innerText(),a);)f=a.nextSibling(),f||a.parentNode.insertBefore(i,a),d(i,a,e),a=f;!i.parentNode&&a&&a.parentNode&&a.parentNode.insertBefore(i,a)}var k=g.firstChild();k&&"element"==k.type&&"span"==k.tagName&&/^\s*( )+\s*$/.test(k.innerText())&&k.parentNode.removeChild(k)}})}}),h.addListener("contentchange",function(){c(h.document)}),h.addListener("keydown",function(a,b){function c(){b.preventDefault?b.preventDefault():b.returnValue=!1,h.fireEvent("contentchange"),h.undoManger&&h.undoManger.save()}function d(a,b){for(;a&&!domUtils.isBody(a);){if(b(a))return null;if(1==a.nodeType&&/[ou]l/i.test(a.tagName))return a;a=a.parentNode}return null}var e=b.keyCode||b.which;if(13==e&&!b.shiftKey){var g=h.selection.getRange(),i=domUtils.findParent(g.startContainer,function(a){return domUtils.isBlockElm(a)},!0),j=domUtils.findParentByTagName(g.startContainer,"li",!0);if(i&&"PRE"!=i.tagName&&!j){var k=i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"),"");/^\s*1\s*\.[^\d]/.test(k)&&(i.innerHTML=k.replace(/^\s*1\s*\./,""),g.setStartAtLast(i).collapse(!0).select(),h.__hasEnterExecCommand=!0,h.execCommand("insertorderedlist"),h.__hasEnterExecCommand=!1)}var l=h.selection.getRange(),m=d(l.startContainer,function(a){return"TABLE"==a.tagName}),n=l.collapsed?m:d(l.endContainer,function(a){return"TABLE"==a.tagName});if(m&&n&&m===n){if(!l.collapsed){if(m=domUtils.findParentByTagName(l.startContainer,"li",!0),n=domUtils.findParentByTagName(l.endContainer,"li",!0),!m||!n||m!==n){var o=l.cloneRange(),p=o.collapse(!1).createBookmark();l.deleteContents(),o.moveToBookmark(p);var j=domUtils.findParentByTagName(o.startContainer,"li",!0);return f(j),o.select(),void c()}if(l.deleteContents(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isEmptyBlock(j))return v=j.previousSibling,next=j.nextSibling,s=h.document.createElement("p"),domUtils.fillNode(h.document,s),q=j.parentNode,v&&next?(l.setStart(next,0).collapse(!0).select(!0),domUtils.remove(j)):((v||next)&&v?j.parentNode.parentNode.insertBefore(s,q.nextSibling):q.parentNode.insertBefore(s,q),domUtils.remove(j),q.firstChild||domUtils.remove(q), -l.setStart(s,0).setCursor()),void c()}if(j=domUtils.findParentByTagName(l.startContainer,"li",!0)){if(domUtils.isEmptyBlock(j)){p=l.createBookmark();var q=j.parentNode;if(j!==q.lastChild?(domUtils.breakParent(j,q),f(j)):(q.parentNode.insertBefore(j,q.nextSibling),domUtils.isEmptyNode(q)&&domUtils.remove(q)),!dtd.$list[j.parentNode.tagName])if(domUtils.isBlockElm(j.firstChild))domUtils.remove(j,!0);else{for(s=h.document.createElement("p"),j.parentNode.insertBefore(s,j);j.firstChild;)s.appendChild(j.firstChild);domUtils.remove(j)}l.moveToBookmark(p).select()}else{var r=j.firstChild;if(!r||!domUtils.isBlockElm(r)){var s=h.document.createElement("p");for(!j.firstChild&&domUtils.fillNode(h.document,s);j.firstChild;)s.appendChild(j.firstChild);j.appendChild(s),r=s}var t=h.document.createElement("span");l.insertNode(t),domUtils.breakParent(t,j);var u=t.nextSibling;r=u.firstChild,r||(s=h.document.createElement("p"),domUtils.fillNode(h.document,s),u.appendChild(s),r=s),domUtils.isEmptyNode(r)&&(r.innerHTML="",domUtils.fillNode(h.document,r)),l.setStart(r,0).collapse(!0).shrinkBoundary().select(),domUtils.remove(t);var v=u.previousSibling;v&&domUtils.isEmptyBlock(v)&&(v.innerHTML="

    ",domUtils.fillNode(h.document,v.firstChild))}c()}}}if(8==e&&(l=h.selection.getRange(),l.collapsed&&domUtils.isStartInblock(l)&&(o=l.cloneRange().trimBoundary(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isStartInblock(o)))){if(m=domUtils.findParentByTagName(l.startContainer,"p",!0),m&&m!==j.firstChild){var q=domUtils.findParentByTagName(m,["ol","ul"]);return domUtils.breakParent(m,q),f(m),h.fireEvent("contentchange"),l.setStart(m,0).setCursor(!1,!0),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&(v=j.previousSibling)){if(46==e&&j.childNodes.length)return;if(dtd.$list[v.tagName]&&(v=v.lastChild),h.undoManger&&h.undoManger.save(),r=j.firstChild,domUtils.isBlockElm(r))if(domUtils.isEmptyNode(r))for(v.appendChild(r),l.setStart(r,0).setCursor(!1,!0);j.firstChild;)v.appendChild(j.firstChild);else t=h.document.createElement("span"),l.insertNode(t),domUtils.isEmptyBlock(v)&&(v.innerHTML=""),domUtils.moveChild(j,v),l.setStartBefore(t).collapse(!0).select(!0),domUtils.remove(t);else if(domUtils.isEmptyNode(j)){var s=h.document.createElement("p");v.appendChild(s),l.setStart(s,0).setCursor()}else for(l.setEnd(v,v.childNodes.length).collapse().select(!0);j.firstChild;)v.appendChild(j.firstChild);return domUtils.remove(j),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&!j.previousSibling){var q=j.parentNode,p=l.createBookmark();if(domUtils.isTagNode(q.parentNode,"ol ul"))q.parentNode.insertBefore(j,q),domUtils.isEmptyNode(q)&&domUtils.remove(q);else{for(;j.firstChild;)q.parentNode.insertBefore(j.firstChild,q);domUtils.remove(j),domUtils.isEmptyNode(q)&&domUtils.remove(q)}return l.moveToBookmark(p).setCursor(!1,!0),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}}}),h.addListener("keyup",function(a,c){var e=c.keyCode||c.which;if(8==e){var f,g=h.selection.getRange();(f=domUtils.findParentByTagName(g.startContainer,["ol","ul"],!0))&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getComputedStyle(f,"list-style-type"),!0)}}),h.addListener("tabkeydown",function(){function a(a){if(h.options.maxListLevel!=-1){for(var b=a.parentNode,c=0;/[ou]l/i.test(b.tagName);)c++,b=b.parentNode;if(c>=h.options.maxListLevel)return!0}}var c=h.selection.getRange(),f=domUtils.findParentByTagName(c.startContainer,"li",!0);if(f){var g;if(!c.collapsed){h.fireEvent("saveScene"),g=c.createBookmark();for(var i,j,l=0,m=domUtils.findParents(f);j=m[l++];)if(domUtils.isTagNode(j,"ol ul")){i=j;break}var n=f;if(g.end)for(;n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);)if(a(n))n=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});else{var o=n.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type")),r=q+1==k[p.tagName].length?0:q+1,s=k[p.tagName][r];for(e(p,s),o.insertBefore(p,n);n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);){if(f=n.nextSibling,p.appendChild(n),!f||domUtils.isTagNode(f,"ol ul")){if(f)for(;(f=f.firstChild)&&"LI"!=f.tagName;);else f=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});break}n=f}d(p,p.tagName.toLowerCase(),s),n=f}return h.fireEvent("contentchange"),c.moveToBookmark(g).select(),!0}if(a(f))return!0;var o=f.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type"));q=q+1==k[p.tagName].length?0:q+1;var s=k[p.tagName][q];if(e(p,s),domUtils.isStartInblock(c))return h.fireEvent("saveScene"),g=c.createBookmark(),o.insertBefore(p,f),p.appendChild(f),d(p,p.tagName.toLowerCase(),s),h.fireEvent("contentchange"),c.moveToBookmark(g).select(!0),!0}}),h.commands.insertorderedlist=h.commands.insertunorderedlist={execCommand:function(a,c){c||(c="insertorderedlist"==a.toLowerCase()?"decimal":"disc");var f=this,h=this.selection.getRange(),j=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},k="insertorderedlist"==a.toLowerCase()?"ol":"ul",l=f.document.createDocumentFragment();h.adjustmentBoundary().shrinkBoundary();var m,n,o,p,q=h.createBookmark(!0),r=g(f.document.getElementById(q.start)),s=0,t=g(f.document.getElementById(q.end)),u=0;if(r||t){if(r&&(m=r.parentNode),q.end||(t=r),t&&(n=t.parentNode),m===n){for(;r!==t;){if(p=r,r=r.nextSibling,!domUtils.isBlockElm(p.firstChild)){for(var v=f.document.createElement("p");p.firstChild;)v.appendChild(p.firstChild);p.appendChild(v)}l.appendChild(p)}if(p=f.document.createElement("span"),m.insertBefore(p,t),!domUtils.isBlockElm(t.firstChild)){for(v=f.document.createElement("p");t.firstChild;)v.appendChild(t.firstChild);t.appendChild(v)}l.appendChild(t),domUtils.breakParent(p,m),domUtils.isEmptyNode(p.previousSibling)&&domUtils.remove(p.previousSibling),domUtils.isEmptyNode(p.nextSibling)&&domUtils.remove(p.nextSibling);var w=b(m)||domUtils.getComputedStyle(m,"list-style-type")||("insertorderedlist"==a.toLowerCase()?"decimal":"disc");if(m.tagName.toLowerCase()==k&&w==c){for(var x,y=0,z=f.document.createDocumentFragment();x=l.firstChild;)if(domUtils.isTagNode(x,"ol ul"))z.appendChild(x);else for(;x.firstChild;)z.appendChild(x.firstChild),domUtils.remove(x);p.parentNode.insertBefore(z,p)}else o=f.document.createElement(k),e(o,c),o.appendChild(l),p.parentNode.insertBefore(o,p);return domUtils.remove(p),o&&d(o,k,c),void h.moveToBookmark(q).select()}if(r){for(;r;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(var A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);if(B)l.appendChild(A);else{var C=f.document.createElement("p");C.appendChild(A),l.appendChild(C)}domUtils.remove(r)}r=p}m.parentNode.insertBefore(l,m.nextSibling),domUtils.isEmptyNode(m)?(h.setStartBefore(m),domUtils.remove(m)):h.setStartAfter(m),s=1}if(t&&domUtils.inDoc(n,f.document)){for(r=n.firstChild;r&&r!==t;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);B?l.appendChild(A):(C=f.document.createElement("p"),C.appendChild(A),l.appendChild(C)),domUtils.remove(r)}r=p}var D=domUtils.createElement(f.document,"div",{tmpDiv:1});domUtils.moveChild(t,D),l.appendChild(D),domUtils.remove(t),n.parentNode.insertBefore(l,n),h.setEndBefore(n),domUtils.isEmptyNode(n)&&domUtils.remove(n),u=1}}s||h.setStartBefore(f.document.getElementById(q.start)),q.end&&!u&&h.setEndAfter(f.document.getElementById(q.end)),h.enlarge(!0,function(a){return i[a.tagName]}),l=f.document.createDocumentFragment();for(var E,F=h.createBookmark(),G=domUtils.getNextDomNode(F.start,!1,j),H=h.cloneRange(),I=domUtils.isBlockElm;G&&G!==F.end&&domUtils.getPosition(G,F.end)&domUtils.POSITION_PRECEDING;)if(3==G.nodeType||dtd.li[G.tagName]){if(1==G.nodeType&&dtd.$list[G.tagName]){for(;G.firstChild;)l.appendChild(G.firstChild);E=domUtils.getNextDomNode(G,!1,j),domUtils.remove(G),G=E;continue}for(E=G,H.setStartBefore(G);G&&G!==F.end&&(!I(G)||domUtils.isBookmarkNode(G));)E=G,G=domUtils.getNextDomNode(G,!1,null,function(a){return!i[a.tagName]});G&&I(G)&&(p=domUtils.getNextDomNode(E,!1,j),p&&domUtils.isBookmarkNode(p)&&(G=domUtils.getNextDomNode(p,!1,j),E=p)),H.setEndAfter(E),G=domUtils.getNextDomNode(E,!1,j);var J=h.document.createElement("li");if(J.appendChild(H.extractContents()),domUtils.isEmptyNode(J)){for(var E=h.document.createElement("p");J.firstChild;)E.appendChild(J.firstChild);J.appendChild(E)}l.appendChild(J)}else G=domUtils.getNextDomNode(G,!0,j);h.moveToBookmark(F).collapse(!0),o=f.document.createElement(k),e(o,c),o.appendChild(l),h.insertNode(o),d(o,k,c);for(var x,y=0,K=domUtils.getElementsByTagName(o,"div");x=K[y++];)x.getAttribute("tmpDiv")&&domUtils.remove(x,!0);h.moveToBookmark(q).select()},queryCommandState:function(a){for(var b,c="insertorderedlist"==a.toLowerCase()?"ol":"ul",d=this.selection.getStartElementPath(),e=0;b=d[e++];){if("TABLE"==b.nodeName)return 0;if(c==b.nodeName.toLowerCase())return 1}return 0},queryCommandValue:function(a){for(var c,d,e="insertorderedlist"==a.toLowerCase()?"ol":"ul",f=this.selection.getStartElementPath(),g=0;d=f[g++];){if("TABLE"==d.nodeName){c=null;break}if(e==d.nodeName.toLowerCase()){c=d;break}}return c?b(c)||domUtils.getComputedStyle(c,"list-style-type"):null}}},function(){var a={textarea:function(a,b){var c=b.ownerDocument.createElement("textarea");return c.style.cssText="position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;",browser.ie&&browser.version<8&&(c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px",b.onresize=function(){c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px"}),b.appendChild(c),{setContent:function(a){c.value=a},getContent:function(){return c.value},select:function(){var a;browser.ie?(a=c.createTextRange(),a.collapse(!0),a.select()):(c.setSelectionRange(0,0),c.focus())},dispose:function(){b.removeChild(c),b.onresize=null,c=null,b=null}}},codemirror:function(a,b){var c=window.CodeMirror(b,{mode:"text/html",tabMode:"indent",lineNumbers:!0,lineWrapping:!0}),d=c.getWrapperElement();return d.style.cssText='position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;',c.getScrollerElement().style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;",c.refresh(),{getCodeMirror:function(){return c},setContent:function(a){c.setValue(a)},getContent:function(){return c.getValue()},select:function(){c.focus()},dispose:function(){b.removeChild(d),d=null,c=null}}}};UE.plugins.source=function(){function b(b){return a["codemirror"==f.sourceEditor&&window.CodeMirror?"codemirror":"textarea"](e,b)}var c,d,e=this,f=this.options,g=!1;f.sourceEditor=browser.ie?"textarea":f.sourceEditor||"codemirror",e.setOpt({sourceEditorFirst:!1});var h,i,j;e.commands.source={execCommand:function(){if(g=!g){j=e.selection.getRange().createAddress(!1,!0),e.undoManger&&e.undoManger.save(!0),browser.gecko&&(e.body.contentEditable=!1),h=e.iframe.style.cssText,e.iframe.style.cssText+="position:absolute;left:-32768px;top:-32768px;",e.fireEvent("beforegetcontent");var a=UE.htmlparser(e.body.innerHTML);e.filterOutputRule(a),a.traversal(function(a){if("element"==a.type)switch(a.tagName){case"td":case"th":case"caption":a.children&&1==a.children.length&&"br"==a.firstChild().tagName&&a.removeChild(a.firstChild());break;case"pre":a.innerText(a.innerText().replace(/ /g," "))}}),e.fireEvent("aftergetcontent");var f=a.toHtml(!0);c=b(e.iframe.parentNode),c.setContent(f),d=e.setContent,e.setContent=function(a){var b=UE.htmlparser(a);e.filterInputRule(b),a=b.toHtml(),c.setContent(a)},setTimeout(function(){c.select(),e.addListener("fullscreenchanged",function(){try{c.getCodeMirror().refresh()}catch(a){}})}),i=e.getContent,e.getContent=function(){return c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    "}}else{e.iframe.style.cssText=h;var k=c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    ";k=k.replace(new RegExp("[\\r\\t\\n ]*]*)>","g"),function(a,b){return b&&!dtd.$inlineWithA[b.toLowerCase()]?a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,""):a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,"")}),e.setContent=d,e.setContent(k),c.dispose(),c=null,e.getContent=i;var l=e.body.firstChild;if(l||(e.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",l=e.body.firstChild),e.undoManger&&e.undoManger.save(!0),browser.gecko){var m=document.createElement("input");m.style.cssText="position:absolute;left:0;top:-32768px",document.body.appendChild(m),e.body.contentEditable=!1,setTimeout(function(){domUtils.setViewportOffset(m,{left:-32768,top:0}),m.focus(),setTimeout(function(){e.body.contentEditable=!0,e.selection.getRange().moveToAddress(j).select(!0),domUtils.remove(m)})})}else try{e.selection.getRange().moveToAddress(j).select(!0)}catch(n){}}this.fireEvent("sourcemodechanged",g)},queryCommandState:function(){return 0|g},notNeedUndo:1};var k=e.queryCommandState;e.queryCommandState=function(a){return a=a.toLowerCase(),g?a in{source:1,fullscreen:1}?1:-1:k.apply(this,arguments)},"codemirror"==f.sourceEditor&&e.addListener("ready",function(){utils.loadFile(document,{src:f.codeMirrorJsUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.js",tag:"script",type:"text/javascript",defer:"defer"},function(){f.sourceEditorFirst&&setTimeout(function(){e.execCommand("source")},0)}),utils.loadFile(document,{tag:"link",rel:"stylesheet",type:"text/css",href:f.codeMirrorCssUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.css"})})}}(),UE.plugins.enterkey=function(){var a,b=this,c=b.options.enterTag;b.addListener("keyup",function(c,d){var e=d.keyCode||d.which;if(13==e){var f,g=b.selection.getRange(),h=g.startContainer;if(browser.ie)b.fireEvent("saveScene",!0,!0);else{if(/h\d/i.test(a)){if(browser.gecko){var i=domUtils.findParentByTagName(h,["h1","h2","h3","h4","h5","h6","blockquote","caption","table"],!0);i||(b.document.execCommand("formatBlock",!1,"

    "),f=1)}else if(1==h.nodeType){var j,k=b.document.createTextNode("");if(g.insertNode(k),j=domUtils.findParentByTagName(k,"div",!0)){for(var l=b.document.createElement("p");j.firstChild;)l.appendChild(j.firstChild);j.parentNode.insertBefore(l,j),domUtils.remove(j),g.setStartBefore(k).setCursor(),f=1}domUtils.remove(k)}b.undoManger&&f&&b.undoManger.save()}browser.opera&&g.select()}}}),b.addListener("keydown",function(d,e){var f=e.keyCode||e.which;if(13==f){if(b.fireEvent("beforeenterkeydown"))return void domUtils.preventDefault(e);b.fireEvent("saveScene",!0,!0),a="";var g=b.selection.getRange();if(!g.collapsed){var h=g.startContainer,i=g.endContainer,j=domUtils.findParentByTagName(h,"td",!0),k=domUtils.findParentByTagName(i,"td",!0);if(j&&k&&j!==k||!j&&k||j&&!k)return void(e.preventDefault?e.preventDefault():e.returnValue=!1)}if("p"==c)browser.ie||(h=domUtils.findParentByTagName(g.startContainer,["ol","ul","p","h1","h2","h3","h4","h5","h6","blockquote","caption"],!0),h||browser.opera?(a=h.tagName,"p"==h.tagName.toLowerCase()&&browser.gecko&&domUtils.removeDirtyAttr(h)):(b.document.execCommand("formatBlock",!1,"

    "),browser.gecko&&(g=b.selection.getRange(),h=domUtils.findParentByTagName(g.startContainer,"p",!0),h&&domUtils.removeDirtyAttr(h))));else if(e.preventDefault?e.preventDefault():e.returnValue=!1,g.collapsed){m=g.document.createElement("br"),g.insertNode(m);var l=m.parentNode;l.lastChild===m?(m.parentNode.insertBefore(m.cloneNode(!0),m),g.setStartBefore(m)):g.setStartAfter(m),g.setCursor()}else if(g.deleteContents(),h=g.startContainer,1==h.nodeType&&(h=h.childNodes[g.startOffset])){for(;1==h.nodeType;){if(dtd.$empty[h.tagName])return g.setStartBefore(h).setCursor(),b.undoManger&&b.undoManger.save(),!1;if(!h.firstChild){var m=g.document.createElement("br");return h.appendChild(m),g.setStart(h,0).setCursor(),b.undoManger&&b.undoManger.save(),!1}h=h.firstChild}h===g.startContainer.childNodes[g.startOffset]?(m=g.document.createElement("br"),g.insertNode(m).setCursor()):g.setStart(h,0).setCursor()}else m=g.document.createElement("br"),g.insertNode(m).setStartAfter(m).setCursor()}})},UE.plugins.keystrokes=function(){var a=this,b=!0;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which,f=a.selection.getRange();if(!f.collapsed&&!(d.ctrlKey||d.shiftKey||d.altKey||d.metaKey)&&(e>=65&&e<=90||e>=48&&e<=57||e>=96&&e<=111||{13:1,8:1,46:1}[e])){var g=f.startContainer;if(domUtils.isFillChar(g)&&f.setStartBefore(g),g=f.endContainer,domUtils.isFillChar(g)&&f.setEndAfter(g),f.txtToElmBoundary(),f.endContainer&&1==f.endContainer.nodeType&&(g=f.endContainer.childNodes[f.endOffset],g&&domUtils.isBr(g)&&f.setEndAfter(g)),0==f.startOffset&&(g=f.startContainer,domUtils.isBoundaryNode(g,"firstChild")&&(g=f.endContainer,f.endOffset==(3==g.nodeType?g.nodeValue.length:g.childNodes.length)&&domUtils.isBoundaryNode(g,"lastChild"))))return a.fireEvent("saveScene"),a.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",f.setStart(a.body.firstChild,0).setCursor(!1,!0),void a._selectionChange()}if(e==keymap.Backspace){if(f=a.selection.getRange(),b=f.collapsed,a.fireEvent("delkeydown",d))return;var h,i;if(f.collapsed&&f.inFillChar()&&(h=f.startContainer,domUtils.isFillChar(h)?(f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),domUtils.remove(h)):(h.nodeValue=h.nodeValue.replace(new RegExp("^"+domUtils.fillChar),""),f.startOffset--,f.collapse(!0).select(!0))),h=f.getClosedNode())return a.fireEvent("saveScene"),f.setStartBefore(h),domUtils.remove(h),f.setCursor(),a.fireEvent("saveScene"),void domUtils.preventDefault(d);if(!browser.ie&&(h=domUtils.findParentByTagName(f.startContainer,"table",!0),i=domUtils.findParentByTagName(f.endContainer,"table",!0),h&&!i||!h&&i||h!==i))return void d.preventDefault()}if(e==keymap.Tab){var j={ol:1,ul:1,table:1};if(a.fireEvent("tabkeydown",d))return void domUtils.preventDefault(d);var k=a.selection.getRange();a.fireEvent("saveScene");for(var l=0,m="",n=a.options.tabSize||4,o=a.options.tabNode||" ";l"});d.insertNode(g).setStart(g,0).setCursor(!1,!0)}}if(!b&&(3==d.startContainer.nodeType||1==d.startContainer.nodeType&&domUtils.isEmptyBlock(d.startContainer)))if(browser.ie){var k=d.document.createElement("span");d.insertNode(k).setStartBefore(k).collapse(!0),d.select(),domUtils.remove(k)}else d.select()}})},UE.plugins.fiximgclick=function(){function a(){this.editor=null,this.resizer=null,this.cover=null,this.doc=document,this.prePos={x:0,y:0},this.startPos={x:0,y:0}}var b=!1;return function(){var c=[[0,0,-1,-1],[0,0,0,-1],[0,0,1,-1],[0,0,-1,0],[0,0,1,0],[0,0,-1,1],[0,0,0,1],[0,0,1,1]];a.prototype={init:function(a){var b=this;b.editor=a,b.startPos=this.prePos={x:0,y:0},b.dragId=-1;var c=[],d=b.cover=document.createElement("div"),e=b.resizer=document.createElement("div");for(d.id=b.editor.ui.id+"_imagescale_cover",d.style.cssText="position:absolute;display:none;z-index:"+b.editor.options.zIndex+";filter:alpha(opacity=0); opacity:0;background:#CCC;",domUtils.on(d,"mousedown click",function(){b.hide()}),i=0;i<8;i++)c.push('');e.id=b.editor.ui.id+"_imagescale",e.className="edui-editor-imagescale",e.innerHTML=c.join(""),e.style.cssText+=";display:none;border:1px solid #3b77ff;z-index:"+b.editor.options.zIndex+";",b.editor.ui.getDom().appendChild(d),b.editor.ui.getDom().appendChild(e),b.initStyle(),b.initEvents()},initStyle:function(){utils.cssRule("imagescale",".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}")},initEvents:function(){var a=this;a.startPos.x=a.startPos.y=0,a.isDraging=!1},_eventHandler:function(a){var c=this;switch(a.type){case"mousedown":var d,d=a.target||a.srcElement;d.className.indexOf("edui-editor-imagescale-hand")!=-1&&c.dragId==-1&&(c.dragId=d.className.slice(-1),c.startPos.x=c.prePos.x=a.clientX,c.startPos.y=c.prePos.y=a.clientY,domUtils.on(c.doc,"mousemove",c.proxy(c._eventHandler,c)));break;case"mousemove":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.prePos.x=a.clientX,c.prePos.y=a.clientY,b=!0,c.updateTargetElement());break;case"mouseup":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.updateTargetElement(),c.target.parentNode&&c.attachTo(c.target),c.dragId=-1),domUtils.un(c.doc,"mousemove",c.proxy(c._eventHandler,c)),b&&(b=!1,c.editor.fireEvent("contentchange"))}},updateTargetElement:function(){var a=this;domUtils.setStyles(a.target,{width:a.resizer.style.width,height:a.resizer.style.height}),a.target.width=parseInt(a.resizer.style.width),a.target.height=parseInt(a.resizer.style.height),a.attachTo(a.target)},updateContainerStyle:function(a,b){var d,e=this,f=e.resizer;0!=c[a][0]&&(d=parseInt(f.style.left)+b.x,f.style.left=e._validScaledProp("left",d)+"px"),0!=c[a][1]&&(d=parseInt(f.style.top)+b.y,f.style.top=e._validScaledProp("top",d)+"px"),0!=c[a][2]&&(d=f.clientWidth+c[a][2]*b.x,f.style.width=e._validScaledProp("width",d)+"px"),0!=c[a][3]&&(d=f.clientHeight+c[a][3]*b.y,f.style.height=e._validScaledProp("height",d)+"px")},_validScaledProp:function(a,b){var c=this.resizer,d=document;switch(b=isNaN(b)?0:b,a){case"left":return b<0?0:b+c.clientWidth>d.clientWidth?d.clientWidth-c.clientWidth:b;case"top":return b<0?0:b+c.clientHeight>d.clientHeight?d.clientHeight-c.clientHeight:b;case"width":return b<=0?1:b+c.offsetLeft>d.clientWidth?d.clientWidth-c.offsetLeft:b;case"height":return b<=0?1:b+c.offsetTop>d.clientHeight?d.clientHeight-c.offsetTop:b}},hideCover:function(){this.cover.style.display="none"},showCover:function(){var a=this,b=domUtils.getXY(a.editor.ui.getDom()),c=domUtils.getXY(a.editor.iframe);domUtils.setStyles(a.cover,{width:a.editor.iframe.offsetWidth+"px",height:a.editor.iframe.offsetHeight+"px",top:c.y-b.y+"px",left:c.x-b.x+"px",position:"absolute",display:""})},show:function(a){var b=this;b.resizer.style.display="block",a&&b.attachTo(a),domUtils.on(this.resizer,"mousedown",b.proxy(b._eventHandler,b)),domUtils.on(b.doc,"mouseup",b.proxy(b._eventHandler,b)),b.showCover(),b.editor.fireEvent("afterscaleshow",b),b.editor.fireEvent("saveScene")},hide:function(){var a=this;a.hideCover(),a.resizer.style.display="none",domUtils.un(a.resizer,"mousedown",a.proxy(a._eventHandler,a)),domUtils.un(a.doc,"mouseup",a.proxy(a._eventHandler,a)),a.editor.fireEvent("afterscalehide",a)},proxy:function(a,b){return function(c){return a.apply(b||this,arguments)}},attachTo:function(a){var b=this,c=b.target=a,d=this.resizer,e=domUtils.getXY(c),f=domUtils.getXY(b.editor.iframe),g=domUtils.getXY(d.parentNode);domUtils.setStyles(d,{width:c.width+"px",height:c.height+"px",left:f.x+e.x-b.editor.document.body.scrollLeft-g.x-parseInt(d.style.borderLeftWidth)+"px",top:f.y+e.y-b.editor.document.body.scrollTop-g.y-parseInt(d.style.borderTopWidth)+"px"})}}}(),function(){var b,c=this;c.setOpt("imageScaleEnabled",!0),!browser.ie&&c.options.imageScaleEnabled&&c.addListener("click",function(d,e){var f=c.selection.getRange(),g=f.getClosedNode();if(g&&"IMG"==g.tagName&&"false"!=c.body.contentEditable){if(g.className.indexOf("edui-faked-music")!=-1||g.getAttribute("anchorname")||domUtils.hasClass(g,"loadingclass")||domUtils.hasClass(g,"loaderrorclass"))return;if(!b){b=new a,b.init(c),c.ui.getDom().appendChild(b.resizer);var h,i=function(a){b.hide(),b.target&&c.selection.getRange().selectNode(b.target).select()},j=function(a){var b=a.target||a.srcElement;!b||void 0!==b.className&&b.className.indexOf("edui-editor-imagescale")!=-1||i(a)};c.addListener("afterscaleshow",function(a){c.addListener("beforekeydown",i),c.addListener("beforemousedown",j),domUtils.on(document,"keydown",i),domUtils.on(document,"mousedown",j),c.selection.getNative().removeAllRanges()}),c.addListener("afterscalehide",function(a){c.removeListener("beforekeydown",i),c.removeListener("beforemousedown",j),domUtils.un(document,"keydown",i),domUtils.un(document,"mousedown",j);var d=b.target;d.parentNode&&c.selection.getRange().selectNode(d).select()}),domUtils.on(b.resizer,"mousedown",function(a){c.selection.getNative().removeAllRanges();var d=a.target||a.srcElement;d&&d.className.indexOf("edui-editor-imagescale-hand")==-1&&(h=setTimeout(function(){b.hide(),b.target&&c.selection.getRange().selectNode(d).select()},200))}),domUtils.on(b.resizer,"mouseup",function(a){var b=a.target||a.srcElement;b&&b.className.indexOf("edui-editor-imagescale-hand")==-1&&clearTimeout(h)})}b.show(g)}else b&&"none"!=b.resizer.style.display&&b.hide()}),browser.webkit&&c.addListener("click",function(a,b){if("IMG"==b.target.tagName&&"false"!=c.body.contentEditable){var d=new dom.Range(c.document);d.selectNode(b.target).select()}})}}(),UE.plugin.register("autolink",function(){var a=0;return browser.ie?{}:{bindEvents:{reset:function(){a=0},keydown:function(a,b){var c=this,d=b.keyCode||b.which;if(32==d||13==d){for(var e,f,g=c.selection.getNative(),h=g.getRangeAt(0).cloneRange(),i=h.startContainer;1==i.nodeType&&h.startOffset>0&&(i=h.startContainer.childNodes[h.startOffset-1]);)h.setStart(i,1==i.nodeType?i.childNodes.length:i.nodeValue.length),h.collapse(!0),i=h.startContainer;do{if(0==h.startOffset){for(i=h.startContainer.previousSibling;i&&1==i.nodeType;)i=i.lastChild;if(!i||domUtils.isFillChar(i))break;e=i.nodeValue.length}else i=h.startContainer,e=h.startOffset;h.setStart(i,e-1),f=h.toString().charCodeAt(0)}while(160!=f&&32!=f);if(h.toString().replace(new RegExp(domUtils.fillChar,"g"),"").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)){for(;h.toString().length&&!/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString());)try{h.setStart(h.startContainer,h.startOffset+1)}catch(j){for(var i=h.startContainer;!(next=i.nextSibling);){if(domUtils.isBody(i))return;i=i.parentNode}h.setStart(next,0)}if(domUtils.findParentByTagName(h.startContainer,"a",!0))return;var k,l=c.document.createElement("a"),m=c.document.createTextNode(" ");c.undoManger&&c.undoManger.save(),l.appendChild(h.extractContents()),l.href=l.innerHTML=l.innerHTML.replace(/<[^>]+>/g,""),k=l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"),""),k=/^(?:https?:\/\/)/gi.test(k)?k:"http://"+k,l.setAttribute("_src",utils.html(k)),l.href=utils.html(k),h.insertNode(l),l.parentNode.insertBefore(m,l.nextSibling),h.setStart(m,0),h.collapse(!0),g.removeAllRanges(),g.addRange(h),c.undoManger&&c.undoManger.save()}}}}}},function(){function a(a){if(3==a.nodeType)return null;if("A"==a.nodeName)return a;for(var b=a.lastChild;b;){if("A"==b.nodeName)return b;if(3==b.nodeType){if(domUtils.isWhitespace(b)){b=b.previousSibling;continue}return null}b=b.lastChild}}var b={37:1,38:1,39:1,40:1,13:1,32:1};browser.ie&&this.addListener("keyup",function(c,d){var e=this,f=d.keyCode;if(b[f]){var g=e.selection.getRange(),h=g.startContainer;if(13==f){for(;h&&!domUtils.isBody(h)&&!domUtils.isBlockElm(h);)h=h.parentNode;if(h&&!domUtils.isBody(h)&&"P"==h.nodeName){var i=h.previousSibling;if(i&&1==i.nodeType){var i=a(i);i&&!i.getAttribute("_href")&&domUtils.remove(i,!0)}}}else if(32==f)3==h.nodeType&&/^\s$/.test(h.nodeValue)&&(h=h.previousSibling,h&&"A"==h.nodeName&&!h.getAttribute("_href")&&domUtils.remove(h,!0));else if(h=domUtils.findParentByTagName(h,"a",!0),h&&!h.getAttribute("_href")){var j=g.createBookmark();domUtils.remove(h,!0),g.moveToBookmark(j).select(!0)}}})}),UE.plugins.autoheight=function(){function a(){var a=this;clearTimeout(e),f||(!a.queryCommandState||a.queryCommandState&&1!=a.queryCommandState("source"))&&(e=setTimeout(function(){for(var b=a.body.lastChild;b&&1!=b.nodeType;)b=b.previousSibling;b&&1==b.nodeType&&(b.style.clear="both",d=Math.max(domUtils.getXY(b).y+b.offsetHeight+25,Math.max(h.minFrameHeight,h.initialFrameHeight)),d!=g&&(d!==parseInt(a.iframe.parentNode.style.height)&&(a.iframe.parentNode.style.height=d+"px"),a.body.style.height=d+"px",g=d),domUtils.removeStyle(b,"clear"))},50))}var b=this;if(b.autoHeightEnabled=b.options.autoHeightEnabled!==!1,b.autoHeightEnabled){var c,d,e,f,g=0,h=b.options;b.addListener("fullscreenchanged",function(a,b){f=b}),b.addListener("destroy",function(){b.removeListener("contentchange afterinserthtml keyup mouseup",a)}),b.enableAutoHeight=function(){var b=this;if(b.autoHeightEnabled){var d=b.document;b.autoHeightEnabled=!0,c=d.body.style.overflowY,d.body.style.overflowY="hidden",b.addListener("contentchange afterinserthtml keyup mouseup",a),setTimeout(function(){a.call(b)},browser.gecko?100:0),b.fireEvent("autoheightchanged",b.autoHeightEnabled)}},b.disableAutoHeight=function(){b.body.style.overflowY=c||"",b.removeListener("contentchange",a),b.removeListener("keyup",a),b.removeListener("mouseup",a),b.autoHeightEnabled=!1,b.fireEvent("autoheightchanged",b.autoHeightEnabled)},b.on("setHeight",function(){b.disableAutoHeight()}),b.addListener("ready",function(){b.enableAutoHeight();var c;domUtils.on(browser.ie?b.body:b.document,browser.webkit?"dragover":"drop",function(){ -clearTimeout(c),c=setTimeout(function(){a.call(b)},100)});var d;window.onscroll=function(){null===d?d=this.scrollY:0==this.scrollY&&0!=d&&(b.window.scrollTo(0,0),d=null)}})}},UE.plugins.autofloat=function(){function a(){return UE.ui?1:(alert(g.autofloatMsg),0)}function b(){var a=document.body.style;a.backgroundImage='url("about:blank")',a.backgroundAttachment="fixed"}function c(){var a=domUtils.getXY(k),b=domUtils.getComputedStyle(k,"position"),c=domUtils.getComputedStyle(k,"left");k.style.width=k.offsetWidth+"px",k.style.zIndex=1*f.options.zIndex+1,k.parentNode.insertBefore(q,k),o||p&&browser.ie?("absolute"!=k.style.position&&(k.style.position="absolute"),k.style.top=(document.body.scrollTop||document.documentElement.scrollTop)-l+i+"px"):(browser.ie7Compat&&r&&(r=!1,k.style.left=domUtils.getXY(k).x-document.documentElement.getBoundingClientRect().left+2+"px"),"fixed"!=k.style.position&&(k.style.position="fixed",k.style.top=i+"px",("absolute"==b||"relative"==b)&&parseFloat(c)&&(k.style.left=a.x+"px")))}function d(){r=!0,q.parentNode&&q.parentNode.removeChild(q),k.style.cssText=j}function e(){var a=m(f.container),b=f.options.toolbarTopOffset||0;a.top<0&&a.bottom-k.offsetHeight>b?c():d()}var f=this,g=f.getLang();f.setOpt({topOffset:0});var h=f.options.autoFloatEnabled!==!1,i=f.options.topOffset;if(h){var j,k,l,m,n=UE.ui.uiUtils,o=browser.ie&&browser.version<=6,p=browser.quirks,q=document.createElement("div"),r=!0,s=utils.defer(function(){e()},browser.ie?200:100,!0);f.addListener("destroy",function(){domUtils.un(window,["scroll","resize"],e),f.removeListener("keydown",s)}),f.addListener("ready",function(){if(a(f)){if(!f.ui)return;m=n.getClientRect,k=f.ui.getDom("toolbarbox"),l=m(k).top,j=k.style.cssText,q.style.height=k.offsetHeight+"px",o&&b(),domUtils.on(window,["scroll","resize"],e),f.addListener("keydown",s),f.addListener("beforefullscreenchange",function(a,b){b&&d()}),f.addListener("fullscreenchanged",function(a,b){b||e()}),f.addListener("sourcemodechanged",function(a,b){setTimeout(function(){e()},0)}),f.addListener("clearDoc",function(){setTimeout(function(){e()},0)})}})}},UE.plugins.video=function(){function a(a,b,d,e,f,g,h){a=utils.unhtmlForUrl(a),f=utils.unhtml(f),g=utils.unhtml(g).trim(),b=parseInt(b,10)||0,d=parseInt(d,10)||0;var i;switch(h){case"image":i="';break;case"embed":i='';break;case"video":var j=a.substr(a.lastIndexOf(".")+1);"ogv"==j&&(j="ogg"),i="'}return i}function b(b,c){utils.each(b.getNodesByTagName(c?"img":"embed video"),function(b){var d=b.getAttr("class");if(d&&d.indexOf("edui-faked-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"embed":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}if(d&&d.indexOf("edui-upload-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"video":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}})}var c=this;c.addOutputRule(function(a){b(a,!0)}),c.addInputRule(function(a){b(a)}),c.commands.insertvideo={execCommand:function(b,d,e){d=utils.isArray(d)?d:[d];for(var f,g,h=[],i="tmpVedio",j=0,k=d.length;j0)return 0;for(var c in dtd.$isNotEmpty)if(dtd.$isNotEmpty.hasOwnProperty(c)&&a.getElementsByTagName(c).length)return 0;return 1},b.getWidth=function(a){return a?parseInt(domUtils.getComputedStyle(a,"width"),10):0},b.getTableCellAlignState=function(a){!utils.isArray(a)&&(a=[a]);var b={},c=["align","valign"],d=null,e=!0;return utils.each(a,function(a){return utils.each(c,function(c){if(d=a.getAttribute(c),!b[c]&&d)b[c]=d;else if(!b[c]||d!==b[c])return e=!1,!1}),e}),e?b:null},b.getTableItemsByRange=function(a){var b=a.selection.getStart();b&&b.id&&0===b.id.indexOf("_baidu_bookmark_start_")&&b.nextSibling&&(b=b.nextSibling);var c=b&&domUtils.findParentByTagName(b,["td","th"],!0),d=c&&c.parentNode,e=b&&domUtils.findParentByTagName(b,"caption",!0),f=e?e.parentNode:d&&d.parentNode.parentNode;return{cell:c,tr:d,table:f,caption:e}},b.getUETableBySelected=function(a){var c=b.getTableItemsByRange(a).table;return c&&c.ueTable&&c.ueTable.selectedTds.length?c.ueTable:null},b.getDefaultValue=function(a,b){var c,d,e,f,g={thin:"0px",medium:"1px",thick:"2px"};if(b)return h=b.getElementsByTagName("td")[0],f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),{tableBorder:c,tdPadding:d,tdBorder:e};b=a.document.createElement("table"),b.insertRow(0).insertCell(0).innerHTML="xxx",a.body.appendChild(b);var h=b.getElementsByTagName("td")[0];return f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),domUtils.remove(b),{tableBorder:c,tdPadding:d,tdBorder:e}},b.getUETable=function(a){var c=a.tagName.toLowerCase();return a="td"==c||"th"==c||"caption"==c?domUtils.findParentByTagName(a,"table",!0):a,a.ueTable||(a.ueTable=new b(a)),a.ueTable},b.cloneCell=function(a,b,c){if(!a||utils.isString(a))return this.table.ownerDocument.createElement(a||"td");var d=domUtils.hasClass(a,"selectTdClass");d&&domUtils.removeClasses(a,"selectTdClass");var e=a.cloneNode(!0);return b&&(e.rowSpan=e.colSpan=1),!c&&domUtils.removeAttributes(e,"width height"),!c&&domUtils.removeAttributes(e,"style"),e.style.borderLeftStyle="",e.style.borderTopStyle="",e.style.borderLeftColor=a.style.borderRightColor,e.style.borderLeftWidth=a.style.borderRightWidth,e.style.borderTopColor=a.style.borderBottomColor,e.style.borderTopWidth=a.style.borderBottomWidth,d&&domUtils.addClass(a,"selectTdClass"),e},b.prototype={getMaxRows:function(){for(var a,b=this.table.rows,c=1,d=0;a=b[d];d++){for(var e,f=1,g=0;e=a.cells[g++];)f=Math.max(e.rowSpan||1,f);c=Math.max(f+d,c)}return c},getMaxCols:function(){for(var a,b=this.table.rows,c=0,d={},e=0;a=b[e];e++){for(var f,g=0,h=0;f=a.cells[h++];)if(g+=f.colSpan||1,f.rowSpan&&f.rowSpan>1)for(var i=1;ithis.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getSameEndPosCells:function(b,c){try{for(var d="x"===c.toLowerCase(),e=domUtils.getXY(b)[d?"x":"y"]+b["offset"+(d?"Width":"Height")],f=this.table.rows,g=null,h=[],i=0;ie&&d)break;if((b==j||e==l)&&(1==j[d?"colSpan":"rowSpan"]&&h.push(j),d))break}}return h}catch(m){a(m)}},setCellContent:function(a,b){a.innerHTML=b||(browser.ie?domUtils.fillChar:"
    ")},cloneCell:b.cloneCell,getSameStartPosXCells:function(b){try{for(var c,d=domUtils.getXY(b).x+b.offsetWidth,e=this.table.rows,f=[],g=0;gd)break;if(j==d&&1==h.colSpan){f.push(h);break}}}return f}catch(k){a(k)}},update:function(a){this.table=a||this.table,this.selectedTds=[],this.cellsRange={},this.indexTable=[];for(var b=this.table.rows,c=this.getMaxRows(),d=c-b.length,e=this.getMaxCols();d--;)this.table.insertRow(b.length);this.rowsNum=c,this.colsNum=e;for(var f=0,g=b.length;fc&&(j.rowSpan=c);for(var m=k,n=j.rowSpan||1,o=j.colSpan||1;this.indexTable[i][m];)m++;for(var p=0;p0)for(h=b;hf&&(m=Math.max(h,m));if(ee&&(l=Math.max(i,l));if(b>0)for(i=a;ig||d+b.colSpan-1>h)return null;j.push(this.getCell(c,b.cellIndex))}}return j},clearSelected:function(){b.removeSelectedClass(this.selectedTds),this.selectedTds=[],this.cellsRange={}},setSelected:function(a){var c=this.getCells(a);b.addSelectedClass(c),this.selectedTds=c,this.cellsRange=a},isFullRow:function(){var a=this.cellsRange;return a.endColIndex-a.beginColIndex+1==this.colsNum},isFullCol:function(){var a=this.cellsRange,b=this.table,c=b.getElementsByTagName("th"),d=a.endRowIndex-a.beginRowIndex+1;return c.length?d==this.rowsNum||d==this.rowsNum-1:d==this.rowsNum},getNextCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getPreviewCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.rowIndex>this.colsNum-1)?null:(d=c?g?h.beginRowIndex:f.rowIndex<1?0:f.rowIndex-1:g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},moveContent:function(a,c){if(!b.isEmptyBlock(c)){if(b.isEmptyBlock(a))return void(a.innerHTML=c.innerHTML);var d=a.lastChild;for(3!=d.nodeType&&dtd.$block[d.tagName]||a.appendChild(a.ownerDocument.createElement("br"));d=c.firstChild;)a.appendChild(d)}},mergeRight:function(a){var b=this.getCellInfo(a),c=b.colIndex+b.colSpan,d=this.indexTable[b.rowIndex][c],e=this.getCell(d.rowIndex,d.cellIndex);a.colSpan=b.colSpan+d.colSpan,a.removeAttribute("width"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeDown:function(a){var b=this.getCellInfo(a),c=b.rowIndex+b.rowSpan,d=this.indexTable[c][b.colIndex],e=this.getCell(d.rowIndex,d.cellIndex);a.rowSpan=b.rowSpan+d.rowSpan,a.removeAttribute("height"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeRange:function(){var a=this.cellsRange,b=this.getCell(a.beginRowIndex,this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex);if("TH"==b.tagName&&a.endRowIndex!==a.beginRowIndex){var c=this.indexTable,d=this.getCellInfo(b);b=this.getCell(1,c[1][d.colIndex].cellIndex),a=this.getCellsRange(b,this.getCell(c[this.rowsNum-1][d.colIndex].rowIndex,c[this.rowsNum-1][d.colIndex].cellIndex))}for(var e,f=this.getCells(a),g=0;e=f[g++];)e!==b&&(this.moveContent(b,e),this.deleteCell(e));if(b.rowSpan=a.endRowIndex-a.beginRowIndex+1,b.rowSpan>1&&b.removeAttribute("height"),b.colSpan=a.endColIndex-a.beginColIndex+1,b.colSpan>1&&b.removeAttribute("width"),b.rowSpan==this.rowsNum&&1!=b.colSpan&&(b.colSpan=1),b.colSpan==this.colsNum&&1!=b.rowSpan){var h=b.parentNode.rowIndex;if(this.table.deleteRow)for(var g=h+1,i=h+1,j=b.rowSpan;g1&&g.rowIndex==a){var i=h.cloneNode(!0);i.rowSpan=h.rowSpan-1,i.innerHTML="",h.rowSpan=1;var j,k=a+1,l=this.table.rows[k],m=this.getPreviewMergedCellsNum(k,f)-e;m1?l.colSpan--:c[h].deleteCell(j.cellIndex),h+=j.rowSpan||1}}this.table.setAttribute("width",d-e),this.update()},splitToCells:function(a){var b=this,c=this.splitToRows(a);utils.each(c,function(a){b.splitToCols(a)})},splitToRows:function(a){var b=this.getCellInfo(a),c=b.rowIndex,d=b.colIndex,e=[];a.rowSpan=1,e.push(a);for(var f=c,g=c+b.rowSpan;f");for(var g=0;g'+(browser.ie&&browser.version<11?domUtils.fillChar:"
    ")+"");c.push("")}return"
    "+c.join("")+"
    "}b||(b=utils.extend({},{numCols:this.options.defaultCols,numRows:this.options.defaultRows,tdvalign:this.options.tdvalign}));var d=this,e=this.selection.getRange(),f=e.startContainer,h=domUtils.findParent(f,function(a){return domUtils.isBlockElm(a)},!0)||d.body,i=g(d),j=h.offsetWidth,k=Math.floor(j/b.numCols-2*i.tdPadding-i.tdBorder);!b.tdvalign&&(b.tdvalign=d.options.tdvalign),d.execCommand("inserthtml",c(b,k))}},UE.commands.insertparagraphbeforetable={queryCommandState:function(){return e(this).cell?0:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("p");b.innerHTML=browser.ie?" ":"
    ",a.parentNode.insertBefore(b,a),this.selection.getRange().setStart(b,0).setCursor()}}},UE.commands.deletetable={queryCommandState:function(){var a=this.selection.getRange();return domUtils.findParentByTagName(a.startContainer,"table",!0)?0:-1},execCommand:function(a,b){var c=this.selection.getRange();if(b=b||domUtils.findParentByTagName(c.startContainer,"table",!0)){var d=b.nextSibling;d||(d=domUtils.createElement(this.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"
    "}),b.parentNode.insertBefore(d,b)),domUtils.remove(b),c=this.selection.getRange(),3==d.nodeType?c.setStartBefore(d):c.setStart(d,0),c.setCursor(!1,!0),this.fireEvent("tablehasdeleted")}}},UE.commands.cellalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("align",b)}},UE.commands.cellvalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("vAlign",b)}},UE.commands.insertcaption={queryCommandState:function(){var a=e(this).table;return a&&0==a.getElementsByTagName("caption").length?1:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("caption");b.innerHTML=browser.ie?domUtils.fillChar:"
    ",a.insertBefore(b,a.firstChild);var c=this.selection.getRange();c.setStart(b,0).setCursor()}}},UE.commands.deletecaption={queryCommandState:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");return b?0==b.getElementsByTagName("caption").length?-1:1:-1},execCommand:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");if(b){domUtils.remove(b.getElementsByTagName("caption")[0]);var c=this.selection.getRange();c.setStart(b.rows[0].cells[0],0).setCursor()}}},UE.commands.inserttitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"!=b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&h(a).insertRow(0,"th");var b=a.getElementsByTagName("th")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.deletetitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"==b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&domUtils.remove(a.rows[0]);var b=a.getElementsByTagName("td")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.inserttitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?-1:0}return-1},execCommand:function(b){var c=e(this).table;c&&h(c).insertCol(0,"th"),a(c,this);var d=c.getElementsByTagName("th")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.deletetitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?0:-1}return-1},execCommand:function(){var b=e(this).table;if(b)for(var c=0;c=f.colsNum)return-1;var j=f.indexTable[g.rowIndex][i],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.rowIndex==g.rowIndex&&j.rowSpan==g.rowSpan?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0),d=e(this).cell,f=h(d);f.mergeRight(d),b.moveToBookmark(c).select()}},UE.commands.mergedown={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.rowIndex+g.rowSpan;if(i>=f.rowsNum)return-1;var j=f.indexTable[i][g.colIndex],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.colIndex==g.colIndex&&j.colSpan==g.colSpan?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.mergeDown(c),a.moveToBookmark(b).select()}},UE.commands.mergecells={queryCommandState:function(){return f(this)?0:-1},execCommand:function(){var a=f(this);if(a&&a.selectedTds.length){var b=a.selectedTds[0];a.mergeRange();var c=this.selection.getRange();domUtils.isEmptyBlock(b)?c.setStart(b,0).collapse(!0):c.selectNodeContents(b),c.select()}}},UE.commands.insertrow={queryCommandState:function(){var a=e(this),b=a.cell;return b&&("TD"==b.tagName||"TH"==b.tagName&&a.tr!==a.table.rows[0])&&h(a.table).rowsNum0?-1:b&&(b.colSpan>1||b.rowSpan>1)?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCells(c),a.moveToBookmark(b).select()}},UE.commands.splittorows={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.rowSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToRows(c),a.moveToBookmark(b).select()}},UE.commands.splittocols={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.colSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCols(c),a.moveToBookmark(b).select()}},UE.commands.adaptbytext=UE.commands.adaptbywindow={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(b){var c=e(this),d=c.table;if(d)if("adaptbywindow"==b)a(d,this);else{var f=domUtils.getElementsByTagName(d,"td th");utils.each(f,function(a){a.removeAttribute("width")}),d.removeAttribute("width")}}},UE.commands.averagedistributecol={queryCommandState:function(){var a=f(this);return a&&(a.isFullRow()||a.isFullCol())?0:-1},execCommand:function(a){function b(){var a,b=e.table,c=0,f=0,h=g(d,b);if(e.isFullRow())c=b.offsetWidth,f=e.colsNum;else for(var i,j=e.cellsRange.beginColIndex,k=e.cellsRange.endColIndex,l=j;l<=k;)i=e.selectedTds[l],c+=i.offsetWidth,l+=i.colSpan,f+=1;return a=Math.ceil(c/f)-2*h.tdBorder-2*h.tdPadding}function c(a){utils.each(domUtils.getElementsByTagName(e.table,"th"),function(a){a.setAttribute("width","")});var b=e.isFullRow()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.colSpan&&b.setAttribute("width",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.averagedistributerow={queryCommandState:function(){var a=f(this);return a?a.selectedTds&&/th/gi.test(a.selectedTds[0].tagName)?-1:a.isFullRow()||a.isFullCol()?0:-1:-1},execCommand:function(a){function b(){var a,b,c=0,f=e.table,h=g(d,f),i=parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0],"padding-top"));if(e.isFullCol()){var j,k,l=domUtils.getElementsByTagName(f,"caption"),m=domUtils.getElementsByTagName(f,"th");l.length>0&&(j=l[0].offsetHeight),m.length>0&&(k=m[0].offsetHeight),c=f.offsetHeight-(j||0)-(k||0),b=0==m.length?e.rowsNum:e.rowsNum-1}else{for(var n=e.cellsRange.beginRowIndex,o=e.cellsRange.endRowIndex,p=0,q=domUtils.getElementsByTagName(f,"tr"),r=n;r<=o;r++)c+=q[r].offsetHeight,p+=1;b=p}return a=browser.ie&&browser.version<9?Math.ceil(c/b):Math.ceil(c/b)-2*h.tdBorder-2*i}function c(a){var b=e.isFullCol()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.rowSpan&&b.setAttribute("height",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.cellalignment={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){domUtils.setAttributes(a,b)});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);/caption/gi.test(g.tagName)?(g.style.textAlign=b.align,g.style.verticalAlign=b.vAlign):domUtils.setAttributes(g,b),c.selection.getRange().setCursor(!0)}},queryCommandValue:function(a){var b=e(this).cell;if(b||(b=c(this)[0]),b){var d=UE.UETable.getUETable(b).selectedTds;return!d.length&&(d=b),UE.UETable.getTableCellAlignState(d)}return null}},UE.commands.tablealignment={queryCommandState:function(){return browser.ie&&browser.version<8?-1:e(this).table?0:-1},execCommand:function(a,b){var c=this,d=c.selection.getStart(),e=d&&domUtils.findParentByTagName(d,["table"],!0);e&&e.setAttribute("align",b)}},UE.commands.edittable={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this.selection.getRange(),d=domUtils.findParentByTagName(c.startContainer,"table");if(d){var e=domUtils.getElementsByTagName(d,"td").concat(domUtils.getElementsByTagName(d,"th"),domUtils.getElementsByTagName(d,"caption"));utils.each(e,function(a){a.style.borderColor=b})}}},UE.commands.edittd={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){a.style.backgroundColor=b});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);g&&(g.style.backgroundColor=b)}}},UE.commands.settablebackground={queryCommandState:function(){return c(this).length>1?0:-1},execCommand:function(a,b){var d,e;d=c(this),e=h(d[0]),e.setBackground(d,b)}},UE.commands.cleartablebackground={queryCommandState:function(){var a=c(this);if(!a.length)return-1;for(var b,d=0;b=a[d++];)if(""!==b.style.backgroundColor)return 0;return-1},execCommand:function(){var a=c(this),b=h(a[0]);b.removeBackground(a)}},UE.commands.interlacetable=UE.commands.uninterlacetable={queryCommandState:function(a){var b=e(this).table;if(!b)return-1;var c=b.getAttribute("interlaced");return"interlacetable"==a?"enabled"===c?-1:0:c&&"disabled"!==c?0:-1},execCommand:function(a,b){var c=e(this).table;"interlacetable"==a?(c.setAttribute("interlaced","enabled"),this.fireEvent("interlacetable",c,b)):(c.setAttribute("interlaced","disabled"),this.fireEvent("uninterlacetable",c))}},UE.commands.setbordervisible={queryCommandState:function(a){var b=e(this).table;return b?0:-1},execCommand:function(){var a=e(this).table;utils.each(domUtils.getElementsByTagName(a,"td"),function(a){a.style.borderWidth="1px",a.style.borderStyle="solid"})}}}(),UE.plugins.table=function(){function a(a){}function b(a,b){c(a,"width",!0),c(a,"height",!0)}function c(a,b,c){a.style[b]&&(c&&a.setAttribute(b,parseInt(a.style[b],10)),a.style[b]="")}function d(a){if("TD"==a.tagName||"TH"==a.tagName)return a;var b;return(b=domUtils.findParentByTagName(a,"td",!0)||domUtils.findParentByTagName(a,"th",!0))?b:null}function e(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}function f(a){return a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:{x:a.clientX+N.document.body.scrollLeft-N.document.body.clientLeft,y:a.clientY+N.document.body.scrollTop-N.document.body.clientTop}}function g(b){if(!A())try{var c,e=d(b.target||b.srcElement);if(R&&(N.body.style.webkitUserSelect="none",(Math.abs(V.x-b.clientX)>T||Math.abs(V.y-b.clientY)>T)&&(t(),R=!1,U=0,v(b))),ca&&ha)return U=0,N.body.style.webkitUserSelect="none",N.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),c=f(b),m(N,!0,ca,c,e),void("h"==ca?ga.style.left=k(ha,b)+"px":"v"==ca&&(ga.style.top=l(ha,b)+"px"));if(e){if(N.fireEvent("excludetable",e)===!0)return;c=f(b);var g=n(e,c),i=domUtils.findParentByTagName(e,"table",!0);if(j(i,e,b,!0)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"h.png),pointer"}else if(j(i,e,b)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"v.png),pointer"}else{N.body.style.cursor="text";/\d/.test(g)&&(g=g.replace(/\d/,""),e=Y(e).getPreviewCell(e,"v"==g)),m(N,!!e&&!!g,e?g:"",c,e)}}else h(!1,i,N)}catch(o){a(o)}}function h(a,b,c){if(a)i(b,c);else{if(fa)return;la=setTimeout(function(){!fa&&ea&&ea.parentNode&&ea.parentNode.removeChild(ea)},2e3)}}function i(a,b){function c(c,d){clearTimeout(g),g=setTimeout(function(){b.fireEvent("tableClicked",a,d)},300)}function d(c){clearTimeout(g);var d=Y(a),e=a.rows[0].cells[0],f=d.getLastCell(),h=d.getCellsRange(e,f);b.selection.getRange().setStart(e,0).setCursor(!1,!0),d.setSelected(h)}var e=domUtils.getXY(a),f=a.ownerDocument;if(ea&&ea.parentNode)return ea;ea=f.createElement("div"),ea.contentEditable=!1,ea.innerHTML="",ea.style.cssText="width:15px;height:15px;background-image:url("+b.options.UEDITOR_HOME_URL+"dialogs/table/dragicon.png);position: absolute;cursor:move;top:"+(e.y-15)+"px;left:"+e.x+"px;",domUtils.unSelectable(ea),ea.onmouseover=function(a){fa=!0},ea.onmouseout=function(a){fa=!1},domUtils.on(ea,"click",function(a,b){c(b,this)}),domUtils.on(ea,"dblclick",function(a,b){d(b)}),domUtils.on(ea,"dragstart",function(a,b){domUtils.preventDefault(b)});var g;f.body.appendChild(ea)}function j(a,b,c,d){var e=f(c),g=n(b,e);if(d){var h=a.getElementsByTagName("caption")[0],i=h?h.offsetHeight:0;return"v1"==g&&e.y-domUtils.getXY(a).y-i<8}return"h1"==g&&e.x-domUtils.getXY(a).x<8}function k(a,b){var c=Y(a);if(c){var d=c.getSameEndPosCells(a,"x")[0],e=c.getSameStartPosXCells(a)[0],g=f(b).x,h=(d?domUtils.getXY(d).x:domUtils.getXY(c.table).x)+20,i=e?domUtils.getXY(e).x+e.offsetWidth-20:N.body.offsetWidth+5||parseInt(domUtils.getComputedStyle(N.body,"width"),10);return h+=Q,i-=Q,gi?i:g}}function l(b,c){try{var d=domUtils.getXY(b).y,e=f(c).y;return ek[c]?(a=!1,!1):void l.push(d)});var b=a?l:k;utils.each(i,function(a,c){a.width=b[c]-G()})},0)}}}}function q(a){if(_(domUtils.getElementsByTagName(N.body,"td th")),utils.each(N.document.getElementsByTagName("table"),function(a){a.ueTable=null}),aa=M(N,a)){var b=domUtils.findParentByTagName(aa,"table",!0);ut=Y(b),ut&&ut.clearSelected(),da?r(a):(N.document.body.style.webkitUserSelect="",ia=!0,N.addListener("mouseover",x))}}function r(a){browser.ie&&(a=u(a)),t(),R=!0,O=setTimeout(function(){v(a)},W)}function s(a,b){for(var c=[],d=null,e=0,f=a.length;e0&&U--},W),2===U))return U=0,void p(b);if(2!=b.button){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"table",!0),f=domUtils.findParentByTagName(d.endContainer,"table",!0);if((e||f)&&(e===f?(e=domUtils.findParentByTagName(d.startContainer,["td","th","caption"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th","caption"],!0),e!==f&&c.selection.clearRange()):c.selection.clearRange()),ia=!1,c.document.body.style.webkitUserSelect="",ca&&ha&&(c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),U=0,ga=c.document.getElementById("ue_tableDragLine"))){var g=domUtils.getXY(ha),h=domUtils.getXY(ga);switch(ca){case"h":z(ha,h.x-g.x);break;case"v":B(ha,h.y-g.y-ha.offsetHeight)}return ca="",ha=null,I(c),void c.fireEvent("saveScene")}if(aa){var i=Y(aa),j=i?i.selectedTds[0]:null;if(j)d=new dom.Range(c.document),domUtils.isEmptyBlock(j)?d.setStart(j,0).setCursor(!1,!0):d.selectNodeContents(j).shrinkBoundary().setCursor(!1,!0);else if(d=c.selection.getRange().shrinkBoundary(),!d.collapsed){var e=domUtils.findParentByTagName(d.startContainer,["td","th"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th"],!0);(e&&!f||!e&&f||e&&f&&e!==f)&&d.setCursor(!1,!0)}aa=null,c.removeListener("mouseover",x)}else{var k=domUtils.findParentByTagName(b.target||b.srcElement,"td",!0);if(k||(k=domUtils.findParentByTagName(b.target||b.srcElement,"th",!0)),k&&("TD"==k.tagName||"TH"==k.tagName)){if(c.fireEvent("excludetable",k)===!0)return;d=new dom.Range(c.document),d.setStart(k,0).setCursor(!1,!0)}}c._selectionChange(250,b)}}}function x(a,b){if(!A()){var c=this,d=b.target||b.srcElement;if(ba=domUtils.findParentByTagName(d,"td",!0)||domUtils.findParentByTagName(d,"th",!0),aa&&ba&&("TD"==aa.tagName&&"TD"==ba.tagName||"TH"==aa.tagName&&"TH"==ba.tagName)&&domUtils.findParentByTagName(aa,"table")==domUtils.findParentByTagName(ba,"table")){var e=Y(ba);if(aa!=ba){c.document.body.style.webkitUserSelect="none",c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"]();var f=e.getCellsRange(aa,ba);e.setSelected(f)}else c.document.body.style.webkitUserSelect="",e.clearSelected()}b.preventDefault?b.preventDefault():b.returnValue=!1}}function y(a,b,c){var d=parseInt(domUtils.getComputedStyle(a,"line-height"),10),e=c+b;b=ef?(c&&g.push({left:a}),!1):void 0})}),g}function D(a,b,c){if(a-=G(),a<0)return 0;a-=E(b);var d=a<0?"left":"right";return a=Math.abs(a),utils.each(c,function(b){var c=b[d];c&&(a=Math.min(a,E(c)-Q))}),a=a<0?0:a,"left"===d?-a:a}function E(a){var b=0,b=a.offsetWidth-G();a.nextSibling||(b-=F(a)),b=b<0?0:b;try{a.width=b}catch(c){}return b}function F(a){if(tab=domUtils.findParentByTagName(a,"table",!1),void 0===tab.offsetVal){var b=a.previousSibling;b?tab.offsetVal=a.offsetWidth-b.offsetWidth===X.borderWidth?X.borderWidth:0:tab.offsetVal=0}return tab.offsetVal}function G(){if(void 0===X.tabcellSpace){var a=N.document.createElement("table"),b=N.document.createElement("tbody"),c=N.document.createElement("tr"),d=N.document.createElement("td"),e=null;d.style.cssText="border: 0;",d.width=1,c.appendChild(d),c.appendChild(e=d.cloneNode(!1)),b.appendChild(c),a.appendChild(b),a.style.cssText="visibility: hidden;",N.body.appendChild(a),X.paddingSpace=d.offsetWidth-1;var f=a.offsetWidth;d.style.cssText="",e.style.cssText="",X.borderWidth=(a.offsetWidth-f)/3,X.tabcellSpace=X.paddingSpace+X.borderWidth,N.body.removeChild(a)}return G=function(){return X.tabcellSpace},X.tabcellSpace}function H(a,b){ia||(ga=a.document.createElement("div"),domUtils.setAttributes(ga,{id:"ue_tableDragLine",unselectable:"on",contenteditable:!1,onresizestart:"return false",ondragstart:"return false",onselectstart:"return false",style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}),a.body.appendChild(ga))}function I(a){if(!ia)for(var b;b=a.document.getElementById("ue_tableDragLine");)domUtils.remove(b)}function J(a,b){if(b){var c,d=domUtils.findParentByTagName(b,"table"),e=d.getElementsByTagName("caption"),f=d.offsetWidth,g=d.offsetHeight-(e.length>0?e[0].offsetHeight:0),h=domUtils.getXY(d),i=domUtils.getXY(b);switch(a){case"h":c="height:"+g+"px;top:"+(h.y+(e.length>0?e[0].offsetHeight:0))+"px;left:"+(i.x+b.offsetWidth),ga.style.cssText=c+"px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)";break;case"v":c="width:"+f+"px;left:"+h.x+"px;top:"+(i.y+b.offsetHeight),ga.style.cssText=c+"px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"}}}function K(a,b){for(var c,d,e=domUtils.getElementsByTagName(a.body,"table"),f=0;d=e[f++];){var g=domUtils.getElementsByTagName(d,"td");g[0]&&(b?(c=g[0].style.borderColor.replace(/\s/g,""),/(#ffffff)|(rgb\(255,255,255\))/gi.test(c)&&domUtils.addClass(d,"noBorderTable")):domUtils.removeClasses(d,"noBorderTable"))}}function L(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function M(a,b){var c=domUtils.findParentByTagName(b.target||b.srcElement,["td","th"],!0),d=null;if(!c)return null;if(d=n(c,f(b)),!c)return null;if("h1"===d&&c.previousSibling){var e=domUtils.getXY(c),g=c.offsetWidth;Math.abs(e.x+g-b.clientX)>g/3&&(c=c.previousSibling)}else if("v1"===d&&c.parentNode.previousSibling){var e=domUtils.getXY(c),h=c.offsetHeight;Math.abs(e.y+h-b.clientY)>h/3&&(c=c.parentNode.previousSibling.firstChild)}return c&&a.fireEvent("excludetable",c)!==!0?c:null}var N=this,O=null,P=null,Q=5,R=!1,S=5,T=10,U=0,V=null,W=360,X=UE.UETable,Y=function(a){return X.getUETable(a)},Z=function(a){return X.getUETableBySelected(a)},$=function(a,b){return X.getDefaultValue(a,b)},_=function(a){return X.removeSelectedClass(a)};N.ready(function(){var a=this,b=a.selection.getText;a.selection.getText=function(){var c=Z(a);if(c){var d="";return utils.each(c.selectedTds,function(a){d+=a[browser.ie?"innerText":"textContent"]}),d}return b.call(a.selection)}});var aa=null,ba=null,ca="",da=!1,ea=null,fa=!1,ga=null,ha=null,ia=!1,ja=!0;N.setOpt({maxColNum:20,maxRowNum:100,defaultCols:5,defaultRows:5,tdvalign:"top",cursorpath:N.options.UEDITOR_HOME_URL+"themes/default/images/cursor_",tableDragable:!1,classList:["ue-table-interlace-color-single","ue-table-interlace-color-double"]}),N.getUETable=Y;var ka={deletetable:1,inserttable:1,cellvalign:1,insertcaption:1,deletecaption:1,inserttitle:1,deletetitle:1,mergeright:1,mergedown:1,mergecells:1,insertrow:1,insertrownext:1,deleterow:1,insertcol:1,insertcolnext:1,deletecol:1,splittocells:1,splittorows:1,splittocols:1,adaptbytext:1,adaptbywindow:1,adaptbycustomer:1,insertparagraph:1,insertparagraphbeforetable:1,averagedistributecol:1,averagedistributerow:1};N.ready(function(){utils.cssRule("table",".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}",N.document);var a,c,f;N.addListener("keydown",function(b,d){var g=this,h=d.keyCode||d.which;if(8==h){var i=Z(g);i&&i.selectedTds.length&&(i.isFullCol()?g.execCommand("deletecol"):i.isFullRow()?g.execCommand("deleterow"):g.fireEvent("delcells"),domUtils.preventDefault(d));var j=domUtils.findParentByTagName(g.selection.getStart(),"caption",!0),k=g.selection.getRange();if(k.collapsed&&j&&e(j)){g.fireEvent("saveScene");var l=j.parentNode;domUtils.remove(j),l&&k.setStart(l.rows[0].cells[0],0).setCursor(!1,!0),g.fireEvent("saveScene")}}if(46==h&&(i=Z(g))){g.fireEvent("saveScene");for(var m,n=0;m=i.selectedTds[n++];)domUtils.fillNode(g.document,m);g.fireEvent("saveScene"),domUtils.preventDefault(d)}if(13==h){var o=g.selection.getRange(),j=domUtils.findParentByTagName(o.startContainer,"caption",!0);if(j){var l=domUtils.findParentByTagName(j,"table");return o.collapsed?j&&o.setStart(l.rows[0].cells[0],0).setCursor(!1,!0):(o.deleteContents(),g.fireEvent("saveScene")),void domUtils.preventDefault(d)}if(o.collapsed){var l=domUtils.findParentByTagName(o.startContainer,"table");if(l){var p=l.rows[0].cells[0],q=domUtils.findParentByTagName(g.selection.getStart(),["td","th"],!0),r=l.previousSibling;if(p===q&&(!r||1==r.nodeType&&"TABLE"==r.tagName)&&domUtils.isStartInblock(o)){var s=domUtils.findParent(g.selection.getStart(),function(a){return domUtils.isBlockElm(a)},!0);s&&(/t(h|d)/i.test(s.tagName)||s===q.firstChild)&&(g.execCommand("insertparagraphbeforetable"),domUtils.preventDefault(d))}}}}if((d.ctrlKey||d.metaKey)&&"67"==d.keyCode){a=null;var i=Z(g);if(i){var t=i.selectedTds;c=i.isFullCol(),f=i.isFullRow(),a=[[i.cloneCell(t[0],null,!0)]];for(var m,n=1;m=t[n];n++)m.parentNode!==t[n-1].parentNode?a.push([i.cloneCell(m,null,!0)]):a[a.length-1].push(i.cloneCell(m,null,!0))}}}),N.addListener("tablehasdeleted",function(){m(this,!1,"",null),ea&&domUtils.remove(ea)}),N.addListener("beforepaste",function(d,g){var h=this,i=h.selection.getRange();if(domUtils.findParentByTagName(i.startContainer,"caption",!0)){var j=h.document.createElement("div");return j.innerHTML=g.html,void(g.html=j[browser.ie9below?"innerText":"textContent"])}var k=Z(h);if(a){h.fireEvent("saveScene");var l,m,i=h.selection.getRange(),n=domUtils.findParentByTagName(i.startContainer,["td","th"],!0);if(n){var o=Y(n);if(f){var p=o.getCellInfo(n).rowIndex;"TH"==n.tagName&&p++;for(var q,r=0;q=a[r++];){for(var s,t=o.insertRow(p++,"td"),u=0;s=q[u];u++){var v=t.cells[u];v||(v=t.insertCell(u)),v.innerHTML=s.innerHTML,s.getAttribute("width")&&v.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&v.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&v.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(v.style.cssText=s.style.cssText)}for(var s,u=0;(s=t.cells[u])&&q[u];u++)s.innerHTML=q[u].innerHTML,q[u].getAttribute("width")&&s.setAttribute("width",q[u].getAttribute("width")),q[u].getAttribute("vAlign")&&s.setAttribute("vAlign",q[u].getAttribute("vAlign")),q[u].getAttribute("align")&&s.setAttribute("align",q[u].getAttribute("align")),q[u].style.cssText&&(s.style.cssText=q[u].style.cssText)}}else{if(c){y=o.getCellInfo(n);for(var s,w=0,u=0,q=a[0];s=q[u++];)w+=s.colSpan||1;for(h.__hasEnterExecCommand=!0,r=0;r1&&(x.rowSpan=1)}var z=$(h),A=h.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(h.body,"margin-left"),10):0)-2*z.tableBorder-(h.options.offsetWidth||0);h.execCommand("insertHTML",""+k.innerHTML.replace(/>\s*<").replace(/\bth\b/gi,"td")+"
    ")}return h.fireEvent("contentchange"),h.fireEvent("saveScene"),g.html="",!0}var B,j=h.document.createElement("div");j.innerHTML=g.html,B=j.getElementsByTagName("table"),domUtils.findParentByTagName(h.selection.getStart(),"table")?(utils.each(B,function(a){domUtils.remove(a)}),domUtils.findParentByTagName(h.selection.getStart(),"caption",!0)&&(j.innerHTML=j[browser.ie?"innerText":"textContent"])):utils.each(B,function(a){b(a,!0),domUtils.removeAttributes(a,["style","border"]),utils.each(domUtils.getElementsByTagName(a,"td"),function(a){e(a)&&domUtils.fillNode(h.document,a),b(a,!0)})}),g.html=j.innerHTML}),N.addListener("afterpaste",function(){utils.each(domUtils.getElementsByTagName(N.body,"table"),function(a){if(a.offsetWidth>N.body.offsetWidth){var b=$(N,a);a.style.width=N.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(N.body,"margin-left"),10):0)-2*b.tableBorder-(N.options.offsetWidth||0)+"px"}})}),N.addListener("blur",function(){a=null});var i;N.addListener("keydown",function(){clearTimeout(i),i=setTimeout(function(){var a=N.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,["th","td"],!0);if(b){var c=b.parentNode.parentNode.parentNode;c.offsetWidth>c.getAttribute("width")&&(b.style.wordBreak="break-all")}},100)}),N.addListener("selectionchange",function(){m(N,!1,"",null)}),N.addListener("contentchange",function(){var a=this;if(I(a),!Z(a)){var b=a.selection.getRange(),c=b.startContainer;c=domUtils.findParentByTagName(c,["td","th"],!0),utils.each(domUtils.getElementsByTagName(a.document,"table"),function(b){a.fireEvent("excludetable",b)!==!0&&(b.ueTable=new X(b),b.onmouseover=function(){a.fireEvent("tablemouseover",b)},b.onmousemove=function(){a.fireEvent("tablemousemove",b),a.options.tableDragable&&h(!0,this,a),utils.defer(function(){a.fireEvent("contentchange",50)},!0)},b.onmouseout=function(){a.fireEvent("tablemouseout",b),m(a,!1,"",null),I(a)},b.onclick=function(b){b=a.window.event||b;var c=d(b.target||b.srcElement);if(c){var e,f=Y(c),g=f.table,h=f.getCellInfo(c),i=a.selection.getRange();if(j(g,c,b,!0)){var k=f.getCell(f.indexTable[f.rowsNum-1][h.colIndex].rowIndex,f.indexTable[f.rowsNum-1][h.colIndex].cellIndex);return void(b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==k?(e=f.getCellsRange(f.selectedTds[0],k),f.setSelected(e)):i&&i.selectNodeContents(k).select():c!==k?(e=f.getCellsRange(c,k),f.setSelected(e)):i&&i.selectNodeContents(k).select())}if(j(g,c,b)){var l=f.getCell(f.indexTable[h.rowIndex][f.colsNum-1].rowIndex,f.indexTable[h.rowIndex][f.colsNum-1].cellIndex);b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==l?(e=f.getCellsRange(f.selectedTds[0],l),f.setSelected(e)):i&&i.selectNodeContents(l).select():c!==l?(e=f.getCellsRange(c,l),f.setSelected(e)):i&&i.selectNodeContents(l).select()}}})}),K(a,!0)}}),domUtils.on(N.document,"mousemove",g),domUtils.on(N.document,"mouseout",function(a){var b=a.target||a.srcElement;"TABLE"==b.tagName&&m(N,!1,"",null)}),N.addListener("interlacetable",function(a,b,c){if(b)for(var d=this,e=b.rows,f=e.length,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;h1?k:f.getCellInfo(d).rowIndex;var g=f.getTabNextCell(d,k);g?e(g)?a.setStart(g,0).setCursor(!1,!0):a.selectNodeContents(g).select():(N.fireEvent("saveScene"),N.__hasEnterExecCommand=!0,this.execCommand("insertrownext"),N.__hasEnterExecCommand=!1,a=this.selection.getRange(),a.setStart(c.rows[c.rows.length-1].cells[0],0).setCursor(),N.fireEvent("saveScene"))}return!0}}),browser.ie&&N.addListener("selectionchange",function(){m(this,!1,"",null)}),N.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(8!=d&&46!=d){var e=!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey);e&&_(domUtils.getElementsByTagName(c.body,"td"));var f=Z(c);f&&e&&f.clearSelected()}}),N.addListener("beforegetcontent",function(){K(this,!1),browser.ie&&utils.each(this.document.getElementsByTagName("caption"),function(a){domUtils.isEmptyNode(a)&&(a.innerHTML=" ")})}),N.addListener("aftergetcontent",function(){K(this,!0)}),N.addListener("getAllHtml",function(){_(N.document.getElementsByTagName("td"))}),N.addListener("fullscreenchanged",function(a,b){if(!b){var c=this.body.offsetWidth/document.body.offsetWidth,d=domUtils.getElementsByTagName(this.body,"table");utils.each(d,function(a){if(a.offsetWidth1||c[e].getAttribute("rowspan")>1)return-1;return b?"enablesort"==a^"sortEnabled"!=b.getAttribute("data-sort")?-1:0:-1},execCommand:function(a){var b=d(this).table;b.setAttribute("data-sort","enablesort"==a?"sortEnabled":"sortDisabled"),"enablesort"==a?domUtils.addClass(b,"sortEnabled"):domUtils.removeClasses(b,"sortEnabled")}}},UE.plugins.contextmenu=function(){var a=this;if(a.setOpt("enableContextMenu",!0),a.getOpt("enableContextMenu")!==!1){var b,c=a.getLang("contextMenu"),d=a.options.contextMenu||[{label:c.selectall,cmdName:"selectall"},{label:c.cleardoc,cmdName:"cleardoc",exec:function(){confirm(c.confirmclear)&&this.execCommand("cleardoc")}},"-",{label:c.unlink,cmdName:"unlink"},"-",{group:c.paragraph,icon:"justifyjustify",subMenu:[{label:c.justifyleft,cmdName:"justify",value:"left"},{label:c.justifyright,cmdName:"justify",value:"right"},{label:c.justifycenter,cmdName:"justify",value:"center"},{label:c.justifyjustify,cmdName:"justify",value:"justify"}]},"-",{group:c.table,icon:"table",subMenu:[{label:c.inserttable,cmdName:"inserttable"},{label:c.deletetable,cmdName:"deletetable"},"-",{label:c.deleterow,cmdName:"deleterow"},{label:c.deletecol,cmdName:"deletecol"},{label:c.insertcol,cmdName:"insertcol"},{label:c.insertcolnext,cmdName:"insertcolnext"},{label:c.insertrow,cmdName:"insertrow"},{label:c.insertrownext,cmdName:"insertrownext"},"-",{label:c.insertcaption,cmdName:"insertcaption"},{label:c.deletecaption,cmdName:"deletecaption"},{label:c.inserttitle,cmdName:"inserttitle"},{label:c.deletetitle,cmdName:"deletetitle"},{label:c.inserttitlecol,cmdName:"inserttitlecol"},{label:c.deletetitlecol,cmdName:"deletetitlecol"},"-",{label:c.mergecells,cmdName:"mergecells"},{label:c.mergeright,cmdName:"mergeright"},{label:c.mergedown,cmdName:"mergedown"},"-",{label:c.splittorows,cmdName:"splittorows"},{label:c.splittocols,cmdName:"splittocols"},{label:c.splittocells,cmdName:"splittocells"},"-",{label:c.averageDiseRow,cmdName:"averagedistributerow"},{label:c.averageDisCol,cmdName:"averagedistributecol"},"-",{label:c.edittd,cmdName:"edittd",exec:function(){UE.ui.edittd&&new UE.ui.edittd(this),this.getDialog("edittd").open()}},{label:c.edittable,cmdName:"edittable",exec:function(){UE.ui.edittable&&new UE.ui.edittable(this),this.getDialog("edittable").open()}},{label:c.setbordervisible,cmdName:"setbordervisible"}]},{group:c.tablesort,icon:"tablesort",subMenu:[{label:c.enablesort,cmdName:"enablesort"},{label:c.disablesort,cmdName:"disablesort"},"-",{label:c.reversecurrent,cmdName:"sorttable",value:"reversecurrent"},{label:c.orderbyasc,cmdName:"sorttable",value:"orderbyasc"},{label:c.reversebyasc,cmdName:"sorttable",value:"reversebyasc"},{label:c.orderbynum,cmdName:"sorttable",value:"orderbynum"},{label:c.reversebynum,cmdName:"sorttable",value:"reversebynum"}]},{group:c.borderbk,icon:"borderBack",subMenu:[{label:c.setcolor,cmdName:"interlacetable",exec:function(){this.execCommand("interlacetable")}},{label:c.unsetcolor,cmdName:"uninterlacetable",exec:function(){this.execCommand("uninterlacetable")}},{label:c.setbackground,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#bbb","#ccc"]})}},{label:c.unsetbackground,cmdName:"cleartablebackground",exec:function(){this.execCommand("cleartablebackground")}},{label:c.redandblue,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["red","blue"]})}},{label:c.threecolorgradient,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#aaa","#bbb","#ccc"]})}}]},{group:c.aligntd,icon:"aligntd",subMenu:[{cmdName:"cellalignment",value:{align:"left",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"bottom"}}]},{group:c.aligntable,icon:"aligntable",subMenu:[{cmdName:"tablealignment",className:"left",label:c.tableleft,value:"left"},{cmdName:"tablealignment",className:"center",label:c.tablecenter,value:"center"},{cmdName:"tablealignment",className:"right",label:c.tableright,value:"right"}]},"-",{label:c.insertparagraphbefore,cmdName:"insertparagraph",value:!0},{label:c.insertparagraphafter,cmdName:"insertparagraph"},{label:c.copy,cmdName:"copy"},{label:c.paste,cmdName:"paste"}];if(d.length){var e=UE.ui.uiUtils;a.addListener("contextmenu",function(f,g){var h=e.getViewportOffsetByEvent(g);a.fireEvent("beforeselectionchange"),b&&b.destroy();for(var i,j=0,k=[];i=d[j];j++){var l;!function(b){function d(){switch(b.icon){case"table":return a.getLang("contextMenu.table");case"justifyjustify":return a.getLang("contextMenu.paragraph");case"aligntd":return a.getLang("contextMenu.aligntd");case"aligntable":return a.getLang("contextMenu.aligntable");case"tablesort":return c.tablesort;case"borderBack":return c.borderbk;default:return""}}if("-"==b)(l=k[k.length-1])&&"-"!==l&&k.push("-");else if(b.hasOwnProperty("group")){for(var e,f=0,g=[];e=b.subMenu[f];f++)!function(b){"-"==b?(l=g[g.length-1])&&"-"!==l?g.push("-"):g.splice(g.length-1):(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query():a.queryCommandState(b.cmdName))>-1&&g.push({label:b.label||a.getLang("contextMenu."+b.cmdName+(b.value||""))||"",className:"edui-for-"+b.cmdName+(b.className?" edui-for-"+b.cmdName+"-"+b.className:""),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(e);g.length&&k.push({label:d(),className:"edui-for-"+b.icon,subMenu:{items:g,editor:a}})}else(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query.call(a):a.queryCommandState(b.cmdName))>-1&&k.push({label:b.label||a.getLang("contextMenu."+b.cmdName),className:"edui-for-"+(b.icon?b.icon:b.cmdName+(b.value||"")),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(i)}if("-"==k[k.length-1]&&k.pop(),b=new UE.ui.Menu({items:k,className:"edui-contextmenu",editor:a}),b.render(),b.showAt(h),a.fireEvent("aftershowcontextmenu",b),domUtils.preventDefault(g),browser.ie){var m;try{m=a.selection.getNative().createRange()}catch(n){return}if(m.item){var o=new dom.Range(a.document);o.selectNode(m.item(0)).select(!0,!0)}}}),a.addListener("aftershowcontextmenu",function(b,c){if(a.zeroclipboard){var d=c.items;for(var e in d)"edui-for-copy"==d[e].className&&a.zeroclipboard.clip(d[e].getDom())}})}}},UE.plugins.shortcutmenu=function(){var a,b=this,c=b.options.shortcutMenu||[];c.length&&(b.addListener("contextmenu mouseup",function(b,d){var e=this,f={type:b,target:d.target||d.srcElement,screenX:d.screenX,screenY:d.screenY,clientX:d.clientX,clientY:d.clientY};if(setTimeout(function(){var d=e.selection.getRange();d.collapsed!==!1&&"contextmenu"!=b||(a||(a=new baidu.editor.ui.ShortCutMenu({editor:e,items:c,theme:e.options.theme,className:"edui-shortcutmenu"}),a.render(),e.fireEvent("afterrendershortcutmenu",a)),a.show(f,!!UE.plugins.contextmenu))}),"contextmenu"==b&&(domUtils.preventDefault(d),browser.ie9below)){var g;try{g=e.selection.getNative().createRange()}catch(d){return}if(g.item){var h=new dom.Range(e.document);h.selectNode(g.item(0)).select(!0,!0)}}}),b.addListener("keydown",function(b){"keydown"==b&&a&&!a.isHidden&&a.hide()}))},UE.plugins.basestyle=function(){var a={bold:["strong","b"],italic:["em","i"],subscript:["sub"],superscript:["sup"]},b=function(a,b){return domUtils.filterNodeList(a.selection.getStartElementPath(),b)},c=this;c.addshortcutkey({Bold:"ctrl+66",Italic:"ctrl+73",Underline:"ctrl+85"}),c.addInputRule(function(a){utils.each(a.getNodesByTagName("b i"),function(a){switch(a.tagName){case"b":a.tagName="strong";break;case"i":a.tagName="em"}})});for(var d in a)!function(a,d){c.commands[a]={execCommand:function(a){var e=c.selection.getRange(),f=b(this,d);if(e.collapsed){if(f){var g=c.document.createTextNode("");e.insertNode(g).removeInlineStyle(d),e.setStartBefore(g),domUtils.remove(g)}else{var h=e.document.createElement(d[0]);"superscript"!=a&&"subscript"!=a||(g=c.document.createTextNode(""),e.insertNode(g).removeInlineStyle(["sub","sup"]).setStartBefore(g).collapse(!0)),e.insertNode(h).setStart(h,0)}e.collapse(!0)}else"superscript"!=a&&"subscript"!=a||f&&f.tagName.toLowerCase()==a||e.removeInlineStyle(["sub","sup"]),f?e.removeInlineStyle(d):e.applyInlineStyle(d[0]);e.select()},queryCommandState:function(){return b(this,d)?1:0}}}(d,a[d])},UE.plugins.elementpath=function(){var a,b,c=this;c.setOpt("elementPathEnabled",!0),c.options.elementPathEnabled&&(c.commands.elementpath={execCommand:function(d,e){var f=b[e],g=c.selection.getRange();a=1*e,g.selectNode(f).select()},queryCommandValue:function(){var c=[].concat(this.selection.getStartElementPath()).reverse(),d=[];b=c;for(var e,f=0;e=c[f];f++)if(3!=e.nodeType){var g=e.tagName.toLowerCase();if("img"==g&&e.getAttribute("anchorname")&&(g="anchor"),d[f]=g,a==f){a=-1;break}}return d}})},UE.plugins.formatmatch=function(){function a(f,g){function h(a){return m&&a.selectNode(m),a.applyInlineStyle(d[d.length-1].tagName,null,d)}if(browser.webkit)var i="IMG"==g.target.tagName?g.target:null;c.undoManger&&c.undoManger.save();var j=c.selection.getRange(),k=i||j.getClosedNode();if(b&&k&&"IMG"==k.tagName)k.style.cssText+=";float:"+(b.style.cssFloat||b.style.styleFloat||"none")+";display:"+(b.style.display||"inline"),b=null;else if(!b){var l=j.collapsed;if(l){var m=c.document.createTextNode("match");j.insertNode(m).select()}c.__hasEnterExecCommand=!0;var n=c.options.removeFormatAttributes;c.options.removeFormatAttributes="",c.execCommand("removeformat"),c.options.removeFormatAttributes=n,c.__hasEnterExecCommand=!1,j=c.selection.getRange(),d.length&&h(j),m&&j.setStartBefore(m).collapse(!0),j.select(),m&&domUtils.remove(m)}c.undoManger&&c.undoManger.save(),c.removeListener("mouseup",a),e=0}var b,c=this,d=[],e=0;c.addListener("reset",function(){d=[],e=0}),c.commands.formatmatch={execCommand:function(f){if(e)return e=0,d=[],void c.removeListener("mouseup",a);var g=c.selection.getRange();if(b=g.getClosedNode(),!b||"IMG"!=b.tagName){g.collapse(!0).shrinkBoundary();var h=g.startContainer;d=domUtils.findParents(h,!0,function(a){return!domUtils.isBlockElm(a)&&1==a.nodeType});for(var i,j=0;i=d[j];j++)if("A"==i.tagName){d.splice(j,1);break}}c.addListener("mouseup",a),e=1},queryCommandState:function(){return e},notNeedUndo:1}},UE.plugin.register("searchreplace",function(){function a(a,b,c){var d=b.searchStr;b.dir==-1&&(a=a.split("").reverse().join(""),d=d.split("").reverse().join(""),c=a.length-c);for(var e,f=new RegExp(d,"g"+(b.casesensitive?"":"i"));e=f.exec(a);)if(e.index>=c)return b.dir==-1?a.length-e.index-b.searchStr.length:e.index;return-1}function b(b,c,d){var e,f,h=d.all||1==d.dir?"getNextDomNode":"getPreDomNode";domUtils.isBody(b)&&(b=b.firstChild);for(var i=1;b;){if(e=3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"],f=a(e,d,c),i=0,f!=-1)return{node:b,index:f};for(b=domUtils[h](b);b&&g[b.nodeName.toLowerCase()];)b=domUtils[h](b,!0);b&&(c=d.dir==-1?(3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"]).length:0)}}function c(a,b,d){for(var e,f=0,g=a.firstChild,h=0;g;){if(3==g.nodeType){if(h=g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b)return{node:g,index:h-(f-b)}}else if(!dtd.$empty[g.tagName]&&(h=g[browser.ie?"innerText":"textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b&&(e=c(g,h-(f-b),d))))return e;g=domUtils.getNextDomNode(g)}}function d(a,d){var f,g=a.selection.getRange(),h=d.searchStr,i=a.document.createElement("span");if(i.innerHTML="$$ueditor_searchreplace_key$$",g.shrinkBoundary(!0),!g.collapsed){g.select();var j=a.selection.getText();if(new RegExp("^"+d.searchStr+"$",d.casesensitive?"":"i").test(j)){if(void 0!=d.replaceStr)return e(g,d.replaceStr),g.select(),!0;g.collapse(d.dir==-1)}}g.insertNode(i),g.enlargeToBlockElm(!0),f=g.startContainer;var k=f[browser.ie?"innerText":"textContent"].indexOf("$$ueditor_searchreplace_key$$");g.setStartBefore(i),domUtils.remove(i);var l=b(f,k,d);if(l){var m=c(l.node,l.index,h),n=c(l.node,l.index+h.length,h);return g.setStart(m.node,m.index).setEnd(n.node,n.index),void 0!==d.replaceStr&&e(g,d.replaceStr),g.select(),!0}g.setCursor()}function e(a,b){b=f.document.createTextNode(b),a.deleteContents().insertNode(b)}var f=this,g={table:1,tbody:1,tr:1,ol:1,ul:1};return{commands:{searchreplace:{execCommand:function(a,b){utils.extend(b,{all:!1,casesensitive:!1,dir:1},!0);var c=0;if(b.all){var e=f.selection.getRange(),g=f.body.firstChild;for(g&&1==g.nodeType?(e.setStart(g,0),e.shrinkBoundary(!0)):3==g.nodeType&&e.setStartBefore(g),e.collapse(!0).select(!0),void 0!==b.replaceStr&&f.fireEvent("saveScene");d(this,b);)c++;c&&f.fireEvent("saveScene")}else void 0!==b.replaceStr&&f.fireEvent("saveScene"),d(this,b)&&c++,c&&f.fireEvent("saveScene");return c},notNeedUndo:1}}}}),UE.plugins.customstyle=function(){var a=this;a.setOpt({customstyle:[{tag:"h1",name:"tc",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"},{tag:"h1",name:"tl",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"},{tag:"span",name:"im",style:"font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"},{tag:"span",name:"hi",style:"font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}),a.commands.customstyle={execCommand:function(a,b){var c,d,e=this,f=b.tag,g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")},!0),h={};for(var i in b)void 0!==b[i]&&(h[i]=b[i]);if(delete h.tag,g&&g.getAttribute("label")==b.label){if(c=this.selection.getRange(),d=c.createBookmark(),c.collapsed)if(dtd.$block[g.tagName]){var j=e.document.createElement("p");domUtils.moveChild(g,j),g.parentNode.insertBefore(j,g),domUtils.remove(g)}else domUtils.remove(g,!0);else{var k=domUtils.getCommonAncestor(d.start,d.end),l=domUtils.getElementsByTagName(k,f);new RegExp(f,"i").test(k.tagName)&&l.push(k);for(var m,n=0;m=l[n++];)if(m.getAttribute("label")==b.label){var o=domUtils.getPosition(m,d.start),p=domUtils.getPosition(m,d.end);if((o&domUtils.POSITION_FOLLOWING||o&domUtils.POSITION_CONTAINS)&&(p&domUtils.POSITION_PRECEDING||p&domUtils.POSITION_CONTAINS)&&dtd.$block[f]){var j=e.document.createElement("p");domUtils.moveChild(m,j),m.parentNode.insertBefore(j,m)}domUtils.remove(m,!0)}g=domUtils.findParent(k,function(a){return a.getAttribute("label")==b.label},!0),g&&domUtils.remove(g,!0)}c.moveToBookmark(d).select()}else if(dtd.$block[f]){if(this.execCommand("paragraph",f,h,"customstyle"),c=e.selection.getRange(),!c.collapsed){c.collapse(),g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")==b.label},!0);var q=e.document.createElement("p");domUtils.insertAfter(g,q),domUtils.fillNode(e.document,q),c.setStart(q,0).setCursor()}}else{if(c=e.selection.getRange(),c.collapsed)return g=e.document.createElement(f),domUtils.setAttributes(g,h),void c.insertNode(g).setStart(g,0).setCursor();d=c.createBookmark(),c.applyInlineStyle(f,h).moveToBookmark(d).select()}},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return a.getAttribute("label")});return a?a.getAttribute("label"):""}},a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(32==d||13==d){var e=a.selection.getRange();if(e.collapsed){var f=domUtils.findParent(a.selection.getStart(),function(a){return a.getAttribute("label")},!0);if(f&&dtd.$block[f.tagName]&&domUtils.isEmptyNode(f)){var g=a.document.createElement("p");domUtils.insertAfter(f,g),domUtils.fillNode(a.document,g),domUtils.remove(f),e.setStart(g,0).setCursor()}}}})},UE.plugins.catchremoteimage=function(){var me=this,ajax=UE.ajax;me.options.catchRemoteImageEnable!==!1&&(me.setOpt({catchRemoteImageEnable:!1}),me.addListener("afterpaste",function(){me.fireEvent("catchRemoteImage")}),me.addListener("catchRemoteImage",function(){function catchremoteimage(a,b){var c=utils.serializeParam(me.queryCommandValue("serverparam"))||"",d=utils.formatUrl(catcherActionUrl+(catcherActionUrl.indexOf("?")==-1?"?":"&")+c),e=utils.isCrossDomainUrl(d),f={method:"POST",dataType:e?"jsonp":"",timeout:6e4,onsuccess:b.success,onerror:b.error};f[catcherFieldName]=a,ajax.request(d,f)}for(var catcherLocalDomain=me.getOpt("catcherLocalDomain"),catcherActionUrl=me.getActionUrl(me.getOpt("catcherActionName")),catcherUrlPrefix=me.getOpt("catcherUrlPrefix"),catcherFieldName=me.getOpt("catcherFieldName"),remoteImages=[],imgs=domUtils.getElementsByTagName(me.document,"img"),test=function(a,b){if(a.indexOf(location.host)!=-1||/(^\.)|(^\/)/.test(a))return!0;if(b)for(var c,d=0;c=b[d++];)if(a.indexOf(c)!==-1)return!0;return!1},i=0,ci;ci=imgs[i++];)if(!ci.getAttribute("word_img")){var src=ci.getAttribute("_src")||ci.src||"";/^(https?|ftp):/i.test(src)&&!test(src,catcherLocalDomain)&&remoteImages.push(src)}remoteImages.length&&catchremoteimage(remoteImages,{success:function(r){try{var info=void 0!==r.state?r:eval("("+r.responseText+")")}catch(e){return}var i,j,ci,cj,oldSrc,newSrc,list=info.list;for(i=0;ci=imgs[i++];)for(oldSrc=ci.getAttribute("_src")||ci.src||"",j=0;cj=list[j++];)if(oldSrc==cj.source&&"SUCCESS"==cj.state){newSrc=catcherUrlPrefix+cj.url,domUtils.setAttributes(ci,{src:newSrc,_src:newSrc});break}me.fireEvent("catchremotesuccess")},error:function(){me.fireEvent("catchremoteerror")}})}))},UE.plugin.register("snapscreen",function(){function getLocation(a){var b,c=document.createElement("a"),d=utils.serializeParam(me.queryCommandValue("serverparam"))||"";return c.href=a,browser.ie&&(c.href=c.href),b=c.search,d&&(b=b+(b.indexOf("?")==-1?"?":"&")+d,b=b.replace(/[&]+/gi,"&")),{port:c.port,hostname:c.hostname,path:c.pathname+b||+c.hash}}var me=this,snapplugin;return{commands:{snapscreen:{execCommand:function(cmd){function onSuccess(rs){try{if(rs=eval("("+rs+")"),"SUCCESS"==rs.state){var opt=me.options;me.execCommand("insertimage",{src:opt.snapscreenUrlPrefix+rs.url,_src:opt.snapscreenUrlPrefix+rs.url,alt:rs.title||"",floatStyle:opt.snapscreenImgAlign})}else alert(rs.state)}catch(e){alert(lang.callBackErrorMsg)}}var url,local,res,lang=me.getLang("snapScreen_plugin");if(!snapplugin){var container=me.container,doc=me.container.ownerDocument||me.container.document;snapplugin=doc.createElement("object");try{snapplugin.type="application/x-pluginbaidusnap"}catch(e){return}snapplugin.style.cssText="position:absolute;left:-9999px;width:0;height:0;",snapplugin.setAttribute("width","0"),snapplugin.setAttribute("height","0"),container.appendChild(snapplugin)}url=me.getActionUrl(me.getOpt("snapscreenActionName")),local=getLocation(url),setTimeout(function(){try{res=snapplugin.saveSnapshot(local.hostname,local.path,local.port)}catch(a){return void me.ui._dialogs.snapscreenDialog.open()}onSuccess(res)},50)},queryCommandState:function(){return navigator.userAgent.indexOf("Windows",0)!=-1?0:-1}}}}}),UE.commands.insertparagraph={execCommand:function(a,b){for(var c,d=this,e=d.selection.getRange(),f=e.startContainer;f&&!domUtils.isBody(f);)c=f,f=f.parentNode;if(c){var g=d.document.createElement("p");b?c.parentNode.insertBefore(g,c):c.parentNode.insertBefore(g,c.nextSibling),domUtils.fillNode(d.document,g),e.setStart(g,0).setCursor(!1,!0)}}},UE.plugin.register("webapp",function(){function a(a,c){return c?'':'"}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-webapp"==b.getAttr("class")){c=a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("_url"),logo:b.getAttr("_logo_url")},!0);var d=UE.uNode.createElement(c);b.parentNode.replaceChild(d,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("iframe"),function(b){if("edui-faked-webapp"==b.getAttr("class")){var c=UE.uNode.createElement(a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("src"),logo:b.getAttr("logo_url")}));b.parentNode.replaceChild(c,b)}})},commands:{webapp:{execCommand:function(b,c){var d=this,e=a(utils.extend(c,{align:"none"}),!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-webapp"==b.className;return c?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(a,b){b.html&&this.execCommand("inserthtml",b.html)}},this.addListener("click",function(a,b){var c=b.target||b.srcElement,d=this.selection.getRange(),e=domUtils.findParent(c,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);e&&d.selectNode(e).shrinkBoundary().select()}),this.addListener("keydown",function(a,b){var c=this.selection.getRange();if(!c.collapsed&&!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){var d=domUtils.findParent(c.startContainer,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);d&&domUtils.removeClasses(d,["ue_t"])}})},UE.plugin.register("music",function(){function a(a,c,d,e,f,g){return g?'':"'}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-music"==b.getAttr("class")){var d=b.getStyle("float"),e=b.getAttr("align");c=a(b.getAttr("_url"),b.getAttr("width"),b.getAttr("height"),e,d,!0);var f=UE.uNode.createElement(c);b.parentNode.replaceChild(f,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("embed"),function(b){if("edui-faked-music"==b.getAttr("class")){var c=b.getStyle("float"),d=b.getAttr("align");html=a(b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),d,c,!1);var e=UE.uNode.createElement(html);b.parentNode.replaceChild(e,b)}})},commands:{music:{execCommand:function(b,c){var d=this,e=a(c.url,c.width||400,c.height||95,"none",!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-music"==b.className;return c?1:0}}}}}),UE.plugin.register("autoupload",function(){function a(a,b){var c,d,e,f,g,h,i,j,k=b,l=/image\/\w+/i.test(a.type)?"image":"file",m="loading_"+(+new Date).toString(36);if(c=k.getOpt(l+"FieldName"),d=k.getOpt(l+"UrlPrefix"),e=k.getOpt(l+"MaxSize"),f=k.getOpt(l+"AllowFiles"),g=k.getActionUrl(k.getOpt(l+"ActionName")),i=function(a){var b=k.document.getElementById(m);b&&domUtils.remove(b),k.fireEvent("showmessage",{id:m,content:a,type:"error",timeout:4e3})},"image"==l?(h='',j=function(a){var b=d+a.url,c=k.document.getElementById(m);c&&(c.setAttribute("src",b),c.setAttribute("_src",b),c.setAttribute("title",a.title||""),c.setAttribute("alt",a.original||""),c.removeAttribute("id"),domUtils.removeClasses(c,"loadingclass"))}):(h='

    ',j=function(a){var b=d+a.url,c=k.document.getElementById(m),e=k.selection.getRange(),f=e.createBookmark();e.selectNode(c).select(),k.execCommand("insertfile",{url:b}),e.moveToBookmark(f).select()}),k.execCommand("inserthtml",h),!k.getOpt(l+"ActionName"))return void i(k.getLang("autoupload.errorLoadConfig"));if(a.size>e)return void i(k.getLang("autoupload.exceedSizeError"));var n=a.name?a.name.substr(a.name.lastIndexOf(".")):"";if(n&&"image"!=l||f&&(f.join("")+".").indexOf(n.toLowerCase()+".")==-1)return void i(k.getLang("autoupload.exceedTypeError"));var o=new XMLHttpRequest,p=new FormData,q=utils.serializeParam(k.queryCommandValue("serverparam"))||"",r=utils.formatUrl(g+(g.indexOf("?")==-1?"?":"&")+q);p.append(c,a,a.name||"blob."+a.type.substr("image/".length)),p.append("type","ajax"),o.open("post",r,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.addEventListener("load",function(a){try{var b=new Function("return "+utils.trim(a.target.response))();"SUCCESS"==b.state&&b.url?j(b):i(b.state)}catch(c){i(k.getLang("autoupload.loadError"))}}),o.send(p)}function b(a){return a.clipboardData&&a.clipboardData.items&&1==a.clipboardData.items.length&&/^image\//.test(a.clipboardData.items[0].type)?a.clipboardData.items:null}function c(a){return a.dataTransfer&&a.dataTransfer.files?a.dataTransfer.files:null}return{outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)}),utils.each(a.getNodesByTagName("p"),function(a){/\bloadpara\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},bindEvents:{ready:function(d){var e=this;window.FormData&&window.FileReader&&(domUtils.on(e.body,"paste drop",function(d){var f,g=!1;if(f="paste"==d.type?b(d):c(d)){for(var h,i=f.length;i--;)h=f[i],h.getAsFile&&(h=h.getAsFile()),h&&h.size>0&&(a(h,e),g=!0);g&&d.preventDefault()}}),domUtils.on(e.body,"dragover",function(a){"Files"==a.dataTransfer.types[0]&&a.preventDefault()}),utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document))}}}}),UE.plugin.register("autosave",function(){function a(a){var f;if(!(new Date-c0?b._saveFlag=window.setTimeout(function(){a(b)},b.options.saveInterval):a(b))}},commands:{clearlocaldata:{execCommand:function(a,c){e&&b.getPreferences(e)&&b.removePreferences(e)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(a,c){return e?b.getPreferences(e)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(a,c){e&&(b.body.innerHTML=b.getPreferences(e)||"

    "+domUtils.fillHtml+"

    ",b.focus(!0))},queryCommandState:function(){return e?null===b.getPreferences(e)?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function a(a){var b=null,c=0;if(a.rows.length<2)return!1;if(a.rows[0].cells.length<2)return!1;b=a.rows[0].cells,c=b.length;for(var d,e=0;d=b[e];e++)if("th"!==d.tagName.toLowerCase())return!1;for(var f,e=1;f=a.rows[e];e++){if(f.cells.length!=c)return!1;if("th"!==f.cells[0].tagName.toLowerCase())return!1;for(var d,g=1;d=f.cells[g];g++){var h=utils.trim(d.innerText||d.textContent||"");if(h=h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,""),!/^\d*\.?\d+$/.test(h))return!1}}return!0}var b=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(c,d){var e=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0),f=[],g={};if(!e)return!1;if(!a(e))return b.fireEvent("chartserror"),!1;g.title=d.title||"",g.subTitle=d.subTitle||"",g.xTitle=d.xTitle||"",g.yTitle=d.yTitle||"",g.suffix=d.suffix||"",g.tip=d.tip||"",g.dataFormat=d.tableDataFormat||"",g.chartType=d.chartType||0;for(var h in g)g.hasOwnProperty(h)&&f.push(h+":"+g[h]); -e.setAttribute("data-chart",f.join(";")),domUtils.addClass(e,"edui-charts-table")},queryCommandState:function(b,c){var d=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return d&&a(d)?0:-1}}},inputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style")})},outputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function a(a){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function b(b){var c=new a;return utils.extend(c,b)}function c(a,b){for(var c=b,d=0;d=0){var o=h.selection.getRange().selectNode(i).createAddress(!0).startAddress,p=b({tag:i.tagName,title:i.innerText||i.textContent||"",level:f,dom:i,startAddress:utils.clone(o,[]),endAddress:utils.clone(o,[]),children:[]});for(j.nextSection=p,p.previousSection=j,g=j;f<=g.level;)g=g.parentSection;p.parentSection=g,g.children.push(p),k=j=p}else 1===i.nodeType&&e(i,c),k&&k.endAddress[k.endAddress.length-1]++}for(var f=c||["h1","h2","h3","h4","h5","h6"],g=0;g=c.length);f++){if(c[f]>a[f]){d=!0;break}if(c[f]=c.length);f++){if(c[f]a[f])break}return d&&e}var g,h,i=this;if(b&&d&&d.level!=-1&&(g=e?d.endAddress:d.startAddress,h=c(g,i.body),g&&h&&!f(b.startAddress,b.endAddress,g))){var j,k,l=c(b.startAddress,i.body),m=c(b.endAddress,i.body);if(e)for(j=m;j&&!(domUtils.getPosition(l,j)&domUtils.POSITION_FOLLOWING)&&(k=j.previousSibling,domUtils.insertAfter(h,j),j!=l);)j=k;else for(j=l;j&&!(domUtils.getPosition(j,m)&domUtils.POSITION_FOLLOWING)&&(k=j.nextSibling,h.parentNode.insertBefore(j,h),j!=m);)j=k;i.fireEvent("updateSections")}}},deletesection:{execCommand:function(a,b,c){function d(a){for(var b=e.body,c=0;c'),!c.getOpt("imageActionName"))return void b(c.getLang("autoupload.errorLoadConfig"));var k=h.value,l=k?k.substr(k.lastIndexOf(".")):"";if(!l||j&&(j.join("")+".").indexOf(l.toLowerCase()+".")==-1)return void b(c.getLang("simpleupload.exceedTypeError"));var m=new XMLHttpRequest;if(m.open("post",i,!0),c.options.headers&&"[object Object]"===Object.prototype.toString.apply(c.options.headers))for(var n in c.options.headers)m.setRequestHeader(n,c.options.headers[n]);m.onload=function(){if(m.status>=200&&m.status<300||304==m.status){var a=JSON.parse(m.responseText),e=c.options.imageUrlPrefix+a.url;"SUCCESS"==a.state&&a.url?(loader=c.document.getElementById(d),loader.setAttribute("src",e),loader.setAttribute("_src",e),loader.setAttribute("title",a.title||""),loader.setAttribute("alt",a.original||""),loader.removeAttribute("id"),domUtils.removeClasses(loader,"loadingclass"),c.fireEvent("contentchange")):b(a.state)}else b(c.getLang("simpleupload.loadError"))},m.onerror=function(){b(c.getLang("simpleupload.loadError"))},m.send(new FormData(g)),g.reset()}})}var b,c=this,d=(+new Date).toString(36);return{bindEvents:{ready:function(){utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document)},simpleuploadbtnready:function(d,e){b=e,c.afterConfigReady(a)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})}}}),UE.plugin.register("serverparam",function(){var a={};return{commands:{serverparam:{execCommand:function(b,c,d){void 0===c||null===c?a={}:utils.isString(c)?void 0===d||null===d?delete a[c]:a[c]=d:utils.isObject(c)?utils.extend(a,c,!0):utils.isFunction(c)&&utils.extend(a,c(),!0)},queryCommandValue:function(){return a||{}}}}}}),UE.plugin.register("insertfile",function(){function a(a){var b=a.substr(a.lastIndexOf(".")+1).toLowerCase(),c={rar:"icon_rar.gif",zip:"icon_rar.gif",tar:"icon_rar.gif",gz:"icon_rar.gif",bz2:"icon_rar.gif",doc:"icon_doc.gif",docx:"icon_doc.gif",pdf:"icon_pdf.gif",mp3:"icon_mp3.gif",xls:"icon_xls.gif",chm:"icon_chm.gif",ppt:"icon_ppt.gif",pptx:"icon_ppt.gif",avi:"icon_mv.gif",rmvb:"icon_mv.gif",wmv:"icon_mv.gif",flv:"icon_mv.gif",swf:"icon_mv.gif",rm:"icon_mv.gif",exe:"icon_exe.gif",psd:"icon_psd.gif",txt:"icon_txt.gif",jpg:"icon_jpg.gif",png:"icon_jpg.gif",jpeg:"icon_jpg.gif",gif:"icon_jpg.gif",ico:"icon_jpg.gif",bmp:"icon_jpg.gif"};return c[b]?c[b]:c.txt}var b=this;return{commands:{insertfile:{execCommand:function(c,d){d=utils.isArray(d)?d:[d];var e,f,g,h,i="",j=b.getOpt("UEDITOR_HOME_URL"),k=j+("/"==j.substr(j.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/";for(e=0;e'+h+"

    ";b.execCommand("insertHtml",i)}}}}}),UE.plugins.xssFilter=function(){function a(a){var b=a.tagName,d=a.attrs;return c.hasOwnProperty(b)?void UE.utils.each(d,function(d,e){c[b].indexOf(e)===-1&&a.setAttr(e)}):(a.parentNode.removeChild(a),!1)}var b=UEDITOR_CONFIG,c=b.whitList;c&&b.xssFilterRules&&(this.options.filterRules=function(){var b={};return UE.utils.each(c,function(c,d){b[d]=function(b){return a(b)}}),b}());var d=[];UE.utils.each(c,function(a,b){d.push(b)}),c&&b.inputXssFilter&&this.addInputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})}),c&&b.outputXssFilter&&this.addOutputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})})};var baidu=baidu||{};baidu.editor=baidu.editor||{},UE.ui=baidu.editor.ui={},function(){function a(){var a=document.getElementById("edui_fixedlayer");i.setViewportOffset(a,{left:0,top:0})}function b(b){d.on(window,"scroll",a),d.on(window,"resize",baidu.editor.utils.defer(a,0,!0))}var c=baidu.editor.browser,d=baidu.editor.dom.domUtils,e="$EDITORUI",f=window[e]={},g="ID"+e,h=0,i=baidu.editor.ui.uiUtils={uid:function(a){return a?a[g]||(a[g]=++h):++h},hook:function(a,b){var c;return a&&a._callbacks?c=a:(c=function(){var b;a&&(b=a.apply(this,arguments));for(var d=c._callbacks,e=d.length;e--;){var f=d[e].apply(this,arguments);void 0===b&&(b=f)}return b},c._callbacks=[]),c._callbacks.push(b),c},createElementByHtml:function(a){var b=document.createElement("div");return b.innerHTML=a,b=b.firstChild,b.parentNode.removeChild(b),b},getViewportElement:function(){return c.ie&&c.quirks?document.body:document.documentElement},getClientRect:function(a){var b;try{b=a.getBoundingClientRect()}catch(c){b={left:0,top:0,height:0,width:0}}for(var e,f={left:Math.round(b.left),top:Math.round(b.top),height:Math.round(b.bottom-b.top),width:Math.round(b.right-b.left)};(e=a.ownerDocument)!==document&&(a=d.getWindow(e).frameElement);)b=a.getBoundingClientRect(),f.left+=b.left,f.top+=b.top;return f.bottom=f.top+f.height,f.right=f.left+f.width,f},getViewportRect:function(){var a=i.getViewportElement(),b=0|(window.innerWidth||a.clientWidth),c=0|(window.innerHeight||a.clientHeight);return{left:0,top:0,height:c,width:b,bottom:c,right:b}},setViewportOffset:function(a,b){var c=i.getFixedLayer();a.parentNode===c?(a.style.left=b.left+"px",a.style.top=b.top+"px"):d.setViewportOffset(a,b)},getEventOffset:function(a){var b=a.target||a.srcElement,c=i.getClientRect(b),d=i.getViewportOffsetByEvent(a);return{left:d.left-c.left,top:d.top-c.top}},getViewportOffsetByEvent:function(a){var b=a.target||a.srcElement,c=d.getWindow(b).frameElement,e={left:a.clientX,top:a.clientY};if(c&&b.ownerDocument!==document){var f=i.getClientRect(c);e.left+=f.left,e.top+=f.top}return e},setGlobal:function(a,b){return f[a]=b,e+'["'+a+'"]'},unsetGlobal:function(a){delete f[a]},copyAttributes:function(a,b){for(var e=b.attributes,f=e.length;f--;){var g=e[f];"style"==g.nodeName||"class"==g.nodeName||c.ie&&!g.specified||a.setAttribute(g.nodeName,g.nodeValue)}b.className&&d.addClass(a,b.className),b.style.cssText&&(a.style.cssText+=";"+b.style.cssText)},removeStyle:function(a,b){if(a.style.removeProperty)a.style.removeProperty(b);else{if(!a.style.removeAttribute)throw"";a.style.removeAttribute(b)}},contains:function(a,b){return a&&b&&a!==b&&(a.contains?a.contains(b):16&a.compareDocumentPosition(b))},startDrag:function(a,b,c){function d(a){var c=a.clientX-g,d=a.clientY-h;b.ondragmove(c,d,a),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function e(a){c.removeEventListener("mousemove",d,!0),c.removeEventListener("mouseup",e,!0),window.removeEventListener("mouseup",e,!0),b.ondragstop()}function f(){i.releaseCapture(),i.detachEvent("onmousemove",d),i.detachEvent("onmouseup",f),i.detachEvent("onlosecaptrue",f),b.ondragstop()}var c=c||document,g=a.clientX,h=a.clientY;if(c.addEventListener)c.addEventListener("mousemove",d,!0),c.addEventListener("mouseup",e,!0),window.addEventListener("mouseup",e,!0),a.preventDefault();else{var i=a.srcElement;i.setCapture(),i.attachEvent("onmousemove",d),i.attachEvent("onmouseup",f),i.attachEvent("onlosecaptrue",f),a.returnValue=!1}b.ondragstart()},getFixedLayer:function(){var d=document.getElementById("edui_fixedlayer");return null==d&&(d=document.createElement("div"),d.id="edui_fixedlayer",document.body.appendChild(d),c.ie&&c.version<=8?(d.style.position="absolute",b(),setTimeout(a)):d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.width="0",d.style.height="0"),d},makeUnselectable:function(a){if(c.opera||c.ie&&c.version<9){if(a.unselectable="on",a.hasChildNodes())for(var b=0;b'}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.uiUtils,e=baidu.editor.ui.Mask=function(a){this.initOptions(a),this.initUIBase()};e.prototype={getHtmlTpl:function(){return'
    '},postRender:function(){var a=this;b.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a._fill()})})},show:function(a){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=a},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return"none"==this.getDom().style.display},_onMouseDown:function(){return!1},_onClick:function(a,b){this.fireEvent("click",a,b)},_fill:function(){var a=this.getDom(),b=d.getViewportRect();a.style.width=b.width+"px",a.style.height=b.height+"px"}},a.inherits(e,c)}(),function(){function a(a,b){for(var c=0;c
    '+this.getContentHtmlTpl()+"
    "},getContentHtmlTpl:function(){return this.content?"string"==typeof this.content?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){if(this.content instanceof e&&this.content.postRender(),this.captureWheel&&!this.captured){this.captured=!0;var a=(document.documentElement.clientHeight||document.body.clientHeight)-80,b=this.getDom().offsetHeight,f=c.getClientRect(this.combox.getDom()).top,g=this.getDom("content"),h=this.getDom("body").getElementsByTagName("iframe"),i=this;for(h.length&&(h=h[0]);f+b>a;)b-=30;g.style.height=b+"px",h&&(h.style.height=b+"px"),window.XMLHttpRequest?d.on(g,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(a){a.preventDefault?a.preventDefault():a.returnValue=!1,a.wheelDelta?g.scrollTop-=a.wheelDelta/120*60:g.scrollTop-=a.detail/-3*60}):d.on(this.getDom(),"mousewheel",function(a){a.returnValue=!1,i.getDom("content").scrollTop-=a.wheelDelta/120*60})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var a=this.getDom("content");return c.getClientRect(a)},fitSize:function(){if(this.captureWheel&&this.sized)return this.__size;this.sized=!0;var a=this.getDom("body");a.style.width="",a.style.height="";var b=this.mesureSize();if(this.captureWheel){a.style.width=-(-20-b.width)+"px";var c=parseInt(this.getDom("content").style.height,10);!window.isNaN(c)&&(b.height=c)}else a.style.width=b.width+"px";return a.style.height=b.height+"px",this.__size=b,this.captureWheel&&(this.getDom("content").style.overflow="auto"),b},showAnchor:function(a,b){this.showAnchorRect(c.getClientRect(a),b)},showAnchorRect:function(a,b,e){this._doAutoRender();var f=c.getViewportRect();this.getDom().style.visibility="hidden",this._show();var g,i,j,k,l=this.fitSize();b?(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.left-l.width:a.right,k=i?a.bottom-l.height:a.top):(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.right-l.width:a.left,k=i?a.top-l.height:a.bottom);var m=this.getDom();c.setViewportOffset(m,{left:j,top:k}),d.removeClasses(m,h),m.className+=" "+h[2*(i?1:0)+(g?1:0)],this.editor&&(m.style.zIndex=1*this.editor.container.style.zIndex+10,baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=m.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(a){var b=a.left,c=a.top,d={left:b,top:c,right:b,bottom:c,height:0,width:0};this.showAnchorRect(d,!1,!0)},_show:function(){if(this._hidden){var a=this.getDom();a.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(a){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,a||this.fireEvent("hide"))},queryAutoHide:function(a){return!a||!c.contains(this.getDom(),a)}},b.inherits(f,e),d.on(document,"mousedown",function(b){var c=b.target||b.srcElement;a(b,c)}),d.on(window,"scroll",function(b,c){a(b,c)})}(),function(){function a(a,b){for(var c='
    '+a+'
    ',d=0;d"+(60==d?'":"")+""),c+=d<70?'':"";return c+="
    '+b.getLang("themeColor")+'
    '+b.getLang("standardColor")+"
    =60?"border-width:1px;":d>=10&&d<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'">
    "}var b=baidu.editor.utils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.ColorPicker=function(a){this.initOptions(a),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()};d.prototype={getHtmlTpl:function(){return a(this.noColorText,this.editor)},_onTableClick:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&this.fireEvent("pickcolor",c)},_onTableOver:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&(this.getDom("preview").style.backgroundColor=c)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},b.inherits(d,c);var e="ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",")}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.TablePicker=function(a){this.initOptions(a),this.initTablePicker()};d.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){return'
    '},_UIBase_render:c.prototype.render,render:function(a){this._UIBase_render(a),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(a,b){var c=this.getDom("overlay").style,d=this.lengthOfCellSide;c.width=a*d+"px",c.height=b*d+"px";var e=this.getDom("label");e.innerHTML=a+this.editor.getLang("t_col")+" x "+b+this.editor.getLang("t_row"),this.numCols=a,this.numRows=b},_onMouseOver:function(a,c){var d=a.relatedTarget||a.fromElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(a,c){var d=a.relatedTarget||a.toElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="hidden")},_onMouseMove:function(a,c){var d=(this.getDom("overlay").style,b.getEventOffset(a)),e=this.lengthOfCellSide,f=Math.ceil(d.left/e),g=Math.ceil(d.top/e);this._track(f,g)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},a.inherits(d,c)}(),function(){var a=baidu.editor.browser,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(a.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');baidu.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var a=this._Stateful_dGetHtmlTpl();return a.replace(/stateful/g,function(){return d})},Stateful_onMouseEnter:function(a,b){this.target=b,this.isDisabled()&&!this.alwalysHoverable||(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(a,b){this.isDisabled()&&!this.alwalysHoverable||(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseEnter(a,b)},Stateful_onMouseOut:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseLeave(a,b)},Stateful_onMouseDown:function(a,b){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(a,b){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(a){return b.hasClass(this.getStateDom(),"edui-state-"+a)},addState:function(a){this.hasState(a)||(this.getStateDom().className+=" edui-state-"+a)},removeState:function(a){this.hasState(a)&&b.removeClasses(this.getStateDom(),["edui-state-"+a])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(a){!this.isDisabled()&&a?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(a){a?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.Button=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),a.cssRules=".edui-default .edui-for-"+b+" .edui-icon {"+c+"}"}this.initOptions(a),this.initButton()};d.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&a.cssRule("edui-customize-"+this.name+"-style",this.cssRules)},getHtmlTpl:function(){return'
    '+(this.showIcon?'
    ':"")+(this.showText?'
    '+this.label+"
    ":"")+"
    "},postRender:function(){this.Stateful_postRender(),this.setDisabled(this.disabled)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(a){var b=this.getDom("label");b.innerHTML=a}},a.inherits(d,b),a.extend(d.prototype,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=(baidu.editor.dom.domUtils,baidu.editor.ui.UIBase),d=baidu.editor.ui.Stateful,e=baidu.editor.ui.SplitButton=function(a){this.initOptions(a),this.initSplitButton()};e.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){this.initUIBase(),this.Stateful_init();if(null!=this.popup){var a=this.popup;this.popup=null,this.setPopup(a)}},_UIBase_postRender:c.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(c){this.popup!==c&&(null!=this.popup&&this.popup.dispose(),c.addListener("show",a.bind(this._onPopupShow,this)),c.addListener("hide",a.bind(this._onPopupHide,this)),c.addListener("postrender",a.bind(function(){c.getDom("body").appendChild(b.createElementByHtml('
    ')),c.getDom().className+=" "+this.className},this)),this.popup=c)},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'
    '},showPopup:function(){var a=b.getClientRect(this.getDom());a.top-=this.popup.SHADOW_RADIUS,a.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(a)},_onArrowClick:function(a,b){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},a.inherits(e,c),a.extend(e.prototype,d,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.ColorPicker,d=baidu.editor.ui.Popup,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.ColorButton=function(a){this.initOptions(a),this.initColorButton()};f.prototype={initColorButton:function(){var a=this;this.popup=new d({content:new c({noColorText:a.editor.getLang("clearColor"),editor:a.editor,onpickcolor:function(b,c){a._onPickColor(c)},onpicknocolor:function(b,c){a._onPickNoColor(c)}}),editor:a.editor}),this.initSplitButton()},_SplitButton_postRender:e.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(b.createElementByHtml('
    ')),this.getDom().className+=" edui-colorbutton"},setColor:function(a){this.getDom("colorlump").style.backgroundColor=a,this.color=a},_onPickColor:function(a){this.fireEvent("pickcolor",a)!==!1&&(this.setColor(a),this.popup.hide())},_onPickNoColor:function(a){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},a.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.TablePicker,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.TableButton=function(a){this.initOptions(a),this.initTableButton()};e.prototype={initTableButton:function(){var a=this;this.popup=new b({content:new c({editor:a.editor,onpicktable:function(b,c,d){ -a._onPickTable(c,d)}}),editor:a.editor}),this.initSplitButton()},_onPickTable:function(a,b){this.fireEvent("picktable",a,b)!==!1&&this.popup.hide()}},a.inherits(e,d)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.AutoTypeSetPicker=function(a){this.initOptions(a),this.initAutoTypeSetPicker()};c.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var a=this.editor,b=a.options.autotypeset,c=a.getLang("autoTypeSet"),d="textAlignValue"+a.uid,e="imageBlockLineValue"+a.uid,f="symbolConverValue"+a.uid;return'
    "+c.mergeLine+'"+c.delLine+'
    "+c.removeFormat+'"+c.indent+'
    "+c.alignment+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.imageFloat+'"+a.getLang("default")+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.removeFontsize+'"+c.removeFontFamily+'
    "+c.removeHtml+'
    "+c.pasteFilter+'
    "+c.symbol+'"+c.bdc2sb+'"+c.tobdc+'
    "},_UIBase_render:b.prototype.render},a.inherits(c,b)}(),function(){function a(a){for(var c,d={},e=a.getDom(),f=a.editor.uid,g=null,h=null,i=domUtils.getElementsByTagName(e,"input"),j=i.length-1;c=i[j--];)if(g=c.getAttribute("type"),"checkbox"==g)if(h=c.getAttribute("name"),d[h]&&delete d[h],c.checked){var k=document.getElementById(h+"Value"+f);if(k){if(/input/gi.test(k.tagName))d[h]=k.value;else for(var l,m=k.getElementsByTagName("input"),n=m.length-1;l=m[n--];)if(l.checked){d[h]=l.value;break}}else d[h]=!0}else d[h]=!1;else d[c.getAttribute("value")]=c.checked;for(var o,p=domUtils.getElementsByTagName(e,"select"),j=0;o=p[j++];){var q=o.getAttribute("name");d[q]=d[q]?o.value:""}b.extend(a.editor.options.autotypeset,d),a.editor.setPreferences("autotypeset",d)}var b=baidu.editor.utils,c=baidu.editor.ui.Popup,d=baidu.editor.ui.AutoTypeSetPicker,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.AutoTypeSetButton=function(a){this.initOptions(a),this.initAutoTypeSetButton()};f.prototype={initAutoTypeSetButton:function(){var b=this;this.popup=new c({content:new d({editor:b.editor}),editor:b.editor,hide:function(){!this._hidden&&this.getDom()&&(a(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}});var e=0;this.popup.addListener("postRenderAfter",function(){var c=this;if(!e){var d=this.getDom(),f=d.getElementsByTagName("button")[0];f.onclick=function(){a(c),b.editor.execCommand("autotypeset"),c.hide()},domUtils.on(d,"click",function(d){var e=d.target||d.srcElement,f=b.editor.uid;if(e&&"INPUT"==e.tagName){if("imageBlockLine"==e.name||"textAlign"==e.name||"symbolConver"==e.name)for(var g=e.checked,h=document.getElementById(e.name+"Value"+f),i=h.getElementsByTagName("input"),j={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"},k=0;k"),e.push('
    '),2===d&&e.push("");return'
    '+e.join("")+"
    "},getStateDom:function(){return this.target},_onClick:function(a){var c=a.target||a.srcElement;/icon/.test(c.className)&&(this.items[c.parentNode.getAttribute("index")].onclick(),b.postHide(a))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,c,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Stateful,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.PastePicker=function(a){this.initOptions(a),this.initPastePicker()};e.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'
    '+this.editor.getLang("pasteOpt")+'
    '},getStateDom:function(){return this.target},format:function(a){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",a)},_onClick:function(a){var b=domUtils.getNextDomNode(a),d=c.getViewportRect().height,e=c.getClientRect(b);e.top+e.height>d?b.style.top=-e.height-a.offsetHeight+"px":b.style.top="",/hidden/gi.test(domUtils.getComputedStyle(b,"visibility"))?(b.style.visibility="visible",domUtils.addClass(a,"edui-state-opened")):(b.style.visibility="hidden",domUtils.removeClasses(a,"edui-state-opened"))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,b,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Toolbar=function(a){this.initOptions(a),this.initToolbar()};d.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(a,b){void 0===b?this.items.push(a):this.items.splice(b,0,a)},getHtmlTpl:function(){for(var a=[],b=0;b'+a.join("")+""},postRender:function(){for(var a=this.getDom(),c=0;c
    '},postRender:function(){},queryAutoHide:function(){return!0}};h.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var a=0;a'+a.join("")+""},_Popup_postRender:e.prototype.postRender,postRender:function(){for(var a=this,d=0;d
    '+this.renderLabelHtml()+"
    "},postRender:function(){var a=this;this.addListener("over",function(){a.ownerMenu.fireEvent("submenuover",a),a.subMenu&&a.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){a.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(a._closingTimer),a._closingTimer=null,a.addState("opened")}),this.ownerMenu.addListener("hide",function(){a.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(b,c){c!==a&&a.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(b){return(!b||!c.contains(a.getDom(),b))&&this._bakQueryAutoHide(b)}),this.getDom().style.tabIndex="-1",c.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var a=this;a.isDisabled()||(a.addState("opened"),clearTimeout(a._showingTimer),clearTimeout(a._closingTimer),a._closingTimer=null,a._showingTimer=setTimeout(function(){a.showSubMenu()},250))},delayHideSubMenu:function(){var a=this;a.isDisabled()||(a.removeState("opened"),clearTimeout(a._showingTimer),a._closingTimer||(a._closingTimer=setTimeout(function(){a.hasState("opened")||a.hideSubMenu(),a._closingTimer=null},400)))},renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "},getStateDom:function(){return this.getDom()},queryAutoHide:function(a){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(a)},_onClick:function(a,b){this.hasState("disabled")||this.fireEvent("click",a,b)!==!1&&(this.subMenu?this.showSubMenu():e.postHide(a))},showSubMenu:function(){var a=c.getClientRect(this.getDom());a.right-=5,a.left+=2,a.width-=7,a.top-=4,a.bottom+=4,a.height+=8,this.subMenu.showAnchorRect(a,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},a.inherits(j,d),a.extend(j.prototype,f,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.Menu,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.Combox=function(a){this.initOptions(a),this.initCombox()};e.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var a=this;this.items=this.items||[];for(var b=0;bd.right&&(g=d.right-e.width);var h=a.top;h+e.height>d.bottom&&(h=d.bottom-e.height),c.style.left=Math.max(g,0)+"px",c.style.top=Math.max(h,0)+"px"},showAtCenter:function(){var a=f.getViewportRect();if(this.fullscreen){var b=this.getDom(),c=this.getDom("content");b.style.display="block";var d=UE.ui.uiUtils.getClientRect(b),g=UE.ui.uiUtils.getClientRect(c);b.style.left="-100000px",c.style.width=a.width-d.width+g.width+"px",c.style.height=a.height-d.height+g.height+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.left=0,this._originalContext={html:{overflowX:document.documentElement.style.overflowX,overflowY:document.documentElement.style.overflowY},body:{overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY}},document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"}else{this.getDom().style.display="";var h=this.fitSize(),i=0|this.getDom("titlebar").offsetHeight,j=a.width/2-h.width/2,k=a.height/2-(h.height-i)/2-i,l=this.getDom();this.safeSetOffset({left:Math.max(0|j,0),top:Math.max(0|k,0)}),e.hasClass(l,"edui-state-centered")||(l.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var a="";return"string"==typeof this.content?a=this.content:this.iframeUrl&&(a=''),a},getHtmlTpl:function(){var a="";if(this.buttons){for(var b=[],c=0;c
    '+b.join("")+"
    "}return'
    '+(this.title||"")+"
    "+this.closeButton.renderHtml()+'
    '+(this.autoReset?"":this.getContentHtml())+"
    "+a+"
    "},postRender:function(){this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide());var a=this;if(this.addListener("show",function(){a.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){a.modalMask.hide()}),this.buttons)for(var b=0;b',a.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*a.editor.container.style.zIndex+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},a.inherits(d,c)}(),function(){function a(a){var b=a.target||a.srcElement,c=g.findParent(b,function(a){return g.hasClass(a,"edui-shortcutmenu")||g.hasClass(a,"edui-popup")},!0);if(!c)for(var d,e=0;d=h[e++];)d.hide()}var b,c=baidu.editor.ui,d=c.UIBase,e=c.uiUtils,f=baidu.editor.utils,g=baidu.editor.dom.domUtils,h=[],i=!1,j=c.ShortCutMenu=function(a){this.initOptions(a),this.initShortCutMenu()};j.postHide=a,j.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var a=this,c=a.editor.document;g.on(c,"mousemove",function(c){if(a.isHidden===!1){if(a.getSubMenuMark()||"contextmenu"==a.eventType)return;var d=!0,e=a.getDom(),f=e.offsetWidth,g=e.offsetHeight,h=f/2+a.SPACE,i=g/2,j=Math.abs(c.screenX-a.left),k=Math.abs(c.screenY-a.top);clearTimeout(b),b=setTimeout(function(){k>0&&ki&&ki+70&&k0&&jh&&jh+70&&j'+a+""}},f.inherits(j,d),g.on(document,"mousedown",function(b){a(b)}),g.on(window,"scroll",function(b){a(b)})}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Breakline=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"
    "}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Message=function(a){this.initOptions(a),this.initMessage()};d.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'
    ×
    '},reset:function(a){var b=this;a.keepshow||(clearTimeout(this.timer),b.timer=setTimeout(function(){b.hide()},a.timeout||4e3)),void 0!==a.content&&b.setContent(a.content),void 0!==a.type&&b.setType(a.type),b.show()},postRender:function(){var a=this,c=this.getDom("closer");c&&b.on(c,"click",function(){a.hide()})},setContent:function(a){this.getDom("content").innerHTML=a},setType:function(a){a=a||"info";var b=this.getDom("body");b.className=b.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+a)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var a=this.getDom("body").match(/edui-message-type-([\w-]+)/);return a?a[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var a=this.getDom();a&&(a.style.display="none",a.parentNode&&a.parentNode.removeChild(a))}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui,c=b.Dialog;b.buttons={},b.Dialog=function(a){var b=new c(a);return b.addListener("hide",function(){if(b.editor){var a=b.editor;try{if(browser.gecko){var c=a.window.scrollY,d=a.window.scrollX;a.body.focus(),a.window.scrollTo(d,c)}else a.focus()}catch(e){}}}),b};for(var d,e={anchor:"~/dialogs/anchor/anchor.html",insertimage:"~/dialogs/image/image.html",link:"~/dialogs/link/link.html",spechars:"~/dialogs/spechars/spechars.html",searchreplace:"~/dialogs/searchreplace/searchreplace.html",map:"~/dialogs/map/map.html",gmap:"~/dialogs/gmap/gmap.html",insertvideo:"~/dialogs/video/video.html",help:"~/dialogs/help/help.html",preview:"~/dialogs/preview/preview.html",emotion:"~/dialogs/emotion/emotion.html",wordimage:"~/dialogs/wordimage/wordimage.html",attachment:"~/dialogs/attachment/attachment.html",insertframe:"~/dialogs/insertframe/insertframe.html",edittip:"~/dialogs/table/edittip.html",edittable:"~/dialogs/table/edittable.html",edittd:"~/dialogs/table/edittd.html",webapp:"~/dialogs/webapp/webapp.html",snapscreen:"~/dialogs/snapscreen/snapscreen.html",scrawl:"~/dialogs/scrawl/scrawl.html",music:"~/dialogs/music/music.html",template:"~/dialogs/template/template.html",background:"~/dialogs/background/background.html",charts:"~/dialogs/charts/charts.html"},f=["undo","redo","formatmatch","bold","italic","underline","fontborder","touppercase","tolowercase","strikethrough","subscript","superscript","source","indent","outdent","blockquote","pasteplain","pagebreak","selectall","print","horizontal","removeformat","time","date","unlink","insertparagraphbeforetable","insertrow","insertcol","mergeright","mergedown","deleterow","deletecol","splittorows","splittocols","splittocells","mergecells","deletetable","drafts"],g=0;d=f[g++];)d=d.toLowerCase(),b[d]=function(a){return function(c){var d=new b.Button({className:"edui-for-"+a,title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",onclick:function(){c.execCommand(a)},theme:c.options.theme,showText:!1});return b.buttons[a]=d,c.addListener("selectionchange",function(b,e,f){var g=c.queryCommandState(a);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(d);b.cleardoc=function(a){var c=new b.Button({className:"edui-for-cleardoc",title:a.options.labelMap.cleardoc||a.getLang("labelMap.cleardoc")||"",theme:a.options.theme,onclick:function(){confirm(a.getLang("confirmClear"))&&a.execCommand("cleardoc")}});return b.buttons.cleardoc=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("cleardoc")==-1)}),c};var h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(var i in h)!function(a,c){for(var d,e=0;d=c[e++];)!function(c){b[a.replace("float","")+c]=function(d){var e=new b.Button({className:"edui-for-"+a.replace("float","")+c,title:d.options.labelMap[a.replace("float","")+c]||d.getLang("labelMap."+a.replace("float","")+c)||"",theme:d.options.theme,onclick:function(){d.execCommand(a,c)}});return b.buttons[a]=e,d.addListener("selectionchange",function(b,f,g){e.setDisabled(d.queryCommandState(a)==-1),e.setChecked(d.queryCommandValue(a)==c&&!g)}),e}}(d)}(i,h[i]);for(var d,g=0;d=["backcolor","forecolor"][g++];)b[d]=function(a){return function(c){var d=new b.ColorButton({className:"edui-for-"+a,color:"default",title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",editor:c,onpickcolor:function(b,d){ -c.execCommand(a,d)},onpicknocolor:function(){c.execCommand(a,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){c.execCommand(a,this.color)}});return b.buttons[a]=d,c.addListener("selectionchange",function(){d.setDisabled(c.queryCommandState(a)==-1)}),d}}(d);var j={noOk:["searchreplace","help","spechars","webapp","preview"],ok:["attachment","anchor","link","insertimage","map","gmap","insertframe","wordimage","insertvideo","insertframe","edittip","edittable","edittd","scrawl","template","music","background","charts"]};for(var i in j)!function(c,d){for(var f,g=0;f=d[g++];)browser.opera&&"searchreplace"===f||!function(d){b[d]=function(f,g,h){g=g||(f.options.iframeUrlMap||{})[d]||e[d],h=f.options.labelMap[d]||f.getLang("labelMap."+d)||"";var i;g&&(i=new b.Dialog(a.extend({iframeUrl:f.ui.mapUrl(g),editor:f,className:"edui-for-"+d,title:h,holdScroll:"insertimage"===d,fullscreen:/charts|preview/.test(d),closeDialog:f.getLang("closeDialog")},"ok"==c?{buttons:[{className:"edui-okbutton",label:f.getLang("ok"),editor:f,onclick:function(){i.close(!0)}},{className:"edui-cancelbutton",label:f.getLang("cancel"),editor:f,onclick:function(){i.close(!1)}}]}:{})),f.ui._dialogs[d+"Dialog"]=i);var j=new b.Button({className:"edui-for-"+d,title:h,onclick:function(){if(i)switch(d){case"wordimage":var a=f.execCommand("wordimage");a&&a.length&&(i.render(),i.open());break;case"scrawl":f.queryCommandState("scrawl")!=-1&&(i.render(),i.open());break;default:i.render(),i.open()}},theme:f.options.theme,disabled:"scrawl"==d&&f.queryCommandState("scrawl")==-1||"charts"==d});return b.buttons[d]=j,f.addListener("selectionchange",function(){var a={edittable:1};if(!(d in a)){var b=f.queryCommandState(d);j.getDom()&&(j.setDisabled(b==-1),j.setChecked(b))}}),j}}(f.toLowerCase())}(i,j[i]);b.snapscreen=function(a,c,d){d=a.options.labelMap.snapscreen||a.getLang("labelMap.snapscreen")||"";var f=new b.Button({className:"edui-for-snapscreen",title:d,onclick:function(){a.execCommand("snapscreen")},theme:a.options.theme});if(b.buttons.snapscreen=f,c=c||(a.options.iframeUrlMap||{}).snapscreen||e.snapscreen){var g=new b.Dialog({iframeUrl:a.ui.mapUrl(c),editor:a,className:"edui-for-snapscreen",title:d,buttons:[{className:"edui-okbutton",label:a.getLang("ok"),editor:a,onclick:function(){g.close(!0)}},{className:"edui-cancelbutton",label:a.getLang("cancel"),editor:a,onclick:function(){g.close(!1)}}]});g.render(),a.ui._dialogs.snapscreenDialog=g}return a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState("snapscreen")==-1)}),f},b.insertcode=function(c,d,e){d=c.options.insertcode||[],e=c.options.labelMap.insertcode||c.getLang("labelMap.insertcode")||"";var f=[];a.each(d,function(a,b){f.push({label:a,value:b,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})});var g=new b.Combox({editor:c,items:f,onselect:function(a,b){c.execCommand("insertcode",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-insertcode",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.insertcode=g,c.addListener("selectionchange",function(a,b,d){if(!d){var f=c.queryCommandState("insertcode");if(f==-1)g.setDisabled(!0);else{g.setDisabled(!1);var h=c.queryCommandValue("insertcode");if(!h)return void g.setValue(e);h&&(h=h.replace(/['"]/g,"").split(",")[0]),g.setValue(h)}}}),g},b.fontfamily=function(c,d,e){if(d=c.options.fontfamily||[],e=c.options.labelMap.fontfamily||c.getLang("labelMap.fontfamily")||"",d.length){for(var f,g=0,h=[];f=d[g];g++){var i=c.getLang("fontfamily")[f.name]||"";!function(b,d){h.push({label:b,value:d,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})}(f.label||i,f.val)}var j=new b.Combox({editor:c,items:h,onselect:function(a,b){c.execCommand("FontFamily",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-fontfamily",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.fontfamily=j,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("FontFamily");if(e==-1)j.setDisabled(!0);else{j.setDisabled(!1);var f=c.queryCommandValue("FontFamily");f&&(f=f.replace(/['"]/g,"").split(",")[0]),j.setValue(f)}}}),j}},b.fontsize=function(a,c,d){if(d=a.options.labelMap.fontsize||a.getLang("labelMap.fontsize")||"",c=c||a.options.fontsize||[],c.length){for(var e=[],f=0;f'+(this.label||"")+""}})}var h=new b.Combox({editor:a,items:e,title:d,initValue:d,onselect:function(b,c){a.execCommand("FontSize",this.items[c].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"});return b.buttons.fontsize=h,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("FontSize");e==-1?h.setDisabled(!0):(h.setDisabled(!1),h.setValue(a.queryCommandValue("FontSize")))}}),h}},b.paragraph=function(c,d,e){if(e=c.options.labelMap.paragraph||c.getLang("labelMap.paragraph")||"",d=c.options.paragraph||[],!a.isEmptyObject(d)){var f=[];for(var g in d)f.push({value:g,label:d[g]||c.getLang("paragraph")[g],theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}});var h=new b.Combox({editor:c,items:f,title:e,initValue:e,className:"edui-for-paragraph",onselect:function(a,b){c.execCommand("Paragraph",this.items[b].value)},onbuttonclick:function(){this.showPopup()}});return b.buttons.paragraph=h,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("Paragraph");if(e==-1)h.setDisabled(!0);else{h.setDisabled(!1);var f=c.queryCommandValue("Paragraph"),g=h.indexByValue(f);g!=-1?h.setValue(f):h.setValue(h.initValue)}}}),h}},b.customstyle=function(a){var c=a.options.customstyle||[],d=a.options.labelMap.customstyle||a.getLang("labelMap.customstyle")||"";if(c.length){for(var e,f=a.getLang("customstyle"),g=0,h=[];e=c[g++];)!function(b){var c={};c.label=b.label?b.label:f[b.name],c.style=b.style,c.className=b.className,c.tag=b.tag,h.push({label:c.label,value:c,theme:a.options.theme,renderLabelHtml:function(){return'
    <'+c.tag+" "+(c.className?' class="'+c.className+'"':"")+(c.style?' style="'+c.style+'"':"")+">"+c.label+"
    "}})}(e);var i=new b.Combox({editor:a,items:h,title:d,initValue:d,className:"edui-for-customstyle",onselect:function(b,c){a.execCommand("customstyle",this.items[c].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(a){for(var b,c=0;b=this.items[c++];)if(b.label==a)return c-1;return-1}});return b.buttons.customstyle=i,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("customstyle");if(e==-1)i.setDisabled(!0);else{i.setDisabled(!1);var f=a.queryCommandValue("customstyle"),g=i.indexByValue(f);g!=-1?i.setValue(f):i.setValue(i.initValue)}}}),i}},b.inserttable=function(a,c,d){d=a.options.labelMap.inserttable||a.getLang("labelMap.inserttable")||"";var e=new b.TableButton({editor:a,title:d,className:"edui-for-inserttable",onpicktable:function(b,c,d){a.execCommand("InsertTable",{numRows:d,numCols:c,border:1})},onbuttonclick:function(){this.showPopup()}});return b.buttons.inserttable=e,a.addListener("selectionchange",function(){e.setDisabled(a.queryCommandState("inserttable")==-1)}),e},b.lineheight=function(a){var c=a.options.lineheight||[];if(c.length){for(var d,e=0,f=[];d=c[e++];)f.push({label:d,value:d,theme:a.options.theme,onclick:function(){a.execCommand("lineheight",this.value)}});var g=new b.MenuButton({editor:a,className:"edui-for-lineheight",title:a.options.labelMap.lineheight||a.getLang("labelMap.lineheight")||"",items:f,onbuttonclick:function(){var b=a.queryCommandValue("LineHeight")||this.value;a.execCommand("LineHeight",b)}});return b.buttons.lineheight=g,a.addListener("selectionchange",function(){var b=a.queryCommandState("LineHeight");if(b==-1)g.setDisabled(!0);else{g.setDisabled(!1);var c=a.queryCommandValue("LineHeight");c&&g.setValue((c+"").replace(/cm/,"")),g.setChecked(b)}}),g}};for(var k,l=["top","bottom"],m=0;k=l[m++];)!function(a){b["rowspacing"+a]=function(c){var d=c.options["rowspacing"+a]||[];if(!d.length)return null;for(var e,f=0,g=[];e=d[f++];)g.push({label:e,value:e,theme:c.options.theme,onclick:function(){c.execCommand("rowspacing",this.value,a)}});var h=new b.MenuButton({editor:c,className:"edui-for-rowspacing"+a,title:c.options.labelMap["rowspacing"+a]||c.getLang("labelMap.rowspacing"+a)||"",items:g,onbuttonclick:function(){var b=c.queryCommandValue("rowspacing",a)||this.value;c.execCommand("rowspacing",b,a)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState("rowspacing",a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue("rowspacing",a);d&&h.setValue((d+"").replace(/%/,"")),h.setChecked(b)}}),h}}(k);for(var n,o=["insertorderedlist","insertunorderedlist"],p=0;n=o[p++];)!function(a){b[a]=function(c){var d=c.options[a],e=function(){c.execCommand(a,this.value)},f=[];for(var g in d)f.push({label:d[g]||c.getLang()[a][g]||"",value:g,theme:c.options.theme,onclick:e});var h=new b.MenuButton({editor:c,className:"edui-for-"+a,title:c.getLang("labelMap."+a)||"",items:f,onbuttonclick:function(){var b=c.queryCommandValue(a)||this.value;c.execCommand(a,b)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState(a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue(a);h.setValue(d),h.setChecked(b)}}),h}}(n);b.fullscreen=function(a,c){c=a.options.labelMap.fullscreen||a.getLang("labelMap.fullscreen")||"";var d=new b.Button({className:"edui-for-fullscreen",title:c,theme:a.options.theme,onclick:function(){a.ui&&a.ui.setFullScreen(!a.ui.isFullScreen()),this.setChecked(a.ui.isFullScreen())}});return b.buttons.fullscreen=d,a.addListener("selectionchange",function(){var b=a.queryCommandState("fullscreen");d.setDisabled(b==-1),d.setChecked(a.ui.isFullScreen())}),d},b.emotion=function(a,c){var d="emotion",f=new b.MultiMenuPop({title:a.options.labelMap[d]||a.getLang("labelMap."+d)||"",editor:a,className:"edui-for-"+d,iframeUrl:a.ui.mapUrl(c||(a.options.iframeUrlMap||{})[d]||e[d])});return b.buttons[d]=f,a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState(d)==-1)}),f},b.autotypeset=function(a){var c=new b.AutoTypeSetButton({editor:a,title:a.options.labelMap.autotypeset||a.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){a.execCommand("autotypeset")}});return b.buttons.autotypeset=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("autotypeset")==-1)}),c},b.simpleupload=function(a){var c="simpleupload",d=new b.Button({className:"edui-for-"+c,title:a.options.labelMap[c]||a.getLang("labelMap."+c)||"",onclick:function(){},theme:a.options.theme,showText:!1});return b.buttons[c]=d,a.addListener("ready",function(){var b=d.getDom("body"),c=b.children[0];a.fireEvent("simpleuploadbtnready",c)}),a.addListener("selectionchange",function(b,e,f){var g=a.queryCommandState(c);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(),function(){function a(a){this.initOptions(a),this.initEditorUI()}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.dom.domUtils,f=[];a.prototype={uiName:"editor",initEditorUI:function(){function a(a,b){a.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:a.options.wordCountMsg||a.getLang("wordCountMsg"),wordOverFlowMsg:a.options.wordOverFlowMsg||a.getLang("wordOverFlowMsg")});var c=a.options,d=c.maximumWords,e=c.wordCountMsg,f=c.wordOverFlowMsg,g=b.getDom("wordcount");if(c.wordCount){var h=a.getContentLength(!0);h>d?(g.innerHTML=f,a.fireEvent("wordcountoverflow")):g.innerHTML=e.replace("{#leave}",d-h).replace("{#count}",h)}}this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars();var b=this.editor,c=this;b.addListener("ready",function(){function d(){a(b,c),e.un(b.document,"click",arguments.callee)}b.getDialog=function(a){return b.ui._dialogs[a+"Dialog"]},e.on(b.window,"scroll",function(a){baidu.editor.ui.Popup.postHide(a)}),b.ui._actualFrameWidth=b.options.initialFrameWidth,UE.browser.ie&&6===UE.browser.version&&b.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),b.options.elementPathEnabled&&(b.ui.getDom("elementpath").innerHTML='
    '+b.getLang("elementPathTip")+":
    "),b.options.wordCount&&(e.on(b.document,"click",d),b.ui.getDom("wordcount").innerHTML=b.getLang("wordCountTip")),b.ui._scale(),b.options.scaleEnabled?(b.autoHeightEnabled&&b.disableAutoHeight(),c.enableScale()):c.disableScale(),b.options.elementPathEnabled||b.options.wordCount||b.options.scaleEnabled||(b.ui.getDom("elementpath").style.display="none",b.ui.getDom("wordcount").style.display="none",b.ui.getDom("scale").style.display="none"),b.selection.isFocus()&&b.fireEvent("selectionchange",!1,!0)}),b.addListener("mousedown",function(a,b){var c=b.target||b.srcElement;baidu.editor.ui.Popup.postHide(b,c),baidu.editor.ui.ShortCutMenu.postHide(b)}),b.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(b),b.getDialog("edittip").open()});var d,f,g=!1;b.addListener("afterpaste",function(){b.queryCommandState("pasteplain")||(baidu.editor.ui.PastePicker&&(d=new baidu.editor.ui.Popup({content:new baidu.editor.ui.PastePicker({editor:b}),editor:b,className:"edui-wordpastepop"}),d.render()),g=!0)}),b.addListener("afterinserthtml",function(){clearTimeout(f),f=setTimeout(function(){if(d&&(g||b.ui._isTransfer)){if(d.isHidden()){var a=e.createElement(b.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),c=b.selection.getRange();c.insertNode(a);var f=getDomNode(a,"firstChild","previousSibling");f&&d.showAnchor(3==f.nodeType?f.parentNode:f),e.remove(a)}else d.show();delete b.ui._isTransfer,g=!1}},200)}),b.addListener("contextmenu",function(a,b){baidu.editor.ui.Popup.postHide(b)}),b.addListener("keydown",function(a,b){d&&d.dispose(b);var c=b.keyCode||b.which;b.altKey&&90==c&&UE.ui.buttons.fullscreen.onclick()}),b.addListener("wordcount",function(b){a(this,c)}),b.addListener("selectionchange",function(){b.options.elementPathEnabled&&c[(b.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),b.options.scaleEnabled&&c[(b.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()});var h=new baidu.editor.ui.Popup({editor:b,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),b.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(a){this.hide(),b.ui._dialogs[a]&&b.ui._dialogs[a].open()},_onImgSetFloat:function(a){this.hide(),b.execCommand("imagefloat",a)},_setIframeAlign:function(a){var b=h.anchorEl,c=b.cloneNode(!0);switch(a){case-2:c.setAttribute("align","");break;case-1:c.setAttribute("align","left");break;case 1:c.setAttribute("align","right")}b.parentNode.insertBefore(c,b),e.remove(b),h.anchorEl=c,h.showAnchor(h.anchorEl)},_updateIframe:function(){var a=b._iframe=h.anchorEl;e.hasClass(a,"ueditor_baidumap")?(b.selection.getRange().selectNode(a).select(),b.ui._dialogs.mapDialog.open(),h.hide()):(b.ui._dialogs.insertframeDialog.open(),h.hide())},_onRemoveButtonClick:function(a){b.execCommand(a),this.hide()},queryAutoHide:function(a){return a&&a.ownerDocument==b.document&&("img"==a.tagName.toLowerCase()||e.findParentByTagName(a,"a",!0))?a!==h.anchorEl:baidu.editor.ui.Popup.prototype.queryAutoHide.call(this,a)}});h.render(),b.options.imagePopup&&(b.addListener("mouseover",function(a,c){c=c||window.event;var d=c.target||c.srcElement;if(b.ui._dialogs.insertframeDialog&&/iframe/gi.test(d.tagName)){var e=h.formatHtml(""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'   '+b.getLang("modify")+"");e?(h.getDom("content").innerHTML=e,h.anchorEl=d,h.showAnchor(h.anchorEl)):h.hide()}}),b.addListener("selectionchange",function(a,c){if(c){var d="",f="",g=b.selection.getRange().getClosedNode(),i=b.ui._dialogs;if(g&&"IMG"==g.tagName){var j="insertimageDialog";if(g.className.indexOf("edui-faked-video")==-1&&g.className.indexOf("edui-upload-video")==-1||(j="insertvideoDialog"),g.className.indexOf("edui-faked-webapp")!=-1&&(j="webappDialog"),g.src.indexOf("http://api.map.baidu.com")!=-1&&(j="mapDialog"),g.className.indexOf("edui-faked-music")!=-1&&(j="musicDialog"),g.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(j="gmapDialog"),g.getAttribute("anchorname")&&(j="anchorDialog",d=h.formatHtml(""+b.getLang("property")+': '+b.getLang("modify")+"  "+b.getLang("delete")+"")),g.getAttribute("word_img")&&(b.word_img=[g.getAttribute("word_img")],j="wordimageDialog"),(e.hasClass(g,"loadingclass")||e.hasClass(g,"loaderrorclass"))&&(j=""),!i[j])return;f=""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'  '+b.getLang("justifycenter")+"  '+b.getLang("modify")+"",!d&&(d=h.formatHtml(f))}if(b.ui._dialogs.linkDialog){var k,l=b.queryCommandValue("link");if(l&&(k=l.getAttribute("_href")||l.getAttribute("href",2))){var m=k;k.length>30&&(m=k.substring(0,20)+"..."),d&&(d+='
    '),d+=h.formatHtml(""+b.getLang("anthorMsg")+': '+m+' '+b.getLang("modify")+' '+b.getLang("clear")+""),h.showAnchor(l)}}d?(h.getDom("content").innerHTML=d,h.anchorEl=g||l,h.showAnchor(h.anchorEl)):h.hide()}}))},_initToolbars:function(){for(var a=this.editor,b=this.toolbars||[],c=[],d=0;d
    '+(this.toolbars.length?'
    '+this.renderToolbarBoxHtml()+"
    ":"")+'
    '},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var a=[],b=0;b'+c+"");b.innerHTML='
    '+this.editor.getLang("elementPathTip")+": "+d.join(" > ")+"
    "}else b.style.display="none"},disableElementPath:function(){var a=this.getDom("elementpath");a.innerHTML="",a.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var a=this.getDom("elementpath");a.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function a(){o=e.getXY(h),p||(p=g.options.minFrameHeight+j.offsetHeight+k.offsetHeight),m.style.cssText="position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:"+h.offsetWidth+"px;height:"+h.offsetHeight+"px;z-index:"+(g.options.zIndex+1),e.on(f,"mousemove",b),e.on(i,"mouseup",c),e.on(f,"mouseup",c)}function b(a){d();var b=a||window.event;r=b.pageX||f.documentElement.scrollLeft+b.clientX,s=b.pageY||f.documentElement.scrollTop+b.clientY,t=r-o.x,u=s-o.y,t>=q&&(n=!0,m.style.width=t+"px"),u>=p&&(n=!0,m.style.height=u+"px")}function c(){n&&(n=!1,g.ui._actualFrameWidth=m.offsetWidth-2,h.style.width=g.ui._actualFrameWidth+"px",g.setHeight(m.offsetHeight-k.offsetHeight-j.offsetHeight-2,!0)),m&&(m.style.display="none"),d(),e.un(f,"mousemove",b),e.un(i,"mouseup",c),e.un(f,"mouseup",c)}function d(){browser.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,g=this.editor,h=g.container,i=g.document,j=this.getDom("toolbarbox"),k=this.getDom("bottombar"),l=this.getDom("scale"),m=this.getDom("scalelayer"),n=!1,o=null,p=0,q=g.options.minFrameWidth,r=0,s=0,t=0,u=0,v=this;this.editor.addListener("fullscreenchanged",function(a,b){if(b)v.disableScale();else if(v.editor.options.scaleEnabled){v.enableScale();var c=v.editor.document.createElement("span");v.editor.body.appendChild(c),v.editor.body.style.height=Math.max(e.getXY(c).y,v.editor.iframe.offsetHeight-20)+"px",e.remove(c)}}),this.enableScale=function(){1!=g.queryCommandState("source")&&(l.style.display="",this.scaleEnabled=!0,e.on(l,"mousedown",a))},this.disableScale=function(){l.style.display="none",this.scaleEnabled=!1,e.un(l,"mousedown",a)}},isFullScreen:function(){return this._fullscreen},postRender:function(){d.prototype.postRender.call(this);for(var a=0;a[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"),c.className&&(b.className=c.className),c.style.cssText&&(b.style.cssText=c.style.cssText),/textarea/i.test(c.tagName)?(d.textarea=c,d.textarea.style.display="none"):c.parentNode.removeChild(c),c.id&&(b.id=c.id,e.removeAttributes(c,"id")),c=b,c.innerHTML=""}e.addClass(c,"edui-"+d.options.theme),d.ui.render(c);var h=d.options;d.container=d.ui.getDom();for(var i,j=e.findParents(c,!0),k=[],l=0;i=j[l];l++)k[l]=i.style.display,i.style.display="block";if(h.initialFrameWidth)h.minFrameWidth=h.initialFrameWidth;else{h.minFrameWidth=h.initialFrameWidth=c.offsetWidth;var m=c.style.width;/%$/.test(m)&&(h.initialFrameWidth=m)}h.initialFrameHeight?h.minFrameHeight=h.initialFrameHeight:h.initialFrameHeight=h.minFrameHeight=c.offsetHeight;for(var i,l=0;i=j[l];l++)i.style.display=k[l];c.style.height&&(c.style.height=""),d.container.style.width=h.initialFrameWidth+(/%$/.test(h.initialFrameWidth)?"":"px"),d.container.style.zIndex=h.zIndex,f.call(d,d.ui.getDom("iframeholder")),d.fireEvent("afteruiready")}d.langIsReady?b():d.addListener("langReady",b)})},d},UE.getEditor=function(a,b){var c=g[a];return c||(c=g[a]=new UE.ui.Editor(b),c.render(a)),c},UE.delEditor=function(a){var b;(b=g[a])&&(b.key&&b.destroy(),delete g[a])},UE.registerUI=function(a,c,d,e){b.each(a.split(/\s+/),function(a){UE._customizeUI[a]={id:e,execFn:c,index:d}})}}(),UE.registerUI("message",function(a){function b(){var a=g.ui.getDom("toolbarbox");a&&(c.style.top=a.offsetHeight+3+"px"),c.style.zIndex=Math.max(g.options.zIndex,g.iframe.style.zIndex)+1}var c,d=baidu.editor.ui,e=d.Message,f=[],g=a;g.addListener("ready",function(){c=document.getElementById(g.ui.id+"_message_holder"),b()}),g.addListener("showmessage",function(a,d){d=utils.isString(d)?{content:d}:d;var h=new e({timeout:d.timeout,type:d.type,content:d.content,keepshow:d.keepshow,editor:g}),i=d.id||"msg_"+(+new Date).toString(36);return h.render(c),f[i]=h,h.reset(d),b(),i}),g.addListener("updatemessage",function(a,b,d){d=utils.isString(d)?{content:d}:d;var e=f[b];e.render(c),e&&e.reset(d)}),g.addListener("hidemessage",function(a,b){var c=f[b];c&&c.hide()})}),UE.registerUI("autosave",function(a){var b=null,c=null;a.on("afterautosave",function(){clearTimeout(b),b=setTimeout(function(){c&&a.trigger("hidemessage",c),c=a.trigger("showmessage",{content:a.getLang("autosave.success"),timeout:2e3})},2e3)})})}(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor/ueditor.config.js b/yshop-drink-vue/public/UEditor/ueditor.config.js deleted file mode 100644 index c8b7772..0000000 --- a/yshop-drink-vue/public/UEditor/ueditor.config.js +++ /dev/null @@ -1,473 +0,0 @@ -/** - * ueditor完整配置项 - * 可以在这里配置整个编辑器的特性 - */ -/** ************************提示******************************** - * 所有被注释的配置项均为UEditor默认值。 - * 修改默认配置请首先确保已经完全明确该参数的真实用途。 - * 主要有两种修改方案,一种是取消此处注释,然后修改成对应参数;另一种是在实例化编辑器时传入对应参数。 - * 当升级编辑器时,可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。 - **************************提示********************************/ - -(function () { - /** - * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。 - * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。 - * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。 - * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。 - * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。 - * window.UEDITOR_HOME_URL = "/xxxx/xxxx/"; - */ - var URL = window.UEDITOR_HOME_URL || getUEBasePath(); - - /** - * 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。 - */ - window.UEDITOR_CONFIG = { - - // 为编辑器实例添加一个路径,这个不能被注释 - UEDITOR_HOME_URL: URL, - - // 服务器统一请求接口路径 - serverUrl: URL + 'php/controller.php', - - // 工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义 - toolbars: [[ - 'source', '|', 'undo', 'redo', '|', - 'bold', 'italic', 'underline', 'strikethrough', '|', 'superscript', 'subscript', '|', 'forecolor', 'backcolor', '|', - 'removeformat', '|', 'insertorderedlist', 'insertunorderedlist', '|', 'selectall', 'cleardoc', 'paragraph', '|', - 'fontfamily', 'fontsize', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', - 'link', 'unlink', '|', 'emotion', '|', - '|', 'horizontal', 'print', 'preview', 'fullscreen', 'drafts', 'formula' - ]], - // 当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准 - //, labelMap:{ - // 'anchor':'', 'undo':'' - // } - - // 语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件: - // lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase() - //, lang:"zh-cn" - //, langPath:URL +"lang/" - - // 主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件: - // 现有如下皮肤:default - //, theme:'default' - //, themePath:URL +"themes/" - - //, zIndex : 900 //编辑器层级的基数,默认是900 - - // 针对getAllHtml方法,会在对应的head标签中增加该编码设置。 - //, charset:"utf-8" - - // 若实例化编辑器的页面手动修改的domain,此处需要设置为true - //, customDomain:false - - // 常用配置项目 - //, isShow : true //默认显示编辑器 - - //, textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值 - - //, initialContent:'欢迎使用ueditor!' //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子 - - //, autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了 - - //, focus:false //初始化时,是否让编辑器获得焦点true或false - - // 如果自定义,最好给p标签如下的行高,要不输入中文时,会有跳动感 - //, initialStyle:'p{line-height:1em}'//编辑器层级的基数,可以用来改变字体等 - - //, iframeCssUrl: URL + '/themes/iframe.css' //给编辑区域的iframe引入一个css文件 - - // indentValue - // 首行缩进距离,默认是2em - //, indentValue:'2em' - - //, initialFrameWidth:1000 //初始化编辑器宽度,默认1000 - //, initialFrameHeight:320 //初始化编辑器高度,默认320 - - //, readonly : false //编辑器初始化结束后,编辑区域是否是只读的,默认是false - - //, autoClearEmptyNode : true //getContent时,是否删除空的inlineElement节点(包括嵌套的情况) - - // 启用自动保存 - //, enableAutoSave: true - // 自动保存间隔时间, 单位ms - //, saveInterval: 500 - - //, fullscreen : false //是否开启初始化时即全屏,默认关闭 - - //, imagePopup:true //图片操作的浮层开关,默认打开 - - //, autoSyncData:true //自动同步编辑器要提交的数据 - //, emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹 - - // 粘贴只保留标签,去除标签所有属性 - //, retainOnlyLabelPasted: false - - //, pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴 - // 纯文本粘贴模式下的过滤规则 - // 'filterTxtRules' : function(){ - // function transP(node){ - // node.tagName = 'p'; - // node.setStyle(); - // } - // return { - // //直接删除及其字节点内容 - // '-' : 'script style object iframe embed input select', - // 'p': {$:{}}, - // 'br':{$:{}}, - // 'div':{'$':{}}, - // 'li':{'$':{}}, - // 'caption':transP, - // 'th':transP, - // 'tr':transP, - // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - // 'td':function(node){ - // //没有内容的td直接删掉 - // var txt = !!node.innerText(); - // if(txt){ - // node.parentNode.insertAfter(UE.uNode.createText('    '),node); - // } - // node.parentNode.removeChild(node,node.innerText()) - // } - // } - // }() - - //, allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串 - - // insertorderedlist - // 有序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //, 'insertorderedlist':{ - // //自定的样式 - // 'num':'1,2,3...', - // 'num1':'1),2),3)...', - // 'num2':'(1),(2),(3)...', - // 'cn':'一,二,三....', - // 'cn1':'一),二),三)....', - // 'cn2':'(一),(二),(三)....', - // //系统自带 - // 'decimal' : '' , //'1,2,3...' - // 'lower-alpha' : '' , // 'a,b,c...' - // 'lower-roman' : '' , //'i,ii,iii...' - // 'upper-alpha' : '' , lang //'A,B,C' - // 'upper-roman' : '' //'I,II,III...' - // } - - // insertunorderedlist - // 无序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //, insertunorderedlist : { //自定的样式 - // 'dash' :'— 破折号', //-破折号 - // 'dot':' 。 小圆圈', //系统自带 - // 'circle' : '', // '○ 小圆圈' - // 'disc' : '', // '● 小圆点' - // 'square' : '' //'■ 小方块' - // } - //, listDefaultPaddingLeft : '30'//默认的左边缩进的基数倍 - //, listiconpath : 'http://bs.baidu.com/listicon/'//自定义标号的路径 - //, maxListLevel : 3 //限制可以tab的级数, 设置-1为不限制 - - //, autoTransWordToList:false //禁止word中粘贴进来的列表自动变成列表标签 - - // fontfamily - // 字体设置 label留空支持多语言自动切换,若配置,则以配置值为准 - //, 'fontfamily':[ - // { label:'',name:'songti',val:'宋体,SimSun'}, - // { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'}, - // { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'}, - // { label:'',name:'heiti',val:'黑体, SimHei'}, - // { label:'',name:'lishu',val:'隶书, SimLi'}, - // { label:'',name:'andaleMono',val:'andale mono'}, - // { label:'',name:'arial',val:'arial, helvetica,sans-serif'}, - // { label:'',name:'arialBlack',val:'arial black,avant garde'}, - // { label:'',name:'comicSansMs',val:'comic sans ms'}, - // { label:'',name:'impact',val:'impact,chicago'}, - // { label:'',name:'timesNewRoman',val:'times new roman'} - // ] - - // fontsize - // 字号 - //, 'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36] - - // paragraph - // 段落格式 值留空时支持多语言自动识别,若配置,则以配置值为准 - //, 'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''} - - // rowspacingtop - // 段间距 值和显示的名字相同 - //, 'rowspacingtop':['5', '10', '15', '20', '25'] - - // rowspacingBottom - // 段间距 值和显示的名字相同 - //, 'rowspacingbottom':['5', '10', '15', '20', '25'] - - // lineheight - // 行内间距 值和显示的名字相同 - //, 'lineheight':['1', '1.5','1.75','2', '3', '4', '5'] - - // customstyle - // 自定义样式,不支持国际化,此处配置值即可最后显示值 - // block的元素是依据设置段落的逻辑设置的,inline的元素依据BIU的逻辑设置 - // 尽量使用一些常用的标签 - // 参数说明 - // tag 使用的标签名字 - // label 显示的名字也是用来标识不同类型的标识符,注意这个值每个要不同, - // style 添加的样式 - // 每一个对象就是一个自定义的样式 - //, 'customstyle':[ - // {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - // {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'}, - // {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'}, - // {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'} - // ] - - // 打开右键菜单功能 - //, enableContextMenu: true - // 右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准 - //, contextMenu:[ - // { - // label:'', //显示的名称 - // cmdName:'selectall',//执行的command命令,当点击这个右键菜单时 - // //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName - // exec:function () { - // //this是当前编辑器的实例 - // //this.ui._dialogs['inserttableDialog'].open(); - // } - // } - // ] - - // 快捷菜单 - //, shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"] - - // elementPathEnabled - // 是否启用元素路径,默认是显示 - //, elementPathEnabled : true - - // wordCount - //, wordCount:true //是否开启字数统计 - //, maximumWords:10000 //允许的最大字符数 - // 字数统计提示,{#count}代表当前字数,{#leave}代表还可以输入多少字符数,留空支持多语言自动切换,否则按此配置显示 - //, wordCountMsg:'' //当前已输入 {#count} 个字符,您还可以输入{#leave} 个字符 - // 超出字数限制提示 留空支持多语言自动切换,否则按此配置显示 - //, wordOverFlowMsg:'' //你输入的字符个数已经超出最大允许值,服务器可能会拒绝保存! - - // tab - // 点击tab键时移动的距离,tabSize倍数,tabNode什么字符做为单位 - //, tabSize:4 - //, tabNode:' ' - - // removeFormat - // 清除格式时可以删除的标签和属性 - // removeForamtTags标签 - //, removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' - // removeFormatAttributes属性 - //, removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign' - - // undo - // 可以最多回退的次数,默认20 - //, maxUndoCount:20 - // 当输入的字符数超过该值时,保存一次现场 - //, maxInputCount:1 - - // autoHeightEnabled - // 是否自动长高,默认true - //, autoHeightEnabled:true - - // scaleEnabled - // 是否可以拉伸长高,默认true(当开启时,自动长高失效) - //, scaleEnabled:false - //, minFrameWidth:800 //编辑器拖动时最小宽度,默认800 - //, minFrameHeight:220 //编辑器拖动时最小高度,默认220 - - // autoFloatEnabled - // 是否保持toolbar的位置不动,默认true - //, autoFloatEnabled:true - // 浮动时工具栏距离浏览器顶部的高度,用于某些具有固定头部的页面 - //, topOffset:30 - // 编辑器底部距离工具栏高度(如果参数大于等于编辑器高度,则设置无效) - //, toolbarTopOffset:400 - - // 设置远程图片是否抓取到本地保存 - //, catchRemoteImageEnable: true //设置是否抓取远程图片 - - // pageBreakTag - // 分页标识符,默认是_ueditor_page_break_tag_ - //, pageBreakTag:'_ueditor_page_break_tag_' - - // autotypeset - // 自动排版参数 - //, autotypeset: { - // mergeEmptyline: true, //合并空行 - // removeClass: true, //去掉冗余的class - // removeEmptyline: false, //去掉空行 - // textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - // imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - // pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - // clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - // clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - // removeEmptyNode: false, // 去掉空节点 - // //可以去掉的标签 - // removeTagNames: {标签名字:1}, - // indent: false, // 行首缩进 - // indentValue : '2em', //行首缩进的大小 - // bdc2sb: false, - // tobdc: false - // } - - // tableDragable - // 表格是否可以拖拽 - //, tableDragable: true - - // sourceEditor - // 源码的查看方式,codemirror 是代码高亮,textarea是文本框,默认是codemirror - // 注意默认codemirror只能在ie8+和非ie中使用 - //, sourceEditor:"codemirror" - // 如果sourceEditor是codemirror,还用配置一下两个参数 - // codeMirrorJsUrl js加载的路径,默认是 URL + "third-party/codemirror/codemirror.js" - //, codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js" - // codeMirrorCssUrl css加载的路径,默认是 URL + "third-party/codemirror/codemirror.css" - //, codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css" - // 编辑器初始化完成后是否进入源码模式,默认为否。 - //, sourceEditorFirst:false - - // iframeUrlMap - // dialog内容的路径 ~会被替换成URL,垓属性一旦打开,将覆盖所有的dialog的默认路径 - //, iframeUrlMap:{ - // 'anchor':'~/dialogs/anchor/anchor.html', - // } - - // allowLinkProtocol 允许的链接地址,有这些前缀的链接地址不会自动添加http - //, allowLinkProtocols: ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:', 'git:', 'svn:'] - - // webAppKey 百度应用的APIkey,每个站长必须首先去百度官网注册一个key后方能正常使用app功能,注册介绍,http://app.baidu.com/static/cms/getapikey.html - //, webAppKey: "" - - // 默认过滤规则相关配置项目 - //, disabledTableInTable:true //禁止表格嵌套 - //, allowDivTransToP:true //允许进入编辑器的div标签自动变成p标签 - //, rgb2Hex:true //默认产出的数据中的color自动从rgb格式变成16进制格式 - - // xss 过滤是否开启,inserthtml等操作 - xssFilterRules: true, - // input xss过滤 - inputXssFilter: true, - // output xss过滤 - outputXssFilter: true, - // xss过滤白名单 名单来源: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js - whiteList: { - a: ['target', 'href', 'title', 'class', 'style'], - abbr: ['title', 'class', 'style'], - address: ['class', 'style'], - area: ['shape', 'coords', 'href', 'alt'], - article: [], - aside: [], - audio: ['autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'], - b: ['class', 'style'], - bdi: ['dir'], - bdo: ['dir'], - big: [], - blockquote: ['cite', 'class', 'style'], - br: [], - caption: ['class', 'style'], - center: [], - cite: [], - code: ['class', 'style'], - col: ['align', 'valign', 'span', 'width', 'class', 'style'], - colgroup: ['align', 'valign', 'span', 'width', 'class', 'style'], - dd: ['class', 'style'], - del: ['datetime'], - details: ['open'], - div: ['class', 'style'], - dl: ['class', 'style'], - dt: ['class', 'style'], - em: ['class', 'style'], - font: ['color', 'size', 'face'], - footer: [], - h1: ['class', 'style'], - h2: ['class', 'style'], - h3: ['class', 'style'], - h4: ['class', 'style'], - h5: ['class', 'style'], - h6: ['class', 'style'], - header: [], - hr: [], - i: ['class', 'style'], - img: ['src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'], - ins: ['datetime'], - li: ['class', 'style'], - mark: [], - nav: [], - ol: ['class', 'style'], - p: ['class', 'style'], - pre: ['class', 'style'], - s: [], - section: [], - small: [], - span: ['class', 'style'], - sub: ['class', 'style'], - sup: ['class', 'style'], - strong: ['class', 'style'], - table: ['width', 'border', 'align', 'valign', 'class', 'style'], - tbody: ['align', 'valign', 'class', 'style'], - td: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - tfoot: ['align', 'valign', 'class', 'style'], - th: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - thead: ['align', 'valign', 'class', 'style'], - tr: ['rowspan', 'align', 'valign', 'class', 'style'], - tt: [], - u: [], - ul: ['class', 'style'], - video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style'] - } - }; - - function getUEBasePath (docUrl, confUrl) { - return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath()); - } - - function getConfigFilePath () { - var configPath = document.getElementsByTagName('script'); - - return configPath[ configPath.length - 1 ].src; - } - - function getBasePath (docUrl, confUrl) { - var basePath = confUrl; - - if (/^(\/|\\\\)/.test(confUrl)) { - basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, ''); - } else if (!/^[a-z]+:/i.test(confUrl)) { - docUrl = docUrl.split('#')[0].split('?')[0].replace(/[^\\\/]+$/, ''); - - basePath = docUrl + '' + confUrl; - } - - return optimizationPath(basePath); - } - - function optimizationPath (path) { - let protocol = /^[a-z]+:\/\//.exec(path)[ 0 ], - tmp = null, - res = []; - - path = path.replace(protocol, '').split('?')[0].split('#')[0]; - - path = path.replace(/\\/g, '/').split(/\//); - - path[ path.length - 1 ] = ''; - - while (path.length) { - if ((tmp = path.shift()) === '..') { - res.pop(); - } else if (tmp !== '.') { - res.push(tmp); - } - } - - return protocol + res.join('/'); - } - - window.UE = { - getUEBasePath: getUEBasePath - }; -})(); diff --git a/yshop-drink-vue/public/UEditor/ueditor.parse.js b/yshop-drink-vue/public/UEditor/ueditor.parse.js deleted file mode 100644 index 408f397..0000000 --- a/yshop-drink-vue/public/UEditor/ueditor.parse.js +++ /dev/null @@ -1,1022 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -(function(){ - -(function(){ - UE = window.UE || {}; - var isIE = !!window.ActiveXObject; - //定义utils工具 - var utils = { - removeLastbs : function(url){ - return url.replace(/\/$/,'') - }, - extend : function(t,s){ - var a = arguments, - notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false, - len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length; - for (var i = 1; i < len; i++) { - var x = a[i]; - for (var k in x) { - if (!notCover || !t.hasOwnProperty(k)) { - t[k] = x[k]; - } - } - } - return t; - }, - isIE : isIE, - cssRule : isIE ? function(key,style,doc){ - var indexList,index; - doc = doc || document; - if(doc.indexList){ - indexList = doc.indexList; - }else{ - indexList = doc.indexList = {}; - } - var sheetStyle; - if(!indexList[key]){ - if(style === undefined){ - return '' - } - sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length); - indexList[key] = index; - }else{ - sheetStyle = doc.styleSheets[indexList[key]]; - } - if(style === undefined){ - return sheetStyle.cssText - } - sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '') - } : function(key,style,doc){ - doc = doc || document; - var head = doc.getElementsByTagName('head')[0],node; - if(!(node = doc.getElementById(key))){ - if(style === undefined){ - return '' - } - node = doc.createElement('style'); - node.id = key; - head.appendChild(node) - } - if(style === undefined){ - return node.innerHTML - } - if(style !== ''){ - node.innerHTML = node.innerHTML + '\n' + style; - }else{ - head.removeChild(node) - } - }, - domReady : function (onready) { - var doc = window.document; - if (doc.readyState === "complete") { - onready(); - }else{ - if (isIE) { - (function () { - if (doc.isReady) return; - try { - doc.documentElement.doScroll("left"); - } catch (error) { - setTimeout(arguments.callee, 0); - return; - } - onready(); - })(); - window.attachEvent('onload', function(){ - onready() - }); - } else { - doc.addEventListener("DOMContentLoaded", function () { - doc.removeEventListener("DOMContentLoaded", arguments.callee, false); - onready(); - }, false); - window.addEventListener('load', function(){onready()}, false); - } - } - - }, - each : function(obj, iterator, context) { - if (obj == null) return; - if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i++) { - if(iterator.call(context, obj[i], i, obj) === false) - return false; - } - } else { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - if(iterator.call(context, obj[key], key, obj) === false) - return false; - } - } - } - }, - inArray : function(arr,item){ - var index = -1; - this.each(arr,function(v,i){ - if(v === item){ - index = i; - return false; - } - }); - return index; - }, - pushItem : function(arr,item){ - if(this.inArray(arr,item)==-1){ - arr.push(item) - } - }, - trim: function (str) { - return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, ''); - }, - indexOf: function (array, item, start) { - var index = -1; - start = this.isNumber(start) ? start : 0; - this.each(array, function (v, i) { - if (i >= start && v === item) { - index = i; - return false; - } - }); - return index; - }, - hasClass: function (element, className) { - className = className.replace(/(^[ ]+)|([ ]+$)/g, '').replace(/[ ]{2,}/g, ' ').split(' '); - for (var i = 0, ci, cls = element.className; ci = className[i++];) { - if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) { - return false; - } - } - return i - 1 == className.length; - }, - addClass:function (elm, classNames) { - if(!elm)return; - classNames = this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - if(!new RegExp('\\b' + ci + '\\b').test(cls)){ - cls += ' ' + ci; - } - } - elm.className = utils.trim(cls); - }, - removeClass:function (elm, classNames) { - classNames = this.isArray(classNames) ? classNames : - this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = this.trim(cls).replace(/[ ]{2,}/g,' '); - elm.className = cls; - !cls && elm.removeAttribute('className'); - }, - on: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - off: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - loadFile : function () { - var tmpList = []; - function getItem(doc,obj){ - try{ - for(var i= 0,ci;ci=tmpList[i++];){ - if(ci.doc === doc && ci.url == (obj.src || obj.href)){ - return ci; - } - } - }catch(e){ - return null; - } - - } - return function (doc, obj, fn) { - var item = getItem(doc,obj); - if (item) { - if(item.ready){ - fn && fn(); - }else{ - item.funs.push(fn) - } - return; - } - tmpList.push({ - doc:doc, - url:obj.src||obj.href, - funs:[fn] - }); - if (!doc.body) { - var html = []; - for(var p in obj){ - if(p == 'tag')continue; - html.push(p + '="' + obj[p] + '"') - } - doc.write('<' + obj.tag + ' ' + html.join(' ') + ' >'); - return; - } - if (obj.id && doc.getElementById(obj.id)) { - return; - } - var element = doc.createElement(obj.tag); - delete obj.tag; - for (var p in obj) { - element.setAttribute(p, obj[p]); - } - element.onload = element.onreadystatechange = function () { - if (!this.readyState || /loaded|complete/.test(this.readyState)) { - item = getItem(doc,obj); - if (item.funs.length > 0) { - item.ready = 1; - for (var fi; fi = item.funs.pop();) { - fi(); - } - } - element.onload = element.onreadystatechange = null; - } - }; - element.onerror = function(){ - throw Error('The load '+(obj.href||obj.src)+' fails,check the url') - }; - doc.getElementsByTagName("head")[0].appendChild(element); - } - }() - }; - utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object','Boolean'], function (v) { - utils['is' + v] = function (obj) { - return Object.prototype.toString.apply(obj) == '[object ' + v + ']'; - } - }); - var parselist = {}; - UE.parse = { - register : function(parseName,fn){ - parselist[parseName] = fn; - }, - load : function(opt){ - utils.each(parselist,function(v){ - v.call(opt,utils); - }) - } - }; - uParse = function(selector,opt){ - utils.domReady(function(){ - var contents; - if(document.querySelectorAll){ - contents = document.querySelectorAll(selector) - }else{ - if(/^#/.test(selector)){ - contents = [document.getElementById(selector.replace(/^#/,''))] - }else if(/^\./.test(selector)){ - var contents = []; - utils.each(document.getElementsByTagName('*'),function(node){ - if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){ - contents.push(node) - } - }) - }else{ - contents = document.getElementsByTagName(selector) - } - } - utils.each(contents,function(v){ - UE.parse.load(utils.extend({root:v,selector:selector},opt)) - }) - }) - } -})(); - -UE.parse.register('insertcode',function(utils){ - var pres = this.root.getElementsByTagName('pre'); - if(pres.length){ - if(typeof XRegExp == "undefined"){ - var jsurl,cssurl; - if(this.rootPath !== undefined){ - jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js'; - cssurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css'; - }else{ - jsurl = this.highlightJsUrl; - cssurl = this.highlightCssUrl; - } - utils.loadFile(document,{ - id : "syntaxhighlighter_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "syntaxhighlighter_js", - src : jsurl, - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - }); - }else{ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - } - } - -}); -UE.parse.register('table', function (utils) { - var me = this, - root = this.root, - tables = root.getElementsByTagName('table'); - if (tables.length) { - var selector = this.selector; - //追加默认的表格样式 - utils.cssRule('table', - selector + ' table.noBorderTable td,' + - selector + ' table.noBorderTable th,' + - selector + ' table.noBorderTable caption{border:1px dashed #ddd !important}' + - selector + ' table.sortEnabled tr.firstRow th,' + selector + ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' + - 'background-position: center right; background-image:url(' + this.rootPath + 'themes/default/images/sortable.png);}' + - selector + ' table.sortEnabled tr.firstRow th:hover,' + selector + ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' + - selector + ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - selector + ' td,' + selector + ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' + - selector + ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - selector + ' th{border-top:1px solid #BBB;background:#F7F7F7;}' + - selector + ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' + - selector + ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' + - selector + ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' + - selector + ' td p{margin:0;padding:0;}', - document); - //填充空的单元格 - - utils.each('td th caption'.split(' '), function (tag) { - var cells = root.getElementsByTagName(tag); - cells.length && utils.each(cells, function (node) { - if (!node.firstChild) { - node.innerHTML = ' '; - - } - }) - }); - - //表格可排序 - var tables = root.getElementsByTagName('table'); - utils.each(tables, function (table) { - if (/\bsortEnabled\b/.test(table.className)) { - utils.on(table, 'click', function(e){ - var target = e.target || e.srcElement, - cell = findParentByTagName(target, ['td', 'th']); - var table = findParentByTagName(target, 'table'), - colIndex = utils.indexOf(table.rows[0].cells, cell), - sortType = table.getAttribute('data-sort-type'); - if(colIndex != -1) { - sortTable(table, colIndex, me.tableSortCompareFn || sortType); - updateTable(table); - } - }); - } - }); - - //按照标签名查找父节点 - function findParentByTagName(target, tagNames) { - var i, current = target; - tagNames = utils.isArray(tagNames) ? tagNames:[tagNames]; - while(current){ - for(i = 0;i < tagNames.length; i++) { - if(current.tagName == tagNames[i].toUpperCase()) return current; - } - current = current.parentNode; - } - return null; - } - //表格排序 - function sortTable(table, sortByCellIndex, compareFn) { - var rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } - } - //冒泡排序 - function sort(array, compareFn){ - compareFn = compareFn || function(item1, item2){ return item1.localeCompare(item2);}; - for(var i= 0,len = array.length; i 0){ - var t = array[i]; - array[i] = array[j]; - array[j] = t; - } - } - } - return array; - } - //更新表格 - function updateTable(table) { - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!utils.hasClass(table.rows[0], "firstRow")) { - for(var i = 1; i< table.rows.length; i++) { - utils.removeClass(table.rows[i], "firstRow"); - } - utils.addClass(table.rows[0], "firstRow"); - } - } - } -}); -UE.parse.register('charts',function( utils ){ - - utils.cssRule('chartsContainerHeight','.edui-chart-container { height:'+(this.chartContainerHeight||300)+'px}'); - var resourceRoot = this.rootPath, - containers = this.root, - sources = null; - - //不存在指定的根路径, 则直接退出 - if ( !resourceRoot ) { - return; - } - - if ( sources = parseSources() ) { - - loadResources(); - - } - - - function parseSources () { - - if ( !containers ) { - return null; - } - - return extractChartData( containers ); - - } - - /** - * 提取数据 - */ - function extractChartData ( rootNode ) { - - var data = [], - tables = rootNode.getElementsByTagName( "table" ); - - for ( var i = 0, tableNode; tableNode = tables[ i ]; i++ ) { - - if ( tableNode.getAttribute( "data-chart" ) !== null ) { - - data.push( formatData( tableNode ) ); - - } - - } - - return data.length ? data : null; - - } - - function formatData ( tableNode ) { - - var meta = tableNode.getAttribute( "data-chart" ), - metaConfig = {}, - data = []; - - //提取table数据 - for ( var i = 0, row; row = tableNode.rows[ i ]; i++ ) { - - var rowData = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = ( cell.innerText || cell.textContent || '' ); - rowData.push( cell.tagName == 'TH' ? value:(value | 0) ); - - } - - data.push( rowData ); - - } - - //解析元信息 - meta = meta.split( ";" ); - for ( var i = 0, metaData; metaData = meta[ i ]; i++ ) { - - metaData = metaData.split( ":" ); - metaConfig[ metaData[ 0 ] ] = metaData[ 1 ]; - - } - - - return { - table: tableNode, - meta: metaConfig, - data: data - }; - - } - - //加载资源 - function loadResources () { - - loadJQuery(); - - } - - function loadJQuery () { - - //不存在jquery, 则加载jquery - if ( !window.jQuery ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/jquery-1.10.2.min.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadHighcharts(); - - }); - - } else { - - loadHighcharts(); - - } - - } - - function loadHighcharts () { - - //不存在Highcharts, 则加载Highcharts - if ( !window.Highcharts ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/highcharts/highcharts.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadTypeConfig(); - - }); - - } else { - - loadTypeConfig(); - - } - - } - - //加载图表差异化配置文件 - function loadTypeConfig () { - - utils.loadFile(document,{ - src : resourceRoot + "/dialogs/charts/chart.config.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - render(); - - }); - - } - - //渲染图表 - function render () { - - var config = null, - chartConfig = null, - container = null; - - for ( var i = 0, len = sources.length; i < len; i++ ) { - - config = sources[ i ]; - - chartConfig = analysisConfig( config ); - - container = createContainer( config.table ); - - renderChart( container, typeConfig[ config.meta.chartType ], chartConfig ); - - } - - - } - - /** - * 渲染图表 - * @param container 图表容器节点对象 - * @param typeConfig 图表类型配置 - * @param config 图表通用配置 - * */ - function renderChart ( container, typeConfig, config ) { - - - $( container ).highcharts( $.extend( {}, typeConfig, { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: config.title, - x: -20 //center - }, - subtitle: { - text: config.subTitle, - x: -20 - }, - xAxis: { - title: { - text: config.xTitle - }, - categories: config.categories - }, - yAxis: { - title: { - text: config.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: config.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: config.series - - } )); - - } - - /** - * 创建图表的容器 - * 新创建的容器会替换掉对应的table对象 - * */ - function createContainer ( tableNode ) { - - var container = document.createElement( "div" ); - container.className = "edui-chart-container"; - - tableNode.parentNode.replaceChild( container, tableNode ); - - return container; - - } - - //根据config解析出正确的类别和图表数据信息 - function analysisConfig ( config ) { - - var series = [], - //数据类别 - categories = [], - result = [], - data = config.data, - meta = config.meta; - - //数据对齐方式为相反的方式, 需要反转数据 - if ( meta.dataFormat != "1" ) { - - for ( var i = 0, len = data.length; i < len ; i++ ) { - - for ( var j = 0, jlen = data[ i ].length; j < jlen; j++ ) { - - if ( !result[ j ] ) { - result[ j ] = []; - } - - result[ j ][ i ] = data[ i ][ j ]; - - } - - } - - data = result; - - } - - result = {}; - - //普通图表 - if ( meta.chartType != typeConfig.length - 1 ) { - - categories = data[ 0 ].slice( 1 ); - - for ( var i = 1, curData; curData = data[ i ]; i++ ) { - series.push( { - name: curData[ 0 ], - data: curData.slice( 1 ) - } ); - } - - result.series = series; - result.categories = categories; - result.title = meta.title; - result.subTitle = meta.subTitle; - result.xTitle = meta.xTitle; - result.yTitle = meta.yTitle; - result.suffix = meta.suffix; - - } else { - - var curData = []; - - for ( var i = 1, len = data[ 0 ].length; i < len; i++ ) { - - curData.push( [ data[ 0 ][ i ], data[ 1 ][ i ] | 0 ] ); - - } - - //饼图 - series[ 0 ] = { - type: 'pie', - name: meta.tip, - data: curData - }; - - result.series = series; - result.title = meta.title; - result.suffix = meta.suffix; - - } - - return result; - - } - -}); -UE.parse.register('background', function (utils) { - var me = this, - root = me.root, - p = root.getElementsByTagName('p'), - styles; - - for (var i = 0,ci; ci = p[i++];) { - styles = ci.getAttribute('data-background'); - if (styles){ - ci.parentNode.removeChild(ci); - } - } - - //追加默认的表格样式 - styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document); -}); -UE.parse.register('list',function(utils){ - var customCss = [], - customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num' : 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot' : 'dot' - }; - - - utils.extend(this,{ - liiconpath : 'http://bs.baidu.com/listicon/', - listDefaultPaddingLeft : '20' - }); - - var root = this.root, - ols = root.getElementsByTagName('ol'), - uls = root.getElementsByTagName('ul'), - selector = this.selector; - - if(ols.length){ - applyStyle.call(this,ols); - } - - if(uls.length){ - applyStyle.call(this,uls); - } - - if(ols.length || uls.length){ - customCss.push(selector +' .list-paddingleft-1{padding-left:0}'); - customCss.push(selector +' .list-paddingleft-2{padding-left:'+ this.listDefaultPaddingLeft+'px}'); - customCss.push(selector +' .list-paddingleft-3{padding-left:'+ this.listDefaultPaddingLeft*2+'px}'); - - utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}li{clear:both;}'+customCss.join('\n'), document); - } - function applyStyle(nodes){ - var T = this; - utils.each(nodes,function(list){ - if(list.className && /custom_/i.test(list.className)){ - var listStyle = list.className.match(/custom_(\w+)/)[1]; - if(listStyle == 'dash' || listStyle == 'dot'){ - utils.pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + T.liiconpath +customStyle[listStyle]+'.gif)}'); - utils.pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - - }else{ - var index = 1; - utils.each(list.childNodes,function(li){ - if(li.tagName == 'LI'){ - utils.pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + T.liiconpath + 'list-'+customStyle[listStyle] +index + '.gif)}'); - index++; - } - }); - utils.pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(listStyle){ - case 'cn': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}'); - } - } - }); - } - - -}); -UE.parse.register('vedio',function(utils){ - var video = this.root.getElementsByTagName('video'), - audio = this.root.getElementsByTagName('audio'); - - document.createElement('video');document.createElement('audio'); - if(video.length || audio.length){ - var sourcePath = utils.removeLastbs(this.rootPath), - jsurl = sourcePath + '/third-party/video-js/video.js', - cssurl = sourcePath + '/third-party/video-js/video-js.min.css', - swfUrl = sourcePath + '/third-party/video-js/video-js.swf'; - - if(window.videojs) { - videojs.autoSetup(); - } else { - utils.loadFile(document,{ - id : "video_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "video_js", - src : jsurl, - tag : "script", - type : "text/javascript" - },function(){ - videojs.options.flash.swf = swfUrl; - videojs.autoSetup(); - }); - } - - } -}); - -})(); diff --git a/yshop-drink-vue/public/UEditor/ueditor.parse.min.js b/yshop-drink-vue/public/UEditor/ueditor.parse.min.js deleted file mode 100644 index b9862ef..0000000 --- a/yshop-drink-vue/public/UEditor/ueditor.parse.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:07 GMT+0800 (CST) - */ - -!function(){!function(){UE=window.UE||{};var a=!!window.ActiveXObject,b={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,b){for(var c=arguments,d=!!this.isBoolean(c[c.length-1])&&c[c.length-1],e=this.isBoolean(c[c.length-1])?c.length-1:c.length,f=1;f=c&&a===b)return d=e,!1}),d},hasClass:function(a,b){b=b.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},addClass:function(a,c){if(a){c=this.trim(c).replace(/[ ]{2,}/g," ").split(" ");for(var d,e=0,f=a.className;d=c[e++];)new RegExp("\\b"+d+"\\b").test(f)||(f+=" "+d);a.className=b.trim(f)}},removeClass:function(a,b){b=this.isArray(b)?b:this.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," "),a.className=e,!e&&a.removeAttribute("className")},on:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.addEventListener)a.addEventListener(c,d,!1);else{d._d||(d._d={els:[]});var g=c+d.toString(),h=b.indexOf(d._d.els,a);d._d[g]&&h!=-1||(h==-1&&d._d.els.push(a),d._d[g]||(d._d[g]=function(a){return d.call(a.srcElement,a||window.event)}),a.attachEvent("on"+c,d._d[g]))}a=null},off:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.removeEventListener)a.removeEventListener(c,d,!1);else{var g=c+d.toString();try{a.detachEvent("on"+c,d._d?d._d[g]:d)}catch(h){}if(d._d&&d._d[g]){var i=b.indexOf(d._d.els,a);i!=-1&&d._d.els.splice(i,1),0==d._d.els.length&&delete d._d[g]}}},loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url")},c.getElementsByTagName("head")[0].appendChild(i)}}}()};b.each(["String","Function","Array","Number","RegExp","Object","Boolean"],function(a){b["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var c={};UE.parse={register:function(a,b){c[a]=b},load:function(a){b.each(c,function(c){c.call(a,b)})}},uParse=function(a,c){b.domReady(function(){var d;if(document.querySelectorAll)d=document.querySelectorAll(a);else if(/^#/.test(a))d=[document.getElementById(a.replace(/^#/,""))];else if(/^\./.test(a)){var d=[];b.each(document.getElementsByTagName("*"),function(b){b.className&&new RegExp("\\b"+a.replace(/^\./,"")+"\\b","i").test(b.className)&&d.push(b)})}else d=document.getElementsByTagName(a);b.each(d,function(d){UE.parse.load(b.extend({root:d,selector:a},c))})})}}(),UE.parse.register("insertcode",function(a){var b=this.root.getElementsByTagName("pre");if(b.length)if("undefined"==typeof XRegExp){var c,d;void 0!==this.rootPath?(c=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCore.js",d=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCoreDefault.css"):(c=this.highlightJsUrl,d=this.highlightCssUrl),a.loadFile(document,{id:"syntaxhighlighter_css",tag:"link",rel:"stylesheet",type:"text/css",href:d}),a.loadFile(document,{id:"syntaxhighlighter_js",src:c,tag:"script",type:"text/javascript",defer:"defer"},function(){a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})})}else a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})}),UE.parse.register("table",function(a){function b(b,c){var d,e=b;for(c=a.isArray(c)?c:[c];e;){for(d=0;d0){var g=a[c];a[c]=a[e],a[e]=g}return a}function e(b){if(!a.hasClass(b.rows[0],"firstRow")){for(var c=1;c - - - - - - - -
    - -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.css b/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.css deleted file mode 100644 index e9d11af..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.css +++ /dev/null @@ -1,681 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 上传附件 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} -#upload .filelist li p.imgWrap.notimage { - margin-top: 0; - width: 111px; - height: 111px; - border: 1px #eeeeee solid; -} -#upload .filelist li p.imgWrap.notimage i.file-preview { - margin-top: 15px; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background-image: url(./images/success.gif) \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #fileList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li div.file-wrapper { - cursor: pointer; - position: absolute; - display: block; - width: 111px; - height: 111px; - border: 1px solid #eee; - background: url("./images/bg.png") repeat; -} -#online li div span.file-title{ - display: block; - padding: 0 3px; - margin: 3px 0 0 0; - font-size: 12px; - height: 13px; - color: #555555; - text-align: center; - width: 107px; - white-space: nowrap; - word-break: break-all; - overflow: hidden; - text-overflow: ellipsis; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif) \9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 在线文件的文件预览图标 */ -i.file-preview { - display: block; - margin: 10px auto; - width: 70px; - height: 70px; - background-image: url("./images/file-icons.png"); - background-image: url("./images/file-icons.gif") \9; - background-position: -140px center; - background-repeat: no-repeat; -} -i.file-preview.file-type-dir{ - background-position: 0 center; -} -i.file-preview.file-type-file{ - background-position: -140px center; -} -i.file-preview.file-type-filelist{ - background-position: -210px center; -} -i.file-preview.file-type-zip, -i.file-preview.file-type-rar, -i.file-preview.file-type-7z, -i.file-preview.file-type-tar, -i.file-preview.file-type-gz, -i.file-preview.file-type-bz2{ - background-position: -280px center; -} -i.file-preview.file-type-xls, -i.file-preview.file-type-xlsx{ - background-position: -350px center; -} -i.file-preview.file-type-doc, -i.file-preview.file-type-docx{ - background-position: -420px center; -} -i.file-preview.file-type-ppt, -i.file-preview.file-type-pptx{ - background-position: -490px center; -} -i.file-preview.file-type-vsd{ - background-position: -560px center; -} -i.file-preview.file-type-pdf{ - background-position: -630px center; -} -i.file-preview.file-type-txt, -i.file-preview.file-type-md, -i.file-preview.file-type-json, -i.file-preview.file-type-htm, -i.file-preview.file-type-xml, -i.file-preview.file-type-html, -i.file-preview.file-type-js, -i.file-preview.file-type-css, -i.file-preview.file-type-php, -i.file-preview.file-type-jsp, -i.file-preview.file-type-asp{ - background-position: -700px center; -} -i.file-preview.file-type-apk{ - background-position: -770px center; -} -i.file-preview.file-type-exe{ - background-position: -840px center; -} -i.file-preview.file-type-ipa{ - background-position: -910px center; -} -i.file-preview.file-type-mp4, -i.file-preview.file-type-swf, -i.file-preview.file-type-mkv, -i.file-preview.file-type-avi, -i.file-preview.file-type-flv, -i.file-preview.file-type-mov, -i.file-preview.file-type-mpg, -i.file-preview.file-type-mpeg, -i.file-preview.file-type-ogv, -i.file-preview.file-type-webm, -i.file-preview.file-type-rm, -i.file-preview.file-type-rmvb{ - background-position: -980px center; -} -i.file-preview.file-type-ogg, -i.file-preview.file-type-wav, -i.file-preview.file-type-wmv, -i.file-preview.file-type-mid, -i.file-preview.file-type-mp3{ - background-position: -1050px center; -} -i.file-preview.file-type-jpg, -i.file-preview.file-type-jpeg, -i.file-preview.file-type-gif, -i.file-preview.file-type-bmp, -i.file-preview.file-type-png, -i.file-preview.file-type-psd{ - background-position: -140px center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.html b/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.html deleted file mode 100644 index 1a52bb9..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
    -
    - - -
    -
    - -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    - - -
    -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.js b/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.js deleted file mode 100644 index bb2557f..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/attachment/attachment.js +++ /dev/null @@ -1,760 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var uploadFile, - onlineFile; - - window.onload = function () { - initTabs(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - setTabFocus('upload'); - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id') - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'upload': - uploadFile = uploadFile || new UploadFile('queueList'); - break; - case 'online': - onlineFile = onlineFile || new OnlineFile('fileList'); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'upload': - list = uploadFile.getInsertList(); - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineFile.getInsertList(); - break; - } - - editor.execCommand('insertfile', list); - }; - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')), - fileMaxSize = editor.getOpt('fileMaxSize'), - acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('fileActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('fileFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.fileList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - getInsertList: function () { - var i, link, data, list = [], - prefix = editor.getOpt('fileUrlPrefix'); - for (i = 0; i < this.fileList.length; i++) { - data = this.fileList[i]; - link = data.url; - list.push({ - title: data.original || link.substr(link.lastIndexOf('/') + 1), - url: prefix + link - }); - } - return list; - } - }; - - - /* 在线附件 */ - function OnlineFile(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineFile.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - this.initData(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('fileList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getFileData(); - } - }); - /* 选中图片 */ - domUtils.on(this.list, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('fileManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getFileData(); - }, - /* 向后台拉取图片列表数据 */ - getFileData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), { - timeout: 100000, - data: utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - method: 'get', - onsuccess: function (r) { - try { - var json = eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - onerror: function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, filetype, preview, icon, _this = this, - urlPrefix = editor.getOpt('fileManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - icon = document.createElement('span'); - filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1); - - if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) { - preview = document.createElement('img'); - domUtils.on(preview, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - }; - })(preview)); - preview.width = 113; - preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - } else { - var ic = document.createElement('i'), - textSpan = document.createElement('span'); - textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1); - preview = document.createElement('div'); - preview.appendChild(ic); - preview.appendChild(textSpan); - domUtils.addClass(preview, 'file-wrapper'); - domUtils.addClass(textSpan, 'file-title'); - domUtils.addClass(ic, 'file-type-' + filetype); - domUtils.addClass(ic, 'file-preview'); - } - domUtils.addClass(icon, 'icon'); - item.setAttribute('data-url', urlPrefix + list[i].url); - if (list[i].original) { - item.setAttribute('data-title', list[i].original); - } - - item.appendChild(preview); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = []; - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var url = lis[i].getAttribute('data-url'); - var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1); - list.push({ - title: title, - url: url - }); - } - } - return list; - } - }; - - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_chm.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_chm.gif deleted file mode 100644 index 9ca4fb6..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_chm.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_default.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_default.png deleted file mode 100644 index 50ac1cb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_default.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_doc.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_doc.gif deleted file mode 100644 index 206fede..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_doc.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_exe.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_exe.gif deleted file mode 100644 index 2e3b7a2..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_exe.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_jpg.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_jpg.gif deleted file mode 100644 index 5d5dec0..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_jpg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mp3.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mp3.gif deleted file mode 100644 index b351a1f..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mp3.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mv.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mv.gif deleted file mode 100644 index 26019b0..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_mv.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_pdf.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_pdf.gif deleted file mode 100644 index bbb65c8..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_pdf.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_ppt.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_ppt.gif deleted file mode 100644 index ccb26fb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_ppt.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_psd.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_psd.gif deleted file mode 100644 index 2e8743a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_psd.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_rar.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_rar.gif deleted file mode 100644 index 5359e46..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_rar.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_txt.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_txt.gif deleted file mode 100644 index e7b8dd2..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_txt.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_xls.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_xls.gif deleted file mode 100644 index e86c1c6..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/fileTypeImages/icon_xls.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.gif deleted file mode 100644 index 005a5ac..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.png deleted file mode 100644 index 4b6c444..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/alignicon.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/bg.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.gif deleted file mode 100644 index d8c02c2..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.png deleted file mode 100644 index 3ff82c8..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/file-icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/image.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/progress.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.gif b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.png b/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/attachment/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/background/background.css b/yshop-drink-vue/public/UEditor22/dialogs/background/background.css deleted file mode 100644 index 43200aa..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/background/background.css +++ /dev/null @@ -1,94 +0,0 @@ -.wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative} -.tabbody{height:225px;} -.tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;} -.tabbody .focus { display: block;} - -body{font-size: 12px;color: #888;overflow: hidden;} -input,label{vertical-align:middle} -.clear{clear: both;} -.pl{padding-left: 18px;padding-left: 23px\9;} - -#imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;} -#imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;} -#imageList img {cursor: pointer;border: 2px solid white;} - -.bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;} -.content div{margin: 10px 0 10px 5px;} -.content .iptradio{margin: 0px 5px 5px 0px;} -.txt{width:280px;} - -.wrapcolor{height: 19px;} -div.color{float: left;margin: 0;} -#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;} -div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;} -#custom input{height: 15px;min-height: 15px;width:20px;} -#repeatType{width:100px;} - - -/* 图片管理样式 */ -#imgManager { - width: 100%; - height: 225px; -} -#imgManager #imageList{ - width: 100%; - overflow-x: hidden; - overflow-y: auto; -} -#imgManager ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#imgManager li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 9px 0 0 19px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#imgManager li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#imgManager li img { - cursor: pointer; -} -#imgManager li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#imgManager li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#imgManager li.selected .icon { - background-image: url(images/success.png); - background-position: 75px 75px; -} -#imgManager li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/background/background.html b/yshop-drink-vue/public/UEditor22/dialogs/background/background.html deleted file mode 100644 index 8def8a7..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/background/background.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - -
    -
    - - -
    -
    -
    -
    - -
    -
    - - -
    -
    -
    - : -
    -
    -
    -
    -
    - -
    -
    - : -
    -
    - :x:px  y:px -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/background/background.js b/yshop-drink-vue/public/UEditor22/dialogs/background/background.js deleted file mode 100644 index 9d63bad..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/background/background.js +++ /dev/null @@ -1,376 +0,0 @@ -(function () { - - var onlineImage, - backupStyle = editor.queryCommandValue('background'); - - window.onload = function () { - initTabs(); - initColorSelector(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - for (var j = 0; j < tabs.length; j++) { - if(tabs[j] == target){ - tabs[j].className = "focus"; - var contentId = tabs[j].getAttribute('data-content-id'); - $G(contentId).style.display = "block"; - if(contentId == 'imgManager') { - initImagePanel(); - } - }else { - tabs[j].className = ""; - $G(tabs[j].getAttribute('data-content-id')).style.display = "none"; - } - } - }); - } - } - - /* 初始化颜色设置 */ - function initColorSelector () { - var obj = editor.queryCommandValue('background'); - if (obj) { - var color = obj['background-color'], - repeat = obj['background-repeat'] || 'repeat', - image = obj['background-image'] || '', - position = obj['background-position'] || 'center center', - pos = position.split(' '), - x = parseInt(pos[0]) || 0, - y = parseInt(pos[1]) || 0; - - if(repeat == 'no-repeat' && (x || y)) repeat = 'self'; - - image = image.match(/url[\s]*\(([^\)]*)\)/); - image = image ? image[1]:''; - updateFormState('colored', color, image, repeat, x, y); - } else { - updateFormState(); - } - - var updateHandler = function () { - updateFormState(); - updateBackground(); - } - domUtils.on($G('nocolorRadio'), 'click', updateBackground); - domUtils.on($G('coloredRadio'), 'click', updateHandler); - domUtils.on($G('url'), 'keyup', function(){ - if($G('url').value && $G('alignment').style.display == "none") { - utils.each($G('repeatType').children, function(item){ - item.selected = ('repeat' == item.getAttribute('value') ? 'selected':false); - }); - } - updateHandler(); - }); - domUtils.on($G('repeatType'), 'change', updateHandler); - domUtils.on($G('x'), 'keyup', updateBackground); - domUtils.on($G('y'), 'keyup', updateBackground); - - initColorPicker(); - } - - /* 初始化颜色选择器 */ - function initColorPicker() { - var me = editor, - cp = $G("colorPicker"); - - /* 生成颜色选择器ui对象 */ - var popup = new UE.ui.Popup({ - content: new UE.ui.ColorPicker({ - noColorText: me.getLang("clearColor"), - editor: me, - onpickcolor: function (t, color) { - updateFormState('colored', color); - updateBackground(); - UE.ui.Popup.postHide(); - }, - onpicknocolor: function (t, color) { - updateFormState('colored', 'transparent'); - updateBackground(); - UE.ui.Popup.postHide(); - } - }), - editor: me, - onhide: function () { - } - }); - - /* 设置颜色选择器 */ - domUtils.on(cp, "click", function () { - popup.showAnchor(this); - }); - domUtils.on(document, 'mousedown', function (evt) { - var el = evt.target || evt.srcElement; - UE.ui.Popup.postHide(el); - }); - domUtils.on(window, 'scroll', function () { - UE.ui.Popup.postHide(); - }); - } - - /* 初始化在线图片列表 */ - function initImagePanel() { - onlineImage = onlineImage || new OnlineImage('imageList'); - } - - /* 更新背景色设置面板 */ - function updateFormState (radio, color, url, align, x, y) { - var nocolorRadio = $G('nocolorRadio'), - coloredRadio = $G('coloredRadio'); - - if(radio) { - nocolorRadio.checked = (radio == 'colored' ? false:'checked'); - coloredRadio.checked = (radio == 'colored' ? 'checked':false); - } - if(color) { - domUtils.setStyle($G("colorPicker"), "background-color", color); - } - - if(url && /^\//.test(url)) { - var a = document.createElement('a'); - a.href = url; - browser.ie && (a.href = a.href); - url = browser.ie ? a.href:(a.protocol + '//' + a.host + a.pathname + a.search + a.hash); - } - - if(url || url === '') { - $G('url').value = url; - } - if(align) { - utils.each($G('repeatType').children, function(item){ - item.selected = (align == item.getAttribute('value') ? 'selected':false); - }); - } - if(x || y) { - $G('x').value = parseInt(x) || 0; - $G('y').value = parseInt(y) || 0; - } - - $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '':'none'; - $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '':'none'; - } - - /* 更新背景颜色 */ - function updateBackground () { - if ($G('coloredRadio').checked) { - var color = domUtils.getStyle($G("colorPicker"), "background-color"), - bgimg = $G("url").value, - align = $G("repeatType").value, - backgroundObj = { - "background-repeat": "no-repeat", - "background-position": "center center" - }; - - if (color) backgroundObj["background-color"] = color; - if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')'; - if (align == 'self') { - backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px"; - } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') { - backgroundObj["background-repeat"] = align; - } - - editor.execCommand('background', backgroundObj); - } else { - editor.execCommand('background', null); - } - } - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.id = 'imageListUl'; - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode, - nodes = $G('imageListUl').childNodes; - - if (li.tagName.toLowerCase() == 'li') { - updateFormState('nocolor', null, ''); - for (var i = 0, node; node = nodes[i++];) { - if (node == li && !domUtils.hasClass(node, 'selected')) { - domUtils.addClass(node, 'selected'); - updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat'); - } else { - domUtils.removeClasses(node, 'selected'); - } - } - updateBackground(); - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - floatStyle: align - }); - } - - } - return list; - } - }; - - dialog.onok = function () { - updateBackground(); - editor.fireEvent('saveScene'); - }; - dialog.oncancel = function () { - editor.execCommand('background', backupStyle); - }; - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/background/images/bg.png b/yshop-drink-vue/public/UEditor22/dialogs/background/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/background/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/background/images/success.png b/yshop-drink-vue/public/UEditor22/dialogs/background/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/background/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/chart.config.js b/yshop-drink-vue/public/UEditor22/dialogs/charts/chart.config.js deleted file mode 100644 index 678b00d..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/charts/chart.config.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 图表配置文件 - * */ - - -//不同类型的配置 -var typeConfig = [ - { - chart: { - type: 'line' - }, - plotOptions: { - line: { - dataLabels: { - enabled: false - }, - enableMouseTracking: true - } - } - }, { - chart: { - type: 'line' - }, - plotOptions: { - line: { - dataLabels: { - enabled: true - }, - enableMouseTracking: false - } - } - }, { - chart: { - type: 'area' - } - }, { - chart: { - type: 'bar' - } - }, { - chart: { - type: 'column' - } - }, { - chart: { - plotBackgroundColor: null, - plotBorderWidth: null, - plotShadow: false - }, - plotOptions: { - pie: { - allowPointSelect: true, - cursor: 'pointer', - dataLabels: { - enabled: true, - color: '#000000', - connectorColor: '#000000', - formatter: function() { - return ''+ this.point.name +': '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %'; - } - } - } - } - } -]; diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.css b/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.css deleted file mode 100644 index ac3c764..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.css +++ /dev/null @@ -1,165 +0,0 @@ -html, body { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow-x: hidden; -} - -.main { - width: 100%; - overflow: hidden; -} - -.table-view { - height: 100%; - float: left; - margin: 20px; - width: 40%; -} - -.table-view .table-container { - width: 100%; - margin-bottom: 50px; - overflow: scroll; -} - -.table-view th { - padding: 5px 10px; - background-color: #F7F7F7; -} - -.table-view td { - width: 50px; - text-align: center; - padding:0; -} - -.table-container input { - width: 40px; - padding: 5px; - border: none; - outline: none; -} - -.table-view caption { - font-size: 18px; - text-align: left; -} - -.charts-view { - /*margin-left: 49%!important;*/ - width: 50%; - margin-left: 49%; - height: 400px; -} - -.charts-container { - border-left: 1px solid #c3c3c3; -} - -.charts-format fieldset { - padding-left: 20px; - margin-bottom: 50px; -} - -.charts-format legend { - padding-left: 10px; - padding-right: 10px; -} - -.format-item-container { - padding: 20px; -} - -.format-item-container label { - display: block; - margin: 10px 0; -} - -.charts-format .data-item { - border: 1px solid black; - outline: none; - padding: 2px 3px; -} - -/* 图表类型 */ - -.charts-type { - margin-top: 50px; - height: 300px; -} - -.scroll-view { - border: 1px solid #c3c3c3; - border-left: none; - border-right: none; - overflow: hidden; -} - -.scroll-container { - margin: 20px; - width: 100%; - overflow: hidden; -} - -.scroll-bed { - width: 10000px; - _margin-top: 20px; - -webkit-transition: margin-left .5s ease; - -moz-transition: margin-left .5s ease; - transition: margin-left .5s ease; -} - -.view-box { - display: inline-block; - *display: inline; - *zoom: 1; - margin-right: 20px; - border: 2px solid white; - line-height: 0; - overflow: hidden; - cursor: pointer; -} - -.view-box img { - border: 1px solid #cecece; -} - -.view-box.selected { - border-color: #7274A7; -} - -.button-container { - margin-bottom: 20px; - text-align: center; -} - -.button-container a { - display: inline-block; - width: 100px; - height: 25px; - line-height: 25px; - border: 1px solid #c2ccd1; - margin-right: 30px; - text-decoration: none; - color: black; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} - -.button-container a:HOVER { - background: #fcfcfc; -} - -.button-container a:ACTIVE { - border-top-color: #c2ccd1; - box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1); -} - -.edui-charts-not-data { - height: 100px; - line-height: 100px; - text-align: center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.html b/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.html deleted file mode 100644 index 735274f..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - chart - - - - - -
    -
    -

    -
    -

    -
    -
    -
    - -
    - - -
    -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    - -

    -
    -
    -
    - -
    - -

    -
    -
    -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.js b/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.js deleted file mode 100644 index 37344fd..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/charts/charts.js +++ /dev/null @@ -1,519 +0,0 @@ -/* - * 图片转换对话框脚本 - **/ - -var tableData = [], - //编辑器页面table - editorTable = null, - chartsConfig = window.typeConfig, - resizeTimer = null, - //初始默认图表类型 - currentChartType = 0; - -window.onload = function () { - - editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true); - - //未找到表格, 显示错误页面 - if ( !editorTable ) { - document.body.innerHTML = "
    未找到数据
    "; - return; - } - - //初始化图表类型选择 - initChartsTypeView(); - renderTable( editorTable ); - initEvent(); - initUserConfig( editorTable.getAttribute( "data-chart" ) ); - $( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" ); - updateViewType( currentChartType ); - - dialog.addListener( "resize", function () { - - if ( resizeTimer != null ) { - window.clearTimeout( resizeTimer ); - } - - resizeTimer = window.setTimeout( function () { - - resizeTimer = null; - - renderCharts(); - - }, 500 ); - - } ); - -}; - -function initChartsTypeView () { - - var contents = []; - - for ( var i = 0, len = chartsConfig.length; i
    ' ); - - } - - $( "#scrollBed" ).html( contents.join( "" ) ); - -} - -//渲染table, 以便用户修改数据 -function renderTable ( table ) { - - var tableHtml = []; - - //构造数据 - for ( var i = 0, row; row = table.rows[ i ]; i++ ) { - - tableData[ i ] = []; - tableHtml[ i ] = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = getCellValue( cell ); - - if ( i > 0 && j > 0 ) { - value = +value; - } - - if ( i === 0 || j === 0 ) { - tableHtml[ i ].push( ''+ value +'' ); - } else { - tableHtml[ i ].push( '' ); - } - - tableData[ i ][ j ] = value; - - } - - tableHtml[ i ] = tableHtml[ i ].join( "" ); - - } - - //draw 表格 - $( "#tableContainer" ).html( ''+ tableHtml.join( "" ) +'
    ' ); - -} - -/* - * 根据表格已有的图表属性初始化当前图表属性 - */ -function initUserConfig ( config ) { - - var parsedConfig = {}; - - if ( !config ) { - return; - } - - config = config.split( ";" ); - - $.each( config, function ( index, item ) { - - item = item.split( ":" ); - parsedConfig[ item[ 0 ] ] = item[ 1 ]; - - } ); - - setUserConfig( parsedConfig ); - -} - -function initEvent () { - - var cacheValue = null, - //图表类型数 - typeViewCount = chartsConfig.length- 1, - $chartsTypeViewBox = $( '#scrollBed .view-box' ); - - $( ".charts-format" ).delegate( ".format-ctrl", "change", function () { - - renderCharts(); - - } ) - - $( ".table-view" ).delegate( ".data-item", "focus", function () { - - cacheValue = this.value; - - } ).delegate( ".data-item", "blur", function () { - - if ( this.value !== cacheValue ) { - renderCharts(); - } - - cacheValue = null; - - } ); - - $( "#buttonContainer" ).delegate( "a", "click", function (e) { - - e.preventDefault(); - - if ( this.getAttribute( "data-title" ) === 'prev' ) { - - if ( currentChartType > 0 ) { - currentChartType--; - updateViewType( currentChartType ); - } - - } else { - - if ( currentChartType < typeViewCount ) { - currentChartType++; - updateViewType( currentChartType ); - } - - } - - } ); - - //图表类型变化 - $( '#scrollBed' ).delegate( ".view-box", "click", function (e) { - - var index = $( this ).attr( "data-chart-type" ); - $chartsTypeViewBox.removeClass( "selected" ); - $( $chartsTypeViewBox[ index ] ).addClass( "selected" ); - - currentChartType = index | 0; - - //饼图, 禁用部分配置 - if ( currentChartType === chartsConfig.length - 1 ) { - - disableNotPieConfig(); - - //启用完整配置 - } else { - - enableNotPieConfig(); - - } - - renderCharts(); - - } ); - -} - -function renderCharts () { - - var data = collectData(); - - $('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: data.title, - x: -20 //center - }, - subtitle: { - text: data.subTitle, - x: -20 - }, - xAxis: { - title: { - text: data.xTitle - }, - categories: data.categories - }, - yAxis: { - title: { - text: data.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: data.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: data.series - - } )); - -} - -function updateViewType ( index ) { - - $( "#scrollBed" ).css( 'marginLeft', -index*324+'px' ); - -} - -function collectData () { - - var form = document.forms[ 'data-form' ], - data = null; - - if ( currentChartType !== chartsConfig.length - 1 ) { - - data = getSeriesAndCategories(); - $.extend( data, getUserConfig() ); - - //饼图数据格式 - } else { - data = getSeriesForPieChart(); - data.title = form[ 'title' ].value; - data.suffix = form[ 'unit' ].value; - } - - return data; - -} - -/** - * 获取用户配置信息 - */ -function getUserConfig () { - - var form = document.forms[ 'data-form' ], - info = { - title: form[ 'title' ].value, - subTitle: form[ 'sub-title' ].value, - xTitle: form[ 'x-title' ].value, - yTitle: form[ 'y-title' ].value, - suffix: form[ 'unit' ].value, - //数据对齐方式 - tableDataFormat: getTableDataFormat (), - //饼图提示文字 - tip: $( "#tipInput" ).val() - }; - - return info; - -} - -function setUserConfig ( config ) { - - var form = document.forms[ 'data-form' ]; - - config.title && ( form[ 'title' ].value = config.title ); - config.subTitle && ( form[ 'sub-title' ].value = config.subTitle ); - config.xTitle && ( form[ 'x-title' ].value = config.xTitle ); - config.yTitle && ( form[ 'y-title' ].value = config.yTitle ); - config.suffix && ( form[ 'unit' ].value = config.suffix ); - config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true ); - config.tip && ( form[ 'tip' ].value = config.tip ); - currentChartType = config.chartType || 0; - -} - -function getSeriesAndCategories () { - - var form = document.forms[ 'data-form' ], - series = [], - categories = [], - tmp = [], - tableData = getTableData(); - - //反转数据 - if ( getTableDataFormat() === "-1" ) { - - for ( var i = 0, len = tableData.length; i < len; i++ ) { - - for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) { - - if ( !tmp[ j ] ) { - tmp[ j ] = []; - } - - tmp[ j ][ i ] = tableData[ i ][ j ]; - - } - - } - - tableData = tmp; - - } - - categories = tableData[0].slice( 1 ); - - for ( var i = 1, data; data = tableData[ i ]; i++ ) { - - series.push( { - name: data[ 0 ], - data: data.slice( 1 ) - } ); - - } - - return { - series: series, - categories: categories - }; - -} - -/* - * 获取数据源数据对齐方式 - */ -function getTableDataFormat () { - - var form = document.forms[ 'data-form' ], - items = form['charts-format']; - - return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value; - -} - -/* - * 禁用非饼图类型的配置项 - */ -function disableNotPieConfig() { - - updateConfigItem( 'disable' ); - -} - -/* - * 启用非饼图类型的配置项 - */ -function enableNotPieConfig() { - - updateConfigItem( 'enable' ); - -} - -function updateConfigItem ( value ) { - - var table = $( "#showTable" )[ 0 ], - isDisable = value === 'disable' ? true : false; - - //table中的input处理 - for ( var i = 2 , row; row = table.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - $( "input", cell ).attr( "disabled", isDisable ); - - } - - } - - //其他项处理 - $( "input.not-pie-item" ).attr( "disabled", isDisable ); - $( "#tipInput" ).attr( "disabled", !isDisable ) - -} - -/* - * 获取饼图数据 - * 饼图的数据只取第一行的 - **/ -function getSeriesForPieChart () { - - var series = { - type: 'pie', - name: $("#tipInput").val(), - data: [] - }, - tableData = getTableData(); - - - for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) { - - var title = tableData[ 0 ][ j ], - val = tableData[ 1 ][ j ]; - - series.data.push( [ title, val ] ); - - } - - return { - series: [ series ] - }; - -} - -function getTableData () { - - var table = document.getElementById( "showTable" ), - xCount = table.rows[0].cells.length - 1, - values = getTableInputValue(); - - for ( var i = 0, value; value = values[ i ]; i++ ) { - - tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ]; - - } - - return tableData; - -} - -function getTableInputValue () { - - var table = document.getElementById( "showTable" ), - inputs = table.getElementsByTagName( "input" ), - values = []; - - for ( var i = 0, input; input = inputs[ i ]; i++ ) { - values.push( input.value | 0 ); - } - - return values; - -} - -function getCellValue ( cell ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - -} - - -//dialog确认事件 -dialog.onok = function () { - - //收集信息 - var form = document.forms[ 'data-form' ], - info = getUserConfig(); - - //添加图表类型 - info.chartType = currentChartType; - - //同步表格数据到编辑器 - syncTableData(); - - //执行图表命令 - editor.execCommand( 'charts', info ); - -}; - -/* - * 同步图表编辑视图的表格数据到编辑器里的原始表格 - */ -function syncTableData () { - - var tableData = getTableData(); - - for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) { - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - cell.innerHTML = tableData[ i ] [ j ]; - - } - - } - -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts0.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts0.png deleted file mode 100644 index 9485e5e..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts0.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts1.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts1.png deleted file mode 100644 index b5a0039..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts1.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts2.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts2.png deleted file mode 100644 index 7c91a39..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts2.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts3.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts3.png deleted file mode 100644 index a6bc29b..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts3.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts4.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts4.png deleted file mode 100644 index 742006a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts4.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts5.png b/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts5.png deleted file mode 100644 index c49a296..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/charts/images/charts5.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.css b/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.css deleted file mode 100644 index e0a56dd..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.css +++ /dev/null @@ -1,43 +0,0 @@ -.jd img{ - background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.pp img{ - background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:25px;height:25px;display:block; -} -.ldw img{ - background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.tsj img{ - background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.cat img{ - background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.bb img{ - background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} -.youa img{ - background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top; - cursor:pointer;width:35px;height:35px;display:block; -} - -.smileytable td {height: 37px;} -#tabPanel{margin-left:5px;overflow: hidden;} -#tabContent {float:left;background:#FFFFFF;} -#tabContent div{display: none;width:480px;overflow:hidden;} -#tabIconReview.show{left:17px;display:block;} -.menuFocus{background:#ACCD3C;} -.menuDefault{background:#FFFFFF;} -#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;} -img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;} - -.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;} -.tabbody table{width: 100%;} -.tabbody td{border:1px solid #BAC498;} -.tabbody td span{display: block;zoom:1;padding:0 4px;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.html b/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.html deleted file mode 100644 index 363d64c..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - -
    -
    - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.js b/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.js deleted file mode 100644 index aa01380..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/emotion/emotion.js +++ /dev/null @@ -1,186 +0,0 @@ -window.onload = function () { - editor.setOpt({ - emotionLocalization:false - }); - - emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; - emotion.SmileyBox = createTabList( emotion.tabNum ); - emotion.tabExist = createArr( emotion.tabNum ); - - initImgName(); - initEvtHandler( "tabHeads" ); -}; - -function initImgName() { - for ( var pro in emotion.SmilmgName ) { - var tempName = emotion.SmilmgName[pro], - tempBox = emotion.SmileyBox[pro], - tempStr = ""; - - if ( tempBox.length ) return; - for ( var i = 1; i <= tempName[1]; i++ ) { - tempStr = tempName[0]; - if ( i < 10 ) tempStr = tempStr + '0'; - tempStr = tempStr + i + '.gif'; - tempBox.push( tempStr ); - } - } -} - -function initEvtHandler( conId ) { - var tabHeads = $G( conId ); - for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) { - var tabObj = tabHeads.childNodes[i]; - if ( tabObj.nodeType == 1 ) { - domUtils.on( tabObj, "click", (function ( index ) { - return function () { - switchTab( index ); - }; - })( j ) ); - j++; - } - } - switchTab( 0 ); - $G( "tabIconReview" ).style.display = 'none'; -} - -function InsertSmiley( url, evt ) { - var obj = { - src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url - }; - obj._src = obj.src; - editor.execCommand( 'insertimage', obj ); - if ( !evt.ctrlKey ) { - dialog.popup.hide(); - } -} - -function switchTab( index ) { - - autoHeight( index ); - if ( emotion.tabExist[index] == 0 ) { - emotion.tabExist[index] = 1; - createTab( 'tab' + index ); - } - //获取呈现元素句柄数组 - var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ), - tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ), - i = 0, L = tabHeads.length; - //隐藏所有呈现元素 - for ( ; i < L; i++ ) { - tabHeads[i].className = ""; - tabBodys[i].style.display = "none"; - } - //显示对应呈现元素 - tabHeads[index].className = "focus"; - tabBodys[index].style.display = "block"; -} - -function autoHeight( index ) { - var iframe = dialog.getDom( "iframe" ), - parent = iframe.parentNode.parentNode; - switch ( index ) { - case 0: - iframe.style.height = "380px"; - parent.style.height = "392px"; - break; - case 1: - iframe.style.height = "220px"; - parent.style.height = "232px"; - break; - case 2: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 3: - iframe.style.height = "300px"; - parent.style.height = "312px"; - break; - case 4: - iframe.style.height = "140px"; - parent.style.height = "152px"; - break; - case 5: - iframe.style.height = "260px"; - parent.style.height = "272px"; - break; - case 6: - iframe.style.height = "230px"; - parent.style.height = "242px"; - break; - default: - - } -} - - -function createTab( tabName ) { - var faceVersion = "?v=1.1", //版本号 - tab = $G( tabName ), //获取将要生成的Div句柄 - imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 - positionLine = 11 / 2, //中间数 - iWidth = iHeight = 35, //图片长宽 - iColWidth = 3, //表格剩余空间的显示比例 - tableCss = emotion.imageCss[tabName], - cssOffset = emotion.imageCssOffset[tabName], - textHTML = [''], - i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage, - sUrl, realUrl, posflag, offset, infor; - - for ( ; i < imgNum; ) { - textHTML.push( '' ); - for ( var j = 0; j < imgColNum; j++, i++ ) { - faceImage = emotion.SmileyBox[tabName][i]; - if ( faceImage ) { - sUrl = imagePath + faceImage + faceVersion; - realUrl = imagePath + faceImage; - posflag = j < positionLine ? 0 : 1; - offset = cssOffset * i * (-1) - 1; - infor = emotion.SmileyInfor[tabName][i]; - - textHTML.push( '' ); - } - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML.push( '' ); - textHTML.push( '' ); - textHTML.push( '' ); - } else { - textHTML.push( '' ); - } - textHTML.push( '
    ' ); - textHTML = textHTML.join( "" ); - tab.innerHTML = textHTML; -} - -function over( td, srcPath, posFlag ) { - td.style.backgroundColor = "#ACCD3C"; - $G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")"; - if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show"; - $G( "tabIconReview" ).style.display = 'block'; -} - -function out( td ) { - td.style.backgroundColor = "transparent"; - var tabIconRevew = $G( "tabIconReview" ); - tabIconRevew.className = ""; - tabIconRevew.style.display = 'none'; -} - -function createTabList( tabNum ) { - var obj = {}; - for ( var i = 0; i < tabNum; i++ ) { - obj["tab" + i] = []; - } - return obj; -} - -function createArr( tabNum ) { - var arr = []; - for ( var i = 0; i < tabNum; i++ ) { - arr[i] = 0; - } - return arr; -} - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/0.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/0.gif deleted file mode 100644 index 6964168..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/0.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/bface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/bface.gif deleted file mode 100644 index 14fe618..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/bface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/cface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/cface.gif deleted file mode 100644 index bff947f..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/cface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/fface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/fface.gif deleted file mode 100644 index 0d8a6af..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/fface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/jxface2.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/jxface2.gif deleted file mode 100644 index a959c90..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/jxface2.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/neweditor-tab-bg.png b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/neweditor-tab-bg.png deleted file mode 100644 index 8f398b0..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/neweditor-tab-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/tface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/tface.gif deleted file mode 100644 index 1354f54..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/tface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/wface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/wface.gif deleted file mode 100644 index 5667160..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/wface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/yface.gif b/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/yface.gif deleted file mode 100644 index 51608be..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/emotion/images/yface.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/gmap/gmap.html b/yshop-drink-vue/public/UEditor22/dialogs/gmap/gmap.html deleted file mode 100644 index 4319a6f..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/gmap/gmap.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - -
    - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/help/help.css b/yshop-drink-vue/public/UEditor22/dialogs/help/help.css deleted file mode 100644 index 39ade49..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/help/help.css +++ /dev/null @@ -1,7 +0,0 @@ -.wrapper{width: 370px;margin: 10px auto;zoom: 1;} -.tabbody{height: 360px;} -.tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} -.tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} -.tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} -.tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} -.tabbody table thead{font-weight: bold;line-height: 25px;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/help/help.html b/yshop-drink-vue/public/UEditor22/dialogs/help/help.html deleted file mode 100644 index 0d6f9ef..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/help/help.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - 帮助 - - - - - -
    -
    - - -
    -
    -
    -

    UEditor

    -

    -

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ctrl+b
    ctrl+c
    ctrl+x
    ctrl+v
    ctrl+y
    ctrl+z
    ctrl+i
    ctrl+u
    ctrl+a
    shift+enter
    alt+z
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/help/help.js b/yshop-drink-vue/public/UEditor22/dialogs/help/help.js deleted file mode 100644 index 4ad9e76..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/help/help.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:06 - * To change this template use File | Settings | File Templates. - */ -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - body.onclick = function(){ - this.style.zoom = 1; - }; - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -switchTab("helptab"); - -document.getElementById('version').innerHTML = parent.UE.version; \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/image.css b/yshop-drink-vue/public/UEditor22/dialogs/image/image.css deleted file mode 100644 index 33310ac..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/image/image.css +++ /dev/null @@ -1,894 +0,0 @@ -@charset "utf-8"; -/* dialog样式 */ -.wrapper { - zoom: 1; - width: 630px; - *width: 626px; - height: 380px; - margin: 0 auto; - padding: 10px; - position: relative; - font-family: sans-serif; -} - -/*tab样式框大小*/ -.tabhead { - float:left; -} -.tabbody { - width: 100%; - height: 346px; - position: relative; - clear: both; -} - -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} - -.tabbody .panel.focus { - width: 100%; - height: 346px; - display: block; -} - -/* 图片对齐方式 */ -.alignBar{ - float:right; - margin-top: 5px; - position: relative; -} - -.alignBar .algnLabel{ - float:left; - height: 20px; - line-height: 20px; -} - -.alignBar #alignIcon{ - zoom:1; - _display: inline; - display: inline-block; - position: relative; -} -.alignBar #alignIcon span{ - float: left; - cursor: pointer; - display: block; - width: 19px; - height: 17px; - margin-right: 3px; - margin-left: 3px; - background-image: url(./images/alignicon.jpg); -} -.alignBar #alignIcon .none-align{ - background-position: 0 -18px; -} -.alignBar #alignIcon .left-align{ - background-position: -20px -18px; -} -.alignBar #alignIcon .right-align{ - background-position: -40px -18px; -} -.alignBar #alignIcon .center-align{ - background-position: -60px -18px; -} -.alignBar #alignIcon .none-align.focus{ - background-position: 0 0; -} -.alignBar #alignIcon .left-align.focus{ - background-position: -20px 0; -} -.alignBar #alignIcon .right-align.focus{ - background-position: -40px 0; -} -.alignBar #alignIcon .center-align.focus{ - background-position: -60px 0; -} - - - - -/* 远程图片样式 */ -#remote { - z-index: 200; -} - -#remote .top{ - width: 100%; - margin-top: 25px; -} -#remote .left{ - display: block; - float: left; - width: 300px; - height:10px; -} -#remote .right{ - display: block; - float: right; - width: 300px; - height:10px; -} -#remote .row{ - margin-left: 20px; - clear: both; - height: 40px; -} - -#remote .row label{ - text-align: center; - width: 50px; - zoom:1; - _display: inline; - display:inline-block; - vertical-align: middle; -} -#remote .row label.algnLabel{ - float: left; - -} - -#remote input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#remote input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#remote #url{ - width: 500px; - margin-bottom: 2px; -} -#remote #width, -#remote #height{ - width: 20px; - margin-left: 2px; - margin-right: 2px; -} -#remote #border, -#remote #vhSpace, -#remote #title{ - width: 180px; - margin-right: 5px; -} -#remote #lock{ -} -#remote #lockicon{ - zoom: 1; - _display:inline; - display: inline-block; - width: 20px; - height: 20px; - background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat; - vertical-align: middle; -} -#remote #preview{ - clear: both; - width: 260px; - height: 240px; - z-index: 9999; - margin-top: 10px; - background-color: #eee; - overflow: hidden; -} - -/* 上传图片 */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} - -.tabbody #upload.panel.focus { - width: 100%; - height: 346px; - display: block; - clip: auto; -} - -#upload .queueList { - margin: 0; - width: 100%; - height: 100%; - position: absolute; - overflow: hidden; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 172px; - padding-top: 150px; - text-align: center; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *top: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 300px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; - position: relative; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 9px 0 0 9px; - *margin: 6px 0 0 6px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background: url(./images/success.gif) no-repeat right bottom \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - - -/* 图片管理样式 */ -#online { - width: 100%; - height: 336px; - padding: 10px 0 0 0; -} -#online #imageList{ - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; -} -#online ul { - display: block; - list-style: none; - margin: 0; - padding: 0; -} -#online li { - float: left; - display: block; - list-style: none; - padding: 0; - width: 113px; - height: 113px; - margin: 0 0 9px 9px; - *margin: 0 0 6px 6px; - background-color: #eee; - overflow: hidden; - cursor: pointer; - position: relative; -} -#online li.clearFloat { - float: none; - clear: both; - display: block; - width:0; - height:0; - margin: 0; - padding: 0; -} -#online li img { - cursor: pointer; -} -#online li .icon { - cursor: pointer; - width: 113px; - height: 113px; - position: absolute; - top: 0; - left: 0; - z-index: 2; - border: 0; - background-repeat: no-repeat; -} -#online li .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; -} -#online li.selected .icon { - background-image: url(images/success.png); - background-image: url(images/success.gif)\9; - background-position: 75px 75px; -} -#online li.selected .icon:hover { - width: 107px; - height: 107px; - border: 3px solid #1094fa; - background-position: 72px 72px; -} - - -/* 图片搜索样式 */ -#search .searchBar { - width: 100%; - height: 30px; - margin: 10px 0 5px 0; - padding: 0; -} - -#search input.text{ - width: 150px; - padding: 3px 6px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -#search input.text:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); -} -#search input.searchTxt { - margin-left:5px; - padding-left: 5px; - background: #FFF; - width: 300px; - *width: 260px; - height: 21px; - line-height: 21px; - float: left; - dislay: block; -} - -#search .searchType { - width: 65px; - height: 28px; - padding:0; - line-height: 28px; - border: 1px solid #d7d7d7; - border-radius: 0; - vertical-align: top; - margin-left: 5px; - float: left; - dislay: block; -} - -#search #searchBtn, -#search #searchReset { - display: inline-block; - margin-bottom: 0; - margin-right: 5px; - padding: 4px 10px; - font-weight: 400; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - font-size: 14px; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: top; - float: right; -} - -#search #searchBtn { - color: white; - border-color: #285e8e; - background-color: #3b97d7; -} -#search #searchReset { - color: #333; - border-color: #ccc; - background-color: #fff; -} -#search #searchBtn:hover { - background-color: #3276b1; -} -#search #searchReset:hover { - background-color: #eee; -} - -#search .msg { - margin-left: 5px; -} - -#search .searchList{ - width: 100%; - height: 300px; - overflow: hidden; - clear: both; -} -#search .searchList ul{ - margin:0; - padding:0; - list-style:none; - clear: both; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - zoom: 1; - position: relative; -} - -#search .searchList li { - list-style:none; - float: left; - display: block; - width: 115px; - margin: 5px 10px 5px 20px; - *margin: 5px 10px 5px 15px; - padding:0; - font-size: 12px; - box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); - position: relative; - vertical-align: top; - text-align: center; - overflow: hidden; - cursor: pointer; - filter: alpha(Opacity=100); - -moz-opacity: 1; - opacity: 1; - border: 2px solid #eee; -} - -#search .searchList li.selected { - filter: alpha(Opacity=40); - -moz-opacity: 0.4; - opacity: 0.4; - border: 2px solid #00a0e9; -} - -#search .searchList li p { - background-color: #eee; - margin: 0; - padding: 0; - position: relative; - width:100%; - height:115px; - overflow: hidden; -} - -#search .searchList li p img { - cursor: pointer; - border: 0; -} - -#search .searchList li a { - color: #999; - border-top: 1px solid #F2F2F2; - background: #FAFAFA; - text-align: center; - display: block; - padding: 0 5px; - width: 105px; - height:32px; - line-height:32px; - white-space:nowrap; - text-overflow:ellipsis; - text-decoration: none; - overflow: hidden; - word-break: break-all; -} - -#search .searchList a:hover { - text-decoration: underline; - color: #333; -} -#search .searchList .clearFloat{ - clear: both; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/image.html b/yshop-drink-vue/public/UEditor22/dialogs/image/image.html deleted file mode 100644 index 81f45ad..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/image/image.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - ueditor图片对话框 - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    - -   px -   px - -
    -
    - - px -
    -
    - - px -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    - - -
    -
    -
    - - - - -
    -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/image.js b/yshop-drink-vue/public/UEditor22/dialogs/image/image.js deleted file mode 100644 index b078d6a..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/image/image.js +++ /dev/null @@ -1,1148 +0,0 @@ -/** - * User: Jinqn - * Date: 14-04-08 - * Time: 下午16:34 - * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 - */ - -(function () { - - var remoteImage, - uploadImage, - onlineImage, - searchImage; - - window.onload = function () { - initTabs(); - initAlign(); - initButtons(); - }; - - /* 初始化tab标签 */ - function initTabs() { - var tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var target = e.target || e.srcElement; - setTabFocus(target.getAttribute('data-content-id')); - }); - } - - var img = editor.selection.getRange().getClosedNode(); - if (img && img.tagName && img.tagName.toLowerCase() == 'img') { - setTabFocus('remote'); - } else { - setTabFocus('upload'); - } - } - - /* 初始化tabbody */ - function setTabFocus(id) { - if(!id) return; - var i, bodyId, tabs = $G('tabhead').children; - for (i = 0; i < tabs.length; i++) { - bodyId = tabs[i].getAttribute('data-content-id'); - if (bodyId == id) { - domUtils.addClass(tabs[i], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - } else { - domUtils.removeClasses(tabs[i], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - switch (id) { - case 'remote': - remoteImage = remoteImage || new RemoteImage(); - break; - case 'upload': - setAlign(editor.getOpt('imageInsertAlign')); - uploadImage = uploadImage || new UploadImage('queueList'); - break; - case 'online': - setAlign(editor.getOpt('imageManagerInsertAlign')); - onlineImage = onlineImage || new OnlineImage('imageList'); - onlineImage.reset(); - break; - case 'search': - setAlign(editor.getOpt('imageManagerInsertAlign')); - searchImage = searchImage || new SearchImage(); - break; - } - } - - /* 初始化onok事件 */ - function initButtons() { - - dialog.onok = function () { - var remote = false, list = [], id, tabs = $G('tabhead').children; - for (var i = 0; i < tabs.length; i++) { - if (domUtils.hasClass(tabs[i], 'focus')) { - id = tabs[i].getAttribute('data-content-id'); - break; - } - } - - switch (id) { - case 'remote': - list = remoteImage.getInsertList(); - break; - case 'upload': - list = uploadImage.getInsertList(); - var count = uploadImage.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } - break; - case 'online': - list = onlineImage.getInsertList(); - break; - case 'search': - list = searchImage.getInsertList(); - remote = true; - break; - } - - if(list) { - editor.execCommand('insertimage', list); - remote && editor.fireEvent("catchRemoteImage"); - } - }; - } - - - /* 初始化对其方式的点击事件 */ - function initAlign(){ - /* 点击align图标 */ - domUtils.on($G("alignIcon"), 'click', function(e){ - var target = e.target || e.srcElement; - if(target.className && target.className.indexOf('-align') != -1) { - setAlign(target.getAttribute('data-align')); - } - }); - } - - /* 设置对齐方式 */ - function setAlign(align){ - align = align || 'none'; - var aligns = $G("alignIcon").children; - for(i = 0; i < aligns.length; i++){ - if(aligns[i].getAttribute('data-align') == align) { - domUtils.addClass(aligns[i], 'focus'); - $G("align").value = aligns[i].getAttribute('data-align'); - } else { - domUtils.removeClasses(aligns[i], 'focus'); - } - } - } - /* 获取对齐方式 */ - function getAlign(){ - var align = $G("align").value || 'none'; - return align == 'none' ? '':align; - } - - - /* 在线图片 */ - function RemoteImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - RemoteImage.prototype = { - init: function () { - this.initContainer(); - this.initEvents(); - }, - initContainer: function () { - this.dom = { - 'url': $G('url'), - 'width': $G('width'), - 'height': $G('height'), - 'border': $G('border'), - 'vhSpace': $G('vhSpace'), - 'title': $G('title'), - 'align': $G('align') - }; - var img = editor.selection.getRange().getClosedNode(); - if (img) { - this.setImage(img); - } - }, - initEvents: function () { - var _this = this, - locker = $G('lock'); - - /* 改变url */ - domUtils.on($G("url"), 'keyup', updatePreview); - domUtils.on($G("border"), 'keyup', updatePreview); - domUtils.on($G("title"), 'keyup', updatePreview); - - domUtils.on($G("width"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('height').value = Math.round(this.value / proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("height"), 'keyup', function(){ - updatePreview(); - if(locker.checked) { - var proportion =locker.getAttribute('data-proportion'); - $G('width').value = Math.round(this.value * proportion); - } else { - _this.updateLocker(); - } - }); - domUtils.on($G("lock"), 'change', function(){ - var proportion = parseInt($G("width").value) /parseInt($G("height").value); - locker.setAttribute('data-proportion', proportion); - }); - - function updatePreview(){ - _this.setPreview(); - } - }, - updateLocker: function(){ - var width = $G('width').value, - height = $G('height').value, - locker = $G('lock'); - if(width && height && width == parseInt(width) && height == parseInt(height)) { - locker.disabled = false; - locker.title = ''; - } else { - locker.checked = false; - locker.disabled = 'disabled'; - locker.title = lang.remoteLockError; - } - }, - setImage: function(img){ - /* 不是正常的图片 */ - if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; - - var wordImgFlag = img.getAttribute("word_img"), - src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), - align = editor.queryCommandValue("imageFloat"); - - /* 防止onchange事件循环调用 */ - if (src !== $G("url").value) $G("url").value = src; - if(src) { - /* 设置表单内容 */ - $G("width").value = img.width || ''; - $G("height").value = img.height || ''; - $G("border").value = img.getAttribute("border") || '0'; - $G("vhSpace").value = img.getAttribute("vspace") || '0'; - $G("title").value = img.title || img.alt || ''; - setAlign(align); - this.setPreview(); - this.updateLocker(); - } - }, - getData: function(){ - var data = {}; - for(var k in this.dom){ - data[k] = this.dom[k].value; - } - return data; - }, - setPreview: function(){ - var url = $G('url').value, - ow = parseInt($G('width').value, 10) || 0, - oh = parseInt($G('height').value, 10) || 0, - border = parseInt($G('border').value, 10) || 0, - title = $G('title').value, - preview = $G('preview'), - width, - height; - - url = utils.unhtmlForUrl(url); - title = utils.unhtml(title); - - width = ((!ow || !oh) ? preview.offsetWidth:Math.min(ow, preview.offsetWidth)); - width = width+(border*2) > preview.offsetWidth ? width:(preview.offsetWidth - (border*2)); - height = (!ow || !oh) ? '':width*oh/ow; - - if(url) { - preview.innerHTML = ''; - } - }, - getInsertList: function () { - var data = this.getData(); - if(data['url']) { - return [{ - src: data['url'], - _src: data['url'], - width: data['width'] || '', - height: data['height'] || '', - border: data['border'] || '', - floatStyle: data['align'] || '', - vspace: data['vhSpace'] || '', - title: data['title'] || '', - alt: data['title'] || '', - style: "width:" + data['width'] + "px;height:" + data['height'] + "px;" - }]; - } else { - return []; - } - } - }; - - - - /* 上传图片 */ - function UploadImage(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadImage.prototype = { - init: function () { - this.imageList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')), - acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), - imageMaxSize = editor.getOpt('imageMaxSize'), - imageCompressBorder = editor.getOpt('imageCompressBorder'); - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('imageActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - accept: { - title: 'Images', - extensions: acceptExtensions, - mimeTypes: 'image/*' - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('imageFieldName'), - duplicate: true, - fileSingleSizeLimit: imageMaxSize, // 默认 2 M - compress: editor.getOpt('imageCompressEnable') ? { - width: imageCompressBorder, - height: imageCompressBorder, - // 图片质量,只有type为`image/jpeg`的时候才有效。 - quality: 90, - // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false. - allowMagnify: false, - // 是否允许裁剪。 - crop: false, - // 是否保留头部meta信息。 - preserveHeaders: true - }:false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - _this.imageList.push(json); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - destroy: function () { - this.$wrap.remove(); - }, - getInsertList: function () { - var i, data, list = [], - align = getAlign(), - prefix = editor.getOpt('imageUrlPrefix'); - for (i = 0; i < this.imageList.length; i++) { - data = this.imageList[i]; - list.push({ - src: prefix + data.url, - _src: prefix + data.url, - title: data.title, - alt: data.original, - floatStyle: align - }); - } - return list; - } - }; - - - /* 在线图片 */ - function OnlineImage(target) { - this.container = utils.isString(target) ? document.getElementById(target) : target; - this.init(); - } - OnlineImage.prototype = { - init: function () { - this.reset(); - this.initEvents(); - }, - /* 初始化容器 */ - initContainer: function () { - this.container.innerHTML = ''; - this.list = document.createElement('ul'); - this.clearFloat = document.createElement('li'); - - domUtils.addClass(this.list, 'list'); - domUtils.addClass(this.clearFloat, 'clearFloat'); - - this.list.appendChild(this.clearFloat); - this.container.appendChild(this.list); - }, - /* 初始化滚动事件,滚动到地步自动拉取数据 */ - initEvents: function () { - var _this = this; - - /* 滚动拉取图片 */ - domUtils.on($G('imageList'), 'scroll', function(e){ - var panel = this; - if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { - _this.getImageData(); - } - }); - /* 选中图片 */ - domUtils.on(this.container, 'click', function (e) { - var target = e.target || e.srcElement, - li = target.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - /* 初始化第一次的数据 */ - initData: function () { - - /* 拉取数据需要使用的值 */ - this.state = 0; - this.listSize = editor.getOpt('imageManagerListSize'); - this.listIndex = 0; - this.listEnd = false; - - /* 第一次拉取数据 */ - this.getImageData(); - }, - /* 重置界面 */ - reset: function() { - this.initContainer(); - this.initData(); - }, - /* 向后台拉取图片列表数据 */ - getImageData: function () { - var _this = this; - - if(!_this.listEnd && !this.isLoadingData) { - this.isLoadingData = true; - var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), - isJsonp = utils.isCrossDomainUrl(url); - ajax.request(url, { - 'timeout': 100000, - 'dataType': isJsonp ? 'jsonp':'', - 'data': utils.extend({ - start: this.listIndex, - size: this.listSize - }, editor.queryCommandValue('serverparam')), - 'method': 'get', - 'onsuccess': function (r) { - try { - var json = isJsonp ? r:eval('(' + r.responseText + ')'); - if (json.state == 'SUCCESS') { - _this.pushData(json.list); - _this.listIndex = parseInt(json.start) + parseInt(json.list.length); - if(_this.listIndex >= json.total) { - _this.listEnd = true; - } - _this.isLoadingData = false; - } - } catch (e) { - if(r.responseText.indexOf('ue_separate_ue') != -1) { - var list = r.responseText.split(r.responseText); - _this.pushData(list); - _this.listIndex = parseInt(list.length); - _this.listEnd = true; - _this.isLoadingData = false; - } - } - }, - 'onerror': function () { - _this.isLoadingData = false; - } - }); - } - }, - /* 添加图片到列表界面上 */ - pushData: function (list) { - var i, item, img, icon, _this = this, - urlPrefix = editor.getOpt('imageManagerUrlPrefix'); - for (i = 0; i < list.length; i++) { - if(list[i] && list[i].url) { - item = document.createElement('li'); - img = document.createElement('img'); - icon = document.createElement('span'); - - domUtils.on(img, 'load', (function(image){ - return function(){ - _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); - } - })(img)); - img.width = 113; - img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) ); - img.setAttribute('_src', urlPrefix + list[i].url); - domUtils.addClass(icon, 'icon'); - - item.appendChild(img); - item.appendChild(icon); - this.list.insertBefore(item, this.clearFloat); - } - } - }, - /* 改变图片大小 */ - scale: function (img, w, h, type) { - var ow = img.width, - oh = img.height; - - if (type == 'justify') { - if (ow >= oh) { - img.width = w; - img.height = h * oh / ow; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w * ow / oh; - img.height = h; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } else { - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - } - }, - getInsertList: function () { - var i, lis = this.list.children, list = [], align = getAlign(); - for (i = 0; i < lis.length; i++) { - if (domUtils.hasClass(lis[i], 'selected')) { - var img = lis[i].firstChild, - src = img.getAttribute('_src'); - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - - } - return list; - } - }; - - /*搜索图片 */ - function SearchImage() { - this.init(); - } - SearchImage.prototype = { - init: function () { - this.initEvents(); - }, - initEvents: function(){ - var _this = this; - - /* 点击搜索按钮 */ - domUtils.on($G('searchBtn'), 'click', function(){ - var key = $G('searchTxt').value; - if(key && key != lang.searchRemind) { - _this.getImageData(); - } - }); - /* 点击清除妞 */ - domUtils.on($G('searchReset'), 'click', function(){ - $G('searchTxt').value = lang.searchRemind; - $G('searchListUl').innerHTML = ''; - $G('searchType').selectedIndex = 0; - }); - /* 搜索框聚焦 */ - domUtils.on($G('searchTxt'), 'focus', function(){ - var key = $G('searchTxt').value; - if(key && key == lang.searchRemind) { - $G('searchTxt').value = ''; - } - }); - /* 搜索框回车键搜索 */ - domUtils.on($G('searchTxt'), 'keydown', function(e){ - var keyCode = e.keyCode || e.which; - if (keyCode == 13) { - $G('searchBtn').click(); - } - }); - - /* 选中图片 */ - domUtils.on($G('searchList'), 'click', function(e){ - var target = e.target || e.srcElement, - li = target.parentNode.parentNode; - - if (li.tagName.toLowerCase() == 'li') { - if (domUtils.hasClass(li, 'selected')) { - domUtils.removeClasses(li, 'selected'); - } else { - domUtils.addClass(li, 'selected'); - } - } - }); - }, - encodeToGb2312:function (str){ - if(!str) return ''; - var strOut = "", - z = 'D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9'; - - for (var i = 0; i < str.length; i++) { - var c = str.charAt(i), - code = str.charCodeAt(i); - if (c == " ") strOut += "+"; - else if (code >= 19968 && code <= 40869) { - var index = code - 19968; - strOut += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2); - } else { - strOut += "%" + str.charCodeAt(i).toString(16); - } - } - return strOut; - }, - /* 改变图片大小 */ - scale: function (img, w, h) { - var ow = img.width, - oh = img.height; - - if (ow >= oh) { - img.width = w * ow / oh; - img.height = h; - img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; - } else { - img.width = w; - img.height = h * oh / ow; - img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; - } - }, - getImageData: function(){ - var _this = this, - key = $G('searchTxt').value, - type = $G('searchType').value, - keepOriginName = editor.options.keepOriginName ? "1" : "0", - url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + _this.encodeToGb2312(key) + type + "&keeporiginname=" + keepOriginName + "&" + +new Date; - - $G('searchListUl').innerHTML = lang.searchLoading; - ajax.request(url, { - 'dataType': 'jsonp', - 'charset': 'GB18030', - 'onsuccess':function(json){ - var list = []; - if(json && json.data) { - for(var i = 0; i < json.data.length; i++) { - if(json.data[i].objURL) { - list.push({ - title: json.data[i].fromPageTitleEnc, - src: json.data[i].objURL, - url: json.data[i].fromURL - }); - } - } - } - _this.setList(list); - }, - 'onerror':function(){ - $G('searchListUl').innerHTML = lang.searchRetry; - } - }); - }, - /* 添加图片到列表界面上 */ - setList: function (list) { - var i, item, p, img, link, _this = this, - listUl = $G('searchListUl'); - - listUl.innerHTML = ''; - if(list.length) { - for (i = 0; i < list.length; i++) { - item = document.createElement('li'); - p = document.createElement('p'); - img = document.createElement('img'); - link = document.createElement('a'); - - img.onload = function () { - _this.scale(this, 113, 113); - }; - img.width = 113; - img.setAttribute('src', list[i].src); - - link.href = list[i].url; - link.target = '_blank'; - link.title = list[i].title; - link.innerHTML = list[i].title; - - p.appendChild(img); - item.appendChild(p); - item.appendChild(link); - listUl.appendChild(item); - } - } else { - listUl.innerHTML = lang.searchRetry; - } - }, - getInsertList: function () { - var child, - src, - align = getAlign(), - list = [], - items = $G('searchListUl').children; - for(var i = 0; i < items.length; i++) { - child = items[i].firstChild && items[i].firstChild.firstChild; - if(child.tagName && child.tagName.toLowerCase() == 'img' && domUtils.hasClass(items[i], 'selected')) { - src = child.src; - list.push({ - src: src, - _src: src, - alt: src.substr(src.lastIndexOf('/') + 1), - floatStyle: align - }); - } - } - return list; - } - }; - -})(); diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/alignicon.jpg b/yshop-drink-vue/public/UEditor22/dialogs/image/images/alignicon.jpg deleted file mode 100644 index 754755b..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/alignicon.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/bg.png b/yshop-drink-vue/public/UEditor22/dialogs/image/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.gif b/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.png b/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/image.png b/yshop-drink-vue/public/UEditor22/dialogs/image/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/progress.png b/yshop-drink-vue/public/UEditor22/dialogs/image/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.gif b/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.png b/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/image/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/insertframe/insertframe.html b/yshop-drink-vue/public/UEditor22/dialogs/insertframe/insertframe.html deleted file mode 100644 index 8271f0b..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/insertframe/insertframe.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - - -
    px
    px
    - -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/internal.js b/yshop-drink-vue/public/UEditor22/dialogs/internal.js deleted file mode 100644 index 1f6413b..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/internal.js +++ /dev/null @@ -1,81 +0,0 @@ -(function () { - var parent = window.parent; - //dialog对象 - dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )]; - //当前打开dialog的编辑器实例 - editor = dialog.editor; - - UE = parent.UE; - - domUtils = UE.dom.domUtils; - - utils = UE.utils; - - browser = UE.browser; - - ajax = UE.ajax; - - $G = function ( id ) { - return document.getElementById( id ) - }; - //focus元素 - $focus = function ( node ) { - setTimeout( function () { - if ( browser.ie ) { - var r = node.createTextRange(); - r.collapse( false ); - r.select(); - } else { - node.focus() - } - }, 0 ) - }; - utils.loadFile(document,{ - href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(), - tag:"link", - type:"text/css", - rel:"stylesheet" - }); - lang = editor.getLang(dialog.className.split( "-" )[2]); - if(lang){ - domUtils.on(window,'load',function () { - - var langImgPath = editor.options.langPath + editor.options.lang + "/images/"; - //针对静态资源 - for ( var i in lang["static"] ) { - var dom = $G( i ); - if(!dom) continue; - var tagName = dom.tagName, - content = lang["static"][i]; - if(content.src){ - //clone - content = utils.extend({},content,false); - content.src = langImgPath + content.src; - } - if(content.style){ - content = utils.extend({},content,false); - content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath) - } - switch ( tagName.toLowerCase() ) { - case "var": - dom.parentNode.replaceChild( document.createTextNode( content ), dom ); - break; - case "select": - var ops = dom.options; - for ( var j = 0, oj; oj = ops[j]; ) { - oj.innerHTML = content.options[j++]; - } - for ( var p in content ) { - p != "options" && dom.setAttribute( p, content[p] ); - } - break; - default : - domUtils.setAttributes( dom, content); - } - } - } ); - } - - -})(); - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/link/link.html b/yshop-drink-vue/public/UEditor22/dialogs/link/link.html deleted file mode 100644 index 317a650..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/link/link.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/map/map.html b/yshop-drink-vue/public/UEditor22/dialogs/map/map.html deleted file mode 100644 index 9857f2f..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/map/map.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - -
    - - - - - - - - - -
    ::
    -
    - -
    - - - - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/map/show.html b/yshop-drink-vue/public/UEditor22/dialogs/map/show.html deleted file mode 100644 index 329cfeb..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/map/show.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - 百度地图API自定义地图 - - - - - - - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/music/music.css b/yshop-drink-vue/public/UEditor22/dialogs/music/music.css deleted file mode 100644 index 82d6118..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/music/music.css +++ /dev/null @@ -1,30 +0,0 @@ -.wrapper{margin: 5px 10px;} - -.searchBar{height:30px;padding:7px 0 3px;text-align:center;} -.searchBtn{font-size:13px;height:24px;} - -.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;} - -.listPanel{overflow: hidden;} -.panelon{display:block;} -.paneloff{display:none} - -.page{width:220px;margin:20px auto;overflow: hidden;} -.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center} -.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff; - border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;} - -.m-box{width:460px;} -.m-m{float: left;line-height: 20px;height: 20px;} -.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;} -.m-l{float:left;width:40px; } -.m-t{float:left;width:140px;} -.m-s{float:left;width:110px;} -.m-z{float:left;width:100px;} -.m-try-t{float: left;width: 60px;;} - -.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;} -.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;} - -.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat} -.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/music/music.html b/yshop-drink-vue/public/UEditor22/dialogs/music/music.html deleted file mode 100644 index 7dad7a7..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/music/music.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - 插入音乐 - - - - -
    - -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/music/music.js b/yshop-drink-vue/public/UEditor22/dialogs/music/music.js deleted file mode 100644 index e43ea54..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/music/music.js +++ /dev/null @@ -1,192 +0,0 @@ -function Music() { - this.init(); -} -(function () { - var pages = [], - panels = [], - selectedItem = null; - Music.prototype = { - total:70, - pageSize:10, - dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common", - playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf", - - init:function () { - var me = this; - domUtils.on($G("J_searchName"), "keyup", function (event) { - var e = window.event || event; - if (e.keyCode == 13) { - me.dosearch(); - } - }); - domUtils.on($G("J_searchBtn"), "click", function () { - me.dosearch(); - }); - }, - callback:function (data) { - var me = this; - me.data = data.song_list; - setTimeout(function () { - $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list); - }, 300); - }, - dosearch:function () { - var me = this; - selectedItem = null; - var key = $G('J_searchName').value; - if (utils.trim(key) == "")return false; - key = encodeURIComponent(key); - me._sent(key); - }, - doselect:function (i) { - var me = this; - if (typeof i == 'object') { - selectedItem = i; - } else if (typeof i == 'number') { - selectedItem = me.data[i]; - } - }, - onpageclick:function (id) { - var me = this; - for (var i = 0; i < pages.length; i++) { - $G(pages[i]).className = 'pageoff'; - $G(panels[i]).className = 'paneloff'; - } - $G('page' + id).className = 'pageon'; - $G('panel' + id).className = 'panelon'; - }, - listenTest:function (elem) { - var me = this, - view = $G('J_preview'), - is_play_action = (elem.className == 'm-try'), - old_trying = me._getTryingElem(); - - if (old_trying) { - old_trying.className = 'm-try'; - view.innerHTML = ''; - } - if (is_play_action) { - elem.className = 'm-trying'; - view.innerHTML = me._buildMusicHtml(me._getUrl(true)); - } - }, - _sent:function (param) { - var me = this; - $G('J_resultBar').innerHTML = '
    '; - - utils.loadFile(document, { - src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(), - tag:"script", - type:"text/javascript", - defer:"defer" - }); - }, - _removeHtml:function (str) { - var reg = /<\s*\/?\s*[^>]*\s*>/gi; - return str.replace(reg, ""); - }, - _getUrl:function (isTryListen) { - var me = this; - var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist=' - + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra=' - + encodeURIComponent(me._removeHtml(selectedItem.album_title)) - + '&autoPlay='+isTryListen+'' + '&loop=true'; - return me.playerUrl + "?" + param; - }, - _getTryingElem:function () { - var s = $G('J_listPanel').getElementsByTagName('span'); - - for (var i = 0; i < s.length; i++) { - if (s[i].className == 'm-trying') - return s[i]; - } - return null; - }, - _buildMusicHtml:function (playerUrl) { - var html = ' 12) - return s.substring(0, 5) + '...'; - if (!s) s = " "; - return s; - }, - _rebuildData:function (data) { - var me = this, - newData = [], - d = me.pageSize, - itembox; - for (var i = 0; i < data.length; i++) { - if ((i + d) % d == 0) { - itembox = []; - newData.push(itembox) - } - itembox.push(data[i]); - } - return newData; - }, - _renderTemplate:function (data) { - var me = this; - if (data.length == 0)return '
    ' + lang.emptyTxt + '
    '; - data = me._rebuildData(data); - var s = [], p = [], t = []; - s.push('
    '); - p.push('
    '); - for (var i = 0, tmpList; tmpList = data[i++];) { - panels.push('panel' + i); - pages.push('page' + i); - if (i == 1) { - s.push('
    '); - if (data.length != 1) { - t.push('
    ' + (i ) + '
    '); - } - } else { - s.push('
    '); - t.push('
    ' + (i ) + '
    '); - } - s.push('
    '); - s.push('
    ' + lang.chapter + '' + lang.singer - + '' + lang.special + '' + lang.listenTest + '
    '); - for (var j = 0, tmpObj; tmpObj = tmpList[j++];) { - s.push(''); - } - s.push('
    '); - s.push('
    '); - } - t.reverse(); - p.push(t.join('')); - s.push('
    '); - p.push('
    '); - return s.join('') + p.join(''); - }, - exec:function () { - var me = this; - if (selectedItem == null) return; - $G('J_preview').innerHTML = ""; - editor.execCommand('music', { - url:me._getUrl(false), - width:400, - height:95 - }); - } - }; -})(); - - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/preview/preview.html b/yshop-drink-vue/public/UEditor22/dialogs/preview/preview.html deleted file mode 100644 index f6b433b..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/preview/preview.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - -
    - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/addimg.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/addimg.png deleted file mode 100644 index 03a8713..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/addimg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/brush.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/brush.png deleted file mode 100644 index efa6fdb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/brush.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimg.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimg.png deleted file mode 100644 index 5a892e4..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimgH.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimgH.png deleted file mode 100644 index 2f0c5c9..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/delimgH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/empty.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/empty.png deleted file mode 100644 index 0375196..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/empty.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/emptyH.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/emptyH.png deleted file mode 100644 index 838ca72..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/emptyH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/eraser.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/eraser.png deleted file mode 100644 index 63e87ce..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/eraser.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redo.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redo.png deleted file mode 100644 index 12cd9bb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redo.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redoH.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redoH.png deleted file mode 100644 index d9f33d3..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/redoH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scale.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scale.png deleted file mode 100644 index 935a3f3..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scale.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scaleH.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scaleH.png deleted file mode 100644 index 72e64a9..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/scaleH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/size.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/size.png deleted file mode 100644 index 8366845..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/size.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undo.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undo.png deleted file mode 100644 index 084c7cc..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undo.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undoH.png b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undoH.png deleted file mode 100644 index fde7eb3..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/images/undoH.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.css b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.css deleted file mode 100644 index 4ea30c6..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.css +++ /dev/null @@ -1,72 +0,0 @@ -/*common -*/ -body{margin: 0;} -table{width:100%;} -table td{padding:2px 4px;vertical-align: middle;} -a{text-decoration: none;} -em{font-style: normal;} -.border_style1{border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -/*module -*/ -.main{margin: 8px;overflow: hidden;} - -.hot{float:left;height:335px;} -.drawBoard{position: relative; cursor: crosshair;} -.brushBorad{position: absolute;left:0;top:0;z-index: 998;} -.picBoard{border: none;text-align: center;line-height: 300px;cursor: default;} -.operateBar{margin-top:10px;font-size:12px;text-align: center;} -.operateBar span{margin-left: 10px;} - -.drawToolbar{float:right;width:110px;height:300px;overflow: hidden;} -.colorBar{margin-top:10px;font-size: 12px;text-align: center;} -.colorBar a{display:block;width: 10px;height: 10px;border:1px solid #1006F1;border-radius: 3px; box-shadow:2px 2px 5px #d3d6da;opacity: 0.3} -.sectionBar{margin-top:15px;font-size: 12px;text-align: center;} -.sectionBar a{display:inline-block;width:10px;height:12px;color: #888;text-indent: -999px;opacity: 0.3} -.size1{background: url('images/size.png') 1px center no-repeat ;} -.size2{background: url('images/size.png') -10px center no-repeat;} -.size3{background: url('images/size.png') -22px center no-repeat;} -.size4{background: url('images/size.png') -35px center no-repeat;} - -.addImgH{position: relative;} -.addImgH_form{position: absolute;left: 18px;top: -1px;width: 75px;height: 21px;opacity: 0;cursor: pointer;} -.addImgH_form input{width: 100%;} -/*scrawl遮罩层 -*/ -.maskLayerNull{display: none;} -.maskLayer{position: absolute;top:0;left:0;width: 100%; height: 100%;opacity: 0.7; - background-color: #fff;text-align:center;font-weight:bold;line-height:300px;z-index: 1000;} -/*btn state -*/ -.previousStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undoH.png');cursor: pointer;} -.previousStepH .text{color:#888;cursor:pointer;} -.previousStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undo.png');cursor:default;} -.previousStep .text{color:#ccc;cursor:default;} - -.nextStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redoH.png');cursor: pointer;} -.nextStepH .text{color:#888;cursor:pointer;} -.nextStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redo.png');cursor:default;} -.nextStep .text{color:#ccc;cursor:default;} - -.clearBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/emptyH.png');cursor: pointer;} -.clearBoardH .text{color:#888;cursor:pointer;} -.clearBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/empty.png');cursor:default;} -.clearBoard .text{color:#ccc;cursor:default;} - -.scaleBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scaleH.png');cursor: pointer;} -.scaleBoardH .text{color:#888;cursor:pointer;} -.scaleBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scale.png');cursor:default;} -.scaleBoard .text{color:#ccc;cursor:default;} - -.removeImgH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimgH.png');cursor: pointer;} -.removeImgH .text{color:#888;cursor:pointer;} -.removeImg .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimg.png');cursor:default;} -.removeImg .text{color:#ccc;cursor:default;} - -.addImgH .icon{vertical-align:top;display: inline-block;width:16px;height:16px;background-image: url('images/addimg.png')} -.addImgH .text{color:#888;cursor:pointer;} -/*icon -*/ -.brushIcon{display: inline-block;width:16px;height:16px;background-image: url('images/brush.png')} -.eraserIcon{display: inline-block;width:16px;height:16px;background-image: url('images/eraser.png')} - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.html b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.html deleted file mode 100644 index 13f6ab1..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - 1 - 3 - 5 - 7 -
    -
    - - 1 - 3 - 5 - 7 -
    -
    -
    - - -
    - -
    - -
    -
    -
    - - - - -
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.js b/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.js deleted file mode 100644 index cadb0cb..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/scrawl/scrawl.js +++ /dev/null @@ -1,671 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-5-22 - * Time: 上午11:38 - * To change this template use File | Settings | File Templates. - */ -var scrawl = function (options) { - options && this.initOptions(options); -}; -(function () { - var canvas = $G("J_brushBoard"), - context = canvas.getContext('2d'), - drawStep = [], //undo redo存储 - drawStepIndex = 0; //undo redo指针 - - scrawl.prototype = { - isScrawl:false, //是否涂鸦 - brushWidth:-1, //画笔粗细 - brushColor:"", //画笔颜色 - - initOptions:function (options) { - var me = this; - me.originalState(options);//初始页面状态 - me._buildToolbarColor(options.colorList);//动态生成颜色选择集合 - - me._addBoardListener(options.saveNum);//添加画板处理 - me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理 - me._addColorBarListener();//添加颜色选择处理 - me._addBrushBarListener();//添加画笔大小处理 - me._addEraserBarListener();//添加橡皮大小处理 - me._addAddImgListener();//添加增添背景图片处理 - me._addRemoveImgListenter();//删除背景图片处理 - me._addScalePicListenter();//添加缩放处理 - me._addClearSelectionListenter();//添加清楚选中状态处理 - - me._originalColorSelect(options.drawBrushColor);//初始化颜色选中 - me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中 - me._clearSelection();//清楚选中状态 - }, - - originalState:function (options) { - var me = this; - - me.brushWidth = options.drawBrushSize;//同步画笔粗细 - me.brushColor = options.drawBrushColor;//同步画笔颜色 - - context.lineWidth = me.brushWidth;//初始画笔大小 - context.strokeStyle = me.brushColor;//初始画笔颜色 - context.fillStyle = "transparent";//初始画布背景颜色 - context.lineCap = "round";//去除锯齿 - context.fill(); - }, - _buildToolbarColor:function (colorList) { - var tmp = null, arr = []; - arr.push(""); - for (var i = 0, color; color = colorList[i++];) { - if ((i - 1) % 5 == 0) { - if (i != 1) { - arr.push(""); - } - arr.push(""); - } - tmp = '#' + color; - arr.push(""); - } - arr.push("
    "); - $G("J_colorBar").innerHTML = arr.join(""); - }, - - _addBoardListener:function (saveNum) { - var me = this, - margin = 0, - startX = -1, - startY = -1, - isMouseDown = false, - isMouseMove = false, - isMouseUp = false, - buttonPress = 0, button, flag = ''; - - margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left")); - drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); - drawStepIndex += 1; - - domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) { - button = browser.webkit ? e.which : buttonPress; - switch (e.type) { - case 'mousedown': - buttonPress = 1; - flag = 1; - isMouseDown = true; - isMouseUp = false; - isMouseMove = false; - me.isScrawl = true; - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - break; - case 'mousemove' : - if (!flag && button == 0) { - return; - } - if (!flag && button) { - startX = e.clientX - margin;//10为外边距总和 - startY = e.clientY - margin; - context.beginPath(); - flag = 1; - } - if (isMouseUp || !isMouseDown) { - return; - } - var endX = e.clientX - margin, - endY = e.clientY - margin; - - context.moveTo(startX, startY); - context.lineTo(endX, endY); - context.stroke(); - startX = endX; - startY = endY; - isMouseMove = true; - break; - case 'mouseup': - buttonPress = 0; - if (!isMouseDown)return; - if (!isMouseMove) { - context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false); - context.fillStyle = context.strokeStyle; - context.fill(); - } - context.closePath(); - me._saveOPerate(saveNum); - isMouseDown = false; - isMouseMove = false; - isMouseUp = true; - startX = -1; - startY = -1; - break; - case 'mouseout': - flag = ''; - buttonPress = 0; - if (button == 1) return; - context.closePath(); - break; - } - }); - }, - _addOPerateListener:function (saveNum) { - var me = this; - domUtils.on($G("J_previousStep"), "click", function () { - if (drawStepIndex > 1) { - drawStepIndex -= 1; - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex - 1], 0, 0); - me.btn2Highlight("J_nextStep"); - drawStepIndex == 1 && me.btn2disable("J_previousStep"); - } - }); - domUtils.on($G("J_nextStep"), "click", function () { - if (drawStepIndex > 0 && drawStepIndex < drawStep.length) { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - context.putImageData(drawStep[drawStepIndex], 0, 0); - drawStepIndex += 1; - me.btn2Highlight("J_previousStep"); - drawStepIndex == drawStep.length && me.btn2disable("J_nextStep"); - } - }); - domUtils.on($G("J_clearBoard"), "click", function () { - context.clearRect(0, 0, context.canvas.width, context.canvas.height); - drawStep = []; - me._saveOPerate(saveNum); - drawStepIndex = 1; - me.isScrawl = false; - me.btn2disable("J_previousStep"); - me.btn2disable("J_nextStep"); - me.btn2disable("J_clearBoard"); - }); - }, - _addColorBarListener:function () { - var me = this; - domUtils.on($G("J_colorBar"), "click", function (e) { - var target = me.getTarget(e), - color = target.title; - if (!!color) { - me._addColorSelect(target); - - me.brushColor = color; - context.globalCompositeOperation = "source-over"; - context.lineWidth = me.brushWidth; - context.strokeStyle = color; - } - }); - }, - _addBrushBarListener:function () { - var me = this; - domUtils.on($G("J_brushBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.globalCompositeOperation = "source-over"; - context.lineWidth = parseInt(size); - context.strokeStyle = me.brushColor; - me.brushWidth = context.lineWidth; - } - }); - }, - _addEraserBarListener:function () { - var me = this; - domUtils.on($G("J_eraserBar"), "click", function (e) { - var target = me.getTarget(e), - size = browser.ie ? target.innerText : target.text; - if (!!size) { - me._addBESelect(target); - - context.lineWidth = parseInt(size); - context.globalCompositeOperation = "destination-out"; - context.strokeStyle = "#FFF"; - } - }); - }, - _addAddImgListener:function () { - var file = $G("J_imgTxt"); - if (!window.FileReader) { - $G("J_addImg").style.display = 'none'; - $G("J_removeImg").style.display = 'none'; - $G("J_sacleBoard").style.display = 'none'; - } - domUtils.on(file, "change", function (e) { - var frm = file.parentNode; - addMaskLayer(lang.backgroundUploading); - - var target = e.target || e.srcElement, - reader = new FileReader(); - reader.onload = function(evt){ - var target = evt.target || evt.srcElement; - ue_callback(target.result, 'SUCCESS'); - }; - reader.readAsDataURL(target.files[0]); - frm.reset(); - }); - }, - _addRemoveImgListenter:function () { - var me = this; - domUtils.on($G("J_removeImg"), "click", function () { - $G("J_picBoard").innerHTML = ""; - me.btn2disable("J_removeImg"); - me.btn2disable("J_sacleBoard"); - }); - }, - _addScalePicListenter:function () { - domUtils.on($G("J_sacleBoard"), "click", function () { - var picBoard = $G("J_picBoard"), - scaleCon = $G("J_scaleCon"), - img = picBoard.children[0]; - - if (img) { - if (!scaleCon) { - picBoard.style.cssText = "position:relative;z-index:999;"+picBoard.style.cssText; - img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;"; - var scale = new ScaleBoy(); - picBoard.appendChild(scale.init()); - scale.startScale(img); - } else { - if (scaleCon.style.visibility == "visible") { - scaleCon.style.visibility = "hidden"; - picBoard.style.position = ""; - picBoard.style.zIndex = ""; - } else { - scaleCon.style.visibility = "visible"; - picBoard.style.cssText += "position:relative;z-index:999"; - } - } - } - }); - }, - _addClearSelectionListenter:function () { - var doc = document; - domUtils.on(doc, 'mousemove', function (e) { - if (browser.ie && browser.version < 11) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - }); - }, - _clearSelection:function () { - var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"]; - for (var i = 0, group; group = list[i++];) { - domUtils.unSelectable($G(group)); - } - }, - - _saveOPerate:function (saveNum) { - var me = this; - if (drawStep.length <= saveNum) { - if(drawStepIndex"); - } - scale.innerHTML = arr.join(""); - return scale; - } - - var rect = [ - //[left, top, width, height] - [1, 1, -1, -1], - [0, 1, 0, -1], - [0, 1, 1, -1], - [1, 0, -1, 0], - [0, 0, 1, 0], - [1, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - ScaleBoy.prototype = { - init:function () { - _appendStyle(); - var me = this, - scale = me.dom = _getDom(); - - me.scaleMousemove.fp = me; - domUtils.on(scale, 'mousedown', function (e) { - var target = e.target || e.srcElement; - me.start = {x:e.clientX, y:e.clientY}; - if (target.className.indexOf('hand') != -1) { - me.dir = target.className.replace('hand', ''); - } - domUtils.on(document.body, 'mousemove', me.scaleMousemove); - e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; - }); - domUtils.on(document.body, 'mouseup', function (e) { - if (me.start) { - domUtils.un(document.body, 'mousemove', me.scaleMousemove); - if (me.moved) { - me.updateScaledElement({position:{x:scale.style.left, y:scale.style.top}, size:{w:scale.style.width, h:scale.style.height}}); - } - delete me.start; - delete me.moved; - delete me.dir; - } - }); - return scale; - }, - startScale:function (objElement) { - var me = this, Idom = me.dom; - - Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;'; - me.scalingElement = objElement; - }, - updateScaledElement:function (objStyle) { - var cur = this.scalingElement, - pos = objStyle.position, - size = objStyle.size; - if (pos) { - typeof pos.x != 'undefined' && (cur.style.left = pos.x); - typeof pos.y != 'undefined' && (cur.style.top = pos.y); - } - if (size) { - size.w && (cur.style.width = size.w); - size.h && (cur.style.height = size.h); - } - }, - updateStyleByDir:function (dir, offset) { - var me = this, - dom = me.dom, tmp; - - rect['def'] = [1, 1, 0, 0]; - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - if (dir === 'def') { - me.updateScaledElement({position:{x:dom.style.left, y:dom.style.top}}); - } - }, - scaleMousemove:function (e) { - var me = arguments.callee.fp, - start = me.start, - dir = me.dir || 'def', - offset = {x:e.clientX - start.x, y:e.clientY - start.y}; - - me.updateStyleByDir(dir, offset); - arguments.callee.fp.start = {x:e.clientX, y:e.clientY}; - arguments.callee.fp.moved = 1; - }, - _validScaledProp:function (prop, value) { - var ele = this.dom, - wrap = $G("J_picBoard"); - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - } - }; -})(); - -//后台回调 -function ue_callback(url, state) { - var doc = document, - picBorard = $G("J_picBoard"), - img = doc.createElement("img"); - - //图片缩放 - function scale(img, max, oWidth, oHeight) { - var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight; - if (ow > max || oh > max) { - if (ow >= oh) { - if (width = ow - max) { - percent = (width / ow).toFixed(2); - img.height = oh - oh * percent; - img.width = max; - } - } else { - if (height = oh - max) { - percent = (height / oh).toFixed(2); - img.width = ow - ow * percent; - img.height = max; - } - } - } - } - - //移除遮罩层 - removeMaskLayer(); - //状态响应 - if (state == "SUCCESS") { - picBorard.innerHTML = ""; - img.onload = function () { - scale(this, 300); - picBorard.appendChild(img); - - var obj = new scrawl(); - obj.btn2Highlight("J_removeImg"); - //trace 2457 - obj.btn2Highlight("J_sacleBoard"); - }; - img.src = url; - } else { - alert(state); - } -} -//去掉遮罩层 -function removeMaskLayer() { - var maskLayer = $G("J_maskLayer"); - maskLayer.className = "maskLayerNull"; - maskLayer.innerHTML = ""; - dialog.buttons[0].setDisabled(false); -} -//添加遮罩层 -function addMaskLayer(html) { - var maskLayer = $G("J_maskLayer"); - dialog.buttons[0].setDisabled(true); - maskLayer.className = "maskLayer"; - maskLayer.innerHTML = html; -} -//执行确认按钮方法 -function exec(scrawlObj) { - if (scrawlObj.isScrawl) { - addMaskLayer(lang.scrawlUpLoading); - var base64 = scrawlObj.getCanvasData(); - if (!!base64) { - var options = { - timeout:100000, - onsuccess:function (xhr) { - if (!scrawlObj.isCancelScrawl) { - var responseObj; - responseObj = eval("(" + xhr.responseText + ")"); - if (responseObj.state == "SUCCESS") { - var imgObj = {}, - url = editor.options.scrawlUrlPrefix + responseObj.url; - imgObj.src = url; - imgObj._src = url; - imgObj.alt = responseObj.original || ''; - imgObj.title = responseObj.title || ''; - editor.execCommand("insertImage", imgObj); - dialog.close(); - } else { - alert(responseObj.state); - } - - } - }, - onerror:function () { - alert(lang.imageError); - dialog.close(); - } - }; - options[editor.getOpt('scrawlFieldName')] = base64; - - var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')), - params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - ajax.request(url, options); - } - } else { - addMaskLayer(lang.noScarwl + "   "); - } -} - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.html b/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.html deleted file mode 100644 index b3eaaa5..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    :
    - -
    - - -
    -   -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    - -
    - - - - -
    -   -
    - -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.js b/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.js deleted file mode 100644 index b55bb7a..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/searchreplace/searchreplace.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午12:29 - * To change this template use File | Settings | File Templates. - */ - -//清空上次查选的痕迹 -editor.firstForSR = 0; -editor.currentRangeForSR = null; -//给tab注册切换事件 -/** - * tab点击处理事件 - * @param tabHeads - * @param tabBodys - * @param obj - */ -function clickHandler( tabHeads,tabBodys,obj ) { - //head样式更改 - for ( var k = 0, len = tabHeads.length; k < len; k++ ) { - tabHeads[k].className = ""; - } - obj.className = "focus"; - //body显隐 - var tabSrc = obj.getAttribute( "tabSrc" ); - for ( var j = 0, length = tabBodys.length; j < length; j++ ) { - var body = tabBodys[j], - id = body.getAttribute( "id" ); - if ( id != tabSrc ) { - body.style.zIndex = 1; - } else { - body.style.zIndex = 200; - } - } - -} - -/** - * TAB切换 - * @param tabParentId tab的父节点ID或者对象本身 - */ -function switchTab( tabParentId ) { - var tabElements = $G( tabParentId ).children, - tabHeads = tabElements[0].children, - tabBodys = tabElements[1].children; - - for ( var i = 0, length = tabHeads.length; i < length; i++ ) { - var head = tabHeads[i]; - if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); - head.onclick = function () { - clickHandler(tabHeads,tabBodys,this); - } - } -} -$G('searchtab').onmousedown = function(){ - $G('search-msg').innerHTML = ''; - $G('replace-msg').innerHTML = '' -} -//是否区分大小写 -function getMatchCase(id) { - return $G(id).checked ? true : false; -} -//查找 -$G("nextFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - var bk = editor.selection.getRange().createBookmark(); - $G('search-msg').innerHTML = lang.getEnd; - editor.selection.getRange().moveToBookmark(bk).select(); - - - } -}; -$G("nextReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -$G("preFindBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase") - }; - if (!frCommond(obj)) { - $G('search-msg').innerHTML = lang.getStart; - } -}; -$G("preReplaceBtn").onclick = function (txt, dir, mcase) { - var findtxt = $G("findtxt1").value, obj; - if (!findtxt) { - return false; - } - obj = { - searchStr:findtxt, - dir:-1, - casesensitive:getMatchCase("matchCase1") - }; - frCommond(obj); -}; -//替换 -$G("repalceBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - dir:1, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt - }; - frCommond(obj); -}; -//全部替换 -$G("repalceAllBtn").onclick = function () { - var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, - replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); - if (!findtxt) { - return false; - } - if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { - return false; - } - obj = { - searchStr:findtxt, - casesensitive:getMatchCase("matchCase1"), - replaceStr:replacetxt, - all:true - }; - var num = frCommond(obj); - if (num) { - $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); - } -}; -//执行 -var frCommond = function (obj) { - return editor.execCommand("searchreplace", obj); -}; -switchTab("searchtab"); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/snapscreen/snapscreen.html b/yshop-drink-vue/public/UEditor22/dialogs/snapscreen/snapscreen.html deleted file mode 100644 index f359326..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/snapscreen/snapscreen.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - -
    -

    -
    -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.html b/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.html deleted file mode 100644 index d92f515..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.js b/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.js deleted file mode 100644 index bd3b36d..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/spechars/spechars.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-9-26 - * Time: 下午1:09 - * To change this template use File | Settings | File Templates. - */ -var charsContent = [ - { name:"tsfh", title:lang.tsfh, content:toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞")}, - { name:"lmsz", title:lang.lmsz, content:toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, - { name:"szfh", title:lang.szfh, content:toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩")}, - { name:"rwfh", title:lang.rwfh, content:toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ")}, - { name:"xlzm", title:lang.xlzm, content:toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω")}, - { name:"ewzm", title:lang.ewzm, content:toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я")}, - { name:"pyzm", title:lang.pyzm, content:toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, - { name:"yyyb", title:lang.yyyb, content:toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,")}, - { name:"zyzf", title:lang.zyzf, content:toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ")} -]; -(function createTab(content) { - for (var i = 0, ci; ci = content[i++];) { - var span = document.createElement("span"); - span.setAttribute("tabSrc", ci.name); - span.innerHTML = ci.title; - if (i == 1)span.className = "focus"; - domUtils.on(span, "click", function () { - var tmps = $G("tabHeads").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.className = ""; - } - tmps = $G("tabBodys").children; - for (var k = 0, sk; sk = tmps[k++];) { - sk.style.display = "none"; - } - this.className = "focus"; - $G(this.getAttribute("tabSrc")).style.display = ""; - }); - $G("tabHeads").appendChild(span); - domUtils.insertAfter(span, document.createTextNode("\n")); - var div = document.createElement("div"); - div.id = ci.name; - div.style.display = (i == 1) ? "" : "none"; - var cons = ci.content; - for (var j = 0, con; con = cons[j++];) { - var charSpan = document.createElement("span"); - charSpan.innerHTML = con; - domUtils.on(charSpan, "click", function () { - editor.execCommand("insertHTML", this.innerHTML); - dialog.close(); - }); - div.appendChild(charSpan); - } - $G("tabBodys").appendChild(div); - } -})(charsContent); -function toArray(str) { - return str.split(","); -} diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/dragicon.png b/yshop-drink-vue/public/UEditor22/dialogs/table/dragicon.png deleted file mode 100644 index f26203b..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/table/dragicon.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.css b/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.css deleted file mode 100644 index c6f9396..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.css +++ /dev/null @@ -1,84 +0,0 @@ -body{ - overflow: hidden; - width: 540px; -} -.wrapper { - margin: 10px auto 0; - font-size: 12px; - overflow: hidden; - width: 520px; - height: 315px; -} - -.clear { - clear: both; -} - -.wrapper .left { - float: left; - margin-left: 10px;; -} - -.wrapper .right { - float: right; - border-left: 2px dotted #EDEDED; - padding-left: 15px; -} - -.section { - margin-bottom: 15px; - width: 240px; - overflow: hidden; -} - -.section h3 { - font-weight: bold; - padding: 5px 0; - margin-bottom: 10px; - border-bottom: 1px solid #EDEDED; - font-size: 12px; -} - -.section ul { - list-style: none; - overflow: hidden; - clear: both; - -} - -.section li { - float: left; - width: 120px;; -} - -.section .tone { - width: 80px;; -} - -.section .preview { - width: 220px; -} - -.section .preview table { - text-align: center; - vertical-align: middle; - color: #666; -} - -.section .preview caption { - font-weight: bold; -} - -.section .preview td { - border-width: 1px; - border-style: solid; - height: 22px; -} - -.section .preview th { - border-style: solid; - border-color: #DDD; - border-width: 2px 1px 1px 1px; - height: 22px; - background-color: #F7F7F7; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.html b/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.html deleted file mode 100644 index 3c412fb..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - -
    • -
    • - -
    • -
    -
    -
    -
    -

    -
      -
    • - - -
    • -
    -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.js b/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.js deleted file mode 100644 index 11dbee7..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/table/edittable.js +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-12-19 - * Time: 下午4:55 - * To change this template use File | Settings | File Templates. - */ -(function () { - var title = $G("J_title"), - titleCol = $G("J_titleCol"), - caption = $G("J_caption"), - sorttable = $G("J_sorttable"), - autoSizeContent = $G("J_autoSizeContent"), - autoSizePage = $G("J_autoSizePage"), - tone = $G("J_tone"), - me, - preview = $G("J_preview"); - - var editTable = function () { - me = this; - me.init(); - }; - editTable.prototype = { - init:function () { - var colorPiker = new UE.ui.ColorPicker({ - editor:editor - }), - colorPop = new UE.ui.Popup({ - editor:editor, - content:colorPiker - }); - - title.checked = editor.queryCommandState("inserttitle") == -1; - titleCol.checked = editor.queryCommandState("inserttitlecol") == -1; - caption.checked = editor.queryCommandState("insertcaption") == -1; - sorttable.checked = editor.queryCommandState("enablesort") == 1; - - var enablesortState = editor.queryCommandState("enablesort"), - disablesortState = editor.queryCommandState("disablesort"); - - sorttable.checked = !!(enablesortState < 0 && disablesortState >=0); - sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0); - sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg:''; - - me.createTable(title.checked, titleCol.checked, caption.checked); - me.setAutoSize(); - me.setColor(me.getColor()); - - domUtils.on(title, "click", me.titleHanler); - domUtils.on(titleCol, "click", me.titleColHanler); - domUtils.on(caption, "click", me.captionHanler); - domUtils.on(sorttable, "click", me.sorttableHanler); - domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler); - domUtils.on(autoSizePage, "click", me.autoSizePageHanler); - - domUtils.on(tone, "click", function () { - colorPop.showAnchor(tone); - }); - domUtils.on(document, 'mousedown', function () { - colorPop.hide(); - }); - colorPiker.addListener("pickcolor", function () { - me.setColor(arguments[1]); - colorPop.hide(); - }); - colorPiker.addListener("picknocolor", function () { - me.setColor(""); - colorPop.hide(); - }); - }, - - createTable:function (hasTitle, hasTitleCol, hasCaption) { - var arr = [], - sortSpan = '^'; - arr.push(""); - if (hasCaption) { - arr.push("") - } - if (hasTitle) { - arr.push(""); - if(hasTitleCol) { arr.push(""); } - for (var j = 0; j < 5; j++) { - arr.push(""); - } - arr.push(""); - } - for (var i = 0; i < 6; i++) { - arr.push(""); - if(hasTitleCol) { arr.push("") } - for (var k = 0; k < 5; k++) { - arr.push("") - } - arr.push(""); - } - arr.push("
    " + lang.captionName + "
    " + lang.titleName + "" + lang.titleName + "
    " + lang.titleName + "" + lang.cellsName + "
    "); - preview.innerHTML = arr.join(""); - this.updateSortSpan(); - }, - titleHanler:function () { - var example = $G("J_example"), - frg=document.createDocumentFragment(), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colCount = example.rows[0].children.length; - - if (title.checked) { - example.insertRow(0); - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - frg.appendChild(node); - } - example.rows[0].appendChild(frg); - - } else { - domUtils.remove(example.rows[0]); - } - me.setColor(color); - me.updateSortSpan(); - }, - titleColHanler:function () { - var example = $G("J_example"), - color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), - colArr = example.rows, - colCount = colArr.length; - - if (titleCol.checked) { - for (var i = 0, node; i < colCount; i++) { - node = document.createElement("th"); - node.innerHTML = lang.titleName; - colArr[i].insertBefore(node, colArr[i].children[0]); - } - } else { - for (var i = 0; i < colCount; i++) { - domUtils.remove(colArr[i].children[0]); - } - } - me.setColor(color); - me.updateSortSpan(); - }, - captionHanler:function () { - var example = $G("J_example"); - if (caption.checked) { - var row = document.createElement('caption'); - row.innerHTML = lang.captionName; - example.insertBefore(row, example.firstChild); - } else { - domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]); - } - }, - sorttableHanler:function(){ - me.updateSortSpan(); - }, - autoSizeContentHanler:function () { - var example = $G("J_example"); - example.removeAttribute("width"); - }, - autoSizePageHanler:function () { - var example = $G("J_example"); - var tds = example.getElementsByTagName(example, "td"); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - example.setAttribute('width', '100%'); - }, - updateSortSpan: function(){ - var example = $G("J_example"), - row = example.rows[0]; - - var spans = domUtils.getElementsByTagName(example,"span"); - utils.each(spans,function(span){ - span.parentNode.removeChild(span); - }); - if (sorttable.checked) { - utils.each(row.cells, function(cell, i){ - var span = document.createElement("span"); - span.innerHTML = "^"; - cell.appendChild(span); - }); - } - }, - getColor:function () { - var start = editor.selection.getStart(), color, - cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - color = cell && domUtils.getComputedStyle(cell, "border-color"); - if (!color) color = "#DDDDDD"; - return color; - }, - setColor:function (color) { - var example = $G("J_example"), - arr = domUtils.getElementsByTagName(example, "td").concat( - domUtils.getElementsByTagName(example, "th"), - domUtils.getElementsByTagName(example, "caption") - ); - - tone.value = color; - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - - }, - setAutoSize:function () { - var me = this; - autoSizePage.checked = true; - me.autoSizePageHanler(); - } - }; - - new editTable; - - dialog.onok = function () { - editor.__hasEnterExecCommand = true; - - var checks = { - title:"inserttitle deletetitle", - titleCol:"inserttitlecol deletetitlecol", - caption:"insertcaption deletecaption", - sorttable:"enablesort disablesort" - }; - editor.fireEvent('saveScene'); - for(var i in checks){ - var cmds = checks[i].split(" "), - input = $G("J_" + i); - if(input["checked"]){ - editor.queryCommandState(cmds[0])!=-1 &&editor.execCommand(cmds[0]); - }else{ - editor.queryCommandState(cmds[1])!=-1 &&editor.execCommand(cmds[1]); - } - } - - editor.execCommand("edittable", tone.value); - autoSizeContent.checked ?editor.execCommand('adaptbytext') : ""; - autoSizePage.checked ? editor.execCommand("adaptbywindow") : ""; - editor.fireEvent('saveScene'); - - editor.__hasEnterExecCommand = false; - }; -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/edittd.html b/yshop-drink-vue/public/UEditor22/dialogs/table/edittd.html deleted file mode 100644 index 49a52f7..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/table/edittd.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - -
    - - -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/table/edittip.html b/yshop-drink-vue/public/UEditor22/dialogs/table/edittip.html deleted file mode 100644 index 954f7bb..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/table/edittip.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - 表格删除提示 - - - - -
    -
    - -
    -
    - -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/config.js b/yshop-drink-vue/public/UEditor22/dialogs/template/config.js deleted file mode 100644 index 42e474b..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/template/config.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:00 - * To change this template use File | Settings | File Templates. - */ -var templates = [ - { - "pre":"pre0.png", - 'title':lang.blank, - 'preHtml':'

     欢迎使用UEditor!

    ', - "html":'

    欢迎使用UEditor!

    ' - - }, - { - "pre":"pre1.png", - 'title':lang.blog, - 'preHtml':'

    深入理解Range

    UEditor二次开发

    什么是Range

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。


    Range能干什么

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。

    ', - "html":'

    [键入文档标题]

    [键入文档副标题]

    [标题 1]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。

    [标题 2]

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。 您还可以使用“开始”选项卡上的其他控件来直接设置文本格式。大多数控件都允许您选择是使用当前主题外观,还是使用某种直接指定的格式。

    [标题 3]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。


    ' - - }, - { - "pre":"pre2.png", - 'title':lang.resume, - 'preHtml':'

    WEB前端开发简历

    插

    入

    照

    片

    联系电话:[键入您的电话]

    电子邮件:[键入您的电子邮件地址]

    家庭住址:[键入您的地址]

    目标职位

    WEB前端研发工程师

    学历

    1. [起止时间] [学校名称] [所学专业] [所获学位]

    工作经验


    ', - "html":'

    [此处键入简历标题]


    【此处插入照片】


    联系电话:[键入您的电话]


    电子邮件:[键入您的电子邮件地址]


    家庭住址:[键入您的地址]


    目标职位

    [此处键入您的期望职位]

    学历

    1. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    2. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    工作经验

    1. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

      2. [键入负责项目] [键入项目简介]

    2. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

    掌握技能

     [这里可以键入您所掌握的技能]

    ' - - }, - { - "pre":"pre3.png", - 'title':lang.richText, - 'preHtml':'

    [此处键入文章标题]

    图文混排方法

    图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文


    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!

    ', - "html":'


    [此处键入文章标题]

    图文混排方法

    1. 图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文本


    2. 图片居右,文字围绕图片排版

    方法:在文字前面插入图片,设置居右对齐,然后即可在左边输入多行文本


    3. 图片居中环绕排版

    方法:亲,这个真心没有办法。。。



    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!


    占位


    占位


    占位


    占位


    占位



    ' - }, - { - "pre":"pre4.png", - 'title':lang.sciPapers, - 'preHtml':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的


    ', - 'html':'

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    来个列表瞅瞅:

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的

    这里可以多行

    右边是图片

    绝对没有问题的,不信你也可以试试看


    ' - } -]; \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/bg.gif b/yshop-drink-vue/public/UEditor22/dialogs/template/images/bg.gif deleted file mode 100644 index 8c1d10a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/bg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre0.png b/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre0.png deleted file mode 100644 index 8f3c16a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre0.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre1.png b/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre1.png deleted file mode 100644 index 5a03f96..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre1.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre2.png b/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre2.png deleted file mode 100644 index 5a55672..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre2.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre3.png b/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre3.png deleted file mode 100644 index d852d29..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre3.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre4.png b/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre4.png deleted file mode 100644 index 0d7bc72..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/template/images/pre4.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/template.css b/yshop-drink-vue/public/UEditor22/dialogs/template/template.css deleted file mode 100644 index 2658bd2..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/template/template.css +++ /dev/null @@ -1,18 +0,0 @@ -.wrap{ padding: 5px;font-size: 14px;} -.left{width:425px;float: left;} -.right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} -.right .pre{height: 332px;overflow-y: auto;} -.right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} -.right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} -.right .preitem img{display: block;margin: 0 auto;width:100px;} -.clear{clear: both;} -.top{height:26px;line-height: 26px;padding: 5px;} -.bottom{height:320px;width:100%;margin: 0 auto;} -.transparent{ background: url("images/bg.gif") repeat;} -.bottom table tr td{border:1px dashed #ccc;} -#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} -.border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} -p{margin: 5px 0} -table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} -li{clear:both} -ol{padding-left:40px; } \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/template.html b/yshop-drink-vue/public/UEditor22/dialogs/template/template.html deleted file mode 100644 index 9d71ece..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/template/template.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - - - - diff --git a/yshop-drink-vue/public/UEditor22/dialogs/template/template.js b/yshop-drink-vue/public/UEditor22/dialogs/template/template.js deleted file mode 100644 index 0f1cdad..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/template/template.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: xuheng - * Date: 12-8-8 - * Time: 下午2:09 - * To change this template use File | Settings | File Templates. - */ -(function () { - var me = editor, - preview = $G( "preview" ), - preitem = $G( "preitem" ), - tmps = templates, - currentTmp; - var initPre = function () { - var str = ""; - for ( var i = 0, tmp; tmp = tmps[i++]; ) { - str += '
    '; - } - preitem.innerHTML = str; - }; - var pre = function ( n ) { - var tmp = tmps[n - 1]; - currentTmp = tmp; - clearItem(); - domUtils.setStyles( preitem.childNodes[n - 1], { - "background-color":"lemonChiffon", - "border":"#ccc 1px solid" - } ); - preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; - }; - var clearItem = function () { - var items = preitem.children; - for ( var i = 0, item; item = items[i++]; ) { - domUtils.setStyles( item, { - "background-color":"", - "border":"white 1px solid" - } ); - } - }; - dialog.onok = function () { - if ( !$G( "issave" ).checked ){ - me.execCommand( "cleardoc" ); - } - var obj = { - html:currentTmp && currentTmp.html - }; - me.execCommand( "template", obj ); - }; - initPre(); - window.pre = pre; - pre(2) - -})(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/bg.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/bg.png deleted file mode 100644 index 580be0a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/center_focus.jpg b/yshop-drink-vue/public/UEditor22/dialogs/video/images/center_focus.jpg deleted file mode 100644 index 262b029..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/center_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.gif b/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.gif deleted file mode 100644 index d8c02c2..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.png deleted file mode 100644 index 3ff82c8..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/file-icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.gif b/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.gif deleted file mode 100644 index 78459de..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.png deleted file mode 100644 index 12e4700..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/image.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/image.png deleted file mode 100644 index 19699f6..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/image.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/left_focus.jpg b/yshop-drink-vue/public/UEditor22/dialogs/video/images/left_focus.jpg deleted file mode 100644 index 7886d27..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/left_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/none_focus.jpg b/yshop-drink-vue/public/UEditor22/dialogs/video/images/none_focus.jpg deleted file mode 100644 index 7c768dc..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/none_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/progress.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/progress.png deleted file mode 100644 index 717c486..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/progress.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/right_focus.jpg b/yshop-drink-vue/public/UEditor22/dialogs/video/images/right_focus.jpg deleted file mode 100644 index 173e10d..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/right_focus.jpg and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.gif b/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.gif deleted file mode 100644 index 8d4f311..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.png b/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.png deleted file mode 100644 index 94f968d..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/video/images/success.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/video.css b/yshop-drink-vue/public/UEditor22/dialogs/video/video.css deleted file mode 100644 index 8a17284..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/video/video.css +++ /dev/null @@ -1,635 +0,0 @@ -@charset "utf-8"; -.wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative} -.tabbody{height: 335px;} -.tabbody .panel { - position: absolute; - width: 0; - height: 0; - background: #fff; - overflow: hidden; - display: none; -} -.tabbody .panel.focus { - width: 100%; - height: 335px; - display: block; -} - -.tabbody .panel table td{vertical-align: middle;} -#videoUrl { - width: 490px; - height: 21px; - line-height: 21px; - margin: 8px 5px; - background: #FFF; - border: 1px solid #d7d7d7; -} -#videoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;} -#searchList{width: 570px;overflow: auto;zoom:1;height: 270px;} -#searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;} -#searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*不用缩略图*/ -#searchList p{margin-left: 10px;} -#videoType{ - width: 65px; - height: 23px; - line-height: 22px; - border: 1px solid #d7d7d7; -} -#videoSearchBtn,#videoSearchReset{ - /*width: 80px;*/ - height: 25px; - line-height: 25px; - background: #eee; - border: 1px solid #d7d7d7; - cursor: pointer; - padding: 0 5px; -} - - - -#preview{position: relative;width: 420px;padding:0;overflow: hidden; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left} -#preview .previewMsg {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color: #666;} -#preview .previewMsg span{display:block;margin: 125px auto 0 auto;text-align:center;font-size:18px;color:#fff;} -#preview .previewVideo {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;} -.edui-video-wrapper fieldset{ - border: 1px solid #ddd; - padding-left: 5px; - margin-bottom: 20px; - padding-bottom: 5px; - width: 115px; -} - -#videoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;} -fieldset{ - border: 1px solid #ddd; - padding-left: 5px; - margin-bottom: 20px; - padding-bottom: 5px; - width: 115px; -} -fieldset legend{font-weight: bold;} -fieldset p{line-height: 30px;} -fieldset input.txt{ - width: 65px; - height: 21px; - line-height: 21px; - margin: 8px 5px; - background: #FFF; - border: 1px solid #d7d7d7; -} -label.url{font-weight: bold;margin-left: 5px;color: #06c;} -#videoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;} -#videoFloat .focus{opacity: 1;filter: alpha(opacity = 100)} -span.view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue} - - - - -/* upload video */ -.tabbody #upload.panel { - width: 0; - height: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - background: #fff; - display: block; -} -.tabbody #upload.panel.focus { - width: 100%; - height: 335px; - display: block; - clip: auto; -} -#upload_alignment div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;} -#upload_alignment .focus{opacity: 1;filter: alpha(opacity = 100)} -#upload_left { width:427px; float:left; } -#upload_left .controller { height: 30px; clear: both; } -#uploadVideoInfo{margin-top:10px;float:right;padding-right:8px;} - -#upload .queueList { - margin: 0; -} - -#upload p { - margin: 0; -} - -.element-invisible { - width: 0 !important; - height: 0 !important; - border: 0; - padding: 0; - margin: 0; - overflow: hidden; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); -} - -#upload .placeholder { - margin: 10px; - margin-right:0; - border: 2px dashed #e6e6e6; - *border: 0px dashed #e6e6e6; - height: 161px; - padding-top: 150px; - text-align: center; - width: 97%; - float: left; - background: url(./images/image.png) center 70px no-repeat; - color: #cccccc; - font-size: 18px; - position: relative; - top:0; - *margin-left: 0; - *left: 10px; -} - -#upload .placeholder .webuploader-pick { - font-size: 18px; - background: #00b7ee; - border-radius: 3px; - line-height: 44px; - padding: 0 30px; - *width: 120px; - color: #fff; - display: inline-block; - margin: 0 auto 20px auto; - cursor: pointer; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} - -#upload .placeholder .webuploader-pick-hover { - background: #00a2d4; -} - - -#filePickerContainer { - text-align: center; -} - -#upload .placeholder .flashTip { - color: #666666; - font-size: 12px; - position: absolute; - width: 100%; - text-align: center; - bottom: 20px; -} - -#upload .placeholder .flashTip a { - color: #0785d1; - text-decoration: none; -} - -#upload .placeholder .flashTip a:hover { - text-decoration: underline; -} - -#upload .placeholder.webuploader-dnd-over { - border-color: #999999; -} - -#upload .filelist { - list-style: none; - margin: 0; - padding: 0; - overflow-x: hidden; - overflow-y: auto; - position: relative; - height: 285px; -} - -#upload .filelist:after { - content: ''; - display: block; - width: 0; - height: 0; - overflow: hidden; - clear: both; -} - -#upload .filelist li { - width: 113px; - height: 113px; - background: url(./images/bg.png); - text-align: center; - margin: 15px 0 0 20px; - *margin: 15px 0 0 15px; - position: relative; - display: block; - float: left; - overflow: hidden; - font-size: 12px; -} - -#upload .filelist li p.log { - position: relative; - top: -45px; -} - -#upload .filelist li p.title { - position: absolute; - top: 0; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - top: 5px; - text-indent: 5px; - text-align: left; -} - -#upload .filelist li p.progress { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 8px; - overflow: hidden; - z-index: 50; - margin: 0; - border-radius: 0; - background: none; - -webkit-box-shadow: 0 0 0; -} - -#upload .filelist li p.progress span { - display: none; - overflow: hidden; - width: 0; - height: 100%; - background: #1483d8 url(./images/progress.png) repeat-x; - - -webit-transition: width 200ms linear; - -moz-transition: width 200ms linear; - -o-transition: width 200ms linear; - -ms-transition: width 200ms linear; - transition: width 200ms linear; - - -webkit-animation: progressmove 2s linear infinite; - -moz-animation: progressmove 2s linear infinite; - -o-animation: progressmove 2s linear infinite; - -ms-animation: progressmove 2s linear infinite; - animation: progressmove 2s linear infinite; - - -webkit-transform: translateZ(0); -} - -@-webkit-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@-moz-keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -@keyframes progressmove { - 0% { - background-position: 0 0; - } - 100% { - background-position: 17px 0; - } -} - -#upload .filelist li p.imgWrap { - position: relative; - z-index: 2; - line-height: 113px; - vertical-align: middle; - overflow: hidden; - width: 113px; - height: 113px; - - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - - -webit-transition: 200ms ease-out; - -moz-transition: 200ms ease-out; - -o-transition: 200ms ease-out; - -ms-transition: 200ms ease-out; - transition: 200ms ease-out; -} -#upload .filelist li p.imgWrap.notimage { - margin-top: 0; - width: 111px; - height: 111px; - border: 1px #eeeeee solid; -} -#upload .filelist li p.imgWrap.notimage i.file-preview { - margin-top: 15px; -} - -#upload .filelist li img { - width: 100%; -} - -#upload .filelist li p.error { - background: #f43838; - color: #fff; - position: absolute; - bottom: 0; - left: 0; - height: 28px; - line-height: 28px; - width: 100%; - z-index: 100; - display:none; -} - -#upload .filelist li .success { - display: block; - position: absolute; - left: 0; - bottom: 0; - height: 40px; - width: 100%; - z-index: 200; - background: url(./images/success.png) no-repeat right bottom; - background-image: url(./images/success.gif) \9; -} - -#upload .filelist li.filePickerBlock { - width: 113px; - height: 113px; - background: url(./images/image.png) no-repeat center 12px; - border: 1px solid #eeeeee; - border-radius: 0; -} -#upload .filelist li.filePickerBlock div.webuploader-pick { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - background: none; - font-size: 0; -} - -#upload .filelist div.file-panel { - position: absolute; - height: 0; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0; - background: rgba(0, 0, 0, 0.5); - width: 100%; - top: 0; - left: 0; - overflow: hidden; - z-index: 300; -} - -#upload .filelist div.file-panel span { - width: 24px; - height: 24px; - display: inline; - float: right; - text-indent: -9999px; - overflow: hidden; - background: url(./images/icons.png) no-repeat; - background: url(./images/icons.gif) no-repeat \9; - margin: 5px 1px 1px; - cursor: pointer; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -#upload .filelist div.file-panel span.rotateLeft { - display:none; - background-position: 0 -24px; -} - -#upload .filelist div.file-panel span.rotateLeft:hover { - background-position: 0 0; -} - -#upload .filelist div.file-panel span.rotateRight { - display:none; - background-position: -24px -24px; -} - -#upload .filelist div.file-panel span.rotateRight:hover { - background-position: -24px 0; -} - -#upload .filelist div.file-panel span.cancel { - background-position: -48px -24px; -} - -#upload .filelist div.file-panel span.cancel:hover { - background-position: -48px 0; -} - -#upload .statusBar { - height: 45px; - border-bottom: 1px solid #dadada; - margin: 0 10px; - padding: 0; - line-height: 45px; - vertical-align: middle; - position: relative; -} - -#upload .statusBar .progress { - border: 1px solid #1483d8; - width: 198px; - background: #fff; - height: 18px; - position: absolute; - top: 12px; - display: none; - text-align: center; - line-height: 18px; - color: #6dbfff; - margin: 0 10px 0 0; -} -#upload .statusBar .progress span.percentage { - width: 0; - height: 100%; - left: 0; - top: 0; - background: #1483d8; - position: absolute; -} -#upload .statusBar .progress span.text { - position: relative; - z-index: 10; -} - -#upload .statusBar .info { - display: inline-block; - font-size: 14px; - color: #666666; -} - -#upload .statusBar .btns { - position: absolute; - top: 7px; - right: 0; - line-height: 30px; -} - -#filePickerBtn { - display: inline-block; - float: left; -} -#upload .statusBar .btns .webuploader-pick, -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-uploading, -#upload .statusBar .btns .uploadBtn.state-paused { - background: #ffffff; - border: 1px solid #cfcfcf; - color: #565656; - padding: 0 18px; - display: inline-block; - border-radius: 3px; - margin-left: 10px; - cursor: pointer; - font-size: 14px; - float: left; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#upload .statusBar .btns .webuploader-pick-hover, -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-uploading:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover { - background: #f0f0f0; -} - -#upload .statusBar .btns .uploadBtn, -#upload .statusBar .btns .uploadBtn.state-paused{ - background: #00b7ee; - color: #fff; - border-color: transparent; -} -#upload .statusBar .btns .uploadBtn:hover, -#upload .statusBar .btns .uploadBtn.state-paused:hover{ - background: #00a2d4; -} - -#upload .statusBar .btns .uploadBtn.disabled { - pointer-events: none; - filter:alpha(opacity=60); - -moz-opacity:0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - - -/* 在线文件的文件预览图标 */ -i.file-preview { - display: block; - margin: 10px auto; - width: 70px; - height: 70px; - background-image: url("./images/file-icons.png"); - background-image: url("./images/file-icons.gif") \9; - background-position: -140px center; - background-repeat: no-repeat; -} -i.file-preview.file-type-dir{ - background-position: 0 center; -} -i.file-preview.file-type-file{ - background-position: -140px center; -} -i.file-preview.file-type-filelist{ - background-position: -210px center; -} -i.file-preview.file-type-zip, -i.file-preview.file-type-rar, -i.file-preview.file-type-7z, -i.file-preview.file-type-tar, -i.file-preview.file-type-gz, -i.file-preview.file-type-bz2{ - background-position: -280px center; -} -i.file-preview.file-type-xls, -i.file-preview.file-type-xlsx{ - background-position: -350px center; -} -i.file-preview.file-type-doc, -i.file-preview.file-type-docx{ - background-position: -420px center; -} -i.file-preview.file-type-ppt, -i.file-preview.file-type-pptx{ - background-position: -490px center; -} -i.file-preview.file-type-vsd{ - background-position: -560px center; -} -i.file-preview.file-type-pdf{ - background-position: -630px center; -} -i.file-preview.file-type-txt, -i.file-preview.file-type-md, -i.file-preview.file-type-json, -i.file-preview.file-type-htm, -i.file-preview.file-type-xml, -i.file-preview.file-type-html, -i.file-preview.file-type-js, -i.file-preview.file-type-css, -i.file-preview.file-type-php, -i.file-preview.file-type-jsp, -i.file-preview.file-type-asp{ - background-position: -700px center; -} -i.file-preview.file-type-apk{ - background-position: -770px center; -} -i.file-preview.file-type-exe{ - background-position: -840px center; -} -i.file-preview.file-type-ipa{ - background-position: -910px center; -} -i.file-preview.file-type-mp4, -i.file-preview.file-type-swf, -i.file-preview.file-type-mkv, -i.file-preview.file-type-avi, -i.file-preview.file-type-flv, -i.file-preview.file-type-mov, -i.file-preview.file-type-mpg, -i.file-preview.file-type-mpeg, -i.file-preview.file-type-ogv, -i.file-preview.file-type-webm, -i.file-preview.file-type-rm, -i.file-preview.file-type-rmvb{ - background-position: -980px center; -} -i.file-preview.file-type-ogg, -i.file-preview.file-type-wav, -i.file-preview.file-type-wmv, -i.file-preview.file-type-mid, -i.file-preview.file-type-mp3{ - background-position: -1050px center; -} -i.file-preview.file-type-jpg, -i.file-preview.file-type-jpeg, -i.file-preview.file-type-gif, -i.file-preview.file-type-bmp, -i.file-preview.file-type-png, -i.file-preview.file-type-psd{ - background-position: -140px center; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/video.html b/yshop-drink-vue/public/UEditor22/dialogs/video/video.html deleted file mode 100644 index 14f10f4..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/video/video.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - 0% - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    -
    -
    -
    -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/video/video.js b/yshop-drink-vue/public/UEditor22/dialogs/video/video.js deleted file mode 100644 index 7b9378b..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/video/video.js +++ /dev/null @@ -1,797 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-2-20 - * Time: 上午11:19 - * To change this template use File | Settings | File Templates. - */ - -(function(){ - - var video = {}, - uploadVideoList = [], - isModifyUploadVideo = false, - uploadFile; - - window.onload = function(){ - $focus($G("videoUrl")); - initTabs(); - initVideo(); - initUpload(); - }; - - /* 初始化tab标签 */ - function initTabs(){ - var tabs = $G('tabHeads').children; - for (var i = 0; i < tabs.length; i++) { - domUtils.on(tabs[i], "click", function (e) { - var j, bodyId, target = e.target || e.srcElement; - for (j = 0; j < tabs.length; j++) { - bodyId = tabs[j].getAttribute('data-content-id'); - if(tabs[j] == target){ - domUtils.addClass(tabs[j], 'focus'); - domUtils.addClass($G(bodyId), 'focus'); - }else { - domUtils.removeClasses(tabs[j], 'focus'); - domUtils.removeClasses($G(bodyId), 'focus'); - } - } - }); - } - } - - function initVideo(){ - createAlignButton( ["videoFloat", "upload_alignment"] ); - addUrlChangeListener($G("videoUrl")); - addOkListener(); - - //编辑视频时初始化相关信息 - (function(){ - var img = editor.selection.getRange().getClosedNode(),url; - if(img && img.className){ - var hasFakedClass = (img.className == "edui-faked-video"), - hasUploadClass = img.className.indexOf("edui-upload-video")!=-1; - if(hasFakedClass || hasUploadClass) { - $G("videoUrl").value = url = img.getAttribute("_url"); - $G("videoWidth").value = img.width; - $G("videoHeight").value = img.height; - var align = domUtils.getComputedStyle(img,"float"), - parentAlign = domUtils.getComputedStyle(img.parentNode,"text-align"); - updateAlignButton(parentAlign==="center"?"center":align); - } - if(hasUploadClass) { - isModifyUploadVideo = true; - } - } - createPreviewVideo(url); - })(); - } - - /** - * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 - */ - function addOkListener(){ - dialog.onok = function(){ - $G("preview").innerHTML = ""; - var currentTab = findFocus("tabHeads","tabSrc"); - switch(currentTab){ - case "video": - return insertSingle(); - break; - case "videoSearch": - return insertSearch("searchList"); - break; - case "upload": - return insertUpload(); - break; - } - }; - dialog.oncancel = function(){ - $G("preview").innerHTML = ""; - }; - } - - /** - * 依据传入的align值更新按钮信息 - * @param align - */ - function updateAlignButton( align ) { - var aligns = $G( "videoFloat" ).children; - for ( var i = 0, ci; ci = aligns[i++]; ) { - if ( ci.getAttribute( "name" ) == align ) { - if ( ci.className !="focus" ) { - ci.className = "focus"; - } - } else { - if ( ci.className =="focus" ) { - ci.className = ""; - } - } - } - } - - /** - * 将单个视频信息插入编辑器中 - */ - function insertSingle(){ - var width = $G("videoWidth"), - height = $G("videoHeight"), - url=$G('videoUrl').value, - align = findFocus("videoFloat","name"); - if(!url) return false; - if ( !checkNum( [width, height] ) ) return false; - editor.execCommand('insertvideo', { - url: convert_url(url), - width: width.value, - height: height.value, - align: align - }, isModifyUploadVideo ? 'upload':null); - } - - /** - * 将元素id下的所有代表视频的图片插入编辑器中 - * @param id - */ - function insertSearch(id){ - var imgs = domUtils.getElementsByTagName($G(id),"img"), - videoObjs=[]; - for(var i=0,img; img=imgs[i++];){ - if(img.getAttribute("selected")){ - videoObjs.push({ - url:img.getAttribute("ue_video_url"), - width:420, - height:280, - align:"none" - }); - } - } - editor.execCommand('insertvideo',videoObjs); - } - - /** - * 找到id下具有focus类的节点并返回该节点下的某个属性 - * @param id - * @param returnProperty - */ - function findFocus( id, returnProperty ) { - var tabs = $G( id ).children, - property; - for ( var i = 0, ci; ci = tabs[i++]; ) { - if ( ci.className=="focus" ) { - property = ci.getAttribute( returnProperty ); - break; - } - } - return property; - } - function convert_url(url){ - if ( !url ) return ''; - url = utils.trim(url) - .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf') - .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") - .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1") - .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf") - .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf") - .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf") - .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0") - .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1") - .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1") - .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1"); - - return url; - } - - /** - * 检测传入的所有input框中输入的长宽是否是正数 - * @param nodes input框集合, - */ - function checkNum( nodes ) { - for ( var i = 0, ci; ci = nodes[i++]; ) { - var value = ci.value; - if ( !isNumber( value ) && value) { - alert( lang.numError ); - ci.value = ""; - ci.focus(); - return false; - } - } - return true; - } - - /** - * 数字判断 - * @param value - */ - function isNumber( value ) { - return /(0|^[1-9]\d*$)/.test( value ); - } - - /** - * 创建图片浮动选择按钮 - * @param ids - */ - function createAlignButton( ids ) { - for ( var i = 0, ci; ci = ids[i++]; ) { - var floatContainer = $G( ci ), - nameMaps = {"none":lang['default'], "left":lang.floatLeft, "right":lang.floatRight, "center":lang.block}; - for ( var j in nameMaps ) { - var div = document.createElement( "div" ); - div.setAttribute( "name", j ); - if ( j == "none" ) div.className="focus"; - div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; - div.setAttribute( "title", nameMaps[j] ); - floatContainer.appendChild( div ); - } - switchSelect( ci ); - } - } - - /** - * 选择切换 - * @param selectParentId - */ - function switchSelect( selectParentId ) { - var selects = $G( selectParentId ).children; - for ( var i = 0, ci; ci = selects[i++]; ) { - domUtils.on( ci, "click", function () { - for ( var j = 0, cj; cj = selects[j++]; ) { - cj.className = ""; - cj.removeAttribute && cj.removeAttribute( "class" ); - } - this.className = "focus"; - } ) - } - } - - /** - * 监听url改变事件 - * @param url - */ - function addUrlChangeListener(url){ - if (browser.ie) { - url.onpropertychange = function () { - createPreviewVideo( this.value ); - } - } else { - url.addEventListener( "input", function () { - createPreviewVideo( this.value ); - }, false ); - } - } - - /** - * 根据url生成视频预览 - * @param url - */ - function createPreviewVideo(url){ - if ( !url )return; - - var conUrl = convert_url(url); - - conUrl = utils.unhtmlForUrl(conUrl); - - $G("preview").innerHTML = '
    '+lang.urlError+'
    '+ - '' + - ''; - } - - - /* 插入上传视频 */ - function insertUpload(){ - var videoObjs=[], - uploadDir = editor.getOpt('videoUrlPrefix'), - width = parseInt($G('upload_width').value, 10) || 420, - height = parseInt($G('upload_height').value, 10) || 280, - align = findFocus("upload_alignment","name") || 'none'; - for(var key in uploadVideoList) { - var file = uploadVideoList[key]; - videoObjs.push({ - url: uploadDir + file.url, - width:width, - height:height, - align:align - }); - } - - var count = uploadFile.getQueueCount(); - if (count) { - $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); - return false; - } else { - editor.execCommand('insertvideo', videoObjs, 'upload'); - } - } - - /*初始化上传标签*/ - function initUpload(){ - uploadFile = new UploadFile('queueList'); - } - - - /* 上传附件 */ - function UploadFile(target) { - this.$wrap = target.constructor == String ? $('#' + target) : $(target); - this.init(); - } - UploadFile.prototype = { - init: function () { - this.fileList = []; - this.initContainer(); - this.initUploader(); - }, - initContainer: function () { - this.$queue = this.$wrap.find('.filelist'); - }, - /* 初始化容器 */ - initUploader: function () { - var _this = this, - $ = jQuery, // just in case. Make sure it's not an other libaray. - $wrap = _this.$wrap, - // 图片容器 - $queue = $wrap.find('.filelist'), - // 状态栏,包括进度和控制按钮 - $statusBar = $wrap.find('.statusBar'), - // 文件总体选择信息。 - $info = $statusBar.find('.info'), - // 上传按钮 - $upload = $wrap.find('.uploadBtn'), - // 上传按钮 - $filePickerBtn = $wrap.find('.filePickerBtn'), - // 上传按钮 - $filePickerBlock = $wrap.find('.filePickerBlock'), - // 没选择文件之前的内容。 - $placeHolder = $wrap.find('.placeholder'), - // 总体进度条 - $progress = $statusBar.find('.progress').hide(), - // 添加的文件数量 - fileCount = 0, - // 添加的文件总大小 - fileSize = 0, - // 优化retina, 在retina下这个值是2 - ratio = window.devicePixelRatio || 1, - // 缩略图大小 - thumbnailWidth = 113 * ratio, - thumbnailHeight = 113 * ratio, - // 可能有pedding, ready, uploading, confirm, done. - state = '', - // 所有文件的进度信息,key为file id - percentages = {}, - supportTransition = (function () { - var s = document.createElement('p').style, - r = 'transition' in s || - 'WebkitTransition' in s || - 'MozTransition' in s || - 'msTransition' in s || - 'OTransition' in s; - s = null; - return r; - })(), - // WebUploader实例 - uploader, - actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), - fileMaxSize = editor.getOpt('videoMaxSize'), - acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; - - if (!WebUploader.Uploader.support()) { - $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); - return; - } else if (!editor.getOpt('videoActionName')) { - $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); - return; - } - - uploader = _this.uploader = WebUploader.create({ - pick: { - id: '#filePickerReady', - label: lang.uploadSelectFile - }, - swf: '../../third-party/webuploader/Uploader.swf', - server: actionUrl, - fileVal: editor.getOpt('videoFieldName'), - duplicate: true, - fileSingleSizeLimit: fileMaxSize, - compress: false - }); - uploader.addButton({ - id: '#filePickerBlock' - }); - uploader.addButton({ - id: '#filePickerBtn', - label: lang.uploadAddFile - }); - - setState('pedding'); - - // 当有文件添加进来时执行,负责view的创建 - function addFile(file) { - var $li = $('
  • ' + - '

    ' + file.name + '

    ' + - '

    ' + - '

    ' + - '
  • '), - - $btns = $('
    ' + - '' + lang.uploadDelete + '' + - '' + lang.uploadTurnRight + '' + - '' + lang.uploadTurnLeft + '
    ').appendTo($li), - $prgress = $li.find('p.progress span'), - $wrap = $li.find('p.imgWrap'), - $info = $('

    ').hide().appendTo($li), - - showError = function (code) { - switch (code) { - case 'exceed_size': - text = lang.errorExceedSize; - break; - case 'interrupt': - text = lang.errorInterrupt; - break; - case 'http': - text = lang.errorHttp; - break; - case 'not_allow_type': - text = lang.errorFileType; - break; - default: - text = lang.errorUploadRetry; - break; - } - $info.text(text).show(); - }; - - if (file.getStatus() === 'invalid') { - showError(file.statusText); - } else { - $wrap.text(lang.uploadPreview); - if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { - $wrap.empty().addClass('notimage').append('' + - '' + file.name + ''); - } else { - if (browser.ie && browser.version <= 7) { - $wrap.text(lang.uploadNoPreview); - } else { - uploader.makeThumb(file, function (error, src) { - if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { - $wrap.text(lang.uploadNoPreview); - } else { - var $img = $(''); - $wrap.empty().append($img); - $img.on('error', function () { - $wrap.text(lang.uploadNoPreview); - }); - } - }, thumbnailWidth, thumbnailHeight); - } - } - percentages[ file.id ] = [ file.size, 0 ]; - file.rotation = 0; - - /* 检查文件格式 */ - if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { - showError('not_allow_type'); - uploader.removeFile(file); - } - } - - file.on('statuschange', function (cur, prev) { - if (prev === 'progress') { - $prgress.hide().width(0); - } else if (prev === 'queued') { - $li.off('mouseenter mouseleave'); - $btns.remove(); - } - // 成功 - if (cur === 'error' || cur === 'invalid') { - showError(file.statusText); - percentages[ file.id ][ 1 ] = 1; - } else if (cur === 'interrupt') { - showError('interrupt'); - } else if (cur === 'queued') { - percentages[ file.id ][ 1 ] = 0; - } else if (cur === 'progress') { - $info.hide(); - $prgress.css('display', 'block'); - } else if (cur === 'complete') { - } - - $li.removeClass('state-' + prev).addClass('state-' + cur); - }); - - $li.on('mouseenter', function () { - $btns.stop().animate({height: 30}); - }); - $li.on('mouseleave', function () { - $btns.stop().animate({height: 0}); - }); - - $btns.on('click', 'span', function () { - var index = $(this).index(), - deg; - - switch (index) { - case 0: - uploader.removeFile(file); - return; - case 1: - file.rotation += 90; - break; - case 2: - file.rotation -= 90; - break; - } - - if (supportTransition) { - deg = 'rotate(' + file.rotation + 'deg)'; - $wrap.css({ - '-webkit-transform': deg, - '-mos-transform': deg, - '-o-transform': deg, - 'transform': deg - }); - } else { - $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); - } - - }); - - $li.insertBefore($filePickerBlock); - } - - // 负责view的销毁 - function removeFile(file) { - var $li = $('#' + file.id); - delete percentages[ file.id ]; - updateTotalProgress(); - $li.off().find('.file-panel').off().end().remove(); - } - - function updateTotalProgress() { - var loaded = 0, - total = 0, - spans = $progress.children(), - percent; - - $.each(percentages, function (k, v) { - total += v[ 0 ]; - loaded += v[ 0 ] * v[ 1 ]; - }); - - percent = total ? loaded / total : 0; - - spans.eq(0).text(Math.round(percent * 100) + '%'); - spans.eq(1).css('width', Math.round(percent * 100) + '%'); - updateStatus(); - } - - function setState(val, files) { - - if (val != state) { - - var stats = uploader.getStats(); - - $upload.removeClass('state-' + state); - $upload.addClass('state-' + val); - - switch (val) { - - /* 未选择文件 */ - case 'pedding': - $queue.addClass('element-invisible'); - $statusBar.addClass('element-invisible'); - $placeHolder.removeClass('element-invisible'); - $progress.hide(); $info.hide(); - uploader.refresh(); - break; - - /* 可以开始上传 */ - case 'ready': - $placeHolder.addClass('element-invisible'); - $queue.removeClass('element-invisible'); - $statusBar.removeClass('element-invisible'); - $progress.hide(); $info.show(); - $upload.text(lang.uploadStart); - uploader.refresh(); - break; - - /* 上传中 */ - case 'uploading': - $progress.show(); $info.hide(); - $upload.text(lang.uploadPause); - break; - - /* 暂停上传 */ - case 'paused': - $progress.show(); $info.hide(); - $upload.text(lang.uploadContinue); - break; - - case 'confirm': - $progress.show(); $info.hide(); - $upload.text(lang.uploadStart); - - stats = uploader.getStats(); - if (stats.successNum && !stats.uploadFailNum) { - setState('finish'); - return; - } - break; - - case 'finish': - $progress.hide(); $info.show(); - if (stats.uploadFailNum) { - $upload.text(lang.uploadRetry); - } else { - $upload.text(lang.uploadStart); - } - break; - } - - state = val; - updateStatus(); - - } - - if (!_this.getQueueCount()) { - $upload.addClass('disabled') - } else { - $upload.removeClass('disabled') - } - - } - - function updateStatus() { - var text = '', stats; - - if (state === 'ready') { - text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); - } else if (state === 'confirm') { - stats = uploader.getStats(); - if (stats.uploadFailNum) { - text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); - } - } else { - stats = uploader.getStats(); - text = lang.updateStatusFinish.replace('_', fileCount). - replace('_KB', WebUploader.formatSize(fileSize)). - replace('_', stats.successNum); - - if (stats.uploadFailNum) { - text += lang.updateStatusError.replace('_', stats.uploadFailNum); - } - } - - $info.html(text); - } - - uploader.on('fileQueued', function (file) { - fileCount++; - fileSize += file.size; - - if (fileCount === 1) { - $placeHolder.addClass('element-invisible'); - $statusBar.show(); - } - - addFile(file); - }); - - uploader.on('fileDequeued', function (file) { - fileCount--; - fileSize -= file.size; - - removeFile(file); - updateTotalProgress(); - }); - - uploader.on('filesQueued', function (file) { - if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { - setState('ready'); - } - updateTotalProgress(); - }); - - uploader.on('all', function (type, files) { - switch (type) { - case 'uploadFinished': - setState('confirm', files); - break; - case 'startUpload': - /* 添加额外的GET参数 */ - var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); - uploader.option('server', url); - setState('uploading', files); - break; - case 'stopUpload': - setState('paused', files); - break; - } - }); - - uploader.on('uploadBeforeSend', function (file, data, header) { - //这里可以通过data对象添加POST参数 - header['X_Requested_With'] = 'XMLHttpRequest'; - // HaoChuan9421 - if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){ - for(var key in editor.options.headers){ - header[key] = editor.options.headers[key] - } - } - }); - - uploader.on('uploadProgress', function (file, percentage) { - var $li = $('#' + file.id), - $percent = $li.find('.progress span'); - - $percent.css('width', percentage * 100 + '%'); - percentages[ file.id ][ 1 ] = percentage; - updateTotalProgress(); - }); - - uploader.on('uploadSuccess', function (file, ret) { - var $file = $('#' + file.id); - try { - var responseText = (ret._raw || ret), - json = utils.str2json(responseText); - if (json.state == 'SUCCESS') { - uploadVideoList.push({ - 'url': json.url, - 'type': json.type, - 'original':json.original - }); - $file.append(''); - } else { - $file.find('.error').text(json.state).show(); - } - } catch (e) { - $file.find('.error').text(lang.errorServerUpload).show(); - } - }); - - uploader.on('uploadError', function (file, code) { - }); - uploader.on('error', function (code, file) { - if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') { - addFile(file); - } - }); - uploader.on('uploadComplete', function (file, ret) { - }); - - $upload.on('click', function () { - if ($(this).hasClass('disabled')) { - return false; - } - - if (state === 'ready') { - uploader.upload(); - } else if (state === 'paused') { - uploader.upload(); - } else if (state === 'uploading') { - uploader.stop(); - } - }); - - $upload.addClass('state-' + state); - updateTotalProgress(); - }, - getQueueCount: function () { - var file, i, status, readyFile = 0, files = this.uploader.getFiles(); - for (i = 0; file = files[i++]; ) { - status = file.getStatus(); - if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; - } - return readyFile; - }, - refresh: function(){ - this.uploader.refresh(); - } - }; - -})(); diff --git a/yshop-drink-vue/public/UEditor22/dialogs/webapp/webapp.html b/yshop-drink-vue/public/UEditor22/dialogs/webapp/webapp.html deleted file mode 100644 index 73f8dc2..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/webapp/webapp.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - -
    -
    -
    - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/fClipboard_ueditor.swf b/yshop-drink-vue/public/UEditor22/dialogs/wordimage/fClipboard_ueditor.swf deleted file mode 100644 index ac5d27f..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/fClipboard_ueditor.swf and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/imageUploader.swf b/yshop-drink-vue/public/UEditor22/dialogs/wordimage/imageUploader.swf deleted file mode 100644 index 2a554ca..0000000 Binary files a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/imageUploader.swf and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/tangram.js b/yshop-drink-vue/public/UEditor22/dialogs/wordimage/tangram.js deleted file mode 100644 index 2ebd8fd..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/tangram.js +++ /dev/null @@ -1,1495 +0,0 @@ -// Copyright (c) 2009, Baidu Inc. All rights reserved. -// -// Licensed under the BSD License -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http:// tangram.baidu.com/license.html -// -// 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. - /** - * @namespace T Tangram七巧板 - * @name T - * @version 1.6.0 -*/ - -/** - * 声明baidu包 - * @author: allstar, erik, meizz, berg - */ -var T, - baidu = T = baidu || {version: "1.5.0"}; -baidu.guid = "$BAIDU$"; -baidu.$$ = window[baidu.guid] = window[baidu.guid] || {global:{}}; - -/** - * 使用flash资源封装的一些功能 - * @namespace baidu.flash - */ -baidu.flash = baidu.flash || {}; - -/** - * 操作dom的方法 - * @namespace baidu.dom - */ -baidu.dom = baidu.dom || {}; - - -/** - * 从文档中获取指定的DOM元素 - * @name baidu.dom.g - * @function - * @grammar baidu.dom.g(id) - * @param {string|HTMLElement} id 元素的id或DOM元素. - * @shortcut g,T.G - * @meta standard - * @see baidu.dom.q - * - * @return {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数. - */ -baidu.dom.g = function(id) { - if (!id) return null; - if ('string' == typeof id || id instanceof String) { - return document.getElementById(id); - } else if (id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) { - return id; - } - return null; -}; -baidu.g = baidu.G = baidu.dom.g; - - -/** - * 操作数组的方法 - * @namespace baidu.array - */ - -baidu.array = baidu.array || {}; - - -/** - * 遍历数组中所有元素 - * @name baidu.array.each - * @function - * @grammar baidu.array.each(source, iterator[, thisObject]) - * @param {Array} source 需要遍历的数组 - * @param {Function} iterator 对每个数组元素进行调用的函数,该函数有两个参数,第一个为数组元素,第二个为数组索引值,function (item, index)。 - * @param {Object} [thisObject] 函数调用时的this指针,如果没有此参数,默认是当前遍历的数组 - * @remark - * each方法不支持对Object的遍历,对Object的遍历使用baidu.object.each 。 - * @shortcut each - * @meta standard - * - * @returns {Array} 遍历的数组 - */ - -baidu.each = baidu.array.forEach = baidu.array.each = function (source, iterator, thisObject) { - var returnValue, item, i, len = source.length; - - if ('function' == typeof iterator) { - for (i = 0; i < len; i++) { - item = source[i]; - returnValue = iterator.call(thisObject || source, item, i); - - if (returnValue === false) { - break; - } - } - } - return source; -}; - -/** - * 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。 - * @namespace baidu.lang - */ -baidu.lang = baidu.lang || {}; - - -/** - * 判断目标参数是否为function或Function实例 - * @name baidu.lang.isFunction - * @function - * @grammar baidu.lang.isFunction(source) - * @param {Any} source 目标参数 - * @version 1.2 - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * @meta standard - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isFunction = function (source) { - return '[object Function]' == Object.prototype.toString.call(source); -}; - -/** - * 判断目标参数是否string类型或String对象 - * @name baidu.lang.isString - * @function - * @grammar baidu.lang.isString(source) - * @param {Any} source 目标参数 - * @shortcut isString - * @meta standard - * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isString = function (source) { - return '[object String]' == Object.prototype.toString.call(source); -}; -baidu.isString = baidu.lang.isString; - - -/** - * 判断浏览器类型和特性的属性 - * @namespace baidu.browser - */ -baidu.browser = baidu.browser || {}; - - -/** - * 判断是否为opera浏览器 - * @property opera opera版本号 - * @grammar baidu.browser.opera - * @meta standard - * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome - * @returns {Number} opera版本号 - */ - -/** - * opera 从10开始不是用opera后面的字符串进行版本的判断 - * 在Browser identification最后添加Version + 数字进行版本标识 - * opera后面的数字保持在9.80不变 - */ -baidu.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? + ( RegExp["\x246"] || RegExp["\x242"] ) : undefined; - - -/** - * 在目标元素的指定位置插入HTML代码 - * @name baidu.dom.insertHTML - * @function - * @grammar baidu.dom.insertHTML(element, position, html) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @param {string} position 插入html的位置信息,取值为beforeBegin,afterBegin,beforeEnd,afterEnd - * @param {string} html 要插入的html - * @remark - * - * 对于position参数,大小写不敏感
    - * 参数的意思:beforeBegin<span>afterBegin this is span! beforeEnd</span> afterEnd
    - * 此外,如果使用本函数插入带有script标签的HTML字符串,script标签对应的脚本将不会被执行。 - * - * @shortcut insertHTML - * @meta standard - * - * @returns {HTMLElement} 目标元素 - */ -baidu.dom.insertHTML = function (element, position, html) { - element = baidu.dom.g(element); - var range,begin; - if (element.insertAdjacentHTML && !baidu.browser.opera) { - element.insertAdjacentHTML(position, html); - } else { - range = element.ownerDocument.createRange(); - position = position.toUpperCase(); - if (position == 'AFTERBEGIN' || position == 'BEFOREEND') { - range.selectNodeContents(element); - range.collapse(position == 'AFTERBEGIN'); - } else { - begin = position == 'BEFOREBEGIN'; - range[begin ? 'setStartBefore' : 'setEndAfter'](element); - range.collapse(begin); - } - range.insertNode(range.createContextualFragment(html)); - } - return element; -}; - -baidu.insertHTML = baidu.dom.insertHTML; - -/** - * 操作flash对象的方法,包括创建flash对象、获取flash对象以及判断flash插件的版本号 - * @namespace baidu.swf - */ -baidu.swf = baidu.swf || {}; - - -/** - * 浏览器支持的flash插件版本 - * @property version 浏览器支持的flash插件版本 - * @grammar baidu.swf.version - * @return {String} 版本号 - * @meta standard - */ -baidu.swf.version = (function () { - var n = navigator; - if (n.plugins && n.mimeTypes.length) { - var plugin = n.plugins["Shockwave Flash"]; - if (plugin && plugin.description) { - return plugin.description - .replace(/([a-zA-Z]|\s)+/, "") - .replace(/(\s)+r/, ".") + ".0"; - } - } else if (window.ActiveXObject && !window.opera) { - for (var i = 12; i >= 2; i--) { - try { - var c = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + i); - if (c) { - var version = c.GetVariable("$version"); - return version.replace(/WIN/g,'').replace(/,/g,'.'); - } - } catch(e) {} - } - } -})(); - -/** - * 操作字符串的方法 - * @namespace baidu.string - */ -baidu.string = baidu.string || {}; - - -/** - * 对目标字符串进行html编码 - * @name baidu.string.encodeHTML - * @function - * @grammar baidu.string.encodeHTML(source) - * @param {string} source 目标字符串 - * @remark - * 编码字符有5个:&<>"' - * @shortcut encodeHTML - * @meta standard - * @see baidu.string.decodeHTML - * - * @returns {string} html编码后的字符串 - */ -baidu.string.encodeHTML = function (source) { - return String(source) - .replace(/&/g,'&') - .replace(//g,'>') - .replace(/"/g, """) - .replace(/'/g, "'"); -}; - -baidu.encodeHTML = baidu.string.encodeHTML; - -/** - * 创建flash对象的html字符串 - * @name baidu.swf.createHTML - * @function - * @grammar baidu.swf.createHTML(options) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @see baidu.swf.create - * @meta standard - * @returns {string} flash对象的html字符串 - */ -baidu.swf.createHTML = function (options) { - options = options || {}; - var version = baidu.swf.version, - needVersion = options['ver'] || '6.0.0', - vUnit1, vUnit2, i, k, len, item, tmpOpt = {}, - encodeHTML = baidu.string.encodeHTML; - for (k in options) { - tmpOpt[k] = options[k]; - } - options = tmpOpt; - if (version) { - version = version.split('.'); - needVersion = needVersion.split('.'); - for (i = 0; i < 3; i++) { - vUnit1 = parseInt(version[i], 10); - vUnit2 = parseInt(needVersion[i], 10); - if (vUnit2 < vUnit1) { - break; - } else if (vUnit2 > vUnit1) { - return ''; - } - } - } else { - return ''; - } - - var vars = options['vars'], - objProperties = ['classid', 'codebase', 'id', 'width', 'height', 'align']; - options['align'] = options['align'] || 'middle'; - options['classid'] = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'; - options['codebase'] = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'; - options['movie'] = options['url'] || ''; - delete options['vars']; - delete options['url']; - if ('string' == typeof vars) { - options['flashvars'] = vars; - } else { - var fvars = []; - for (k in vars) { - item = vars[k]; - fvars.push(k + "=" + encodeURIComponent(item)); - } - options['flashvars'] = fvars.join('&'); - } - var str = [''); - var params = { - 'wmode' : 1, - 'scale' : 1, - 'quality' : 1, - 'play' : 1, - 'loop' : 1, - 'menu' : 1, - 'salign' : 1, - 'bgcolor' : 1, - 'base' : 1, - 'allowscriptaccess' : 1, - 'allownetworking' : 1, - 'allowfullscreen' : 1, - 'seamlesstabbing' : 1, - 'devicefont' : 1, - 'swliveconnect' : 1, - 'flashvars' : 1, - 'movie' : 1 - }; - - for (k in options) { - item = options[k]; - k = k.toLowerCase(); - if (params[k] && (item || item === false || item === 0)) { - str.push(''); - } - } - options['src'] = options['movie']; - options['name'] = options['id']; - delete options['id']; - delete options['movie']; - delete options['classid']; - delete options['codebase']; - options['type'] = 'application/x-shockwave-flash'; - options['pluginspage'] = 'http://www.macromedia.com/go/getflashplayer'; - str.push(''); - - return str.join(''); -}; - - -/** - * 在页面中创建一个flash对象 - * @name baidu.swf.create - * @function - * @grammar baidu.swf.create(options[, container]) - * - * @param {Object} options 创建flash的选项参数 - * @param {string} options.id 要创建的flash的标识 - * @param {string} options.url flash文件的url - * @param {String} options.errorMessage 未安装flash player或flash player版本号过低时的提示 - * @param {string} options.ver 最低需要的flash player版本号 - * @param {string} options.width flash的宽度 - * @param {string} options.height flash的高度 - * @param {string} options.align flash的对齐方式,允许值:middle/left/right/top/bottom - * @param {string} options.base 设置用于解析swf文件中的所有相对路径语句的基本目录或URL - * @param {string} options.bgcolor swf文件的背景色 - * @param {string} options.salign 设置缩放的swf文件在由width和height设置定义的区域内的位置。允许值:l/r/t/b/tl/tr/bl/br - * @param {boolean} options.menu 是否显示右键菜单,允许值:true/false - * @param {boolean} options.loop 播放到最后一帧时是否重新播放,允许值: true/false - * @param {boolean} options.play flash是否在浏览器加载时就开始播放。允许值:true/false - * @param {string} options.quality 设置flash播放的画质,允许值:low/medium/high/autolow/autohigh/best - * @param {string} options.scale 设置flash内容如何缩放来适应设置的宽高。允许值:showall/noborder/exactfit - * @param {string} options.wmode 设置flash的显示模式。允许值:window/opaque/transparent - * @param {string} options.allowscriptaccess 设置flash与页面的通信权限。允许值:always/never/sameDomain - * @param {string} options.allownetworking 设置swf文件中允许使用的网络API。允许值:all/internal/none - * @param {boolean} options.allowfullscreen 是否允许flash全屏。允许值:true/false - * @param {boolean} options.seamlesstabbing 允许设置执行无缝跳格,从而使用户能跳出flash应用程序。该参数只能在安装Flash7及更高版本的Windows中使用。允许值:true/false - * @param {boolean} options.devicefont 设置静态文本对象是否以设备字体呈现。允许值:true/false - * @param {boolean} options.swliveconnect 第一次加载flash时浏览器是否应启动Java。允许值:true/false - * @param {Object} options.vars 要传递给flash的参数,支持JSON或string类型。 - * - * @param {HTMLElement|string} [container] flash对象的父容器元素,不传递该参数时在当前代码位置创建flash对象。 - * @meta standard - * @see baidu.swf.createHTML,baidu.swf.getMovie - */ -baidu.swf.create = function (options, target) { - options = options || {}; - var html = baidu.swf.createHTML(options) - || options['errorMessage'] - || ''; - - if (target && 'string' == typeof target) { - target = document.getElementById(target); - } - baidu.dom.insertHTML( target || document.body ,'beforeEnd',html ); -}; -/** - * 判断是否为ie浏览器 - * @name baidu.browser.ie - * @field - * @grammar baidu.browser.ie - * @returns {Number} IE版本号 - */ -baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? (document.documentMode || + RegExp['\x241']) : undefined; - -/** - * 移除数组中的项 - * @name baidu.array.remove - * @function - * @grammar baidu.array.remove(source, match) - * @param {Array} source 需要移除项的数组 - * @param {Any} match 要移除的项 - * @meta standard - * @see baidu.array.removeAt - * - * @returns {Array} 移除后的数组 - */ -baidu.array.remove = function (source, match) { - var len = source.length; - - while (len--) { - if (len in source && source[len] === match) { - source.splice(len, 1); - } - } - return source; -}; - -/** - * 判断目标参数是否Array对象 - * @name baidu.lang.isArray - * @function - * @grammar baidu.lang.isArray(source) - * @param {Any} source 目标参数 - * @meta standard - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ -baidu.lang.isArray = function (source) { - return '[object Array]' == Object.prototype.toString.call(source); -}; - - - -/** - * 将一个变量转换成array - * @name baidu.lang.toArray - * @function - * @grammar baidu.lang.toArray(source) - * @param {mix} source 需要转换成array的变量 - * @version 1.3 - * @meta standard - * @returns {array} 转换后的array - */ -baidu.lang.toArray = function (source) { - if (source === null || source === undefined) - return []; - if (baidu.lang.isArray(source)) - return source; - if (typeof source.length !== 'number' || typeof source === 'string' || baidu.lang.isFunction(source)) { - return [source]; - } - if (source.item) { - var l = source.length, array = new Array(l); - while (l--) - array[l] = source[l]; - return array; - } - - return [].slice.call(source); -}; - -/** - * 获得flash对象的实例 - * @name baidu.swf.getMovie - * @function - * @grammar baidu.swf.getMovie(name) - * @param {string} name flash对象的名称 - * @see baidu.swf.create - * @meta standard - * @returns {HTMLElement} flash对象的实例 - */ -baidu.swf.getMovie = function (name) { - var movie = document[name], ret; - return baidu.browser.ie == 9 ? - movie && movie.length ? - (ret = baidu.array.remove(baidu.lang.toArray(movie),function(item){ - return item.tagName.toLowerCase() != "embed"; - })).length == 1 ? ret[0] : ret - : movie - : movie || window[name]; -}; - - -baidu.flash._Base = (function(){ - - var prefix = 'bd__flash__'; - - /** - * 创建一个随机的字符串 - * @private - * @return {String} - */ - function _createString(){ - return prefix + Math.floor(Math.random() * 2147483648).toString(36); - }; - - /** - * 检查flash状态 - * @private - * @param {Object} target flash对象 - * @return {Boolean} - */ - function _checkReady(target){ - if(typeof target !== 'undefined' && typeof target.flashInit !== 'undefined' && target.flashInit()){ - return true; - }else{ - return false; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @param {Array} callQueue 调用队列 - * @param {Object} target flash对象 - * @return {Null} - */ - function _callFn(callQueue, target){ - var result = null; - - callQueue = callQueue.reverse(); - baidu.each(callQueue, function(item){ - result = target.call(item.fnName, item.params); - item.callBack(result); - }); - }; - - /** - * 为传入的匿名函数创建函数名 - * @private - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - function _createFunName(fun){ - var name = ''; - - if(baidu.lang.isFunction(fun)){ - name = _createString(); - window[name] = function(){ - fun.apply(window, arguments); - }; - - return name; - }else if(baidu.lang.isString){ - return fun; - } - }; - - /** - * 绘制flash - * @private - * @param {Object} options 创建参数 - * @return {Object} - */ - function _render(options){ - if(!options.id){ - options.id = _createString(); - } - - var container = options.container || ''; - delete(options.container); - - baidu.swf.create(options, container); - - return baidu.swf.getMovie(options.id); - }; - - return function(options, callBack){ - var me = this, - autoRender = (typeof options.autoRender !== 'undefined' ? options.autoRender : true), - createOptions = options.createOptions || {}, - target = null, - isReady = false, - callQueue = [], - timeHandle = null, - callBack = callBack || []; - - /** - * 将flash文件绘制到页面上 - * @public - * @return {Null} - */ - me.render = function(){ - target = _render(createOptions); - - if(callBack.length > 0){ - baidu.each(callBack, function(funName, index){ - callBack[index] = _createFunName(options[funName] || new Function()); - }); - } - me.call('setJSFuncName', [callBack]); - }; - - /** - * 返回flash状态 - * @return {Boolean} - */ - me.isReady = function(){ - return isReady; - }; - - /** - * 调用flash接口的统一入口 - * @param {String} fnName 调用的函数名 - * @param {Array} params 传入的参数组成的数组,若不许要参数,需传入空数组 - * @param {Function} [callBack] 异步调用后将返回值作为参数的调用回调函数,如无返回值,可以不传入此参数 - * @return {Null} - */ - me.call = function(fnName, params, callBack){ - if(!fnName) return null; - callBack = callBack || new Function(); - - var result = null; - - if(isReady){ - result = target.call(fnName, params); - callBack(result); - }else{ - callQueue.push({ - fnName: fnName, - params: params, - callBack: callBack - }); - - (!timeHandle) && (timeHandle = setInterval(_check, 200)); - } - }; - - /** - * 为传入的匿名函数创建函数名 - * @public - * @param {String|Function} fun 传入的匿名函数或者函数名 - * @return {String} - */ - me.createFunName = function(fun){ - return _createFunName(fun); - }; - - /** - * 检查flash是否ready, 并进行调用 - * @private - * @return {Null} - */ - function _check(){ - if(_checkReady(target)){ - clearInterval(timeHandle); - timeHandle = null; - _call(); - - isReady = true; - } - }; - - /** - * 调用之前进行压栈的函数 - * @private - * @return {Null} - */ - function _call(){ - _callFn(callQueue, target); - callQueue = []; - } - - autoRender && me.render(); - }; -})(); - - - -/** - * 创建flash based imageUploader - * @class - * @grammar baidu.flash.imageUploader(options) - * @param {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {Object} vars 创建imageUploader时所需要的参数 - * @config {Number} vars.gridWidth 每一个预览图片所占的宽度,应该为flash寛的整除 - * @config {Number} vars.gridHeight 每一个预览图片所占的高度,应该为flash高的整除 - * @config {Number} vars.picWidth 单张预览图片的宽度 - * @config {Number} vars.picHeight 单张预览图片的高度 - * @config {String} vars.uploadDataFieldName POST请求中图片数据的key,默认值'picdata' - * @config {String} vars.picDescFieldName POST请求中图片描述的key,默认值'picDesc' - * @config {Number} vars.maxSize 文件的最大体积,单位'MB' - * @config {Number} vars.compressSize 上传前如果图片体积超过该值,会先压缩 - * @config {Number} vars.maxNum:32 最大上传多少个文件 - * @config {Number} vars.compressLength 能接受的最大边长,超过该值会等比压缩 - * @config {String} vars.url 上传的url地址 - * @config {Number} vars.mode mode == 0时,是使用滚动条,mode == 1时,拉伸flash, 默认值为0 - * @see baidu.swf.createHTML - * @param {String} backgroundUrl 背景图片路径 - * @param {String} listBacgroundkUrl 布局控件背景 - * @param {String} buttonUrl 按钮图片不背景 - * @param {String|Function} selectFileCallback 选择文件的回调 - * @param {String|Function} exceedFileCallback文件超出限制的最大体积时的回调 - * @param {String|Function} deleteFileCallback 删除文件的回调 - * @param {String|Function} startUploadCallback 开始上传某个文件时的回调 - * @param {String|Function} uploadCompleteCallback 某个文件上传完成的回调 - * @param {String|Function} uploadErrorCallback 某个文件上传失败的回调 - * @param {String|Function} allCompleteCallback 全部上传完成时的回调 - * @param {String|Function} changeFlashHeight 改变Flash的高度,mode==1的时候才有用 - */ -baidu.flash.imageUploader = baidu.flash.imageUploader || function(options){ - - var me = this, - options = options || {}, - _flash = new baidu.flash._Base(options, [ - 'selectFileCallback', - 'exceedFileCallback', - 'deleteFileCallback', - 'startUploadCallback', - 'uploadCompleteCallback', - 'uploadErrorCallback', - 'allCompleteCallback', - 'changeFlashHeight' - ]); - /** - * 开始或回复上传图片 - * @public - * @return {Null} - */ - me.upload = function(){ - _flash.call('upload'); - }; - - /** - * 暂停上传图片 - * @public - * @return {Null} - */ - me.pause = function(){ - _flash.call('pause'); - }; - me.addCustomizedParams = function(index,obj){ - _flash.call('addCustomizedParams',[index,obj]); - } -}; - -/** - * 操作原生对象的方法 - * @namespace baidu.object - */ -baidu.object = baidu.object || {}; - - -/** - * 将源对象的所有属性拷贝到目标对象中 - * @author erik - * @name baidu.object.extend - * @function - * @grammar baidu.object.extend(target, source) - * @param {Object} target 目标对象 - * @param {Object} source 源对象 - * @see baidu.array.merge - * @remark - * -1.目标对象中,与源对象key相同的成员将会被覆盖。
    -2.源对象的prototype成员不会拷贝。 - - * @shortcut extend - * @meta standard - * - * @returns {Object} 目标对象 - */ -baidu.extend = -baidu.object.extend = function (target, source) { - for (var p in source) { - if (source.hasOwnProperty(p)) { - target[p] = source[p]; - } - } - - return target; -}; - - - - - -/** - * 创建flash based fileUploader - * @class - * @grammar baidu.flash.fileUploader(options) - * @param {Object} options - * @config {Object} createOptions 创建flash时需要的参数,请参照baidu.swf.create文档 - * @config {String} createOptions.width - * @config {String} createOptions.height - * @config {Number} maxNum 最大可选文件数 - * @config {Function|String} selectFile - * @config {Function|String} exceedMaxSize - * @config {Function|String} deleteFile - * @config {Function|String} uploadStart - * @config {Function|String} uploadComplete - * @config {Function|String} uploadError - * @config {Function|String} uploadProgress - */ -baidu.flash.fileUploader = baidu.flash.fileUploader || function(options){ - var me = this, - options = options || {}; - - options.createOptions = baidu.extend({ - wmod: 'transparent' - },options.createOptions || {}); - - var _flash = new baidu.flash._Base(options, [ - 'selectFile', - 'exceedMaxSize', - 'deleteFile', - 'uploadStart', - 'uploadComplete', - 'uploadError', - 'uploadProgress' - ]); - - _flash.call('setMaxNum', options.maxNum ? [options.maxNum] : [1]); - - /** - * 设置当鼠标移动到flash上时,是否变成手型 - * @public - * @param {Boolean} isCursor - * @return {Null} - */ - me.setHandCursor = function(isCursor){ - _flash.call('setHandCursor', [isCursor || false]); - }; - - /** - * 设置鼠标相应函数名 - * @param {String|Function} fun - */ - me.setMSFunName = function(fun){ - _flash.call('setMSFunName',[_flash.createFunName(fun)]); - }; - - /** - * 执行上传操作 - * @param {String} url 上传的url - * @param {String} fieldName 上传的表单字段名 - * @param {Object} postData 键值对,上传的POST数据 - * @param {Number|Array|null|-1} [index]上传的文件序列 - * Int值上传该文件 - * Array一次串行上传该序列文件 - * -1/null上传所有文件 - * @return {Null} - */ - me.upload = function(url, fieldName, postData, index){ - - if(typeof url !== 'string' || typeof fieldName !== 'string') return null; - if(typeof index === 'undefined') index = -1; - - _flash.call('upload', [url, fieldName, postData, index]); - }; - - /** - * 取消上传操作 - * @public - * @param {Number|-1} index - */ - me.cancel = function(index){ - if(typeof index === 'undefined') index = -1; - _flash.call('cancel', [index]); - }; - - /** - * 删除文件 - * @public - * @param {Number|Array} [index] 要删除的index,不传则全部删除 - * @param {Function} callBack - * */ - me.deleteFile = function(index, callBack){ - - var callBackAll = function(list){ - callBack && callBack(list); - }; - - if(typeof index === 'undefined'){ - _flash.call('deleteFilesAll', [], callBackAll); - return; - }; - - if(typeof index === 'Number') index = [index]; - index.sort(function(a,b){ - return b-a; - }); - baidu.each(index, function(item){ - _flash.call('deleteFileBy', item, callBackAll); - }); - }; - - /** - * 添加文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.addFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('addFileTypes', type); - }; - - /** - * 设置文件类型,支持macType - * @public - * @param {Object|Array[Object]} type {description:String, extention:String} - * @return {Null}; - */ - me.setFileType = function(type){ - var type = type || [[]]; - - if(type instanceof Array) type = [type]; - else type = [[type]]; - _flash.call('setFileTypes', type); - }; - - /** - * 设置可选文件的数量限制 - * @public - * @param {Number} num - * @return {Null} - */ - me.setMaxNum = function(num){ - _flash.call('setMaxNum', [num]); - }; - - /** - * 设置可选文件大小限制,以兆M为单位 - * @public - * @param {Number} num,0为无限制 - * @return {Null} - */ - me.setMaxSize = function(num){ - _flash.call('setMaxSize', [num]); - }; - - /** - * @public - */ - me.getFileAll = function(callBack){ - _flash.call('getFileAll', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {Function} [callBack] - */ - me.getFileByIndex = function(index, callBack){ - _flash.call('getFileByIndex', [], callBack); - }; - - /** - * @public - * @param {Number} index - * @param {function} [callBack] - */ - me.getStatusByIndex = function(index, callBack){ - _flash.call('getStatusByIndex', [], callBack); - }; -}; - -/** - * 使用动态script标签请求服务器资源,包括由服务器端的回调和浏览器端的回调 - * @namespace baidu.sio - */ -baidu.sio = baidu.sio || {}; - -/** - * - * @param {HTMLElement} src script节点 - * @param {String} url script节点的地址 - * @param {String} [charset] 编码 - */ -baidu.sio._createScriptTag = function(scr, url, charset){ - scr.setAttribute('type', 'text/javascript'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); -}; - -/** - * 删除script的属性,再删除script标签,以解决修复内存泄漏的问题 - * - * @param {HTMLElement} src script节点 - */ -baidu.sio._removeScriptTag = function(scr){ - if (scr.clearAttributes) { - scr.clearAttributes(); - } else { - for (var attr in scr) { - if (scr.hasOwnProperty(attr)) { - delete scr[attr]; - } - } - } - if(scr && scr.parentNode){ - scr.parentNode.removeChild(scr); - } - scr = null; -}; - - -/** - * 通过script标签加载数据,加载完成由浏览器端触发回调 - * @name baidu.sio.callByBrowser - * @function - * @grammar baidu.sio.callByBrowser(url, opt_callback, opt_options) - * @param {string} url 加载数据的url - * @param {Function|string} opt_callback 数据加载结束时调用的函数或函数名 - * @param {Object} opt_options 其他可选项 - * @config {String} [charset] script的字符集 - * @config {Integer} [timeOut] 超时时间,超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 1、与callByServer不同,callback参数只支持Function类型,不支持string。 - * 2、如果请求了一个不存在的页面,callback函数在IE/opera下也会被调用,因此使用者需要在onsuccess函数中判断数据是否正确加载。 - * @meta standard - * @see baidu.sio.callByServer - */ -baidu.sio.callByBrowser = function (url, opt_callback, opt_options) { - var scr = document.createElement("SCRIPT"), - scriptLoaded = 0, - options = opt_options || {}, - charset = options['charset'], - callback = opt_callback || function(){}, - timeOut = options['timeOut'] || 0, - timer; - scr.onload = scr.onreadystatechange = function () { - if (scriptLoaded) { - return; - } - - var readyState = scr.readyState; - if ('undefined' == typeof readyState - || readyState == "loaded" - || readyState == "complete") { - scriptLoaded = 1; - try { - callback(); - clearTimeout(timer); - } finally { - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - } - } - }; - - if( timeOut ){ - timer = setTimeout(function(){ - scr.onload = scr.onreadystatechange = null; - baidu.sio._removeScriptTag(scr); - options.onfailure && options.onfailure(); - }, timeOut); - } - - baidu.sio._createScriptTag(scr, url, charset); -}; - -/** - * 通过script标签加载数据,加载完成由服务器端触发回调 - * @name baidu.sio.callByServer - * @function - * @grammar baidu.sio.callByServer(url, callback[, opt_options]) - * @param {string} url 加载数据的url. - * @param {Function|string} callback 服务器端调用的函数或函数名。如果没有指定本参数,将在URL中寻找options['queryField']做为callback的方法名. - * @param {Object} opt_options 加载数据时的选项. - * @config {string} [charset] script的字符集 - * @config {string} [queryField] 服务器端callback请求字段名,默认为callback - * @config {Integer} [timeOut] 超时时间(单位:ms),超过这个时间将不再响应本请求,并触发onfailure函数 - * @config {Function} [onfailure] timeOut设定后才生效,到达超时时间时触发本函数 - * @remark - * 如果url中已经包含key为“options['queryField']”的query项,将会被替换成callback中参数传递或自动生成的函数名。 - * @meta standard - * @see baidu.sio.callByBrowser - */ -baidu.sio.callByServer = /**@function*/function(url, callback, opt_options) { - var scr = document.createElement('SCRIPT'), - prefix = 'bd__cbs__', - callbackName, - callbackImpl, - options = opt_options || {}, - charset = options['charset'], - queryField = options['queryField'] || 'callback', - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + queryField + '=([^&]*)'), - matches; - - if (baidu.lang.isFunction(callback)) { - callbackName = prefix + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackName] = getCallBack(0); - } else if(baidu.lang.isString(callback)){ - callbackName = callback; - } else { - if (matches = reg.exec(url)) { - callbackName = matches[2]; - } - } - - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - url = url.replace(reg, '\x241' + queryField + '=' + callbackName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + queryField + '=' + callbackName; - } - baidu.sio._createScriptTag(scr, url, charset); - - /* - * 返回一个函数,用于立即(挂在window上)或者超时(挂在setTimeout中)时执行 - */ - function getCallBack(onTimeOut){ - /*global callbackName, callback, scr, options;*/ - return function(){ - try { - if( onTimeOut ){ - options.onfailure && options.onfailure(); - }else{ - callback.apply(window, arguments); - clearTimeout(timer); - } - window[callbackName] = null; - delete window[callbackName]; - } catch (exception) { - } finally { - baidu.sio._removeScriptTag(scr); - } - } - } -}; - -/** - * 通过请求一个图片的方式令服务器存储一条日志 - * @function - * @grammar baidu.sio.log(url) - * @param {string} url 要发送的地址. - * @author: int08h,leeight - */ -baidu.sio.log = function(url) { - var img = new Image(), - key = 'tangram_sio_log_' + Math.floor(Math.random() * - 2147483648).toString(36); - window[key] = img; - - img.onload = img.onerror = img.onabort = function() { - img.onload = img.onerror = img.onabort = null; - - window[key] = null; - img = null; - }; - img.src = url; -}; - - - -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json.js - * author: erik - * version: 1.1.0 - * date: 2009/12/02 - */ - - -/** - * 操作json对象的方法 - * @namespace baidu.json - */ -baidu.json = baidu.json || {}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/parse.js - * author: erik, berg - * version: 1.2 - * date: 2009/11/23 - */ - - - -/** - * 将字符串解析成json对象。注:不会自动祛除空格 - * @name baidu.json.parse - * @function - * @grammar baidu.json.parse(data) - * @param {string} source 需要解析的字符串 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.parse不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.stringify,baidu.json.decode - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.parse = function (data) { - //2010/12/09:更新至不使用原生parse,不检测用户输入是否正确 - return (new Function("return (" + data + ")"))(); -}; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/decode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将字符串解析成json对象,为过时接口,今后会被baidu.json.parse代替 - * @name baidu.json.decode - * @function - * @grammar baidu.json.decode(source) - * @param {string} source 需要解析的字符串 - * @meta out - * @see baidu.json.encode,baidu.json.parse - * - * @returns {JSON} 解析结果json对象 - */ -baidu.json.decode = baidu.json.parse; -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/stringify.js - * author: erik - * version: 1.1.0 - * date: 2010/01/11 - */ - - - -/** - * 将json对象序列化 - * @name baidu.json.stringify - * @function - * @grammar baidu.json.stringify(value) - * @param {JSON} value 需要序列化的json对象 - * @remark - * 该方法的实现与ecma-262第五版中规定的JSON.stringify不同,暂时只支持传入一个参数。后续会进行功能丰富。 - * @meta standard - * @see baidu.json.parse,baidu.json.encode - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.stringify = (function () { - /** - * 字符串处理时需要转义的字符表 - * @private - */ - var escapeMap = { - "\b": '\\b', - "\t": '\\t', - "\n": '\\n', - "\f": '\\f', - "\r": '\\r', - '"' : '\\"', - "\\": '\\\\' - }; - - /** - * 字符串序列化 - * @private - */ - function encodeString(source) { - if (/["\\\x00-\x1f]/.test(source)) { - source = source.replace( - /["\\\x00-\x1f]/g, - function (match) { - var c = escapeMap[match]; - if (c) { - return c; - } - c = match.charCodeAt(); - return "\\u00" - + Math.floor(c / 16).toString(16) - + (c % 16).toString(16); - }); - } - return '"' + source + '"'; - } - - /** - * 数组序列化 - * @private - */ - function encodeArray(source) { - var result = ["["], - l = source.length, - preComma, i, item; - - for (i = 0; i < l; i++) { - item = source[i]; - - switch (typeof item) { - case "undefined": - case "function": - case "unknown": - break; - default: - if(preComma) { - result.push(','); - } - result.push(baidu.json.stringify(item)); - preComma = 1; - } - } - result.push("]"); - return result.join(""); - } - - /** - * 处理日期序列化时的补零 - * @private - */ - function pad(source) { - return source < 10 ? '0' + source : source; - } - - /** - * 日期序列化 - * @private - */ - function encodeDate(source){ - return '"' + source.getFullYear() + "-" - + pad(source.getMonth() + 1) + "-" - + pad(source.getDate()) + "T" - + pad(source.getHours()) + ":" - + pad(source.getMinutes()) + ":" - + pad(source.getSeconds()) + '"'; - } - - return function (value) { - switch (typeof value) { - case 'undefined': - return 'undefined'; - - case 'number': - return isFinite(value) ? String(value) : "null"; - - case 'string': - return encodeString(value); - - case 'boolean': - return String(value); - - default: - if (value === null) { - return 'null'; - } else if (value instanceof Array) { - return encodeArray(value); - } else if (value instanceof Date) { - return encodeDate(value); - } else { - var result = ['{'], - encode = baidu.json.stringify, - preComma, - item; - - for (var key in value) { - if (Object.prototype.hasOwnProperty.call(value, key)) { - item = value[key]; - switch (typeof item) { - case 'undefined': - case 'unknown': - case 'function': - break; - default: - if (preComma) { - result.push(','); - } - preComma = 1; - result.push(encode(key) + ':' + encode(item)); - } - } - } - result.push('}'); - return result.join(''); - } - } - }; -})(); -/* - * Tangram - * Copyright 2009 Baidu Inc. All rights reserved. - * - * path: baidu/json/encode.js - * author: erik, cat - * version: 1.3.4 - * date: 2010/12/23 - */ - - - -/** - * 将json对象序列化,为过时接口,今后会被baidu.json.stringify代替 - * @name baidu.json.encode - * @function - * @grammar baidu.json.encode(value) - * @param {JSON} value 需要序列化的json对象 - * @meta out - * @see baidu.json.decode,baidu.json.stringify - * - * @returns {string} 序列化后的字符串 - */ -baidu.json.encode = baidu.json.stringify; diff --git a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.html b/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.html deleted file mode 100644 index f8c0905..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    - -
    - : -
    -
    -
    - - - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.js b/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.js deleted file mode 100644 index e360263..0000000 --- a/yshop-drink-vue/public/UEditor22/dialogs/wordimage/wordimage.js +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Created by JetBrains PhpStorm. - * User: taoqili - * Date: 12-1-30 - * Time: 下午12:50 - * To change this template use File | Settings | File Templates. - */ - - - -var wordImage = {}; -//(function(){ -var g = baidu.g, - flashObj,flashContainer; - -wordImage.init = function(opt, callbacks) { - showLocalPath("localPath"); - //createCopyButton("clipboard","localPath"); - createFlashUploader(opt, callbacks); - addUploadListener(); - addOkListener(); -}; - -function hideFlash(){ - flashObj = null; - flashContainer.innerHTML = ""; -} -function addOkListener() { - dialog.onok = function() { - if (!imageUrls.length) return; - var urlPrefix = editor.getOpt('imageUrlPrefix'), - images = domUtils.getElementsByTagName(editor.document,"img"); - editor.fireEvent('saveScene'); - for (var i = 0,img; img = images[i++];) { - var src = img.getAttribute("word_img"); - if (!src) continue; - for (var j = 0,url; url = imageUrls[j++];) { - if (src.indexOf(url.original.replace(" ","")) != -1) { - img.src = urlPrefix + url.url; - img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 - img.setAttribute("title",url.title); - domUtils.removeAttributes(img, ["word_img","style","width","height"]); - editor.fireEvent("selectionchange"); - break; - } - } - } - editor.fireEvent('saveScene'); - hideFlash(); - }; - dialog.oncancel = function(){ - hideFlash(); - } -} - -/** - * 绑定开始上传事件 - */ -function addUploadListener() { - g("upload").onclick = function () { - flashObj.upload(); - this.style.display = "none"; - }; -} - -function showLocalPath(id) { - //单张编辑 - var img = editor.selection.getRange().getClosedNode(); - var images = editor.execCommand('wordimage'); - if(images.length==1 || img && img.tagName == 'IMG'){ - g(id).value = images[0]; - return; - } - var path = images[0]; - var leftSlashIndex = path.lastIndexOf("/")||0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 - rightSlashIndex = path.lastIndexOf("\\")||0, - separater = leftSlashIndex > rightSlashIndex ? "/":"\\" ; - - path = path.substring(0, path.lastIndexOf(separater)+1); - g(id).value = path; -} - -function createFlashUploader(opt, callbacks) { - //由于lang.flashI18n是静态属性,不可以直接进行修改,否则会影响到后续内容 - var i18n = utils.extend({},lang.flashI18n); - //处理图片资源地址的编码,补全等问题 - for(var i in i18n){ - if(!(i in {"lang":1,"uploadingTF":1,"imageTF":1,"textEncoding":1}) && i18n[i]){ - i18n[i] = encodeURIComponent(editor.options.langPath + editor.options.lang + "/images/" + i18n[i]); - } - } - opt = utils.extend(opt,i18n,false); - var option = { - createOptions:{ - id:'flash', - url:opt.flashUrl, - width:opt.width, - height:opt.height, - errorMessage:lang.flashError, - wmode:browser.safari ? 'transparent' : 'window', - ver:'10.0.0', - vars:opt, - container:opt.container - } - }; - - option = extendProperty(callbacks, option); - flashObj = new baidu.flash.imageUploader(option); - flashContainer = $G(opt.container); -} - -function extendProperty(fromObj, toObj) { - for (var i in fromObj) { - if (!toObj[i]) { - toObj[i] = fromObj[i]; - } - } - return toObj; -} - -//})(); - -function getPasteData(id) { - baidu.g("msg").innerHTML = lang.copySuccess + "
    "; - setTimeout(function() { - baidu.g("msg").innerHTML = ""; - }, 5000); - return baidu.g(id).value; -} - -function createCopyButton(id, dataFrom) { - baidu.swf.create({ - id:"copyFlash", - url:"fClipboard_ueditor.swf", - width:"58", - height:"25", - errorMessage:"", - bgColor:"#CBCBCB", - wmode:"transparent", - ver:"10.0.0", - vars:{ - tid:dataFrom - } - }, id - ); - - var clipboard = baidu.swf.getMovie("copyFlash"); - var clipinterval = setInterval(function() { - if (clipboard && clipboard.flashInit) { - clearInterval(clipinterval); - clipboard.setHandCursor(true); - clipboard.setContentFuncName("getPasteData"); - //clipboard.setMEFuncName("mouseEventHandler"); - } - }, 500); -} -createCopyButton("clipboard", "localPath"); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/index.html b/yshop-drink-vue/public/UEditor22/index.html deleted file mode 100644 index f02b43c..0000000 --- a/yshop-drink-vue/public/UEditor22/index.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - 完整demo - - - - - - - - - - -
    -

    完整demo

    - -
    -
    -
    - - - - - - - - - - - -
    -
    - - - - - - - -
    - -
    - - -
    - -
    -
    - - -
    - - - - \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/lang/en/en.js b/yshop-drink-vue/public/UEditor22/lang/en/en.js deleted file mode 100644 index c2bdbbb..0000000 --- a/yshop-drink-vue/public/UEditor22/lang/en/en.js +++ /dev/null @@ -1,684 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-6-12 - * Time: 下午6:57 - * To change this template use File | Settings | File Templates. - */ -UE.I18N['en'] = { - 'labelMap':{ - 'anchor':'Anchor', 'undo':'Undo', 'redo':'Redo', 'bold':'Bold', 'indent':'Indent', 'snapscreen':'SnapScreen', - 'italic':'Italic', 'underline':'Underline', 'strikethrough':'Strikethrough', 'subscript':'SubScript','fontborder':'text border', - 'superscript':'SuperScript', 'formatmatch':'Format Match', 'source':'Source', 'blockquote':'BlockQuote', - 'pasteplain':'PastePlain', 'selectall':'SelectAll', 'print':'Print', 'preview':'Preview', - 'horizontal':'Horizontal', 'removeformat':'RemoveFormat', 'time':'Time', 'date':'Date', - 'unlink':'Unlink', 'insertrow':'InsertRow', 'insertcol':'InsertCol', 'mergeright':'MergeRight', 'mergedown':'MergeDown', - 'deleterow':'DeleteRow', 'deletecol':'DeleteCol', 'splittorows':'SplitToRows','insertcode':'insert code', - 'splittocols':'SplitToCols', 'splittocells':'SplitToCells','deletecaption':'DeleteCaption','inserttitle':'InsertTitle', - 'mergecells':'MergeCells', 'deletetable':'DeleteTable', 'cleardoc':'Clear', 'insertparagraphbeforetable':"InsertParagraphBeforeTable", - 'fontfamily':'FontFamily', 'fontsize':'FontSize', 'paragraph':'Paragraph','simpleupload':'Single Image','insertimage':'Multi Image','edittable':'Edit Table', 'edittd':'Edit Td','link':'Link', - 'emotion':'Emotion', 'spechars':'Spechars', 'searchreplace':'SearchReplace', 'map':'BaiduMap', 'gmap':'GoogleMap', - 'insertvideo':'Video', 'help':'Help', 'justifyleft':'JustifyLeft', 'justifyright':'JustifyRight', 'justifycenter':'JustifyCenter', - 'justifyjustify':'Justify', 'forecolor':'FontColor', 'backcolor':'BackColor', 'insertorderedlist':'OL', - 'insertunorderedlist':'UL', 'fullscreen':'FullScreen', 'directionalityltr':'EnterFromLeft', 'directionalityrtl':'EnterFromRight', - 'rowspacingtop':'RowSpacingTop', 'rowspacingbottom':'RowSpacingBottom', 'pagebreak':'PageBreak', 'insertframe':'Iframe', 'imagenone':'Default', - 'imageleft':'ImageLeft', 'imageright':'ImageRight', 'attachment':'Attachment', 'imagecenter':'ImageCenter', 'wordimage':'WordImage', - 'lineheight':'LineHeight','edittip':'EditTip','customstyle':'CustomStyle', 'scrawl':'Scrawl', 'autotypeset':'AutoTypeset', - 'webapp':'WebAPP', 'touppercase':'UpperCase', 'tolowercase':'LowerCase','template':'Template','background':'Background','inserttable':'InsertTable', - 'music':'Music', 'charts': 'charts','drafts': 'Load from Drafts' - }, - 'insertorderedlist':{ - 'num':'1,2,3...', - 'num1':'1),2),3)...', - 'num2':'(1),(2),(3)...', - 'cn':'一,二,三....', - 'cn1':'一),二),三)....', - 'cn2':'(一),(二),(三)....', - 'decimal':'1,2,3...', - 'lower-alpha':'a,b,c...', - 'lower-roman':'i,ii,iii...', - 'upper-alpha':'A,B,C...', - 'upper-roman':'I,II,III...' - }, - 'insertunorderedlist':{ - 'circle':'○ Circle', - 'disc':'● Circle dot', - 'square':'■ Rectangle ', - 'dash' :'- Dash', - 'dot' : '。dot' - }, - 'paragraph':{'p':'Paragraph', 'h1':'Title 1', 'h2':'Title 2', 'h3':'Title 3', 'h4':'Title 4', 'h5':'Title 5', 'h6':'Title 6'}, - 'fontfamily':{ - 'songti':'Sim Sun', - 'kaiti':'Sim Kai', - 'heiti':'Sim Hei', - 'lishu':'Sim Li', - 'yahei': 'Microsoft YaHei', - 'andaleMono':'Andale Mono', - 'arial': 'Arial', - 'arialBlack':'Arial Black', - 'comicSansMs':'Comic Sans MS', - 'impact':'Impact', - 'timesNewRoman':'Times New Roman' - }, - 'customstyle':{ - 'tc':'Title center', - 'tl':'Title left', - 'im':'Important', - 'hi':'Highlight' - }, - 'autoupload': { - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading':"loading...", - 'loadError':"load error", - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - }, - 'simpleupload':{ - 'exceedSizeError': 'File Size Exceed', - 'exceedTypeError': 'File Type Not Allow', - 'jsonEncodeError': 'Server Return Format Error', - 'loading':"loading...", - 'loadError':"load error", - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - }, - 'elementPathTip':"Path", - 'wordCountTip':"Word Count", - 'wordCountMsg':'{#count} characters entered,{#leave} left. ', - 'wordOverFlowMsg':'The number of characters has exceeded allowable maximum values, the server may refuse to save!', - 'ok':"OK", - 'cancel':"Cancel", - 'closeDialog':"closeDialog", - 'tableDrag':"You must import the file uiUtils.js before drag! ", - 'autofloatMsg':"The plugin AutoFloat depends on EditorUI!", - 'loadconfigError': 'Get server config error.', - 'loadconfigFormatError': 'Server config format error.', - 'loadconfigHttpError': 'Get server config http error.', - 'snapScreen_plugin':{ - 'browserMsg':"Only IE supported!", - 'callBackErrorMsg':"The callback data is wrong,please check the config!", - 'uploadErrorMsg':"Upload error,please check your server environment! " - }, - 'insertcode':{ - 'as3':'ActionScript 3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'CSS', - 'cf':'ColdFusion', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'HTML', - 'java':'Java', - 'jfx':'JavaFX', - 'js':'JavaScript', - 'pl':'Perl', - 'php':'PHP', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'SQL', - 'vb':'Visual Basic', - 'xml':'XML' - }, - 'confirmClear':"Do you confirm to clear the Document?", - 'contextMenu':{ - 'delete':"Delete", - 'selectall':"Select all", - 'deletecode':"Delete Code", - 'cleardoc':"Clear Document", - 'confirmclear':"Do you confirm to clear the Document?", - 'unlink':"Unlink", - 'paragraph':"Paragraph", - 'edittable':"Table property", - 'aligncell':'Align cell', - 'aligntable':'Table alignment', - 'tableleft':'Left float', - 'tablecenter':'Center', - 'tableright':'Right float', - 'aligntd':'Cell alignment', - 'edittd':"Cell property", - 'setbordervisible':'set table edge visible', - 'table':"Table", - 'justifyleft':'Justify Left', - 'justifyright':'Justify Right', - 'justifycenter':'Justify Center', - 'justifyjustify':'Default', - 'deletetable':"Delete table", - 'insertparagraphbefore':"InsertedBeforeLine", - 'insertparagraphafter':'InsertedAfterLine', - 'inserttable':'Insert table', - 'insertcaption':'Insert caption', - 'deletecaption':'Delete Caption', - 'inserttitle':'Insert Title', - 'deletetitle':'Delete Title', - 'inserttitlecol':'Insert Title Col', - 'deletetitlecol':'Delete Title Col', - 'averageDiseRow':'AverageDise Row', - 'averageDisCol':'AverageDis Col', - 'deleterow':"Delete row", - 'deletecol':"Delete col", - 'insertrow':"Insert row", - 'insertcol':"Insert col", - 'insertrownext':'Insert Row Next', - 'insertcolnext':'Insert Col Next', - 'mergeright':"Merge right", - 'mergeleft':"Merge left", - 'mergedown':"Merge down", - 'mergecells':"Merge cells", - 'splittocells':"Split to cells", - 'splittocols':"Split to Cols", - 'splittorows':"Split to Rows", - 'tablesort':'Table sorting', - 'enablesort':'Sorting Enable', - 'disablesort':'Sorting Disable', - 'reversecurrent':'Reverse current', - 'orderbyasc':'Order By ASCII', - 'reversebyasc':'Reverse By ASCII', - 'orderbynum':'Order By Num', - 'reversebynum':'Reverse By Num', - 'borderbk':'Border shading', - 'setcolor':'interlaced color', - 'unsetcolor':'Cancel interlacedcolor', - 'setbackground':'Background interlaced', - 'unsetbackground':'Cancel Bk interlaced', - 'redandblue':'Blue and red', - 'threecolorgradient':'Three-color gradient', - 'copy':"Copy(Ctrl + c)", - 'copymsg':"Browser does not support. Please use 'Ctrl + c' instead!", - 'paste':"Paste(Ctrl + v)", - 'pastemsg':"Browser does not support. Please use 'Ctrl + v' instead!" - }, - 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", - 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!", - 'anthorMsg':"Link", - 'clearColor':'Clear', - 'standardColor':'Standard color', - 'themeColor':'Theme color', - 'property':'Property', - 'default':'Default', - 'modify':'Modify', - 'justifyleft':'Justify Left', - 'justifyright':'Justify Right', - 'justifycenter':'Justify Center', - 'justify':'Default', - 'clear':'Clear', - 'anchorMsg':'Anchor', - 'delete':'Delete', - 'clickToUpload':"Click to upload", - 'unset':'Language hasn\'t been set!', - 't_row':'row', - 't_col':'col', - 'pasteOpt':'Paste Option', - 'pasteSourceFormat':"Keep Source Formatting", - 'tagFormat':'Keep tag', - 'pasteTextFormat':'Keep Text only', - 'more':'More', - 'autoTypeSet':{ - 'mergeLine':"Merge empty line", - 'delLine':"Del empty line", - 'removeFormat':"Remove format", - 'indent':"Indent", - 'alignment':"Alignment", - 'imageFloat':"Image float", - 'removeFontsize':"Remove font size", - 'removeFontFamily':"Remove fontFamily", - 'removeHtml':"Remove redundant HTML code", - 'pasteFilter':"Paste filter", - 'run':"Done", - 'symbol':'Symbol Conversion', - 'bdc2sb':'Full-width to Half-width', - 'tobdc':'Half-width to Full-width' - }, - - 'background':{ - 'static':{ - 'lang_background_normal':'Normal', - 'lang_background_local':'Online', - 'lang_background_set':'Background Set', - 'lang_background_none':'No Background', - 'lang_background_colored':'Colored Background', - 'lang_background_color':'Color Set', - 'lang_background_netimg':'Net-Image', - 'lang_background_align':'Align Type', - 'lang_background_position':'Position', - 'repeatType':{'options':["Center", "Repeat-x", "Repeat-y", "Tile","Custom"]} - }, - 'noUploadImage':"No pictures has been uploaded!", - 'toggleSelect':'Change the active state by click!\n Image Size: ' - }, - //===============dialog i18N======================= - 'insertimage':{ - 'static':{ - 'lang_tab_remote':"Insert", - 'lang_tab_upload':"Local", - 'lang_tab_online':"Manager", - 'lang_tab_search':"Search", - 'lang_input_url':"Address:", - 'lang_input_size':"Size:", - 'lang_input_width':"Width", - 'lang_input_height':"Height", - 'lang_input_border':"Border:", - 'lang_input_vhspace':"Margins:", - 'lang_input_title':"Title:", - 'lang_input_align':'Image Float Style:', - 'lang_imgLoading':"Loading...", - 'lang_start_upload':"Start Upload", - 'lock':{'title':"Lock rate"}, - 'searchType':{'title':"ImageType", 'options':["News", "Wallpaper", "emotions", "photo"]}, - 'searchTxt':{'value':"Enter the search keyword!"}, - 'searchBtn':{'value':"Search"}, - 'searchReset':{'value':"Clear"}, - 'noneAlign':{'title':'None Float'}, - 'leftAlign':{'title':'Left Float'}, - 'rightAlign':{'title':'Right Float'}, - 'centerAlign':{'title':'Center In A Line'} - }, - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'uploadNoPreview':'Can Not Preview', - 'updateStatusReady': 'Selected _ pictures, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ pictures (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.', - 'remoteLockError':"Cannot Lock the Proportion between width and height", - 'numError':"Please enter the correct Num. e.g 123,400", - 'imageUrlError':"The image format may be wrong!", - 'imageLoadError':"Error,please check the network or URL!", - 'searchRemind':"Enter the search keyword!", - 'searchLoading':"Image is loading,please wait...", - 'searchRetry':" Sorry,can't find the image,please try again!" - }, - 'attachment':{ - 'static':{ - 'lang_tab_upload': 'Upload', - 'lang_tab_online': 'Online', - 'lang_start_upload':"Start upload", - 'lang_drop_remind':"You can drop files here, a single maximum of 300 files" - }, - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.' - }, - - 'insertvideo':{ - 'static':{ - 'lang_tab_insertV':"Video", - 'lang_tab_searchV':"Search", - 'lang_tab_uploadV':"Upload", - 'lang_video_url':" URL ", - 'lang_video_size':"Video Size", - 'lang_videoW':"Width", - 'lang_videoH':"Height", - 'lang_alignment':"Alignment", - 'videoSearchTxt':{'value':"Enter the search keyword!"}, - 'videoType':{'options':["All", "Hot", "Entertainment", "Funny", "Sports", "Science", "variety"]}, - 'videoSearchBtn':{'value':"Search in Baidu"}, - 'videoSearchReset':{'value':"Clear result"}, - - 'lang_input_fileStatus':' No file uploaded!', - 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, - - 'lang_upload_size':"Video Size", - 'lang_upload_width':"Width", - 'lang_upload_height':"Height", - 'lang_upload_alignment':"Alignment", - 'lang_format_advice':"Recommends mp4 format." - }, - 'numError':"Please enter the correct Num. e.g 123,400", - 'floatLeft':"Float left", - 'floatRight':"Float right", - 'default':"Default", - 'block':"Display in block", - 'urlError':"The video url format may be wrong!", - 'loading':"  The video is loading, please wait…", - 'clickToSelect':"Click to select", - 'goToSource':'Visit source video ', - 'noVideo':"    Sorry,can't find the video,please try again!", - - 'browseFiles':'Open files', - 'uploadSuccess':'Upload Successful!', - 'delSuccessFile':'Remove from the success of the queue', - 'delFailSaveFile':'Remove the save failed file', - 'statusPrompt':' file(s) uploaded! ', - 'flashVersionError':'The current Flash version is too low, please update FlashPlayer,then try again!', - 'flashLoadingError':'The Flash failed loading! Please check the path or network state', - 'fileUploadReady':'Wait for uploading...', - 'delUploadQueue':'Remove from the uploading queue ', - 'limitPrompt1':'Can not choose more than single', - 'limitPrompt2':'file(s)!Please choose again!', - 'delFailFile':'Remove failure file', - 'fileSizeLimit':'File size exceeds the limit!', - 'emptyFile':'Can not upload an empty file!', - 'fileTypeError':'File type error!', - 'unknownError':'Unknown error!', - 'fileUploading':'Uploading,please wait...', - 'cancelUpload':'Cancel upload', - 'netError':'Network error', - 'failUpload':'Upload failed', - 'serverIOError':'Server IO error!', - 'noAuthority':'No Permission!', - 'fileNumLimit':'Upload limit to the number', - 'failCheck':'Authentication fails, the upload is skipped!', - 'fileCanceling':'Cancel, please wait...', - 'stopUploading':'Upload has stopped...', - - 'uploadSelectFile':'Select File', - 'uploadAddFile':'Add File', - 'uploadStart':'Start Upload', - 'uploadPause':'Pause Upload', - 'uploadContinue':'Continue Upload', - 'uploadRetry':'Retry Upload', - 'uploadDelete':'Delete', - 'uploadTurnLeft':'Turn Left', - 'uploadTurnRight':'Turn Right', - 'uploadPreview':'Doing Preview', - 'updateStatusReady': 'Selected _ files, total _KB.', - 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', - 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', - 'updateStatusError': ' and _ upload failed', - 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', - 'errorLoadConfig': 'Server config not loaded, upload can not work.', - 'errorExceedSize':'File Size Exceed', - 'errorFileType':'File Type Not Allow', - 'errorInterrupt':'File Upload Interrupted', - 'errorUploadRetry':'Upload Error, Please Retry.', - 'errorHttp':'Http Error', - 'errorServerUpload':'Server Result Error.' - }, - 'webapp':{ - 'tip1':"This function provided by Baidu APP,please apply for baidu APPKey webmaster first!", - 'tip2':"And then open the file ueditor.config.js to set it! ", - 'applyFor':"APPLY FOR", - 'anthorApi':"Baidu API" - }, - 'template':{ - 'static':{ - 'lang_template_bkcolor':'Background Color', - 'lang_template_clear' : 'Keep Content', - 'lang_template_select':'Select Template' - }, - 'blank':"Blank", - 'blog':"Blog", - 'resume':"Resume", - 'richText':"Rich Text", - 'scrPapers':"Scientific Papers" - }, - scrawl:{ - 'static':{ - 'lang_input_previousStep':"Previous", - 'lang_input_nextsStep':"Next", - 'lang_input_clear':'Clear', - 'lang_input_addPic':'AddImage', - 'lang_input_ScalePic':'ScaleImage', - 'lang_input_removePic':'RemoveImage', - 'J_imgTxt':{title:'Add background image'} - }, - 'noScarwl':"No paint, a white paper...", - 'scrawlUpLoading':"Image is uploading, please wait...", - 'continueBtn':"Try again", - 'imageError':"Image failed to load!", - 'backgroundUploading':'Image is uploading,please wait...' - }, - 'music':{ - 'static':{ - 'lang_input_tips':"Input singer/song/album, search you interested in music!", - 'J_searchBtn':{value:'Search songs'} - }, - 'emptyTxt':'Not search to the relevant music results, please change a keyword try.', - 'chapter':'Songs', - 'singer':'Singer', - 'special':'Album', - 'listenTest':'Audition' - }, - anchor:{ - 'static':{ - 'lang_input_anchorName':'Anchor Name:' - } - }, - 'charts':{ - 'static':{ - 'lang_data_source':'Data source:', - 'lang_chart_format': 'Chart format:', - 'lang_data_align': 'Align', - 'lang_chart_align_same': 'Consistent with the X-axis Y-axis', - 'lang_chart_align_reverse': 'X-axis Y-axis opposite', - 'lang_chart_title': 'Title', - 'lang_chart_main_title': 'main title:', - 'lang_chart_sub_title': 'sub title:', - 'lang_chart_x_title': 'X-axis title:', - 'lang_chart_y_title': 'Y-axis title:', - 'lang_chart_tip': 'Prompt', - 'lang_cahrt_tip_prefix': 'prefix:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': 'Unit', - 'lang_chart_data_unit_title': 'unit:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': 'Chart type:', - 'lang_prev_btn': 'Previous', - 'lang_next_btn': 'Next' - } - }, - emotion:{ - 'static':{ - 'lang_input_choice':'Choice', - 'lang_input_Tuzki':'Tuzki', - 'lang_input_lvdouwa':'LvDouWa', - 'lang_input_BOBO':'BOBO', - 'lang_input_babyCat':'BabyCat', - 'lang_input_bubble':'Bubble', - 'lang_input_youa':'YouA' - } - }, - gmap:{ - 'static':{ - 'lang_input_address':'Address:', - 'lang_input_search':'Search', - 'address':{value:"Beijing"} - }, - searchError:'Unable to locate the address!' - }, - help:{ - 'static':{ - 'lang_input_about':'About', - 'lang_input_shortcuts':'Shortcuts', - 'lang_input_introduction':"UEditor is developed by Baidu Co.ltd. It is lightweight, customizable , focusing on user experience and etc. , UEditor is based on open source BSD license , allowing free use and redistribution.", - 'lang_Txt_shortcuts':'Shortcuts', - 'lang_Txt_func':'Function', - 'lang_Txt_bold':'Bold', - 'lang_Txt_copy':'Copy', - 'lang_Txt_cut':'Cut', - 'lang_Txt_Paste':'Paste', - 'lang_Txt_undo':'Undo', - 'lang_Txt_redo':'Redo', - 'lang_Txt_italic':'Italic', - 'lang_Txt_underline':'Underline', - 'lang_Txt_selectAll':'Select All', - 'lang_Txt_visualEnter':'Submit', - 'lang_Txt_fullscreen':'Fullscreen' - } - }, - insertframe:{ - 'static':{ - 'lang_input_address':'Address:', - 'lang_input_width':'Width:', - 'lang_input_height':'height:', - 'lang_input_isScroll':'Enable scrollbars:', - 'lang_input_frameborder':'Show frame border:', - 'lang_input_alignMode':'Alignment:', - 'align':{title:"Alignment", options:["Default", "Left", "Right", "Center"]} - }, - 'enterAddress':'Please enter an address!' - }, - link:{ - 'static':{ - 'lang_input_text':'Text:', - 'lang_input_url':'URL:', - 'lang_input_title':'Title:', - 'lang_input_target':'open in new window:' - }, - 'validLink':'Supports only effective when a link is selected', - 'httpPrompt':'The hyperlink you enter should start with "http|https|ftp://"!' - }, - map:{ - 'static':{ - lang_city:"City", - lang_address:"Address", - city:{value:"Beijing"}, - lang_search:"Search", - lang_dynamicmap:"Dynamic map" - }, - cityMsg:"Please enter the city name!", - errorMsg:"Can't find the place!" - }, - searchreplace:{ - 'static':{ - lang_tab_search:"Search", - lang_tab_replace:"Replace", - lang_search1:"Search", - lang_search2:"Search", - lang_replace:"Replace", - lang_searchReg:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_searchReg1:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', - lang_case_sensitive1:"Case sense", - lang_case_sensitive2:"Case sense", - nextFindBtn:{value:"Next"}, - preFindBtn:{value:"Preview"}, - nextReplaceBtn:{value:"Next"}, - preReplaceBtn:{value:"Preview"}, - repalceBtn:{value:"Replace"}, - repalceAllBtn:{value:"Replace all"} - }, - getEnd:"Has the search to the bottom!", - getStart:"Has the search to the top!", - countMsg:"Altogether replaced {#count} character(s)!" - }, - snapscreen:{ - 'static':{ - lang_showMsg:"You should install the UEditor screenshots program first!", - lang_download:"Download!", - lang_step1:"Step1:Download the program and then run it", - lang_step2:"Step2:After complete install,try to click the button again" - } - }, - spechars:{ - 'static':{}, - tsfh:"Special", - lmsz:"Roman", - szfh:"Numeral", - rwfh:"Japanese", - xlzm:"The Greek", - ewzm:"Russian", - pyzm:"Phonetic", - yyyb:"English", - zyzf:"Others" - }, - 'edittable':{ - 'static':{ - 'lang_tableStyle':'Table style', - 'lang_insertCaption':'Add table header row', - 'lang_insertTitle':'Add table title row', - 'lang_insertTitleCol':'Add table title col', - 'lang_tableSize':'Automatically adjust table size', - 'lang_autoSizeContent':'Adaptive by form text', - 'lang_orderbycontent':"Table of contents sortable", - 'lang_autoSizePage':'Page width adaptive', - 'lang_example':'Example', - 'lang_borderStyle':'Table Border', - 'lang_color':'Color:' - }, - captionName:'Caption', - titleName:'Title', - cellsName:'text', - errorMsg:'There are merged cells, can not sort.' - }, - 'edittip':{ - 'static':{ - lang_delRow:'Delete entire row', - lang_delCol:'Delete entire col' - } - }, - 'edittd':{ - 'static':{ - lang_tdBkColor:'Background Color:' - } - }, - 'formula':{ - 'static':{ - } - }, - wordimage:{ - 'static':{ - lang_resave:"The re-save step", - uploadBtn:{src:"upload.png", alt:"Upload"}, - clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, - lang_step:" 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process." - }, - fileType:"Image", - flashError:"Flash initialization failed!", - netError:"Network error! Please try again!", - copySuccess:"URL has been copied!", - - 'flashI18n':{ - lang:encodeURI( '{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}' ), - uploadingTF:encodeURI( '{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}' ), - imageTF:encodeURI( '{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}' ), - textEncoding:"utf-8", - addImageSkinURL:"addImage.png", - allDeleteBtnUpSkinURL:"allDeleteBtnUpSkin.png", - allDeleteBtnHoverSkinURL:"allDeleteBtnHoverSkin.png", - rotateLeftBtnEnableSkinURL:"rotateLeftEnable.png", - rotateLeftBtnDisableSkinURL:"rotateLeftDisable.png", - rotateRightBtnEnableSkinURL:"rotateRightEnable.png", - rotateRightBtnDisableSkinURL:"rotateRightDisable.png", - deleteBtnEnableSkinURL:"deleteEnable.png", - deleteBtnDisableSkinURL:"deleteDisable.png", - backgroundURL:'', - listBackgroundURL:'', - buttonURL:'button.png' - } - }, - 'autosave': { - 'success':'Local conservation success' - } -}; diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/addimage.png b/yshop-drink-vue/public/UEditor22/lang/en/images/addimage.png deleted file mode 100644 index 3a2fd17..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/addimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnhoverskin.png b/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnhoverskin.png deleted file mode 100644 index 355eeab..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnhoverskin.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnupskin.png b/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnupskin.png deleted file mode 100644 index 61658ce..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/alldeletebtnupskin.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/background.png b/yshop-drink-vue/public/UEditor22/lang/en/images/background.png deleted file mode 100644 index d5bf5fd..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/background.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/button.png b/yshop-drink-vue/public/UEditor22/lang/en/images/button.png deleted file mode 100644 index 098874c..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/button.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/copy.png b/yshop-drink-vue/public/UEditor22/lang/en/images/copy.png deleted file mode 100644 index f982e8b..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/copy.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/deletedisable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/deletedisable.png deleted file mode 100644 index c8ee750..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/deletedisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/deleteenable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/deleteenable.png deleted file mode 100644 index 26acc88..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/deleteenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/listbackground.png b/yshop-drink-vue/public/UEditor22/lang/en/images/listbackground.png deleted file mode 100644 index 4f82ccd..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/listbackground.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/localimage.png b/yshop-drink-vue/public/UEditor22/lang/en/images/localimage.png deleted file mode 100644 index 12c8e6a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/localimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/music.png b/yshop-drink-vue/public/UEditor22/lang/en/images/music.png deleted file mode 100644 index 2f495fe..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/music.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftdisable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftdisable.png deleted file mode 100644 index 741526e..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftdisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftenable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftenable.png deleted file mode 100644 index e164ddb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/rotateleftenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightdisable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightdisable.png deleted file mode 100644 index 5a78c26..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightdisable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightenable.png b/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightenable.png deleted file mode 100644 index d768531..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/rotaterightenable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/en/images/upload.png b/yshop-drink-vue/public/UEditor22/lang/en/images/upload.png deleted file mode 100644 index 7bb15b3..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/en/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/copy.png b/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/copy.png deleted file mode 100644 index b2536aa..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/copy.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/localimage.png b/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/localimage.png deleted file mode 100644 index 7303c36..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/localimage.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/music.png b/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/music.png deleted file mode 100644 index 354edeb..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/music.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/upload.png b/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/upload.png deleted file mode 100644 index 08d4d92..0000000 Binary files a/yshop-drink-vue/public/UEditor22/lang/zh-cn/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/lang/zh-cn/zh-cn.js b/yshop-drink-vue/public/UEditor22/lang/zh-cn/zh-cn.js deleted file mode 100644 index 10ff151..0000000 --- a/yshop-drink-vue/public/UEditor22/lang/zh-cn/zh-cn.js +++ /dev/null @@ -1,669 +0,0 @@ -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-6-12 - * Time: 下午5:02 - * To change this template use File | Settings | File Templates. - */ -UE.I18N['zh-cn'] = { - 'labelMap':{ - 'anchor':'锚点', 'undo':'撤销', 'redo':'重做', 'bold':'加粗', 'indent':'首行缩进', 'snapscreen':'截图', - 'italic':'斜体', 'underline':'下划线', 'strikethrough':'删除线', 'subscript':'下标','fontborder':'字符边框', - 'superscript':'上标', 'formatmatch':'格式刷', 'source':'源代码', 'blockquote':'引用', - 'pasteplain':'纯文本粘贴模式', 'selectall':'全选', 'print':'打印', 'preview':'预览', - 'horizontal':'分隔线', 'removeformat':'清除格式', 'time':'时间', 'date':'日期', - 'unlink':'取消链接', 'insertrow':'前插入行', 'insertcol':'前插入列', 'mergeright':'右合并单元格', 'mergedown':'下合并单元格', - 'deleterow':'删除行', 'deletecol':'删除列', 'splittorows':'拆分成行', - 'splittocols':'拆分成列', 'splittocells':'完全拆分单元格','deletecaption':'删除表格标题','inserttitle':'插入标题', - 'mergecells':'合并多个单元格', 'deletetable':'删除表格', 'cleardoc':'清空文档','insertparagraphbeforetable':"表格前插入行",'insertcode':'代码语言', - 'fontfamily':'字体', 'fontsize':'字号', 'paragraph':'段落格式', 'simpleupload':'单图上传', 'insertimage':'多图上传','edittable':'表格属性','edittd':'单元格属性', 'link':'超链接', - 'emotion':'表情', 'spechars':'特殊字符', 'searchreplace':'查询替换', 'map':'Baidu地图', 'gmap':'Google地图', - 'insertvideo':'视频', 'help':'帮助', 'justifyleft':'居左对齐', 'justifyright':'居右对齐', 'justifycenter':'居中对齐', - 'justifyjustify':'两端对齐', 'forecolor':'字体颜色', 'backcolor':'背景色', 'insertorderedlist':'有序列表', - 'insertunorderedlist':'无序列表', 'fullscreen':'全屏', 'directionalityltr':'从左向右输入', 'directionalityrtl':'从右向左输入', - 'rowspacingtop':'段前距', 'rowspacingbottom':'段后距', 'pagebreak':'分页', 'insertframe':'插入Iframe', 'imagenone':'默认', - 'imageleft':'左浮动', 'imageright':'右浮动', 'attachment':'附件', 'imagecenter':'居中', 'wordimage':'图片转存', - 'lineheight':'行间距','edittip' :'编辑提示','customstyle':'自定义标题', 'autotypeset':'自动排版', - 'webapp':'百度应用','touppercase':'字母大写', 'tolowercase':'字母小写','background':'背景','template':'模板','scrawl':'涂鸦', - 'music':'音乐','inserttable':'插入表格','drafts': '从草稿箱加载', 'charts': '图表' - }, - 'insertorderedlist':{ - 'num':'1,2,3...', - 'num1':'1),2),3)...', - 'num2':'(1),(2),(3)...', - 'cn':'一,二,三....', - 'cn1':'一),二),三)....', - 'cn2':'(一),(二),(三)....', - 'decimal':'1,2,3...', - 'lower-alpha':'a,b,c...', - 'lower-roman':'i,ii,iii...', - 'upper-alpha':'A,B,C...', - 'upper-roman':'I,II,III...' - }, - 'insertunorderedlist':{ - 'circle':'○ 大圆圈', - 'disc':'● 小黑点', - 'square':'■ 小方块 ', - 'dash' :'— 破折号', - 'dot':' 。 小圆圈' - }, - 'paragraph':{'p':'段落', 'h1':'标题 1', 'h2':'标题 2', 'h3':'标题 3', 'h4':'标题 4', 'h5':'标题 5', 'h6':'标题 6'}, - 'fontfamily':{ - 'songti':'宋体', - 'kaiti':'楷体', - 'heiti':'黑体', - 'lishu':'隶书', - 'yahei':'微软雅黑', - 'andaleMono':'andale mono', - 'arial': 'arial', - 'arialBlack':'arial black', - 'comicSansMs':'comic sans ms', - 'impact':'impact', - 'timesNewRoman':'times new roman' - }, - 'customstyle':{ - 'tc':'标题居中', - 'tl':'标题居左', - 'im':'强调', - 'hi':'明显强调' - }, - 'autoupload': { - 'exceedSizeError': '文件大小超出限制', - 'exceedTypeError': '文件格式不允许', - 'jsonEncodeError': '服务器返回格式错误', - 'loading':"正在上传...", - 'loadError':"上传错误", - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' - }, - 'simpleupload':{ - 'exceedSizeError': '文件大小超出限制', - 'exceedTypeError': '文件格式不允许', - 'jsonEncodeError': '服务器返回格式错误', - 'loading':"正在上传...", - 'loadError':"上传错误", - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' - }, - 'elementPathTip':"元素路径", - 'wordCountTip':"字数统计", - 'wordCountMsg':'当前已输入{#count}个字符, 您还可以输入{#leave}个字符。 ', - 'wordOverFlowMsg':'字数超出最大允许值,服务器可能拒绝保存!', - 'ok':"确认", - 'cancel':"取消", - 'closeDialog':"关闭对话框", - 'tableDrag':"表格拖动必须引入uiUtils.js文件!", - 'autofloatMsg':"工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", - 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', - 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', - 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', - 'snapScreen_plugin':{ - 'browserMsg':"仅支持IE浏览器!", - 'callBackErrorMsg':"服务器返回数据有误,请检查配置项之后重试。", - 'uploadErrorMsg':"截图上传失败,请检查服务器端环境! " - }, - 'insertcode':{ - 'as3':'ActionScript 3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'CSS', - 'cf':'ColdFusion', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'HTML', - 'java':'Java', - 'jfx':'JavaFX', - 'js':'JavaScript', - 'pl':'Perl', - 'php':'PHP', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'SQL', - 'vb':'Visual Basic', - 'xml':'XML' - }, - 'confirmClear':"确定清空当前文档么?", - 'contextMenu':{ - 'delete':"删除", - 'selectall':"全选", - 'deletecode':"删除代码", - 'cleardoc':"清空文档", - 'confirmclear':"确定清空当前文档么?", - 'unlink':"删除超链接", - 'paragraph':"段落格式", - 'edittable':"表格属性", - 'aligntd':"单元格对齐方式", - 'aligntable':'表格对齐方式', - 'tableleft':'左浮动', - 'tablecenter':'居中显示', - 'tableright':'右浮动', - 'edittd':"单元格属性", - 'setbordervisible':'设置表格边线可见', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中对齐', - 'justifyjustify':'两端对齐', - 'table':"表格", - 'inserttable':'插入表格', - 'deletetable':"删除表格", - 'insertparagraphbefore':"前插入段落", - 'insertparagraphafter':'后插入段落', - 'deleterow':"删除当前行", - 'deletecol':"删除当前列", - 'insertrow':"前插入行", - 'insertcol':"左插入列", - 'insertrownext':'后插入行', - 'insertcolnext':'右插入列', - 'insertcaption':'插入表格名称', - 'deletecaption':'删除表格名称', - 'inserttitle':'插入表格标题行', - 'deletetitle':'删除表格标题行', - 'inserttitlecol':'插入表格标题列', - 'deletetitlecol':'删除表格标题列', - 'averageDiseRow':'平均分布各行', - 'averageDisCol':'平均分布各列', - 'mergeright':"向右合并", - 'mergeleft':"向左合并", - 'mergedown':"向下合并", - 'mergecells':"合并单元格", - 'splittocells':"完全拆分单元格", - 'splittocols':"拆分成列", - 'splittorows':"拆分成行", - 'tablesort':'表格排序', - 'enablesort':'设置表格可排序', - 'disablesort':'取消表格可排序', - 'reversecurrent':'逆序当前', - 'orderbyasc':'按ASCII字符升序', - 'reversebyasc':'按ASCII字符降序', - 'orderbynum':'按数值大小升序', - 'reversebynum':'按数值大小降序', - 'borderbk':'边框底纹', - 'setcolor':'表格隔行变色', - 'unsetcolor':'取消表格隔行变色', - 'setbackground':'选区背景隔行', - 'unsetbackground':'取消选区背景', - 'redandblue':'红蓝相间', - 'threecolorgradient':'三色渐变', - 'copy':"复制(Ctrl + c)", - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'paste':"粘贴(Ctrl + v)", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" - }, - 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", - 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", - 'anthorMsg':"链接", - 'clearColor':'清空颜色', - 'standardColor':'标准颜色', - 'themeColor':'主题颜色', - 'property':'属性', - 'default':'默认', - 'modify':'修改', - 'justifyleft':'左对齐', - 'justifyright':'右对齐', - 'justifycenter':'居中', - 'justify':'默认', - 'clear':'清除', - 'anchorMsg':'锚点', - 'delete':'删除', - 'clickToUpload':"点击上传", - 'unset':'尚未设置语言文件', - 't_row':'行', - 't_col':'列', - 'more':'更多', - 'pasteOpt':'粘贴选项', - 'pasteSourceFormat':"保留源格式", - 'tagFormat':'只保留标签', - 'pasteTextFormat':'只保留文本', - 'autoTypeSet':{ - 'mergeLine':"合并空行", - 'delLine':"清除空行", - 'removeFormat':"清除格式", - 'indent':"首行缩进", - 'alignment':"对齐方式", - 'imageFloat':"图片浮动", - 'removeFontsize':"清除字号", - 'removeFontFamily':"清除字体", - 'removeHtml':"清除冗余HTML代码", - 'pasteFilter':"粘贴过滤", - 'run':"执行", - 'symbol':'符号转换', - 'bdc2sb':'全角转半角', - 'tobdc':'半角转全角' - }, - - 'background':{ - 'static':{ - 'lang_background_normal':'背景设置', - 'lang_background_local':'在线图片', - 'lang_background_set':'选项', - 'lang_background_none':'无背景色', - 'lang_background_colored':'有背景色', - 'lang_background_color':'颜色设置', - 'lang_background_netimg':'网络图片', - 'lang_background_align':'对齐方式', - 'lang_background_position':'精确定位', - 'repeatType':{'options':["居中", "横向重复", "纵向重复", "平铺","自定义"]} - - }, - 'noUploadImage':"当前未上传过任何图片!", - 'toggleSelect':"单击可切换选中状态\n原图尺寸: " - }, - //===============dialog i18N======================= - 'insertimage':{ - 'static':{ - 'lang_tab_remote':"插入图片", //节点 - 'lang_tab_upload':"本地上传", - 'lang_tab_online':"在线管理", - 'lang_tab_search':"图片搜索", - 'lang_input_url':"地 址:", - 'lang_input_size':"大 小:", - 'lang_input_width':"宽度", - 'lang_input_height':"高度", - 'lang_input_border':"边 框:", - 'lang_input_vhspace':"边 距:", - 'lang_input_title':"描 述:", - 'lang_input_align':'图片浮动方式:', - 'lang_imgLoading':" 图片加载中……", - 'lang_start_upload':"开始上传", - 'lock':{'title':"锁定宽高比例"}, //属性 - 'searchType':{'title':"图片类型", 'options':["新闻", "壁纸", "表情", "头像"]}, //select的option - 'searchTxt':{'value':"请输入搜索关键词"}, - 'searchBtn':{'value':"百度一下"}, - 'searchReset':{'value':"清空搜索"}, - 'noneAlign':{'title':'无浮动'}, - 'leftAlign':{'title':'左浮动'}, - 'rightAlign':{'title':'右浮动'}, - 'centerAlign':{'title':'居中独占一行'} - }, - 'uploadSelectFile':'点击选择图片', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'uploadNoPreview':'不能预览', - 'updateStatusReady': '选中_张图片,共_KB。', - 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', - 'updateStatusFinish': '共_张(_KB),_张上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错', - 'remoteLockError':"宽高不正确,不能所定比例", - 'numError':"请输入正确的长度或者宽度值!例如:123,400", - 'imageUrlError':"不允许的图片格式或者图片域!", - 'imageLoadError':"图片加载失败!请检查链接地址或网络状态!", - 'searchRemind':"请输入搜索关键词", - 'searchLoading':"图片加载中,请稍后……", - 'searchRetry':" :( ,抱歉,没有找到图片!请重试一次!" - }, - 'attachment':{ - 'static':{ - 'lang_tab_upload': '上传附件', - 'lang_tab_online': '在线附件', - 'lang_start_upload':"开始上传", - 'lang_drop_remind':"可以将文件拖到这里,单次最多可选100个文件" - }, - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', - 'updateStatusFinish': '共_个(_KB),_个上传成功', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'insertvideo':{ - 'static':{ - 'lang_tab_insertV':"插入视频", - 'lang_tab_searchV':"搜索视频", - 'lang_tab_uploadV':"上传视频", - 'lang_video_url':"视频网址", - 'lang_video_size':"视频尺寸", - 'lang_videoW':"宽度", - 'lang_videoH':"高度", - 'lang_alignment':"对齐方式", - 'videoSearchTxt':{'value':"请输入搜索关键字!"}, - 'videoType':{'options':["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, - 'videoSearchBtn':{'value':"百度一下"}, - 'videoSearchReset':{'value':"清空结果"}, - - 'lang_input_fileStatus':' 当前未上传文件', - 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, - - 'lang_upload_size':"视频尺寸", - 'lang_upload_width':"宽度", - 'lang_upload_height':"高度", - 'lang_upload_alignment':"对齐方式", - 'lang_format_advice':"建议使用mp4格式." - - }, - 'numError':"请输入正确的数值,如123,400", - 'floatLeft':"左浮动", - 'floatRight':"右浮动", - '"default"':"默认", - 'block':"独占一行", - 'urlError':"输入的视频地址有误,请检查后再试!", - 'loading':"  视频加载中,请等待……", - 'clickToSelect':"点击选中", - 'goToSource':'访问源视频', - 'noVideo':"    抱歉,找不到对应的视频,请重试!", - - 'browseFiles':'浏览文件', - 'uploadSuccess':'上传成功!', - 'delSuccessFile':'从成功队列中移除', - 'delFailSaveFile':'移除保存失败文件', - 'statusPrompt':' 个文件已上传! ', - 'flashVersionError':'当前Flash版本过低,请更新FlashPlayer后重试!', - 'flashLoadingError':'Flash加载失败!请检查路径或网络状态', - 'fileUploadReady':'等待上传……', - 'delUploadQueue':'从上传队列中移除', - 'limitPrompt1':'单次不能选择超过', - 'limitPrompt2':'个文件!请重新选择!', - 'delFailFile':'移除失败文件', - 'fileSizeLimit':'文件大小超出限制!', - 'emptyFile':'空文件无法上传!', - 'fileTypeError':'文件类型不允许!', - 'unknownError':'未知错误!', - 'fileUploading':'上传中,请等待……', - 'cancelUpload':'取消上传', - 'netError':'网络错误', - 'failUpload':'上传失败!', - 'serverIOError':'服务器IO错误!', - 'noAuthority':'无权限!', - 'fileNumLimit':'上传个数限制', - 'failCheck':'验证失败,本次上传被跳过!', - 'fileCanceling':'取消中,请等待……', - 'stopUploading':'上传已停止……', - - 'uploadSelectFile':'点击选择文件', - 'uploadAddFile':'继续添加', - 'uploadStart':'开始上传', - 'uploadPause':'暂停上传', - 'uploadContinue':'继续上传', - 'uploadRetry':'重试上传', - 'uploadDelete':'删除', - 'uploadTurnLeft':'向左旋转', - 'uploadTurnRight':'向右旋转', - 'uploadPreview':'预览中', - 'updateStatusReady': '选中_个文件,共_KB。', - 'updateStatusConfirm': '成功上传_个,_个失败', - 'updateStatusFinish': '共_个(_KB),_个成功上传', - 'updateStatusError': ',_张上传失败。', - 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', - 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', - 'errorExceedSize':'文件大小超出', - 'errorFileType':'文件格式不允许', - 'errorInterrupt':'文件传输中断', - 'errorUploadRetry':'上传失败,请重试', - 'errorHttp':'http请求错误', - 'errorServerUpload':'服务器返回出错' - }, - 'webapp':{ - 'tip1':"本功能由百度APP提供,如看到此页面,请各位站长首先申请百度APPKey!", - 'tip2':"申请完成之后请至ueditor.config.js中配置获得的appkey! ", - 'applyFor':"点此申请", - 'anthorApi':"百度API" - }, - 'template':{ - 'static':{ - 'lang_template_bkcolor':'背景颜色', - 'lang_template_clear' : '保留原有内容', - 'lang_template_select' : '选择模板' - }, - 'blank':"空白文档", - 'blog':"博客文章", - 'resume':"个人简历", - 'richText':"图文混排", - 'sciPapers':"科技论文" - - - }, - 'scrawl':{ - 'static':{ - 'lang_input_previousStep':"上一步", - 'lang_input_nextsStep':"下一步", - 'lang_input_clear':'清空', - 'lang_input_addPic':'添加背景', - 'lang_input_ScalePic':'缩放背景', - 'lang_input_removePic':'删除背景', - 'J_imgTxt':{title:'添加背景图片'} - }, - 'noScarwl':"尚未作画,白纸一张~", - 'scrawlUpLoading':"涂鸦上传中,别急哦~", - 'continueBtn':"继续", - 'imageError':"糟糕,图片读取失败了!", - 'backgroundUploading':'背景图片上传中,别急哦~' - }, - 'music':{ - 'static':{ - 'lang_input_tips':"输入歌手/歌曲/专辑,搜索您感兴趣的音乐!", - 'J_searchBtn':{value:'搜索歌曲'} - }, - 'emptyTxt':'未搜索到相关音乐结果,请换一个关键词试试。', - 'chapter':'歌曲', - 'singer':'歌手', - 'special':'专辑', - 'listenTest':'试听' - }, - 'anchor':{ - 'static':{ - 'lang_input_anchorName':'锚点名字:' - } - }, - 'charts':{ - 'static':{ - 'lang_data_source':'数据源:', - 'lang_chart_format': '图表格式:', - 'lang_data_align': '数据对齐方式', - 'lang_chart_align_same': '数据源与图表X轴Y轴一致', - 'lang_chart_align_reverse': '数据源与图表X轴Y轴相反', - 'lang_chart_title': '图表标题', - 'lang_chart_main_title': '主标题:', - 'lang_chart_sub_title': '子标题:', - 'lang_chart_x_title': 'X轴标题:', - 'lang_chart_y_title': 'Y轴标题:', - 'lang_chart_tip': '提示文字', - 'lang_cahrt_tip_prefix': '提示文字前缀:', - 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', - 'lang_chart_data_unit': '数据单位', - 'lang_chart_data_unit_title': '单位:', - 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', - 'lang_chart_type': '图表类型:', - 'lang_prev_btn': '上一个', - 'lang_next_btn': '下一个' - } - }, - 'emotion':{ - 'static':{ - 'lang_input_choice':'精选', - 'lang_input_Tuzki':'兔斯基', - 'lang_input_BOBO':'BOBO', - 'lang_input_lvdouwa':'绿豆蛙', - 'lang_input_babyCat':'baby猫', - 'lang_input_bubble':'泡泡', - 'lang_input_youa':'有啊' - } - }, - 'gmap':{ - 'static':{ - 'lang_input_address':'地址', - 'lang_input_search':'搜索', - 'address':{value:"北京"} - }, - searchError:'无法定位到该地址!' - }, - 'help':{ - 'static':{ - 'lang_input_about':'关于UEditor', - 'lang_input_shortcuts':'快捷键', - 'lang_input_introduction':'UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。开源基于BSD协议,允许自由使用和修改代码。', - 'lang_Txt_shortcuts':'快捷键', - 'lang_Txt_func':'功能', - 'lang_Txt_bold':'给选中字设置为加粗', - 'lang_Txt_copy':'复制选中内容', - 'lang_Txt_cut':'剪切选中内容', - 'lang_Txt_Paste':'粘贴', - 'lang_Txt_undo':'重新执行上次操作', - 'lang_Txt_redo':'撤销上一次操作', - 'lang_Txt_italic':'给选中字设置为斜体', - 'lang_Txt_underline':'给选中字加下划线', - 'lang_Txt_selectAll':'全部选中', - 'lang_Txt_visualEnter':'软回车', - 'lang_Txt_fullscreen':'全屏' - } - }, - 'insertframe':{ - 'static':{ - 'lang_input_address':'地址:', - 'lang_input_width':'宽度:', - 'lang_input_height':'高度:', - 'lang_input_isScroll':'允许滚动条:', - 'lang_input_frameborder':'显示框架边框:', - 'lang_input_alignMode':'对齐方式:', - 'align':{title:"对齐方式", options:["默认", "左对齐", "右对齐", "居中"]} - }, - 'enterAddress':'请输入地址!' - }, - 'link':{ - 'static':{ - 'lang_input_text':'文本内容:', - 'lang_input_url':'链接地址:', - 'lang_input_title':'标题:', - 'lang_input_target':'是否在新窗口打开:' - }, - 'validLink':'只支持选中一个链接时生效', - 'httpPrompt':'您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' - }, - 'map':{ - 'static':{ - lang_city:"城市", - lang_address:"地址", - city:{value:"北京"}, - lang_search:"搜索", - lang_dynamicmap:"插入动态地图" - }, - cityMsg:"请选择城市", - errorMsg:"抱歉,找不到该位置!" - }, - 'searchreplace':{ - 'static':{ - lang_tab_search:"查找", - lang_tab_replace:"替换", - lang_search1:"查找", - lang_search2:"查找", - lang_replace:"替换", - lang_searchReg:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_searchReg1:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', - lang_case_sensitive1:"区分大小写", - lang_case_sensitive2:"区分大小写", - nextFindBtn:{value:"下一个"}, - preFindBtn:{value:"上一个"}, - nextReplaceBtn:{value:"下一个"}, - preReplaceBtn:{value:"上一个"}, - repalceBtn:{value:"替换"}, - repalceAllBtn:{value:"全部替换"} - }, - getEnd:"已经搜索到文章末尾!", - getStart:"已经搜索到文章头部", - countMsg:"总共替换了{#count}处!" - }, - 'snapscreen':{ - 'static':{ - lang_showMsg:"截图功能需要首先安装UEditor截图插件! ", - lang_download:"点此下载", - lang_step1:"第一步,下载UEditor截图插件并运行安装。", - lang_step2:"第二步,插件安装完成后即可使用,如不生效,请重启浏览器后再试!" - } - }, - 'spechars':{ - 'static':{}, - tsfh:"特殊字符", - lmsz:"罗马字符", - szfh:"数学字符", - rwfh:"日文字符", - xlzm:"希腊字母", - ewzm:"俄文字符", - pyzm:"拼音字母", - yyyb:"英语音标", - zyzf:"其他" - }, - 'edittable':{ - 'static':{ - 'lang_tableStyle':'表格样式', - 'lang_insertCaption':'添加表格名称行', - 'lang_insertTitle':'添加表格标题行', - 'lang_insertTitleCol':'添加表格标题列', - 'lang_orderbycontent':"使表格内容可排序", - 'lang_tableSize':'自动调整表格尺寸', - 'lang_autoSizeContent':'按表格文字自适应', - 'lang_autoSizePage':'按页面宽度自适应', - 'lang_example':'示例', - 'lang_borderStyle':'表格边框', - 'lang_color':'颜色:' - }, - captionName:'表格名称', - titleName:'标题', - cellsName:'内容', - errorMsg:'有合并单元格,不可排序' - }, - 'edittip':{ - 'static':{ - lang_delRow:'删除整行', - lang_delCol:'删除整列' - } - }, - 'edittd':{ - 'static':{ - lang_tdBkColor:'背景颜色:' - } - }, - 'formula':{ - 'static':{ - } - }, - 'wordimage':{ - 'static':{ - lang_resave:"转存步骤", - uploadBtn:{src:"upload.png",alt:"上传"}, - clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, - lang_step:"1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" - }, - 'fileType':"图片", - 'flashError':"FLASH初始化失败,请检查FLASH插件是否正确安装!", - 'netError':"网络连接错误,请重试!", - 'copySuccess':"图片地址已经复制!", - 'flashI18n':{} //留空默认中文 - }, - 'autosave': { - 'saving':'保存中...', - 'success':'本地保存成功' - } -}; diff --git a/yshop-drink-vue/public/UEditor22/php/Uploader.class.php b/yshop-drink-vue/public/UEditor22/php/Uploader.class.php deleted file mode 100644 index ae9818a..0000000 --- a/yshop-drink-vue/public/UEditor22/php/Uploader.class.php +++ /dev/null @@ -1,372 +0,0 @@ - "临时文件错误", - "ERROR_TMP_FILE_NOT_FOUND" => "找不到临时文件", - "ERROR_SIZE_EXCEED" => "文件大小超出网站限制", - "ERROR_TYPE_NOT_ALLOWED" => "文件类型不允许", - "ERROR_CREATE_DIR" => "目录创建失败", - "ERROR_DIR_NOT_WRITEABLE" => "目录没有写权限", - "ERROR_FILE_MOVE" => "文件保存时出错", - "ERROR_FILE_NOT_FOUND" => "找不到上传文件", - "ERROR_WRITE_CONTENT" => "写入文件内容错误", - "ERROR_UNKNOWN" => "未知错误", - "ERROR_DEAD_LINK" => "链接不可用", - "ERROR_HTTP_LINK" => "链接不是http链接", - "ERROR_HTTP_CONTENTTYPE" => "链接contentType不正确", - "INVALID_URL" => "非法 URL", - "INVALID_IP" => "非法 IP" - ); - - /** - * 构造函数 - * @param string $fileField 表单名称 - * @param array $config 配置项 - * @param bool $base64 是否解析base64编码,可省略。若开启,则$fileField代表的是base64编码的字符串表单名 - */ - public function __construct($fileField, $config, $type = "upload") - { - $this->fileField = $fileField; - $this->config = $config; - $this->type = $type; - if ($type == "remote") { - $this->saveRemote(); - } else if($type == "base64") { - $this->upBase64(); - } else { - $this->upFile(); - } - - $this->stateMap['ERROR_TYPE_NOT_ALLOWED'] = iconv('unicode', 'utf-8', $this->stateMap['ERROR_TYPE_NOT_ALLOWED']); - } - - /** - * 上传文件的主处理方法 - * @return mixed - */ - private function upFile() - { - $file = $this->file = $_FILES[$this->fileField]; - if (!$file) { - $this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND"); - return; - } - if ($this->file['error']) { - $this->stateInfo = $this->getStateInfo($file['error']); - return; - } else if (!file_exists($file['tmp_name'])) { - $this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND"); - return; - } else if (!is_uploaded_file($file['tmp_name'])) { - $this->stateInfo = $this->getStateInfo("ERROR_TMPFILE"); - return; - } - - $this->oriName = $file['name']; - $this->fileSize = $file['size']; - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //检查是否不允许的文件格式 - if (!$this->checkType()) { - $this->stateInfo = $this->getStateInfo("ERROR_TYPE_NOT_ALLOWED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - } - - /** - * 处理base64编码的图片上传 - * @return mixed - */ - private function upBase64() - { - $base64Data = $_POST[$this->fileField]; - $img = base64_decode($base64Data); - - $this->oriName = $this->config['oriName']; - $this->fileSize = strlen($img); - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - - } - - /** - * 拉取远程图片 - * @return mixed - */ - private function saveRemote() - { - $imgUrl = htmlspecialchars($this->fileField); - $imgUrl = str_replace("&", "&", $imgUrl); - - //http开头验证 - if (strpos($imgUrl, "http") !== 0) { - $this->stateInfo = $this->getStateInfo("ERROR_HTTP_LINK"); - return; - } - - preg_match('/(^https*:\/\/[^:\/]+)/', $imgUrl, $matches); - $host_with_protocol = count($matches) > 1 ? $matches[1] : ''; - - // 判断是否是合法 url - if (!filter_var($host_with_protocol, FILTER_VALIDATE_URL)) { - $this->stateInfo = $this->getStateInfo("INVALID_URL"); - return; - } - - preg_match('/^https*:\/\/(.+)/', $host_with_protocol, $matches); - $host_without_protocol = count($matches) > 1 ? $matches[1] : ''; - - // 此时提取出来的可能是 ip 也有可能是域名,先获取 ip - $ip = gethostbyname($host_without_protocol); - // 判断是否是私有 ip - if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) { - $this->stateInfo = $this->getStateInfo("INVALID_IP"); - return; - } - - //获取请求头并检测死链 - $heads = get_headers($imgUrl, 1); - if (!(stristr($heads[0], "200") && stristr($heads[0], "OK"))) { - $this->stateInfo = $this->getStateInfo("ERROR_DEAD_LINK"); - return; - } - //格式验证(扩展名验证和Content-Type验证) - $fileType = strtolower(strrchr($imgUrl, '.')); - if (!in_array($fileType, $this->config['allowFiles']) || !isset($heads['Content-Type']) || !stristr($heads['Content-Type'], "image")) { - $this->stateInfo = $this->getStateInfo("ERROR_HTTP_CONTENTTYPE"); - return; - } - - //打开输出缓冲区并获取远程图片 - ob_start(); - $context = stream_context_create( - array('http' => array( - 'follow_location' => false // don't follow redirects - )) - ); - readfile($imgUrl, false, $context); - $img = ob_get_contents(); - ob_end_clean(); - preg_match("/[\/]([^\/]*)[\.]?[^\.\/]*$/", $imgUrl, $m); - - $this->oriName = $m ? $m[1]:""; - $this->fileSize = strlen($img); - $this->fileType = $this->getFileExt(); - $this->fullName = $this->getFullName(); - $this->filePath = $this->getFilePath(); - $this->fileName = $this->getFileName(); - $dirname = dirname($this->filePath); - - //检查文件大小是否超出限制 - if (!$this->checkSize()) { - $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED"); - return; - } - - //创建目录失败 - if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) { - $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR"); - return; - } else if (!is_writeable($dirname)) { - $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE"); - return; - } - - //移动文件 - if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //移动失败 - $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT"); - } else { //移动成功 - $this->stateInfo = $this->stateMap[0]; - } - - } - - /** - * 上传错误检查 - * @param $errCode - * @return string - */ - private function getStateInfo($errCode) - { - return !$this->stateMap[$errCode] ? $this->stateMap["ERROR_UNKNOWN"] : $this->stateMap[$errCode]; - } - - /** - * 获取文件扩展名 - * @return string - */ - private function getFileExt() - { - return strtolower(strrchr($this->oriName, '.')); - } - - /** - * 重命名文件 - * @return string - */ - private function getFullName() - { - //替换日期事件 - $t = time(); - $d = explode('-', date("Y-y-m-d-H-i-s")); - $format = $this->config["pathFormat"]; - $format = str_replace("{yyyy}", $d[0], $format); - $format = str_replace("{yy}", $d[1], $format); - $format = str_replace("{mm}", $d[2], $format); - $format = str_replace("{dd}", $d[3], $format); - $format = str_replace("{hh}", $d[4], $format); - $format = str_replace("{ii}", $d[5], $format); - $format = str_replace("{ss}", $d[6], $format); - $format = str_replace("{time}", $t, $format); - - //过滤文件名的非法自负,并替换文件名 - $oriName = substr($this->oriName, 0, strrpos($this->oriName, '.')); - $oriName = preg_replace("/[\|\?\"\<\>\/\*\\\\]+/", '', $oriName); - $format = str_replace("{filename}", $oriName, $format); - - //替换随机字符串 - $randNum = rand(1, 10000000000) . rand(1, 10000000000); - if (preg_match("/\{rand\:([\d]*)\}/i", $format, $matches)) { - $format = preg_replace("/\{rand\:[\d]*\}/i", substr($randNum, 0, $matches[1]), $format); - } - - $ext = $this->getFileExt(); - return $format . $ext; - } - - /** - * 获取文件名 - * @return string - */ - private function getFileName () { - return substr($this->filePath, strrpos($this->filePath, '/') + 1); - } - - /** - * 获取文件完整路径 - * @return string - */ - private function getFilePath() - { - $fullname = $this->fullName; - $rootPath = $_SERVER['DOCUMENT_ROOT']; - - if (substr($fullname, 0, 1) != '/') { - $fullname = '/' . $fullname; - } - - return $rootPath . $fullname; - } - - /** - * 文件类型检测 - * @return bool - */ - private function checkType() - { - return in_array($this->getFileExt(), $this->config["allowFiles"]); - } - - /** - * 文件大小检测 - * @return bool - */ - private function checkSize() - { - return $this->fileSize <= ($this->config["maxSize"]); - } - - /** - * 获取当前上传成功文件的各项信息 - * @return array - */ - public function getFileInfo() - { - return array( - "state" => $this->stateInfo, - "url" => $this->fullName, - "title" => $this->fileName, - "original" => $this->oriName, - "type" => $this->fileType, - "size" => $this->fileSize - ); - } - -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/php/action_crawler.php b/yshop-drink-vue/public/UEditor22/php/action_crawler.php deleted file mode 100644 index b9e18df..0000000 --- a/yshop-drink-vue/public/UEditor22/php/action_crawler.php +++ /dev/null @@ -1,44 +0,0 @@ - $CONFIG['catcherPathFormat'], - "maxSize" => $CONFIG['catcherMaxSize'], - "allowFiles" => $CONFIG['catcherAllowFiles'], - "oriName" => "remote.png" -); -$fieldName = $CONFIG['catcherFieldName']; - -/* 抓取远程图片 */ -$list = array(); -if (isset($_POST[$fieldName])) { - $source = $_POST[$fieldName]; -} else { - $source = $_GET[$fieldName]; -} -foreach ($source as $imgUrl) { - $item = new Uploader($imgUrl, $config, "remote"); - $info = $item->getFileInfo(); - array_push($list, array( - "state" => $info["state"], - "url" => $info["url"], - "size" => $info["size"], - "title" => htmlspecialchars($info["title"]), - "original" => htmlspecialchars($info["original"]), - "source" => htmlspecialchars($imgUrl) - )); -} - -/* 返回抓取数据 */ -return json_encode(array( - 'state'=> count($list) ? 'SUCCESS':'ERROR', - 'list'=> $list -)); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/php/action_list.php b/yshop-drink-vue/public/UEditor22/php/action_list.php deleted file mode 100644 index bf9cd62..0000000 --- a/yshop-drink-vue/public/UEditor22/php/action_list.php +++ /dev/null @@ -1,92 +0,0 @@ - "no match file", - "list" => array(), - "start" => $start, - "total" => count($files) - )); -} - -/* 获取指定范围的列表 */ -$len = count($files); -for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ - $list[] = $files[$i]; -} -//倒序 -//for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ -// $list[] = $files[$i]; -//} - -/* 返回数据 */ -$result = json_encode(array( - "state" => "SUCCESS", - "list" => $list, - "start" => $start, - "total" => count($files) -)); - -return $result; - - -/** - * 遍历获取目录下的指定类型的文件 - * @param $path - * @param array $files - * @return array - */ -function getfiles($path, $allowFiles, &$files = array()) -{ - if (!is_dir($path)) return null; - if(substr($path, strlen($path) - 1) != '/') $path .= '/'; - $handle = opendir($path); - while (false !== ($file = readdir($handle))) { - if ($file != '.' && $file != '..') { - $path2 = $path . $file; - if (is_dir($path2)) { - getfiles($path2, $allowFiles, $files); - } else { - if (preg_match("/\.(".$allowFiles.")$/i", $file)) { - $files[] = array( - 'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), - 'mtime'=> filemtime($path2) - ); - } - } - } - } - return $files; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/php/action_upload.php b/yshop-drink-vue/public/UEditor22/php/action_upload.php deleted file mode 100644 index d55b659..0000000 --- a/yshop-drink-vue/public/UEditor22/php/action_upload.php +++ /dev/null @@ -1,66 +0,0 @@ - $CONFIG['imagePathFormat'], - "maxSize" => $CONFIG['imageMaxSize'], - "allowFiles" => $CONFIG['imageAllowFiles'] - ); - $fieldName = $CONFIG['imageFieldName']; - break; - case 'uploadscrawl': - $config = array( - "pathFormat" => $CONFIG['scrawlPathFormat'], - "maxSize" => $CONFIG['scrawlMaxSize'], - "allowFiles" => $CONFIG['scrawlAllowFiles'], - "oriName" => "scrawl.png" - ); - $fieldName = $CONFIG['scrawlFieldName']; - $base64 = "base64"; - break; - case 'uploadvideo': - $config = array( - "pathFormat" => $CONFIG['videoPathFormat'], - "maxSize" => $CONFIG['videoMaxSize'], - "allowFiles" => $CONFIG['videoAllowFiles'] - ); - $fieldName = $CONFIG['videoFieldName']; - break; - case 'uploadfile': - default: - $config = array( - "pathFormat" => $CONFIG['filePathFormat'], - "maxSize" => $CONFIG['fileMaxSize'], - "allowFiles" => $CONFIG['fileAllowFiles'] - ); - $fieldName = $CONFIG['fileFieldName']; - break; -} - -/* 生成上传实例对象并完成上传 */ -$up = new Uploader($fieldName, $config, $base64); - -/** - * 得到上传文件所对应的各个参数,数组结构 - * array( - * "state" => "", //上传状态,上传成功时必须返回"SUCCESS" - * "url" => "", //返回的地址 - * "title" => "", //新文件名 - * "original" => "", //原始文件名 - * "type" => "" //文件类型 - * "size" => "", //文件大小 - * ) - */ - -/* 返回数据 */ -return json_encode($up->getFileInfo()); diff --git a/yshop-drink-vue/public/UEditor22/php/config.json b/yshop-drink-vue/public/UEditor22/php/config.json deleted file mode 100644 index dd5bc17..0000000 --- a/yshop-drink-vue/public/UEditor22/php/config.json +++ /dev/null @@ -1,94 +0,0 @@ -/* 前后端通信相关的配置,注释只允许使用多行方式 */ -{ - /* 上传图片配置项 */ - "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ - "imageFieldName": "upfile", /* 提交的图片表单名称 */ - "imageMaxSize": 2048000, /* 上传大小限制,单位B */ - "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ - "imageCompressEnable": true, /* 是否压缩图片,默认是true */ - "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ - "imageInsertAlign": "none", /* 插入的图片浮动方式 */ - "imageUrlPrefix": "", /* 图片访问路径前缀 */ - "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ - /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ - /* {time} 会替换成时间戳 */ - /* {yyyy} 会替换成四位年份 */ - /* {yy} 会替换成两位年份 */ - /* {mm} 会替换成两位月份 */ - /* {dd} 会替换成两位日期 */ - /* {hh} 会替换成两位小时 */ - /* {ii} 会替换成两位分钟 */ - /* {ss} 会替换成两位秒 */ - /* 非法字符 \ : * ? " < > | */ - /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */ - - /* 涂鸦图片上传配置项 */ - "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ - "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ - "scrawlPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ - "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ - "scrawlInsertAlign": "none", - - /* 截图工具上传 */ - "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ - "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */ - "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ - - /* 抓取远程图片配置 */ - "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], - "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ - "catcherFieldName": "source", /* 提交的图片列表表单名称 */ - "catcherPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "catcherUrlPrefix": "", /* 图片访问路径前缀 */ - "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ - "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ - - /* 上传视频配置 */ - "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ - "videoFieldName": "upfile", /* 提交的视频表单名称 */ - "videoPathFormat": "/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "videoUrlPrefix": "", /* 视频访问路径前缀 */ - "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */ - "videoAllowFiles": [ - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */ - - /* 上传文件配置 */ - "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */ - "fileFieldName": "upfile", /* 提交的文件表单名称 */ - "filePathFormat": "/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "fileUrlPrefix": "", /* 文件访问路径前缀 */ - "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */ - "fileAllowFiles": [ - ".png", ".jpg", ".jpeg", ".gif", ".bmp", - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", - ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", - ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" - ], /* 上传文件格式显示 */ - - /* 列出指定目录下的图片 */ - "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */ - "imageManagerListPath": "/ueditor/php/upload/image/", /* 指定要列出图片的目录 */ - "imageManagerListSize": 20, /* 每次列出文件数量 */ - "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */ - "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ - "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */ - - /* 列出指定目录下的文件 */ - "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ - "fileManagerListPath": "/ueditor/php/upload/file/", /* 指定要列出文件的目录 */ - "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */ - "fileManagerListSize": 20, /* 每次列出文件数量 */ - "fileManagerAllowFiles": [ - ".png", ".jpg", ".jpeg", ".gif", ".bmp", - ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", - ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", - ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", - ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" - ] /* 列出的文件类型 */ - -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/php/controller.php b/yshop-drink-vue/public/UEditor22/php/controller.php deleted file mode 100644 index feac890..0000000 --- a/yshop-drink-vue/public/UEditor22/php/controller.php +++ /dev/null @@ -1,59 +0,0 @@ - '请求地址出错' - )); - break; -} - -/* 输出结果 */ -if (isset($_GET["callback"])) { - if (preg_match("/^[\w_]+$/", $_GET["callback"])) { - echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; - } else { - echo json_encode(array( - 'state'=> 'callback参数不合法' - )); - } -} else { - echo $result; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.css b/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.css deleted file mode 100644 index 37b7edf..0000000 --- a/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.css +++ /dev/null @@ -1,1903 +0,0 @@ -/*基础UI构建 -*/ -/* common layer */ -.edui-default .edui-box { - border: none; - padding: 0; - margin: 0; - overflow: hidden; -} - -.edui-default a.edui-box { - display: block; - text-decoration: none; - color: black; -} - -.edui-default a.edui-box:hover { - text-decoration: none; -} - -.edui-default a.edui-box:active { - text-decoration: none; -} - -.edui-default table.edui-box { - border-collapse: collapse; -} - -.edui-default ul.edui-box { - list-style-type: none; -} - -div.edui-box { - position: relative; - display: -moz-inline-box !important; - display: inline-block !important; - vertical-align: top; -} - -.edui-default .edui-clearfix { - zoom: 1 -} - -.edui-default .edui-clearfix:after { - content: '\20'; - display: block; - clear: both; -} - - * html div.edui-box { - display: inline !important; -} - -*:first-child+html div.edui-box { - display: inline !important; -} - -/* control layout */ -.edui-default .edui-button-body, .edui-splitbutton-body, .edui-menubutton-body, .edui-combox-body { - position: relative; -} - -.edui-default .edui-popup { - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; -} - -.edui-default .edui-popup .edui-shadow { - position: absolute; - z-index: -1; -} - -.edui-default .edui-popup .edui-bordereraser { - position: absolute; - overflow: hidden; -} - -.edui-default .edui-tablepicker .edui-canvas { - position: relative; -} - -.edui-default .edui-tablepicker .edui-canvas .edui-overlay { - position: absolute; -} - -.edui-default .edui-dialog-modalmask, .edui-dialog-dragmask { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-toolbar { - position: relative; -} - -/* - * default theme - */ -.edui-default .edui-label { - cursor: default; -} - -.edui-default span.edui-clickable { - color: blue; - cursor: pointer; - text-decoration: underline; -} - -.edui-default span.edui-unclickable { - color: gray; - cursor: default; -} -/* 工具栏 */ -.edui-default .edui-toolbar { - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - padding: 1px; - overflow: hidden; /*全屏下单独一行不占位*/ - zoom: 1; - width:auto; - height:auto; -} - -.edui-default .edui-toolbar .edui-button, -.edui-default .edui-toolbar .edui-splitbutton, -.edui-default .edui-toolbar .edui-menubutton, -.edui-default .edui-toolbar .edui-combox { - margin: 1px; -} -/*UI工具栏、编辑区域、底部*/ -.edui-default .edui-editor { - border: 1px solid #d4d4d4; - background-color: white; - position: relative; - overflow: visible; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.edui-editor div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-toolbarbox { - position: relative; - zoom: 1; - -webkit-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - -moz-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); - border-top-left-radius:2px; - border-top-right-radius:2px; -} - -.edui-default .edui-editor-toolbarboxouter { - border-bottom: 1px solid #d4d4d4; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - /*border: 1px solid #d4d4d4;*/ - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.edui-default .edui-editor-toolbarboxinner { - padding: 2px; -} - -.edui-default .edui-editor-iframeholder { - position: relative; - /*for fix ie6 toolbarmsg under iframe bug. relative -> static */ - /*_position: static !important;* -} - -.edui-default .edui-editor-iframeholder textarea { - font-family: consolas, "Courier New", "lucida console", monospace; - font-size: 12px; - line-height: 18px; -} - -.edui-default .edui-editor-bottombar { - /*border-top: 1px solid #ccc;*/ - /*height: 20px;*/ - /*width: 40%;*/ - /*float: left;*/ - /*overflow: hidden;*/ -} - -.edui-default .edui-editor-bottomContainer { - overflow: hidden; -} - -.edui-default .edui-editor-bottomContainer table { - width: 100%; - height: 0; - overflow: hidden; - border-spacing: 0; -} - -.edui-default .edui-editor-bottomContainer td { - white-space: nowrap; - border-top: 1px solid #ccc; - line-height: 20px; - font-size: 12px; - font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif; -} - -.edui-default .edui-editor-wordcount { - text-align: right; - margin-right: 5px; - color: #aaa; -} -.edui-default .edui-editor-scale { - width: 12px; -} -.edui-default .edui-editor-scale .edui-editor-icon { - float: right; - width: 100%; - height: 12px; - margin-top: 10px; - background: url(../images/scale.png) no-repeat; - cursor: se-resize; -} -.edui-default .edui-editor-breadcrumb { - margin: 2px 0 0 3px; -} - -.edui-default .edui-editor-breadcrumb span { - cursor: pointer; - text-decoration: underline; - color: blue; -} - -.edui-default .edui-toolbar .edui-for-fullscreen { - float: right; -} - -.edui-default .edui-bubble .edui-popup-content { - border: 1px solid #DCAC6C; - background-color: #fff6d9; - padding: 5px; - font-size: 10pt; - font-family: "宋体"; -} - -.edui-default .edui-bubble .edui-shadow { - /*box-shadow: 1px 1px 3px #818181;*/ - /*-webkit-box-shadow: 2px 2px 3px #818181;*/ - /*-moz-box-shadow: 2px 2px 3px #818181;*/ - /*filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius = '2', MakeShadow = 'true', ShadowOpacity = '0.5');*/ -} - -.edui-default .edui-editor-toolbarmsg { - background-color: #FFF6D9; - border-bottom: 1px solid #ccc; - position: absolute; - bottom: -25px; - left: 0; - z-index: 1009; - width: 99.9%; -} - -.edui-default .edui-editor-toolbarmsg-upload { - font-size: 14px; - color: blue; - width: 100px; - height: 16px; - line-height: 16px; - cursor: pointer; - position: absolute; - top: 5px; - left: 350px; -} - -.edui-default .edui-editor-toolbarmsg-label { - font-size: 12px; - line-height: 16px; - padding: 4px; -} - -.edui-default .edui-editor-toolbarmsg-close { - float: right; - width: 20px; - height: 16px; - line-height: 16px; - cursor: pointer; - color: red; -} -/*可选中菜单按钮*/ -.edui-default .edui-list .edui-bordereraser { - display: none; -} - -.edui-default .edui-listitem { - padding: 1px; - white-space: nowrap; -} - -.edui-default .edui-list .edui-state-hover { - position: relative; - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-for-fontfamily .edui-listitem-label { - min-width: 130px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-insertcode .edui-listitem-label { - min-width: 120px; - _width: 120px; - font-size: 12px; - height: 22px; - line-height: 22px; - padding-left: 5px; -} -.edui-default .edui-for-underline .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - font-size: 12px; -} - -.edui-default .edui-for-fontsize .edui-listitem-label { - min-width: 120px; - _width: 120px; - padding: 3px 5px; - -} - -.edui-default .edui-for-paragraph .edui-listitem-label { - min-width: 200px; - _width: 200px; - padding: 2px 5px; -} - -.edui-default .edui-for-rowspacingtop .edui-listitem-label, -.edui-default .edui-for-rowspacingbottom .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-lineheight .edui-listitem-label { - min-width: 53px; - _width: 53px; - padding: 2px 5px; -} - -.edui-default .edui-for-customstyle .edui-listitem-label { - min-width: 200px; - _width: 200px; - width: 200px !important; - padding: 2px 5px; -} -/* 可选中按钮弹出菜单*/ -.edui-default .edui-menu { - z-index: 3000; -} - -.edui-default .edui-menu .edui-popup-content { - padding: 3px; -} - -.edui-default .edui-menu-body { - _width: 150px; - min-width: 170px; - background: url("../images/sparator_v.png") repeat-y 25px; -} - -.edui-default .edui-menuitem-body { -} - -.edui-default .edui-menuitem { - height: 20px; - cursor: default; - vertical-align: top; -} - -.edui-default .edui-menuitem .edui-icon { - width: 20px !important; - height: 20px !important; - background: url(../images/icons.png) 0 -4000px; - background: url(../images/icons.gif) 0 -4000px\9; -} - -.edui-default .edui-menuitem .edui-label { - font-size: 12px; - line-height: 20px; - height: 20px; - padding-left: 10px; -} - -.edui-default .edui-state-checked .edui-menuitem-body { - background: url("../images/icons-all.gif") no-repeat 6px -205px; -} - -.edui-default .edui-state-disabled .edui-menuitem-label { - color: gray; -} - - -/*不可选中菜单按钮 */ -.edui-default .edui-toolbar .edui-combox-body .edui-button-body { - width: 60px; - font-size: 12px; - height: 20px; - line-height: 20px; - padding-left: 5px; - white-space: nowrap; - margin: 0 3px 0 0; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-combox .edui-combox-body { - border: 1px solid #CCC; - background-color: white; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-splitborder { - display: none; -} - -.edui-default .edui-toolbar .edui-combox-body .edui-arrow { - border-left: 1px solid #CCC; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow { - border-left: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-checked .edui-combox-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow { - border-left: 1px solid #DCAC6C; -} - -.edui-toolbar .edui-state-disabled .edui-combox-body { - background-color: #F0F0EE; - opacity: 0.3; - filter: alpha(opacity = 30); -} - -.edui-toolbar .edui-state-opened .edui-combox-body { - background-color: white; - border: 1px solid gray; -} -/*普通按钮样式及状态*/ -.edui-default .edui-toolbar .edui-button .edui-icon, -.edui-default .edui-toolbar .edui-menubutton .edui-icon, -.edui-default .edui-toolbar .edui-splitbutton .edui-icon { - height: 20px !important; - width: 20px !important; - background-image: url(../images/icons.png); - background-image: url(../images/icons.gif) \9; -} - -.edui-default .edui-toolbar .edui-button .edui-button-wrap { - padding: 1px; - position: relative; -} - -.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap { - background-color: #fff5d4; - padding: 0; - border: 1px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap { - background-color: #ffe69f; - padding: 0; - border: 1px solid #dcac6c; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; -} - -.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap { - background-color: #ffffff; - padding: 0; - border: 1px solid gray; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-label { - color: #ccc; -} -.edui-default .edui-toolbar .edui-state-disabled .edui-icon { - opacity: 0.3; - filter: alpha(opacity = 30); -} - -/* toolbar icons */ -.edui-default .edui-for-undo .edui-icon { - background-position: -160px 0; -} - -.edui-default .edui-for-redo .edui-icon { - background-position: -100px 0; -} - -.edui-default .edui-for-bold .edui-icon { - background-position: 0 0; -} - -.edui-default .edui-for-italic .edui-icon { - background-position: -60px 0; -} - -.edui-default .edui-for-fontborder .edui-icon { - background-position:-160px -40px; -} -.edui-default .edui-for-underline .edui-icon { - background-position: -140px 0; -} - -.edui-default .edui-for-strikethrough .edui-icon { - background-position: -120px 0; -} - -.edui-default .edui-for-subscript .edui-icon { - background-position: -600px 0; -} - -.edui-default .edui-for-superscript .edui-icon { - background-position: -620px 0; -} - -.edui-default .edui-for-blockquote .edui-icon { - background-position: -220px 0; -} - -.edui-default .edui-for-forecolor .edui-icon { - background-position: -720px 0; -} - -.edui-default .edui-for-backcolor .edui-icon { - background-position: -760px 0; -} - -.edui-default .edui-for-inserttable .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-autotypeset .edui-icon { - background-position: -640px -40px; -} - -.edui-default .edui-for-justifyleft .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-justifycenter .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-justifyright .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-justifyjustify .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-insertorderedlist .edui-icon { - background-position: -80px 0; -} - -.edui-default .edui-for-insertunorderedlist .edui-icon { - background-position: -20px 0; -} - -.edui-default .edui-for-lineheight .edui-icon { - background-position: -725px -40px; -} - -.edui-default .edui-for-rowspacingbottom .edui-icon { - background-position: -745px -40px; -} - -.edui-default .edui-for-rowspacingtop .edui-icon { - background-position: -765px -40px; -} - -.edui-default .edui-for-horizontal .edui-icon { - background-position: -360px 0; -} - -.edui-default .edui-for-link .edui-icon { - background-position: -500px 0; -} - -.edui-default .edui-for-code .edui-icon { - background-position: -440px -40px; -} - -.edui-default .edui-for-insertimage .edui-icon { - background-position: -726px -77px; -} - -.edui-default .edui-for-insertframe .edui-icon { - background-position: -240px -40px; -} - -.edui-default .edui-for-emoticon .edui-icon { - background-position: -60px -20px; -} - -.edui-default .edui-for-spechars .edui-icon { - background-position: -240px 0; -} - -.edui-default .edui-for-help .edui-icon { - background-position: -340px 0; -} - -.edui-default .edui-for-print .edui-icon { - background-position: -440px -20px; -} - -.edui-default .edui-for-preview .edui-icon { - background-position: -420px -20px; -} - -.edui-default .edui-for-selectall .edui-icon { - background-position: -400px -20px; -} - -.edui-default .edui-for-searchreplace .edui-icon { - background-position: -520px -20px; -} - -.edui-default .edui-for-map .edui-icon { - background-position: -40px -40px; -} - -.edui-default .edui-for-gmap .edui-icon { - background-position: -260px -40px; -} - -.edui-default .edui-for-insertvideo .edui-icon { - background-position: -320px -20px; -} - -.edui-default .edui-for-time .edui-icon { - background-position: -160px -20px; -} - -.edui-default .edui-for-date .edui-icon { - background-position: -140px -20px; -} - -.edui-default .edui-for-cut .edui-icon { - background-position: -680px 0; -} - -.edui-default .edui-for-copy .edui-icon { - background-position: -700px 0; -} - -.edui-default .edui-for-paste .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-formatmatch .edui-icon { - background-position: -40px 0; -} - -.edui-default .edui-for-pasteplain .edui-icon { - background-position: -360px -20px; -} - -.edui-default .edui-for-directionalityltr .edui-icon { - background-position: -20px -20px; -} - -.edui-default .edui-for-directionalityrtl .edui-icon { - background-position: -40px -20px; -} - -.edui-default .edui-for-source .edui-icon { - background-position: -261px -0px; -} - -.edui-default .edui-for-removeformat .edui-icon { - background-position: -580px 0; -} - -.edui-default .edui-for-unlink .edui-icon { - background-position: -640px 0; -} - -.edui-default .edui-for-touppercase .edui-icon { - background-position: -786px 0; -} - -.edui-default .edui-for-tolowercase .edui-icon { - background-position: -806px 0; -} - -.edui-default .edui-for-insertrow .edui-icon { - background-position: -478px -76px; -} - -.edui-default .edui-for-insertrownext .edui-icon { - background-position: -498px -76px; -} - -.edui-default .edui-for-insertcol .edui-icon { - background-position: -455px -76px; -} - -.edui-default .edui-for-insertcolnext .edui-icon { - background-position: -429px -76px; -} - -.edui-default .edui-for-mergeright .edui-icon { - background-position: -60px -40px; -} - -.edui-default .edui-for-mergedown .edui-icon { - background-position: -80px -40px; -} - -.edui-default .edui-for-splittorows .edui-icon { - background-position: -100px -40px; -} - -.edui-default .edui-for-splittocols .edui-icon { - background-position: -120px -40px; -} - -.edui-default .edui-for-insertparagraphbeforetable .edui-icon { - background-position: -140px -40px; -} - -.edui-default .edui-for-deleterow .edui-icon { - background-position: -660px -20px; -} - -.edui-default .edui-for-deletecol .edui-icon { - background-position: -640px -20px; -} - -.edui-default .edui-for-splittocells .edui-icon { - background-position: -800px -20px; -} - -.edui-default .edui-for-mergecells .edui-icon { - background-position: -760px -20px; -} - -.edui-default .edui-for-deletetable .edui-icon { - background-position: -620px -20px; -} - -.edui-default .edui-for-cleardoc .edui-icon { - background-position: -520px 0; -} - -.edui-default .edui-for-fullscreen .edui-icon { - background-position: -100px -20px; -} - -.edui-default .edui-for-anchor .edui-icon { - background-position: -200px 0; -} - -.edui-default .edui-for-pagebreak .edui-icon { - background-position: -460px -40px; -} - -.edui-default .edui-for-imagenone .edui-icon { - background-position: -480px -40px; -} - -.edui-default .edui-for-imageleft .edui-icon { - background-position: -500px -40px; -} - -.edui-default .edui-for-wordimage .edui-icon { - background-position: -660px -40px; -} - -.edui-default .edui-for-imageright .edui-icon { - background-position: -520px -40px; -} - -.edui-default .edui-for-imagecenter .edui-icon { - background-position: -540px -40px; -} - -.edui-default .edui-for-indent .edui-icon { - background-position: -400px 0; -} - -.edui-default .edui-for-outdent .edui-icon { - background-position: -540px 0; -} - -.edui-default .edui-for-webapp .edui-icon { - background-position: -601px -40px -} - -.edui-default .edui-for-table .edui-icon { - background-position: -580px -20px; -} - -.edui-default .edui-for-edittable .edui-icon { - background-position: -420px -40px; -} - -.edui-default .edui-for-template .edui-icon { - background-position: -339px -40px; -} - -.edui-default .edui-for-delete .edui-icon { - background-position: -360px -40px; -} - -.edui-default .edui-for-attachment .edui-icon { - background-position: -620px -40px; -} - -.edui-default .edui-for-edittd .edui-icon { - background-position: -700px -40px; -} - -.edui-default .edui-for-snapscreen .edui-icon { - background-position: -581px -40px -} - -.edui-default .edui-for-scrawl .edui-icon { - background-position: -801px -41px -} - -.edui-default .edui-for-background .edui-icon { - background-position: -680px -40px; -} - -.edui-default .edui-for-music .edui-icon { - background-position: -18px -40px -} - -.edui-default .edui-for-formula .edui-icon { - background-position: -200px -40px -} - -.edui-default .edui-for-aligntd .edui-icon { - background-position: -236px -76px; -} - -.edui-default .edui-for-insertparagraphtrue .edui-icon { - background-position: -625px -76px; -} - -.edui-default .edui-for-insertparagraph .edui-icon { - background-position: -602px -76px; -} - -.edui-default .edui-for-insertcaption .edui-icon { - background-position: -336px -76px; -} - -.edui-default .edui-for-deletecaption .edui-icon { - background-position: -362px -76px; -} - -.edui-default .edui-for-inserttitle .edui-icon { - background-position: -286px -76px; -} - -.edui-default .edui-for-deletetitle .edui-icon { - background-position: -311px -76px; -} - -.edui-default .edui-for-aligntable .edui-icon { - background-position: -440px 0; -} - -.edui-default .edui-for-tablealignment-left .edui-icon { - background-position: -460px 0; -} - -.edui-default .edui-for-tablealignment-center .edui-icon { - background-position: -420px 0; -} - -.edui-default .edui-for-tablealignment-right .edui-icon { - background-position: -480px 0; -} - -.edui-default .edui-for-drafts .edui-icon { - background-position: -560px 0; -} - -.edui-default .edui-for-charts .edui-icon { - background: url( ../images/charts.png ) no-repeat 2px 3px!important; -} - -.edui-default .edui-for-inserttitlecol .edui-icon { - background-position: -673px -76px; -} - -.edui-default .edui-for-deletetitlecol .edui-icon { - background-position: -698px -76px; -} - -.edui-default .edui-for-simpleupload .edui-icon { - background-position: -380px 0px; -} -/*splitbutton*/ -.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow, -.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow { - background: url(../images/icons.png) -741px 0; - _background: url(../images/icons.gif) -741px 0; - height: 20px; - width: 9px; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body { - padding: 1px; -} - -.edui-default .edui-toolbar .edui-splitborder { - width: 1px; - height: 20px; -} - -.edui-default .edui-toolbar .edui-state-hover .edui-splitborder { - width: 1px; - border-left: 0px solid #dcac6c; -} - -.edui-default .edui-toolbar .edui-state-active .edui-splitborder { - width: 0; - border-left: 1px solid gray; -} - -.edui-default .edui-toolbar .edui-state-opened .edui-splitborder { - width: 1px; - border: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body { - background-color: #fff5d4; - border: 1px solid #dcac6c; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body { - background-color: #FFE69F; - border: 1px solid #DCAC6C; - padding: 0; -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body { - background-color: #ffffff; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-state-disabled .edui-arrow { - opacity: 0.3; - _filter: alpha(opacity = 30); -} - -.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body, -.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body { - background-color: white; - border: 1px solid gray; - padding: 0; -} - -.edui-default .edui-for-insertorderedlist .edui-bordereraser, -.edui-default .edui-for-lineheight .edui-bordereraser, -.edui-default .edui-for-rowspacingtop .edui-bordereraser, -.edui-default .edui-for-rowspacingbottom .edui-bordereraser, -.edui-default .edui-for-insertunorderedlist .edui-bordereraser { - background-color: white; -} - -/* 解决嵌套导致的图标问题 */ -.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon, -.edui-default .edui-for-lineheight .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon, -.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon, -.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon { - /*background-position: 0 -40px;*/ - background-image: none ; -} - -/* 弹出菜单 */ -.edui-default .edui-popup { - z-index: 3000; - background-color: #ffffff; - width:auto; - height:auto; - -} - -.edui-default .edui-popup .edui-shadow { - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -.edui-default .edui-popup-content { - border:1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - padding: 5px; - background:#ffffff; -} - -.edui-default .edui-popup .edui-bordereraser { - background-color: white; - height: 3px; -} - -.edui-default .edui-menu .edui-bordereraser { - height: 3px; -} - -.edui-default .edui-anchor-topleft .edui-bordereraser { - left: 1px; - top: -2px; -} - -.edui-default .edui-anchor-topright .edui-bordereraser { - right: 1px; - top: -2px; -} - -.edui-default .edui-anchor-bottomleft .edui-bordereraser { - left: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-default .edui-anchor-bottomright .edui-bordereraser { - right: 0; - bottom: -6px; - height: 7px; - border-left: 1px solid gray; - border-right: 1px solid gray; -} - -.edui-popup div{ - width:auto; - height:auto; -} -.edui-default .edui-editor-messageholder { - display: block; - width: 150px; - height: auto; - border: 0; - margin: 0; - padding: 0; - position: absolute; - top: 28px; - right: 3px; -} - -.edui-default .edui-message{ - min-height: 10px; - text-shadow: 0 1px 0 rgba(255,255,255,0.5); - padding: 0; - margin-bottom: 3px; - position: relative; -} -.edui-default .edui-message-body{ - border-radius: 3px; - padding: 8px 15px 8px 8px; - color: #c09853; - background-color: #fcf8e3; - border: 1px solid #fbeed5; -} -.edui-default .edui-message-type-info{ - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1 -} -.edui-default .edui-message-type-success{ - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6 -} -.edui-default .edui-message-type-danger, -.edui-default .edui-message-type-error{ - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7 -} -.edui-default .edui-message .edui-message-closer { - display: block; - width: 16px; - height: 16px; - line-height: 16px; - position: absolute; - top: 0; - right: 0; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - float: right; - font-size: 20px; - font-weight: bold; - color: #999; - text-shadow: 0 1px 0 #fff; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; -} -.edui-default .edui-message .edui-message-content { - font-size: 10pt; - word-wrap: break-word; - word-break: normal; -} -/* 弹出对话框按钮和对话框大小 */ -.edui-default .edui-dialog { - z-index: 2000; - position: absolute; - -} - -.edui-dialog div{ - width:auto; -} - -.edui-default .edui-dialog-wrap { - margin-right: 6px; - margin-bottom: 6px; -} - -.edui-default .edui-dialog-fullscreen-flag { - margin-right: 0; - margin-bottom: 0; -} - -.edui-default .edui-dialog-body { - position: relative; - padding:2px 0 0 2px; - _zoom: 1; -} - -.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body { - padding: 0; -} - -.edui-default .edui-dialog-shadow { - position: absolute; - z-index: -1; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.edui-default .edui-dialog-foot { - background-color: white; -} - -.edui-default .edui-dialog-titlebar { - height: 26px; - border-bottom: 1px solid #c6c6c6; - background: url(../images/dialog-title-bg.png) repeat-x bottom; - position: relative; - cursor: move; -} -.edui-default .edui-dialog-caption { - font-weight: bold; - font-size: 12px; - line-height: 26px; - padding-left: 5px; -} - -.edui-default .edui-dialog-draghandle { - height: 26px; -} - -.edui-default .edui-dialog-closebutton { - position: absolute !important; - right: 5px; - top: 3px; -} - -.edui-default .edui-dialog-closebutton .edui-button-body { - height: 20px; - width: 20px; - cursor: pointer; - background: url("../images/icons-all.gif") no-repeat 0 -59px; -} - -.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -89px; -} - -.edui-default .edui-dialog-foot { - height: 40px; -} - -.edui-default .edui-dialog-buttons { - position: absolute; - right: 0; -} - -.edui-default .edui-dialog-buttons .edui-button { - margin-right: 10px; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-button-body { - background: url("../images/icons-all.gif") no-repeat; - height: 24px; - width: 96px; - font-size: 12px; - line-height: 24px; - text-align: center; - cursor: default; -} - -.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body { - background: url("../images/icons-all.gif") no-repeat 0 -30px; -} - -.edui-default .edui-dialog iframe { - border: 0; - padding: 0; - margin: 0; - vertical-align: top; -} - -.edui-default .edui-dialog-modalmask { - opacity: 0.3; - filter: alpha(opacity = 30); - background-color: #ccc; - position: absolute; - /*z-index: 1999;*/ -} - -.edui-default .edui-dialog-dragmask { - position: absolute; - /*z-index: 2001;*/ - background-color: transparent; - cursor: move; -} - -.edui-default .edui-dialog-content { - position: relative; -} - -.edui-default .dialogcontmask { - cursor: move; - visibility: hidden; - display: block; - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - filter: alpha(opacity = 0); -} - -/*link-dialog*/ -.edui-default .edui-for-link .edui-dialog-content { - width: 420px; - height: 200px; - overflow: hidden; -} -/*background-dialog*/ -.edui-default .edui-for-background .edui-dialog-content { - width: 440px; - height: 280px; - overflow: hidden; -} - -/*template-dialog*/ -.edui-default .edui-for-template .edui-dialog-content { - width: 630px; - height: 390px; - overflow: hidden; -} - -/*scrawl-dialog*/ -.edui-default .edui-for-scrawl .edui-dialog-content { - width: 515px; - *width: 506px; - height: 360px; -} - -/*spechars-dialog*/ -.edui-default .edui-for-spechars .edui-dialog-content { - width: 620px; - height: 500px; - *width: 630px; - *height: 570px; -} - -/*image-dialog*/ -.edui-default .edui-for-insertimage .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} -/*webapp-dialog*/ -.edui-default .edui-for-webapp .edui-dialog-content { - width: 560px; - _width: 565px; - height: 450px; - overflow: hidden; -} - -/*image-insertframe*/ -.edui-default .edui-for-insertframe .edui-dialog-content { - width: 350px; - height: 200px; - overflow: hidden; -} - -/*wordImage-dialog*/ -.edui-default .edui-for-wordimage .edui-dialog-content { - width: 620px; - height: 380px; - overflow: hidden; -} - -/*attachment-dialog*/ -.edui-default .edui-for-attachment .edui-dialog-content { - width: 650px; - height: 400px; - overflow: hidden; -} - - -/*map-dialog*/ -.edui-default .edui-for-map .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*gmap-dialog*/ -.edui-default .edui-for-gmap .edui-dialog-content { - width: 550px; - height: 400px; -} - -/*video-dialog*/ -.edui-default .edui-for-insertvideo .edui-dialog-content { - width: 590px; - height: 390px; -} - -/*anchor-dialog*/ -.edui-default .edui-for-anchor .edui-dialog-content { - width: 320px; - height: 60px; - overflow: hidden; -} - -/*searchreplace-dialog*/ -.edui-default .edui-for-searchreplace .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*help-dialog*/ -.edui-default .edui-for-help .edui-dialog-content { - width: 400px; - height: 420px; -} - -/*edittable-dialog*/ -.edui-default .edui-for-edittable .edui-dialog-content { - width: 540px; - _width:590px; - height: 335px; -} - -/*edittip-dialog*/ -.edui-default .edui-for-edittip .edui-dialog-content { - width: 225px; - height: 60px; -} - -/*edittd-dialog*/ -.edui-default .edui-for-edittd .edui-dialog-content { - width: 240px; - height: 50px; -} -/*snapscreen-dialog*/ -.edui-default .edui-for-snapscreen .edui-dialog-content { - width: 400px; - height: 220px; -} - -/*music-dialog*/ -.edui-default .edui-for-music .edui-dialog-content { - width: 515px; - height: 360px; -} - -/*段落弹出菜单*/ -.edui-default .edui-for-paragraph .edui-listitem-label { - font-family: Tahoma, Verdana, Arial, Helvetica; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p { - font-size: 22px; - line-height: 27px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 { - font-weight: bolder; - font-size: 32px; - line-height: 36px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 { - font-weight: bolder; - font-size: 27px; - line-height: 29px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 { - font-weight: bolder; - font-size: 19px; - line-height: 23px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 { - font-weight: bolder; - font-size: 16px; - line-height: 19px -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 { - font-weight: bolder; - font-size: 13px; - line-height: 16px; -} - -.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 { - font-weight: bolder; - font-size: 12px; - line-height: 14px; -} -/* 表格弹出菜单 */ -.edui-default .edui-for-inserttable .edui-splitborder { - display: none -} -.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow { - width: 0 -} -.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{ - border-left: 1px solid transparent; -} -.edui-default .edui-tablepicker .edui-infoarea { - height: 14px; - line-height: 14px; - font-size: 12px; - width: 220px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-label { - float: left; -} - -.edui-default .edui-dialog-buttons .edui-label { - line-height: 24px; -} - -.edui-default .edui-tablepicker .edui-infoarea .edui-clickable { - float: right; -} - -.edui-default .edui-tablepicker .edui-pickarea { - background: url("../images/unhighlighted.gif") repeat; - height: 220px; - width: 220px; -} - -.edui-default .edui-tablepicker .edui-pickarea .edui-overlay { - background: url("../images/highlighted.gif") repeat; -} - -/* 颜色弹出菜单 */ -.edui-default .edui-colorpicker-topbar { - height: 27px; - width: 200px; - /*border-bottom: 1px gray dashed;*/ -} - -.edui-default .edui-colorpicker-preview { - height: 20px; - border: 1px inset black; - margin-left: 1px; - width: 128px; - float: left; -} - -.edui-default .edui-colorpicker-nocolor { - float: right; - margin-right: 1px; - font-size: 12px; - line-height: 14px; - height: 14px; - border: 1px solid #333; - padding: 3px 5px; - cursor: pointer; -} - -.edui-default .edui-colorpicker-tablefirstrow { - height: 30px; -} - -.edui-default .edui-colorpicker-colorcell { - width: 14px; - height: 14px; - display: block; - margin: 0; - cursor: pointer; -} - -.edui-default .edui-colorpicker-colorcell:hover { - width: 14px; - height: 14px; - margin: 0; -} -.edui-default .edui-colorpicker-advbtn{ - display: block; - text-align: center; - cursor: pointer; - height:20px; -} -.arrow_down{ - background: white url('../images/arrow_down.png') no-repeat center; -} -.arrow_up{ - background: white url('../images/arrow_up.png') no-repeat center; -} -/*高级的样式*/ -.edui-colorpicker-adv{ - position: relative; - overflow: hidden; - height: 180px; - display: none; -} -.edui-colorpicker-plant, .edui-colorpicker-hue { - border: solid 1px #666; -} -.edui-colorpicker-pad { - width: 150px; - height: 150px; - left: 14px; - top: 13px; - position: absolute; - background: red; - overflow: hidden; - cursor: crosshair; -} -.edui-colorpicker-cover{ - position: absolute; - top: 0; - left: 0; - width: 150px; - height: 150px; - background: url("../images/tangram-colorpicker.png") -160px -200px; -} -.edui-colorpicker-padDot{ - position: absolute; - top: 0; - left: 0; - width: 11px; - height: 11px; - overflow: hidden; - background: url(../images/tangram-colorpicker.png) 0px -200px repeat-x; - z-index: 1000; - -} -.edui-colorpicker-sliderMain { - position: absolute; - left: 171px; - top: 13px; - width: 19px; - height: 152px; - background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat; - -} -.edui-colorpicker-slider { - width: 100%; - height: 100%; - cursor: pointer; -} -.edui-colorpicker-thumb{ - position: absolute; - top: 0; - cursor: pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid black; - background: white; - opacity: .8; -} -/*自动排版弹出菜单*/ -.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body { - font-size: 12px; - margin-bottom: 3px; - clear: both; -} - -.edui-default .edui-autotypesetpicker-body table { - border-collapse: separate; - border-spacing: 2px; -} - -.edui-default .edui-autotypesetpicker-body td { - font-size: 12px; - word-wrap:break-word; -} - -.edui-default .edui-autotypesetpicker-body td input { - margin: 3px 3px 3px 4px; - *margin: 1px 0 0 0; -} -/*自动排版弹出菜单*/ -.edui-default .edui-cellalignpicker .edui-cellalignpicker-body { - width: 70px; - font-size: 12px; - cursor: default; -} - -.edui-default .edui-cellalignpicker-body table { - border-collapse: separate; - border-spacing: 0; -} -.edui-default .edui-cellalignpicker-body td{ - padding: 1px; -} -.edui-default .edui-cellalignpicker-body .edui-icon{ - height: 20px; - width: 20px; - padding: 1px; - background-image: url(../images/table-cell-align.png); -} - -.edui-default .edui-cellalignpicker-body .edui-left{ - background-position: 0 0; -} - -.edui-default .edui-cellalignpicker-body .edui-center{ - background-position: -25px 0; -} -.edui-default .edui-cellalignpicker-body .edui-right{ - background-position: -51px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{ - background-position: -73px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{ - background-position: -98px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{ - background-position: -124px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left { - background-position: -146px 0; - background-color: #f1f4f5; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center { - background-position: -245px 0; -} - -.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right { - background-position: -271px 0; -} -/*分隔线*/ -.edui-default .edui-toolbar .edui-separator { - width: 2px; - height: 20px; - margin: 2px 4px 2px 3px; - background: url(../images/icons.png) -181px 0; - background: url(../images/icons.gif) -181px 0 \9; -} - -/*颜色按钮 */ -.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump { - position: absolute; - overflow: hidden; - bottom: 1px; - left: 1px; - width: 18px; - height: 4px; -} -/*表情按钮及弹出菜单*/ -/*去除了表情的下拉箭头*/ -.edui-default .edui-for-emotion .edui-icon { - background-position: -60px -20px; -} -.edui-default .edui-for-emotion .edui-popup-content iframe -{ - width: 514px; - height: 380px; - overflow: hidden; -} -.edui-default .edui-for-emotion .edui-popup-content -{ - position: relative; - z-index: 555 -} - -.edui-default .edui-for-emotion .edui-splitborder { - display: none -} - -.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow -{ - width: 0 -} -.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder -{ - border-left: 1px solid transparent; -} -/*contextmenu*/ -.edui-default .edui-hassubmenu .edui-arrow { - height: 20px; - width: 20px; - float: right; - background: url("../images/icons-all.gif") no-repeat 10px -233px; -} - -.edui-default .edui-menu-body .edui-menuitem { - padding: 1px; -} - -.edui-default .edui-menuseparator { - margin: 2px 0; - height: 1px; - overflow: hidden; -} - -.edui-default .edui-menuseparator-inner { - border-bottom: 1px solid #e2e3e3; - margin-left: 29px; - margin-right: 1px; -} - -.edui-default .edui-menu-body .edui-state-hover { - padding: 0 !important; - background-color: #fff5d4; - border: 1px solid #dcac6c; -} -/*弹出菜单*/ -.edui-default .edui-shortcutmenu { - padding: 2px; - width: 190px; - height: 50px; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 5px; -} - -/*粘贴弹出菜单*/ -.edui-default .edui-wordpastepop .edui-popup-content{ - border: none; - padding: 0; - width: 54px; - height: 21px; -} -.edui-default .edui-pasteicon { - width: 100%; - height: 100%; - background-image: url('../images/wordpaste.png'); - background-position: 0 0; -} - -.edui-default .edui-pasteicon.edui-state-opened { - background-position: 0 -34px; -} - -.edui-default .edui-pastecontainer { - position: relative; - visibility: hidden; - width: 97px; - background: #fff; - border: 1px solid #ccc; -} - -.edui-default .edui-pastecontainer .edui-title { - font-weight: bold; - background: #F8F8FF; - height: 25px; - line-height: 25px; - font-size: 12px; - padding-left: 5px; -} - -.edui-default .edui-pastecontainer .edui-button { - overflow: hidden; - margin: 3px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon, -.edui-default .edui-pastecontainer .edui-button .edui-tagicon, -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{ - float: left; - cursor: pointer; - width: 29px; - height: 29px; - margin-left: 5px; - background-image: url('../images/wordpaste.png'); - background-repeat: no-repeat; -} -.edui-default .edui-pastecontainer .edui-button .edui-richtxticon { - margin-left: 0; - background-position: -109px 0; -} -.edui-default .edui-pastecontainer .edui-button .edui-tagicon { - background-position: -148px 1px; -} - -.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon { - background-position: -72px 0; -} - -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon { - background-position: -109px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{ - background-position: -148px -34px; -} -.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{ - background-position: -72px -34px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.min.css b/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.min.css deleted file mode 100644 index 8ca74eb..0000000 --- a/yshop-drink-vue/public/UEditor22/themes/default/css/ueditor.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - - -.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:-moz-inline-box!important;display:inline-block!important;vertical-align:top}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:default}.edui-default span.edui-clickable{color:#00f;cursor:pointer;text-decoration:underline}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid #d4d4d4;background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;-webkit-box-shadow:0 1px 4px rgba(204,204,204,.6);-moz-box-shadow:0 1px 4px rgba(204,204,204,.6);box-shadow:0 1px 4px rgba(204,204,204,.6);border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid #d4d4d4;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid #ccc;line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px}.edui-default .edui-editor-breadcrumb span{cursor:pointer;text-decoration:underline;color:#00f}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{border:1px solid #DCAC6C;background-color:#fff6d9;padding:5px;font-size:10pt;font-family:"宋体"}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:20px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;background:url(../images/icons.png) 0 -4000px;background:url(../images/icons.gif) 0 -4000px\9}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body{background:url(../images/icons-all.gif) no-repeat 6px -205px}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:20px;line-height:20px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid #CCC;background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid #CCC}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{border-left:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3;filter:alpha(opacity=30)}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:20px!important;width:20px!important;background-image:url(../images/icons.png);background-image:url(../images/icons.gif) \9}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#fff5d4;padding:0;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#ffe69f;padding:0;border:1px solid #dcac6c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#fff;padding:0;border:1px solid gray}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-for-undo .edui-icon{background-position:-160px 0}.edui-default .edui-for-redo .edui-icon{background-position:-100px 0}.edui-default .edui-for-bold .edui-icon{background-position:0 0}.edui-default .edui-for-italic .edui-icon{background-position:-60px 0}.edui-default .edui-for-fontborder .edui-icon{background-position:-160px -40px}.edui-default .edui-for-underline .edui-icon{background-position:-140px 0}.edui-default .edui-for-strikethrough .edui-icon{background-position:-120px 0}.edui-default .edui-for-subscript .edui-icon{background-position:-600px 0}.edui-default .edui-for-superscript .edui-icon{background-position:-620px 0}.edui-default .edui-for-blockquote .edui-icon{background-position:-220px 0}.edui-default .edui-for-forecolor .edui-icon{background-position:-720px 0}.edui-default .edui-for-backcolor .edui-icon{background-position:-760px 0}.edui-default .edui-for-inserttable .edui-icon{background-position:-580px -20px}.edui-default .edui-for-autotypeset .edui-icon{background-position:-640px -40px}.edui-default .edui-for-justifyleft .edui-icon{background-position:-460px 0}.edui-default .edui-for-justifycenter .edui-icon{background-position:-420px 0}.edui-default .edui-for-justifyright .edui-icon{background-position:-480px 0}.edui-default .edui-for-justifyjustify .edui-icon{background-position:-440px 0}.edui-default .edui-for-insertorderedlist .edui-icon{background-position:-80px 0}.edui-default .edui-for-insertunorderedlist .edui-icon{background-position:-20px 0}.edui-default .edui-for-lineheight .edui-icon{background-position:-725px -40px}.edui-default .edui-for-rowspacingbottom .edui-icon{background-position:-745px -40px}.edui-default .edui-for-rowspacingtop .edui-icon{background-position:-765px -40px}.edui-default .edui-for-horizontal .edui-icon{background-position:-360px 0}.edui-default .edui-for-link .edui-icon{background-position:-500px 0}.edui-default .edui-for-code .edui-icon{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon{background-position:-726px -77px}.edui-default .edui-for-insertframe .edui-icon{background-position:-240px -40px}.edui-default .edui-for-emoticon .edui-icon{background-position:-60px -20px}.edui-default .edui-for-spechars .edui-icon{background-position:-240px 0}.edui-default .edui-for-help .edui-icon{background-position:-340px 0}.edui-default .edui-for-print .edui-icon{background-position:-440px -20px}.edui-default .edui-for-preview .edui-icon{background-position:-420px -20px}.edui-default .edui-for-selectall .edui-icon{background-position:-400px -20px}.edui-default .edui-for-searchreplace .edui-icon{background-position:-520px -20px}.edui-default .edui-for-map .edui-icon{background-position:-40px -40px}.edui-default .edui-for-gmap .edui-icon{background-position:-260px -40px}.edui-default .edui-for-insertvideo .edui-icon{background-position:-320px -20px}.edui-default .edui-for-time .edui-icon{background-position:-160px -20px}.edui-default .edui-for-date .edui-icon{background-position:-140px -20px}.edui-default .edui-for-cut .edui-icon{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon{background-position:-40px 0}.edui-default .edui-for-pasteplain .edui-icon{background-position:-360px -20px}.edui-default .edui-for-directionalityltr .edui-icon{background-position:-20px -20px}.edui-default .edui-for-directionalityrtl .edui-icon{background-position:-40px -20px}.edui-default .edui-for-source .edui-icon{background-position:-261px -0px}.edui-default .edui-for-removeformat .edui-icon{background-position:-580px 0}.edui-default .edui-for-unlink .edui-icon{background-position:-640px 0}.edui-default .edui-for-touppercase .edui-icon{background-position:-786px 0}.edui-default .edui-for-tolowercase .edui-icon{background-position:-806px 0}.edui-default .edui-for-insertrow .edui-icon{background-position:-478px -76px}.edui-default .edui-for-insertrownext .edui-icon{background-position:-498px -76px}.edui-default .edui-for-insertcol .edui-icon{background-position:-455px -76px}.edui-default .edui-for-insertcolnext .edui-icon{background-position:-429px -76px}.edui-default .edui-for-mergeright .edui-icon{background-position:-60px -40px}.edui-default .edui-for-mergedown .edui-icon{background-position:-80px -40px}.edui-default .edui-for-splittorows .edui-icon{background-position:-100px -40px}.edui-default .edui-for-splittocols .edui-icon{background-position:-120px -40px}.edui-default .edui-for-insertparagraphbeforetable .edui-icon{background-position:-140px -40px}.edui-default .edui-for-deleterow .edui-icon{background-position:-660px -20px}.edui-default .edui-for-deletecol .edui-icon{background-position:-640px -20px}.edui-default .edui-for-splittocells .edui-icon{background-position:-800px -20px}.edui-default .edui-for-mergecells .edui-icon{background-position:-760px -20px}.edui-default .edui-for-deletetable .edui-icon{background-position:-620px -20px}.edui-default .edui-for-cleardoc .edui-icon{background-position:-520px 0}.edui-default .edui-for-fullscreen .edui-icon{background-position:-100px -20px}.edui-default .edui-for-anchor .edui-icon{background-position:-200px 0}.edui-default .edui-for-pagebreak .edui-icon{background-position:-460px -40px}.edui-default .edui-for-imagenone .edui-icon{background-position:-480px -40px}.edui-default .edui-for-imageleft .edui-icon{background-position:-500px -40px}.edui-default .edui-for-wordimage .edui-icon{background-position:-660px -40px}.edui-default .edui-for-imageright .edui-icon{background-position:-520px -40px}.edui-default .edui-for-imagecenter .edui-icon{background-position:-540px -40px}.edui-default .edui-for-indent .edui-icon{background-position:-400px 0}.edui-default .edui-for-outdent .edui-icon{background-position:-540px 0}.edui-default .edui-for-webapp .edui-icon{background-position:-601px -40px}.edui-default .edui-for-table .edui-icon{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon{background-position:-339px -40px}.edui-default .edui-for-delete .edui-icon{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon{background-position:-620px -40px}.edui-default .edui-for-edittd .edui-icon{background-position:-700px -40px}.edui-default .edui-for-snapscreen .edui-icon{background-position:-581px -40px}.edui-default .edui-for-scrawl .edui-icon{background-position:-801px -41px}.edui-default .edui-for-background .edui-icon{background-position:-680px -40px}.edui-default .edui-for-music .edui-icon{background-position:-18px -40px}.edui-default .edui-for-formula .edui-icon{background-position:-200px -40px}.edui-default .edui-for-aligntd .edui-icon{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon{background-position:-480px 0}.edui-default .edui-for-drafts .edui-icon{background-position:-560px 0}.edui-default .edui-for-charts .edui-icon{background:url( ../images/charts.png ) no-repeat 2px 3px!important}.edui-default .edui-for-inserttitlecol .edui-icon{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon{background-position:-380px 0}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px}.edui-default .edui-toolbar .edui-splitborder{width:1px;height:20px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{width:1px;border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0;border-left:1px solid gray}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{width:1px;border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#FFE69F;border:1px solid #DCAC6C;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 4px rgba(0,0,0,.2);-moz-box-shadow:0 3px 4px rgba(0,0,0,.2);box-shadow:0 3px 4px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;padding:5px;background:#fff}.edui-default .edui-popup .edui-bordereraser{background-color:#fff;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative;padding:2px 0 0 2px;_zoom:1}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff}.edui-default .edui-dialog-titlebar{height:26px;border-bottom:1px solid #c6c6c6;background:url(../images/dialog-title-bg.png) repeat-x bottom;position:relative;cursor:move}.edui-default .edui-dialog-caption{font-weight:700;font-size:12px;line-height:26px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:26px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:5px;top:3px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer;background:url(../images/icons-all.gif) no-repeat 0 -59px}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -89px}.edui-default .edui-dialog-foot{height:40px}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{background:url(../images/icons-all.gif) no-repeat;height:24px;width:96px;font-size:12px;line-height:24px;text-align:center;cursor:default}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -30px}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-webapp .edui-dialog-content{width:560px;_width:565px;height:450px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:200px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-gmap .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:390px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-snapscreen .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-music .edui-dialog-content{width:515px;height:360px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:24px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:14px;height:14px;border:1px solid #333;padding:3px 5px;cursor:pointer}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:2px;height:20px;margin:2px 4px 2px 3px;background:url(../images/icons.png) -181px 0;background:url(../images/icons.gif) -181px 0 \9}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:1px;width:18px;height:4px}.edui-default .edui-for-emotion .edui-icon{background-position:-60px -20px}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;background:url(../images/icons-all.gif) no-repeat 10px -233px}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-shortcutmenu{padding:2px;width:190px;height:50px;background-color:#fff;border:1px solid #ccc;border-radius:5px}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/themes/default/dialogbase.css b/yshop-drink-vue/public/UEditor22/themes/default/dialogbase.css deleted file mode 100644 index ea71266..0000000 --- a/yshop-drink-vue/public/UEditor22/themes/default/dialogbase.css +++ /dev/null @@ -1,100 +0,0 @@ -/*弹出对话框页面样式组件 -*/ - -/*reset -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - outline: 0; - font-size: 100%; -} - -body { - line-height: 1; -} - -ol, ul { - list-style: none; -} - -blockquote, q { - quotes: none; -} - -ins { - text-decoration: none; -} - -del { - text-decoration: line-through; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -/*module -*/ -body { - background-color: #fff; - font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA; - color: #646464; -} - -/*tab*/ -.tabhead { - position: relative; - z-index: 10; -} - -.tabhead span { - display: inline-block; - padding: 0 5px; - height: 30px; - border: 1px solid #ccc; - background: url("images/dialog-title-bg.png") repeat-x; - text-align: center; - line-height: 30px; - cursor: pointer; - *margin-right: 5px; -} - -.tabhead span.focus { - height: 31px; - border-bottom: none; - background: #fff; -} - -.tabbody { - position: relative; - top: -1px; - margin: 0 auto; - border: 1px solid #ccc; -} - -/*button*/ -a.button { - display: block; - text-align: center; - line-height: 24px; - text-decoration: none; - height: 24px; - width: 95px; - border: 0; - color: #838383; - background: url(../../themes/default/images/icons-all.gif) no-repeat; -} - -a.button:hover { - background-position: 0 -30px; -} \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/anchor.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/anchor.gif deleted file mode 100644 index 5aa797b..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/anchor.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow.png b/yshop-drink-vue/public/UEditor22/themes/default/images/arrow.png deleted file mode 100644 index d900886..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_down.png b/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_down.png deleted file mode 100644 index e9257e8..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_down.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_up.png b/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_up.png deleted file mode 100644 index 74277af..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/arrow_up.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/button-bg.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/button-bg.gif deleted file mode 100644 index ec7fa2e..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/button-bg.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/cancelbutton.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/cancelbutton.gif deleted file mode 100644 index df4bc2c..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/cancelbutton.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/charts.png b/yshop-drink-vue/public/UEditor22/themes/default/images/charts.png deleted file mode 100644 index 713965c..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/charts.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.gif deleted file mode 100644 index d7c3e7e..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.png b/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.png deleted file mode 100644 index 2088fc2..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_h.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.gif deleted file mode 100644 index bb508db..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.png b/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.png deleted file mode 100644 index 6f39ca3..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/cursor_v.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/dialog-title-bg.png b/yshop-drink-vue/public/UEditor22/themes/default/images/dialog-title-bg.png deleted file mode 100644 index f744f26..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/dialog-title-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/filescan.png b/yshop-drink-vue/public/UEditor22/themes/default/images/filescan.png deleted file mode 100644 index 1d27158..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/filescan.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/highlighted.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/highlighted.gif deleted file mode 100644 index 9272b49..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/highlighted.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/icons-all.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/icons-all.gif deleted file mode 100644 index 21915e5..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/icons-all.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/icons.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/icons.gif deleted file mode 100644 index 7abd30a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/icons.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/icons.png b/yshop-drink-vue/public/UEditor22/themes/default/images/icons.png deleted file mode 100644 index c015e3a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/icons.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/loaderror.png b/yshop-drink-vue/public/UEditor22/themes/default/images/loaderror.png deleted file mode 100644 index 35ff333..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/loaderror.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/loading.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/loading.gif deleted file mode 100644 index b713e27..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/loading.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/lock.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/lock.gif deleted file mode 100644 index b4e6d78..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/lock.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/neweditor-tab-bg.png b/yshop-drink-vue/public/UEditor22/themes/default/images/neweditor-tab-bg.png deleted file mode 100644 index 8f398b0..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/neweditor-tab-bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/pagebreak.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/pagebreak.gif deleted file mode 100644 index 8d1cffd..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/pagebreak.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/scale.png b/yshop-drink-vue/public/UEditor22/themes/default/images/scale.png deleted file mode 100644 index f45adb5..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/scale.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/sortable.png b/yshop-drink-vue/public/UEditor22/themes/default/images/sortable.png deleted file mode 100644 index 1bca649..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/sortable.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/spacer.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/spacer.gif deleted file mode 100644 index 5bfd67a..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/spacer.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/sparator_v.png b/yshop-drink-vue/public/UEditor22/themes/default/images/sparator_v.png deleted file mode 100644 index 8cf5662..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/sparator_v.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/table-cell-align.png b/yshop-drink-vue/public/UEditor22/themes/default/images/table-cell-align.png deleted file mode 100644 index ddf4285..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/table-cell-align.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/tangram-colorpicker.png b/yshop-drink-vue/public/UEditor22/themes/default/images/tangram-colorpicker.png deleted file mode 100644 index 738e500..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/tangram-colorpicker.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/toolbar_bg.png b/yshop-drink-vue/public/UEditor22/themes/default/images/toolbar_bg.png deleted file mode 100644 index 7ab685f..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/toolbar_bg.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/unhighlighted.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/unhighlighted.gif deleted file mode 100644 index 7ad0b67..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/unhighlighted.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/upload.png b/yshop-drink-vue/public/UEditor22/themes/default/images/upload.png deleted file mode 100644 index 08d4d92..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/upload.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/videologo.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/videologo.gif deleted file mode 100644 index 555af74..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/videologo.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/word.gif b/yshop-drink-vue/public/UEditor22/themes/default/images/word.gif deleted file mode 100644 index 9ef5d09..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/word.gif and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/default/images/wordpaste.png b/yshop-drink-vue/public/UEditor22/themes/default/images/wordpaste.png deleted file mode 100644 index 9367758..0000000 Binary files a/yshop-drink-vue/public/UEditor22/themes/default/images/wordpaste.png and /dev/null differ diff --git a/yshop-drink-vue/public/UEditor22/themes/iframe.css b/yshop-drink-vue/public/UEditor22/themes/iframe.css deleted file mode 100644 index 32e7222..0000000 --- a/yshop-drink-vue/public/UEditor22/themes/iframe.css +++ /dev/null @@ -1 +0,0 @@ -/*可以在这里添加你自己的css*/ diff --git a/yshop-drink-vue/public/UEditor22/third-party/SyntaxHighlighter/shCore.js b/yshop-drink-vue/public/UEditor22/third-party/SyntaxHighlighter/shCore.js deleted file mode 100644 index 3249184..0000000 --- a/yshop-drink-vue/public/UEditor22/third-party/SyntaxHighlighter/shCore.js +++ /dev/null @@ -1,3655 +0,0 @@ -// XRegExp 1.5.1 -// (c) 2007-2012 Steven Levithan -// MIT License -// -// Provides an augmented, extensible, cross-browser implementation of regular expressions, -// including support for additional syntax, flags, and methods - -var XRegExp; - -if (XRegExp) { - // Avoid running twice, since that would break references to native globals - throw Error("can't load XRegExp twice in the same frame"); -} - -// Run within an anonymous function to protect variables and avoid new globals -(function (undefined) { - - //--------------------------------- - // Constructor - //--------------------------------- - - // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native - // regular expression in that additional syntax and flags are supported and cross-browser - // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and - // converts to type XRegExp - XRegExp = function (pattern, flags) { - var output = [], - currScope = XRegExp.OUTSIDE_CLASS, - pos = 0, - context, tokenResult, match, chr, regex; - - if (XRegExp.isRegExp(pattern)) { - if (flags !== undefined) - throw TypeError("can't supply flags when constructing one RegExp from another"); - return clone(pattern); - } - // Tokens become part of the regex construction process, so protect against infinite - // recursion when an XRegExp is constructed within a token handler or trigger - if (isInsideConstructor) - throw Error("can't call the XRegExp constructor within token definition functions"); - - flags = flags || ""; - context = { // `this` object for custom tokens - hasNamedCapture: false, - captureNames: [], - hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, - setFlag: function (flag) {flags += flag;} - }; - - while (pos < pattern.length) { - // Check for custom tokens at the current position - tokenResult = runTokens(pattern, pos, currScope, context); - - if (tokenResult) { - output.push(tokenResult.output); - pos += (tokenResult.match[0].length || 1); - } else { - // Check for native multicharacter metasequences (excluding character classes) at - // the current position - if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { - output.push(match[0]); - pos += match[0].length; - } else { - chr = pattern.charAt(pos); - if (chr === "[") - currScope = XRegExp.INSIDE_CLASS; - else if (chr === "]") - currScope = XRegExp.OUTSIDE_CLASS; - // Advance position one character - output.push(chr); - pos++; - } - } - } - - regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); - regex._xregexp = { - source: pattern, - captureNames: context.hasNamedCapture ? context.captureNames : null - }; - return regex; - }; - - - //--------------------------------- - // Public properties - //--------------------------------- - - XRegExp.version = "1.5.1"; - - // Token scope bitflags - XRegExp.INSIDE_CLASS = 1; - XRegExp.OUTSIDE_CLASS = 2; - - - //--------------------------------- - // Private variables - //--------------------------------- - - var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, - flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags - quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, - isInsideConstructor = false, - tokens = [], - // Copy native globals for reference ("native" is an ES3 reserved keyword) - nativ = { - exec: RegExp.prototype.exec, - test: RegExp.prototype.test, - match: String.prototype.match, - replace: String.prototype.replace, - split: String.prototype.split - }, - compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups - compliantLastIndexIncrement = function () { - var x = /^/g; - nativ.test.call(x, ""); - return !x.lastIndex; - }(), - hasNativeY = RegExp.prototype.sticky !== undefined, - nativeTokens = {}; - - // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, - // excluding character classes) - nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; - nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; - - - //--------------------------------- - // Public methods - //--------------------------------- - - // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by - // the XRegExp library and can be used to create XRegExp plugins. This function is intended for - // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can - // be disabled by `XRegExp.freezeTokens` - XRegExp.addToken = function (regex, handler, scope, trigger) { - tokens.push({ - pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), - handler: handler, - scope: scope || XRegExp.OUTSIDE_CLASS, - trigger: trigger || null - }); - }; - - // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag - // combination has previously been cached, the cached copy is returned; otherwise the newly - // created regex is cached - XRegExp.cache = function (pattern, flags) { - var key = pattern + "/" + (flags || ""); - return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); - }; - - // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh - // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` - // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve - // special properties required for named capture - XRegExp.copyAsGlobal = function (regex) { - return clone(regex, "g"); - }; - - // Accepts a string; returns the string with regex metacharacters escaped. The returned string - // can safely be used at any point within a regex to match the provided literal string. Escaped - // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace - XRegExp.escape = function (str) { - return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }; - - // Accepts a string to search, regex to search with, position to start the search within the - // string (default: 0), and an optional Boolean indicating whether matches must start at-or- - // after the position or at the specified position only. This function ignores the `lastIndex` - // of the provided regex in its own handling, but updates the property for compatibility - XRegExp.execAt = function (str, regex, pos, anchored) { - var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), - match; - r2.lastIndex = pos = pos || 0; - match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (anchored && match && match.index !== pos) - match = null; - if (regex.global) - regex.lastIndex = match ? r2.lastIndex : 0; - return match; - }; - - // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing - // syntax and flag changes. Should be run after XRegExp and any plugins are loaded - XRegExp.freezeTokens = function () { - XRegExp.addToken = function () { - throw Error("can't run addToken after freezeTokens"); - }; - }; - - // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. - // Note that this is also `true` for regex literals and regexes created by the `XRegExp` - // constructor. This works correctly for variables created in another frame, when `instanceof` - // and `constructor` checks would fail to work as intended - XRegExp.isRegExp = function (o) { - return Object.prototype.toString.call(o) === "[object RegExp]"; - }; - - // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to - // iterate over regex matches compared to the traditional approaches of subverting - // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop - XRegExp.iterate = function (str, regex, callback, context) { - var r2 = clone(regex, "g"), - i = -1, match; - while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (regex.global) - regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` - callback.call(context, match, ++i, str, regex); - if (r2.lastIndex === match.index) - r2.lastIndex++; - } - if (regex.global) - regex.lastIndex = 0; - }; - - // Accepts a string and an array of regexes; returns the result of using each successive regex - // to search within the matches of the previous regex. The array of regexes can also contain - // objects with `regex` and `backref` properties, in which case the named or numbered back- - // references specified are passed forward to the next regex or returned. E.g.: - // var xregexpImgFileNames = XRegExp.matchChain(html, [ - // {regex: /]+)>/i, backref: 1}, // tag attributes - // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values - // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths - // /[^\/]+$/ // filenames (strip directory paths) - // ]); - XRegExp.matchChain = function (str, chain) { - return function recurseChain (values, level) { - var item = chain[level].regex ? chain[level] : {regex: chain[level]}, - regex = clone(item.regex, "g"), - matches = [], i; - for (i = 0; i < values.length; i++) { - XRegExp.iterate(values[i], regex, function (match) { - matches.push(item.backref ? (match[item.backref] || "") : match[0]); - }); - } - return ((level === chain.length - 1) || !matches.length) ? - matches : recurseChain(matches, level + 1); - }([str], 0); - }; - - - //--------------------------------- - // New RegExp prototype methods - //--------------------------------- - - // Accepts a context object and arguments array; returns the result of calling `exec` with the - // first value in the arguments array. the context is ignored but is accepted for congruity - // with `Function.prototype.apply` - RegExp.prototype.apply = function (context, args) { - return this.exec(args[0]); - }; - - // Accepts a context object and string; returns the result of calling `exec` with the provided - // string. the context is ignored but is accepted for congruity with `Function.prototype.call` - RegExp.prototype.call = function (context, str) { - return this.exec(str); - }; - - - //--------------------------------- - // Overriden native methods - //--------------------------------- - - // Adds named capture support (with backreferences returned as `result.name`), and fixes two - // cross-browser issues per ES3: - // - Captured values for nonparticipating capturing groups should be returned as `undefined`, - // rather than the empty string. - // - `lastIndex` should not be incremented after zero-length matches. - RegExp.prototype.exec = function (str) { - var match, name, r2, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.apply(this, arguments); - if (match) { - // Fix browsers whose `exec` methods don't consistently return `undefined` for - // nonparticipating capturing groups - if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { - r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); - // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed - // matching due to characters outside the match - nativ.replace.call((str + "").slice(match.index), r2, function () { - for (var i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) - match[i] = undefined; - } - }); - } - // Attach named capture properties - if (this._xregexp && this._xregexp.captureNames) { - for (var i = 1; i < match.length; i++) { - name = this._xregexp.captureNames[i - 1]; - if (name) - match[name] = match[i]; - } - } - // Fix browsers that increment `lastIndex` after zero-length matches - if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - } - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return match; - }; - - // Fix browser bugs in native method - RegExp.prototype.test = function (str) { - // Use the native `exec` to skip some processing overhead, even though the altered - // `exec` would take care of the `lastIndex` fixes - var match, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.call(this, str); - // Fix browsers that increment `lastIndex` after zero-length matches - if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return !!match; - }; - - // Adds named capture support and fixes browser bugs in native method - String.prototype.match = function (regex) { - if (!XRegExp.isRegExp(regex)) - regex = RegExp(regex); // Native `RegExp` - if (regex.global) { - var result = nativ.match.apply(this, arguments); - regex.lastIndex = 0; // Fix IE bug - return result; - } - return regex.exec(this); // Run the altered `exec` - }; - - // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, - // and provides named backreferences to replacement functions as `arguments[0].name`. Also - // fixes cross-browser differences in replacement text syntax when performing a replacement - // using a nonregex search value, and the value of replacement regexes' `lastIndex` property - // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary - // third (`flags`) parameter - String.prototype.replace = function (search, replacement) { - var isRegex = XRegExp.isRegExp(search), - captureNames, result, str, origLastIndex; - - // There are too many combinations of search/replacement types/values and browser bugs that - // preclude passing to native `replace`, so don't try - //if (...) - // return nativ.replace.apply(this, arguments); - - if (isRegex) { - if (search._xregexp) - captureNames = search._xregexp.captureNames; // Array or `null` - if (!search.global) - origLastIndex = search.lastIndex; - } else { - search = search + ""; // Type conversion - } - - if (Object.prototype.toString.call(replacement) === "[object Function]") { - result = nativ.replace.call(this + "", search, function () { - if (captureNames) { - // Change the `arguments[0]` string primitive to a String object which can store properties - arguments[0] = new String(arguments[0]); - // Store named backreferences on `arguments[0]` - for (var i = 0; i < captureNames.length; i++) { - if (captureNames[i]) - arguments[0][captureNames[i]] = arguments[i + 1]; - } - } - // Update `lastIndex` before calling `replacement` (fix browsers) - if (isRegex && search.global) - search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; - return replacement.apply(null, arguments); - }); - } else { - str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) - result = nativ.replace.call(str, search, function () { - var args = arguments; // Keep this function's `arguments` available through closure - return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { - // Numbered backreference (without delimiters) or special variable - if ($1) { - switch ($1) { - case "$": return "$"; - case "&": return args[0]; - case "`": return args[args.length - 1].slice(0, args[args.length - 2]); - case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); - // Numbered backreference - default: - // What does "$10" mean? - // - Backreference 10, if 10 or more capturing groups exist - // - Backreference 1 followed by "0", if 1-9 capturing groups exist - // - Otherwise, it's the string "$10" - // Also note: - // - Backreferences cannot be more than two digits (enforced by `replacementToken`) - // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" - // - There is no "$0" token ("$&" is the entire match) - var literalNumbers = ""; - $1 = +$1; // Type conversion; drop leading zero - if (!$1) // `$1` was "0" or "00" - return $0; - while ($1 > args.length - 3) { - literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; - $1 = Math.floor($1 / 10); // Drop the last digit - } - return ($1 ? args[$1] || "" : "$") + literalNumbers; - } - // Named backreference or delimited numbered backreference - } else { - // What does "${n}" mean? - // - Backreference to numbered capture n. Two differences from "$n": - // - n can be more than two digits - // - Backreference 0 is allowed, and is the entire match - // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture - // - Otherwise, it's the string "${n}" - var n = +$2; // Type conversion; drop leading zeros - if (n <= args.length - 3) - return args[n]; - n = captureNames ? indexOf(captureNames, $2) : -1; - return n > -1 ? args[n + 1] : $0; - } - }); - }); - } - - if (isRegex) { - if (search.global) - search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) - else - search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - } - - return result; - }; - - // A consistent cross-browser, ES3 compliant `split` - String.prototype.split = function (s /* separator */, limit) { - // If separator `s` is not a regex, use the native `split` - if (!XRegExp.isRegExp(s)) - return nativ.split.apply(this, arguments); - - var str = this + "", // Type conversion - output = [], - lastLastIndex = 0, - match, lastLength; - - // Behavior for `limit`: if it's... - // - `undefined`: No limit - // - `NaN` or zero: Return an empty array - // - A positive number: Use `Math.floor(limit)` - // - A negative number: No limit - // - Other: Type-convert, then use the above rules - if (limit === undefined || +limit < 0) { - limit = Infinity; - } else { - limit = Math.floor(+limit); - if (!limit) - return []; - } - - // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero - // and restore it to its original value when we're done using the regex - s = XRegExp.copyAsGlobal(s); - - while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (s.lastIndex > lastLastIndex) { - output.push(str.slice(lastLastIndex, match.index)); - - if (match.length > 1 && match.index < str.length) - Array.prototype.push.apply(output, match.slice(1)); - - lastLength = match[0].length; - lastLastIndex = s.lastIndex; - - if (output.length >= limit) - break; - } - - if (s.lastIndex === match.index) - s.lastIndex++; - } - - if (lastLastIndex === str.length) { - if (!nativ.test.call(s, "") || lastLength) - output.push(""); - } else { - output.push(str.slice(lastLastIndex)); - } - - return output.length > limit ? output.slice(0, limit) : output; - }; - - - //--------------------------------- - // Private helper functions - //--------------------------------- - - // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` - // instance with a fresh `lastIndex` (set to zero), preserving properties required for named - // capture. Also allows adding new flags in the process of copying the regex - function clone (regex, additionalFlags) { - if (!XRegExp.isRegExp(regex)) - throw TypeError("type RegExp expected"); - var x = regex._xregexp; - regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); - if (x) { - regex._xregexp = { - source: x.source, - captureNames: x.captureNames ? x.captureNames.slice(0) : null - }; - } - return regex; - } - - function getNativeFlags (regex) { - return (regex.global ? "g" : "") + - (regex.ignoreCase ? "i" : "") + - (regex.multiline ? "m" : "") + - (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 - (regex.sticky ? "y" : ""); - } - - function runTokens (pattern, index, scope, context) { - var i = tokens.length, - result, match, t; - // Protect against constructing XRegExps within token handler and trigger functions - isInsideConstructor = true; - // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws - try { - while (i--) { // Run in reverse order - t = tokens[i]; - if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { - t.pattern.lastIndex = index; - match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. - if (match && match.index === index) { - result = { - output: t.handler.call(context, match, scope), - match: match - }; - break; - } - } - } - } catch (err) { - throw err; - } finally { - isInsideConstructor = false; - } - return result; - } - - function indexOf (array, item, from) { - if (Array.prototype.indexOf) // Use the native array method if available - return array.indexOf(item, from); - for (var i = from || 0; i < array.length; i++) { - if (array[i] === item) - return i; - } - return -1; - } - - - //--------------------------------- - // Built-in tokens - //--------------------------------- - - // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the - // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` - - // Comment pattern: (?# ) - XRegExp.addToken( - /\(\?#[^)]*\)/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - } - ); - - // Capturing group (match the opening parenthesis only). - // Required for support of named capturing groups - XRegExp.addToken( - /\((?!\?)/, - function () { - this.captureNames.push(null); - return "("; - } - ); - - // Named capturing group (match the opening delimiter only): (? - XRegExp.addToken( - /\(\?<([$\w]+)>/, - function (match) { - this.captureNames.push(match[1]); - this.hasNamedCapture = true; - return "("; - } - ); - - // Named backreference: \k - XRegExp.addToken( - /\\k<([\w$]+)>/, - function (match) { - var index = indexOf(this.captureNames, match[1]); - // Keep backreferences separate from subsequent literal numbers. Preserve back- - // references to named groups that are undefined at this point as literal strings - return index > -1 ? - "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : - match[0]; - } - ); - - // Empty character class: [] or [^] - XRegExp.addToken( - /\[\^?]/, - function (match) { - // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. - // (?!) should work like \b\B, but is unreliable in Firefox - return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; - } - ); - - // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) - // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. - XRegExp.addToken( - /^\(\?([imsx]+)\)/, - function (match) { - this.setFlag(match[1]); - return ""; - } - ); - - // Whitespace and comments, in free-spacing (aka extended) mode only - XRegExp.addToken( - /(?:\s+|#.*)+/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - }, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("x");} - ); - - // Dot, in dotall (aka singleline) mode only - XRegExp.addToken( - /\./, - function () {return "[\\s\\S]";}, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("s");} - ); - - - //--------------------------------- - // Backward compatibility - //--------------------------------- - - // Uncomment the following block for compatibility with XRegExp 1.0-1.2: - /* - XRegExp.matchWithinChain = XRegExp.matchChain; - RegExp.prototype.addFlags = function (s) {return clone(this, s);}; - RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; - RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; - RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; - */ - -})(); - -// -// Begin anonymous function. This is used to contain local scope variables without polutting global scope. -// -if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() { - -// CommonJS - if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') - { - XRegExp = require('XRegExp').XRegExp; - } - -// Shortcut object which will be assigned to the SyntaxHighlighter variable. -// This is a shorthand for local reference in order to avoid long namespace -// references to SyntaxHighlighter.whatever... - var sh = { - defaults : { - /** Additional CSS class names to be added to highlighter elements. */ - 'class-name' : '', - - /** First line number. */ - 'first-line' : 1, - - /** - * Pads line numbers. Possible values are: - * - * false - don't pad line numbers. - * true - automaticaly pad numbers with minimum required number of leading zeroes. - * [int] - length up to which pad line numbers. - */ - 'pad-line-numbers' : false, - - /** Lines to highlight. */ - 'highlight' : false, - - /** Title to be displayed above the code block. */ - 'title' : null, - - /** Enables or disables smart tabs. */ - 'smart-tabs' : true, - - /** Gets or sets tab size. */ - 'tab-size' : 4, - - /** Enables or disables gutter. */ - 'gutter' : true, - - /** Enables or disables toolbar. */ - 'toolbar' : true, - - /** Enables quick code copy and paste from double click. */ - 'quick-code' : true, - - /** Forces code view to be collapsed. */ - 'collapse' : false, - - /** Enables or disables automatic links. */ - 'auto-links' : false, - - /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ - 'light' : false, - - 'unindent' : true, - - 'html-script' : false - }, - - config : { - space : ' ', - - /** Enables use of - * - * ``` - */ - findParent:function (node, filterFn, includeSelf) { - if (node && !domUtils.isBody(node)) { - node = includeSelf ? node : node.parentNode; - while (node) { - if (!filterFn || filterFn(node) || domUtils.isBody(node)) { - return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node; - } - node = node.parentNode; - } - } - return null; - }, - /** - * 查找node的节点名为tagName的第一个祖先节点, 查找的起点是node节点的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var node = UE.dom.domUtils.findParentByTagName( document.getElementsByTagName("div")[0], [ "BODY" ] ); - * //output: BODY - * console.log( node.tagName ); - * ``` - */ - - /** - * 查找node的节点名为tagName的祖先节点, 如果includeSelf的值为true,则查找的起点是给定的节点node, - * 否则, 起点是node的父节点。 - * @method findParentByTagName - * @param { Node } node 需要查找的节点对象 - * @param { Array } tagNames 需要查找的父节点的名称数组 - * @param { Boolean } includeSelf 查找过程是否包含node节点自身 - * @warning 查找的终点是到body节点为止 - * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var queryTarget = document.getElementsByTagName("div")[0]; - * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ "DIV" ], true ); - * //output: true - * console.log( queryTarget === node ); - * ``` - */ - findParentByTagName:function (node, tagNames, includeSelf, excludeFn) { - tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]); - return domUtils.findParent(node, function (node) { - return tagNames[node.tagName] && !(excludeFn && excludeFn(node)); - }, includeSelf); - }, - /** - * 查找节点node的祖先节点集合, 查找的起点是给定节点的父节点,结果集中不包含给定的节点。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - * @grammar UE.dom.domUtils.findParents(node) => Array //返回一个祖先节点数组集合,不包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf) => Array //返回一个祖先节点数组集合,includeSelf指定是否包含自身 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn) => Array //返回一个祖先节点数组集合,filterFn指定过滤条件,返回true的node将被选取 - * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst) => Array //返回一个祖先节点数组集合,closerFirst为true的话,node的直接父亲节点是数组的第0个 - */ - - /** - * 查找节点node的祖先节点集合, 如果includeSelf的值为true, - * 则返回的结果集中允许出现当前给定的节点, 否则, 该节点不会出现在其结果集中。 - * @method findParents - * @param { Node } node 需要查找的节点对象 - * @param { Boolean } includeSelf 查找的结果中是否允许包含当前查找的节点对象 - * @return { Array } 给定节点的祖先节点数组 - */ - findParents:function (node, includeSelf, filterFn, closerFirst) { - var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : []; - while (node = domUtils.findParent(node, filterFn)) { - parents.push(node); - } - return closerFirst ? parents : parents.reverse(); - }, - - /** - * 在节点node后面插入新节点newNode - * @method insertAfter - * @param { Node } node 目标节点 - * @param { Node } newNode 新插入的节点, 该节点将置于目标节点之后 - * @return { Node } 新插入的节点 - */ - insertAfter:function (node, newNode) { - return node.nextSibling ? node.parentNode.insertBefore(newNode, node.nextSibling): - node.parentNode.appendChild(newNode); - }, - - /** - * 删除节点node及其下属的所有节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *
    - *
    你好
    - *
    - * - * ``` - */ - - /** - * 删除节点node,并根据keepChildren的值决定是否保留子节点 - * @method remove - * @param { Node } node 需要删除的节点对象 - * @param { Boolean } keepChildren 是否需要保留子节点 - * @return { Node } 返回刚删除的节点对象 - * @example - * ```html - *
    - *
    你好
    - *
    - * - * ``` - */ - remove:function (node, keepChildren) { - var parent = node.parentNode, - child; - if (parent) { - if (keepChildren && node.hasChildNodes()) { - while (child = node.firstChild) { - parent.insertBefore(child, node); - } - } - parent.removeChild(node); - } - return node; - }, - - /** - * 取得node节点的下一个兄弟节点, 如果该节点其后没有兄弟节点, 则递归查找其父节点之后的第一个兄弟节点, - * 直到找到满足条件的节点或者递归到BODY节点之后才会结束。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```html - * - *
    - * - *
    - * xxx - * - * - * ``` - * @example - * ```html - * - *
    - * - * xxx - *
    - * xxx - * - * - * ``` - */ - - /** - * 取得node节点的下一个兄弟节点, 如果startFromChild的值为ture,则先获取其子节点, - * 如果有子节点则直接返回第一个子节点;如果没有子节点或者startFromChild的值为false, - * 则执行getNextDomNode(Node node)的查找过程。 - * @method getNextDomNode - * @param { Node } node 需要获取其后的兄弟节点的节点对象 - * @param { Boolean } startFromChild 查找过程是否从其子节点开始 - * @return { Node | NULL } 如果找满足条件的节点, 则返回该节点, 否则返回NULL - * @see UE.dom.domUtils.getNextDomNode(Node) - */ - getNextDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard); - }, - getPreDomNode:function (node, startFromChild, filterFn, guard) { - return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard); - }, - /** - * 检测节点node是否属是UEditor定义的bookmark节点 - * @method isBookmarkNode - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是bookmark节点 - * @example - * ```html - * - * - * ``` - */ - isBookmarkNode:function (node) { - return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id); - }, - /** - * 获取节点node所属的window对象 - * @method getWindow - * @param { Node } node 节点对象 - * @return { Window } 当前节点所属的window对象 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.getWindow( document.body ) === window ); - * ``` - */ - getWindow:function (node) { - var doc = node.ownerDocument || node; - return doc.defaultView || doc.parentWindow; - }, - /** - * 获取离nodeA与nodeB最近的公共的祖先节点 - * @method getCommonAncestor - * @param { Node } nodeA 第一个节点 - * @param { Node } nodeB 第二个节点 - * @remind 如果给定的两个节点是同一个节点, 将直接返回该节点。 - * @return { Node | NULL } 如果未找到公共节点, 返回NULL, 否则返回最近的公共祖先节点。 - * @example - * ```javascript - * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild ); - * //output: true - * console.log( commonAncestor.tagName.toLowerCase() === 'body' ); - * ``` - */ - getCommonAncestor:function (nodeA, nodeB) { - if (nodeA === nodeB) - return nodeA; - var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1; - while (parent = parent.parentNode) { - if (parent === nodeB) { - return parent; - } - parentsA.push(parent); - } - parent = nodeB; - while (parent = parent.parentNode) { - if (parent === nodeA) - return parent; - parentsB.push(parent); - } - parentsA.reverse(); - parentsB.reverse(); - while (i++, parentsA[i] === parentsB[i]) { - } - return i == 0 ? null : parentsA[i - 1]; - - }, - /** - * 清除node节点左右连续为空的兄弟inline节点 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * 则这些兄弟节点将被删除 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext) //ignoreNext指定是否忽略右边空节点 - * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre) //ignorePre指定是否忽略左边空节点 - * @example - * ```html - * - *
    - * - * - * - * xxx - * - * - * - * ``` - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - - /** - * 清除node节点左右连续为空的兄弟inline节点, 如果ignoreNext的值为true, - * 则忽略对右边兄弟节点的操作, 如果ignorePre的值为true,则忽略对左边兄弟节点的操作。 - * @method clearEmptySibling - * @param { Node } node 执行的节点对象, 如果该节点的左右连续的兄弟节点是空的inline节点, - * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作 - * @param { Boolean } ignorePre 是否忽略忽略对左边的兄弟节点的操作 - * 则这些兄弟节点将被删除 - * @see UE.dom.domUtils.clearEmptySibling(Node) - */ - clearEmptySibling:function (node, ignoreNext, ignorePre) { - function clear(next, dir) { - var tmpNode; - while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next) - //这里不能把空格算进来会吧空格干掉,出现文字间的空格丢掉了 - || !new RegExp('[^\t\n\r' + domUtils.fillChar + ']').test(next.nodeValue) )) { - tmpNode = next[dir]; - domUtils.remove(next); - next = tmpNode; - } - } - !ignoreNext && clear(node.nextSibling, 'nextSibling'); - !ignorePre && clear(node.previousSibling, 'previousSibling'); - }, - /** - * 将一个文本节点textNode拆分成两个文本节点,offset指定拆分位置 - * @method split - * @param { Node } textNode 需要拆分的文本节点对象 - * @param { int } offset 需要拆分的位置, 位置计算从0开始 - * @return { Node } 拆分后形成的新节点 - * @example - * ```html - *
    abcdef
    - * - * ``` - */ - split:function (node, offset) { - var doc = node.ownerDocument; - if (browser.ie && offset == node.nodeValue.length) { - var next = doc.createTextNode(''); - return domUtils.insertAfter(node, next); - } - var retval = node.splitText(offset); - //ie8下splitText不会跟新childNodes,我们手动触发他的更新 - if (browser.ie8) { - var tmpNode = doc.createTextNode(''); - domUtils.insertAfter(retval, tmpNode); - domUtils.remove(tmpNode); - } - return retval; - }, - - /** - * 检测文本节点textNode是否为空节点(包括空格、换行、占位符等字符) - * @method isWhitespace - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 检测的节点是否为空 - * @example - * ```html - *
    - * - *
    - * - * ``` - */ - isWhitespace:function (node) { - return !new RegExp('[^ \t\n\r' + domUtils.fillChar + ']').test(node.nodeValue); - }, - /** - * 获取元素element相对于viewport的位置坐标 - * @method getXY - * @param { Node } element 需要计算位置的节点对象 - * @return { Object } 返回形如{x:left,y:top}的一个key-value映射对象, 其中键x代表水平偏移距离, - * y代表垂直偏移距离。 - * - * @example - * ```javascript - * var location = UE.dom.domUtils.getXY( document.getElementById("test") ); - * //output: test的坐标为: 12, 24 - * console.log( 'test的坐标为: ', location.x, ',', location.y ); - * ``` - */ - getXY:function (element) { - var x = 0, y = 0; - while (element.offsetParent) { - y += element.offsetTop; - x += element.offsetLeft; - element = element.offsetParent; - } - return { 'x':x, 'y':y}; - }, - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { String } type 绑定的事件类型 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,"click",function(e){ - * //e为事件对象,this为被点击元素对戏那个 - * }); - * ``` - */ - - /** - * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数 - * @method on - * @param { Node } element 需要绑定事件的节点对象 - * @param { Array } type 绑定的事件类型数组 - * @param { Function } handler 事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.on(document.body,["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - on:function (element, type, handler) { - - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { String } type 需要接触绑定的事件类型 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body,"click",function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - - /** - * 解除DOM事件绑定 - * @method un - * @param { Node } element 需要解除事件绑定的节点对象 - * @param { Array } type 需要接触绑定的事件类型数组 - * @param { Function } handler 对应的事件处理器 - * @example - * ```javascript - * UE.dom.domUtils.un(document.body, ["click","mousedown"],function(evt){ - * //evt为事件对象,this为被点击元素对象 - * }); - * ``` - */ - un:function (element, type, handler) { - var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - - /** - * 比较节点nodeA与节点nodeB是否具有相同的标签名、属性名以及属性值 - * @method isSameElement - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的标签名、属性名以及属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameElement:function (nodeA, nodeB) { - if (nodeA.tagName != nodeB.tagName) { - return false; - } - var thisAttrs = nodeA.attributes, - otherAttrs = nodeB.attributes; - if (!ie && thisAttrs.length != otherAttrs.length) { - return false; - } - var attrA, attrB, al = 0, bl = 0; - for (var i = 0; attrA = thisAttrs[i++];) { - if (attrA.nodeName == 'style') { - if (attrA.specified) { - al++; - } - if (domUtils.isSameStyle(nodeA, nodeB)) { - continue; - } else { - return false; - } - } - if (ie) { - if (attrA.specified) { - al++; - attrB = otherAttrs.getNamedItem(attrA.nodeName); - } else { - continue; - } - } else { - attrB = nodeB.attributes[attrA.nodeName]; - } - if (!attrB.specified || attrA.nodeValue != attrB.nodeValue) { - return false; - } - } - // 有可能attrB的属性包含了attrA的属性之外还有自己的属性 - if (ie) { - for (i = 0; attrB = otherAttrs[i++];) { - if (attrB.specified) { - bl++; - } - } - if (al != bl) { - return false; - } - } - return true; - }, - - /** - * 判断节点nodeA与节点nodeB的元素的style属性是否一致 - * @method isSameStyle - * @param { Node } nodeA 需要比较的节点 - * @param { Node } nodeB 需要比较的节点 - * @return { Boolean } 两个节点是否具有相同的style属性值 - * @example - * ```html - * ssss - * bbbbb - * ssss - * bbbbb - * - * - * ``` - */ - isSameStyle:function (nodeA, nodeB) { - var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'), - styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'); - if (browser.opera) { - styleA = nodeA.style; - styleB = nodeB.style; - if (styleA.length != styleB.length) - return false; - for (var p in styleA) { - if (/^(\d+|csstext)$/i.test(p)) { - continue; - } - if (styleA[p] != styleB[p]) { - return false; - } - } - return true; - } - if (!styleA || !styleB) { - return styleA == styleB; - } - styleA = styleA.split(';'); - styleB = styleB.split(';'); - if (styleA.length != styleB.length) { - return false; - } - for (var i = 0, ci; ci = styleA[i++];) { - if (utils.indexOf(styleB, ci) == -1) { - return false; - } - } - return true; - }, - /** - * 检查节点node是否为block元素 - * @method isBlockElm - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 是否是block元素节点 - * @warning 该方法的判断规则如下: 如果该元素原本是block元素, 则不论该元素当前的css样式是什么都会返回true; - * 否则,检测该元素的css样式, 如果该元素当前是block元素, 则返回true。 其余情况下都返回false。 - * @example - * ```html - * - * - *
    - * - * - * ``` - */ - isBlockElm:function (node) { - return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName]; - }, - /** - * 检测node节点是否为body节点 - * @method isBody - * @param { Element } node 需要检测的dom元素 - * @return { Boolean } 给定的元素是否是body元素 - * @example - * ```javascript - * //output: true - * console.log( UE.dom.domUtils.isBody( document.body ) ); - * ``` - */ - isBody:function (node) { - return node && node.nodeType == 1 && node.tagName.toLowerCase() == 'body'; - }, - /** - * 以node节点为分界,将该节点的指定祖先节点parent拆分成两个独立的节点, - * 拆分形成的两个节点之间是node节点 - * @method breakParent - * @param { Node } node 作为分界的节点对象 - * @param { Node } parent 该节点必须是node节点的祖先节点, 且是block节点。 - * @return { Node } 给定的node分界节点 - * @example - * ```javascript - * - * var node = document.createElement("span"), - * wrapNode = document.createElement( "div" ), - * parent = document.createElement("p"); - * - * parent.appendChild( node ); - * wrapNode.appendChild( parent ); - * - * //拆分前 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * - * UE.dom.domUtils.breakParent( node, parent ); - * //拆分后 - * //output:

    - * console.log( wrapNode.innerHTML ); - * - * ``` - */ - breakParent:function (node, parent) { - var tmpNode, - parentClone = node, - clone = node, - leftNodes, - rightNodes; - do { - parentClone = parentClone.parentNode; - if (leftNodes) { - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(leftNodes); - leftNodes = tmpNode; - tmpNode = parentClone.cloneNode(false); - tmpNode.appendChild(rightNodes); - rightNodes = tmpNode; - } else { - leftNodes = parentClone.cloneNode(false); - rightNodes = leftNodes.cloneNode(false); - } - while (tmpNode = clone.previousSibling) { - leftNodes.insertBefore(tmpNode, leftNodes.firstChild); - } - while (tmpNode = clone.nextSibling) { - rightNodes.appendChild(tmpNode); - } - clone = parentClone; - } while (parent !== parentClone); - tmpNode = parent.parentNode; - tmpNode.insertBefore(leftNodes, parent); - tmpNode.insertBefore(rightNodes, parent); - tmpNode.insertBefore(node, rightNodes); - domUtils.remove(parent); - return node; - }, - /** - * 检查节点node是否是空inline节点 - * @method isEmptyInlineElement - * @param { Node } node 需要检测的节点对象 - * @return { Number } 如果给定的节点是空的inline节点, 则返回1, 否则返回0。 - * @example - * ```html - * => 1 - * => 1 - * => 1 - * xx => 0 - * ``` - */ - isEmptyInlineElement:function (node) { - if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) { - return 0; - } - node = node.firstChild; - while (node) { - //如果是创建的bookmark就跳过 - if (domUtils.isBookmarkNode(node)) { - return 0; - } - if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) || - node.nodeType == 3 && !domUtils.isWhitespace(node) - ) { - return 0; - } - node = node.nextSibling; - } - return 1; - - }, - - /** - * 删除node节点下首尾两端的空白文本子节点 - * @method trimWhiteTextNode - * @param { Element } node 需要执行删除操作的元素对象 - * @example - * ```javascript - * var node = document.createElement("div"); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * node.appendChild( document.createElement("div") ); - * - * node.appendChild( document.createTextNode( "" ) ); - * - * //3 - * console.log( node.childNodes.length ); - * - * UE.dom.domUtils.trimWhiteTextNode( node ); - * - * //1 - * console.log( node.childNodes.length ); - * ``` - */ - trimWhiteTextNode:function (node) { - function remove(dir) { - var child; - while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) { - node.removeChild(child); - } - } - remove('firstChild'); - remove('lastChild'); - }, - - /** - * 合并node节点下相同的子节点 - * @name mergeChild - * @desc - * UE.dom.domUtils.mergeChild(node,tagName) //tagName要合并的子节点的标签 - * @example - *

    xxaaxx

    - * ==> UE.dom.domUtils.mergeChild(node,'span') - *

    xxaaxx

    - */ - mergeChild:function (node, tagName, attrs) { - var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase()); - for (var i = 0, ci; ci = list[i++];) { - if (!ci.parentNode || domUtils.isBookmarkNode(ci)) { - continue; - } - //span单独处理 - if (ci.tagName.toLowerCase() == 'span') { - if (node === ci.parentNode) { - domUtils.trimWhiteTextNode(node); - if (node.childNodes.length == 1) { - node.style.cssText = ci.style.cssText + ";" + node.style.cssText; - domUtils.remove(ci, true); - continue; - } - } - ci.style.cssText = node.style.cssText + ';' + ci.style.cssText; - if (attrs) { - var style = attrs.style; - if (style) { - style = style.split(';'); - for (var j = 0, s; s = style[j++];) { - ci.style[utils.cssStyleToDomStyle(s.split(':')[0])] = s.split(':')[1]; - } - } - } - if (domUtils.isSameStyle(ci, node)) { - domUtils.remove(ci, true); - } - continue; - } - if (domUtils.isSameElement(node, ci)) { - domUtils.remove(ci, true); - } - } - }, - - /** - * 原生方法getElementsByTagName的封装 - * @method getElementsByTagName - * @param { Node } node 目标节点对象 - * @param { String } tagName 需要查找的节点的tagName, 多个tagName以空格分割 - * @return { Array } 符合条件的节点集合 - */ - getElementsByTagName:function (node, name,filter) { - if(filter && utils.isString(filter)){ - var className = filter; - filter = function(node){return domUtils.hasClass(node,className)} - } - name = utils.trim(name).replace(/[ ]{2,}/g,' ').split(' '); - var arr = []; - for(var n = 0,ni;ni=name[n++];){ - var list = node.getElementsByTagName(ni); - for (var i = 0, ci; ci = list[i++];) { - if(!filter || filter(ci)) - arr.push(ci); - } - } - - return arr; - }, - /** - * 将节点node提取到父节点上 - * @method mergeToParent - * @param { Element } node 需要提取的元素对象 - * @example - * ```html - *
    - *
    - * - *
    - *
    - * - * - * ``` - */ - mergeToParent:function (node) { - var parent = node.parentNode; - while (parent && dtd.$removeEmpty[parent.tagName]) { - if (parent.tagName == node.tagName || parent.tagName == 'A') {//针对a标签单独处理 - domUtils.trimWhiteTextNode(parent); - //span需要特殊处理 不处理这样的情况 xxxxxxxxx - if (parent.tagName == 'SPAN' && !domUtils.isSameStyle(parent, node) - || (parent.tagName == 'A' && node.tagName == 'SPAN')) { - if (parent.childNodes.length > 1 || parent !== node.parentNode) { - node.style.cssText = parent.style.cssText + ";" + node.style.cssText; - parent = parent.parentNode; - continue; - } else { - parent.style.cssText += ";" + node.style.cssText; - //trace:952 a标签要保持下划线 - if (parent.tagName == 'A') { - parent.style.textDecoration = 'underline'; - } - } - } - if (parent.tagName != 'A') { - parent === node.parentNode && domUtils.remove(node, true); - break; - } - } - parent = parent.parentNode; - } - }, - /** - * 合并节点node的左右兄弟节点 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点, 可以根据给定的条件选择是否忽略合并左节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - - /** - * 合并节点node的左右兄弟节点,可以根据给定的条件选择是否忽略合并左右节点。 - * @method mergeSibling - * @param { Element } node 需要合并的目标节点 - * @param { Boolean } ignorePre 是否忽略合并左节点 - * @param { Boolean } ignoreNext 是否忽略合并右节点 - * @remind 如果同时忽略左右节点, 则该操作什么也不会做 - * @example - * ```html - * xxxxoooxxxx - * - * - * ``` - */ - mergeSibling:function (node, ignorePre, ignoreNext) { - function merge(rtl, start, node) { - var next; - if ((next = node[rtl]) && !domUtils.isBookmarkNode(next) && next.nodeType == 1 && domUtils.isSameElement(node, next)) { - while (next.firstChild) { - if (start == 'firstChild') { - node.insertBefore(next.lastChild, node.firstChild); - } else { - node.appendChild(next.firstChild); - } - } - domUtils.remove(next); - } - } - !ignorePre && merge('previousSibling', 'firstChild', node); - !ignoreNext && merge('nextSibling', 'lastChild', node); - }, - - /** - * 设置节点node及其子节点不会被选中 - * @method unSelectable - * @param { Element } node 需要执行操作的dom元素 - * @remind 执行该操作后的节点, 将不能被鼠标选中 - * @example - * ```javascript - * UE.dom.domUtils.unSelectable( document.body ); - * ``` - */ - unSelectable:ie && browser.ie9below || browser.opera ? function (node) { - //for ie9 - node.onselectstart = function () { - return false; - }; - node.onclick = node.onkeyup = node.onkeydown = function () { - return false; - }; - node.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - for (var i = 0, ci; ci = node.all[i++];) { - switch (ci.tagName.toLowerCase()) { - case 'iframe' : - case 'textarea' : - case 'input' : - case 'select' : - break; - default : - ci.unselectable = 'on'; - node.setAttribute("unselectable", "on"); - } - } - } : function (node) { - node.style.MozUserSelect = - node.style.webkitUserSelect = - node.style.msUserSelect = - node.style.KhtmlUserSelect = 'none'; - }, - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { String } attrNames 可以是空格隔开的多个属性名称,该操作将会依次删除相应的属性 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - - /** - * 删除节点node上的指定属性名称的属性 - * @method removeAttributes - * @param { Node } node 需要删除属性的节点对象 - * @param { Array } attrNames 需要删除的属性名数组 - * @example - * ```html - *
    - * xxxxx - *
    - * - * - * ``` - */ - removeAttributes:function (node, attrNames) { - attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' '); - for (var i = 0, ci; ci = attrNames[i++];) { - ci = attrFix[ci] || ci; - switch (ci) { - case 'className': - node[ci] = ''; - break; - case 'style': - node.style.cssText = ''; - var val = node.getAttributeNode('style'); - !browser.ie && val && node.removeAttributeNode(val); - } - node.removeAttribute(ci); - } - }, - /** - * 在doc下创建一个标签名为tag,属性为attrs的元素 - * @method createElement - * @param { DomDocument } doc 新创建的元素属于该document节点创建 - * @param { String } tagName 需要创建的元素的标签名 - * @param { Object } attrs 新创建的元素的属性key-value集合 - * @return { Element } 新创建的元素对象 - * @example - * ```javascript - * var ele = UE.dom.domUtils.createElement( document, 'div', { - * id: 'test' - * } ); - * - * //output: DIV - * console.log( ele.tagName ); - * - * //output: test - * console.log( ele.id ); - * - * ``` - */ - createElement:function (doc, tag, attrs) { - return domUtils.setAttributes(doc.createElement(tag), attrs) - }, - /** - * 为节点node添加属性attrs,attrs为属性键值对 - * @method setAttributes - * @param { Element } node 需要设置属性的元素对象 - * @param { Object } attrs 需要设置的属性名-值对 - * @return { Element } 设置属性的元素对象 - * @example - * ```html - * - * - * - * - */ - setAttributes:function (node, attrs) { - for (var attr in attrs) { - if(attrs.hasOwnProperty(attr)){ - var value = attrs[attr]; - switch (attr) { - case 'class': - //ie下要这样赋值,setAttribute不起作用 - node.className = value; - break; - case 'style' : - node.style.cssText = node.style.cssText + ";" + value; - break; - case 'innerHTML': - node[attr] = value; - break; - case 'value': - node.value = value; - break; - default: - node.setAttribute(attrFix[attr] || attr, value); - } - } - } - return node; - }, - - /** - * 获取元素element经过计算后的样式值 - * @method getComputedStyle - * @param { Element } element 需要获取样式的元素对象 - * @param { String } styleName 需要获取的样式名 - * @return { String } 获取到的样式值 - * @example - * ```html - * - * - * - * - * - * ``` - */ - getComputedStyle:function (element, styleName) { - //一下的属性单独处理 - var pros = 'width height top left'; - - if(pros.indexOf(styleName) > -1){ - return element['offset' + styleName.replace(/^\w/,function(s){return s.toUpperCase()})] + 'px'; - } - //忽略文本节点 - if (element.nodeType == 3) { - element = element.parentNode; - } - //ie下font-size若body下定义了font-size,则从currentStyle里会取到这个font-size. 取不到实际值,故此修改. - if (browser.ie && browser.version < 9 && styleName == 'font-size' && !element.style.fontSize && - !dtd.$empty[element.tagName] && !dtd.$nonChild[element.tagName]) { - var span = element.ownerDocument.createElement('span'); - span.style.cssText = 'padding:0;border:0;font-family:simsun;'; - span.innerHTML = '.'; - element.appendChild(span); - var result = span.offsetHeight; - element.removeChild(span); - span = null; - return result + 'px'; - } - try { - var value = domUtils.getStyle(element, styleName) || - (window.getComputedStyle ? domUtils.getWindow(element).getComputedStyle(element, '').getPropertyValue(styleName) : - ( element.currentStyle || element.style )[utils.cssStyleToDomStyle(styleName)]); - - } catch (e) { - return ""; - } - return utils.transUnitToPx(utils.fixColor(styleName, value)); - }, - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { String } classNames 需要删除的className, 多个className之间以空格分开 - * @example - * ```html - * xxx - * - * - * ``` - */ - - /** - * 删除元素element指定的className - * @method removeClasses - * @param { Element } ele 需要删除class的元素节点 - * @param { Array } classNames 需要删除的className数组 - * @example - * ```html - * xxx - * - * - * ``` - */ - removeClasses:function (elm, classNames) { - classNames = utils.isArray(classNames) ? classNames : - utils.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = utils.trim(cls).replace(/[ ]{2,}/g,' '); - if(cls){ - elm.className = cls; - }else{ - domUtils.removeAttributes(elm,['class']); - } - }, - /** - * 给元素element添加className - * @method addClass - * @param { Node } ele 需要增加className的元素 - * @param { String } classNames 需要添加的className, 多个className之间以空格分割 - * @remind 相同的类名不会被重复添加 - * @example - * ```html - * - * - * - * ``` - */ - - /** - * 判断元素element是否包含给定的样式类名className - * @method hasClass - * @param { Node } ele 需要检测的元素 - * @param { Array } classNames 需要检测的className数组 - * @return { Boolean } 元素是否包含所有给定的className - * @example - * ```html - * - * - * - * ``` - */ - hasClass:function (element, className) { - if(utils.isRegExp(className)){ - return className.test(element.className) - } - className = utils.trim(className).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = element.className;ci=className[i++];){ - if(!new RegExp('\\b' + ci + '\\b','i').test(cls)){ - return false; - } - } - return i - 1 == className.length; - }, - - /** - * 阻止事件默认行为 - * @method preventDefault - * @param { Event } evt 需要阻止默认行为的事件对象 - * @example - * ```javascript - * UE.dom.domUtils.preventDefault( evt ); - * ``` - */ - preventDefault:function (evt) { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - }, - /** - * 删除元素element指定的样式 - * @method removeStyle - * @param { Element } element 需要删除样式的元素 - * @param { String } styleName 需要删除的样式名 - * @example - * ```html - * - * - * - * ``` - */ - removeStyle:function (element, name) { - if(browser.ie ){ - //针对color先单独处理一下 - if(name == 'color'){ - name = '(^|;)' + name; - } - element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'') - }else{ - if (element.style.removeProperty) { - element.style.removeProperty (name); - }else { - element.style.removeAttribute (utils.cssStyleToDomStyle(name)); - } - } - - - if (!element.style.cssText) { - domUtils.removeAttributes(element, ['style']); - } - }, - /** - * 获取元素element的style属性的指定值 - * @method getStyle - * @param { Element } element 需要获取属性值的元素 - * @param { String } styleName 需要获取的style的名称 - * @warning 该方法仅获取元素style属性中所标明的值 - * @return { String } 该元素包含指定的style属性值 - * @example - * ```html - *
    - * - * - * ``` - */ - getStyle:function (element, name) { - var value = element.style[ utils.cssStyleToDomStyle(name) ]; - return utils.fixColor(name, value); - }, - /** - * 为元素element设置样式属性值 - * @method setStyle - * @param { Element } element 需要设置样式的元素 - * @param { String } styleName 样式名 - * @param { String } styleValue 样式值 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyle:function (element, name, value) { - element.style[utils.cssStyleToDomStyle(name)] = value; - if(!utils.trim(element.style.cssText)){ - this.removeAttributes(element,'style') - } - }, - /** - * 为元素element设置多个样式属性值 - * @method setStyles - * @param { Element } element 需要设置样式的元素 - * @param { Object } styles 样式名值对 - * @example - * ```html - *
    - * - * - * ``` - */ - setStyles:function (element, styles) { - for (var name in styles) { - if (styles.hasOwnProperty(name)) { - domUtils.setStyle(element, name, styles[name]); - } - } - }, - /** - * 删除_moz_dirty属性 - * @private - * @method removeDirtyAttr - */ - removeDirtyAttr:function (node) { - for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - node.removeAttribute('_moz_dirty'); - }, - /** - * 获取子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @return { Number } 给定的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - - /** - * 根据给定的过滤规则, 获取符合条件的子节点的数量 - * @method getChildCount - * @param { Element } node 需要检测的元素 - * @param { Function } fn 过滤器, 要求对符合条件的子节点返回true, 反之则要求返回false - * @return { Number } 符合过滤条件的node元素的子节点数量 - * @example - * ```html - *
    - * - *
    - * - * - * ``` - */ - getChildCount:function (node, fn) { - var count = 0, first = node.firstChild; - fn = fn || function () { - return 1; - }; - while (first) { - if (fn(first)) { - count++; - } - first = first.nextSibling; - } - return count; - }, - - /** - * 判断给定节点是否为空节点 - * @method isEmptyNode - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否为空 - * @example - * ```javascript - * UE.dom.domUtils.isEmptyNode( document.body ); - * ``` - */ - isEmptyNode:function (node) { - return !node.firstChild || domUtils.getChildCount(node, function (node) { - return !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node) - }) == 0 - }, - clearSelectedArr:function (nodes) { - var node; - while (node = nodes.pop()) { - domUtils.removeAttributes(node, ['class']); - } - }, - /** - * 将显示区域滚动到指定节点的位置 - * @method scrollToView - * @param {Node} node 节点 - * @param {window} win window对象 - * @param {Number} offsetTop 距离上方的偏移量 - */ - scrollToView:function (node, win, offsetTop) { - var getViewPaneSize = function () { - var doc = win.document, - mode = doc.compatMode == 'CSS1Compat'; - return { - width:( mode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0, - height:( mode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0 - }; - }, - getScrollPosition = function (win) { - if ('pageXOffset' in win) { - return { - x:win.pageXOffset || 0, - y:win.pageYOffset || 0 - }; - } - else { - var doc = win.document; - return { - x:doc.documentElement.scrollLeft || doc.body.scrollLeft || 0, - y:doc.documentElement.scrollTop || doc.body.scrollTop || 0 - }; - } - }; - var winHeight = getViewPaneSize().height, offset = winHeight * -1 + offsetTop; - offset += (node.offsetHeight || 0); - var elementPosition = domUtils.getXY(node); - offset += elementPosition.y; - var currentScroll = getScrollPosition(win).y; - // offset += 50; - if (offset > currentScroll || offset < currentScroll - winHeight) { - win.scrollTo(0, offset + (offset < 0 ? -20 : 20)); - } - }, - /** - * 判断给定节点是否为br - * @method isBr - * @param { Node } node 需要判断的节点对象 - * @return { Boolean } 给定的节点是否是br节点 - */ - isBr:function (node) { - return node.nodeType == 1 && node.tagName == 'BR'; - }, - /** - * 判断给定的节点是否是一个“填充”节点 - * @private - * @method isFillChar - * @param { Node } node 需要判断的节点 - * @param { Boolean } isInStart 是否从节点内容的开始位置匹配 - * @returns { Boolean } 节点是否是填充节点 - */ - isFillChar:function (node,isInStart) { - if(node.nodeType != 3) - return false; - var text = node.nodeValue; - if(isInStart){ - return new RegExp('^' + domUtils.fillChar).test(text) - } - return !text.replace(new RegExp(domUtils.fillChar,'g'), '').length - }, - isStartInblock:function (range) { - var tmpRange = range.cloneRange(), - flag = 0, - start = tmpRange.startContainer, - tmp; - if(start.nodeType == 1 && start.childNodes[tmpRange.startOffset]){ - start = start.childNodes[tmpRange.startOffset]; - var pre = start.previousSibling; - while(pre && domUtils.isFillChar(pre)){ - start = pre; - pre = pre.previousSibling; - } - } - if(this.isFillChar(start,true) && tmpRange.startOffset == 1){ - tmpRange.setStartBefore(start); - start = tmpRange.startContainer; - } - - while (start && domUtils.isFillChar(start)) { - tmp = start; - start = start.previousSibling - } - if (tmp) { - tmpRange.setStartBefore(tmp); - start = tmpRange.startContainer; - } - if (start.nodeType == 1 && domUtils.isEmptyNode(start) && tmpRange.startOffset == 1) { - tmpRange.setStart(start, 0).collapse(true); - } - while (!tmpRange.startOffset) { - start = tmpRange.startContainer; - if (domUtils.isBlockElm(start) || domUtils.isBody(start)) { - flag = 1; - break; - } - var pre = tmpRange.startContainer.previousSibling, - tmpNode; - if (!pre) { - tmpRange.setStartBefore(tmpRange.startContainer); - } else { - while (pre && domUtils.isFillChar(pre)) { - tmpNode = pre; - pre = pre.previousSibling; - } - if (tmpNode) { - tmpRange.setStartBefore(tmpNode); - } else { - tmpRange.setStartBefore(tmpRange.startContainer); - } - } - } - return flag && !domUtils.isBody(tmpRange.startContainer) ? 1 : 0; - }, - - /** - * 判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @return { Boolean } 是否是空元素 - * @example - * ```html - *
    - * - * - * ``` - */ - - /** - * 根据指定的判断规则判断给定的元素是否是一个空元素 - * @method isEmptyBlock - * @param { Element } node 需要判断的元素 - * @param { RegExp } reg 对内容执行判断的正则表达式对象 - * @return { Boolean } 是否是空元素 - */ - isEmptyBlock:function (node,reg) { - // HaoChuan9421 - if(!node){ - return; - } - if(node.nodeType != 1) - return 0; - reg = reg || new RegExp('[ \xa0\t\r\n' + domUtils.fillChar + ']', 'g'); - - if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - }, - - /** - * 移动元素使得该元素的位置移动指定的偏移量的距离 - * @method setViewportOffset - * @param { Element } element 需要设置偏移量的元素 - * @param { Object } offset 偏移量, 形如{ left: 100, top: 50 }的一个键值对, 表示该元素将在 - * 现有的位置上向水平方向偏移offset.left的距离, 在竖直方向上偏移 - * offset.top的距离 - * @example - * ```html - *
    - * - * - * ``` - */ - setViewportOffset:function (element, offset) { - var left = parseInt(element.style.left) | 0; - var top = parseInt(element.style.top) | 0; - var rect = element.getBoundingClientRect(); - var offsetLeft = offset.left - rect.left; - var offsetTop = offset.top - rect.top; - if (offsetLeft) { - element.style.left = left + offsetLeft + 'px'; - } - if (offsetTop) { - element.style.top = top + offsetTop + 'px'; - } - }, - - /** - * 用“填充字符”填充节点 - * @method fillNode - * @private - * @param { DomDocument } doc 填充的节点所在的docment对象 - * @param { Node } node 需要填充的节点对象 - * @example - * ```html - *
    - * - * - * ``` - */ - fillNode:function (doc, node) { - var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br'); - node.innerHTML = ''; - node.appendChild(tmpNode); - }, - - /** - * 把节点src的所有子节点追加到另一个节点tag上去 - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被追加到该节点下 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - - /** - * 把节点src的所有子节点移动到另一个节点tag上去, 可以通过dir参数控制附加的行为是“追加”还是“插入顶部” - * @method moveChild - * @param { Node } src 源节点, 该节点下的所有子节点将被移除 - * @param { Node } tag 目标节点, 从源节点移除的子节点将被附加到该节点下 - * @param { Boolean } dir 附加方式, 如果为true, 则附加进去的节点将被放到目标节点的顶部, 反之,则放到末尾 - * @example - * ```html - *
    - * - *
    - *
    - *
    - *
    - * - * - * ``` - */ - moveChild:function (src, tag, dir) { - while (src.firstChild) { - if (dir && tag.firstChild) { - tag.insertBefore(src.lastChild, tag.firstChild); - } else { - tag.appendChild(src.firstChild); - } - } - }, - - /** - * 判断节点的标签上是否不存在任何属性 - * @method hasNoAttributes - * @private - * @param { Node } node 需要检测的节点对象 - * @return { Boolean } 节点是否不包含任何属性 - * @example - * ```html - *
    xxxx
    - * - * - * ``` - */ - hasNoAttributes:function (node) { - return browser.ie ? /^<\w+\s*?>/.test(node.outerHTML) : node.attributes.length == 0; - }, - - /** - * 检测节点是否是UEditor所使用的辅助节点 - * @method isCustomeNode - * @private - * @param { Node } node 需要检测的节点 - * @remind 辅助节点是指编辑器要完成工作临时添加的节点, 在输出的时候将会从编辑器内移除, 不会影响最终的结果。 - * @return { Boolean } 给定的节点是否是一个辅助节点 - */ - isCustomeNode:function (node) { - return node.nodeType == 1 && node.getAttribute('_ue_custom_node_'); - }, - - /** - * 检测节点的标签是否是给定的标签 - * @method isTagNode - * @param { Node } node 需要检测的节点对象 - * @param { String } tagName 标签 - * @return { Boolean } 节点的标签是否是给定的标签 - * @example - * ```html - *
    - * - * - * ``` - */ - isTagNode:function (node, tagNames) { - return node.nodeType == 1 && new RegExp('\\b' + node.tagName + '\\b','i').test(tagNames) - }, - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 获取其中满足过滤条件的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @return { Node | NULL } 如果找到符合过滤条件的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() !== 'div'; - * } ) ); - * ``` - */ - - /** - * 给定一个节点数组nodeList和一组标签名tagNames, 获取其中能够匹配标签名的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { String } tagNames 需要匹配的标签名, 多个标签名之间用空格分割 - * @return { Node | NULL } 如果找到标签名匹配的节点, 则返回该节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: null - * console.log( UE.dom.domUtils.filterNodeList( divNodes, 'a span' ) ); - * ``` - */ - - /** - * 给定一个节点数组,在通过指定的过滤器过滤后, 如果参数forAll为true, 则会返回所有满足过滤 - * 条件的节点集合, 否则, 返回满足条件的节点集合中的第一个节点 - * @method filterNodeList - * @param { Array } nodeList 需要过滤的节点数组 - * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false - * @param { Boolean } forAll 是否返回整个节点数组, 如果该参数为false, 则返回节点集合中的第一个节点 - * @return { Array | Node | NULL } 如果找到符合过滤条件的节点, 则根据参数forAll的值决定返回满足 - * 过滤条件的节点数组或第一个节点, 否则返回NULL - * @example - * ```javascript - * var divNodes = document.getElementsByTagName("div"); - * divNodes = [].slice.call( divNodes, 0 ); - * - * //output: 3(假定有3个div) - * console.log( divNodes.length ); - * - * var nodes = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, true ); - * - * //output: 3 - * console.log( nodes.length ); - * - * var node = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) { - * return node.tagName.toLowerCase() === 'div'; - * }, false ); - * - * //output: div - * console.log( node.nodeName ); - * ``` - */ - filterNodeList : function(nodelist,filter,forAll){ - var results = []; - if(!utils .isFunction(filter)){ - var str = filter; - filter = function(n){ - return utils.indexOf(utils.isArray(str) ? str:str.split(' '), n.tagName.toLowerCase()) != -1 - }; - } - utils.each(nodelist,function(n){ - filter(n) && results.push(n) - }); - return results.length == 0 ? null : results.length == 1 || !forAll ? results[0] : results - }, - - /** - * 查询给定的range选区是否在给定的node节点内,且在该节点的最末尾 - * @method isInNodeEndBoundary - * @param { UE.dom.Range } rng 需要判断的range对象, 该对象的startContainer不能为NULL - * @param node 需要检测的节点对象 - * @return { Number } 如果给定的选取range对象是在node内部的最末端, 则返回1, 否则返回0 - */ - isInNodeEndBoundary : function (rng,node){ - var start = rng.startContainer; - if(start.nodeType == 3 && rng.startOffset != start.nodeValue.length){ - return 0; - } - if(start.nodeType == 1 && rng.startOffset != start.childNodes.length){ - return 0; - } - while(start !== node){ - if(start.nextSibling){ - return 0 - }; - start = start.parentNode; - } - return 1; - }, - isBoundaryNode : function (node,dir){ - var tmp; - while(!domUtils.isBody(node)){ - tmp = node; - node = node.parentNode; - if(tmp !== node[dir]){ - return false; - } - } - return true; - }, - fillHtml : browser.ie11below ? ' ' : '
    ' -}; -var fillCharReg = new RegExp(domUtils.fillChar, 'g'); - -// core/Range.js -/** - * Range封装 - * @file - * @module UE.dom - * @class Range - * @since 1.2.6.1 - */ - -/** - * dom操作封装 - * @unfile - * @module UE.dom - */ - -/** - * Range实现类,本类是UEditor底层核心类,封装不同浏览器之间的Range操作。 - * @unfile - * @module UE.dom - * @class Range - */ - - -(function () { - var guid = 0, - fillChar = domUtils.fillChar, - fillData; - - /** - * 更新range的collapse状态 - * @param {Range} range range对象 - */ - function updateCollapse(range) { - range.collapsed = - range.startContainer && range.endContainer && - range.startContainer === range.endContainer && - range.startOffset == range.endOffset; - } - - function selectOneNode(rng){ - return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1 - } - function setEndPoint(toStart, node, offset, range) { - //如果node是自闭合标签要处理 - if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) { - offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1); - node = node.parentNode; - } - if (toStart) { - range.startContainer = node; - range.startOffset = offset; - if (!range.endContainer) { - range.collapse(true); - } - } else { - range.endContainer = node; - range.endOffset = offset; - if (!range.startContainer) { - range.collapse(false); - } - } - updateCollapse(range); - return range; - } - - function execContentsAction(range, action) { - //调整边界 - //range.includeBookmark(); - var start = range.startContainer, - end = range.endContainer, - startOffset = range.startOffset, - endOffset = range.endOffset, - doc = range.document, - frag = doc.createDocumentFragment(), - tmpStart, tmpEnd; - if (start.nodeType == 1) { - start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode(''))); - } - if (end.nodeType == 1) { - end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode(''))); - } - if (start === end && start.nodeType == 3) { - frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, endOffset - startOffset); - range.collapse(true); - } - return frag; - } - var current, currentLevel, clone = frag, - startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true); - for (var i = 0; startParents[i] == endParents[i];) { - i++; - } - for (var j = i, si; si = startParents[j]; j++) { - current = si.nextSibling; - if (si == start) { - if (!tmpStart) { - if (range.startContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset))); - //is not clone - if (action) { - start.deleteData(startOffset, start.nodeValue.length - startOffset); - } - } else { - clone.appendChild(!action ? start.cloneNode(true) : start); - } - } - } else { - currentLevel = si.cloneNode(false); - clone.appendChild(currentLevel); - } - while (current) { - if (current === end || current === endParents[j]) { - break; - } - si = current.nextSibling; - clone.appendChild(!action ? current.cloneNode(true) : current); - current = si; - } - clone = currentLevel; - } - clone = frag; - if (!startParents[i]) { - clone.appendChild(startParents[i - 1].cloneNode(false)); - clone = clone.firstChild; - } - for (var j = i, ei; ei = endParents[j]; j++) { - current = ei.previousSibling; - if (ei == end) { - if (!tmpEnd && range.endContainer.nodeType == 3) { - clone.appendChild(doc.createTextNode(end.substringData(0, endOffset))); - //is not clone - if (action) { - end.deleteData(0, endOffset); - } - } - } else { - currentLevel = ei.cloneNode(false); - clone.appendChild(currentLevel); - } - //如果两端同级,右边第一次已经被开始做了 - if (j != i || !startParents[i]) { - while (current) { - if (current === start) { - break; - } - ei = current.previousSibling; - clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild); - current = ei; - } - } - clone = currentLevel; - } - if (action) { - range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true); - } - tmpStart && domUtils.remove(tmpStart); - tmpEnd && domUtils.remove(tmpEnd); - return frag; - } - - /** - * 创建一个跟document绑定的空的Range实例 - * @constructor - * @param { Document } document 新建的选区所属的文档对象 - */ - - /** - * @property { Node } startContainer 当前Range的开始边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } startOffset 当前Range的开始边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Node } endContainer 当前Range的结束边界的容器节点, 可以是一个元素节点或者是文本节点 - */ - - /** - * @property { Node } endOffset 当前Range的结束边界容器节点的偏移量, 如果是元素节点, - * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符 - */ - - /** - * @property { Boolean } collapsed 当前Range是否闭合 - * @default true - * @remind Range是闭合的时候, startContainer === endContainer && startOffset === endOffset - */ - - /** - * @property { Document } document 当前Range所属的Document对象 - * @remind 不同range的的document属性可以是不同的 - */ - var Range = dom.Range = function (document) { - var me = this; - me.startContainer = - me.startOffset = - me.endContainer = - me.endOffset = null; - me.document = document; - me.collapsed = true; - }; - - /** - * 删除fillData - * @param doc - * @param excludeNode - */ - function removeFillData(doc, excludeNode) { - try { - if (fillData && domUtils.inDoc(fillData, doc)) { - if (!fillData.nodeValue.replace(fillCharReg, '').length) { - var tmpNode = fillData.parentNode; - domUtils.remove(fillData); - while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) && - //safari的contains有bug - (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode)) - ) { - fillData = tmpNode.parentNode; - domUtils.remove(tmpNode); - tmpNode = fillData; - } - } else { - fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, ''); - } - } - } catch (e) { - } - } - - /** - * @param node - * @param dir - */ - function mergeSibling(node, dir) { - var tmpNode; - node = node[dir]; - while (node && domUtils.isFillChar(node)) { - tmpNode = node[dir]; - domUtils.remove(node); - node = tmpNode; - } - } - - Range.prototype = { - - /** - * 克隆选区的内容到一个DocumentFragment里 - * @method cloneContents - * @return { DocumentFragment | NULL } 如果选区是闭合的将返回null, 否则, 返回包含所clone内容的DocumentFragment元素 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - cloneContents:function () { - return this.collapsed ? null : execContentsAction(this, 0); - }, - - /** - * 删除当前选区范围中的所有内容 - * @method deleteContents - * @remind 执行完该操作后, 当前Range对象变成了闭合状态 - * @return { UE.dom.Range } 当前操作的Range对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - * ``` - */ - deleteContents:function () { - var txt; - if (!this.collapsed) { - execContentsAction(this, 1); - } - if (browser.webkit) { - txt = this.startContainer; - if (txt.nodeType == 3 && !txt.nodeValue.length) { - this.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - } - return this; - }, - - /** - * 将当前选区的内容提取到一个DocumentFragment里 - * @method extractContents - * @remind 执行该操作后, 选区将变成闭合状态 - * @warning 执行该操作后, 原来选区所选中的内容将从dom树上剥离出来 - * @return { DocumentFragment } 返回包含所提取内容的DocumentFragment对象 - * @example - * ```html - * - * - * xx[xxx]x - * - * - * - */ - extractContents:function () { - return this.collapsed ? null : execContentsAction(this, 2); - }, - - /** - * 设置Range的开始容器节点和偏移量 - * @method setStart - * @remind 如果给定的节点是元素节点,那么offset指的是其子元素中索引为offset的元素, - * 如果是文本节点,那么offset指的是其文本内容的第offset个字符 - * @remind 如果提供的容器节点是一个不能包含子元素的节点, 则该选区的开始容器将被设置 - * 为该节点的父节点, 此时, 其距离开始容器的偏移量也变成了该节点在其父节点 - * 中的索引 - * @param { Node } node 将被设为当前选区开始边界容器的节点对象 - * @param { int } offset 选区的开始位置偏移量 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxxxxxxxx[xxx] - * - * - * ``` - * @example - * ```html - * - * xxx[xx]x - * - * - * ``` - */ - setStart:function (node, offset) { - return setEndPoint(true, node, offset, this); - }, - - /** - * 设置Range的结束容器和偏移量 - * @method setEnd - * @param { Node } node 作为当前选区结束边界容器的节点对象 - * @param { int } offset 结束边界的偏移量 - * @see UE.dom.Range:setStart(Node,int) - * @return { UE.dom.Range } 当前range对象 - */ - setEnd:function (node, offset) { - return setEndPoint(false, node, offset, this); - }, - - /** - * 将Range开始位置设置到node节点之后 - * @method setStartAfter - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 选区的开始边界将紧接着该节点之后 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxxxx[xxxx] - * - * - * ``` - */ - setStartAfter:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range开始位置设置到node节点之前 - * @method setStartBefore - * @remind 该操作将会把给定节点的父节点作为range的开始容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 新的选区开始位置在该节点之前 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartBefore:function (node) { - return this.setStart(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 将Range结束位置设置到node节点之后 - * @method setEndAfter - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引+1 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAfter(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * [xxxxxxx]xxxx - * - * - * ``` - */ - setEndAfter:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1); - }, - - /** - * 将Range结束位置设置到node节点之前 - * @method setEndBefore - * @remind 该操作将会把给定节点的父节点作为range的结束容器, 且偏移量是该节点在其父节点中的位置索引 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setEndAfter(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndBefore:function (node) { - return this.setEnd(node.parentNode, domUtils.getNodeIndex(node)); - }, - - /** - * 设置Range的开始位置到node节点内的第一个子节点之前 - * @method setStartAtFirst - * @remind 选区的开始容器将变成给定的节点, 且偏移量为0 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartBefore(Node) - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - setStartAtFirst:function (node) { - return this.setStart(node, 0); - }, - - /** - * 设置Range的开始位置到node节点内的最后一个节点之后 - * @method setStartAtLast - * @remind 选区的开始容器将变成给定的节点, 且偏移量为该节点的子节点数 - * @remind 如果给定的节点是元素节点, 则该节点必须是允许包含子节点的元素。 - * @param { Node } node 目标节点 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setStartAtLast:function (node) { - return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 设置Range的结束位置到node节点内的第一个节点之前 - * @method setEndAtFirst - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为0 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtFirst:function (node) { - return this.setEnd(node, 0); - }, - - /** - * 设置Range的结束位置到node节点内的最后一个节点之后 - * @method setEndAtLast - * @param { Node } node 目标节点 - * @remind 选区的结束容器将变成给定的节点, 且偏移量为该节点的子节点数量 - * @remind node必须是一个元素节点, 且必须是允许包含子节点的元素。 - * @see UE.dom.Range:setStartAtFirst(Node) - * @return { UE.dom.Range } 当前range对象 - */ - setEndAtLast:function (node) { - return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length); - }, - - /** - * 选中给定节点 - * @method selectNode - * @remind 此时, 选区的开始容器和结束容器都是该节点的父节点, 其startOffset是该节点在父节点中的位置索引, - * 而endOffset为startOffset+1 - * @param { Node } node 需要选中的节点 - * @return { UE.dom.Range } 当前range对象,此时的range仅包含当前给定的节点对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNode:function (node) { - return this.setStartBefore(node).setEndAfter(node); - }, - - /** - * 选中给定节点内部的所有节点 - * @method selectNodeContents - * @remind 此时, 选区的开始容器和结束容器都是该节点, 其startOffset为0, - * 而endOffset是该节点的子节点数。 - * @param { Node } node 目标节点, 当前range将包含该节点内的所有节点 - * @return { UE.dom.Range } 当前range对象, 此时range仅包含给定节点的所有子节点 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - selectNodeContents:function (node) { - return this.setStart(node, 0).setEndAtLast(node); - }, - - /** - * clone当前Range对象 - * @method cloneRange - * @remind 返回的range是一个全新的range对象, 其内部所有属性与当前被clone的range相同。 - * @return { UE.dom.Range } 当前range对象的一个副本 - */ - cloneRange:function () { - var me = this; - return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset); - - }, - - /** - * 向当前选区的结束处闭合选区 - * @method collapse - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - - /** - * 闭合当前选区,根据给定的toStart参数项决定是向当前选区开始处闭合还是向结束处闭合, - * 如果toStart的值为true,则向开始位置闭合, 反之,向结束位置闭合。 - * @method collapse - * @param { Boolean } toStart 是否向选区开始处闭合 - * @return { UE.dom.Range } 当前range对象,此时range对象处于闭合状态 - * @see UE.dom.Range:collapse() - * @example - * ```html - * - * xxxxx[xx]xxxx - * - * - * ``` - */ - collapse:function (toStart) { - var me = this; - if (toStart) { - me.endContainer = me.startContainer; - me.endOffset = me.startOffset; - } else { - me.startContainer = me.endContainer; - me.startOffset = me.endOffset; - } - me.collapsed = true; - return me; - }, - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置 - * @method shrinkBoundary - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * xxxx[xxxxx] => xxxx[xxxxx] - * ``` - * - * @example - * ```html - * - * x[xx]xxx - * - * - * ``` - * - * @example - * ```html - * [xxxxxxxxxxx] => [xxxxxxxxxxx] - * ``` - */ - - /** - * 调整range的开始位置和结束位置,使其"收缩"到最小的位置, - * 如果ignoreEnd的值为true,则忽略对结束位置的调整 - * @method shrinkBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束位置的调整 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.domUtils.Range:shrinkBoundary() - */ - shrinkBoundary:function (ignoreEnd) { - var me = this, child, - collapsed = me.collapsed; - function check(node){ - return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName] - } - while (me.startContainer.nodeType == 1 //是element - && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element - && check(child)) { - me.setStart(child, 0); - } - if (collapsed) { - return me.collapse(true); - } - if (!ignoreEnd) { - while (me.endContainer.nodeType == 1//是element - && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值,childNodes[endOffset]报错 - && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element - && check(child)) { - me.setEnd(child, child.childNodes.length); - } - } - return me; - }, - - /** - * 获取离当前选区内包含的所有节点最近的公共祖先节点, - * @method getCommonAncestor - * @remind 返回的公共祖先节点一定不是range自身的容器节点, 但有可能是一个文本节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @example - * ```html - * //选区示例 - * xxxx[xxx]xxxxxx - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @example - * ```html - * - * - * - * xxxxxxxxx[xxx]xxxxxxxx - * - * - * - * - * ``` - */ - - /** - * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到 - * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf - * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点; 同时可以根据 - * ignoreTextNode 参数的取值决定是否忽略类型为文本节点的祖先节点。 - * @method getCommonAncestor - * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点 - * @param { Boolean } ignoreTextNode 获取祖先节点的过程中是否忽略类型为文本节点的祖先节点 - * @return { Node } 当前range对象内所有节点的公共祖先节点 - * @see UE.dom.Range:getCommonAncestor() - * @see UE.dom.Range:getCommonAncestor(Boolean) - * @example - * ```html - * - * - * - * xxxxxxxx[x]xxxxxxxxxxx - * - * - * - * - * ``` - */ - getCommonAncestor:function (includeSelf, ignoreTextNode) { - var me = this, - start = me.startContainer, - end = me.endContainer; - if (start === end) { - if (includeSelf && selectOneNode(this)) { - start = start.childNodes[me.startOffset]; - if(start.nodeType == 1) - return start; - } - //只有在上来就相等的情况下才会出现是文本的情况 - return ignoreTextNode && start.nodeType == 3 ? start.parentNode : start; - } - return domUtils.getCommonAncestor(start, end); - }, - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上 - * @method trimBoundary - * @remind 该操作有可能会引起文本节点被切开 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - - /** - * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上, - * 可以根据 ignoreEnd 参数的值决定是否调整对结束边界的调整 - * @method trimBoundary - * @param { Boolean } ignoreEnd 是否忽略对结束边界的调整 - * @return { UE.dom.Range } 当前range对象 - * @example - * ```html - * - * //选区示例 - * xxx[xxxxx]xxx - * - * - * ``` - */ - trimBoundary:function (ignoreEnd) { - this.txtToElmBoundary(); - var start = this.startContainer, - offset = this.startOffset, - collapsed = this.collapsed, - end = this.endContainer; - if (start.nodeType == 3) { - if (offset == 0) { - this.setStartBefore(start); - } else { - if (offset >= start.nodeValue.length) { - this.setStartAfter(start); - } else { - var textNode = domUtils.split(start, offset); - //跟新结束边界 - if (start === end) { - this.setEnd(textNode, this.endOffset - offset); - } else if (start.parentNode === end) { - this.endOffset += 1; - } - this.setStartBefore(textNode); - } - } - if (collapsed) { - return this.collapse(true); - } - } - if (!ignoreEnd) { - offset = this.endOffset; - end = this.endContainer; - if (end.nodeType == 3) { - if (offset == 0) { - this.setEndBefore(end); - } else { - offset < end.nodeValue.length && domUtils.split(end, offset); - this.setEndAfter(end); - } - } - } - return this; - }, - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则什么也不做 - * @method txtToElmBoundary - * @remind 该操作不会修改dom节点 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则根据参数项 - * ignoreCollapsed 的值决定是否执行该调整 - * @method txtToElmBoundary - * @param { Boolean } ignoreCollapsed 是否忽略选区的闭合状态, 如果该参数取值为true, 则 - * 不论选区是否闭合, 都会执行该操作, 反之, 则不会对闭合的选区执行该操作 - * @return { UE.dom.Range } 当前range对象 - */ - txtToElmBoundary:function (ignoreCollapsed) { - function adjust(r, c) { - var container = r[c + 'Container'], - offset = r[c + 'Offset']; - if (container.nodeType == 3) { - if (!offset) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'Before'](container); - } else if (offset >= container.nodeValue.length) { - r['set' + c.replace(/(\w)/, function (a) { - return a.toUpperCase(); - }) + 'After' ](container); - } - } - } - - if (ignoreCollapsed || !this.collapsed) { - adjust(this, 'start'); - adjust(this, 'end'); - } - return this; - }, - - /** - * 在当前选区的开始位置前插入节点,新插入的节点会被该range包含 - * @method insertNode - * @param { Node } node 需要插入的节点 - * @remind 插入的节点可以是一个DocumentFragment依次插入多个节点 - * @return { UE.dom.Range } 当前range对象 - */ - insertNode:function (node) { - var first = node, length = 1; - if (node.nodeType == 11) { - first = node.firstChild; - length = node.childNodes.length; - } - this.trimBoundary(true); - var start = this.startContainer, - offset = this.startOffset; - var nextNode = start.childNodes[ offset ]; - if (nextNode) { - start.insertBefore(node, nextNode); - } else { - start.appendChild(node); - } - if (first.parentNode === this.endContainer) { - this.endOffset = this.endOffset + length; - } - return this.setStartBefore(first); - }, - - /** - * 闭合选区到当前选区的开始位置, 并且定位光标到闭合后的位置 - * @method setCursor - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse() - */ - - /** - * 闭合选区,可以根据参数toEnd的值控制选区是向前闭合还是向后闭合, 并且定位光标到闭合后的位置。 - * @method setCursor - * @param { Boolean } toEnd 是否向后闭合, 如果为true, 则闭合选区时, 将向结束容器方向闭合, - * 反之,则向开始容器方向闭合 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:collapse(Boolean) - */ - setCursor:function (toEnd, noFillData) { - return this.collapse(!toEnd).select(noFillData); - }, - - /** - * 创建当前range的一个书签,记录下当前range的位置,方便当dom树改变时,还能找回原来的选区位置 - * @method createBookmark - * @param { Boolean } serialize 控制返回的标记位置是对当前位置的引用还是ID,如果该值为true,则 - * 返回标记位置的ID, 反之则返回标记位置节点的引用 - * @return { Object } 返回一个书签记录键值对, 其包含的key有: start => 开始标记的ID或者引用, - * end => 结束标记的ID或引用, id => 当前标记的类型, 如果为true,则表示 - * 返回的记录的类型为ID, 反之则为引用 - */ - createBookmark:function (serialize, same) { - var endNode, - startNode = this.document.createElement('span'); - startNode.style.cssText = 'display:none;line-height:0px;'; - startNode.appendChild(this.document.createTextNode('\u200D')); - startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++); - - if (!this.collapsed) { - endNode = startNode.cloneNode(true); - endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++); - } - this.insertNode(startNode); - if (endNode) { - this.collapse().insertNode(endNode).setEndBefore(endNode); - } - this.setStartAfter(startNode); - return { - start:serialize ? startNode.id : startNode, - end:endNode ? serialize ? endNode.id : endNode : null, - id:serialize - } - }, - - /** - * 调整当前range的边界到书签位置,并删除该书签对象所标记的位置内的节点 - * @method moveToBookmark - * @param { BookMark } bookmark createBookmark所创建的标签对象 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:createBookmark(Boolean) - */ - moveToBookmark:function (bookmark) { - var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start, - end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end; - this.setStartBefore(start); - domUtils.remove(start); - if (end) { - this.setEndBefore(end); - domUtils.remove(end); - } else { - this.collapse(true); - } - return this; - }, - - /** - * 调整range的边界,使其"放大"到最近的父节点 - * @method enlarge - * @remind 会引起选区的变化 - * @return { UE.dom.Range } 当前range对象 - */ - - /** - * 调整range的边界,使其"放大"到最近的父节点,根据参数 toBlock 的取值, 可以 - * 要求扩大之后的父节点是block节点 - * @method enlarge - * @param { Boolean } toBlock 是否要求扩大之后的父节点必须是block节点 - * @return { UE.dom.Range } 当前range对象 - */ - enlarge:function (toBlock, stopFn) { - var isBody = domUtils.isBody, - pre, node, tmp = this.document.createTextNode(''); - if (toBlock) { - node = this.startContainer; - if (node.nodeType == 1) { - if (node.childNodes[this.startOffset]) { - pre = node = node.childNodes[this.startOffset] - } else { - node.appendChild(tmp); - pre = node = tmp; - } - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.previousSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setStartBefore(node); - break; - } - pre = node; - node = node.parentNode; - } - node = this.endContainer; - if (node.nodeType == 1) { - if (pre = node.childNodes[this.endOffset]) { - node.insertBefore(tmp, pre); - } else { - node.appendChild(tmp); - } - pre = node = tmp; - } else { - pre = node; - } - while (1) { - if (domUtils.isBlockElm(node)) { - node = pre; - while ((pre = node.nextSibling) && !domUtils.isBlockElm(pre)) { - node = pre; - } - this.setEndAfter(node); - break; - } - pre = node; - node = node.parentNode; - } - if (tmp.parentNode === this.endContainer) { - this.endOffset--; - } - domUtils.remove(tmp); - } - - // 扩展边界到最大 - if (!this.collapsed) { - while (this.startOffset == 0) { - if (stopFn && stopFn(this.startContainer)) { - break; - } - if (isBody(this.startContainer)) { - break; - } - this.setStartBefore(this.startContainer); - } - while (this.endOffset == (this.endContainer.nodeType == 1 ? this.endContainer.childNodes.length : this.endContainer.nodeValue.length)) { - if (stopFn && stopFn(this.endContainer)) { - break; - } - if (isBody(this.endContainer)) { - break; - } - this.setEndAfter(this.endContainer); - } - } - return this; - }, - enlargeToBlockElm:function(ignoreEnd){ - while(!domUtils.isBlockElm(this.startContainer)){ - this.setStartBefore(this.startContainer); - } - if(!ignoreEnd){ - while(!domUtils.isBlockElm(this.endContainer)){ - this.setEndAfter(this.endContainer); - } - } - return this; - }, - /** - * 调整Range的边界,使其"缩小"到最合适的位置 - * @method adjustmentBoundary - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:shrinkBoundary() - */ - adjustmentBoundary:function () { - if (!this.collapsed) { - while (!domUtils.isBody(this.startContainer) && - this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length && - this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - - this.setStartAfter(this.startContainer); - } - while (!domUtils.isBody(this.endContainer) && !this.endOffset && - this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - this.setEndBefore(this.endContainer); - } - } - return this; - }, - - /** - * 给range选区中的内容添加给定的inline标签 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @example - * ```html - *

    xxxx[xxxx]x

    ==> range.applyInlineStyle("strong") ==>

    xxxx[xxxx]x

    - * ``` - */ - - /** - * 给range选区中的内容添加给定的inline标签, 并且为标签附加上一些初始化属性。 - * @method applyInlineStyle - * @param { String } tagName 需要添加的标签名 - * @param { Object } attrs 跟随新添加的标签的属性 - * @return { UE.dom.Range } 当前选区 - * @example - * ```html - *

    xxxx[xxxx]x

    - * - * ==> - * - * - * range.applyInlineStyle("strong",{"style":"font-size:12px"}) - * - * ==> - * - *

    xxxx[xxxx]x

    - * ``` - */ - applyInlineStyle:function (tagName, attrs, list) { - if (this.collapsed)return this; - this.trimBoundary().enlarge(false, - function (node) { - return node.nodeType == 1 && domUtils.isBlockElm(node) - }).adjustmentBoundary(); - var bookmark = this.createBookmark(), - end = bookmark.end, - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn), - node, - pre, - range = this.cloneRange(); - while (current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - if (current.nodeType == 3 || dtd[tagName][current.tagName]) { - range.setStartBefore(current); - node = current; - while (node && (node.nodeType == 3 || dtd[tagName][node.tagName]) && node !== end) { - pre = node; - node = domUtils.getNextDomNode(node, node.nodeType == 1, null, function (parent) { - return dtd[tagName][parent.tagName]; - }); - } - var frag = range.setEndAfter(pre).extractContents(), elm; - if (list && list.length > 0) { - var level, top; - top = level = list[0].cloneNode(false); - for (var i = 1, ci; ci = list[i++];) { - level.appendChild(ci.cloneNode(false)); - level = level.firstChild; - } - elm = level; - } else { - elm = range.document.createElement(tagName); - } - if (attrs) { - domUtils.setAttributes(elm, attrs); - } - elm.appendChild(frag); - range.insertNode(list ? top : elm); - //处理下滑线在a上的情况 - var aNode; - if (tagName == 'span' && attrs.style && /text\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(elm, 'a', true))) { - domUtils.setAttributes(aNode, attrs); - domUtils.remove(elm, true); - elm = aNode; - } else { - domUtils.mergeSibling(elm); - domUtils.clearEmptySibling(elm); - } - //去除子节点相同的 - domUtils.mergeChild(elm, attrs); - current = domUtils.getNextDomNode(elm, false, filterFn); - domUtils.mergeToParent(elm); - if (node === end) { - break; - } - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return this.moveToBookmark(bookmark); - }, - - /** - * 移除当前选区内指定的inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { String } tagName 需要移除的标签名 - * @return { UE.dom.Range } 当前的range对象 - * @example - * ```html - * xx[xxxxyyyzz]z => range.removeInlineStyle(["em"]) => xx[xxxxyyyzz]z - * ``` - */ - - /** - * 移除当前选区内指定的一组inline标签,但保留其中的内容 - * @method removeInlineStyle - * @param { Array } tagNameArr 需要移除的标签名的数组 - * @return { UE.dom.Range } 当前的range对象 - * @see UE.dom.Range:removeInlineStyle(String) - */ - removeInlineStyle:function (tagNames) { - if (this.collapsed)return this; - tagNames = utils.isArray(tagNames) ? tagNames : [tagNames]; - this.shrinkBoundary().adjustmentBoundary(); - var start = this.startContainer, end = this.endContainer; - while (1) { - if (start.nodeType == 1) { - if (utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1) { - break; - } - if (start.tagName.toLowerCase() == 'body') { - start = null; - break; - } - } - start = start.parentNode; - } - while (1) { - if (end.nodeType == 1) { - if (utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1) { - break; - } - if (end.tagName.toLowerCase() == 'body') { - end = null; - break; - } - } - end = end.parentNode; - } - var bookmark = this.createBookmark(), - frag, - tmpRange; - if (start) { - tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(start, true); - start.parentNode.insertBefore(bookmark.start, start); - } - if (end) { - tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end); - frag = tmpRange.extractContents(); - tmpRange.insertNode(frag); - domUtils.clearEmptySibling(end, false, true); - end.parentNode.insertBefore(bookmark.end, end.nextSibling); - } - var current = domUtils.getNextDomNode(bookmark.start, false, function (node) { - return node.nodeType == 1; - }), next; - while (current && current !== bookmark.end) { - next = domUtils.getNextDomNode(current, true, function (node) { - return node.nodeType == 1; - }); - if (utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1) { - domUtils.remove(current, true); - } - current = next; - } - return this.moveToBookmark(bookmark); - }, - - /** - * 获取当前选中的自闭合的节点 - * @method getClosedNode - * @return { Node | NULL } 如果当前选中的是自闭合节点, 则返回该节点, 否则返回NULL - */ - getClosedNode:function () { - var node; - if (!this.collapsed) { - var range = this.cloneRange().adjustmentBoundary().shrinkBoundary(); - if (selectOneNode(range)) { - var child = range.startContainer.childNodes[range.startOffset]; - if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) { - node = child; - } - } - } - return node; - }, - - /** - * 在页面上高亮range所表示的选区 - * @method select - * @return { UE.dom.Range } 返回当前Range对象 - */ - //这里不区分ie9以上,trace:3824 - select:browser.ie ? function (noFillData, textRange) { - var nativeRange; - if (!this.collapsed) - this.shrinkBoundary(); - var node = this.getClosedNode(); - if (node && !textRange) { - try { - nativeRange = this.document.body.createControlRange(); - nativeRange.addElement(node); - nativeRange.select(); - } catch (e) {} - return this; - } - var bookmark = this.createBookmark(), - start = bookmark.start, - end; - nativeRange = this.document.body.createTextRange(); - nativeRange.moveToElementText(start); - nativeRange.moveStart('character', 1); - if (!this.collapsed) { - var nativeRangeEnd = this.document.body.createTextRange(); - end = bookmark.end; - nativeRangeEnd.moveToElementText(end); - nativeRange.setEndPoint('EndToEnd', nativeRangeEnd); - } else { - if (!noFillData && this.startContainer.nodeType != 3) { - //使用|x固定住光标 - var tmpText = this.document.createTextNode(fillChar), - tmp = this.document.createElement('span'); - tmp.appendChild(this.document.createTextNode(fillChar)); - start.parentNode.insertBefore(tmp, start); - start.parentNode.insertBefore(tmpText, start); - //当点b,i,u时,不能清除i上边的b - removeFillData(this.document, tmpText); - fillData = tmpText; - mergeSibling(tmp, 'previousSibling'); - mergeSibling(start, 'nextSibling'); - nativeRange.moveStart('character', -1); - nativeRange.collapse(true); - } - } - this.moveToBookmark(bookmark); - tmp && domUtils.remove(tmp); - //IE在隐藏状态下不支持range操作,catch一下 - try { - nativeRange.select(); - } catch (e) { - } - return this; - } : function (notInsertFillData) { - function checkOffset(rng){ - - function check(node,offset,dir){ - if(node.nodeType == 3 && node.nodeValue.length < offset){ - rng[dir + 'Offset'] = node.nodeValue.length - } - } - check(rng.startContainer,rng.startOffset,'start'); - check(rng.endContainer,rng.endOffset,'end'); - } - var win = domUtils.getWindow(this.document), - sel = win.getSelection(), - txtNode; - //FF下关闭自动长高时滚动条在关闭dialog时会跳 - //ff下如果不body.focus将不能定位闭合光标到编辑器内 - browser.gecko ? this.document.body.focus() : win.focus(); - if (sel) { - sel.removeAllRanges(); - // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断 - // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR' - if (this.collapsed && !notInsertFillData) { -// //opear如果没有节点接着,原生的不能够定位,不能在body的第一级插入空白节点 -// if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) { -// var tmp = this.document.createTextNode(''); -// this.insertNode(tmp).setStart(tmp, 0).collapse(true); -// } -// - //处理光标落在文本节点的情况 - //处理以下的情况 - //|xxxx - //xxxx|xxxx - //xxxx| - var start = this.startContainer,child = start; - if(start.nodeType == 1){ - child = start.childNodes[this.startOffset]; - - } - if( !(start.nodeType == 3 && this.startOffset) && - (child ? - (!child.previousSibling || child.previousSibling.nodeType != 3) - : - (!start.lastChild || start.lastChild.nodeType != 3) - ) - ){ - txtNode = this.document.createTextNode(fillChar); - //跟着前边走 - this.insertNode(txtNode); - removeFillData(this.document, txtNode); - mergeSibling(txtNode, 'previousSibling'); - mergeSibling(txtNode, 'nextSibling'); - fillData = txtNode; - this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true); - } - } - var nativeRange = this.document.createRange(); - if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){ - var child = this.startContainer.childNodes[this.startOffset]; - if(!child){ - //往前靠拢 - child = this.startContainer.lastChild; - if( child && domUtils.isBr(child)){ - this.setStartBefore(child).collapse(true); - } - }else{ - //向后靠拢 - while(child && domUtils.isBlockElm(child)){ - if(child.nodeType == 1 && child.childNodes[0]){ - child = child.childNodes[0] - }else{ - break; - } - } - child && this.setStartBefore(child).collapse(true) - } - - } - //是createAddress最后一位算的不准,现在这里进行微调 - checkOffset(this); - nativeRange.setStart(this.startContainer, this.startOffset); - nativeRange.setEnd(this.endContainer, this.endOffset); - sel.addRange(nativeRange); - } - return this; - }, - - /** - * 滚动到当前range开始的位置 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @return { UE.dom.Range } 当前Range对象 - */ - - /** - * 滚动到距离当前range开始位置 offset 的位置处 - * @method scrollToView - * @param { Window } win 当前range对象所属的window对象 - * @param { Number } offset 距离range开始位置处的偏移量, 如果为正数, 则向下偏移, 反之, 则向上偏移 - * @return { UE.dom.Range } 当前Range对象 - */ - scrollToView:function (win, offset) { - win = win ? window : domUtils.getWindow(this.document); - var me = this, - span = me.document.createElement('span'); - //trace:717 - span.innerHTML = ' '; - me.cloneRange().insertNode(span); - domUtils.scrollToView(span, win, offset); - domUtils.remove(span); - return me; - }, - - /** - * 判断当前选区内容是否占位符 - * @private - * @method inFillChar - * @return { Boolean } 如果是占位符返回true,否则返回false - */ - inFillChar : function(){ - var start = this.startContainer; - if(this.collapsed && start.nodeType == 3 - && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length - ){ - return true; - } - return false; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - createAddress : function(ignoreEnd,ignoreTxt){ - var addr = {},me = this; - - function getAddress(isStart){ - var node = isStart ? me.startContainer : me.endContainer; - var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}), - addrs = []; - for(var i = 0,ci;ci = parents[i++];){ - addrs.push(domUtils.getNodeIndex(ci,ignoreTxt)); - } - var firstIndex = 0; - - if(ignoreTxt){ - if(node.nodeType == 3){ - var tmpNode = node.previousSibling; - while(tmpNode && tmpNode.nodeType == 3){ - firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length; - tmpNode = tmpNode.previousSibling; - } - firstIndex += (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 ) - }else{ - node = node.childNodes[ isStart ? me.startOffset : me.endOffset]; - if(node){ - firstIndex = domUtils.getNodeIndex(node,ignoreTxt); - }else{ - node = isStart ? me.startContainer : me.endContainer; - var first = node.firstChild; - while(first){ - if(domUtils.isFillChar(first)){ - first = first.nextSibling; - continue; - } - firstIndex++; - if(first.nodeType == 3){ - while( first && first.nodeType == 3){ - first = first.nextSibling; - } - }else{ - first = first.nextSibling; - } - } - } - } - - }else{ - firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset : me.endOffset - } - if(firstIndex < 0){ - firstIndex = 0; - } - addrs.push(firstIndex); - return addrs; - } - addr.startAddress = getAddress(true); - if(!ignoreEnd){ - addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress(); - } - return addr; - }, - - /** - * 保存 - * @method createAddress - * @private - * @return { Boolean } 返回开始和结束的位置 - * @example - * ```html - * - *

    - * aaaa - * - * - * bbbb - * - * - *

    - * - * - * - * ``` - */ - moveToAddress : function(addr,ignoreEnd){ - var me = this; - function getNode(address,isStart){ - var tmpNode = me.document.body, - parentNode,offset; - for(var i= 0,ci,l=address.length;i - * - * - * - * - * - * - * - * - * ``` - */ - - /** - * 遍历range内的节点。 - * 每当遍历一个节点时, 都会执行参数项 doFn 指定的函数, 该函数的接受当前遍历的节点 - * 作为其参数。 - * 可以通过参数项 filterFn 来指定一个过滤器, 只有符合该过滤器过滤规则的节点才会触 - * 发doFn函数的执行 - * @method traversal - * @param { Function } doFn 对每个遍历的节点要执行的方法, 该方法接受当前遍历的节点作为其参数 - * @param { Function } filterFn 过滤器, 该函数接受当前遍历的节点作为参数, 如果该节点满足过滤 - * 规则, 请返回true, 该节点会触发doFn, 否则, 请返回false, 则该节点不 - * 会触发doFn。 - * @return { UE.dom.Range } 当前range对象 - * @see UE.dom.Range:traversal(Function) - * @example - * ```html - * - * - * - * - * - * - * - * - * - * - * ``` - */ - traversal:function(doFn,filterFn){ - if (this.collapsed) - return this; - var bookmark = this.createBookmark(), - end = bookmark.end, - current = domUtils.getNextDomNode(bookmark.start, false, filterFn); - while (current && current !== end && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) { - var tmpNode = domUtils.getNextDomNode(current,false,filterFn); - doFn(current); - current = tmpNode; - } - return this.moveToBookmark(bookmark); - } - }; -})(); - -// core/Selection.js -/** - * 选集 - * @file - * @module UE.dom - * @class Selection - * @since 1.2.6.1 - */ - -/** - * 选区集合 - * @unfile - * @module UE.dom - * @class Selection - */ -(function () { - - function getBoundaryInformation( range, start ) { - var getIndex = domUtils.getNodeIndex; - range = range.duplicate(); - range.collapse( start ); - var parent = range.parentElement(); - //如果节点里没有子节点,直接退出 - if ( !parent.hasChildNodes() ) { - return {container:parent, offset:0}; - } - var siblings = parent.children, - child, - testRange = range.duplicate(), - startIndex = 0, endIndex = siblings.length - 1, index = -1, - distance; - while ( startIndex <= endIndex ) { - index = Math.floor( (startIndex + endIndex) / 2 ); - child = siblings[index]; - testRange.moveToElementText( child ); - var position = testRange.compareEndPoints( 'StartToStart', range ); - if ( position > 0 ) { - endIndex = index - 1; - } else if ( position < 0 ) { - startIndex = index + 1; - } else { - //trace:1043 - return {container:parent, offset:getIndex( child )}; - } - } - if ( index == -1 ) { - testRange.moveToElementText( parent ); - testRange.setEndPoint( 'StartToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - siblings = parent.childNodes; - if ( !distance ) { - child = siblings[siblings.length - 1]; - return {container:child, offset:child.nodeValue.length}; - } - - var i = siblings.length; - while ( distance > 0 ){ - distance -= siblings[ --i ].nodeValue.length; - } - return {container:siblings[i], offset:-distance}; - } - testRange.collapse( position > 0 ); - testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range ); - distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length; - if ( !distance ) { - return dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ? - {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} : - {container:child, offset:position > 0 ? 0 : child.childNodes.length} - } - while ( distance > 0 ) { - try { - var pre = child; - child = child[position > 0 ? 'previousSibling' : 'nextSibling']; - distance -= child.nodeValue.length; - } catch ( e ) { - return {container:parent, offset:getIndex( pre )}; - } - } - return {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance} - } - - /** - * 将ieRange转换为Range对象 - * @param {Range} ieRange ieRange对象 - * @param {Range} range Range对象 - * @return {Range} range 返回转换后的Range对象 - */ - function transformIERangeToRange( ieRange, range ) { - if ( ieRange.item ) { - range.selectNode( ieRange.item( 0 ) ); - } else { - var bi = getBoundaryInformation( ieRange, true ); - range.setStart( bi.container, bi.offset ); - if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) { - bi = getBoundaryInformation( ieRange, false ); - range.setEnd( bi.container, bi.offset ); - } - } - return range; - } - - /** - * 获得ieRange - * @param {Selection} sel Selection对象 - * @return {ieRange} 得到ieRange - */ - function _getIERange( sel ) { - var ieRange; - //ie下有可能报错 - try { - ieRange = sel.getNative().createRange(); - } catch ( e ) { - return null; - } - var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement(); - if ( ( el.ownerDocument || el ) === sel.document ) { - return ieRange; - } - return null; - } - - var Selection = dom.Selection = function ( doc ) { - var me = this, iframe; - me.document = doc; - if ( browser.ie9below ) { - iframe = domUtils.getWindow( doc ).frameElement; - domUtils.on( iframe, 'beforedeactivate', function () { - me._bakIERange = me.getIERange(); - } ); - domUtils.on( iframe, 'activate', function () { - try { - if ( !_getIERange( me ) && me._bakIERange ) { - me._bakIERange.select(); - } - } catch ( ex ) { - } - me._bakIERange = null; - } ); - } - iframe = doc = null; - }; - - Selection.prototype = { - - rangeInBody : function(rng,txtRange){ - var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer; - - return node === this.document.body || domUtils.inDoc(node,this.document); - }, - - /** - * 获取原生seleciton对象 - * @method getNative - * @return { Object } 获得selection对象 - * @example - * ```javascript - * editor.selection.getNative(); - * ``` - */ - getNative:function () { - var doc = this.document; - try { - return !doc ? null : browser.ie9below ? doc.selection : domUtils.getWindow( doc ).getSelection(); - } catch ( e ) { - return null; - } - }, - - /** - * 获得ieRange - * @method getIERange - * @return { Object } 返回ie原生的Range - * @example - * ```javascript - * editor.selection.getIERange(); - * ``` - */ - getIERange:function () { - var ieRange = _getIERange( this ); - if ( !ieRange ) { - if ( this._bakIERange ) { - return this._bakIERange; - } - } - return ieRange; - }, - - /** - * 缓存当前选区的range和选区的开始节点 - * @method cache - */ - cache:function () { - this.clear(); - this._cachedRange = this.getRange(); - this._cachedStartElement = this.getStart(); - this._cachedStartElementPath = this.getStartElementPath(); - }, - - /** - * 获取选区开始位置的父节点到body - * @method getStartElementPath - * @return { Array } 返回父节点集合 - * @example - * ```javascript - * editor.selection.getStartElementPath(); - * ``` - */ - getStartElementPath:function () { - if ( this._cachedStartElementPath ) { - return this._cachedStartElementPath; - } - var start = this.getStart(); - if ( start ) { - return domUtils.findParents( start, true, null, true ) - } - return []; - }, - - /** - * 清空缓存 - * @method clear - */ - clear:function () { - this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null; - }, - - /** - * 编辑器是否得到了选区 - * @method isFocus - */ - isFocus:function () { - try { - if(browser.ie9below){ - - var nativeRange = _getIERange(this); - return !!(nativeRange && this.rangeInBody(nativeRange)); - }else{ - return !!this.getNative().rangeCount; - } - } catch ( e ) { - return false; - } - - }, - - /** - * 获取选区对应的Range - * @method getRange - * @return { Object } 得到Range对象 - * @example - * ```javascript - * editor.selection.getRange(); - * ``` - */ - getRange:function () { - var me = this; - function optimze( range ) { - var child = me.document.body.firstChild, - collapsed = range.collapsed; - while ( child && child.firstChild ) { - range.setStart( child, 0 ); - child = child.firstChild; - } - if ( !range.startContainer ) { - range.setStart( me.document.body, 0 ) - } - if ( collapsed ) { - range.collapse( true ); - } - } - - if ( me._cachedRange != null ) { - return this._cachedRange; - } - var range = new baidu.editor.dom.Range( me.document ); - - if ( browser.ie9below ) { - var nativeRange = me.getIERange(); - if ( nativeRange ) { - //备份的_bakIERange可能已经实效了,dom树发生了变化比如从源码模式切回来,所以try一下,实效就放到body开始位置 - try{ - transformIERangeToRange( nativeRange, range ); - }catch(e){ - optimze( range ); - } - - } else { - optimze( range ); - } - } else { - var sel = me.getNative(); - if ( sel && sel.rangeCount ) { - var firstRange = sel.getRangeAt( 0 ); - var lastRange = sel.getRangeAt( sel.rangeCount - 1 ); - range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset ); - if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) { - optimze( range ); - } - } else { - //trace:1734 有可能已经不在dom树上了,标识的节点 - if ( this._bakRange && domUtils.inDoc( this._bakRange.startContainer, this.document ) ){ - return this._bakRange; - } - optimze( range ); - } - } - return this._bakRange = range; - }, - - /** - * 获取开始元素,用于状态反射 - * @method getStart - * @return { Element } 获得开始元素 - * @example - * ```javascript - * editor.selection.getStart(); - * ``` - */ - getStart:function () { - if ( this._cachedStartElement ) { - return this._cachedStartElement; - } - var range = browser.ie9below ? this.getIERange() : this.getRange(), - tmpRange, - start, tmp, parent; - if ( browser.ie9below ) { - if ( !range ) { - //todo 给第一个值可能会有问题 - return this.document.body.firstChild; - } - //control元素 - if ( range.item ){ - return range.item( 0 ); - } - tmpRange = range.duplicate(); - //修正ie下x[xx] 闭合后 x|xx - tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 ); - tmpRange.collapse( 1 ); - start = tmpRange.parentElement(); - parent = tmp = range.parentElement(); - while ( tmp = tmp.parentNode ) { - if ( tmp == start ) { - start = parent; - break; - } - } - } else { - range.shrinkBoundary(); - start = range.startContainer; - if ( start.nodeType == 1 && start.hasChildNodes() ){ - start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )]; - } - if ( start.nodeType == 3 ){ - return start.parentNode; - } - } - return start; - }, - - /** - * 得到选区中的文本 - * @method getText - * @return { String } 选区中包含的文本 - * @example - * ```javascript - * editor.selection.getText(); - * ``` - */ - getText:function () { - var nativeSel, nativeRange; - if ( this.isFocus() && (nativeSel = this.getNative()) ) { - nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt( 0 ); - return browser.ie9below ? nativeRange.text : nativeRange.toString(); - } - return ''; - }, - - /** - * 清除选区 - * @method clearRange - * @example - * ```javascript - * editor.selection.clearRange(); - * ``` - */ - clearRange : function(){ - this.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - } - }; -})(); - -// core/Editor.js -/** - * 编辑器主类,包含编辑器提供的大部分公用接口 - * @file - * @module UE - * @class Editor - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * UEditor的核心类,为用户提供与编辑器交互的接口。 - * @unfile - * @module UE - * @class Editor - */ - -(function () { - var uid = 0, _selectionChangeTimer; - - /** - * 获取编辑器的html内容,赋值到编辑器所在表单的textarea文本域里面 - * @private - * @method setValue - * @param { UE.Editor } editor 编辑器事例 - */ - function setValue(form, editor) { - var textarea; - if (editor.textarea) { - if (utils.isString(editor.textarea)) { - for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) { - if (ti.id == 'ueditor_textarea_' + editor.options.textarea) { - textarea = ti; - break; - } - } - } else { - textarea = editor.textarea; - } - } - if (!textarea) { - form.appendChild(textarea = domUtils.createElement(document, 'textarea', { - 'name': editor.options.textarea, - 'id': 'ueditor_textarea_' + editor.options.textarea, - 'style': "display:none" - })); - //不要产生多个textarea - editor.textarea = textarea; - } - !textarea.getAttribute('name') && textarea.setAttribute('name', editor.options.textarea ); - textarea.value = editor.hasContents() ? - (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) : - '' - } - function loadPlugins(me){ - //初始化插件 - for (var pi in UE.plugins) { - UE.plugins[pi].call(me); - } - - } - function checkCurLang(I18N){ - for(var lang in I18N){ - return lang - } - } - - function langReadied(me){ - me.langIsReady = true; - - me.fireEvent("langReady"); - } - - /** - * 编辑器准备就绪后会触发该事件 - * @module UE - * @class Editor - * @event ready - * @remind render方法执行完成之后,会触发该事件 - * @remind - * @example - * ```javascript - * editor.addListener( 'ready', function( editor ) { - * editor.execCommand( 'focus' ); //编辑器家在完成后,让编辑器拿到焦点 - * } ); - * ``` - */ - /** - * 执行destroy方法,会触发该事件 - * @module UE - * @class Editor - * @event destroy - * @see UE.Editor:destroy() - */ - /** - * 执行reset方法,会触发该事件 - * @module UE - * @class Editor - * @event reset - * @see UE.Editor:reset() - */ - /** - * 执行focus方法,会触发该事件 - * @module UE - * @class Editor - * @event focus - * @see UE.Editor:focus(Boolean) - */ - /** - * 语言加载完成会触发该事件 - * @module UE - * @class Editor - * @event langReady - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event beforeExecCommand - */ - /** - * 运行命令之后会触发该命令 - * @module UE - * @class Editor - * @event afterExecCommand - */ - /** - * 运行命令之前会触发该命令 - * @module UE - * @class Editor - * @event firstBeforeExecCommand - */ - /** - * 在getContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterGetContent - * @see UE.Editor:getContent() - */ - /** - * 在getAllHtml方法执行时会触发该事件 - * @module UE - * @class Editor - * @event getAllHtml - * @see UE.Editor:getAllHtml() - */ - /** - * 在setContent方法执行之前会触发该事件 - * @module UE - * @class Editor - * @event beforeSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 在setContent方法执行之后会触发该事件 - * @module UE - * @class Editor - * @event afterSetContent - * @see UE.Editor:setContent(String) - */ - /** - * 每当编辑器内部选区发生改变时,将触发该事件 - * @event selectionchange - * @warning 该事件的触发非常频繁,不建议在该事件的处理过程中做重量级的处理 - * @example - * ```javascript - * editor.addListener( 'selectionchange', function( editor ) { - * console.log('选区发生改变'); - * } - */ - /** - * 在所有selectionchange的监听函数执行之前,会触发该事件 - * @module UE - * @class Editor - * @event beforeSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 在所有selectionchange的监听函数执行完之后,会触发该事件 - * @module UE - * @class Editor - * @event afterSelectionChange - * @see UE.Editor:selectionchange - */ - /** - * 编辑器内容发生改变时会触发该事件 - * @module UE - * @class Editor - * @event contentChange - */ - - - /** - * 以默认参数构建一个编辑器实例 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - - /** - * 以给定的参数集合创建一个编辑器实例,对于未指定的参数,将应用默认参数。 - * @constructor - * @remind 通过 改构造方法实例化的编辑器,不带ui层.需要render到一个容器,编辑器实例才能正常渲染到页面 - * @param { Object } setting 创建编辑器的参数 - * @example - * ```javascript - * var editor = new UE.Editor(); - * editor.execCommand('blod'); - * ``` - * @see UE.Config - */ - var Editor = UE.Editor = function (options) { - var me = this; - me.uid = uid++; - EventBase.call(me); - me.commands = {}; - me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true); - me.shortcutkeys = {}; - me.inputRules = []; - me.outputRules = []; - //设置默认的常用属性 - me.setOpt(Editor.defaultOptions(me)); - - /* 尝试异步加载后台配置 */ - me.loadServerConfig(); - - if(!utils.isEmptyObject(UE.I18N)){ - //修改默认的语言类型 - me.options.lang = checkCurLang(UE.I18N); - UE.plugin.load(me); - langReadied(me); - - }else{ - utils.loadFile(document, { - src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - UE.plugin.load(me); - langReadied(me); - }); - } - - UE.instants['ueditorInstant' + me.uid] = me; - }; - Editor.prototype = { - registerCommand : function(name,obj){ - this.commands[name] = obj; - }, - /** - * 编辑器对外提供的监听ready事件的接口, 通过调用该方法,达到的效果与监听ready事件是一致的 - * @method ready - * @param { Function } fn 编辑器ready之后所执行的回调, 如果在注册事件之前编辑器已经ready,将会 - * 立即触发该回调。 - * @remind 需要等待编辑器加载完成后才能执行的代码,可以使用该方法传入 - * @example - * ```javascript - * editor.ready( function( editor ) { - * editor.setContent('初始化完毕'); - * } ); - * ``` - * @see UE.Editor.event:ready - */ - ready: function (fn) { - var me = this; - if (fn) { - me.isReady ? fn.apply(me) : me.addListener('ready', fn); - } - }, - - /** - * 该方法是提供给插件里面使用,设置配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { String } key 编辑器的可接受的选项名称 - * @param { * } val 该选项可接受的值 - * @example - * ```javascript - * editor.setOpt( 'initContent', '欢迎使用编辑器' ); - * ``` - */ - - /** - * 该方法是提供给插件里面使用,以{key:value}集合的方式设置插件内用到的配置项默认值 - * @method setOpt - * @warning 三处设置配置项的优先级: 实例化时传入参数 > setOpt()设置 > config文件里设置 - * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。 - * @param { Object } options 将要设置的选项的键值对对象 - * @example - * ```javascript - * editor.setOpt( { - * 'initContent': '欢迎使用编辑器' - * } ); - * ``` - */ - setOpt: function (key, val) { - var obj = {}; - if (utils.isString(key)) { - obj[key] = val - } else { - obj = key; - } - utils.extend(this.options, obj, true); - }, - getOpt:function(key){ - return this.options[key] - }, - /** - * 销毁编辑器实例,使用textarea代替 - * @method destroy - * @example - * ```javascript - * editor.destroy(); - * ``` - */ - destroy: function () { - - var me = this; - me.fireEvent('destroy'); - var container = me.container.parentNode; - var textarea = me.textarea; - if (!textarea) { - textarea = document.createElement('textarea'); - container.parentNode.insertBefore(textarea, container); - } else { - textarea.style.display = '' - } - - textarea.style.width = me.iframe.offsetWidth + 'px'; - textarea.style.height = me.iframe.offsetHeight + 'px'; - textarea.value = me.getContent(); - textarea.id = me.key; - container.innerHTML = ''; - domUtils.remove(container); - var key = me.key; - //trace:2004 - for (var p in me) { - if (me.hasOwnProperty(p)) { - delete this[p]; - } - } - UE.delEditor(key); - }, - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { String } containerId 指定一个容器ID - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - - /** - * 渲染编辑器的DOM到指定容器 - * @method render - * @param { Element } containerDom 直接指定容器对象 - * @remind 执行该方法,会触发ready事件 - * @warning 必须且只能调用一次 - */ - render: function (container) { - var me = this, - options = me.options, - getStyleValue=function(attr){ - return parseInt(domUtils.getComputedStyle(container,attr)); - }; - if (utils.isString(container)) { - container = document.getElementById(container); - } - if (container) { - if(options.initialFrameWidth){ - options.minFrameWidth = options.initialFrameWidth - }else{ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - } - if(options.initialFrameHeight){ - options.minFrameHeight = options.initialFrameHeight - }else{ - options.initialFrameHeight = options.minFrameHeight = container.offsetHeight; - } - - container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth- - getStyleValue("padding-left")- getStyleValue("padding-right") +'px'; - container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight - - getStyleValue("padding-top")- getStyleValue("padding-bottom") +'px'; - - container.style.zIndex = options.zIndex; - - var html = ( ie && browser.version < 9 ? '' : '') + - '' + - '' + - ( options.iframeCssUrl ? '' : '' ) + - (options.initialStyle ? '' : '') + - '' + - ''; - container.appendChild(domUtils.createElement(document, 'iframe', { - id: 'ueditor_' + me.uid, - width: "100%", - height: "100%", - frameborder: "0", - //先注释掉了,加的原因忘记了,但开启会直接导致全屏模式下内容多时不会出现滚动条 -// scrolling :'no', - src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain != location.hostname ? 'document.domain="' + document.domain + '";' : '') + - 'document.write("' + html + '");document.close();}())' - })); - container.style.overflow = 'hidden'; - //解决如果是给定的百分比,会导致高度算不对的问题 - setTimeout(function(){ - if( /%$/.test(options.initialFrameWidth)){ - options.minFrameWidth = options.initialFrameWidth = container.offsetWidth; - //如果这里给定宽度,会导致ie在拖动窗口大小时,编辑区域不随着变化 -// container.style.width = options.initialFrameWidth + 'px'; - } - if(/%$/.test(options.initialFrameHeight)){ - options.minFrameHeight = options.initialFrameHeight = container.offsetHeight; - container.style.height = options.initialFrameHeight + 'px'; - } - }) - } - }, - - /** - * 编辑器初始化 - * @method _setup - * @private - * @param { Element } doc 编辑器Iframe中的文档对象 - */ - _setup: function (doc) { - - var me = this, - options = me.options; - if (ie) { - doc.body.disabled = true; - doc.body.contentEditable = true; - doc.body.disabled = false; - } else { - doc.body.contentEditable = true; - } - doc.body.spellcheck = false; - me.document = doc; - me.window = doc.defaultView || doc.parentWindow; - me.iframe = me.window.frameElement; - me.body = doc.body; - me.selection = new dom.Selection(doc); - //gecko初始化就能得到range,无法判断isFocus了 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - this._initEvents(); - //为form提交提供一个隐藏的textarea - for (var form = this.iframe.parentNode; !domUtils.isBody(form); form = form.parentNode) { - if (form.tagName == 'FORM') { - me.form = form; - if(me.options.autoSyncData){ - domUtils.on(me.window,'blur',function(){ - setValue(form,me); - }); - }else{ - domUtils.on(form, 'submit', function () { - setValue(this, me); - }); - } - break; - } - } - if (options.initialContent) { - if (options.autoClearinitialContent) { - var oldExecCommand = me.execCommand; - me.execCommand = function () { - me.fireEvent('firstBeforeExecCommand'); - return oldExecCommand.apply(me, arguments); - }; - this._setDefaultContent(options.initialContent); - } else - this.setContent(options.initialContent, false, true); - } - - //编辑器不能为空内容 - - if (domUtils.isEmptyNode(me.body)) { - me.body.innerHTML = '

    ' + (browser.ie ? '' : '
    ') + '

    '; - } - //如果要求focus, 就把光标定位到内容开始 - if (options.focus) { - setTimeout(function () { - me.focus(me.options.focusInEnd); - //如果自动清除开着,就不需要做selectionchange; - !me.options.autoClearinitialContent && me._selectionChange(); - }, 0); - } - if (!me.container) { - me.container = this.iframe.parentNode; - } - if (options.fullscreen && me.ui) { - me.ui.setFullScreen(true); - } - - try { - me.document.execCommand('2D-position', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableInlineTableEditing', false, false); - } catch (e) { - } - try { - me.document.execCommand('enableObjectResizing', false, false); - } catch (e) { - } - - //挂接快捷键 - me._bindshortcutKeys(); - me.isReady = 1; - me.fireEvent('ready'); - options.onready && options.onready.call(me); - if (!browser.ie9below) { - domUtils.on(me.window, ['blur', 'focus'], function (e) { - //chrome下会出现alt+tab切换时,导致选区位置不对 - if (e.type == 'blur') { - me._bakRange = me.selection.getRange(); - try { - me._bakNativeRange = me.selection.getNative().getRangeAt(0); - me.selection.getNative().removeAllRanges(); - } catch (e) { - me._bakNativeRange = null; - } - - } else { - try { - me._bakRange && me._bakRange.select(); - } catch (e) { - } - } - }); - } - //trace:1518 ff3.6body不够寛,会导致点击空白处无法获得焦点 - if (browser.gecko && browser.version <= 10902) { - //修复ff3.6初始化进来,不能点击获得焦点 - me.body.contentEditable = false; - setTimeout(function () { - me.body.contentEditable = true; - }, 100); - setInterval(function () { - me.body.style.height = me.iframe.offsetHeight - 20 + 'px' - }, 100) - } - - !options.isShow && me.setHide(); - options.readonly && me.setDisabled(); - }, - - /** - * 同步数据到编辑器所在的form - * 从编辑器的容器节点向上查找form元素,若找到,就同步编辑内容到找到的form里,为提交数据做准备,主要用于是手动提交的情况 - * 后台取得数据的键值,使用你容器上的name属性,如果没有就使用参数里的textarea项 - * @method sync - * @example - * ```javascript - * editor.sync(); - * form.sumbit(); //form变量已经指向了form元素 - * ``` - */ - - /** - * 根据传入的formId,在页面上查找要同步数据的表单,若找到,就同步编辑内容到找到的form里,为提交数据做准备 - * 后台取得数据的键值,该键值默认使用给定的编辑器容器的name属性,如果没有name属性则使用参数项里给定的“textarea”项 - * @method sync - * @param { String } formID 指定一个要同步数据的form的id,编辑器的数据会同步到你指定form下 - */ - sync: function (formId) { - var me = this, - form = formId ? document.getElementById(formId) : - domUtils.findParent(me.iframe.parentNode, function (node) { - return node.tagName == 'FORM' - }, true); - form && setValue(form, me); - }, - - /** - * 设置编辑器高度 - * @method setHeight - * @remind 当配置项autoHeightEnabled为真时,该方法无效 - * @param { Number } number 设置的高度值,纯数值,不带单位 - * @example - * ```javascript - * editor.setHeight(number); - * ``` - */ - setHeight: function (height,notSetHeight) { - if (height !== parseInt(this.iframe.parentNode.style.height)) { - this.iframe.parentNode.style.height = height + 'px'; - } - !notSetHeight && (this.options.minFrameHeight = this.options.initialFrameHeight = height); - this.body.style.height = height + 'px'; - !notSetHeight && this.trigger('setHeight') - }, - - /** - * 为编辑器的编辑命令提供快捷键 - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { Object } keyset 命令名和快捷键键值对对象,多个按钮的快捷键用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey({ - * "Bold" : "ctrl+66",//^B - * "Italic" : "ctrl+73", //^I - * }); - * ``` - */ - /** - * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口 - * @method addshortcutkey - * @param { String } cmd 触发快捷键时,响应的命令 - * @param { String } keys 快捷键的字符串,多个按钮用“+”分隔 - * @example - * ```javascript - * editor.addshortcutkey("Underline", "ctrl+85"); //^U - * ``` - */ - addshortcutkey: function (cmd, keys) { - var obj = {}; - if (keys) { - obj[cmd] = keys - } else { - obj = cmd; - } - utils.extend(this.shortcutkeys, obj) - }, - - /** - * 对编辑器设置keydown事件监听,绑定快捷键和命令,当快捷键组合触发成功,会响应对应的命令 - * @method _bindshortcutKeys - * @private - */ - _bindshortcutKeys: function () { - var me = this, shortcutkeys = this.shortcutkeys; - me.addListener('keydown', function (type, e) { - var keyCode = e.keyCode || e.which; - for (var i in shortcutkeys) { - var tmp = shortcutkeys[i].split(','); - for (var t = 0, ti; ti = tmp[t++];) { - ti = ti.split(':'); - var key = ti[0], param = ti[1]; - if (/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key)) { - if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0) - && (RegExp.$2 != "" ? e[RegExp.$2.slice(1) + "Key"] : 1) - && keyCode == RegExp.$3 - ) || - keyCode == RegExp.$1 - ) { - if (me.queryCommandState(i,param) != -1) - me.execCommand(i, param); - domUtils.preventDefault(e); - } - } - } - - } - }); - }, - - /** - * 获取编辑器的内容 - * @method getContent - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串, 如果编辑器的内容为空,或者是空的标签内容(如:”<p><br/></p>“), 则返回空字符串 - * @example - * ```javascript - * //编辑器html内容:

    123456

    - * var content = editor.getContent(); //返回值:

    123456

    - * ``` - */ - - /** - * 获取编辑器的内容。 可以通过参数定义编辑器内置的判空规则 - * @method getContent - * @param { Function } fn 自定的判空规则, 要求该方法返回一个boolean类型的值, - * 代表当前编辑器的内容是否空, - * 如果返回true, 则该方法将直接返回空字符串;如果返回false,则编辑器将返回 - * 经过内置过滤规则处理后的内容。 - * @remind 该方法在处理包含有初始化内容的时候能起到很好的作用。 - * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @return { String } 编辑器的内容字符串 - * @example - * ```javascript - * // editor 是一个编辑器的实例 - * var content = editor.getContent( function ( editor ) { - * return editor.body.innerHTML === '欢迎使用UEditor'; //返回空字符串 - * } ); - * ``` - */ - getContent: function (cmd, fn,notSetCursor,ignoreBlank,formatter) { - var me = this; - if (cmd && utils.isFunction(cmd)) { - fn = cmd; - cmd = ''; - } - if (fn ? !fn() : !this.hasContents()) { - return ''; - } - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML,ignoreBlank); - me.filterOutputRule(root); - me.fireEvent('aftergetcontent', cmd,root); - return root.toHtml(formatter); - }, - - /** - * 取得完整的html代码,可以直接显示成完整的html文档 - * @method getAllHtml - * @return { String } 编辑器的内容html文档字符串 - * @eaxmple - * ```javascript - * editor.getAllHtml(); //返回格式大致是: ...... - * ``` - */ - getAllHtml: function () { - var me = this, - headHtml = [], - html = ''; - me.fireEvent('getAllHtml', headHtml); - if (browser.ie && browser.version > 8) { - var headHtmlForIE9 = ''; - utils.each(me.document.styleSheets, function (si) { - headHtmlForIE9 += ( si.href ? '' : ''); - }); - utils.each(me.document.getElementsByTagName('script'), function (si) { - headHtmlForIE9 += si.outerHTML; - }); - - } - return '' + (me.options.charset ? '' : '') - + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\n') + '' - + '' + me.getContent(null, null, true) + ''; - }, - - /** - * 得到编辑器的纯文本内容,但会保留段落格式 - * @method getPlainTxt - * @return { String } 编辑器带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"1\n2\n - * ``` - */ - getPlainTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'), - html = this.body.innerHTML.replace(/[\n\r]/g, '');//ie要先去了\n在处理 - html = html.replace(/<(p|div)[^>]*>(| )<\/\1>/gi, '\n') - .replace(//gi, '\n') - .replace(/<[^>/]+>/g, '') - .replace(/(\n)?<\/([^>]+)>/g, function (a, b, c) { - return dtd.$block[c] ? '\n' : b ? b : ''; - }); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return html.replace(reg, '').replace(/\u00a0/g, ' ').replace(/ /g, ' '); - }, - - /** - * 获取编辑器中的纯文本内容,没有段落格式 - * @method getContentTxt - * @return { String } 编辑器不带段落格式的纯文本内容字符串 - * @example - * ```javascript - * //编辑器html内容:

    1

    2

    - * console.log(editor.getPlainTxt()); //输出:"12 - * ``` - */ - getContentTxt: function () { - var reg = new RegExp(domUtils.fillChar, 'g'); - //取出来的空格会有c2a0会变成乱码,处理这种情况\u00a0 - return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\u00a0/g, ' '); - }, - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @example - * ```javascript - * editor.getContent('

    test

    '); - * ``` - */ - - /** - * 设置编辑器的内容,可修改编辑器当前的html内容 - * @method setContent - * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容 - * @warning 该方法会触发selectionchange事件 - * @param { String } html 要插入的html内容 - * @param { Boolean } isAppendTo 若传入true,不清空原来的内容,在最后插入内容,否则,清空内容再插入 - * @example - * ```javascript - * //假设设置前的编辑器内容是

    old text

    - * editor.setContent('

    new text

    ', true); //插入的结果是

    old text

    new text

    - * ``` - */ - setContent: function (html, isAppendTo, notFireSelectionchange) { - var me = this; - - me.fireEvent('beforesetcontent', html); - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - - me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html; - - - function isCdataDiv(node){ - return node.tagName == 'DIV' && node.getAttribute('cdata_tag'); - } - //给文本或者inline节点套p标签 - if (me.options.enterTag == 'p') { - - var child = this.body.firstChild, tmpNode; - if (!child || child.nodeType == 1 && - (dtd.$cdata[child.tagName] || isCdataDiv(child) || - domUtils.isCustomeNode(child) - ) - && child === this.body.lastChild) { - this.body.innerHTML = '

    ' + (browser.ie ? ' ' : '
    ') + '

    ' + this.body.innerHTML; - - } else { - var p = me.document.createElement('p'); - while (child) { - while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) { - tmpNode = child.nextSibling; - p.appendChild(child); - child = tmpNode; - } - if (p.firstChild) { - if (!child) { - me.body.appendChild(p); - break; - } else { - child.parentNode.insertBefore(p, child); - p = me.document.createElement('p'); - } - } - child = child.nextSibling; - } - } - } - me.fireEvent('aftersetcontent'); - me.fireEvent('contentchange'); - - !notFireSelectionchange && me._selectionChange(); - //清除保存的选区 - me._bakRange = me._bakIERange = me._bakNativeRange = null; - //trace:1742 setContent后gecko能得到焦点问题 - var geckoSel; - if (browser.gecko && (geckoSel = this.selection.getNative())) { - geckoSel.removeAllRanges(); - } - if(me.options.autoSyncData){ - me.form && setValue(me.form,me); - } - }, - - /** - * 让编辑器获得焦点,默认focus到编辑器头部 - * @method focus - * @example - * ```javascript - * editor.focus() - * ``` - */ - - /** - * 让编辑器获得焦点,toEnd确定focus位置 - * @method focus - * @param { Boolean } toEnd 默认focus到编辑器头部,toEnd为true时focus到内容尾部 - * @example - * ```javascript - * editor.focus(true) - * ``` - */ - focus: function (toEnd) { - try { - var me = this, - rng = me.selection.getRange(); - if (toEnd) { - var node = me.body.lastChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - if(domUtils.isEmptyBlock(node)){ - rng.setStartAtFirst(node) - }else{ - rng.setStartAtLast(node) - } - rng.collapse(true); - } - rng.setCursor(true); - } else { - if(!rng.collapsed && domUtils.isBody(rng.startContainer) && rng.startOffset == 0){ - - var node = me.body.firstChild; - if(node && node.nodeType == 1 && !dtd.$empty[node.tagName]){ - rng.setStartAtFirst(node).collapse(true); - } - } - - rng.select(true); - - } - this.fireEvent('focus selectionchange'); - } catch (e) { - } - - }, - isFocus:function(){ - return this.selection.isFocus(); - }, - blur:function(){ - var sel = this.selection.getNative(); - if(sel.empty && browser.ie){ - var nativeRng = document.body.createTextRange(); - nativeRng.moveToElementText(document.body); - nativeRng.collapse(true); - nativeRng.select(); - sel.empty() - }else{ - sel.removeAllRanges() - } - - //this.fireEvent('blur selectionchange'); - }, - /** - * 初始化UE事件及部分事件代理 - * @method _initEvents - * @private - */ - _initEvents: function () { - var me = this, - doc = me.document, - win = me.window; - me._proxyDomEvent = utils.bind(me._proxyDomEvent, me); - domUtils.on(doc, ['click', 'contextmenu', 'mousedown', 'keydown', 'keyup', 'keypress', 'mouseup', 'mouseover', 'mouseout', 'selectstart'], me._proxyDomEvent); - domUtils.on(win, ['focus', 'blur'], me._proxyDomEvent); - domUtils.on(me.body,'drop',function(e){ - //阻止ff下默认的弹出新页面打开图片 - if(browser.gecko && e.stopPropagation) { e.stopPropagation(); } - me.fireEvent('contentchange') - }); - domUtils.on(doc, ['mouseup', 'keydown'], function (evt) { - //特殊键不触发selectionchange - if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) { - return; - } - if (evt.button == 2)return; - me._selectionChange(250, evt); - }); - }, - /** - * 触发事件代理 - * @method _proxyDomEvent - * @private - * @return { * } fireEvent的返回值 - * @see UE.EventBase:fireEvent(String) - */ - _proxyDomEvent: function (evt) { - if(this.fireEvent('before' + evt.type.replace(/^on/, '').toLowerCase()) === false){ - return false; - } - if(this.fireEvent(evt.type.replace(/^on/, ''), evt) === false){ - return false; - } - return this.fireEvent('after' + evt.type.replace(/^on/, '').toLowerCase()) - }, - /** - * 变化选区 - * @method _selectionChange - * @private - */ - _selectionChange: function (delay, evt) { - var me = this; - //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题(source命令notNeedUndo=1) -// if ( !me.selection.isFocus() ){ -// return; -// } - - - var hackForMouseUp = false; - var mouseX, mouseY; - if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') { - var range = this.selection.getRange(); - if (!range.collapsed) { - hackForMouseUp = true; - mouseX = evt.clientX; - mouseY = evt.clientY; - } - } - clearTimeout(_selectionChangeTimer); - _selectionChangeTimer = setTimeout(function () { - if (!me.selection || !me.selection.getNative()) { - return; - } - //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时,可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值. - //IE下如果用户是拖拽一段已选择文本,则不会触发mouseup事件,所以这里的特殊处理不会对其有影响 - var ieRange; - if (hackForMouseUp && me.selection.getNative().type == 'None') { - ieRange = me.document.body.createTextRange(); - try { - ieRange.moveToPoint(mouseX, mouseY); - } catch (ex) { - ieRange = null; - } - } - var bakGetIERange; - if (ieRange) { - bakGetIERange = me.selection.getIERange; - me.selection.getIERange = function () { - return ieRange; - }; - } - me.selection.cache(); - if (bakGetIERange) { - me.selection.getIERange = bakGetIERange; - } - if (me.selection._cachedRange && me.selection._cachedStartElement) { - me.fireEvent('beforeselectionchange'); - // 第二个参数causeByUi为true代表由用户交互造成的selectionchange. - me.fireEvent('selectionchange', !!evt); - me.fireEvent('afterselectionchange'); - me.selection.clear(); - } - }, delay || 50); - }, - - /** - * 执行编辑命令 - * @method _callCmdFn - * @private - * @param { String } fnName 函数名称 - * @param { * } args 传给命令函数的参数 - * @return { * } 返回命令函数运行的返回值 - */ - _callCmdFn: function (fnName, args) { - var cmdName = args[0].toLowerCase(), - cmd, cmdFn; - cmd = this.commands[cmdName] || UE.commands[cmdName]; - cmdFn = cmd && cmd[fnName]; - //没有querycommandstate或者没有command的都默认返回0 - if ((!cmd || !cmdFn) && fnName == 'queryCommandState') { - return 0; - } else if (cmdFn) { - return cmdFn.apply(this, args); - } - }, - - /** - * 执行编辑命令cmdName,完成富文本编辑效果 - * @method execCommand - * @param { String } cmdName 需要执行的命令 - * @remind 具体命令的使用请参考命令列表 - * @return { * } 返回命令函数运行的返回值 - * @example - * ```javascript - * editor.execCommand(cmdName); - * ``` - */ - execCommand: function (cmdName) { - cmdName = cmdName.toLowerCase(); - var me = this, - result, - cmd = me.commands[cmdName] || UE.commands[cmdName]; - if (!cmd || !cmd.execCommand) { - return null; - } - if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - if (me.queryCommandState.apply(me,arguments) != -1) { - me.fireEvent('saveScene'); - me.fireEvent.apply(me, ['beforeexeccommand', cmdName].concat(arguments)); - result = this._callCmdFn('execCommand', arguments); - //保存场景时,做了内容对比,再看是否进行contentchange触发,这里多触发了一次,去掉 -// (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange'); - me.fireEvent.apply(me, ['afterexeccommand', cmdName].concat(arguments)); - me.fireEvent('saveScene'); - } - me.__hasEnterExecCommand = false; - } else { - result = this._callCmdFn('execCommand', arguments); - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange') - } - (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange(); - return result; - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,返回命令的状态 - * @method queryCommandState - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @return { Number } number 返回放前命令的状态,返回值三种情况:(-1|0|1) - * @example - * ```javascript - * editor.queryCommandState(cmdName) => (-1|0|1) - * ``` - * @see COMMAND.LIST - */ - queryCommandState: function (cmdName) { - return this._callCmdFn('queryCommandState', arguments); - }, - - /** - * 根据传入的command命令,查选编辑器当前的选区,根据命令返回相关的值 - * @method queryCommandValue - * @param { String } cmdName 需要查询的命令名称 - * @remind 具体命令的使用请参考命令列表 - * @remind 只有部分插件有此方法 - * @return { * } 返回每个命令特定的当前状态值 - * @grammar editor.queryCommandValue(cmdName) => {*} - * @see COMMAND.LIST - */ - queryCommandValue: function (cmdName) { - return this._callCmdFn('queryCommandValue', arguments); - }, - - /** - * 检查编辑区域中是否有内容 - * @method hasContents - * @remind 默认有文本内容,或者有以下节点都不认为是空 - * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param - * @return { Boolean } 检查有内容返回true,否则返回false - * @example - * ```javascript - * editor.hasContents() - * ``` - */ - - /** - * 检查编辑区域中是否有内容,若包含参数tags中的节点类型,直接返回true - * @method hasContents - * @param { Array } tags 传入数组判断时用到的节点类型 - * @return { Boolean } 若文档中包含tags数组里对应的tag,返回true,否则返回false - * @example - * ```javascript - * editor.hasContents(['span']); - * ``` - */ - hasContents: function (tags) { - if (tags) { - for (var i = 0, ci; ci = tags[i++];) { - if (this.document.getElementsByTagName(ci).length > 0) { - return true; - } - } - } - if (!domUtils.isEmptyBlock(this.body)) { - return true - } - //随时添加,定义的特殊标签如果存在,不能认为是空 - tags = ['div']; - for (i = 0; ci = tags[i++];) { - var nodes = domUtils.getElementsByTagName(this.document, ci); - for (var n = 0, cn; cn = nodes[n++];) { - if (domUtils.isCustomeNode(cn)) { - return true; - } - } - } - return false; - }, - - /** - * 重置编辑器,可用来做多个tab使用同一个编辑器实例 - * @method reset - * @remind 此方法会清空编辑器内容,清空回退列表,会触发reset事件 - * @example - * ```javascript - * editor.reset() - * ``` - */ - reset: function () { - this.fireEvent('reset'); - }, - - /** - * 设置当前编辑区域可以编辑 - * @method setEnabled - * @example - * ```javascript - * editor.setEnabled() - * ``` - */ - setEnabled: function () { - var me = this, range; - if (me.body.contentEditable == 'false') { - me.body.contentEditable = true; - range = me.selection.getRange(); - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - range.select(true); - if (me.bkqueryCommandState) { - me.queryCommandState = me.bkqueryCommandState; - delete me.bkqueryCommandState; - } - if (me.bkqueryCommandValue) { - me.queryCommandValue = me.bkqueryCommandValue; - delete me.bkqueryCommandValue; - } - me.fireEvent('selectionchange'); - } - }, - enable: function () { - return this.setEnabled(); - }, - - /** 设置当前编辑区域不可编辑 - * @method setDisabled - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { String } except 例外命令的字符串 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled('bold'); //禁用工具栏中除加粗之外的所有功能 - * ``` - */ - - /** 设置当前编辑区域不可编辑,except中的命令除外 - * @method setDisabled - * @param { Array } except 例外命令的字符串数组,数组中的命令仍然可以执行 - * @remind 即使设置了disable,此处配置的例外命令仍然可以执行 - * @example - * ```javascript - * editor.setDisabled(['bold','insertimage']); //禁用工具栏中除加粗和插入图片之外的所有功能 - * ``` - */ - setDisabled: function (except) { - var me = this; - except = except ? utils.isArray(except) ? except : [except] : []; - if (me.body.contentEditable == 'true') { - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.body.contentEditable = false; - me.bkqueryCommandState = me.queryCommandState; - me.bkqueryCommandValue = me.queryCommandValue; - me.queryCommandState = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandState.apply(me, arguments); - } - return -1; - }; - me.queryCommandValue = function (type) { - if (utils.indexOf(except, type) != -1) { - return me.bkqueryCommandValue.apply(me, arguments); - } - return null; - }; - me.fireEvent('selectionchange'); - } - }, - disable: function (except) { - return this.setDisabled(except); - }, - - /** - * 设置默认内容 - * @method _setDefaultContent - * @private - * @param { String } cont 要存入的内容 - */ - _setDefaultContent: function () { - function clear() { - var me = this; - if (me.document.getElementById('initContent')) { - me.body.innerHTML = '

    ' + (ie ? '' : '
    ') + '

    '; - me.removeListener('firstBeforeExecCommand focus', clear); - setTimeout(function () { - me.focus(); - me._selectionChange(); - }, 0) - } - } - - return function (cont) { - var me = this; - me.body.innerHTML = '

    ' + cont + '

    '; - - me.addListener('firstBeforeExecCommand focus', clear); - } - }(), - - /** - * 显示编辑器 - * @method setShow - * @example - * ```javascript - * editor.setShow() - * ``` - */ - setShow: function () { - var me = this, range = me.selection.getRange(); - if (me.container.style.display == 'none') { - //有可能内容丢失了 - try { - range.moveToBookmark(me.lastBk); - delete me.lastBk - } catch (e) { - range.setStartAtFirst(me.body).collapse(true) - } - //ie下focus实效,所以做了个延迟 - setTimeout(function () { - range.select(true); - }, 100); - me.container.style.display = ''; - } - - }, - show: function () { - return this.setShow(); - }, - /** - * 隐藏编辑器 - * @method setHide - * @example - * ```javascript - * editor.setHide() - * ``` - */ - setHide: function () { - var me = this; - if (!me.lastBk) { - me.lastBk = me.selection.getRange().createBookmark(true); - } - me.container.style.display = 'none' - }, - hide: function () { - return this.setHide(); - }, - - /** - * 根据指定的路径,获取对应的语言资源 - * @method getLang - * @param { String } path 路径根据的是lang目录下的语言文件的路径结构 - * @return { Object | String } 根据路径返回语言资源的Json格式对象或者语言字符串 - * @example - * ```javascript - * editor.getLang('contextMenu.delete'); //如果当前是中文,那返回是的是'删除' - * ``` - */ - getLang: function (path) { - // HaoChuan9421 - if(!this.options){ - return ''; - } - var lang = UE.I18N[this.options.lang]; - if (!lang) { - throw Error("not import language file"); - } - path = (path || "").split("."); - for (var i = 0, ci; ci = path[i++];) { - lang = lang[ci]; - if (!lang)break; - } - return lang; - }, - - /** - * 计算编辑器html内容字符串的长度 - * @method getContentLength - * @return { Number } 返回计算的长度 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回27 - * ``` - */ - /** - * 计算编辑器当前纯文本内容的长度 - * @method getContentLength - * @param { Boolean } ingoneHtml 传入true时,只按照纯文本来计算 - * @return { Number } 返回计算的长度,内容中有hr/img/iframe标签,长度加1 - * @example - * ```javascript - * //编辑器html内容

    132

    - * editor.getContentLength() //返回3 - * ``` - */ - getContentLength: function (ingoneHtml, tagNames) { - var count = this.getContent(false,false,true).length; - if (ingoneHtml) { - tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']); - count = this.getContentTxt().replace(/[\t\r\n]+/g, '').length; - for (var i = 0, ci; ci = tagNames[i++];) { - count += this.document.getElementsByTagName(ci).length; - } - } - return count; - }, - - /** - * 注册输入过滤规则 - * @method addInputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addInputRule(function(root){ - * $.each(root.getNodesByTagName('div'),function(i,node){ - * node.tagName="p"; - * }); - * }); - * ``` - */ - addInputRule: function (rule) { - this.inputRules.push(rule); - }, - - /** - * 执行注册的过滤规则 - * @method filterInputRule - * @param { UE.uNode } root 要过滤的uNode节点 - * @remind 执行editor.setContent方法和执行'inserthtml'命令后,会运行该过滤函数 - * @example - * ```javascript - * editor.filterInputRule(editor.body); - * ``` - * @see UE.Editor:addInputRule - */ - filterInputRule: function (root) { - for (var i = 0, ci; ci = this.inputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 注册输出过滤规则 - * @method addOutputRule - * @param { Function } rule 要添加的过滤规则 - * @example - * ```javascript - * editor.addOutputRule(function(root){ - * $.each(root.getNodesByTagName('p'),function(i,node){ - * node.tagName="div"; - * }); - * }); - * ``` - */ - addOutputRule: function (rule) { - this.outputRules.push(rule) - }, - - /** - * 根据输出过滤规则,过滤编辑器内容 - * @method filterOutputRule - * @remind 执行editor.getContent方法的时候,会先运行该过滤函数 - * @param { UE.uNode } root 要过滤的uNode节点 - * @example - * ```javascript - * editor.filterOutputRule(editor.body); - * ``` - * @see UE.Editor:addOutputRule - */ - filterOutputRule: function (root) { - for (var i = 0, ci; ci = this.outputRules[i++];) { - ci.call(this, root) - } - }, - - /** - * 根据action名称获取请求的路径 - * @method getActionUrl - * @remind 假如没有设置serverUrl,会根据imageUrl设置默认的controller路径 - * @param { String } action action名称 - * @example - * ```javascript - * editor.getActionUrl('config'); //返回 "/ueditor/php/controller.php?action=config" - * editor.getActionUrl('image'); //返回 "/ueditor/php/controller.php?action=uplaodimage" - * editor.getActionUrl('scrawl'); //返回 "/ueditor/php/controller.php?action=uplaodscrawl" - * editor.getActionUrl('imageManager'); //返回 "/ueditor/php/controller.php?action=listimage" - * ``` - */ - getActionUrl: function(action){ - var actionName = this.getOpt(action) || action, - imageUrl = this.getOpt('imageUrl'), - serverUrl = this.getOpt('serverUrl'); - - if(!serverUrl && imageUrl) { - serverUrl = imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2'); - } - - if(serverUrl) { - serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?':'&') + 'action=' + (actionName || ''); - return utils.formatUrl(serverUrl); - } else { - return ''; - } - } - }; - utils.inherits(Editor, EventBase); -})(); - - -// core/Editor.defaultoptions.js -//维护编辑器一下默认的不在插件中的配置项 -UE.Editor.defaultOptions = function(editor){ - - var _url = editor.options.UEDITOR_HOME_URL; - return { - isShow: true, - initialContent: '', - initialStyle:'', - autoClearinitialContent: false, - iframeCssUrl: _url + 'themes/iframe.css', - textarea: 'editorValue', - focus: false, - focusInEnd: true, - autoClearEmptyNode: true, - fullscreen: false, - readonly: false, - zIndex: 99999, - imagePopup: true, - enterTag: 'p', - customDomain: false, - lang: 'zh-cn', - langPath: _url + 'lang/', - theme: 'default', - themePath: _url + 'themes/', - allHtmlEnabled: false, - scaleEnabled: false, - tableNativeEditInFF: false, - autoSyncData : true, - fileNameFormat: '{time}{rand:6}' - } -}; - -// core/loadconfig.js -(function(){ - - UE.Editor.prototype.loadServerConfig = function(){ - var me = this; - setTimeout(function(){ - try{ - me.options.imageUrl && me.setOpt('serverUrl', me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2')); - - var configUrl = me.getActionUrl('config'), - isJsonp = utils.isCrossDomainUrl(configUrl); - - /* 发出ajax请求 */ - me._serverConfigLoaded = false; - - configUrl && UE.ajax.request(configUrl,{ - 'method': 'GET', - 'dataType': isJsonp ? 'jsonp':'', - 'onsuccess':function(r){ - try { - var config = isJsonp ? r:eval("("+r.responseText+")"); - utils.extend(me.options, config); - me.fireEvent('serverConfigLoaded'); - me._serverConfigLoaded = true; - } catch (e) { - showErrorMsg(me.getLang('loadconfigFormatError')); - } - }, - 'onerror':function(){ - showErrorMsg(me.getLang('loadconfigHttpError')); - } - }); - } catch(e){ - showErrorMsg(me.getLang('loadconfigError')); - } - }); - - function showErrorMsg(msg) { - console && console.error(msg); - //me.fireEvent('showMessage', { - // 'title': msg, - // 'type': 'error' - //}); - } - }; - - UE.Editor.prototype.isServerConfigLoaded = function(){ - var me = this; - return me._serverConfigLoaded || false; - }; - - UE.Editor.prototype.afterConfigReady = function(handler){ - if (!handler || !utils.isFunction(handler)) return; - var me = this; - var readyHandler = function(){ - handler.apply(me, arguments); - me.removeListener('serverConfigLoaded', readyHandler); - }; - - if (me.isServerConfigLoaded()) { - handler.call(me, 'serverConfigLoaded'); - } else { - me.addListener('serverConfigLoaded', readyHandler); - } - }; - -})(); - - -// core/ajax.js -/** - * @file - * @module UE.ajax - * @since 1.2.6.1 - */ - -/** - * 提供对ajax请求的支持 - * @module UE.ajax - */ -UE.ajax = function() { - - //创建一个ajaxRequest对象 - var fnStr = 'XMLHttpRequest()'; - try { - new ActiveXObject("Msxml2.XMLHTTP"); - fnStr = 'ActiveXObject(\'Msxml2.XMLHTTP\')'; - } catch (e) { - try { - new ActiveXObject("Microsoft.XMLHTTP"); - fnStr = 'ActiveXObject(\'Microsoft.XMLHTTP\')' - } catch (e) { - } - } - var creatAjaxRequest = new Function('return new ' + fnStr); - - - /** - * 将json参数转化成适合ajax提交的参数列表 - * @param json - */ - function json2str(json) { - var strArr = []; - for (var i in json) { - //忽略默认的几个参数 - if(i=="method" || i=="timeout" || i=="async" || i=="dataType" || i=="callback") continue; - //忽略控制 - if(json[i] == undefined || json[i] == null) continue; - //传递过来的对象和函数不在提交之列 - if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) { - strArr.push( encodeURIComponent(i) + "="+encodeURIComponent(json[i]) ); - } else if (utils.isArray(json[i])) { - //支持传数组内容 - for(var j = 0; j < json[i].length; j++) { - strArr.push( encodeURIComponent(i) + "[]="+encodeURIComponent(json[i][j]) ); - } - } - } - return strArr.join("&"); - } - - function doAjax(url, ajaxOptions) { - var xhr = creatAjaxRequest(), - //是否超时 - timeIsOut = false, - //默认参数 - defaultAjaxOptions = { - method:"POST", - timeout:5000, - async:true, - data:{},//需要传递对象的话只能覆盖 - onsuccess:function() { - }, - onerror:function() { - } - }; - - if (typeof url === "object") { - ajaxOptions = url; - url = ajaxOptions.url; - } - if (!xhr || !url) return; - var ajaxOpts = ajaxOptions ? utils.extend(defaultAjaxOptions,ajaxOptions) : defaultAjaxOptions; - - var submitStr = json2str(ajaxOpts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(ajaxOpts.data)){ - submitStr += (submitStr? "&":"") + json2str(ajaxOpts.data); - } - //超时检测 - var timerID = setTimeout(function() { - if (xhr.readyState != 4) { - timeIsOut = true; - xhr.abort(); - clearTimeout(timerID); - } - }, ajaxOpts.timeout); - - var method = ajaxOpts.method.toUpperCase(); - var str = url + (url.indexOf("?")==-1?"?":"&") + (method=="POST"?"":submitStr+ "&noCache=" + +new Date); - xhr.open(method, str, ajaxOpts.async); - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - if (!timeIsOut && xhr.status == 200) { - ajaxOpts.onsuccess(xhr); - } else { - ajaxOpts.onerror(xhr); - } - } - }; - if (method == "POST") { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - xhr.send(submitStr); - } else { - xhr.send(null); - } - } - - function doJsonp(url, opts) { - - var successhandler = opts.onsuccess || function(){}, - scr = document.createElement('SCRIPT'), - options = opts || {}, - charset = options['charset'], - callbackField = options['jsonp'] || 'callback', - callbackFnName, - timeOut = options['timeOut'] || 0, - timer, - reg = new RegExp('(\\?|&)' + callbackField + '=([^&]*)'), - matches; - - if (utils.isFunction(successhandler)) { - callbackFnName = 'bd__editor__' + Math.floor(Math.random() * 2147483648).toString(36); - window[callbackFnName] = getCallBack(0); - } else if(utils.isString(successhandler)){ - callbackFnName = successhandler; - } else { - if (matches = reg.exec(url)) { - callbackFnName = matches[2]; - } - } - - url = url.replace(reg, '\x241' + callbackField + '=' + callbackFnName); - - if (url.search(reg) < 0) { - url += (url.indexOf('?') < 0 ? '?' : '&') + callbackField + '=' + callbackFnName; - } - - var queryStr = json2str(opts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing" - //如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串 - if (!utils.isEmptyObject(opts.data)){ - queryStr += (queryStr? "&":"") + json2str(opts.data); - } - if (queryStr) { - url = url.replace(/\?/, '?' + queryStr + '&'); - } - - scr.onerror = getCallBack(1); - if( timeOut ){ - timer = setTimeout(getCallBack(1), timeOut); - } - createScriptTag(scr, url, charset); - - function createScriptTag(scr, url, charset) { - scr.setAttribute('type', 'text/javascript'); - scr.setAttribute('defer', 'defer'); - charset && scr.setAttribute('charset', charset); - scr.setAttribute('src', url); - document.getElementsByTagName('head')[0].appendChild(scr); - } - - function getCallBack(onTimeOut){ - return function(){ - try { - if(onTimeOut){ - options.onerror && options.onerror(); - }else{ - try{ - clearTimeout(timer); - successhandler.apply(window, arguments); - } catch (e){} - } - } catch (exception) { - options.onerror && options.onerror.call(window, exception); - } finally { - options.oncomplete && options.oncomplete.apply(window, arguments); - scr.parentNode && scr.parentNode.removeChild(scr); - window[callbackFnName] = null; - try { - delete window[callbackFnName]; - }catch(e){} - } - } - } - } - - return { - /** - * 根据给定的参数项,向指定的url发起一个ajax请求。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调 - * @method request - * @param { URLString } url ajax请求的url地址 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * //向sayhello.php发起一个异步的Ajax GET请求, 请求超时时间为10s, 请求完成后执行相应的回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求方法。可选值: 'GET', 'POST',默认值是'POST' - * method: 'GET', - * - * //超时时间。 默认为5000, 单位是ms - * timeout: 10000, - * - * //是否是异步请求。 true为异步请求, false为同步请求 - * async: true, - * - * //请求携带的数据。如果请求为GET请求, data会经过stringify后附加到请求url之后。 - * data: { - * name: 'ueditor' - * }, - * - * //请求成功后的回调, 该回调接受当前的XMLHttpRequest对象作为参数。 - * onsuccess: function ( xhr ) { - * console.log( xhr.responseText ); - * }, - * - * //请求失败或者超时后的回调。 - * onerror: function ( xhr ) { - * alert( 'Ajax请求失败' ); - * } - * - * } ); - * ``` - */ - - /** - * 根据给定的参数项发起一个ajax请求, 参数项里必须包含一个url地址。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求 - * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调。 - * @method request - * @warning 如果在参数项里未提供一个key为“url”的地址值,则该请求将直接退出。 - * @param { Object } ajaxOptions ajax请求选项的键值对,支持的选项如下: - * @example - * ```javascript - * - * //向sayhello.php发起一个异步的Ajax POST请求, 请求超时时间为5s, 请求完成后不执行任何回调。 - * UE.ajax.requeset( 'sayhello.php', { - * - * //请求的地址, 该项是必须的。 - * url: 'sayhello.php' - * - * } ); - * ``` - */ - request:function(url, opts) { - if (opts && opts.dataType == 'jsonp') { - doJsonp(url, opts); - } else { - doAjax(url, opts); - } - }, - getJSONP:function(url, data, fn) { - var opts = { - 'data': data, - 'oncomplete': fn - }; - doJsonp(url, opts); - } - }; - - -}(); - - -// core/filterword.js -/** - * UE过滤word的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入html字符串过滤word - * @module UE - * @since 1.2.6.1 - * @method filterWord - * @param { String } html html字符串 - * @return { String } 已过滤后的结果字符串 - * @example - * ```javascript - * UE.filterWord(html); - * ``` - */ -var filterWord = UE.filterWord = function () { - - //是否是word过来的内容 - function isWordDocument( str ) { - return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/ig.test( str ); - } - //去掉小数 - function transUnit( v ) { - v = v.replace( /[\d.]+\w+/g, function ( m ) { - return utils.transUnitToPx(m); - } ); - return v; - } - - function filterPasteWord( str ) { - return str.replace(/[\t\r\n]+/g,' ') - .replace( //ig, "" ) - //转换图片 - .replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(str){ - //opera能自己解析出image所这里直接返回空 - if(browser.opera){ - return ''; - } - try{ - //有可能是bitmap占为图,无用,直接过滤掉,主要体现在粘贴excel表格中 - if(/Bitmap/i.test(str)){ - return ''; - } - var width = str.match(/width:([ \d.]*p[tx])/i)[1], - height = str.match(/height:([ \d.]*p[tx])/i)[1], - src = str.match(/src=\s*"([^"]*)"/i)[1]; - return ''; - } catch(e){ - return ''; - } - }) - //针对wps添加的多余标签处理 - .replace(/<\/?div[^>]*>/g,'') - //去掉多余的属性 - .replace( /v:\w+=(["']?)[^'"]+\1/g, '' ) - .replace( /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi, "" ) - .replace( /

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

    $1

    " ) - //去掉多余的属性 - .replace( /\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/ig, function(str,name,marks,val){ - //保留list的标示 - return name == 'class' && val == 'MsoListParagraph' ? str : '' - }) - //清除多余的font/span不能匹配 有可能是空格 - .replace( /<(font|span)[^>]*>(\s*)<\/\1>/gi, function(a,b,c){ - return c.replace(/[\t\r\n ]+/g,' ') - }) - //处理style的问题 - .replace( /(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, function( str, tag, tmp, style ) { - var n = [], - s = style.replace( /^\s+|\s+$/, '' ) - .replace(/'/g,'\'') - .replace( /"/gi, "'" ) - .replace(/[\d.]+(cm|pt)/g,function(str){ - return utils.transUnitToPx(str) - }) - .split( /;\s*/g ); - - for ( var i = 0,v; v = s[i];i++ ) { - - var name, value, - parts = v.split( ":" ); - - if ( parts.length == 2 ) { - name = parts[0].toLowerCase(); - value = parts[1].toLowerCase(); - if(/^(background)\w*/.test(name) && value.replace(/(initial|\s)/g,'').length == 0 - || - /^(margin)\w*/.test(name) && /^0\w+$/.test(value) - ){ - continue; - } - - switch ( name ) { - case "mso-padding-alt": - case "mso-padding-top-alt": - case "mso-padding-right-alt": - case "mso-padding-bottom-alt": - case "mso-padding-left-alt": - case "mso-margin-alt": - case "mso-margin-top-alt": - case "mso-margin-right-alt": - case "mso-margin-bottom-alt": - case "mso-margin-left-alt": - //ie下会出现挤到一起的情况 - //case "mso-table-layout-alt": - case "mso-height": - case "mso-width": - case "mso-vertical-align-alt": - //trace:1819 ff下会解析出padding在table上 - if(!/]/.test(html)) { - return UE.htmlparser(html).children[0] - } else { - return new uNode({ - type:'element', - children:[], - tagName:html - }) - } - }; - uNode.createText = function (data,noTrans) { - return new UE.uNode({ - type:'text', - 'data':noTrans ? data : utils.unhtml(data || '') - }) - }; - function nodeToHtml(node, arr, formatter, current) { - switch (node.type) { - case 'root': - for (var i = 0, ci; ci = node.children[i++];) { - //插入新行 - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current, true); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - break; - case 'text': - isText(node, arr); - break; - case 'element': - isElement(node, arr, formatter, current); - break; - case 'comment': - isComment(node, arr, formatter); - } - return arr; - } - - function isText(node, arr) { - if(node.parentNode.tagName == 'pre'){ - //源码模式下输入html标签,不能做转换处理,直接输出 - arr.push(node.data) - }else{ - arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,'  ')) - } - - } - - function isElement(node, arr, formatter, current) { - var attrhtml = ''; - if (node.attrs) { - attrhtml = []; - var attrs = node.attrs; - for (var a in attrs) { - //这里就针对 - //

    '

    - //这里边的\"做转换,要不用innerHTML直接被截断了,属性src - //有可能做的不够 - attrhtml.push(a + (attrs[a] !== undefined ? '="' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(/["]/g, function (a) { - return '"' - }) : utils.unhtml(attrs[a])) + '"' : '')) - } - attrhtml = attrhtml.join(' '); - } - arr.push('<' + node.tagName + - (attrhtml ? ' ' + attrhtml : '') + - (dtd.$empty[node.tagName] ? '\/' : '' ) + '>' - ); - //插入新行 - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - if(node.children && node.children.length){ - current = insertLine(arr, current, true); - insertIndent(arr, current) - } - - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) { - insertLine(arr, current); - insertIndent(arr, current) - } - nodeToHtml(ci, arr, formatter, current) - } - } - if (!dtd.$empty[node.tagName]) { - if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') { - - if(node.children && node.children.length){ - current = insertLine(arr, current); - insertIndent(arr, current) - } - } - arr.push('<\/' + node.tagName + '>'); - } - - } - - function isComment(node, arr) { - arr.push(''); - } - - function getNodeById(root, id) { - var node; - if (root.type == 'element' && root.getAttr('id') == id) { - return root; - } - if (root.children && root.children.length) { - for (var i = 0, ci; ci = root.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - } - - function getNodesByTagName(node, tagName, arr) { - if (node.type == 'element' && node.tagName == tagName) { - arr.push(node); - } - if (node.children && node.children.length) { - for (var i = 0, ci; ci = node.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - } - function nodeTraversal(root,fn){ - if(root.children && root.children.length){ - for(var i= 0,ci;ci=root.children[i];){ - nodeTraversal(ci,fn); - //ci被替换的情况,这里就不再走 fn了 - if(ci.parentNode ){ - if(ci.children && ci.children.length){ - fn(ci) - } - if(ci.parentNode) i++ - } - } - }else{ - fn(root) - } - - } - uNode.prototype = { - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml(); - * ``` - */ - - /** - * 当前节点对象,转换成html文本 - * @method toHtml - * @param { Boolean } formatter 是否格式化返回值 - * @return { String } 返回转换后的html字符串 - * @example - * ```javascript - * node.toHtml( true ); - * ``` - */ - toHtml:function (formatter) { - var arr = []; - nodeToHtml(this, arr, formatter, 0); - return arr.join('') - }, - - /** - * 获取节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的html内容 - * @example - * ```javascript - * var htmlstr = node.innerHTML(); - * ``` - */ - - /** - * 设置节点的html内容 - * @method innerHTML - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } htmlstr 传入要设置的html内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerHTML('text'); - * ``` - */ - innerHTML:function (htmlstr) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (utils.isString(htmlstr)) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - var tmpRoot = UE.htmlparser(htmlstr); - for (var i = 0, ci; ci = tmpRoot.children[i++];) { - this.children.push(ci); - ci.parentNode = this; - } - return this; - } else { - var tmpRoot = new UE.uNode({ - type:'root', - children:this.children - }); - return tmpRoot.toHtml(); - } - }, - - /** - * 获取节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @return { String } 返回节点的存文本内容 - * @example - * ```javascript - * var textStr = node.innerText(); - * ``` - */ - - /** - * 设置节点的纯文本内容 - * @method innerText - * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接返回当前节点 - * @param { String } textStr 传入要设置的文本内容 - * @return { UE.uNode } 返回节点本身 - * @example - * ```javascript - * node.innerText('text'); - * ``` - */ - innerText:function (textStr,noTrans) { - if (this.type != 'element' || dtd.$empty[this.tagName]) { - return this; - } - if (textStr) { - if(this.children){ - for (var i = 0, ci; ci = this.children[i++];) { - ci.parentNode = null; - } - } - this.children = []; - this.appendChild(uNode.createText(textStr,noTrans)); - return this; - } else { - return this.toHtml().replace(/<[^>]+>/g, ''); - } - }, - - /** - * 获取当前对象的data属性 - * @method getData - * @return { Object } 若节点的type值是elemenet,返回空字符串,否则返回节点的data属性 - * @example - * ```javascript - * node.getData(); - * ``` - */ - getData:function () { - if (this.type == 'element') - return ''; - return this.data - }, - - /** - * 获取当前节点下的第一个子节点 - * @method firstChild - * @return { UE.uNode } 返回第一个子节点 - * @example - * ```javascript - * node.firstChild(); //返回第一个子节点 - * ``` - */ - firstChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName]) { -// return this; -// } - return this.children ? this.children[0] : null; - }, - - /** - * 获取当前节点下的最后一个子节点 - * @method lastChild - * @return { UE.uNode } 返回最后一个子节点 - * @example - * ```javascript - * node.lastChild(); //返回最后一个子节点 - * ``` - */ - lastChild:function () { -// if (this.type != 'element' || dtd.$empty[this.tagName] ) { -// return this; -// } - return this.children ? this.children[this.children.length - 1] : null; - }, - - /** - * 获取和当前节点有相同父亲节点的前一个节点 - * @method previousSibling - * @return { UE.uNode } 返回前一个节点 - * @example - * ```javascript - * node.children[2].previousSibling(); //返回子节点node.children[1] - * ``` - */ - previousSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i]; i++) { - if (ci === this) { - return i == 0 ? null : parent.children[i-1]; - } - } - - }, - - /** - * 获取和当前节点有相同父亲节点的后一个节点 - * @method nextSibling - * @return { UE.uNode } 返回后一个节点,找不到返回null - * @example - * ```javascript - * node.children[2].nextSibling(); //如果有,返回子节点node.children[3] - * ``` - */ - nextSibling : function(){ - var parent = this.parentNode; - for (var i = 0, ci; ci = parent.children[i++];) { - if (ci === this) { - return parent.children[i]; - } - } - }, - - /** - * 用新的节点替换当前节点 - * @method replaceChild - * @param { UE.uNode } target 要替换成该节点参数 - * @param { UE.uNode } source 要被替换掉的节点 - * @return { UE.uNode } 返回替换之后的节点对象 - * @example - * ```javascript - * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点 - * ``` - */ - replaceChild:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 1, target); - source.parentNode = null; - target.parentNode = this; - return target; - } - } - } - }, - - /** - * 在节点的子节点列表最后位置插入一个节点 - * @method appendChild - * @param { UE.uNode } node 要插入的节点 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.appendChild( newNode ); //在node内插入子节点newNode - * ``` - */ - appendChild:function (node) { - if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) { - if (!this.children) { - this.children = [] - } - if(node.parentNode){ - node.parentNode.removeChild(node); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - break; - } - } - this.children.push(node); - node.parentNode = this; - return node; - } - - - }, - - /** - * 在传入节点的前面插入一个节点 - * @method insertBefore - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点前面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertBefore:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i, 0, target); - target.parentNode = this; - return target; - } - } - - } - }, - - /** - * 在传入节点的后面插入一个节点 - * @method insertAfter - * @param { UE.uNode } target 要插入的节点 - * @param { UE.uNode } source 在该参数节点后面插入 - * @return { UE.uNode } 返回刚插入的子节点 - * @example - * ```javascript - * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode - * ``` - */ - insertAfter:function (target, source) { - if (this.children) { - if(target.parentNode){ - target.parentNode.removeChild(target); - } - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === source) { - this.children.splice(i + 1, 0, target); - target.parentNode = this; - return target; - } - - } - } - }, - - /** - * 从当前节点的子节点列表中,移除节点 - * @method removeChild - * @param { UE.uNode } node 要移除的节点引用 - * @param { Boolean } keepChildren 是否保留移除节点的子节点,若传入true,自动把移除节点的子节点插入到移除的位置 - * @return { * } 返回刚移除的子节点 - * @example - * ```javascript - * node.removeChild(childNode,true); //在node的子节点列表中移除child节点,并且吧child的子节点插入到移除的位置 - * ``` - */ - removeChild:function (node,keepChildren) { - if (this.children) { - for (var i = 0, ci; ci = this.children[i]; i++) { - if (ci === node) { - this.children.splice(i, 1); - ci.parentNode = null; - if(keepChildren && ci.children && ci.children.length){ - for(var j= 0,cj;cj=ci.children[j];j++){ - this.children.splice(i+j,0,cj); - cj.parentNode = this; - - } - } - return ci; - } - } - } - }, - - /** - * 获取当前节点所代表的元素属性,即获取attrs对象下的属性值 - * @method getAttr - * @param { String } attrName 要获取的属性名称 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.getAttr('title'); - * ``` - */ - getAttr:function (attrName) { - return this.attrs && this.attrs[attrName.toLowerCase()] - }, - - /** - * 设置当前节点所代表的元素属性,即设置attrs对象下的属性值 - * @method setAttr - * @param { String } attrName 要设置的属性名称 - * @param { * } attrVal 要设置的属性值,类型视设置的属性而定 - * @return { * } 返回attrs对象下的属性值 - * @example - * ```javascript - * node.setAttr('title','标题'); - * ``` - */ - setAttr:function (attrName, attrVal) { - if (!attrName) { - delete this.attrs; - return; - } - if(!this.attrs){ - this.attrs = {}; - } - if (utils.isObject(attrName)) { - for (var a in attrName) { - if (!attrName[a]) { - delete this.attrs[a] - } else { - this.attrs[a.toLowerCase()] = attrName[a]; - } - } - } else { - if (!attrVal) { - delete this.attrs[attrName] - } else { - this.attrs[attrName.toLowerCase()] = attrVal; - } - - } - }, - - /** - * 获取当前节点在父节点下的位置索引 - * @method getIndex - * @return { Number } 返回索引数值,如果没有父节点,返回-1 - * @example - * ```javascript - * node.getIndex(); - * ``` - */ - getIndex:function(){ - var parent = this.parentNode; - for(var i= 0,ci;ci=parent.children[i];i++){ - if(ci === this){ - return i; - } - } - return -1; - }, - - /** - * 在当前节点下,根据id查找节点 - * @method getNodeById - * @param { String } id 要查找的id - * @return { UE.uNode } 返回找到的节点 - * @example - * ```javascript - * node.getNodeById('textId'); - * ``` - */ - getNodeById:function (id) { - var node; - if (this.children && this.children.length) { - for (var i = 0, ci; ci = this.children[i++];) { - if (node = getNodeById(ci, id)) { - return node; - } - } - } - }, - - /** - * 在当前节点下,根据元素名称查找节点列表 - * @method getNodesByTagName - * @param { String } tagNames 要查找的元素名称 - * @return { Array } 返回找到的节点列表 - * @example - * ```javascript - * node.getNodesByTagName('span'); - * ``` - */ - getNodesByTagName:function (tagNames) { - tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' '); - var arr = [], me = this; - utils.each(tagNames, function (tagName) { - if (me.children && me.children.length) { - for (var i = 0, ci; ci = me.children[i++];) { - getNodesByTagName(ci, tagName, arr) - } - } - }); - return arr; - }, - - /** - * 根据样式名称,获取节点的样式值 - * @method getStyle - * @param { String } name 要获取的样式名称 - * @return { String } 返回样式值 - * @example - * ```javascript - * node.getStyle('font-size'); - * ``` - */ - getStyle:function (name) { - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - return '' - } - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+)','i'); - var match = cssStyle.match(reg); - if (match && match[0]) { - return match[2] - } - return ''; - }, - - /** - * 给节点设置样式 - * @method setStyle - * @param { String } name 要设置的的样式名称 - * @param { String } val 要设置的的样值 - * @example - * ```javascript - * node.setStyle('font-size', '12px'); - * ``` - */ - setStyle:function (name, val) { - function exec(name, val) { - var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+;?)', 'gi'); - cssStyle = cssStyle.replace(reg, '$1'); - if (val) { - cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle - } - - } - - var cssStyle = this.getAttr('style'); - if (!cssStyle) { - cssStyle = ''; - } - if (utils.isObject(name)) { - for (var a in name) { - exec(a, name[a]) - } - } else { - exec(name, val) - } - this.setAttr('style', utils.trim(cssStyle)) - }, - - /** - * 传入一个函数,递归遍历当前节点下的所有节点 - * @method traversal - * @param { Function } fn 遍历到节点的时,传入节点作为参数,运行此函数 - * @example - * ```javascript - * traversal(node, function(){ - * console.log(node.type); - * }); - * ``` - */ - traversal:function(fn){ - if(this.children && this.children.length){ - nodeTraversal(this,fn); - } - return this; - } - } -})(); - - -// core/htmlparser.js -/** - * html字符串转换成uNode节点 - * @file - * @module UE - * @since 1.2.6.1 - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @unfile - * @module UE - */ - -/** - * html字符串转换成uNode节点的静态方法 - * @method htmlparser - * @param { String } htmlstr 要转换的html代码 - * @param { Boolean } ignoreBlank 若设置为true,转换的时候忽略\n\r\t等空白字符 - * @return { uNode } 给定的html片段转换形成的uNode对象 - * @example - * ```javascript - * var root = UE.htmlparser('

    htmlparser

    ', true); - * ``` - */ - -var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { - //todo 原来的方式 [^"'<>\/] 有\/就不能配对上 ') - } - html.push('') - } - //禁止指定table-width - return '
    这样的标签了 - //先去掉了,加上的原因忘了,这里先记录 - var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, - re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g; - - //ie下取得的html可能会有\n存在,要去掉,在处理replace(/[\t\r\n]*/g,'');代码高量的\n不能去除 - var allowEmptyTags = { - b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1, - sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1 - }; - htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), ''); - if(!ignoreBlank){ - htmlstr = htmlstr.replace(new RegExp('[\\r\\t\\n'+(ignoreBlank?'':' ')+']*<\/?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n'+(ignoreBlank?'':' ')+']*','g'), function(a,b){ - //br暂时单独处理 - if(b && allowEmptyTags[b.toLowerCase()]){ - return a.replace(/(^[\n\r]+)|([\n\r]+$)/g,''); - } - return a.replace(new RegExp('^[\\r\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\r\\n'+(ignoreBlank?'':' ')+']+$'),''); - }); - } - - var notTransAttrs = { - 'href':1, - 'src':1 - }; - - var uNode = UE.uNode, - needParentNode = { - 'td':'tr', - 'tr':['tbody','thead','tfoot'], - 'tbody':'table', - 'th':'tr', - 'thead':'table', - 'tfoot':'table', - 'caption':'table', - 'li':['ul', 'ol'], - 'dt':'dl', - 'dd':'dl', - 'option':'select' - }, - needChild = { - 'ol':'li', - 'ul':'li' - }; - - function text(parent, data) { - - if(needChild[parent.tagName]){ - var tmpNode = uNode.createElement(needChild[parent.tagName]); - parent.appendChild(tmpNode); - tmpNode.appendChild(uNode.createText(data)); - parent = tmpNode; - }else{ - - parent.appendChild(uNode.createText(data)); - } - } - - function element(parent, tagName, htmlattr) { - var needParentTag; - if (needParentTag = needParentNode[tagName]) { - var tmpParent = parent,hasParent; - while(tmpParent.type != 'root'){ - if(utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag == tmpParent.tagName){ - parent = tmpParent; - hasParent = true; - break; - } - tmpParent = tmpParent.parentNode; - } - if(!hasParent){ - parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag) - } - } - //按dtd处理嵌套 -// if(parent.type != 'root' && !dtd[parent.tagName][tagName]) -// parent = parent.parentNode; - var elm = new uNode({ - parentNode:parent, - type:'element', - tagName:tagName.toLowerCase(), - //是自闭合的处理一下 - children:dtd.$empty[tagName] ? null : [] - }); - //如果属性存在,处理属性 - if (htmlattr) { - var attrs = {}, match; - while (match = re_attr.exec(htmlattr)) { - attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) : utils.unhtml(match[2] || match[3] || match[4]) - } - elm.attrs = attrs; - } - //trace:3970 -// //如果parent下不能放elm -// if(dtd.$inline[parent.tagName] && dtd.$block[elm.tagName] && !dtd[parent.tagName][elm.tagName]){ -// parent = parent.parentNode; -// elm.parentNode = parent; -// } - parent.children.push(elm); - //如果是自闭合节点返回父亲节点 - return dtd.$empty[tagName] ? parent : elm - } - - function comment(parent, data) { - parent.children.push(new uNode({ - type:'comment', - data:data, - parentNode:parent - })); - } - - var match, currentIndex = 0, nextIndex = 0; - //设置根节点 - var root = new uNode({ - type:'root', - children:[] - }); - var currentParent = root; - - while (match = re_tag.exec(htmlstr)) { - currentIndex = match.index; - try{ - if (currentIndex > nextIndex) { - //text node - text(currentParent, htmlstr.slice(nextIndex, currentIndex)); - } - if (match[3]) { - - if(dtd.$cdata[currentParent.tagName]){ - text(currentParent, match[0]); - }else{ - //start tag - currentParent = element(currentParent, match[3].toLowerCase(), match[4]); - } - - - } else if (match[1]) { - if(currentParent.type != 'root'){ - if(dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]){ - text(currentParent, match[0]); - }else{ - var tmpParent = currentParent; - while(currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()){ - currentParent = currentParent.parentNode; - if(currentParent.type == 'root'){ - currentParent = tmpParent; - throw 'break' - } - } - //end tag - currentParent = currentParent.parentNode; - } - - } - - } else if (match[2]) { - //comment - comment(currentParent, match[2]) - } - }catch(e){} - - nextIndex = re_tag.lastIndex; - - } - //如果结束是文本,就有可能丢掉,所以这里手动判断一下 - //例如
  • sdfsdfsdf
  • sdfsdfsdfsdf - if (nextIndex < htmlstr.length) { - text(currentParent, htmlstr.slice(nextIndex)); - } - return root; -}; - - -// core/filternode.js -/** - * UE过滤节点的静态方法 - * @file - */ - -/** - * UEditor公用空间,UEditor所有的功能都挂载在该空间下 - * @module UE - */ - - -/** - * 根据传入节点和过滤规则过滤相应节点 - * @module UE - * @since 1.2.6.1 - * @method filterNode - * @param { Object } root 指定root节点 - * @param { Object } rules 过滤规则json对象 - * @example - * ```javascript - * UE.filterNode(root,editor.options.filterRules); - * ``` - */ -var filterNode = UE.filterNode = function () { - function filterNode(node,rules){ - switch (node.type) { - case 'text': - break; - case 'element': - var val; - if(val = rules[node.tagName]){ - if(val === '-'){ - node.parentNode.removeChild(node) - }else if(utils.isFunction(val)){ - var parentNode = node.parentNode, - index = node.getIndex(); - val(node); - if(node.parentNode){ - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - }else{ - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - - - }else{ - var attrs = val['$']; - if(attrs && node.attrs){ - var tmpAttrs = {},tmpVal; - for(var a in attrs){ - tmpVal = node.getAttr(a); - //todo 只先对style单独处理 - if(a == 'style' && utils.isArray(attrs[a])){ - var tmpCssStyle = []; - utils.each(attrs[a],function(v){ - var tmp; - if(tmp = node.getStyle(v)){ - tmpCssStyle.push(v + ':' + tmp); - } - }); - tmpVal = tmpCssStyle.join(';') - } - if(tmpVal){ - tmpAttrs[a] = tmpVal; - } - - } - node.attrs = tmpAttrs; - } - if(node.children){ - for(var i = 0,ci;ci=node.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - }else{ - //如果不在名单里扣出子节点并删除该节点,cdata除外 - if(dtd.$cdata[node.tagName]){ - node.parentNode.removeChild(node) - }else{ - var parentNode = node.parentNode, - index = node.getIndex(); - node.parentNode.removeChild(node,true); - for(var i = index,ci;ci=parentNode.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - } - } - break; - case 'comment': - node.parentNode.removeChild(node) - } - - } - return function(root,rules){ - if(utils.isEmptyObject(rules)){ - return root; - } - var val; - if(val = rules['-']){ - utils.each(val.split(' '),function(k){ - rules[k] = '-' - }) - } - for(var i= 0,ci;ci=root.children[i];){ - filterNode(ci,rules); - if(ci.parentNode){ - i++; - } - } - return root; - } -}(); - -// core/plugin.js -/** - * Created with JetBrains PhpStorm. - * User: campaign - * Date: 10/8/13 - * Time: 6:15 PM - * To change this template use File | Settings | File Templates. - */ -UE.plugin = function(){ - var _plugins = {}; - return { - register : function(pluginName,fn,oldOptionName,afterDisabled){ - if(oldOptionName && utils.isFunction(oldOptionName)){ - afterDisabled = oldOptionName; - oldOptionName = null - } - _plugins[pluginName] = { - optionName : oldOptionName || pluginName, - execFn : fn, - //当插件被禁用时执行 - afterDisabled : afterDisabled - } - }, - load : function(editor){ - utils.each(_plugins,function(plugin){ - var _export = plugin.execFn.call(editor); - if(editor.options[plugin.optionName] !== false){ - if(_export){ - //后边需要再做扩展 - utils.each(_export,function(v,k){ - switch(k.toLowerCase()){ - case 'shortcutkey': - editor.addshortcutkey(v); - break; - case 'bindevents': - utils.each(v,function(fn,eventName){ - editor.addListener(eventName,fn); - }); - break; - case 'bindmultievents': - utils.each(utils.isArray(v) ? v:[v],function(event){ - var types = utils.trim(event.type).split(/\s+/); - utils.each(types,function(eventName){ - editor.addListener(eventName, event.handler); - }); - }); - break; - case 'commands': - utils.each(v,function(execFn,execName){ - editor.commands[execName] = execFn - }); - break; - case 'outputrule': - editor.addOutputRule(v); - break; - case 'inputrule': - editor.addInputRule(v); - break; - case 'defaultoptions': - editor.setOpt(v) - } - }) - } - - }else if(plugin.afterDisabled){ - plugin.afterDisabled.call(editor) - } - - }); - //向下兼容 - utils.each(UE.plugins,function(plugin){ - plugin.call(editor); - }); - }, - run : function(pluginName,editor){ - var plugin = _plugins[pluginName]; - if(plugin){ - plugin.exeFn.call(editor) - } - } - } -}(); - -// core/keymap.js -var keymap = UE.keymap = { - 'Backspace' : 8, - 'Tab' : 9, - 'Enter' : 13, - - 'Shift':16, - 'Control':17, - 'Alt':18, - 'CapsLock':20, - - 'Esc':27, - - 'Spacebar':32, - - 'PageUp':33, - 'PageDown':34, - 'End':35, - 'Home':36, - - 'Left':37, - 'Up':38, - 'Right':39, - 'Down':40, - - 'Insert':45, - - 'Del':46, - - 'NumLock':144, - - 'Cmd':91, - - '=':187, - '-':189, - - "b":66, - 'i':73, - //回退 - 'z':90, - 'y':89, - //粘贴 - 'v' : 86, - 'x' : 88, - - 's' : 83, - - 'n' : 78 -}; - -// core/localstorage.js -//存储媒介封装 -var LocalStorage = UE.LocalStorage = (function () { - - var storage = window.localStorage || getUserData() || null, - LOCAL_FILE = 'localStorage'; - - return { - - saveLocalData: function (key, data) { - - if (storage && data) { - storage.setItem(key, data); - return true; - } - - return false; - - }, - - getLocalData: function (key) { - - if (storage) { - return storage.getItem(key); - } - - return null; - - }, - - removeItem: function (key) { - - storage && storage.removeItem(key); - - } - - }; - - function getUserData() { - - var container = document.createElement("div"); - container.style.display = "none"; - - if (!container.addBehavior) { - return null; - } - - container.addBehavior("#default#userdata"); - - return { - - getItem: function (key) { - - var result = null; - - try { - document.body.appendChild(container); - container.load(LOCAL_FILE); - result = container.getAttribute(key); - document.body.removeChild(container); - } catch (e) { - } - - return result; - - }, - - setItem: function (key, value) { - - document.body.appendChild(container); - container.setAttribute(key, value); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - }, - - //// 暂时没有用到 - //clear: function () { - // - // var expiresTime = new Date(); - // expiresTime.setFullYear(expiresTime.getFullYear() - 1); - // document.body.appendChild(container); - // container.expires = expiresTime.toUTCString(); - // container.save(LOCAL_FILE); - // document.body.removeChild(container); - // - //}, - - removeItem: function (key) { - - document.body.appendChild(container); - container.removeAttribute(key); - container.save(LOCAL_FILE); - document.body.removeChild(container); - - } - - }; - - } - -})(); - -(function () { - - var ROOTKEY = 'ueditor_preference'; - - UE.Editor.prototype.setPreferences = function(key,value){ - var obj = {}; - if (utils.isString(key)) { - obj[ key ] = value; - } else { - obj = key; - } - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - utils.extend(data, obj); - } else { - data = obj; - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - - UE.Editor.prototype.getPreferences = function(key){ - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - return key ? data[key] : data - } - return null; - }; - - UE.Editor.prototype.removePreferences = function (key) { - var data = LocalStorage.getLocalData(ROOTKEY); - if (data && (data = utils.str2json(data))) { - data[key] = undefined; - delete data[key] - } - data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); - }; - -})(); - - -// plugins/defaultfilter.js -///import core -///plugin 编辑器默认的过滤转换机制 - -UE.plugins['defaultfilter'] = function () { - var me = this; - me.setOpt({ - 'allowDivTransToP':true, - 'disabledTableInTable':true - }); - //默认的过滤处理 - //进入编辑器的内容处理 - me.addInputRule(function (root) { - var allowDivTransToP = this.options.allowDivTransToP; - var val; - function tdParent(node){ - while(node && node.type == 'element'){ - if(node.tagName == 'td'){ - return true; - } - node = node.parentNode; - } - return false; - } - //进行默认的处理 - root.traversal(function (node) { - if (node.type == 'element') { - if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'style': - case 'script': - node.setAttr({ - cdata_tag: node.tagName, - cdata_data: (node.innerHTML() || ''), - '_ue_custom_node_':'true' - }); - node.tagName = 'div'; - node.innerHTML(''); - break; - case 'a': - if (val = node.getAttr('href')) { - node.setAttr('_href', val) - } - break; - case 'img': - //todo base64暂时去掉,后边做远程图片上传后,干掉这个 - if (val = node.getAttr('src')) { - if (/^data:/.test(val)) { - node.parentNode.removeChild(node); - break; - } - } - node.setAttr('_src', node.getAttr('src')); - break; - case 'span': - if (browser.webkit && (val = node.getStyle('white-space'))) { - if (/nowrap|normal/.test(val)) { - node.setStyle('white-space', ''); - if (me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs)) { - node.parentNode.removeChild(node, true) - } - } - } - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'p': - if (val = node.getAttr('align')) { - node.setAttr('align'); - node.setStyle('text-align', val) - } - //trace:3431 -// var cssStyle = node.getAttr('style'); -// if (cssStyle) { -// cssStyle = cssStyle.replace(/(margin|padding)[^;]+/g, ''); -// node.setAttr('style', cssStyle) -// -// } - //p标签不允许嵌套 - utils.each(node.children,function(n){ - if(n.type == 'element' && n.tagName == 'p'){ - var next = n.nextSibling(); - node.parentNode.insertAfter(n,node); - var last = n; - while(next){ - var tmp = next.nextSibling(); - node.parentNode.insertAfter(next,last); - last = next; - next = tmp; - } - return false; - } - }); - if (!node.firstChild()) { - node.innerHTML(browser.ie ? ' ' : '
    ') - } - break; - case 'div': - if(node.getAttr('cdata_tag')){ - break; - } - //针对代码这里不处理插入代码的div - val = node.getAttr('class'); - if(val && /^line number\d+/.test(val)){ - break; - } - if(!allowDivTransToP){ - break; - } - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - break; - case 'dl': - node.tagName = 'ul'; - break; - case 'dt': - case 'dd': - node.tagName = 'li'; - break; - case 'li': - var className = node.getAttr('class'); - if (!className || !/list\-/.test(className)) { - node.setAttr() - } - var tmpNodes = node.getNodesByTagName('ol ul'); - UE.utils.each(tmpNodes, function (n) { - node.parentNode.insertAfter(n, node); - }); - break; - case 'td': - case 'th': - case 'caption': - if(!node.children || !node.children.length){ - node.appendChild(browser.ie11below ? UE.uNode.createText(' ') : UE.uNode.createElement('br')) - } - break; - case 'table': - if(me.options.disabledTableInTable && tdParent(node)){ - node.parentNode.insertBefore(UE.uNode.createText(node.innerText()),node); - node.parentNode.removeChild(node) - } - } - - } -// if(node.type == 'comment'){ -// node.parentNode.removeChild(node); -// } - }) - - }); - - //从编辑器出去的内容处理 - me.addOutputRule(function (root) { - - var val; - root.traversal(function (node) { - if (node.type == 'element') { - - if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { - - if (!node.firstChild()) node.parentNode.removeChild(node); - else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { - node.parentNode.removeChild(node, true) - } - return; - } - switch (node.tagName) { - case 'div': - if (val = node.getAttr('cdata_tag')) { - node.tagName = val; - node.appendChild(UE.uNode.createText(node.getAttr('cdata_data'))); - node.setAttr({cdata_tag: '', cdata_data: '','_ue_custom_node_':''}); - } - break; - case 'a': - if (val = node.getAttr('_href')) { - node.setAttr({ - 'href': utils.html(val), - '_href': '' - }) - } - break; - break; - case 'span': - val = node.getAttr('id'); - if(val && /^_baidu_bookmark_/i.test(val)){ - node.parentNode.removeChild(node) - } - break; - case 'img': - if (val = node.getAttr('_src')) { - node.setAttr({ - 'src': node.getAttr('_src'), - '_src': '' - }) - } - - - } - } - - }) - - - }); -}; - - -// plugins/inserthtml.js -/** - * 插入html字符串插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入html代码 - * @command inserthtml - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } html 插入的html字符串 - * @remaind 插入的标签内容是在当前的选区位置上插入,如果当前是闭合状态,那直接插入内容, 如果当前是选中状态,将先清除当前选中内容后,再做插入 - * @warning 注意:该命令会对当前选区的位置,对插入的内容进行过滤转换处理。 过滤的规则遵循html语意化的原则。 - * @example - * ```javascript - * //xxx[BB]xxx 当前选区为非闭合选区,选中BB这两个文本 - * //执行命令,插入CC - * //插入后的效果 xxxCCxxx - * //

    xx|xxx

    当前选区为闭合状态 - * //插入

    CC

    - * //结果

    xx

    CC

    xxx

    - * //

    xxxx

    |

    xxx

    当前选区在两个p标签之间 - * //插入 xxxx - * //结果

    xxxx

    xxxx

    xxx

    - * ``` - */ - -UE.commands['inserthtml'] = { - execCommand: function (command,html,notNeedFilter){ - var me = this, - range, - div; - if(!html){ - return; - } - if(me.fireEvent('beforeinserthtml',html) === true){ - return; - } - range = me.selection.getRange(); - div = range.document.createElement( 'div' ); - div.style.display = 'inline'; - - if (!notNeedFilter) { - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if(me.options.filterRules){ - UE.filterNode(root,me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - html = root.toHtml() - } - div.innerHTML = utils.trim( html ); - - if ( !range.collapsed ) { - var tmpNode = range.startContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setStartBefore(tmpNode) - } - tmpNode = range.endContainer; - if(domUtils.isFillChar(tmpNode)){ - range.setEndAfter(tmpNode) - } - range.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(range.endContainer && range.endContainer.nodeType == 1){ - tmpNode = range.endContainer.childNodes[range.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - range.setEndAfter(tmpNode); - } - } - if(range.startOffset == 0){ - tmpNode = range.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = range.endContainer; - if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - range.setStart(me.body.firstChild,0).collapse(true) - - } - } - } - !range.collapsed && range.deleteContents(); - if(range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset],pre; - if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){ - range.setEnd(pre,pre.childNodes.length).collapse(); - while(child.firstChild){ - pre.appendChild(child.firstChild); - } - domUtils.remove(child); - } - } - - } - - - var child,parent,pre,tmp,hadBreak = 0, nextNode; - //如果当前位置选中了fillchar要干掉,要不会产生空行 - if(range.inFillChar()){ - child = range.startContainer; - if(domUtils.isFillChar(child)){ - range.setStartBefore(child).collapse(true); - domUtils.remove(child); - }else if(domUtils.isFillChar(child,true)){ - child.nodeValue = child.nodeValue.replace(fillCharReg,''); - range.startOffset--; - range.collapsed && range.collapse(true) - } - } - //列表单独处理 - var li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(li){ - var next,last; - while(child = div.firstChild){ - //针对hr单独处理一下先 - while(child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName=='HR' )){ - next = child.nextSibling; - range.insertNode( child).collapse(); - last = child; - child = next; - - } - if(child){ - if(/^(ol|ul)$/i.test(child.tagName)){ - while(child.firstChild){ - last = child.firstChild; - domUtils.insertAfter(li,child.firstChild); - li = li.nextSibling; - } - domUtils.remove(child) - }else{ - var tmpLi; - next = child.nextSibling; - tmpLi = me.document.createElement('li'); - domUtils.insertAfter(li,tmpLi); - tmpLi.appendChild(child); - last = child; - child = next; - li = tmpLi; - } - } - } - li = domUtils.findParentByTagName(range.startContainer,'li',true); - if(domUtils.isEmptyBlock(li)){ - domUtils.remove(li) - } - if(last){ - - range.setStartAfter(last).collapse(true).select(true) - } - }else{ - while ( child = div.firstChild ) { - if(hadBreak){ - var p = me.document.createElement('p'); - while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){ - nextNode = child.nextSibling; - p.appendChild(child); - child = nextNode; - } - if(p.firstChild){ - - child = p - } - } - range.insertNode( child ); - nextNode = child.nextSibling; - if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){ - - parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } ); - if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){ - if(!dtd[parent.tagName][child.nodeName]){ - pre = parent; - }else{ - tmp = child.parentNode; - while (tmp !== parent){ - pre = tmp; - tmp = tmp.parentNode; - - } - } - - - domUtils.breakParent( child, pre || tmp ); - //去掉break后前一个多余的节点

    |<[p> ==>

    |

    - var pre = child.previousSibling; - domUtils.trimWhiteTextNode(pre); - if(!pre.childNodes.length){ - domUtils.remove(pre); - } - //trace:2012,在非ie的情况,切开后剩下的节点有可能不能点入光标添加br占位 - - if(!browser.ie && - (next = child.nextSibling) && - domUtils.isBlockElm(next) && - next.lastChild && - !domUtils.isBr(next.lastChild)){ - next.appendChild(me.document.createElement('br')); - } - hadBreak = 1; - } - } - var next = child.nextSibling; - if(!div.firstChild && next && domUtils.isBlockElm(next)){ - - range.setStart(next,0).collapse(true); - break; - } - range.setEndAfter( child ).collapse(); - - } - - child = range.startContainer; - - if(nextNode && domUtils.isBr(nextNode)){ - domUtils.remove(nextNode) - } - //用chrome可能有空白展位符 - if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){ - if(nextNode = child.nextSibling){ - domUtils.remove(child); - if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){ - - range.setStart(nextNode,0).collapse(true).shrinkBoundary() - } - }else{ - - try{ - child.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - }catch(e){ - range.setStartBefore(child); - domUtils.remove(child) - } - - } - - } - //加上true因为在删除表情等时会删两次,第一次是删的fillData - try{ - range.select(true); - }catch(e){} - - } - - - - setTimeout(function(){ - range = me.selection.getRange(); - range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled ? domUtils.getXY(me.iframe).y:0); - me.fireEvent('afterinserthtml', html); - },200); - } -}; - - -// plugins/autotypeset.js -/** - * 自动排版 - * @file - * @since 1.2.6.1 - */ - -/** - * 对当前编辑器的内容执行自动排版, 排版的行为根据config配置文件里的“autotypeset”选项进行控制。 - * @command autotypeset - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autotypeset' ); - * ``` - */ - -UE.plugins['autotypeset'] = function(){ - - this.setOpt({'autotypeset': { - mergeEmptyline: true, //合并空行 - removeClass: true, //去掉冗余的class - removeEmptyline: false, //去掉空行 - textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - removeEmptyNode: false, // 去掉空节点 - //可以去掉的标签 - removeTagNames: utils.extend({div:1},dtd.$removeEmpty), - indent: false, // 行首缩进 - indentValue : '2em', //行首缩进的大小 - bdc2sb: false, - tobdc: false - }}); - - var me = this, - opt = me.options.autotypeset, - remainClass = { - 'selectTdClass':1, - 'pagebreak':1, - 'anchorclass':1 - }, - remainTag = { - 'li':1 - }, - tags = { - div:1, - p:1, - //trace:2183 这些也认为是行 - blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1, - span:1 - }, - highlightCont; - //升级了版本,但配置项目里没有autotypeset - if(!opt){ - return; - } - - readLocalOpts(); - - function isLine(node,notEmpty){ - if(!node || node.nodeType == 3) - return 0; - if(domUtils.isBr(node)) - return 1; - if(node && node.parentNode && tags[node.tagName.toLowerCase()]){ - if(highlightCont && highlightCont.contains(node) - || - node.getAttribute('pagebreak') - ){ - return 0; - } - - return notEmpty ? !domUtils.isEmptyBlock(node) : domUtils.isEmptyBlock(node,new RegExp('[\\s'+domUtils.fillChar - +']','g')); - } - } - - function removeNotAttributeSpan(node){ - if(!node.style.cssText){ - domUtils.removeAttributes(node,['style']); - if(node.tagName.toLowerCase() == 'span' && domUtils.hasNoAttributes(node)){ - domUtils.remove(node,true); - } - } - } - function autotype(type,html){ - - var me = this,cont; - if(html){ - if(!opt.pasteFilter){ - return; - } - cont = me.document.createElement('div'); - cont.innerHTML = html.html; - }else{ - cont = me.document.body; - } - var nodes = domUtils.getElementsByTagName(cont,'*'); - - // 行首缩进,段落方向,段间距,段内间距 - for(var i=0,ci;ci=nodes[i++];){ - - if(me.fireEvent('excludeNodeinautotype',ci) === true){ - continue; - } - //font-size - if(opt.clearFontSize && ci.style.fontSize){ - domUtils.removeStyle(ci,'font-size'); - - removeNotAttributeSpan(ci); - - } - //font-family - if(opt.clearFontFamily && ci.style.fontFamily){ - domUtils.removeStyle(ci,'font-family'); - removeNotAttributeSpan(ci); - } - - if(isLine(ci)){ - //合并空行 - if(opt.mergeEmptyline ){ - var next = ci.nextSibling,tmpNode,isBr = domUtils.isBr(ci); - while(isLine(next)){ - tmpNode = next; - next = tmpNode.nextSibling; - if(isBr && (!next || next && !domUtils.isBr(next))){ - break; - } - domUtils.remove(tmpNode); - } - - } - //去掉空行,保留占位的空行 - if(opt.removeEmptyline && domUtils.inDoc(ci,cont) && !remainTag[ci.parentNode.tagName.toLowerCase()] ){ - if(domUtils.isBr(ci)){ - next = ci.nextSibling; - if(next && !domUtils.isBr(next)){ - continue; - } - } - domUtils.remove(ci); - continue; - - } - - } - if(isLine(ci,true) && ci.tagName != 'SPAN'){ - if(opt.indent){ - ci.style.textIndent = opt.indentValue; - } - if(opt.textAlign){ - ci.style.textAlign = opt.textAlign; - } - // if(opt.lineHeight) - // ci.style.lineHeight = opt.lineHeight + 'cm'; - - } - - //去掉class,保留的class不去掉 - if(opt.removeClass && ci.className && !remainClass[ci.className.toLowerCase()]){ - - if(highlightCont && highlightCont.contains(ci)){ - continue; - } - domUtils.removeAttributes(ci,['class']); - } - - //表情不处理 - if(opt.imageBlockLine && ci.tagName.toLowerCase() == 'img' && !ci.getAttribute('emotion')){ - if(html){ - var img = ci; - switch (opt.imageBlockLine){ - case 'left': - case 'right': - case 'none': - var pN = img.parentNode,tmpNode,pre,next; - while(dtd.$inline[pN.tagName] || pN.tagName == 'A'){ - pN = pN.parentNode; - } - tmpNode = pN; - if(tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode,'text-align') == 'center'){ - if(!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1){ - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if(pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)){ - pre.appendChild(tmpNode.firstChild); - while(next.firstChild){ - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - }else{ - domUtils.setStyle(tmpNode,'text-align',''); - } - - - } - - - } - domUtils.setStyle(img,'float', opt.imageBlockLine); - break; - case 'center': - if(me.queryCommandValue('imagefloat') != 'center'){ - pN = img.parentNode; - domUtils.setStyle(img,'float','none'); - tmpNode = img; - while(pN && domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')){ - tmpNode = pN; - pN = pN.parentNode; - } - var pNode = me.document.createElement('p'); - domUtils.setAttributes(pNode,{ - - style:'text-align:center' - }); - tmpNode.parentNode.insertBefore(pNode,tmpNode); - pNode.appendChild(tmpNode); - domUtils.setStyle(tmpNode,'float',''); - - } - - - } - } else { - var range = me.selection.getRange(); - range.selectNode(ci).select(); - me.execCommand('imagefloat', opt.imageBlockLine); - } - - } - - //去掉冗余的标签 - if(opt.removeEmptyNode){ - if(opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(ci)){ - domUtils.remove(ci); - } - } - } - if(opt.tobdc){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = ToDBC(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(opt.bdc2sb){ - var root = UE.htmlparser(cont.innerHTML); - root.traversal(function(node){ - if(node.type == 'text'){ - node.data = DBC2SB(node.data) - } - }); - cont.innerHTML = root.toHtml() - } - if(html){ - html.html = cont.innerHTML; - } - } - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - - function DBC2SB(str) { - var result = ''; - for (var i = 0; i < str.length; i++) { - var code = str.charCodeAt(i); //获取当前字符的unicode编码 - if (code >= 65281 && code <= 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符 - { - result += String.fromCharCode(str.charCodeAt(i) - 65248); //把全角字符的unicode编码转换为对应半角字符的unicode码 - } else if (code == 12288)//空格 - { - result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32); - } else { - result += str.charAt(i); - } - } - return result; - } - function ToDBC(txtstring) { - txtstring = utils.html(txtstring); - var tmp = ""; - var mark = "";/*用于判断,如果是html尖括里的标记,则不进行全角的转换*/ - for (var i = 0; i < txtstring.length; i++) { - if (txtstring.charCodeAt(i) == 32) { - tmp = tmp + String.fromCharCode(12288); - } - else if (txtstring.charCodeAt(i) < 127) { - tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248); - } - else { - tmp += txtstring.charAt(i); - } - } - return tmp; - } - - function readLocalOpts() { - var cookieOpt = me.getPreferences('autotypeset'); - utils.extend(me.options.autotypeset, cookieOpt); - } - - me.commands['autotypeset'] = { - execCommand:function () { - me.removeListener('beforepaste',autotype); - if(opt.pasteFilter){ - me.addListener('beforepaste',autotype); - } - autotype.call(me) - } - - }; - -}; - - - -// plugins/autosubmit.js -/** - * 快捷键提交 - * @file - * @since 1.2.6.1 - */ - -/** - * 提交表单 - * @command autosubmit - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'autosubmit' ); - * ``` - */ - -UE.plugin.register('autosubmit',function(){ - return { - shortcutkey:{ - "autosubmit":"ctrl+13" //手动提交 - }, - commands:{ - 'autosubmit':{ - execCommand:function () { - var me=this, - form = domUtils.findParentByTagName(me.iframe,"form", false); - if (form){ - if(me.fireEvent("beforesubmit")===false){ - return; - } - me.sync(); - form.submit(); - } - } - } - } - } -}); - -// plugins/background.js -/** - * 背景插件,为UEditor提供设置背景功能 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('background', function () { - var me = this, - cssRuleId = 'editor_background', - isSetColored, - reg = new RegExp('body[\\s]*\\{(.+)\\}', 'i'); - - function stringToObj(str) { - var obj = {}, styles = str.split(';'); - utils.each(styles, function (v) { - var index = v.indexOf(':'), - key = utils.trim(v.substr(0, index)).toLowerCase(); - key && (obj[key] = utils.trim(v.substr(index + 1) || '')); - }); - return obj; - } - - function setBackground(obj) { - if (obj) { - var styles = []; - for (var name in obj) { - if (obj.hasOwnProperty(name)) { - styles.push(name + ":" + obj[name] + '; '); - } - } - utils.cssRule(cssRuleId, styles.length ? ('body{' + styles.join("") + '}') : '', me.document); - } else { - utils.cssRule(cssRuleId, '', me.document) - } - } - //重写editor.hasContent方法 - - var orgFn = me.hasContents; - me.hasContents = function(){ - if(me.queryCommandValue('background')){ - return true - } - return orgFn.apply(me,arguments); - }; - return { - bindEvents: { - 'getAllHtml': function (type, headHtml) { - var body = this.body, - su = domUtils.getComputedStyle(body, "background-image"), - url = ""; - if (su.indexOf(me.options.imagePath) > 0) { - url = su.substring(su.indexOf(me.options.imagePath), su.length - 1).replace(/"|\(|\)/ig, ""); - } else { - url = su != "none" ? su.replace(/url\("?|"?\)/ig, "") : ""; - } - var html = ' '; - headHtml.push(html); - }, - 'aftersetcontent': function () { - if(isSetColored == false) setBackground(); - } - }, - inputRule: function (root) { - isSetColored = false; - utils.each(root.getNodesByTagName('p'), function (p) { - var styles = p.getAttr('data-background'); - if (styles) { - isSetColored = true; - setBackground(stringToObj(styles)); - p.parentNode.removeChild(p); - } - }) - }, - outputRule: function (root) { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - if (styles) { - root.appendChild(UE.uNode.createElement('


    ')); - } - }, - commands: { - 'background': { - execCommand: function (cmd, obj) { - setBackground(obj); - }, - queryCommandValue: function () { - var me = this, - styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg); - return styles ? stringToObj(styles[1]) : null; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/image.js -/** - * 图片插入、排版插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 图片对齐方式 - * @command imagefloat - * @method execCommand - * @remind 值center为独占一行居中 - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式,可传left、right、none、center - * @remaind center表示图片独占一行 - * @example - * ```javascript - * editor.execCommand( 'imagefloat', 'center' ); - * ``` - */ - -/** - * 如果选区所在位置是图片区域 - * @command imagefloat - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回图片对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'imagefloat' ); - * ``` - */ - -UE.commands['imagefloat'] = { - execCommand:function (cmd, align) { - var me = this, - range = me.selection.getRange(); - if (!range.collapsed) { - var img = range.getClosedNode(); - if (img && img.tagName == 'IMG') { - switch (align) { - case 'left': - case 'right': - case 'none': - var pN = img.parentNode, tmpNode, pre, next; - while (dtd.$inline[pN.tagName] || pN.tagName == 'A') { - pN = pN.parentNode; - } - tmpNode = pN; - if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') { - if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1) { - pre = tmpNode.previousSibling; - next = tmpNode.nextSibling; - if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)) { - pre.appendChild(tmpNode.firstChild); - while (next.firstChild) { - pre.appendChild(next.firstChild); - } - domUtils.remove(tmpNode); - domUtils.remove(next); - } else { - domUtils.setStyle(tmpNode, 'text-align', ''); - } - - - } - - range.selectNode(img).select(); - } - domUtils.setStyle(img, 'float', align == 'none' ? '' : align); - if(align == 'none'){ - domUtils.removeAttributes(img,'align'); - } - - break; - case 'center': - if (me.queryCommandValue('imagefloat') != 'center') { - pN = img.parentNode; - domUtils.setStyle(img, 'float', ''); - domUtils.removeAttributes(img,'align'); - tmpNode = img; - while (pN && domUtils.getChildCount(pN, function (node) { - return !domUtils.isBr(node) && !domUtils.isWhitespace(node); - }) == 1 - && (dtd.$inline[pN.tagName] || pN.tagName == 'A')) { - tmpNode = pN; - pN = pN.parentNode; - } - range.setStartBefore(tmpNode).setCursor(false); - pN = me.document.createElement('div'); - pN.appendChild(tmpNode); - domUtils.setStyle(tmpNode, 'float', ''); - - me.execCommand('insertHtml', '

    ' + pN.innerHTML + '

    '); - - tmpNode = me.document.getElementById('_img_parent_tmp'); - tmpNode.removeAttribute('id'); - tmpNode = tmpNode.firstChild; - range.selectNode(tmpNode).select(); - //去掉后边多余的元素 - next = tmpNode.parentNode.nextSibling; - if (next && domUtils.isEmptyNode(next)) { - domUtils.remove(next); - } - - } - - break; - } - - } - } - }, - queryCommandValue:function () { - var range = this.selection.getRange(), - startNode, floatStyle; - if (range.collapsed) { - return 'none'; - } - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - floatStyle = domUtils.getComputedStyle(startNode, 'float') || startNode.getAttribute('align'); - - if (floatStyle == 'none') { - floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' : floatStyle; - } - return { - left:1, - right:1, - center:1 - }[floatStyle] ? floatStyle : 'none'; - } - return 'none'; - - - }, - queryCommandState:function () { - var range = this.selection.getRange(), - startNode; - - if (range.collapsed) return -1; - - startNode = range.getClosedNode(); - if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') { - return 0; - } - return -1; - } -}; - - -/** - * 插入图片 - * @command insertimage - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } opt 属性键值对,这些属性都将被复制到当前插入图片 - * @remind 该命令第二个参数可接受一个图片配置项对象的数组,可以插入多张图片, - * 此时数组的每一个元素都是一个Object类型的图片属性集合。 - * @example - * ```javascript - * editor.execCommand( 'insertimage', { - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * } ); - * ``` - * @example - * ```javascript - * editor.execCommand( 'insertimage', [{ - * src:'a/b/c.jpg', - * width:'100', - * height:'100' - * },{ - * src:'a/b/d.jpg', - * width:'100', - * height:'100' - * }] ); - * ``` - */ - -UE.commands['insertimage'] = { - execCommand:function (cmd, opt) { - - opt = utils.isArray(opt) ? opt : [opt]; - if (!opt.length) { - return; - } - var me = this, - range = me.selection.getRange(), - img = range.getClosedNode(); - - if(me.fireEvent('beforeinsertimage', opt) === true){ - return; - } - - function unhtmlData(imgCi) { - - utils.each('width,height,border,hspace,vspace'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = parseInt(imgCi[item], 10) || 0; - } - }); - - utils.each('src,_src'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtmlForUrl(imgCi[item]); - } - }); - utils.each('title,alt'.split(','), function (item) { - - if (imgCi[item]) { - imgCi[item] = utils.unhtml(imgCi[item]); - } - }); - } - - if (img && /img/i.test(img.tagName) && (img.className != "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1) && !img.getAttribute("word_img")) { - var first = opt.shift(); - var floatStyle = first['floatStyle']; - delete first['floatStyle']; -//// img.style.border = (first.border||0) +"px solid #000"; -//// img.style.margin = (first.margin||0) +"px"; -// img.style.cssText += ';margin:' + (first.margin||0) +"px;" + 'border:' + (first.border||0) +"px solid #000"; - domUtils.setAttributes(img, first); - me.execCommand('imagefloat', floatStyle); - if (opt.length > 0) { - range.setStartAfter(img).setCursor(false, true); - me.execCommand('insertimage', opt); - } - - } else { - var html = [], str = '', ci; - ci = opt[0]; - if (opt.length == 1) { - unhtmlData(ci); - - str = '' + ci.alt + ''; - if (ci['floatStyle'] == 'center') { - str = '

    ' + str + '

    '; - } - html.push(str); - - } else { - for (var i = 0; ci = opt[i++];) { - unhtmlData(ci); - str = '

    '; - html.push(str); - } - } - - me.execCommand('insertHtml', html.join('')); - } - - me.fireEvent('afterinsertimage', opt) - } -}; - - -// plugins/justify.js -/** - * 段落格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落对齐方式 - * @command justify - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } align 对齐方式:left => 居左,right => 居右,center => 居中,justify => 两端对齐 - * @example - * ```javascript - * editor.execCommand( 'justify', 'center' ); - * ``` - */ -/** - * 如果选区所在位置是段落区域,返回当前段落对齐方式 - * @command justify - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回段落对齐方式 - * @example - * ```javascript - * editor.queryCommandValue( 'justify' ); - * ``` - */ - -UE.plugins['justify']=function(){ - var me=this, - block = domUtils.isBlockElm, - defaultValue = { - left:1, - right:1, - center:1, - justify:1 - }, - doJustify = function (range, style) { - var bookmark = range.createBookmark(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }; - - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode; - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - if (current.nodeType == 3 || !block(current)) { - tmpRange.setStartBefore(current); - while (current && current !== bookmark2.end && !block(current)) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !block(node); - }); - } - tmpRange.setEndAfter(tmpNode); - var common = tmpRange.getCommonAncestor(); - if (!domUtils.isBody(common) && block(common)) { - domUtils.setStyles(common, utils.isString(style) ? {'text-align':style} : style); - current = common; - } else { - var p = range.document.createElement('p'); - domUtils.setStyles(p, utils.isString(style) ? {'text-align':style} : style); - var frag = tmpRange.extractContents(); - p.appendChild(frag); - tmpRange.insertNode(p); - current = p; - } - current = domUtils.getNextDomNode(current, false, filterFn); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); - }; - - UE.commands['justify'] = { - execCommand:function (cmdName, align) { - var range = this.selection.getRange(), - txt; - - //闭合时单独处理 - if (range.collapsed) { - txt = this.document.createTextNode('p'); - range.insertNode(txt); - } - doJustify(range, align); - if (txt) { - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - - - return true; - }, - queryCommandValue:function () { - var startNode = this.selection.getStart(), - value = domUtils.getComputedStyle(startNode, 'text-align'); - return defaultValue[value] ? value : 'left'; - }, - queryCommandState:function () { - var start = this.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th","caption"], true); - - return cell? -1:0; - } - - }; -}; - - -// plugins/font.js -/** - * 字体颜色,背景色,字号,字体,下划线,删除线 - * @file - * @since 1.2.6.1 - */ - -/** - * 字体颜色 - * @command forecolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'forecolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command forecolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'forecolor' ); - * ``` - */ - -/** - * 字体背景颜色 - * @command backcolor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 色值(必须十六进制) - * @example - * ```javascript - * editor.execCommand( 'backcolor', '#000' ); - * ``` - */ -/** - * 返回选区字体颜色 - * @command backcolor - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体背景颜色 - * @example - * ```javascript - * editor.queryCommandValue( 'backcolor' ); - * ``` - */ - -/** - * 字体大小 - * @command fontsize - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体大小 - * @example - * ```javascript - * editor.execCommand( 'fontsize', '14px' ); - * ``` - */ -/** - * 返回选区字体大小 - * @command fontsize - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体大小 - * @example - * ```javascript - * editor.queryCommandValue( 'fontsize' ); - * ``` - */ - -/** - * 字体样式 - * @command fontfamily - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 字体样式 - * @example - * ```javascript - * editor.execCommand( 'fontfamily', '微软雅黑' ); - * ``` - */ -/** - * 返回选区字体样式 - * @command fontfamily - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回字体样式 - * @example - * ```javascript - * editor.queryCommandValue( 'fontfamily' ); - * ``` - */ - -/** - * 字体下划线,与删除线互斥 - * @command underline - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'underline' ); - * ``` - */ - -/** - * 字体删除线,与下划线互斥 - * @command strikethrough - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'strikethrough' ); - * ``` - */ - -/** - * 字体边框 - * @command fontborder - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'fontborder' ); - * ``` - */ - -UE.plugins['font'] = function () { - var me = this, - fonts = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family', - 'underline': 'text-decoration', - 'strikethrough': 'text-decoration', - 'fontborder': 'border' - }, - needCmd = {'underline': 1, 'strikethrough': 1, 'fontborder': 1}, - needSetChild = { - 'forecolor': 'color', - 'backcolor': 'background-color', - 'fontsize': 'font-size', - 'fontfamily': 'font-family' - - }; - me.setOpt({ - 'fontfamily': [ - { name: 'songti', val: '宋体,SimSun'}, - { name: 'yahei', val: '微软雅黑,Microsoft YaHei'}, - { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'}, - { name: 'heiti', val: '黑体, SimHei'}, - { name: 'lishu', val: '隶书, SimLi'}, - { name: 'andaleMono', val: 'andale mono'}, - { name: 'arial', val: 'arial, helvetica,sans-serif'}, - { name: 'arialBlack', val: 'arial black,avant garde'}, - { name: 'comicSansMs', val: 'comic sans ms'}, - { name: 'impact', val: 'impact,chicago'}, - { name: 'timesNewRoman', val: 'times new roman'} - ], - 'fontsize': [10, 11, 12, 14, 16, 18, 20, 24, 36] - }); - - function mergeWithParent(node){ - var parent; - while(parent = node.parentNode){ - if(parent.tagName == 'SPAN' && domUtils.getChildCount(parent,function(child){ - return !domUtils.isBookmarkNode(child) && !domUtils.isBr(child) - }) == 1) { - parent.style.cssText += node.style.cssText; - domUtils.remove(node,true); - node = parent; - - }else{ - break; - } - } - - } - function mergeChild(rng,cmdName,value){ - if(needSetChild[cmdName]){ - rng.adjustmentBoundary(); - if(!rng.collapsed && rng.startContainer.nodeType == 1){ - var start = rng.startContainer.childNodes[rng.startOffset]; - if(start && domUtils.isTagNode(start,'span')){ - var bk = rng.createBookmark(); - utils.each(domUtils.getElementsByTagName(start, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if(cmdName == 'backcolor' && domUtils.getComputedStyle(span,'background-color').toLowerCase() === value){ - return; - } - domUtils.removeStyle(span,needSetChild[cmdName]); - if(span.style.cssText.replace(/^\s+$/,'').length == 0){ - domUtils.remove(span,true) - } - }); - rng.moveToBookmark(bk) - } - } - } - - } - function mergesibling(rng,cmdName,value) { - var collapsed = rng.collapsed, - bk = rng.createBookmark(), common; - if (collapsed) { - common = bk.start.parentNode; - while (dtd.$inline[common.tagName]) { - common = common.parentNode; - } - } else { - common = domUtils.getCommonAncestor(bk.start, bk.end); - } - utils.each(domUtils.getElementsByTagName(common, 'span'), function (span) { - if (!span.parentNode || domUtils.isBookmarkNode(span))return; - if (/\s*border\s*:\s*none;?\s*/i.test(span.style.cssText)) { - if(/^\s*border\s*:\s*none;?\s*$/.test(span.style.cssText)){ - domUtils.remove(span, true); - }else{ - domUtils.removeStyle(span,'border'); - } - return - } - if (/border/i.test(span.style.cssText) && span.parentNode.tagName == 'SPAN' && /border/i.test(span.parentNode.style.cssText)) { - span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, ''); - } - if(!(cmdName=='fontborder' && value=='none')){ - var next = span.nextSibling; - while (next && next.nodeType == 1 && next.tagName == 'SPAN' ) { - if(domUtils.isBookmarkNode(next) && cmdName == 'fontborder') { - span.appendChild(next); - next = span.nextSibling; - continue; - } - if (next.style.cssText == span.style.cssText) { - domUtils.moveChild(next, span); - domUtils.remove(next); - } - if (span.nextSibling === next) - break; - next = span.nextSibling; - } - } - - - mergeWithParent(span); - if(browser.ie && browser.version > 8 ){ - //拷贝父亲们的特别的属性,这里只做背景颜色的处理 - var parent = domUtils.findParent(span,function(n){return n.tagName == 'SPAN' && /background-color/.test(n.style.cssText)}); - if(parent && !/background-color/.test(span.style.cssText)){ - span.style.backgroundColor = parent.style.backgroundColor; - } - } - - }); - rng.moveToBookmark(bk); - mergeChild(rng,cmdName,value) - } - - me.addInputRule(function (root) { - utils.each(root.getNodesByTagName('u s del font strike'), function (node) { - if (node.tagName == 'font') { - var cssStyle = []; - for (var p in node.attrs) { - switch (p) { - case 'size': - cssStyle.push('font-size:' + - ({ - '1':'10', - '2':'12', - '3':'16', - '4':'18', - '5':'24', - '6':'32', - '7':'48' - }[node.attrs[p]] || node.attrs[p]) + 'px'); - break; - case 'color': - cssStyle.push('color:' + node.attrs[p]); - break; - case 'face': - cssStyle.push('font-family:' + node.attrs[p]); - break; - case 'style': - cssStyle.push(node.attrs[p]); - } - } - node.attrs = { - 'style': cssStyle.join(';') - }; - } else { - var val = node.tagName == 'u' ? 'underline' : 'line-through'; - node.attrs = { - 'style': (node.getAttr('style') || '') + 'text-decoration:' + val + ';' - } - } - node.tagName = 'span'; - }); -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getAttr('class')){ -// if(/fontstrikethrough/.test(val)){ -// node.setStyle('text-decoration','line-through'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontstrikethrough/,''); -// }else{ -// node.setAttr('class') -// } -// } -// if(/fontborder/.test(val)){ -// node.setStyle('border','1px solid #000'); -// if(node.attrs['class']){ -// node.attrs['class'] = node.attrs['class'].replace(/fontborder/,''); -// }else{ -// node.setAttr('class') -// } -// } -// } -// }); - }); -// me.addOutputRule(function(root){ -// utils.each(root.getNodesByTagName('span'), function (node) { -// var val; -// if(val = node.getStyle('text-decoration')){ -// if(/line-through/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontstrikethrough'; -// }else{ -// node.setAttr('class','fontstrikethrough') -// } -// } -// -// node.setStyle('text-decoration') -// } -// if(val = node.getStyle('border')){ -// if(/1px/.test(val) && /solid/.test(val)){ -// if(node.attrs['class']){ -// node.attrs['class'] += ' fontborder'; -// -// }else{ -// node.setAttr('class','fontborder') -// } -// } -// node.setStyle('border') -// -// } -// }); -// }); - for (var p in fonts) { - (function (cmd, style) { - UE.commands[cmd] = { - execCommand: function (cmdName, value) { - value = value || (this.queryCommandState(cmdName) ? 'none' : cmdName == 'underline' ? 'underline' : - cmdName == 'fontborder' ? '1px solid #000' : - 'line-through'); - var me = this, - range = this.selection.getRange(), - text; - - if (value == 'default') { - - if (range.collapsed) { - text = me.document.createTextNode('font'); - range.insertNode(text).select(); - - } - me.execCommand('removeFormat', 'span,a', style); - if (text) { - range.setStartBefore(text).collapse(true); - domUtils.remove(text); - } - mergesibling(range,cmdName,value); - range.select() - } else { - if (!range.collapsed) { - if (needCmd[cmd] && me.queryCommandValue(cmd)) { - me.execCommand('removeFormat', 'span,a', style); - } - range = me.selection.getRange(); - - range.applyInlineStyle('span', {'style': style + ':' + value}); - mergesibling(range, cmdName,value); - range.select(); - } else { - - var span = domUtils.findParentByTagName(range.startContainer, 'span', true); - text = me.document.createTextNode('font'); - if (span && !span.children.length && !span[browser.ie ? 'innerText' : 'textContent'].replace(fillCharReg, '').length) { - //for ie hack when enter - range.insertNode(text); - if (needCmd[cmd]) { - range.selectNode(text).select(); - me.execCommand('removeFormat', 'span,a', style, null); - - span = domUtils.findParentByTagName(text, 'span', true); - range.setStartBefore(text); - - } - span && (span.style.cssText += ';' + style + ':' + value); - range.collapse(true).select(); - - - } else { - range.insertNode(text); - range.selectNode(text).select(); - span = range.document.createElement('span'); - - if (needCmd[cmd]) { - //a标签内的不处理跳过 - if (domUtils.findParentByTagName(text, 'a', true)) { - range.setStartBefore(text).setCursor(); - domUtils.remove(text); - return; - } - me.execCommand('removeFormat', 'span,a', style); - } - - span.style.cssText = style + ':' + value; - - - text.parentNode.insertBefore(span, text); - //修复,span套span 但样式不继承的问题 - if (!browser.ie || browser.ie && browser.version == 9) { - var spanParent = span.parentNode; - while (!domUtils.isBlockElm(spanParent)) { - if (spanParent.tagName == 'SPAN') { - //opera合并style不会加入";" - span.style.cssText = spanParent.style.cssText + ";" + span.style.cssText; - } - spanParent = spanParent.parentNode; - } - } - - - if (opera) { - setTimeout(function () { - range.setStart(span, 0).collapse(true); - mergesibling(range, cmdName,value); - range.select(); - }); - } else { - range.setStart(span, 0).collapse(true); - mergesibling(range,cmdName,value); - range.select(); - } - - //trace:981 - //domUtils.mergeToParent(span) - } - domUtils.remove(text); - } - - - } - return true; - }, - queryCommandValue: function (cmdName) { - var startNode = this.selection.getStart(); - - //trace:946 - if (cmdName == 'underline' || cmdName == 'strikethrough') { - var tmpNode = startNode, value; - while (tmpNode && !domUtils.isBlockElm(tmpNode) && !domUtils.isBody(tmpNode)) { - if (tmpNode.nodeType == 1) { - value = domUtils.getComputedStyle(tmpNode, style); - if (value != 'none') { - return value; - } - } - - tmpNode = tmpNode.parentNode; - } - return 'none'; - } - if (cmdName == 'fontborder') { - var tmp = startNode, val; - while (tmp && dtd.$inline[tmp.tagName]) { - if (val = domUtils.getComputedStyle(tmp, 'border')) { - - if (/1px/.test(val) && /solid/.test(val)) { - return val; - } - } - tmp = tmp.parentNode; - } - return '' - } - - if( cmdName == 'FontSize' ) { - var styleVal = domUtils.getComputedStyle(startNode, style), - tmp = /^([\d\.]+)(\w+)$/.exec( styleVal ); - - if( tmp ) { - - return Math.floor( tmp[1] ) + tmp[2]; - - } - - return styleVal; - - } - - return domUtils.getComputedStyle(startNode, style); - }, - queryCommandState: function (cmdName) { - if (!needCmd[cmdName]) - return 0; - var val = this.queryCommandValue(cmdName); - if (cmdName == 'fontborder') { - return /1px/.test(val) && /solid/.test(val) - } else { - return cmdName == 'underline' ? /underline/.test(val) : /line\-through/.test(val); - - } - - } - }; - })(p, fonts[p]); - } -}; - -// plugins/link.js -/** - * 超链接 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入超链接 - * @command link - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } options 设置自定义属性,例如:url、title、target - * @example - * ```javascript - * editor.execCommand( 'link', '{ - * url:'ueditor.baidu.com', - * title:'ueditor', - * target:'_blank' - * }' ); - * ``` - */ -/** - * 返回当前选中的第一个超链接节点 - * @command link - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { Element } 超链接节点 - * @example - * ```javascript - * editor.queryCommandValue( 'link' ); - * ``` - */ - -/** - * 取消超链接 - * @command unlink - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'unlink'); - * ``` - */ - -UE.plugins['link'] = function(){ - function optimize( range ) { - var start = range.startContainer,end = range.endContainer; - - if ( start = domUtils.findParentByTagName( start, 'a', true ) ) { - range.setStartBefore( start ); - } - if ( end = domUtils.findParentByTagName( end, 'a', true ) ) { - range.setEndAfter( end ); - } - } - - - UE.commands['unlink'] = { - execCommand : function() { - var range = this.selection.getRange(), - bookmark; - if(range.collapsed && !domUtils.findParentByTagName( range.startContainer, 'a', true )){ - return; - } - bookmark = range.createBookmark(); - optimize( range ); - range.removeInlineStyle( 'a' ).moveToBookmark( bookmark ).select(); - }, - queryCommandState : function(){ - return !this.highlight && this.queryCommandValue('link') ? 0 : -1; - } - - }; - function doLink(range,opt,me){ - var rngClone = range.cloneRange(), - link = me.queryCommandValue('link'); - optimize( range = range.adjustmentBoundary() ); - var start = range.startContainer; - if(start.nodeType == 1 && link){ - start = start.childNodes[range.startOffset]; - if(start && start.nodeType == 1 && start.tagName == 'A' && /^(?:https?|ftp|file)\s*:\s*\/\//.test(start[browser.ie?'innerText':'textContent'])){ - start[browser.ie ? 'innerText' : 'textContent'] = utils.html(opt.textValue||opt.href); - - } - } - if( !rngClone.collapsed || link){ - range.removeInlineStyle( 'a' ); - rngClone = range.cloneRange(); - } - - if ( rngClone.collapsed ) { - var a = range.document.createElement( 'a'), - text = ''; - if(opt.textValue){ - - text = utils.html(opt.textValue); - delete opt.textValue; - }else{ - text = utils.html(opt.href); - - } - domUtils.setAttributes( a, opt ); - start = domUtils.findParentByTagName( rngClone.startContainer, 'a', true ); - if(start && domUtils.isInNodeEndBoundary(rngClone,start)){ - range.setStartAfter(start).collapse(true); - - } - a[browser.ie ? 'innerText' : 'textContent'] = text; - range.insertNode(a).selectNode( a ); - } else { - range.applyInlineStyle( 'a', opt ); - - } - } - UE.commands['link'] = { - execCommand : function( cmdName, opt ) { - var range; - opt._href && (opt._href = utils.unhtml(opt._href,/[<">]/g)); - opt.href && (opt.href = utils.unhtml(opt.href,/[<">]/g)); - opt.textValue && (opt.textValue = utils.unhtml(opt.textValue,/[<">]/g)); - doLink(range=this.selection.getRange(),opt,this); - //闭合都不加占位符,如果加了会在a后边多个占位符节点,导致a是图片背景组成的列表,出现空白问题 - range.collapse().select(true); - - }, - queryCommandValue : function() { - var range = this.selection.getRange(), - node; - if ( range.collapsed ) { -// node = this.selection.getStart(); - //在ie下getstart()取值偏上了 - node = range.startContainer; - node = node.nodeType == 1 ? node : node.parentNode; - - if ( node && (node = domUtils.findParentByTagName( node, 'a', true )) && ! domUtils.isInNodeEndBoundary(range,node)) { - - return node; - } - } else { - //trace:1111 如果是

    xx

    startContainer是p就会找不到a - range.shrinkBoundary(); - var start = range.startContainer.nodeType == 3 || !range.startContainer.childNodes[range.startOffset] ? range.startContainer : range.startContainer.childNodes[range.startOffset], - end = range.endContainer.nodeType == 3 || range.endOffset == 0 ? range.endContainer : range.endContainer.childNodes[range.endOffset-1], - common = range.getCommonAncestor(); - node = domUtils.findParentByTagName( common, 'a', true ); - if ( !node && common.nodeType == 1){ - - var as = common.getElementsByTagName( 'a' ), - ps,pe; - - for ( var i = 0,ci; ci = as[i++]; ) { - ps = domUtils.getPosition( ci, start ),pe = domUtils.getPosition( ci,end); - if ( (ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) { - node = ci; - break; - } - } - } - return node; - } - - }, - queryCommandState : function() { - //判断如果是视频的话连接不可用 - //fix 853 - var img = this.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1); - return flag ? -1 : 0; - } - }; -}; - -// plugins/iframe.js -///import core -///import plugins\inserthtml.js -///commands 插入框架 -///commandsName InsertFrame -///commandsTitle 插入Iframe -///commandsDialog dialogs\insertframe - -UE.plugins['insertframe'] = function() { - var me =this; - function deleteIframe(){ - me._iframe && delete me._iframe; - } - - me.addListener("selectionchange",function(){ - deleteIframe(); - }); - -}; - - - -// plugins/scrawl.js -///import core -///commands 涂鸦 -///commandsName Scrawl -///commandsTitle 涂鸦 -///commandsDialog dialogs\scrawl -UE.commands['scrawl'] = { - queryCommandState : function(){ - return ( browser.ie && browser.version <= 8 ) ? -1 :0; - } -}; - - -// plugins/removeformat.js -/** - * 清除格式 - * @file - * @since 1.2.6.1 - */ - -/** - * 清除文字样式 - * @command removeformat - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} tags 以逗号隔开的标签。如:strong - * @param {String} style 样式如:color - * @param {String} attrs 属性如:width - * @example - * ```javascript - * editor.execCommand( 'removeformat', 'strong','color','width' ); - * ``` - */ - -UE.plugins['removeformat'] = function(){ - var me = this; - me.setOpt({ - 'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var', - 'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign' - }); - me.commands['removeformat'] = { - execCommand : function( cmdName, tags, style, attrs,notIncludeA ) { - - var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) , - removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ), - range = new dom.Range( this.document ), - bookmark,node,parent, - filter = function( node ) { - return node.nodeType == 1; - }; - - function isRedundantSpan (node) { - if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){ - return 0; - } - if (browser.ie) { - //ie 下判断实效,所以只能简单用style来判断 - //return node.style.cssText == '' ? 1 : 0; - var attrs = node.attributes; - if ( attrs.length ) { - for ( var i = 0,l = attrs.length; i - var node = range.startContainer, - tmp, - collapsed = range.collapsed; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setStartBefore(node); - //trace:937 - //更新结束边界 - if(range.startContainer === range.endContainer){ - range.endOffset--; - } - domUtils.remove(node); - node = tmp; - } - - if(!collapsed){ - node = range.endContainer; - while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){ - tmp = node.parentNode; - range.setEndBefore(node); - domUtils.remove(node); - - node = tmp; - } - - - } - } - - - - range = this.selection.getRange(); - doRemove( range ); - range.select(); - - } - - }; - -}; - - -// plugins/blockquote.js -/** - * 添加引用 - * @file - * @since 1.2.6.1 - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'blockquote' ); - * ``` - */ - -/** - * 添加引用 - * @command blockquote - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } attrs 节点属性 - * @example - * ```javascript - * editor.execCommand( 'blockquote',{ - * style: "color: red;" - * } ); - * ``` - */ - - -UE.plugins['blockquote'] = function(){ - var me = this; - function getObj(editor){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),'blockquote'); - } - me.commands['blockquote'] = { - execCommand : function( cmdName, attrs ) { - var range = this.selection.getRange(), - obj = getObj(this), - blockquote = dtd.blockquote, - bookmark = range.createBookmark(); - - if ( obj ) { - - var start = range.startContainer, - startBlock = domUtils.isBlockElm(start) ? start : domUtils.findParent(start,function(node){return domUtils.isBlockElm(node)}), - - end = range.endContainer, - endBlock = domUtils.isBlockElm(end) ? end : domUtils.findParent(end,function(node){return domUtils.isBlockElm(node)}); - - //处理一下li - startBlock = domUtils.findParentByTagName(startBlock,'li',true) || startBlock; - endBlock = domUtils.findParentByTagName(endBlock,'li',true) || endBlock; - - - if(startBlock.tagName == 'LI' || startBlock.tagName == 'TD' || startBlock === obj || domUtils.isBody(startBlock)){ - domUtils.remove(obj,true); - }else{ - domUtils.breakParent(startBlock,obj); - } - - if(startBlock !== endBlock){ - obj = domUtils.findParentByTagName(endBlock,'blockquote'); - if(obj){ - if(endBlock.tagName == 'LI' || endBlock.tagName == 'TD'|| domUtils.isBody(endBlock)){ - obj.parentNode && domUtils.remove(obj,true); - }else{ - domUtils.breakParent(endBlock,obj); - } - - } - } - - var blockquotes = domUtils.getElementsByTagName(this.document,'blockquote'); - for(var i=0,bi;bi=blockquotes[i++];){ - if(!bi.childNodes.length){ - domUtils.remove(bi); - }else if(domUtils.getPosition(bi,startBlock)&domUtils.POSITION_FOLLOWING && domUtils.getPosition(bi,endBlock)&domUtils.POSITION_PRECEDING){ - domUtils.remove(bi,true); - } - } - - - - - } else { - - var tmpRange = range.cloneRange(), - node = tmpRange.startContainer.nodeType == 1 ? tmpRange.startContainer : tmpRange.startContainer.parentNode, - preNode = node, - doEnd = 1; - - //调整开始 - while ( 1 ) { - if ( domUtils.isBody(node) ) { - if ( preNode !== node ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - doEnd = 0; - } else { - tmpRange.setStartBefore( preNode ); - } - }else{ - tmpRange.setStart(node,0); - } - - break; - } - if ( !blockquote[node.tagName] ) { - if ( range.collapsed ) { - tmpRange.selectNode( preNode ); - } else{ - tmpRange.setStartBefore( preNode); - } - break; - } - - preNode = node; - node = node.parentNode; - } - - //调整结束 - if ( doEnd ) { - preNode = node = node = tmpRange.endContainer.nodeType == 1 ? tmpRange.endContainer : tmpRange.endContainer.parentNode; - while ( 1 ) { - - if ( domUtils.isBody( node ) ) { - if ( preNode !== node ) { - - tmpRange.setEndAfter( preNode ); - - } else { - tmpRange.setEnd( node, node.childNodes.length ); - } - - break; - } - if ( !blockquote[node.tagName] ) { - tmpRange.setEndAfter( preNode ); - break; - } - - preNode = node; - node = node.parentNode; - } - - } - - - node = range.document.createElement( 'blockquote' ); - domUtils.setAttributes( node, attrs ); - node.appendChild( tmpRange.extractContents() ); - tmpRange.insertNode( node ); - //去除重复的 - var childs = domUtils.getElementsByTagName(node,'blockquote'); - for(var i=0,ci;ci=childs[i++];){ - if(ci.parentNode){ - domUtils.remove(ci,true); - } - } - - } - range.moveToBookmark( bookmark ).select(); - }, - queryCommandState : function() { - return getObj(this) ? 1 : 0; - } - }; -}; - - - -// plugins/convertcase.js -/** - * 大小写转换 - * @file - * @since 1.2.6.1 - */ - -/** - * 把选区内文本变大写,与“tolowercase”命令互斥 - * @command touppercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'touppercase' ); - * ``` - */ - -/** - * 把选区内文本变小写,与“touppercase”命令互斥 - * @command tolowercase - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'tolowercase' ); - * ``` - */ -UE.commands['touppercase'] = -UE.commands['tolowercase'] = { - execCommand:function (cmd) { - var me = this; - var rng = me.selection.getRange(); - if(rng.collapsed){ - return rng; - } - var bk = rng.createBookmark(), - bkEnd = bk.end, - filterFn = function( node ) { - return !domUtils.isBr(node) && !domUtils.isWhitespace( node ); - }, - curNode = domUtils.getNextDomNode( bk.start, false, filterFn ); - while ( curNode && (domUtils.getPosition( curNode, bkEnd ) & domUtils.POSITION_PRECEDING) ) { - - if ( curNode.nodeType == 3 ) { - curNode.nodeValue = curNode.nodeValue[cmd == 'touppercase' ? 'toUpperCase' : 'toLowerCase'](); - } - curNode = domUtils.getNextDomNode( curNode, true, filterFn ); - if(curNode === bkEnd){ - break; - } - - } - rng.moveToBookmark(bk).select(); - } -}; - - - -// plugins/indent.js -/** - * 首行缩进 - * @file - * @since 1.2.6.1 - */ - -/** - * 缩进 - * @command indent - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'indent' ); - * ``` - */ -UE.commands['indent'] = { - execCommand : function() { - var me = this,value = me.queryCommandState("indent") ? "0em" : (me.options.indentValue || '2em'); - me.execCommand('Paragraph','p',{style:'text-indent:'+ value}); - }, - queryCommandState : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return pN && pN.style.textIndent && parseInt(pN.style.textIndent) ? 1 : 0; - } - -}; - - -// plugins/print.js -/** - * 打印 - * @file - * @since 1.2.6.1 - */ - -/** - * 打印 - * @command print - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'print' ); - * ``` - */ -UE.commands['print'] = { - execCommand : function(){ - this.window.print(); - }, - notNeedUndo : 1 -}; - - - -// plugins/preview.js -/** - * 预览 - * @file - * @since 1.2.6.1 - */ - -/** - * 预览 - * @command preview - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'preview' ); - * ``` - */ -UE.commands['preview'] = { - execCommand : function(){ - var w = window.open('', '_blank', ''), - d = w.document; - d.open(); - d.write('
    '+this.getContent(null,null,true)+'
    '); - d.close(); - }, - notNeedUndo : 1 -}; - - -// plugins/selectall.js -/** - * 全选 - * @file - * @since 1.2.6.1 - */ - -/** - * 选中所有内容 - * @command selectall - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'selectall' ); - * ``` - */ -UE.plugins['selectall'] = function(){ - var me = this; - me.commands['selectall'] = { - execCommand : function(){ - //去掉了原生的selectAll,因为会出现报错和当内容为空时,不能出现闭合状态的光标 - var me = this,body = me.body, - range = me.selection.getRange(); - range.selectNodeContents(body); - if(domUtils.isEmptyBlock(body)){ - //opera不能自动合并到元素的里边,要手动处理一下 - if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){ - range.setStartAtFirst(body.firstChild); - } - range.collapse(true); - } - range.select(true); - }, - notNeedUndo : 1 - }; - - - //快捷键 - me.addshortcutkey({ - "selectAll" : "ctrl+65" - }); -}; - - -// plugins/paragraph.js -/** - * 段落样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 段落格式 - * @command paragraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' - * @param {Object} attrs 标签的属性 - * @example - * ```javascript - * editor.execCommand( 'Paragraph','h1','{ - * class:'test' - * }' ); - * ``` - */ - -/** - * 返回选区内节点标签名 - * @command paragraph - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 节点标签名 - * @example - * ```javascript - * editor.queryCommandValue( 'Paragraph' ); - * ``` - */ - -UE.plugins['paragraph'] = function() { - var me = this, - block = domUtils.isBlockElm, - notExchange = ['TD','LI','PRE'], - - doParagraph = function(range,style,attrs,sourceCmdName){ - var bookmark = range.createBookmark(), - filterFn = function( node ) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace( node ); - }, - para; - - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - - para = range.document.createElement( style ); - if(attrs){ - domUtils.setAttributes(para,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - para.style.cssText = attrs.style; - } - } - para.appendChild( tmpRange.extractContents() ); - //需要内容占位 - if(domUtils.isEmptyNode(para)){ - domUtils.fillChar(range.document,para); - - } - - tmpRange.insertNode( para ); - - var parent = para.parentNode; - //如果para上一级是一个block元素且不是body,td就删除它 - if ( block( parent ) && !domUtils.isBody( para.parentNode ) && utils.indexOf(notExchange,parent.tagName)==-1) { - //存储dir,style - if(!(sourceCmdName && sourceCmdName == 'customstyle')){ - parent.getAttribute('dir') && para.setAttribute('dir',parent.getAttribute('dir')); - //trace:1070 - parent.style.cssText && (para.style.cssText = parent.style.cssText + ';' + para.style.cssText); - //trace:1030 - parent.style.textAlign && !para.style.textAlign && (para.style.textAlign = parent.style.textAlign); - parent.style.textIndent && !para.style.textIndent && (para.style.textIndent = parent.style.textIndent); - parent.style.padding && !para.style.padding && (para.style.padding = parent.style.padding); - } - - //trace:1706 选择的就是h1-6要删除 - if(attrs && /h\d/i.test(parent.tagName) && !/h\d/i.test(para.tagName) ){ - domUtils.setAttributes(parent,attrs); - if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){ - parent.style.cssText = attrs.style; - } - domUtils.remove(para,true); - para = parent; - }else{ - domUtils.remove( para.parentNode, true ); - } - - } - if( utils.indexOf(notExchange,parent.tagName)!=-1){ - current = parent; - }else{ - current = para; - } - - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}); - me.commands['paragraph'] = { - execCommand : function( cmdName, style,attrs,sourceCmdName ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('p'); - range.insertNode(txt); - //去掉冗余的fillchar - if(browser.ie){ - var node = txt.previousSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - node = txt.nextSibling; - if(node && domUtils.isWhitespace(node)){ - domUtils.remove(node); - } - } - - } - range = doParagraph(range,style,attrs,sourceCmdName); - if(txt){ - range.setStartBefore(txt).collapse(true); - pN = txt.parentNode; - - domUtils.remove(txt); - - if(domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)){ - domUtils.fillNode(this.document,pN); - } - - } - - if(browser.gecko && range.collapsed && range.startContainer.nodeType == 1){ - var child = range.startContainer.childNodes[range.startOffset]; - if(child && child.nodeType == 1 && child.tagName.toLowerCase() == style){ - range.setStart(child,0).collapse(true); - } - } - //trace:1097 原来有true,原因忘了,但去了就不能清除多余的占位符了 - range.select(); - - - return true; - }, - queryCommandValue : function() { - var node = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6'); - return node ? node.tagName.toLowerCase() : ''; - } - }; -}; - - -// plugins/directionality.js -/** - * 设置文字输入的方向的插件 - * @file - * @since 1.2.6.1 - */ -(function() { - var block = domUtils.isBlockElm , - getObj = function(editor){ -// var startNode = editor.selection.getStart(), -// parents; -// if ( startNode ) { -// //查找所有的是block的父亲节点 -// parents = domUtils.findParents( startNode, true, block, true ); -// for ( var i = 0,ci; ci = parents[i++]; ) { -// if ( ci.getAttribute( 'dir' ) ) { -// return ci; -// } -// } -// } - return domUtils.filterNodeList(editor.selection.getStartElementPath(),function(n){return n && n.nodeType == 1 && n.getAttribute('dir')}); - - }, - doDirectionality = function(range,editor,forward){ - - var bookmark, - filterFn = function( node ) { - return node.nodeType == 1 ? !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node); - }, - - obj = getObj( editor ); - - if ( obj && range.collapsed ) { - obj.setAttribute( 'dir', forward ); - return range; - } - bookmark = range.createBookmark(); - range.enlarge( true ); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ), - tmpRange = range.cloneRange(), - tmpNode; - while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) { - if ( current.nodeType == 3 || !block( current ) ) { - tmpRange.setStartBefore( current ); - while ( current && current !== bookmark2.end && !block( current ) ) { - tmpNode = current; - current = domUtils.getNextDomNode( current, false, null, function( node ) { - return !block( node ); - } ); - } - tmpRange.setEndAfter( tmpNode ); - var common = tmpRange.getCommonAncestor(); - if ( !domUtils.isBody( common ) && block( common ) ) { - //遍历到了block节点 - common.setAttribute( 'dir', forward ); - current = common; - } else { - //没有遍历到,添加一个block节点 - var p = range.document.createElement( 'p' ); - p.setAttribute( 'dir', forward ); - var frag = tmpRange.extractContents(); - p.appendChild( frag ); - tmpRange.insertNode( p ); - current = p; - } - - current = domUtils.getNextDomNode( current, false, filterFn ); - } else { - current = domUtils.getNextDomNode( current, true, filterFn ); - } - } - return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark ); - }; - - /** - * 文字输入方向 - * @command directionality - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } forward 传入'ltr'表示从左向右输入,传入'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.execCommand( 'directionality', 'ltr'); - * ``` - */ - - /** - * 查询当前选区的文字输入方向 - * @command directionality - * @method queryCommandValue - * @param { String } cmdName 命令字符串 - * @return { String } 返回'ltr'表示从左向右输入,返回'rtl'表示从右向左输入 - * @example - * ```javascript - * editor.queryCommandValue( 'directionality'); - * ``` - */ - UE.commands['directionality'] = { - execCommand : function( cmdName,forward ) { - var range = this.selection.getRange(); - //闭合时单独处理 - if(range.collapsed){ - var txt = this.document.createTextNode('d'); - range.insertNode(txt); - } - doDirectionality(range,this,forward); - if(txt){ - range.setStartBefore(txt).collapse(true); - domUtils.remove(txt); - } - - range.select(); - return true; - }, - queryCommandValue : function() { - var node = getObj(this); - return node ? node.getAttribute('dir') : 'ltr'; - } - }; -})(); - - - -// plugins/horizontal.js -/** - * 插入分割线插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入分割线 - * @command horizontal - * @method execCommand - * @param { String } cmdName 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'horizontal' ); - * ``` - */ -UE.plugins['horizontal'] = function(){ - var me = this; - me.commands['horizontal'] = { - execCommand : function( cmdName ) { - var me = this; - if(me.queryCommandState(cmdName)!==-1){ - me.execCommand('insertHtml','
    '); - var range = me.selection.getRange(), - start = range.startContainer; - if(start.nodeType == 1 && !start.childNodes[range.startOffset] ){ - - var tmp; - if(tmp = start.childNodes[range.startOffset - 1]){ - if(tmp.nodeType == 1 && tmp.tagName == 'HR'){ - if(me.options.enterTag == 'p'){ - tmp = me.document.createElement('p'); - range.insertNode(tmp); - range.setStart(tmp,0).setCursor(); - - }else{ - tmp = me.document.createElement('br'); - range.insertNode(tmp); - range.setStartBefore(tmp).setCursor(); - } - } - } - - } - return true; - } - - }, - //边界在table里不能加分隔线 - queryCommandState : function() { - return domUtils.filterNodeList(this.selection.getStartElementPath(),'table') ? -1 : 0; - } - }; -// me.addListener('delkeyup',function(){ -// var rng = this.selection.getRange(); -// if(browser.ie && browser.version > 8){ -// rng.txtToElmBoundary(true); -// if(domUtils.isStartInblock(rng)){ -// var tmpNode = rng.startContainer; -// var pre = tmpNode.previousSibling; -// if(pre && domUtils.isTagNode(pre,'hr')){ -// domUtils.remove(pre); -// rng.select(); -// return; -// } -// } -// } -// if(domUtils.isBody(rng.startContainer)){ -// var hr = rng.startContainer.childNodes[rng.startOffset -1]; -// if(hr && hr.nodeName == 'HR'){ -// var next = hr.nextSibling; -// if(next){ -// rng.setStart(next,0) -// }else if(hr.previousSibling){ -// rng.setStartAtLast(hr.previousSibling) -// }else{ -// var p = this.document.createElement('p'); -// hr.parentNode.insertBefore(p,hr); -// domUtils.fillNode(this.document,p); -// rng.setStart(p,0); -// } -// domUtils.remove(hr); -// rng.setCursor(false,true); -// } -// } -// }) - me.addListener('delkeydown',function(name,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - if(domUtils.isStartInblock(rng)){ - var tmpNode = rng.startContainer; - var pre = tmpNode.previousSibling; - if(pre && domUtils.isTagNode(pre,'hr')){ - domUtils.remove(pre); - rng.select(); - domUtils.preventDefault(evt); - return true; - - } - } - - }) -}; - - - -// plugins/time.js -/** - * 插入时间和日期 - * @file - * @since 1.2.6.1 - */ - -/** - * 插入时间,默认格式:12:59:59 - * @command time - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'time'); - * ``` - */ - -/** - * 插入日期,默认格式:2013-08-30 - * @command date - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'date'); - * ``` - */ -UE.commands['time'] = UE.commands["date"] = { - execCommand : function(cmd, format){ - var date = new Date; - - function formatTime(date, format) { - var hh = ('0' + date.getHours()).slice(-2), - ii = ('0' + date.getMinutes()).slice(-2), - ss = ('0' + date.getSeconds()).slice(-2); - format = format || 'hh:ii:ss'; - return format.replace(/hh/ig, hh).replace(/ii/ig, ii).replace(/ss/ig, ss); - } - function formatDate(date, format) { - var yyyy = ('000' + date.getFullYear()).slice(-4), - yy = yyyy.slice(-2), - mm = ('0' + (date.getMonth()+1)).slice(-2), - dd = ('0' + date.getDate()).slice(-2); - format = format || 'yyyy-mm-dd'; - return format.replace(/yyyy/ig, yyyy).replace(/yy/ig, yy).replace(/mm/ig, mm).replace(/dd/ig, dd); - } - - this.execCommand('insertHtml',cmd == "time" ? formatTime(date, format):formatDate(date, format) ); - } -}; - - -// plugins/rowspacing.js -/** - * 段前段后间距插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 设置段间距 - * @command rowspacing - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } value 段间距的值,以px为单位 - * @param { String } dir 间距位置,top或bottom,分别表示段前和段后 - * @example - * ```javascript - * editor.execCommand( 'rowspacing', '10', 'top' ); - * ``` - */ - -UE.plugins['rowspacing'] = function(){ - var me = this; - me.setOpt({ - 'rowspacingtop':['5', '10', '15', '20', '25'], - 'rowspacingbottom':['5', '10', '15', '20', '25'] - - }); - me.commands['rowspacing'] = { - execCommand : function( cmdName,value,dir ) { - this.execCommand('paragraph','p',{style:'margin-'+dir+':'+value + 'px'}); - return true; - }, - queryCommandValue : function(cmdName,dir) { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node) }), - value; - //trace:1026 - if(pN){ - value = domUtils.getComputedStyle(pN,'margin-'+dir).replace(/[^\d]/g,''); - return !value ? 0 : value; - } - return 0; - - } - }; -}; - - - - -// plugins/lineheight.js -/** - * 设置行内间距 - * @file - * @since 1.2.6.1 - */ -UE.plugins['lineheight'] = function(){ - var me = this; - me.setOpt({'lineheight':['1', '1.5','1.75','2', '3', '4', '5']}); - - /** - * 行距 - * @command lineheight - * @method execCommand - * @param { String } cmdName 命令字符串 - * @param { String } value 传入的行高值, 该值是当前字体的倍数, 例如: 1.5, 1.75 - * @example - * ```javascript - * editor.execCommand( 'lineheight', 1.5); - * ``` - */ - /** - * 查询当前选区内容的行高大小 - * @command lineheight - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前行高大小 - * @example - * ```javascript - * editor.queryCommandValue( 'lineheight' ); - * ``` - */ - - me.commands['lineheight'] = { - execCommand : function( cmdName,value ) { - this.execCommand('paragraph','p',{style:'line-height:'+ (value == "1" ? "normal" : value + 'em') }); - return true; - }, - queryCommandValue : function() { - var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node)}); - if(pN){ - var value = domUtils.getComputedStyle(pN,'line-height'); - return value == 'normal' ? 1 : value.replace(/[^\d.]*/ig,""); - } - } - }; -}; - - - - -// plugins/insertcode.js -/** - * 插入代码插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['insertcode'] = function() { - var me = this; - me.ready(function(){ - utils.cssRule('pre','pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}', - me.document) - }); - me.setOpt('insertcode',{ - 'as3':'ActionScript3', - 'bash':'Bash/Shell', - 'cpp':'C/C++', - 'css':'Css', - 'cf':'CodeFunction', - 'c#':'C#', - 'delphi':'Delphi', - 'diff':'Diff', - 'erlang':'Erlang', - 'groovy':'Groovy', - 'html':'Html', - 'java':'Java', - 'jfx':'JavaFx', - 'js':'Javascript', - 'pl':'Perl', - 'php':'Php', - 'plain':'Plain Text', - 'ps':'PowerShell', - 'python':'Python', - 'ruby':'Ruby', - 'scala':'Scala', - 'sql':'Sql', - 'vb':'Vb', - 'xml':'Xml' - }); - - /** - * 插入代码 - * @command insertcode - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } lang 插入代码的语言 - * @example - * ```javascript - * editor.execCommand( 'insertcode', 'javascript' ); - * ``` - */ - - /** - * 如果选区所在位置是插入插入代码区域,返回代码的语言 - * @command insertcode - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回代码的语言 - * @example - * ```javascript - * editor.queryCommandValue( 'insertcode' ); - * ``` - */ - - me.commands['insertcode'] = { - execCommand : function(cmd,lang){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - pre.className = 'brush:'+lang+';toolbar:false;'; - }else{ - var code = ''; - if(rng.collapsed){ - code = browser.ie && browser.ie11below ? (browser.version <= 8 ? ' ':''):'
    '; - }else{ - var frag = rng.extractContents(); - var div = me.document.createElement('div'); - div.appendChild(frag); - - utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\r\t]/g,'')),me.options.filterTxtRules).children,function(node){ - if(browser.ie && browser.ie11below && browser.version > 8){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '\n' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }) - if(!/\n$/.test(code)){ - code += '\n'; - } - } - }else{ - code += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(code)){ - code = code.replace(/\n$/,''); - } - }else{ - if(browser.ie && browser.ie11below){ - - if(node.type =='element'){ - if(node.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - code += '
    ' - }else if(!dtd.$empty[node.tagName]){ - code += cn.innerText(); - } - }else{ - code += cn.data - } - }); - if(!/br>$/.test(code)){ - code += '
    '; - } - } - }else{ - code += node.data + '
    ' - } - if(!node.nextSibling() && /
    $/.test(code)){ - code = code.replace(/
    $/,''); - } - - }else{ - code += (node.type == 'element' ? (dtd.$empty[node.tagName] ? '' : node.innerText()) : node.data); - if(!/br\/?\s*>$/.test(code)){ - if(!node.nextSibling()) - return; - code += '
    ' - } - } - - } - - }); - } - me.execCommand('inserthtml','
    '+code+'
    ',true); - - pre = me.document.getElementById('coder'); - domUtils.removeAttributes(pre,'id'); - var tmpNode = pre.previousSibling; - - if(tmpNode && (tmpNode.nodeType == 3 && tmpNode.nodeValue.length == 1 && browser.ie && browser.version == 6 || domUtils.isEmptyBlock(tmpNode))){ - - domUtils.remove(tmpNode) - } - var rng = me.selection.getRange(); - if(domUtils.isEmptyBlock(pre)){ - rng.setStart(pre,0).setCursor(false,true) - }else{ - rng.selectNodeContents(pre).select() - } - } - - - - }, - queryCommandValue : function(){ - var path = this.selection.getStartElementPath(); - var lang = ''; - utils.each(path,function(node){ - if(node.nodeName =='PRE'){ - var match = node.className.match(/brush:([^;]+)/); - lang = match && match[1] ? match[1] : ''; - return false; - } - }); - return lang; - } - }; - - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var brs = pre.getNodesByTagName('br'); - if(brs.length){ - browser.ie && browser.ie11below && browser.version > 8 && utils.each(brs,function(br){ - var txt = UE.uNode.createText('\n'); - br.parentNode.insertBefore(txt,br); - br.parentNode.removeChild(br); - }); - return; - } - if(browser.ie && browser.ie11below && browser.version > 8) - return; - var code = pre.innerText().split(/\n/); - pre.innerHTML(''); - utils.each(code,function(c){ - if(c.length){ - pre.appendChild(UE.uNode.createText(c)); - } - pre.appendChild(UE.uNode.createElement('br')) - }) - }) - }); - me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('pre'),function(pre){ - var code = ''; - utils.each(pre.children,function(n){ - if(n.type == 'text'){ - //在ie下文本内容有可能末尾带有\n要去掉 - //trace:3396 - code += n.data.replace(/[ ]/g,' ').replace(/\n$/,''); - }else{ - if(n.tagName == 'br'){ - code += '\n' - }else{ - code += (!dtd.$empty[n.tagName] ? '' : n.innerText()); - } - - } - - }); - - pre.innerText(code.replace(/( |\n)+$/,'')) - }) - }); - //不需要判断highlight的command列表 - me.notNeedCodeQuery ={ - help:1, - undo:1, - redo:1, - source:1, - print:1, - searchreplace:1, - fullscreen:1, - preview:1, - insertparagraph:1, - elementpath:1, - insertcode:1, - inserthtml:1, - selectall:1 - }; - //将queyCommamndState重置 - var orgQuery = me.queryCommandState; - me.queryCommandState = function(cmd){ - var me = this; - - if(!me.notNeedCodeQuery[cmd.toLowerCase()] && me.selection && me.queryCommandValue('insertcode')){ - return -1; - } - return UE.Editor.prototype.queryCommandState.apply(this,arguments) - }; - me.addListener('beforeenterkeydown',function(){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(!rng.collapsed){ - rng.deleteContents(); - } - if(!browser.ie || browser.ie9above){ - var tmpNode = me.document.createElement('br'),pre; - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true); - var next = tmpNode.nextSibling; - if(!next && (!browser.ie || browser.version > 10)){ - rng.insertNode(tmpNode.cloneNode(false)); - }else{ - rng.setStartAfter(tmpNode); - } - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[\\s'+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([\\s'+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - if(str){ - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - } - rng.collapse(true).select(true); - }else{ - if(browser.version > 8){ - - var txt = me.document.createTextNode('\n'); - var start = rng.startContainer; - if(rng.startOffset == 0){ - var preNode = start.previousSibling; - if(preNode){ - rng.insertNode(txt); - var fillchar = me.document.createTextNode(' '); - rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - }else{ - rng.insertNode(txt).setStartAfter(txt); - var fillchar = me.document.createTextNode(' '); - start = rng.startContainer.childNodes[rng.startOffset]; - if(start && !/^\n/.test(start.nodeValue)){ - rng.setStartBefore(txt) - } - rng.insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true) - } - - }else{ - var tmpNode = me.document.createElement('br'); - rng.insertNode(tmpNode); - rng.insertNode(me.document.createTextNode(domUtils.fillChar)); - rng.setStartAfter(tmpNode); - pre = tmpNode.previousSibling; - var tmp; - while(pre ){ - tmp = pre; - pre = pre.previousSibling; - if(!pre || pre.nodeName == 'BR'){ - pre = tmp; - break; - } - } - if(pre){ - var str = ''; - while(pre && pre.nodeName != 'BR' && new RegExp('^[ '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - str += pre.nodeValue; - pre = pre.nextSibling; - } - if(pre.nodeName != 'BR'){ - var match = pre.nodeValue.match(new RegExp('^([ '+domUtils.fillChar+']+)')); - if(match && match[1]){ - str += match[1] - } - - } - - str = me.document.createTextNode(str); - rng.insertNode(str).setStartAfter(str); - } - rng.collapse(true).select(); - } - - - } - me.fireEvent('saveScene'); - return true; - } - - - }); - - me.addListener('tabkeydown',function(cmd,evt){ - var rng = me.selection.getRange(); - var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - me.fireEvent('saveScene'); - if(evt.shiftKey){ - - }else{ - if(!rng.collapsed){ - var bk = rng.createBookmark(); - var start = bk.start.previousSibling; - - while(start){ - if(pre.firstChild === start && !domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start); - - break; - } - if(domUtils.isBr(start)){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling); - - break; - } - start = start.previousSibling; - } - var end = bk.end; - start = bk.start.nextSibling; - if(pre.firstChild === bk.start){ - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - - } - while(start && start !== end){ - if(domUtils.isBr(start) && start.nextSibling){ - if(start.nextSibling === end){ - break; - } - pre.insertBefore(me.document.createTextNode(' '),start.nextSibling) - } - - start = start.nextSibling; - } - rng.moveToBookmark(bk).select(); - }else{ - var tmpNode = me.document.createTextNode(' '); - rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true); - } - } - - - me.fireEvent('saveScene'); - return true; - } - - - }); - - - me.addListener('beforeinserthtml',function(evtName,html){ - var me = this, - rng = me.selection.getRange(), - pre = domUtils.findParentByTagName(rng.startContainer,'pre',true); - if(pre){ - if(!rng.collapsed){ - rng.deleteContents() - } - var htmlstr = ''; - if(browser.ie && browser.version > 8){ - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - htmlstr += '\n' - }else if(!dtd.$empty[node.tagName]){ - htmlstr += cn.innerText(); - } - }else{ - htmlstr += cn.data - } - }) - if(!/\n$/.test(htmlstr)){ - htmlstr += '\n'; - } - } - }else{ - htmlstr += node.data + '\n' - } - if(!node.nextSibling() && /\n$/.test(htmlstr)){ - htmlstr = htmlstr.replace(/\n$/,''); - } - }); - var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/ /g,' '))); - rng.insertNode(tmpNode).selectNode(tmpNode).select(); - }else{ - var frag = me.document.createDocumentFragment(); - - utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){ - if(node.type =='element'){ - if(node.tagName == 'br'){ - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - utils.each(node.children,function(cn){ - if(cn.type =='element'){ - if(cn.tagName == 'br'){ - - frag.appendChild(me.document.createElement('br')) - }else if(!dtd.$empty[node.tagName]){ - frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(/ /g,' ')))); - - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( cn.data.replace(/ /g,' ')))); - - } - }) - if(frag.lastChild.nodeName != 'BR'){ - frag.appendChild(me.document.createElement('br')) - } - } - }else{ - frag.appendChild(me.document.createTextNode(utils.html( node.data.replace(/ /g,' ')))); - } - if(!node.nextSibling() && frag.lastChild.nodeName == 'BR'){ - frag.removeChild(frag.lastChild) - } - - - }); - rng.insertNode(frag).select(); - - } - - return true; - } - }); - //方向键的处理 - me.addListener('keydown',function(cmd,evt){ - var me = this,keyCode = evt.keyCode || evt.which; - if(keyCode == 40){ - var rng = me.selection.getRange(),pre,start = rng.startContainer; - if(rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer,'pre',true)) && !pre.nextSibling){ - var last = pre.lastChild - while(last && last.nodeName == 'BR'){ - last = last.previousSibling; - } - if(last === start || rng.startContainer === pre && rng.startOffset == pre.childNodes.length){ - me.execCommand('insertparagraph'); - domUtils.preventDefault(evt) - } - - } - } - }); - //trace:3395 - me.addListener('delkeydown',function(type,evt){ - var rng = this.selection.getRange(); - rng.txtToElmBoundary(true); - var start = rng.startContainer; - if(domUtils.isTagNode(start,'pre') && rng.collapsed && domUtils.isStartInblock(rng)){ - var p = me.document.createElement('p'); - domUtils.fillNode(me.document,p); - start.parentNode.insertBefore(p,start); - domUtils.remove(start); - rng.setStart(p,0).setCursor(false,true); - domUtils.preventDefault(evt); - return true; - } - }) -}; - - -// plugins/cleardoc.js -/** - * 清空文档插件 - * @file - * @since 1.2.6.1 - */ - -/** - * 清空文档 - * @command cleardoc - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('cleardoc'); - * ``` - */ - -UE.commands['cleardoc'] = { - execCommand : function( cmdName) { - var me = this, - enterTag = me.options.enterTag, - range = me.selection.getRange(); - if(enterTag == "br"){ - me.body.innerHTML = "
    "; - range.setStart(me.body,0).setCursor(); - }else{ - me.body.innerHTML = "

    "+(ie ? "" : "
    ")+"

    "; - range.setStart(me.body.firstChild,0).setCursor(false,true); - } - setTimeout(function(){ - me.fireEvent("clearDoc"); - },0); - - } -}; - - - -// plugins/anchor.js -/** - * 锚点插件,为UEditor提供插入锚点支持 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('anchor', function (){ - - return { - bindEvents:{ - 'ready':function(){ - utils.cssRule('anchor', - '.anchorclass{background: url(\'' - + this.options.themePath - + this.options.theme +'/images/anchor.gif\') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}', - this.document); - } - }, - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(a){ - var val; - if(val = a.getAttr('anchorname')){ - a.tagName = 'a'; - a.setAttr({ - anchorname : '', - name : val, - 'class' : '' - }) - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('a'),function(a){ - var val; - if((val = a.getAttr('name')) && !a.getAttr('href')){ - a.tagName = 'img'; - a.setAttr({ - anchorname :a.getAttr('name'), - 'class' : 'anchorclass' - }); - a.setAttr('name') - - } - }) - - }, - commands:{ - /** - * 插入锚点 - * @command anchor - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } name 锚点名称字符串 - * @example - * ```javascript - * //editor 是编辑器实例 - * editor.execCommand('anchor', 'anchor1'); - * ``` - */ - 'anchor':{ - execCommand:function (cmd, name) { - var range = this.selection.getRange(),img = range.getClosedNode(); - if (img && img.getAttribute('anchorname')) { - if (name) { - img.setAttribute('anchorname', name); - } else { - range.setStartBefore(img).setCursor(); - domUtils.remove(img); - } - } else { - if (name) { - //只在选区的开始插入 - var anchor = this.document.createElement('img'); - range.collapse(true); - domUtils.setAttributes(anchor,{ - 'anchorname':name, - 'class':'anchorclass' - }); - range.insertNode(anchor).setStartAfter(anchor).setCursor(false,true); - } - } - } - } - } - } -}); - - -// plugins/wordcount.js -///import core -///commands 字数统计 -///commandsName WordCount,wordCount -///commandsTitle 字数统计 -/* - * Created by JetBrains WebStorm. - * User: taoqili - * Date: 11-9-7 - * Time: 下午8:18 - * To change this template use File | Settings | File Templates. - */ - -UE.plugins['wordcount'] = function(){ - var me = this; - me.setOpt('wordCount',true); - me.addListener('contentchange',function(){ - me.fireEvent('wordcount'); - }); - var timer; - me.addListener('ready',function(){ - var me = this; - domUtils.on(me.body,"keyup",function(evt){ - var code = evt.keyCode||evt.which, - //忽略的按键,ctr,alt,shift,方向键 - ignores = {"16":1,"18":1,"20":1,"37":1,"38":1,"39":1,"40":1}; - if(code in ignores) return; - clearTimeout(timer); - timer = setTimeout(function(){ - me.fireEvent('wordcount'); - },200) - }) - }); -}; - - -// plugins/pagebreak.js -/** - * 分页功能插件 - * @file - * @since 1.2.6.1 - */ -UE.plugins['pagebreak'] = function () { - var me = this, - notBreakTags = ['td']; - me.setOpt('pageBreakTag','_ueditor_page_break_tag_'); - - function fillNode(node){ - if(domUtils.isEmptyBlock(node)){ - var firstChild = node.firstChild,tmpNode; - - while(firstChild && firstChild.nodeType == 1 && domUtils.isEmptyBlock(firstChild)){ - tmpNode = firstChild; - firstChild = firstChild.firstChild; - } - !tmpNode && (tmpNode = node); - domUtils.fillNode(me.document,tmpNode); - } - } - //分页符样式添加 - - me.ready(function(){ - utils.cssRule('pagebreak','.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',me.document); - }); - function isHr(node){ - return node && node.nodeType == 1 && node.tagName == 'HR' && node.className == 'pagebreak'; - } - me.addInputRule(function(root){ - root.traversal(function(node){ - if(node.type == 'text' && node.data == me.options.pageBreakTag){ - var hr = UE.uNode.createElement('
    '); - node.parentNode.insertBefore(hr,node); - node.parentNode.removeChild(node) - } - }) - }); - me.addOutputRule(function(node){ - utils.each(node.getNodesByTagName('hr'),function(n){ - if(n.getAttr('class') == 'pagebreak'){ - var txt = UE.uNode.createText(me.options.pageBreakTag); - n.parentNode.insertBefore(txt,n); - n.parentNode.removeChild(n); - } - }) - - }); - - /** - * 插入分页符 - * @command pagebreak - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 在表格中插入分页符会把表格切分成两部分 - * @remind 获取编辑器内的数据时, 编辑器会把分页符转换成“_ueditor_page_break_tag_”字符串, - * 以便于提交数据到服务器端后处理分页。 - * @example - * ```javascript - * editor.execCommand( 'pagebreak'); //插入一个hr标签,带有样式类名pagebreak - * ``` - */ - - me.commands['pagebreak'] = { - execCommand:function () { - var range = me.selection.getRange(),hr = me.document.createElement('hr'); - domUtils.setAttributes(hr,{ - 'class' : 'pagebreak', - noshade:"noshade", - size:"5" - }); - domUtils.unSelectable(hr); - //table单独处理 - var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true), - - parents = [], pN; - if (node) { - switch (node.tagName) { - case 'TD': - pN = node.parentNode; - if (!pN.previousSibling) { - var table = domUtils.findParentByTagName(pN, 'table'); -// var tableWrapDiv = table.parentNode; -// if(tableWrapDiv && tableWrapDiv.nodeType == 1 -// && tableWrapDiv.tagName == 'DIV' -// && tableWrapDiv.getAttribute('dropdrag') -// ){ -// domUtils.remove(tableWrapDiv,true); -// } - table.parentNode.insertBefore(hr, table); - parents = domUtils.findParents(hr, true); - - } else { - pN.parentNode.insertBefore(hr, pN); - parents = domUtils.findParents(hr); - - } - pN = parents[1]; - if (hr !== pN) { - domUtils.breakParent(hr, pN); - - } - //table要重写绑定一下拖拽 - me.fireEvent('afteradjusttable',me.document); - } - - } else { - - if (!range.collapsed) { - range.deleteContents(); - var start = range.startContainer; - while ( !domUtils.isBody(start) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start)) { - range.setStartBefore(start).collapse(true); - domUtils.remove(start); - start = range.startContainer; - } - - } - range.insertNode(hr); - - var pN = hr.parentNode, nextNode; - while (!domUtils.isBody(pN)) { - domUtils.breakParent(hr, pN); - nextNode = hr.nextSibling; - if (nextNode && domUtils.isEmptyBlock(nextNode)) { - domUtils.remove(nextNode); - } - pN = hr.parentNode; - } - nextNode = hr.nextSibling; - var pre = hr.previousSibling; - if(isHr(pre)){ - domUtils.remove(pre); - }else{ - pre && fillNode(pre); - } - - if(!nextNode){ - var p = me.document.createElement('p'); - - hr.parentNode.appendChild(p); - domUtils.fillNode(me.document,p); - range.setStart(p,0).collapse(true); - }else{ - if(isHr(nextNode)){ - domUtils.remove(nextNode); - }else{ - fillNode(nextNode); - } - range.setEndAfter(hr).collapse(false); - } - - range.select(true); - - } - - } - }; -}; - -// plugins/wordimage.js -///import core -///commands 本地图片引导上传 -///commandsName WordImage -///commandsTitle 本地图片引导上传 -///commandsDialog dialogs\wordimage - -UE.plugin.register('wordimage',function(){ - var me = this, - images = []; - return { - commands : { - 'wordimage':{ - execCommand:function () { - var images = domUtils.getElementsByTagName(me.body, "img"); - var urlList = []; - for (var i = 0, ci; ci = images[i++];) { - var url = ci.getAttribute("word_img"); - url && urlList.push(url); - } - return urlList; - }, - queryCommandState:function () { - images = domUtils.getElementsByTagName(me.body, "img"); - for (var i = 0, ci; ci = images[i++];) { - if (ci.getAttribute("word_img")) { - return 1; - } - } - return -1; - }, - notNeedUndo:true - } - }, - inputRule : function (root) { - utils.each(root.getNodesByTagName('img'), function (img) { - var attrs = img.attrs, - flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43, - opt = me.options, - src = opt.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif'; - if (attrs['src'] && /^(?:(file:\/+))/.test(attrs['src'])) { - img.setAttr({ - width:attrs.width, - height:attrs.height, - alt:attrs.alt, - word_img: attrs.src, - src:src, - 'style':'background:url(' + ( flag ? opt.themePath + opt.theme + '/images/word.gif' : opt.langPath + opt.lang + '/images/localimage.png') + ') no-repeat center center;border:1px solid #ddd' - }) - } - }) - } - } -}); - -// plugins/dragdrop.js -UE.plugins['dragdrop'] = function (){ - - var me = this; - me.ready(function(){ - domUtils.on(this.body,'dragend',function(){ - var rng = me.selection.getRange(); - var node = rng.getClosedNode()||me.selection.getStart(); - - if(node && node.tagName == 'IMG'){ - - var pre = node.previousSibling,next; - while(next = node.nextSibling){ - if(next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild){ - domUtils.remove(next) - }else{ - break; - } - } - - - if((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !domUtils.isEmptyBlock(next))){ - if(pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)){ - pre.appendChild(node); - domUtils.moveChild(next,pre); - domUtils.remove(next); - }else if(next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)){ - next.insertBefore(node,next.firstChild); - } - - if(pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)){ - domUtils.remove(pre) - } - if(next && next.tagName == 'P' && domUtils.isEmptyBlock(next)){ - domUtils.remove(next) - } - rng.selectNode(node).select(); - me.fireEvent('saveScene'); - - } - - } - - }) - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var rng = me.selection.getRange(),node; - if(node = domUtils.findParentByTagName(rng.startContainer,'p',true)){ - if(domUtils.getComputedStyle(node,'text-align') == 'center'){ - domUtils.removeStyle(node,'text-align') - } - } - } - }) -}; - - -// plugins/undo.js -/** - * undo redo - * @file - * @since 1.2.6.1 - */ - -/** - * 撤销上一次执行的命令 - * @command undo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'undo' ); - * ``` - */ - -/** - * 重做上一次执行的命令 - * @command redo - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'redo' ); - * ``` - */ - -UE.plugins['undo'] = function () { - var saveSceneTimer; - var me = this, - maxUndoCount = me.options.maxUndoCount || 20, - maxInputCount = me.options.maxInputCount || 20, - fillchar = new RegExp(domUtils.fillChar + '|<\/hr>', 'gi');// ie会产生多余的 - var noNeedFillCharTags = { - ol:1,ul:1,table:1,tbody:1,tr:1,body:1 - }; - var orgState = me.options.autoClearEmptyNode; - function compareAddr(indexA, indexB) { - if (indexA.length != indexB.length) - return 0; - for (var i = 0, l = indexA.length; i < l; i++) { - if (indexA[i] != indexB[i]) - return 0 - } - return 1; - } - - function compareRangeAddress(rngAddrA, rngAddrB) { - if (rngAddrA.collapsed != rngAddrB.collapsed) { - return 0; - } - if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) { - return 0; - } - return 1; - } - - function UndoManager() { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.undo = function () { - if (this.hasUndo) { - if (!this.list[this.index - 1] && this.list.length == 1) { - this.reset(); - return; - } - while (this.list[this.index].content == this.list[this.index - 1].content) { - this.index--; - if (this.index == 0) { - return this.restore(0); - } - } - this.restore(--this.index); - } - }; - this.redo = function () { - if (this.hasRedo) { - while (this.list[this.index].content == this.list[this.index + 1].content) { - this.index++; - if (this.index == this.list.length - 1) { - return this.restore(this.index); - } - } - this.restore(++this.index); - } - }; - - this.restore = function () { - var me = this.editor; - var scene = this.list[this.index]; - var root = UE.htmlparser(scene.content.replace(fillchar, '')); - me.options.autoClearEmptyNode = false; - me.filterInputRule(root); - me.options.autoClearEmptyNode = orgState; - //trace:873 - //去掉展位符 - me.document.body.innerHTML = root.toHtml(); - me.fireEvent('afterscencerestore'); - //处理undo后空格不展位的问题 - if (browser.ie) { - utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){ - if(domUtils.isEmptyNode(node)){ - domUtils.fillNode(me.document, node); - } - }) - } - - try{ - var rng = new dom.Range(me.document).moveToAddress(scene.address); - rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]); - }catch(e){} - - this.update(); - this.clearKey(); - //不能把自己reset了 - me.fireEvent('reset', true); - }; - - this.getScene = function () { - var me = this.editor; - var rng = me.selection.getRange(), - rngAddress = rng.createAddress(false,true); - me.fireEvent('beforegetscene'); - var root = UE.htmlparser(me.body.innerHTML); - me.options.autoClearEmptyNode = false; - me.filterOutputRule(root); - me.options.autoClearEmptyNode = orgState; - var cont = root.toHtml(); - //trace:3461 - //这个会引起回退时导致空格丢失的情况 -// browser.ie && (cont = cont.replace(/> <').replace(/\s*\s*/g, '>')); - me.fireEvent('aftergetscene'); - - return { - address:rngAddress, - content:cont - } - }; - this.save = function (notCompareRange,notSetCursor) { - clearTimeout(saveSceneTimer); - var currentScene = this.getScene(notSetCursor), - lastScene = this.list[this.index]; - - if(lastScene && lastScene.content != currentScene.content){ - me.trigger('contentchange') - } - //内容相同位置相同不存 - if (lastScene && lastScene.content == currentScene.content && - ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) ) - ) { - return; - } - this.list = this.list.slice(0, this.index + 1); - this.list.push(currentScene); - //如果大于最大数量了,就把最前的剔除 - if (this.list.length > maxUndoCount) { - this.list.shift(); - } - this.index = this.list.length - 1; - this.clearKey(); - //跟新undo/redo状态 - this.update(); - - }; - this.update = function () { - this.hasRedo = !!this.list[this.index + 1]; - this.hasUndo = !!this.list[this.index - 1]; - }; - this.reset = function () { - this.list = []; - this.index = 0; - this.hasUndo = false; - this.hasRedo = false; - this.clearKey(); - }; - this.clearKey = function () { - keycont = 0; - lastKeyCode = null; - }; - } - - me.undoManger = new UndoManager(); - me.undoManger.editor = me; - function saveScene() { - this.undoManger.save(); - } - - me.addListener('saveScene', function () { - var args = Array.prototype.splice.call(arguments,1); - this.undoManger.save.apply(this.undoManger,args); - }); - -// me.addListener('beforeexeccommand', saveScene); -// me.addListener('afterexeccommand', saveScene); - - me.addListener('reset', function (type, exclude) { - if (!exclude) { - this.undoManger.reset(); - } - }); - me.commands['redo'] = me.commands['undo'] = { - execCommand:function (cmdName) { - this.undoManger[cmdName](); - }, - queryCommandState:function (cmdName) { - return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1; - }, - notNeedUndo:1 - }; - - var keys = { - // /*Backspace*/ 8:1, /*Delete*/ 46:1, - /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1, - 37:1, 38:1, 39:1, 40:1 - - }, - keycont = 0, - lastKeyCode; - //输入法状态下不计算字符数 - var inputType = false; - me.addListener('ready', function () { - domUtils.on(this.body, 'compositionstart', function () { - inputType = true; - }); - domUtils.on(this.body, 'compositionend', function () { - inputType = false; - }) - }); - //快捷键 - me.addshortcutkey({ - "Undo":"ctrl+90", //undo - "Redo":"ctrl+89" //redo - - }); - var isCollapsed = true; - me.addListener('keydown', function (type, evt) { - - var me = this; - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - - if(!me.selection.getRange().collapsed){ - me.undoManger.save(false,true); - isCollapsed = false; - return; - } - if (me.undoManger.list.length == 0) { - me.undoManger.save(true); - } - clearTimeout(saveSceneTimer); - function save(cont){ - cont.undoManger.save(false,true); - cont.fireEvent('selectionchange'); - } - saveSceneTimer = setTimeout(function(){ - if(inputType){ - var interalTimer = setInterval(function(){ - if(!inputType){ - save(me); - clearInterval(interalTimer) - } - },300) - return; - } - save(me); - },200); - - lastKeyCode = keyCode; - keycont++; - if (keycont >= maxInputCount ) { - save(me) - } - } - }); - me.addListener('keyup', function (type, evt) { - var keyCode = evt.keyCode || evt.which; - if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - if (inputType) - return; - if(!isCollapsed){ - this.undoManger.save(false,true); - isCollapsed = true; - } - } - }); - //扩展实例,添加关闭和开启命令undo - me.stopCmdUndo = function(){ - me.__hasEnterExecCommand = true; - }; - me.startCmdUndo = function(){ - me.__hasEnterExecCommand = false; - } -}; - - -// plugins/copy.js -UE.plugin.register('copy', function () { - - var me = this; - - function initZeroClipboard() { - - ZeroClipboard.config({ - debug: false, - swfPath: me.options.UEDITOR_HOME_URL + 'third-party/zeroclipboard/ZeroClipboard.swf' - }); - - var client = me.zeroclipboard = new ZeroClipboard(); - - // 复制内容 - client.on('copy', function (e) { - var client = e.client, - rng = me.selection.getRange(), - div = document.createElement('div'); - - div.appendChild(rng.cloneContents()); - client.setText(div.innerText || div.textContent); - client.setHtml(div.innerHTML); - rng.select(); - }); - // hover事件传递到target - client.on('mouseover mouseout', function (e) { - var target = e.target; - if (e.type == 'mouseover') { - domUtils.addClass(target, 'edui-state-hover'); - } else if (e.type == 'mouseout') { - domUtils.removeClasses(target, 'edui-state-hover'); - } - }); - // flash加载不成功 - client.on('wrongflash noflash', function () { - ZeroClipboard.destroy(); - }); - } - - return { - bindEvents: { - 'ready': function () { - if (!browser.ie) { - if (window.ZeroClipboard) { - initZeroClipboard(); - } else { - utils.loadFile(document, { - src: me.options.UEDITOR_HOME_URL + "third-party/zeroclipboard/ZeroClipboard.js", - tag: "script", - type: "text/javascript", - defer: "defer" - }, function () { - initZeroClipboard(); - }); - } - } - } - }, - commands: { - 'copy': { - execCommand: function (cmd) { - if (!me.document.execCommand('copy')) { - alert(me.getLang('copymsg')); - } - } - } - } - } -}); - - -// plugins/paste.js -///import core -///import plugins/inserthtml.js -///import plugins/undo.js -///import plugins/serialize.js -///commands 粘贴 -///commandsName PastePlain -///commandsTitle 纯文本粘贴模式 -/** - * @description 粘贴 - * @author zhanyi - */ -UE.plugins['paste'] = function () { - function getClipboardData(callback) { - var doc = this.document; - if (doc.getElementById('baidu_pastebin')) { - return; - } - var range = this.selection.getRange(), - bk = range.createBookmark(), - //创建剪贴的容器div - pastebin = doc.createElement('div'); - pastebin.id = 'baidu_pastebin'; - // Safari 要求div必须有内容,才能粘贴内容进来 - browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar)); - doc.body.appendChild(pastebin); - //trace:717 隐藏的span不能得到top - //bk.start.innerHTML = ' '; - bk.start.style.display = ''; - pastebin.style.cssText = "position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" + - //要在现在光标平行的位置加入,否则会出现跳动的问题 - domUtils.getXY(bk.start).y + 'px'; - - range.selectNodeContents(pastebin).select(true); - - setTimeout(function () { - if (browser.webkit) { - for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) { - if (domUtils.isEmptyNode(pi)) { - domUtils.remove(pi); - } else { - pastebin = pi; - break; - } - } - } - try { - pastebin.parentNode.removeChild(pastebin); - } catch (e) { - } - range.moveToBookmark(bk).select(true); - callback(pastebin); - }, 0); - } - - var me = this; - - me.setOpt({ - retainOnlyLabelPasted : false - }); - - var txtContent, htmlContent, address; - - function getPureHtml(html){ - return html.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function (a, b, tagName, attrs) { - tagName = tagName.toLowerCase(); - if ({img: 1}[tagName]) { - return a; - } - attrs = attrs.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, function (str, atr, val) { - if ({ - 'src': 1, - 'href': 1, - 'name': 1 - }[atr.toLowerCase()]) { - return atr + '=' + val + ' ' - } - return '' - }); - if ({ - 'span': 1, - 'div': 1 - }[tagName]) { - return '' - } else { - - return '<' + b + tagName + ' ' + utils.trim(attrs) + '>' - } - - }); - } - function filter(div) { - var html; - if (div.firstChild) { - //去掉cut中添加的边界值 - var nodes = domUtils.getElementsByTagName(div, 'span'); - for (var i = 0, ni; ni = nodes[i++];) { - if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') { - domUtils.remove(ni); - } - } - - if (browser.webkit) { - - var brs = div.querySelectorAll('div br'); - for (var i = 0, bi; bi = brs[i++];) { - var pN = bi.parentNode; - if (pN.tagName == 'DIV' && pN.childNodes.length == 1) { - pN.innerHTML = '


    '; - domUtils.remove(pN); - } - } - var divs = div.querySelectorAll('#baidu_pastebin'); - for (var i = 0, di; di = divs[i++];) { - var tmpP = me.document.createElement('p'); - di.parentNode.insertBefore(tmpP, di); - while (di.firstChild) { - tmpP.appendChild(di.firstChild); - } - domUtils.remove(di); - } - - var metas = div.querySelectorAll('meta'); - for (var i = 0, ci; ci = metas[i++];) { - domUtils.remove(ci); - } - - var brs = div.querySelectorAll('br'); - for (i = 0; ci = brs[i++];) { - if (/^apple-/i.test(ci.className)) { - domUtils.remove(ci); - } - } - } - if (browser.gecko) { - var dirtyNodes = div.querySelectorAll('[_moz_dirty]'); - for (i = 0; ci = dirtyNodes[i++];) { - ci.removeAttribute('_moz_dirty'); - } - } - if (!browser.ie) { - var spans = div.querySelectorAll('span.Apple-style-span'); - for (var i = 0, ci; ci = spans[i++];) { - domUtils.remove(ci, true); - } - } - - //ie下使用innerHTML会产生多余的\r\n字符,也会产生 这里过滤掉 - html = div.innerHTML;//.replace(/>(?:(\s| )*?)<'); - - //过滤word粘贴过来的冗余属性 - html = UE.filterWord(html); - //取消了忽略空白的第二个参数,粘贴过来的有些是有空白的,会被套上相关的标签 - var root = UE.htmlparser(html); - //如果给了过滤规则就先进行过滤 - if (me.options.filterRules) { - UE.filterNode(root, me.options.filterRules); - } - //执行默认的处理 - me.filterInputRule(root); - //针对chrome的处理 - if (browser.webkit) { - var br = root.lastChild(); - if (br && br.type == 'element' && br.tagName == 'br') { - root.removeChild(br) - } - utils.each(me.body.querySelectorAll('div'), function (node) { - if (domUtils.isEmptyBlock(node)) { - domUtils.remove(node,true) - } - }) - } - html = {'html': root.toHtml()}; - me.fireEvent('beforepaste', html, root); - //抢了默认的粘贴,那后边的内容就不执行了,比如表格粘贴 - if(!html.html){ - return; - } - root = UE.htmlparser(html.html,true); - //如果开启了纯文本模式 - if (me.queryCommandState('pasteplain') === 1) { - me.execCommand('insertHtml', UE.filterNode(root, me.options.filterTxtRules).toHtml(), true); - } else { - //文本模式 - UE.filterNode(root, me.options.filterTxtRules); - txtContent = root.toHtml(); - //完全模式 - htmlContent = html.html; - - address = me.selection.getRange().createAddress(true); - me.execCommand('insertHtml', me.getOpt('retainOnlyLabelPasted') === true ? getPureHtml(htmlContent) : htmlContent, true); - } - me.fireEvent("afterpaste", html); - } - } - - me.addListener('pasteTransfer', function (cmd, plainType) { - - if (address && txtContent && htmlContent && txtContent != htmlContent) { - var range = me.selection.getRange(); - range.moveToAddress(address, true); - - if (!range.collapsed) { - - while (!domUtils.isBody(range.startContainer) - ) { - var start = range.startContainer; - if(start.nodeType == 1){ - start = start.childNodes[range.startOffset]; - if(!start){ - range.setStartBefore(range.startContainer); - continue; - } - var pre = start.previousSibling; - - if(pre && pre.nodeType == 3 && new RegExp('^[\n\r\t '+domUtils.fillChar+']*$').test(pre.nodeValue)){ - range.setStartBefore(pre) - } - } - if(range.startOffset == 0){ - range.setStartBefore(range.startContainer); - }else{ - break; - } - - } - while (!domUtils.isBody(range.endContainer) - ) { - var end = range.endContainer; - if(end.nodeType == 1){ - end = end.childNodes[range.endOffset]; - if(!end){ - range.setEndAfter(range.endContainer); - continue; - } - var next = end.nextSibling; - if(next && next.nodeType == 3 && new RegExp('^[\n\r\t'+domUtils.fillChar+']*$').test(next.nodeValue)){ - range.setEndAfter(next) - } - } - if(range.endOffset == range.endContainer[range.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length){ - range.setEndAfter(range.endContainer); - }else{ - break; - } - - } - - } - - range.deleteContents(); - range.select(true); - me.__hasEnterExecCommand = true; - var html = htmlContent; - if (plainType === 2 ) { - html = getPureHtml(html); - } else if (plainType) { - html = txtContent; - } - me.execCommand('inserthtml', html, true); - me.__hasEnterExecCommand = false; - var rng = me.selection.getRange(); - while (!domUtils.isBody(rng.startContainer) && !rng.startOffset && - rng.startContainer[rng.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length - ) { - rng.setStartBefore(rng.startContainer); - } - var tmpAddress = rng.createAddress(true); - address.endAddress = tmpAddress.startAddress; - } - }); - - me.addListener('ready', function () { - domUtils.on(me.body, 'cut', function () { - var range = me.selection.getRange(); - if (!range.collapsed && me.undoManger) { - me.undoManger.save(); - } - }); - - //ie下beforepaste在点击右键时也会触发,所以用监控键盘才处理 - domUtils.on(me.body, browser.ie || browser.opera ? 'keydown' : 'paste', function (e) { - if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) { - return; - } - getClipboardData.call(me, function (div) { - filter(div); - }); - }); - - }); - - me.commands['paste'] = { - execCommand: function (cmd) { - if (browser.ie) { - getClipboardData.call(me, function (div) { - filter(div); - }); - me.document.execCommand('paste'); - } else { - alert(me.getLang('pastemsg')); - } - } - } -}; - - - -// plugins/puretxtpaste.js -/** - * 纯文本粘贴插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['pasteplain'] = function(){ - var me = this; - me.setOpt({ - 'pasteplain':false, - 'filterTxtRules' : function(){ - function transP(node){ - node.tagName = 'p'; - node.setStyle(); - } - function removeNode(node){ - node.parentNode.removeChild(node,true) - } - return { - //直接删除及其字节点内容 - '-' : 'script style object iframe embed input select', - 'p': {$:{}}, - 'br':{$:{}}, - div: function (node) { - var tmpNode, p = UE.uNode.createElement('p'); - while (tmpNode = node.firstChild()) { - if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { - p.appendChild(tmpNode); - } else { - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - p = UE.uNode.createElement('p'); - } else { - node.parentNode.insertBefore(tmpNode, node); - } - } - } - if (p.firstChild()) { - node.parentNode.insertBefore(p, node); - } - node.parentNode.removeChild(node); - }, - ol: removeNode, - ul: removeNode, - dl:removeNode, - dt:removeNode, - dd:removeNode, - 'li':removeNode, - 'caption':transP, - 'th':transP, - 'tr':transP, - 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - 'td':function(node){ - //没有内容的td直接删掉 - var txt = !!node.innerText(); - if(txt){ - node.parentNode.insertAfter(UE.uNode.createText('    '),node); - } - node.parentNode.removeChild(node,node.innerText()) - } - } - }() - }); - //暂时这里支持一下老版本的属性 - var pasteplain = me.options.pasteplain; - - /** - * 启用或取消纯文本粘贴模式 - * @command pasteplain - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - - /** - * 查询当前是否处于纯文本粘贴模式 - * @command pasteplain - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果处于纯文本模式,返回1,否则,返回0 - * @example - * ```javascript - * editor.queryCommandState( 'pasteplain' ); - * ``` - */ - me.commands['pasteplain'] = { - queryCommandState: function (){ - return pasteplain ? 1 : 0; - }, - execCommand: function (){ - pasteplain = !pasteplain|0; - }, - notNeedUndo : 1 - }; -}; - -// plugins/list.js -/** - * 有序列表,无序列表插件 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['list'] = function () { - var me = this, - notExchange = { - 'TD':1, - 'PRE':1, - 'BLOCKQUOTE':1 - }; - var customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num': 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot':'dot' - }; - - me.setOpt( { - 'autoTransWordToList':false, - 'insertorderedlist':{ - 'num':'', - 'num1':'', - 'num2':'', - 'cn':'', - 'cn1':'', - 'cn2':'', - 'decimal':'', - 'lower-alpha':'', - 'lower-roman':'', - 'upper-alpha':'', - 'upper-roman':'' - }, - 'insertunorderedlist':{ - 'circle':'', - 'disc':'', - 'square':'', - 'dash' : '', - 'dot':'' - }, - listDefaultPaddingLeft : '30', - listiconpath : 'http://bs.baidu.com/listicon/', - maxListLevel : -1,//-1不限制 - disablePInList:false - } ); - function listToArray(list){ - var arr = []; - for(var p in list){ - arr.push(p) - } - return arr; - } - var listStyle = { - 'OL':listToArray(me.options.insertorderedlist), - 'UL':listToArray(me.options.insertunorderedlist) - }; - var liiconpath = me.options.listiconpath; - - //根据用户配置,调整customStyle - for(var s in customStyle){ - if(!me.options.insertorderedlist.hasOwnProperty(s) && !me.options.insertunorderedlist.hasOwnProperty(s)){ - delete customStyle[s]; - } - } - - me.ready(function () { - var customCss = []; - for(var p in customStyle){ - if(p == 'dash' || p == 'dot'){ - customCss.push('li.list-' + customStyle[p] + '{background-image:url(' + liiconpath +customStyle[p]+'.gif)}'); - customCss.push('ul.custom_'+p+'{list-style:none;}ul.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - }else{ - for(var i= 0;i<99;i++){ - customCss.push('li.list-' + customStyle[p] + i + '{background-image:url(' + liiconpath + 'list-'+customStyle[p] + i + '.gif)}') - } - customCss.push('ol.custom_'+p+'{list-style:none;}ol.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(p){ - case 'cn': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:30px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:40px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:55px}'); - customCss.push('li.list-'+p+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - customCss.push('li.list-'+p+'-paddingleft-1{padding-left:35px}'); - customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - customCss.push('li.list-'+p+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - customCss.push('li.list-'+p+'-paddingleft{padding-left:20px}'); - } - } - customCss.push('.list-paddingleft-1{padding-left:0}'); - customCss.push('.list-paddingleft-2{padding-left:'+me.options.listDefaultPaddingLeft+'px}'); - customCss.push('.list-paddingleft-3{padding-left:'+me.options.listDefaultPaddingLeft*2+'px}'); - //如果不给宽度会在自定应样式里出现滚动条 - utils.cssRule('list', 'ol,ul{margin:0;pading:0;'+(browser.ie ? '' : 'width:95%')+'}li{clear:both;}'+customCss.join('\n'), me.document); - }); - //单独处理剪切的问题 - me.ready(function(){ - domUtils.on(me.body,'cut',function(){ - setTimeout(function(){ - var rng = me.selection.getRange(),li; - //trace:3416 - if(!rng.collapsed){ - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - if(!li.nextSibling && domUtils.isEmptyBlock(li)){ - var pn = li.parentNode,node; - if(node = pn.previousSibling){ - domUtils.remove(pn); - rng.setStartAtLast(node).collapse(true); - rng.select(true); - }else if(node = pn.nextSibling){ - domUtils.remove(pn); - rng.setStartAtFirst(node).collapse(true); - rng.select(true); - }else{ - var tmpNode = me.document.createElement('p'); - domUtils.fillNode(me.document,tmpNode); - pn.parentNode.insertBefore(tmpNode,pn); - domUtils.remove(pn); - rng.setStart(tmpNode,0).collapse(true); - rng.select(true); - } - } - } - } - - }) - }) - }); - - function getStyle(node){ - var cls = node.className; - if(domUtils.hasClass(node,/custom_/)){ - return cls.match(/custom_(\w+)/)[1] - } - return domUtils.getStyle(node, 'list-style-type') - - } - - me.addListener('beforepaste',function(type,html){ - var me = this, - rng = me.selection.getRange(),li; - var root = UE.htmlparser(html.html,true); - if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){ - var list = li.parentNode,tagName = list.tagName == 'OL' ? 'ul':'ol'; - utils.each(root.getNodesByTagName(tagName),function(n){ - n.tagName = list.tagName; - n.setAttr(); - if(n.parentNode === root){ - type = getStyle(list) || (list.tagName == 'OL' ? 'decimal' : 'disc') - }else{ - var className = n.parentNode.getAttr('class'); - if(className && /custom_/.test(className)){ - type = className.match(/custom_(\w+)/)[1] - }else{ - type = n.parentNode.getStyle('list-style-type'); - } - if(!type){ - type = list.tagName == 'OL' ? 'decimal' : 'disc'; - } - } - var index = utils.indexOf(listStyle[list.tagName], type); - if(n.parentNode !== root) - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - if(customStyle[currentStyle]){ - n.setAttr('class', 'custom_' + currentStyle) - - }else{ - n.setStyle('list-style-type',currentStyle) - } - }) - - } - - html.html = root.toHtml(); - }); - //导出时,去掉p标签 - me.getOpt('disablePInList') === true && me.addOutputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var newChildrens = [],index=0; - utils.each(li.children,function(n){ - if(n.tagName == 'p'){ - var tmpNode; - while(tmpNode = n.children.pop()) { - newChildrens.splice(index,0,tmpNode); - tmpNode.parentNode = li; - lastNode = tmpNode; - } - tmpNode = newChildrens[newChildrens.length-1]; - if(!tmpNode || tmpNode.type != 'element' || tmpNode.tagName != 'br'){ - var br = UE.uNode.createElement('br'); - br.parentNode = li; - newChildrens.push(br); - } - - index = newChildrens.length; - } - }); - if(newChildrens.length){ - li.children = newChildrens; - } - }); - }); - //进入编辑器的li要套p标签 - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('li'),function(li){ - var tmpP = UE.uNode.createElement('p'); - for(var i= 0,ci;ci=li.children[i];){ - if(ci.type == 'text' || dtd.p[ci.tagName]){ - tmpP.appendChild(ci); - }else{ - if(tmpP.firstChild()){ - li.insertBefore(tmpP,ci); - tmpP = UE.uNode.createElement('p'); - i = i + 2; - }else{ - i++; - } - - } - } - if(tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()){ - li.appendChild(tmpP); - } - //trace:3357 - //p不能为空 - if (!tmpP.firstChild()) { - tmpP.innerHTML(browser.ie ? ' ' : '
    ') - } - //去掉末尾的空白 - var p = li.firstChild(); - var lastChild = p.lastChild(); - if(lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)){ - p.removeChild(lastChild) - } - }); - if(me.options.autoTransWordToList){ - var orderlisttype = { - 'num1':/^\d+\)/, - 'decimal':/^\d+\./, - 'lower-alpha':/^[a-z]+\)/, - 'upper-alpha':/^[A-Z]+\./, - 'cn':/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/, - 'cn2':/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/ - }, - unorderlisttype = { - 'square':'n' - }; - function checkListType(content,container){ - var span = container.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle('font-family'))){ - for(var p in unorderlisttype){ - if(unorderlisttype[p] == span.data){ - return p - } - } - return 'disc' - } - for(var p in orderlisttype){ - if(orderlisttype[p].test(content)){ - return p; - } - } - - } - utils.each(root.getNodesByTagName('p'),function(node){ - if(node.getAttr('class') != 'MsoListParagraph'){ - return - } - - //word粘贴过来的会带有margin要去掉,但这样也可能会误命中一些央视 - node.setStyle('margin',''); - node.setStyle('margin-left',''); - node.setAttr('class',''); - - function appendLi(list,p,type){ - if(list.tagName == 'ol'){ - if(browser.ie){ - var first = p.firstChild(); - if(first.type =='element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())){ - p.removeChild(first); - } - }else{ - p.innerHTML(p.innerHTML().replace(orderlisttype[type],'')); - } - }else{ - p.removeChild(p.firstChild()) - } - - var li = UE.uNode.createElement('li'); - li.appendChild(p); - list.appendChild(li); - } - var tmp = node,type,cacheNode = node; - - if(node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(),node))){ - - var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' : 'ul'); - if(customStyle[type]){ - list.setAttr('class','custom_'+type) - }else{ - list.setStyle('list-style-type',type) - } - while(node && node.parentNode.tagName != 'li' && checkListType(node.innerText(),node)){ - tmp = node.nextSibling(); - if(!tmp){ - node.parentNode.insertBefore(list,node) - } - appendLi(list,node,type); - node = tmp; - } - if(!list.parentNode && node && node.parentNode){ - node.parentNode.insertBefore(list,node) - } - } - var span = cacheNode.firstChild(); - if(span && span.type == 'element' && span.tagName == 'span' && /^\s*( )+\s*$/.test(span.innerText())){ - span.parentNode.removeChild(span) - } - }) - } - - }); - - //调整索引标签 - me.addListener('contentchange',function(){ - adjustListStyle(me.document) - }); - - function adjustListStyle(doc,ignore){ - utils.each(domUtils.getElementsByTagName(doc,'ol ul'),function(node){ - - if(!domUtils.inDoc(node,doc)) - return; - - var parent = node.parentNode; - if(parent.tagName == node.tagName){ - var nodeStyleType = getStyle(node) || (node.tagName == 'OL' ? 'decimal' : 'disc'), - parentStyleType = getStyle(parent) || (parent.tagName == 'OL' ? 'decimal' : 'disc'); - if(nodeStyleType == parentStyleType){ - var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType); - styleIndex = styleIndex + 1 == listStyle[node.tagName].length ? 0 : styleIndex + 1; - setListStyle(node,listStyle[node.tagName][styleIndex]) - } - - } - var index = 0,type = 2; - if( domUtils.hasClass(node,/custom_/)){ - if(!(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/))){ - type = 1; - } - }else{ - if(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/)){ - type = 3; - } - } - - var style = domUtils.getStyle(node, 'list-style-type'); - style && (node.style.cssText = 'list-style-type:' + style); - node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type; - utils.each(domUtils.getElementsByTagName(node,'li'),function(li){ - li.style.cssText && (li.style.cssText = ''); - if(!li.firstChild){ - domUtils.remove(li); - return; - } - if(li.parentNode !== node){ - return; - } - index++; - if(domUtils.hasClass(node,/custom_/) ){ - var paddingLeft = 1,currentStyle = getStyle(node); - if(node.tagName == 'OL'){ - if(currentStyle){ - switch(currentStyle){ - case 'cn' : - case 'cn1': - case 'cn2': - if(index > 10 && (index % 10 == 0 || index > 10 && index < 20)){ - paddingLeft = 2 - }else if(index > 20){ - paddingLeft = 3 - } - break; - case 'num2' : - if(index > 9){ - paddingLeft = 2 - } - } - } - li.className = 'list-'+customStyle[currentStyle]+ index + ' ' + 'list-'+currentStyle+'-paddingleft-' + paddingLeft; - }else{ - li.className = 'list-'+customStyle[currentStyle] + ' ' + 'list-'+currentStyle+'-paddingleft'; - } - }else{ - li.className = li.className.replace(/list-[\w\-]+/gi,''); - } - var className = li.getAttribute('class'); - if(className !== null && !className.replace(/\s/g,'')){ - domUtils.removeAttributes(li,'class') - } - }); - !ignore && adjustList(node,node.tagName.toLowerCase(),getStyle(node)||domUtils.getStyle(node, 'list-style-type'),true); - }) - } - function adjustList(list, tag, style,ignoreEmpty) { - var nextList = list.nextSibling; - if (nextList && nextList.nodeType == 1 && nextList.tagName.toLowerCase() == tag && (getStyle(nextList) || domUtils.getStyle(nextList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(nextList, list); - if (nextList.childNodes.length == 0) { - domUtils.remove(nextList); - } - } - if(nextList && domUtils.isFillChar(nextList)){ - domUtils.remove(nextList); - } - var preList = list.previousSibling; - if (preList && preList.nodeType == 1 && preList.tagName.toLowerCase() == tag && (getStyle(preList) || domUtils.getStyle(preList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) { - domUtils.moveChild(list, preList); - } - if(preList && domUtils.isFillChar(preList)){ - domUtils.remove(preList); - } - !ignoreEmpty && domUtils.isEmptyBlock(list) && domUtils.remove(list); - if(getStyle(list)){ - adjustListStyle(list.ownerDocument,true) - } - } - - function setListStyle(list,style){ - if(customStyle[style]){ - list.className = 'custom_' + style; - } - try{ - domUtils.setStyle(list, 'list-style-type', style); - }catch(e){} - } - function clearEmptySibling(node) { - var tmpNode = node.previousSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - tmpNode = node.nextSibling; - if (tmpNode && domUtils.isEmptyBlock(tmpNode)) { - domUtils.remove(tmpNode); - } - } - - me.addListener('keydown', function (type, evt) { - function preventAndSave() { - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - me.fireEvent('contentchange'); - me.undoManger && me.undoManger.save(); - } - function findList(node,filterFn){ - while(node && !domUtils.isBody(node)){ - if(filterFn(node)){ - return null - } - if(node.nodeType == 1 && /[ou]l/i.test(node.tagName)){ - return node; - } - node = node.parentNode; - } - return null; - } - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13 && !evt.shiftKey) {//回车 - var rng = me.selection.getRange(), - parent = domUtils.findParent(rng.startContainer,function(node){return domUtils.isBlockElm(node)},true), - li = domUtils.findParentByTagName(rng.startContainer,'li',true); - if(parent && parent.tagName != 'PRE' && !li){ - var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, 'g'),''); - if(/^\s*1\s*\.[^\d]/.test(html)){ - parent.innerHTML = html.replace(/^\s*1\s*\./,''); - rng.setStartAtLast(parent).collapse(true).select(); - me.__hasEnterExecCommand = true; - me.execCommand('insertorderedlist'); - me.__hasEnterExecCommand = false; - } - } - var range = me.selection.getRange(), - start = findList(range.startContainer,function (node) { - return node.tagName == 'TABLE'; - }), - end = range.collapsed ? start : findList(range.endContainer,function (node) { - return node.tagName == 'TABLE'; - }); - - if (start && end && start === end) { - - if (!range.collapsed) { - start = domUtils.findParentByTagName(range.startContainer, 'li', true); - end = domUtils.findParentByTagName(range.endContainer, 'li', true); - if (start && end && start === end) { - range.deleteContents(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if (li && domUtils.isEmptyBlock(li)) { - - pre = li.previousSibling; - next = li.nextSibling; - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - parentList = li.parentNode; - if (pre && next) { - range.setStart(next, 0).collapse(true).select(true); - domUtils.remove(li); - - } else { - if (!pre && !next || !pre) { - - parentList.parentNode.insertBefore(p, parentList); - - - } else { - li.parentNode.parentNode.insertBefore(p, parentList.nextSibling); - } - domUtils.remove(li); - if (!parentList.firstChild) { - domUtils.remove(parentList); - } - range.setStart(p, 0).setCursor(); - - - } - preventAndSave(); - return; - - } - } else { - var tmpRange = range.cloneRange(), - bk = tmpRange.collapse(false).createBookmark(); - - range.deleteContents(); - tmpRange.moveToBookmark(bk); - var li = domUtils.findParentByTagName(tmpRange.startContainer, 'li', true); - - clearEmptySibling(li); - tmpRange.select(); - preventAndSave(); - return; - } - } - - - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - - if (li) { - if (domUtils.isEmptyBlock(li)) { - bk = range.createBookmark(); - var parentList = li.parentNode; - if (li !== parentList.lastChild) { - domUtils.breakParent(li, parentList); - clearEmptySibling(li); - } else { - - parentList.parentNode.insertBefore(li, parentList.nextSibling); - if (domUtils.isEmptyNode(parentList)) { - domUtils.remove(parentList); - } - } - //嵌套不处理 - if (!dtd.$list[li.parentNode.tagName]) { - - if (!domUtils.isBlockElm(li.firstChild)) { - p = me.document.createElement('p'); - li.parentNode.insertBefore(p, li); - while (li.firstChild) { - p.appendChild(li.firstChild); - } - domUtils.remove(li); - } else { - domUtils.remove(li, true); - } - } - range.moveToBookmark(bk).select(); - - - } else { - var first = li.firstChild; - if (!first || !domUtils.isBlockElm(first)) { - var p = me.document.createElement('p'); - - !li.firstChild && domUtils.fillNode(me.document, p); - while (li.firstChild) { - - p.appendChild(li.firstChild); - } - li.appendChild(p); - first = p; - } - - var span = me.document.createElement('span'); - - range.insertNode(span); - domUtils.breakParent(span, li); - - var nextLi = span.nextSibling; - first = nextLi.firstChild; - - if (!first) { - p = me.document.createElement('p'); - - domUtils.fillNode(me.document, p); - nextLi.appendChild(p); - first = p; - } - if (domUtils.isEmptyNode(first)) { - first.innerHTML = ''; - domUtils.fillNode(me.document, first); - } - - range.setStart(first, 0).collapse(true).shrinkBoundary().select(); - domUtils.remove(span); - var pre = nextLi.previousSibling; - if (pre && domUtils.isEmptyBlock(pre)) { - pre.innerHTML = '

    '; - domUtils.fillNode(me.document, pre.firstChild); - } - - } -// } - preventAndSave(); - } - - - } - - - } - if (keyCode == 8) { - //修中ie中li下的问题 - range = me.selection.getRange(); - if (range.collapsed && domUtils.isStartInblock(range)) { - tmpRange = range.cloneRange().trimBoundary(); - li = domUtils.findParentByTagName(range.startContainer, 'li', true); - //要在li的最左边,才能处理 - if (li && domUtils.isStartInblock(tmpRange)) { - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - if (start && start !== li.firstChild) { - var parentList = domUtils.findParentByTagName(start,['ol','ul']); - domUtils.breakParent(start,parentList); - clearEmptySibling(start); - me.fireEvent('contentchange'); - range.setStart(start,0).setCursor(false,true); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - - if (li && (pre = li.previousSibling)) { - if (keyCode == 46 && li.childNodes.length) { - return; - } - //有可能上边的兄弟节点是个2级菜单,要追加到2级菜单的最后的li - if (dtd.$list[pre.tagName]) { - pre = pre.lastChild; - } - me.undoManger && me.undoManger.save(); - first = li.firstChild; - if (domUtils.isBlockElm(first)) { - if (domUtils.isEmptyNode(first)) { -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - pre.appendChild(first); - range.setStart(first, 0).setCursor(false, true); - //first不是唯一的节点 - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } else { - - span = me.document.createElement('span'); - range.insertNode(span); - //判断pre是否是空的节点,如果是


    类型的空节点,干掉p标签防止它占位 - if (domUtils.isEmptyBlock(pre)) { - pre.innerHTML = ''; - } - domUtils.moveChild(li, pre); - range.setStartBefore(span).collapse(true).select(true); - - domUtils.remove(span); - - } - } else { - if (domUtils.isEmptyNode(li)) { - var p = me.document.createElement('p'); - pre.appendChild(p); - range.setStart(p, 0).setCursor(); -// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true); - } else { - range.setEnd(pre, pre.childNodes.length).collapse().select(true); - while (li.firstChild) { - pre.appendChild(li.firstChild); - } - } - } - domUtils.remove(li); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - //trace:980 - - if (li && !li.previousSibling) { - var parentList = li.parentNode; - var bk = range.createBookmark(); - if(domUtils.isTagNode(parentList.parentNode,'ol ul')){ - parentList.parentNode.insertBefore(li,parentList); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - }else{ - - while(li.firstChild){ - parentList.parentNode.insertBefore(li.firstChild,parentList); - } - - domUtils.remove(li); - if(domUtils.isEmptyNode(parentList)){ - domUtils.remove(parentList) - } - - } - range.moveToBookmark(bk).setCursor(false,true); - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - - } - - - } - - - } - - } - }); - - me.addListener('keyup',function(type, evt){ - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8) { - var rng = me.selection.getRange(),list; - if(list = domUtils.findParentByTagName(rng.startContainer,['ol', 'ul'],true)){ - adjustList(list,list.tagName.toLowerCase(),getStyle(list)||domUtils.getComputedStyle(list,'list-style-type'),true) - } - } - }); - //处理tab键 - me.addListener('tabkeydown',function(){ - - var range = me.selection.getRange(); - - //控制级数 - function checkLevel(li){ - if(me.options.maxListLevel != -1){ - var level = li.parentNode,levelNum = 0; - while(/[ou]l/i.test(level.tagName)){ - levelNum++; - level = level.parentNode; - } - if(levelNum >= me.options.maxListLevel){ - return true; - } - } - } - //只以开始为准 - //todo 后续改进 - var li = domUtils.findParentByTagName(range.startContainer, 'li', true); - if(li){ - - var bk; - if(range.collapsed){ - if(checkLevel(li)) - return true; - var parentLi = li.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][index]; - setListStyle(list,currentStyle); - if(domUtils.isStartInblock(range)){ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - parentLi.insertBefore(list, li); - list.appendChild(li); - adjustList(list,list.tagName.toLowerCase(),currentStyle); - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(true); - return true; - } - }else{ - me.fireEvent('saveScene'); - bk = range.createBookmark(); - for(var i= 0,closeList,parents = domUtils.findParents(li),ci;ci=parents[i++];){ - if(domUtils.isTagNode(ci,'ol ul')){ - closeList = ci; - break; - } - } - var current = li; - if(bk.end){ - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - if(checkLevel(current)){ - current = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - continue; - } - var parentLi = current.parentNode, - list = me.document.createElement(parentLi.tagName), - index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type')); - var currentIndex = index + 1 == listStyle[list.tagName].length ? 0 : index + 1; - var currentStyle = listStyle[list.tagName][currentIndex]; - setListStyle(list,currentStyle); - parentLi.insertBefore(list, current); - while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){ - li = current.nextSibling; - list.appendChild(current); - if(!li || domUtils.isTagNode(li,'ol ul')){ - if(li){ - while(li = li.firstChild){ - if(li.tagName == 'LI'){ - break; - } - } - }else{ - li = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList}); - } - break; - } - current = li; - } - adjustList(list,list.tagName.toLowerCase(),currentStyle); - current = li; - } - } - me.fireEvent('contentchange'); - range.moveToBookmark(bk).select(); - return true; - } - } - - }); - function getLi(start){ - while(start && !domUtils.isBody(start)){ - if(start.nodeName == 'TABLE'){ - return null; - } - if(start.nodeName == 'LI'){ - return start - } - start = start.parentNode; - } - } - - /** - * 有序列表,与“insertunorderedlist”命令互斥 - * @command insertorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的有序列表类型,值为:decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.execCommand( 'insertorderedlist','decimal'); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前选区是有序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertorderedlist - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @return { String } 返回当前有序列表的类型,值为null或decimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2 - * @example - * ```javascript - * editor.queryCommandValue( 'insertorderedlist' ); - * ``` - */ - - /** - * 无序列表,与“insertorderedlist”命令互斥 - * @command insertunorderedlist - * @method execCommand - * @param { String } command 命令字符串 - * @param { String } style 插入的无序列表类型,值为:circle,disc,square,dash,dot - * @example - * ```javascript - * editor.execCommand( 'insertunorderedlist','circle'); - * ``` - */ - /** - * 查询当前是否有word文档粘贴进来的图片 - * @command insertunorderedlist - * @method insertunorderedlist - * @param { String } command 命令字符串 - * @return { int } 如果当前选区是无序列表返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'insertunorderedlist' ); - * ``` - */ - /** - * 查询当前选区内容是否有序列表 - * @command insertunorderedlist - * @method queryCommandValue - * @param { String } command 命令字符串 - * @return { String } 返回当前无序列表的类型,值为null或circle,disc,square,dash,dot - * @example - * ```javascript - * editor.queryCommandValue( 'insertunorderedlist' ); - * ``` - */ - - me.commands['insertorderedlist'] = - me.commands['insertunorderedlist'] = { - execCommand:function (command, style) { - - if (!style) { - style = command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'; - } - var me = this, - range = this.selection.getRange(), - filterFn = function (node) { - return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node); - }, - tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul', - frag = me.document.createDocumentFragment(); - //去掉是因为会出现选到末尾,导致adjustmentBoundary缩到ol/ul的位置 - //range.shrinkBoundary();//.adjustmentBoundary(); - range.adjustmentBoundary().shrinkBoundary(); - var bko = range.createBookmark(true), - start = getLi(me.document.getElementById(bko.start)), - modifyStart = 0, - end = getLi(me.document.getElementById(bko.end)), - modifyEnd = 0, - startParent, endParent, - list, tmp; - - if (start || end) { - start && (startParent = start.parentNode); - if (!bko.end) { - end = start; - } - end && (endParent = end.parentNode); - - if (startParent === endParent) { - while (start !== end) { - tmp = start; - start = start.nextSibling; - if (!domUtils.isBlockElm(tmp.firstChild)) { - var p = me.document.createElement('p'); - while (tmp.firstChild) { - p.appendChild(tmp.firstChild); - } - tmp.appendChild(p); - } - frag.appendChild(tmp); - } - tmp = me.document.createElement('span'); - startParent.insertBefore(tmp, end); - if (!domUtils.isBlockElm(end.firstChild)) { - p = me.document.createElement('p'); - while (end.firstChild) { - p.appendChild(end.firstChild); - } - end.appendChild(p); - } - frag.appendChild(end); - domUtils.breakParent(tmp, startParent); - if (domUtils.isEmptyNode(tmp.previousSibling)) { - domUtils.remove(tmp.previousSibling); - } - if (domUtils.isEmptyNode(tmp.nextSibling)) { - domUtils.remove(tmp.nextSibling) - } - var nodeStyle = getStyle(startParent) || domUtils.getComputedStyle(startParent, 'list-style-type') || (command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc'); - if (startParent.tagName.toLowerCase() == tag && nodeStyle == style) { - for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); ci = frag.firstChild;) { - if(domUtils.isTagNode(ci,'ol ul')){ -// 删除时,子列表不处理 -// utils.each(domUtils.getElementsByTagName(ci,'li'),function(li){ -// while(li.firstChild){ -// tmpFrag.appendChild(li.firstChild); -// } -// -// }); - tmpFrag.appendChild(ci); - }else{ - while (ci.firstChild) { - - tmpFrag.appendChild(ci.firstChild); - domUtils.remove(ci); - } - } - - } - tmp.parentNode.insertBefore(tmpFrag, tmp); - } else { - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - tmp.parentNode.insertBefore(list, tmp); - } - - domUtils.remove(tmp); - list && adjustList(list, tag, style); - range.moveToBookmark(bko).select(); - return; - } - //开始 - if (start) { - while (start) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - var tmpfrag = me.document.createDocumentFragment(), - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - var tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - - start = tmp; - } - startParent.parentNode.insertBefore(frag, startParent.nextSibling); - if (domUtils.isEmptyNode(startParent)) { - range.setStartBefore(startParent); - domUtils.remove(startParent); - } else { - range.setStartAfter(startParent); - } - modifyStart = 1; - } - - if (end && domUtils.inDoc(endParent, me.document)) { - //结束 - start = endParent.firstChild; - while (start && start !== end) { - tmp = start.nextSibling; - if (domUtils.isTagNode(start, 'ol ul')) { - frag.appendChild(start); - } else { - tmpfrag = me.document.createDocumentFragment(); - hasBlock = 0; - while (start.firstChild) { - if (domUtils.isBlockElm(start.firstChild)) { - hasBlock = 1; - } - tmpfrag.appendChild(start.firstChild); - } - if (!hasBlock) { - tmpP = me.document.createElement('p'); - tmpP.appendChild(tmpfrag); - frag.appendChild(tmpP); - } else { - frag.appendChild(tmpfrag); - } - domUtils.remove(start); - } - start = tmp; - } - var tmpDiv = domUtils.createElement(me.document, 'div', { - 'tmpDiv':1 - }); - domUtils.moveChild(end, tmpDiv); - - frag.appendChild(tmpDiv); - domUtils.remove(end); - endParent.parentNode.insertBefore(frag, endParent); - range.setEndBefore(endParent); - if (domUtils.isEmptyNode(endParent)) { - domUtils.remove(endParent); - } - - modifyEnd = 1; - } - - - } - - if (!modifyStart) { - range.setStartBefore(me.document.getElementById(bko.start)); - } - if (bko.end && !modifyEnd) { - range.setEndAfter(me.document.getElementById(bko.end)); - } - range.enlarge(true, function (node) { - return notExchange[node.tagName]; - }); - - frag = me.document.createDocumentFragment(); - - var bk = range.createBookmark(), - current = domUtils.getNextDomNode(bk.start, false, filterFn), - tmpRange = range.cloneRange(), - tmpNode, - block = domUtils.isBlockElm; - - while (current && current !== bk.end && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING)) { - - if (current.nodeType == 3 || dtd.li[current.tagName]) { - if (current.nodeType == 1 && dtd.$list[current.tagName]) { - while (current.firstChild) { - frag.appendChild(current.firstChild); - } - tmpNode = domUtils.getNextDomNode(current, false, filterFn); - domUtils.remove(current); - current = tmpNode; - continue; - - } - tmpNode = current; - tmpRange.setStartBefore(current); - - while (current && current !== bk.end && (!block(current) || domUtils.isBookmarkNode(current) )) { - tmpNode = current; - current = domUtils.getNextDomNode(current, false, null, function (node) { - return !notExchange[node.tagName]; - }); - } - - if (current && block(current)) { - tmp = domUtils.getNextDomNode(tmpNode, false, filterFn); - if (tmp && domUtils.isBookmarkNode(tmp)) { - current = domUtils.getNextDomNode(tmp, false, filterFn); - tmpNode = tmp; - } - } - tmpRange.setEndAfter(tmpNode); - - current = domUtils.getNextDomNode(tmpNode, false, filterFn); - - var li = range.document.createElement('li'); - - li.appendChild(tmpRange.extractContents()); - if(domUtils.isEmptyNode(li)){ - var tmpNode = range.document.createElement('p'); - while(li.firstChild){ - tmpNode.appendChild(li.firstChild) - } - li.appendChild(tmpNode); - } - frag.appendChild(li); - } else { - current = domUtils.getNextDomNode(current, true, filterFn); - } - } - range.moveToBookmark(bk).collapse(true); - list = me.document.createElement(tag); - setListStyle(list,style); - list.appendChild(frag); - range.insertNode(list); - //当前list上下看能否合并 - adjustList(list, tag, style); - //去掉冗余的tmpDiv - for (var i = 0, ci, tmpDivs = domUtils.getElementsByTagName(list, 'div'); ci = tmpDivs[i++];) { - if (ci.getAttribute('tmpDiv')) { - domUtils.remove(ci, true) - } - } - range.moveToBookmark(bko).select(); - - }, - queryCommandState:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(); - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - return 0 - } - if(tag == ci.nodeName.toLowerCase()){ - return 1 - }; - } - return 0; - - }, - queryCommandValue:function (command) { - var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul'; - var path = this.selection.getStartElementPath(), - node; - for(var i= 0,ci;ci = path[i++];){ - if(ci.nodeName == 'TABLE'){ - node = null; - break; - } - if(tag == ci.nodeName.toLowerCase()){ - node = ci; - break; - }; - } - return node ? getStyle(node) || domUtils.getComputedStyle(node, 'list-style-type') : null; - } - }; -}; - - - -// plugins/source.js -/** - * 源码编辑插件 - * @file - * @since 1.2.6.1 - */ - -(function (){ - var sourceEditors = { - textarea: function (editor, holder){ - var textarea = holder.ownerDocument.createElement('textarea'); - textarea.style.cssText = 'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;'; - // todo: IE下只有onresize属性可用... 很纠结 - if (browser.ie && browser.version < 8) { - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - holder.onresize = function (){ - textarea.style.width = holder.offsetWidth + 'px'; - textarea.style.height = holder.offsetHeight + 'px'; - }; - } - holder.appendChild(textarea); - return { - setContent: function (content){ - textarea.value = content; - }, - getContent: function (){ - return textarea.value; - }, - select: function (){ - var range; - if (browser.ie) { - range = textarea.createTextRange(); - range.collapse(true); - range.select(); - } else { - //todo: chrome下无法设置焦点 - textarea.setSelectionRange(0, 0); - textarea.focus(); - } - }, - dispose: function (){ - holder.removeChild(textarea); - // todo - holder.onresize = null; - textarea = null; - holder = null; - } - }; - }, - codemirror: function (editor, holder){ - - var codeEditor = window.CodeMirror(holder, { - mode: "text/html", - tabMode: "indent", - lineNumbers: true, - lineWrapping:true - }); - var dom = codeEditor.getWrapperElement(); - dom.style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;'; - codeEditor.getScrollerElement().style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;'; - codeEditor.refresh(); - return { - getCodeMirror:function(){ - return codeEditor; - }, - setContent: function (content){ - codeEditor.setValue(content); - }, - getContent: function (){ - return codeEditor.getValue(); - }, - select: function (){ - codeEditor.focus(); - }, - dispose: function (){ - holder.removeChild(dom); - dom = null; - codeEditor = null; - } - }; - } - }; - - UE.plugins['source'] = function (){ - var me = this; - var opt = this.options; - var sourceMode = false; - var sourceEditor; - var orgSetContent; - opt.sourceEditor = browser.ie ? 'textarea' : (opt.sourceEditor || 'codemirror'); - - me.setOpt({ - sourceEditorFirst:false - }); - function createSourceEditor(holder){ - return sourceEditors[opt.sourceEditor == 'codemirror' && window.CodeMirror ? 'codemirror' : 'textarea'](me, holder); - } - - var bakCssText; - //解决在源码模式下getContent不能得到最新的内容问题 - var oldGetContent, - bakAddress; - - /** - * 切换源码模式和编辑模式 - * @command source - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'source'); - * ``` - */ - - /** - * 查询当前编辑区域的状态是源码模式还是可视化模式 - * @command source - * @method queryCommandState - * @param { String } cmd 命令字符串 - * @return { int } 如果当前是源码编辑模式,返回1,否则返回0 - * @example - * ```javascript - * editor.queryCommandState( 'source' ); - * ``` - */ - - me.commands['source'] = { - execCommand: function (){ - - sourceMode = !sourceMode; - if (sourceMode) { - bakAddress = me.selection.getRange().createAddress(false,true); - me.undoManger && me.undoManger.save(true); - if(browser.gecko){ - me.body.contentEditable = false; - } - - bakCssText = me.iframe.style.cssText; - me.iframe.style.cssText += 'position:absolute;left:-32768px;top:-32768px;'; - - - me.fireEvent('beforegetcontent'); - var root = UE.htmlparser(me.body.innerHTML); - me.filterOutputRule(root); - root.traversal(function (node) { - if (node.type == 'element') { - switch (node.tagName) { - case 'td': - case 'th': - case 'caption': - if(node.children && node.children.length == 1){ - if(node.firstChild().tagName == 'br' ){ - node.removeChild(node.firstChild()) - } - }; - break; - case 'pre': - node.innerText(node.innerText().replace(/ /g,' ')) - - } - } - }); - - me.fireEvent('aftergetcontent'); - - var content = root.toHtml(true); - - sourceEditor = createSourceEditor(me.iframe.parentNode); - - sourceEditor.setContent(content); - - orgSetContent = me.setContent; - - me.setContent = function(html){ - //这里暂时不触发事件,防止报错 - var root = UE.htmlparser(html); - me.filterInputRule(root); - html = root.toHtml(); - sourceEditor.setContent(html); - }; - - setTimeout(function (){ - sourceEditor.select(); - me.addListener('fullscreenchanged', function(){ - try{ - sourceEditor.getCodeMirror().refresh() - }catch(e){} - }); - }); - - //重置getContent,源码模式下取值也能是最新的数据 - oldGetContent = me.getContent; - me.getContent = function (){ - return sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - }; - } else { - me.iframe.style.cssText = bakCssText; - var cont = sourceEditor.getContent() || '

    ' + (browser.ie ? '' : '
    ')+'

    '; - //处理掉block节点前后的空格,有可能会误命中,暂时不考虑 - cont = cont.replace(new RegExp('[\\r\\t\\n ]*<\/?(\\w+)\\s*(?:[^>]*)>','g'), function(a,b){ - if(b && !dtd.$inlineWithA[b.toLowerCase()]){ - return a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,''); - } - return a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,'') - }); - - me.setContent = orgSetContent; - - me.setContent(cont); - sourceEditor.dispose(); - sourceEditor = null; - //还原getContent方法 - me.getContent = oldGetContent; - var first = me.body.firstChild; - //trace:1106 都删除空了,下边会报错,所以补充一个p占位 - if(!first){ - me.body.innerHTML = '

    '+(browser.ie?'':'
    ')+'

    '; - first = me.body.firstChild; - } - - - //要在ifm为显示时ff才能取到selection,否则报错 - //这里不能比较位置了 - me.undoManger && me.undoManger.save(true); - - if(browser.gecko){ - - var input = document.createElement('input'); - input.style.cssText = 'position:absolute;left:0;top:-32768px'; - - document.body.appendChild(input); - - me.body.contentEditable = false; - setTimeout(function(){ - domUtils.setViewportOffset(input, { left: -32768, top: 0 }); - input.focus(); - setTimeout(function(){ - me.body.contentEditable = true; - me.selection.getRange().moveToAddress(bakAddress).select(true); - domUtils.remove(input); - }); - - }); - }else{ - //ie下有可能报错,比如在代码顶头的情况 - try{ - me.selection.getRange().moveToAddress(bakAddress).select(true); - }catch(e){} - - } - } - this.fireEvent('sourcemodechanged', sourceMode); - }, - queryCommandState: function (){ - return sourceMode|0; - }, - notNeedUndo : 1 - }; - var oldQueryCommandState = me.queryCommandState; - - me.queryCommandState = function (cmdName){ - cmdName = cmdName.toLowerCase(); - if (sourceMode) { - //源码模式下可以开启的命令 - return cmdName in { - 'source' : 1, - 'fullscreen' : 1 - } ? 1 : -1 - } - return oldQueryCommandState.apply(this, arguments); - }; - - if(opt.sourceEditor == "codemirror"){ - - me.addListener("ready",function(){ - utils.loadFile(document,{ - src : opt.codeMirrorJsUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - if(opt.sourceEditorFirst){ - setTimeout(function(){ - me.execCommand("source"); - },0); - } - }); - utils.loadFile(document,{ - tag : "link", - rel : "stylesheet", - type : "text/css", - href : opt.codeMirrorCssUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css" - }); - - }); - } - - }; - -})(); - -// plugins/enterkey.js -///import core -///import plugins/undo.js -///commands 设置回车标签p或br -///commandsName EnterKey -///commandsTitle 设置回车标签p或br -/** - * @description 处理回车 - * @author zhanyi - */ -UE.plugins['enterkey'] = function() { - var hTag, - me = this, - tag = me.options.enterTag; - me.addListener('keyup', function(type, evt) { - - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) { - var range = me.selection.getRange(), - start = range.startContainer, - doSave; - - //修正在h1-h6里边回车后不能嵌套p的问题 - if (!browser.ie) { - - if (/h\d/i.test(hTag)) { - if (browser.gecko) { - var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true); - if (!h) { - me.document.execCommand('formatBlock', false, '

    '); - doSave = 1; - } - } else { - //chrome remove div - if (start.nodeType == 1) { - var tmp = me.document.createTextNode(''),div; - range.insertNode(tmp); - div = domUtils.findParentByTagName(tmp, 'div', true); - if (div) { - var p = me.document.createElement('p'); - while (div.firstChild) { - p.appendChild(div.firstChild); - } - div.parentNode.insertBefore(p, div); - domUtils.remove(div); - range.setStartBefore(tmp).setCursor(); - doSave = 1; - } - domUtils.remove(tmp); - - } - } - - if (me.undoManger && doSave) { - me.undoManger.save(); - } - } - //没有站位符,会出现多行的问题 - browser.opera && range.select(); - }else{ - me.fireEvent('saveScene',true,true) - } - } - }); - - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - if (keyCode == 13) {//回车 - if(me.fireEvent('beforeenterkeydown')){ - domUtils.preventDefault(evt); - return; - } - me.fireEvent('saveScene',true,true); - hTag = ''; - - - var range = me.selection.getRange(); - - if (!range.collapsed) { - //跨td不能删 - var start = range.startContainer, - end = range.endContainer, - startTd = domUtils.findParentByTagName(start, 'td', true), - endTd = domUtils.findParentByTagName(end, 'td', true); - if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - return; - } - } - if (tag == 'p') { - - - if (!browser.ie) { - - start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true); - - //opera下执行formatblock会在table的场景下有问题,回车在opera原生支持很好,所以暂时在opera去掉调用这个原生的command - //trace:2431 - if (!start && !browser.opera) { - - me.document.execCommand('formatBlock', false, '

    '); - - if (browser.gecko) { - range = me.selection.getRange(); - start = domUtils.findParentByTagName(range.startContainer, 'p', true); - start && domUtils.removeDirtyAttr(start); - } - - - } else { - hTag = start.tagName; - start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start); - } - - } - - } else { - evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false); - - if (!range.collapsed) { - range.deleteContents(); - start = range.startContainer; - if (start.nodeType == 1 && (start = start.childNodes[range.startOffset])) { - while (start.nodeType == 1) { - if (dtd.$empty[start.tagName]) { - range.setStartBefore(start).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - if (!start.firstChild) { - var br = range.document.createElement('br'); - start.appendChild(br); - range.setStart(start, 0).setCursor(); - if (me.undoManger) { - me.undoManger.save(); - } - return false; - } - start = start.firstChild; - } - if (start === range.startContainer.childNodes[range.startOffset]) { - br = range.document.createElement('br'); - range.insertNode(br).setCursor(); - - } else { - range.setStart(start, 0).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br).setStartAfter(br).setCursor(); - } - - - } else { - br = range.document.createElement('br'); - range.insertNode(br); - var parent = br.parentNode; - if (parent.lastChild === br) { - br.parentNode.insertBefore(br.cloneNode(true), br); - range.setStartBefore(br); - } else { - range.setStartAfter(br); - } - range.setCursor(); - - } - - } - - } - }); -}; - - -// plugins/keystrokes.js -/* 处理特殊键的兼容性问题 */ -UE.plugins['keystrokes'] = function() { - var me = this; - var collapsed = true; - me.addListener('keydown', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng = me.selection.getRange(); - - //处理全选的情况 - if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90 - || keyCode >= 48 && keyCode <= 57 || - keyCode >= 96 && keyCode <= 111 || { - 13:1, - 8:1, - 46:1 - }[keyCode]) - ){ - - var tmpNode = rng.startContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setStartBefore(tmpNode) - } - tmpNode = rng.endContainer; - if(domUtils.isFillChar(tmpNode)){ - rng.setEndAfter(tmpNode) - } - rng.txtToElmBoundary(); - //结束边界可能放到了br的前边,要把br包含进来 - // x[xxx]
    - if(rng.endContainer && rng.endContainer.nodeType == 1){ - tmpNode = rng.endContainer.childNodes[rng.endOffset]; - if(tmpNode && domUtils.isBr(tmpNode)){ - rng.setEndAfter(tmpNode); - } - } - if(rng.startOffset == 0){ - tmpNode = rng.startContainer; - if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){ - tmpNode = rng.endContainer; - if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){ - me.fireEvent('saveScene'); - me.body.innerHTML = '

    '+(browser.ie ? '' : '
    ')+'

    '; - rng.setStart(me.body.firstChild,0).setCursor(false,true); - me._selectionChange(); - return; - } - } - } - } - - //处理backspace - if (keyCode == keymap.Backspace) { - rng = me.selection.getRange(); - collapsed = rng.collapsed; - if(me.fireEvent('delkeydown',evt)){ - return; - } - var start,end; - //避免按两次删除才能生效的问题 - if(rng.collapsed && rng.inFillChar()){ - start = rng.startContainer; - - if(domUtils.isFillChar(start)){ - rng.setStartBefore(start).shrinkBoundary(true).collapse(true); - domUtils.remove(start) - }else{ - start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),''); - rng.startOffset--; - rng.collapse(true).select(true) - } - } - - //解决选中control元素不能删除的问题 - if (start = rng.getClosedNode()) { - me.fireEvent('saveScene'); - rng.setStartBefore(start); - domUtils.remove(start); - rng.setCursor(); - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - return; - } - //阻止在table上的删除 - if (!browser.ie) { - start = domUtils.findParentByTagName(rng.startContainer, 'table', true); - end = domUtils.findParentByTagName(rng.endContainer, 'table', true); - if (start && !end || !start && end || start !== end) { - evt.preventDefault(); - return; - } - } - - } - //处理tab键的逻辑 - if (keyCode == keymap.Tab) { - //不处理以下标签 - var excludeTagNameForTabKey = { - 'ol' : 1, - 'ul' : 1, - 'table':1 - }; - //处理组件里的tab按下事件 - if(me.fireEvent('tabkeydown',evt)){ - domUtils.preventDefault(evt); - return; - } - var range = me.selection.getRange(); - me.fireEvent('saveScene'); - for (var i = 0,txt = '',tabSize = me.options.tabSize|| 4,tabNode = me.options.tabNode || ' '; i < tabSize; i++) { - txt += tabNode; - } - var span = me.document.createElement('span'); - span.innerHTML = txt + domUtils.fillChar; - if (range.collapsed) { - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var filterFn = function(node) { - return domUtils.isBlockElm(node) && !excludeTagNameForTabKey[node.tagName.toLowerCase()] - - }; - //普通的情况 - start = domUtils.findParent(range.startContainer, filterFn,true); - end = domUtils.findParent(range.endContainer, filterFn,true); - if (start && end && start === end) { - range.deleteContents(); - range.insertNode(span.cloneNode(true).firstChild).setCursor(true); - } else { - var bookmark = range.createBookmark(); - range.enlarge(true); - var bookmark2 = range.createBookmark(), - current = domUtils.getNextDomNode(bookmark2.start, false, filterFn); - while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) { - current.insertBefore(span.cloneNode(true).firstChild, current.firstChild); - current = domUtils.getNextDomNode(current, false, filterFn); - } - range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select(); - } - } - domUtils.preventDefault(evt) - } - //trace:1634 - //ff的del键在容器空的时候,也会删除 - if(browser.gecko && keyCode == 46){ - range = me.selection.getRange(); - if(range.collapsed){ - start = range.startContainer; - if(domUtils.isEmptyBlock(start)){ - var parent = start.parentNode; - while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){ - start = parent; - parent = parent.parentNode; - } - if(start === parent.lastChild) - evt.preventDefault(); - return; - } - } - } - }); - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which, - rng,me = this; - if(keyCode == keymap.Backspace){ - if(me.fireEvent('delkeyup')){ - return; - } - rng = me.selection.getRange(); - if(rng.collapsed){ - var tmpNode, - autoClearTagName = ['h1','h2','h3','h4','h5','h6']; - if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){ - if(domUtils.isEmptyBlock(tmpNode)){ - var pre = tmpNode.previousSibling; - if(pre && pre.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtLast(pre).setCursor(false,true); - return; - }else{ - var next = tmpNode.nextSibling; - if(next && next.nodeName != 'TABLE'){ - domUtils.remove(tmpNode); - rng.setStartAtFirst(next).setCursor(false,true); - return; - } - } - } - } - //处理当删除到body时,要重新给p标签展位 - if(domUtils.isBody(rng.startContainer)){ - var tmpNode = domUtils.createElement(me.document,'p',{ - 'innerHTML' : browser.ie ? domUtils.fillChar : '
    ' - }); - rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true); - } - } - - - //chrome下如果删除了inline标签,浏览器会有记忆,在输入文字还是会套上刚才删除的标签,所以这里再选一次就不会了 - if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){ - if(browser.ie){ - var span = rng.document.createElement('span'); - rng.insertNode(span).setStartBefore(span).collapse(true); - rng.select(); - domUtils.remove(span) - }else{ - rng.select() - } - - } - } - - - }) -}; - -// plugins/fiximgclick.js -///import core -///commands 修复chrome下图片不能点击的问题,出现八个角可改变大小 -///commandsName FixImgClick -///commandsTitle 修复chrome下图片不能点击的问题,出现八个角可改变大小 -//修复chrome下图片不能点击的问题,出现八个角可改变大小 - -UE.plugins['fiximgclick'] = (function () { - - var elementUpdated = false; - function Scale() { - this.editor = null; - this.resizer = null; - this.cover = null; - this.doc = document; - this.prePos = {x: 0, y: 0}; - this.startPos = {x: 0, y: 0}; - } - - (function () { - var rect = [ - //[left, top, width, height] - [0, 0, -1, -1], - [0, 0, 0, -1], - [0, 0, 1, -1], - [0, 0, -1, 0], - [0, 0, 1, 0], - [0, 0, -1, 1], - [0, 0, 0, 1], - [0, 0, 1, 1] - ]; - - Scale.prototype = { - init: function (editor) { - var me = this; - me.editor = editor; - me.startPos = this.prePos = {x: 0, y: 0}; - me.dragId = -1; - - var hands = [], - cover = me.cover = document.createElement('div'), - resizer = me.resizer = document.createElement('div'); - - cover.id = me.editor.ui.id + '_imagescale_cover'; - cover.style.cssText = 'position:absolute;display:none;z-index:' + (me.editor.options.zIndex) + ';filter:alpha(opacity=0); opacity:0;background:#CCC;'; - domUtils.on(cover, 'mousedown click', function () { - me.hide(); - }); - - for (i = 0; i < 8; i++) { - hands.push(''); - } - resizer.id = me.editor.ui.id + '_imagescale'; - resizer.className = 'edui-editor-imagescale'; - resizer.innerHTML = hands.join(''); - resizer.style.cssText += ';display:none;border:1px solid #3b77ff;z-index:' + (me.editor.options.zIndex) + ';'; - - me.editor.ui.getDom().appendChild(cover); - me.editor.ui.getDom().appendChild(resizer); - - me.initStyle(); - me.initEvents(); - }, - initStyle: function () { - utils.cssRule('imagescale', '.edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}' + - '.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}' - + '.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}'); - }, - initEvents: function () { - var me = this; - - me.startPos.x = me.startPos.y = 0; - me.isDraging = false; - }, - _eventHandler: function (e) { - var me = this; - switch (e.type) { - case 'mousedown': - var hand = e.target || e.srcElement, hand; - if (hand.className.indexOf('edui-editor-imagescale-hand') != -1 && me.dragId == -1) { - me.dragId = hand.className.slice(-1); - me.startPos.x = me.prePos.x = e.clientX; - me.startPos.y = me.prePos.y = e.clientY; - domUtils.on(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - } - break; - case 'mousemove': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.prePos.x = e.clientX; - me.prePos.y = e.clientY; - elementUpdated = true; - me.updateTargetElement(); - - } - break; - case 'mouseup': - if (me.dragId != -1) { - me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y}); - me.updateTargetElement(); - if (me.target.parentNode) me.attachTo(me.target); - me.dragId = -1; - } - domUtils.un(me.doc,'mousemove', me.proxy(me._eventHandler, me)); - //修复只是点击挪动点,但没有改变大小,不应该触发contentchange - if(elementUpdated){ - elementUpdated = false; - me.editor.fireEvent('contentchange'); - } - - break; - default: - break; - } - }, - updateTargetElement: function () { - var me = this; - domUtils.setStyles(me.target, { - 'width': me.resizer.style.width, - 'height': me.resizer.style.height - }); - me.target.width = parseInt(me.resizer.style.width); - me.target.height = parseInt(me.resizer.style.height); - me.attachTo(me.target); - }, - updateContainerStyle: function (dir, offset) { - var me = this, - dom = me.resizer, tmp; - - if (rect[dir][0] != 0) { - tmp = parseInt(dom.style.left) + offset.x; - dom.style.left = me._validScaledProp('left', tmp) + 'px'; - } - if (rect[dir][1] != 0) { - tmp = parseInt(dom.style.top) + offset.y; - dom.style.top = me._validScaledProp('top', tmp) + 'px'; - } - if (rect[dir][2] != 0) { - tmp = dom.clientWidth + rect[dir][2] * offset.x; - dom.style.width = me._validScaledProp('width', tmp) + 'px'; - } - if (rect[dir][3] != 0) { - tmp = dom.clientHeight + rect[dir][3] * offset.y; - dom.style.height = me._validScaledProp('height', tmp) + 'px'; - } - }, - _validScaledProp: function (prop, value) { - var ele = this.resizer, - wrap = document; - - value = isNaN(value) ? 0 : value; - switch (prop) { - case 'left': - return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; - case 'top': - return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; - case 'width': - return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; - case 'height': - return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; - } - }, - hideCover: function () { - this.cover.style.display = 'none'; - }, - showCover: function () { - var me = this, - editorPos = domUtils.getXY(me.editor.ui.getDom()), - iframePos = domUtils.getXY(me.editor.iframe); - - domUtils.setStyles(me.cover, { - 'width': me.editor.iframe.offsetWidth + 'px', - 'height': me.editor.iframe.offsetHeight + 'px', - 'top': iframePos.y - editorPos.y + 'px', - 'left': iframePos.x - editorPos.x + 'px', - 'position': 'absolute', - 'display': '' - }) - }, - show: function (targetObj) { - var me = this; - me.resizer.style.display = 'block'; - if(targetObj) me.attachTo(targetObj); - - domUtils.on(this.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.on(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - - me.showCover(); - me.editor.fireEvent('afterscaleshow', me); - me.editor.fireEvent('saveScene'); - }, - hide: function () { - var me = this; - me.hideCover(); - me.resizer.style.display = 'none'; - - domUtils.un(me.resizer, 'mousedown', me.proxy(me._eventHandler, me)); - domUtils.un(me.doc, 'mouseup', me.proxy(me._eventHandler, me)); - me.editor.fireEvent('afterscalehide', me); - }, - proxy: function( fn, context ) { - return function(e) { - return fn.apply( context || this, arguments); - }; - }, - attachTo: function (targetObj) { - var me = this, - target = me.target = targetObj, - resizer = this.resizer, - imgPos = domUtils.getXY(target), - iframePos = domUtils.getXY(me.editor.iframe), - editorPos = domUtils.getXY(resizer.parentNode); - - domUtils.setStyles(resizer, { - 'width': target.width + 'px', - 'height': target.height + 'px', - 'left': iframePos.x + imgPos.x - me.editor.document.body.scrollLeft - editorPos.x - parseInt(resizer.style.borderLeftWidth) + 'px', - 'top': iframePos.y + imgPos.y - me.editor.document.body.scrollTop - editorPos.y - parseInt(resizer.style.borderTopWidth) + 'px' - }); - } - } - })(); - - return function () { - var me = this, - imageScale; - - me.setOpt('imageScaleEnabled', true); - - if ( !browser.ie && me.options.imageScaleEnabled) { - me.addListener('click', function (type, e) { - - var range = me.selection.getRange(), - img = range.getClosedNode(); - - if (img && img.tagName == 'IMG' && me.body.contentEditable!="false") { - - if (img.className.indexOf("edui-faked-music") != -1 || - img.getAttribute("anchorname") || - domUtils.hasClass(img, 'loadingclass') || - domUtils.hasClass(img, 'loaderrorclass')) { return } - - if (!imageScale) { - imageScale = new Scale(); - imageScale.init(me); - me.ui.getDom().appendChild(imageScale.resizer); - - var _keyDownHandler = function (e) { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(imageScale.target).select(); - }, _mouseDownHandler = function (e) { - var ele = e.target || e.srcElement; - if (ele && (ele.className===undefined || ele.className.indexOf('edui-editor-imagescale') == -1)) { - _keyDownHandler(e); - } - }, timer; - - me.addListener('afterscaleshow', function (e) { - me.addListener('beforekeydown', _keyDownHandler); - me.addListener('beforemousedown', _mouseDownHandler); - domUtils.on(document, 'keydown', _keyDownHandler); - domUtils.on(document,'mousedown', _mouseDownHandler); - me.selection.getNative().removeAllRanges(); - }); - me.addListener('afterscalehide', function (e) { - me.removeListener('beforekeydown', _keyDownHandler); - me.removeListener('beforemousedown', _mouseDownHandler); - domUtils.un(document, 'keydown', _keyDownHandler); - domUtils.un(document,'mousedown', _mouseDownHandler); - var target = imageScale.target; - if (target.parentNode) { - me.selection.getRange().selectNode(target).select(); - } - }); - //TODO 有iframe的情况,mousedown不能往下传。。 - domUtils.on(imageScale.resizer, 'mousedown', function (e) { - me.selection.getNative().removeAllRanges(); - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - timer = setTimeout(function () { - imageScale.hide(); - if(imageScale.target) me.selection.getRange().selectNode(ele).select(); - }, 200); - } - }); - domUtils.on(imageScale.resizer, 'mouseup', function (e) { - var ele = e.target || e.srcElement; - if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) { - clearTimeout(timer); - } - }); - } - imageScale.show(img); - } else { - if (imageScale && imageScale.resizer.style.display != 'none') imageScale.hide(); - } - }); - } - - if (browser.webkit) { - me.addListener('click', function (type, e) { - if (e.target.tagName == 'IMG' && me.body.contentEditable!="false") { - var range = new dom.Range(me.document); - range.selectNode(e.target).select(); - } - }); - } - } -})(); - -// plugins/autolink.js -///import core -///commands 为非ie浏览器自动添加a标签 -///commandsName AutoLink -///commandsTitle 自动增加链接 -/** - * @description 为非ie浏览器自动添加a标签 - * @author zhanyi - */ - -UE.plugin.register('autolink',function(){ - var cont = 0; - - return !browser.ie ? { - - bindEvents:{ - 'reset' : function(){ - cont = 0; - }, - 'keydown':function(type, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - - var sel = me.selection.getNative(), - range = sel.getRangeAt(0).cloneRange(), - offset, - charCode; - - var start = range.startContainer; - while (start.nodeType == 1 && range.startOffset > 0) { - start = range.startContainer.childNodes[range.startOffset - 1]; - if (!start){ - break; - } - range.setStart(start, start.nodeType == 1 ? start.childNodes.length : start.nodeValue.length); - range.collapse(true); - start = range.startContainer; - } - - do{ - if (range.startOffset == 0) { - start = range.startContainer.previousSibling; - - while (start && start.nodeType == 1) { - start = start.lastChild; - } - if (!start || domUtils.isFillChar(start)){ - break; - } - offset = start.nodeValue.length; - } else { - start = range.startContainer; - offset = range.startOffset; - } - range.setStart(start, offset - 1); - charCode = range.toString().charCodeAt(0); - } while (charCode != 160 && charCode != 32); - - if (range.toString().replace(new RegExp(domUtils.fillChar, 'g'), '').match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) { - while(range.toString().length){ - if(/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(range.toString())){ - break; - } - try{ - range.setStart(range.startContainer,range.startOffset+1); - }catch(e){ - //trace:2121 - var start = range.startContainer; - while(!(next = start.nextSibling)){ - if(domUtils.isBody(start)){ - return; - } - start = start.parentNode; - - } - range.setStart(next,0); - - } - - } - //range的开始边界已经在a标签里的不再处理 - if(domUtils.findParentByTagName(range.startContainer,'a',true)){ - return; - } - var a = me.document.createElement('a'),text = me.document.createTextNode(' '),href; - - me.undoManger && me.undoManger.save(); - a.appendChild(range.extractContents()); - a.href = a.innerHTML = a.innerHTML.replace(/<[^>]+>/g,''); - href = a.getAttribute("href").replace(new RegExp(domUtils.fillChar,'g'),''); - href = /^(?:https?:\/\/)/ig.test(href) ? href : "http://"+ href; - a.setAttribute('_src',utils.html(href)); - a.href = utils.html(href); - - range.insertNode(a); - a.parentNode.insertBefore(text, a.nextSibling); - range.setStart(text, 0); - range.collapse(true); - sel.removeAllRanges(); - sel.addRange(range); - me.undoManger && me.undoManger.save(); - } - } - } - } - }:{} - },function(){ - var keyCodes = { - 37:1, 38:1, 39:1, 40:1, - 13:1,32:1 - }; - function checkIsCludeLink(node){ - if(node.nodeType == 3){ - return null - } - if(node.nodeName == 'A'){ - return node; - } - var lastChild = node.lastChild; - - while(lastChild){ - if(lastChild.nodeName == 'A'){ - return lastChild; - } - if(lastChild.nodeType == 3){ - if(domUtils.isWhitespace(lastChild)){ - lastChild = lastChild.previousSibling; - continue; - } - return null - } - lastChild = lastChild.lastChild; - } - } - browser.ie && this.addListener('keyup',function(cmd,evt){ - var me = this,keyCode = evt.keyCode; - if(keyCodes[keyCode]){ - var rng = me.selection.getRange(); - var start = rng.startContainer; - - if(keyCode == 13){ - while(start && !domUtils.isBody(start) && !domUtils.isBlockElm(start)){ - start = start.parentNode; - } - if(start && !domUtils.isBody(start) && start.nodeName == 'P'){ - var pre = start.previousSibling; - if(pre && pre.nodeType == 1){ - var pre = checkIsCludeLink(pre); - if(pre && !pre.getAttribute('_href')){ - domUtils.remove(pre,true); - } - } - } - }else if(keyCode == 32 ){ - if(start.nodeType == 3 && /^\s$/.test(start.nodeValue)){ - start = start.previousSibling; - if(start && start.nodeName == 'A' && !start.getAttribute('_href')){ - domUtils.remove(start,true); - } - } - }else { - start = domUtils.findParentByTagName(start,'a',true); - if(start && !start.getAttribute('_href')){ - var bk = rng.createBookmark(); - - domUtils.remove(start,true); - rng.moveToBookmark(bk).select(true) - } - } - - } - - - }); - } -); - -// plugins/autoheight.js -///import core -///commands 当输入内容超过编辑器高度时,编辑器自动增高 -///commandsName AutoHeight,autoHeightEnabled -///commandsTitle 自动增高 -/** - * @description 自动伸展 - * @author zhanyi - */ -UE.plugins['autoheight'] = function () { - var me = this; - //提供开关,就算加载也可以关闭 - me.autoHeightEnabled = me.options.autoHeightEnabled !== false; - if (!me.autoHeightEnabled) { - return; - } - - var bakOverflow, - lastHeight = 0, - options = me.options, - currentHeight, - timer; - - function adjustHeight() { - var me = this; - clearTimeout(timer); - if(isFullscreen)return; - if (!me.queryCommandState || me.queryCommandState && me.queryCommandState('source') != 1) { - timer = setTimeout(function(){ - - var node = me.body.lastChild; - while(node && node.nodeType != 1){ - node = node.previousSibling; - } - if(node && node.nodeType == 1){ - node.style.clear = 'both'; - currentHeight = Math.max(domUtils.getXY(node).y + node.offsetHeight + 25 ,Math.max(options.minFrameHeight, options.initialFrameHeight)) ; - if (currentHeight != lastHeight) { - if (currentHeight !== parseInt(me.iframe.parentNode.style.height)) { - me.iframe.parentNode.style.height = currentHeight + 'px'; - } - me.body.style.height = currentHeight + 'px'; - lastHeight = currentHeight; - } - domUtils.removeStyle(node,'clear'); - } - - - },50) - } - } - var isFullscreen; - me.addListener('fullscreenchanged',function(cmd,f){ - isFullscreen = f - }); - me.addListener('destroy', function () { - me.removeListener('contentchange afterinserthtml keyup mouseup',adjustHeight) - }); - me.enableAutoHeight = function () { - var me = this; - if (!me.autoHeightEnabled) { - return; - } - var doc = me.document; - me.autoHeightEnabled = true; - bakOverflow = doc.body.style.overflowY; - doc.body.style.overflowY = 'hidden'; - me.addListener('contentchange afterinserthtml keyup mouseup',adjustHeight); - //ff不给事件算得不对 - - setTimeout(function () { - adjustHeight.call(me); - }, browser.gecko ? 100 : 0); - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - me.disableAutoHeight = function () { - - me.body.style.overflowY = bakOverflow || ''; - - me.removeListener('contentchange', adjustHeight); - me.removeListener('keyup', adjustHeight); - me.removeListener('mouseup', adjustHeight); - me.autoHeightEnabled = false; - me.fireEvent('autoheightchanged', me.autoHeightEnabled); - }; - - me.on('setHeight',function(){ - me.disableAutoHeight() - }); - me.addListener('ready', function () { - me.enableAutoHeight(); - //trace:1764 - var timer; - domUtils.on(browser.ie ? me.body : me.document, browser.webkit ? 'dragover' : 'drop', function () { - clearTimeout(timer); - timer = setTimeout(function () { - //trace:3681 - adjustHeight.call(me); - }, 100); - - }); - //修复内容过多时,回到顶部,顶部内容被工具栏遮挡问题 - var lastScrollY; - window.onscroll = function(){ - if(lastScrollY === null){ - lastScrollY = this.scrollY - }else if(this.scrollY == 0 && lastScrollY != 0){ - me.window.scrollTo(0,0); - lastScrollY = null; - } - } - }); - - -}; - - - -// plugins/autofloat.js -///import core -///commands 悬浮工具栏 -///commandsName AutoFloat,autoFloatEnabled -///commandsTitle 悬浮工具栏 -/** - * modified by chengchao01 - * 注意: 引入此功能后,在IE6下会将body的背景图片覆盖掉! - */ -UE.plugins['autofloat'] = function() { - var me = this, - lang = me.getLang(); - me.setOpt({ - topOffset:0 - }); - var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false, - topOffset = me.options.topOffset; - - - //如果不固定toolbar的位置,则直接退出 - if(!optsAutoFloatEnabled){ - return; - } - var uiUtils = UE.ui.uiUtils, - LteIE6 = browser.ie && browser.version <= 6, - quirks = browser.quirks; - - function checkHasUI(){ - if(!UE.ui){ - alert(lang.autofloatMsg); - return 0; - } - return 1; - } - function fixIE6FixedPos(){ - var docStyle = document.body.style; - docStyle.backgroundImage = 'url("about:blank")'; - docStyle.backgroundAttachment = 'fixed'; - } - var bakCssText, - placeHolder = document.createElement('div'), - toolbarBox,orgTop, - getPosition, - flag =true; //ie7模式下需要偏移 - function setFloating(){ - var toobarBoxPos = domUtils.getXY(toolbarBox), - origalFloat = domUtils.getComputedStyle(toolbarBox,'position'), - origalLeft = domUtils.getComputedStyle(toolbarBox,'left'); - toolbarBox.style.width = toolbarBox.offsetWidth + 'px'; - toolbarBox.style.zIndex = me.options.zIndex * 1 + 1; - toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox); - if (LteIE6 || (quirks && browser.ie)) { - if(toolbarBox.style.position != 'absolute'){ - toolbarBox.style.position = 'absolute'; - } - toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset + 'px'; - } else { - if (browser.ie7Compat && flag) { - flag = false; - toolbarBox.style.left = domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left+2 + 'px'; - } - if(toolbarBox.style.position != 'fixed'){ - toolbarBox.style.position = 'fixed'; - toolbarBox.style.top = topOffset +"px"; - ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px'); - } - } - } - function unsetFloating(){ - flag = true; - if(placeHolder.parentNode){ - placeHolder.parentNode.removeChild(placeHolder); - } - - toolbarBox.style.cssText = bakCssText; - } - - function updateFloating(){ - var rect3 = getPosition(me.container); - var offset=me.options.toolbarTopOffset||0; - if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) { - setFloating(); - }else{ - unsetFloating(); - } - } - var defer_updateFloating = utils.defer(function(){ - updateFloating(); - },browser.ie ? 200 : 100,true); - - me.addListener('destroy',function(){ - domUtils.un(window, ['scroll','resize'], updateFloating); - me.removeListener('keydown', defer_updateFloating); - }); - - me.addListener('ready', function(){ - if(checkHasUI(me)){ - //加载了ui组件,但在new时,没有加载ui,导致编辑器实例上没有ui类,所以这里做判断 - if(!me.ui){ - return; - } - getPosition = uiUtils.getClientRect; - toolbarBox = me.ui.getDom('toolbarbox'); - orgTop = getPosition(toolbarBox).top; - bakCssText = toolbarBox.style.cssText; - placeHolder.style.height = toolbarBox.offsetHeight + 'px'; - if(LteIE6){ - fixIE6FixedPos(); - } - domUtils.on(window, ['scroll','resize'], updateFloating); - me.addListener('keydown', defer_updateFloating); - - me.addListener('beforefullscreenchange', function (t, enabled){ - if (enabled) { - unsetFloating(); - } - }); - me.addListener('fullscreenchanged', function (t, enabled){ - if (!enabled) { - updateFloating(); - } - }); - me.addListener('sourcemodechanged', function (t, enabled){ - setTimeout(function (){ - updateFloating(); - },0); - }); - me.addListener("clearDoc",function(){ - setTimeout(function(){ - updateFloating(); - },0); - - }) - } - }); -}; - - -// plugins/video.js -/** - * video插件, 为UEditor提供视频插入支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['video'] = function (){ - var me =this; - - /** - * 创建插入视频字符窜 - * @param url 视频地址 - * @param width 视频宽度 - * @param height 视频高度 - * @param align 视频对齐 - * @param toEmbed 是否以flash代替显示 - * @param addParagraph 是否需要添加P 标签 - */ - function creatInsertStr(url,width,height,id,align,classname,type){ - - url = utils.unhtmlForUrl(url); - align = utils.unhtml(align); - classname = utils.unhtml(classname).trim(); - - width = parseInt(width, 10) || 0; - height = parseInt(height, 10) || 0; - - var str; - switch (type){ - case 'image': - str = '' - break; - case 'embed': - str = ''; - break; - case 'video': - var ext = url.substr(url.lastIndexOf('.') + 1); - if(ext == 'ogv') ext = 'ogg'; - str = '' + - ''; - break; - } - return str; - } - - function switchImgAndVideo(root,img2video){ - utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'),function(node){ - var className = node.getAttr('class'); - if(className && className.indexOf('edui-faked-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - if(className && className.indexOf('edui-upload-video') != -1){ - var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'image'); - node.parentNode.replaceChild(UE.uNode.createElement(html),node); - } - }) - } - - me.addOutputRule(function(root){ - switchImgAndVideo(root,true) - }); - me.addInputRule(function(root){ - switchImgAndVideo(root) - }); - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } videoAttr 键值对对象, 描述一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }; - * - * //editor 是编辑器实例 - * //向编辑器插入单个视频 - * editor.execCommand( 'insertvideo', videoAttr ); - * ``` - */ - - /** - * 插入视频 - * @command insertvideo - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Array } videoArr 需要插入的视频的数组, 其中的每一个元素都是一个键值对对象, 描述了一个视频的所有属性 - * @example - * ```javascript - * - * var videoAttr1 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * }, - * videoAttr2 = { - * //视频地址 - * url: 'http://www.youku.com/xxx', - * //视频宽高值, 单位px - * width: 200, - * height: 100 - * } - * - * //editor 是编辑器实例 - * //该方法将会向编辑器内插入两个视频 - * editor.execCommand( 'insertvideo', [ videoAttr1, videoAttr2 ] ); - * ``` - */ - - /** - * 查询当前光标所在处是否是一个视频 - * @command insertvideo - * @method queryCommandState - * @param { String } cmd 需要查询的命令字符串 - * @return { int } 如果当前光标所在处的元素是一个视频对象, 则返回1,否则返回0 - * @example - * ```javascript - * - * //editor 是编辑器实例 - * editor.queryCommandState( 'insertvideo' ); - * ``` - */ - me.commands["insertvideo"] = { - execCommand: function (cmd, videoObjs, type){ - videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs]; - var html = [],id = 'tmpVedio', cl; - for(var i=0,vi,len = videoObjs.length;i 0) { - return 0; - } - for (var i in dtd.$isNotEmpty) if (dtd.$isNotEmpty.hasOwnProperty(i)) { - if (node.getElementsByTagName(i).length) { - return 0; - } - } - return 1; - }; - UETable.getWidth = function (cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - }; - - /** - * 获取单元格或者单元格组的“对齐”状态。 如果当前的检测对象是一个单元格组, 只有在满足所有单元格的 水平和竖直 对齐属性都相同的 - * 条件时才会返回其状态值,否则将返回null; 如果当前只检测了一个单元格, 则直接返回当前单元格的对齐状态; - * @param table cell or table cells , 支持单个单元格dom对象 或者 单元格dom对象数组 - * @return { align: 'left' || 'right' || 'center', valign: 'top' || 'middle' || 'bottom' } 或者 null - */ - UETable.getTableCellAlignState = function ( cells ) { - - !utils.isArray( cells ) && ( cells = [cells] ); - - var result = {}, - status = ['align', 'valign'], - tempStatus = null, - isSame = true;//状态是否相同 - - utils.each( cells, function( cellNode ){ - - utils.each( status, function( currentState ){ - - tempStatus = cellNode.getAttribute( currentState ); - - if( !result[ currentState ] && tempStatus ) { - result[ currentState ] = tempStatus; - } else if( !result[ currentState ] || ( tempStatus !== result[ currentState ] ) ) { - isSame = false; - return false; - } - - } ); - - return isSame; - - }); - - return isSame ? result : null; - - }; - - /** - * 根据当前选区获取相关的table信息 - * @return {Object} - */ - UETable.getTableItemsByRange = function (editor) { - var start = editor.selection.getStart(); - - //ff下会选中bookmark - if( start && start.id && start.id.indexOf('_baidu_bookmark_start_') === 0 && start.nextSibling) { - start = start.nextSibling; - } - - //在table或者td边缘有可能存在选中tr的情况 - var cell = start && domUtils.findParentByTagName(start, ["td", "th"], true), - tr = cell && cell.parentNode, - caption = start && domUtils.findParentByTagName(start, 'caption', true), - table = caption ? caption.parentNode : tr && tr.parentNode.parentNode; - - return { - cell:cell, - tr:tr, - table:table, - caption:caption - } - }; - UETable.getUETableBySelected = function (editor) { - var table = UETable.getTableItemsByRange(editor).table; - if (table && table.ueTable && table.ueTable.selectedTds.length) { - return table.ueTable; - } - return null; - }; - - UETable.getDefaultValue = function (editor, table) { - var borderMap = { - thin:'0px', - medium:'1px', - thick:'2px' - }, - tableBorder, tdPadding, tdBorder, tmpValue; - if (!table) { - table = editor.document.createElement('table'); - table.insertRow(0).insertCell(0).innerHTML = 'xxx'; - editor.body.appendChild(table); - var td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - domUtils.remove(table); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } else { - td = table.getElementsByTagName('td')[0]; - tmpValue = domUtils.getComputedStyle(table, 'border-left-width'); - tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'padding-left'); - tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10); - tmpValue = domUtils.getComputedStyle(td, 'border-left-width'); - tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10); - return { - tableBorder:tableBorder, - tdPadding:tdPadding, - tdBorder:tdBorder - }; - } - }; - /** - * 根据当前点击的td或者table获取索引对象 - * @param tdOrTable - */ - UETable.getUETable = function (tdOrTable) { - var tag = tdOrTable.tagName.toLowerCase(); - tdOrTable = (tag == "td" || tag == "th" || tag == 'caption') ? domUtils.findParentByTagName(tdOrTable, "table", true) : tdOrTable; - if (!tdOrTable.ueTable) { - tdOrTable.ueTable = new UETable(tdOrTable); - } - return tdOrTable.ueTable; - }; - - UETable.cloneCell = function(cell,ignoreMerge,keepPro){ - if (!cell || utils.isString(cell)) { - return this.table.ownerDocument.createElement(cell || 'td'); - } - var flag = domUtils.hasClass(cell, "selectTdClass"); - flag && domUtils.removeClasses(cell, "selectTdClass"); - var tmpCell = cell.cloneNode(true); - if (ignoreMerge) { - tmpCell.rowSpan = tmpCell.colSpan = 1; - } - //去掉宽高 - !keepPro && domUtils.removeAttributes(tmpCell,'width height'); - !keepPro && domUtils.removeAttributes(tmpCell,'style'); - - tmpCell.style.borderLeftStyle = ""; - tmpCell.style.borderTopStyle = ""; - tmpCell.style.borderLeftColor = cell.style.borderRightColor; - tmpCell.style.borderLeftWidth = cell.style.borderRightWidth; - tmpCell.style.borderTopColor = cell.style.borderBottomColor; - tmpCell.style.borderTopWidth = cell.style.borderBottomWidth; - flag && domUtils.addClass(cell, "selectTdClass"); - return tmpCell; - } - - UETable.prototype = { - getMaxRows:function () { - var rows = this.table.rows, maxLen = 1; - for (var i = 0, row; row = rows[i]; i++) { - var currentMax = 1; - for (var j = 0, cj; cj = row.cells[j++];) { - currentMax = Math.max(cj.rowSpan || 1, currentMax); - } - maxLen = Math.max(currentMax + i, maxLen); - } - return maxLen; - }, - /** - * 获取当前表格的最大列数 - */ - getMaxCols:function () { - var rows = this.table.rows, maxLen = 0, cellRows = {}; - for (var i = 0, row; row = rows[i]; i++) { - var cellsNum = 0; - for (var j = 0, cj; cj = row.cells[j++];) { - cellsNum += (cj.colSpan || 1); - if (cj.rowSpan && cj.rowSpan > 1) { - for (var k = 1; k < cj.rowSpan; k++) { - if (!cellRows['row_' + (i + k)]) { - cellRows['row_' + (i + k)] = (cj.colSpan || 1); - } else { - cellRows['row_' + (i + k)]++ - } - } - - } - } - cellsNum += cellRows['row_' + i] || 0; - maxLen = Math.max(cellsNum, maxLen); - } - return maxLen; - }, - getCellColIndex:function (cell) { - - }, - /** - * 获取当前cell旁边的单元格, - * @param cell - * @param right - */ - getHSideCell:function (cell, right) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!right && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (right && (!len ? (cellInfo.colIndex == (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !len ? cellInfo.rowIndex : range.beginRowIndex; - previewColIndex = !right ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex + 1 : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getTabNextCell:function (cell, preRowIndex) { - var cellInfo = this.getCellInfo(cell), - rowIndex = preRowIndex || cellInfo.rowIndex, - colIndex = cellInfo.colIndex + 1 + (cellInfo.colSpan - 1), - nextCell; - try { - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - try { - rowIndex = rowIndex * 1 + 1; - colIndex = 0; - nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); - } catch (e) { - } - } - return nextCell; - - }, - /** - * 获取视觉上的后置单元格 - * @param cell - * @param bottom - */ - getVSideCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 获取相同结束位置的单元格,xOrY指代了是获取x轴相同还是y轴相同 - */ - getSameEndPosCells:function (cell, xOrY) { - try { - var flag = (xOrY.toLowerCase() === "x"), - end = domUtils.getXY(cell)[flag ? 'x' : 'y'] + cell["offset" + (flag ? 'Width' : 'Height')], - rows = this.table.rows, - cells = null, returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpEnd = domUtils.getXY(tmpCell)[flag ? 'x' : 'y'] + tmpCell["offset" + (flag ? 'Width' : 'Height')]; - //对应行的td已经被上面行rowSpan了 - if (tmpEnd > end && flag) break; - if (cell == tmpCell || end == tmpEnd) { - //只获取单一的单元格 - //todo 仅获取单一单元格在特定情况下会造成returns为空,从而影响后续的拖拽实现,修正这个。需考虑性能 - if (tmpCell[flag ? "colSpan" : "rowSpan"] == 1) { - returns.push(tmpCell); - } - if (flag) break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - setCellContent:function (cell, content) { - cell.innerHTML = content || (browser.ie ? domUtils.fillChar : "
    "); - }, - cloneCell:UETable.cloneCell, - /** - * 获取跟当前单元格的右边竖线为左边的所有未合并单元格 - */ - getSameStartPosXCells:function (cell) { - try { - var start = domUtils.getXY(cell).x + cell.offsetWidth, - rows = this.table.rows, cells , returns = []; - for (var i = 0; i < this.rowsNum; i++) { - cells = rows[i].cells; - for (var j = 0, tmpCell; tmpCell = cells[j++];) { - var tmpStart = domUtils.getXY(tmpCell).x; - if (tmpStart > start) break; - if (tmpStart == start && tmpCell.colSpan == 1) { - returns.push(tmpCell); - break; - } - } - } - return returns; - } catch (e) { - showError(e); - } - }, - /** - * 更新table对应的索引表 - */ - update:function (table) { - this.table = table || this.table; - this.selectedTds = []; - this.cellsRange = {}; - this.indexTable = []; - var rows = this.table.rows, - rowsNum = this.getMaxRows(), - dNum = rowsNum - rows.length, - colsNum = this.getMaxCols(); - while (dNum--) { - this.table.insertRow(rows.length); - } - this.rowsNum = rowsNum; - this.colsNum = colsNum; - for (var i = 0, len = rows.length; i < len; i++) { - this.indexTable[i] = new Array(colsNum); - } - //填充索引表 - for (var rowIndex = 0, row; row = rows[rowIndex]; rowIndex++) { - for (var cellIndex = 0, cell, cells = row.cells; cell = cells[cellIndex]; cellIndex++) { - //修正整行被rowSpan时导致的行数计算错误 - if (cell.rowSpan > rowsNum) { - cell.rowSpan = rowsNum; - } - var colIndex = cellIndex, - rowSpan = cell.rowSpan || 1, - colSpan = cell.colSpan || 1; - //当已经被上一行rowSpan或者被前一列colSpan了,则跳到下一个单元格进行 - while (this.indexTable[rowIndex][colIndex]) colIndex++; - for (var j = 0; j < rowSpan; j++) { - for (var k = 0; k < colSpan; k++) { - this.indexTable[rowIndex + j][colIndex + k] = { - rowIndex:rowIndex, - cellIndex:cellIndex, - colIndex:colIndex, - rowSpan:rowSpan, - colSpan:colSpan - } - } - } - } - } - //修复残缺td - for (j = 0; j < rowsNum; j++) { - for (k = 0; k < colsNum; k++) { - if (this.indexTable[j][k] === undefined) { - row = rows[j]; - cell = row.cells[row.cells.length - 1]; - cell = cell ? cell.cloneNode(true) : this.table.ownerDocument.createElement("td"); - this.setCellContent(cell); - if (cell.colSpan !== 1)cell.colSpan = 1; - if (cell.rowSpan !== 1)cell.rowSpan = 1; - row.appendChild(cell); - this.indexTable[j][k] = { - rowIndex:j, - cellIndex:cell.cellIndex, - colIndex:k, - rowSpan:1, - colSpan:1 - } - } - } - } - //当框选后删除行或者列后撤销,需要重建选区。 - var tds = domUtils.getElementsByTagName(this.table, "td"), - selectTds = []; - utils.each(tds, function (td) { - if (domUtils.hasClass(td, "selectTdClass")) { - selectTds.push(td); - } - }); - if (selectTds.length) { - var start = selectTds[0], - end = selectTds[selectTds.length - 1], - startInfo = this.getCellInfo(start), - endInfo = this.getCellInfo(end); - this.selectedTds = selectTds; - this.cellsRange = { - beginRowIndex:startInfo.rowIndex, - beginColIndex:startInfo.colIndex, - endRowIndex:endInfo.rowIndex + endInfo.rowSpan - 1, - endColIndex:endInfo.colIndex + endInfo.colSpan - 1 - }; - } - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!domUtils.hasClass(this.table.rows[0], "firstRow")) { - domUtils.addClass(this.table.rows[0], "firstRow"); - for(var i = 1; i< this.table.rows.length; i++) { - domUtils.removeClasses(this.table.rows[i], "firstRow"); - } - } - }, - /** - * 获取单元格的索引信息 - */ - getCellInfo:function (cell) { - if (!cell) return; - var cellIndex = cell.cellIndex, - rowIndex = cell.parentNode.rowIndex, - rowInfo = this.indexTable[rowIndex], - numCols = this.colsNum; - for (var colIndex = cellIndex; colIndex < numCols; colIndex++) { - var cellInfo = rowInfo[colIndex]; - if (cellInfo.rowIndex === rowIndex && cellInfo.cellIndex === cellIndex) { - return cellInfo; - } - } - }, - /** - * 根据行列号获取单元格 - */ - getCell:function (rowIndex, cellIndex) { - return rowIndex < this.rowsNum && this.table.rows[rowIndex].cells[cellIndex] || null; - }, - /** - * 删除单元格 - */ - deleteCell:function (cell, rowIndex) { - rowIndex = typeof rowIndex == 'number' ? rowIndex : cell.parentNode.rowIndex; - var row = this.table.rows[rowIndex]; - row.deleteCell(cell.cellIndex); - }, - /** - * 根据始末两个单元格获取被框选的所有单元格范围 - */ - getCellsRange:function (cellA, cellB) { - function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) { - var tmpBeginRowIndex = beginRowIndex, - tmpBeginColIndex = beginColIndex, - tmpEndRowIndex = endRowIndex, - tmpEndColIndex = endColIndex, - cellInfo, colIndex, rowIndex; - // 通过indexTable检查是否存在超出TableRange上边界的情况 - if (beginRowIndex > 0) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[beginRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex; - if (rowIndex < beginRowIndex) { - tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex); - } - } - } - // 通过indexTable检查是否存在超出TableRange右边界的情况 - if (endColIndex < me.colsNum) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][endColIndex]; - colIndex = cellInfo.colIndex + cellInfo.colSpan - 1; - if (colIndex > endColIndex) { - tmpEndColIndex = Math.max(colIndex, tmpEndColIndex); - } - } - } - // 检查是否有超出TableRange下边界的情况 - if (endRowIndex < me.rowsNum) { - for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) { - cellInfo = me.indexTable[endRowIndex][colIndex]; - rowIndex = cellInfo.rowIndex + cellInfo.rowSpan - 1; - if (rowIndex > endRowIndex) { - tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex); - } - } - } - // 检查是否有超出TableRange左边界的情况 - if (beginColIndex > 0) { - for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) { - cellInfo = me.indexTable[rowIndex][beginColIndex]; - colIndex = cellInfo.colIndex; - if (colIndex < beginColIndex) { - tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex); - } - } - } - //递归调用直至所有完成所有框选单元格的扩展 - if (tmpBeginRowIndex != beginRowIndex || tmpBeginColIndex != beginColIndex || tmpEndRowIndex != endRowIndex || tmpEndColIndex != endColIndex) { - return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex); - } else { - // 不需要扩展TableRange的情况 - return { - beginRowIndex:beginRowIndex, - beginColIndex:beginColIndex, - endRowIndex:endRowIndex, - endColIndex:endColIndex - }; - } - } - - try { - var me = this, - cellAInfo = me.getCellInfo(cellA); - if (cellA === cellB) { - return { - beginRowIndex:cellAInfo.rowIndex, - beginColIndex:cellAInfo.colIndex, - endRowIndex:cellAInfo.rowIndex + cellAInfo.rowSpan - 1, - endColIndex:cellAInfo.colIndex + cellAInfo.colSpan - 1 - }; - } - var cellBInfo = me.getCellInfo(cellB); - // 计算TableRange的四个边 - var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex), - beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex), - endRowIndex = Math.max(cellAInfo.rowIndex + cellAInfo.rowSpan - 1, cellBInfo.rowIndex + cellBInfo.rowSpan - 1), - endColIndex = Math.max(cellAInfo.colIndex + cellAInfo.colSpan - 1, cellBInfo.colIndex + cellBInfo.colSpan - 1); - - return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex); - } catch (e) { - //throw e; - } - }, - /** - * 依据cellsRange获取对应的单元格集合 - */ - getCells:function (range) { - //每次获取cells之前必须先清除上次的选择,否则会对后续获取操作造成影响 - this.clearSelected(); - var beginRowIndex = range.beginRowIndex, - beginColIndex = range.beginColIndex, - endRowIndex = range.endRowIndex, - endColIndex = range.endColIndex, - cellInfo, rowIndex, colIndex, tdHash = {}, returnTds = []; - for (var i = beginRowIndex; i <= endRowIndex; i++) { - for (var j = beginColIndex; j <= endColIndex; j++) { - cellInfo = this.indexTable[i][j]; - rowIndex = cellInfo.rowIndex; - colIndex = cellInfo.colIndex; - // 如果Cells里已经包含了此Cell则跳过 - var key = rowIndex + '|' + colIndex; - if (tdHash[key]) continue; - tdHash[key] = 1; - if (rowIndex < i || colIndex < j || rowIndex + cellInfo.rowSpan - 1 > endRowIndex || colIndex + cellInfo.colSpan - 1 > endColIndex) { - return null; - } - returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex)); - } - } - return returnTds; - }, - /** - * 清理已经选中的单元格 - */ - clearSelected:function () { - UETable.removeSelectedClass(this.selectedTds); - this.selectedTds = []; - this.cellsRange = {}; - }, - /** - * 根据range设置已经选中的单元格 - */ - setSelected:function (range) { - var cells = this.getCells(range); - UETable.addSelectedClass(cells); - this.selectedTds = cells; - this.cellsRange = range; - }, - isFullRow:function () { - var range = this.cellsRange; - return (range.endColIndex - range.beginColIndex + 1) == this.colsNum; - }, - isFullCol:function () { - var range = this.cellsRange, - table = this.table, - ths = table.getElementsByTagName("th"), - rows = range.endRowIndex - range.beginRowIndex + 1; - return !ths.length ? rows == this.rowsNum : rows == this.rowsNum || (rows == this.rowsNum - 1); - - }, - /** - * 获取视觉上的前置单元格,默认是左边,top传入时 - * @param cell - * @param top - */ - getNextCell:function (cell, bottom, ignoreRange) { - try { - var cellInfo = this.getCellInfo(cell), - nextRowIndex, nextColIndex; - var len = this.selectedTds.length && !ignoreRange, - range = this.cellsRange; - //末行或者末列没有后置单元格 - if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null; - - nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) - : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1); - nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex; - return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - getPreviewCell:function (cell, top) { - try { - var cellInfo = this.getCellInfo(cell), - previewRowIndex, previewColIndex; - var len = this.selectedTds.length, - range = this.cellsRange; - //首行或者首列没有前置单元格 - if ((!top && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (top && (!len ? (cellInfo.rowIndex > (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null; - - previewRowIndex = !top ? ( !len ? cellInfo.rowIndex : range.beginRowIndex ) - : ( !len ? (cellInfo.rowIndex < 1 ? 0 : (cellInfo.rowIndex - 1)) : range.beginRowIndex); - previewColIndex = !top ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1) - : ( !len ? cellInfo.colIndex : range.endColIndex + 1); - return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); - } catch (e) { - showError(e); - } - }, - /** - * 移动单元格中的内容 - */ - moveContent:function (cellTo, cellFrom) { - if (UETable.isEmptyBlock(cellFrom)) return; - if (UETable.isEmptyBlock(cellTo)) { - cellTo.innerHTML = cellFrom.innerHTML; - return; - } - var child = cellTo.lastChild; - if (child.nodeType == 3 || !dtd.$block[child.tagName]) { - cellTo.appendChild(cellTo.ownerDocument.createElement('br')) - } - while (child = cellFrom.firstChild) { - cellTo.appendChild(child); - } - }, - /** - * 向右合并单元格 - */ - mergeRight:function (cell) { - var cellInfo = this.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan, - rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex); - //合并 - cell.colSpan = cellInfo.colSpan + rightCellInfo.colSpan; - //被合并的单元格不应存在宽度属性 - cell.removeAttribute("width"); - //移动内容 - this.moveContent(cell, rightCell); - //删掉被合并的Cell - this.deleteCell(rightCell, rightCellInfo.rowIndex); - this.update(); - }, - /** - * 向下合并单元格 - */ - mergeDown:function (cell) { - var cellInfo = this.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan, - downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex], - downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + downCellInfo.rowSpan; - cell.removeAttribute("height"); - this.moveContent(cell, downCell); - this.deleteCell(downCell, downCellInfo.rowIndex); - this.update(); - }, - /** - * 合并整个range中的内容 - */ - mergeRange:function () { - //由于合并操作可以在任意时刻进行,所以无法通过鼠标位置等信息实时生成range,只能通过缓存实例中的cellsRange对象来访问 - var range = this.cellsRange, - leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex].cellIndex); - - if (leftTopCell.tagName == "TH" && range.endRowIndex !== range.beginRowIndex) { - var index = this.indexTable, - info = this.getCellInfo(leftTopCell); - leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex); - range = this.getCellsRange(leftTopCell, this.getCell(index[this.rowsNum - 1][info.colIndex].rowIndex, index[this.rowsNum - 1][info.colIndex].cellIndex)); - } - - // 删除剩余的Cells - var cells = this.getCells(range); - for(var i= 0,ci;ci=cells[i++];){ - if (ci !== leftTopCell) { - this.moveContent(leftTopCell, ci); - this.deleteCell(ci); - } - } - // 修改左上角Cell的rowSpan和colSpan,并调整宽度属性设置 - leftTopCell.rowSpan = range.endRowIndex - range.beginRowIndex + 1; - leftTopCell.rowSpan > 1 && leftTopCell.removeAttribute("height"); - leftTopCell.colSpan = range.endColIndex - range.beginColIndex + 1; - leftTopCell.colSpan > 1 && leftTopCell.removeAttribute("width"); - if (leftTopCell.rowSpan == this.rowsNum && leftTopCell.colSpan != 1) { - leftTopCell.colSpan = 1; - } - - if (leftTopCell.colSpan == this.colsNum && leftTopCell.rowSpan != 1) { - var rowIndex = leftTopCell.parentNode.rowIndex; - //解决IE下的表格操作问题 - if( this.table.deleteRow ) { - for (var i = rowIndex+ 1, curIndex=rowIndex+ 1, len=leftTopCell.rowSpan; i < len; i++) { - this.table.deleteRow(curIndex); - } - } else { - for (var i = 0, len=leftTopCell.rowSpan - 1; i < len; i++) { - var row = this.table.rows[rowIndex + 1]; - row.parentNode.removeChild(row); - } - } - leftTopCell.rowSpan = 1; - } - this.update(); - }, - /** - * 插入一行单元格 - */ - insertRow:function (rowIndex, sourceCell) { - var numCols = this.colsNum, - table = this.table, - row = table.insertRow(rowIndex), cell, - isInsertTitle = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(colIndex, cell, tableRow) { - if (colIndex == 0) { - var tr = tableRow.nextSibling || tableRow.previousSibling, - th = tr.cells[colIndex]; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - //首行直接插入,无需考虑部分单元格被rowspan的情况 - if (rowIndex == 0 || rowIndex == this.rowsNum) { - for (var colIndex = 0; colIndex < numCols; colIndex++) { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - cell.getAttribute('vAlign') && cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - row.appendChild(cell); - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } else { - var infoRow = this.indexTable[rowIndex], - cellIndex = 0; - for (colIndex = 0; colIndex < numCols; colIndex++) { - var cellInfo = infoRow[colIndex]; - //如果存在某个单元格的rowspan穿过待插入行的位置,则修改该单元格的rowspan即可,无需插入单元格 - if (cellInfo.rowIndex < rowIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.rowSpan = cellInfo.rowSpan + 1; - } else { - cell = this.cloneCell(sourceCell, true); - this.setCellContent(cell); - row.appendChild(cell); - } - if(!isInsertTitle) replaceTdToTh(colIndex, cell, row); - } - } - //框选时插入不触发contentchange,需要手动更新索引。 - this.update(); - return row; - }, - /** - * 删除一行单元格 - * @param rowIndex - */ - deleteRow:function (rowIndex) { - var row = this.table.rows[rowIndex], - infoRow = this.indexTable[rowIndex], - colsNum = this.colsNum, - count = 0; //处理计数 - for (var colIndex = 0; colIndex < colsNum;) { - var cellInfo = infoRow[colIndex], - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (cell.rowSpan > 1) { - if (cellInfo.rowIndex == rowIndex) { - var clone = cell.cloneNode(true); - clone.rowSpan = cell.rowSpan - 1; - clone.innerHTML = ""; - cell.rowSpan = 1; - var nextRowIndex = rowIndex + 1, - nextRow = this.table.rows[nextRowIndex], - insertCellIndex, - preMerged = this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count; - if (preMerged < colIndex) { - insertCellIndex = colIndex - preMerged - 1; - //nextRow.insertCell(insertCellIndex); - domUtils.insertAfter(nextRow.cells[insertCellIndex], clone); - } else { - if (nextRow.cells.length) nextRow.insertBefore(clone, nextRow.cells[0]) - } - count += 1; - //cell.parentNode.removeChild(cell); - } - } - colIndex += cell.colSpan || 1; - } - var deleteTds = [], cacheMap = {}; - for (colIndex = 0; colIndex < colsNum; colIndex++) { - var tmpRowIndex = infoRow[colIndex].rowIndex, - tmpCellIndex = infoRow[colIndex].cellIndex, - key = tmpRowIndex + "_" + tmpCellIndex; - if (cacheMap[key])continue; - cacheMap[key] = 1; - cell = this.getCell(tmpRowIndex, tmpCellIndex); - deleteTds.push(cell); - } - var mergeTds = []; - utils.each(deleteTds, function (td) { - if (td.rowSpan == 1) { - td.parentNode.removeChild(td); - } else { - mergeTds.push(td); - } - }); - utils.each(mergeTds, function (td) { - td.rowSpan--; - }); - row.parentNode.removeChild(row); - //浏览器方法本身存在bug,采用自定义方法删除 - //this.table.deleteRow(rowIndex); - this.update(); - }, - insertCol:function (colIndex, sourceCell, defaultValue) { - var rowsNum = this.rowsNum, - rowIndex = 0, - tableRow, cell, - backWidth = parseInt((this.table.offsetWidth - (this.colsNum + 1) * 20 - (this.colsNum + 1)) / (this.colsNum + 1), 10), - isInsertTitleCol = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH'; - - function replaceTdToTh(rowIndex, cell, tableRow) { - if (rowIndex == 0) { - var th = cell.nextSibling || cell.previousSibling; - if (th.tagName == 'TH') { - th = cell.ownerDocument.createElement("th"); - th.appendChild(cell.firstChild); - tableRow.insertBefore(th, cell); - domUtils.remove(cell) - } - }else{ - if (cell.tagName == 'TH') { - var td = cell.ownerDocument.createElement("td"); - td.appendChild(cell.firstChild); - tableRow.insertBefore(td, cell); - domUtils.remove(cell) - } - } - } - - var preCell; - if (colIndex == 0 || colIndex == this.colsNum) { - for (; rowIndex < rowsNum; rowIndex++) { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[colIndex == 0 ? colIndex : tableRow.cells.length]; - cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(colIndex == 0 ? colIndex : tableRow.cells.length); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - if (!colIndex) { - tableRow.insertBefore(cell, tableRow.cells[0]); - } else { - domUtils.insertAfter(tableRow.cells[tableRow.cells.length - 1], cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow) - } - } else { - for (; rowIndex < rowsNum; rowIndex++) { - var cellInfo = this.indexTable[rowIndex][colIndex]; - if (cellInfo.colIndex < colIndex) { - cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - cell.colSpan = cellInfo.colSpan + 1; - } else { - tableRow = this.table.rows[rowIndex]; - preCell = tableRow.cells[cellInfo.cellIndex]; - - cell = this.cloneCell(sourceCell, true);//tableRow.insertCell(cellInfo.cellIndex); - this.setCellContent(cell); - cell.setAttribute('vAlign', cell.getAttribute('vAlign')); - preCell && cell.setAttribute('width', preCell.getAttribute('width')); - //防止IE下报错 - preCell ? tableRow.insertBefore(cell, preCell) : tableRow.appendChild(cell); - } - if(!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow); - } - } - //框选时插入不触发contentchange,需要手动更新索引 - this.update(); - this.updateWidth(backWidth, defaultValue || {tdPadding:10, tdBorder:1}); - }, - updateWidth:function (width, defaultValue) { - var table = this.table, - tmpWidth = UETable.getWidth(table) - defaultValue.tdPadding * 2 - defaultValue.tdBorder + width; - if (tmpWidth < table.ownerDocument.body.offsetWidth) { - table.setAttribute("width", tmpWidth); - return; - } - var tds = domUtils.getElementsByTagName(this.table, "td th"); - utils.each(tds, function (td) { - td.setAttribute("width", width); - }) - }, - deleteCol:function (colIndex) { - var indexTable = this.indexTable, - tableRows = this.table.rows, - backTableWidth = this.table.getAttribute("width"), - backTdWidth = 0, - rowsNum = this.rowsNum, - cacheMap = {}; - for (var rowIndex = 0; rowIndex < rowsNum;) { - var infoRow = indexTable[rowIndex], - cellInfo = infoRow[colIndex], - key = cellInfo.rowIndex + '_' + cellInfo.colIndex; - // 跳过已经处理过的Cell - if (cacheMap[key])continue; - cacheMap[key] = 1; - var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); - if (!backTdWidth) backTdWidth = cell && parseInt(cell.offsetWidth / cell.colSpan, 10).toFixed(0); - // 如果Cell的colSpan大于1, 就修改colSpan, 否则就删掉这个Cell - if (cell.colSpan > 1) { - cell.colSpan--; - } else { - tableRows[rowIndex].deleteCell(cellInfo.cellIndex); - } - rowIndex += cellInfo.rowSpan || 1; - } - this.table.setAttribute("width", backTableWidth - backTdWidth); - this.update(); - }, - splitToCells:function (cell) { - var me = this, - cells = this.splitToRows(cell); - utils.each(cells, function (cell) { - me.splitToCols(cell); - }) - }, - splitToRows:function (cell) { - var cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.rowSpan = 1; - results.push(cell); - // 补齐单元格 - for (var i = rowIndex, endRow = rowIndex + cellInfo.rowSpan; i < endRow; i++) { - if (i == rowIndex)continue; - var tableRow = this.table.rows[i], - tmpCell = tableRow.insertCell(colIndex - this.getPreviewMergedCellsNum(i, colIndex)); - tmpCell.colSpan = cellInfo.colSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - results.push(tmpCell); - } - this.update(); - return results; - }, - getPreviewMergedCellsNum:function (rowIndex, colIndex) { - var indexRow = this.indexTable[rowIndex], - num = 0; - for (var i = 0; i < colIndex;) { - var colSpan = indexRow[i].colSpan, - tmpRowIndex = indexRow[i].rowIndex; - num += (colSpan - (tmpRowIndex == rowIndex ? 1 : 0)); - i += colSpan; - } - return num; - }, - splitToCols:function (cell) { - var backWidth = (cell.offsetWidth / cell.colSpan - 22).toFixed(0), - - cellInfo = this.getCellInfo(cell), - rowIndex = cellInfo.rowIndex, - colIndex = cellInfo.colIndex, - results = []; - // 修改Cell的rowSpan - cell.colSpan = 1; - cell.setAttribute("width", backWidth); - results.push(cell); - // 补齐单元格 - for (var j = colIndex, endCol = colIndex + cellInfo.colSpan; j < endCol; j++) { - if (j == colIndex)continue; - var tableRow = this.table.rows[rowIndex], - tmpCell = tableRow.insertCell(this.indexTable[rowIndex][j].cellIndex + 1); - tmpCell.rowSpan = cellInfo.rowSpan; - this.setCellContent(tmpCell); - tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign')); - tmpCell.setAttribute('align', cell.getAttribute('align')); - tmpCell.setAttribute('width', backWidth); - if (cell.style.cssText) { - tmpCell.style.cssText = cell.style.cssText; - } - //处理th的情况 - if (cell.tagName == 'TH') { - var th = cell.ownerDocument.createElement('th'); - th.appendChild(tmpCell.firstChild); - th.setAttribute('vAlign', cell.getAttribute('vAlign')); - th.rowSpan = tmpCell.rowSpan; - tableRow.insertBefore(th, tmpCell); - domUtils.remove(tmpCell); - } - results.push(tmpCell); - } - this.update(); - return results; - }, - isLastCell:function (cell, rowsNum, colsNum) { - rowsNum = rowsNum || this.rowsNum; - colsNum = colsNum || this.colsNum; - var cellInfo = this.getCellInfo(cell); - return ((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) && - ((cellInfo.colIndex + cellInfo.colSpan) == colsNum); - }, - getLastCell:function (cells) { - cells = cells || this.table.getElementsByTagName("td"); - var firstInfo = this.getCellInfo(cells[0]); - var me = this, last = cells[0], - tr = last.parentNode, - cellsNum = 0, cols = 0, rows; - utils.each(cells, function (cell) { - if (cell.parentNode == tr)cols += cell.colSpan || 1; - cellsNum += cell.rowSpan * cell.colSpan || 1; - }); - rows = cellsNum / cols; - utils.each(cells, function (cell) { - if (me.isLastCell(cell, rows, cols)) { - last = cell; - return false; - } - }); - return last; - - }, - selectRow:function (rowIndex) { - var indexRow = this.indexTable[rowIndex], - start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex), - end = this.getCell(indexRow[this.colsNum - 1].rowIndex, indexRow[this.colsNum - 1].cellIndex), - range = this.getCellsRange(start, end); - this.setSelected(range); - }, - selectTable:function () { - var tds = this.table.getElementsByTagName("td"), - range = this.getCellsRange(tds[0], tds[tds.length - 1]); - this.setSelected(range); - }, - setBackground:function (cells, value) { - if (typeof value === "string") { - utils.each(cells, function (cell) { - cell.style.backgroundColor = value; - }) - } else if (typeof value === "object") { - value = utils.extend({ - repeat:true, - colorList:["#ddd", "#fff"] - }, value); - var rowIndex = this.getCellInfo(cells[0]).rowIndex, - count = 0, - colors = value.colorList, - getColor = function (list, index, repeat) { - return list[index] ? list[index] : repeat ? list[index % list.length] : ""; - }; - for (var i = 0, cell; cell = cells[i++];) { - var cellInfo = this.getCellInfo(cell); - cell.style.backgroundColor = getColor(colors, ((rowIndex + count) == cellInfo.rowIndex) ? count : ++count, value.repeat); - } - } - }, - removeBackground:function (cells) { - utils.each(cells, function (cell) { - cell.style.backgroundColor = ""; - }) - } - - - }; - function showError(e) { - } -})(); - -// plugins/table.cmds.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 13-2-20 - * Time: 下午6:25 - * To change this template use File | Settings | File Templates. - */ -; -(function () { - var UT = UE.UETable, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor) - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }; - - - UE.commands['inserttable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? -1 : 0; - }, - execCommand: function (cmd, opt) { - function createTable(opt, tdWidth) { - var html = [], - rowsNum = opt.numRows, - colsNum = opt.numCols; - for (var r = 0; r < rowsNum; r++) { - html.push(''); - for (var c = 0; c < colsNum; c++) { - html.push('
  • ' + (browser.ie && browser.version < 11 ? domUtils.fillChar : '
    ') + '
    ' + html.join('') + '
    ' - } - - if (!opt) { - opt = utils.extend({}, { - numCols: this.options.defaultCols, - numRows: this.options.defaultRows, - tdvalign: this.options.tdvalign - }) - } - var me = this; - var range = this.selection.getRange(), - start = range.startContainer, - firstParentBlock = domUtils.findParent(start, function (node) { - return domUtils.isBlockElm(node); - }, true) || me.body; - - var defaultValue = getDefaultValue(me), - tableWidth = firstParentBlock.offsetWidth, - tdWidth = Math.floor(tableWidth / opt.numCols - defaultValue.tdPadding * 2 - defaultValue.tdBorder); - - //todo其他属性 - !opt.tdvalign && (opt.tdvalign = me.options.tdvalign); - me.execCommand("inserthtml", createTable(opt, tdWidth)); - } - }; - - UE.commands['insertparagraphbeforetable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).cell ? 0 : -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var p = this.document.createElement("p"); - p.innerHTML = browser.ie ? ' ' : '
    '; - table.parentNode.insertBefore(p, table); - this.selection.getRange().setStart(p, 0).setCursor(); - } - } - }; - - UE.commands['deletetable'] = { - queryCommandState: function () { - var rng = this.selection.getRange(); - return domUtils.findParentByTagName(rng.startContainer, 'table', true) ? 0 : -1; - }, - execCommand: function (cmd, table) { - var rng = this.selection.getRange(); - table = table || domUtils.findParentByTagName(rng.startContainer, 'table', true); - if (table) { - var next = table.nextSibling; - if (!next) { - next = domUtils.createElement(this.document, 'p', { - 'innerHTML': browser.ie ? domUtils.fillChar : '
    ' - }); - table.parentNode.insertBefore(next, table); - } - domUtils.remove(table); - rng = this.selection.getRange(); - if (next.nodeType == 3) { - rng.setStartBefore(next) - } else { - rng.setStart(next, 0) - } - rng.setCursor(false, true) - this.fireEvent("tablehasdeleted") - - } - - } - }; - UE.commands['cellalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1 - }, - execCommand: function (cmd, align) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('align', align); - } - } - } - }; - UE.commands['cellvalign'] = { - queryCommandState: function () { - return getSelectedArr(this).length ? 0 : -1; - }, - execCommand: function (cmd, valign) { - var selectedTds = getSelectedArr(this); - if (selectedTds.length) { - for (var i = 0, ci; ci = selectedTds[i++];) { - ci.setAttribute('vAlign', valign); - } - } - } - }; - UE.commands['insertcaption'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - return table.getElementsByTagName('caption').length == 0 ? 1 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var caption = this.document.createElement('caption'); - caption.innerHTML = browser.ie ? domUtils.fillChar : '
    '; - table.insertBefore(caption, table.firstChild); - var range = this.selection.getRange(); - range.setStart(caption, 0).setCursor(); - } - - } - }; - UE.commands['deletecaption'] = { - queryCommandState: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - return table.getElementsByTagName('caption').length == 0 ? -1 : 1; - } - return -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - domUtils.remove(table.getElementsByTagName('caption')[0]); - var range = this.selection.getRange(); - range.setStart(table.rows[0].cells[0], 0).setCursor(); - } - - } - }; - UE.commands['inserttitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() != 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertRow(0, 'th'); - } - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitle'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var firstRow = table.rows[0]; - return firstRow.cells[firstRow.cells.length-1].tagName.toLowerCase() == 'th' ? 0 : -1 - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - domUtils.remove(table.rows[0]) - } - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - UE.commands['inserttitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? -1 : 0; - } - return -1; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - if (table) { - getUETable(table).insertCol(0, 'th'); - } - resetTdWidth(table, this); - var th = table.getElementsByTagName('th')[0]; - this.selection.getRange().setStart(th, 0).setCursor(false, true); - } - }; - UE.commands['deletetitlecol'] = { - queryCommandState: function () { - var table = getTableItemsByRange(this).table; - if (table) { - var lastRow = table.rows[table.rows.length-1]; - return lastRow.getElementsByTagName('th').length ? 0 : -1; - } - return -1; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - if (table) { - for(var i = 0; i< table.rows.length; i++ ){ - domUtils.remove(table.rows[i].children[0]) - } - } - resetTdWidth(table, this); - var td = table.getElementsByTagName('td')[0]; - this.selection.getRange().setStart(td, 0).setCursor(false, true); - } - }; - - UE.commands["mergeright"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length) return -1; - - var cellInfo = ut.getCellInfo(cell), - rightColIndex = cellInfo.colIndex + cellInfo.colSpan; - if (rightColIndex >= ut.colsNum) return -1; // 如果处于最右边则不能向右合并 - - var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex], - rightCell = table.rows[rightCellInfo.rowIndex].cells[rightCellInfo.cellIndex]; - if (!rightCell || cell.tagName != rightCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (rightCellInfo.rowIndex == cellInfo.rowIndex && rightCellInfo.rowSpan == cellInfo.rowSpan) ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeRight(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergedown"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table, - cell = tableItems.cell; - - if (!table || !cell) return -1; - var ut = getUETable(table); - if (ut.selectedTds.length)return -1; - - var cellInfo = ut.getCellInfo(cell), - downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan; - if (downRowIndex >= ut.rowsNum) return -1; // 如果处于最下边则不能向下合并 - - var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex], - downCell = table.rows[downCellInfo.rowIndex].cells[downCellInfo.cellIndex]; - if (!downCell || cell.tagName != downCell.tagName) return -1; // TH和TD不能相互合并 - - // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并 - return (downCellInfo.colIndex == cellInfo.colIndex && downCellInfo.colSpan == cellInfo.colSpan) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.mergeDown(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["mergecells"] = { - queryCommandState: function () { - return getUETableBySelected(this) ? 0 : -1; - }, - execCommand: function () { - var ut = getUETableBySelected(this); - if (ut && ut.selectedTds.length) { - var cell = ut.selectedTds[0]; - ut.mergeRange(); - var rng = this.selection.getRange(); - if (domUtils.isEmptyBlock(cell)) { - rng.setStart(cell, 0).collapse(true) - } else { - rng.selectNodeContents(cell) - } - rng.select(); - } - - - } - }; - UE.commands["insertrow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && tableItems.tr !== tableItems.table.rows[0])) && - getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length ? cellInfo.rowIndex:ut.cellsRange.beginRowIndex,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.beginRowIndex, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - //后插入行 - UE.commands["insertrownext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD") && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell, - table = tableItems.table, - ut = getUETable(table), - cellInfo = ut.getCellInfo(cell); - //ut.insertRow(!ut.selectedTds.length? cellInfo.rowIndex + cellInfo.rowSpan : ut.cellsRange.endRowIndex + 1,''); - if (!ut.selectedTds.length) { - ut.insertRow(cellInfo.rowIndex + cellInfo.rowSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) { - ut.insertRow(range.endRowIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["deleterow"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellsRange = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getVSideCell(cell), - nextCell = ut.getVSideCell(cell, true), - rng = this.selection.getRange(); - if (utils.isEmptyObject(cellsRange)) { - ut.deleteRow(cellInfo.rowIndex); - } else { - for (var i = cellsRange.beginRowIndex; i < cellsRange.endRowIndex + 1; i++) { - ut.deleteRow(cellsRange.beginRowIndex); - } - } - var table = ut.table; - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (cellInfo.rowSpan == 1 || cellInfo.rowSpan == cellsRange.endRowIndex - cellsRange.beginRowIndex + 1) { - if (nextCell || preCell) rng.selectNodeContents(nextCell || preCell).setCursor(false, true); - } else { - var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex); - if (newCell) rng.selectNodeContents(newCell).setCursor(false, true); - } - } - if (table.getAttribute("interlaced") === "enabled")this.fireEvent("interlacetable", table); - } - }; - UE.commands["insertcol"] = { - queryCommandState: function (cmd) { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && cell !== tableItems.tr.cells[0])) && - getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function (cmd) { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - if (this.queryCommandState(cmd) == -1)return; - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex:ut.cellsRange.beginColIndex); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.beginColIndex, cell); - } - } - rng.moveToBookmark(bk).select(true); - } - }; - UE.commands["insertcolnext"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - return cell && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - cellInfo = ut.getCellInfo(cell); - //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex + cellInfo.colSpan:ut.cellsRange.endColIndex +1); - if (!ut.selectedTds.length) { - ut.insertCol(cellInfo.colIndex + cellInfo.colSpan, cell); - } else { - var range = ut.cellsRange; - for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) { - ut.insertCol(range.endColIndex + 1, cell); - } - } - rng.moveToBookmark(bk).select(); - } - }; - - UE.commands["deletecol"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this); - return tableItems.cell ? 0 : -1; - }, - execCommand: function () { - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell), - range = ut.cellsRange, - cellInfo = ut.getCellInfo(cell), - preCell = ut.getHSideCell(cell), - nextCell = ut.getHSideCell(cell, true); - if (utils.isEmptyObject(range)) { - ut.deleteCol(cellInfo.colIndex); - } else { - for (var i = range.beginColIndex; i < range.endColIndex + 1; i++) { - ut.deleteCol(range.beginColIndex); - } - } - var table = ut.table, - rng = this.selection.getRange(); - - if (!table.getElementsByTagName('td').length) { - var nextSibling = table.nextSibling; - domUtils.remove(table); - if (nextSibling) { - rng.setStart(nextSibling, 0).setCursor(false, true); - } - } else { - if (domUtils.inDoc(cell, this.document)) { - rng.setStart(cell, 0).setCursor(false, true); - } else { - if (nextCell && domUtils.inDoc(nextCell, this.document)) { - rng.selectNodeContents(nextCell).setCursor(false, true); - } else { - if (preCell && domUtils.inDoc(preCell, this.document)) { - rng.selectNodeContents(preCell).setCursor(true, true); - } - } - } - } - } - }; - UE.commands["splittocells"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && (cell.colSpan > 1 || cell.rowSpan > 1) ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCells(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittorows"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.rowSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToRows(cell); - rng.moveToBookmark(bk).select(); - } - }; - UE.commands["splittocols"] = { - queryCommandState: function () { - var tableItems = getTableItemsByRange(this), - cell = tableItems.cell; - if (!cell) return -1; - var ut = getUETable(tableItems.table); - if (ut.selectedTds.length > 0) return -1; - return cell && cell.colSpan > 1 ? 0 : -1; - }, - execCommand: function () { - var rng = this.selection.getRange(), - bk = rng.createBookmark(true); - var cell = getTableItemsByRange(this).cell, - ut = getUETable(cell); - ut.splitToCols(cell); - rng.moveToBookmark(bk).select(); - - } - }; - - UE.commands["adaptbytext"] = - UE.commands["adaptbywindow"] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd) { - var tableItems = getTableItemsByRange(this), - table = tableItems.table; - if (table) { - if (cmd == 'adaptbywindow') { - resetTdWidth(table, this); - } else { - var cells = domUtils.getElementsByTagName(table, "td th"); - utils.each(cells, function (cell) { - cell.removeAttribute("width"); - }); - table.removeAttribute("width"); - } - } - } - }; - - //平均分配各列 - UE.commands['averagedistributecol'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageWidth() { - var tb = ut.table, - averageWidth, sumWidth = 0, colsNum = 0, - tbAttr = getDefaultValue(me, tb); - - if (ut.isFullRow()) { - sumWidth = tb.offsetWidth; - colsNum = ut.colsNum; - } else { - var begin = ut.cellsRange.beginColIndex, - end = ut.cellsRange.endColIndex, - node; - for (var i = begin; i <= end;) { - node = ut.selectedTds[i]; - sumWidth += node.offsetWidth; - i += node.colSpan; - colsNum += 1; - } - } - averageWidth = Math.ceil(sumWidth / colsNum) - tbAttr.tdBorder * 2 - tbAttr.tdPadding * 2; - return averageWidth; - } - - function setAverageWidth(averageWidth) { - utils.each(domUtils.getElementsByTagName(ut.table, "th"), function (node) { - node.setAttribute("width", ""); - }); - var cells = ut.isFullRow() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - - utils.each(cells, function (node) { - if (node.colSpan == 1) { - node.setAttribute("width", averageWidth); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageWidth(getAverageWidth()); - } - } - }; - //平均分配各行 - UE.commands['averagedistributerow'] = { - queryCommandState: function () { - var ut = getUETableBySelected(this); - if (!ut) return -1; - if (ut.selectedTds && /th/ig.test(ut.selectedTds[0].tagName)) return -1; - return ut.isFullRow() || ut.isFullCol() ? 0 : -1; - }, - execCommand: function (cmd) { - var me = this, - ut = getUETableBySelected(me); - - function getAverageHeight() { - var averageHeight, rowNum, sumHeight = 0, - tb = ut.table, - tbAttr = getDefaultValue(me, tb), - tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName('td')[0], "padding-top")); - - if (ut.isFullCol()) { - var captionArr = domUtils.getElementsByTagName(tb, "caption"), - thArr = domUtils.getElementsByTagName(tb, "th"), - captionHeight, thHeight; - - if (captionArr.length > 0) { - captionHeight = captionArr[0].offsetHeight; - } - if (thArr.length > 0) { - thHeight = thArr[0].offsetHeight; - } - - sumHeight = tb.offsetHeight - (captionHeight || 0) - (thHeight || 0); - rowNum = thArr.length == 0 ? ut.rowsNum : (ut.rowsNum - 1); - } else { - var begin = ut.cellsRange.beginRowIndex, - end = ut.cellsRange.endRowIndex, - count = 0, - trs = domUtils.getElementsByTagName(tb, "tr"); - for (var i = begin; i <= end; i++) { - sumHeight += trs[i].offsetHeight; - count += 1; - } - rowNum = count; - } - //ie8下是混杂模式 - if (browser.ie && browser.version < 9) { - averageHeight = Math.ceil(sumHeight / rowNum); - } else { - averageHeight = Math.ceil(sumHeight / rowNum) - tbAttr.tdBorder * 2 - tdpadding * 2; - } - return averageHeight; - } - - function setAverageHeight(averageHeight) { - var cells = ut.isFullCol() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds; - utils.each(cells, function (node) { - if (node.rowSpan == 1) { - node.setAttribute("height", averageHeight); - } - }); - } - - if (ut && ut.selectedTds.length) { - setAverageHeight(getAverageHeight()); - } - } - }; - - //单元格对齐方式 - UE.commands['cellalignment'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, data) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (!/caption/ig.test(cell.tagName)) { - domUtils.setAttributes(cell, data); - } else { - cell.style.textAlign = data.align; - cell.style.verticalAlign = data.vAlign; - } - me.selection.getRange().setCursor(true); - } else { - utils.each(ut.selectedTds, function (cell) { - domUtils.setAttributes(cell, data); - }); - } - }, - /** - * 查询当前点击的单元格的对齐状态, 如果当前已经选择了多个单元格, 则会返回所有单元格经过统一协调过后的状态 - * @see UE.UETable.getTableCellAlignState - */ - queryCommandValue: function (cmd) { - - var activeMenuCell = getTableItemsByRange( this).cell; - - if( !activeMenuCell ) { - activeMenuCell = getSelectedArr(this)[0]; - } - - if (!activeMenuCell) { - - return null; - - } else { - - //获取同时选中的其他单元格 - var cells = UE.UETable.getUETable(activeMenuCell).selectedTds; - - !cells.length && ( cells = activeMenuCell ); - - return UE.UETable.getTableCellAlignState(cells); - - } - - } - }; - //表格对齐方式 - UE.commands['tablealignment'] = { - queryCommandState: function () { - if (browser.ie && browser.version < 8) { - return -1; - } - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, value) { - var me = this, - start = me.selection.getStart(), - table = start && domUtils.findParentByTagName(start, ["table"], true); - - if (table) { - table.setAttribute("align",value); - } - } - }; - - //表格属性 - UE.commands['edittable'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, color) { - var rng = this.selection.getRange(), - table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var arr = domUtils.getElementsByTagName(table, "td").concat( - domUtils.getElementsByTagName(table, "th"), - domUtils.getElementsByTagName(table, "caption") - ); - utils.each(arr, function (node) { - node.style.borderColor = color; - }); - } - } - }; - //单元格属性 - UE.commands['edittd'] = { - queryCommandState: function () { - return getTableItemsByRange(this).table ? 0 : -1 - }, - execCommand: function (cmd, bkColor) { - var me = this, - ut = getUETableBySelected(me); - - if (!ut) { - var start = me.selection.getStart(), - cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true); - if (cell) { - cell.style.backgroundColor = bkColor; - } - } else { - utils.each(ut.selectedTds, function (cell) { - cell.style.backgroundColor = bkColor; - }); - } - } - }; - - UE.commands["settablebackground"] = { - queryCommandState: function () { - return getSelectedArr(this).length > 1 ? 0 : -1; - }, - execCommand: function (cmd, value) { - var cells, ut; - cells = getSelectedArr(this); - ut = getUETable(cells[0]); - ut.setBackground(cells, value); - } - }; - - UE.commands["cleartablebackground"] = { - queryCommandState: function () { - var cells = getSelectedArr(this); - if (!cells.length)return -1; - for (var i = 0, cell; cell = cells[i++];) { - if (cell.style.backgroundColor !== "") return 0; - } - return -1; - }, - execCommand: function () { - var cells = getSelectedArr(this), - ut = getUETable(cells[0]); - ut.removeBackground(cells); - } - }; - - UE.commands["interlacetable"] = UE.commands["uninterlacetable"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - var interlaced = table.getAttribute("interlaced"); - if (cmd == "interlacetable") { - //TODO 待定 - //是否需要待定,如果设置,则命令只能单次执行成功,但反射具备toggle效果;否则可以覆盖前次命令,但反射将不存在toggle效果 - return (interlaced === "enabled") ? -1 : 0; - } else { - return (!interlaced || interlaced === "disabled") ? -1 : 0; - } - }, - execCommand: function (cmd, classList) { - var table = getTableItemsByRange(this).table; - if (cmd == "interlacetable") { - table.setAttribute("interlaced", "enabled"); - this.fireEvent("interlacetable", table, classList); - } else { - table.setAttribute("interlaced", "disabled"); - this.fireEvent("uninterlacetable", table); - } - } - }; - UE.commands["setbordervisible"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if (!table) return -1; - return 0; - }, - execCommand: function () { - var table = getTableItemsByRange(this).table; - utils.each(domUtils.getElementsByTagName(table,'td'),function(td){ - td.style.borderWidth = '1px'; - td.style.borderStyle = 'solid'; - }) - } - }; - function resetTdWidth(table, editor) { - var tds = domUtils.getElementsByTagName(table,'td th'); - utils.each(tds, function (td) { - td.removeAttribute("width"); - }); - table.setAttribute('width', getTableWidth(editor, true, getDefaultValue(editor, table))); - var tdsWidths = []; - setTimeout(function () { - utils.each(tds, function (td) { - (td.colSpan == 1) && tdsWidths.push(td.offsetWidth) - }) - utils.each(tds, function (td,i) { - (td.colSpan == 1) && td.setAttribute("width", tdsWidths[i] + ""); - }) - }, 0); - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - function getSelectedArr(editor) { - var cell = getTableItemsByRange(editor).cell; - if (cell) { - var ut = getUETable(cell); - return ut.selectedTds.length ? ut.selectedTds : [cell]; - } else { - return []; - } - } -})(); - - -// plugins/table.action.js -/** - * Created with JetBrains PhpStorm. - * User: taoqili - * Date: 12-10-12 - * Time: 上午10:05 - * To change this template use File | Settings | File Templates. - */ -UE.plugins['table'] = function () { - var me = this, - tabTimer = null, - //拖动计时器 - tableDragTimer = null, - //双击计时器 - tableResizeTimer = null, - //单元格最小宽度 - cellMinWidth = 5, - isInResizeBuffer = false, - //单元格边框大小 - cellBorderWidth = 5, - //鼠标偏移距离 - offsetOfTableCell = 10, - //记录在有限时间内的点击状态, 共有3个取值, 0, 1, 2。 0代表未初始化, 1代表单击了1次,2代表2次 - singleClickState = 0, - userActionStatus = null, - //双击允许的时间范围 - dblclickTime = 360, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getUETableBySelected = function (editor) { - return UT.getUETableBySelected(editor); - }, - getDefaultValue = function (editor, table) { - return UT.getDefaultValue(editor, table); - }, - removeSelectedClass = function (cells) { - return UT.removeSelectedClass(cells); - }; - - function showError(e) { -// throw e; - } - me.ready(function(){ - var me = this; - var orgGetText = me.selection.getText; - me.selection.getText = function(){ - var table = getUETableBySelected(me); - if(table){ - var str = ''; - utils.each(table.selectedTds,function(td){ - str += td[browser.ie?'innerText':'textContent']; - }) - return str; - }else{ - return orgGetText.call(me.selection) - } - - } - }) - - //处理拖动及框选相关方法 - var startTd = null, //鼠标按下时的锚点td - currentTd = null, //当前鼠标经过时的td - onDrag = "", //指示当前拖动状态,其值可为"","h","v" ,分别表示未拖动状态,横向拖动状态,纵向拖动状态,用于鼠标移动过程中的判断 - onBorder = false, //检测鼠标按下时是否处在单元格边缘位置 - dragButton = null, - dragOver = false, - dragLine = null, //模拟的拖动线 - dragTd = null; //发生拖动的目标td - - var mousedown = false, - //todo 判断混乱模式 - needIEHack = true; - - me.setOpt({ - 'maxColNum':20, - 'maxRowNum':100, - 'defaultCols':5, - 'defaultRows':5, - 'tdvalign':'top', - 'cursorpath':me.options.UEDITOR_HOME_URL + "themes/default/images/cursor_", - 'tableDragable':false, - 'classList':["ue-table-interlace-color-single","ue-table-interlace-color-double"] - }); - me.getUETable = getUETable; - var commands = { - 'deletetable':1, - 'inserttable':1, - 'cellvalign':1, - 'insertcaption':1, - 'deletecaption':1, - 'inserttitle':1, - 'deletetitle':1, - "mergeright":1, - "mergedown":1, - "mergecells":1, - "insertrow":1, - "insertrownext":1, - "deleterow":1, - "insertcol":1, - "insertcolnext":1, - "deletecol":1, - "splittocells":1, - "splittorows":1, - "splittocols":1, - "adaptbytext":1, - "adaptbywindow":1, - "adaptbycustomer":1, - "insertparagraph":1, - "insertparagraphbeforetable":1, - "averagedistributecol":1, - "averagedistributerow":1 - }; - me.ready(function () { - utils.cssRule('table', - //选中的td上的样式 - '.selectTdClass{background-color:#edf5fa !important}' + - 'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' + - //插入的表格的默认样式 - 'table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - 'td,th{padding: 5px 10px;border: 1px solid #DDD;}' + - 'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - 'th{border-top:1px solid #BBB;background-color:#F7F7F7;}' + - 'table tr.firstRow th{border-top-width:2px;}' + - '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' + - 'td p{margin:0;padding:0;}', me.document); - - var tableCopyList, isFullCol, isFullRow; - //注册del/backspace事件 - me.addListener('keydown', function (cmd, evt) { - var me = this; - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 8) { - - var ut = getUETableBySelected(me); - if (ut && ut.selectedTds.length) { - - if (ut.isFullCol()) { - me.execCommand('deletecol') - } else if (ut.isFullRow()) { - me.execCommand('deleterow') - } else { - me.fireEvent('delcells'); - } - domUtils.preventDefault(evt); - } - - var caption = domUtils.findParentByTagName(me.selection.getStart(), 'caption', true), - range = me.selection.getRange(); - if (range.collapsed && caption && isEmptyBlock(caption)) { - me.fireEvent('saveScene'); - var table = caption.parentNode; - domUtils.remove(caption); - if (table) { - range.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - me.fireEvent('saveScene'); - } - - } - - if (keyCode == 46) { - - ut = getUETableBySelected(me); - if (ut) { - me.fireEvent('saveScene'); - for (var i = 0, ci; ci = ut.selectedTds[i++];) { - domUtils.fillNode(me.document, ci) - } - me.fireEvent('saveScene'); - domUtils.preventDefault(evt); - - } - - } - if (keyCode == 13) { - - var rng = me.selection.getRange(), - caption = domUtils.findParentByTagName(rng.startContainer, 'caption', true); - if (caption) { - var table = domUtils.findParentByTagName(caption, 'table'); - if (!rng.collapsed) { - - rng.deleteContents(); - me.fireEvent('saveScene'); - } else { - if (caption) { - rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true); - } - } - domUtils.preventDefault(evt); - return; - } - if (rng.collapsed) { - var table = domUtils.findParentByTagName(rng.startContainer, 'table'); - if (table) { - var cell = table.rows[0].cells[0], - start = domUtils.findParentByTagName(me.selection.getStart(), ['td', 'th'], true), - preNode = table.previousSibling; - if (cell === start && (!preNode || preNode.nodeType == 1 && preNode.tagName == 'TABLE' ) && domUtils.isStartInblock(rng)) { - var first = domUtils.findParent(me.selection.getStart(), function(n){return domUtils.isBlockElm(n)}, true); - if(first && ( /t(h|d)/i.test(first.tagName) || first === start.firstChild )){ - me.execCommand('insertparagraphbeforetable'); - domUtils.preventDefault(evt); - } - - } - } - } - } - - if ((evt.ctrlKey || evt.metaKey) && evt.keyCode == '67') { - tableCopyList = null; - var ut = getUETableBySelected(me); - if (ut) { - var tds = ut.selectedTds; - isFullCol = ut.isFullCol(); - isFullRow = ut.isFullRow(); - tableCopyList = [ - [ut.cloneCell(tds[0],null,true)] - ]; - for (var i = 1, ci; ci = tds[i]; i++) { - if (ci.parentNode !== tds[i - 1].parentNode) { - tableCopyList.push([ut.cloneCell(ci,null,true)]); - } else { - tableCopyList[tableCopyList.length - 1].push(ut.cloneCell(ci,null,true)); - } - - } - } - } - }); - me.addListener("tablehasdeleted",function(){ - toggleDraggableState(this, false, "", null); - if (dragButton)domUtils.remove(dragButton); - }); - - me.addListener('beforepaste', function (cmd, html) { - var me = this; - var rng = me.selection.getRange(); - if (domUtils.findParentByTagName(rng.startContainer, 'caption', true)) { - var div = me.document.createElement("div"); - div.innerHTML = html.html; - //trace:3729 - html.html = div[browser.ie9below ? 'innerText' : 'textContent']; - return; - } - var table = getUETableBySelected(me); - if (tableCopyList) { - me.fireEvent('saveScene'); - var rng = me.selection.getRange(); - var td = domUtils.findParentByTagName(rng.startContainer, ['td', 'th'], true), tmpNode, preNode; - if (td) { - var ut = getUETable(td); - if (isFullRow) { - var rowIndex = ut.getCellInfo(td).rowIndex; - if (td.tagName == 'TH') { - rowIndex++; - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = ut.insertRow(rowIndex++, "td"); - for (var j = 0, cj; cj = ci[j]; j++) { - var cell = tr.cells[j]; - if (!cell) { - cell = tr.insertCell(j) - } - cell.innerHTML = cj.innerHTML; - cj.getAttribute('width') && cell.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && cell.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && cell.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (cell.style.cssText = cj.style.cssText) - } - for (var j = 0, cj; cj = tr.cells[j]; j++) { - if (!ci[j]) - break; - cj.innerHTML = ci[j].innerHTML; - ci[j].getAttribute('width') && cj.setAttribute('width', ci[j].getAttribute('width')); - ci[j].getAttribute('vAlign') && cj.setAttribute('vAlign', ci[j].getAttribute('vAlign')); - ci[j].getAttribute('align') && cj.setAttribute('align', ci[j].getAttribute('align')); - ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText) - } - } - } else { - if (isFullCol) { - cellInfo = ut.getCellInfo(td); - var maxColNum = 0; - for (var j = 0, ci = tableCopyList[0], cj; cj = ci[j++];) { - maxColNum += cj.colSpan || 1; - } - me.__hasEnterExecCommand = true; - for (i = 0; i < maxColNum; i++) { - me.execCommand('insertcol'); - } - me.__hasEnterExecCommand = false; - td = ut.table.rows[0].cells[cellInfo.cellIndex]; - if (td.tagName == 'TH') { - td = ut.table.rows[1].cells[cellInfo.cellIndex]; - } - } - for (var i = 0, ci; ci = tableCopyList[i++];) { - tmpNode = td; - for (var j = 0, cj; cj = ci[j++];) { - if (td) { - td.innerHTML = cj.innerHTML; - //todo 定制处理 - cj.getAttribute('width') && td.setAttribute('width', cj.getAttribute('width')); - cj.getAttribute('vAlign') && td.setAttribute('vAlign', cj.getAttribute('vAlign')); - cj.getAttribute('align') && td.setAttribute('align', cj.getAttribute('align')); - cj.style.cssText && (td.style.cssText = cj.style.cssText); - preNode = td; - td = td.nextSibling; - } else { - var cloneTd = cj.cloneNode(true); - domUtils.removeAttributes(cloneTd, ['class', 'rowSpan', 'colSpan']); - - preNode.parentNode.appendChild(cloneTd) - } - } - td = ut.getNextCell(tmpNode, true, true); - if (!tableCopyList[i]) - break; - if (!td) { - var cellInfo = ut.getCellInfo(tmpNode); - ut.table.insertRow(ut.table.rows.length); - ut.update(); - td = ut.getVSideCell(tmpNode, true); - } - } - } - ut.update(); - } else { - table = me.document.createElement('table'); - for (var i = 0, ci; ci = tableCopyList[i++];) { - var tr = table.insertRow(table.rows.length); - for (var j = 0, cj; cj = ci[j++];) { - cloneTd = UT.cloneCell(cj,null,true); - domUtils.removeAttributes(cloneTd, ['class']); - tr.appendChild(cloneTd) - } - if (j == 2 && cloneTd.rowSpan > 1) { - cloneTd.rowSpan = 1; - } - } - - var defaultValue = getDefaultValue(me), - width = me.body.offsetWidth - - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0); - me.execCommand('insertHTML', '' + table.innerHTML.replace(/>\s*<').replace(/\bth\b/gi, "td") + '
    ') - } - me.fireEvent('contentchange'); - me.fireEvent('saveScene'); - html.html = ''; - return true; - } else { - var div = me.document.createElement("div"), tables; - div.innerHTML = html.html; - tables = div.getElementsByTagName("table"); - if (domUtils.findParentByTagName(me.selection.getStart(), 'table')) { - utils.each(tables, function (t) { - domUtils.remove(t) - }); - if (domUtils.findParentByTagName(me.selection.getStart(), 'caption', true)) { - div.innerHTML = div[browser.ie ? 'innerText' : 'textContent']; - } - } else { - utils.each(tables, function (table) { - removeStyleSize(table, true); - domUtils.removeAttributes(table, ['style', 'border']); - utils.each(domUtils.getElementsByTagName(table, "td"), function (td) { - if (isEmptyBlock(td)) { - domUtils.fillNode(me.document, td); - } - removeStyleSize(td, true); -// domUtils.removeAttributes(td, ['style']) - }); - }); - } - html.html = div.innerHTML; - } - }); - - me.addListener('afterpaste', function () { - utils.each(domUtils.getElementsByTagName(me.body, "table"), function (table) { - if (table.offsetWidth > me.body.offsetWidth) { - var defaultValue = getDefaultValue(me, table); - table.style.width = me.body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0) + 'px' - } - }) - }); - me.addListener('blur', function () { - tableCopyList = null; - }); - var timer; - me.addListener('keydown', function () { - clearTimeout(timer); - timer = setTimeout(function () { - var rng = me.selection.getRange(), - cell = domUtils.findParentByTagName(rng.startContainer, ['th', 'td'], true); - if (cell) { - var table = cell.parentNode.parentNode.parentNode; - if (table.offsetWidth > table.getAttribute("width")) { - cell.style.wordBreak = "break-all"; - } - } - - }, 100); - }); - me.addListener("selectionchange", function () { - toggleDraggableState(me, false, "", null); - }); - - - //内容变化时触发索引更新 - //todo 可否考虑标记检测,如果不涉及表格的变化就不进行索引重建和更新 - me.addListener("contentchange", function () { - var me = this; - //尽可能排除一些不需要更新的状况 - hideDragLine(me); - if (getUETableBySelected(me))return; - var rng = me.selection.getRange(); - var start = rng.startContainer; - start = domUtils.findParentByTagName(start, ['td', 'th'], true); - utils.each(domUtils.getElementsByTagName(me.document, 'table'), function (table) { - if (me.fireEvent("excludetable", table) === true) return; - table.ueTable = new UT(table); - //trace:3742 -// utils.each(domUtils.getElementsByTagName(me.document, 'td'), function (td) { -// -// if (domUtils.isEmptyBlock(td) && td !== start) { -// domUtils.fillNode(me.document, td); -// if (browser.ie && browser.version == 6) { -// td.innerHTML = ' ' -// } -// } -// }); -// utils.each(domUtils.getElementsByTagName(me.document, 'th'), function (th) { -// if (domUtils.isEmptyBlock(th) && th !== start) { -// domUtils.fillNode(me.document, th); -// if (browser.ie && browser.version == 6) { -// th.innerHTML = ' ' -// } -// } -// }); - table.onmouseover = function () { - me.fireEvent('tablemouseover', table); - }; - table.onmousemove = function () { - me.fireEvent('tablemousemove', table); - me.options.tableDragable && toggleDragButton(true, this, me); - utils.defer(function(){ - me.fireEvent('contentchange',50) - },true) - }; - table.onmouseout = function () { - me.fireEvent('tablemouseout', table); - toggleDraggableState(me, false, "", null); - hideDragLine(me); - }; - table.onclick = function (evt) { - evt = me.window.event || evt; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (!target)return; - var ut = getUETable(target), - table = ut.table, - cellInfo = ut.getCellInfo(target), - cellsRange, - rng = me.selection.getRange(); -// if ("topLeft" == inPosition(table, mouseCoords(evt))) { -// cellsRange = ut.getCellsRange(ut.table.rows[0].cells[0], ut.getLastCell()); -// ut.setSelected(cellsRange); -// return; -// } -// if ("bottomRight" == inPosition(table, mouseCoords(evt))) { -// -// return; -// } - if (inTableSide(table, target, evt, true)) { - var endTdCol = ut.getCell(ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].rowIndex, ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdCol) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } else { - if (target !== endTdCol) { - cellsRange = ut.getCellsRange(target, endTdCol); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdCol).select(); - } - } - return; - } - if (inTableSide(table, target, evt)) { - var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].rowIndex, ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].cellIndex); - if (evt.shiftKey && ut.selectedTds.length) { - if (ut.selectedTds[0] !== endTdRow) { - cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } else { - if (target !== endTdRow) { - cellsRange = ut.getCellsRange(target, endTdRow); - ut.setSelected(cellsRange); - } else { - rng && rng.selectNodeContents(endTdRow).select(); - } - } - } - }; - }); - - switchBorderColor(me, true); - }); - - domUtils.on(me.document, "mousemove", mouseMoveEvent); - - domUtils.on(me.document, "mouseout", function (evt) { - var target = evt.target || evt.srcElement; - if (target.tagName == "TABLE") { - toggleDraggableState(me, false, "", null); - } - }); - /** - * 表格隔行变色 - */ - me.addListener("interlacetable",function(type,table,classList){ - if(!table) return; - var me = this, - rows = table.rows, - len = rows.length, - getClass = function(list,index,repeat){ - return list[index] ? list[index] : repeat ? list[index % list.length]: ""; - }; - for(var i = 0;i 1 ? currentRowIndex : ua.getCellInfo(cell).rowIndex; - var nextCell = ua.getTabNextCell(cell, currentRowIndex); - if (nextCell) { - if (isEmptyBlock(nextCell)) { - range.setStart(nextCell, 0).setCursor(false, true) - } else { - range.selectNodeContents(nextCell).select() - } - } else { - me.fireEvent('saveScene'); - me.__hasEnterExecCommand = true; - this.execCommand('insertrownext'); - me.__hasEnterExecCommand = false; - range = this.selection.getRange(); - range.setStart(table.rows[table.rows.length - 1].cells[0], 0).setCursor(); - me.fireEvent('saveScene'); - } - } - return true; - } - - }); - browser.ie && me.addListener('selectionchange', function () { - toggleDraggableState(this, false, "", null); - }); - me.addListener("keydown", function (type, evt) { - var me = this; - //处理在表格的最后一个输入tab产生新的表格 - var keyCode = evt.keyCode || evt.which; - if (keyCode == 8 || keyCode == 46) { - return; - } - var notCtrlKey = !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey; - notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, "td")); - var ut = getUETableBySelected(me); - if (!ut) return; - notCtrlKey && ut.clearSelected(); - }); - - me.addListener("beforegetcontent", function () { - switchBorderColor(this, false); - browser.ie && utils.each(this.document.getElementsByTagName('caption'), function (ci) { - if (domUtils.isEmptyNode(ci)) { - ci.innerHTML = ' ' - } - }); - }); - me.addListener("aftergetcontent", function () { - switchBorderColor(this, true); - }); - me.addListener("getAllHtml", function () { - removeSelectedClass(me.document.getElementsByTagName("td")); - }); - //修正全屏状态下插入的表格宽度在非全屏状态下撑开编辑器的情况 - me.addListener("fullscreenchanged", function (type, fullscreen) { - if (!fullscreen) { - var ratio = this.body.offsetWidth / document.body.offsetWidth, - tables = domUtils.getElementsByTagName(this.body, "table"); - utils.each(tables, function (table) { - if (table.offsetWidth < me.body.offsetWidth) return false; - var tds = domUtils.getElementsByTagName(table, "td"), - backWidths = []; - utils.each(tds, function (td) { - backWidths.push(td.offsetWidth); - }); - for (var i = 0, td; td = tds[i]; i++) { - td.setAttribute("width", Math.floor(backWidths[i] * ratio)); - } - table.setAttribute("width", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me)))) - }); - } - }); - - //重写execCommand命令,用于处理框选时的处理 - var oldExecCommand = me.execCommand; - me.execCommand = function (cmd, datatat) { - - var me = this, - args = arguments; - - cmd = cmd.toLowerCase(); - var ut = getUETableBySelected(me), tds, - range = new dom.Range(me.document), - cmdFun = me.commands[cmd] || UE.commands[cmd], - result; - if (!cmdFun) return; - if (ut && !commands[cmd] && !cmdFun.notNeedUndo && !me.__hasEnterExecCommand) { - me.__hasEnterExecCommand = true; - me.fireEvent("beforeexeccommand", cmd); - tds = ut.selectedTds; - var lastState = -2, lastValue = -2, value, state; - for (var i = 0, td; td = tds[i]; i++) { - if (isEmptyBlock(td)) { - range.setStart(td, 0).setCursor(false, true) - } else { - range.selectNode(td).select(true); - } - state = me.queryCommandState(cmd); - value = me.queryCommandValue(cmd); - if (state != -1) { - if (lastState !== state || lastValue !== value) { - me._ignoreContentChange = true; - result = oldExecCommand.apply(me, arguments); - me._ignoreContentChange = false; - - } - lastState = me.queryCommandState(cmd); - lastValue = me.queryCommandValue(cmd); - if (domUtils.isEmptyBlock(td)) { - domUtils.fillNode(me.document, td) - } - } - } - range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true); - me.fireEvent('contentchange'); - me.fireEvent("afterexeccommand", cmd); - me.__hasEnterExecCommand = false; - me._selectionChange(); - } else { - result = oldExecCommand.apply(me, arguments); - } - return result; - }; - - - }); - /** - * 删除obj的宽高style,改成属性宽高 - * @param obj - * @param replaceToProperty - */ - function removeStyleSize(obj, replaceToProperty) { - removeStyle(obj, "width", true); - removeStyle(obj, "height", true); - } - - function removeStyle(obj, styleName, replaceToProperty) { - if (obj.style[styleName]) { - replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10)); - obj.style[styleName] = ""; - } - } - - function getParentTdOrTh(ele) { - if (ele.tagName == "TD" || ele.tagName == "TH") return ele; - var td; - if (td = domUtils.findParentByTagName(ele, "td", true) || domUtils.findParentByTagName(ele, "th", true)) return td; - return null; - } - - function isEmptyBlock(node) { - var reg = new RegExp(domUtils.fillChar, 'g'); - if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\s*$/, '').replace(reg, '').length > 0) { - return 0; - } - for (var n in dtd.$isNotEmpty) { - if (node.getElementsByTagName(n).length) { - return 0; - } - } - return 1; - } - - - function mouseCoords(evt) { - if (evt.pageX || evt.pageY) { - return { x:evt.pageX, y:evt.pageY }; - } - return { - x:evt.clientX + me.document.body.scrollLeft - me.document.body.clientLeft, - y:evt.clientY + me.document.body.scrollTop - me.document.body.clientTop - }; - } - - function mouseMoveEvent(evt) { - - if( isEditorDisabled() ) { - return; - } - - try { - - //普通状态下鼠标移动 - var target = getParentTdOrTh(evt.target || evt.srcElement), - pos; - - //区分用户的行为是拖动还是双击 - if( isInResizeBuffer ) { - - me.body.style.webkitUserSelect = 'none'; - - if( Math.abs( userActionStatus.x - evt.clientX ) > offsetOfTableCell || Math.abs( userActionStatus.y - evt.clientY ) > offsetOfTableCell ) { - clearTableDragTimer(); - isInResizeBuffer = false; - singleClickState = 0; - //drag action - tableBorderDrag(evt); - } - } - - //修改单元格大小时的鼠标移动 - if (onDrag && dragTd) { - singleClickState = 0; - me.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - pos = mouseCoords(evt); - toggleDraggableState(me, true, onDrag, pos, target); - if (onDrag == "h") { - dragLine.style.left = getPermissionX(dragTd, evt) + "px"; - } else if (onDrag == "v") { - dragLine.style.top = getPermissionY(dragTd, evt) + "px"; - } - return; - } - //当鼠标处于table上时,修改移动过程中的光标状态 - if (target) { - //针对使用table作为容器的组件不触发拖拽效果 - if (me.fireEvent('excludetable', target) === true) - return; - pos = mouseCoords(evt); - var state = getRelation(target, pos), - table = domUtils.findParentByTagName(target, "table", true); - - if (inTableSide(table, target, evt, true)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "h.png),pointer"; - } else if (inTableSide(table, target, evt)) { - if (me.fireEvent("excludetable", table) === true) return; - me.body.style.cursor = "url(" + me.options.cursorpath + "v.png),pointer"; - } else { - me.body.style.cursor = "text"; - var curCell = target; - if (/\d/.test(state)) { - state = state.replace(/\d/, ''); - target = getUETable(target).getPreviewCell(target, state == "v"); - } - //位于第一行的顶部或者第一列的左边时不可拖动 - toggleDraggableState(me, target ? !!state : false, target ? state : '', pos, target); - - } - } else { - toggleDragButton(false, table, me); - } - - } catch (e) { - showError(e); - } - } - - var dragButtonTimer; - - function toggleDragButton(show, table, editor) { - if (!show) { - if (dragOver)return; - dragButtonTimer = setTimeout(function () { - !dragOver && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton); - }, 2000); - } else { - createDragButton(table, editor); - } - } - - function createDragButton(table, editor) { - var pos = domUtils.getXY(table), - doc = table.ownerDocument; - if (dragButton && dragButton.parentNode)return dragButton; - dragButton = doc.createElement("div"); - dragButton.contentEditable = false; - dragButton.innerHTML = ""; - dragButton.style.cssText = "width:15px;height:15px;background-image:url(" + editor.options.UEDITOR_HOME_URL + "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (pos.y - 15) + "px;left:" + (pos.x) + "px;"; - domUtils.unSelectable(dragButton); - dragButton.onmouseover = function (evt) { - dragOver = true; - }; - dragButton.onmouseout = function (evt) { - dragOver = false; - }; - domUtils.on(dragButton, 'click', function (type, evt) { - doClick(evt, this); - }); - domUtils.on(dragButton, 'dblclick', function (type, evt) { - doDblClick(evt); - }); - domUtils.on(dragButton, 'dragstart', function (type, evt) { - domUtils.preventDefault(evt); - }); - var timer; - - function doClick(evt, button) { - // 部分浏览器下需要清理 - clearTimeout(timer); - timer = setTimeout(function () { - editor.fireEvent("tableClicked", table, button); - }, 300); - } - - function doDblClick(evt) { - clearTimeout(timer); - var ut = getUETable(table), - start = table.rows[0].cells[0], - end = ut.getLastCell(), - range = ut.getCellsRange(start, end); - editor.selection.getRange().setStart(start, 0).setCursor(false, true); - ut.setSelected(range); - } - - doc.body.appendChild(dragButton); - } - - -// function inPosition(table, pos) { -// var tablePos = domUtils.getXY(table), -// width = table.offsetWidth, -// height = table.offsetHeight; -// if (pos.x - tablePos.x < 5 && pos.y - tablePos.y < 5) { -// return "topLeft"; -// } else if (tablePos.x + width - pos.x < 5 && tablePos.y + height - pos.y < 5) { -// return "bottomRight"; -// } -// } - - function inTableSide(table, cell, evt, top) { - var pos = mouseCoords(evt), - state = getRelation(cell, pos); - - if (top) { - var caption = table.getElementsByTagName("caption")[0], - capHeight = caption ? caption.offsetHeight : 0; - return (state == "v1") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8); - } else { - return (state == "h1") && ((pos.x - domUtils.getXY(table).x) < 8); - } - } - - /** - * 获取拖动时允许的X轴坐标 - * @param dragTd - * @param evt - */ - function getPermissionX(dragTd, evt) { - var ut = getUETable(dragTd); - if (ut) { - var preTd = ut.getSameEndPosCells(dragTd, "x")[0], - nextTd = ut.getSameStartPosXCells(dragTd)[0], - mouseX = mouseCoords(evt).x, - left = (preTd ? domUtils.getXY(preTd).x : domUtils.getXY(ut.table).x) + 20 , - right = nextTd ? domUtils.getXY(nextTd).x + nextTd.offsetWidth - 20 : (me.body.offsetWidth + 5 || parseInt(domUtils.getComputedStyle(me.body, "width"), 10)); - - left += cellMinWidth; - right -= cellMinWidth; - - return mouseX < left ? left : mouseX > right ? right : mouseX; - } - } - - /** - * 获取拖动时允许的Y轴坐标 - */ - function getPermissionY(dragTd, evt) { - try { - var top = domUtils.getXY(dragTd).y, - mousePosY = mouseCoords(evt).y; - return mousePosY < top ? top : mousePosY; - } catch (e) { - showError(e); - } - } - - /** - * 移动状态切换 - */ - function toggleDraggableState(editor, draggable, dir, mousePos, cell) { - try { - editor.body.style.cursor = dir == "h" ? "col-resize" : dir == "v" ? "row-resize" : "text"; - if (browser.ie) { - if (dir && !mousedown && !getUETableBySelected(editor)) { - getDragLine(editor, editor.document); - showDragLineAt(dir, cell); - } else { - hideDragLine(editor) - } - } - onBorder = draggable; - } catch (e) { - showError(e); - } - } - - /** - * 获取与UETable相关的resize line - * @param uetable UETable对象 - */ - function getResizeLineByUETable() { - - var lineId = '_UETableResizeLine', - line = this.document.getElementById( lineId ); - - if( !line ) { - line = this.document.createElement("div"); - line.id = lineId; - line.contnetEditable = false; - line.setAttribute("unselectable", "on"); - - var styles = { - width: 2*cellBorderWidth + 1 + 'px', - position: 'absolute', - 'z-index': 100000, - cursor: 'col-resize', - background: 'red', - display: 'none' - }; - - //切换状态 - line.onmouseout = function(){ - this.style.display = 'none'; - }; - - utils.extend( line.style, styles ); - - this.document.body.appendChild( line ); - - } - - return line; - - } - - /** - * 更新resize-line - */ - function updateResizeLine( cell, uetable ) { - - var line = getResizeLineByUETable.call( this ), - table = uetable.table, - styles = { - top: domUtils.getXY( table ).y + 'px', - left: domUtils.getXY( cell).x + cell.offsetWidth - cellBorderWidth + 'px', - display: 'block', - height: table.offsetHeight + 'px' - }; - - utils.extend( line.style, styles ); - - } - - /** - * 显示resize-line - */ - function showResizeLine( cell ) { - - var uetable = getUETable( cell ); - - updateResizeLine.call( this, cell, uetable ); - - } - - /** - * 获取鼠标与当前单元格的相对位置 - * @param ele - * @param mousePos - */ - function getRelation(ele, mousePos) { - var elePos = domUtils.getXY(ele); - - if( !elePos ) { - return ''; - } - - if (elePos.x + ele.offsetWidth - mousePos.x < cellBorderWidth) { - return "h"; - } - if (mousePos.x - elePos.x < cellBorderWidth) { - return 'h1' - } - if (elePos.y + ele.offsetHeight - mousePos.y < cellBorderWidth) { - return "v"; - } - if (mousePos.y - elePos.y < cellBorderWidth) { - return 'v1' - } - return ''; - } - - function mouseDownEvent(type, evt) { - - if( isEditorDisabled() ) { - return ; - } - - userActionStatus = { - x: evt.clientX, - y: evt.clientY - }; - - //右键菜单单独处理 - if (evt.button == 2) { - var ut = getUETableBySelected(me), - flag = false; - - if (ut) { - var td = getTargetTd(me, evt); - utils.each(ut.selectedTds, function (ti) { - if (ti === td) { - flag = true; - } - }); - if (!flag) { - removeSelectedClass(domUtils.getElementsByTagName(me.body, "th td")); - ut.clearSelected() - } else { - td = ut.selectedTds[0]; - setTimeout(function () { - me.selection.getRange().setStart(td, 0).setCursor(false, true); - }, 0); - - } - } - } else { - tableClickHander( evt ); - } - - } - - //清除表格的计时器 - function clearTableTimer() { - tabTimer && clearTimeout( tabTimer ); - tabTimer = null; - } - - //双击收缩 - function tableDbclickHandler(evt) { - singleClickState = 0; - evt = evt || me.window.event; - var target = getParentTdOrTh(evt.target || evt.srcElement); - if (target) { - var h; - if (h = getRelation(target, mouseCoords(evt))) { - - hideDragLine( me ); - - if (h == 'h1') { - h = 'h'; - if (inTableSide(domUtils.findParentByTagName(target, "table"), target, evt)) { - me.execCommand('adaptbywindow'); - } else { - target = getUETable(target).getPreviewCell(target); - if (target) { - var rng = me.selection.getRange(); - rng.selectNodeContents(target).setCursor(true, true) - } - } - } - if (h == 'h') { - var ut = getUETable(target), - table = ut.table, - cells = getCellsByMoveBorder( target, table, true ); - - cells = extractArray( cells, 'left' ); - - ut.width = ut.offsetWidth; - - var oldWidth = [], - newWidth = []; - - utils.each( cells, function( cell ){ - - oldWidth.push( cell.offsetWidth ); - - } ); - - utils.each( cells, function( cell ){ - - cell.removeAttribute("width"); - - } ); - - window.setTimeout( function(){ - - //是否允许改变 - var changeable = true; - - utils.each( cells, function( cell, index ){ - - var width = cell.offsetWidth; - - if( width > oldWidth[index] ) { - changeable = false; - return false; - } - - newWidth.push( width ); - - } ); - - var change = changeable ? newWidth : oldWidth; - - utils.each( cells, function( cell, index ){ - - cell.width = change[index] - getTabcellSpace(); - - } ); - - - }, 0 ); - -// minWidth -= cellMinWidth; -// -// table.removeAttribute("width"); -// utils.each(cells, function (cell) { -// cell.style.width = ""; -// cell.width -= minWidth; -// }); - - } - } - } - } - - function tableClickHander( evt ) { - - removeSelectedClass(domUtils.getElementsByTagName(me.body, "td th")); - //trace:3113 - //选中单元格,点击table外部,不会清掉table上挂的ueTable,会引起getUETableBySelected方法返回值 - utils.each(me.document.getElementsByTagName('table'), function (t) { - t.ueTable = null; - }); - startTd = getTargetTd(me, evt); - if( !startTd ) return; - var table = domUtils.findParentByTagName(startTd, "table", true); - ut = getUETable(table); - ut && ut.clearSelected(); - - //判断当前鼠标状态 - if (!onBorder) { - me.document.body.style.webkitUserSelect = ''; - mousedown = true; - me.addListener('mouseover', mouseOverEvent); - } else { - //边框上的动作处理 - borderActionHandler( evt ); - } - - - } - - //处理表格边框上的动作, 这里做延时处理,避免两种动作互相影响 - function borderActionHandler( evt ) { - - if ( browser.ie ) { - evt = reconstruct(evt ); - } - - clearTableDragTimer(); - - //是否正在等待resize的缓冲中 - isInResizeBuffer = true; - - tableDragTimer = setTimeout(function(){ - tableBorderDrag( evt ); - }, dblclickTime); - - } - - function extractArray( originArr, key ) { - - var result = [], - tmp = null; - - for( var i = 0, len = originArr.length; i 0 && singleClickState--; - }, dblclickTime ); - - if( singleClickState === 2 ) { - - singleClickState = 0; - tableDbclickHandler(evt); - return; - - } - - } - - if (evt.button == 2)return; - var me = this; - //清除表格上原生跨选问题 - var range = me.selection.getRange(), - start = domUtils.findParentByTagName(range.startContainer, 'table', true), - end = domUtils.findParentByTagName(range.endContainer, 'table', true); - - if (start || end) { - if (start === end) { - start = domUtils.findParentByTagName(range.startContainer, ['td', 'th', 'caption'], true); - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th', 'caption'], true); - if (start !== end) { - me.selection.clearRange() - } - } else { - me.selection.clearRange() - } - } - mousedown = false; - me.document.body.style.webkitUserSelect = ''; - //拖拽状态下的mouseUP - if ( onDrag && dragTd ) { - - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - - singleClickState = 0; - dragLine = me.document.getElementById('ue_tableDragLine'); - - // trace 3973 - if (dragLine) { - var dragTdPos = domUtils.getXY(dragTd), - dragLinePos = domUtils.getXY(dragLine); - - switch (onDrag) { - case "h": - changeColWidth(dragTd, dragLinePos.x - dragTdPos.x); - break; - case "v": - changeRowHeight(dragTd, dragLinePos.y - dragTdPos.y - dragTd.offsetHeight); - break; - default: - } - onDrag = ""; - dragTd = null; - - hideDragLine(me); - me.fireEvent('saveScene'); - return; - } - } - //正常状态下的mouseup - if (!startTd) { - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, "td", true); - if (!target) target = domUtils.findParentByTagName(evt.target || evt.srcElement, "th", true); - if (target && (target.tagName == "TD" || target.tagName == "TH")) { - if (me.fireEvent("excludetable", target) === true) return; - range = new dom.Range(me.document); - range.setStart(target, 0).setCursor(false, true); - } - } else { - var ut = getUETable(startTd), - cell = ut ? ut.selectedTds[0] : null; - if (cell) { - range = new dom.Range(me.document); - if (domUtils.isEmptyBlock(cell)) { - range.setStart(cell, 0).setCursor(false, true); - } else { - range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true); - } - } else { - range = me.selection.getRange().shrinkBoundary(); - if (!range.collapsed) { - var start = domUtils.findParentByTagName(range.startContainer, ['td', 'th'], true), - end = domUtils.findParentByTagName(range.endContainer, ['td', 'th'], true); - //在table里边的不能清除 - if (start && !end || !start && end || start && end && start !== end) { - range.setCursor(false, true); - } - } - } - startTd = null; - me.removeListener('mouseover', mouseOverEvent); - } - me._selectionChange(250, evt); - } - - function mouseOverEvent(type, evt) { - - if( isEditorDisabled() ) { - return; - } - - var me = this, - tar = evt.target || evt.srcElement; - currentTd = domUtils.findParentByTagName(tar, "td", true) || domUtils.findParentByTagName(tar, "th", true); - //需要判断两个TD是否位于同一个表格内 - if (startTd && currentTd && - ((startTd.tagName == "TD" && currentTd.tagName == "TD") || (startTd.tagName == "TH" && currentTd.tagName == "TH")) && - domUtils.findParentByTagName(startTd, 'table') == domUtils.findParentByTagName(currentTd, 'table')) { - var ut = getUETable(currentTd); - if (startTd != currentTd) { - me.document.body.style.webkitUserSelect = 'none'; - me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges'](); - var range = ut.getCellsRange(startTd, currentTd); - ut.setSelected(range); - } else { - me.document.body.style.webkitUserSelect = ''; - ut.clearSelected(); - } - - } - evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false); - } - - function setCellHeight(cell, height, backHeight) { - var lineHight = parseInt(domUtils.getComputedStyle(cell, "line-height"), 10), - tmpHeight = backHeight + height; - height = tmpHeight < lineHight ? lineHight : tmpHeight; - if (cell.style.height) cell.style.height = ""; - cell.rowSpan == 1 ? cell.setAttribute("height", height) : (cell.removeAttribute && cell.removeAttribute("height")); - } - - function getWidth(cell) { - if (!cell)return 0; - return parseInt(domUtils.getComputedStyle(cell, "width"), 10); - } - - function changeColWidth(cell, changeValue) { - - var ut = getUETable(cell); - if (ut) { - - //根据当前移动的边框获取相关的单元格 - var table = ut.table, - cells = getCellsByMoveBorder( cell, table ); - - table.style.width = ""; - table.removeAttribute("width"); - - //修正改变量 - changeValue = correctChangeValue( changeValue, cell, cells ); - - if (cell.nextSibling) { - - var i=0; - - utils.each( cells, function( cellGroup ){ - - cellGroup.left.width = (+cellGroup.left.width)+changeValue; - cellGroup.right && ( cellGroup.right.width = (+cellGroup.right.width)-changeValue ); - - } ); - - } else { - - utils.each( cells, function( cellGroup ){ - cellGroup.left.width -= -changeValue; - } ); - - } - } - - } - - function isEditorDisabled() { - return me.body.contentEditable === "false"; - } - - function changeRowHeight(td, changeValue) { - if (Math.abs(changeValue) < 10) return; - var ut = getUETable(td); - if (ut) { - var cells = ut.getSameEndPosCells(td, "y"), - //备份需要连带变化的td的原始高度,否则后期无法获取正确的值 - backHeight = cells[0] ? cells[0].offsetHeight : 0; - for (var i = 0, cell; cell = cells[i++];) { - setCellHeight(cell, changeValue, backHeight); - } - } - - } - - /** - * 获取调整单元格大小的相关单元格 - * @isContainMergeCell 返回的结果中是否包含发生合并后的单元格 - */ - function getCellsByMoveBorder( cell, table, isContainMergeCell ) { - - if( !table ) { - table = domUtils.findParentByTagName( cell, 'table' ); - } - - if( !table ) { - return null; - } - - //获取到该单元格所在行的序列号 - var index = domUtils.getNodeIndex( cell ), - temp = cell, - rows = table.rows, - colIndex = 0; - - while( temp ) { - //获取到当前单元格在未发生单元格合并时的序列 - if( temp.nodeType === 1 ) { - colIndex += (temp.colSpan || 1); - } - temp = temp.previousSibling; - } - - temp = null; - - //记录想关的单元格 - var borderCells = []; - - utils.each(rows, function( tabRow ){ - - var cells = tabRow.cells, - currIndex = 0; - - utils.each( cells, function( tabCell ){ - - currIndex += (tabCell.colSpan || 1); - - if( currIndex === colIndex ) { - - borderCells.push({ - left: tabCell, - right: tabCell.nextSibling || null - }); - - return false; - - } else if( currIndex > colIndex ) { - - if( isContainMergeCell ) { - borderCells.push({ - left: tabCell - }); - } - - return false; - } - - - } ); - - }); - - return borderCells; - - } - - - /** - * 通过给定的单元格集合获取最小的单元格width - */ - function getMinWidthByTableCells( cells ) { - - var minWidth = Number.MAX_VALUE; - - for( var i = 0, curCell; curCell = cells[ i ] ; i++ ) { - - minWidth = Math.min( minWidth, curCell.width || getTableCellWidth( curCell ) ); - - } - - return minWidth; - - } - - function correctChangeValue( changeValue, relatedCell, cells ) { - - //为单元格的paading预留空间 - changeValue -= getTabcellSpace(); - - if( changeValue < 0 ) { - return 0; - } - - changeValue -= getTableCellWidth( relatedCell ); - - //确定方向 - var direction = changeValue < 0 ? 'left':'right'; - - changeValue = Math.abs(changeValue); - - //只关心非最后一个单元格就可以 - utils.each( cells, function( cellGroup ){ - - var curCell = cellGroup[direction]; - - //为单元格保留最小空间 - if( curCell ) { - changeValue = Math.min( changeValue, getTableCellWidth( curCell )-cellMinWidth ); - } - - - } ); - - - //修正越界 - changeValue = changeValue < 0 ? 0 : changeValue; - - return direction === 'left' ? -changeValue : changeValue; - - } - - function getTableCellWidth( cell ) { - - var width = 0, - //偏移纠正量 - offset = 0, - width = cell.offsetWidth - getTabcellSpace(); - - //最后一个节点纠正一下 - if( !cell.nextSibling ) { - - width -= getTableCellOffset( cell ); - - } - - width = width < 0 ? 0 : width; - - try { - cell.width = width; - } catch(e) { - } - - return width; - - } - - /** - * 获取单元格所在表格的最末单元格的偏移量 - */ - function getTableCellOffset( cell ) { - - tab = domUtils.findParentByTagName( cell, "table", false); - - if( tab.offsetVal === undefined ) { - - var prev = cell.previousSibling; - - if( prev ) { - - //最后一个单元格和前一个单元格的width diff结果 如果恰好为一个border width, 则条件成立 - tab.offsetVal = cell.offsetWidth - prev.offsetWidth === UT.borderWidth ? UT.borderWidth : 0; - - } else { - tab.offsetVal = 0; - } - - } - - return tab.offsetVal; - - } - - function getTabcellSpace() { - - if( UT.tabcellSpace === undefined ) { - - var cell = null, - tab = me.document.createElement("table"), - tbody = me.document.createElement("tbody"), - trow = me.document.createElement("tr"), - tabcell = me.document.createElement("td"), - mirror = null; - - tabcell.style.cssText = 'border: 0;'; - tabcell.width = 1; - - trow.appendChild( tabcell ); - trow.appendChild( mirror = tabcell.cloneNode( false ) ); - - tbody.appendChild( trow ); - - tab.appendChild( tbody ); - - tab.style.cssText = "visibility: hidden;"; - - me.body.appendChild( tab ); - - UT.paddingSpace = tabcell.offsetWidth - 1; - - var tmpTabWidth = tab.offsetWidth; - - tabcell.style.cssText = ''; - mirror.style.cssText = ''; - - UT.borderWidth = ( tab.offsetWidth - tmpTabWidth ) / 3; - - UT.tabcellSpace = UT.paddingSpace + UT.borderWidth; - - me.body.removeChild( tab ); - - } - - getTabcellSpace = function(){ return UT.tabcellSpace; }; - - return UT.tabcellSpace; - - } - - function getDragLine(editor, doc) { - if (mousedown)return; - dragLine = editor.document.createElement("div"); - domUtils.setAttributes(dragLine, { - id:"ue_tableDragLine", - unselectable:'on', - contenteditable:false, - 'onresizestart':'return false', - 'ondragstart':'return false', - 'onselectstart':'return false', - style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)" - }); - editor.body.appendChild(dragLine); - } - - function hideDragLine(editor) { - if (mousedown)return; - var line; - while (line = editor.document.getElementById('ue_tableDragLine')) { - domUtils.remove(line) - } - } - - /** - * 依据state(v|h)在cell位置显示横线 - * @param state - * @param cell - */ - function showDragLineAt(state, cell) { - if (!cell) return; - var table = domUtils.findParentByTagName(cell, "table"), - caption = table.getElementsByTagName('caption'), - width = table.offsetWidth, - height = table.offsetHeight - (caption.length > 0 ? caption[0].offsetHeight : 0), - tablePos = domUtils.getXY(table), - cellPos = domUtils.getXY(cell), css; - switch (state) { - case "h": - css = 'height:' + height + 'px;top:' + (tablePos.y + (caption.length > 0 ? caption[0].offsetHeight : 0)) + 'px;left:' + (cellPos.x + cell.offsetWidth); - dragLine.style.cssText = css + 'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)'; - break; - case "v": - css = 'width:' + width + 'px;left:' + tablePos.x + 'px;top:' + (cellPos.y + cell.offsetHeight ); - //必须加上border:0和color:blue,否则低版ie不支持背景色显示 - dragLine.style.cssText = css + 'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)'; - break; - default: - } - } - - /** - * 当表格边框颜色为白色时设置为虚线,true为添加虚线 - * @param editor - * @param flag - */ - function switchBorderColor(editor, flag) { - var tableArr = domUtils.getElementsByTagName(editor.body, "table"), color; - for (var i = 0, node; node = tableArr[i++];) { - var td = domUtils.getElementsByTagName(node, "td"); - if (td[0]) { - if (flag) { - color = (td[0].style.borderColor).replace(/\s/g, ""); - if (/(#ffffff)|(rgb\(255,255,255\))/ig.test(color)) - domUtils.addClass(node, "noBorderTable") - } else { - domUtils.removeClasses(node, "noBorderTable") - } - } - - } - } - - function getTableWidth(editor, needIEHack, defaultValue) { - var body = editor.body; - return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0); - } - - /** - * 获取当前拖动的单元格 - */ - function getTargetTd(editor, evt) { - - var target = domUtils.findParentByTagName(evt.target || evt.srcElement, ["td", "th"], true), - dir = null; - - if( !target ) { - return null; - } - - dir = getRelation( target, mouseCoords( evt ) ); - - //如果有前一个节点, 需要做一个修正, 否则可能会得到一个错误的td - - if( !target ) { - return null; - } - - if( dir === 'h1' && target.previousSibling ) { - - var position = domUtils.getXY( target), - cellWidth = target.offsetWidth; - - if( Math.abs( position.x + cellWidth - evt.clientX ) > cellWidth / 3 ) { - target = target.previousSibling; - } - - } else if( dir === 'v1' && target.parentNode.previousSibling ) { - - var position = domUtils.getXY( target), - cellHeight = target.offsetHeight; - - if( Math.abs( position.y + cellHeight - evt.clientY ) > cellHeight / 3 ) { - target = target.parentNode.previousSibling.firstChild; - } - - } - - - //排除了非td内部以及用于代码高亮部分的td - return target && !(editor.fireEvent("excludetable", target) === true) ? target : null; - } - -}; - - -// plugins/table.sort.js -/** - * Created with JetBrains PhpStorm. - * User: Jinqn - * Date: 13-10-12 - * Time: 上午10:20 - * To change this template use File | Settings | File Templates. - */ - -UE.UETable.prototype.sortTable = function (sortByCellIndex, compareFn) { - var table = this.table, - rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - if(this.selectedTds.length){ - var range = this.cellsRange, - len = range.endRowIndex + 1; - for (var i = range.beginRowIndex; i < len; i++) { - trArray[i] = rows[i]; - } - trArray.splice(0,range.beginRowIndex); - lastRowIndex = (range.endRowIndex +1) === this.rowsNum ? 0 : range.endRowIndex +1; - }else{ - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = utils.sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } -}; - -UE.plugins['tablesort'] = function () { - var me = this, - UT = UE.UETable, - getUETable = function (tdOrTable) { - return UT.getUETable(tdOrTable); - }, - getTableItemsByRange = function (editor) { - return UT.getTableItemsByRange(editor); - }; - - - me.ready(function () { - //添加表格可排序的样式 - utils.cssRule('tablesort', - 'table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right;' + - ' background-image:url(' + me.options.themePath + me.options.theme + '/images/sortable.png);}', - me.document); - - //做单元格合并操作时,清除可排序标识 - me.addListener("afterexeccommand", function (type, cmd) { - if( cmd == 'mergeright' || cmd == 'mergedown' || cmd == 'mergecells') { - this.execCommand('disablesort'); - } - }); - }); - - - - //表格排序 - UE.commands['sorttable'] = { - queryCommandState: function () { - var me = this, - tableItems = getTableItemsByRange(me); - if (!tableItems.cell) return -1; - var table = tableItems.table, - cells = table.getElementsByTagName("td"); - for (var i = 0, cell; cell = cells[i++];) { - if (cell.rowSpan != 1 || cell.colSpan != 1) return -1; - } - return 0; - }, - execCommand: function (cmd, fn) { - var me = this, - range = me.selection.getRange(), - bk = range.createBookmark(true), - tableItems = getTableItemsByRange(me), - cell = tableItems.cell, - ut = getUETable(tableItems.table), - cellInfo = ut.getCellInfo(cell); - ut.sortTable(cellInfo.cellIndex, fn); - range.moveToBookmark(bk); - try{ - range.select(); - }catch(e){} - } - }; - - //设置表格可排序,清除表格可排序 - UE.commands["enablesort"] = UE.commands["disablesort"] = { - queryCommandState: function (cmd) { - var table = getTableItemsByRange(this).table; - if(table && cmd=='enablesort') { - var cells = domUtils.getElementsByTagName(table, 'th td'); - for(var i = 0; i1 || cells[i].getAttribute('rowspan')>1) return -1; - } - } - - return !table ? -1: cmd=='enablesort' ^ table.getAttribute('data-sort')!='sortEnabled' ? -1:0; - }, - execCommand: function (cmd) { - var table = getTableItemsByRange(this).table; - table.setAttribute("data-sort", cmd == "enablesort" ? "sortEnabled" : "sortDisabled"); - cmd == "enablesort" ? domUtils.addClass(table,"sortEnabled"):domUtils.removeClasses(table,"sortEnabled"); - } - }; -}; - - -// plugins/contextmenu.js -///import core -///commands 右键菜单 -///commandsName ContextMenu -///commandsTitle 右键菜单 -/** - * 右键菜单 - * @function - * @name baidu.editor.plugins.contextmenu - * @author zhanyi - */ - -UE.plugins['contextmenu'] = function () { - var me = this; - me.setOpt('enableContextMenu',true); - if(me.getOpt('enableContextMenu') === false){ - return; - } - var lang = me.getLang( "contextMenu" ), - menu, - items = me.options.contextMenu || [ - {label:lang['selectall'], cmdName:'selectall'}, - { - label:lang.cleardoc, - cmdName:'cleardoc', - exec:function () { - if ( confirm( lang.confirmclear ) ) { - this.execCommand( 'cleardoc' ); - } - } - }, - '-', - { - label:lang.unlink, - cmdName:'unlink' - }, - '-', - { - group:lang.paragraph, - icon:'justifyjustify', - subMenu:[ - { - label:lang.justifyleft, - cmdName:'justify', - value:'left' - }, - { - label:lang.justifyright, - cmdName:'justify', - value:'right' - }, - { - label:lang.justifycenter, - cmdName:'justify', - value:'center' - }, - { - label:lang.justifyjustify, - cmdName:'justify', - value:'justify' - } - ] - }, - '-', - { - group:lang.table, - icon:'table', - subMenu:[ - { - label:lang.inserttable, - cmdName:'inserttable' - }, - { - label:lang.deletetable, - cmdName:'deletetable' - }, - '-', - { - label:lang.deleterow, - cmdName:'deleterow' - }, - { - label:lang.deletecol, - cmdName:'deletecol' - }, - { - label:lang.insertcol, - cmdName:'insertcol' - }, - { - label:lang.insertcolnext, - cmdName:'insertcolnext' - }, - { - label:lang.insertrow, - cmdName:'insertrow' - }, - { - label:lang.insertrownext, - cmdName:'insertrownext' - }, - '-', - { - label:lang.insertcaption, - cmdName:'insertcaption' - }, - { - label:lang.deletecaption, - cmdName:'deletecaption' - }, - { - label:lang.inserttitle, - cmdName:'inserttitle' - }, - { - label:lang.deletetitle, - cmdName:'deletetitle' - }, - { - label:lang.inserttitlecol, - cmdName:'inserttitlecol' - }, - { - label:lang.deletetitlecol, - cmdName:'deletetitlecol' - }, - '-', - { - label:lang.mergecells, - cmdName:'mergecells' - }, - { - label:lang.mergeright, - cmdName:'mergeright' - }, - { - label:lang.mergedown, - cmdName:'mergedown' - }, - '-', - { - label:lang.splittorows, - cmdName:'splittorows' - }, - { - label:lang.splittocols, - cmdName:'splittocols' - }, - { - label:lang.splittocells, - cmdName:'splittocells' - }, - '-', - { - label:lang.averageDiseRow, - cmdName:'averagedistributerow' - }, - { - label:lang.averageDisCol, - cmdName:'averagedistributecol' - }, - '-', - { - label:lang.edittd, - cmdName:'edittd', - exec:function () { - if ( UE.ui['edittd'] ) { - new UE.ui['edittd']( this ); - } - this.getDialog('edittd').open(); - } - }, - { - label:lang.edittable, - cmdName:'edittable', - exec:function () { - if ( UE.ui['edittable'] ) { - new UE.ui['edittable']( this ); - } - this.getDialog('edittable').open(); - } - }, - { - label:lang.setbordervisible, - cmdName:'setbordervisible' - } - ] - }, - { - group:lang.tablesort, - icon:'tablesort', - subMenu:[ - { - label:lang.enablesort, - cmdName:'enablesort' - }, - { - label:lang.disablesort, - cmdName:'disablesort' - }, - '-', - { - label:lang.reversecurrent, - cmdName:'sorttable', - value:'reversecurrent' - }, - { - label:lang.orderbyasc, - cmdName:'sorttable', - value:'orderbyasc' - }, - { - label:lang.reversebyasc, - cmdName:'sorttable', - value:'reversebyasc' - }, - { - label:lang.orderbynum, - cmdName:'sorttable', - value:'orderbynum' - }, - { - label:lang.reversebynum, - cmdName:'sorttable', - value:'reversebynum' - } - ] - }, - { - group:lang.borderbk, - icon:'borderBack', - subMenu:[ - { - label:lang.setcolor, - cmdName:"interlacetable", - exec:function(){ - this.execCommand("interlacetable"); - } - }, - { - label:lang.unsetcolor, - cmdName:"uninterlacetable", - exec:function(){ - this.execCommand("uninterlacetable"); - } - }, - { - label:lang.setbackground, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#bbb","#ccc"]}); - } - }, - { - label:lang.unsetbackground, - cmdName:"cleartablebackground", - exec:function(){ - this.execCommand("cleartablebackground"); - } - }, - { - label:lang.redandblue, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["red","blue"]}); - } - }, - { - label:lang.threecolorgradient, - cmdName:"settablebackground", - exec:function(){ - this.execCommand("settablebackground",{repeat:true,colorList:["#aaa","#bbb","#ccc"]}); - } - } - ] - }, - { - group:lang.aligntd, - icon:'aligntd', - subMenu:[ - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'top'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'middle'} - }, - { - cmdName:'cellalignment', - value:{align:'left',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'center',vAlign:'bottom'} - }, - { - cmdName:'cellalignment', - value:{align:'right',vAlign:'bottom'} - } - ] - }, - { - group:lang.aligntable, - icon:'aligntable', - subMenu:[ - { - cmdName:'tablealignment', - className: 'left', - label:lang.tableleft, - value:"left" - }, - { - cmdName:'tablealignment', - className: 'center', - label:lang.tablecenter, - value:"center" - }, - { - cmdName:'tablealignment', - className: 'right', - label:lang.tableright, - value:"right" - } - ] - }, - '-', - { - label:lang.insertparagraphbefore, - cmdName:'insertparagraph', - value:true - }, - { - label:lang.insertparagraphafter, - cmdName:'insertparagraph' - }, - { - label:lang['copy'], - cmdName:'copy' - }, - { - label:lang['paste'], - cmdName:'paste' - } - ]; - if ( !items.length ) { - return; - } - var uiUtils = UE.ui.uiUtils; - - me.addListener( 'contextmenu', function ( type, evt ) { - - var offset = uiUtils.getViewportOffsetByEvent( evt ); - me.fireEvent( 'beforeselectionchange' ); - if ( menu ) { - menu.destroy(); - } - for ( var i = 0, ti, contextItems = []; ti = items[i]; i++ ) { - var last; - (function ( item ) { - if ( item == '-' ) { - if ( (last = contextItems[contextItems.length - 1 ] ) && last !== '-' ) { - contextItems.push( '-' ); - } - } else if ( item.hasOwnProperty( "group" ) ) { - for ( var j = 0, cj, subMenu = []; cj = item.subMenu[j]; j++ ) { - (function ( subItem ) { - if ( subItem == '-' ) { - if ( (last = subMenu[subMenu.length - 1 ] ) && last !== '-' ) { - subMenu.push( '-' ); - }else{ - subMenu.splice(subMenu.length-1); - } - } else { - if ( (me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) && - (subItem.query ? subItem.query() : me.queryCommandState( subItem.cmdName )) > -1 ) { - subMenu.push( { - 'label':subItem.label || me.getLang( "contextMenu." + subItem.cmdName + (subItem.value || '') )||"", - 'className':'edui-for-' +subItem.cmdName + ( subItem.className ? ( ' edui-for-' + subItem.cmdName + '-' + subItem.className ) : '' ), - onclick:subItem.exec ? function () { - subItem.exec.call( me ); - } : function () { - me.execCommand( subItem.cmdName, subItem.value ); - } - } ); - } - } - })( cj ); - } - if ( subMenu.length ) { - function getLabel(){ - switch (item.icon){ - case "table": - return me.getLang( "contextMenu.table" ); - case "justifyjustify": - return me.getLang( "contextMenu.paragraph" ); - case "aligntd": - return me.getLang("contextMenu.aligntd"); - case "aligntable": - return me.getLang("contextMenu.aligntable"); - case "tablesort": - return lang.tablesort; - case "borderBack": - return lang.borderbk; - default : - return ''; - } - } - contextItems.push( { - //todo 修正成自动获取方式 - 'label':getLabel(), - className:'edui-for-' + item.icon, - 'subMenu':{ - items:subMenu, - editor:me - } - } ); - } - - } else { - //有可能commmand没有加载右键不能出来,或者没有command也想能展示出来添加query方法 - if ( (me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) && - (item.query ? item.query.call(me) : me.queryCommandState( item.cmdName )) > -1 ) { - - contextItems.push( { - 'label':item.label || me.getLang( "contextMenu." + item.cmdName ), - className:'edui-for-' + (item.icon ? item.icon : item.cmdName + (item.value || '')), - onclick:item.exec ? function () { - item.exec.call( me ); - } : function () { - me.execCommand( item.cmdName, item.value ); - } - } ); - } - - } - - })( ti ); - } - if ( contextItems[contextItems.length - 1] == '-' ) { - contextItems.pop(); - } - - menu = new UE.ui.Menu( { - items:contextItems, - className:"edui-contextmenu", - editor:me - } ); - menu.render(); - menu.showAt( offset ); - - me.fireEvent("aftershowcontextmenu",menu); - - domUtils.preventDefault( evt ); - if ( browser.ie ) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch ( e ) { - return; - } - if ( ieRange.item ) { - var range = new dom.Range( me.document ); - range.selectNode( ieRange.item( 0 ) ).select( true, true ); - } - } - }); - - // 添加复制的flash按钮 - me.addListener('aftershowcontextmenu', function(type, menu) { - if (me.zeroclipboard) { - var items = menu.items; - for (var key in items) { - if (items[key].className == 'edui-for-copy') { - me.zeroclipboard.clip(items[key].getDom()); - } - } - } - }); - -}; - - -// plugins/shortcutmenu.js -///import core -///commands 弹出菜单 -// commandsName popupmenu -///commandsTitle 弹出菜单 -/** - * 弹出菜单 - * @function - * @name baidu.editor.plugins.popupmenu - * @author xuheng - */ - -UE.plugins['shortcutmenu'] = function () { - var me = this, - menu, - items = me.options.shortcutMenu || []; - - if (!items.length) { - return; - } - - me.addListener ('contextmenu mouseup' , function (type , e) { - var me = this, - customEvt = { - type : type , - target : e.target || e.srcElement , - screenX : e.screenX , - screenY : e.screenY , - clientX : e.clientX , - clientY : e.clientY - }; - - setTimeout (function () { - var rng = me.selection.getRange (); - if (rng.collapsed === false || type == "contextmenu") { - - if (!menu) { - menu = new baidu.editor.ui.ShortCutMenu ({ - editor : me , - items : items , - theme : me.options.theme , - className : 'edui-shortcutmenu' - }); - - menu.render (); - me.fireEvent ("afterrendershortcutmenu" , menu); - } - - menu.show (customEvt , !!UE.plugins['contextmenu']); - } - }); - - if (type == 'contextmenu') { - domUtils.preventDefault (e); - if (browser.ie9below) { - var ieRange; - try { - ieRange = me.selection.getNative().createRange(); - } catch (e) { - return; - } - if (ieRange.item) { - var range = new dom.Range (me.document); - range.selectNode (ieRange.item (0)).select (true , true); - - } - } - } - }); - - me.addListener ('keydown' , function (type) { - if (type == "keydown") { - menu && !menu.isHidden && menu.hide (); - } - - }); - -}; - - - - -// plugins/basestyle.js -/** - * B、I、sub、super命令支持 - * @file - * @since 1.2.6.1 - */ - -UE.plugins['basestyle'] = function(){ - - /** - * 字体加粗 - * @command bold - * @param { String } cmd 命令字符串 - * @remind 对已加粗的文本内容执行该命令, 将取消加粗 - * @method execCommand - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行加粗操作 - * //第一次执行, 文本内容加粗 - * editor.execCommand( 'bold' ); - * - * //第二次执行, 文本内容取消加粗 - * editor.execCommand( 'bold' ); - * ``` - */ - - - /** - * 字体倾斜 - * @command italic - * @method execCommand - * @param { String } cmd 命令字符串 - * @remind 对已倾斜的文本内容执行该命令, 将取消倾斜 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行斜体操作 - * //第一次操作, 文本内容将变成斜体 - * editor.execCommand( 'italic' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'italic' ); - * ``` - */ - - /** - * 下标文本,与“superscript”命令互斥 - * @command subscript - * @method execCommand - * @remind 把选中的文本内容切换成下标文本, 如果当前选中的文本已经是下标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行下标操作 - * //第一次操作, 文本内容将变成下标文本 - * editor.execCommand( 'subscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'subscript' ); - * ``` - */ - - /** - * 上标文本,与“subscript”命令互斥 - * @command superscript - * @method execCommand - * @remind 把选中的文本内容切换成上标文本, 如果当前选中的文本已经是上标, 则该操作会把文本内容还原成正常文本 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //对当前选中的文本内容执行上标操作 - * //第一次操作, 文本内容将变成上标文本 - * editor.execCommand( 'superscript' ); - * - * //再次对同一文本内容执行, 则文本内容将恢复正常 - * editor.execCommand( 'superscript' ); - * ``` - */ - var basestyles = { - 'bold':['strong','b'], - 'italic':['em','i'], - 'subscript':['sub'], - 'superscript':['sup'] - }, - getObj = function(editor,tagNames){ - return domUtils.filterNodeList(editor.selection.getStartElementPath(),tagNames); - }, - me = this; - //添加快捷键 - me.addshortcutkey({ - "Bold" : "ctrl+66",//^B - "Italic" : "ctrl+73", //^I - "Underline" : "ctrl+85"//^U - }); - me.addInputRule(function(root){ - utils.each(root.getNodesByTagName('b i'),function(node){ - switch (node.tagName){ - case 'b': - node.tagName = 'strong'; - break; - case 'i': - node.tagName = 'em'; - } - }); - }); - for ( var style in basestyles ) { - (function( cmd, tagNames ) { - me.commands[cmd] = { - execCommand : function( cmdName ) { - var range = me.selection.getRange(),obj = getObj(this,tagNames); - if ( range.collapsed ) { - if ( obj ) { - var tmpText = me.document.createTextNode(''); - range.insertNode( tmpText ).removeInlineStyle( tagNames ); - range.setStartBefore(tmpText); - domUtils.remove(tmpText); - } else { - var tmpNode = range.document.createElement( tagNames[0] ); - if(cmdName == 'superscript' || cmdName == 'subscript'){ - tmpText = me.document.createTextNode(''); - range.insertNode(tmpText) - .removeInlineStyle(['sub','sup']) - .setStartBefore(tmpText) - .collapse(true); - } - range.insertNode( tmpNode ).setStart( tmpNode, 0 ); - } - range.collapse( true ); - } else { - if(cmdName == 'superscript' || cmdName == 'subscript'){ - if(!obj || obj.tagName.toLowerCase() != cmdName){ - range.removeInlineStyle(['sub','sup']); - } - } - obj ? range.removeInlineStyle( tagNames ) : range.applyInlineStyle( tagNames[0] ); - } - range.select(); - }, - queryCommandState : function() { - return getObj(this,tagNames) ? 1 : 0; - } - }; - })( style, basestyles[style] ); - } -}; - - - -// plugins/elementpath.js -/** - * 选取路径命令 - * @file - */ -UE.plugins['elementpath'] = function(){ - var currentLevel, - tagNames, - me = this; - me.setOpt('elementPathEnabled',true); - if(!me.options.elementPathEnabled){ - return; - } - me.commands['elementpath'] = { - execCommand : function( cmdName, level ) { - var start = tagNames[level], - range = me.selection.getRange(); - currentLevel = level*1; - range.selectNode(start).select(); - }, - queryCommandValue : function() { - //产生一个副本,不能修改原来的startElementPath; - var parents = [].concat(this.selection.getStartElementPath()).reverse(), - names = []; - tagNames = parents; - for(var i=0,ci;ci=parents[i];i++){ - if(ci.nodeType == 3) { - continue; - } - var name = ci.tagName.toLowerCase(); - if(name == 'img' && ci.getAttribute('anchorname')){ - name = 'anchor'; - } - names[i] = name; - if(currentLevel == i){ - currentLevel = -1; - break; - } - } - return names; - } - }; -}; - - - -// plugins/formatmatch.js -/** - * 格式刷,只格式inline的 - * @file - * @since 1.2.6.1 - */ - -/** - * 格式刷 - * @command formatmatch - * @method execCommand - * @remind 该操作不能复制段落格式 - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * //获取格式刷 - * editor.execCommand( 'formatmatch' ); - * ``` - */ -UE.plugins['formatmatch'] = function(){ - - var me = this, - list = [],img, - flag = 0; - - me.addListener('reset',function(){ - list = []; - flag = 0; - }); - - function addList(type,evt){ - - if(browser.webkit){ - var target = evt.target.tagName == 'IMG' ? evt.target : null; - } - - function addFormat(range){ - - if(text){ - range.selectNode(text); - } - return range.applyInlineStyle(list[list.length-1].tagName,null,list); - - } - - me.undoManger && me.undoManger.save(); - - var range = me.selection.getRange(), - imgT = target || range.getClosedNode(); - if(img && imgT && imgT.tagName == 'IMG'){ - //trace:964 - - imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat ||'none') + ';display:' + (img.style.display||'inline'); - - img = null; - }else{ - if(!img){ - var collapsed = range.collapsed; - if(collapsed){ - var text = me.document.createTextNode('match'); - range.insertNode(text).select(); - - - } - me.__hasEnterExecCommand = true; - //不能把block上的属性干掉 - //trace:1553 - var removeFormatAttributes = me.options.removeFormatAttributes; - me.options.removeFormatAttributes = ''; - me.execCommand('removeformat'); - me.options.removeFormatAttributes = removeFormatAttributes; - me.__hasEnterExecCommand = false; - //trace:969 - range = me.selection.getRange(); - if(list.length){ - addFormat(range); - } - if(text){ - range.setStartBefore(text).collapse(true); - - } - range.select(); - text && domUtils.remove(text); - } - - } - - - - - me.undoManger && me.undoManger.save(); - me.removeListener('mouseup',addList); - flag = 0; - } - - me.commands['formatmatch'] = { - execCommand : function( cmdName ) { - - if(flag){ - flag = 0; - list = []; - me.removeListener('mouseup',addList); - return; - } - - - - var range = me.selection.getRange(); - img = range.getClosedNode(); - if(!img || img.tagName != 'IMG'){ - range.collapse(true).shrinkBoundary(); - var start = range.startContainer; - list = domUtils.findParents(start,true,function(node){ - return !domUtils.isBlockElm(node) && node.nodeType == 1; - }); - //a不能加入格式刷, 并且克隆节点 - for(var i=0,ci;ci=list[i];i++){ - if(ci.tagName == 'A'){ - list.splice(i,1); - break; - } - } - - } - - me.addListener('mouseup',addList); - flag = 1; - - - }, - queryCommandState : function() { - return flag; - }, - notNeedUndo : 1 - }; -}; - - - -// plugins/searchreplace.js -///import core -///commands 查找替换 -///commandsName SearchReplace -///commandsTitle 查询替换 -///commandsDialog dialogs\searchreplace -/** - * @description 查找替换 - * @author zhanyi - */ - -UE.plugin.register('searchreplace',function(){ - var me = this; - - var _blockElm = {'table':1,'tbody':1,'tr':1,'ol':1,'ul':1}; - - function findTextInString(textContent,opt,currentIndex){ - var str = opt.searchStr; - if(opt.dir == -1){ - textContent = textContent.split('').reverse().join(''); - str = str.split('').reverse().join(''); - currentIndex = textContent.length - currentIndex; - - } - var reg = new RegExp(str,'g' + (opt.casesensitive ? '' : 'i')),match; - - while(match = reg.exec(textContent)){ - if(match.index >= currentIndex){ - return opt.dir == -1 ? textContent.length - match.index - opt.searchStr.length : match.index; - } - } - return -1 - } - function findTextBlockElm(node,currentIndex,opt){ - var textContent,index,methodName = opt.all || opt.dir == 1 ? 'getNextDomNode' : 'getPreDomNode'; - if(domUtils.isBody(node)){ - node = node.firstChild; - } - var first = 1; - while(node){ - textContent = node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']; - index = findTextInString(textContent,opt,currentIndex ); - first = 0; - if(index!=-1){ - return { - 'node':node, - 'index':index - } - } - node = domUtils[methodName](node); - while(node && _blockElm[node.nodeName.toLowerCase()]){ - node = domUtils[methodName](node,true); - } - if(node){ - currentIndex = opt.dir == -1 ? (node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent']).length : 0; - } - - } - } - function findNTextInBlockElm(node,index,str){ - var currentIndex = 0, - currentNode = node.firstChild, - currentNodeLength = 0, - result; - while(currentNode){ - if(currentNode.nodeType == 3){ - currentNodeLength = currentNode.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length; - currentIndex += currentNodeLength; - if(currentIndex >= index){ - return { - 'node':currentNode, - 'index': currentNodeLength - (currentIndex - index) - } - } - }else if(!dtd.$empty[currentNode.tagName]){ - currentNodeLength = currentNode[browser.ie ? 'innerText' : 'textContent'].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,'').length - currentIndex += currentNodeLength; - if(currentIndex >= index){ - result = findNTextInBlockElm(currentNode,currentNodeLength - (currentIndex - index),str); - if(result){ - return result; - } - } - } - currentNode = domUtils.getNextDomNode(currentNode); - - } - } - - function searchReplace(me,opt){ - - var rng = me.selection.getRange(), - startBlockNode, - searchStr = opt.searchStr, - span = me.document.createElement('span'); - span.innerHTML = '$$ueditor_searchreplace_key$$'; - - rng.shrinkBoundary(true); - - //判断是不是第一次选中 - if(!rng.collapsed){ - rng.select(); - var rngText = me.selection.getText(); - if(new RegExp('^' + opt.searchStr + '$',(opt.casesensitive ? '' : 'i')).test(rngText)){ - if(opt.replaceStr != undefined){ - replaceText(rng,opt.replaceStr); - rng.select(); - return true; - }else{ - rng.collapse(opt.dir == -1) - } - - } - } - - - rng.insertNode(span); - rng.enlargeToBlockElm(true); - startBlockNode = rng.startContainer; - var currentIndex = startBlockNode[browser.ie ? 'innerText' : 'textContent'].indexOf('$$ueditor_searchreplace_key$$'); - rng.setStartBefore(span); - domUtils.remove(span); - var result = findTextBlockElm(startBlockNode,currentIndex,opt); - if(result){ - var rngStart = findNTextInBlockElm(result.node,result.index,searchStr); - var rngEnd = findNTextInBlockElm(result.node,result.index + searchStr.length,searchStr); - rng.setStart(rngStart.node,rngStart.index).setEnd(rngEnd.node,rngEnd.index); - - if(opt.replaceStr !== undefined){ - replaceText(rng,opt.replaceStr) - } - rng.select(); - return true; - }else{ - rng.setCursor() - } - - } - function replaceText(rng,str){ - - str = me.document.createTextNode(str); - rng.deleteContents().insertNode(str); - - } - return { - commands:{ - 'searchreplace':{ - execCommand:function(cmdName,opt){ - utils.extend(opt,{ - all : false, - casesensitive : false, - dir : 1 - },true); - var num = 0; - if(opt.all){ - - var rng = me.selection.getRange(), - first = me.body.firstChild; - if(first && first.nodeType == 1){ - rng.setStart(first,0); - rng.shrinkBoundary(true); - }else if(first.nodeType == 3){ - rng.setStartBefore(first) - } - rng.collapse(true).select(true); - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - while(searchReplace(this,opt)){ - num++; - } - if(num){ - me.fireEvent('saveScene'); - } - }else{ - if(opt.replaceStr !== undefined){ - me.fireEvent('saveScene'); - } - if(searchReplace(this,opt)){ - num++ - } - if(num){ - me.fireEvent('saveScene'); - } - - } - - return num; - }, - notNeedUndo:1 - } - } - } -}); - -// plugins/customstyle.js -/** - * 自定义样式 - * @file - * @since 1.2.6.1 - */ - -/** - * 根据config配置文件里“customstyle”选项的值对匹配的标签执行样式替换。 - * @command customstyle - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand( 'customstyle' ); - * ``` - */ -UE.plugins['customstyle'] = function() { - var me = this; - me.setOpt({ 'customstyle':[ - {tag:'h1',name:'tc', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - {tag:'h1',name:'tl', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'}, - {tag:'span',name:'im', style:'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'}, - {tag:'span',name:'hi', style:'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'} - ]}); - me.commands['customstyle'] = { - execCommand : function(cmdName, obj) { - var me = this, - tagName = obj.tag, - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true), - range,bk,tmpObj = {}; - for (var p in obj) { - if(obj[p]!==undefined) - tmpObj[p] = obj[p]; - } - delete tmpObj.tag; - if (node && node.getAttribute('label') == obj.label) { - range = this.selection.getRange(); - bk = range.createBookmark(); - if (range.collapsed) { - //trace:1732 删掉自定义标签,要有p来回填站位 - if(dtd.$block[node.tagName]){ - var fillNode = me.document.createElement('p'); - domUtils.moveChild(node, fillNode); - node.parentNode.insertBefore(fillNode, node); - domUtils.remove(node); - }else{ - domUtils.remove(node,true); - } - - } else { - - var common = domUtils.getCommonAncestor(bk.start, bk.end), - nodes = domUtils.getElementsByTagName(common, tagName); - if(new RegExp(tagName,'i').test(common.tagName)){ - nodes.push(common); - } - for (var i = 0,ni; ni = nodes[i++];) { - if (ni.getAttribute('label') == obj.label) { - var ps = domUtils.getPosition(ni, bk.start),pe = domUtils.getPosition(ni, bk.end); - if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) - && - (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS) - ) - if (dtd.$block[tagName]) { - var fillNode = me.document.createElement('p'); - domUtils.moveChild(ni, fillNode); - ni.parentNode.insertBefore(fillNode, ni); - } - domUtils.remove(ni, true); - } - } - node = domUtils.findParent(common, function(node) { - return node.getAttribute('label') == obj.label; - }, true); - if (node) { - - domUtils.remove(node, true); - - } - - } - range.moveToBookmark(bk).select(); - } else { - if (dtd.$block[tagName]) { - this.execCommand('paragraph', tagName, tmpObj,'customstyle'); - range = me.selection.getRange(); - if (!range.collapsed) { - range.collapse(); - node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label') == obj.label; - }, true); - var pNode = me.document.createElement('p'); - domUtils.insertAfter(node, pNode); - domUtils.fillNode(me.document, pNode); - range.setStart(pNode, 0).setCursor(); - } - } else { - - range = me.selection.getRange(); - if (range.collapsed) { - node = me.document.createElement(tagName); - domUtils.setAttributes(node, tmpObj); - range.insertNode(node).setStart(node, 0).setCursor(); - - return; - } - - bk = range.createBookmark(); - range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select(); - } - } - - }, - queryCommandValue : function() { - var parent = domUtils.filterNodeList( - this.selection.getStartElementPath(), - function(node){return node.getAttribute('label')} - ); - return parent ? parent.getAttribute('label') : ''; - } - }; - //当去掉customstyle是,如果是块元素,用p代替 - me.addListener('keyup', function(type, evt) { - var keyCode = evt.keyCode || evt.which; - - if (keyCode == 32 || keyCode == 13) { - var range = me.selection.getRange(); - if (range.collapsed) { - var node = domUtils.findParent(me.selection.getStart(), function(node) { - return node.getAttribute('label'); - }, true); - if (node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node)) { - var p = me.document.createElement('p'); - domUtils.insertAfter(node, p); - domUtils.fillNode(me.document, p); - domUtils.remove(node); - range.setStart(p, 0).setCursor(); - - - } - } - } - }); -}; - -// plugins/catchremoteimage.js -///import core -///commands 远程图片抓取 -///commandsName catchRemoteImage,catchremoteimageenable -///commandsTitle 远程图片抓取 -/** - * 远程图片抓取,当开启本插件时所有不符合本地域名的图片都将被抓取成为本地服务器上的图片 - */ -UE.plugins['catchremoteimage'] = function () { - var me = this, - ajax = UE.ajax; - - /* 设置默认值 */ - if (me.options.catchRemoteImageEnable === false) return; - me.setOpt({ - catchRemoteImageEnable: false - }); - - me.addListener("afterpaste", function () { - me.fireEvent("catchRemoteImage"); - }); - - me.addListener("catchRemoteImage", function () { - - var catcherLocalDomain = me.getOpt('catcherLocalDomain'), - catcherActionUrl = me.getActionUrl(me.getOpt('catcherActionName')), - catcherUrlPrefix = me.getOpt('catcherUrlPrefix'), - catcherFieldName = me.getOpt('catcherFieldName'); - - var remoteImages = [], - imgs = domUtils.getElementsByTagName(me.document, "img"), - test = function (src, urls) { - if (src.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(src)) { - return true; - } - if (urls) { - for (var j = 0, url; url = urls[j++];) { - if (src.indexOf(url) !== -1) { - return true; - } - } - } - return false; - }; - - for (var i = 0, ci; ci = imgs[i++];) { - if (ci.getAttribute("word_img")) { - continue; - } - var src = ci.getAttribute("_src") || ci.src || ""; - if (/^(https?|ftp):/i.test(src) && !test(src, catcherLocalDomain)) { - remoteImages.push(src); - } - } - - if (remoteImages.length) { - catchremoteimage(remoteImages, { - //成功抓取 - success: function (r) { - try { - var info = r.state !== undefined ? r:eval("(" + r.responseText + ")"); - } catch (e) { - return; - } - - /* 获取源路径和新路径 */ - var i, j, ci, cj, oldSrc, newSrc, list = info.list; - - for (i = 0; ci = imgs[i++];) { - oldSrc = ci.getAttribute("_src") || ci.src || ""; - for (j = 0; cj = list[j++];) { - if (oldSrc == cj.source && cj.state == "SUCCESS") { //抓取失败时不做替换处理 - newSrc = catcherUrlPrefix + cj.url; - domUtils.setAttributes(ci, { - "src": newSrc, - "_src": newSrc - }); - break; - } - } - } - me.fireEvent('catchremotesuccess') - }, - //回调失败,本次请求超时 - error: function () { - me.fireEvent("catchremoteerror"); - } - }); - } - - function catchremoteimage(imgs, callbacks) { - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(catcherActionUrl + (catcherActionUrl.indexOf('?') == -1 ? '?':'&') + params), - isJsonp = utils.isCrossDomainUrl(url), - opt = { - 'method': 'POST', - 'dataType': isJsonp ? 'jsonp':'', - 'timeout': 60000, //单位:毫秒,回调请求超时设置。目标用户如果网速不是很快的话此处建议设置一个较大的数值 - 'onsuccess': callbacks["success"], - 'onerror': callbacks["error"] - }; - opt[catcherFieldName] = imgs; - ajax.request(url, opt); - } - - }); -}; - -// plugins/snapscreen.js -/** - * 截屏插件,为UEditor提供插入支持 - * @file - * @since 1.4.2 - */ -UE.plugin.register('snapscreen', function (){ - - var me = this; - var snapplugin; - - function getLocation(url){ - var search, - a = document.createElement('a'), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - - a.href = url; - if (browser.ie) { - a.href = a.href; - } - - - search = a.search; - if (params) { - search = search + (search.indexOf('?') == -1 ? '?':'&')+ params; - search = search.replace(/[&]+/ig, '&'); - } - return { - 'port': a.port, - 'hostname': a.hostname, - 'path': a.pathname + search || + a.hash - } - } - - return { - commands:{ - /** - * 字体背景颜色 - * @command snapscreen - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('snapscreen'); - * ``` - */ - 'snapscreen':{ - execCommand:function (cmd) { - var url, local, res; - var lang = me.getLang("snapScreen_plugin"); - - if(!snapplugin){ - var container = me.container; - var doc = me.container.ownerDocument || me.container.document; - snapplugin = doc.createElement("object"); - try{snapplugin.type = "application/x-pluginbaidusnap";}catch(e){ - return; - } - snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;"; - snapplugin.setAttribute("width","0"); - snapplugin.setAttribute("height","0"); - container.appendChild(snapplugin); - } - - function onSuccess(rs){ - try{ - rs = eval("("+ rs +")"); - if(rs.state == 'SUCCESS'){ - var opt = me.options; - me.execCommand('insertimage', { - src: opt.snapscreenUrlPrefix + rs.url, - _src: opt.snapscreenUrlPrefix + rs.url, - alt: rs.title || '', - floatStyle: opt.snapscreenImgAlign - }); - } else { - alert(rs.state); - } - }catch(e){ - alert(lang.callBackErrorMsg); - } - } - url = me.getActionUrl(me.getOpt('snapscreenActionName')); - local = getLocation(url); - setTimeout(function () { - try{ - res =snapplugin.saveSnapshot(local.hostname, local.path, local.port); - }catch(e){ - me.ui._dialogs['snapscreenDialog'].open(); - return; - } - - onSuccess(res); - }, 50); - }, - queryCommandState: function(){ - return (navigator.userAgent.indexOf("Windows",0) != -1) ? 0:-1; - } - } - } - } -}); - - -// plugins/insertparagraph.js -/** - * 插入段落 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入段落 - * @command insertparagraph - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * //editor是编辑器实例 - * editor.execCommand( 'insertparagraph' ); - * ``` - */ - -UE.commands['insertparagraph'] = { - execCommand : function( cmdName,front) { - var me = this, - range = me.selection.getRange(), - start = range.startContainer,tmpNode; - while(start ){ - if(domUtils.isBody(start)){ - break; - } - tmpNode = start; - start = start.parentNode; - } - if(tmpNode){ - var p = me.document.createElement('p'); - if(front){ - tmpNode.parentNode.insertBefore(p,tmpNode) - }else{ - tmpNode.parentNode.insertBefore(p,tmpNode.nextSibling) - } - domUtils.fillNode(me.document,p); - range.setStart(p,0).setCursor(false,true); - } - } -}; - - - -// plugins/webapp.js -/** - * 百度应用 - * @file - * @since 1.2.6.1 - */ - - -/** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - -//UE.plugins['webapp'] = function () { -// var me = this; -// function createInsertStr( obj, toIframe, addParagraph ) { -// return !toIframe ? -// (addParagraph ? '

    ' : '') + '' + -// (addParagraph ? '

    ' : '') -// : -// ''; -// } -// -// function switchImgAndIframe( img2frame ) { -// var tmpdiv, -// nodes = domUtils.getElementsByTagName( me.document, !img2frame ? "iframe" : "img" ); -// for ( var i = 0, node; node = nodes[i++]; ) { -// if ( node.className != "edui-faked-webapp" ){ -// continue; -// } -// tmpdiv = me.document.createElement( "div" ); -// tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( "_url" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace("url(","").replace(")","")} : {url:node.getAttribute( "src", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute("logo_url")}, img2frame ? true : false,false ); -// node.parentNode.replaceChild( tmpdiv.firstChild, node ); -// } -// } -// -// me.addListener( "beforegetcontent", function () { -// switchImgAndIframe( true ); -// } ); -// me.addListener( 'aftersetcontent', function () { -// switchImgAndIframe( false ); -// } ); -// me.addListener( 'aftergetcontent', function ( cmdName ) { -// if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){ -// return; -// } -// switchImgAndIframe( false ); -// } ); -// -// me.commands['webapp'] = { -// execCommand:function ( cmd, obj ) { -// me.execCommand( "inserthtml", createInsertStr( obj, false,true ) ); -// } -// }; -//}; - -UE.plugin.register('webapp', function (){ - var me = this; - function createInsertStr(obj,toEmbed){ - return !toEmbed ? - '' - : - '' - - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-webapp'){ - html = createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("_url"), - 'logo':node.getAttr('_logo_url') - },true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('iframe'),function(node){ - if(node.getAttr('class') == 'edui-faked-webapp'){ - var img = UE.uNode.createElement(createInsertStr({ - title:node.getAttr('title'), - 'width':node.getAttr('width'), - 'height':node.getAttr('height'), - 'align':node.getAttr('align'), - 'cssfloat':node.getStyle('float'), - 'url':node.getAttr("src"), - 'logo':node.getAttr('logo_url') - })); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入百度应用 - * @command webapp - * @method execCommand - * @remind 需要百度APPKey - * @remind 百度应用主页: http://app.baidu.com/ - * @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度, - * height=>应用容器高度,logo=>应用logo,url=>应用地址 - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'webapp' , { - * title: '植物大战僵尸', - * width: 560, - * height: 465, - * logo: '应用展示的图片', - * url: '百度应用的地址' - * } ); - * ``` - */ - 'webapp':{ - execCommand:function (cmd, obj) { - - var me = this, - str = createInsertStr(utils.extend(obj,{ - align:'none' - }), false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-webapp"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/template.js -///import core -///import plugins\inserthtml.js -///import plugins\cleardoc.js -///commands 模板 -///commandsName template -///commandsTitle 模板 -///commandsDialog dialogs\template -UE.plugins['template'] = function () { - UE.commands['template'] = { - execCommand:function (cmd, obj) { - obj.html && this.execCommand("inserthtml", obj.html); - } - }; - this.addListener("click", function (type, evt) { - var el = evt.target || evt.srcElement, - range = this.selection.getRange(); - var tnode = domUtils.findParent(el, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - tnode && range.selectNode(tnode).shrinkBoundary().select(); - }); - this.addListener("keydown", function (type, evt) { - var range = this.selection.getRange(); - if (!range.collapsed) { - if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) { - var tnode = domUtils.findParent(range.startContainer, function (node) { - if (node.className && domUtils.hasClass(node, "ue_t")) { - return node; - } - }, true); - if (tnode) { - domUtils.removeClasses(tnode, ["ue_t"]); - } - } - } - }); -}; - - -// plugins/music.js -/** - * 插入音乐命令 - * @file - */ -UE.plugin.register('music', function (){ - var me = this; - function creatInsertStr(url,width,height,align,cssfloat,toEmbed){ - return !toEmbed ? - '' - : - ''; - } - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(node){ - var html; - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("_url"), node.getAttr('width'), node.getAttr('height'), align, cssfloat, true); - var embed = UE.uNode.createElement(html); - node.parentNode.replaceChild(embed,node); - } - }) - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('embed'),function(node){ - if(node.getAttr('class') == 'edui-faked-music'){ - var cssfloat = node.getStyle('float'); - var align = node.getAttr('align'); - html = creatInsertStr(node.getAttr("src"), node.getAttr('width'), node.getAttr('height'), align, cssfloat,false); - var img = UE.uNode.createElement(html); - node.parentNode.replaceChild(img,node); - } - }) - - }, - commands:{ - /** - * 插入音乐 - * @command music - * @method execCommand - * @param { Object } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址; - * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none - * @example - * ```javascript - * //editor是编辑器实例 - * //在编辑器里插入一个“植物大战僵尸”的APP - * editor.execCommand( 'music' , { - * width: 400, - * height: 95, - * align: "center", - * url: "音乐地址" - * } ); - * ``` - */ - 'music':{ - execCommand:function (cmd, musicObj) { - var me = this, - str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false); - me.execCommand("inserthtml",str); - }, - queryCommandState:function () { - var me = this, - img = me.selection.getRange().getClosedNode(), - flag = img && (img.className == "edui-faked-music"); - return flag ? 1 : 0; - } - } - } - } -}); - -// plugins/autoupload.js -/** - * @description - * 1.拖放文件到编辑区域,自动上传并插入到选区 - * 2.插入粘贴板的图片,自动上传并插入到选区 - * @author Jinqn - * @date 2013-10-14 - */ -UE.plugin.register('autoupload', function (){ - - function sendAndInsertFile(file, editor) { - var me = editor; - //模拟数据 - var fieldName, urlPrefix, maxSize, allowFiles, actionUrl, - loadingHtml, errorHandler, successHandler, - filetype = /image\/\w+/i.test(file.type) ? 'image':'file', - loadingId = 'loading_' + (+new Date()).toString(36); - - fieldName = me.getOpt(filetype + 'FieldName'); - urlPrefix = me.getOpt(filetype + 'UrlPrefix'); - maxSize = me.getOpt(filetype + 'MaxSize'); - allowFiles = me.getOpt(filetype + 'AllowFiles'); - actionUrl = me.getActionUrl(me.getOpt(filetype + 'ActionName')); - errorHandler = function(title) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - }; - - if (filetype == 'image') { - loadingHtml = ''; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - if (loader) { - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', data.title || ''); - loader.setAttribute('alt', data.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - } - }; - } else { - loadingHtml = '

    ' + - '' + - '

    '; - successHandler = function(data) { - var link = urlPrefix + data.url, - loader = me.document.getElementById(loadingId); - - var rng = me.selection.getRange(), - bk = rng.createBookmark(); - rng.selectNode(loader).select(); - me.execCommand('insertfile', {'url': link}); - rng.moveToBookmark(bk).select(); - }; - } - - /* 插入loading的占位符 */ - me.execCommand('inserthtml', loadingHtml); - - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt(filetype + 'ActionName')) { - errorHandler(me.getLang('autoupload.errorLoadConfig')); - return; - } - /* 判断文件大小是否超出限制 */ - if(file.size > maxSize) { - errorHandler(me.getLang('autoupload.exceedSizeError')); - return; - } - /* 判断文件格式是否超出允许 */ - var fileext = file.name ? file.name.substr(file.name.lastIndexOf('.')):''; - if ((fileext && filetype != 'image') || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - errorHandler(me.getLang('autoupload.exceedTypeError')); - return; - } - - /* 创建Ajax并提交 */ - var xhr = new XMLHttpRequest(), - fd = new FormData(), - params = utils.serializeParam(me.queryCommandValue('serverparam')) || '', - url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params); - - fd.append(fieldName, file, file.name || ('blob.' + file.type.substr('image/'.length))); - fd.append('type', 'ajax'); - xhr.open("post", url, true); - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - xhr.addEventListener('load', function (e) { - try{ - var json = (new Function("return " + utils.trim(e.target.response)))(); - if (json.state == 'SUCCESS' && json.url) { - successHandler(json); - } else { - errorHandler(json.state); - } - }catch(er){ - errorHandler(me.getLang('autoupload.loadError')); - } - }); - xhr.send(fd); - } - - function getPasteImage(e){ - return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\//.test(e.clipboardData.items[0].type) ? e.clipboardData.items:null; - } - function getDropImage(e){ - return e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files:null; - } - - return { - outputRule: function(root){ - utils.each(root.getNodesByTagName('img'),function(n){ - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - utils.each(root.getNodesByTagName('p'),function(n){ - if (/\bloadpara\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - }, - bindEvents:{ - //插入粘贴板的图片,拖放插入图片 - 'ready':function(e){ - var me = this; - if(window.FormData && window.FileReader) { - domUtils.on(me.body, 'paste drop', function(e){ - var hasImg = false, - items; - //获取粘贴板文件列表或者拖放文件列表 - items = e.type == 'paste' ? getPasteImage(e):getDropImage(e); - if(items){ - var len = items.length, - file; - while (len--){ - file = items[len]; - if(file.getAsFile) file = file.getAsFile(); - if(file && file.size > 0) { - sendAndInsertFile(file, me); - hasImg = true; - } - } - hasImg && e.preventDefault(); - } - - }); - //取消拖放图片时出现的文字光标位置提示 - domUtils.on(me.body, 'dragover', function (e) { - if(e.dataTransfer.types[0] == 'Files') { - e.preventDefault(); - } - }); - - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' - + this.options.themePath - + this.options.theme +'/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - } - } - } - } -}); - -// plugins/autosave.js -UE.plugin.register('autosave', function (){ - - var me = this, - //无限循环保护 - lastSaveTime = new Date(), - //最小保存间隔时间 - MIN_TIME = 20, - //auto save key - saveKey = null; - - function save ( editor ) { - - var saveData; - - if ( new Date() - lastSaveTime < MIN_TIME ) { - return; - } - - if ( !editor.hasContents() ) { - //这里不能调用命令来删除, 会造成事件死循环 - saveKey && me.removePreferences( saveKey ); - return; - } - - lastSaveTime = new Date(); - - editor._saveFlag = null; - - saveData = me.body.innerHTML; - - if ( editor.fireEvent( "beforeautosave", { - content: saveData - } ) === false ) { - return; - } - - me.setPreferences( saveKey, saveData ); - - editor.fireEvent( "afterautosave", { - content: saveData - } ); - - } - - return { - defaultOptions: { - //默认间隔时间 - saveInterval: 500, - enableAutoSave: true // HaoChuan9421 - }, - bindEvents:{ - 'ready':function(){ - - var _suffix = "-drafts-data", - key = null; - - if ( me.key ) { - key = me.key + _suffix; - } else { - key = ( me.container.parentNode.id || 'ue-common' ) + _suffix; - } - - //页面地址+编辑器ID 保持唯一 - saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\/]/g, '_' ) + key; - - }, - - 'contentchange': function () { - // HaoChuan9421 - if (!me.getOpt('enableAutoSave')) { - return; - } - - if ( !saveKey ) { - return; - } - - if ( me._saveFlag ) { - window.clearTimeout( me._saveFlag ); - } - - if ( me.options.saveInterval > 0 ) { - - me._saveFlag = window.setTimeout( function () { - - save( me ); - - }, me.options.saveInterval ); - - } else { - - save(me); - - } - - - } - }, - commands:{ - 'clearlocaldata':{ - execCommand:function (cmd, name) { - if ( saveKey && me.getPreferences( saveKey ) ) { - me.removePreferences( saveKey ) - } - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'getlocaldata':{ - execCommand:function (cmd, name) { - return saveKey ? me.getPreferences( saveKey ) || '' : ''; - }, - notNeedUndo: true, - ignoreContentChange:true - }, - - 'drafts':{ - execCommand:function (cmd, name) { - if ( saveKey ) { - me.body.innerHTML = me.getPreferences( saveKey ) || '

    '+domUtils.fillHtml+'

    '; - me.focus(true); - } - }, - queryCommandState: function () { - return saveKey ? ( me.getPreferences( saveKey ) === null ? -1 : 0 ) : -1; - }, - notNeedUndo: true, - ignoreContentChange:true - } - } - } - -}); - -// plugins/charts.js -UE.plugin.register('charts', function (){ - - var me = this; - - return { - bindEvents: { - 'chartserror': function () { - } - }, - commands:{ - 'charts': { - execCommand: function ( cmd, data ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true), - flagText = [], - config = {}; - - if ( !tableNode ) { - return false; - } - - if ( !validData( tableNode ) ) { - me.fireEvent( "chartserror" ); - return false; - } - - config.title = data.title || ''; - config.subTitle = data.subTitle || ''; - config.xTitle = data.xTitle || ''; - config.yTitle = data.yTitle || ''; - config.suffix = data.suffix || ''; - config.tip = data.tip || ''; - //数据对齐方式 - config.dataFormat = data.tableDataFormat || ''; - //图表类型 - config.chartType = data.chartType || 0; - - for ( var key in config ) { - - if ( !config.hasOwnProperty( key ) ) { - continue; - } - - flagText.push( key+":"+config[ key ] ); - - } - - tableNode.setAttribute( "data-chart", flagText.join( ";" ) ); - domUtils.addClass( tableNode, "edui-charts-table" ); - - - - }, - queryCommandState: function ( cmd, name ) { - - var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true); - return tableNode && validData( tableNode ) ? 0 : -1; - - } - } - }, - inputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style"); - } - - }) - - }, - outputRule:function(root){ - utils.each(root.getNodesByTagName('table'),function( tableNode ){ - - if ( tableNode.getAttr("data-chart") !== undefined ) { - tableNode.setAttr("style", "display: none;"); - } - - }) - - } - } - - function validData ( table ) { - - var firstRows = null, - cellCount = 0; - - //行数不够 - if ( table.rows.length < 2 ) { - return false; - } - - //列数不够 - if ( table.rows[0].cells.length < 2 ) { - return false; - } - - //第一行所有cell必须是th - firstRows = table.rows[ 0 ].cells; - cellCount = firstRows.length; - - for ( var i = 0, cell; cell = firstRows[ i ]; i++ ) { - - if ( cell.tagName.toLowerCase() !== 'th' ) { - return false; - } - - } - - for ( var i = 1, row; row = table.rows[ i ]; i++ ) { - - //每行单元格数不匹配, 返回false - if ( row.cells.length != cellCount ) { - return false; - } - - //第一列不是th也返回false - if ( row.cells[0].tagName.toLowerCase() !== 'th' ) { - return false; - } - - for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) { - - var value = utils.trim( ( cell.innerText || cell.textContent || '' ) ); - - value = value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' ); - - //必须是数字 - if ( !/^\d*\.?\d+$/.test( value ) ) { - return false; - } - - } - - } - - return true; - - } - -}); - -// plugins/section.js -/** - * 目录大纲支持插件 - * @file - * @since 1.3.0 - */ -UE.plugin.register('section', function (){ - /* 目录节点对象 */ - function Section(option){ - this.tag = ''; - this.level = -1, - this.dom = null; - this.nextSection = null; - this.previousSection = null; - this.parentSection = null; - this.startAddress = []; - this.endAddress = []; - this.children = []; - } - function getSection(option) { - var section = new Section(); - return utils.extend(section, option); - } - function getNodeFromAddress(startAddress, root) { - var current = root; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var me = this; - - return { - bindMultiEvents:{ - type: 'aftersetcontent afterscencerestore', - handler: function(){ - me.fireEvent('updateSections'); - } - }, - bindEvents:{ - /* 初始化、拖拽、粘贴、执行setcontent之后 */ - 'ready': function (){ - me.fireEvent('updateSections'); - domUtils.on(me.body, 'drop paste', function(){ - me.fireEvent('updateSections'); - }); - }, - /* 执行paragraph命令之后 */ - 'afterexeccommand': function (type, cmd) { - if(cmd == 'paragraph') { - me.fireEvent('updateSections'); - } - }, - /* 部分键盘操作,触发updateSections事件 */ - 'keyup': function (type, e) { - var me = this, - range = me.selection.getRange(); - if(range.collapsed != true) { - me.fireEvent('updateSections'); - } else { - var keyCode = e.keyCode || e.which; - if(keyCode == 13 || keyCode == 8 || keyCode == 46) { - me.fireEvent('updateSections'); - } - } - } - }, - commands:{ - 'getsections': { - execCommand: function (cmd, levels) { - var levelFn = levels || ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']; - - for (var i = 0; i < levelFn.length; i++) { - if (typeof levelFn[i] == 'string') { - levelFn[i] = function(fn){ - return function(node){ - return node.tagName == fn.toUpperCase() - }; - }(levelFn[i]); - } else if (typeof levelFn[i] != 'function') { - levelFn[i] = function (node) { - return null; - } - } - } - function getSectionLevel(node) { - for (var i = 0; i < levelFn.length; i++) { - if (levelFn[i](node)) return i; - } - return -1; - } - - var me = this, - Directory = getSection({'level':-1, 'title':'root'}), - previous = Directory; - - function traversal(node, Directory) { - var level, - tmpSection = null, - parent, - child, - children = node.childNodes; - for (var i = 0, len = children.length; i < len; i++) { - child = children[i]; - level = getSectionLevel(child); - if (level >= 0) { - var address = me.selection.getRange().selectNode(child).createAddress(true).startAddress, - current = getSection({ - 'tag': child.tagName, - 'title': child.innerText || child.textContent || '', - 'level': level, - 'dom': child, - 'startAddress': utils.clone(address, []), - 'endAddress': utils.clone(address, []), - 'children': [] - }); - previous.nextSection = current; - current.previousSection = previous; - parent = previous; - while(level <= parent.level){ - parent = parent.parentSection; - } - current.parentSection = parent; - parent.children.push(current); - tmpSection = previous = current; - } else { - child.nodeType === 1 && traversal(child, Directory); - tmpSection && tmpSection.endAddress[tmpSection.endAddress.length - 1] ++; - } - } - } - traversal(me.body, Directory); - return Directory; - }, - notNeedUndo: true - }, - 'movesection': { - execCommand: function (cmd, sourceSection, targetSection, isAfter) { - - var me = this, - targetAddress, - target; - - if(!sourceSection || !targetSection || targetSection.level == -1) return; - - targetAddress = isAfter ? targetSection.endAddress:targetSection.startAddress; - target = getNodeFromAddress(targetAddress, me.body); - - /* 判断目标地址是否被源章节包含 */ - if(!targetAddress || !target || isContainsAddress(sourceSection.startAddress, sourceSection.endAddress, targetAddress)) return; - - var startNode = getNodeFromAddress(sourceSection.startAddress, me.body), - endNode = getNodeFromAddress(sourceSection.endAddress, me.body), - current, - nextNode; - - if(isAfter) { - current = endNode; - while ( current && !(domUtils.getPosition( startNode, current ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.previousSibling; - domUtils.insertAfter(target, current); - if(current == startNode) break; - current = nextNode; - } - } else { - current = startNode; - while ( current && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - target.parentNode.insertBefore(current, target); - if(current == endNode) break; - current = nextNode; - } - } - - me.fireEvent('updateSections'); - - /* 获取地址的包含关系 */ - function isContainsAddress(startAddress, endAddress, addressTarget){ - var isAfterStartAddress = false, - isBeforeEndAddress = false; - for(var i = 0; i< startAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] > startAddress[i]) { - isAfterStartAddress = true; - break; - } else if(addressTarget[i] < startAddress[i]) { - break; - } - } - for(var i = 0; i< endAddress.length; i++){ - if(i >= addressTarget.length) break; - if(addressTarget[i] < startAddress[i]) { - isBeforeEndAddress = true; - break; - } else if(addressTarget[i] > startAddress[i]) { - break; - } - } - return isAfterStartAddress && isBeforeEndAddress; - } - } - }, - 'deletesection': { - execCommand: function (cmd, section, keepChildren) { - var me = this; - - if(!section) return; - - function getNodeFromAddress(startAddress) { - var current = me.body; - for(var i = 0;i < startAddress.length; i++) { - if(!current.childNodes) return null; - current = current.childNodes[startAddress[i]]; - } - return current; - } - - var startNode = getNodeFromAddress(section.startAddress), - endNode = getNodeFromAddress(section.endAddress), - current = startNode, - nextNode; - - if(!keepChildren) { - while ( current && domUtils.inDoc(endNode, me.document) && !(domUtils.getPosition( current, endNode ) & domUtils.POSITION_FOLLOWING) ) { - nextNode = current.nextSibling; - domUtils.remove(current); - current = nextNode; - } - } else { - domUtils.remove(current); - } - - me.fireEvent('updateSections'); - } - }, - 'selectsection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':utils.clone(section.startAddress, []), - 'endAddress':utils.clone(section.endAddress, []) - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).select().scrollToView(); - return true; - }, - notNeedUndo: true - }, - 'scrolltosection': { - execCommand: function (cmd, section) { - if(!section && !section.dom) return false; - var me = this, - range = me.selection.getRange(), - address = { - 'startAddress':section.startAddress, - 'endAddress':section.endAddress - }; - address.endAddress[address.endAddress.length - 1]++; - range.moveToAddress(address).scrollToView(); - return true; - }, - notNeedUndo: true - } - } - } -}); - -// plugins/simpleupload.js -/** - * @description - * 简单上传:点击按钮,直接选择文件上传。 - * 原 UEditor 作者使用了 form 表单 + iframe 的方式上传 - * 但由于同源策略的限制,父页面无法访问跨域的 iframe 内容 - * 导致无法获取接口返回的数据,使得单图上传无法在跨域的情况下使用 - * 这里改为普通的XHR上传,兼容到IE10+ - * @author HaoChuan9421 - * @date 2018-12-20 - */ -UE.plugin.register('simpleupload', function() { - var me = this, - containerBtn, - timestrap = (+new Date()).toString(36); - - function initUploadBtn() { - var w = containerBtn.offsetWidth || 20, - h = containerBtn.offsetHeight || 20, - btnStyle = 'display:block;width:' + w + 'px;height:' + h + 'px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;'; - - var form = document.createElement('form'); - var input = document.createElement('input'); - form.id = 'edui_form_' + timestrap; - form.enctype = 'multipart/form-data'; - form.style = btnStyle; - input.id = 'edui_input_' + timestrap; - input.type = 'file' - input.accept = 'image/*'; - input.name = me.options.imageFieldName; - input.style = btnStyle; - form.appendChild(input); - containerBtn.appendChild(form); - - input.addEventListener('change', function(event) { - if (!input.value) return; - var loadingId = 'loading_' + (+new Date()).toString(36); - var imageActionUrl = me.getActionUrl(me.getOpt('imageActionName')); - var params = utils.serializeParam(me.queryCommandValue('serverparam')) || ''; - var action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params); - var allowFiles = me.getOpt('imageAllowFiles'); - me.focus(); - me.execCommand('inserthtml', ''); - - function showErrorLoader(title) { - if (loadingId) { - var loader = me.document.getElementById(loadingId); - loader && domUtils.remove(loader); - me.fireEvent('showmessage', { - 'id': loadingId, - 'content': title, - 'type': 'error', - 'timeout': 4000 - }); - } - } - /* 判断后端配置是否没有加载成功 */ - if (!me.getOpt('imageActionName')) { - showErrorLoader(me.getLang('autoupload.errorLoadConfig')); - return; - } - // 判断文件格式是否错误 - var filename = input.value, - fileext = filename ? filename.substr(filename.lastIndexOf('.')) : ''; - if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) { - showErrorLoader(me.getLang('simpleupload.exceedTypeError')); - return; - } - - var xhr = new XMLHttpRequest() - xhr.open('post', action, true) - if (me.options.headers && Object.prototype.toString.apply(me.options.headers) === "[object Object]") { - for (var key in me.options.headers) { - xhr.setRequestHeader(key, me.options.headers[key]) - } - } - xhr.onload = function() { - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { - var res = JSON.parse(xhr.responseText) - var link = me.options.imageUrlPrefix + res.url; - - if (res.state == 'SUCCESS' && res.url) { - loader = me.document.getElementById(loadingId); - loader.setAttribute('src', link); - loader.setAttribute('_src', link); - loader.setAttribute('title', res.title || ''); - loader.setAttribute('alt', res.original || ''); - loader.removeAttribute('id'); - domUtils.removeClasses(loader, 'loadingclass'); - me.fireEvent("contentchange"); - } else { - showErrorLoader(res.state); - } - } else { - showErrorLoader(me.getLang('simpleupload.loadError')); - } - }; - xhr.onerror = function() { - showErrorLoader(me.getLang('simpleupload.loadError')); - }; - xhr.send(new FormData(form)); - form.reset(); - }) - } - - return { - bindEvents: { - 'ready': function() { - //设置loading的样式 - utils.cssRule('loading', - '.loadingclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n' + - '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' + - this.options.themePath + - this.options.theme + '/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' + - '}', - this.document); - }, - /* 初始化简单上传按钮 */ - 'simpleuploadbtnready': function(type, container) { - containerBtn = container; - me.afterConfigReady(initUploadBtn); - } - }, - outputRule: function(root) { - utils.each(root.getNodesByTagName('img'), function(n) { - if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) { - n.parentNode.removeChild(n); - } - }); - } - } -}); - -// plugins/serverparam.js -/** - * 服务器提交的额外参数列表设置插件 - * @file - * @since 1.2.6.1 - */ -UE.plugin.register('serverparam', function (){ - - var me = this, - serverParam = {}; - - return { - commands:{ - /** - * 修改服务器提交的额外参数列表,清除所有项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.execCommand('serverparam'); - * editor.queryCommandValue('serverparam'); //返回空 - * ``` - */ - /** - * 修改服务器提交的额外参数列表,删除指定项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要清除的属性 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name'); //删除属性name - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用键值添加项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { String } key 要添加的属性 - * @param { String } value 要添加属性的值 - * @example - * ```javascript - * editor.execCommand('serverparam', 'name', 'hello'); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,传入键值对对象添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Object } key 传入的键值对对象 - * @example - * ```javascript - * editor.execCommand('serverparam', {'name': 'hello'}); - * editor.queryCommandValue('serverparam'); //返回对象 {'name': 'hello'} - * ``` - */ - /** - * 修改服务器提交的额外参数列表,使用自定义函数添加多项 - * @command serverparam - * @method execCommand - * @param { String } cmd 命令字符串 - * @param { Function } key 自定义获取参数的函数 - * @example - * ```javascript - * editor.execCommand('serverparam', function(editor){ - * return {'key': 'value'}; - * }); - * editor.queryCommandValue('serverparam'); //返回对象 {'key': 'value'} - * ``` - */ - - /** - * 获取服务器提交的额外参数列表 - * @command serverparam - * @method queryCommandValue - * @param { String } cmd 命令字符串 - * @example - * ```javascript - * editor.queryCommandValue( 'serverparam' ); //返回对象 {'key': 'value'} - * ``` - */ - 'serverparam':{ - execCommand:function (cmd, key, value) { - if (key === undefined || key === null) { //不传参数,清空列表 - serverParam = {}; - } else if (utils.isString(key)) { //传入键值 - if(value === undefined || value === null) { - delete serverParam[key]; - } else { - serverParam[key] = value; - } - } else if (utils.isObject(key)) { //传入对象,覆盖列表项 - utils.extend(serverParam, key, true); - } else if (utils.isFunction(key)){ //传入函数,添加列表项 - utils.extend(serverParam, key(), true); - } - }, - queryCommandValue: function(){ - return serverParam || {}; - } - } - } - } -}); - - -// plugins/insertfile.js -/** - * 插入附件 - */ -UE.plugin.register('insertfile', function (){ - - var me = this; - - function getFileIcon(url){ - var ext = url.substr(url.lastIndexOf('.') + 1).toLowerCase(), - maps = { - "rar":"icon_rar.gif", - "zip":"icon_rar.gif", - "tar":"icon_rar.gif", - "gz":"icon_rar.gif", - "bz2":"icon_rar.gif", - "doc":"icon_doc.gif", - "docx":"icon_doc.gif", - "pdf":"icon_pdf.gif", - "mp3":"icon_mp3.gif", - "xls":"icon_xls.gif", - "chm":"icon_chm.gif", - "ppt":"icon_ppt.gif", - "pptx":"icon_ppt.gif", - "avi":"icon_mv.gif", - "rmvb":"icon_mv.gif", - "wmv":"icon_mv.gif", - "flv":"icon_mv.gif", - "swf":"icon_mv.gif", - "rm":"icon_mv.gif", - "exe":"icon_exe.gif", - "psd":"icon_psd.gif", - "txt":"icon_txt.gif", - "jpg":"icon_jpg.gif", - "png":"icon_jpg.gif", - "jpeg":"icon_jpg.gif", - "gif":"icon_jpg.gif", - "ico":"icon_jpg.gif", - "bmp":"icon_jpg.gif" - }; - return maps[ext] ? maps[ext]:maps['txt']; - } - - return { - commands:{ - 'insertfile': { - execCommand: function (command, filelist){ - filelist = utils.isArray(filelist) ? filelist : [filelist]; - - var i, item, icon, title, - html = '', - URL = me.getOpt('UEDITOR_HOME_URL'), - iconDir = URL + (URL.substr(URL.length - 1) == '/' ? '':'/') + 'dialogs/attachment/fileTypeImages/'; - for (i = 0; i < filelist.length; i++) { - item = filelist[i]; - icon = iconDir + getFileIcon(item.url); - title = item.title || item.url.substr(item.url.lastIndexOf('/') + 1); - html += '

    ' + - '' + - '' + title + '' + - '

    '; - } - me.execCommand('insertHtml', html); - } - } - } - } -}); - - - - -// plugins/xssFilter.js -/** - * @file xssFilter.js - * @desc xss过滤器 - * @author robbenmu - */ - -UE.plugins.xssFilter = function() { - - var config = UEDITOR_CONFIG; - var whitList = config.whitList; - - function filter(node) { - - var tagName = node.tagName; - var attrs = node.attrs; - - if (!whitList.hasOwnProperty(tagName)) { - node.parentNode.removeChild(node); - return false; - } - - UE.utils.each(attrs, function (val, key) { - - if (whitList[tagName].indexOf(key) === -1) { - node.setAttr(key); - } - }); - } - - // 添加inserthtml\paste等操作用的过滤规则 - if (whitList && config.xssFilterRules) { - this.options.filterRules = function () { - - var result = {}; - - UE.utils.each(whitList, function(val, key) { - result[key] = function (node) { - return filter(node); - }; - }); - - return result; - }(); - } - - var tagList = []; - - UE.utils.each(whitList, function (val, key) { - tagList.push(key); - }); - - // 添加input过滤规则 - // - if (whitList && config.inputXssFilter) { - this.addInputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - // 添加output过滤规则 - // - if (whitList && config.outputXssFilter) { - this.addOutputRule(function (root) { - - root.traversal(function(node) { - if (node.type !== 'element') { - return false; - } - filter(node); - }); - }); - } - -}; - - -// ui/ui.js -var baidu = baidu || {}; -baidu.editor = baidu.editor || {}; -UE.ui = baidu.editor.ui = {}; - -// ui/uiutils.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils; - - var magic = '$EDITORUI'; - var root = window[magic] = {}; - var uidMagic = 'ID' + magic; - var uidCount = 0; - - var uiUtils = baidu.editor.ui.uiUtils = { - uid: function (obj){ - return (obj ? obj[uidMagic] || (obj[uidMagic] = ++ uidCount) : ++ uidCount); - }, - hook: function ( fn, callback ) { - var dg; - if (fn && fn._callbacks) { - dg = fn; - } else { - dg = function (){ - var q; - if (fn) { - q = fn.apply(this, arguments); - } - var callbacks = dg._callbacks; - var k = callbacks.length; - while (k --) { - var r = callbacks[k].apply(this, arguments); - if (q === undefined) { - q = r; - } - } - return q; - }; - dg._callbacks = []; - } - dg._callbacks.push(callback); - return dg; - }, - createElementByHtml: function (html){ - var el = document.createElement('div'); - el.innerHTML = html; - el = el.firstChild; - el.parentNode.removeChild(el); - return el; - }, - getViewportElement: function (){ - return (browser.ie && browser.quirks) ? - document.body : document.documentElement; - }, - getClientRect: function (element){ - var bcr; - //trace IE6下在控制编辑器显隐时可能会报错,catch一下 - try{ - bcr = element.getBoundingClientRect(); - }catch(e){ - bcr={left:0,top:0,height:0,width:0} - } - var rect = { - left: Math.round(bcr.left), - top: Math.round(bcr.top), - height: Math.round(bcr.bottom - bcr.top), - width: Math.round(bcr.right - bcr.left) - }; - var doc; - while ((doc = element.ownerDocument) !== document && - (element = domUtils.getWindow(doc).frameElement)) { - bcr = element.getBoundingClientRect(); - rect.left += bcr.left; - rect.top += bcr.top; - } - rect.bottom = rect.top + rect.height; - rect.right = rect.left + rect.width; - return rect; - }, - getViewportRect: function (){ - var viewportEl = uiUtils.getViewportElement(); - var width = (window.innerWidth || viewportEl.clientWidth) | 0; - var height = (window.innerHeight ||viewportEl.clientHeight) | 0; - return { - left: 0, - top: 0, - height: height, - width: width, - bottom: height, - right: width - }; - }, - setViewportOffset: function (element, offset){ - var rect; - var fixedLayer = uiUtils.getFixedLayer(); - if (element.parentNode === fixedLayer) { - element.style.left = offset.left + 'px'; - element.style.top = offset.top + 'px'; - } else { - domUtils.setViewportOffset(element, offset); - } - }, - getEventOffset: function (evt){ - var el = evt.target || evt.srcElement; - var rect = uiUtils.getClientRect(el); - var offset = uiUtils.getViewportOffsetByEvent(evt); - return { - left: offset.left - rect.left, - top: offset.top - rect.top - }; - }, - getViewportOffsetByEvent: function (evt){ - var el = evt.target || evt.srcElement; - var frameEl = domUtils.getWindow(el).frameElement; - var offset = { - left: evt.clientX, - top: evt.clientY - }; - if (frameEl && el.ownerDocument !== document) { - var rect = uiUtils.getClientRect(frameEl); - offset.left += rect.left; - offset.top += rect.top; - } - return offset; - }, - setGlobal: function (id, obj){ - root[id] = obj; - return magic + '["' + id + '"]'; - }, - unsetGlobal: function (id){ - delete root[id]; - }, - copyAttributes: function (tgt, src){ - var attributes = src.attributes; - var k = attributes.length; - while (k --) { - var attrNode = attributes[k]; - if ( attrNode.nodeName != 'style' && attrNode.nodeName != 'class' && (!browser.ie || attrNode.specified) ) { - tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue); - } - } - if (src.className) { - domUtils.addClass(tgt,src.className); - } - if (src.style.cssText) { - tgt.style.cssText += ';' + src.style.cssText; - } - }, - removeStyle: function (el, styleName){ - if (el.style.removeProperty) { - el.style.removeProperty(styleName); - } else if (el.style.removeAttribute) { - el.style.removeAttribute(styleName); - } else throw ''; - }, - contains: function (elA, elB){ - return elA && elB && (elA === elB ? false : ( - elA.contains ? elA.contains(elB) : - elA.compareDocumentPosition(elB) & 16 - )); - }, - startDrag: function (evt, callbacks,doc){ - var doc = doc || document; - var startX = evt.clientX; - var startY = evt.clientY; - function handleMouseMove(evt){ - var x = evt.clientX - startX; - var y = evt.clientY - startY; - callbacks.ondragmove(x, y,evt); - if (evt.stopPropagation) { - evt.stopPropagation(); - } else { - evt.cancelBubble = true; - } - } - if (doc.addEventListener) { - function handleMouseUp(evt){ - doc.removeEventListener('mousemove', handleMouseMove, true); - doc.removeEventListener('mouseup', handleMouseUp, true); - window.removeEventListener('mouseup', handleMouseUp, true); - callbacks.ondragstop(); - } - doc.addEventListener('mousemove', handleMouseMove, true); - doc.addEventListener('mouseup', handleMouseUp, true); - window.addEventListener('mouseup', handleMouseUp, true); - - evt.preventDefault(); - } else { - var elm = evt.srcElement; - elm.setCapture(); - function releaseCaptrue(){ - elm.releaseCapture(); - elm.detachEvent('onmousemove', handleMouseMove); - elm.detachEvent('onmouseup', releaseCaptrue); - elm.detachEvent('onlosecaptrue', releaseCaptrue); - callbacks.ondragstop(); - } - elm.attachEvent('onmousemove', handleMouseMove); - elm.attachEvent('onmouseup', releaseCaptrue); - elm.attachEvent('onlosecaptrue', releaseCaptrue); - evt.returnValue = false; - } - callbacks.ondragstart(); - }, - getFixedLayer: function (){ - var layer = document.getElementById('edui_fixedlayer'); - if (layer == null) { - layer = document.createElement('div'); - layer.id = 'edui_fixedlayer'; - document.body.appendChild(layer); - if (browser.ie && browser.version <= 8) { - layer.style.position = 'absolute'; - bindFixedLayer(); - setTimeout(updateFixedOffset); - } else { - layer.style.position = 'fixed'; - } - layer.style.left = '0'; - layer.style.top = '0'; - layer.style.width = '0'; - layer.style.height = '0'; - } - return layer; - }, - makeUnselectable: function (element){ - if (browser.opera || (browser.ie && browser.version < 9)) { - element.unselectable = 'on'; - if (element.hasChildNodes()) { - for (var i=0; i
    '; - } - }; - utils.inherits(Separator, UIBase); - -})(); - - -// ui/mask.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - uiUtils = baidu.editor.ui.uiUtils; - - var Mask = baidu.editor.ui.Mask = function (options){ - this.initOptions(options); - this.initUIBase(); - }; - Mask.prototype = { - getHtmlTpl: function (){ - return '
    '; - }, - postRender: function (){ - var me = this; - domUtils.on(window, 'resize', function (){ - setTimeout(function (){ - if (!me.isHidden()) { - me._fill(); - } - }); - }); - }, - show: function (zIndex){ - this._fill(); - this.getDom().style.display = ''; - this.getDom().style.zIndex = zIndex; - }, - hide: function (){ - this.getDom().style.display = 'none'; - this.getDom().style.zIndex = ''; - }, - isHidden: function (){ - return this.getDom().style.display == 'none'; - }, - _onMouseDown: function (){ - return false; - }, - _onClick: function (e, target){ - this.fireEvent('click', e, target); - }, - _fill: function (){ - var el = this.getDom(); - var vpRect = uiUtils.getViewportRect(); - el.style.width = vpRect.width + 'px'; - el.style.height = vpRect.height + 'px'; - } - }; - utils.inherits(Mask, UIBase); -})(); - - -// ui/popup.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Popup = baidu.editor.ui.Popup = function (options){ - this.initOptions(options); - this.initPopup(); - }; - - var allPopups = []; - function closeAllPopup( evt,el ){ - for ( var i = 0; i < allPopups.length; i++ ) { - var pop = allPopups[i]; - if (!pop.isHidden()) { - if (pop.queryAutoHide(el) !== false) { - if(evt&&/scroll/ig.test(evt.type)&&pop.className=="edui-wordpastepop") return; - pop.hide(); - } - } - } - - if(allPopups.length) - pop.editor.fireEvent("afterhidepop"); - } - - Popup.postHide = closeAllPopup; - - var ANCHOR_CLASSES = ['edui-anchor-topleft','edui-anchor-topright', - 'edui-anchor-bottomleft','edui-anchor-bottomright']; - Popup.prototype = { - SHADOW_RADIUS: 5, - content: null, - _hidden: false, - autoRender: true, - canSideLeft: true, - canSideUp: true, - initPopup: function (){ - this.initUIBase(); - allPopups.push( this ); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - this.getContentHtmlTpl() + - '
    ' + - '
    ' + - '
    '; - }, - getContentHtmlTpl: function (){ - if(this.content){ - if (typeof this.content == 'string') { - return this.content; - } - return this.content.renderHtml(); - }else{ - return '' - } - - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - - - if (this.content instanceof UIBase) { - this.content.postRender(); - } - - //捕获鼠标滚轮 - if( this.captureWheel && !this.captured ) { - - this.captured = true; - - var winHeight = ( document.documentElement.clientHeight || document.body.clientHeight ) - 80, - _height = this.getDom().offsetHeight, - _top = uiUtils.getClientRect( this.combox.getDom() ).top, - content = this.getDom('content'), - ifr = this.getDom('body').getElementsByTagName('iframe'), - me = this; - - ifr.length && ( ifr = ifr[0] ); - - while( _top + _height > winHeight ) { - _height -= 30; - } - content.style.height = _height + 'px'; - //同步更改iframe高度 - ifr && ( ifr.style.height = _height + 'px' ); - - //阻止在combox上的鼠标滚轮事件, 防止用户的正常操作被误解 - if( window.XMLHttpRequest ) { - - domUtils.on( content, ( 'onmousewheel' in document.body ) ? 'mousewheel' :'DOMMouseScroll' , function(e){ - - if(e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - - if( e.wheelDelta ) { - - content.scrollTop -= ( e.wheelDelta / 120 )*60; - - } else { - - content.scrollTop -= ( e.detail / -3 )*60; - - } - - }); - - } else { - - //ie6 - domUtils.on( this.getDom(), 'mousewheel' , function(e){ - - e.returnValue = false; - - me.getDom('content').scrollTop -= ( e.wheelDelta / 120 )*60; - - }); - - } - - } - this.fireEvent('postRenderAfter'); - this.hide(true); - this._UIBase_postRender(); - }, - _doAutoRender: function (){ - if (!this.getDom() && this.autoRender) { - this.render(); - } - }, - mesureSize: function (){ - var box = this.getDom('content'); - return uiUtils.getClientRect(box); - }, - fitSize: function (){ - if( this.captureWheel && this.sized ) { - return this.__size; - } - this.sized = true; - var popBodyEl = this.getDom('body'); - popBodyEl.style.width = ''; - popBodyEl.style.height = ''; - var size = this.mesureSize(); - if( this.captureWheel ) { - popBodyEl.style.width = -(-20 -size.width) + 'px'; - var height = parseInt( this.getDom('content').style.height, 10 ); - !window.isNaN( height ) && ( size.height = height ); - } else { - popBodyEl.style.width = size.width + 'px'; - } - popBodyEl.style.height = size.height + 'px'; - this.__size = size; - this.captureWheel && (this.getDom('content').style.overflow = 'auto'); - return size; - }, - showAnchor: function ( element, hoz ){ - this.showAnchorRect( uiUtils.getClientRect( element ), hoz ); - }, - showAnchorRect: function ( rect, hoz, adj ){ - this._doAutoRender(); - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.visibility = 'hidden'; - this._show(); - var popSize = this.fitSize(); - - var sideLeft, sideUp, left, top; - if (hoz) { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.left - popSize.width : rect.right); - top = (sideUp ? rect.bottom - popSize.height : rect.top); - } else { - sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width); - sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height); - left = (sideLeft ? rect.right - popSize.width : rect.left); - top = (sideUp ? rect.top - popSize.height : rect.bottom); - } - - var popEl = this.getDom(); - uiUtils.setViewportOffset(popEl, { - left: left, - top: top - }); - domUtils.removeClasses(popEl, ANCHOR_CLASSES); - popEl.className += ' ' + ANCHOR_CLASSES[(sideUp ? 1 : 0) * 2 + (sideLeft ? 1 : 0)]; - if(this.editor){ - popEl.style.zIndex = this.editor.container.style.zIndex * 1 + 10; - baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = popEl.style.zIndex - 1; - } - this.getDom().style.visibility = 'visible'; - - }, - showAt: function (offset) { - var left = offset.left; - var top = offset.top; - var rect = { - left: left, - top: top, - right: left, - bottom: top, - height: 0, - width: 0 - }; - this.showAnchorRect(rect, false, true); - }, - _show: function (){ - if (this._hidden) { - var box = this.getDom(); - box.style.display = ''; - this._hidden = false; -// if (box.setActive) { -// box.setActive(); -// } - this.fireEvent('show'); - } - }, - isHidden: function (){ - return this._hidden; - }, - show: function (){ - this._doAutoRender(); - this._show(); - }, - hide: function (notNofity){ - if (!this._hidden && this.getDom()) { - this.getDom().style.display = 'none'; - this._hidden = true; - if (!notNofity) { - this.fireEvent('hide'); - } - } - }, - queryAutoHide: function (el){ - return !el || !uiUtils.contains(this.getDom(), el); - } - }; - utils.inherits(Popup, UIBase); - - domUtils.on( document, 'mousedown', function ( evt ) { - var el = evt.target || evt.srcElement; - closeAllPopup( evt,el ); - } ); - domUtils.on( window, 'scroll', function (evt,el) { - closeAllPopup( evt,el ); - } ); - -})(); - - -// ui/colorpicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - ColorPicker = baidu.editor.ui.ColorPicker = function (options){ - this.initOptions(options); - this.noColorText = this.noColorText || this.editor.getLang("clearColor"); - this.initUIBase(); - }; - - ColorPicker.prototype = { - getHtmlTpl: function (){ - return genColorPicker(this.noColorText,this.editor); - }, - _onTableClick: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.fireEvent('pickcolor', color); - } - }, - _onTableOver: function (evt){ - var tgt = evt.target || evt.srcElement; - var color = tgt.getAttribute('data-color'); - if (color) { - this.getDom('preview').style.backgroundColor = color; - } - }, - _onTableOut: function (){ - this.getDom('preview').style.backgroundColor = ''; - }, - _onPickNoColor: function (){ - this.fireEvent('picknocolor'); - } - }; - utils.inherits(ColorPicker, UIBase); - - var COLORS = ( - 'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' + - 'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' + - 'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' + - 'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' + - 'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' + - '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' + - 'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(','); - - function genColorPicker(noColorText,editor){ - var html = '
    ' + - '
    ' + - '
    ' + - '
    '+ noColorText +'
    ' + - '
    ' + - '' + - ''+ - ''; - for (var i=0; i':'')+''; - } - html += i<70 ? '':''; - } - html += '
    '+editor.getLang("themeColor")+'
    '+editor.getLang("standardColor")+'
    '; - return html; - } -})(); - - -// ui/tablepicker.js -///import core -///import uicore -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var TablePicker = baidu.editor.ui.TablePicker = function (options){ - this.initOptions(options); - this.initTablePicker(); - }; - TablePicker.prototype = { - defaultNumRows: 10, - defaultNumCols: 10, - maxNumRows: 20, - maxNumCols: 20, - numRows: 10, - numCols: 10, - lengthOfCellSide: 22, - initTablePicker: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - var me = this; - return '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - _UIBase_render: UIBase.prototype.render, - render: function (holder){ - this._UIBase_render(holder); - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_row")+' x 0'+this.editor.getLang("t_col"); - }, - _track: function (numCols, numRows){ - var style = this.getDom('overlay').style; - var sideLen = this.lengthOfCellSide; - style.width = numCols * sideLen + 'px'; - style.height = numRows * sideLen + 'px'; - var label = this.getDom('label'); - label.innerHTML = numCols +this.editor.getLang("t_col")+' x ' + numRows + this.editor.getLang("t_row"); - this.numCols = numCols; - this.numRows = numRows; - }, - _onMouseOver: function (evt, el){ - var rel = evt.relatedTarget || evt.fromElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = ''; - } - }, - _onMouseOut: function (evt, el){ - var rel = evt.relatedTarget || evt.toElement; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.getDom('label').innerHTML = '0'+this.editor.getLang("t_col")+' x 0'+this.editor.getLang("t_row"); - this.getDom('overlay').style.visibility = 'hidden'; - } - }, - _onMouseMove: function (evt, el){ - var style = this.getDom('overlay').style; - var offset = uiUtils.getEventOffset(evt); - var sideLen = this.lengthOfCellSide; - var numCols = Math.ceil(offset.left / sideLen); - var numRows = Math.ceil(offset.top / sideLen); - this._track(numCols, numRows); - }, - _onClick: function (){ - this.fireEvent('picktable', this.numCols, this.numRows); - } - }; - utils.inherits(TablePicker, UIBase); -})(); - - -// ui/stateful.js -(function (){ - var browser = baidu.editor.browser, - domUtils = baidu.editor.dom.domUtils, - uiUtils = baidu.editor.ui.uiUtils; - - var TPL_STATEFUL = 'onmousedown="$$.Stateful_onMouseDown(event, this);"' + - ' onmouseup="$$.Stateful_onMouseUp(event, this);"' + - ( browser.ie ? ( - ' onmouseenter="$$.Stateful_onMouseEnter(event, this);"' + - ' onmouseleave="$$.Stateful_onMouseLeave(event, this);"' ) - : ( - ' onmouseover="$$.Stateful_onMouseOver(event, this);"' + - ' onmouseout="$$.Stateful_onMouseOut(event, this);"' )); - - baidu.editor.ui.Stateful = { - alwalysHoverable: false, - target:null,//目标元素和this指向dom不一样 - Stateful_init: function (){ - this._Stateful_dGetHtmlTpl = this.getHtmlTpl; - this.getHtmlTpl = this.Stateful_getHtmlTpl; - }, - Stateful_getHtmlTpl: function (){ - var tpl = this._Stateful_dGetHtmlTpl(); - // 使用function避免$转义 - return tpl.replace(/stateful/g, function (){ return TPL_STATEFUL; }); - }, - Stateful_onMouseEnter: function (evt, el){ - this.target=el; - if (!this.isDisabled() || this.alwalysHoverable) { - this.addState('hover'); - this.fireEvent('over'); - } - }, - Stateful_onMouseLeave: function (evt, el){ - if (!this.isDisabled() || this.alwalysHoverable) { - this.removeState('hover'); - this.removeState('active'); - this.fireEvent('out'); - } - }, - Stateful_onMouseOver: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseEnter(evt, el); - } - }, - Stateful_onMouseOut: function (evt, el){ - var rel = evt.relatedTarget; - if (!uiUtils.contains(el, rel) && el !== rel) { - this.Stateful_onMouseLeave(evt, el); - } - }, - Stateful_onMouseDown: function (evt, el){ - if (!this.isDisabled()) { - this.addState('active'); - } - }, - Stateful_onMouseUp: function (evt, el){ - if (!this.isDisabled()) { - this.removeState('active'); - } - }, - Stateful_postRender: function (){ - if (this.disabled && !this.hasState('disabled')) { - this.addState('disabled'); - } - }, - hasState: function (state){ - return domUtils.hasClass(this.getStateDom(), 'edui-state-' + state); - }, - addState: function (state){ - if (!this.hasState(state)) { - this.getStateDom().className += ' edui-state-' + state; - } - }, - removeState: function (state){ - if (this.hasState(state)) { - domUtils.removeClasses(this.getStateDom(), ['edui-state-' + state]); - } - }, - getStateDom: function (){ - return this.getDom('state'); - }, - isChecked: function (){ - return this.hasState('checked'); - }, - setChecked: function (checked){ - if (!this.isDisabled() && checked) { - this.addState('checked'); - } else { - this.removeState('checked'); - } - }, - isDisabled: function (){ - return this.hasState('disabled'); - }, - setDisabled: function (disabled){ - if (disabled) { - this.removeState('hover'); - this.removeState('checked'); - this.removeState('active'); - this.addState('disabled'); - } else { - this.removeState('disabled'); - } - } - }; -})(); - - -// ui/button.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - Button = baidu.editor.ui.Button = function (options){ - if(options.name){ - var btnName = options.name; - var cssRules = options.cssRules; - if(!options.className){ - options.className = 'edui-for-' + btnName; - } - options.cssRules = '.edui-default .edui-for-'+ btnName +' .edui-icon {'+ cssRules +'}' - } - this.initOptions(options); - this.initButton(); - }; - Button.prototype = { - uiName: 'button', - label: '', - title: '', - showIcon: true, - showText: true, - cssRules:'', - initButton: function (){ - this.initUIBase(); - this.Stateful_init(); - if(this.cssRules){ - utils.cssRule('edui-customize-'+this.name+'-style',this.cssRules); - } - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - (this.showIcon ? '
    ' : '') + - (this.showText ? '
    ' + this.label + '
    ' : '') + - '
    ' + - '
    ' + - '
    '; - }, - postRender: function (){ - this.Stateful_postRender(); - this.setDisabled(this.disabled) - }, - _onMouseDown: function (e){ - var target = e.target || e.srcElement, - tagName = target && target.tagName && target.tagName.toLowerCase(); - if (tagName == 'input' || tagName == 'object' || tagName == 'object') { - return false; - } - }, - _onClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('click'); - } - }, - setTitle: function(text){ - var label = this.getDom('label'); - label.innerHTML = text; - } - }; - utils.inherits(Button, UIBase); - utils.extend(Button.prototype, Stateful); - -})(); - - -// ui/splitbutton.js -///import core -///import uicore -///import ui/stateful.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Stateful = baidu.editor.ui.Stateful, - SplitButton = baidu.editor.ui.SplitButton = function (options){ - this.initOptions(options); - this.initSplitButton(); - }; - SplitButton.prototype = { - popup: null, - uiName: 'splitbutton', - title: '', - initSplitButton: function (){ - this.initUIBase(); - this.Stateful_init(); - var me = this; - if (this.popup != null) { - var popup = this.popup; - this.popup = null; - this.setPopup(popup); - } - }, - _UIBase_postRender: UIBase.prototype.postRender, - postRender: function (){ - this.Stateful_postRender(); - this._UIBase_postRender(); - }, - setPopup: function (popup){ - if (this.popup === popup) return; - if (this.popup != null) { - this.popup.dispose(); - } - popup.addListener('show', utils.bind(this._onPopupShow, this)); - popup.addListener('hide', utils.bind(this._onPopupHide, this)); - popup.addListener('postrender', utils.bind(function (){ - popup.getDom('body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - popup.getDom().className += ' ' + this.className; - }, this)); - this.popup = popup; - }, - _onPopupShow: function (){ - this.addState('opened'); - }, - _onPopupHide: function (){ - this.removeState('opened'); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - showPopup: function (){ - // 当popup往上弹出的时候,做特殊处理 - var rect = uiUtils.getClientRect(this.getDom()); - rect.top -= this.popup.SHADOW_RADIUS; - rect.height += this.popup.SHADOW_RADIUS; - this.popup.showAnchorRect(rect); - }, - _onArrowClick: function (event, el){ - if (!this.isDisabled()) { - this.showPopup(); - } - }, - _onButtonClick: function (){ - if (!this.isDisabled()) { - this.fireEvent('buttonclick'); - } - } - }; - utils.inherits(SplitButton, UIBase); - utils.extend(SplitButton.prototype, Stateful, true); - -})(); - - -// ui/colorbutton.js -///import core -///import uicore -///import ui/colorpicker.js -///import ui/popup.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - ColorPicker = baidu.editor.ui.ColorPicker, - Popup = baidu.editor.ui.Popup, - SplitButton = baidu.editor.ui.SplitButton, - ColorButton = baidu.editor.ui.ColorButton = function (options){ - this.initOptions(options); - this.initColorButton(); - }; - ColorButton.prototype = { - initColorButton: function (){ - var me = this; - this.popup = new Popup({ - content: new ColorPicker({ - noColorText: me.editor.getLang("clearColor"), - editor:me.editor, - onpickcolor: function (t, color){ - me._onPickColor(color); - }, - onpicknocolor: function (t, color){ - me._onPickNoColor(color); - } - }), - editor:me.editor - }); - this.initSplitButton(); - }, - _SplitButton_postRender: SplitButton.prototype.postRender, - postRender: function (){ - this._SplitButton_postRender(); - this.getDom('button_body').appendChild( - uiUtils.createElementByHtml('
    ') - ); - this.getDom().className += ' edui-colorbutton'; - }, - setColor: function (color){ - this.getDom('colorlump').style.backgroundColor = color; - this.color = color; - }, - _onPickColor: function (color){ - if (this.fireEvent('pickcolor', color) !== false) { - this.setColor(color); - this.popup.hide(); - } - }, - _onPickNoColor: function (color){ - if (this.fireEvent('picknocolor') !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(ColorButton, SplitButton); - -})(); - - -// ui/tablebutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/tablepicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - TablePicker = baidu.editor.ui.TablePicker, - SplitButton = baidu.editor.ui.SplitButton, - TableButton = baidu.editor.ui.TableButton = function (options){ - this.initOptions(options); - this.initTableButton(); - }; - TableButton.prototype = { - initTableButton: function (){ - var me = this; - this.popup = new Popup({ - content: new TablePicker({ - editor:me.editor, - onpicktable: function (t, numCols, numRows){ - me._onPickTable(numCols, numRows); - } - }), - 'editor':me.editor - }); - this.initSplitButton(); - }, - _onPickTable: function (numCols, numRows){ - if (this.fireEvent('picktable', numCols, numRows) !== false) { - this.popup.hide(); - } - } - }; - utils.inherits(TableButton, SplitButton); - -})(); - - -// ui/autotypesetpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase; - - var AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker = function (options) { - this.initOptions(options); - this.initAutoTypeSetPicker(); - }; - AutoTypeSetPicker.prototype = { - initAutoTypeSetPicker:function () { - this.initUIBase(); - }, - getHtmlTpl:function () { - var me = this.editor, - opt = me.options.autotypeset, - lang = me.getLang("autoTypeSet"); - - var textAlignInputName = 'textAlignValue' + me.uid, - imageBlockInputName = 'imageBlockLineValue' + me.uid, - symbolConverInputName = 'symbolConverValue' + me.uid; - - return '
    ' + - '
    ' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
    ' + lang.mergeLine + '' + lang.delLine + '
    ' + lang.removeFormat + '' + lang.indent + '
    ' + lang.alignment + '' + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.imageFloat + '' + - '' + me.getLang("default") + - '' + me.getLang("justifyleft") + - '' + me.getLang("justifycenter") + - '' + me.getLang("justifyright") + - '
    ' + lang.removeFontsize + '' + lang.removeFontFamily + '
    ' + lang.removeHtml + '
    ' + lang.pasteFilter + '
    ' + lang.symbol + '' + - '' + lang.bdc2sb + - '' + lang.tobdc + '' + - '
    ' + - '
    ' + - '
    '; - - - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(AutoTypeSetPicker, UIBase); -})(); - - -// ui/autotypesetbutton.js -///import core -///import uicore -///import ui/popup.js -///import ui/autotypesetpicker.js -///import ui/splitbutton.js -(function (){ - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker, - SplitButton = baidu.editor.ui.SplitButton, - AutoTypeSetButton = baidu.editor.ui.AutoTypeSetButton = function (options){ - this.initOptions(options); - this.initAutoTypeSetButton(); - }; - function getPara(me){ - - var opt = {}, - cont = me.getDom(), - editorId = me.editor.uid, - inputType = null, - attrName = null, - ipts = domUtils.getElementsByTagName(cont,"input"); - for(var i=ipts.length-1,ipt;ipt=ipts[i--];){ - inputType = ipt.getAttribute("type"); - if(inputType=="checkbox"){ - attrName = ipt.getAttribute("name"); - opt[attrName] && delete opt[attrName]; - if(ipt.checked){ - var attrValue = document.getElementById( attrName + "Value" + editorId ); - if(attrValue){ - if(/input/ig.test(attrValue.tagName)){ - opt[attrName] = attrValue.value; - } else { - var iptChilds = attrValue.getElementsByTagName("input"); - for(var j=iptChilds.length-1,iptchild;iptchild=iptChilds[j--];){ - if(iptchild.checked){ - opt[attrName] = iptchild.value; - break; - } - } - } - } else { - opt[attrName] = true; - } - } else { - opt[attrName] = false; - } - } else { - opt[ipt.getAttribute("value")] = ipt.checked; - } - - } - - var selects = domUtils.getElementsByTagName(cont,"select"); - for(var i=0,si;si=selects[i++];){ - var attr = si.getAttribute('name'); - opt[attr] = opt[attr] ? si.value : ''; - } - - utils.extend(me.editor.options.autotypeset,opt); - - me.editor.setPreferences('autotypeset', opt); - } - - AutoTypeSetButton.prototype = { - initAutoTypeSetButton: function (){ - - var me = this; - this.popup = new Popup({ - //传入配置参数 - content: new AutoTypeSetPicker({editor:me.editor}), - 'editor':me.editor, - hide : function(){ - if (!this._hidden && this.getDom()) { - getPara(this); - this.getDom().style.display = 'none'; - this._hidden = true; - this.fireEvent('hide'); - } - } - }); - var flag = 0; - this.popup.addListener('postRenderAfter',function(){ - var popupUI = this; - if(flag)return; - var cont = this.getDom(), - btn = cont.getElementsByTagName('button')[0]; - - btn.onclick = function(){ - getPara(popupUI); - me.editor.execCommand('autotypeset'); - popupUI.hide() - }; - - domUtils.on(cont, 'click', function(e) { - var target = e.target || e.srcElement, - editorId = me.editor.uid; - if (target && target.tagName == 'INPUT') { - - // 点击图片浮动的checkbox,去除对应的radio - if (target.name == 'imageBlockLine' || target.name == 'textAlign' || target.name == 'symbolConver') { - var checked = target.checked, - radioTd = document.getElementById( target.name + 'Value' + editorId), - radios = radioTd.getElementsByTagName('input'), - defalutSelect = { - 'imageBlockLine': 'none', - 'textAlign': 'left', - 'symbolConver': 'tobdc' - }; - - for (var i = 0; i < radios.length; i++) { - if (checked) { - if (radios[i].value == defalutSelect[target.name]) { - radios[i].checked = 'checked'; - } - } else { - radios[i].checked = false; - } - } - } - // 点击radio,选中对应的checkbox - if (target.name == ('imageBlockLineValue' + editorId) || target.name == ('textAlignValue' + editorId) || target.name == 'bdc') { - var checkboxs = target.parentNode.previousSibling.getElementsByTagName('input'); - checkboxs && (checkboxs[0].checked = true); - } - - getPara(popupUI); - } - }); - - flag = 1; - }); - this.initSplitButton(); - } - }; - utils.inherits(AutoTypeSetButton, SplitButton); - -})(); - - -// ui/cellalignpicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Popup = baidu.editor.ui.Popup, - Stateful = baidu.editor.ui.Stateful, - UIBase = baidu.editor.ui.UIBase; - - /** - * 该参数将新增一个参数: selected, 参数类型为一个Object, 形如{ 'align': 'center', 'valign': 'top' }, 表示单元格的初始 - * 对齐状态为: 竖直居上,水平居中; 其中 align的取值为:'center', 'left', 'right'; valign的取值为: 'top', 'middle', 'bottom' - * @update 2013/4/2 hancong03@baidu.com - */ - var CellAlignPicker = baidu.editor.ui.CellAlignPicker = function (options) { - this.initOptions(options); - this.initSelected(); - this.initCellAlignPicker(); - }; - CellAlignPicker.prototype = { - //初始化选中状态, 该方法将根据传递进来的参数获取到应该选中的对齐方式图标的索引 - initSelected: function(){ - - var status = { - - valign: { - top: 0, - middle: 1, - bottom: 2 - }, - align: { - left: 0, - center: 1, - right: 2 - }, - count: 3 - - }, - result = -1; - - if( this.selected ) { - this.selectedIndex = status.valign[ this.selected.valign ] * status.count + status.align[ this.selected.align ]; - } - - }, - initCellAlignPicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - - var alignType = [ 'left', 'center', 'right' ], - COUNT = 9, - tempClassName = null, - tempIndex = -1, - tmpl = []; - - - for( var i= 0; i'); - - tmpl.push( '
    ' ); - - tempIndex === 2 && tmpl.push(''); - - } - - return '
    ' + - '
    ' + - '' + - tmpl.join('') + - '
    ' + - '
    ' + - '
    '; - }, - getStateDom: function (){ - return this.target; - }, - _onClick: function (evt){ - var target= evt.target || evt.srcElement; - if(/icon/.test(target.className)){ - this.items[target.parentNode.getAttribute("index")].onclick(); - Popup.postHide(evt); - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(CellAlignPicker, UIBase); - utils.extend(CellAlignPicker.prototype, Stateful,true); -})(); - - - - - -// ui/pastepicker.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - Stateful = baidu.editor.ui.Stateful, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase; - - var PastePicker = baidu.editor.ui.PastePicker = function (options) { - this.initOptions(options); - this.initPastePicker(); - }; - PastePicker.prototype = { - initPastePicker:function () { - this.initUIBase(); - this.Stateful_init(); - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - '
    ' + this.editor.getLang("pasteOpt") + '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' - }, - getStateDom:function () { - return this.target; - }, - format:function (param) { - this.editor.ui._isTransfer = true; - this.editor.fireEvent('pasteTransfer', param); - }, - _onClick:function (cur) { - var node = domUtils.getNextDomNode(cur), - screenHt = uiUtils.getViewportRect().height, - subPop = uiUtils.getClientRect(node); - - if ((subPop.top + subPop.height) > screenHt) - node.style.top = (-subPop.height - cur.offsetHeight) + "px"; - else - node.style.top = ""; - - if (/hidden/ig.test(domUtils.getComputedStyle(node, "visibility"))) { - node.style.visibility = "visible"; - domUtils.addClass(cur, "edui-state-opened"); - } else { - node.style.visibility = "hidden"; - domUtils.removeClasses(cur, "edui-state-opened") - } - }, - _UIBase_render:UIBase.prototype.render - }; - utils.inherits(PastePicker, UIBase); - utils.extend(PastePicker.prototype, Stateful, true); -})(); - - - - - - -// ui/toolbar.js -(function (){ - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - Toolbar = baidu.editor.ui.Toolbar = function (options){ - this.initOptions(options); - this.initToolbar(); - }; - Toolbar.prototype = { - items: null, - initToolbar: function (){ - this.items = this.items || []; - this.initUIBase(); - }, - add: function (item,index){ - if(index === undefined){ - this.items.push(item); - }else{ - this.items.splice(index,0,item) - } - - }, - getHtmlTpl: function (){ - var buff = []; - for (var i=0; i' + - buff.join('') + - '
    ' - }, - postRender: function (){ - var box = this.getDom(); - for (var i=0; i
    '; - }, - postRender:function () { - }, - queryAutoHide:function () { - return true; - } - }; - Menu.prototype = { - items:null, - uiName:'menu', - initMenu:function () { - this.items = this.items || []; - this.initPopup(); - this.initItems(); - }, - initItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item == '-') { - this.items[i] = this.getSeparator(); - } else if (!(item instanceof MenuItem)) { - item.editor = this.editor; - item.theme = this.editor.options.theme; - this.items[i] = this.createItem(item); - } - } - }, - getSeparator:function () { - return menuSeparator; - }, - createItem:function (item) { - //新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - item.menu = this; - return new MenuItem(item); - }, - _Popup_getContentHtmlTpl:Popup.prototype.getContentHtmlTpl, - getContentHtmlTpl:function () { - if (this.items.length == 0) { - return this._Popup_getContentHtmlTpl(); - } - var buff = []; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - buff[i] = item.renderHtml(); - } - return ('
    ' + buff.join('') + '
    '); - }, - _Popup_postRender:Popup.prototype.postRender, - postRender:function () { - var me = this; - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - item.ownerMenu = this; - item.postRender(); - } - domUtils.on(this.getDom(), 'mouseover', function (evt) { - evt = evt || event; - var rel = evt.relatedTarget || evt.fromElement; - var el = me.getDom(); - if (!uiUtils.contains(el, rel) && el !== rel) { - me.fireEvent('over'); - } - }); - this._Popup_postRender(); - }, - queryAutoHide:function (el) { - if (el) { - if (uiUtils.contains(this.getDom(), el)) { - return false; - } - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - if (item.queryAutoHide(el) === false) { - return false; - } - } - } - }, - clearItems:function () { - for (var i = 0; i < this.items.length; i++) { - var item = this.items[i]; - clearTimeout(item._showingTimer); - clearTimeout(item._closingTimer); - if (item.subMenu) { - item.subMenu.destroy(); - } - } - this.items = []; - }, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - this.clearItems(); - }, - dispose:function () { - this.destroy(); - } - }; - utils.inherits(Menu, Popup); - - /** - * @update 2013/04/03 hancong03 新增一个参数menu, 该参数存储了menuItem所对应的menu引用 - * @type {Function} - */ - var MenuItem = baidu.editor.ui.MenuItem = function (options) { - this.initOptions(options); - this.initUIBase(); - this.Stateful_init(); - if (this.subMenu && !(this.subMenu instanceof Menu)) { - if (options.className && options.className.indexOf("aligntd") != -1) { - var me = this; - - //获取单元格对齐初始状态 - this.subMenu.selected = this.editor.queryCommandValue( 'cellalignment' ); - - this.subMenu = new Popup({ - content:new CellAlignPicker(this.subMenu), - parentMenu:me, - editor:me.editor, - destroy:function () { - if (this.getDom()) { - domUtils.remove(this.getDom()); - } - } - }); - this.subMenu.addListener("postRenderAfter", function () { - domUtils.on(this.getDom(), "mouseover", function () { - me.addState('opened'); - }); - }); - } else { - this.subMenu = new Menu(this.subMenu); - } - } - }; - MenuItem.prototype = { - label:'', - subMenu:null, - ownerMenu:null, - uiName:'menuitem', - alwalysHoverable:true, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - this.renderLabelHtml() + - '
    ' + - '
    '; - }, - postRender:function () { - var me = this; - this.addListener('over', function () { - me.ownerMenu.fireEvent('submenuover', me); - if (me.subMenu) { - me.delayShowSubMenu(); - } - }); - if (this.subMenu) { - this.getDom().className += ' edui-hassubmenu'; - this.subMenu.render(); - this.addListener('out', function () { - me.delayHideSubMenu(); - }); - this.subMenu.addListener('over', function () { - clearTimeout(me._closingTimer); - me._closingTimer = null; - me.addState('opened'); - }); - this.ownerMenu.addListener('hide', function () { - me.hideSubMenu(); - }); - this.ownerMenu.addListener('submenuover', function (t, subMenu) { - if (subMenu !== me) { - me.delayHideSubMenu(); - } - }); - this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide; - this.subMenu.queryAutoHide = function (el) { - if (el && uiUtils.contains(me.getDom(), el)) { - return false; - } - return this._bakQueryAutoHide(el); - }; - } - this.getDom().style.tabIndex = '-1'; - uiUtils.makeUnselectable(this.getDom()); - this.Stateful_postRender(); - }, - delayShowSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.addState('opened'); - clearTimeout(me._showingTimer); - clearTimeout(me._closingTimer); - me._closingTimer = null; - me._showingTimer = setTimeout(function () { - me.showSubMenu(); - }, 250); - } - }, - delayHideSubMenu:function () { - var me = this; - if (!me.isDisabled()) { - me.removeState('opened'); - clearTimeout(me._showingTimer); - if (!me._closingTimer) { - me._closingTimer = setTimeout(function () { - if (!me.hasState('opened')) { - me.hideSubMenu(); - } - me._closingTimer = null; - }, 400); - } - } - }, - renderLabelHtml:function () { - return '
    ' + - '
    ' + - '
    ' + (this.label || '') + '
    '; - }, - getStateDom:function () { - return this.getDom(); - }, - queryAutoHide:function (el) { - if (this.subMenu && this.hasState('opened')) { - return this.subMenu.queryAutoHide(el); - } - }, - _onClick:function (event, this_) { - if (this.hasState('disabled')) return; - if (this.fireEvent('click', event, this_) !== false) { - if (this.subMenu) { - this.showSubMenu(); - } else { - Popup.postHide(event); - } - } - }, - showSubMenu:function () { - var rect = uiUtils.getClientRect(this.getDom()); - rect.right -= 5; - rect.left += 2; - rect.width -= 7; - rect.top -= 4; - rect.bottom += 4; - rect.height += 8; - this.subMenu.showAnchorRect(rect, true, true); - }, - hideSubMenu:function () { - this.subMenu.hide(); - } - }; - utils.inherits(MenuItem, UIBase); - utils.extend(MenuItem.prototype, Stateful, true); -})(); - - -// ui/combox.js -///import core -///import uicore -///import ui/menu.js -///import ui/splitbutton.js -(function (){ - // todo: menu和item提成通用list - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - Menu = baidu.editor.ui.Menu, - SplitButton = baidu.editor.ui.SplitButton, - Combox = baidu.editor.ui.Combox = function (options){ - this.initOptions(options); - this.initCombox(); - }; - Combox.prototype = { - uiName: 'combox', - onbuttonclick:function () { - this.showPopup(); - }, - initCombox: function (){ - var me = this; - this.items = this.items || []; - for (var i=0; i vpRect.right) { - left = vpRect.right - rect.width; - } - var top = offset.top; - if (top + rect.height > vpRect.bottom) { - top = vpRect.bottom - rect.height; - } - el.style.left = Math.max(left, 0) + 'px'; - el.style.top = Math.max(top, 0) + 'px'; - }, - showAtCenter: function (){ - - var vpRect = uiUtils.getViewportRect(); - - if ( !this.fullscreen ) { - this.getDom().style.display = ''; - var popSize = this.fitSize(); - var titleHeight = this.getDom('titlebar').offsetHeight | 0; - var left = vpRect.width / 2 - popSize.width / 2; - var top = vpRect.height / 2 - (popSize.height - titleHeight) / 2 - titleHeight; - var popEl = this.getDom(); - this.safeSetOffset({ - left: Math.max(left | 0, 0), - top: Math.max(top | 0, 0) - }); - if (!domUtils.hasClass(popEl, 'edui-state-centered')) { - popEl.className += ' edui-state-centered'; - } - } else { - var dialogWrapNode = this.getDom(), - contentNode = this.getDom('content'); - - dialogWrapNode.style.display = "block"; - - var wrapRect = UE.ui.uiUtils.getClientRect( dialogWrapNode ), - contentRect = UE.ui.uiUtils.getClientRect( contentNode ); - dialogWrapNode.style.left = "-100000px"; - - contentNode.style.width = ( vpRect.width - wrapRect.width + contentRect.width ) + "px"; - contentNode.style.height = ( vpRect.height - wrapRect.height + contentRect.height ) + "px"; - - dialogWrapNode.style.width = vpRect.width + "px"; - dialogWrapNode.style.height = vpRect.height + "px"; - dialogWrapNode.style.left = 0; - - //保存环境的overflow值 - this._originalContext = { - html: { - overflowX: document.documentElement.style.overflowX, - overflowY: document.documentElement.style.overflowY - }, - body: { - overflowX: document.body.style.overflowX, - overflowY: document.body.style.overflowY - } - }; - - document.documentElement.style.overflowX = 'hidden'; - document.documentElement.style.overflowY = 'hidden'; - document.body.style.overflowX = 'hidden'; - document.body.style.overflowY = 'hidden'; - - } - - this._show(); - }, - getContentHtml: function (){ - var contentHtml = ''; - if (typeof this.content == 'string') { - contentHtml = this.content; - } else if (this.iframeUrl) { - contentHtml = ''; - } - return contentHtml; - }, - getHtmlTpl: function (){ - var footHtml = ''; - - if (this.buttons) { - var buff = []; - for (var i=0; i' + buff.join('') + '
    ' + - '
    '; - } - - return '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + (this.title || '') + '' + - '
    ' + - this.closeButton.renderHtml() + - '
    ' + - '
    '+ ( this.autoReset ? '' : this.getContentHtml()) +'
    ' + - footHtml + - '
    '; - }, - postRender: function (){ - // todo: 保持居中/记住上次关闭位置选项 - if (!this.modalMask.getDom()) { - this.modalMask.render(); - this.modalMask.hide(); - } - if (!this.dragMask.getDom()) { - this.dragMask.render(); - this.dragMask.hide(); - } - var me = this; - this.addListener('show', function (){ - me.modalMask.show(this.getDom().style.zIndex - 2); - }); - this.addListener('hide', function (){ - me.modalMask.hide(); - }); - if (this.buttons) { - for (var i=0; i'; - me.editor.container.style.zIndex && (this.getDom().style.zIndex = me.editor.container.style.zIndex * 1 + 1); - } - } - // canSideUp:false, - // canSideLeft:false - }); - this.onbuttonclick = function(){ - this.showPopup(); - }; - this.initSplitButton(); - } - - }; - - utils.inherits(MultiMenuPop, SplitButton); -})(); - - -// ui/shortcutmenu.js -(function () { - var UI = baidu.editor.ui, - UIBase = UI.UIBase, - uiUtils = UI.uiUtils, - utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils; - - var allMenus = [],//存储所有快捷菜单 - timeID, - isSubMenuShow = false;//是否有子pop显示 - - var ShortCutMenu = UI.ShortCutMenu = function (options) { - this.initOptions (options); - this.initShortCutMenu (); - }; - - ShortCutMenu.postHide = hideAllMenu; - - ShortCutMenu.prototype = { - isHidden : true , - SPACE : 5 , - initShortCutMenu : function () { - this.items = this.items || []; - this.initUIBase (); - this.initItems (); - this.initEvent (); - allMenus.push (this); - } , - initEvent : function () { - var me = this, - doc = me.editor.document; - - domUtils.on (doc , "mousemove" , function (e) { - if (me.isHidden === false) { - //有pop显示就不隐藏快捷菜单 - if (me.getSubMenuMark () || me.eventType == "contextmenu") return; - - - var flag = true, - el = me.getDom (), - wt = el.offsetWidth, - ht = el.offsetHeight, - distanceX = wt / 2 + me.SPACE,//距离中心X标准 - distanceY = ht / 2,//距离中心Y标准 - x = Math.abs (e.screenX - me.left),//离中心距离横坐标 - y = Math.abs (e.screenY - me.top);//离中心距离纵坐标 - - clearTimeout (timeID); - timeID = setTimeout (function () { - if (y > 0 && y < distanceY) { - me.setOpacity (el , "1"); - } else if (y > distanceY && y < distanceY + 70) { - me.setOpacity (el , "0.5"); - flag = false; - } else if (y > distanceY + 70 && y < distanceY + 140) { - me.hide (); - } - - if (flag && x > 0 && x < distanceX) { - me.setOpacity (el , "1") - } else if (x > distanceX && x < distanceX + 70) { - me.setOpacity (el , "0.5") - } else if (x > distanceX + 70 && x < distanceX + 140) { - me.hide (); - } - }); - } - }); - - //ie\ff下 mouseout不准 - if (browser.chrome) { - domUtils.on (doc , "mouseout" , function (e) { - var relatedTgt = e.relatedTarget || e.toElement; - - if (relatedTgt == null || relatedTgt.tagName == "HTML") { - me.hide (); - } - }); - } - - me.editor.addListener ("afterhidepop" , function () { - if (!me.isHidden) { - isSubMenuShow = true; - } - }); - - } , - initItems : function () { - if (utils.isArray (this.items)) { - for (var i = 0, len = this.items.length ; i < len ; i++) { - var item = this.items[i].toLowerCase (); - - if (UI[item]) { - this.items[i] = new UI[item] (this.editor); - this.items[i].className += " edui-shortcutsubmenu "; - } - } - } - } , - setOpacity : function (el , value) { - if (browser.ie && browser.version < 9) { - el.style.filter = "alpha(opacity = " + parseFloat (value) * 100 + ");" - } else { - el.style.opacity = value; - } - } , - getSubMenuMark : function () { - isSubMenuShow = false; - var layerEle = uiUtils.getFixedLayer (); - var list = domUtils.getElementsByTagName (layerEle , "div" , function (node) { - return domUtils.hasClass (node , "edui-shortcutsubmenu edui-popup") - }); - - for (var i = 0, node ; node = list[i++] ;) { - if (node.style.display != "none") { - isSubMenuShow = true; - } - } - return isSubMenuShow; - } , - show : function (e , hasContextmenu) { - var me = this, - offset = {}, - el = this.getDom (), - fixedlayer = uiUtils.getFixedLayer (); - - function setPos (offset) { - if (offset.left < 0) { - offset.left = 0; - } - if (offset.top < 0) { - offset.top = 0; - } - el.style.cssText = "position:absolute;left:" + offset.left + "px;top:" + offset.top + "px;"; - } - - function setPosByCxtMenu (menu) { - if (!menu.tagName) { - menu = menu.getDom (); - } - offset.left = parseInt (menu.style.left); - offset.top = parseInt (menu.style.top); - offset.top -= el.offsetHeight + 15; - setPos (offset); - } - - - me.eventType = e.type; - el.style.cssText = "display:block;left:-9999px"; - - if (e.type == "contextmenu" && hasContextmenu) { - var menu = domUtils.getElementsByTagName (fixedlayer , "div" , "edui-contextmenu")[0]; - if (menu) { - setPosByCxtMenu (menu) - } else { - me.editor.addListener ("aftershowcontextmenu" , function (type , menu) { - setPosByCxtMenu (menu); - }); - } - } else { - offset = uiUtils.getViewportOffsetByEvent (e); - offset.top -= el.offsetHeight + me.SPACE; - offset.left += me.SPACE + 20; - setPos (offset); - me.setOpacity (el , 0.2); - } - - - me.isHidden = false; - me.left = e.screenX + el.offsetWidth / 2 - me.SPACE; - me.top = e.screenY - (el.offsetHeight / 2) - me.SPACE; - - if (me.editor) { - el.style.zIndex = me.editor.container.style.zIndex * 1 + 10; - fixedlayer.style.zIndex = el.style.zIndex - 1; - } - } , - hide : function () { - if (this.getDom ()) { - this.getDom ().style.display = "none"; - } - this.isHidden = true; - } , - postRender : function () { - if (utils.isArray (this.items)) { - for (var i = 0, item ; item = this.items[i++] ;) { - item.postRender (); - } - } - } , - getHtmlTpl : function () { - var buff; - if (utils.isArray (this.items)) { - buff = []; - for (var i = 0 ; i < this.items.length ; i++) { - buff[i] = this.items[i].renderHtml (); - } - buff = buff.join (""); - } else { - buff = this.items; - } - - return '
    ' + - buff + - '
    '; - } - }; - - utils.inherits (ShortCutMenu , UIBase); - - function hideAllMenu (e) { - var tgt = e.target || e.srcElement, - cur = domUtils.findParent (tgt , function (node) { - return domUtils.hasClass (node , "edui-shortcutmenu") || domUtils.hasClass (node , "edui-popup"); - } , true); - - if (!cur) { - for (var i = 0, menu ; menu = allMenus[i++] ;) { - menu.hide () - } - } - } - - domUtils.on (document , 'mousedown' , function (e) { - hideAllMenu (e); - }); - - domUtils.on (window , 'scroll' , function (e) { - hideAllMenu (e); - }); - -}) (); - - -// ui/breakline.js -(function (){ - var utils = baidu.editor.utils, - UIBase = baidu.editor.ui.UIBase, - Breakline = baidu.editor.ui.Breakline = function (options){ - this.initOptions(options); - this.initSeparator(); - }; - Breakline.prototype = { - uiName: 'Breakline', - initSeparator: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    '; - } - }; - utils.inherits(Breakline, UIBase); - -})(); - - -// ui/message.js -///import core -///import uicore -(function () { - var utils = baidu.editor.utils, - domUtils = baidu.editor.dom.domUtils, - UIBase = baidu.editor.ui.UIBase, - Message = baidu.editor.ui.Message = function (options){ - this.initOptions(options); - this.initMessage(); - }; - - Message.prototype = { - initMessage: function (){ - this.initUIBase(); - }, - getHtmlTpl: function (){ - return '
    ' + - '
    ×
    ' + - '
    ' + - ' ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '; - }, - reset: function(opt){ - var me = this; - if (!opt.keepshow) { - clearTimeout(this.timer); - me.timer = setTimeout(function(){ - me.hide(); - }, opt.timeout || 4000); - } - - opt.content !== undefined && me.setContent(opt.content); - opt.type !== undefined && me.setType(opt.type); - - me.show(); - }, - postRender: function(){ - var me = this, - closer = this.getDom('closer'); - closer && domUtils.on(closer, 'click', function(){ - me.hide(); - }); - }, - setContent: function(content){ - this.getDom('content').innerHTML = content; - }, - setType: function(type){ - type = type || 'info'; - var body = this.getDom('body'); - body.className = body.className.replace(/edui-message-type-[\w-]+/, 'edui-message-type-' + type); - }, - getContent: function(){ - return this.getDom('content').innerHTML; - }, - getType: function(){ - var arr = this.getDom('body').match(/edui-message-type-([\w-]+)/); - return arr ? arr[1]:''; - }, - show: function (){ - this.getDom().style.display = 'block'; - }, - hide: function (){ - var dom = this.getDom(); - if (dom) { - dom.style.display = 'none'; - dom.parentNode && dom.parentNode.removeChild(dom); - } - } - }; - - utils.inherits(Message, UIBase); - -})(); - - -// adapter/editorui.js -//ui跟编辑器的适配層 -//那个按钮弹出是dialog,是下拉筐等都是在这个js中配置 -//自己写的ui也要在这里配置,放到baidu.editor.ui下边,当编辑器实例化的时候会根据ueditor.config中的toolbars找到相应的进行实例化 -(function () { - var utils = baidu.editor.utils; - var editorui = baidu.editor.ui; - var _Dialog = editorui.Dialog; - editorui.buttons = {}; - - editorui.Dialog = function (options) { - var dialog = new _options); - dialog.addListener('hide', function () { - - if (dialog.editor) { - var editor = dialog.editor; - try { - if (browser.gecko) { - var y = editor.window.scrollY, - x = editor.window.scrollX; - editor.body.focus(); - editor.window.scrollTo(x, y); - } else { - editor.focus(); - } - - - } catch (ex) { - } - } - }); - return dialog; - }; - - var iframeUrlMap = { - 'anchor':'~/dialogs/anchor/anchor.html', - 'insertimage':'~/dialogs/image/image.html', - 'link':'~/dialogs/link/link.html', - 'spechars':'~/dialogs/spechars/spechars.html', - 'searchreplace':'~/dialogs/searchreplace/searchreplace.html', - 'map':'~/dialogs/map/map.html', - 'gmap':'~/dialogs/gmap/gmap.html', - 'insertvideo':'~/dialogs/video/video.html', - 'help':'~/dialogs/help/help.html', - 'preview':'~/dialogs/preview/preview.html', - 'emotion':'~/dialogs/emotion/emotion.html', - 'wordimage':'~/dialogs/wordimage/wordimage.html', - 'attachment':'~/dialogs/attachment/attachment.html', - 'insertframe':'~/dialogs/insertframe/insertframe.html', - 'edittip':'~/dialogs/table/edittip.html', - 'edittable':'~/dialogs/table/edittable.html', - 'edittd':'~/dialogs/table/edittd.html', - 'webapp':'~/dialogs/webapp/webapp.html', - 'snapscreen':'~/dialogs/snapscreen/snapscreen.html', - 'scrawl':'~/dialogs/scrawl/scrawl.html', - 'music':'~/dialogs/music/music.html', - 'template':'~/dialogs/template/template.html', - 'background':'~/dialogs/background/background.html', - 'charts': '~/dialogs/charts/charts.html' - }; - //为工具栏添加按钮,以下都是统一的按钮触发命令,所以写在一起 - var btnCmds = ['undo', 'redo', 'formatmatch', - 'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase', - 'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent', - 'blockquote', 'pasteplain', 'pagebreak', - 'selectall', 'print','horizontal', 'removeformat', 'time', 'date', 'unlink', - 'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow', - 'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable', 'drafts']; - - for (var i = 0, ci; ci = btnCmds[i++];) { - ci = ci.toLowerCase(); - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - onclick:function () { - editor.execCommand(cmd); - }, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - }(ci); - } - - //清除文档 - editorui.cleardoc = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-cleardoc', - title:editor.options.labelMap.cleardoc || editor.getLang("labelMap.cleardoc") || '', - theme:editor.options.theme, - onclick:function () { - if (confirm(editor.getLang("confirmClear"))) { - editor.execCommand('cleardoc'); - } - } - }); - editorui.buttons["cleardoc"] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('cleardoc') == -1); - }); - return ui; - }; - - //排版,图片排版,文字方向 - var typeset = { - 'justify':['left', 'right', 'center', 'justify'], - 'imagefloat':['none', 'left', 'center', 'right'], - 'directionality':['ltr', 'rtl'] - }; - - for (var p in typeset) { - - (function (cmd, val) { - for (var i = 0, ci; ci = val[i++];) { - (function (cmd2) { - editorui[cmd.replace('float', '') + cmd2] = function (editor) { - var ui = new editorui.Button({ - className:'edui-for-' + cmd.replace('float', '') + cmd2, - title:editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang("labelMap." + cmd.replace('float', '') + cmd2) || '', - theme:editor.options.theme, - onclick:function () { - editor.execCommand(cmd, cmd2); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady); - }); - return ui; - }; - })(ci) - } - })(p, typeset[p]) - } - - //字体颜色和背景颜色 - for (var i = 0, ci; ci = ['backcolor', 'forecolor'][i++];) { - editorui[ci] = function (cmd) { - return function (editor) { - var ui = new editorui.ColorButton({ - className:'edui-for-' + cmd, - color:'default', - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '', - editor:editor, - onpickcolor:function (t, color) { - editor.execCommand(cmd, color); - }, - onpicknocolor:function () { - editor.execCommand(cmd, 'default'); - this.setColor('transparent'); - this.color = 'default'; - }, - onbuttonclick:function () { - editor.execCommand(cmd, this.color); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1); - }); - return ui; - }; - }(ci); - } - - - var dialogBtns = { - noOk:['searchreplace', 'help', 'spechars', 'webapp','preview'], - ok:['attachment', 'anchor', 'link', 'insertimage', 'map', 'gmap', 'insertframe', 'wordimage', - 'insertvideo', 'insertframe', 'edittip', 'edittable', 'edittd', 'scrawl', 'template', 'music', 'background', 'charts'] - }; - - for (var p in dialogBtns) { - (function (type, vals) { - for (var i = 0, ci; ci = vals[i++];) { - //todo opera下存在问题 - if (browser.opera && ci === "searchreplace") { - continue; - } - (function (cmd) { - editorui[cmd] = function (editor, iframeUrl, title) { - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]; - title = editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || ''; - - var dialog; - //没有iframeUrl不创建dialog - if (iframeUrl) { - dialog = new editorui.Dialog(utils.extend({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-' + cmd, - title:title, - holdScroll: cmd === 'insertimage', - fullscreen: /charts|preview/.test(cmd), - closeDialog:editor.getLang("closeDialog") - }, type == 'ok' ? { - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - } : {})); - - editor.ui._dialogs[cmd + "Dialog"] = dialog; - } - - var ui = new editorui.Button({ - className:'edui-for-' + cmd, - title:title, - onclick:function () { - if (dialog) { - switch (cmd) { - case "wordimage": - var images = editor.execCommand("wordimage"); - if (images && images.length) { - dialog.render(); - dialog.open(); - } - break; - case "scrawl": - if (editor.queryCommandState("scrawl") != -1) { - dialog.render(); - dialog.open(); - } - - break; - default: - dialog.render(); - dialog.open(); - } - } - }, - theme:editor.options.theme, - disabled:(cmd == 'scrawl' && editor.queryCommandState("scrawl") == -1) || ( cmd == 'charts' ) - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - //只存在于右键菜单而无工具栏按钮的ui不需要检测状态 - var unNeedCheckState = {'edittable':1}; - if (cmd in unNeedCheckState)return; - - var state = editor.queryCommandState(cmd); - if (ui.getDom()) { - ui.setDisabled(state == -1); - ui.setChecked(state); - } - - }); - - return ui; - }; - })(ci.toLowerCase()) - } - })(p, dialogBtns[p]); - } - - editorui.snapscreen = function (editor, iframeUrl, title) { - title = editor.options.labelMap['snapscreen'] || editor.getLang("labelMap.snapscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-snapscreen', - title:title, - onclick:function () { - editor.execCommand("snapscreen"); - }, - theme:editor.options.theme - - }); - editorui.buttons['snapscreen'] = ui; - iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})["snapscreen"] || iframeUrlMap["snapscreen"]; - if (iframeUrl) { - var dialog = new editorui.Dialog({ - iframeUrl:editor.ui.mapUrl(iframeUrl), - editor:editor, - className:'edui-for-snapscreen', - title:title, - buttons:[ - { - className:'edui-okbutton', - label:editor.getLang("ok"), - editor:editor, - onclick:function () { - dialog.close(true); - } - }, - { - className:'edui-cancelbutton', - label:editor.getLang("cancel"), - editor:editor, - onclick:function () { - dialog.close(false); - } - } - ] - - }); - dialog.render(); - editor.ui._dialogs["snapscreenDialog"] = dialog; - } - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('snapscreen') == -1); - }); - return ui; - }; - - editorui.insertcode = function (editor, list, title) { - list = editor.options['insertcode'] || []; - title = editor.options.labelMap['insertcode'] || editor.getLang("labelMap.insertcode") || ''; - // if (!list.length) return; - var items = []; - utils.each(list,function(key,val){ - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - }); - - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('insertcode', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-insertcode', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['insertcode'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('insertcode'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('insertcode'); - if(!value){ - ui.setValue(title); - return; - } - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - editorui.fontfamily = function (editor, list, title) { - - list = editor.options['fontfamily'] || []; - title = editor.options.labelMap['fontfamily'] || editor.getLang("labelMap.fontfamily") || ''; - if (!list.length) return; - for (var i = 0, ci, items = []; ci = list[i]; i++) { - var langLabel = editor.getLang('fontfamily')[ci.name] || ""; - (function (key, val) { - items.push({ - label:key, - value:val, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - })(ci.label || langLabel, ci.val) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - onselect:function (t, index) { - editor.execCommand('FontFamily', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - title:title, - initValue:title, - className:'edui-for-fontfamily', - indexByValue:function (value) { - if (value) { - for (var i = 0, ci; ci = this.items[i]; i++) { - if (ci.value.indexOf(value) != -1) - return i; - } - } - - return -1; - } - }); - editorui.buttons['fontfamily'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontFamily'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('FontFamily'); - //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号 - value && (value = value.replace(/['"]/g, '').split(',')[0]); - ui.setValue(value); - - } - } - - }); - return ui; - }; - - editorui.fontsize = function (editor, list, title) { - title = editor.options.labelMap['fontsize'] || editor.getLang("labelMap.fontsize") || ''; - list = list || editor.options['fontsize'] || []; - if (!list.length) return; - var items = []; - for (var i = 0; i < list.length; i++) { - var size = list[i] + 'px'; - items.push({ - label:size, - value:size, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }); - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - onselect:function (t, index) { - editor.execCommand('FontSize', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - className:'edui-for-fontsize' - }); - editorui.buttons['fontsize'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('FontSize'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - ui.setValue(editor.queryCommandValue('FontSize')); - } - } - - }); - return ui; - }; - - editorui.paragraph = function (editor, list, title) { - title = editor.options.labelMap['paragraph'] || editor.getLang("labelMap.paragraph") || ''; - list = editor.options['paragraph'] || []; - if (utils.isEmptyObject(list)) return; - var items = []; - for (var i in list) { - items.push({ - value:i, - label:list[i] || editor.getLang("paragraph")[i], - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + (this.label || '') + '
    '; - } - }) - } - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-paragraph', - onselect:function (t, index) { - editor.execCommand('Paragraph', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['paragraph'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('Paragraph'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('Paragraph'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - - - //自定义标题 - editorui.customstyle = function (editor) { - var list = editor.options['customstyle'] || [], - title = editor.options.labelMap['customstyle'] || editor.getLang("labelMap.customstyle") || ''; - if (!list.length)return; - var langCs = editor.getLang('customstyle'); - for (var i = 0, items = [], t; t = list[i++];) { - (function (t) { - var ck = {}; - ck.label = t.label ? t.label : langCs[t.name]; - ck.style = t.style; - ck.className = t.className; - ck.tag = t.tag; - items.push({ - label:ck.label, - value:ck, - theme:editor.options.theme, - renderLabelHtml:function () { - return '
    ' + '<' + ck.tag + ' ' + (ck.className ? ' class="' + ck.className + '"' : "") - + (ck.style ? ' style="' + ck.style + '"' : "") + '>' + ck.label + "<\/" + ck.tag + ">" - + '
    '; - } - }); - })(t); - } - - var ui = new editorui.Combox({ - editor:editor, - items:items, - title:title, - initValue:title, - className:'edui-for-customstyle', - onselect:function (t, index) { - editor.execCommand('customstyle', this.items[index].value); - }, - onbuttonclick:function () { - this.showPopup(); - }, - indexByValue:function (value) { - for (var i = 0, ti; ti = this.items[i++];) { - if (ti.label == value) { - return i - 1 - } - } - return -1; - } - }); - editorui.buttons['customstyle'] = ui; - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - if (!uiReady) { - var state = editor.queryCommandState('customstyle'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('customstyle'); - var index = ui.indexByValue(value); - if (index != -1) { - ui.setValue(value); - } else { - ui.setValue(ui.initValue); - } - } - } - - }); - return ui; - }; - editorui.inserttable = function (editor, iframeUrl, title) { - title = editor.options.labelMap['inserttable'] || editor.getLang("labelMap.inserttable") || ''; - var ui = new editorui.TableButton({ - editor:editor, - title:title, - className:'edui-for-inserttable', - onpicktable:function (t, numCols, numRows) { - editor.execCommand('InsertTable', {numRows:numRows, numCols:numCols, border:1}); - }, - onbuttonclick:function () { - this.showPopup(); - } - }); - editorui.buttons['inserttable'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('inserttable') == -1); - }); - return ui; - }; - - editorui.lineheight = function (editor) { - var val = editor.options.lineheight || []; - if (!val.length)return; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - //todo:写死了 - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("lineheight", this.value); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-lineheight', - title:editor.options.labelMap['lineheight'] || editor.getLang("labelMap.lineheight") || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('LineHeight') || this.value; - editor.execCommand("LineHeight", value); - } - }); - editorui.buttons['lineheight'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('LineHeight'); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('LineHeight'); - value && ui.setValue((value + '').replace(/cm/, '')); - ui.setChecked(state) - } - }); - return ui; - }; - - var rowspacings = ['top', 'bottom']; - for (var r = 0, ri; ri = rowspacings[r++];) { - (function (cmd) { - editorui['rowspacing' + cmd] = function (editor) { - var val = editor.options['rowspacing' + cmd] || []; - if (!val.length) return null; - for (var i = 0, ci, items = []; ci = val[i++];) { - items.push({ - label:ci, - value:ci, - theme:editor.options.theme, - onclick:function () { - editor.execCommand("rowspacing", this.value, cmd); - } - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-rowspacing' + cmd, - title:editor.options.labelMap['rowspacing' + cmd] || editor.getLang("labelMap.rowspacing" + cmd) || '', - items:items, - onbuttonclick:function () { - var value = editor.queryCommandValue('rowspacing', cmd) || this.value; - editor.execCommand("rowspacing", value, cmd); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('rowspacing', cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue('rowspacing', cmd); - value && ui.setValue((value + '').replace(/%/, '')); - ui.setChecked(state) - } - }); - return ui; - } - })(ri) - } - //有序,无序列表 - var lists = ['insertorderedlist', 'insertunorderedlist']; - for (var l = 0, cl; cl = lists[l++];) { - (function (cmd) { - editorui[cmd] = function (editor) { - var vals = editor.options[cmd], - _onMenuClick = function () { - editor.execCommand(cmd, this.value); - }, items = []; - for (var i in vals) { - items.push({ - label:vals[i] || editor.getLang()[cmd][i] || "", - value:i, - theme:editor.options.theme, - onclick:_onMenuClick - }) - } - var ui = new editorui.MenuButton({ - editor:editor, - className:'edui-for-' + cmd, - title:editor.getLang("labelMap." + cmd) || '', - 'items':items, - onbuttonclick:function () { - var value = editor.queryCommandValue(cmd) || this.value; - editor.execCommand(cmd, value); - } - }); - editorui.buttons[cmd] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState(cmd); - if (state == -1) { - ui.setDisabled(true); - } else { - ui.setDisabled(false); - var value = editor.queryCommandValue(cmd); - ui.setValue(value); - ui.setChecked(state) - } - }); - return ui; - }; - })(cl) - } - - editorui.fullscreen = function (editor, title) { - title = editor.options.labelMap['fullscreen'] || editor.getLang("labelMap.fullscreen") || ''; - var ui = new editorui.Button({ - className:'edui-for-fullscreen', - title:title, - theme:editor.options.theme, - onclick:function () { - if (editor.ui) { - editor.ui.setFullScreen(!editor.ui.isFullScreen()); - } - this.setChecked(editor.ui.isFullScreen()); - } - }); - editorui.buttons['fullscreen'] = ui; - editor.addListener('selectionchange', function () { - var state = editor.queryCommandState('fullscreen'); - ui.setDisabled(state == -1); - ui.setChecked(editor.ui.isFullScreen()); - }); - return ui; - }; - - // 表情 - editorui["emotion"] = function (editor, iframeUrl) { - var cmd = "emotion"; - var ui = new editorui.MultiMenuPop({ - title:editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd + "") || '', - editor:editor, - className:'edui-for-' + cmd, - iframeUrl:editor.ui.mapUrl(iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]) - }); - editorui.buttons[cmd] = ui; - - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState(cmd) == -1) - }); - return ui; - }; - - editorui.autotypeset = function (editor) { - var ui = new editorui.AutoTypeSetButton({ - editor:editor, - title:editor.options.labelMap['autotypeset'] || editor.getLang("labelMap.autotypeset") || '', - className:'edui-for-autotypeset', - onbuttonclick:function () { - editor.execCommand('autotypeset') - } - }); - editorui.buttons['autotypeset'] = ui; - editor.addListener('selectionchange', function () { - ui.setDisabled(editor.queryCommandState('autotypeset') == -1); - }); - return ui; - }; - - /* 简单上传插件 */ - editorui["simpleupload"] = function (editor) { - var name = 'simpleupload', - ui = new editorui.Button({ - className:'edui-for-' + name, - title:editor.options.labelMap[name] || editor.getLang("labelMap." + name) || '', - onclick:function () {}, - theme:editor.options.theme, - showText:false - }); - editorui.buttons[name] = ui; - editor.addListener('ready', function() { - var b = ui.getDom('body'), - iconSpan = b.children[0]; - editor.fireEvent('simpleuploadbtnready', iconSpan); - }); - editor.addListener('selectionchange', function (type, causeByUi, uiReady) { - var state = editor.queryCommandState(name); - if (state == -1) { - ui.setDisabled(true); - ui.setChecked(false); - } else { - if (!uiReady) { - ui.setDisabled(false); - ui.setChecked(state); - } - } - }); - return ui; - }; - -})(); - - -// adapter/editor.js -///import core -///commands 全屏 -///commandsName FullScreen -///commandsTitle 全屏 -(function () { - var utils = baidu.editor.utils, - uiUtils = baidu.editor.ui.uiUtils, - UIBase = baidu.editor.ui.UIBase, - domUtils = baidu.editor.dom.domUtils; - var nodeStack = []; - - function EditorUI(options) { - this.initOptions(options); - this.initEditorUI(); - } - - EditorUI.prototype = { - uiName:'editor', - initEditorUI:function () { - this.editor.ui = this; - this._dialogs = {}; - this.initUIBase(); - this._initToolbars(); - var editor = this.editor, - me = this; - - editor.addListener('ready', function () { - //提供getDialog方法 - editor.getDialog = function (name) { - return editor.ui._dialogs[name + "Dialog"]; - }; - domUtils.on(editor.window, 'scroll', function (evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - //提供编辑器实时宽高(全屏时宽高不变化) - editor.ui._actualFrameWidth = editor.options.initialFrameWidth; - - UE.browser.ie && UE.browser.version === 6 && editor.container.ownerDocument.execCommand("BackgroundImageCache", false, true); - - //display bottom-bar label based on config - if (editor.options.elementPathEnabled) { - editor.ui.getDom('elementpath').innerHTML = '
    ' + editor.getLang("elementPathTip") + ':
    '; - } - if (editor.options.wordCount) { - function countFn() { - setCount(editor,me); - domUtils.un(editor.document, "click", arguments.callee); - } - domUtils.on(editor.document, "click", countFn); - editor.ui.getDom('wordcount').innerHTML = editor.getLang("wordCountTip"); - } - editor.ui._scale(); - if (editor.options.scaleEnabled) { - if (editor.autoHeightEnabled) { - editor.disableAutoHeight(); - } - me.enableScale(); - } else { - me.disableScale(); - } - if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) { - editor.ui.getDom('elementpath').style.display = "none"; - editor.ui.getDom('wordcount').style.display = "none"; - editor.ui.getDom('scale').style.display = "none"; - } - - if (!editor.selection.isFocus())return; - editor.fireEvent('selectionchange', false, true); - - - }); - - editor.addListener('mousedown', function (t, evt) { - var el = evt.target || evt.srcElement; - baidu.editor.ui.Popup.postHide(evt, el); - baidu.editor.ui.ShortCutMenu.postHide(evt); - - }); - editor.addListener("delcells", function () { - if (UE.ui['edittip']) { - new UE.ui['edittip'](editor); - } - editor.getDialog('edittip').open(); - }); - - var pastePop, isPaste = false, timer; - editor.addListener("afterpaste", function () { - if(editor.queryCommandState('pasteplain')) - return; - if(baidu.editor.ui.PastePicker){ - pastePop = new baidu.editor.ui.Popup({ - content:new baidu.editor.ui.PastePicker({editor:editor}), - editor:editor, - className:'edui-wordpastepop' - }); - pastePop.render(); - } - isPaste = true; - }); - - editor.addListener("afterinserthtml", function () { - clearTimeout(timer); - timer = setTimeout(function () { - if (pastePop && (isPaste || editor.ui._isTransfer)) { - if(pastePop.isHidden()){ - var span = domUtils.createElement(editor.document, 'span', { - 'style':"line-height:0px;", - 'innerHTML':'\ufeff' - }), - range = editor.selection.getRange(); - range.insertNode(span); - var tmp= getDomNode(span, 'firstChild', 'previousSibling'); - tmp && pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp); - domUtils.remove(span); - }else{ - pastePop.show(); - } - delete editor.ui._isTransfer; - isPaste = false; - } - }, 200) - }); - editor.addListener('contextmenu', function (t, evt) { - baidu.editor.ui.Popup.postHide(evt); - }); - editor.addListener('keydown', function (t, evt) { - if (pastePop) pastePop.dispose(evt); - var keyCode = evt.keyCode || evt.which; - if(evt.altKey&&keyCode==90){ - UE.ui.buttons['fullscreen'].onclick(); - } - }); - editor.addListener('wordcount', function (type) { - setCount(this,me); - }); - function setCount(editor,ui) { - editor.setOpt({ - wordCount:true, - maximumWords:10000, - wordCountMsg:editor.options.wordCountMsg || editor.getLang("wordCountMsg"), - wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg") - }); - var opt = editor.options, - max = opt.maximumWords, - msg = opt.wordCountMsg , - errMsg = opt.wordOverFlowMsg, - countDom = ui.getDom('wordcount'); - if (!opt.wordCount) { - return; - } - var count = editor.getContentLength(true); - if (count > max) { - countDom.innerHTML = errMsg; - editor.fireEvent("wordcountoverflow"); - } else { - countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count); - } - } - - editor.addListener('selectionchange', function () { - if (editor.options.elementPathEnabled) { - me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']() - } - if (editor.options.scaleEnabled) { - me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale'](); - - } - }); - var popup = new baidu.editor.ui.Popup({ - editor:editor, - content:'', - className:'edui-bubble', - _onEditButtonClick:function () { - this.hide(); - editor.ui._dialogs.linkDialog.open(); - }, - _onImgEditButtonClick:function (name) { - this.hide(); - editor.ui._dialogs[name] && editor.ui._dialogs[name].open(); - - }, - _onImgSetFloat:function (value) { - this.hide(); - editor.execCommand("imagefloat", value); - - }, - _setIframeAlign:function (value) { - var frame = popup.anchorEl; - var newFrame = frame.cloneNode(true); - switch (value) { - case -2: - newFrame.setAttribute("align", ""); - break; - case -1: - newFrame.setAttribute("align", "left"); - break; - case 1: - newFrame.setAttribute("align", "right"); - break; - } - frame.parentNode.insertBefore(newFrame, frame); - domUtils.remove(frame); - popup.anchorEl = newFrame; - popup.showAnchor(popup.anchorEl); - }, - _updateIframe:function () { - var frame = editor._iframe = popup.anchorEl; - if(domUtils.hasClass(frame, 'ueditor_baidumap')) { - editor.selection.getRange().selectNode(frame).select(); - editor.ui._dialogs.mapDialog.open(); - popup.hide(); - } else { - editor.ui._dialogs.insertframeDialog.open(); - popup.hide(); - } - }, - _onRemoveButtonClick:function (cmdName) { - editor.execCommand(cmdName); - this.hide(); - }, - queryAutoHide:function (el) { - if (el && el.ownerDocument == editor.document) { - if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) { - return el !== popup.anchorEl; - } - } - return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el); - } - }); - popup.render(); - if (editor.options.imagePopup) { - editor.addListener('mouseover', function (t, evt) { - evt = evt || window.event; - var el = evt.target || evt.srcElement; - if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) { - var html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("default") + '  ' + editor.getLang("justifyleft") + '  ' + editor.getLang("justifyright") + '  ' + - ' ' + editor.getLang("modify") + ''); - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = el; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - } - }); - editor.addListener('selectionchange', function (t, causeByUi) { - if (!causeByUi) return; - var html = '', str = "", - img = editor.selection.getRange().getClosedNode(), - dialogs = editor.ui._dialogs; - if (img && img.tagName == 'IMG') { - var dialogName = 'insertimageDialog'; - if (img.className.indexOf("edui-faked-video") != -1 || img.className.indexOf("edui-upload-video") != -1) { - dialogName = "insertvideoDialog" - } - if (img.className.indexOf("edui-faked-webapp") != -1) { - dialogName = "webappDialog" - } - if (img.src.indexOf("http://api.map.baidu.com") != -1) { - dialogName = "mapDialog" - } - if (img.className.indexOf("edui-faked-music") != -1) { - dialogName = "musicDialog" - } - if (img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1) { - dialogName = "gmapDialog" - } - if (img.getAttribute("anchorname")) { - dialogName = "anchorDialog"; - html = popup.formatHtml( - '' + editor.getLang("property") + ': ' + editor.getLang("modify") + '  ' + - '' + editor.getLang("delete") + ''); - } - if (img.getAttribute("word_img")) { - //todo 放到dialog去做查询 - editor.word_img = [img.getAttribute("word_img")]; - dialogName = "wordimageDialog" - } - if(domUtils.hasClass(img, 'loadingclass') || domUtils.hasClass(img, 'loaderrorclass')) { - dialogName = ""; - } - if (!dialogs[dialogName]) { - return; - } - str = '' + editor.getLang("property") + ': '+ - '' + editor.getLang("default") + '  ' + - '' + editor.getLang("justifyleft") + '  ' + - '' + editor.getLang("justifyright") + '  ' + - '' + editor.getLang("justifycenter") + '  '+ - '' + editor.getLang("modify") + ''; - - !html && (html = popup.formatHtml(str)) - - } - if (editor.ui._dialogs.linkDialog) { - var link = editor.queryCommandValue('link'); - var url; - if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) { - var txt = url; - if (url.length > 30) { - txt = url.substring(0, 20) + "..."; - } - if (html) { - html += '
    ' - } - html += popup.formatHtml( - '' + editor.getLang("anthorMsg") + ': ' + txt + '' + - ' ' + editor.getLang("modify") + '' + - ' ' + editor.getLang("clear") + ''); - popup.showAnchor(link); - } - } - - if (html) { - popup.getDom('content').innerHTML = html; - popup.anchorEl = img || link; - popup.showAnchor(popup.anchorEl); - } else { - popup.hide(); - } - }); - } - - }, - _initToolbars:function () { - var editor = this.editor; - var toolbars = this.toolbars || []; - var toolbarUis = []; - for (var i = 0; i < toolbars.length; i++) { - var toolbar = toolbars[i]; - var toolbarUi = new baidu.editor.ui.Toolbar({theme:editor.options.theme}); - for (var j = 0; j < toolbar.length; j++) { - var toolbarItem = toolbar[j]; - var toolbarItemUi = null; - if (typeof toolbarItem == 'string') { - toolbarItem = toolbarItem.toLowerCase(); - if (toolbarItem == '|') { - toolbarItem = 'Separator'; - } - if(toolbarItem == '||'){ - toolbarItem = 'Breakline'; - } - if (baidu.editor.ui[toolbarItem]) { - toolbarItemUi = new baidu.editor.ui[toolbarItem](editor); - } - - //fullscreen这里单独处理一下,放到首行去 - if (toolbarItem == 'fullscreen') { - if (toolbarUis && toolbarUis[0]) { - toolbarUis[0].items.splice(0, 0, toolbarItemUi); - } else { - toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi); - } - - continue; - - - } - } else { - toolbarItemUi = toolbarItem; - } - if (toolbarItemUi && toolbarItemUi.id) { - - toolbarUi.add(toolbarItemUi); - } - } - toolbarUis[i] = toolbarUi; - } - - //接受外部定制的UI(修复因 utils.each 无法准确的循环出对象的全部元素而导致的自定义 UI 不符合预期的 BUG by HaoChuan9421) - - // utils.each(UE._customizeUI,function(obj,key){ - // var itemUI,index; - // if(obj.id && obj.id != editor.key){ - // return false; - // } - // itemUI = obj.execFn.call(editor,editor,key); - // if(itemUI){ - // index = obj.index; - // if(index === undefined){ - // index = toolbarUi.items.length; - // } - // toolbarUi.add(itemUI,index) - // } - // }); - - - for(var key in UE._customizeUI){ - var obj = UE._customizeUI[key] - var itemUI,index; - if(!obj.id || obj.id == editor.key){ - itemUI = obj.execFn.call(editor,editor,key); - if(itemUI){ - index = obj.index; - if(index === undefined){ - index = toolbarUi.items.length; - } - toolbarUi.add(itemUI,index) - } - } - } - - this.toolbars = toolbarUis; - }, - getHtmlTpl:function () { - return '
    ' + - '
    ' + - (this.toolbars.length ? - '
    ' + - this.renderToolbarBoxHtml() + - '
    ' : '') + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - //modify wdcount by matao - '
    ' + - '' + - '' + - '' + - '
    ' + - '
    ' + - '
    '; - }, - showWordImageDialog:function () { - this._dialogs['wordimageDialog'].open(); - }, - renderToolbarBoxHtml:function () { - var buff = []; - for (var i = 0; i < this.toolbars.length; i++) { - buff.push(this.toolbars[i].renderHtml()); - } - return buff.join(''); - }, - setFullScreen:function (fullscreen) { - - var editor = this.editor, - container = editor.container.parentNode.parentNode; - if (this._fullscreen != fullscreen) { - this._fullscreen = fullscreen; - this.editor.fireEvent('beforefullscreenchange', fullscreen); - if (baidu.editor.browser.gecko) { - var bk = editor.selection.getRange().createBookmark(); - } - if (fullscreen) { - while (container.tagName != "BODY") { - var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position"); - nodeStack.push(position); - container.style.position = "static"; - container = container.parentNode; - } - this._bakHtmlOverflow = document.documentElement.style.overflow; - this._bakBodyOverflow = document.body.style.overflow; - this._bakAutoHeight = this.editor.autoHeightEnabled; - this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); - - this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth; - if (this._bakAutoHeight) { - //当全屏时不能执行自动长高 - editor.autoHeightEnabled = false; - this.editor.disableAutoHeight(); - } - - document.documentElement.style.overflow = 'hidden'; - //修复,滚动条不收起的问题 - - window.scrollTo(0,window.scrollY); - this._bakCssText = this.getDom().style.cssText; - this._bakCssText1 = this.getDom('iframeholder').style.cssText; - editor.iframe.parentNode.style.width = ''; - this._updateFullScreen(); - } else { - while (container.tagName != "BODY") { - container.style.position = nodeStack.shift(); - container = container.parentNode; - } - this.getDom().style.cssText = this._bakCssText; - this.getDom('iframeholder').style.cssText = this._bakCssText1; - if (this._bakAutoHeight) { - editor.autoHeightEnabled = true; - this.editor.enableAutoHeight(); - } - - document.documentElement.style.overflow = this._bakHtmlOverflow; - document.body.style.overflow = this._bakBodyOverflow; - editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px'; - window.scrollTo(0, this._bakScrollTop); - } - if (browser.gecko && editor.body.contentEditable === 'true') { - var input = document.createElement('input'); - document.body.appendChild(input); - editor.body.contentEditable = false; - setTimeout(function () { - input.focus(); - setTimeout(function () { - editor.body.contentEditable = true; - editor.fireEvent('fullscreenchanged', fullscreen); - editor.selection.getRange().moveToBookmark(bk).select(true); - baidu.editor.dom.domUtils.remove(input); - fullscreen && window.scroll(0, 0); - }, 0) - }, 0) - } - - if(editor.body.contentEditable === 'true'){ - this.editor.fireEvent('fullscreenchanged', fullscreen); - this.triggerLayout(); - } - - } - }, - _updateFullScreen:function () { - if (this._fullscreen) { - var vpRect = uiUtils.getViewportRect(); - this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset || 0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style.zIndex * 1 + 100); - uiUtils.setViewportOffset(this.getDom(), { left:0, top:this.editor.options.topOffset || 0 }); - this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom('bottombar').offsetHeight - (this.editor.options.topOffset || 0),true); - //不手动调一下,会导致全屏失效 - if(browser.gecko){ - try{ - window.onresize(); - }catch(e){ - - } - - } - } - }, - _updateElementPath:function () { - var bottom = this.getDom('elementpath'), list; - if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) { - - var buff = []; - for (var i = 0, ci; ci = list[i]; i++) { - buff[i] = this.formatHtml('' + ci + ''); - } - bottom.innerHTML = '
    ' + this.editor.getLang("elementPathTip") + ': ' + buff.join(' > ') + '
    '; - - } else { - bottom.style.display = 'none' - } - }, - disableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.innerHTML = ''; - bottom.style.display = 'none'; - this.elementPathEnabled = false; - - }, - enableElementPath:function () { - var bottom = this.getDom('elementpath'); - bottom.style.display = ''; - this.elementPathEnabled = true; - this._updateElementPath(); - }, - _scale:function () { - var doc = document, - editor = this.editor, - editorHolder = editor.container, - editorDocument = editor.document, - toolbarBox = this.getDom("toolbarbox"), - bottombar = this.getDom("bottombar"), - scale = this.getDom("scale"), - scalelayer = this.getDom("scalelayer"); - - var isMouseMove = false, - position = null, - minEditorHeight = 0, - minEditorWidth = editor.options.minFrameWidth, - pageX = 0, - pageY = 0, - scaleWidth = 0, - scaleHeight = 0; - - function down() { - position = domUtils.getXY(editorHolder); - - if (!minEditorHeight) { - minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight; - } - - scalelayer.style.cssText = "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + editorHolder.offsetWidth + "px;height:" - + editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1); - - domUtils.on(doc, "mousemove", move); - domUtils.on(editorDocument, "mouseup", up); - domUtils.on(doc, "mouseup", up); - } - - var me = this; - //by xuheng 全屏时关掉缩放 - this.editor.addListener('fullscreenchanged', function (e, fullScreen) { - if (fullScreen) { - me.disableScale(); - - } else { - if (me.editor.options.scaleEnabled) { - me.enableScale(); - var tmpNode = me.editor.document.createElement('span'); - me.editor.body.appendChild(tmpNode); - me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight - 20) + 'px'; - domUtils.remove(tmpNode) - } - } - }); - function move(event) { - clearSelection(); - var e = event || window.event; - pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX); - pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY); - scaleWidth = pageX - position.x; - scaleHeight = pageY - position.y; - - if (scaleWidth >= minEditorWidth) { - isMouseMove = true; - scalelayer.style.width = scaleWidth + 'px'; - } - if (scaleHeight >= minEditorHeight) { - isMouseMove = true; - scalelayer.style.height = scaleHeight + "px"; - } - } - - function up() { - if (isMouseMove) { - isMouseMove = false; - editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2; - editorHolder.style.width = editor.ui._actualFrameWidth + 'px'; - - editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2,true); - } - if (scalelayer) { - scalelayer.style.display = "none"; - } - clearSelection(); - domUtils.un(doc, "mousemove", move); - domUtils.un(editorDocument, "mouseup", up); - domUtils.un(doc, "mouseup", up); - } - - function clearSelection() { - if (browser.ie) - doc.selection.clear(); - else - window.getSelection().removeAllRanges(); - } - - this.enableScale = function () { - //trace:2868 - if (editor.queryCommandState("source") == 1) return; - scale.style.display = ""; - this.scaleEnabled = true; - domUtils.on(scale, "mousedown", down); - }; - this.disableScale = function () { - scale.style.display = "none"; - this.scaleEnabled = false; - domUtils.un(scale, "mousedown", down); - }; - }, - isFullScreen:function () { - return this._fullscreen; - }, - postRender:function () { - UIBase.prototype.postRender.call(this); - for (var i = 0; i < this.toolbars.length; i++) { - this.toolbars[i].postRender(); - } - var me = this; - var timerId, - domUtils = baidu.editor.dom.domUtils, - updateFullScreenTime = function () { - clearTimeout(timerId); - timerId = setTimeout(function () { - me._updateFullScreen(); - }); - }; - domUtils.on(window, 'resize', updateFullScreenTime); - - me.addListener('destroy', function () { - domUtils.un(window, 'resize', updateFullScreenTime); - clearTimeout(timerId); - }) - }, - showToolbarMsg:function (msg, flag) { - this.getDom('toolbarmsg_label').innerHTML = msg; - this.getDom('toolbarmsg').style.display = ''; - // - if (!flag) { - var w = this.getDom('upload_dialog'); - w.style.display = 'none'; - } - }, - hideToolbarMsg:function () { - this.getDom('toolbarmsg').style.display = 'none'; - }, - mapUrl:function (url) { - return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : '' - }, - triggerLayout:function () { - var dom = this.getDom(); - if (dom.style.zoom == '1') { - dom.style.zoom = '100%'; - } else { - dom.style.zoom = '1'; - } - } - }; - utils.inherits(EditorUI, baidu.editor.ui.UIBase); - - - var instances = {}; - - - UE.ui.Editor = function (options) { - var editor = new UE.Editor(options); - editor.options.editor = editor; - utils.loadFile(document, { - href:editor.options.themePath + editor.options.theme + "/css/ueditor.css", - tag:"link", - type:"text/css", - rel:"stylesheet" - }); - - var oldRender = editor.render; - editor.render = function (holder) { - if (holder.constructor === String) { - editor.key = holder; - instances[holder] = editor; - } - utils.domReady(function () { - editor.langIsReady ? renderUI() : editor.addListener("langReady", renderUI); - function renderUI() { - editor.setOpt({ - labelMap:editor.options.labelMap || editor.getLang('labelMap') - }); - new EditorUI(editor.options); - if (holder) { - if (holder.constructor === String) { - holder = document.getElementById(holder); - } - holder && holder.getAttribute('name') && ( editor.options.textarea = holder.getAttribute('name')); - if (holder && /script|textarea/ig.test(holder.tagName)) { - var newDiv = document.createElement('div'); - holder.parentNode.insertBefore(newDiv, holder); - var cont = holder.value || holder.innerHTML; - editor.options.initialContent = /^[\t\r\n ]*$/.test(cont) ? editor.options.initialContent : - cont.replace(/>[\n\r\t]+([ ]{4})+/g, '>') - .replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<'); - holder.className && (newDiv.className = holder.className); - holder.style.cssText && (newDiv.style.cssText = holder.style.cssText); - if (/textarea/i.test(holder.tagName)) { - editor.textarea = holder; - editor.textarea.style.display = 'none'; - - - } else { - holder.parentNode.removeChild(holder); - - - } - if(holder.id){ - newDiv.id = holder.id; - domUtils.removeAttributes(holder,'id'); - } - holder = newDiv; - holder.innerHTML = ''; - } - - } - domUtils.addClass(holder, "edui-" + editor.options.theme); - editor.ui.render(holder); - var opt = editor.options; - //给实例添加一个编辑器的容器引用 - editor.container = editor.ui.getDom(); - var parents = domUtils.findParents(holder,true); - var displays = []; - for(var i = 0 ,ci;ci=parents[i];i++){ - displays[i] = ci.style.display; - ci.style.display = 'block' - } - if (opt.initialFrameWidth) { - opt.minFrameWidth = opt.initialFrameWidth; - } else { - opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth; - var styleWidth = holder.style.width; - if(/%$/.test(styleWidth)) { - opt.initialFrameWidth = styleWidth; - } - } - if (opt.initialFrameHeight) { - opt.minFrameHeight = opt.initialFrameHeight; - } else { - opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight; - } - for(var i = 0 ,ci;ci=parents[i];i++){ - ci.style.display = displays[i] - } - //编辑器最外容器设置了高度,会导致,编辑器不占位 - //todo 先去掉,没有找到原因 - if(holder.style.height){ - holder.style.height = '' - } - editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' : 'px'); - editor.container.style.zIndex = opt.zIndex; - oldRender.call(editor, editor.ui.getDom('iframeholder')); - editor.fireEvent("afteruiready"); - } - }) - }; - return editor; - }; - - - /** - * @file - * @name UE - * @short UE - * @desc UEditor的顶部命名空间 - */ - /** - * @name getEditor - * @since 1.2.4+ - * @grammar UE.getEditor(id,[opt]) => Editor实例 - * @desc 提供一个全局的方法得到编辑器实例 - * - * * ''id'' 放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回 - * * ''opt'' 编辑器的可选参数 - * @example - * UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例 - * this.setContent('hello') - * }}); - * UE.getEditor('containerId'); //返回刚创建的实例 - * - */ - UE.getEditor = function (id, opt) { - var editor = instances[id]; - if (!editor) { - editor = instances[id] = new UE.ui.Editor(opt); - editor.render(id); - } - return editor; - }; - - - UE.delEditor = function (id) { - var editor; - if (editor = instances[id]) { - editor.key && editor.destroy(); - delete instances[id] - } - }; - - UE.registerUI = function(uiName,fn,index,editorId){ - utils.each(uiName.split(/\s+/), function (name) { - UE._customizeUI[name] = { - id : editorId, - execFn:fn, - index:index - }; - }) - - } - -})(); - -// adapter/message.js -UE.registerUI('message', function(editor) { - - var editorui = baidu.editor.ui; - var Message = editorui.Message; - var holder; - var _messageItems = []; - var me = editor; - - me.addListener('ready', function(){ - holder = document.getElementById(me.ui.id + '_message_holder'); - updateHolderPos(); - // HaoChuan9421 - // setTimeout(function(){ - // updateHolderPos(); - // }, 500); - }); - - me.addListener('showmessage', function(type, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = new Message({ - 'timeout': opt.timeout, - 'type': opt.type, - 'content': opt.content, - 'keepshow': opt.keepshow, - 'editor': me - }), - mid = opt.id || ('msg_' + (+new Date()).toString(36)); - message.render(holder); - _messageItems[mid] = message; - message.reset(opt); - updateHolderPos(); - return mid; - }); - - me.addListener('updatemessage',function(type, id, opt){ - opt = utils.isString(opt) ? { - 'content': opt - } : opt; - var message = _messageItems[id]; - message.render(holder); - message && message.reset(opt); - }); - - me.addListener('hidemessage',function(type, id){ - var message = _messageItems[id]; - message && message.hide(); - }); - - function updateHolderPos(){ - var toolbarbox = me.ui.getDom('toolbarbox'); - if (toolbarbox) { - holder.style.top = toolbarbox.offsetHeight + 3 + 'px'; - } - holder.style.zIndex = Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1; - } - -}); - - -// adapter/autosave.js -UE.registerUI('autosave', function(editor) { - var timer = null,uid = null; - editor.on('afterautosave',function(){ - clearTimeout(timer); - - timer = setTimeout(function(){ - if(uid){ - editor.trigger('hidemessage',uid); - } - uid = editor.trigger('showmessage',{ - content : editor.getLang('autosave.success'), - timeout : 2000 - }); - - },2000) - }) - -}); - - - -})(); diff --git a/yshop-drink-vue/public/UEditor22/ueditor.all.min.js b/yshop-drink-vue/public/UEditor22/ueditor.all.min.js deleted file mode 100644 index 1f48238..0000000 --- a/yshop-drink-vue/public/UEditor22/ueditor.all.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -!function(){function getListener(a,b,c){var d;return b=b.toLowerCase(),(d=a.__allListeners||c&&(a.__allListeners={}))&&(d[b]||c&&(d[b]=[]))}function getDomNode(a,b,c,d,e,f){var g,h=d&&a[b];for(!h&&(h=a[c]);!h&&(g=(g||a).parentNode);){if("BODY"==g.tagName||f&&!f(g))return null;h=g[c]}return h&&e&&!e(h)?getDomNode(h,b,c,!1,e):h}UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu,window.UE=baidu.editor=window.UE||{},UE.plugins={},UE.commands={},UE.instants={},UE.I18N={},UE._customizeUI={},UE.version="1.4.3";var dom=UE.dom={},browser=UE.browser=function(){var a=navigator.userAgent.toLowerCase(),b=window.opera,c={ie:/(msie\s|trident.*rv:)([\w.]+)/.test(a),opera:!!b&&b.version,webkit:a.indexOf(" applewebkit/")>-1,mac:a.indexOf("macintosh")>-1,quirks:"BackCompat"==document.compatMode};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.opera&&!c.ie;var d=0;if(c.ie){var e=a.match(/(?:msie\s([\w.]+))/),f=a.match(/(?:trident.*rv:([\w.]+))/);d=e&&f&&e[1]&&f[1]?Math.max(1*e[1],1*f[1]):e&&e[1]?1*e[1]:f&&f[1]?1*f[1]:0,c.ie11Compat=11==document.documentMode,c.ie9Compat=9==document.documentMode,c.ie8=!!document.documentMode,c.ie8Compat=8==document.documentMode,c.ie7Compat=7==d&&!document.documentMode||7==document.documentMode,c.ie6Compat=d<7||c.quirks,c.ie9above=d>8,c.ie9below=d<9,c.ie11above=d>10,c.ie11below=d<11}if(c.gecko){var g=a.match(/rv:([\d\.]+)/);g&&(g=g[1].split("."),d=1e4*g[0]+100*(g[1]||0)+1*(g[2]||0))}return/chrome\/(\d+\.\d)/i.test(a)&&(c.chrome=+RegExp.$1),/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a)&&!/chrome/i.test(a)&&(c.safari=+(RegExp.$1||RegExp.$2)),c.opera&&(d=parseFloat(b.version())),c.webkit&&(d=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),c.version=d,c.isCompatible=!c.mobile&&(c.ie&&d>=6||c.gecko&&d>=10801||c.opera&&d>=9.5||c.air&&d>=1||c.webkit&&d>=522||!1),c}(),ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera,utils=UE.utils={each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d=c&&a===b)return d=e,!1}),d},removeItem:function(a,b){for(var c=0,d=a.length;c'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,function(a,b){return b?a:{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},unhtmlForUrl:function(a,b){return a?a.replace(b||/[<">']/g,function(a){return{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},html:function(a){return a?a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g,function(a){return{"<":"<","&":"&",""":'"',">":">","'":"'"," ":" "}[a]}):""},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b={"float":void 0!=a.cssFloat?"cssFloat":void 0!=a.styleFloat?"styleFloat":"float"};return function(a){return b[a]||(b[a]=a.toLowerCase().replace(/-./g,function(a){return a.charAt(1).toUpperCase()}))}}(),loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url settings of file ueditor.config.js ")},c.getElementsByTagName("head")[0].appendChild(i)}}}(),isEmptyObject:function(a){if(null==a)return!0;if(this.isArray(a)||this.isString(a))return 0===a.length;for(var b in a)if(a.hasOwnProperty(b))return!1;return!0},fixColor:function(a,b){if(/color/i.test(a)&&/rgba?/.test(b)){var c=b.split(",");if(c.length>3)return"";b="#";for(var d,e=0;d=c[e++];)d=parseInt(d.replace(/[^\d]/gi,""),10).toString(16),b+=1==d.length?"0"+d:d;b=b.toUpperCase()}return b},optCss:function(a){function b(a,b){if(!a)return"";var c=a.top,d=a.bottom,e=a.left,f=a.right,g="";if(c&&e&&d&&f)g+=";"+b+":"+(c==d&&d==e&&e==f?c:c==d&&e==f?c+" "+e:e==f?c+" "+e+" "+d:c+" "+f+" "+d+" "+e)+";";else for(var h in a)g+=";"+b+"-"+h+":"+a[h]+";";return g}var c,d;return a=a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(a,b,e,f){if(1==f.split(" ").length)switch(b){case"padding":return!c&&(c={}),c[e]=f,"";case"margin":return!d&&(d={}),d[e]=f,"";case"border":return"initial"==f?"":a}return a}),a+=b(c,"padding")+b(d,"margin"),a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";"})},clone:function(a,b){var c;b=b||{};for(var d in a)a.hasOwnProperty(d)&&(c=a[d],"object"==typeof c?(b[d]=utils.isArray(c)?[]:{},utils.clone(a[d],b[d])):b[d]=c);return b},transUnitToPx:function(a){if(!/(pt|cm)/.test(a))return a;var b;switch(a.replace(/([\d.]+)(\w+)/,function(c,d,e){a=d,b=e}),b){case"cm":a=25*parseFloat(a);break;case"pt":a=Math.round(96*parseFloat(a)/72)}return a+(a?"px":"")},domReady:function(){function a(a){a.isReady=!0;for(var c;c=b.pop();c());}var b=[];return function(c,d){d=d||window;var e=d.document;c&&b.push(c),"complete"===e.readyState?a(e):(e.isReady&&a(e),browser.ie&&11!=browser.version?(!function(){if(!e.isReady){try{e.documentElement.doScroll("left")}catch(b){return void setTimeout(arguments.callee,0)}a(e)}}(),d.attachEvent("onload",function(){a(e)})):(e.addEventListener("DOMContentLoaded",function(){e.removeEventListener("DOMContentLoaded",arguments.callee,!1),a(e)},!1),d.addEventListener("load",function(){a(e)},!1)))}}(),cssRule:browser.ie&&11!=browser.version?function(a,b,c){var d,e;if(void 0===b||b&&b.nodeType&&9==b.nodeType){if(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.indexList||(c.indexList={}),e=d[a],void 0!==e)return c.styleSheets[e].cssText}else{if(c=c||document,d=c.indexList||(c.indexList={}),e=d[a],""===b)return void 0!==e&&(c.styleSheets[e].cssText="",delete d[a],!0);void 0!==e?sheetStyle=c.styleSheets[e]:(sheetStyle=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e),sheetStyle.cssText=b}}:function(a,b,c){var d;return void 0===b||b&&b.nodeType&&9==b.nodeType?(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.getElementById(a),d?d.innerHTML:void 0):(c=c||document,d=c.getElementById(a),""===b?!!d&&(d.parentNode.removeChild(d),!0):void(d?d.innerHTML=b:(d=c.createElement("style"),d.id=a,d.innerHTML=b,c.getElementsByTagName("head")[0].appendChild(d))))},sort:function(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c0){var g=a[c];a[c]=a[e],a[e]=g}return a},serializeParam:function(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c)if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d1||b!==a.parentNode){a.style.cssText=b.style.cssText+";"+a.style.cssText,b=b.parentNode;continue}b.style.cssText+=";"+a.style.cssText,"A"==b.tagName&&(b.style.textDecoration="underline")}if("A"!=b.tagName){b===a.parentNode&&domUtils.remove(a,!0);break}}b=b.parentNode}},mergeSibling:function(a,b,c){function d(a,b,c){var d;if((d=c[a])&&!domUtils.isBookmarkNode(d)&&1==d.nodeType&&domUtils.isSameElement(c,d)){for(;d.firstChild;)"firstChild"==b?c.insertBefore(d.lastChild,c.firstChild):c.appendChild(d.firstChild);domUtils.remove(d)}}!b&&d("previousSibling","firstChild",a),!c&&d("nextSibling","lastChild",a)},unSelectable:ie&&browser.ie9below||browser.opera?function(a){a.onselectstart=function(){return!1},a.onclick=a.onkeyup=a.onkeydown=function(){return!1},a.unselectable="on",a.setAttribute("unselectable","on");for(var b,c=0;b=a.all[c++];)switch(b.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:b.unselectable="on",a.setAttribute("unselectable","on")}}:function(a){a.style.MozUserSelect=a.style.webkitUserSelect=a.style.msUserSelect=a.style.KhtmlUserSelect="none"},removeAttributes:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0;c=b[d++];){switch(c=attrFix[c]||c){case"className":a[c]="";break;case"style":a.style.cssText="";var e=a.getAttributeNode("style");!browser.ie&&e&&a.removeAttributeNode(e)}a.removeAttribute(c)}},createElement:function(a,b,c){return domUtils.setAttributes(a.createElement(b),c)},setAttributes:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];switch(c){case"class":a.className=d;break;case"style":a.style.cssText=a.style.cssText+";"+d;break;case"innerHTML":a[c]=d;break;case"value":a.value=d;break;default:a.setAttribute(attrFix[c]||c,d)}}return a},getComputedStyle:function(a,b){var c="width height top left";if(c.indexOf(b)>-1)return a["offset"+b.replace(/^\w/,function(a){return a.toUpperCase()})]+"px";if(3==a.nodeType&&(a=a.parentNode),browser.ie&&browser.version<9&&"font-size"==b&&!a.style.fontSize&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]){var d=a.ownerDocument.createElement("span");d.style.cssText="padding:0;border:0;font-family:simsun;",d.innerHTML=".",a.appendChild(d);var e=d.offsetHeight;return a.removeChild(d),d=null,e+"px"}try{var f=domUtils.getStyle(a,b)||(window.getComputedStyle?domUtils.getWindow(a).getComputedStyle(a,"").getPropertyValue(b):(a.currentStyle||a.style)[utils.cssStyleToDomStyle(b)])}catch(g){return""}return utils.transUnitToPx(utils.fixColor(b,f))},removeClasses:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=utils.trim(e).replace(/[ ]{2,}/g," "),e?a.className=e:domUtils.removeAttributes(a,["class"])},addClass:function(a,b){if(a){b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)new RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=utils.trim(e)}},hasClass:function(a,b){if(utils.isRegExp(b))return b.test(a.className);b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},removeStyle:function(a,b){browser.ie?("color"==b&&(b="(^|;)"+b),a.style.cssText=a.style.cssText.replace(new RegExp(b+"[^:]*:[^;]+;?","ig"),"")):a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(utils.cssStyleToDomStyle(b)),a.style.cssText||domUtils.removeAttributes(a,["style"])},getStyle:function(a,b){var c=a.style[utils.cssStyleToDomStyle(b)];return utils.fixColor(b,c)},setStyle:function(a,b,c){a.style[utils.cssStyleToDomStyle(b)]=c,utils.trim(a.style.cssText)||this.removeAttributes(a,"style")},setStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&domUtils.setStyle(a,c,b[c])},removeDirtyAttr:function(a){for(var b,c=0,d=a.getElementsByTagName("*");b=d[c++];)b.removeAttribute("_moz_dirty");a.removeAttribute("_moz_dirty")},getChildCount:function(a,b){var c=0,d=a.firstChild;for(b=b||function(){return 1};d;)b(d)&&c++,d=d.nextSibling;return c},isEmptyNode:function(a){return!a.firstChild||0==domUtils.getChildCount(a,function(a){return!domUtils.isBr(a)&&!domUtils.isBookmarkNode(a)&&!domUtils.isWhitespace(a)})},clearSelectedArr:function(a){for(var b;b=a.pop();)domUtils.removeAttributes(b,["class"])},scrollToView:function(a,b,c){var d=function(){var a=b.document,c="CSS1Compat"==a.compatMode;return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},e=function(a){if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};var b=a.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},f=d().height,g=f*-1+c;g+=a.offsetHeight||0;var h=domUtils.getXY(a);g+=h.y;var i=e(b).y;(g>i||g0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}},setViewportOffset:function(a,b){var c=0|parseInt(a.style.left),d=0|parseInt(a.style.top),e=a.getBoundingClientRect(),f=b.left-e.left,g=b.top-e.top;f&&(a.style.left=c+f+"px"),g&&(a.style.top=d+g+"px")},fillNode:function(a,b){var c=browser.ie?a.createTextNode(domUtils.fillChar):a.createElement("br");b.innerHTML="",b.appendChild(c)},moveChild:function(a,b,c){for(;a.firstChild;)c&&b.firstChild?b.insertBefore(a.lastChild,b.firstChild):b.appendChild(a.firstChild)},hasNoAttributes:function(a){return browser.ie?/^<\w+\s*?>/.test(a.outerHTML):0==a.attributes.length},isCustomeNode:function(a){return 1==a.nodeType&&a.getAttribute("_ue_custom_node_")},isTagNode:function(a,b){return 1==a.nodeType&&new RegExp("\\b"+a.tagName+"\\b","i").test(b)},filterNodeList:function(a,b,c){var d=[];if(!utils.isFunction(b)){var e=b;b=function(a){return utils.indexOf(utils.isArray(e)?e:e.split(" "),a.tagName.toLowerCase())!=-1}}return utils.each(a,function(a){b(a)&&d.push(a)}),0==d.length?null:1!=d.length&&c?d:d[0]},isInNodeEndBoundary:function(a,b){var c=a.startContainer;if(3==c.nodeType&&a.startOffset!=c.nodeValue.length)return 0;if(1==c.nodeType&&a.startOffset!=c.childNodes.length)return 0;for(;c!==b;){if(c.nextSibling)return 0;c=c.parentNode}return 1},isBoundaryNode:function(a,b){for(var c;!domUtils.isBody(a);)if(c=a,a=a.parentNode,c!==a[b])return!1;return!0},fillHtml:browser.ie11below?" ":"
    "},fillCharReg=new RegExp(domUtils.fillChar,"g");!function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer===a.endContainer&&a.startOffset==a.endOffset}function b(a){return!a.collapsed&&1==a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.endOffset-a.startOffset==1}function c(b,c,d,e){return 1==c.nodeType&&(dtd.$empty[c.tagName]||dtd.$nonChild[c.tagName])&&(d=domUtils.getNodeIndex(c)+(b?0:1),c=c.parentNode),b?(e.startContainer=c,e.startOffset=d,e.endContainer||e.collapse(!0)):(e.endContainer=c,e.endOffset=d,e.startContainer||e.collapse(!1)),a(e),e}function d(a,b){var c,d,e=a.startContainer,f=a.endContainer,g=a.startOffset,h=a.endOffset,i=a.document,j=i.createDocumentFragment();if(1==e.nodeType&&(e=e.childNodes[g]||(c=e.appendChild(i.createTextNode("")))),1==f.nodeType&&(f=f.childNodes[h]||(d=f.appendChild(i.createTextNode("")))),e===f&&3==e.nodeType)return j.appendChild(i.createTextNode(e.substringData(g,h-g))),b&&(e.deleteData(g,h-g),a.collapse(!0)),j;for(var k,l,m=j,n=domUtils.findParents(e,!0),o=domUtils.findParents(f,!0),p=0;n[p]==o[p];)p++;for(var q,r=p;q=n[r];r++){for(k=q.nextSibling,q==e?c||(3==a.startContainer.nodeType?(m.appendChild(i.createTextNode(e.nodeValue.slice(g))),b&&e.deleteData(g,e.nodeValue.length-g)):m.appendChild(b?e:e.cloneNode(!0))):(l=q.cloneNode(!1),m.appendChild(l));k&&k!==f&&k!==o[r];)q=k.nextSibling,m.appendChild(b?k:k.cloneNode(!0)),k=q;m=l}m=j,n[p]||(m.appendChild(n[p-1].cloneNode(!1)),m=m.firstChild);for(var s,r=p;s=o[r];r++){if(k=s.previousSibling,s==f?d||3!=a.endContainer.nodeType||(m.appendChild(i.createTextNode(f.substringData(0,h))),b&&f.deleteData(0,h)):(l=s.cloneNode(!1),m.appendChild(l)),r!=p||!n[p])for(;k&&k!==e;)s=k.previousSibling,m.insertBefore(b?k:k.cloneNode(!0),m.firstChild),k=s;m=l}return b&&a.setStartBefore(o[p]?n[p]?o[p]:n[p-1]:o[p-1]).collapse(!0),c&&domUtils.remove(c),d&&domUtils.remove(d),j}function e(a,b){try{if(g&&domUtils.inDoc(g,a))if(g.nodeValue.replace(fillCharReg,"").length)g.nodeValue=g.nodeValue.replace(fillCharReg,"");else{var c=g.parentNode;for(domUtils.remove(g);c&&domUtils.isEmptyInlineElement(c)&&(browser.safari?!(domUtils.getPosition(c,b)&domUtils.POSITION_CONTAINS):!c.contains(b));)g=c.parentNode,domUtils.remove(c),c=g; -}}catch(d){}}function f(a,b){var c;for(a=a[b];a&&domUtils.isFillChar(a);)c=a[b],domUtils.remove(a),a=c}var g,h=0,i=domUtils.fillChar,j=dom.Range=function(a){var b=this;b.startContainer=b.startOffset=b.endContainer=b.endOffset=null,b.document=a,b.collapsed=!0};j.prototype={cloneContents:function(){return this.collapsed?null:d(this,0)},deleteContents:function(){var a;return this.collapsed||d(this,1),browser.webkit&&(a=this.startContainer,3!=a.nodeType||a.nodeValue.length||(this.setStartBefore(a).collapse(!0),domUtils.remove(a))),this},extractContents:function(){return this.collapsed?null:d(this,2)},setStart:function(a,b){return c(!0,a,b,this)},setEnd:function(a,b){return c(!1,a,b,this)},setStartAfter:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a)+1)},setStartBefore:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a))},setEndAfter:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a)+1)},setEndBefore:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a))},setStartAtFirst:function(a){return this.setStart(a,0)},setStartAtLast:function(a){return this.setStart(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},setEndAtFirst:function(a){return this.setEnd(a,0)},setEndAtLast:function(a){return this.setEnd(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){return this.setStart(a,0).setEndAtLast(a)},cloneRange:function(){var a=this;return new j(a.document).setStart(a.startContainer,a.startOffset).setEnd(a.endContainer,a.endOffset)},collapse:function(a){var b=this;return a?(b.endContainer=b.startContainer,b.endOffset=b.startOffset):(b.startContainer=b.endContainer,b.startOffset=b.endOffset),b.collapsed=!0,b},shrinkBoundary:function(a){function b(a){return 1==a.nodeType&&!domUtils.isBookmarkNode(a)&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]}for(var c,d=this,e=d.collapsed;1==d.startContainer.nodeType&&(c=d.startContainer.childNodes[d.startOffset])&&b(c);)d.setStart(c,0);if(e)return d.collapse(!0);if(!a)for(;1==d.endContainer.nodeType&&d.endOffset>0&&(c=d.endContainer.childNodes[d.endOffset-1])&&b(c);)d.setEnd(c,c.childNodes.length);return d},getCommonAncestor:function(a,c){var d=this,e=d.startContainer,f=d.endContainer;return e===f?a&&b(this)&&(e=e.childNodes[d.startOffset],1==e.nodeType)?e:c&&3==e.nodeType?e.parentNode:e:domUtils.getCommonAncestor(e,f)},trimBoundary:function(a){this.txtToElmBoundary();var b=this.startContainer,c=this.startOffset,d=this.collapsed,e=this.endContainer;if(3==b.nodeType){if(0==c)this.setStartBefore(b);else if(c>=b.nodeValue.length)this.setStartAfter(b);else{var f=domUtils.split(b,c);b===e?this.setEnd(f,this.endOffset-c):b.parentNode===e&&(this.endOffset+=1),this.setStartBefore(f)}if(d)return this.collapse(!0)}return a||(c=this.endOffset,e=this.endContainer,3==e.nodeType&&(0==c?this.setEndBefore(e):(c=c.nodeValue.length&&a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"After"](c):a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"Before"](c))}return!a&&this.collapsed||(b(this,"start"),b(this,"end")),this},insertNode:function(a){var b=a,c=1;11==a.nodeType&&(b=a.firstChild,c=a.childNodes.length),this.trimBoundary(!0);var d=this.startContainer,e=this.startOffset,f=d.childNodes[e];return f?d.insertBefore(a,f):d.appendChild(a),b.parentNode===this.endContainer&&(this.endOffset=this.endOffset+c),this.setStartBefore(b)},setCursor:function(a,b){return this.collapse(!a).select(b)},createBookmark:function(a,b){var c,d=this.document.createElement("span");return d.style.cssText="display:none;line-height:0px;",d.appendChild(this.document.createTextNode("‍")),d.id="_baidu_bookmark_start_"+(b?"":h++),this.collapsed||(c=d.cloneNode(!0),c.id="_baidu_bookmark_end_"+(b?"":h++)),this.insertNode(d),c&&this.collapse().insertNode(c).setEndBefore(c),this.setStartAfter(d),{start:a?d.id:d,end:c?a?c.id:c:null,id:a}},moveToBookmark:function(a){var b=a.id?this.document.getElementById(a.start):a.start,c=a.end&&a.id?this.document.getElementById(a.end):a.end;return this.setStartBefore(b),domUtils.remove(b),c?(this.setEndBefore(c),domUtils.remove(c)):this.collapse(!0),this},enlarge:function(a,b){var c,d,e=domUtils.isBody,f=this.document.createTextNode("");if(a){for(d=this.startContainer,1==d.nodeType?d.childNodes[this.startOffset]?c=d=d.childNodes[this.startOffset]:(d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.previousSibling)&&!domUtils.isBlockElm(c);)d=c;this.setStartBefore(d);break}c=d,d=d.parentNode}for(d=this.endContainer,1==d.nodeType?((c=d.childNodes[this.endOffset])?d.insertBefore(f,c):d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.nextSibling)&&!domUtils.isBlockElm(c);)d=c;this.setEndAfter(d);break}c=d,d=d.parentNode}f.parentNode===this.endContainer&&this.endOffset--,domUtils.remove(f)}if(!this.collapsed){for(;!(0!=this.startOffset||b&&b(this.startContainer)||e(this.startContainer));)this.setStartBefore(this.startContainer);for(;!(this.endOffset!=(1==this.endContainer.nodeType?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)||b&&b(this.endContainer)||e(this.endContainer));)this.setEndAfter(this.endContainer)}return this},enlargeToBlockElm:function(a){for(;!domUtils.isBlockElm(this.startContainer);)this.setStartBefore(this.startContainer);if(!a)for(;!domUtils.isBlockElm(this.endContainer);)this.setEndAfter(this.endContainer);return this},adjustmentBoundary:function(){if(!this.collapsed){for(;!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length&&this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length;)this.setStartAfter(this.startContainer);for(;!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[3==this.endContainer.nodeType?"nodeValue":"childNodes"].length;)this.setEndBefore(this.endContainer)}return this},applyInlineStyle:function(a,b,c){if(this.collapsed)return this;this.trimBoundary().enlarge(!1,function(a){return 1==a.nodeType&&domUtils.isBlockElm(a)}).adjustmentBoundary();for(var d,e,f=this.createBookmark(),g=f.end,h=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},i=domUtils.getNextDomNode(f.start,!1,h),j=this.cloneRange();i&&domUtils.getPosition(i,g)&domUtils.POSITION_PRECEDING;)if(3==i.nodeType||dtd[a][i.tagName]){for(j.setStartBefore(i),d=i;d&&(3==d.nodeType||dtd[a][d.tagName])&&d!==g;)e=d,d=domUtils.getNextDomNode(d,1==d.nodeType,null,function(b){return dtd[a][b.tagName]});var k,l=j.setEndAfter(e).extractContents();if(c&&c.length>0){var m,n;n=m=c[0].cloneNode(!1);for(var o,p=1;o=c[p++];)m.appendChild(o.cloneNode(!1)),m=m.firstChild;k=m}else k=j.document.createElement(a);b&&domUtils.setAttributes(k,b),k.appendChild(l),j.insertNode(c?n:k);var q;if("span"==a&&b.style&&/text\-decoration/.test(b.style)&&(q=domUtils.findParentByTagName(k,"a",!0))?(domUtils.setAttributes(q,b),domUtils.remove(k,!0),k=q):(domUtils.mergeSibling(k),domUtils.clearEmptySibling(k)),domUtils.mergeChild(k,b),i=domUtils.getNextDomNode(k,!1,h),domUtils.mergeToParent(k),d===g)break}else i=domUtils.getNextDomNode(i,!0,h);return this.moveToBookmark(f)},removeInlineStyle:function(a){if(this.collapsed)return this;a=utils.isArray(a)?a:[a],this.shrinkBoundary().adjustmentBoundary();for(var b=this.startContainer,c=this.endContainer;;){if(1==b.nodeType){if(utils.indexOf(a,b.tagName.toLowerCase())>-1)break;if("body"==b.tagName.toLowerCase()){b=null;break}}b=b.parentNode}for(;;){if(1==c.nodeType){if(utils.indexOf(a,c.tagName.toLowerCase())>-1)break;if("body"==c.tagName.toLowerCase()){c=null;break}}c=c.parentNode}var d,e,f=this.createBookmark();b&&(e=this.cloneRange().setEndBefore(f.start).setStartBefore(b),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(b,!0),b.parentNode.insertBefore(f.start,b)),c&&(e=this.cloneRange().setStartAfter(f.end).setEndAfter(c),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(c,!1,!0),c.parentNode.insertBefore(f.end,c.nextSibling));for(var g,h=domUtils.getNextDomNode(f.start,!1,function(a){return 1==a.nodeType});h&&h!==f.end;)g=domUtils.getNextDomNode(h,!0,function(a){return 1==a.nodeType}),utils.indexOf(a,h.tagName.toLowerCase())>-1&&domUtils.remove(h,!0),h=g;return this.moveToBookmark(f)},getClosedNode:function(){var a;if(!this.collapsed){var c=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(b(c)){var d=c.startContainer.childNodes[c.startOffset];d&&1==d.nodeType&&(dtd.$empty[d.tagName]||dtd.$nonChild[d.tagName])&&(a=d)}}return a},select:browser.ie?function(a,b){var c;this.collapsed||this.shrinkBoundary();var d=this.getClosedNode();if(d&&!b){try{c=this.document.body.createControlRange(),c.addElement(d),c.select()}catch(h){}return this}var j,k=this.createBookmark(),l=k.start;if(c=this.document.body.createTextRange(),c.moveToElementText(l),c.moveStart("character",1),this.collapsed){if(!a&&3!=this.startContainer.nodeType){var m=this.document.createTextNode(i),n=this.document.createElement("span");n.appendChild(this.document.createTextNode(i)),l.parentNode.insertBefore(n,l),l.parentNode.insertBefore(m,l),e(this.document,m),g=m,f(n,"previousSibling"),f(l,"nextSibling"),c.moveStart("character",-1),c.collapse(!0)}}else{var o=this.document.body.createTextRange();j=k.end,o.moveToElementText(j),c.setEndPoint("EndToEnd",o)}this.moveToBookmark(k),n&&domUtils.remove(n);try{c.select()}catch(h){}return this}:function(a){function b(a){function b(b,c,d){3==b.nodeType&&b.nodeValue.length0)j=k-1;else{if(!(l<0))return{container:d,offset:c(e)};i=k+1}}if(k==-1){if(h.moveToElementText(d),h.setEndPoint("StartToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,g=d.childNodes,!f)return e=g[g.length-1],{container:e,offset:e.nodeValue.length};for(var m=g.length;f>0;)f-=g[--m].nodeValue.length;return{container:g[m],offset:-f}}if(h.collapse(l>0),h.setEndPoint(l>0?"StartToStart":"EndToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,!f)return dtd.$empty[e.tagName]||dtd.$nonChild[e.tagName]?{container:d,offset:c(e)+(l>0?0:1)}:{container:e,offset:l>0?0:e.childNodes.length};for(;f>0;)try{var n=e;e=e[l>0?"previousSibling":"nextSibling"],f-=e.nodeValue.length}catch(o){return{container:d,offset:c(n)}}return{container:e,offset:l>0?-f:e.nodeValue.length+f}}function b(b,c){if(b.item)c.selectNode(b.item(0));else{var d=a(b,!0);c.setStart(d.container,d.offset),0!=b.compareEndPoints("StartToEnd",b)&&(d=a(b,!1),c.setEnd(d.container,d.offset))}return c}function c(a){var b;try{b=a.getNative().createRange()}catch(c){return null}var d=b.item?b.item(0):b.parentElement();return(d.ownerDocument||d)===a.document?b:null}var d=dom.Selection=function(a){var b,d=this;d.document=a,browser.ie9below&&(b=domUtils.getWindow(a).frameElement,domUtils.on(b,"beforedeactivate",function(){d._bakIERange=d.getIERange()}),domUtils.on(b,"activate",function(){try{!c(d)&&d._bakIERange&&d._bakIERange.select()}catch(a){}d._bakIERange=null})),b=a=null};d.prototype={rangeInBody:function(a,b){var c=browser.ie9below||b?a.item?a.item():a.parentElement():a.startContainer;return c===this.document.body||domUtils.inDoc(c,this.document)},getNative:function(){var a=this.document;try{return a?browser.ie9below?a.selection:domUtils.getWindow(a).getSelection():null}catch(b){return null}},getIERange:function(){var a=c(this);return!a&&this._bakIERange?this._bakIERange:a},cache:function(){this.clear(),this._cachedRange=this.getRange(),this._cachedStartElement=this.getStart(),this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath)return this._cachedStartElementPath;var a=this.getStart();return a?domUtils.findParents(a,!0,null,!0):[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){try{if(browser.ie9below){var a=c(this);return!(!a||!this.rangeInBody(a))}return!!this.getNative().rangeCount}catch(b){return!1}},getRange:function(){function a(a){for(var b=c.document.body.firstChild,d=a.collapsed;b&&b.firstChild;)a.setStart(b,0),b=b.firstChild;a.startContainer||a.setStart(c.document.body,0),d&&a.collapse(!0)}var c=this;if(null!=c._cachedRange)return this._cachedRange;var d=new baidu.editor.dom.Range(c.document);if(browser.ie9below){var e=c.getIERange();if(e)try{b(e,d)}catch(f){a(d)}else a(d)}else{var g=c.getNative();if(g&&g.rangeCount){var h=g.getRangeAt(0),i=g.getRangeAt(g.rangeCount-1);d.setStart(h.startContainer,h.startOffset).setEnd(i.endContainer,i.endOffset),d.collapsed&&domUtils.isBody(d.startContainer)&&!d.startOffset&&a(d)}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document))return this._bakRange;a(d)}}return this._bakRange=d},getStart:function(){if(this._cachedStartElement)return this._cachedStartElement;var a,b,c,d,e=browser.ie9below?this.getIERange():this.getRange();if(browser.ie9below){if(!e)return this.document.body.firstChild;if(e.item)return e.item(0);for(a=e.duplicate(),a.text.length>0&&a.moveStart("character",1),a.collapse(1),b=a.parentElement(),d=c=e.parentElement();c=c.parentNode;)if(c==b){b=d;break}}else if(e.shrinkBoundary(),b=e.startContainer,1==b.nodeType&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,e.startOffset)]),3==b.nodeType)return b.parentNode;return b},getText:function(){var a,b;return this.isFocus()&&(a=this.getNative())?(b=browser.ie9below?a.createRange():a.getRangeAt(0),browser.ie9below?b.text:b.toString()):""},clearRange:function(){this.getNative()[browser.ie9below?"empty":"removeAllRanges"]()}}}(),function(){function a(a,b){var c;if(b.textarea)if(utils.isString(b.textarea)){for(var d,e=0,f=domUtils.getElementsByTagName(a,"textarea");d=f[e++];)if(d.id=="ueditor_textarea_"+b.options.textarea){c=d;break}}else c=b.textarea;c||(a.appendChild(c=domUtils.createElement(document,"textarea",{name:b.options.textarea,id:"ueditor_textarea_"+b.options.textarea,style:"display:none"})),b.textarea=c),!c.getAttribute("name")&&c.setAttribute("name",b.options.textarea),c.value=b.hasContents()?b.options.allHtmlEnabled?b.getAllHtml():b.getContent(null,null,!0):""}function b(a){for(var b in a)return b}function c(a){a.langIsReady=!0,a.fireEvent("langReady")}var d,e=0,f=UE.Editor=function(a){var d=this;d.uid=e++,EventBase.call(d),d.commands={},d.options=utils.extend(utils.clone(a||{}),UEDITOR_CONFIG,!0),d.shortcutkeys={},d.inputRules=[],d.outputRules=[],d.setOpt(f.defaultOptions(d)),d.loadServerConfig(),utils.isEmptyObject(UE.I18N)?utils.loadFile(document,{src:d.options.langPath+d.options.lang+"/"+d.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){UE.plugin.load(d),c(d)}):(d.options.lang=b(UE.I18N),UE.plugin.load(d),c(d)),UE.instants["ueditorInstant"+d.uid]=d};f.prototype={registerCommand:function(a,b){this.commands[a]=b},ready:function(a){var b=this;a&&(b.isReady?a.apply(b):b.addListener("ready",a))},setOpt:function(a,b){var c={};utils.isString(a)?c[a]=b:c=a,utils.extend(this.options,c,!0)},getOpt:function(a){return this.options[a]},destroy:function(){var a=this;a.fireEvent("destroy");var b=a.container.parentNode,c=a.textarea;c?c.style.display="":(c=document.createElement("textarea"),b.parentNode.insertBefore(c,b)),c.style.width=a.iframe.offsetWidth+"px",c.style.height=a.iframe.offsetHeight+"px",c.value=a.getContent(),c.id=a.key,b.innerHTML="",domUtils.remove(b);var d=a.key;for(var e in a)a.hasOwnProperty(e)&&delete this[e];UE.delEditor(d)},render:function(a){var b=this,c=b.options,d=function(b){return parseInt(domUtils.getComputedStyle(a,b))};if(utils.isString(a)&&(a=document.getElementById(a)),a){c.initialFrameWidth?c.minFrameWidth=c.initialFrameWidth:c.minFrameWidth=c.initialFrameWidth=a.offsetWidth,c.initialFrameHeight?c.minFrameHeight=c.initialFrameHeight:c.initialFrameHeight=c.minFrameHeight=a.offsetHeight,a.style.width=/%$/.test(c.initialFrameWidth)?"100%":c.initialFrameWidth-d("padding-left")-d("padding-right")+"px",a.style.height=/%$/.test(c.initialFrameHeight)?"100%":c.initialFrameHeight-d("padding-top")-d("padding-bottom")+"px",a.style.zIndex=c.zIndex;var e=(ie&&browser.version<9?"":"")+""+(c.iframeCssUrl?"":"")+(c.initialStyle?"":"")+"";a.appendChild(domUtils.createElement(document,"iframe",{id:"ueditor_"+b.uid,width:"100%",height:"100%",frameborder:"0",src:"javascript:void(function(){document.open();"+(c.customDomain&&document.domain!=location.hostname?'document.domain="'+document.domain+'";':"")+'document.write("'+e+'");document.close();}())'})),a.style.overflow="hidden",setTimeout(function(){/%$/.test(c.initialFrameWidth)&&(c.minFrameWidth=c.initialFrameWidth=a.offsetWidth),/%$/.test(c.initialFrameHeight)&&(c.minFrameHeight=c.initialFrameHeight=a.offsetHeight,a.style.height=c.initialFrameHeight+"px")})}},_setup:function(b){var c=this,d=c.options;ie?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.disabled=!1):b.body.contentEditable=!0,b.body.spellcheck=!1,c.document=b,c.window=b.defaultView||b.parentWindow,c.iframe=c.window.frameElement,c.body=b.body,c.selection=new dom.Selection(b);var e;browser.gecko&&(e=this.selection.getNative())&&e.removeAllRanges(),this._initEvents();for(var f=this.iframe.parentNode;!domUtils.isBody(f);f=f.parentNode)if("FORM"==f.tagName){c.form=f,c.options.autoSyncData?domUtils.on(c.window,"blur",function(){a(f,c)}):domUtils.on(f,"submit",function(){a(this,c)});break}if(d.initialContent)if(d.autoClearinitialContent){var g=c.execCommand;c.execCommand=function(){return c.fireEvent("firstBeforeExecCommand"),g.apply(c,arguments)},this._setDefaultContent(d.initialContent)}else this.setContent(d.initialContent,!1,!0);domUtils.isEmptyNode(c.body)&&(c.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    "),d.focus&&setTimeout(function(){c.focus(c.options.focusInEnd),!c.options.autoClearinitialContent&&c._selectionChange()},0),c.container||(c.container=this.iframe.parentNode),d.fullscreen&&c.ui&&c.ui.setFullScreen(!0);try{c.document.execCommand("2D-position",!1,!1)}catch(h){}try{c.document.execCommand("enableInlineTableEditing",!1,!1)}catch(h){}try{c.document.execCommand("enableObjectResizing",!1,!1)}catch(h){}c._bindshortcutKeys(),c.isReady=1,c.fireEvent("ready"),d.onready&&d.onready.call(c),browser.ie9below||domUtils.on(c.window,["blur","focus"],function(a){if("blur"==a.type){c._bakRange=c.selection.getRange();try{c._bakNativeRange=c.selection.getNative().getRangeAt(0),c.selection.getNative().removeAllRanges()}catch(a){c._bakNativeRange=null}}else try{c._bakRange&&c._bakRange.select()}catch(a){}}),browser.gecko&&browser.version<=10902&&(c.body.contentEditable=!1,setTimeout(function(){c.body.contentEditable=!0},100),setInterval(function(){c.body.style.height=c.iframe.offsetHeight-20+"px"},100)),!d.isShow&&c.setHide(),d.readonly&&c.setDisabled()},sync:function(b){var c=this,d=b?document.getElementById(b):domUtils.findParent(c.iframe.parentNode,function(a){return"FORM"==a.tagName},!0);d&&a(d,c)},setHeight:function(a,b){a!==parseInt(this.iframe.parentNode.style.height)&&(this.iframe.parentNode.style.height=a+"px"),!b&&(this.options.minFrameHeight=this.options.initialFrameHeight=a),this.body.style.height=a+"px",!b&&this.trigger("setHeight")},addshortcutkey:function(a,b){var c={};b?c[a]=b:c=a,utils.extend(this.shortcutkeys,c)},_bindshortcutKeys:function(){var a=this,b=this.shortcutkeys;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which;for(var f in b)for(var g,h=b[f].split(","),i=0;g=h[i++];){g=g.split(":");var j=g[0],k=g[1];(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase())||/^(\d+)$/.test(j))&&(("ctrl"==RegExp.$1?d.ctrlKey||d.metaKey:0)&&(""!=RegExp.$2?d[RegExp.$2.slice(1)+"Key"]:1)&&e==RegExp.$3||e==RegExp.$1)&&(a.queryCommandState(f,k)!=-1&&a.execCommand(f,k),domUtils.preventDefault(d))}})},getContent:function(a,b,c,d,e){var f=this;if(a&&utils.isFunction(a)&&(b=a,a=""),b?!b():!this.hasContents())return"";f.fireEvent("beforegetcontent");var g=UE.htmlparser(f.body.innerHTML,d);return f.filterOutputRule(g),f.fireEvent("aftergetcontent",a,g),g.toHtml(e)},getAllHtml:function(){var a=this,b=[];if(a.fireEvent("getAllHtml",b),browser.ie&&browser.version>8){var c="";utils.each(a.document.styleSheets,function(a){c+=a.href?'':""}),utils.each(a.document.getElementsByTagName("script"),function(a){c+=a.outerHTML})}return""+(a.options.charset?'':"")+(c||a.document.getElementsByTagName("head")[0].innerHTML)+b.join("\n")+""+a.getContent(null,null,!0)+""},getPlainTxt:function(){var a=new RegExp(domUtils.fillChar,"g"),b=this.body.innerHTML.replace(/[\n\r]/g,"");return b=b.replace(/<(p|div)[^>]*>(| )<\/\1>/gi,"\n").replace(//gi,"\n").replace(/<[^>\/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:""}),b.replace(a,"").replace(/\u00a0/g," ").replace(/ /g," ")},getContentTxt:function(){var a=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(a,"").replace(/\u00a0/g," ")},setContent:function(b,c,d){function e(a){return"DIV"==a.tagName&&a.getAttribute("cdata_tag")}var f=this;f.fireEvent("beforesetcontent",b);var g=UE.htmlparser(b);if(f.filterInputRule(g),b=g.toHtml(),f.body.innerHTML=(c?f.body.innerHTML:"")+b,"p"==f.options.enterTag){var h,i=this.body.firstChild;if(!i||1==i.nodeType&&(dtd.$cdata[i.tagName]||e(i)||domUtils.isCustomeNode(i))&&i===this.body.lastChild)this.body.innerHTML="

    "+(browser.ie?" ":"
    ")+"

    "+this.body.innerHTML;else for(var j=f.document.createElement("p");i;){for(;i&&(3==i.nodeType||1==i.nodeType&&dtd.p[i.tagName]&&!dtd.$cdata[i.tagName]);)h=i.nextSibling,j.appendChild(i),i=h;if(j.firstChild){if(!i){f.body.appendChild(j);break}i.parentNode.insertBefore(j,i),j=f.document.createElement("p")}i=i.nextSibling}}f.fireEvent("aftersetcontent"),f.fireEvent("contentchange"),!d&&f._selectionChange(),f._bakRange=f._bakIERange=f._bakNativeRange=null;var k;browser.gecko&&(k=this.selection.getNative())&&k.removeAllRanges(),f.options.autoSyncData&&f.form&&a(f.form,f)},focus:function(a){try{var b=this,c=b.selection.getRange();if(a){var d=b.body.lastChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&(domUtils.isEmptyBlock(d)?c.setStartAtFirst(d):c.setStartAtLast(d),c.collapse(!0)),c.setCursor(!0)}else{if(!c.collapsed&&domUtils.isBody(c.startContainer)&&0==c.startOffset){var d=b.body.firstChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&c.setStartAtFirst(d).collapse(!0)}c.select(!0)}this.fireEvent("focus selectionchange")}catch(e){}},isFocus:function(){return this.selection.isFocus()},blur:function(){var a=this.selection.getNative();if(a.empty&&browser.ie){var b=document.body.createTextRange();b.moveToElementText(document.body),b.collapse(!0),b.select(),a.empty()}else a.removeAllRanges()},_initEvents:function(){var a=this,b=a.document,c=a.window;a._proxyDomEvent=utils.bind(a._proxyDomEvent,a),domUtils.on(b,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],a._proxyDomEvent),domUtils.on(c,["focus","blur"],a._proxyDomEvent),domUtils.on(a.body,"drop",function(b){browser.gecko&&b.stopPropagation&&b.stopPropagation(),a.fireEvent("contentchange")}),domUtils.on(b,["mouseup","keydown"],function(b){"keydown"==b.type&&(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)||2!=b.button&&a._selectionChange(250,b)})},_proxyDomEvent:function(a){return this.fireEvent("before"+a.type.replace(/^on/,"").toLowerCase())!==!1&&(this.fireEvent(a.type.replace(/^on/,""),a)!==!1&&this.fireEvent("after"+a.type.replace(/^on/,"").toLowerCase()))},_selectionChange:function(a,b){var c,e,f=this,g=!1;if(browser.ie&&browser.version<9&&b&&"mouseup"==b.type){var h=this.selection.getRange();h.collapsed||(g=!0,c=b.clientX,e=b.clientY)}clearTimeout(d),d=setTimeout(function(){if(f.selection&&f.selection.getNative()){var a;if(g&&"None"==f.selection.getNative().type){a=f.document.body.createTextRange();try{a.moveToPoint(c,e)}catch(d){a=null}}var h;a&&(h=f.selection.getIERange,f.selection.getIERange=function(){return a}),f.selection.cache(),h&&(f.selection.getIERange=h),f.selection._cachedRange&&f.selection._cachedStartElement&&(f.fireEvent("beforeselectionchange"),f.fireEvent("selectionchange",!!b),f.fireEvent("afterselectionchange"),f.selection.clear())}},a||50)},_callCmdFn:function(a,b){var c,d,e=b[0].toLowerCase();return c=this.commands[e]||UE.commands[e],d=c&&c[a],c&&d||"queryCommandState"!=a?d?d.apply(this,b):void 0:0},execCommand:function(a){a=a.toLowerCase();var b,c=this,d=c.commands[a]||UE.commands[a];return d&&d.execCommand?(d.notNeedUndo||c.__hasEnterExecCommand?(b=this._callCmdFn("execCommand",arguments),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c.fireEvent("contentchange")):(c.__hasEnterExecCommand=!0,c.queryCommandState.apply(c,arguments)!=-1&&(c.fireEvent("saveScene"),c.fireEvent.apply(c,["beforeexeccommand",a].concat(arguments)),b=this._callCmdFn("execCommand",arguments),c.fireEvent.apply(c,["afterexeccommand",a].concat(arguments)),c.fireEvent("saveScene")),c.__hasEnterExecCommand=!1),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c._selectionChange(),b):null},queryCommandState:function(a){return this._callCmdFn("queryCommandState",arguments)},queryCommandValue:function(a){return this._callCmdFn("queryCommandValue",arguments)},hasContents:function(a){if(a)for(var b,c=0;b=a[c++];)if(this.document.getElementsByTagName(b).length>0)return!0;if(!domUtils.isEmptyBlock(this.body))return!0;for(a=["div"],c=0;b=a[c++];)for(var d,e=domUtils.getElementsByTagName(this.document,b),f=0;d=e[f++];)if(domUtils.isCustomeNode(d))return!0;return!1},reset:function(){this.fireEvent("reset")},setEnabled:function(){var a,b=this;if("false"==b.body.contentEditable){b.body.contentEditable=!0,a=b.selection.getRange();try{a.moveToBookmark(b.lastBk),delete b.lastBk}catch(c){a.setStartAtFirst(b.body).collapse(!0)}a.select(!0),b.bkqueryCommandState&&(b.queryCommandState=b.bkqueryCommandState,delete b.bkqueryCommandState),b.bkqueryCommandValue&&(b.queryCommandValue=b.bkqueryCommandValue,delete b.bkqueryCommandValue),b.fireEvent("selectionchange")}},enable:function(){return this.setEnabled()},setDisabled:function(a){var b=this;a=a?utils.isArray(a)?a:[a]:[],"true"==b.body.contentEditable&&(b.lastBk||(b.lastBk=b.selection.getRange().createBookmark(!0)),b.body.contentEditable=!1,b.bkqueryCommandState=b.queryCommandState,b.bkqueryCommandValue=b.queryCommandValue,b.queryCommandState=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandState.apply(b,arguments):-1},b.queryCommandValue=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandValue.apply(b,arguments):null},b.fireEvent("selectionchange"))},disable:function(a){return this.setDisabled(a)},_setDefaultContent:function(){function a(){var b=this;b.document.getElementById("initContent")&&(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",b.removeListener("firstBeforeExecCommand focus",a),setTimeout(function(){b.focus(),b._selectionChange()},0))}return function(b){var c=this;c.body.innerHTML='

    '+b+"

    ",c.addListener("firstBeforeExecCommand focus",a)}}(),setShow:function(){var a=this,b=a.selection.getRange();if("none"==a.container.style.display){try{b.moveToBookmark(a.lastBk),delete a.lastBk}catch(c){b.setStartAtFirst(a.body).collapse(!0)}setTimeout(function(){b.select(!0)},100),a.container.style.display=""}},show:function(){return this.setShow(); -},setHide:function(){var a=this;a.lastBk||(a.lastBk=a.selection.getRange().createBookmark(!0)),a.container.style.display="none"},hide:function(){return this.setHide()},getLang:function(a){if(!this.options)return"";var b=UE.I18N[this.options.lang];if(!b)throw Error("not import language file");a=(a||"").split(".");for(var c,d=0;(c=a[d++])&&(b=b[c],b););return b},getContentLength:function(a,b){var c=this.getContent(!1,!1,!0).length;if(a){b=(b||[]).concat(["hr","img","iframe"]),c=this.getContentTxt().replace(/[\t\r\n]+/g,"").length;for(var d,e=0;d=b[e++];)c+=this.document.getElementsByTagName(d).length}return c},addInputRule:function(a){this.inputRules.push(a)},filterInputRule:function(a){for(var b,c=0;b=this.inputRules[c++];)b.call(this,a)},addOutputRule:function(a){this.outputRules.push(a)},filterOutputRule:function(a){for(var b,c=0;b=this.outputRules[c++];)b.call(this,a)},getActionUrl:function(a){var b=this.getOpt(a)||a,c=this.getOpt("imageUrl"),d=this.getOpt("serverUrl");return!d&&c&&(d=c.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2")),d?(d=d+(d.indexOf("?")==-1?"?":"&")+"action="+(b||""),utils.formatUrl(d)):""}},utils.inherits(f,EventBase)}(),UE.Editor.defaultOptions=function(a){var b=a.options.UEDITOR_HOME_URL;return{isShow:!0,initialContent:"",initialStyle:"",autoClearinitialContent:!1,iframeCssUrl:b+"themes/iframe.css",textarea:"editorValue",focus:!1,focusInEnd:!0,autoClearEmptyNode:!0,fullscreen:!1,readonly:!1,zIndex:999,imagePopup:!0,enterTag:"p",customDomain:!1,lang:"zh-cn",langPath:b+"lang/",theme:"default",themePath:b+"themes/",allHtmlEnabled:!1,scaleEnabled:!1,tableNativeEditInFF:!1,autoSyncData:!0,fileNameFormat:"{time}{rand:6}"}},function(){UE.Editor.prototype.loadServerConfig=function(){function showErrorMsg(a){console&&console.error(a)}var me=this;setTimeout(function(){try{me.options.imageUrl&&me.setOpt("serverUrl",me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2"));var configUrl=me.getActionUrl("config"),isJsonp=utils.isCrossDomainUrl(configUrl);me._serverConfigLoaded=!1,configUrl&&UE.ajax.request(configUrl,{method:"GET",dataType:isJsonp?"jsonp":"",onsuccess:function(r){try{var config=isJsonp?r:eval("("+r.responseText+")");utils.extend(me.options,config),me.fireEvent("serverConfigLoaded"),me._serverConfigLoaded=!0}catch(e){showErrorMsg(me.getLang("loadconfigFormatError"))}},onerror:function(){showErrorMsg(me.getLang("loadconfigHttpError"))}})}catch(e){showErrorMsg(me.getLang("loadconfigError"))}})},UE.Editor.prototype.isServerConfigLoaded=function(){var a=this;return a._serverConfigLoaded||!1},UE.Editor.prototype.afterConfigReady=function(a){if(a&&utils.isFunction(a)){var b=this,c=function(){a.apply(b,arguments),b.removeListener("serverConfigLoaded",c)};b.isServerConfigLoaded()?a.call(b,"serverConfigLoaded"):b.addListener("serverConfigLoaded",c)}}}(),UE.ajax=function(){function a(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c&&"dataType"!=c&&"callback"!=c&&void 0!=a[c]&&null!=a[c])if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d/gi,"").replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(a){if(browser.opera)return"";try{if(/Bitmap/i.test(a))return"";var c=a.match(/width:([ \d.]*p[tx])/i)[1],d=a.match(/height:([ \d.]*p[tx])/i)[1],e=a.match(/src=\s*"([^"]*)"/i)[1];return''}catch(f){return""}}).replace(/<\/?div[^>]*>/g,"").replace(/v:\w+=(["']?)[^'"]+\1/g,"").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,"").replace(/

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"

    $1

    ").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,function(a,b,c,d){return"class"==b&&"MsoListParagraph"==d?a:""}).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi,function(a,b,c){return c.replace(/[\t\r\n ]+/g," ")}).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,function(a,c,d,e){for(var f,g=[],h=e.replace(/^\s+|\s+$/,"").replace(/'/g,"'").replace(/"/gi,"'").replace(/[\d.]+(cm|pt)/g,function(a){return utils.transUnitToPx(a)}).split(/;\s*/g),i=0;f=h[i];i++){var j,k,l=f.split(":");if(2==l.length){if(j=l[0].toLowerCase(),k=l[1].toLowerCase(),/^(background)\w*/.test(j)&&0==k.replace(/(initial|\s)/g,"").length||/^(margin)\w*/.test(j)&&/^0\w+$/.test(k))continue;switch(j){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":/1&&(a(h,j,!0),b(h,j)),c(k,h,i,j);break;case"text":d(g,h);break;case"element":e(g,h,i,j);break;case"comment":f(g,h,i)}return h}function d(a,b){"pre"==a.parentNode.tagName?b.push(a.data):b.push(l[a.parentNode.tagName]?utils.html(a.data):a.data.replace(/[ ]{2}/g,"  "))}function e(d,e,f,g){var h="";if(d.attrs){h=[];var i=d.attrs;for(var j in i)h.push(j+(void 0!==i[j]?'="'+(k[j]?utils.html(i[j]).replace(/["]/g,function(a){return"""}):utils.unhtml(i[j]))+'"':""));h=h.join(" ")}if(e.push("<"+d.tagName+(h?" "+h:"")+(dtd.$empty[d.tagName]?"/":"")+">"),f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g,!0),b(e,g)),d.children&&d.children.length)for(var l,m=0;l=d.children[m++];)f&&"element"==l.type&&!dtd.$inlineWithA[l.tagName]&&m>1&&(a(e,g),b(e,g)),c(l,e,f,g);dtd.$empty[d.tagName]||(f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g),b(e,g)),e.push(""))}function f(a,b){b.push("")}function g(a,b){var c;if("element"==a.type&&a.getAttr("id")==b)return a;if(a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)if(c=g(d,b))return c}function h(a,b,c){if("element"==a.type&&a.tagName==b&&c.push(a),a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)h(d,b,c)}function i(a,b){if(a.children&&a.children.length)for(var c,d=0;c=a.children[d];)i(c,b),c.parentNode&&(c.children&&c.children.length&&b(c),c.parentNode&&d++);else b(a)}var j=UE.uNode=function(a){this.type=a.type,this.data=a.data,this.tagName=a.tagName,this.parentNode=a.parentNode,this.attrs=a.attrs||{},this.children=a.children},k={href:1,src:1,_src:1,_href:1,cdata_data:1},l={style:1,script:1},m=" ",n="\n";j.createElement=function(a){return/[<>]/.test(a)?UE.htmlparser(a).children[0]:new j({type:"element",children:[],tagName:a})},j.createText=function(a,b){return new UE.uNode({type:"text",data:b?a:utils.unhtml(a||"")})},j.prototype={toHtml:function(a){var b=[];return c(this,b,a,0),b.join("")},innerHTML:function(a){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(utils.isString(a)){if(this.children)for(var b,c=0;b=this.children[c++];)b.parentNode=null;this.children=[];for(var b,d=UE.htmlparser(a),c=0;b=d.children[c++];)this.children.push(b),b.parentNode=this;return this}var d=new UE.uNode({type:"root",children:this.children});return d.toHtml()},innerText:function(a,b){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(a){if(this.children)for(var c,d=0;c=this.children[d++];)c.parentNode=null;return this.children=[],this.appendChild(j.createText(a,b)),this}return this.toHtml().replace(/<[^>]+>/g,"")},getData:function(){return"element"==this.type?"":this.data},firstChild:function(){return this.children?this.children[0]:null},lastChild:function(){return this.children?this.children[this.children.length-1]:null},previousSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return 0==c?null:b.children[c-1]},nextSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c++];)if(a===this)return b.children[c]},replaceChild:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,1,a),b.parentNode=null,a.parentNode=this,a}},appendChild:function(a){if("root"==this.type||"element"==this.type&&!dtd.$empty[this.tagName]){this.children||(this.children=[]),a.parentNode&&a.parentNode.removeChild(a);for(var b,c=0;b=this.children[c];c++)if(b===a){this.children.splice(c,1);break}return this.children.push(a),a.parentNode=this,a}},insertBefore:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,0,a),a.parentNode=this,a}},insertAfter:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d+1,0,a),a.parentNode=this,a}},removeChild:function(a,b){if(this.children)for(var c,d=0;c=this.children[d];d++)if(c===a){if(this.children.splice(d,1),c.parentNode=null,b&&c.children&&c.children.length)for(var e,f=0;e=c.children[f];f++)this.children.splice(d+f,0,e),e.parentNode=this;return c}},getAttr:function(a){return this.attrs&&this.attrs[a.toLowerCase()]},setAttr:function(a,b){if(!a)return void delete this.attrs;if(this.attrs||(this.attrs={}),utils.isObject(a))for(var c in a)a[c]?this.attrs[c.toLowerCase()]=a[c]:delete this.attrs[c];else b?this.attrs[a.toLowerCase()]=b:delete this.attrs[a]},getIndex:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return c;return-1},getNodeById:function(a){var b;if(this.children&&this.children.length)for(var c,d=0;c=this.children[d++];)if(b=g(c,a))return b},getNodesByTagName:function(a){a=utils.trim(a).replace(/[ ]{2,}/g," ").split(" ");var b=[],c=this;return utils.each(a,function(a){if(c.children&&c.children.length)for(var d,e=0;d=c.children[e++];)h(d,a,b)}),b},getStyle:function(a){var b=this.getAttr("style");if(!b)return"";var c=new RegExp("(^|;)\\s*"+a+":([^;]+)","i"),d=b.match(c);return d&&d[0]?d[2]:""},setStyle:function(a,b){function c(a,b){var c=new RegExp("(^|;)\\s*"+a+":([^;]+;?)","gi");d=d.replace(c,"$1"),b&&(d=a+":"+utils.unhtml(b)+";"+d)}var d=this.getAttr("style");if(d||(d=""),utils.isObject(a))for(var e in a)c(e,a[e]);else c(a,b);this.setAttr("style",utils.trim(d))},traversal:function(a){return this.children&&this.children.length&&i(this,a),this}}}();var htmlparser=UE.htmlparser=function(a,b){function c(a,b){if(m[a.tagName]){var c=k.createElement(m[a.tagName]);a.appendChild(c),c.appendChild(k.createText(b)),a=c}else a.appendChild(k.createText(b))}function d(a,b,c){var e;if(e=l[b]){for(var f,h=a;"root"!=h.type;){if(utils.isArray(e)?utils.indexOf(e,h.tagName)!=-1:e==h.tagName){a=h,f=!0;break}h=h.parentNode}f||(a=d(a,utils.isArray(e)?e[0]:e))}var i=new k({parentNode:a,type:"element",tagName:b.toLowerCase(),children:dtd.$empty[b]?null:[]});if(c){for(var m,n={};m=g.exec(c);)n[m[1].toLowerCase()]=j[m[1].toLowerCase()]?m[2]||m[3]||m[4]:utils.unhtml(m[2]||m[3]||m[4]);i.attrs=n}return a.children.push(i),dtd.$empty[b]?a:i}function e(a,b){a.children.push(new k({type:"comment",data:b,parentNode:a}))}var f=/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,g=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1};a=a.replace(new RegExp(domUtils.fillChar,"g"),""),b||(a=a.replace(new RegExp("[\\r\\t\\n"+(b?"":" ")+"]*]*)>[\\r\\t\\n"+(b?"":" ")+"]*","g"),function(a,c){return c&&h[c.toLowerCase()]?a.replace(/(^[\n\r]+)|([\n\r]+$)/g,""):a.replace(new RegExp("^[\\r\\n"+(b?"":" ")+"]+"),"").replace(new RegExp("[\\r\\n"+(b?"":" ")+"]+$"),"")}));for(var i,j={href:1,src:1},k=UE.uNode,l={td:"tr",tr:["tbody","thead","tfoot"],tbody:"table",th:"tr",thead:"table",tfoot:"table",caption:"table",li:["ul","ol"],dt:"dl",dd:"dl",option:"select"},m={ol:"li",ul:"li"},n=0,o=0,p=new k({type:"root",children:[]}),q=p;i=f.exec(a);){n=i.index;try{if(n>o&&c(q,a.slice(o,n)),i[3])dtd.$cdata[q.tagName]?c(q,i[0]):q=d(q,i[3].toLowerCase(),i[4]);else if(i[1]){if("root"!=q.type)if(dtd.$cdata[q.tagName]&&!dtd.$cdata[i[1]])c(q,i[0]);else{for(var r=q;"element"==q.type&&q.tagName!=i[1].toLowerCase();)if(q=q.parentNode,"root"==q.type)throw q=r,"break";q=q.parentNode}}else i[2]&&e(q,i[2])}catch(s){}o=f.lastIndex}return o");break;case"div":if(b.getAttr("cdata_tag"))break;if(d=b.getAttr("class"),d&&/^line number\d+/.test(d))break;if(!e)break;for(var f,g=UE.uNode.createElement("p");f=b.firstChild();)"text"!=f.type&&UE.dom.dtd.$block[f.tagName]?g.firstChild()?(b.parentNode.insertBefore(g,b),g=UE.uNode.createElement("p")):b.parentNode.insertBefore(f,b):g.appendChild(f);g.firstChild()&&b.parentNode.insertBefore(g,b),b.parentNode.removeChild(b);break;case"dl":b.tagName="ul";break;case"dt":case"dd":b.tagName="li";break;case"li":var h=b.getAttr("class");h&&/list\-/.test(h)||b.setAttr();var i=b.getNodesByTagName("ol ul");UE.utils.each(i,function(a){b.parentNode.insertAfter(a,b)});break;case"td":case"th":case"caption":b.children&&b.children.length||b.appendChild(browser.ie11below?UE.uNode.createText(" "):UE.uNode.createElement("br"));break;case"table":a.options.disabledTableInTable&&c(b)&&(b.parentNode.insertBefore(UE.uNode.createText(b.innerText()),b),b.parentNode.removeChild(b))}}})}),a.addOutputRule(function(b){var c;b.traversal(function(b){if("element"==b.type){if(a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"div":(c=b.getAttr("cdata_tag"))&&(b.tagName=c,b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))),b.setAttr({cdata_tag:"",cdata_data:"",_ue_custom_node_:""}));break;case"a":(c=b.getAttr("_href"))&&b.setAttr({href:utils.html(c),_href:""});break;case"span":c=b.getAttr("id"),c&&/^_baidu_bookmark_/i.test(c)&&b.parentNode.removeChild(b);break;case"img":(c=b.getAttr("_src"))&&b.setAttr({src:b.getAttr("_src"),_src:""})}}})})},UE.commands.inserthtml={execCommand:function(a,b,c){var d,e,f=this;if(b&&f.fireEvent("beforeinserthtml",b)!==!0){if(d=f.selection.getRange(),e=d.document.createElement("div"),e.style.display="inline",!c){var g=UE.htmlparser(b);f.options.filterRules&&UE.filterNode(g,f.options.filterRules),f.filterInputRule(g),b=g.toHtml()}if(e.innerHTML=utils.trim(b),!d.collapsed){var h=d.startContainer;if(domUtils.isFillChar(h)&&d.setStartBefore(h),h=d.endContainer,domUtils.isFillChar(h)&&d.setEndAfter(h),d.txtToElmBoundary(),d.endContainer&&1==d.endContainer.nodeType&&(h=d.endContainer.childNodes[d.endOffset],h&&domUtils.isBr(h)&&d.setEndAfter(h)),0==d.startOffset&&(h=d.startContainer,domUtils.isBoundaryNode(h,"firstChild")&&(h=d.endContainer,d.endOffset==(3==h.nodeType?h.nodeValue.length:h.childNodes.length)&&domUtils.isBoundaryNode(h,"lastChild")&&(f.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",d.setStart(f.body.firstChild,0).collapse(!0)))),!d.collapsed&&d.deleteContents(),1==d.startContainer.nodeType){var i,j=d.startContainer.childNodes[d.startOffset];if(j&&domUtils.isBlockElm(j)&&(i=j.previousSibling)&&domUtils.isBlockElm(i)){for(d.setEnd(i,i.childNodes.length).collapse();j.firstChild;)i.appendChild(j.firstChild);domUtils.remove(j)}}}var j,k,i,l,m,n=0;d.inFillChar()&&(j=d.startContainer,domUtils.isFillChar(j)?(d.setStartBefore(j).collapse(!0),domUtils.remove(j)):domUtils.isFillChar(j,!0)&&(j.nodeValue=j.nodeValue.replace(fillCharReg,""),d.startOffset--,d.collapsed&&d.collapse(!0)));var o=domUtils.findParentByTagName(d.startContainer,"li",!0);if(o){for(var p,q;j=e.firstChild;){for(;j&&(3==j.nodeType||!domUtils.isBlockElm(j)||"HR"==j.tagName);)p=j.nextSibling,d.insertNode(j).collapse(),q=j,j=p;if(j)if(/^(ol|ul)$/i.test(j.tagName)){for(;j.firstChild;)q=j.firstChild,domUtils.insertAfter(o,j.firstChild),o=o.nextSibling;domUtils.remove(j)}else{var r;p=j.nextSibling,r=f.document.createElement("li"),domUtils.insertAfter(o,r),r.appendChild(j),q=j,j=p,o=r}}o=domUtils.findParentByTagName(d.startContainer,"li",!0),domUtils.isEmptyBlock(o)&&domUtils.remove(o),q&&d.setStartAfter(q).collapse(!0).select(!0)}else{for(;j=e.firstChild;){if(n){for(var s=f.document.createElement("p");j&&(3==j.nodeType||!dtd.$block[j.tagName]);)m=j.nextSibling,s.appendChild(j),j=m;s.firstChild&&(j=s)}if(d.insertNode(j),m=j.nextSibling,!n&&j.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(j)&&(k=domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)}),k&&"body"!=k.tagName.toLowerCase()&&(!dtd[k.tagName][j.nodeName]||j.parentNode!==k))){if(dtd[k.tagName][j.nodeName])for(l=j.parentNode;l!==k;)i=l,l=l.parentNode;else i=k;domUtils.breakParent(j,i||l);var i=j.previousSibling;domUtils.trimWhiteTextNode(i),i.childNodes.length||domUtils.remove(i),!browser.ie&&(p=j.nextSibling)&&domUtils.isBlockElm(p)&&p.lastChild&&!domUtils.isBr(p.lastChild)&&p.appendChild(f.document.createElement("br")),n=1}var p=j.nextSibling;if(!e.firstChild&&p&&domUtils.isBlockElm(p)){d.setStart(p,0).collapse(!0);break}d.setEndAfter(j).collapse()}if(j=d.startContainer,m&&domUtils.isBr(m)&&domUtils.remove(m),domUtils.isBlockElm(j)&&domUtils.isEmptyNode(j))if(m=j.nextSibling)domUtils.remove(j),1==m.nodeType&&dtd.$block[m.tagName]&&d.setStart(m,0).collapse(!0).shrinkBoundary();else try{j.innerHTML=browser.ie?domUtils.fillChar:"
    "}catch(t){d.setStartBefore(j),domUtils.remove(j)}try{d.select(!0)}catch(t){}}setTimeout(function(){d=f.selection.getRange(),d.scrollToView(f.autoHeightEnabled,f.autoHeightEnabled?domUtils.getXY(f.iframe).y:0),f.fireEvent("afterinserthtml",b)},200)}}},UE.plugins.autotypeset=function(){function a(a,b){return a&&3!=a.nodeType?domUtils.isBr(a)?1:a&&a.parentNode&&l[a.tagName.toLowerCase()]?g&&g.contains(a)||a.getAttribute("pagebreak")?0:b?!domUtils.isEmptyBlock(a):domUtils.isEmptyBlock(a,new RegExp("[\\s"+domUtils.fillChar+"]","g")):void 0:0}function b(a){a.style.cssText||(domUtils.removeAttributes(a,["style"]),"span"==a.tagName.toLowerCase()&&domUtils.hasNoAttributes(a)&&domUtils.remove(a,!0))}function c(c,f){var h,l=this;if(f){if(!i.pasteFilter)return;h=l.document.createElement("div"),h.innerHTML=f.html}else h=l.document.body;for(var m,n=domUtils.getElementsByTagName(h,"*"),o=0;m=n[o++];)if(l.fireEvent("excludeNodeinautotype",m)!==!0){if(i.clearFontSize&&m.style.fontSize&&(domUtils.removeStyle(m,"font-size"),b(m)),i.clearFontFamily&&m.style.fontFamily&&(domUtils.removeStyle(m,"font-family"),b(m)),a(m)){if(i.mergeEmptyline)for(var p,q=m.nextSibling,r=domUtils.isBr(m);a(q)&&(p=q,q=p.nextSibling,!r||q&&(!q||domUtils.isBr(q)));)domUtils.remove(p);if(i.removeEmptyline&&domUtils.inDoc(m,h)&&!k[m.parentNode.tagName.toLowerCase()]){if(domUtils.isBr(m)&&(q=m.nextSibling,q&&!domUtils.isBr(q)))continue;domUtils.remove(m);continue}}if(a(m,!0)&&"SPAN"!=m.tagName&&(i.indent&&(m.style.textIndent=i.indentValue),i.textAlign&&(m.style.textAlign=i.textAlign)),i.removeClass&&m.className&&!j[m.className.toLowerCase()]){if(g&&g.contains(m))continue;domUtils.removeAttributes(m,["class"])}if(i.imageBlockLine&&"img"==m.tagName.toLowerCase()&&!m.getAttribute("emotion"))if(f){var s=m;switch(i.imageBlockLine){case"left":case"right":case"none":for(var p,t,q,u=s.parentNode;dtd.$inline[u.tagName]||"A"==u.tagName;)u=u.parentNode;if(p=u,"P"==p.tagName&&"center"==domUtils.getStyle(p,"text-align")&&!domUtils.isBody(p)&&1==domUtils.getChildCount(p,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(t=p.previousSibling,q=p.nextSibling,t&&q&&1==t.nodeType&&1==q.nodeType&&t.tagName==q.tagName&&domUtils.isBlockElm(t)){for(t.appendChild(p.firstChild);q.firstChild;)t.appendChild(q.firstChild);domUtils.remove(p),domUtils.remove(q)}else domUtils.setStyle(p,"text-align","");domUtils.setStyle(s,"float",i.imageBlockLine);break;case"center":if("center"!=l.queryCommandValue("imagefloat")){for(u=s.parentNode,domUtils.setStyle(s,"float","none"),p=s;u&&1==domUtils.getChildCount(u,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[u.tagName]||"A"==u.tagName);)p=u,u=u.parentNode;var v=l.document.createElement("p");domUtils.setAttributes(v,{style:"text-align:center"}),p.parentNode.insertBefore(v,p),v.appendChild(p),domUtils.setStyle(p,"float","")}}}else{var w=l.selection.getRange();w.selectNode(m).select(),l.execCommand("imagefloat",i.imageBlockLine)}i.removeEmptyNode&&i.removeTagNames[m.tagName.toLowerCase()]&&domUtils.hasNoAttributes(m)&&domUtils.isEmptyBlock(m)&&domUtils.remove(m)}if(i.tobdc){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=e(a.data))}),h.innerHTML=x.toHtml()}if(i.bdc2sb){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=d(a.data))}),h.innerHTML=x.toHtml()}f&&(f.html=h.innerHTML)}function d(a){for(var b="",c=0;c=65281&&d<=65373?String.fromCharCode(a.charCodeAt(c)-65248):12288==d?String.fromCharCode(a.charCodeAt(c)-12288+32):a.charAt(c)}return b}function e(a){a=utils.html(a);for(var b="",c=0;c0?e.substring(e.indexOf(d.options.imagePath),e.length-1).replace(/"|\(|\)/gi,""):"none"!=e?e.replace(/url\("?|"?\)/gi,""):"";var g=' ",b.push(g)},aftersetcontent:function(){0==c&&b()}},inputRule:function(d){c=!1,utils.each(d.getNodesByTagName("p"),function(d){var e=d.getAttr("data-background");e&&(c=!0,b(a(e)),d.parentNode.removeChild(d))})},outputRule:function(a){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);c&&a.appendChild(UE.uNode.createElement('


    '))},commands:{background:{execCommand:function(a,c){b(c)},queryCommandValue:function(){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);return c?a(c[1]):null},notNeedUndo:!0}}}}),UE.commands.imagefloat={execCommand:function(a,b){var c=this,d=c.selection.getRange();if(!d.collapsed){var e=d.getClosedNode();if(e&&"IMG"==e.tagName)switch(b){case"left":case"right":case"none":for(var f,g,h,i=e.parentNode;dtd.$inline[i.tagName]||"A"==i.tagName;)i=i.parentNode;if(f=i,"P"==f.tagName&&"center"==domUtils.getStyle(f,"text-align")){if(!domUtils.isBody(f)&&1==domUtils.getChildCount(f,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(g=f.previousSibling,h=f.nextSibling,g&&h&&1==g.nodeType&&1==h.nodeType&&g.tagName==h.tagName&&domUtils.isBlockElm(g)){for(g.appendChild(f.firstChild);h.firstChild;)g.appendChild(h.firstChild);domUtils.remove(f),domUtils.remove(h)}else domUtils.setStyle(f,"text-align","");d.selectNode(e).select()}domUtils.setStyle(e,"float","none"==b?"":b),"none"==b&&domUtils.removeAttributes(e,"align");break;case"center":if("center"!=c.queryCommandValue("imagefloat")){for(i=e.parentNode,domUtils.setStyle(e,"float",""),domUtils.removeAttributes(e,"align"),f=e;i&&1==domUtils.getChildCount(i,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[i.tagName]||"A"==i.tagName);)f=i,i=i.parentNode;d.setStartBefore(f).setCursor(!1),i=c.document.createElement("div"),i.appendChild(f),domUtils.setStyle(f,"float",""),c.execCommand("insertHtml",'

    '+i.innerHTML+"

    "),f=c.document.getElementById("_img_parent_tmp"),f.removeAttribute("id"),f=f.firstChild,d.selectNode(f).select(),h=f.parentNode.nextSibling,h&&domUtils.isEmptyNode(h)&&domUtils.remove(h)}}}},queryCommandValue:function(){var a,b,c=this.selection.getRange();return c.collapsed?"none":(a=c.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?(b=domUtils.getComputedStyle(a,"float")||a.getAttribute("align"),"none"==b&&(b="center"==domUtils.getComputedStyle(a.parentNode,"text-align")?"center":b),{left:1,right:1,center:1}[b]?b:"none"):"none")},queryCommandState:function(){var a,b=this.selection.getRange();return b.collapsed?-1:(a=b.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?0:-1)}},UE.commands.insertimage={execCommand:function(a,b){function c(a){utils.each("width,height,border,hspace,vspace".split(","),function(b){a[b]&&(a[b]=parseInt(a[b],10)||0)}),utils.each("src,_src".split(","),function(b){a[b]&&(a[b]=utils.unhtmlForUrl(a[b]))}),utils.each("title,alt".split(","),function(b){a[b]&&(a[b]=utils.unhtml(a[b]))})}if(b=utils.isArray(b)?b:[b],b.length){var d=this,e=d.selection.getRange(),f=e.getClosedNode();if(d.fireEvent("beforeinsertimage",b)!==!0){if(!f||!/img/i.test(f.tagName)||"edui-faked-video"==f.className&&f.className.indexOf("edui-upload-video")==-1||f.getAttribute("word_img")){var g,h=[],i="";if(g=b[0],1==b.length)c(g),i=''+g.alt+'","center"==g.floatStyle&&(i='

    '+i+"

    "),h.push(i);else for(var j=0;g=b[j++];)c(g),i="

    ",h.push(i);d.execCommand("insertHtml",h.join(""))}else{var k=b.shift(),l=k.floatStyle;delete k.floatStyle,domUtils.setAttributes(f,k),d.execCommand("imagefloat",l),b.length>0&&(e.setStartAfter(f).setCursor(!1,!0),d.execCommand("insertimage",b))}d.fireEvent("afterinsertimage",b)}}}},UE.plugins.justify=function(){var a=domUtils.isBlockElm,b={left:1,right:1,center:1,justify:1},c=function(b,c){var d=b.createBookmark(),e=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};b.enlarge(!0);for(var f,g=b.createBookmark(),h=domUtils.getNextDomNode(g.start,!1,e),i=b.cloneRange();h&&!(domUtils.getPosition(h,g.end)&domUtils.POSITION_FOLLOWING);)if(3!=h.nodeType&&a(h))h=domUtils.getNextDomNode(h,!0,e);else{for(i.setStartBefore(h);h&&h!==g.end&&!a(h);)f=h,h=domUtils.getNextDomNode(h,!1,null,function(b){return!a(b)});i.setEndAfter(f);var j=i.getCommonAncestor();if(!domUtils.isBody(j)&&a(j))domUtils.setStyles(j,utils.isString(c)?{"text-align":c}:c),h=j;else{var k=b.document.createElement("p");domUtils.setStyles(k,utils.isString(c)?{"text-align":c}:c);var l=i.extractContents();k.appendChild(l),i.insertNode(k),h=k}h=domUtils.getNextDomNode(h,!1,e)}return b.moveToBookmark(g).moveToBookmark(d)};UE.commands.justify={execCommand:function(a,b){var d,e=this.selection.getRange();return e.collapsed&&(d=this.document.createTextNode("p"),e.insertNode(d)),c(e,b),d&&(e.setStartBefore(d).collapse(!0),domUtils.remove(d)),e.select(),!0},queryCommandValue:function(){var a=this.selection.getStart(),c=domUtils.getComputedStyle(a,"text-align");return b[c]?c:"left"},queryCommandState:function(){var a=this.selection.getStart(),b=a&&domUtils.findParentByTagName(a,["td","th","caption"],!0);return b?-1:0}}},UE.plugins.font=function(){function a(a){for(var b;(b=a.parentNode)&&"SPAN"==b.tagName&&1==domUtils.getChildCount(b,function(a){return!domUtils.isBookmarkNode(a)&&!domUtils.isBr(a)});)b.style.cssText+=a.style.cssText,domUtils.remove(a,!0),a=b}function b(a,b,c){if(g[b]&&(a.adjustmentBoundary(),!a.collapsed&&1==a.startContainer.nodeType)){var d=a.startContainer.childNodes[a.startOffset];if(d&&domUtils.isTagNode(d,"span")){var e=a.createBookmark();utils.each(domUtils.getElementsByTagName(d,"span"),function(a){a.parentNode&&!domUtils.isBookmarkNode(a)&&("backcolor"==b&&domUtils.getComputedStyle(a,"background-color").toLowerCase()===c||(domUtils.removeStyle(a,g[b]),0==a.style.cssText.replace(/^\s+$/,"").length&&domUtils.remove(a,!0)))}),a.moveToBookmark(e)}}}function c(c,d,e){var f,g=c.collapsed,h=c.createBookmark();if(g)for(f=h.start.parentNode;dtd.$inline[f.tagName];)f=f.parentNode;else f=domUtils.getCommonAncestor(h.start,h.end);utils.each(domUtils.getElementsByTagName(f,"span"),function(b){if(b.parentNode&&!domUtils.isBookmarkNode(b)){if(/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))return void(/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)?domUtils.remove(b,!0):domUtils.removeStyle(b,"border"));if(/border/i.test(b.style.cssText)&&"SPAN"==b.parentNode.tagName&&/border/i.test(b.parentNode.style.cssText)&&(b.style.cssText=b.style.cssText.replace(/border[^:]*:[^;]+;?/gi,"")),"fontborder"!=d||"none"!=e)for(var c=b.nextSibling;c&&1==c.nodeType&&"SPAN"==c.tagName;)if(domUtils.isBookmarkNode(c)&&"fontborder"==d)b.appendChild(c),c=b.nextSibling;else{if(c.style.cssText==b.style.cssText&&(domUtils.moveChild(c,b),domUtils.remove(c)),b.nextSibling===c)break;c=b.nextSibling}if(a(b),browser.ie&&browser.version>8){var f=domUtils.findParent(b,function(a){return"SPAN"==a.tagName&&/background-color/.test(a.style.cssText)});f&&!/background-color/.test(b.style.cssText)&&(b.style.backgroundColor=f.style.backgroundColor)}}}),c.moveToBookmark(h),b(c,d,e)}var d=this,e={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family",underline:"text-decoration",strikethrough:"text-decoration",fontborder:"border"},f={underline:1,strikethrough:1,fontborder:1},g={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family"};d.setOpt({fontfamily:[{name:"songti",val:"宋体,SimSun"},{name:"yahei",val:"微软雅黑,Microsoft YaHei"},{name:"kaiti",val:"楷体,楷体_GB2312, SimKai"},{name:"heiti",val:"黑体, SimHei"},{name:"lishu",val:"隶书, SimLi"},{name:"andaleMono",val:"andale mono"},{name:"arial",val:"arial, helvetica,sans-serif"},{name:"arialBlack",val:"arial black,avant garde"},{name:"comicSansMs",val:"comic sans ms"},{name:"impact",val:"impact,chicago"},{name:"timesNewRoman",val:"times new roman"}],fontsize:[10,11,12,14,16,18,20,24,36]}),d.addInputRule(function(a){utils.each(a.getNodesByTagName("u s del font strike"),function(a){if("font"==a.tagName){var b=[];for(var c in a.attrs)switch(c){case"size":b.push("font-size:"+({1:"10",2:"12",3:"16",4:"18",5:"24",6:"32",7:"48"}[a.attrs[c]]||a.attrs[c])+"px");break;case"color":b.push("color:"+a.attrs[c]);break;case"face":b.push("font-family:"+a.attrs[c]);break;case"style":b.push(a.attrs[c])}a.attrs={style:b.join(";")}}else{var d="u"==a.tagName?"underline":"line-through";a.attrs={style:(a.getAttr("style")||"")+"text-decoration:"+d+";"}}a.tagName="span"})});for(var h in e)!function(a,b){UE.commands[a]={execCommand:function(d,e){e=e||(this.queryCommandState(d)?"none":"underline"==d?"underline":"fontborder"==d?"1px solid #000":"line-through");var g,h=this,i=this.selection.getRange();if("default"==e)i.collapsed&&(g=h.document.createTextNode("font"),i.insertNode(g).select()),h.execCommand("removeFormat","span,a",b),g&&(i.setStartBefore(g).collapse(!0),domUtils.remove(g)),c(i,d,e),i.select();else if(i.collapsed){var j=domUtils.findParentByTagName(i.startContainer,"span",!0);if(g=h.document.createTextNode("font"),!j||j.children.length||j[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){if(i.insertNode(g),i.selectNode(g).select(),j=i.document.createElement("span"),f[a]){if(domUtils.findParentByTagName(g,"a",!0))return i.setStartBefore(g).setCursor(),void domUtils.remove(g);h.execCommand("removeFormat","span,a",b)}if(j.style.cssText=b+":"+e,g.parentNode.insertBefore(j,g),!browser.ie||browser.ie&&9==browser.version)for(var k=j.parentNode;!domUtils.isBlockElm(k);)"SPAN"==k.tagName&&(j.style.cssText=k.style.cssText+";"+j.style.cssText),k=k.parentNode;opera?setTimeout(function(){i.setStart(j,0).collapse(!0),c(i,d,e),i.select()}):(i.setStart(j,0).collapse(!0),c(i,d,e),i.select())}else i.insertNode(g),f[a]&&(i.selectNode(g).select(),h.execCommand("removeFormat","span,a",b,null),j=domUtils.findParentByTagName(g,"span",!0),i.setStartBefore(g)),j&&(j.style.cssText+=";"+b+":"+e),i.collapse(!0).select();domUtils.remove(g)}else f[a]&&h.queryCommandValue(a)&&h.execCommand("removeFormat","span,a",b),i=h.selection.getRange(),i.applyInlineStyle("span",{style:b+":"+e}),c(i,d,e),i.select();return!0},queryCommandValue:function(a){var c=this.selection.getStart();if("underline"==a||"strikethrough"==a){for(var d,e=c;e&&!domUtils.isBlockElm(e)&&!domUtils.isBody(e);){if(1==e.nodeType&&(d=domUtils.getComputedStyle(e,b),"none"!=d))return d;e=e.parentNode}return"none"}if("fontborder"==a){for(var f,g=c;g&&dtd.$inline[g.tagName];){if((f=domUtils.getComputedStyle(g,"border"))&&/1px/.test(f)&&/solid/.test(f))return f;g=g.parentNode}return""}if("FontSize"==a){var h=domUtils.getComputedStyle(c,b),g=/^([\d\.]+)(\w+)$/.exec(h);return g?Math.floor(g[1])+g[2]:h}return domUtils.getComputedStyle(c,b)},queryCommandState:function(a){if(!f[a])return 0;var b=this.queryCommandValue(a);return"fontborder"==a?/1px/.test(b)&&/solid/.test(b):"underline"==a?/underline/.test(b):/line\-through/.test(b)}}}(h,e[h])},UE.plugins.link=function(){function a(a){var b=a.startContainer,c=a.endContainer;(b=domUtils.findParentByTagName(b,"a",!0))&&a.setStartBefore(b),(c=domUtils.findParentByTagName(c,"a",!0))&&a.setEndAfter(c)}function b(b,c,d){var e=b.cloneRange(),f=d.queryCommandValue("link");a(b=b.adjustmentBoundary());var g=b.startContainer;if(1==g.nodeType&&f&&(g=g.childNodes[b.startOffset],g&&1==g.nodeType&&"A"==g.tagName&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie?"innerText":"textContent"])&&(g[browser.ie?"innerText":"textContent"]=utils.html(c.textValue||c.href))),e.collapsed&&!f||(b.removeInlineStyle("a"),e=b.cloneRange()),e.collapsed){var h=b.document.createElement("a"),i="";c.textValue?(i=utils.html(c.textValue),delete c.textValue):i=utils.html(c.href),domUtils.setAttributes(h,c),g=domUtils.findParentByTagName(e.startContainer,"a",!0),g&&domUtils.isInNodeEndBoundary(e,g)&&b.setStartAfter(g).collapse(!0),h[browser.ie?"innerText":"textContent"]=i,b.insertNode(h).selectNode(h)}else b.applyInlineStyle("a",c)}UE.commands.unlink={execCommand:function(){var b,c=this.selection.getRange();c.collapsed&&!domUtils.findParentByTagName(c.startContainer,"a",!0)||(b=c.createBookmark(),a(c),c.removeInlineStyle("a").moveToBookmark(b).select())},queryCommandState:function(){return!this.highlight&&this.queryCommandValue("link")?0:-1}},UE.commands.link={execCommand:function(a,c){var d;c._href&&(c._href=utils.unhtml(c._href,/[<">]/g)),c.href&&(c.href=utils.unhtml(c.href,/[<">]/g)),c.textValue&&(c.textValue=utils.unhtml(c.textValue,/[<">]/g)),b(d=this.selection.getRange(),c,this),d.collapse().select(!0)},queryCommandValue:function(){var a,b=this.selection.getRange();if(!b.collapsed){b.shrinkBoundary();var c=3!=b.startContainer.nodeType&&b.startContainer.childNodes[b.startOffset]?b.startContainer.childNodes[b.startOffset]:b.startContainer,d=3==b.endContainer.nodeType||0==b.endOffset?b.endContainer:b.endContainer.childNodes[b.endOffset-1],e=b.getCommonAncestor();if(a=domUtils.findParentByTagName(e,"a",!0),!a&&1==e.nodeType)for(var f,g,h,i=e.getElementsByTagName("a"),j=0;h=i[j++];)if(f=domUtils.getPosition(h,c),g=domUtils.getPosition(h,d),(f&domUtils.POSITION_FOLLOWING||f&domUtils.POSITION_CONTAINS)&&(g&domUtils.POSITION_PRECEDING||g&domUtils.POSITION_CONTAINS)){a=h;break}return a}if(a=b.startContainer,a=1==a.nodeType?a:a.parentNode,a&&(a=domUtils.findParentByTagName(a,"a",!0))&&!domUtils.isInNodeEndBoundary(b,a))return a},queryCommandState:function(){var a=this.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?-1:0}}},UE.plugins.insertframe=function(){function a(){b._iframe&&delete b._iframe}var b=this;b.addListener("selectionchange",function(){a()})},UE.commands.scrawl={queryCommandState:function(){return browser.ie&&browser.version<=8?-1:0}},UE.plugins.removeformat=function(){var a=this;a.setOpt({removeFormatTags:"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var",removeFormatAttributes:"class,style,lang,width,height,align,hspace,valign"}),a.commands.removeformat={execCommand:function(a,b,c,d,e){function f(a){if(3==a.nodeType||"span"!=a.tagName.toLowerCase())return 0;if(browser.ie){var b=a.attributes;if(b.length){for(var c=0,d=b.length;c
    "+this.getContent(null,null,!0)+"
    "),b.close()},notNeedUndo:1},UE.plugins.selectall=function(){var a=this;a.commands.selectall={execCommand:function(){var a=this,b=a.body,c=a.selection.getRange();c.selectNodeContents(b),domUtils.isEmptyBlock(b)&&(browser.opera&&b.firstChild&&1==b.firstChild.nodeType&&c.setStartAtFirst(b.firstChild),c.collapse(!0)),c.select(!0)},notNeedUndo:1},a.addshortcutkey({selectAll:"ctrl+65"})},UE.plugins.paragraph=function(){var a=this,b=domUtils.isBlockElm,c=["TD","LI","PRE"],d=function(a,d,e,f){var g,h=a.createBookmark(),i=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};a.enlarge(!0);for(var j,k=a.createBookmark(),l=domUtils.getNextDomNode(k.start,!1,i),m=a.cloneRange();l&&!(domUtils.getPosition(l,k.end)&domUtils.POSITION_FOLLOWING);)if(3!=l.nodeType&&b(l))l=domUtils.getNextDomNode(l,!0,i);else{for(m.setStartBefore(l);l&&l!==k.end&&!b(l);)j=l,l=domUtils.getNextDomNode(l,!1,null,function(a){return!b(a)});m.setEndAfter(j),g=a.document.createElement(d),e&&(domUtils.setAttributes(g,e),f&&"customstyle"==f&&e.style&&(g.style.cssText=e.style)),g.appendChild(m.extractContents()),domUtils.isEmptyNode(g)&&domUtils.fillChar(a.document,g),m.insertNode(g);var n=g.parentNode;b(n)&&!domUtils.isBody(g.parentNode)&&utils.indexOf(c,n.tagName)==-1&&(f&&"customstyle"==f||(n.getAttribute("dir")&&g.setAttribute("dir",n.getAttribute("dir")),n.style.cssText&&(g.style.cssText=n.style.cssText+";"+g.style.cssText),n.style.textAlign&&!g.style.textAlign&&(g.style.textAlign=n.style.textAlign),n.style.textIndent&&!g.style.textIndent&&(g.style.textIndent=n.style.textIndent),n.style.padding&&!g.style.padding&&(g.style.padding=n.style.padding)),e&&/h\d/i.test(n.tagName)&&!/h\d/i.test(g.tagName)?(domUtils.setAttributes(n,e),f&&"customstyle"==f&&e.style&&(n.style.cssText=e.style),domUtils.remove(g,!0),g=n):domUtils.remove(g.parentNode,!0)),l=utils.indexOf(c,n.tagName)!=-1?n:g,l=domUtils.getNextDomNode(l,!1,i)}return a.moveToBookmark(k).moveToBookmark(h)};a.setOpt("paragraph",{p:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:""}),a.commands.paragraph={execCommand:function(a,b,c,e){var f=this.selection.getRange();if(f.collapsed){var g=this.document.createTextNode("p");if(f.insertNode(g),browser.ie){var h=g.previousSibling;h&&domUtils.isWhitespace(h)&&domUtils.remove(h),h=g.nextSibling,h&&domUtils.isWhitespace(h)&&domUtils.remove(h)}}if(f=d(f,b,c,e),g&&(f.setStartBefore(g).collapse(!0),pN=g.parentNode,domUtils.remove(g),domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)&&domUtils.fillNode(this.document,pN)),browser.gecko&&f.collapsed&&1==f.startContainer.nodeType){var i=f.startContainer.childNodes[f.startOffset];i&&1==i.nodeType&&i.tagName.toLowerCase()==b&&f.setStart(i,0).collapse(!0)}return f.select(),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a?a.tagName.toLowerCase():""}}},function(){var a=domUtils.isBlockElm,b=function(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),function(a){return a&&1==a.nodeType&&a.getAttribute("dir")})},c=function(c,d,e){var f,g=function(a){return 1==a.nodeType?!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)},h=b(d);if(h&&c.collapsed)return h.setAttribute("dir",e),c;f=c.createBookmark(),c.enlarge(!0);for(var i,j=c.createBookmark(),k=domUtils.getNextDomNode(j.start,!1,g),l=c.cloneRange();k&&!(domUtils.getPosition(k,j.end)&domUtils.POSITION_FOLLOWING);)if(3!=k.nodeType&&a(k))k=domUtils.getNextDomNode(k,!0,g);else{for(l.setStartBefore(k);k&&k!==j.end&&!a(k);)i=k,k=domUtils.getNextDomNode(k,!1,null,function(b){return!a(b)});l.setEndAfter(i);var m=l.getCommonAncestor();if(!domUtils.isBody(m)&&a(m))m.setAttribute("dir",e),k=m;else{var n=c.document.createElement("p");n.setAttribute("dir",e);var o=l.extractContents();n.appendChild(o),l.insertNode(n),k=n}k=domUtils.getNextDomNode(k,!1,g)}return c.moveToBookmark(j).moveToBookmark(f)};UE.commands.directionality={execCommand:function(a,b){var d=this.selection.getRange();if(d.collapsed){var e=this.document.createTextNode("d");d.insertNode(e)}return c(d,this,b),e&&(d.setStartBefore(e).collapse(!0),domUtils.remove(e)),d.select(),!0},queryCommandValue:function(){var a=b(this);return a?a.getAttribute("dir"):"ltr"}}}(),UE.plugins.horizontal=function(){var a=this;a.commands.horizontal={execCommand:function(a){var b=this;if(b.queryCommandState(a)!==-1){b.execCommand("insertHtml","
    ");var c=b.selection.getRange(),d=c.startContainer;if(1==d.nodeType&&!d.childNodes[c.startOffset]){var e;(e=d.childNodes[c.startOffset-1])&&1==e.nodeType&&"HR"==e.tagName&&("p"==b.options.enterTag?(e=b.document.createElement("p"),c.insertNode(e),c.setStart(e,0).setCursor()):(e=b.document.createElement("br"),c.insertNode(e),c.setStartBefore(e).setCursor()))}return!0}},queryCommandState:function(){return domUtils.filterNodeList(this.selection.getStartElementPath(),"table")?-1:0}},a.addListener("delkeydown",function(a,b){var c=this.selection.getRange();if(c.txtToElmBoundary(!0),domUtils.isStartInblock(c)){var d=c.startContainer,e=d.previousSibling;if(e&&domUtils.isTagNode(e,"hr"))return domUtils.remove(e),c.select(),domUtils.preventDefault(b),!0}})},UE.commands.time=UE.commands.date={execCommand:function(a,b){function c(a,b){var c=("0"+a.getHours()).slice(-2),d=("0"+a.getMinutes()).slice(-2),e=("0"+a.getSeconds()).slice(-2);return b=b||"hh:ii:ss",b.replace(/hh/gi,c).replace(/ii/gi,d).replace(/ss/gi,e)}function d(a,b){var c=("000"+a.getFullYear()).slice(-4),d=c.slice(-2),e=("0"+(a.getMonth()+1)).slice(-2),f=("0"+a.getDate()).slice(-2);return b=b||"yyyy-mm-dd",b.replace(/yyyy/gi,c).replace(/yy/gi,d).replace(/mm/gi,e).replace(/dd/gi,f)}var e=new Date;this.execCommand("insertHtml","time"==a?c(e,b):d(e,b))}},UE.plugins.rowspacing=function(){var a=this;a.setOpt({rowspacingtop:["5","10","15","20","25"],rowspacingbottom:["5","10","15","20","25"]}),a.commands.rowspacing={execCommand:function(a,b,c){return this.execCommand("paragraph","p",{style:"margin-"+c+":"+b+"px"}),!0},queryCommandValue:function(a,b){var c,d=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});return d?(c=domUtils.getComputedStyle(d,"margin-"+b).replace(/[^\d]/g,""),c?c:0):0}}},UE.plugins.lineheight=function(){var a=this;a.setOpt({lineheight:["1","1.5","1.75","2","3","4","5"]}),a.commands.lineheight={execCommand:function(a,b){return this.execCommand("paragraph","p",{style:"line-height:"+("1"==b?"normal":b+"em")}),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});if(a){var b=domUtils.getComputedStyle(a,"line-height");return"normal"==b?1:b.replace(/[^\d.]*/gi,"")}}}},UE.plugins.insertcode=function(){var a=this;a.ready(function(){utils.cssRule("pre","pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}",a.document)}),a.setOpt("insertcode",{as3:"ActionScript3",bash:"Bash/Shell",cpp:"C/C++",css:"Css",cf:"CodeFunction","c#":"C#",delphi:"Delphi",diff:"Diff",erlang:"Erlang",groovy:"Groovy",html:"Html",java:"Java",jfx:"JavaFx",js:"Javascript",pl:"Perl",php:"Php",plain:"Plain Text",ps:"PowerShell",python:"Python",ruby:"Ruby",scala:"Scala",sql:"Sql",vb:"Vb",xml:"Xml"}),a.commands.insertcode={execCommand:function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e)e.className="brush:"+b+";toolbar:false;";else{var f="";if(d.collapsed)f=browser.ie&&browser.ie11below?browser.version<=8?" ":"":"
    ";else{var g=d.extractContents(),h=c.document.createElement("div");h.appendChild(g),utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g,"")),c.options.filterTxtRules).children,function(a){if(browser.ie&&browser.ie11below&&browser.version>8)"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""));else if(browser.ie&&browser.ie11below)"element"==a.type?"br"==a.tagName?f+="
    ":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="
    ":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/br>$/.test(f)||(f+="
    ")):f+=a.data+"
    ",!a.nextSibling()&&/
    $/.test(f)&&(f=f.replace(/
    $/,""));else if(f+="element"==a.type?dtd.$empty[a.tagName]?"":a.innerText():a.data,!/br\/?\s*>$/.test(f)){if(!a.nextSibling())return;f+="
    "}})}c.execCommand("inserthtml",'
    '+f+"
    ",!0),e=c.document.getElementById("coder"),domUtils.removeAttributes(e,"id");var i=e.previousSibling;i&&(3==i.nodeType&&1==i.nodeValue.length&&browser.ie&&6==browser.version||domUtils.isEmptyBlock(i))&&domUtils.remove(i);var d=c.selection.getRange();domUtils.isEmptyBlock(e)?d.setStart(e,0).setCursor(!1,!0):d.selectNodeContents(e).select()}},queryCommandValue:function(){var a=this.selection.getStartElementPath(),b="";return utils.each(a,function(a){if("PRE"==a.nodeName){var c=a.className.match(/brush:([^;]+)/);return b=c&&c[1]?c[1]:"",!1}}),b}},a.addInputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b=a.getNodesByTagName("br");if(b.length)return void(browser.ie&&browser.ie11below&&browser.version>8&&utils.each(b,function(a){var b=UE.uNode.createText("\n");a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}));if(!(browser.ie&&browser.ie11below&&browser.version>8)){var c=a.innerText().split(/\n/);a.innerHTML(""),utils.each(c,function(b){b.length&&a.appendChild(UE.uNode.createText(b)),a.appendChild(UE.uNode.createElement("br"))})}})}),a.addOutputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b="";utils.each(a.children,function(a){b+="text"==a.type?a.data.replace(/[ ]/g," ").replace(/\n$/,""):"br"==a.tagName?"\n":dtd.$empty[a.tagName]?a.innerText():""}),a.innerText(b.replace(/( |\n)+$/,""))})}),a.notNeedCodeQuery={help:1,undo:1,redo:1,source:1,print:1,searchreplace:1,fullscreen:1,preview:1,insertparagraph:1,elementpath:1,insertcode:1,inserthtml:1,selectall:1};a.queryCommandState;a.queryCommandState=function(a){var b=this;return!b.notNeedCodeQuery[a.toLowerCase()]&&b.selection&&b.queryCommandValue("insertcode")?-1:UE.Editor.prototype.queryCommandState.apply(this,arguments)},a.addListener("beforeenterkeydown",function(){var b=a.selection.getRange(),c=domUtils.findParentByTagName(b.startContainer,"pre",!0);if(c){if(a.fireEvent("saveScene"),b.collapsed||b.deleteContents(),!browser.ie||browser.ie9above){var c,d=a.document.createElement("br");b.insertNode(d).setStartAfter(d).collapse(!0); -var e=d.nextSibling;e||browser.ie&&!(browser.version>10)?b.setStartAfter(d):b.insertNode(d.cloneNode(!1)),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[\\s"+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([\\s"+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g&&(g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g))}b.collapse(!0).select(!0)}else if(browser.version>8){var i=a.document.createTextNode("\n"),j=b.startContainer;if(0==b.startOffset){var k=j.previousSibling;if(k){b.insertNode(i);var l=a.document.createTextNode(" ");b.setStartAfter(i).insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{b.insertNode(i).setStartAfter(i);var l=a.document.createTextNode(" ");j=b.startContainer.childNodes[b.startOffset],j&&!/^\n/.test(j.nodeValue)&&b.setStartBefore(i),b.insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{var d=a.document.createElement("br");b.insertNode(d),b.insertNode(a.document.createTextNode(domUtils.fillChar)),b.setStartAfter(d),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[ "+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([ "+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g)}b.collapse(!0).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("tabkeydown",function(b,c){var d=a.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){if(a.fireEvent("saveScene"),c.shiftKey);else if(d.collapsed){var f=a.document.createTextNode(" ");d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)}else{for(var g=d.createBookmark(),h=g.start.previousSibling;h;){if(e.firstChild===h&&!domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h);break}if(domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h.nextSibling);break}h=h.previousSibling}var i=g.end;for(h=g.start.nextSibling,e.firstChild===g.start&&e.insertBefore(a.document.createTextNode(" "),h.nextSibling);h&&h!==i;){if(domUtils.isBr(h)&&h.nextSibling){if(h.nextSibling===i)break;e.insertBefore(a.document.createTextNode(" "),h.nextSibling)}h=h.nextSibling}d.moveToBookmark(g).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("beforeinserthtml",function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){d.collapsed||d.deleteContents();var f="";if(browser.ie&&browser.version>8){utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""))});var g=c.document.createTextNode(utils.html(f.replace(/ /g," ")));d.insertNode(g).selectNode(g).select()}else{var h=c.document.createDocumentFragment();utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/ /g," ")))):h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/ /g," "))))}),"BR"!=h.lastChild.nodeName&&h.appendChild(c.document.createElement("br"))):h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/ /g," ")))),a.nextSibling()||"BR"!=h.lastChild.nodeName||h.removeChild(h.lastChild)}),d.insertNode(h).select()}return!0}}),a.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(40==d){var e,f=c.selection.getRange(),g=f.startContainer;if(f.collapsed&&(e=domUtils.findParentByTagName(f.startContainer,"pre",!0))&&!e.nextSibling){for(var h=e.lastChild;h&&"BR"==h.nodeName;)h=h.previousSibling;(h===g||f.startContainer===e&&f.startOffset==e.childNodes.length)&&(c.execCommand("insertparagraph"),domUtils.preventDefault(b))}}}),a.addListener("delkeydown",function(b,c){var d=this.selection.getRange();d.txtToElmBoundary(!0);var e=d.startContainer;if(domUtils.isTagNode(e,"pre")&&d.collapsed&&domUtils.isStartInblock(d)){var f=a.document.createElement("p");return domUtils.fillNode(a.document,f),e.parentNode.insertBefore(f,e),domUtils.remove(e),d.setStart(f,0).setCursor(!1,!0),domUtils.preventDefault(c),!0}})},UE.commands.cleardoc={execCommand:function(a){var b=this,c=b.options.enterTag,d=b.selection.getRange();"br"==c?(b.body.innerHTML="
    ",d.setStart(b.body,0).setCursor()):(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",d.setStart(b.body.firstChild,0).setCursor(!1,!0)),setTimeout(function(){b.fireEvent("clearDoc")},0)}},UE.plugin.register("anchor",function(){return{bindEvents:{ready:function(){utils.cssRule("anchor",".anchorclass{background: url('"+this.options.themePath+this.options.theme+"/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",this.document)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){var b;(b=a.getAttr("anchorname"))&&(a.tagName="a",a.setAttr({anchorname:"",name:b,"class":""}))})},inputRule:function(a){utils.each(a.getNodesByTagName("a"),function(a){var b;(b=a.getAttr("name"))&&!a.getAttr("href")&&(a.tagName="img",a.setAttr({anchorname:a.getAttr("name"),"class":"anchorclass"}),a.setAttr("name"))})},commands:{anchor:{execCommand:function(a,b){var c=this.selection.getRange(),d=c.getClosedNode();if(d&&d.getAttribute("anchorname"))b?d.setAttribute("anchorname",b):(c.setStartBefore(d).setCursor(),domUtils.remove(d));else if(b){var e=this.document.createElement("img");c.collapse(!0),domUtils.setAttributes(e,{anchorname:b,"class":"anchorclass"}),c.insertNode(e).setStartAfter(e).setCursor(!1,!0)}}}}}}),UE.plugins.wordcount=function(){var a=this;a.setOpt("wordCount",!0),a.addListener("contentchange",function(){a.fireEvent("wordcount")});var b;a.addListener("ready",function(){var a=this;domUtils.on(a.body,"keyup",function(c){var d=c.keyCode||c.which,e={16:1,18:1,20:1,37:1,38:1,39:1,40:1};d in e||(clearTimeout(b),b=setTimeout(function(){a.fireEvent("wordcount")},200))})})},UE.plugins.pagebreak=function(){function a(a){if(domUtils.isEmptyBlock(a)){for(var b,d=a.firstChild;d&&1==d.nodeType&&domUtils.isEmptyBlock(d);)b=d,d=d.firstChild;!b&&(b=a),domUtils.fillNode(c.document,b)}}function b(a){return a&&1==a.nodeType&&"HR"==a.tagName&&"pagebreak"==a.className}var c=this,d=["td"];c.setOpt("pageBreakTag","_ueditor_page_break_tag_"),c.ready(function(){utils.cssRule("pagebreak",".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}",c.document)}),c.addInputRule(function(a){a.traversal(function(a){if("text"==a.type&&a.data==c.options.pageBreakTag){var b=UE.uNode.createElement('
    ');a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.addOutputRule(function(a){utils.each(a.getNodesByTagName("hr"),function(a){if("pagebreak"==a.getAttr("class")){var b=UE.uNode.createText(c.options.pageBreakTag);a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.commands.pagebreak={execCommand:function(){var e=c.selection.getRange(),f=c.document.createElement("hr");domUtils.setAttributes(f,{"class":"pagebreak",noshade:"noshade",size:"5"}),domUtils.unSelectable(f);var g,h=domUtils.findParentByTagName(e.startContainer,d,!0),i=[];if(h)switch(h.tagName){case"TD":if(g=h.parentNode,g.previousSibling)g.parentNode.insertBefore(f,g),i=domUtils.findParents(f);else{var j=domUtils.findParentByTagName(g,"table");j.parentNode.insertBefore(f,j),i=domUtils.findParents(f,!0)}g=i[1],f!==g&&domUtils.breakParent(f,g),c.fireEvent("afteradjusttable",c.document)}else{if(!e.collapsed){e.deleteContents();for(var k=e.startContainer;!domUtils.isBody(k)&&domUtils.isBlockElm(k)&&domUtils.isEmptyNode(k);)e.setStartBefore(k).collapse(!0),domUtils.remove(k),k=e.startContainer}e.insertNode(f);for(var l,g=f.parentNode;!domUtils.isBody(g);)domUtils.breakParent(f,g),l=f.nextSibling,l&&domUtils.isEmptyBlock(l)&&domUtils.remove(l),g=f.parentNode;l=f.nextSibling;var m=f.previousSibling;if(b(m)?domUtils.remove(m):m&&a(m),l)b(l)?domUtils.remove(l):a(l),e.setEndAfter(f).collapse(!1);else{var n=c.document.createElement("p");f.parentNode.appendChild(n),domUtils.fillNode(c.document,n),e.setStart(n,0).collapse(!0)}e.select(!0)}}}},UE.plugin.register("wordimage",function(){var a=this,b=[];return{commands:{wordimage:{execCommand:function(){for(var b,c=domUtils.getElementsByTagName(a.body,"img"),d=[],e=0;b=c[e++];){var f=b.getAttribute("word_img");f&&d.push(f)}return d},queryCommandState:function(){b=domUtils.getElementsByTagName(a.body,"img");for(var c,d=0;c=b[d++];)if(c.getAttribute("word_img"))return 1;return-1},notNeedUndo:!0}},inputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c=b.attrs,d=parseInt(c.width)<128||parseInt(c.height)<43,e=a.options,f=e.UEDITOR_HOME_URL+"themes/default/images/spacer.gif";c.src&&/^(?:(file:\/+))/.test(c.src)&&b.setAttr({width:c.width,height:c.height,alt:c.alt,word_img:c.src,src:f,style:"background:url("+(d?e.themePath+e.theme+"/images/word.gif":e.langPath+e.lang+"/images/localimage.png")+") no-repeat center center;border:1px solid #ddd"})})}}}),UE.plugins.dragdrop=function(){var a=this;a.ready(function(){domUtils.on(this.body,"dragend",function(){var b=a.selection.getRange(),c=b.getClosedNode()||a.selection.getStart();if(c&&"IMG"==c.tagName){for(var d,e=c.previousSibling;(d=c.nextSibling)&&1==d.nodeType&&"SPAN"==d.tagName&&!d.firstChild;)domUtils.remove(d);(!e||1!=e.nodeType||domUtils.isEmptyBlock(e))&&e||d&&(!d||domUtils.isEmptyBlock(d))||(e&&"P"==e.tagName&&!domUtils.isEmptyBlock(e)?(e.appendChild(c),domUtils.moveChild(d,e),domUtils.remove(d)):d&&"P"==d.tagName&&!domUtils.isEmptyBlock(d)&&d.insertBefore(c,d.firstChild),e&&"P"==e.tagName&&domUtils.isEmptyBlock(e)&&domUtils.remove(e),d&&"P"==d.tagName&&domUtils.isEmptyBlock(d)&&domUtils.remove(d),b.selectNode(c).select(),a.fireEvent("saveScene"))}})}),a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(13==d){var e,f=a.selection.getRange();(e=domUtils.findParentByTagName(f.startContainer,"p",!0))&&"center"==domUtils.getComputedStyle(e,"text-align")&&domUtils.removeStyle(e,"text-align")}})},UE.plugins.undo=function(){function a(a,b){if(a.length!=b.length)return 0;for(var c=0,d=a.length;cf&&this.list.shift(),this.index=this.list.length-1,this.clearKey(),this.update())},this.update=function(){this.hasRedo=!!this.list[this.index+1],this.hasUndo=!!this.list[this.index-1]},this.reset=function(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.clearKey()},this.clearKey=function(){m=0,k=null}}var d,e=this,f=e.options.maxUndoCount||20,g=e.options.maxInputCount||20,h=new RegExp(domUtils.fillChar+"|","gi"),i={ol:1,ul:1,table:1,tbody:1,tr:1,body:1},j=e.options.autoClearEmptyNode;e.undoManger=new c,e.undoManger.editor=e,e.addListener("saveScene",function(){var a=Array.prototype.splice.call(arguments,1);this.undoManger.save.apply(this.undoManger,a)}),e.addListener("reset",function(a,b){b||this.undoManger.reset()}),e.commands.redo=e.commands.undo={execCommand:function(a){this.undoManger[a]()},queryCommandState:function(a){return this.undoManger["has"+("undo"==a.toLowerCase()?"Undo":"Redo")]?0:-1},notNeedUndo:1};var k,l={16:1,17:1,18:1,37:1,38:1,39:1,40:1},m=0,n=!1;e.addListener("ready",function(){domUtils.on(this.body,"compositionstart",function(){n=!0}),domUtils.on(this.body,"compositionend",function(){n=!1})}),e.addshortcutkey({Undo:"ctrl+90",Redo:"ctrl+89"});var o=!0;e.addListener("keydown",function(a,b){function c(a){a.undoManger.save(!1,!0),a.fireEvent("selectionchange")}var e=this,f=b.keyCode||b.which;if(!(l[f]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;if(!e.selection.getRange().collapsed)return e.undoManger.save(!1,!0),void(o=!1);0==e.undoManger.list.length&&e.undoManger.save(!0),clearTimeout(d),d=setTimeout(function(){if(n)var a=setInterval(function(){n||(c(e),clearInterval(a))},300);else c(e)},200),k=f,m++,m>=g&&c(e)}}),e.addListener("keyup",function(a,b){var c=b.keyCode||b.which;if(!(l[c]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;o||(this.undoManger.save(!1,!0),o=!0)}}),e.stopCmdUndo=function(){e.__hasEnterExecCommand=!0},e.startCmdUndo=function(){e.__hasEnterExecCommand=!1}},UE.plugin.register("copy",function(){function a(){ZeroClipboard.config({debug:!1,swfPath:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.swf"});var a=b.zeroclipboard=new ZeroClipboard;a.on("copy",function(a){var c=a.client,d=b.selection.getRange(),e=document.createElement("div");e.appendChild(d.cloneContents()),c.setText(e.innerText||e.textContent),c.setHtml(e.innerHTML),d.select()}),a.on("mouseover mouseout",function(a){var b=a.target;"mouseover"==a.type?domUtils.addClass(b,"edui-state-hover"):"mouseout"==a.type&&domUtils.removeClasses(b,"edui-state-hover")}),a.on("wrongflash noflash",function(){ZeroClipboard.destroy()})}var b=this;return{bindEvents:{ready:function(){browser.ie||(window.ZeroClipboard?a():utils.loadFile(document,{src:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.js",tag:"script",type:"text/javascript",defer:"defer"},function(){a()}))}},commands:{copy:{execCommand:function(a){b.document.execCommand("copy")||alert(b.getLang("copymsg"))}}}}}),UE.plugins.paste=function(){function a(a){var b=this.document;if(!b.getElementById("baidu_pastebin")){var c=this.selection.getRange(),d=c.createBookmark(),e=b.createElement("div");e.id="baidu_pastebin",browser.webkit&&e.appendChild(b.createTextNode(domUtils.fillChar+domUtils.fillChar)),b.body.appendChild(e),d.start.style.display="",e.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:"+domUtils.getXY(d.start).y+"px",c.selectNodeContents(e).select(!0),setTimeout(function(){if(browser.webkit)for(var f,g=0,h=b.querySelectorAll("#baidu_pastebin");f=h[g++];){if(!domUtils.isEmptyNode(f)){e=f;break}domUtils.remove(f)}try{e.parentNode.removeChild(e)}catch(i){}c.moveToBookmark(d).select(!0),a(e)},0)}}function b(a){return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi,function(a,b,c,d){return c=c.toLowerCase(),{img:1}[c]?a:(d=d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,function(a,b,c){return{src:1,href:1,name:1}[b.toLowerCase()]?b+"="+c+" ":""}),{span:1,div:1}[c]?"":"<"+b+c+" "+utils.trim(d)+">")})}function c(a){var c;if(a.firstChild){for(var h,i=domUtils.getElementsByTagName(a,"span"),j=0;h=i[j++];)"_baidu_cut_start"!=h.id&&"_baidu_cut_end"!=h.id||domUtils.remove(h);if(browser.webkit){for(var k,l=a.querySelectorAll("div br"),j=0;k=l[j++];){var m=k.parentNode;"DIV"==m.tagName&&1==m.childNodes.length&&(m.innerHTML="


    ",domUtils.remove(m))}for(var n,o=a.querySelectorAll("#baidu_pastebin"),j=0;n=o[j++];){var p=d.document.createElement("p");for(n.parentNode.insertBefore(p,n);n.firstChild;)p.appendChild(n.firstChild);domUtils.remove(n)}for(var q,r=a.querySelectorAll("meta"),j=0;q=r[j++];)domUtils.remove(q);var l=a.querySelectorAll("br");for(j=0;q=l[j++];)/^apple-/i.test(q.className)&&domUtils.remove(q)}if(browser.gecko){var s=a.querySelectorAll("[_moz_dirty]");for(j=0;q=s[j++];)q.removeAttribute("_moz_dirty")}if(!browser.ie)for(var q,t=a.querySelectorAll("span.Apple-style-span"),j=0;q=t[j++];)domUtils.remove(q,!0);c=a.innerHTML,c=UE.filterWord(c);var u=UE.htmlparser(c);if(d.options.filterRules&&UE.filterNode(u,d.options.filterRules),d.filterInputRule(u),browser.webkit){var v=u.lastChild();v&&"element"==v.type&&"br"==v.tagName&&u.removeChild(v),utils.each(d.body.querySelectorAll("div"),function(a){domUtils.isEmptyBlock(a)&&domUtils.remove(a,!0)})}if(c={html:u.toHtml()},d.fireEvent("beforepaste",c,u),!c.html)return;u=UE.htmlparser(c.html,!0),1===d.queryCommandState("pasteplain")?d.execCommand("insertHtml",UE.filterNode(u,d.options.filterTxtRules).toHtml(),!0):(UE.filterNode(u,d.options.filterTxtRules),e=u.toHtml(),f=c.html,g=d.selection.getRange().createAddress(!0),d.execCommand("insertHtml",d.getOpt("retainOnlyLabelPasted")===!0?b(f):f,!0)),d.fireEvent("afterpaste",c)}}var d=this;d.setOpt({retainOnlyLabelPasted:!1});var e,f,g;d.addListener("pasteTransfer",function(a,c){if(g&&e&&f&&e!=f){var h=d.selection.getRange();if(h.moveToAddress(g,!0),!h.collapsed){for(;!domUtils.isBody(h.startContainer);){var i=h.startContainer;if(1==i.nodeType){if(i=i.childNodes[h.startOffset],!i){h.setStartBefore(h.startContainer);continue}var j=i.previousSibling;j&&3==j.nodeType&&new RegExp("^[\n\r\t "+domUtils.fillChar+"]*$").test(j.nodeValue)&&h.setStartBefore(j)}if(0!=h.startOffset)break;h.setStartBefore(h.startContainer)}for(;!domUtils.isBody(h.endContainer);){var k=h.endContainer;if(1==k.nodeType){if(k=k.childNodes[h.endOffset],!k){h.setEndAfter(h.endContainer);continue}var l=k.nextSibling;l&&3==l.nodeType&&new RegExp("^[\n\r\t"+domUtils.fillChar+"]*$").test(l.nodeValue)&&h.setEndAfter(l)}if(h.endOffset!=h.endContainer[3==h.endContainer.nodeType?"nodeValue":"childNodes"].length)break;h.setEndAfter(h.endContainer)}}h.deleteContents(),h.select(!0),d.__hasEnterExecCommand=!0;var m=f;2===c?m=b(m):c&&(m=e),d.execCommand("inserthtml",m,!0),d.__hasEnterExecCommand=!1;for(var n=d.selection.getRange();!domUtils.isBody(n.startContainer)&&!n.startOffset&&n.startContainer[3==n.startContainer.nodeType?"nodeValue":"childNodes"].length;)n.setStartBefore(n.startContainer);var o=n.createAddress(!0);g.endAddress=o.startAddress}}),d.addListener("ready",function(){domUtils.on(d.body,"cut",function(){var a=d.selection.getRange();!a.collapsed&&d.undoManger&&d.undoManger.save()}),domUtils.on(d.body,browser.ie||browser.opera?"keydown":"paste",function(b){(!browser.ie&&!browser.opera||(b.ctrlKey||b.metaKey)&&"86"==b.keyCode)&&a.call(d,function(a){c(a)})})}),d.commands.paste={execCommand:function(b){browser.ie?(a.call(d,function(a){c(a)}),d.document.execCommand("paste")):alert(d.getLang("pastemsg"))}}},UE.plugins.pasteplain=function(){var a=this;a.setOpt({pasteplain:!1,filterTxtRules:function(){function a(a){a.tagName="p",a.setStyle()}function b(a){a.parentNode.removeChild(a,!0)}return{"-":"script style object iframe embed input select",p:{$:{}},br:{$:{}},div:function(a){for(var b,c=UE.uNode.createElement("p");b=a.firstChild();)"text"!=b.type&&UE.dom.dtd.$block[b.tagName]?c.firstChild()?(a.parentNode.insertBefore(c,a),c=UE.uNode.createElement("p")):a.parentNode.insertBefore(b,a):c.appendChild(b);c.firstChild()&&a.parentNode.insertBefore(c,a),a.parentNode.removeChild(a)},ol:b,ul:b,dl:b,dt:b,dd:b,li:b,caption:a,th:a,tr:a,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,td:function(a){var b=!!a.innerText();b&&a.parentNode.insertAfter(UE.uNode.createText("    "),a),a.parentNode.removeChild(a,a.innerText())}}}()});var b=a.options.pasteplain;a.commands.pasteplain={queryCommandState:function(){return b?1:0},execCommand:function(){b=0|!b},notNeedUndo:1}},UE.plugins.list=function(){function a(a){var b=[];for(var c in a)b.push(c);return b}function b(a){var b=a.className;return domUtils.hasClass(a,/custom_/)?b.match(/custom_(\w+)/)[1]:domUtils.getStyle(a,"list-style-type")}function c(a,c){utils.each(domUtils.getElementsByTagName(a,"ol ul"),function(f){if(domUtils.inDoc(f,a)){var g=f.parentNode;if(g.tagName==f.tagName){var h=b(f)||("OL"==f.tagName?"decimal":"disc"),i=b(g)||("OL"==g.tagName?"decimal":"disc");if(h==i){var l=utils.indexOf(k[f.tagName],h);l=l+1==k[f.tagName].length?0:l+1,e(f,k[f.tagName][l])}}var m=0,n=2;domUtils.hasClass(f,/custom_/)?/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)||(n=1):/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)&&(n=3);var o=domUtils.getStyle(f,"list-style-type");o&&(f.style.cssText="list-style-type:"+o),f.className=utils.trim(f.className.replace(/list-paddingleft-\w+/,""))+" list-paddingleft-"+n,utils.each(domUtils.getElementsByTagName(f,"li"),function(a){if(a.style.cssText&&(a.style.cssText=""),!a.firstChild)return void domUtils.remove(a);if(a.parentNode===f){if(m++,domUtils.hasClass(f,/custom_/)){var c=1,d=b(f);if("OL"==f.tagName){if(d)switch(d){case"cn":case"cn1":case"cn2":m>10&&(m%10==0||m>10&&m<20)?c=2:m>20&&(c=3);break;case"num2":m>9&&(c=2)}a.className="list-"+j[d]+m+" list-"+d+"-paddingleft-"+c}else a.className="list-"+j[d]+" list-"+d+"-paddingleft"}else a.className=a.className.replace(/list-[\w\-]+/gi,"");var e=a.getAttribute("class");null===e||e.replace(/\s/g,"")||domUtils.removeAttributes(a,"class")}}),!c&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getStyle(f,"list-style-type"),!0)}})}function d(a,d,e,f){var g=a.nextSibling;g&&1==g.nodeType&&g.tagName.toLowerCase()==d&&(b(g)||domUtils.getStyle(g,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&(domUtils.moveChild(g,a),0==g.childNodes.length&&domUtils.remove(g)),g&&domUtils.isFillChar(g)&&domUtils.remove(g);var h=a.previousSibling;h&&1==h.nodeType&&h.tagName.toLowerCase()==d&&(b(h)||domUtils.getStyle(h,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&domUtils.moveChild(a,h),h&&domUtils.isFillChar(h)&&domUtils.remove(h),!f&&domUtils.isEmptyBlock(a)&&domUtils.remove(a),b(a)&&c(a.ownerDocument,!0)}function e(a,b){j[b]&&(a.className="custom_"+b);try{domUtils.setStyle(a,"list-style-type",b)}catch(c){}}function f(a){var b=a.previousSibling;b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b),b=a.nextSibling,b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b)}function g(a){for(;a&&!domUtils.isBody(a);){if("TABLE"==a.nodeName)return null;if("LI"==a.nodeName)return a;a=a.parentNode}}var h=this,i={TD:1,PRE:1,BLOCKQUOTE:1},j={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};h.setOpt({autoTransWordToList:!1,insertorderedlist:{num:"",num1:"",num2:"",cn:"",cn1:"",cn2:"",decimal:"","lower-alpha":"","lower-roman":"","upper-alpha":"","upper-roman":""},insertunorderedlist:{circle:"",disc:"",square:"",dash:"",dot:""},listDefaultPaddingLeft:"30",listiconpath:"http://bs.baidu.com/listicon/",maxListLevel:-1,disablePInList:!1});var k={OL:a(h.options.insertorderedlist),UL:a(h.options.insertunorderedlist)},l=h.options.listiconpath;for(var m in j)h.options.insertorderedlist.hasOwnProperty(m)||h.options.insertunorderedlist.hasOwnProperty(m)||delete j[m];h.ready(function(){var a=[];for(var b in j){if("dash"==b||"dot"==b)a.push("li.list-"+j[b]+"{background-image:url("+l+j[b]+".gif)}"),a.push("ul.custom_"+b+"{list-style:none;}ul.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}");else{for(var c=0;c<99;c++)a.push("li.list-"+j[b]+c+"{background-image:url("+l+"list-"+j[b]+c+".gif)}");a.push("ol.custom_"+b+"{list-style:none;}ol.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(b){case"cn":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.push("li.list-"+b+"-paddingleft-1{padding-left:30px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.push("li.list-"+b+"-paddingleft-1{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:55px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}");break;case"num2":a.push("li.list-"+b+"-paddingleft-1{padding-left:35px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}");break;case"dash":a.push("li.list-"+b+"-paddingleft{padding-left:35px}");break;case"dot":a.push("li.list-"+b+"-paddingleft{padding-left:20px}")}}a.push(".list-paddingleft-1{padding-left:0}"),a.push(".list-paddingleft-2{padding-left:"+h.options.listDefaultPaddingLeft+"px}"),a.push(".list-paddingleft-3{padding-left:"+2*h.options.listDefaultPaddingLeft+"px}"),utils.cssRule("list","ol,ul{margin:0;pading:0;"+(browser.ie?"":"width:95%")+"}li{clear:both;}"+a.join("\n"),h.document)}),h.ready(function(){domUtils.on(h.body,"cut",function(){setTimeout(function(){var a,b=h.selection.getRange();if(!b.collapsed&&(a=domUtils.findParentByTagName(b.startContainer,"li",!0))&&!a.nextSibling&&domUtils.isEmptyBlock(a)){var c,d=a.parentNode;if(c=d.previousSibling)domUtils.remove(d),b.setStartAtLast(c).collapse(!0),b.select(!0);else if(c=d.nextSibling)domUtils.remove(d),b.setStartAtFirst(c).collapse(!0),b.select(!0);else{var e=h.document.createElement("p");domUtils.fillNode(h.document,e),d.parentNode.insertBefore(e,d),domUtils.remove(d),b.setStart(e,0).collapse(!0),b.select(!0)}}})})}),h.addListener("beforepaste",function(a,c){var d,e=this,f=e.selection.getRange(),g=UE.htmlparser(c.html,!0);if(d=domUtils.findParentByTagName(f.startContainer,"li",!0)){var h=d.parentNode,i="OL"==h.tagName?"ul":"ol";utils.each(g.getNodesByTagName(i),function(c){if(c.tagName=h.tagName,c.setAttr(),c.parentNode===g)a=b(h)||("OL"==h.tagName?"decimal":"disc");else{var d=c.parentNode.getAttr("class");a=d&&/custom_/.test(d)?d.match(/custom_(\w+)/)[1]:c.parentNode.getStyle("list-style-type"),a||(a="OL"==h.tagName?"decimal":"disc")}var e=utils.indexOf(k[h.tagName],a);c.parentNode!==g&&(e=e+1==k[h.tagName].length?0:e+1);var f=k[h.tagName][e];j[f]?c.setAttr("class","custom_"+f):c.setStyle("list-style-type",f)})}c.html=g.toHtml()}),h.getOpt("disablePInList")===!0&&h.addOutputRule(function(a){utils.each(a.getNodesByTagName("li"),function(a){var b=[],c=0;utils.each(a.children,function(d){if("p"==d.tagName){for(var e;e=d.children.pop();)b.splice(c,0,e),e.parentNode=a,lastNode=e;if(e=b[b.length-1],!e||"element"!=e.type||"br"!=e.tagName){var f=UE.uNode.createElement("br");f.parentNode=a,b.push(f)}c=b.length}}),b.length&&(a.children=b)})}),h.addInputRule(function(a){function b(a,b){var e=b.firstChild();if(e&&"element"==e.type&&"span"==e.tagName&&/Wingdings|Symbol/.test(e.getStyle("font-family"))){for(var f in d)if(d[f]==e.data)return f;return"disc"}for(var f in c)if(c[f].test(a))return f}if(utils.each(a.getNodesByTagName("li"),function(a){for(var b,c=UE.uNode.createElement("p"),d=0;b=a.children[d];)"text"==b.type||dtd.p[b.tagName]?c.appendChild(b):c.firstChild()?(a.insertBefore(c,b),c=UE.uNode.createElement("p"),d+=2):d++;(c.firstChild()&&!c.parentNode||!a.firstChild())&&a.appendChild(c),c.firstChild()||c.innerHTML(browser.ie?" ":"
    ");var e=a.firstChild(),f=e.lastChild();f&&"text"==f.type&&/^\s*$/.test(f.data)&&e.removeChild(f)}),h.options.autoTransWordToList){var c={num1:/^\d+\)/,decimal:/^\d+\./,"lower-alpha":/^[a-z]+\)/,"upper-alpha":/^[A-Z]+\./,cn:/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,cn2:/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/},d={square:"n"};utils.each(a.getNodesByTagName("p"),function(a){function d(a,b,d){if("ol"==a.tagName)if(browser.ie){var e=b.firstChild();"element"==e.type&&"span"==e.tagName&&c[d].test(e.innerText())&&b.removeChild(e)}else b.innerHTML(b.innerHTML().replace(c[d],""));else b.removeChild(b.firstChild());var f=UE.uNode.createElement("li");f.appendChild(b),a.appendChild(f)}if("MsoListParagraph"==a.getAttr("class")){a.setStyle("margin",""),a.setStyle("margin-left",""),a.setAttr("class","");var e,f=a,g=a;if("li"!=a.parentNode.tagName&&(e=b(a.innerText(),a))){var i=UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e)?"ol":"ul");for(j[e]?i.setAttr("class","custom_"+e):i.setStyle("list-style-type",e);a&&"li"!=a.parentNode.tagName&&b(a.innerText(),a);)f=a.nextSibling(),f||a.parentNode.insertBefore(i,a),d(i,a,e),a=f;!i.parentNode&&a&&a.parentNode&&a.parentNode.insertBefore(i,a)}var k=g.firstChild();k&&"element"==k.type&&"span"==k.tagName&&/^\s*( )+\s*$/.test(k.innerText())&&k.parentNode.removeChild(k)}})}}),h.addListener("contentchange",function(){c(h.document)}),h.addListener("keydown",function(a,b){function c(){b.preventDefault?b.preventDefault():b.returnValue=!1,h.fireEvent("contentchange"),h.undoManger&&h.undoManger.save()}function d(a,b){for(;a&&!domUtils.isBody(a);){if(b(a))return null;if(1==a.nodeType&&/[ou]l/i.test(a.tagName))return a;a=a.parentNode}return null}var e=b.keyCode||b.which;if(13==e&&!b.shiftKey){var g=h.selection.getRange(),i=domUtils.findParent(g.startContainer,function(a){return domUtils.isBlockElm(a)},!0),j=domUtils.findParentByTagName(g.startContainer,"li",!0);if(i&&"PRE"!=i.tagName&&!j){var k=i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"),"");/^\s*1\s*\.[^\d]/.test(k)&&(i.innerHTML=k.replace(/^\s*1\s*\./,""),g.setStartAtLast(i).collapse(!0).select(),h.__hasEnterExecCommand=!0,h.execCommand("insertorderedlist"),h.__hasEnterExecCommand=!1)}var l=h.selection.getRange(),m=d(l.startContainer,function(a){return"TABLE"==a.tagName}),n=l.collapsed?m:d(l.endContainer,function(a){return"TABLE"==a.tagName});if(m&&n&&m===n){if(!l.collapsed){if(m=domUtils.findParentByTagName(l.startContainer,"li",!0),n=domUtils.findParentByTagName(l.endContainer,"li",!0),!m||!n||m!==n){var o=l.cloneRange(),p=o.collapse(!1).createBookmark();l.deleteContents(),o.moveToBookmark(p);var j=domUtils.findParentByTagName(o.startContainer,"li",!0);return f(j),o.select(),void c()}if(l.deleteContents(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isEmptyBlock(j))return v=j.previousSibling,next=j.nextSibling,s=h.document.createElement("p"),domUtils.fillNode(h.document,s),q=j.parentNode,v&&next?(l.setStart(next,0).collapse(!0).select(!0),domUtils.remove(j)):((v||next)&&v?j.parentNode.parentNode.insertBefore(s,q.nextSibling):q.parentNode.insertBefore(s,q),domUtils.remove(j),q.firstChild||domUtils.remove(q), -l.setStart(s,0).setCursor()),void c()}if(j=domUtils.findParentByTagName(l.startContainer,"li",!0)){if(domUtils.isEmptyBlock(j)){p=l.createBookmark();var q=j.parentNode;if(j!==q.lastChild?(domUtils.breakParent(j,q),f(j)):(q.parentNode.insertBefore(j,q.nextSibling),domUtils.isEmptyNode(q)&&domUtils.remove(q)),!dtd.$list[j.parentNode.tagName])if(domUtils.isBlockElm(j.firstChild))domUtils.remove(j,!0);else{for(s=h.document.createElement("p"),j.parentNode.insertBefore(s,j);j.firstChild;)s.appendChild(j.firstChild);domUtils.remove(j)}l.moveToBookmark(p).select()}else{var r=j.firstChild;if(!r||!domUtils.isBlockElm(r)){var s=h.document.createElement("p");for(!j.firstChild&&domUtils.fillNode(h.document,s);j.firstChild;)s.appendChild(j.firstChild);j.appendChild(s),r=s}var t=h.document.createElement("span");l.insertNode(t),domUtils.breakParent(t,j);var u=t.nextSibling;r=u.firstChild,r||(s=h.document.createElement("p"),domUtils.fillNode(h.document,s),u.appendChild(s),r=s),domUtils.isEmptyNode(r)&&(r.innerHTML="",domUtils.fillNode(h.document,r)),l.setStart(r,0).collapse(!0).shrinkBoundary().select(),domUtils.remove(t);var v=u.previousSibling;v&&domUtils.isEmptyBlock(v)&&(v.innerHTML="

    ",domUtils.fillNode(h.document,v.firstChild))}c()}}}if(8==e&&(l=h.selection.getRange(),l.collapsed&&domUtils.isStartInblock(l)&&(o=l.cloneRange().trimBoundary(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isStartInblock(o)))){if(m=domUtils.findParentByTagName(l.startContainer,"p",!0),m&&m!==j.firstChild){var q=domUtils.findParentByTagName(m,["ol","ul"]);return domUtils.breakParent(m,q),f(m),h.fireEvent("contentchange"),l.setStart(m,0).setCursor(!1,!0),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&(v=j.previousSibling)){if(46==e&&j.childNodes.length)return;if(dtd.$list[v.tagName]&&(v=v.lastChild),h.undoManger&&h.undoManger.save(),r=j.firstChild,domUtils.isBlockElm(r))if(domUtils.isEmptyNode(r))for(v.appendChild(r),l.setStart(r,0).setCursor(!1,!0);j.firstChild;)v.appendChild(j.firstChild);else t=h.document.createElement("span"),l.insertNode(t),domUtils.isEmptyBlock(v)&&(v.innerHTML=""),domUtils.moveChild(j,v),l.setStartBefore(t).collapse(!0).select(!0),domUtils.remove(t);else if(domUtils.isEmptyNode(j)){var s=h.document.createElement("p");v.appendChild(s),l.setStart(s,0).setCursor()}else for(l.setEnd(v,v.childNodes.length).collapse().select(!0);j.firstChild;)v.appendChild(j.firstChild);return domUtils.remove(j),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&!j.previousSibling){var q=j.parentNode,p=l.createBookmark();if(domUtils.isTagNode(q.parentNode,"ol ul"))q.parentNode.insertBefore(j,q),domUtils.isEmptyNode(q)&&domUtils.remove(q);else{for(;j.firstChild;)q.parentNode.insertBefore(j.firstChild,q);domUtils.remove(j),domUtils.isEmptyNode(q)&&domUtils.remove(q)}return l.moveToBookmark(p).setCursor(!1,!0),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}}}),h.addListener("keyup",function(a,c){var e=c.keyCode||c.which;if(8==e){var f,g=h.selection.getRange();(f=domUtils.findParentByTagName(g.startContainer,["ol","ul"],!0))&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getComputedStyle(f,"list-style-type"),!0)}}),h.addListener("tabkeydown",function(){function a(a){if(h.options.maxListLevel!=-1){for(var b=a.parentNode,c=0;/[ou]l/i.test(b.tagName);)c++,b=b.parentNode;if(c>=h.options.maxListLevel)return!0}}var c=h.selection.getRange(),f=domUtils.findParentByTagName(c.startContainer,"li",!0);if(f){var g;if(!c.collapsed){h.fireEvent("saveScene"),g=c.createBookmark();for(var i,j,l=0,m=domUtils.findParents(f);j=m[l++];)if(domUtils.isTagNode(j,"ol ul")){i=j;break}var n=f;if(g.end)for(;n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);)if(a(n))n=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});else{var o=n.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type")),r=q+1==k[p.tagName].length?0:q+1,s=k[p.tagName][r];for(e(p,s),o.insertBefore(p,n);n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);){if(f=n.nextSibling,p.appendChild(n),!f||domUtils.isTagNode(f,"ol ul")){if(f)for(;(f=f.firstChild)&&"LI"!=f.tagName;);else f=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});break}n=f}d(p,p.tagName.toLowerCase(),s),n=f}return h.fireEvent("contentchange"),c.moveToBookmark(g).select(),!0}if(a(f))return!0;var o=f.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type"));q=q+1==k[p.tagName].length?0:q+1;var s=k[p.tagName][q];if(e(p,s),domUtils.isStartInblock(c))return h.fireEvent("saveScene"),g=c.createBookmark(),o.insertBefore(p,f),p.appendChild(f),d(p,p.tagName.toLowerCase(),s),h.fireEvent("contentchange"),c.moveToBookmark(g).select(!0),!0}}),h.commands.insertorderedlist=h.commands.insertunorderedlist={execCommand:function(a,c){c||(c="insertorderedlist"==a.toLowerCase()?"decimal":"disc");var f=this,h=this.selection.getRange(),j=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},k="insertorderedlist"==a.toLowerCase()?"ol":"ul",l=f.document.createDocumentFragment();h.adjustmentBoundary().shrinkBoundary();var m,n,o,p,q=h.createBookmark(!0),r=g(f.document.getElementById(q.start)),s=0,t=g(f.document.getElementById(q.end)),u=0;if(r||t){if(r&&(m=r.parentNode),q.end||(t=r),t&&(n=t.parentNode),m===n){for(;r!==t;){if(p=r,r=r.nextSibling,!domUtils.isBlockElm(p.firstChild)){for(var v=f.document.createElement("p");p.firstChild;)v.appendChild(p.firstChild);p.appendChild(v)}l.appendChild(p)}if(p=f.document.createElement("span"),m.insertBefore(p,t),!domUtils.isBlockElm(t.firstChild)){for(v=f.document.createElement("p");t.firstChild;)v.appendChild(t.firstChild);t.appendChild(v)}l.appendChild(t),domUtils.breakParent(p,m),domUtils.isEmptyNode(p.previousSibling)&&domUtils.remove(p.previousSibling),domUtils.isEmptyNode(p.nextSibling)&&domUtils.remove(p.nextSibling);var w=b(m)||domUtils.getComputedStyle(m,"list-style-type")||("insertorderedlist"==a.toLowerCase()?"decimal":"disc");if(m.tagName.toLowerCase()==k&&w==c){for(var x,y=0,z=f.document.createDocumentFragment();x=l.firstChild;)if(domUtils.isTagNode(x,"ol ul"))z.appendChild(x);else for(;x.firstChild;)z.appendChild(x.firstChild),domUtils.remove(x);p.parentNode.insertBefore(z,p)}else o=f.document.createElement(k),e(o,c),o.appendChild(l),p.parentNode.insertBefore(o,p);return domUtils.remove(p),o&&d(o,k,c),void h.moveToBookmark(q).select()}if(r){for(;r;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(var A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);if(B)l.appendChild(A);else{var C=f.document.createElement("p");C.appendChild(A),l.appendChild(C)}domUtils.remove(r)}r=p}m.parentNode.insertBefore(l,m.nextSibling),domUtils.isEmptyNode(m)?(h.setStartBefore(m),domUtils.remove(m)):h.setStartAfter(m),s=1}if(t&&domUtils.inDoc(n,f.document)){for(r=n.firstChild;r&&r!==t;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);B?l.appendChild(A):(C=f.document.createElement("p"),C.appendChild(A),l.appendChild(C)),domUtils.remove(r)}r=p}var D=domUtils.createElement(f.document,"div",{tmpDiv:1});domUtils.moveChild(t,D),l.appendChild(D),domUtils.remove(t),n.parentNode.insertBefore(l,n),h.setEndBefore(n),domUtils.isEmptyNode(n)&&domUtils.remove(n),u=1}}s||h.setStartBefore(f.document.getElementById(q.start)),q.end&&!u&&h.setEndAfter(f.document.getElementById(q.end)),h.enlarge(!0,function(a){return i[a.tagName]}),l=f.document.createDocumentFragment();for(var E,F=h.createBookmark(),G=domUtils.getNextDomNode(F.start,!1,j),H=h.cloneRange(),I=domUtils.isBlockElm;G&&G!==F.end&&domUtils.getPosition(G,F.end)&domUtils.POSITION_PRECEDING;)if(3==G.nodeType||dtd.li[G.tagName]){if(1==G.nodeType&&dtd.$list[G.tagName]){for(;G.firstChild;)l.appendChild(G.firstChild);E=domUtils.getNextDomNode(G,!1,j),domUtils.remove(G),G=E;continue}for(E=G,H.setStartBefore(G);G&&G!==F.end&&(!I(G)||domUtils.isBookmarkNode(G));)E=G,G=domUtils.getNextDomNode(G,!1,null,function(a){return!i[a.tagName]});G&&I(G)&&(p=domUtils.getNextDomNode(E,!1,j),p&&domUtils.isBookmarkNode(p)&&(G=domUtils.getNextDomNode(p,!1,j),E=p)),H.setEndAfter(E),G=domUtils.getNextDomNode(E,!1,j);var J=h.document.createElement("li");if(J.appendChild(H.extractContents()),domUtils.isEmptyNode(J)){for(var E=h.document.createElement("p");J.firstChild;)E.appendChild(J.firstChild);J.appendChild(E)}l.appendChild(J)}else G=domUtils.getNextDomNode(G,!0,j);h.moveToBookmark(F).collapse(!0),o=f.document.createElement(k),e(o,c),o.appendChild(l),h.insertNode(o),d(o,k,c);for(var x,y=0,K=domUtils.getElementsByTagName(o,"div");x=K[y++];)x.getAttribute("tmpDiv")&&domUtils.remove(x,!0);h.moveToBookmark(q).select()},queryCommandState:function(a){for(var b,c="insertorderedlist"==a.toLowerCase()?"ol":"ul",d=this.selection.getStartElementPath(),e=0;b=d[e++];){if("TABLE"==b.nodeName)return 0;if(c==b.nodeName.toLowerCase())return 1}return 0},queryCommandValue:function(a){for(var c,d,e="insertorderedlist"==a.toLowerCase()?"ol":"ul",f=this.selection.getStartElementPath(),g=0;d=f[g++];){if("TABLE"==d.nodeName){c=null;break}if(e==d.nodeName.toLowerCase()){c=d;break}}return c?b(c)||domUtils.getComputedStyle(c,"list-style-type"):null}}},function(){var a={textarea:function(a,b){var c=b.ownerDocument.createElement("textarea");return c.style.cssText="position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;",browser.ie&&browser.version<8&&(c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px",b.onresize=function(){c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px"}),b.appendChild(c),{setContent:function(a){c.value=a},getContent:function(){return c.value},select:function(){var a;browser.ie?(a=c.createTextRange(),a.collapse(!0),a.select()):(c.setSelectionRange(0,0),c.focus())},dispose:function(){b.removeChild(c),b.onresize=null,c=null,b=null}}},codemirror:function(a,b){var c=window.CodeMirror(b,{mode:"text/html",tabMode:"indent",lineNumbers:!0,lineWrapping:!0}),d=c.getWrapperElement();return d.style.cssText='position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;',c.getScrollerElement().style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;",c.refresh(),{getCodeMirror:function(){return c},setContent:function(a){c.setValue(a)},getContent:function(){return c.getValue()},select:function(){c.focus()},dispose:function(){b.removeChild(d),d=null,c=null}}}};UE.plugins.source=function(){function b(b){return a["codemirror"==f.sourceEditor&&window.CodeMirror?"codemirror":"textarea"](e,b)}var c,d,e=this,f=this.options,g=!1;f.sourceEditor=browser.ie?"textarea":f.sourceEditor||"codemirror",e.setOpt({sourceEditorFirst:!1});var h,i,j;e.commands.source={execCommand:function(){if(g=!g){j=e.selection.getRange().createAddress(!1,!0),e.undoManger&&e.undoManger.save(!0),browser.gecko&&(e.body.contentEditable=!1),h=e.iframe.style.cssText,e.iframe.style.cssText+="position:absolute;left:-32768px;top:-32768px;",e.fireEvent("beforegetcontent");var a=UE.htmlparser(e.body.innerHTML);e.filterOutputRule(a),a.traversal(function(a){if("element"==a.type)switch(a.tagName){case"td":case"th":case"caption":a.children&&1==a.children.length&&"br"==a.firstChild().tagName&&a.removeChild(a.firstChild());break;case"pre":a.innerText(a.innerText().replace(/ /g," "))}}),e.fireEvent("aftergetcontent");var f=a.toHtml(!0);c=b(e.iframe.parentNode),c.setContent(f),d=e.setContent,e.setContent=function(a){var b=UE.htmlparser(a);e.filterInputRule(b),a=b.toHtml(),c.setContent(a)},setTimeout(function(){c.select(),e.addListener("fullscreenchanged",function(){try{c.getCodeMirror().refresh()}catch(a){}})}),i=e.getContent,e.getContent=function(){return c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    "}}else{e.iframe.style.cssText=h;var k=c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    ";k=k.replace(new RegExp("[\\r\\t\\n ]*]*)>","g"),function(a,b){return b&&!dtd.$inlineWithA[b.toLowerCase()]?a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,""):a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,"")}),e.setContent=d,e.setContent(k),c.dispose(),c=null,e.getContent=i;var l=e.body.firstChild;if(l||(e.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",l=e.body.firstChild),e.undoManger&&e.undoManger.save(!0),browser.gecko){var m=document.createElement("input");m.style.cssText="position:absolute;left:0;top:-32768px",document.body.appendChild(m),e.body.contentEditable=!1,setTimeout(function(){domUtils.setViewportOffset(m,{left:-32768,top:0}),m.focus(),setTimeout(function(){e.body.contentEditable=!0,e.selection.getRange().moveToAddress(j).select(!0),domUtils.remove(m)})})}else try{e.selection.getRange().moveToAddress(j).select(!0)}catch(n){}}this.fireEvent("sourcemodechanged",g)},queryCommandState:function(){return 0|g},notNeedUndo:1};var k=e.queryCommandState;e.queryCommandState=function(a){return a=a.toLowerCase(),g?a in{source:1,fullscreen:1}?1:-1:k.apply(this,arguments)},"codemirror"==f.sourceEditor&&e.addListener("ready",function(){utils.loadFile(document,{src:f.codeMirrorJsUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.js",tag:"script",type:"text/javascript",defer:"defer"},function(){f.sourceEditorFirst&&setTimeout(function(){e.execCommand("source")},0)}),utils.loadFile(document,{tag:"link",rel:"stylesheet",type:"text/css",href:f.codeMirrorCssUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.css"})})}}(),UE.plugins.enterkey=function(){var a,b=this,c=b.options.enterTag;b.addListener("keyup",function(c,d){var e=d.keyCode||d.which;if(13==e){var f,g=b.selection.getRange(),h=g.startContainer;if(browser.ie)b.fireEvent("saveScene",!0,!0);else{if(/h\d/i.test(a)){if(browser.gecko){var i=domUtils.findParentByTagName(h,["h1","h2","h3","h4","h5","h6","blockquote","caption","table"],!0);i||(b.document.execCommand("formatBlock",!1,"

    "),f=1)}else if(1==h.nodeType){var j,k=b.document.createTextNode("");if(g.insertNode(k),j=domUtils.findParentByTagName(k,"div",!0)){for(var l=b.document.createElement("p");j.firstChild;)l.appendChild(j.firstChild);j.parentNode.insertBefore(l,j),domUtils.remove(j),g.setStartBefore(k).setCursor(),f=1}domUtils.remove(k)}b.undoManger&&f&&b.undoManger.save()}browser.opera&&g.select()}}}),b.addListener("keydown",function(d,e){var f=e.keyCode||e.which;if(13==f){if(b.fireEvent("beforeenterkeydown"))return void domUtils.preventDefault(e);b.fireEvent("saveScene",!0,!0),a="";var g=b.selection.getRange();if(!g.collapsed){var h=g.startContainer,i=g.endContainer,j=domUtils.findParentByTagName(h,"td",!0),k=domUtils.findParentByTagName(i,"td",!0);if(j&&k&&j!==k||!j&&k||j&&!k)return void(e.preventDefault?e.preventDefault():e.returnValue=!1)}if("p"==c)browser.ie||(h=domUtils.findParentByTagName(g.startContainer,["ol","ul","p","h1","h2","h3","h4","h5","h6","blockquote","caption"],!0),h||browser.opera?(a=h.tagName,"p"==h.tagName.toLowerCase()&&browser.gecko&&domUtils.removeDirtyAttr(h)):(b.document.execCommand("formatBlock",!1,"

    "),browser.gecko&&(g=b.selection.getRange(),h=domUtils.findParentByTagName(g.startContainer,"p",!0),h&&domUtils.removeDirtyAttr(h))));else if(e.preventDefault?e.preventDefault():e.returnValue=!1,g.collapsed){m=g.document.createElement("br"),g.insertNode(m);var l=m.parentNode;l.lastChild===m?(m.parentNode.insertBefore(m.cloneNode(!0),m),g.setStartBefore(m)):g.setStartAfter(m),g.setCursor()}else if(g.deleteContents(),h=g.startContainer,1==h.nodeType&&(h=h.childNodes[g.startOffset])){for(;1==h.nodeType;){if(dtd.$empty[h.tagName])return g.setStartBefore(h).setCursor(),b.undoManger&&b.undoManger.save(),!1;if(!h.firstChild){var m=g.document.createElement("br");return h.appendChild(m),g.setStart(h,0).setCursor(),b.undoManger&&b.undoManger.save(),!1}h=h.firstChild}h===g.startContainer.childNodes[g.startOffset]?(m=g.document.createElement("br"),g.insertNode(m).setCursor()):g.setStart(h,0).setCursor()}else m=g.document.createElement("br"),g.insertNode(m).setStartAfter(m).setCursor()}})},UE.plugins.keystrokes=function(){var a=this,b=!0;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which,f=a.selection.getRange();if(!f.collapsed&&!(d.ctrlKey||d.shiftKey||d.altKey||d.metaKey)&&(e>=65&&e<=90||e>=48&&e<=57||e>=96&&e<=111||{13:1,8:1,46:1}[e])){var g=f.startContainer;if(domUtils.isFillChar(g)&&f.setStartBefore(g),g=f.endContainer,domUtils.isFillChar(g)&&f.setEndAfter(g),f.txtToElmBoundary(),f.endContainer&&1==f.endContainer.nodeType&&(g=f.endContainer.childNodes[f.endOffset],g&&domUtils.isBr(g)&&f.setEndAfter(g)),0==f.startOffset&&(g=f.startContainer,domUtils.isBoundaryNode(g,"firstChild")&&(g=f.endContainer,f.endOffset==(3==g.nodeType?g.nodeValue.length:g.childNodes.length)&&domUtils.isBoundaryNode(g,"lastChild"))))return a.fireEvent("saveScene"),a.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",f.setStart(a.body.firstChild,0).setCursor(!1,!0),void a._selectionChange()}if(e==keymap.Backspace){if(f=a.selection.getRange(),b=f.collapsed,a.fireEvent("delkeydown",d))return;var h,i;if(f.collapsed&&f.inFillChar()&&(h=f.startContainer,domUtils.isFillChar(h)?(f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),domUtils.remove(h)):(h.nodeValue=h.nodeValue.replace(new RegExp("^"+domUtils.fillChar),""),f.startOffset--,f.collapse(!0).select(!0))),h=f.getClosedNode())return a.fireEvent("saveScene"),f.setStartBefore(h),domUtils.remove(h),f.setCursor(),a.fireEvent("saveScene"),void domUtils.preventDefault(d);if(!browser.ie&&(h=domUtils.findParentByTagName(f.startContainer,"table",!0),i=domUtils.findParentByTagName(f.endContainer,"table",!0),h&&!i||!h&&i||h!==i))return void d.preventDefault()}if(e==keymap.Tab){var j={ol:1,ul:1,table:1};if(a.fireEvent("tabkeydown",d))return void domUtils.preventDefault(d);var k=a.selection.getRange();a.fireEvent("saveScene");for(var l=0,m="",n=a.options.tabSize||4,o=a.options.tabNode||" ";l"});d.insertNode(g).setStart(g,0).setCursor(!1,!0)}}if(!b&&(3==d.startContainer.nodeType||1==d.startContainer.nodeType&&domUtils.isEmptyBlock(d.startContainer)))if(browser.ie){var k=d.document.createElement("span");d.insertNode(k).setStartBefore(k).collapse(!0),d.select(),domUtils.remove(k)}else d.select()}})},UE.plugins.fiximgclick=function(){function a(){this.editor=null,this.resizer=null,this.cover=null,this.doc=document,this.prePos={x:0,y:0},this.startPos={x:0,y:0}}var b=!1;return function(){var c=[[0,0,-1,-1],[0,0,0,-1],[0,0,1,-1],[0,0,-1,0],[0,0,1,0],[0,0,-1,1],[0,0,0,1],[0,0,1,1]];a.prototype={init:function(a){var b=this;b.editor=a,b.startPos=this.prePos={x:0,y:0},b.dragId=-1;var c=[],d=b.cover=document.createElement("div"),e=b.resizer=document.createElement("div");for(d.id=b.editor.ui.id+"_imagescale_cover",d.style.cssText="position:absolute;display:none;z-index:"+b.editor.options.zIndex+";filter:alpha(opacity=0); opacity:0;background:#CCC;",domUtils.on(d,"mousedown click",function(){b.hide()}),i=0;i<8;i++)c.push('');e.id=b.editor.ui.id+"_imagescale",e.className="edui-editor-imagescale",e.innerHTML=c.join(""),e.style.cssText+=";display:none;border:1px solid #3b77ff;z-index:"+b.editor.options.zIndex+";",b.editor.ui.getDom().appendChild(d),b.editor.ui.getDom().appendChild(e),b.initStyle(),b.initEvents()},initStyle:function(){utils.cssRule("imagescale",".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}")},initEvents:function(){var a=this;a.startPos.x=a.startPos.y=0,a.isDraging=!1},_eventHandler:function(a){var c=this;switch(a.type){case"mousedown":var d,d=a.target||a.srcElement;d.className.indexOf("edui-editor-imagescale-hand")!=-1&&c.dragId==-1&&(c.dragId=d.className.slice(-1),c.startPos.x=c.prePos.x=a.clientX,c.startPos.y=c.prePos.y=a.clientY,domUtils.on(c.doc,"mousemove",c.proxy(c._eventHandler,c)));break;case"mousemove":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.prePos.x=a.clientX,c.prePos.y=a.clientY,b=!0,c.updateTargetElement());break;case"mouseup":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.updateTargetElement(),c.target.parentNode&&c.attachTo(c.target),c.dragId=-1),domUtils.un(c.doc,"mousemove",c.proxy(c._eventHandler,c)),b&&(b=!1,c.editor.fireEvent("contentchange"))}},updateTargetElement:function(){var a=this;domUtils.setStyles(a.target,{width:a.resizer.style.width,height:a.resizer.style.height}),a.target.width=parseInt(a.resizer.style.width),a.target.height=parseInt(a.resizer.style.height),a.attachTo(a.target)},updateContainerStyle:function(a,b){var d,e=this,f=e.resizer;0!=c[a][0]&&(d=parseInt(f.style.left)+b.x,f.style.left=e._validScaledProp("left",d)+"px"),0!=c[a][1]&&(d=parseInt(f.style.top)+b.y,f.style.top=e._validScaledProp("top",d)+"px"),0!=c[a][2]&&(d=f.clientWidth+c[a][2]*b.x,f.style.width=e._validScaledProp("width",d)+"px"),0!=c[a][3]&&(d=f.clientHeight+c[a][3]*b.y,f.style.height=e._validScaledProp("height",d)+"px")},_validScaledProp:function(a,b){var c=this.resizer,d=document;switch(b=isNaN(b)?0:b,a){case"left":return b<0?0:b+c.clientWidth>d.clientWidth?d.clientWidth-c.clientWidth:b;case"top":return b<0?0:b+c.clientHeight>d.clientHeight?d.clientHeight-c.clientHeight:b;case"width":return b<=0?1:b+c.offsetLeft>d.clientWidth?d.clientWidth-c.offsetLeft:b;case"height":return b<=0?1:b+c.offsetTop>d.clientHeight?d.clientHeight-c.offsetTop:b}},hideCover:function(){this.cover.style.display="none"},showCover:function(){var a=this,b=domUtils.getXY(a.editor.ui.getDom()),c=domUtils.getXY(a.editor.iframe);domUtils.setStyles(a.cover,{width:a.editor.iframe.offsetWidth+"px",height:a.editor.iframe.offsetHeight+"px",top:c.y-b.y+"px",left:c.x-b.x+"px",position:"absolute",display:""})},show:function(a){var b=this;b.resizer.style.display="block",a&&b.attachTo(a),domUtils.on(this.resizer,"mousedown",b.proxy(b._eventHandler,b)),domUtils.on(b.doc,"mouseup",b.proxy(b._eventHandler,b)),b.showCover(),b.editor.fireEvent("afterscaleshow",b),b.editor.fireEvent("saveScene")},hide:function(){var a=this;a.hideCover(),a.resizer.style.display="none",domUtils.un(a.resizer,"mousedown",a.proxy(a._eventHandler,a)),domUtils.un(a.doc,"mouseup",a.proxy(a._eventHandler,a)),a.editor.fireEvent("afterscalehide",a)},proxy:function(a,b){return function(c){return a.apply(b||this,arguments)}},attachTo:function(a){var b=this,c=b.target=a,d=this.resizer,e=domUtils.getXY(c),f=domUtils.getXY(b.editor.iframe),g=domUtils.getXY(d.parentNode);domUtils.setStyles(d,{width:c.width+"px",height:c.height+"px",left:f.x+e.x-b.editor.document.body.scrollLeft-g.x-parseInt(d.style.borderLeftWidth)+"px",top:f.y+e.y-b.editor.document.body.scrollTop-g.y-parseInt(d.style.borderTopWidth)+"px"})}}}(),function(){var b,c=this;c.setOpt("imageScaleEnabled",!0),!browser.ie&&c.options.imageScaleEnabled&&c.addListener("click",function(d,e){var f=c.selection.getRange(),g=f.getClosedNode();if(g&&"IMG"==g.tagName&&"false"!=c.body.contentEditable){if(g.className.indexOf("edui-faked-music")!=-1||g.getAttribute("anchorname")||domUtils.hasClass(g,"loadingclass")||domUtils.hasClass(g,"loaderrorclass"))return;if(!b){b=new a,b.init(c),c.ui.getDom().appendChild(b.resizer);var h,i=function(a){b.hide(),b.target&&c.selection.getRange().selectNode(b.target).select()},j=function(a){var b=a.target||a.srcElement;!b||void 0!==b.className&&b.className.indexOf("edui-editor-imagescale")!=-1||i(a)};c.addListener("afterscaleshow",function(a){c.addListener("beforekeydown",i),c.addListener("beforemousedown",j),domUtils.on(document,"keydown",i),domUtils.on(document,"mousedown",j),c.selection.getNative().removeAllRanges()}),c.addListener("afterscalehide",function(a){c.removeListener("beforekeydown",i),c.removeListener("beforemousedown",j),domUtils.un(document,"keydown",i),domUtils.un(document,"mousedown",j);var d=b.target;d.parentNode&&c.selection.getRange().selectNode(d).select()}),domUtils.on(b.resizer,"mousedown",function(a){c.selection.getNative().removeAllRanges();var d=a.target||a.srcElement;d&&d.className.indexOf("edui-editor-imagescale-hand")==-1&&(h=setTimeout(function(){b.hide(),b.target&&c.selection.getRange().selectNode(d).select()},200))}),domUtils.on(b.resizer,"mouseup",function(a){var b=a.target||a.srcElement;b&&b.className.indexOf("edui-editor-imagescale-hand")==-1&&clearTimeout(h)})}b.show(g)}else b&&"none"!=b.resizer.style.display&&b.hide()}),browser.webkit&&c.addListener("click",function(a,b){if("IMG"==b.target.tagName&&"false"!=c.body.contentEditable){var d=new dom.Range(c.document);d.selectNode(b.target).select()}})}}(),UE.plugin.register("autolink",function(){var a=0;return browser.ie?{}:{bindEvents:{reset:function(){a=0},keydown:function(a,b){var c=this,d=b.keyCode||b.which;if(32==d||13==d){for(var e,f,g=c.selection.getNative(),h=g.getRangeAt(0).cloneRange(),i=h.startContainer;1==i.nodeType&&h.startOffset>0&&(i=h.startContainer.childNodes[h.startOffset-1]);)h.setStart(i,1==i.nodeType?i.childNodes.length:i.nodeValue.length),h.collapse(!0),i=h.startContainer;do{if(0==h.startOffset){for(i=h.startContainer.previousSibling;i&&1==i.nodeType;)i=i.lastChild;if(!i||domUtils.isFillChar(i))break;e=i.nodeValue.length}else i=h.startContainer,e=h.startOffset;h.setStart(i,e-1),f=h.toString().charCodeAt(0)}while(160!=f&&32!=f);if(h.toString().replace(new RegExp(domUtils.fillChar,"g"),"").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)){for(;h.toString().length&&!/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString());)try{h.setStart(h.startContainer,h.startOffset+1)}catch(j){for(var i=h.startContainer;!(next=i.nextSibling);){if(domUtils.isBody(i))return;i=i.parentNode}h.setStart(next,0)}if(domUtils.findParentByTagName(h.startContainer,"a",!0))return;var k,l=c.document.createElement("a"),m=c.document.createTextNode(" ");c.undoManger&&c.undoManger.save(),l.appendChild(h.extractContents()),l.href=l.innerHTML=l.innerHTML.replace(/<[^>]+>/g,""),k=l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"),""),k=/^(?:https?:\/\/)/gi.test(k)?k:"http://"+k,l.setAttribute("_src",utils.html(k)),l.href=utils.html(k),h.insertNode(l),l.parentNode.insertBefore(m,l.nextSibling),h.setStart(m,0),h.collapse(!0),g.removeAllRanges(),g.addRange(h),c.undoManger&&c.undoManger.save()}}}}}},function(){function a(a){if(3==a.nodeType)return null;if("A"==a.nodeName)return a;for(var b=a.lastChild;b;){if("A"==b.nodeName)return b;if(3==b.nodeType){if(domUtils.isWhitespace(b)){b=b.previousSibling;continue}return null}b=b.lastChild}}var b={37:1,38:1,39:1,40:1,13:1,32:1};browser.ie&&this.addListener("keyup",function(c,d){var e=this,f=d.keyCode;if(b[f]){var g=e.selection.getRange(),h=g.startContainer;if(13==f){for(;h&&!domUtils.isBody(h)&&!domUtils.isBlockElm(h);)h=h.parentNode;if(h&&!domUtils.isBody(h)&&"P"==h.nodeName){var i=h.previousSibling;if(i&&1==i.nodeType){var i=a(i);i&&!i.getAttribute("_href")&&domUtils.remove(i,!0)}}}else if(32==f)3==h.nodeType&&/^\s$/.test(h.nodeValue)&&(h=h.previousSibling,h&&"A"==h.nodeName&&!h.getAttribute("_href")&&domUtils.remove(h,!0));else if(h=domUtils.findParentByTagName(h,"a",!0),h&&!h.getAttribute("_href")){var j=g.createBookmark();domUtils.remove(h,!0),g.moveToBookmark(j).select(!0)}}})}),UE.plugins.autoheight=function(){function a(){var a=this;clearTimeout(e),f||(!a.queryCommandState||a.queryCommandState&&1!=a.queryCommandState("source"))&&(e=setTimeout(function(){for(var b=a.body.lastChild;b&&1!=b.nodeType;)b=b.previousSibling;b&&1==b.nodeType&&(b.style.clear="both",d=Math.max(domUtils.getXY(b).y+b.offsetHeight+25,Math.max(h.minFrameHeight,h.initialFrameHeight)),d!=g&&(d!==parseInt(a.iframe.parentNode.style.height)&&(a.iframe.parentNode.style.height=d+"px"),a.body.style.height=d+"px",g=d),domUtils.removeStyle(b,"clear"))},50))}var b=this;if(b.autoHeightEnabled=b.options.autoHeightEnabled!==!1,b.autoHeightEnabled){var c,d,e,f,g=0,h=b.options;b.addListener("fullscreenchanged",function(a,b){f=b}),b.addListener("destroy",function(){b.removeListener("contentchange afterinserthtml keyup mouseup",a)}),b.enableAutoHeight=function(){var b=this;if(b.autoHeightEnabled){var d=b.document;b.autoHeightEnabled=!0,c=d.body.style.overflowY,d.body.style.overflowY="hidden",b.addListener("contentchange afterinserthtml keyup mouseup",a),setTimeout(function(){a.call(b)},browser.gecko?100:0),b.fireEvent("autoheightchanged",b.autoHeightEnabled)}},b.disableAutoHeight=function(){b.body.style.overflowY=c||"",b.removeListener("contentchange",a),b.removeListener("keyup",a),b.removeListener("mouseup",a),b.autoHeightEnabled=!1,b.fireEvent("autoheightchanged",b.autoHeightEnabled)},b.on("setHeight",function(){b.disableAutoHeight()}),b.addListener("ready",function(){b.enableAutoHeight();var c;domUtils.on(browser.ie?b.body:b.document,browser.webkit?"dragover":"drop",function(){ -clearTimeout(c),c=setTimeout(function(){a.call(b)},100)});var d;window.onscroll=function(){null===d?d=this.scrollY:0==this.scrollY&&0!=d&&(b.window.scrollTo(0,0),d=null)}})}},UE.plugins.autofloat=function(){function a(){return UE.ui?1:(alert(g.autofloatMsg),0)}function b(){var a=document.body.style;a.backgroundImage='url("about:blank")',a.backgroundAttachment="fixed"}function c(){var a=domUtils.getXY(k),b=domUtils.getComputedStyle(k,"position"),c=domUtils.getComputedStyle(k,"left");k.style.width=k.offsetWidth+"px",k.style.zIndex=1*f.options.zIndex+1,k.parentNode.insertBefore(q,k),o||p&&browser.ie?("absolute"!=k.style.position&&(k.style.position="absolute"),k.style.top=(document.body.scrollTop||document.documentElement.scrollTop)-l+i+"px"):(browser.ie7Compat&&r&&(r=!1,k.style.left=domUtils.getXY(k).x-document.documentElement.getBoundingClientRect().left+2+"px"),"fixed"!=k.style.position&&(k.style.position="fixed",k.style.top=i+"px",("absolute"==b||"relative"==b)&&parseFloat(c)&&(k.style.left=a.x+"px")))}function d(){r=!0,q.parentNode&&q.parentNode.removeChild(q),k.style.cssText=j}function e(){var a=m(f.container),b=f.options.toolbarTopOffset||0;a.top<0&&a.bottom-k.offsetHeight>b?c():d()}var f=this,g=f.getLang();f.setOpt({topOffset:0});var h=f.options.autoFloatEnabled!==!1,i=f.options.topOffset;if(h){var j,k,l,m,n=UE.ui.uiUtils,o=browser.ie&&browser.version<=6,p=browser.quirks,q=document.createElement("div"),r=!0,s=utils.defer(function(){e()},browser.ie?200:100,!0);f.addListener("destroy",function(){domUtils.un(window,["scroll","resize"],e),f.removeListener("keydown",s)}),f.addListener("ready",function(){if(a(f)){if(!f.ui)return;m=n.getClientRect,k=f.ui.getDom("toolbarbox"),l=m(k).top,j=k.style.cssText,q.style.height=k.offsetHeight+"px",o&&b(),domUtils.on(window,["scroll","resize"],e),f.addListener("keydown",s),f.addListener("beforefullscreenchange",function(a,b){b&&d()}),f.addListener("fullscreenchanged",function(a,b){b||e()}),f.addListener("sourcemodechanged",function(a,b){setTimeout(function(){e()},0)}),f.addListener("clearDoc",function(){setTimeout(function(){e()},0)})}})}},UE.plugins.video=function(){function a(a,b,d,e,f,g,h){a=utils.unhtmlForUrl(a),f=utils.unhtml(f),g=utils.unhtml(g).trim(),b=parseInt(b,10)||0,d=parseInt(d,10)||0;var i;switch(h){case"image":i="';break;case"embed":i='';break;case"video":var j=a.substr(a.lastIndexOf(".")+1);"ogv"==j&&(j="ogg"),i="'}return i}function b(b,c){utils.each(b.getNodesByTagName(c?"img":"embed video"),function(b){var d=b.getAttr("class");if(d&&d.indexOf("edui-faked-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"embed":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}if(d&&d.indexOf("edui-upload-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"video":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}})}var c=this;c.addOutputRule(function(a){b(a,!0)}),c.addInputRule(function(a){b(a)}),c.commands.insertvideo={execCommand:function(b,d,e){d=utils.isArray(d)?d:[d];for(var f,g,h=[],i="tmpVedio",j=0,k=d.length;j0)return 0;for(var c in dtd.$isNotEmpty)if(dtd.$isNotEmpty.hasOwnProperty(c)&&a.getElementsByTagName(c).length)return 0;return 1},b.getWidth=function(a){return a?parseInt(domUtils.getComputedStyle(a,"width"),10):0},b.getTableCellAlignState=function(a){!utils.isArray(a)&&(a=[a]);var b={},c=["align","valign"],d=null,e=!0;return utils.each(a,function(a){return utils.each(c,function(c){if(d=a.getAttribute(c),!b[c]&&d)b[c]=d;else if(!b[c]||d!==b[c])return e=!1,!1}),e}),e?b:null},b.getTableItemsByRange=function(a){var b=a.selection.getStart();b&&b.id&&0===b.id.indexOf("_baidu_bookmark_start_")&&b.nextSibling&&(b=b.nextSibling);var c=b&&domUtils.findParentByTagName(b,["td","th"],!0),d=c&&c.parentNode,e=b&&domUtils.findParentByTagName(b,"caption",!0),f=e?e.parentNode:d&&d.parentNode.parentNode;return{cell:c,tr:d,table:f,caption:e}},b.getUETableBySelected=function(a){var c=b.getTableItemsByRange(a).table;return c&&c.ueTable&&c.ueTable.selectedTds.length?c.ueTable:null},b.getDefaultValue=function(a,b){var c,d,e,f,g={thin:"0px",medium:"1px",thick:"2px"};if(b)return h=b.getElementsByTagName("td")[0],f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),{tableBorder:c,tdPadding:d,tdBorder:e};b=a.document.createElement("table"),b.insertRow(0).insertCell(0).innerHTML="xxx",a.body.appendChild(b);var h=b.getElementsByTagName("td")[0];return f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),domUtils.remove(b),{tableBorder:c,tdPadding:d,tdBorder:e}},b.getUETable=function(a){var c=a.tagName.toLowerCase();return a="td"==c||"th"==c||"caption"==c?domUtils.findParentByTagName(a,"table",!0):a,a.ueTable||(a.ueTable=new b(a)),a.ueTable},b.cloneCell=function(a,b,c){if(!a||utils.isString(a))return this.table.ownerDocument.createElement(a||"td");var d=domUtils.hasClass(a,"selectTdClass");d&&domUtils.removeClasses(a,"selectTdClass");var e=a.cloneNode(!0);return b&&(e.rowSpan=e.colSpan=1),!c&&domUtils.removeAttributes(e,"width height"),!c&&domUtils.removeAttributes(e,"style"),e.style.borderLeftStyle="",e.style.borderTopStyle="",e.style.borderLeftColor=a.style.borderRightColor,e.style.borderLeftWidth=a.style.borderRightWidth,e.style.borderTopColor=a.style.borderBottomColor,e.style.borderTopWidth=a.style.borderBottomWidth,d&&domUtils.addClass(a,"selectTdClass"),e},b.prototype={getMaxRows:function(){for(var a,b=this.table.rows,c=1,d=0;a=b[d];d++){for(var e,f=1,g=0;e=a.cells[g++];)f=Math.max(e.rowSpan||1,f);c=Math.max(f+d,c)}return c},getMaxCols:function(){for(var a,b=this.table.rows,c=0,d={},e=0;a=b[e];e++){for(var f,g=0,h=0;f=a.cells[h++];)if(g+=f.colSpan||1,f.rowSpan&&f.rowSpan>1)for(var i=1;ithis.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getSameEndPosCells:function(b,c){try{for(var d="x"===c.toLowerCase(),e=domUtils.getXY(b)[d?"x":"y"]+b["offset"+(d?"Width":"Height")],f=this.table.rows,g=null,h=[],i=0;ie&&d)break;if((b==j||e==l)&&(1==j[d?"colSpan":"rowSpan"]&&h.push(j),d))break}}return h}catch(m){a(m)}},setCellContent:function(a,b){a.innerHTML=b||(browser.ie?domUtils.fillChar:"
    ")},cloneCell:b.cloneCell,getSameStartPosXCells:function(b){try{for(var c,d=domUtils.getXY(b).x+b.offsetWidth,e=this.table.rows,f=[],g=0;gd)break;if(j==d&&1==h.colSpan){f.push(h);break}}}return f}catch(k){a(k)}},update:function(a){this.table=a||this.table,this.selectedTds=[],this.cellsRange={},this.indexTable=[];for(var b=this.table.rows,c=this.getMaxRows(),d=c-b.length,e=this.getMaxCols();d--;)this.table.insertRow(b.length);this.rowsNum=c,this.colsNum=e;for(var f=0,g=b.length;fc&&(j.rowSpan=c);for(var m=k,n=j.rowSpan||1,o=j.colSpan||1;this.indexTable[i][m];)m++;for(var p=0;p0)for(h=b;hf&&(m=Math.max(h,m));if(ee&&(l=Math.max(i,l));if(b>0)for(i=a;ig||d+b.colSpan-1>h)return null;j.push(this.getCell(c,b.cellIndex))}}return j},clearSelected:function(){b.removeSelectedClass(this.selectedTds),this.selectedTds=[],this.cellsRange={}},setSelected:function(a){var c=this.getCells(a);b.addSelectedClass(c),this.selectedTds=c,this.cellsRange=a},isFullRow:function(){var a=this.cellsRange;return a.endColIndex-a.beginColIndex+1==this.colsNum},isFullCol:function(){var a=this.cellsRange,b=this.table,c=b.getElementsByTagName("th"),d=a.endRowIndex-a.beginRowIndex+1;return c.length?d==this.rowsNum||d==this.rowsNum-1:d==this.rowsNum},getNextCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getPreviewCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.rowIndex>this.colsNum-1)?null:(d=c?g?h.beginRowIndex:f.rowIndex<1?0:f.rowIndex-1:g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},moveContent:function(a,c){if(!b.isEmptyBlock(c)){if(b.isEmptyBlock(a))return void(a.innerHTML=c.innerHTML);var d=a.lastChild;for(3!=d.nodeType&&dtd.$block[d.tagName]||a.appendChild(a.ownerDocument.createElement("br"));d=c.firstChild;)a.appendChild(d)}},mergeRight:function(a){var b=this.getCellInfo(a),c=b.colIndex+b.colSpan,d=this.indexTable[b.rowIndex][c],e=this.getCell(d.rowIndex,d.cellIndex);a.colSpan=b.colSpan+d.colSpan,a.removeAttribute("width"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeDown:function(a){var b=this.getCellInfo(a),c=b.rowIndex+b.rowSpan,d=this.indexTable[c][b.colIndex],e=this.getCell(d.rowIndex,d.cellIndex);a.rowSpan=b.rowSpan+d.rowSpan,a.removeAttribute("height"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeRange:function(){var a=this.cellsRange,b=this.getCell(a.beginRowIndex,this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex);if("TH"==b.tagName&&a.endRowIndex!==a.beginRowIndex){var c=this.indexTable,d=this.getCellInfo(b);b=this.getCell(1,c[1][d.colIndex].cellIndex),a=this.getCellsRange(b,this.getCell(c[this.rowsNum-1][d.colIndex].rowIndex,c[this.rowsNum-1][d.colIndex].cellIndex))}for(var e,f=this.getCells(a),g=0;e=f[g++];)e!==b&&(this.moveContent(b,e),this.deleteCell(e));if(b.rowSpan=a.endRowIndex-a.beginRowIndex+1,b.rowSpan>1&&b.removeAttribute("height"),b.colSpan=a.endColIndex-a.beginColIndex+1,b.colSpan>1&&b.removeAttribute("width"),b.rowSpan==this.rowsNum&&1!=b.colSpan&&(b.colSpan=1),b.colSpan==this.colsNum&&1!=b.rowSpan){var h=b.parentNode.rowIndex;if(this.table.deleteRow)for(var g=h+1,i=h+1,j=b.rowSpan;g1&&g.rowIndex==a){var i=h.cloneNode(!0);i.rowSpan=h.rowSpan-1,i.innerHTML="",h.rowSpan=1;var j,k=a+1,l=this.table.rows[k],m=this.getPreviewMergedCellsNum(k,f)-e;m1?l.colSpan--:c[h].deleteCell(j.cellIndex),h+=j.rowSpan||1}}this.table.setAttribute("width",d-e),this.update()},splitToCells:function(a){var b=this,c=this.splitToRows(a);utils.each(c,function(a){b.splitToCols(a)})},splitToRows:function(a){var b=this.getCellInfo(a),c=b.rowIndex,d=b.colIndex,e=[];a.rowSpan=1,e.push(a);for(var f=c,g=c+b.rowSpan;f");for(var g=0;g'+(browser.ie&&browser.version<11?domUtils.fillChar:"
    ")+"");c.push("")}return"
    "+c.join("")+"
    "}b||(b=utils.extend({},{numCols:this.options.defaultCols,numRows:this.options.defaultRows,tdvalign:this.options.tdvalign}));var d=this,e=this.selection.getRange(),f=e.startContainer,h=domUtils.findParent(f,function(a){return domUtils.isBlockElm(a)},!0)||d.body,i=g(d),j=h.offsetWidth,k=Math.floor(j/b.numCols-2*i.tdPadding-i.tdBorder);!b.tdvalign&&(b.tdvalign=d.options.tdvalign),d.execCommand("inserthtml",c(b,k))}},UE.commands.insertparagraphbeforetable={queryCommandState:function(){return e(this).cell?0:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("p");b.innerHTML=browser.ie?" ":"
    ",a.parentNode.insertBefore(b,a),this.selection.getRange().setStart(b,0).setCursor()}}},UE.commands.deletetable={queryCommandState:function(){var a=this.selection.getRange();return domUtils.findParentByTagName(a.startContainer,"table",!0)?0:-1},execCommand:function(a,b){var c=this.selection.getRange();if(b=b||domUtils.findParentByTagName(c.startContainer,"table",!0)){var d=b.nextSibling;d||(d=domUtils.createElement(this.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"
    "}),b.parentNode.insertBefore(d,b)),domUtils.remove(b),c=this.selection.getRange(),3==d.nodeType?c.setStartBefore(d):c.setStart(d,0),c.setCursor(!1,!0),this.fireEvent("tablehasdeleted")}}},UE.commands.cellalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("align",b)}},UE.commands.cellvalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("vAlign",b)}},UE.commands.insertcaption={queryCommandState:function(){var a=e(this).table;return a&&0==a.getElementsByTagName("caption").length?1:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("caption");b.innerHTML=browser.ie?domUtils.fillChar:"
    ",a.insertBefore(b,a.firstChild);var c=this.selection.getRange();c.setStart(b,0).setCursor()}}},UE.commands.deletecaption={queryCommandState:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");return b?0==b.getElementsByTagName("caption").length?-1:1:-1},execCommand:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");if(b){domUtils.remove(b.getElementsByTagName("caption")[0]);var c=this.selection.getRange();c.setStart(b.rows[0].cells[0],0).setCursor()}}},UE.commands.inserttitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"!=b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&h(a).insertRow(0,"th");var b=a.getElementsByTagName("th")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.deletetitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"==b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&domUtils.remove(a.rows[0]);var b=a.getElementsByTagName("td")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.inserttitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?-1:0}return-1},execCommand:function(b){var c=e(this).table;c&&h(c).insertCol(0,"th"),a(c,this);var d=c.getElementsByTagName("th")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.deletetitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?0:-1}return-1},execCommand:function(){var b=e(this).table;if(b)for(var c=0;c=f.colsNum)return-1;var j=f.indexTable[g.rowIndex][i],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.rowIndex==g.rowIndex&&j.rowSpan==g.rowSpan?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0),d=e(this).cell,f=h(d);f.mergeRight(d),b.moveToBookmark(c).select()}},UE.commands.mergedown={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.rowIndex+g.rowSpan;if(i>=f.rowsNum)return-1;var j=f.indexTable[i][g.colIndex],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.colIndex==g.colIndex&&j.colSpan==g.colSpan?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.mergeDown(c),a.moveToBookmark(b).select()}},UE.commands.mergecells={queryCommandState:function(){return f(this)?0:-1},execCommand:function(){var a=f(this);if(a&&a.selectedTds.length){var b=a.selectedTds[0];a.mergeRange();var c=this.selection.getRange();domUtils.isEmptyBlock(b)?c.setStart(b,0).collapse(!0):c.selectNodeContents(b),c.select()}}},UE.commands.insertrow={queryCommandState:function(){var a=e(this),b=a.cell;return b&&("TD"==b.tagName||"TH"==b.tagName&&a.tr!==a.table.rows[0])&&h(a.table).rowsNum0?-1:b&&(b.colSpan>1||b.rowSpan>1)?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCells(c),a.moveToBookmark(b).select()}},UE.commands.splittorows={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.rowSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToRows(c),a.moveToBookmark(b).select()}},UE.commands.splittocols={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.colSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCols(c),a.moveToBookmark(b).select()}},UE.commands.adaptbytext=UE.commands.adaptbywindow={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(b){var c=e(this),d=c.table;if(d)if("adaptbywindow"==b)a(d,this);else{var f=domUtils.getElementsByTagName(d,"td th");utils.each(f,function(a){a.removeAttribute("width")}),d.removeAttribute("width")}}},UE.commands.averagedistributecol={queryCommandState:function(){var a=f(this);return a&&(a.isFullRow()||a.isFullCol())?0:-1},execCommand:function(a){function b(){var a,b=e.table,c=0,f=0,h=g(d,b);if(e.isFullRow())c=b.offsetWidth,f=e.colsNum;else for(var i,j=e.cellsRange.beginColIndex,k=e.cellsRange.endColIndex,l=j;l<=k;)i=e.selectedTds[l],c+=i.offsetWidth,l+=i.colSpan,f+=1;return a=Math.ceil(c/f)-2*h.tdBorder-2*h.tdPadding}function c(a){utils.each(domUtils.getElementsByTagName(e.table,"th"),function(a){a.setAttribute("width","")});var b=e.isFullRow()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.colSpan&&b.setAttribute("width",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.averagedistributerow={queryCommandState:function(){var a=f(this);return a?a.selectedTds&&/th/gi.test(a.selectedTds[0].tagName)?-1:a.isFullRow()||a.isFullCol()?0:-1:-1},execCommand:function(a){function b(){var a,b,c=0,f=e.table,h=g(d,f),i=parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0],"padding-top"));if(e.isFullCol()){var j,k,l=domUtils.getElementsByTagName(f,"caption"),m=domUtils.getElementsByTagName(f,"th");l.length>0&&(j=l[0].offsetHeight),m.length>0&&(k=m[0].offsetHeight),c=f.offsetHeight-(j||0)-(k||0),b=0==m.length?e.rowsNum:e.rowsNum-1}else{for(var n=e.cellsRange.beginRowIndex,o=e.cellsRange.endRowIndex,p=0,q=domUtils.getElementsByTagName(f,"tr"),r=n;r<=o;r++)c+=q[r].offsetHeight,p+=1;b=p}return a=browser.ie&&browser.version<9?Math.ceil(c/b):Math.ceil(c/b)-2*h.tdBorder-2*i}function c(a){var b=e.isFullCol()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.rowSpan&&b.setAttribute("height",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.cellalignment={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){domUtils.setAttributes(a,b)});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);/caption/gi.test(g.tagName)?(g.style.textAlign=b.align,g.style.verticalAlign=b.vAlign):domUtils.setAttributes(g,b),c.selection.getRange().setCursor(!0)}},queryCommandValue:function(a){var b=e(this).cell;if(b||(b=c(this)[0]),b){var d=UE.UETable.getUETable(b).selectedTds;return!d.length&&(d=b),UE.UETable.getTableCellAlignState(d)}return null}},UE.commands.tablealignment={queryCommandState:function(){return browser.ie&&browser.version<8?-1:e(this).table?0:-1},execCommand:function(a,b){var c=this,d=c.selection.getStart(),e=d&&domUtils.findParentByTagName(d,["table"],!0);e&&e.setAttribute("align",b)}},UE.commands.edittable={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this.selection.getRange(),d=domUtils.findParentByTagName(c.startContainer,"table");if(d){var e=domUtils.getElementsByTagName(d,"td").concat(domUtils.getElementsByTagName(d,"th"),domUtils.getElementsByTagName(d,"caption"));utils.each(e,function(a){a.style.borderColor=b})}}},UE.commands.edittd={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){a.style.backgroundColor=b});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);g&&(g.style.backgroundColor=b)}}},UE.commands.settablebackground={queryCommandState:function(){return c(this).length>1?0:-1},execCommand:function(a,b){var d,e;d=c(this),e=h(d[0]),e.setBackground(d,b)}},UE.commands.cleartablebackground={queryCommandState:function(){var a=c(this);if(!a.length)return-1;for(var b,d=0;b=a[d++];)if(""!==b.style.backgroundColor)return 0;return-1},execCommand:function(){var a=c(this),b=h(a[0]);b.removeBackground(a)}},UE.commands.interlacetable=UE.commands.uninterlacetable={queryCommandState:function(a){var b=e(this).table;if(!b)return-1;var c=b.getAttribute("interlaced");return"interlacetable"==a?"enabled"===c?-1:0:c&&"disabled"!==c?0:-1},execCommand:function(a,b){var c=e(this).table;"interlacetable"==a?(c.setAttribute("interlaced","enabled"),this.fireEvent("interlacetable",c,b)):(c.setAttribute("interlaced","disabled"),this.fireEvent("uninterlacetable",c))}},UE.commands.setbordervisible={queryCommandState:function(a){var b=e(this).table;return b?0:-1},execCommand:function(){var a=e(this).table;utils.each(domUtils.getElementsByTagName(a,"td"),function(a){a.style.borderWidth="1px",a.style.borderStyle="solid"})}}}(),UE.plugins.table=function(){function a(a){}function b(a,b){c(a,"width",!0),c(a,"height",!0)}function c(a,b,c){a.style[b]&&(c&&a.setAttribute(b,parseInt(a.style[b],10)),a.style[b]="")}function d(a){if("TD"==a.tagName||"TH"==a.tagName)return a;var b;return(b=domUtils.findParentByTagName(a,"td",!0)||domUtils.findParentByTagName(a,"th",!0))?b:null}function e(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}function f(a){return a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:{x:a.clientX+N.document.body.scrollLeft-N.document.body.clientLeft,y:a.clientY+N.document.body.scrollTop-N.document.body.clientTop}}function g(b){if(!A())try{var c,e=d(b.target||b.srcElement);if(R&&(N.body.style.webkitUserSelect="none",(Math.abs(V.x-b.clientX)>T||Math.abs(V.y-b.clientY)>T)&&(t(),R=!1,U=0,v(b))),ca&&ha)return U=0,N.body.style.webkitUserSelect="none",N.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),c=f(b),m(N,!0,ca,c,e),void("h"==ca?ga.style.left=k(ha,b)+"px":"v"==ca&&(ga.style.top=l(ha,b)+"px"));if(e){if(N.fireEvent("excludetable",e)===!0)return;c=f(b);var g=n(e,c),i=domUtils.findParentByTagName(e,"table",!0);if(j(i,e,b,!0)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"h.png),pointer"}else if(j(i,e,b)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"v.png),pointer"}else{N.body.style.cursor="text";/\d/.test(g)&&(g=g.replace(/\d/,""),e=Y(e).getPreviewCell(e,"v"==g)),m(N,!!e&&!!g,e?g:"",c,e)}}else h(!1,i,N)}catch(o){a(o)}}function h(a,b,c){if(a)i(b,c);else{if(fa)return;la=setTimeout(function(){!fa&&ea&&ea.parentNode&&ea.parentNode.removeChild(ea)},2e3)}}function i(a,b){function c(c,d){clearTimeout(g),g=setTimeout(function(){b.fireEvent("tableClicked",a,d)},300)}function d(c){clearTimeout(g);var d=Y(a),e=a.rows[0].cells[0],f=d.getLastCell(),h=d.getCellsRange(e,f);b.selection.getRange().setStart(e,0).setCursor(!1,!0),d.setSelected(h)}var e=domUtils.getXY(a),f=a.ownerDocument;if(ea&&ea.parentNode)return ea;ea=f.createElement("div"),ea.contentEditable=!1,ea.innerHTML="",ea.style.cssText="width:15px;height:15px;background-image:url("+b.options.UEDITOR_HOME_URL+"dialogs/table/dragicon.png);position: absolute;cursor:move;top:"+(e.y-15)+"px;left:"+e.x+"px;",domUtils.unSelectable(ea),ea.onmouseover=function(a){fa=!0},ea.onmouseout=function(a){fa=!1},domUtils.on(ea,"click",function(a,b){c(b,this)}),domUtils.on(ea,"dblclick",function(a,b){d(b)}),domUtils.on(ea,"dragstart",function(a,b){domUtils.preventDefault(b)});var g;f.body.appendChild(ea)}function j(a,b,c,d){var e=f(c),g=n(b,e);if(d){var h=a.getElementsByTagName("caption")[0],i=h?h.offsetHeight:0;return"v1"==g&&e.y-domUtils.getXY(a).y-i<8}return"h1"==g&&e.x-domUtils.getXY(a).x<8}function k(a,b){var c=Y(a);if(c){var d=c.getSameEndPosCells(a,"x")[0],e=c.getSameStartPosXCells(a)[0],g=f(b).x,h=(d?domUtils.getXY(d).x:domUtils.getXY(c.table).x)+20,i=e?domUtils.getXY(e).x+e.offsetWidth-20:N.body.offsetWidth+5||parseInt(domUtils.getComputedStyle(N.body,"width"),10);return h+=Q,i-=Q,gi?i:g}}function l(b,c){try{var d=domUtils.getXY(b).y,e=f(c).y;return ek[c]?(a=!1,!1):void l.push(d)});var b=a?l:k;utils.each(i,function(a,c){a.width=b[c]-G()})},0)}}}}function q(a){if(_(domUtils.getElementsByTagName(N.body,"td th")),utils.each(N.document.getElementsByTagName("table"),function(a){a.ueTable=null}),aa=M(N,a)){var b=domUtils.findParentByTagName(aa,"table",!0);ut=Y(b),ut&&ut.clearSelected(),da?r(a):(N.document.body.style.webkitUserSelect="",ia=!0,N.addListener("mouseover",x))}}function r(a){browser.ie&&(a=u(a)),t(),R=!0,O=setTimeout(function(){v(a)},W)}function s(a,b){for(var c=[],d=null,e=0,f=a.length;e0&&U--},W),2===U))return U=0,void p(b);if(2!=b.button){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"table",!0),f=domUtils.findParentByTagName(d.endContainer,"table",!0);if((e||f)&&(e===f?(e=domUtils.findParentByTagName(d.startContainer,["td","th","caption"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th","caption"],!0),e!==f&&c.selection.clearRange()):c.selection.clearRange()),ia=!1,c.document.body.style.webkitUserSelect="",ca&&ha&&(c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),U=0,ga=c.document.getElementById("ue_tableDragLine"))){var g=domUtils.getXY(ha),h=domUtils.getXY(ga);switch(ca){case"h":z(ha,h.x-g.x);break;case"v":B(ha,h.y-g.y-ha.offsetHeight)}return ca="",ha=null,I(c),void c.fireEvent("saveScene")}if(aa){var i=Y(aa),j=i?i.selectedTds[0]:null;if(j)d=new dom.Range(c.document),domUtils.isEmptyBlock(j)?d.setStart(j,0).setCursor(!1,!0):d.selectNodeContents(j).shrinkBoundary().setCursor(!1,!0);else if(d=c.selection.getRange().shrinkBoundary(),!d.collapsed){var e=domUtils.findParentByTagName(d.startContainer,["td","th"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th"],!0);(e&&!f||!e&&f||e&&f&&e!==f)&&d.setCursor(!1,!0)}aa=null,c.removeListener("mouseover",x)}else{var k=domUtils.findParentByTagName(b.target||b.srcElement,"td",!0);if(k||(k=domUtils.findParentByTagName(b.target||b.srcElement,"th",!0)),k&&("TD"==k.tagName||"TH"==k.tagName)){if(c.fireEvent("excludetable",k)===!0)return;d=new dom.Range(c.document),d.setStart(k,0).setCursor(!1,!0)}}c._selectionChange(250,b)}}}function x(a,b){if(!A()){var c=this,d=b.target||b.srcElement;if(ba=domUtils.findParentByTagName(d,"td",!0)||domUtils.findParentByTagName(d,"th",!0),aa&&ba&&("TD"==aa.tagName&&"TD"==ba.tagName||"TH"==aa.tagName&&"TH"==ba.tagName)&&domUtils.findParentByTagName(aa,"table")==domUtils.findParentByTagName(ba,"table")){var e=Y(ba);if(aa!=ba){c.document.body.style.webkitUserSelect="none",c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"]();var f=e.getCellsRange(aa,ba);e.setSelected(f)}else c.document.body.style.webkitUserSelect="",e.clearSelected()}b.preventDefault?b.preventDefault():b.returnValue=!1}}function y(a,b,c){var d=parseInt(domUtils.getComputedStyle(a,"line-height"),10),e=c+b;b=ef?(c&&g.push({left:a}),!1):void 0})}),g}function D(a,b,c){if(a-=G(),a<0)return 0;a-=E(b);var d=a<0?"left":"right";return a=Math.abs(a),utils.each(c,function(b){var c=b[d];c&&(a=Math.min(a,E(c)-Q))}),a=a<0?0:a,"left"===d?-a:a}function E(a){var b=0,b=a.offsetWidth-G();a.nextSibling||(b-=F(a)),b=b<0?0:b;try{a.width=b}catch(c){}return b}function F(a){if(tab=domUtils.findParentByTagName(a,"table",!1),void 0===tab.offsetVal){var b=a.previousSibling;b?tab.offsetVal=a.offsetWidth-b.offsetWidth===X.borderWidth?X.borderWidth:0:tab.offsetVal=0}return tab.offsetVal}function G(){if(void 0===X.tabcellSpace){var a=N.document.createElement("table"),b=N.document.createElement("tbody"),c=N.document.createElement("tr"),d=N.document.createElement("td"),e=null;d.style.cssText="border: 0;",d.width=1,c.appendChild(d),c.appendChild(e=d.cloneNode(!1)),b.appendChild(c),a.appendChild(b),a.style.cssText="visibility: hidden;",N.body.appendChild(a),X.paddingSpace=d.offsetWidth-1;var f=a.offsetWidth;d.style.cssText="",e.style.cssText="",X.borderWidth=(a.offsetWidth-f)/3,X.tabcellSpace=X.paddingSpace+X.borderWidth,N.body.removeChild(a)}return G=function(){return X.tabcellSpace},X.tabcellSpace}function H(a,b){ia||(ga=a.document.createElement("div"),domUtils.setAttributes(ga,{id:"ue_tableDragLine",unselectable:"on",contenteditable:!1,onresizestart:"return false",ondragstart:"return false",onselectstart:"return false",style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}),a.body.appendChild(ga))}function I(a){if(!ia)for(var b;b=a.document.getElementById("ue_tableDragLine");)domUtils.remove(b)}function J(a,b){if(b){var c,d=domUtils.findParentByTagName(b,"table"),e=d.getElementsByTagName("caption"),f=d.offsetWidth,g=d.offsetHeight-(e.length>0?e[0].offsetHeight:0),h=domUtils.getXY(d),i=domUtils.getXY(b);switch(a){case"h":c="height:"+g+"px;top:"+(h.y+(e.length>0?e[0].offsetHeight:0))+"px;left:"+(i.x+b.offsetWidth),ga.style.cssText=c+"px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)";break;case"v":c="width:"+f+"px;left:"+h.x+"px;top:"+(i.y+b.offsetHeight),ga.style.cssText=c+"px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"}}}function K(a,b){for(var c,d,e=domUtils.getElementsByTagName(a.body,"table"),f=0;d=e[f++];){var g=domUtils.getElementsByTagName(d,"td");g[0]&&(b?(c=g[0].style.borderColor.replace(/\s/g,""),/(#ffffff)|(rgb\(255,255,255\))/gi.test(c)&&domUtils.addClass(d,"noBorderTable")):domUtils.removeClasses(d,"noBorderTable"))}}function L(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function M(a,b){var c=domUtils.findParentByTagName(b.target||b.srcElement,["td","th"],!0),d=null;if(!c)return null;if(d=n(c,f(b)),!c)return null;if("h1"===d&&c.previousSibling){var e=domUtils.getXY(c),g=c.offsetWidth;Math.abs(e.x+g-b.clientX)>g/3&&(c=c.previousSibling)}else if("v1"===d&&c.parentNode.previousSibling){var e=domUtils.getXY(c),h=c.offsetHeight;Math.abs(e.y+h-b.clientY)>h/3&&(c=c.parentNode.previousSibling.firstChild)}return c&&a.fireEvent("excludetable",c)!==!0?c:null}var N=this,O=null,P=null,Q=5,R=!1,S=5,T=10,U=0,V=null,W=360,X=UE.UETable,Y=function(a){return X.getUETable(a)},Z=function(a){return X.getUETableBySelected(a)},$=function(a,b){return X.getDefaultValue(a,b)},_=function(a){return X.removeSelectedClass(a)};N.ready(function(){var a=this,b=a.selection.getText;a.selection.getText=function(){var c=Z(a);if(c){var d="";return utils.each(c.selectedTds,function(a){d+=a[browser.ie?"innerText":"textContent"]}),d}return b.call(a.selection)}});var aa=null,ba=null,ca="",da=!1,ea=null,fa=!1,ga=null,ha=null,ia=!1,ja=!0;N.setOpt({maxColNum:20,maxRowNum:100,defaultCols:5,defaultRows:5,tdvalign:"top",cursorpath:N.options.UEDITOR_HOME_URL+"themes/default/images/cursor_",tableDragable:!1,classList:["ue-table-interlace-color-single","ue-table-interlace-color-double"]}),N.getUETable=Y;var ka={deletetable:1,inserttable:1,cellvalign:1,insertcaption:1,deletecaption:1,inserttitle:1,deletetitle:1,mergeright:1,mergedown:1,mergecells:1,insertrow:1,insertrownext:1,deleterow:1,insertcol:1,insertcolnext:1,deletecol:1,splittocells:1,splittorows:1,splittocols:1,adaptbytext:1,adaptbywindow:1,adaptbycustomer:1,insertparagraph:1,insertparagraphbeforetable:1,averagedistributecol:1,averagedistributerow:1};N.ready(function(){utils.cssRule("table",".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}",N.document);var a,c,f;N.addListener("keydown",function(b,d){var g=this,h=d.keyCode||d.which;if(8==h){var i=Z(g);i&&i.selectedTds.length&&(i.isFullCol()?g.execCommand("deletecol"):i.isFullRow()?g.execCommand("deleterow"):g.fireEvent("delcells"),domUtils.preventDefault(d));var j=domUtils.findParentByTagName(g.selection.getStart(),"caption",!0),k=g.selection.getRange();if(k.collapsed&&j&&e(j)){g.fireEvent("saveScene");var l=j.parentNode;domUtils.remove(j),l&&k.setStart(l.rows[0].cells[0],0).setCursor(!1,!0),g.fireEvent("saveScene")}}if(46==h&&(i=Z(g))){g.fireEvent("saveScene");for(var m,n=0;m=i.selectedTds[n++];)domUtils.fillNode(g.document,m);g.fireEvent("saveScene"),domUtils.preventDefault(d)}if(13==h){var o=g.selection.getRange(),j=domUtils.findParentByTagName(o.startContainer,"caption",!0);if(j){var l=domUtils.findParentByTagName(j,"table");return o.collapsed?j&&o.setStart(l.rows[0].cells[0],0).setCursor(!1,!0):(o.deleteContents(),g.fireEvent("saveScene")),void domUtils.preventDefault(d)}if(o.collapsed){var l=domUtils.findParentByTagName(o.startContainer,"table");if(l){var p=l.rows[0].cells[0],q=domUtils.findParentByTagName(g.selection.getStart(),["td","th"],!0),r=l.previousSibling;if(p===q&&(!r||1==r.nodeType&&"TABLE"==r.tagName)&&domUtils.isStartInblock(o)){var s=domUtils.findParent(g.selection.getStart(),function(a){return domUtils.isBlockElm(a)},!0);s&&(/t(h|d)/i.test(s.tagName)||s===q.firstChild)&&(g.execCommand("insertparagraphbeforetable"),domUtils.preventDefault(d))}}}}if((d.ctrlKey||d.metaKey)&&"67"==d.keyCode){a=null;var i=Z(g);if(i){var t=i.selectedTds;c=i.isFullCol(),f=i.isFullRow(),a=[[i.cloneCell(t[0],null,!0)]];for(var m,n=1;m=t[n];n++)m.parentNode!==t[n-1].parentNode?a.push([i.cloneCell(m,null,!0)]):a[a.length-1].push(i.cloneCell(m,null,!0))}}}),N.addListener("tablehasdeleted",function(){m(this,!1,"",null),ea&&domUtils.remove(ea)}),N.addListener("beforepaste",function(d,g){var h=this,i=h.selection.getRange();if(domUtils.findParentByTagName(i.startContainer,"caption",!0)){var j=h.document.createElement("div");return j.innerHTML=g.html,void(g.html=j[browser.ie9below?"innerText":"textContent"])}var k=Z(h);if(a){h.fireEvent("saveScene");var l,m,i=h.selection.getRange(),n=domUtils.findParentByTagName(i.startContainer,["td","th"],!0);if(n){var o=Y(n);if(f){var p=o.getCellInfo(n).rowIndex;"TH"==n.tagName&&p++;for(var q,r=0;q=a[r++];){for(var s,t=o.insertRow(p++,"td"),u=0;s=q[u];u++){var v=t.cells[u];v||(v=t.insertCell(u)),v.innerHTML=s.innerHTML,s.getAttribute("width")&&v.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&v.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&v.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(v.style.cssText=s.style.cssText)}for(var s,u=0;(s=t.cells[u])&&q[u];u++)s.innerHTML=q[u].innerHTML,q[u].getAttribute("width")&&s.setAttribute("width",q[u].getAttribute("width")),q[u].getAttribute("vAlign")&&s.setAttribute("vAlign",q[u].getAttribute("vAlign")),q[u].getAttribute("align")&&s.setAttribute("align",q[u].getAttribute("align")),q[u].style.cssText&&(s.style.cssText=q[u].style.cssText)}}else{if(c){y=o.getCellInfo(n);for(var s,w=0,u=0,q=a[0];s=q[u++];)w+=s.colSpan||1;for(h.__hasEnterExecCommand=!0,r=0;r1&&(x.rowSpan=1)}var z=$(h),A=h.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(h.body,"margin-left"),10):0)-2*z.tableBorder-(h.options.offsetWidth||0);h.execCommand("insertHTML",""+k.innerHTML.replace(/>\s*<").replace(/\bth\b/gi,"td")+"
    ")}return h.fireEvent("contentchange"),h.fireEvent("saveScene"),g.html="",!0}var B,j=h.document.createElement("div");j.innerHTML=g.html,B=j.getElementsByTagName("table"),domUtils.findParentByTagName(h.selection.getStart(),"table")?(utils.each(B,function(a){domUtils.remove(a)}),domUtils.findParentByTagName(h.selection.getStart(),"caption",!0)&&(j.innerHTML=j[browser.ie?"innerText":"textContent"])):utils.each(B,function(a){b(a,!0),domUtils.removeAttributes(a,["style","border"]),utils.each(domUtils.getElementsByTagName(a,"td"),function(a){e(a)&&domUtils.fillNode(h.document,a),b(a,!0)})}),g.html=j.innerHTML}),N.addListener("afterpaste",function(){utils.each(domUtils.getElementsByTagName(N.body,"table"),function(a){if(a.offsetWidth>N.body.offsetWidth){var b=$(N,a);a.style.width=N.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(N.body,"margin-left"),10):0)-2*b.tableBorder-(N.options.offsetWidth||0)+"px"}})}),N.addListener("blur",function(){a=null});var i;N.addListener("keydown",function(){clearTimeout(i),i=setTimeout(function(){var a=N.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,["th","td"],!0);if(b){var c=b.parentNode.parentNode.parentNode;c.offsetWidth>c.getAttribute("width")&&(b.style.wordBreak="break-all")}},100)}),N.addListener("selectionchange",function(){m(N,!1,"",null)}),N.addListener("contentchange",function(){var a=this;if(I(a),!Z(a)){var b=a.selection.getRange(),c=b.startContainer;c=domUtils.findParentByTagName(c,["td","th"],!0),utils.each(domUtils.getElementsByTagName(a.document,"table"),function(b){a.fireEvent("excludetable",b)!==!0&&(b.ueTable=new X(b),b.onmouseover=function(){a.fireEvent("tablemouseover",b)},b.onmousemove=function(){a.fireEvent("tablemousemove",b),a.options.tableDragable&&h(!0,this,a),utils.defer(function(){a.fireEvent("contentchange",50)},!0)},b.onmouseout=function(){a.fireEvent("tablemouseout",b),m(a,!1,"",null),I(a)},b.onclick=function(b){b=a.window.event||b;var c=d(b.target||b.srcElement);if(c){var e,f=Y(c),g=f.table,h=f.getCellInfo(c),i=a.selection.getRange();if(j(g,c,b,!0)){var k=f.getCell(f.indexTable[f.rowsNum-1][h.colIndex].rowIndex,f.indexTable[f.rowsNum-1][h.colIndex].cellIndex);return void(b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==k?(e=f.getCellsRange(f.selectedTds[0],k),f.setSelected(e)):i&&i.selectNodeContents(k).select():c!==k?(e=f.getCellsRange(c,k),f.setSelected(e)):i&&i.selectNodeContents(k).select())}if(j(g,c,b)){var l=f.getCell(f.indexTable[h.rowIndex][f.colsNum-1].rowIndex,f.indexTable[h.rowIndex][f.colsNum-1].cellIndex);b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==l?(e=f.getCellsRange(f.selectedTds[0],l),f.setSelected(e)):i&&i.selectNodeContents(l).select():c!==l?(e=f.getCellsRange(c,l),f.setSelected(e)):i&&i.selectNodeContents(l).select()}}})}),K(a,!0)}}),domUtils.on(N.document,"mousemove",g),domUtils.on(N.document,"mouseout",function(a){var b=a.target||a.srcElement;"TABLE"==b.tagName&&m(N,!1,"",null)}),N.addListener("interlacetable",function(a,b,c){if(b)for(var d=this,e=b.rows,f=e.length,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;h1?k:f.getCellInfo(d).rowIndex;var g=f.getTabNextCell(d,k);g?e(g)?a.setStart(g,0).setCursor(!1,!0):a.selectNodeContents(g).select():(N.fireEvent("saveScene"),N.__hasEnterExecCommand=!0,this.execCommand("insertrownext"),N.__hasEnterExecCommand=!1,a=this.selection.getRange(),a.setStart(c.rows[c.rows.length-1].cells[0],0).setCursor(),N.fireEvent("saveScene"))}return!0}}),browser.ie&&N.addListener("selectionchange",function(){m(this,!1,"",null)}),N.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(8!=d&&46!=d){var e=!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey);e&&_(domUtils.getElementsByTagName(c.body,"td"));var f=Z(c);f&&e&&f.clearSelected()}}),N.addListener("beforegetcontent",function(){K(this,!1),browser.ie&&utils.each(this.document.getElementsByTagName("caption"),function(a){domUtils.isEmptyNode(a)&&(a.innerHTML=" ")})}),N.addListener("aftergetcontent",function(){K(this,!0)}),N.addListener("getAllHtml",function(){_(N.document.getElementsByTagName("td"))}),N.addListener("fullscreenchanged",function(a,b){if(!b){var c=this.body.offsetWidth/document.body.offsetWidth,d=domUtils.getElementsByTagName(this.body,"table");utils.each(d,function(a){if(a.offsetWidth1||c[e].getAttribute("rowspan")>1)return-1;return b?"enablesort"==a^"sortEnabled"!=b.getAttribute("data-sort")?-1:0:-1},execCommand:function(a){var b=d(this).table;b.setAttribute("data-sort","enablesort"==a?"sortEnabled":"sortDisabled"),"enablesort"==a?domUtils.addClass(b,"sortEnabled"):domUtils.removeClasses(b,"sortEnabled")}}},UE.plugins.contextmenu=function(){var a=this;if(a.setOpt("enableContextMenu",!0),a.getOpt("enableContextMenu")!==!1){var b,c=a.getLang("contextMenu"),d=a.options.contextMenu||[{label:c.selectall,cmdName:"selectall"},{label:c.cleardoc,cmdName:"cleardoc",exec:function(){confirm(c.confirmclear)&&this.execCommand("cleardoc")}},"-",{label:c.unlink,cmdName:"unlink"},"-",{group:c.paragraph,icon:"justifyjustify",subMenu:[{label:c.justifyleft,cmdName:"justify",value:"left"},{label:c.justifyright,cmdName:"justify",value:"right"},{label:c.justifycenter,cmdName:"justify",value:"center"},{label:c.justifyjustify,cmdName:"justify",value:"justify"}]},"-",{group:c.table,icon:"table",subMenu:[{label:c.inserttable,cmdName:"inserttable"},{label:c.deletetable,cmdName:"deletetable"},"-",{label:c.deleterow,cmdName:"deleterow"},{label:c.deletecol,cmdName:"deletecol"},{label:c.insertcol,cmdName:"insertcol"},{label:c.insertcolnext,cmdName:"insertcolnext"},{label:c.insertrow,cmdName:"insertrow"},{label:c.insertrownext,cmdName:"insertrownext"},"-",{label:c.insertcaption,cmdName:"insertcaption"},{label:c.deletecaption,cmdName:"deletecaption"},{label:c.inserttitle,cmdName:"inserttitle"},{label:c.deletetitle,cmdName:"deletetitle"},{label:c.inserttitlecol,cmdName:"inserttitlecol"},{label:c.deletetitlecol,cmdName:"deletetitlecol"},"-",{label:c.mergecells,cmdName:"mergecells"},{label:c.mergeright,cmdName:"mergeright"},{label:c.mergedown,cmdName:"mergedown"},"-",{label:c.splittorows,cmdName:"splittorows"},{label:c.splittocols,cmdName:"splittocols"},{label:c.splittocells,cmdName:"splittocells"},"-",{label:c.averageDiseRow,cmdName:"averagedistributerow"},{label:c.averageDisCol,cmdName:"averagedistributecol"},"-",{label:c.edittd,cmdName:"edittd",exec:function(){UE.ui.edittd&&new UE.ui.edittd(this),this.getDialog("edittd").open()}},{label:c.edittable,cmdName:"edittable",exec:function(){UE.ui.edittable&&new UE.ui.edittable(this),this.getDialog("edittable").open()}},{label:c.setbordervisible,cmdName:"setbordervisible"}]},{group:c.tablesort,icon:"tablesort",subMenu:[{label:c.enablesort,cmdName:"enablesort"},{label:c.disablesort,cmdName:"disablesort"},"-",{label:c.reversecurrent,cmdName:"sorttable",value:"reversecurrent"},{label:c.orderbyasc,cmdName:"sorttable",value:"orderbyasc"},{label:c.reversebyasc,cmdName:"sorttable",value:"reversebyasc"},{label:c.orderbynum,cmdName:"sorttable",value:"orderbynum"},{label:c.reversebynum,cmdName:"sorttable",value:"reversebynum"}]},{group:c.borderbk,icon:"borderBack",subMenu:[{label:c.setcolor,cmdName:"interlacetable",exec:function(){this.execCommand("interlacetable")}},{label:c.unsetcolor,cmdName:"uninterlacetable",exec:function(){this.execCommand("uninterlacetable")}},{label:c.setbackground,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#bbb","#ccc"]})}},{label:c.unsetbackground,cmdName:"cleartablebackground",exec:function(){this.execCommand("cleartablebackground")}},{label:c.redandblue,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["red","blue"]})}},{label:c.threecolorgradient,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#aaa","#bbb","#ccc"]})}}]},{group:c.aligntd,icon:"aligntd",subMenu:[{cmdName:"cellalignment",value:{align:"left",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"bottom"}}]},{group:c.aligntable,icon:"aligntable",subMenu:[{cmdName:"tablealignment",className:"left",label:c.tableleft,value:"left"},{cmdName:"tablealignment",className:"center",label:c.tablecenter,value:"center"},{cmdName:"tablealignment",className:"right",label:c.tableright,value:"right"}]},"-",{label:c.insertparagraphbefore,cmdName:"insertparagraph",value:!0},{label:c.insertparagraphafter,cmdName:"insertparagraph"},{label:c.copy,cmdName:"copy"},{label:c.paste,cmdName:"paste"}];if(d.length){var e=UE.ui.uiUtils;a.addListener("contextmenu",function(f,g){var h=e.getViewportOffsetByEvent(g);a.fireEvent("beforeselectionchange"),b&&b.destroy();for(var i,j=0,k=[];i=d[j];j++){var l;!function(b){function d(){switch(b.icon){case"table":return a.getLang("contextMenu.table");case"justifyjustify":return a.getLang("contextMenu.paragraph");case"aligntd":return a.getLang("contextMenu.aligntd");case"aligntable":return a.getLang("contextMenu.aligntable");case"tablesort":return c.tablesort;case"borderBack":return c.borderbk;default:return""}}if("-"==b)(l=k[k.length-1])&&"-"!==l&&k.push("-");else if(b.hasOwnProperty("group")){for(var e,f=0,g=[];e=b.subMenu[f];f++)!function(b){"-"==b?(l=g[g.length-1])&&"-"!==l?g.push("-"):g.splice(g.length-1):(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query():a.queryCommandState(b.cmdName))>-1&&g.push({label:b.label||a.getLang("contextMenu."+b.cmdName+(b.value||""))||"",className:"edui-for-"+b.cmdName+(b.className?" edui-for-"+b.cmdName+"-"+b.className:""),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(e);g.length&&k.push({label:d(),className:"edui-for-"+b.icon,subMenu:{items:g,editor:a}})}else(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query.call(a):a.queryCommandState(b.cmdName))>-1&&k.push({label:b.label||a.getLang("contextMenu."+b.cmdName),className:"edui-for-"+(b.icon?b.icon:b.cmdName+(b.value||"")),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(i)}if("-"==k[k.length-1]&&k.pop(),b=new UE.ui.Menu({items:k,className:"edui-contextmenu",editor:a}),b.render(),b.showAt(h),a.fireEvent("aftershowcontextmenu",b),domUtils.preventDefault(g),browser.ie){var m;try{m=a.selection.getNative().createRange()}catch(n){return}if(m.item){var o=new dom.Range(a.document);o.selectNode(m.item(0)).select(!0,!0)}}}),a.addListener("aftershowcontextmenu",function(b,c){if(a.zeroclipboard){var d=c.items;for(var e in d)"edui-for-copy"==d[e].className&&a.zeroclipboard.clip(d[e].getDom())}})}}},UE.plugins.shortcutmenu=function(){var a,b=this,c=b.options.shortcutMenu||[];c.length&&(b.addListener("contextmenu mouseup",function(b,d){var e=this,f={type:b,target:d.target||d.srcElement,screenX:d.screenX,screenY:d.screenY,clientX:d.clientX,clientY:d.clientY};if(setTimeout(function(){var d=e.selection.getRange();d.collapsed!==!1&&"contextmenu"!=b||(a||(a=new baidu.editor.ui.ShortCutMenu({editor:e,items:c,theme:e.options.theme,className:"edui-shortcutmenu"}),a.render(),e.fireEvent("afterrendershortcutmenu",a)),a.show(f,!!UE.plugins.contextmenu))}),"contextmenu"==b&&(domUtils.preventDefault(d),browser.ie9below)){var g;try{g=e.selection.getNative().createRange()}catch(d){return}if(g.item){var h=new dom.Range(e.document);h.selectNode(g.item(0)).select(!0,!0)}}}),b.addListener("keydown",function(b){"keydown"==b&&a&&!a.isHidden&&a.hide()}))},UE.plugins.basestyle=function(){var a={bold:["strong","b"],italic:["em","i"],subscript:["sub"],superscript:["sup"]},b=function(a,b){return domUtils.filterNodeList(a.selection.getStartElementPath(),b)},c=this;c.addshortcutkey({Bold:"ctrl+66",Italic:"ctrl+73",Underline:"ctrl+85"}),c.addInputRule(function(a){utils.each(a.getNodesByTagName("b i"),function(a){switch(a.tagName){case"b":a.tagName="strong";break;case"i":a.tagName="em"}})});for(var d in a)!function(a,d){c.commands[a]={execCommand:function(a){var e=c.selection.getRange(),f=b(this,d);if(e.collapsed){if(f){var g=c.document.createTextNode("");e.insertNode(g).removeInlineStyle(d),e.setStartBefore(g),domUtils.remove(g)}else{var h=e.document.createElement(d[0]);"superscript"!=a&&"subscript"!=a||(g=c.document.createTextNode(""),e.insertNode(g).removeInlineStyle(["sub","sup"]).setStartBefore(g).collapse(!0)),e.insertNode(h).setStart(h,0)}e.collapse(!0)}else"superscript"!=a&&"subscript"!=a||f&&f.tagName.toLowerCase()==a||e.removeInlineStyle(["sub","sup"]),f?e.removeInlineStyle(d):e.applyInlineStyle(d[0]);e.select()},queryCommandState:function(){return b(this,d)?1:0}}}(d,a[d])},UE.plugins.elementpath=function(){var a,b,c=this;c.setOpt("elementPathEnabled",!0),c.options.elementPathEnabled&&(c.commands.elementpath={execCommand:function(d,e){var f=b[e],g=c.selection.getRange();a=1*e,g.selectNode(f).select()},queryCommandValue:function(){var c=[].concat(this.selection.getStartElementPath()).reverse(),d=[];b=c;for(var e,f=0;e=c[f];f++)if(3!=e.nodeType){var g=e.tagName.toLowerCase();if("img"==g&&e.getAttribute("anchorname")&&(g="anchor"),d[f]=g,a==f){a=-1;break}}return d}})},UE.plugins.formatmatch=function(){function a(f,g){function h(a){return m&&a.selectNode(m),a.applyInlineStyle(d[d.length-1].tagName,null,d)}if(browser.webkit)var i="IMG"==g.target.tagName?g.target:null;c.undoManger&&c.undoManger.save();var j=c.selection.getRange(),k=i||j.getClosedNode();if(b&&k&&"IMG"==k.tagName)k.style.cssText+=";float:"+(b.style.cssFloat||b.style.styleFloat||"none")+";display:"+(b.style.display||"inline"),b=null;else if(!b){var l=j.collapsed;if(l){var m=c.document.createTextNode("match");j.insertNode(m).select()}c.__hasEnterExecCommand=!0;var n=c.options.removeFormatAttributes;c.options.removeFormatAttributes="",c.execCommand("removeformat"),c.options.removeFormatAttributes=n,c.__hasEnterExecCommand=!1,j=c.selection.getRange(),d.length&&h(j),m&&j.setStartBefore(m).collapse(!0),j.select(),m&&domUtils.remove(m)}c.undoManger&&c.undoManger.save(),c.removeListener("mouseup",a),e=0}var b,c=this,d=[],e=0;c.addListener("reset",function(){d=[],e=0}),c.commands.formatmatch={execCommand:function(f){if(e)return e=0,d=[],void c.removeListener("mouseup",a);var g=c.selection.getRange();if(b=g.getClosedNode(),!b||"IMG"!=b.tagName){g.collapse(!0).shrinkBoundary();var h=g.startContainer;d=domUtils.findParents(h,!0,function(a){return!domUtils.isBlockElm(a)&&1==a.nodeType});for(var i,j=0;i=d[j];j++)if("A"==i.tagName){d.splice(j,1);break}}c.addListener("mouseup",a),e=1},queryCommandState:function(){return e},notNeedUndo:1}},UE.plugin.register("searchreplace",function(){function a(a,b,c){var d=b.searchStr;b.dir==-1&&(a=a.split("").reverse().join(""),d=d.split("").reverse().join(""),c=a.length-c);for(var e,f=new RegExp(d,"g"+(b.casesensitive?"":"i"));e=f.exec(a);)if(e.index>=c)return b.dir==-1?a.length-e.index-b.searchStr.length:e.index;return-1}function b(b,c,d){var e,f,h=d.all||1==d.dir?"getNextDomNode":"getPreDomNode";domUtils.isBody(b)&&(b=b.firstChild);for(var i=1;b;){if(e=3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"],f=a(e,d,c),i=0,f!=-1)return{node:b,index:f};for(b=domUtils[h](b);b&&g[b.nodeName.toLowerCase()];)b=domUtils[h](b,!0);b&&(c=d.dir==-1?(3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"]).length:0)}}function c(a,b,d){for(var e,f=0,g=a.firstChild,h=0;g;){if(3==g.nodeType){if(h=g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b)return{node:g,index:h-(f-b)}}else if(!dtd.$empty[g.tagName]&&(h=g[browser.ie?"innerText":"textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b&&(e=c(g,h-(f-b),d))))return e;g=domUtils.getNextDomNode(g)}}function d(a,d){var f,g=a.selection.getRange(),h=d.searchStr,i=a.document.createElement("span");if(i.innerHTML="$$ueditor_searchreplace_key$$",g.shrinkBoundary(!0),!g.collapsed){g.select();var j=a.selection.getText();if(new RegExp("^"+d.searchStr+"$",d.casesensitive?"":"i").test(j)){if(void 0!=d.replaceStr)return e(g,d.replaceStr),g.select(),!0;g.collapse(d.dir==-1)}}g.insertNode(i),g.enlargeToBlockElm(!0),f=g.startContainer;var k=f[browser.ie?"innerText":"textContent"].indexOf("$$ueditor_searchreplace_key$$");g.setStartBefore(i),domUtils.remove(i);var l=b(f,k,d);if(l){var m=c(l.node,l.index,h),n=c(l.node,l.index+h.length,h);return g.setStart(m.node,m.index).setEnd(n.node,n.index),void 0!==d.replaceStr&&e(g,d.replaceStr),g.select(),!0}g.setCursor()}function e(a,b){b=f.document.createTextNode(b),a.deleteContents().insertNode(b)}var f=this,g={table:1,tbody:1,tr:1,ol:1,ul:1};return{commands:{searchreplace:{execCommand:function(a,b){utils.extend(b,{all:!1,casesensitive:!1,dir:1},!0);var c=0;if(b.all){var e=f.selection.getRange(),g=f.body.firstChild;for(g&&1==g.nodeType?(e.setStart(g,0),e.shrinkBoundary(!0)):3==g.nodeType&&e.setStartBefore(g),e.collapse(!0).select(!0),void 0!==b.replaceStr&&f.fireEvent("saveScene");d(this,b);)c++;c&&f.fireEvent("saveScene")}else void 0!==b.replaceStr&&f.fireEvent("saveScene"),d(this,b)&&c++,c&&f.fireEvent("saveScene");return c},notNeedUndo:1}}}}),UE.plugins.customstyle=function(){var a=this;a.setOpt({customstyle:[{tag:"h1",name:"tc",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"},{tag:"h1",name:"tl",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"},{tag:"span",name:"im",style:"font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"},{tag:"span",name:"hi",style:"font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}),a.commands.customstyle={execCommand:function(a,b){var c,d,e=this,f=b.tag,g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")},!0),h={};for(var i in b)void 0!==b[i]&&(h[i]=b[i]);if(delete h.tag,g&&g.getAttribute("label")==b.label){if(c=this.selection.getRange(),d=c.createBookmark(),c.collapsed)if(dtd.$block[g.tagName]){var j=e.document.createElement("p");domUtils.moveChild(g,j),g.parentNode.insertBefore(j,g),domUtils.remove(g)}else domUtils.remove(g,!0);else{var k=domUtils.getCommonAncestor(d.start,d.end),l=domUtils.getElementsByTagName(k,f);new RegExp(f,"i").test(k.tagName)&&l.push(k);for(var m,n=0;m=l[n++];)if(m.getAttribute("label")==b.label){var o=domUtils.getPosition(m,d.start),p=domUtils.getPosition(m,d.end);if((o&domUtils.POSITION_FOLLOWING||o&domUtils.POSITION_CONTAINS)&&(p&domUtils.POSITION_PRECEDING||p&domUtils.POSITION_CONTAINS)&&dtd.$block[f]){var j=e.document.createElement("p");domUtils.moveChild(m,j),m.parentNode.insertBefore(j,m)}domUtils.remove(m,!0)}g=domUtils.findParent(k,function(a){return a.getAttribute("label")==b.label},!0),g&&domUtils.remove(g,!0)}c.moveToBookmark(d).select()}else if(dtd.$block[f]){if(this.execCommand("paragraph",f,h,"customstyle"),c=e.selection.getRange(),!c.collapsed){c.collapse(),g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")==b.label},!0);var q=e.document.createElement("p");domUtils.insertAfter(g,q),domUtils.fillNode(e.document,q),c.setStart(q,0).setCursor()}}else{if(c=e.selection.getRange(),c.collapsed)return g=e.document.createElement(f),domUtils.setAttributes(g,h),void c.insertNode(g).setStart(g,0).setCursor();d=c.createBookmark(),c.applyInlineStyle(f,h).moveToBookmark(d).select()}},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return a.getAttribute("label")});return a?a.getAttribute("label"):""}},a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(32==d||13==d){var e=a.selection.getRange();if(e.collapsed){var f=domUtils.findParent(a.selection.getStart(),function(a){return a.getAttribute("label")},!0);if(f&&dtd.$block[f.tagName]&&domUtils.isEmptyNode(f)){var g=a.document.createElement("p");domUtils.insertAfter(f,g),domUtils.fillNode(a.document,g),domUtils.remove(f),e.setStart(g,0).setCursor()}}}})},UE.plugins.catchremoteimage=function(){var me=this,ajax=UE.ajax;me.options.catchRemoteImageEnable!==!1&&(me.setOpt({catchRemoteImageEnable:!1}),me.addListener("afterpaste",function(){me.fireEvent("catchRemoteImage")}),me.addListener("catchRemoteImage",function(){function catchremoteimage(a,b){var c=utils.serializeParam(me.queryCommandValue("serverparam"))||"",d=utils.formatUrl(catcherActionUrl+(catcherActionUrl.indexOf("?")==-1?"?":"&")+c),e=utils.isCrossDomainUrl(d),f={method:"POST",dataType:e?"jsonp":"",timeout:6e4,onsuccess:b.success,onerror:b.error};f[catcherFieldName]=a,ajax.request(d,f)}for(var catcherLocalDomain=me.getOpt("catcherLocalDomain"),catcherActionUrl=me.getActionUrl(me.getOpt("catcherActionName")),catcherUrlPrefix=me.getOpt("catcherUrlPrefix"),catcherFieldName=me.getOpt("catcherFieldName"),remoteImages=[],imgs=domUtils.getElementsByTagName(me.document,"img"),test=function(a,b){if(a.indexOf(location.host)!=-1||/(^\.)|(^\/)/.test(a))return!0;if(b)for(var c,d=0;c=b[d++];)if(a.indexOf(c)!==-1)return!0;return!1},i=0,ci;ci=imgs[i++];)if(!ci.getAttribute("word_img")){var src=ci.getAttribute("_src")||ci.src||"";/^(https?|ftp):/i.test(src)&&!test(src,catcherLocalDomain)&&remoteImages.push(src)}remoteImages.length&&catchremoteimage(remoteImages,{success:function(r){try{var info=void 0!==r.state?r:eval("("+r.responseText+")")}catch(e){return}var i,j,ci,cj,oldSrc,newSrc,list=info.list;for(i=0;ci=imgs[i++];)for(oldSrc=ci.getAttribute("_src")||ci.src||"",j=0;cj=list[j++];)if(oldSrc==cj.source&&"SUCCESS"==cj.state){newSrc=catcherUrlPrefix+cj.url,domUtils.setAttributes(ci,{src:newSrc,_src:newSrc});break}me.fireEvent("catchremotesuccess")},error:function(){me.fireEvent("catchremoteerror")}})}))},UE.plugin.register("snapscreen",function(){function getLocation(a){var b,c=document.createElement("a"),d=utils.serializeParam(me.queryCommandValue("serverparam"))||"";return c.href=a,browser.ie&&(c.href=c.href),b=c.search,d&&(b=b+(b.indexOf("?")==-1?"?":"&")+d,b=b.replace(/[&]+/gi,"&")),{port:c.port,hostname:c.hostname,path:c.pathname+b||+c.hash}}var me=this,snapplugin;return{commands:{snapscreen:{execCommand:function(cmd){function onSuccess(rs){try{if(rs=eval("("+rs+")"),"SUCCESS"==rs.state){var opt=me.options;me.execCommand("insertimage",{src:opt.snapscreenUrlPrefix+rs.url,_src:opt.snapscreenUrlPrefix+rs.url,alt:rs.title||"",floatStyle:opt.snapscreenImgAlign})}else alert(rs.state)}catch(e){alert(lang.callBackErrorMsg)}}var url,local,res,lang=me.getLang("snapScreen_plugin");if(!snapplugin){var container=me.container,doc=me.container.ownerDocument||me.container.document;snapplugin=doc.createElement("object");try{snapplugin.type="application/x-pluginbaidusnap"}catch(e){return}snapplugin.style.cssText="position:absolute;left:-9999px;width:0;height:0;",snapplugin.setAttribute("width","0"),snapplugin.setAttribute("height","0"),container.appendChild(snapplugin)}url=me.getActionUrl(me.getOpt("snapscreenActionName")),local=getLocation(url),setTimeout(function(){try{res=snapplugin.saveSnapshot(local.hostname,local.path,local.port)}catch(a){return void me.ui._dialogs.snapscreenDialog.open()}onSuccess(res)},50)},queryCommandState:function(){return navigator.userAgent.indexOf("Windows",0)!=-1?0:-1}}}}}),UE.commands.insertparagraph={execCommand:function(a,b){for(var c,d=this,e=d.selection.getRange(),f=e.startContainer;f&&!domUtils.isBody(f);)c=f,f=f.parentNode;if(c){var g=d.document.createElement("p");b?c.parentNode.insertBefore(g,c):c.parentNode.insertBefore(g,c.nextSibling),domUtils.fillNode(d.document,g),e.setStart(g,0).setCursor(!1,!0)}}},UE.plugin.register("webapp",function(){function a(a,c){return c?'':'"}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-webapp"==b.getAttr("class")){c=a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("_url"),logo:b.getAttr("_logo_url")},!0);var d=UE.uNode.createElement(c);b.parentNode.replaceChild(d,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("iframe"),function(b){if("edui-faked-webapp"==b.getAttr("class")){var c=UE.uNode.createElement(a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("src"),logo:b.getAttr("logo_url")}));b.parentNode.replaceChild(c,b)}})},commands:{webapp:{execCommand:function(b,c){var d=this,e=a(utils.extend(c,{align:"none"}),!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-webapp"==b.className;return c?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(a,b){b.html&&this.execCommand("inserthtml",b.html)}},this.addListener("click",function(a,b){var c=b.target||b.srcElement,d=this.selection.getRange(),e=domUtils.findParent(c,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);e&&d.selectNode(e).shrinkBoundary().select()}),this.addListener("keydown",function(a,b){var c=this.selection.getRange();if(!c.collapsed&&!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){var d=domUtils.findParent(c.startContainer,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);d&&domUtils.removeClasses(d,["ue_t"])}})},UE.plugin.register("music",function(){function a(a,c,d,e,f,g){return g?'':"'}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-music"==b.getAttr("class")){var d=b.getStyle("float"),e=b.getAttr("align");c=a(b.getAttr("_url"),b.getAttr("width"),b.getAttr("height"),e,d,!0);var f=UE.uNode.createElement(c);b.parentNode.replaceChild(f,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("embed"),function(b){if("edui-faked-music"==b.getAttr("class")){var c=b.getStyle("float"),d=b.getAttr("align");html=a(b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),d,c,!1);var e=UE.uNode.createElement(html);b.parentNode.replaceChild(e,b)}})},commands:{music:{execCommand:function(b,c){var d=this,e=a(c.url,c.width||400,c.height||95,"none",!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-music"==b.className;return c?1:0}}}}}),UE.plugin.register("autoupload",function(){function a(a,b){var c,d,e,f,g,h,i,j,k=b,l=/image\/\w+/i.test(a.type)?"image":"file",m="loading_"+(+new Date).toString(36);if(c=k.getOpt(l+"FieldName"),d=k.getOpt(l+"UrlPrefix"),e=k.getOpt(l+"MaxSize"),f=k.getOpt(l+"AllowFiles"),g=k.getActionUrl(k.getOpt(l+"ActionName")),i=function(a){var b=k.document.getElementById(m);b&&domUtils.remove(b),k.fireEvent("showmessage",{id:m,content:a,type:"error",timeout:4e3})},"image"==l?(h='',j=function(a){var b=d+a.url,c=k.document.getElementById(m);c&&(c.setAttribute("src",b),c.setAttribute("_src",b),c.setAttribute("title",a.title||""),c.setAttribute("alt",a.original||""),c.removeAttribute("id"),domUtils.removeClasses(c,"loadingclass"))}):(h='

    ',j=function(a){var b=d+a.url,c=k.document.getElementById(m),e=k.selection.getRange(),f=e.createBookmark();e.selectNode(c).select(),k.execCommand("insertfile",{url:b}),e.moveToBookmark(f).select()}),k.execCommand("inserthtml",h),!k.getOpt(l+"ActionName"))return void i(k.getLang("autoupload.errorLoadConfig"));if(a.size>e)return void i(k.getLang("autoupload.exceedSizeError"));var n=a.name?a.name.substr(a.name.lastIndexOf(".")):"";if(n&&"image"!=l||f&&(f.join("")+".").indexOf(n.toLowerCase()+".")==-1)return void i(k.getLang("autoupload.exceedTypeError"));var o=new XMLHttpRequest,p=new FormData,q=utils.serializeParam(k.queryCommandValue("serverparam"))||"",r=utils.formatUrl(g+(g.indexOf("?")==-1?"?":"&")+q);p.append(c,a,a.name||"blob."+a.type.substr("image/".length)),p.append("type","ajax"),o.open("post",r,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.addEventListener("load",function(a){try{var b=new Function("return "+utils.trim(a.target.response))();"SUCCESS"==b.state&&b.url?j(b):i(b.state)}catch(c){i(k.getLang("autoupload.loadError"))}}),o.send(p)}function b(a){return a.clipboardData&&a.clipboardData.items&&1==a.clipboardData.items.length&&/^image\//.test(a.clipboardData.items[0].type)?a.clipboardData.items:null}function c(a){return a.dataTransfer&&a.dataTransfer.files?a.dataTransfer.files:null}return{outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)}),utils.each(a.getNodesByTagName("p"),function(a){/\bloadpara\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},bindEvents:{ready:function(d){var e=this;window.FormData&&window.FileReader&&(domUtils.on(e.body,"paste drop",function(d){var f,g=!1;if(f="paste"==d.type?b(d):c(d)){for(var h,i=f.length;i--;)h=f[i],h.getAsFile&&(h=h.getAsFile()),h&&h.size>0&&(a(h,e),g=!0);g&&d.preventDefault()}}),domUtils.on(e.body,"dragover",function(a){"Files"==a.dataTransfer.types[0]&&a.preventDefault()}),utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document))}}}}),UE.plugin.register("autosave",function(){function a(a){var f;if(!(new Date-c0?b._saveFlag=window.setTimeout(function(){a(b)},b.options.saveInterval):a(b))}},commands:{clearlocaldata:{execCommand:function(a,c){e&&b.getPreferences(e)&&b.removePreferences(e)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(a,c){return e?b.getPreferences(e)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(a,c){e&&(b.body.innerHTML=b.getPreferences(e)||"

    "+domUtils.fillHtml+"

    ",b.focus(!0))},queryCommandState:function(){return e?null===b.getPreferences(e)?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function a(a){var b=null,c=0;if(a.rows.length<2)return!1;if(a.rows[0].cells.length<2)return!1;b=a.rows[0].cells,c=b.length;for(var d,e=0;d=b[e];e++)if("th"!==d.tagName.toLowerCase())return!1;for(var f,e=1;f=a.rows[e];e++){if(f.cells.length!=c)return!1;if("th"!==f.cells[0].tagName.toLowerCase())return!1;for(var d,g=1;d=f.cells[g];g++){var h=utils.trim(d.innerText||d.textContent||"");if(h=h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,""),!/^\d*\.?\d+$/.test(h))return!1}}return!0}var b=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(c,d){var e=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0),f=[],g={};if(!e)return!1;if(!a(e))return b.fireEvent("chartserror"),!1;g.title=d.title||"",g.subTitle=d.subTitle||"",g.xTitle=d.xTitle||"",g.yTitle=d.yTitle||"",g.suffix=d.suffix||"",g.tip=d.tip||"",g.dataFormat=d.tableDataFormat||"",g.chartType=d.chartType||0;for(var h in g)g.hasOwnProperty(h)&&f.push(h+":"+g[h]); -e.setAttribute("data-chart",f.join(";")),domUtils.addClass(e,"edui-charts-table")},queryCommandState:function(b,c){var d=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return d&&a(d)?0:-1}}},inputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style")})},outputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function a(a){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function b(b){var c=new a;return utils.extend(c,b)}function c(a,b){for(var c=b,d=0;d=0){var o=h.selection.getRange().selectNode(i).createAddress(!0).startAddress,p=b({tag:i.tagName,title:i.innerText||i.textContent||"",level:f,dom:i,startAddress:utils.clone(o,[]),endAddress:utils.clone(o,[]),children:[]});for(j.nextSection=p,p.previousSection=j,g=j;f<=g.level;)g=g.parentSection;p.parentSection=g,g.children.push(p),k=j=p}else 1===i.nodeType&&e(i,c),k&&k.endAddress[k.endAddress.length-1]++}for(var f=c||["h1","h2","h3","h4","h5","h6"],g=0;g=c.length);f++){if(c[f]>a[f]){d=!0;break}if(c[f]=c.length);f++){if(c[f]a[f])break}return d&&e}var g,h,i=this;if(b&&d&&d.level!=-1&&(g=e?d.endAddress:d.startAddress,h=c(g,i.body),g&&h&&!f(b.startAddress,b.endAddress,g))){var j,k,l=c(b.startAddress,i.body),m=c(b.endAddress,i.body);if(e)for(j=m;j&&!(domUtils.getPosition(l,j)&domUtils.POSITION_FOLLOWING)&&(k=j.previousSibling,domUtils.insertAfter(h,j),j!=l);)j=k;else for(j=l;j&&!(domUtils.getPosition(j,m)&domUtils.POSITION_FOLLOWING)&&(k=j.nextSibling,h.parentNode.insertBefore(j,h),j!=m);)j=k;i.fireEvent("updateSections")}}},deletesection:{execCommand:function(a,b,c){function d(a){for(var b=e.body,c=0;c'),!c.getOpt("imageActionName"))return void b(c.getLang("autoupload.errorLoadConfig"));var k=h.value,l=k?k.substr(k.lastIndexOf(".")):"";if(!l||j&&(j.join("")+".").indexOf(l.toLowerCase()+".")==-1)return void b(c.getLang("simpleupload.exceedTypeError"));var m=new XMLHttpRequest;if(m.open("post",i,!0),c.options.headers&&"[object Object]"===Object.prototype.toString.apply(c.options.headers))for(var n in c.options.headers)m.setRequestHeader(n,c.options.headers[n]);m.onload=function(){if(m.status>=200&&m.status<300||304==m.status){var a=JSON.parse(m.responseText),e=c.options.imageUrlPrefix+a.url;"SUCCESS"==a.state&&a.url?(loader=c.document.getElementById(d),loader.setAttribute("src",e),loader.setAttribute("_src",e),loader.setAttribute("title",a.title||""),loader.setAttribute("alt",a.original||""),loader.removeAttribute("id"),domUtils.removeClasses(loader,"loadingclass"),c.fireEvent("contentchange")):b(a.state)}else b(c.getLang("simpleupload.loadError"))},m.onerror=function(){b(c.getLang("simpleupload.loadError"))},m.send(new FormData(g)),g.reset()}})}var b,c=this,d=(+new Date).toString(36);return{bindEvents:{ready:function(){utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document)},simpleuploadbtnready:function(d,e){b=e,c.afterConfigReady(a)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})}}}),UE.plugin.register("serverparam",function(){var a={};return{commands:{serverparam:{execCommand:function(b,c,d){void 0===c||null===c?a={}:utils.isString(c)?void 0===d||null===d?delete a[c]:a[c]=d:utils.isObject(c)?utils.extend(a,c,!0):utils.isFunction(c)&&utils.extend(a,c(),!0)},queryCommandValue:function(){return a||{}}}}}}),UE.plugin.register("insertfile",function(){function a(a){var b=a.substr(a.lastIndexOf(".")+1).toLowerCase(),c={rar:"icon_rar.gif",zip:"icon_rar.gif",tar:"icon_rar.gif",gz:"icon_rar.gif",bz2:"icon_rar.gif",doc:"icon_doc.gif",docx:"icon_doc.gif",pdf:"icon_pdf.gif",mp3:"icon_mp3.gif",xls:"icon_xls.gif",chm:"icon_chm.gif",ppt:"icon_ppt.gif",pptx:"icon_ppt.gif",avi:"icon_mv.gif",rmvb:"icon_mv.gif",wmv:"icon_mv.gif",flv:"icon_mv.gif",swf:"icon_mv.gif",rm:"icon_mv.gif",exe:"icon_exe.gif",psd:"icon_psd.gif",txt:"icon_txt.gif",jpg:"icon_jpg.gif",png:"icon_jpg.gif",jpeg:"icon_jpg.gif",gif:"icon_jpg.gif",ico:"icon_jpg.gif",bmp:"icon_jpg.gif"};return c[b]?c[b]:c.txt}var b=this;return{commands:{insertfile:{execCommand:function(c,d){d=utils.isArray(d)?d:[d];var e,f,g,h,i="",j=b.getOpt("UEDITOR_HOME_URL"),k=j+("/"==j.substr(j.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/";for(e=0;e'+h+"

    ";b.execCommand("insertHtml",i)}}}}}),UE.plugins.xssFilter=function(){function a(a){var b=a.tagName,d=a.attrs;return c.hasOwnProperty(b)?void UE.utils.each(d,function(d,e){c[b].indexOf(e)===-1&&a.setAttr(e)}):(a.parentNode.removeChild(a),!1)}var b=UEDITOR_CONFIG,c=b.whitList;c&&b.xssFilterRules&&(this.options.filterRules=function(){var b={};return UE.utils.each(c,function(c,d){b[d]=function(b){return a(b)}}),b}());var d=[];UE.utils.each(c,function(a,b){d.push(b)}),c&&b.inputXssFilter&&this.addInputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})}),c&&b.outputXssFilter&&this.addOutputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})})};var baidu=baidu||{};baidu.editor=baidu.editor||{},UE.ui=baidu.editor.ui={},function(){function a(){var a=document.getElementById("edui_fixedlayer");i.setViewportOffset(a,{left:0,top:0})}function b(b){d.on(window,"scroll",a),d.on(window,"resize",baidu.editor.utils.defer(a,0,!0))}var c=baidu.editor.browser,d=baidu.editor.dom.domUtils,e="$EDITORUI",f=window[e]={},g="ID"+e,h=0,i=baidu.editor.ui.uiUtils={uid:function(a){return a?a[g]||(a[g]=++h):++h},hook:function(a,b){var c;return a&&a._callbacks?c=a:(c=function(){var b;a&&(b=a.apply(this,arguments));for(var d=c._callbacks,e=d.length;e--;){var f=d[e].apply(this,arguments);void 0===b&&(b=f)}return b},c._callbacks=[]),c._callbacks.push(b),c},createElementByHtml:function(a){var b=document.createElement("div");return b.innerHTML=a,b=b.firstChild,b.parentNode.removeChild(b),b},getViewportElement:function(){return c.ie&&c.quirks?document.body:document.documentElement},getClientRect:function(a){var b;try{b=a.getBoundingClientRect()}catch(c){b={left:0,top:0,height:0,width:0}}for(var e,f={left:Math.round(b.left),top:Math.round(b.top),height:Math.round(b.bottom-b.top),width:Math.round(b.right-b.left)};(e=a.ownerDocument)!==document&&(a=d.getWindow(e).frameElement);)b=a.getBoundingClientRect(),f.left+=b.left,f.top+=b.top;return f.bottom=f.top+f.height,f.right=f.left+f.width,f},getViewportRect:function(){var a=i.getViewportElement(),b=0|(window.innerWidth||a.clientWidth),c=0|(window.innerHeight||a.clientHeight);return{left:0,top:0,height:c,width:b,bottom:c,right:b}},setViewportOffset:function(a,b){var c=i.getFixedLayer();a.parentNode===c?(a.style.left=b.left+"px",a.style.top=b.top+"px"):d.setViewportOffset(a,b)},getEventOffset:function(a){var b=a.target||a.srcElement,c=i.getClientRect(b),d=i.getViewportOffsetByEvent(a);return{left:d.left-c.left,top:d.top-c.top}},getViewportOffsetByEvent:function(a){var b=a.target||a.srcElement,c=d.getWindow(b).frameElement,e={left:a.clientX,top:a.clientY};if(c&&b.ownerDocument!==document){var f=i.getClientRect(c);e.left+=f.left,e.top+=f.top}return e},setGlobal:function(a,b){return f[a]=b,e+'["'+a+'"]'},unsetGlobal:function(a){delete f[a]},copyAttributes:function(a,b){for(var e=b.attributes,f=e.length;f--;){var g=e[f];"style"==g.nodeName||"class"==g.nodeName||c.ie&&!g.specified||a.setAttribute(g.nodeName,g.nodeValue)}b.className&&d.addClass(a,b.className),b.style.cssText&&(a.style.cssText+=";"+b.style.cssText)},removeStyle:function(a,b){if(a.style.removeProperty)a.style.removeProperty(b);else{if(!a.style.removeAttribute)throw"";a.style.removeAttribute(b)}},contains:function(a,b){return a&&b&&a!==b&&(a.contains?a.contains(b):16&a.compareDocumentPosition(b))},startDrag:function(a,b,c){function d(a){var c=a.clientX-g,d=a.clientY-h;b.ondragmove(c,d,a),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function e(a){c.removeEventListener("mousemove",d,!0),c.removeEventListener("mouseup",e,!0),window.removeEventListener("mouseup",e,!0),b.ondragstop()}function f(){i.releaseCapture(),i.detachEvent("onmousemove",d),i.detachEvent("onmouseup",f),i.detachEvent("onlosecaptrue",f),b.ondragstop()}var c=c||document,g=a.clientX,h=a.clientY;if(c.addEventListener)c.addEventListener("mousemove",d,!0),c.addEventListener("mouseup",e,!0),window.addEventListener("mouseup",e,!0),a.preventDefault();else{var i=a.srcElement;i.setCapture(),i.attachEvent("onmousemove",d),i.attachEvent("onmouseup",f),i.attachEvent("onlosecaptrue",f),a.returnValue=!1}b.ondragstart()},getFixedLayer:function(){var d=document.getElementById("edui_fixedlayer");return null==d&&(d=document.createElement("div"),d.id="edui_fixedlayer",document.body.appendChild(d),c.ie&&c.version<=8?(d.style.position="absolute",b(),setTimeout(a)):d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.width="0",d.style.height="0"),d},makeUnselectable:function(a){if(c.opera||c.ie&&c.version<9){if(a.unselectable="on",a.hasChildNodes())for(var b=0;b'}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.uiUtils,e=baidu.editor.ui.Mask=function(a){this.initOptions(a),this.initUIBase()};e.prototype={getHtmlTpl:function(){return'
    '},postRender:function(){var a=this;b.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a._fill()})})},show:function(a){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=a},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return"none"==this.getDom().style.display},_onMouseDown:function(){return!1},_onClick:function(a,b){this.fireEvent("click",a,b)},_fill:function(){var a=this.getDom(),b=d.getViewportRect();a.style.width=b.width+"px",a.style.height=b.height+"px"}},a.inherits(e,c)}(),function(){function a(a,b){for(var c=0;c
    '+this.getContentHtmlTpl()+"
    "},getContentHtmlTpl:function(){return this.content?"string"==typeof this.content?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){if(this.content instanceof e&&this.content.postRender(),this.captureWheel&&!this.captured){this.captured=!0;var a=(document.documentElement.clientHeight||document.body.clientHeight)-80,b=this.getDom().offsetHeight,f=c.getClientRect(this.combox.getDom()).top,g=this.getDom("content"),h=this.getDom("body").getElementsByTagName("iframe"),i=this;for(h.length&&(h=h[0]);f+b>a;)b-=30;g.style.height=b+"px",h&&(h.style.height=b+"px"),window.XMLHttpRequest?d.on(g,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(a){a.preventDefault?a.preventDefault():a.returnValue=!1,a.wheelDelta?g.scrollTop-=a.wheelDelta/120*60:g.scrollTop-=a.detail/-3*60}):d.on(this.getDom(),"mousewheel",function(a){a.returnValue=!1,i.getDom("content").scrollTop-=a.wheelDelta/120*60})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var a=this.getDom("content");return c.getClientRect(a)},fitSize:function(){if(this.captureWheel&&this.sized)return this.__size;this.sized=!0;var a=this.getDom("body");a.style.width="",a.style.height="";var b=this.mesureSize();if(this.captureWheel){a.style.width=-(-20-b.width)+"px";var c=parseInt(this.getDom("content").style.height,10);!window.isNaN(c)&&(b.height=c)}else a.style.width=b.width+"px";return a.style.height=b.height+"px",this.__size=b,this.captureWheel&&(this.getDom("content").style.overflow="auto"),b},showAnchor:function(a,b){this.showAnchorRect(c.getClientRect(a),b)},showAnchorRect:function(a,b,e){this._doAutoRender();var f=c.getViewportRect();this.getDom().style.visibility="hidden",this._show();var g,i,j,k,l=this.fitSize();b?(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.left-l.width:a.right,k=i?a.bottom-l.height:a.top):(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.right-l.width:a.left,k=i?a.top-l.height:a.bottom);var m=this.getDom();c.setViewportOffset(m,{left:j,top:k}),d.removeClasses(m,h),m.className+=" "+h[2*(i?1:0)+(g?1:0)],this.editor&&(m.style.zIndex=1*this.editor.container.style.zIndex+10,baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=m.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(a){var b=a.left,c=a.top,d={left:b,top:c,right:b,bottom:c,height:0,width:0};this.showAnchorRect(d,!1,!0)},_show:function(){if(this._hidden){var a=this.getDom();a.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(a){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,a||this.fireEvent("hide"))},queryAutoHide:function(a){return!a||!c.contains(this.getDom(),a)}},b.inherits(f,e),d.on(document,"mousedown",function(b){var c=b.target||b.srcElement;a(b,c)}),d.on(window,"scroll",function(b,c){a(b,c)})}(),function(){function a(a,b){for(var c='
    '+a+'
    ',d=0;d"+(60==d?'":"")+""),c+=d<70?'':"";return c+="
    '+b.getLang("themeColor")+'
    '+b.getLang("standardColor")+"
    =60?"border-width:1px;":d>=10&&d<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'">
    "}var b=baidu.editor.utils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.ColorPicker=function(a){this.initOptions(a),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()};d.prototype={getHtmlTpl:function(){return a(this.noColorText,this.editor)},_onTableClick:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&this.fireEvent("pickcolor",c)},_onTableOver:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&(this.getDom("preview").style.backgroundColor=c)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},b.inherits(d,c);var e="ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",")}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.TablePicker=function(a){this.initOptions(a),this.initTablePicker()};d.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){return'
    '},_UIBase_render:c.prototype.render,render:function(a){this._UIBase_render(a),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(a,b){var c=this.getDom("overlay").style,d=this.lengthOfCellSide;c.width=a*d+"px",c.height=b*d+"px";var e=this.getDom("label");e.innerHTML=a+this.editor.getLang("t_col")+" x "+b+this.editor.getLang("t_row"),this.numCols=a,this.numRows=b},_onMouseOver:function(a,c){var d=a.relatedTarget||a.fromElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(a,c){var d=a.relatedTarget||a.toElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="hidden")},_onMouseMove:function(a,c){var d=(this.getDom("overlay").style,b.getEventOffset(a)),e=this.lengthOfCellSide,f=Math.ceil(d.left/e),g=Math.ceil(d.top/e);this._track(f,g)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},a.inherits(d,c)}(),function(){var a=baidu.editor.browser,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(a.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');baidu.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var a=this._Stateful_dGetHtmlTpl();return a.replace(/stateful/g,function(){return d})},Stateful_onMouseEnter:function(a,b){this.target=b,this.isDisabled()&&!this.alwalysHoverable||(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(a,b){this.isDisabled()&&!this.alwalysHoverable||(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseEnter(a,b)},Stateful_onMouseOut:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseLeave(a,b)},Stateful_onMouseDown:function(a,b){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(a,b){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(a){return b.hasClass(this.getStateDom(),"edui-state-"+a)},addState:function(a){this.hasState(a)||(this.getStateDom().className+=" edui-state-"+a)},removeState:function(a){this.hasState(a)&&b.removeClasses(this.getStateDom(),["edui-state-"+a])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(a){!this.isDisabled()&&a?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(a){a?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.Button=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),a.cssRules=".edui-default .edui-for-"+b+" .edui-icon {"+c+"}"}this.initOptions(a),this.initButton()};d.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&a.cssRule("edui-customize-"+this.name+"-style",this.cssRules)},getHtmlTpl:function(){return'
    '+(this.showIcon?'
    ':"")+(this.showText?'
    '+this.label+"
    ":"")+"
    "},postRender:function(){this.Stateful_postRender(),this.setDisabled(this.disabled)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(a){var b=this.getDom("label");b.innerHTML=a}},a.inherits(d,b),a.extend(d.prototype,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=(baidu.editor.dom.domUtils,baidu.editor.ui.UIBase),d=baidu.editor.ui.Stateful,e=baidu.editor.ui.SplitButton=function(a){this.initOptions(a),this.initSplitButton()};e.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){this.initUIBase(),this.Stateful_init();if(null!=this.popup){var a=this.popup;this.popup=null,this.setPopup(a)}},_UIBase_postRender:c.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(c){this.popup!==c&&(null!=this.popup&&this.popup.dispose(),c.addListener("show",a.bind(this._onPopupShow,this)),c.addListener("hide",a.bind(this._onPopupHide,this)),c.addListener("postrender",a.bind(function(){c.getDom("body").appendChild(b.createElementByHtml('
    ')),c.getDom().className+=" "+this.className},this)),this.popup=c)},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'
    '},showPopup:function(){var a=b.getClientRect(this.getDom());a.top-=this.popup.SHADOW_RADIUS,a.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(a)},_onArrowClick:function(a,b){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},a.inherits(e,c),a.extend(e.prototype,d,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.ColorPicker,d=baidu.editor.ui.Popup,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.ColorButton=function(a){this.initOptions(a),this.initColorButton()};f.prototype={initColorButton:function(){var a=this;this.popup=new d({content:new c({noColorText:a.editor.getLang("clearColor"),editor:a.editor,onpickcolor:function(b,c){a._onPickColor(c)},onpicknocolor:function(b,c){a._onPickNoColor(c)}}),editor:a.editor}),this.initSplitButton()},_SplitButton_postRender:e.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(b.createElementByHtml('
    ')),this.getDom().className+=" edui-colorbutton"},setColor:function(a){this.getDom("colorlump").style.backgroundColor=a,this.color=a},_onPickColor:function(a){this.fireEvent("pickcolor",a)!==!1&&(this.setColor(a),this.popup.hide())},_onPickNoColor:function(a){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},a.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.TablePicker,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.TableButton=function(a){this.initOptions(a),this.initTableButton()};e.prototype={initTableButton:function(){var a=this;this.popup=new b({content:new c({editor:a.editor,onpicktable:function(b,c,d){ -a._onPickTable(c,d)}}),editor:a.editor}),this.initSplitButton()},_onPickTable:function(a,b){this.fireEvent("picktable",a,b)!==!1&&this.popup.hide()}},a.inherits(e,d)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.AutoTypeSetPicker=function(a){this.initOptions(a),this.initAutoTypeSetPicker()};c.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var a=this.editor,b=a.options.autotypeset,c=a.getLang("autoTypeSet"),d="textAlignValue"+a.uid,e="imageBlockLineValue"+a.uid,f="symbolConverValue"+a.uid;return'
    "+c.mergeLine+'"+c.delLine+'
    "+c.removeFormat+'"+c.indent+'
    "+c.alignment+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.imageFloat+'"+a.getLang("default")+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.removeFontsize+'"+c.removeFontFamily+'
    "+c.removeHtml+'
    "+c.pasteFilter+'
    "+c.symbol+'"+c.bdc2sb+'"+c.tobdc+'
    "},_UIBase_render:b.prototype.render},a.inherits(c,b)}(),function(){function a(a){for(var c,d={},e=a.getDom(),f=a.editor.uid,g=null,h=null,i=domUtils.getElementsByTagName(e,"input"),j=i.length-1;c=i[j--];)if(g=c.getAttribute("type"),"checkbox"==g)if(h=c.getAttribute("name"),d[h]&&delete d[h],c.checked){var k=document.getElementById(h+"Value"+f);if(k){if(/input/gi.test(k.tagName))d[h]=k.value;else for(var l,m=k.getElementsByTagName("input"),n=m.length-1;l=m[n--];)if(l.checked){d[h]=l.value;break}}else d[h]=!0}else d[h]=!1;else d[c.getAttribute("value")]=c.checked;for(var o,p=domUtils.getElementsByTagName(e,"select"),j=0;o=p[j++];){var q=o.getAttribute("name");d[q]=d[q]?o.value:""}b.extend(a.editor.options.autotypeset,d),a.editor.setPreferences("autotypeset",d)}var b=baidu.editor.utils,c=baidu.editor.ui.Popup,d=baidu.editor.ui.AutoTypeSetPicker,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.AutoTypeSetButton=function(a){this.initOptions(a),this.initAutoTypeSetButton()};f.prototype={initAutoTypeSetButton:function(){var b=this;this.popup=new c({content:new d({editor:b.editor}),editor:b.editor,hide:function(){!this._hidden&&this.getDom()&&(a(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}});var e=0;this.popup.addListener("postRenderAfter",function(){var c=this;if(!e){var d=this.getDom(),f=d.getElementsByTagName("button")[0];f.onclick=function(){a(c),b.editor.execCommand("autotypeset"),c.hide()},domUtils.on(d,"click",function(d){var e=d.target||d.srcElement,f=b.editor.uid;if(e&&"INPUT"==e.tagName){if("imageBlockLine"==e.name||"textAlign"==e.name||"symbolConver"==e.name)for(var g=e.checked,h=document.getElementById(e.name+"Value"+f),i=h.getElementsByTagName("input"),j={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"},k=0;k"),e.push('
    '),2===d&&e.push("");return'
    '+e.join("")+"
    "},getStateDom:function(){return this.target},_onClick:function(a){var c=a.target||a.srcElement;/icon/.test(c.className)&&(this.items[c.parentNode.getAttribute("index")].onclick(),b.postHide(a))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,c,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Stateful,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.PastePicker=function(a){this.initOptions(a),this.initPastePicker()};e.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'
    '+this.editor.getLang("pasteOpt")+'
    '},getStateDom:function(){return this.target},format:function(a){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",a)},_onClick:function(a){var b=domUtils.getNextDomNode(a),d=c.getViewportRect().height,e=c.getClientRect(b);e.top+e.height>d?b.style.top=-e.height-a.offsetHeight+"px":b.style.top="",/hidden/gi.test(domUtils.getComputedStyle(b,"visibility"))?(b.style.visibility="visible",domUtils.addClass(a,"edui-state-opened")):(b.style.visibility="hidden",domUtils.removeClasses(a,"edui-state-opened"))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,b,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Toolbar=function(a){this.initOptions(a),this.initToolbar()};d.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(a,b){void 0===b?this.items.push(a):this.items.splice(b,0,a)},getHtmlTpl:function(){for(var a=[],b=0;b'+a.join("")+""},postRender:function(){for(var a=this.getDom(),c=0;c
    '},postRender:function(){},queryAutoHide:function(){return!0}};h.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var a=0;a'+a.join("")+""},_Popup_postRender:e.prototype.postRender,postRender:function(){for(var a=this,d=0;d
    '+this.renderLabelHtml()+"
    "},postRender:function(){var a=this;this.addListener("over",function(){a.ownerMenu.fireEvent("submenuover",a),a.subMenu&&a.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){a.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(a._closingTimer),a._closingTimer=null,a.addState("opened")}),this.ownerMenu.addListener("hide",function(){a.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(b,c){c!==a&&a.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(b){return(!b||!c.contains(a.getDom(),b))&&this._bakQueryAutoHide(b)}),this.getDom().style.tabIndex="-1",c.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var a=this;a.isDisabled()||(a.addState("opened"),clearTimeout(a._showingTimer),clearTimeout(a._closingTimer),a._closingTimer=null,a._showingTimer=setTimeout(function(){a.showSubMenu()},250))},delayHideSubMenu:function(){var a=this;a.isDisabled()||(a.removeState("opened"),clearTimeout(a._showingTimer),a._closingTimer||(a._closingTimer=setTimeout(function(){a.hasState("opened")||a.hideSubMenu(),a._closingTimer=null},400)))},renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "},getStateDom:function(){return this.getDom()},queryAutoHide:function(a){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(a)},_onClick:function(a,b){this.hasState("disabled")||this.fireEvent("click",a,b)!==!1&&(this.subMenu?this.showSubMenu():e.postHide(a))},showSubMenu:function(){var a=c.getClientRect(this.getDom());a.right-=5,a.left+=2,a.width-=7,a.top-=4,a.bottom+=4,a.height+=8,this.subMenu.showAnchorRect(a,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},a.inherits(j,d),a.extend(j.prototype,f,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.Menu,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.Combox=function(a){this.initOptions(a),this.initCombox()};e.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var a=this;this.items=this.items||[];for(var b=0;bd.right&&(g=d.right-e.width);var h=a.top;h+e.height>d.bottom&&(h=d.bottom-e.height),c.style.left=Math.max(g,0)+"px",c.style.top=Math.max(h,0)+"px"},showAtCenter:function(){var a=f.getViewportRect();if(this.fullscreen){var b=this.getDom(),c=this.getDom("content");b.style.display="block";var d=UE.ui.uiUtils.getClientRect(b),g=UE.ui.uiUtils.getClientRect(c);b.style.left="-100000px",c.style.width=a.width-d.width+g.width+"px",c.style.height=a.height-d.height+g.height+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.left=0,this._originalContext={html:{overflowX:document.documentElement.style.overflowX,overflowY:document.documentElement.style.overflowY},body:{overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY}},document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"}else{this.getDom().style.display="";var h=this.fitSize(),i=0|this.getDom("titlebar").offsetHeight,j=a.width/2-h.width/2,k=a.height/2-(h.height-i)/2-i,l=this.getDom();this.safeSetOffset({left:Math.max(0|j,0),top:Math.max(0|k,0)}),e.hasClass(l,"edui-state-centered")||(l.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var a="";return"string"==typeof this.content?a=this.content:this.iframeUrl&&(a=''),a},getHtmlTpl:function(){var a="";if(this.buttons){for(var b=[],c=0;c
    '+b.join("")+"
    "}return'
    '+(this.title||"")+"
    "+this.closeButton.renderHtml()+'
    '+(this.autoReset?"":this.getContentHtml())+"
    "+a+"
    "},postRender:function(){this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide());var a=this;if(this.addListener("show",function(){a.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){a.modalMask.hide()}),this.buttons)for(var b=0;b',a.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*a.editor.container.style.zIndex+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},a.inherits(d,c)}(),function(){function a(a){var b=a.target||a.srcElement,c=g.findParent(b,function(a){return g.hasClass(a,"edui-shortcutmenu")||g.hasClass(a,"edui-popup")},!0);if(!c)for(var d,e=0;d=h[e++];)d.hide()}var b,c=baidu.editor.ui,d=c.UIBase,e=c.uiUtils,f=baidu.editor.utils,g=baidu.editor.dom.domUtils,h=[],i=!1,j=c.ShortCutMenu=function(a){this.initOptions(a),this.initShortCutMenu()};j.postHide=a,j.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var a=this,c=a.editor.document;g.on(c,"mousemove",function(c){if(a.isHidden===!1){if(a.getSubMenuMark()||"contextmenu"==a.eventType)return;var d=!0,e=a.getDom(),f=e.offsetWidth,g=e.offsetHeight,h=f/2+a.SPACE,i=g/2,j=Math.abs(c.screenX-a.left),k=Math.abs(c.screenY-a.top);clearTimeout(b),b=setTimeout(function(){k>0&&ki&&ki+70&&k0&&jh&&jh+70&&j'+a+""}},f.inherits(j,d),g.on(document,"mousedown",function(b){a(b)}),g.on(window,"scroll",function(b){a(b)})}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Breakline=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"
    "}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Message=function(a){this.initOptions(a),this.initMessage()};d.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'
    ×
    '},reset:function(a){var b=this;a.keepshow||(clearTimeout(this.timer),b.timer=setTimeout(function(){b.hide()},a.timeout||4e3)),void 0!==a.content&&b.setContent(a.content),void 0!==a.type&&b.setType(a.type),b.show()},postRender:function(){var a=this,c=this.getDom("closer");c&&b.on(c,"click",function(){a.hide()})},setContent:function(a){this.getDom("content").innerHTML=a},setType:function(a){a=a||"info";var b=this.getDom("body");b.className=b.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+a)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var a=this.getDom("body").match(/edui-message-type-([\w-]+)/);return a?a[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var a=this.getDom();a&&(a.style.display="none",a.parentNode&&a.parentNode.removeChild(a))}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui,c=b.Dialog;b.buttons={},b.Dialog=function(a){var b=new c(a);return b.addListener("hide",function(){if(b.editor){var a=b.editor;try{if(browser.gecko){var c=a.window.scrollY,d=a.window.scrollX;a.body.focus(),a.window.scrollTo(d,c)}else a.focus()}catch(e){}}}),b};for(var d,e={anchor:"~/dialogs/anchor/anchor.html",insertimage:"~/dialogs/image/image.html",link:"~/dialogs/link/link.html",spechars:"~/dialogs/spechars/spechars.html",searchreplace:"~/dialogs/searchreplace/searchreplace.html",map:"~/dialogs/map/map.html",gmap:"~/dialogs/gmap/gmap.html",insertvideo:"~/dialogs/video/video.html",help:"~/dialogs/help/help.html",preview:"~/dialogs/preview/preview.html",emotion:"~/dialogs/emotion/emotion.html",wordimage:"~/dialogs/wordimage/wordimage.html",attachment:"~/dialogs/attachment/attachment.html",insertframe:"~/dialogs/insertframe/insertframe.html",edittip:"~/dialogs/table/edittip.html",edittable:"~/dialogs/table/edittable.html",edittd:"~/dialogs/table/edittd.html",webapp:"~/dialogs/webapp/webapp.html",snapscreen:"~/dialogs/snapscreen/snapscreen.html",scrawl:"~/dialogs/scrawl/scrawl.html",music:"~/dialogs/music/music.html",template:"~/dialogs/template/template.html",background:"~/dialogs/background/background.html",charts:"~/dialogs/charts/charts.html"},f=["undo","redo","formatmatch","bold","italic","underline","fontborder","touppercase","tolowercase","strikethrough","subscript","superscript","source","indent","outdent","blockquote","pasteplain","pagebreak","selectall","print","horizontal","removeformat","time","date","unlink","insertparagraphbeforetable","insertrow","insertcol","mergeright","mergedown","deleterow","deletecol","splittorows","splittocols","splittocells","mergecells","deletetable","drafts"],g=0;d=f[g++];)d=d.toLowerCase(),b[d]=function(a){return function(c){var d=new b.Button({className:"edui-for-"+a,title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",onclick:function(){c.execCommand(a)},theme:c.options.theme,showText:!1});return b.buttons[a]=d,c.addListener("selectionchange",function(b,e,f){var g=c.queryCommandState(a);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(d);b.cleardoc=function(a){var c=new b.Button({className:"edui-for-cleardoc",title:a.options.labelMap.cleardoc||a.getLang("labelMap.cleardoc")||"",theme:a.options.theme,onclick:function(){confirm(a.getLang("confirmClear"))&&a.execCommand("cleardoc")}});return b.buttons.cleardoc=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("cleardoc")==-1)}),c};var h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(var i in h)!function(a,c){for(var d,e=0;d=c[e++];)!function(c){b[a.replace("float","")+c]=function(d){var e=new b.Button({className:"edui-for-"+a.replace("float","")+c,title:d.options.labelMap[a.replace("float","")+c]||d.getLang("labelMap."+a.replace("float","")+c)||"",theme:d.options.theme,onclick:function(){d.execCommand(a,c)}});return b.buttons[a]=e,d.addListener("selectionchange",function(b,f,g){e.setDisabled(d.queryCommandState(a)==-1),e.setChecked(d.queryCommandValue(a)==c&&!g)}),e}}(d)}(i,h[i]);for(var d,g=0;d=["backcolor","forecolor"][g++];)b[d]=function(a){return function(c){var d=new b.ColorButton({className:"edui-for-"+a,color:"default",title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",editor:c,onpickcolor:function(b,d){ -c.execCommand(a,d)},onpicknocolor:function(){c.execCommand(a,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){c.execCommand(a,this.color)}});return b.buttons[a]=d,c.addListener("selectionchange",function(){d.setDisabled(c.queryCommandState(a)==-1)}),d}}(d);var j={noOk:["searchreplace","help","spechars","webapp","preview"],ok:["attachment","anchor","link","insertimage","map","gmap","insertframe","wordimage","insertvideo","insertframe","edittip","edittable","edittd","scrawl","template","music","background","charts"]};for(var i in j)!function(c,d){for(var f,g=0;f=d[g++];)browser.opera&&"searchreplace"===f||!function(d){b[d]=function(f,g,h){g=g||(f.options.iframeUrlMap||{})[d]||e[d],h=f.options.labelMap[d]||f.getLang("labelMap."+d)||"";var i;g&&(i=new b.Dialog(a.extend({iframeUrl:f.ui.mapUrl(g),editor:f,className:"edui-for-"+d,title:h,holdScroll:"insertimage"===d,fullscreen:/charts|preview/.test(d),closeDialog:f.getLang("closeDialog")},"ok"==c?{buttons:[{className:"edui-okbutton",label:f.getLang("ok"),editor:f,onclick:function(){i.close(!0)}},{className:"edui-cancelbutton",label:f.getLang("cancel"),editor:f,onclick:function(){i.close(!1)}}]}:{})),f.ui._dialogs[d+"Dialog"]=i);var j=new b.Button({className:"edui-for-"+d,title:h,onclick:function(){if(i)switch(d){case"wordimage":var a=f.execCommand("wordimage");a&&a.length&&(i.render(),i.open());break;case"scrawl":f.queryCommandState("scrawl")!=-1&&(i.render(),i.open());break;default:i.render(),i.open()}},theme:f.options.theme,disabled:"scrawl"==d&&f.queryCommandState("scrawl")==-1||"charts"==d});return b.buttons[d]=j,f.addListener("selectionchange",function(){var a={edittable:1};if(!(d in a)){var b=f.queryCommandState(d);j.getDom()&&(j.setDisabled(b==-1),j.setChecked(b))}}),j}}(f.toLowerCase())}(i,j[i]);b.snapscreen=function(a,c,d){d=a.options.labelMap.snapscreen||a.getLang("labelMap.snapscreen")||"";var f=new b.Button({className:"edui-for-snapscreen",title:d,onclick:function(){a.execCommand("snapscreen")},theme:a.options.theme});if(b.buttons.snapscreen=f,c=c||(a.options.iframeUrlMap||{}).snapscreen||e.snapscreen){var g=new b.Dialog({iframeUrl:a.ui.mapUrl(c),editor:a,className:"edui-for-snapscreen",title:d,buttons:[{className:"edui-okbutton",label:a.getLang("ok"),editor:a,onclick:function(){g.close(!0)}},{className:"edui-cancelbutton",label:a.getLang("cancel"),editor:a,onclick:function(){g.close(!1)}}]});g.render(),a.ui._dialogs.snapscreenDialog=g}return a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState("snapscreen")==-1)}),f},b.insertcode=function(c,d,e){d=c.options.insertcode||[],e=c.options.labelMap.insertcode||c.getLang("labelMap.insertcode")||"";var f=[];a.each(d,function(a,b){f.push({label:a,value:b,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})});var g=new b.Combox({editor:c,items:f,onselect:function(a,b){c.execCommand("insertcode",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-insertcode",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.insertcode=g,c.addListener("selectionchange",function(a,b,d){if(!d){var f=c.queryCommandState("insertcode");if(f==-1)g.setDisabled(!0);else{g.setDisabled(!1);var h=c.queryCommandValue("insertcode");if(!h)return void g.setValue(e);h&&(h=h.replace(/['"]/g,"").split(",")[0]),g.setValue(h)}}}),g},b.fontfamily=function(c,d,e){if(d=c.options.fontfamily||[],e=c.options.labelMap.fontfamily||c.getLang("labelMap.fontfamily")||"",d.length){for(var f,g=0,h=[];f=d[g];g++){var i=c.getLang("fontfamily")[f.name]||"";!function(b,d){h.push({label:b,value:d,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})}(f.label||i,f.val)}var j=new b.Combox({editor:c,items:h,onselect:function(a,b){c.execCommand("FontFamily",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-fontfamily",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.fontfamily=j,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("FontFamily");if(e==-1)j.setDisabled(!0);else{j.setDisabled(!1);var f=c.queryCommandValue("FontFamily");f&&(f=f.replace(/['"]/g,"").split(",")[0]),j.setValue(f)}}}),j}},b.fontsize=function(a,c,d){if(d=a.options.labelMap.fontsize||a.getLang("labelMap.fontsize")||"",c=c||a.options.fontsize||[],c.length){for(var e=[],f=0;f'+(this.label||"")+""}})}var h=new b.Combox({editor:a,items:e,title:d,initValue:d,onselect:function(b,c){a.execCommand("FontSize",this.items[c].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"});return b.buttons.fontsize=h,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("FontSize");e==-1?h.setDisabled(!0):(h.setDisabled(!1),h.setValue(a.queryCommandValue("FontSize")))}}),h}},b.paragraph=function(c,d,e){if(e=c.options.labelMap.paragraph||c.getLang("labelMap.paragraph")||"",d=c.options.paragraph||[],!a.isEmptyObject(d)){var f=[];for(var g in d)f.push({value:g,label:d[g]||c.getLang("paragraph")[g],theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}});var h=new b.Combox({editor:c,items:f,title:e,initValue:e,className:"edui-for-paragraph",onselect:function(a,b){c.execCommand("Paragraph",this.items[b].value)},onbuttonclick:function(){this.showPopup()}});return b.buttons.paragraph=h,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("Paragraph");if(e==-1)h.setDisabled(!0);else{h.setDisabled(!1);var f=c.queryCommandValue("Paragraph"),g=h.indexByValue(f);g!=-1?h.setValue(f):h.setValue(h.initValue)}}}),h}},b.customstyle=function(a){var c=a.options.customstyle||[],d=a.options.labelMap.customstyle||a.getLang("labelMap.customstyle")||"";if(c.length){for(var e,f=a.getLang("customstyle"),g=0,h=[];e=c[g++];)!function(b){var c={};c.label=b.label?b.label:f[b.name],c.style=b.style,c.className=b.className,c.tag=b.tag,h.push({label:c.label,value:c,theme:a.options.theme,renderLabelHtml:function(){return'
    <'+c.tag+" "+(c.className?' class="'+c.className+'"':"")+(c.style?' style="'+c.style+'"':"")+">"+c.label+"
    "}})}(e);var i=new b.Combox({editor:a,items:h,title:d,initValue:d,className:"edui-for-customstyle",onselect:function(b,c){a.execCommand("customstyle",this.items[c].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(a){for(var b,c=0;b=this.items[c++];)if(b.label==a)return c-1;return-1}});return b.buttons.customstyle=i,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("customstyle");if(e==-1)i.setDisabled(!0);else{i.setDisabled(!1);var f=a.queryCommandValue("customstyle"),g=i.indexByValue(f);g!=-1?i.setValue(f):i.setValue(i.initValue)}}}),i}},b.inserttable=function(a,c,d){d=a.options.labelMap.inserttable||a.getLang("labelMap.inserttable")||"";var e=new b.TableButton({editor:a,title:d,className:"edui-for-inserttable",onpicktable:function(b,c,d){a.execCommand("InsertTable",{numRows:d,numCols:c,border:1})},onbuttonclick:function(){this.showPopup()}});return b.buttons.inserttable=e,a.addListener("selectionchange",function(){e.setDisabled(a.queryCommandState("inserttable")==-1)}),e},b.lineheight=function(a){var c=a.options.lineheight||[];if(c.length){for(var d,e=0,f=[];d=c[e++];)f.push({label:d,value:d,theme:a.options.theme,onclick:function(){a.execCommand("lineheight",this.value)}});var g=new b.MenuButton({editor:a,className:"edui-for-lineheight",title:a.options.labelMap.lineheight||a.getLang("labelMap.lineheight")||"",items:f,onbuttonclick:function(){var b=a.queryCommandValue("LineHeight")||this.value;a.execCommand("LineHeight",b)}});return b.buttons.lineheight=g,a.addListener("selectionchange",function(){var b=a.queryCommandState("LineHeight");if(b==-1)g.setDisabled(!0);else{g.setDisabled(!1);var c=a.queryCommandValue("LineHeight");c&&g.setValue((c+"").replace(/cm/,"")),g.setChecked(b)}}),g}};for(var k,l=["top","bottom"],m=0;k=l[m++];)!function(a){b["rowspacing"+a]=function(c){var d=c.options["rowspacing"+a]||[];if(!d.length)return null;for(var e,f=0,g=[];e=d[f++];)g.push({label:e,value:e,theme:c.options.theme,onclick:function(){c.execCommand("rowspacing",this.value,a)}});var h=new b.MenuButton({editor:c,className:"edui-for-rowspacing"+a,title:c.options.labelMap["rowspacing"+a]||c.getLang("labelMap.rowspacing"+a)||"",items:g,onbuttonclick:function(){var b=c.queryCommandValue("rowspacing",a)||this.value;c.execCommand("rowspacing",b,a)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState("rowspacing",a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue("rowspacing",a);d&&h.setValue((d+"").replace(/%/,"")),h.setChecked(b)}}),h}}(k);for(var n,o=["insertorderedlist","insertunorderedlist"],p=0;n=o[p++];)!function(a){b[a]=function(c){var d=c.options[a],e=function(){c.execCommand(a,this.value)},f=[];for(var g in d)f.push({label:d[g]||c.getLang()[a][g]||"",value:g,theme:c.options.theme,onclick:e});var h=new b.MenuButton({editor:c,className:"edui-for-"+a,title:c.getLang("labelMap."+a)||"",items:f,onbuttonclick:function(){var b=c.queryCommandValue(a)||this.value;c.execCommand(a,b)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState(a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue(a);h.setValue(d),h.setChecked(b)}}),h}}(n);b.fullscreen=function(a,c){c=a.options.labelMap.fullscreen||a.getLang("labelMap.fullscreen")||"";var d=new b.Button({className:"edui-for-fullscreen",title:c,theme:a.options.theme,onclick:function(){a.ui&&a.ui.setFullScreen(!a.ui.isFullScreen()),this.setChecked(a.ui.isFullScreen())}});return b.buttons.fullscreen=d,a.addListener("selectionchange",function(){var b=a.queryCommandState("fullscreen");d.setDisabled(b==-1),d.setChecked(a.ui.isFullScreen())}),d},b.emotion=function(a,c){var d="emotion",f=new b.MultiMenuPop({title:a.options.labelMap[d]||a.getLang("labelMap."+d)||"",editor:a,className:"edui-for-"+d,iframeUrl:a.ui.mapUrl(c||(a.options.iframeUrlMap||{})[d]||e[d])});return b.buttons[d]=f,a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState(d)==-1)}),f},b.autotypeset=function(a){var c=new b.AutoTypeSetButton({editor:a,title:a.options.labelMap.autotypeset||a.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){a.execCommand("autotypeset")}});return b.buttons.autotypeset=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("autotypeset")==-1)}),c},b.simpleupload=function(a){var c="simpleupload",d=new b.Button({className:"edui-for-"+c,title:a.options.labelMap[c]||a.getLang("labelMap."+c)||"",onclick:function(){},theme:a.options.theme,showText:!1});return b.buttons[c]=d,a.addListener("ready",function(){var b=d.getDom("body"),c=b.children[0];a.fireEvent("simpleuploadbtnready",c)}),a.addListener("selectionchange",function(b,e,f){var g=a.queryCommandState(c);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(),function(){function a(a){this.initOptions(a),this.initEditorUI()}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.dom.domUtils,f=[];a.prototype={uiName:"editor",initEditorUI:function(){function a(a,b){a.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:a.options.wordCountMsg||a.getLang("wordCountMsg"),wordOverFlowMsg:a.options.wordOverFlowMsg||a.getLang("wordOverFlowMsg")});var c=a.options,d=c.maximumWords,e=c.wordCountMsg,f=c.wordOverFlowMsg,g=b.getDom("wordcount");if(c.wordCount){var h=a.getContentLength(!0);h>d?(g.innerHTML=f,a.fireEvent("wordcountoverflow")):g.innerHTML=e.replace("{#leave}",d-h).replace("{#count}",h)}}this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars();var b=this.editor,c=this;b.addListener("ready",function(){function d(){a(b,c),e.un(b.document,"click",arguments.callee)}b.getDialog=function(a){return b.ui._dialogs[a+"Dialog"]},e.on(b.window,"scroll",function(a){baidu.editor.ui.Popup.postHide(a)}),b.ui._actualFrameWidth=b.options.initialFrameWidth,UE.browser.ie&&6===UE.browser.version&&b.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),b.options.elementPathEnabled&&(b.ui.getDom("elementpath").innerHTML='
    '+b.getLang("elementPathTip")+":
    "),b.options.wordCount&&(e.on(b.document,"click",d),b.ui.getDom("wordcount").innerHTML=b.getLang("wordCountTip")),b.ui._scale(),b.options.scaleEnabled?(b.autoHeightEnabled&&b.disableAutoHeight(),c.enableScale()):c.disableScale(),b.options.elementPathEnabled||b.options.wordCount||b.options.scaleEnabled||(b.ui.getDom("elementpath").style.display="none",b.ui.getDom("wordcount").style.display="none",b.ui.getDom("scale").style.display="none"),b.selection.isFocus()&&b.fireEvent("selectionchange",!1,!0)}),b.addListener("mousedown",function(a,b){var c=b.target||b.srcElement;baidu.editor.ui.Popup.postHide(b,c),baidu.editor.ui.ShortCutMenu.postHide(b)}),b.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(b),b.getDialog("edittip").open()});var d,f,g=!1;b.addListener("afterpaste",function(){b.queryCommandState("pasteplain")||(baidu.editor.ui.PastePicker&&(d=new baidu.editor.ui.Popup({content:new baidu.editor.ui.PastePicker({editor:b}),editor:b,className:"edui-wordpastepop"}),d.render()),g=!0)}),b.addListener("afterinserthtml",function(){clearTimeout(f),f=setTimeout(function(){if(d&&(g||b.ui._isTransfer)){if(d.isHidden()){var a=e.createElement(b.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),c=b.selection.getRange();c.insertNode(a);var f=getDomNode(a,"firstChild","previousSibling");f&&d.showAnchor(3==f.nodeType?f.parentNode:f),e.remove(a)}else d.show();delete b.ui._isTransfer,g=!1}},200)}),b.addListener("contextmenu",function(a,b){baidu.editor.ui.Popup.postHide(b)}),b.addListener("keydown",function(a,b){d&&d.dispose(b);var c=b.keyCode||b.which;b.altKey&&90==c&&UE.ui.buttons.fullscreen.onclick()}),b.addListener("wordcount",function(b){a(this,c)}),b.addListener("selectionchange",function(){b.options.elementPathEnabled&&c[(b.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),b.options.scaleEnabled&&c[(b.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()});var h=new baidu.editor.ui.Popup({editor:b,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),b.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(a){this.hide(),b.ui._dialogs[a]&&b.ui._dialogs[a].open()},_onImgSetFloat:function(a){this.hide(),b.execCommand("imagefloat",a)},_setIframeAlign:function(a){var b=h.anchorEl,c=b.cloneNode(!0);switch(a){case-2:c.setAttribute("align","");break;case-1:c.setAttribute("align","left");break;case 1:c.setAttribute("align","right")}b.parentNode.insertBefore(c,b),e.remove(b),h.anchorEl=c,h.showAnchor(h.anchorEl)},_updateIframe:function(){var a=b._iframe=h.anchorEl;e.hasClass(a,"ueditor_baidumap")?(b.selection.getRange().selectNode(a).select(),b.ui._dialogs.mapDialog.open(),h.hide()):(b.ui._dialogs.insertframeDialog.open(),h.hide())},_onRemoveButtonClick:function(a){b.execCommand(a),this.hide()},queryAutoHide:function(a){return a&&a.ownerDocument==b.document&&("img"==a.tagName.toLowerCase()||e.findParentByTagName(a,"a",!0))?a!==h.anchorEl:baidu.editor.ui.Popup.prototype.queryAutoHide.call(this,a)}});h.render(),b.options.imagePopup&&(b.addListener("mouseover",function(a,c){c=c||window.event;var d=c.target||c.srcElement;if(b.ui._dialogs.insertframeDialog&&/iframe/gi.test(d.tagName)){var e=h.formatHtml(""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'   '+b.getLang("modify")+"");e?(h.getDom("content").innerHTML=e,h.anchorEl=d,h.showAnchor(h.anchorEl)):h.hide()}}),b.addListener("selectionchange",function(a,c){if(c){var d="",f="",g=b.selection.getRange().getClosedNode(),i=b.ui._dialogs;if(g&&"IMG"==g.tagName){var j="insertimageDialog";if(g.className.indexOf("edui-faked-video")==-1&&g.className.indexOf("edui-upload-video")==-1||(j="insertvideoDialog"),g.className.indexOf("edui-faked-webapp")!=-1&&(j="webappDialog"),g.src.indexOf("http://api.map.baidu.com")!=-1&&(j="mapDialog"),g.className.indexOf("edui-faked-music")!=-1&&(j="musicDialog"),g.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(j="gmapDialog"),g.getAttribute("anchorname")&&(j="anchorDialog",d=h.formatHtml(""+b.getLang("property")+': '+b.getLang("modify")+"  "+b.getLang("delete")+"")),g.getAttribute("word_img")&&(b.word_img=[g.getAttribute("word_img")],j="wordimageDialog"),(e.hasClass(g,"loadingclass")||e.hasClass(g,"loaderrorclass"))&&(j=""),!i[j])return;f=""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'  '+b.getLang("justifycenter")+"  '+b.getLang("modify")+"",!d&&(d=h.formatHtml(f))}if(b.ui._dialogs.linkDialog){var k,l=b.queryCommandValue("link");if(l&&(k=l.getAttribute("_href")||l.getAttribute("href",2))){var m=k;k.length>30&&(m=k.substring(0,20)+"..."),d&&(d+='
    '),d+=h.formatHtml(""+b.getLang("anthorMsg")+': '+m+' '+b.getLang("modify")+' '+b.getLang("clear")+""),h.showAnchor(l)}}d?(h.getDom("content").innerHTML=d,h.anchorEl=g||l,h.showAnchor(h.anchorEl)):h.hide()}}))},_initToolbars:function(){for(var a=this.editor,b=this.toolbars||[],c=[],d=0;d
    '+(this.toolbars.length?'
    '+this.renderToolbarBoxHtml()+"
    ":"")+'
    '},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var a=[],b=0;b'+c+"");b.innerHTML='
    '+this.editor.getLang("elementPathTip")+": "+d.join(" > ")+"
    "}else b.style.display="none"},disableElementPath:function(){var a=this.getDom("elementpath");a.innerHTML="",a.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var a=this.getDom("elementpath");a.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function a(){o=e.getXY(h),p||(p=g.options.minFrameHeight+j.offsetHeight+k.offsetHeight),m.style.cssText="position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:"+h.offsetWidth+"px;height:"+h.offsetHeight+"px;z-index:"+(g.options.zIndex+1),e.on(f,"mousemove",b),e.on(i,"mouseup",c),e.on(f,"mouseup",c)}function b(a){d();var b=a||window.event;r=b.pageX||f.documentElement.scrollLeft+b.clientX,s=b.pageY||f.documentElement.scrollTop+b.clientY,t=r-o.x,u=s-o.y,t>=q&&(n=!0,m.style.width=t+"px"),u>=p&&(n=!0,m.style.height=u+"px")}function c(){n&&(n=!1,g.ui._actualFrameWidth=m.offsetWidth-2,h.style.width=g.ui._actualFrameWidth+"px",g.setHeight(m.offsetHeight-k.offsetHeight-j.offsetHeight-2,!0)),m&&(m.style.display="none"),d(),e.un(f,"mousemove",b),e.un(i,"mouseup",c),e.un(f,"mouseup",c)}function d(){browser.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,g=this.editor,h=g.container,i=g.document,j=this.getDom("toolbarbox"),k=this.getDom("bottombar"),l=this.getDom("scale"),m=this.getDom("scalelayer"),n=!1,o=null,p=0,q=g.options.minFrameWidth,r=0,s=0,t=0,u=0,v=this;this.editor.addListener("fullscreenchanged",function(a,b){if(b)v.disableScale();else if(v.editor.options.scaleEnabled){v.enableScale();var c=v.editor.document.createElement("span");v.editor.body.appendChild(c),v.editor.body.style.height=Math.max(e.getXY(c).y,v.editor.iframe.offsetHeight-20)+"px",e.remove(c)}}),this.enableScale=function(){1!=g.queryCommandState("source")&&(l.style.display="",this.scaleEnabled=!0,e.on(l,"mousedown",a))},this.disableScale=function(){l.style.display="none",this.scaleEnabled=!1,e.un(l,"mousedown",a)}},isFullScreen:function(){return this._fullscreen},postRender:function(){d.prototype.postRender.call(this);for(var a=0;a[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"),c.className&&(b.className=c.className),c.style.cssText&&(b.style.cssText=c.style.cssText),/textarea/i.test(c.tagName)?(d.textarea=c,d.textarea.style.display="none"):c.parentNode.removeChild(c),c.id&&(b.id=c.id,e.removeAttributes(c,"id")),c=b,c.innerHTML=""}e.addClass(c,"edui-"+d.options.theme),d.ui.render(c);var h=d.options;d.container=d.ui.getDom();for(var i,j=e.findParents(c,!0),k=[],l=0;i=j[l];l++)k[l]=i.style.display,i.style.display="block";if(h.initialFrameWidth)h.minFrameWidth=h.initialFrameWidth;else{h.minFrameWidth=h.initialFrameWidth=c.offsetWidth;var m=c.style.width;/%$/.test(m)&&(h.initialFrameWidth=m)}h.initialFrameHeight?h.minFrameHeight=h.initialFrameHeight:h.initialFrameHeight=h.minFrameHeight=c.offsetHeight;for(var i,l=0;i=j[l];l++)i.style.display=k[l];c.style.height&&(c.style.height=""),d.container.style.width=h.initialFrameWidth+(/%$/.test(h.initialFrameWidth)?"":"px"),d.container.style.zIndex=h.zIndex,f.call(d,d.ui.getDom("iframeholder")),d.fireEvent("afteruiready")}d.langIsReady?b():d.addListener("langReady",b)})},d},UE.getEditor=function(a,b){var c=g[a];return c||(c=g[a]=new UE.ui.Editor(b),c.render(a)),c},UE.delEditor=function(a){var b;(b=g[a])&&(b.key&&b.destroy(),delete g[a])},UE.registerUI=function(a,c,d,e){b.each(a.split(/\s+/),function(a){UE._customizeUI[a]={id:e,execFn:c,index:d}})}}(),UE.registerUI("message",function(a){function b(){var a=g.ui.getDom("toolbarbox");a&&(c.style.top=a.offsetHeight+3+"px"),c.style.zIndex=Math.max(g.options.zIndex,g.iframe.style.zIndex)+1}var c,d=baidu.editor.ui,e=d.Message,f=[],g=a;g.addListener("ready",function(){c=document.getElementById(g.ui.id+"_message_holder"),b()}),g.addListener("showmessage",function(a,d){d=utils.isString(d)?{content:d}:d;var h=new e({timeout:d.timeout,type:d.type,content:d.content,keepshow:d.keepshow,editor:g}),i=d.id||"msg_"+(+new Date).toString(36);return h.render(c),f[i]=h,h.reset(d),b(),i}),g.addListener("updatemessage",function(a,b,d){d=utils.isString(d)?{content:d}:d;var e=f[b];e.render(c),e&&e.reset(d)}),g.addListener("hidemessage",function(a,b){var c=f[b];c&&c.hide()})}),UE.registerUI("autosave",function(a){var b=null,c=null;a.on("afterautosave",function(){clearTimeout(b),b=setTimeout(function(){c&&a.trigger("hidemessage",c),c=a.trigger("showmessage",{content:a.getLang("autosave.success"),timeout:2e3})},2e3)})})}(); \ No newline at end of file diff --git a/yshop-drink-vue/public/UEditor22/ueditor.config.js b/yshop-drink-vue/public/UEditor22/ueditor.config.js deleted file mode 100644 index ef4f297..0000000 --- a/yshop-drink-vue/public/UEditor22/ueditor.config.js +++ /dev/null @@ -1,497 +0,0 @@ -/** - * ueditor完整配置项 - * 可以在这里配置整个编辑器的特性 - */ -/**************************提示******************************** - * 所有被注释的配置项均为UEditor默认值。 - * 修改默认配置请首先确保已经完全明确该参数的真实用途。 - * 主要有两种修改方案,一种是取消此处注释,然后修改成对应参数;另一种是在实例化编辑器时传入对应参数。 - * 当升级编辑器时,可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。 - **************************提示********************************/ - -(function () { - - /** - * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。 - * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。 - * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。 - * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。 - * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。 - * window.UEDITOR_HOME_URL = "/xxxx/xxxx/"; - */ - var URL = window.UEDITOR_HOME_URL || getUEBasePath(); - - /** - * 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。 - */ - window.UEDITOR_CONFIG = { - - //为编辑器实例添加一个路径,这个不能被注释 - UEDITOR_HOME_URL: URL - - // 服务器统一请求接口路径 - , serverUrl: URL + "php/controller.php" - - //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义 - , toolbars: [[ - 'fullscreen', 'source', '|', 'undo', 'redo', '|', - 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|', - 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', - 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|', - 'directionalityltr', 'directionalityrtl', 'indent', '|', - 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|', - 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|', - 'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|', - 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|', - 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', - 'print', 'preview', 'searchreplace', 'drafts', 'help' - ]] - //当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准 - //,labelMap:{ - // 'anchor':'', 'undo':'' - //} - - //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件: - //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase() - //,lang:"zh-cn" - //,langPath:URL +"lang/" - - //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件: - //现有如下皮肤:default - //,theme:'default' - //,themePath:URL +"themes/" - - //,zIndex : 900 //编辑器层级的基数,默认是900 - - //针对getAllHtml方法,会在对应的head标签中增加该编码设置。 - //,charset:"utf-8" - - //若实例化编辑器的页面手动修改的domain,此处需要设置为true - //,customDomain:false - - //常用配置项目 - //,isShow : true //默认显示编辑器 - - //,textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值 - - //,initialContent:'欢迎使用ueditor!' //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子 - - //,autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了 - - //,focus:false //初始化时,是否让编辑器获得焦点true或false - - //如果自定义,最好给p标签如下的行高,要不输入中文时,会有跳动感 - //,initialStyle:'p{line-height:1em}'//编辑器层级的基数,可以用来改变字体等 - - //,iframeCssUrl: URL + '/themes/iframe.css' //给编辑区域的iframe引入一个css文件 - - //indentValue - //首行缩进距离,默认是2em - //,indentValue:'2em' - - //,initialFrameWidth:1000 //初始化编辑器宽度,默认1000 - //,initialFrameHeight:320 //初始化编辑器高度,默认320 - - //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的,默认是false - - //,autoClearEmptyNode : true //getContent时,是否删除空的inlineElement节点(包括嵌套的情况) - - //启用自动保存 - //,enableAutoSave: true - //自动保存间隔时间, 单位ms - //,saveInterval: 500 - - //,fullscreen : false //是否开启初始化时即全屏,默认关闭 - - //,imagePopup:true //图片操作的浮层开关,默认打开 - - //,autoSyncData:true //自动同步编辑器要提交的数据 - //,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹 - - //粘贴只保留标签,去除标签所有属性 - //,retainOnlyLabelPasted: false - - //,pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴 - //纯文本粘贴模式下的过滤规则 - //'filterTxtRules' : function(){ - // function transP(node){ - // node.tagName = 'p'; - // node.setStyle(); - // } - // return { - // //直接删除及其字节点内容 - // '-' : 'script style object iframe embed input select', - // 'p': {$:{}}, - // 'br':{$:{}}, - // 'div':{'$':{}}, - // 'li':{'$':{}}, - // 'caption':transP, - // 'th':transP, - // 'tr':transP, - // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, - // 'td':function(node){ - // //没有内容的td直接删掉 - // var txt = !!node.innerText(); - // if(txt){ - // node.parentNode.insertAfter(UE.uNode.createText('    '),node); - // } - // node.parentNode.removeChild(node,node.innerText()) - // } - // } - //}() - - //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串 - - //insertorderedlist - //有序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //,'insertorderedlist':{ - // //自定的样式 - // 'num':'1,2,3...', - // 'num1':'1),2),3)...', - // 'num2':'(1),(2),(3)...', - // 'cn':'一,二,三....', - // 'cn1':'一),二),三)....', - // 'cn2':'(一),(二),(三)....', - // //系统自带 - // 'decimal' : '' , //'1,2,3...' - // 'lower-alpha' : '' , // 'a,b,c...' - // 'lower-roman' : '' , //'i,ii,iii...' - // 'upper-alpha' : '' , lang //'A,B,C' - // 'upper-roman' : '' //'I,II,III...' - //} - - //insertunorderedlist - //无序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 - //,insertunorderedlist : { //自定的样式 - // 'dash' :'— 破折号', //-破折号 - // 'dot':' 。 小圆圈', //系统自带 - // 'circle' : '', // '○ 小圆圈' - // 'disc' : '', // '● 小圆点' - // 'square' : '' //'■ 小方块' - //} - //,listDefaultPaddingLeft : '30'//默认的左边缩进的基数倍 - //,listiconpath : 'http://bs.baidu.com/listicon/'//自定义标号的路径 - //,maxListLevel : 3 //限制可以tab的级数, 设置-1为不限制 - - //,autoTransWordToList:false //禁止word中粘贴进来的列表自动变成列表标签 - - //fontfamily - //字体设置 label留空支持多语言自动切换,若配置,则以配置值为准 - //,'fontfamily':[ - // { label:'',name:'songti',val:'宋体,SimSun'}, - // { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'}, - // { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'}, - // { label:'',name:'heiti',val:'黑体, SimHei'}, - // { label:'',name:'lishu',val:'隶书, SimLi'}, - // { label:'',name:'andaleMono',val:'andale mono'}, - // { label:'',name:'arial',val:'arial, helvetica,sans-serif'}, - // { label:'',name:'arialBlack',val:'arial black,avant garde'}, - // { label:'',name:'comicSansMs',val:'comic sans ms'}, - // { label:'',name:'impact',val:'impact,chicago'}, - // { label:'',name:'timesNewRoman',val:'times new roman'} - //] - - //fontsize - //字号 - //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36] - - //paragraph - //段落格式 值留空时支持多语言自动识别,若配置,则以配置值为准 - //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''} - - //rowspacingtop - //段间距 值和显示的名字相同 - //,'rowspacingtop':['5', '10', '15', '20', '25'] - - //rowspacingBottom - //段间距 值和显示的名字相同 - //,'rowspacingbottom':['5', '10', '15', '20', '25'] - - //lineheight - //行内间距 值和显示的名字相同 - //,'lineheight':['1', '1.5','1.75','2', '3', '4', '5'] - - //customstyle - //自定义样式,不支持国际化,此处配置值即可最后显示值 - //block的元素是依据设置段落的逻辑设置的,inline的元素依据BIU的逻辑设置 - //尽量使用一些常用的标签 - //参数说明 - //tag 使用的标签名字 - //label 显示的名字也是用来标识不同类型的标识符,注意这个值每个要不同, - //style 添加的样式 - //每一个对象就是一个自定义的样式 - //,'customstyle':[ - // {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, - // {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'}, - // {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'}, - // {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'} - //] - - //打开右键菜单功能 - //,enableContextMenu: true - //右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准 - //,contextMenu:[ - // { - // label:'', //显示的名称 - // cmdName:'selectall',//执行的command命令,当点击这个右键菜单时 - // //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName - // exec:function () { - // //this是当前编辑器的实例 - // //this.ui._dialogs['inserttableDialog'].open(); - // } - // } - //] - - //快捷菜单 - //,shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"] - - //elementPathEnabled - //是否启用元素路径,默认是显示 - //,elementPathEnabled : true - - //wordCount - //,wordCount:true //是否开启字数统计 - //,maximumWords:10000 //允许的最大字符数 - //字数统计提示,{#count}代表当前字数,{#leave}代表还可以输入多少字符数,留空支持多语言自动切换,否则按此配置显示 - //,wordCountMsg:'' //当前已输入 {#count} 个字符,您还可以输入{#leave} 个字符 - //超出字数限制提示 留空支持多语言自动切换,否则按此配置显示 - //,wordOverFlowMsg:'' //你输入的字符个数已经超出最大允许值,服务器可能会拒绝保存! - - //tab - //点击tab键时移动的距离,tabSize倍数,tabNode什么字符做为单位 - //,tabSize:4 - //,tabNode:' ' - - //removeFormat - //清除格式时可以删除的标签和属性 - //removeForamtTags标签 - //,removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' - //removeFormatAttributes属性 - //,removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign' - - //undo - //可以最多回退的次数,默认20 - //,maxUndoCount:20 - //当输入的字符数超过该值时,保存一次现场 - //,maxInputCount:1 - - //autoHeightEnabled - // 是否自动长高,默认true - //,autoHeightEnabled:true - - //scaleEnabled - //是否可以拉伸长高,默认true(当开启时,自动长高失效) - //,scaleEnabled:false - //,minFrameWidth:800 //编辑器拖动时最小宽度,默认800 - //,minFrameHeight:220 //编辑器拖动时最小高度,默认220 - - //autoFloatEnabled - //是否保持toolbar的位置不动,默认true - //,autoFloatEnabled:true - //浮动时工具栏距离浏览器顶部的高度,用于某些具有固定头部的页面 - //,topOffset:30 - //编辑器底部距离工具栏高度(如果参数大于等于编辑器高度,则设置无效) - //,toolbarTopOffset:400 - - //设置远程图片是否抓取到本地保存 - //,catchRemoteImageEnable: true //设置是否抓取远程图片 - - //pageBreakTag - //分页标识符,默认是_ueditor_page_break_tag_ - //,pageBreakTag:'_ueditor_page_break_tag_' - - //autotypeset - //自动排版参数 - //,autotypeset: { - // mergeEmptyline: true, //合并空行 - // removeClass: true, //去掉冗余的class - // removeEmptyline: false, //去掉空行 - // textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 - // imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 - // pasteFilter: false, //根据规则过滤没事粘贴进来的内容 - // clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 - // clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 - // removeEmptyNode: false, // 去掉空节点 - // //可以去掉的标签 - // removeTagNames: {标签名字:1}, - // indent: false, // 行首缩进 - // indentValue : '2em', //行首缩进的大小 - // bdc2sb: false, - // tobdc: false - //} - - //tableDragable - //表格是否可以拖拽 - //,tableDragable: true - - - - //sourceEditor - //源码的查看方式,codemirror 是代码高亮,textarea是文本框,默认是codemirror - //注意默认codemirror只能在ie8+和非ie中使用 - //,sourceEditor:"codemirror" - //如果sourceEditor是codemirror,还用配置一下两个参数 - //codeMirrorJsUrl js加载的路径,默认是 URL + "third-party/codemirror/codemirror.js" - //,codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js" - //codeMirrorCssUrl css加载的路径,默认是 URL + "third-party/codemirror/codemirror.css" - //,codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css" - //编辑器初始化完成后是否进入源码模式,默认为否。 - //,sourceEditorFirst:false - - //iframeUrlMap - //dialog内容的路径 ~会被替换成URL,垓属性一旦打开,将覆盖所有的dialog的默认路径 - //,iframeUrlMap:{ - // 'anchor':'~/dialogs/anchor/anchor.html', - //} - - //allowLinkProtocol 允许的链接地址,有这些前缀的链接地址不会自动添加http - //, allowLinkProtocols: ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:', 'git:', 'svn:'] - - //webAppKey 百度应用的APIkey,每个站长必须首先去百度官网注册一个key后方能正常使用app功能,注册介绍,http://app.baidu.com/static/cms/getapikey.html - //, webAppKey: "" - - //默认过滤规则相关配置项目 - //,disabledTableInTable:true //禁止表格嵌套 - //,allowDivTransToP:true //允许进入编辑器的div标签自动变成p标签 - //,rgb2Hex:true //默认产出的数据中的color自动从rgb格式变成16进制格式 - - // xss 过滤是否开启,inserthtml等操作 - ,xssFilterRules: true - //input xss过滤 - ,inputXssFilter: true - //output xss过滤 - ,outputXssFilter: true - // xss过滤白名单 名单来源: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js - ,whiteList: { - a: ['target', 'href', 'title', 'class', 'style'], - abbr: ['title', 'class', 'style'], - address: ['class', 'style'], - area: ['shape', 'coords', 'href', 'alt'], - article: [], - aside: [], - audio: ['autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'], - b: ['class', 'style'], - bdi: ['dir'], - bdo: ['dir'], - big: [], - blockquote: ['cite', 'class', 'style'], - br: [], - caption: ['class', 'style'], - center: [], - cite: [], - code: ['class', 'style'], - col: ['align', 'valign', 'span', 'width', 'class', 'style'], - colgroup: ['align', 'valign', 'span', 'width', 'class', 'style'], - dd: ['class', 'style'], - del: ['datetime'], - details: ['open'], - div: ['class', 'style'], - dl: ['class', 'style'], - dt: ['class', 'style'], - em: ['class', 'style'], - font: ['color', 'size', 'face'], - footer: [], - h1: ['class', 'style'], - h2: ['class', 'style'], - h3: ['class', 'style'], - h4: ['class', 'style'], - h5: ['class', 'style'], - h6: ['class', 'style'], - header: [], - hr: [], - i: ['class', 'style'], - img: ['src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'], - ins: ['datetime'], - li: ['class', 'style'], - mark: [], - nav: [], - ol: ['class', 'style'], - p: ['class', 'style'], - pre: ['class', 'style'], - s: [], - section:[], - small: [], - span: ['class', 'style'], - sub: ['class', 'style'], - sup: ['class', 'style'], - strong: ['class', 'style'], - table: ['width', 'border', 'align', 'valign', 'class', 'style'], - tbody: ['align', 'valign', 'class', 'style'], - td: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - tfoot: ['align', 'valign', 'class', 'style'], - th: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], - thead: ['align', 'valign', 'class', 'style'], - tr: ['rowspan', 'align', 'valign', 'class', 'style'], - tt: [], - u: [], - ul: ['class', 'style'], - video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style'] - } - }; - - function getUEBasePath(docUrl, confUrl) { - - return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath()); - - } - - function getConfigFilePath() { - - var configPath = document.getElementsByTagName('script'); - - return configPath[ configPath.length - 1 ].src; - - } - - function getBasePath(docUrl, confUrl) { - - var basePath = confUrl; - - - if (/^(\/|\\\\)/.test(confUrl)) { - - basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, ''); - - } else if (!/^[a-z]+:/i.test(confUrl)) { - - docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, ''); - - basePath = docUrl + "" + confUrl; - - } - - return optimizationPath(basePath); - - } - - function optimizationPath(path) { - - var protocol = /^[a-z]+:\/\//.exec(path)[ 0 ], - tmp = null, - res = []; - - path = path.replace(protocol, "").split("?")[0].split("#")[0]; - - path = path.replace(/\\/g, '/').split(/\//); - - path[ path.length - 1 ] = ""; - - while (path.length) { - - if (( tmp = path.shift() ) === "..") { - res.pop(); - } else if (tmp !== ".") { - res.push(tmp); - } - - } - - return protocol + res.join("/"); - - } - - window.UE = { - getUEBasePath: getUEBasePath - }; - -})(); diff --git a/yshop-drink-vue/public/UEditor22/ueditor.parse.js b/yshop-drink-vue/public/UEditor22/ueditor.parse.js deleted file mode 100644 index 5e77074..0000000 --- a/yshop-drink-vue/public/UEditor22/ueditor.parse.js +++ /dev/null @@ -1,1022 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST) - */ - -(function(){ - -(function(){ - UE = window.UE || {}; - var isIE = !!window.ActiveXObject; - //定义utils工具 - var utils = { - removeLastbs : function(url){ - return url.replace(/\/$/,'') - }, - extend : function(t,s){ - var a = arguments, - notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false, - len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length; - for (var i = 1; i < len; i++) { - var x = a[i]; - for (var k in x) { - if (!notCover || !t.hasOwnProperty(k)) { - t[k] = x[k]; - } - } - } - return t; - }, - isIE : isIE, - cssRule : isIE ? function(key,style,doc){ - var indexList,index; - doc = doc || document; - if(doc.indexList){ - indexList = doc.indexList; - }else{ - indexList = doc.indexList = {}; - } - var sheetStyle; - if(!indexList[key]){ - if(style === undefined){ - return '' - } - sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length); - indexList[key] = index; - }else{ - sheetStyle = doc.styleSheets[indexList[key]]; - } - if(style === undefined){ - return sheetStyle.cssText - } - sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '') - } : function(key,style,doc){ - doc = doc || document; - var head = doc.getElementsByTagName('head')[0],node; - if(!(node = doc.getElementById(key))){ - if(style === undefined){ - return '' - } - node = doc.createElement('style'); - node.id = key; - head.appendChild(node) - } - if(style === undefined){ - return node.innerHTML - } - if(style !== ''){ - node.innerHTML = node.innerHTML + '\n' + style; - }else{ - head.removeChild(node) - } - }, - domReady : function (onready) { - var doc = window.document; - if (doc.readyState === "complete") { - onready(); - }else{ - if (isIE) { - (function () { - if (doc.isReady) return; - try { - doc.documentElement.doScroll("left"); - } catch (error) { - setTimeout(arguments.callee, 0); - return; - } - onready(); - })(); - window.attachEvent('onload', function(){ - onready() - }); - } else { - doc.addEventListener("DOMContentLoaded", function () { - doc.removeEventListener("DOMContentLoaded", arguments.callee, false); - onready(); - }, false); - window.addEventListener('load', function(){onready()}, false); - } - } - - }, - each : function(obj, iterator, context) { - if (obj == null) return; - if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i++) { - if(iterator.call(context, obj[i], i, obj) === false) - return false; - } - } else { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - if(iterator.call(context, obj[key], key, obj) === false) - return false; - } - } - } - }, - inArray : function(arr,item){ - var index = -1; - this.each(arr,function(v,i){ - if(v === item){ - index = i; - return false; - } - }); - return index; - }, - pushItem : function(arr,item){ - if(this.inArray(arr,item)==-1){ - arr.push(item) - } - }, - trim: function (str) { - return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, ''); - }, - indexOf: function (array, item, start) { - var index = -1; - start = this.isNumber(start) ? start : 0; - this.each(array, function (v, i) { - if (i >= start && v === item) { - index = i; - return false; - } - }); - return index; - }, - hasClass: function (element, className) { - className = className.replace(/(^[ ]+)|([ ]+$)/g, '').replace(/[ ]{2,}/g, ' ').split(' '); - for (var i = 0, ci, cls = element.className; ci = className[i++];) { - if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) { - return false; - } - } - return i - 1 == className.length; - }, - addClass:function (elm, classNames) { - if(!elm)return; - classNames = this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - if(!new RegExp('\\b' + ci + '\\b').test(cls)){ - cls += ' ' + ci; - } - } - elm.className = utils.trim(cls); - }, - removeClass:function (elm, classNames) { - classNames = this.isArray(classNames) ? classNames : - this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' '); - for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){ - cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'') - } - cls = this.trim(cls).replace(/[ ]{2,}/g,' '); - elm.className = cls; - !cls && elm.removeAttribute('className'); - }, - on: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.addEventListener) { - element.addEventListener(type, handler, false); - } else { - if (!handler._d) { - handler._d = { - els : [] - }; - } - var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element); - if (!handler._d[key] || index == -1) { - if(index == -1){ - handler._d.els.push(element); - } - if(!handler._d[key]){ - handler._d[key] = function (evt) { - return handler.call(evt.srcElement, evt || window.event); - }; - } - - - element.attachEvent('on' + type, handler._d[key]); - } - } - } - element = null; - }, - off: function (element, type, handler) { - var types = this.isArray(type) ? type : type.split(/\s+/), - k = types.length; - if (k) while (k--) { - type = types[k]; - if (element.removeEventListener) { - element.removeEventListener(type, handler, false); - } else { - var key = type + handler.toString(); - try{ - element.detachEvent('on' + type, handler._d ? handler._d[key] : handler); - }catch(e){} - if (handler._d && handler._d[key]) { - var index = utils.indexOf(handler._d.els,element); - if(index!=-1){ - handler._d.els.splice(index,1); - } - handler._d.els.length == 0 && delete handler._d[key]; - } - } - } - }, - loadFile : function () { - var tmpList = []; - function getItem(doc,obj){ - try{ - for(var i= 0,ci;ci=tmpList[i++];){ - if(ci.doc === doc && ci.url == (obj.src || obj.href)){ - return ci; - } - } - }catch(e){ - return null; - } - - } - return function (doc, obj, fn) { - var item = getItem(doc,obj); - if (item) { - if(item.ready){ - fn && fn(); - }else{ - item.funs.push(fn) - } - return; - } - tmpList.push({ - doc:doc, - url:obj.src||obj.href, - funs:[fn] - }); - if (!doc.body) { - var html = []; - for(var p in obj){ - if(p == 'tag')continue; - html.push(p + '="' + obj[p] + '"') - } - doc.write('<' + obj.tag + ' ' + html.join(' ') + ' >'); - return; - } - if (obj.id && doc.getElementById(obj.id)) { - return; - } - var element = doc.createElement(obj.tag); - delete obj.tag; - for (var p in obj) { - element.setAttribute(p, obj[p]); - } - element.onload = element.onreadystatechange = function () { - if (!this.readyState || /loaded|complete/.test(this.readyState)) { - item = getItem(doc,obj); - if (item.funs.length > 0) { - item.ready = 1; - for (var fi; fi = item.funs.pop();) { - fi(); - } - } - element.onload = element.onreadystatechange = null; - } - }; - element.onerror = function(){ - throw Error('The load '+(obj.href||obj.src)+' fails,check the url') - }; - doc.getElementsByTagName("head")[0].appendChild(element); - } - }() - }; - utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object','Boolean'], function (v) { - utils['is' + v] = function (obj) { - return Object.prototype.toString.apply(obj) == '[object ' + v + ']'; - } - }); - var parselist = {}; - UE.parse = { - register : function(parseName,fn){ - parselist[parseName] = fn; - }, - load : function(opt){ - utils.each(parselist,function(v){ - v.call(opt,utils); - }) - } - }; - uParse = function(selector,opt){ - utils.domReady(function(){ - var contents; - if(document.querySelectorAll){ - contents = document.querySelectorAll(selector) - }else{ - if(/^#/.test(selector)){ - contents = [document.getElementById(selector.replace(/^#/,''))] - }else if(/^\./.test(selector)){ - var contents = []; - utils.each(document.getElementsByTagName('*'),function(node){ - if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){ - contents.push(node) - } - }) - }else{ - contents = document.getElementsByTagName(selector) - } - } - utils.each(contents,function(v){ - UE.parse.load(utils.extend({root:v,selector:selector},opt)) - }) - }) - } -})(); - -UE.parse.register('insertcode',function(utils){ - var pres = this.root.getElementsByTagName('pre'); - if(pres.length){ - if(typeof XRegExp == "undefined"){ - var jsurl,cssurl; - if(this.rootPath !== undefined){ - jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js'; - cssurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css'; - }else{ - jsurl = this.highlightJsUrl; - cssurl = this.highlightCssUrl; - } - utils.loadFile(document,{ - id : "syntaxhighlighter_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "syntaxhighlighter_js", - src : jsurl, - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - }); - }else{ - utils.each(pres,function(pi){ - if(pi && /brush/i.test(pi.className)){ - SyntaxHighlighter.highlight(pi); - } - }); - } - } - -}); -UE.parse.register('table', function (utils) { - var me = this, - root = this.root, - tables = root.getElementsByTagName('table'); - if (tables.length) { - var selector = this.selector; - //追加默认的表格样式 - utils.cssRule('table', - selector + ' table.noBorderTable td,' + - selector + ' table.noBorderTable th,' + - selector + ' table.noBorderTable caption{border:1px dashed #ddd !important}' + - selector + ' table.sortEnabled tr.firstRow th,' + selector + ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' + - 'background-position: center right; background-image:url(' + this.rootPath + 'themes/default/images/sortable.png);}' + - selector + ' table.sortEnabled tr.firstRow th:hover,' + selector + ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' + - selector + ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' + - selector + ' td,' + selector + ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' + - selector + ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' + - selector + ' th{border-top:1px solid #BBB;background:#F7F7F7;}' + - selector + ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' + - selector + ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' + - selector + ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' + - selector + ' td p{margin:0;padding:0;}', - document); - //填充空的单元格 - - utils.each('td th caption'.split(' '), function (tag) { - var cells = root.getElementsByTagName(tag); - cells.length && utils.each(cells, function (node) { - if (!node.firstChild) { - node.innerHTML = ' '; - - } - }) - }); - - //表格可排序 - var tables = root.getElementsByTagName('table'); - utils.each(tables, function (table) { - if (/\bsortEnabled\b/.test(table.className)) { - utils.on(table, 'click', function(e){ - var target = e.target || e.srcElement, - cell = findParentByTagName(target, ['td', 'th']); - var table = findParentByTagName(target, 'table'), - colIndex = utils.indexOf(table.rows[0].cells, cell), - sortType = table.getAttribute('data-sort-type'); - if(colIndex != -1) { - sortTable(table, colIndex, me.tableSortCompareFn || sortType); - updateTable(table); - } - }); - } - }); - - //按照标签名查找父节点 - function findParentByTagName(target, tagNames) { - var i, current = target; - tagNames = utils.isArray(tagNames) ? tagNames:[tagNames]; - while(current){ - for(i = 0;i < tagNames.length; i++) { - if(current.tagName == tagNames[i].toUpperCase()) return current; - } - current = current.parentNode; - } - return null; - } - //表格排序 - function sortTable(table, sortByCellIndex, compareFn) { - var rows = table.rows, - trArray = [], - flag = rows[0].cells[0].tagName === "TH", - lastRowIndex = 0; - - for (var i = 0,len = rows.length; i < len; i++) { - trArray[i] = rows[i]; - } - - var Fn = { - 'reversecurrent': function(td1,td2){ - return 1; - }, - 'orderbyasc': function(td1,td2){ - var value1 = td1.innerText||td1.textContent, - value2 = td2.innerText||td2.textContent; - return value1.localeCompare(value2); - }, - 'reversebyasc': function(td1,td2){ - var value1 = td1.innerHTML, - value2 = td2.innerHTML; - return value2.localeCompare(value1); - }, - 'orderbynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value1||0) - (value2||0); - }, - 'reversebynum': function(td1,td2){ - var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/), - value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/); - if(value1) value1 = +value1[0]; - if(value2) value2 = +value2[0]; - return (value2||0) - (value1||0); - } - }; - - //对表格设置排序的标记data-sort-type - table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:''); - - //th不参与排序 - flag && trArray.splice(0, 1); - trArray = sort(trArray,function (tr1, tr2) { - var result; - if (compareFn && typeof compareFn === "function") { - result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else if (compareFn && typeof compareFn === "number") { - result = 1; - } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) { - result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } else { - result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]); - } - return result; - }); - var fragment = table.ownerDocument.createDocumentFragment(); - for (var j = 0, len = trArray.length; j < len; j++) { - fragment.appendChild(trArray[j]); - } - var tbody = table.getElementsByTagName("tbody")[0]; - if(!lastRowIndex){ - tbody.appendChild(fragment); - }else{ - tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1]) - } - } - //冒泡排序 - function sort(array, compareFn){ - compareFn = compareFn || function(item1, item2){ return item1.localeCompare(item2);}; - for(var i= 0,len = array.length; i 0){ - var t = array[i]; - array[i] = array[j]; - array[j] = t; - } - } - } - return array; - } - //更新表格 - function updateTable(table) { - //给第一行设置firstRow的样式名称,在排序图标的样式上使用到 - if(!utils.hasClass(table.rows[0], "firstRow")) { - for(var i = 1; i< table.rows.length; i++) { - utils.removeClass(table.rows[i], "firstRow"); - } - utils.addClass(table.rows[0], "firstRow"); - } - } - } -}); -UE.parse.register('charts',function( utils ){ - - utils.cssRule('chartsContainerHeight','.edui-chart-container { height:'+(this.chartContainerHeight||300)+'px}'); - var resourceRoot = this.rootPath, - containers = this.root, - sources = null; - - //不存在指定的根路径, 则直接退出 - if ( !resourceRoot ) { - return; - } - - if ( sources = parseSources() ) { - - loadResources(); - - } - - - function parseSources () { - - if ( !containers ) { - return null; - } - - return extractChartData( containers ); - - } - - /** - * 提取数据 - */ - function extractChartData ( rootNode ) { - - var data = [], - tables = rootNode.getElementsByTagName( "table" ); - - for ( var i = 0, tableNode; tableNode = tables[ i ]; i++ ) { - - if ( tableNode.getAttribute( "data-chart" ) !== null ) { - - data.push( formatData( tableNode ) ); - - } - - } - - return data.length ? data : null; - - } - - function formatData ( tableNode ) { - - var meta = tableNode.getAttribute( "data-chart" ), - metaConfig = {}, - data = []; - - //提取table数据 - for ( var i = 0, row; row = tableNode.rows[ i ]; i++ ) { - - var rowData = []; - - for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) { - - var value = ( cell.innerText || cell.textContent || '' ); - rowData.push( cell.tagName == 'TH' ? value:(value | 0) ); - - } - - data.push( rowData ); - - } - - //解析元信息 - meta = meta.split( ";" ); - for ( var i = 0, metaData; metaData = meta[ i ]; i++ ) { - - metaData = metaData.split( ":" ); - metaConfig[ metaData[ 0 ] ] = metaData[ 1 ]; - - } - - - return { - table: tableNode, - meta: metaConfig, - data: data - }; - - } - - //加载资源 - function loadResources () { - - loadJQuery(); - - } - - function loadJQuery () { - - //不存在jquery, 则加载jquery - if ( !window.jQuery ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/jquery-1.10.2.min.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadHighcharts(); - - }); - - } else { - - loadHighcharts(); - - } - - } - - function loadHighcharts () { - - //不存在Highcharts, 则加载Highcharts - if ( !window.Highcharts ) { - - utils.loadFile(document,{ - src : resourceRoot + "/third-party/highcharts/highcharts.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - loadTypeConfig(); - - }); - - } else { - - loadTypeConfig(); - - } - - } - - //加载图表差异化配置文件 - function loadTypeConfig () { - - utils.loadFile(document,{ - src : resourceRoot + "/dialogs/charts/chart.config.js", - tag : "script", - type : "text/javascript", - defer : "defer" - },function(){ - - render(); - - }); - - } - - //渲染图表 - function render () { - - var config = null, - chartConfig = null, - container = null; - - for ( var i = 0, len = sources.length; i < len; i++ ) { - - config = sources[ i ]; - - chartConfig = analysisConfig( config ); - - container = createContainer( config.table ); - - renderChart( container, typeConfig[ config.meta.chartType ], chartConfig ); - - } - - - } - - /** - * 渲染图表 - * @param container 图表容器节点对象 - * @param typeConfig 图表类型配置 - * @param config 图表通用配置 - * */ - function renderChart ( container, typeConfig, config ) { - - - $( container ).highcharts( $.extend( {}, typeConfig, { - - credits: { - enabled: false - }, - exporting: { - enabled: false - }, - title: { - text: config.title, - x: -20 //center - }, - subtitle: { - text: config.subTitle, - x: -20 - }, - xAxis: { - title: { - text: config.xTitle - }, - categories: config.categories - }, - yAxis: { - title: { - text: config.yTitle - }, - plotLines: [{ - value: 0, - width: 1, - color: '#808080' - }] - }, - tooltip: { - enabled: true, - valueSuffix: config.suffix - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle', - borderWidth: 1 - }, - series: config.series - - } )); - - } - - /** - * 创建图表的容器 - * 新创建的容器会替换掉对应的table对象 - * */ - function createContainer ( tableNode ) { - - var container = document.createElement( "div" ); - container.className = "edui-chart-container"; - - tableNode.parentNode.replaceChild( container, tableNode ); - - return container; - - } - - //根据config解析出正确的类别和图表数据信息 - function analysisConfig ( config ) { - - var series = [], - //数据类别 - categories = [], - result = [], - data = config.data, - meta = config.meta; - - //数据对齐方式为相反的方式, 需要反转数据 - if ( meta.dataFormat != "1" ) { - - for ( var i = 0, len = data.length; i < len ; i++ ) { - - for ( var j = 0, jlen = data[ i ].length; j < jlen; j++ ) { - - if ( !result[ j ] ) { - result[ j ] = []; - } - - result[ j ][ i ] = data[ i ][ j ]; - - } - - } - - data = result; - - } - - result = {}; - - //普通图表 - if ( meta.chartType != typeConfig.length - 1 ) { - - categories = data[ 0 ].slice( 1 ); - - for ( var i = 1, curData; curData = data[ i ]; i++ ) { - series.push( { - name: curData[ 0 ], - data: curData.slice( 1 ) - } ); - } - - result.series = series; - result.categories = categories; - result.title = meta.title; - result.subTitle = meta.subTitle; - result.xTitle = meta.xTitle; - result.yTitle = meta.yTitle; - result.suffix = meta.suffix; - - } else { - - var curData = []; - - for ( var i = 1, len = data[ 0 ].length; i < len; i++ ) { - - curData.push( [ data[ 0 ][ i ], data[ 1 ][ i ] | 0 ] ); - - } - - //饼图 - series[ 0 ] = { - type: 'pie', - name: meta.tip, - data: curData - }; - - result.series = series; - result.title = meta.title; - result.suffix = meta.suffix; - - } - - return result; - - } - -}); -UE.parse.register('background', function (utils) { - var me = this, - root = me.root, - p = root.getElementsByTagName('p'), - styles; - - for (var i = 0,ci; ci = p[i++];) { - styles = ci.getAttribute('data-background'); - if (styles){ - ci.parentNode.removeChild(ci); - } - } - - //追加默认的表格样式 - styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document); -}); -UE.parse.register('list',function(utils){ - var customCss = [], - customStyle = { - 'cn' : 'cn-1-', - 'cn1' : 'cn-2-', - 'cn2' : 'cn-3-', - 'num' : 'num-1-', - 'num1' : 'num-2-', - 'num2' : 'num-3-', - 'dash' : 'dash', - 'dot' : 'dot' - }; - - - utils.extend(this,{ - liiconpath : 'http://bs.baidu.com/listicon/', - listDefaultPaddingLeft : '20' - }); - - var root = this.root, - ols = root.getElementsByTagName('ol'), - uls = root.getElementsByTagName('ul'), - selector = this.selector; - - if(ols.length){ - applyStyle.call(this,ols); - } - - if(uls.length){ - applyStyle.call(this,uls); - } - - if(ols.length || uls.length){ - customCss.push(selector +' .list-paddingleft-1{padding-left:0}'); - customCss.push(selector +' .list-paddingleft-2{padding-left:'+ this.listDefaultPaddingLeft+'px}'); - customCss.push(selector +' .list-paddingleft-3{padding-left:'+ this.listDefaultPaddingLeft*2+'px}'); - - utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}li{clear:both;}'+customCss.join('\n'), document); - } - function applyStyle(nodes){ - var T = this; - utils.each(nodes,function(list){ - if(list.className && /custom_/i.test(list.className)){ - var listStyle = list.className.match(/custom_(\w+)/)[1]; - if(listStyle == 'dash' || listStyle == 'dot'){ - utils.pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + T.liiconpath +customStyle[listStyle]+'.gif)}'); - utils.pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - - }else{ - var index = 1; - utils.each(list.childNodes,function(li){ - if(li.tagName == 'LI'){ - utils.pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + T.liiconpath + 'list-'+customStyle[listStyle] +index + '.gif)}'); - index++; - } - }); - utils.pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}'); - } - switch(listStyle){ - case 'cn': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}'); - break; - case 'cn2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}'); - break; - case 'num': - case 'num1': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}'); - break; - case 'num2': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}'); - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}'); - break; - case 'dash': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}'); - break; - case 'dot': - utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}'); - } - } - }); - } - - -}); -UE.parse.register('vedio',function(utils){ - var video = this.root.getElementsByTagName('video'), - audio = this.root.getElementsByTagName('audio'); - - document.createElement('video');document.createElement('audio'); - if(video.length || audio.length){ - var sourcePath = utils.removeLastbs(this.rootPath), - jsurl = sourcePath + '/third-party/video-js/video.js', - cssurl = sourcePath + '/third-party/video-js/video-js.min.css', - swfUrl = sourcePath + '/third-party/video-js/video-js.swf'; - - if(window.videojs) { - videojs.autoSetup(); - } else { - utils.loadFile(document,{ - id : "video_css", - tag : "link", - rel : "stylesheet", - type : "text/css", - href : cssurl - }); - utils.loadFile(document,{ - id : "video_js", - src : jsurl, - tag : "script", - type : "text/javascript" - },function(){ - videojs.options.flash.swf = swfUrl; - videojs.autoSetup(); - }); - } - - } -}); - -})(); diff --git a/yshop-drink-vue/public/UEditor22/ueditor.parse.min.js b/yshop-drink-vue/public/UEditor22/ueditor.parse.min.js deleted file mode 100644 index d996fd0..0000000 --- a/yshop-drink-vue/public/UEditor22/ueditor.parse.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * UEditor - * version: ueditor - * build: Wed Dec 26 2018 17:25:07 GMT+0800 (CST) - */ - -!function(){!function(){UE=window.UE||{};var a=!!window.ActiveXObject,b={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,b){for(var c=arguments,d=!!this.isBoolean(c[c.length-1])&&c[c.length-1],e=this.isBoolean(c[c.length-1])?c.length-1:c.length,f=1;f=c&&a===b)return d=e,!1}),d},hasClass:function(a,b){b=b.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},addClass:function(a,c){if(a){c=this.trim(c).replace(/[ ]{2,}/g," ").split(" ");for(var d,e=0,f=a.className;d=c[e++];)new RegExp("\\b"+d+"\\b").test(f)||(f+=" "+d);a.className=b.trim(f)}},removeClass:function(a,b){b=this.isArray(b)?b:this.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," "),a.className=e,!e&&a.removeAttribute("className")},on:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.addEventListener)a.addEventListener(c,d,!1);else{d._d||(d._d={els:[]});var g=c+d.toString(),h=b.indexOf(d._d.els,a);d._d[g]&&h!=-1||(h==-1&&d._d.els.push(a),d._d[g]||(d._d[g]=function(a){return d.call(a.srcElement,a||window.event)}),a.attachEvent("on"+c,d._d[g]))}a=null},off:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.removeEventListener)a.removeEventListener(c,d,!1);else{var g=c+d.toString();try{a.detachEvent("on"+c,d._d?d._d[g]:d)}catch(h){}if(d._d&&d._d[g]){var i=b.indexOf(d._d.els,a);i!=-1&&d._d.els.splice(i,1),0==d._d.els.length&&delete d._d[g]}}},loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url")},c.getElementsByTagName("head")[0].appendChild(i)}}}()};b.each(["String","Function","Array","Number","RegExp","Object","Boolean"],function(a){b["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var c={};UE.parse={register:function(a,b){c[a]=b},load:function(a){b.each(c,function(c){c.call(a,b)})}},uParse=function(a,c){b.domReady(function(){var d;if(document.querySelectorAll)d=document.querySelectorAll(a);else if(/^#/.test(a))d=[document.getElementById(a.replace(/^#/,""))];else if(/^\./.test(a)){var d=[];b.each(document.getElementsByTagName("*"),function(b){b.className&&new RegExp("\\b"+a.replace(/^\./,"")+"\\b","i").test(b.className)&&d.push(b)})}else d=document.getElementsByTagName(a);b.each(d,function(d){UE.parse.load(b.extend({root:d,selector:a},c))})})}}(),UE.parse.register("insertcode",function(a){var b=this.root.getElementsByTagName("pre");if(b.length)if("undefined"==typeof XRegExp){var c,d;void 0!==this.rootPath?(c=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCore.js",d=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCoreDefault.css"):(c=this.highlightJsUrl,d=this.highlightCssUrl),a.loadFile(document,{id:"syntaxhighlighter_css",tag:"link",rel:"stylesheet",type:"text/css",href:d}),a.loadFile(document,{id:"syntaxhighlighter_js",src:c,tag:"script",type:"text/javascript",defer:"defer"},function(){a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})})}else a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})}),UE.parse.register("table",function(a){function b(b,c){var d,e=b;for(c=a.isArray(c)?c:[c];e;){for(d=0;d0){var g=a[c];a[c]=a[e],a[e]=g}return a}function e(b){if(!a.hasClass(b.rows[0],"firstRow")){for(var c=1;c -import { isDark } from '@/utils/is' -import { useAppStore } from '@/store/modules/app' -import { useDesign } from '@/hooks/web/useDesign' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' - -const { getPrefixCls } = useDesign() -const prefixCls = getPrefixCls('app') -const appStore = useAppStore() -const currentSize = computed(() => appStore.getCurrentSize) -const greyMode = computed(() => appStore.getGreyMode) -const { wsCache } = useCache() - -// 根据浏览器当前主题设置系统主题色 -const setDefaultTheme = () => { - let isDarkTheme = wsCache.get(CACHE_KEY.IS_DARK) - if (isDarkTheme === null) { - isDarkTheme = isDark() - } - appStore.setIsDark(isDarkTheme) -} -setDefaultTheme() - - - diff --git a/yshop-drink-vue/src/api/express/index.ts b/yshop-drink-vue/src/api/express/index.ts deleted file mode 100644 index a07e035..0000000 --- a/yshop-drink-vue/src/api/express/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/config/axios' - -export interface ExpressVO { - id: number - code: string - name: string - sort: number -} -// 查询快递公司列表 -export const getExpressList = async () => { - return await request.get({ url: `/order/express/list` }) -} - -// 查询快递公司列表 -export const getExpressPage = async (params: ExpressPageReqVO) => { - return await request.get({ url: `/order/express/page`, params }) -} - -// 查询快递公司详情 -export const getExpress = async (id: number) => { - return await request.get({ url: `/order/express/get?id=` + id }) -} - -// 查询快递鸟公司配置详情 -export const getExpressSet = async () => { - return await request.get({ url: `/order/express/set` }) -} - -export const postExpressSet = async (data) => { - return await request.post({ url: `/order/express/set`,data }) -} - - - -// 新增快递公司 -export const createExpress = async (data: ExpressVO) => { - return await request.post({ url: `/order/express/create`, data }) -} - -// 修改快递公司 -export const updateExpress = async (data: ExpressVO) => { - return await request.put({ url: `/order/express/update`, data }) -} - -// 删除快递公司 -export const deleteExpress = async (id: number) => { - return await request.delete({ url: `/order/express/delete?id=` + id }) -} - -// 导出快递公司 Excel -export const exportExpress = async (params) => { - return await request.download({ url: `/order/express/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/infra/apiAccessLog/index.ts b/yshop-drink-vue/src/api/infra/apiAccessLog/index.ts deleted file mode 100644 index c6b4b45..0000000 --- a/yshop-drink-vue/src/api/infra/apiAccessLog/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import request from '@/config/axios' - -export interface ApiAccessLogVO { - id: number - traceId: string - userId: number - userType: number - applicationName: string - requestMethod: string - requestParams: string - requestUrl: string - userIp: string - userAgent: string - beginTime: Date - endTIme: Date - duration: number - resultCode: number - resultMsg: string - createTime: Date -} - -// 查询列表API 访问日志 -export const getApiAccessLogPage = (params: PageParam) => { - return request.get({ url: '/infra/api-access-log/page', params }) -} - -// 导出API 访问日志 -export const exportApiAccessLog = (params) => { - return request.download({ url: '/infra/api-access-log/export-excel', params }) -} diff --git a/yshop-drink-vue/src/api/infra/apiErrorLog/index.ts b/yshop-drink-vue/src/api/infra/apiErrorLog/index.ts deleted file mode 100644 index 59ee214..0000000 --- a/yshop-drink-vue/src/api/infra/apiErrorLog/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import request from '@/config/axios' - -export interface ApiErrorLogVO { - id: number - traceId: string - userId: number - userType: number - applicationName: string - requestMethod: string - requestParams: string - requestUrl: string - userIp: string - userAgent: string - exceptionTime: Date - exceptionName: string - exceptionMessage: string - exceptionRootCauseMessage: string - exceptionStackTrace: string - exceptionClassName: string - exceptionFileName: string - exceptionMethodName: string - exceptionLineNumber: number - processUserId: number - processStatus: number - processTime: Date - resultCode: number - createTime: Date -} - -// 查询列表API 访问日志 -export const getApiErrorLogPage = (params: PageParam) => { - return request.get({ url: '/infra/api-error-log/page', params }) -} - -// 更新 API 错误日志的处理状态 -export const updateApiErrorLogPage = (id: number, processStatus: number) => { - return request.put({ - url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus - }) -} - -// 导出API 访问日志 -export const exportApiErrorLog = (params) => { - return request.download({ - url: '/infra/api-error-log/export-excel', - params - }) -} diff --git a/yshop-drink-vue/src/api/infra/codegen/index.ts b/yshop-drink-vue/src/api/infra/codegen/index.ts deleted file mode 100644 index 64701ef..0000000 --- a/yshop-drink-vue/src/api/infra/codegen/index.ts +++ /dev/null @@ -1,123 +0,0 @@ -import request from '@/config/axios' - -export type CodegenTableVO = { - id: number - tableId: number - isParentMenuIdValid: boolean - dataSourceConfigId: number - scene: number - tableName: string - tableComment: string - remark: string - moduleName: string - businessName: string - className: string - classComment: string - author: string - createTime: Date - updateTime: Date - templateType: number - parentMenuId: number -} - -export type CodegenColumnVO = { - id: number - tableId: number - columnName: string - dataType: string - columnComment: string - nullable: number - primaryKey: number - autoIncrement: string - ordinalPosition: number - javaType: string - javaField: string - dictType: string - example: string - createOperation: number - updateOperation: number - listOperation: number - listOperationCondition: string - listOperationResult: number - htmlType: string -} - -export type DatabaseTableVO = { - name: string - comment: string -} - -export type CodegenDetailVO = { - table: CodegenTableVO - columns: CodegenColumnVO[] -} - -export type CodegenPreviewVO = { - filePath: string - code: string -} - -export type CodegenUpdateReqVO = { - table: CodegenTableVO | any - columns: CodegenColumnVO[] -} - -export type CodegenCreateListReqVO = { - dataSourceConfigId: number - tableNames: string[] -} - -// 查询列表代码生成表定义 -export const getCodegenTablePage = (params: PageParam) => { - return request.get({ url: '/infra/codegen/table/page', params }) -} - -// 查询详情代码生成表定义 -export const getCodegenTable = (id: number) => { - return request.get({ url: '/infra/codegen/detail?tableId=' + id }) -} - -// 新增代码生成表定义 -export const createCodegenTable = (data: CodegenCreateListReqVO) => { - return request.post({ url: '/infra/codegen/create', data }) -} - -// 修改代码生成表定义 -export const updateCodegenTable = (data: CodegenUpdateReqVO) => { - return request.put({ url: '/infra/codegen/update', data }) -} - -// 基于数据库的表结构,同步数据库的表和字段定义 -export const syncCodegenFromDB = (id: number) => { - return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id }) -} - -// 基于 SQL 建表语句,同步数据库的表和字段定义 -export const syncCodegenFromSQL = (id: number, sql: string) => { - return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql }) -} - -// 预览生成代码 -export const previewCodegen = (id: number) => { - return request.get({ url: '/infra/codegen/preview?tableId=' + id }) -} - -// 下载生成代码 -export const downloadCodegen = (id: number) => { - return request.download({ url: '/infra/codegen/download?tableId=' + id }) -} - -// 获得表定义 -export const getSchemaTableList = (params) => { - return request.get({ url: '/infra/codegen/db/table/list', params }) -} - -// 基于数据库的表结构,创建代码生成器的表定义 -export const createCodegenList = (data) => { - return request.post({ url: '/infra/codegen/create-list', data }) -} - -// 删除代码生成表定义 -export const deleteCodegenTable = (id: number) => { - return request.delete({ url: '/infra/codegen/delete?tableId=' + id }) -} diff --git a/yshop-drink-vue/src/api/infra/config/index.ts b/yshop-drink-vue/src/api/infra/config/index.ts deleted file mode 100644 index 5ef59f3..0000000 --- a/yshop-drink-vue/src/api/infra/config/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import request from '@/config/axios' - -export interface ConfigVO { - id: number | undefined - category: string - name: string - key: string - value: string - type: number - visible: boolean - remark: string - createTime: Date -} - -// 查询参数列表 -export const getConfigPage = (params: PageParam) => { - return request.get({ url: '/infra/config/page', params }) -} - -// 查询参数详情 -export const getConfig = (id: number) => { - return request.get({ url: '/infra/config/get?id=' + id }) -} - -// 根据参数键名查询参数值 -export const getConfigKey = (configKey: string) => { - return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey }) -} - -// 新增参数 -export const createConfig = (data: ConfigVO) => { - return request.post({ url: '/infra/config/create', data }) -} - -// 修改参数 -export const updateConfig = (data: ConfigVO) => { - return request.put({ url: '/infra/config/update', data }) -} - -// 删除参数 -export const deleteConfig = (id: number) => { - return request.delete({ url: '/infra/config/delete?id=' + id }) -} - -// 导出参数 -export const exportConfig = (params) => { - return request.download({ url: '/infra/config/export', params }) -} diff --git a/yshop-drink-vue/src/api/infra/dataSourceConfig/index.ts b/yshop-drink-vue/src/api/infra/dataSourceConfig/index.ts deleted file mode 100644 index b413f34..0000000 --- a/yshop-drink-vue/src/api/infra/dataSourceConfig/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import request from '@/config/axios' - -export interface DataSourceConfigVO { - id: number | undefined - name: string - url: string - username: string - password: string - createTime?: Date -} - -// 新增数据源配置 -export const createDataSourceConfig = (data: DataSourceConfigVO) => { - return request.post({ url: '/infra/data-source-config/create', data }) -} - -// 修改数据源配置 -export const updateDataSourceConfig = (data: DataSourceConfigVO) => { - return request.put({ url: '/infra/data-source-config/update', data }) -} - -// 删除数据源配置 -export const deleteDataSourceConfig = (id: number) => { - return request.delete({ url: '/infra/data-source-config/delete?id=' + id }) -} - -// 查询数据源配置详情 -export const getDataSourceConfig = (id: number) => { - return request.get({ url: '/infra/data-source-config/get?id=' + id }) -} - -// 查询数据源配置列表 -export const getDataSourceConfigList = () => { - return request.get({ url: '/infra/data-source-config/list' }) -} diff --git a/yshop-drink-vue/src/api/infra/dbDoc/index.ts b/yshop-drink-vue/src/api/infra/dbDoc/index.ts deleted file mode 100644 index 1a1a36b..0000000 --- a/yshop-drink-vue/src/api/infra/dbDoc/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import request from '@/config/axios' - -// 导出Html -export const exportHtml = () => { - return request.download({ url: '/infra/db-doc/export-html' }) -} - -// 导出Word -export const exportWord = () => { - return request.download({ url: '/infra/db-doc/export-word' }) -} - -// 导出Markdown -export const exportMarkdown = () => { - return request.download({ url: '/infra/db-doc/export-markdown' }) -} diff --git a/yshop-drink-vue/src/api/infra/file/index.ts b/yshop-drink-vue/src/api/infra/file/index.ts deleted file mode 100644 index f64bc0d..0000000 --- a/yshop-drink-vue/src/api/infra/file/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import request from '@/config/axios' - -export interface FilePageReqVO extends PageParam { - path?: string - type?: string - createTime?: Date[] -} - -// 查询文件列表 -export const getFilePage = (params: FilePageReqVO) => { - return request.get({ url: '/infra/file/page', params }) -} - -// 删除文件 -export const deleteFile = (id: number) => { - return request.delete({ url: '/infra/file/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/infra/fileConfig/index.ts b/yshop-drink-vue/src/api/infra/fileConfig/index.ts deleted file mode 100644 index b72f18b..0000000 --- a/yshop-drink-vue/src/api/infra/fileConfig/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import request from '@/config/axios' - -export interface FileClientConfig { - basePath: string - host?: string - port?: number - username?: string - password?: string - mode?: string - endpoint?: string - bucket?: string - accessKey?: string - accessSecret?: string - domain: string -} - -export interface FileConfigVO { - id: number - name: string - storage: any - master: boolean - visible: boolean - config: FileClientConfig - remark: string - createTime: Date -} - -// 查询文件配置列表 -export const getFileConfigPage = (params: PageParam) => { - return request.get({ url: '/infra/file-config/page', params }) -} - -// 查询文件配置详情 -export const getFileConfig = (id: number) => { - return request.get({ url: '/infra/file-config/get?id=' + id }) -} - -// 更新文件配置为主配置 -export const updateFileConfigMaster = (id: number) => { - return request.put({ url: '/infra/file-config/update-master?id=' + id }) -} - -// 新增文件配置 -export const createFileConfig = (data: FileConfigVO) => { - return request.post({ url: '/infra/file-config/create', data }) -} - -// 修改文件配置 -export const updateFileConfig = (data: FileConfigVO) => { - return request.put({ url: '/infra/file-config/update', data }) -} - -// 删除文件配置 -export const deleteFileConfig = (id: number) => { - return request.delete({ url: '/infra/file-config/delete?id=' + id }) -} - -// 测试文件配置 -export const testFileConfig = (id: number) => { - return request.get({ url: '/infra/file-config/test?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/infra/job/index.ts b/yshop-drink-vue/src/api/infra/job/index.ts deleted file mode 100644 index 033b2cb..0000000 --- a/yshop-drink-vue/src/api/infra/job/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import request from '@/config/axios' - -export interface JobVO { - id: number - name: string - status: number - handlerName: string - handlerParam: string - cronExpression: string - retryCount: number - retryInterval: number - monitorTimeout: number - createTime: Date -} - -// 任务列表 -export const getJobPage = (params: PageParam) => { - return request.get({ url: '/infra/job/page', params }) -} - -// 任务详情 -export const getJob = (id: number) => { - return request.get({ url: '/infra/job/get?id=' + id }) -} - -// 新增任务 -export const createJob = (data: JobVO) => { - return request.post({ url: '/infra/job/create', data }) -} - -// 修改定时任务调度 -export const updateJob = (data: JobVO) => { - return request.put({ url: '/infra/job/update', data }) -} - -// 删除定时任务调度 -export const deleteJob = (id: number) => { - return request.delete({ url: '/infra/job/delete?id=' + id }) -} - -// 导出定时任务调度 -export const exportJob = (params) => { - return request.download({ url: '/infra/job/export-excel', params }) -} - -// 任务状态修改 -export const updateJobStatus = (id: number, status: number) => { - const params = { - id, - status - } - return request.put({ url: '/infra/job/update-status', params }) -} - -// 定时任务立即执行一次 -export const runJob = (id: number) => { - return request.put({ url: '/infra/job/trigger?id=' + id }) -} - -// 获得定时任务的下 n 次执行时间 -export const getJobNextTimes = (id: number) => { - return request.get({ url: '/infra/job/get_next_times?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/infra/jobLog/index.ts b/yshop-drink-vue/src/api/infra/jobLog/index.ts deleted file mode 100644 index f429cd9..0000000 --- a/yshop-drink-vue/src/api/infra/jobLog/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import request from '@/config/axios' - -export interface JobLogVO { - id: number - jobId: number - handlerName: string - handlerParam: string - cronExpression: string - executeIndex: string - beginTime: string - endTime: string - duration: string - status: number - createTime: string -} - -// 任务日志列表 -export const getJobLogPage = (params: PageParam) => { - return request.get({ url: '/infra/job-log/page', params }) -} - -// 任务日志详情 -export const getJobLog = (id: number) => { - return request.get({ url: '/infra/job-log/get?id=' + id }) -} - -// 导出定时任务日志 -export const exportJobLog = (params) => { - return request.download({ - url: '/infra/job-log/export-excel', - params - }) -} diff --git a/yshop-drink-vue/src/api/infra/redis/index.ts b/yshop-drink-vue/src/api/infra/redis/index.ts deleted file mode 100644 index f27be77..0000000 --- a/yshop-drink-vue/src/api/infra/redis/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import request from '@/config/axios' - -/** - * 获取redis 监控信息 - */ -export const getCache = () => { - return request.get({ url: '/infra/redis/get-monitor-info' }) -} diff --git a/yshop-drink-vue/src/api/infra/redis/types.ts b/yshop-drink-vue/src/api/infra/redis/types.ts deleted file mode 100644 index 548bfe9..0000000 --- a/yshop-drink-vue/src/api/infra/redis/types.ts +++ /dev/null @@ -1,176 +0,0 @@ -export interface RedisMonitorInfoVO { - info: RedisInfoVO - dbSize: number - commandStats: RedisCommandStatsVO[] -} - -export interface RedisInfoVO { - io_threaded_reads_processed: string - tracking_clients: string - uptime_in_seconds: string - cluster_connections: string - current_cow_size: string - maxmemory_human: string - aof_last_cow_size: string - master_replid2: string - mem_replication_backlog: string - aof_rewrite_scheduled: string - total_net_input_bytes: string - rss_overhead_ratio: string - hz: string - current_cow_size_age: string - redis_build_id: string - errorstat_BUSYGROUP: string - aof_last_bgrewrite_status: string - multiplexing_api: string - client_recent_max_output_buffer: string - allocator_resident: string - mem_fragmentation_bytes: string - aof_current_size: string - repl_backlog_first_byte_offset: string - tracking_total_prefixes: string - redis_mode: string - redis_git_dirty: string - aof_delayed_fsync: string - allocator_rss_bytes: string - repl_backlog_histlen: string - io_threads_active: string - rss_overhead_bytes: string - total_system_memory: string - loading: string - evicted_keys: string - maxclients: string - cluster_enabled: string - redis_version: string - repl_backlog_active: string - mem_aof_buffer: string - allocator_frag_bytes: string - io_threaded_writes_processed: string - instantaneous_ops_per_sec: string - used_memory_human: string - total_error_replies: string - role: string - maxmemory: string - used_memory_lua: string - rdb_current_bgsave_time_sec: string - used_memory_startup: string - used_cpu_sys_main_thread: string - lazyfree_pending_objects: string - aof_pending_bio_fsync: string - used_memory_dataset_perc: string - allocator_frag_ratio: string - arch_bits: string - used_cpu_user_main_thread: string - mem_clients_normal: string - expired_time_cap_reached_count: string - unexpected_error_replies: string - mem_fragmentation_ratio: string - aof_last_rewrite_time_sec: string - master_replid: string - aof_rewrite_in_progress: string - lru_clock: string - maxmemory_policy: string - run_id: string - latest_fork_usec: string - tracking_total_items: string - total_commands_processed: string - expired_keys: string - errorstat_ERR: string - used_memory: string - module_fork_in_progress: string - errorstat_WRONGPASS: string - aof_buffer_length: string - dump_payload_sanitizations: string - mem_clients_slaves: string - keyspace_misses: string - server_time_usec: string - executable: string - lazyfreed_objects: string - db0: string - used_memory_peak_human: string - keyspace_hits: string - rdb_last_cow_size: string - aof_pending_rewrite: string - used_memory_overhead: string - active_defrag_hits: string - tcp_port: string - uptime_in_days: string - used_memory_peak_perc: string - current_save_keys_processed: string - blocked_clients: string - total_reads_processed: string - expire_cycle_cpu_milliseconds: string - sync_partial_err: string - used_memory_scripts_human: string - aof_current_rewrite_time_sec: string - aof_enabled: string - process_supervised: string - master_repl_offset: string - used_memory_dataset: string - used_cpu_user: string - rdb_last_bgsave_status: string - tracking_total_keys: string - atomicvar_api: string - allocator_rss_ratio: string - client_recent_max_input_buffer: string - clients_in_timeout_table: string - aof_last_write_status: string - mem_allocator: string - used_memory_scripts: string - used_memory_peak: string - process_id: string - master_failover_state: string - errorstat_NOAUTH: string - used_cpu_sys: string - repl_backlog_size: string - connected_slaves: string - current_save_keys_total: string - gcc_version: string - total_system_memory_human: string - sync_full: string - connected_clients: string - module_fork_last_cow_size: string - total_writes_processed: string - allocator_active: string - total_net_output_bytes: string - pubsub_channels: string - current_fork_perc: string - active_defrag_key_hits: string - rdb_changes_since_last_save: string - instantaneous_input_kbps: string - used_memory_rss_human: string - configured_hz: string - expired_stale_perc: string - active_defrag_misses: string - used_cpu_sys_children: string - number_of_cached_scripts: string - sync_partial_ok: string - used_memory_lua_human: string - rdb_last_save_time: string - pubsub_patterns: string - slave_expires_tracked_keys: string - redis_git_sha1: string - used_memory_rss: string - rdb_last_bgsave_time_sec: string - os: string - mem_not_counted_for_evict: string - active_defrag_running: string - rejected_connections: string - aof_rewrite_buffer_length: string - total_forks: string - active_defrag_key_misses: string - allocator_allocated: string - aof_base_size: string - instantaneous_output_kbps: string - second_repl_offset: string - rdb_bgsave_in_progress: string - used_cpu_user_children: string - total_connections_received: string - migrate_cached_sockets: string -} - -export interface RedisCommandStatsVO { - command: string - calls: number - usec: number -} diff --git a/yshop-drink-vue/src/api/login/index.ts b/yshop-drink-vue/src/api/login/index.ts deleted file mode 100644 index 536f6a6..0000000 --- a/yshop-drink-vue/src/api/login/index.ts +++ /dev/null @@ -1,69 +0,0 @@ -import request from '@/config/axios' -import { getRefreshToken } from '@/utils/auth' -import type { UserLoginVO } from './types' - -export interface SmsCodeVO { - mobile: string - scene: number -} - -export interface SmsLoginVO { - mobile: string - code: string -} - -// 登录 -export const login = (data: UserLoginVO) => { - return request.post({ url: '/system/auth/login', data }) -} - -// 刷新访问令牌 -export const refreshToken = () => { - return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() }) -} - -// 使用租户名,获得租户编号 -export const getTenantIdByName = (name: string) => { - return request.get({ url: '/system/tenant/get-id-by-name?name=' + name }) -} - -// 登出 -export const loginOut = () => { - return request.post({ url: '/system/auth/logout' }) -} - -// 获取用户权限信息 -export const getInfo = () => { - return request.get({ url: '/system/auth/get-permission-info' }) -} - -// 路由 -export const getAsyncRoutes = () => { - return request.get({ url: '/system/auth/list-menus' }) -} - -//获取登录验证码 -export const sendSmsCode = (data: SmsCodeVO) => { - return request.post({ url: '/system/auth/send-sms-code', data }) -} - -// 短信验证码登录 -export const smsLogin = (data: SmsLoginVO) => { - return request.post({ url: '/system/auth/sms-login', data }) -} - -// 社交授权的跳转 -export const socialAuthRedirect = (type: number, redirectUri: string) => { - return request.get({ - url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri - }) -} -// 获取验证图片以及 token -export const getCode = (data) => { - return request.postOriginal({ url: 'system/captcha/get', data }) -} - -// 滑动或者点选验证 -export const reqCheck = (data) => { - return request.postOriginal({ url: 'system/captcha/check', data }) -} diff --git a/yshop-drink-vue/src/api/login/oauth2/index.ts b/yshop-drink-vue/src/api/login/oauth2/index.ts deleted file mode 100644 index aef1820..0000000 --- a/yshop-drink-vue/src/api/login/oauth2/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import request from '@/config/axios' - -// 获得授权信息 -export const getAuthorize = (clientId: string) => { - return request.get({ url: '/system/oauth2/authorize?clientId=' + clientId }) -} - -// 发起授权 -export const authorize = ( - responseType: string, - clientId: string, - redirectUri: string, - state: string, - autoApprove: boolean, - checkedScopes: string[], - uncheckedScopes: string[] -) => { - // 构建 scopes - const scopes = {} - for (const scope of checkedScopes) { - scopes[scope] = true - } - for (const scope of uncheckedScopes) { - scopes[scope] = false - } - // 发起请求 - return request.post({ - url: '/system/oauth2/authorize', - headers: { - 'Content-type': 'application/x-www-form-urlencoded' - }, - params: { - response_type: responseType, - client_id: clientId, - redirect_uri: redirectUri, - state: state, - auto_approve: autoApprove, - scope: JSON.stringify(scopes) - } - }) -} diff --git a/yshop-drink-vue/src/api/login/types.ts b/yshop-drink-vue/src/api/login/types.ts deleted file mode 100644 index b2173f7..0000000 --- a/yshop-drink-vue/src/api/login/types.ts +++ /dev/null @@ -1,28 +0,0 @@ -export type UserLoginVO = { - username: string - password: string - captchaVerification: string -} - -export type TokenType = { - id: number // 编号 - accessToken: string // 访问令牌 - refreshToken: string // 刷新令牌 - userId: number // 用户编号 - userType: number //用户类型 - clientId: string //客户端编号 - expiresTime: number //过期时间 -} - -export type UserVO = { - id: number - username: string - nickname: string - deptId: number - email: string - mobile: string - sex: number - avatar: string - loginIp: string - loginDate: string -} diff --git a/yshop-drink-vue/src/api/mall/coupon/index.ts b/yshop-drink-vue/src/api/mall/coupon/index.ts deleted file mode 100644 index ec71129..0000000 --- a/yshop-drink-vue/src/api/mall/coupon/index.ts +++ /dev/null @@ -1,52 +0,0 @@ -import request from '@/config/axios' - -export interface VO { - id: number - shopId: string - shopName: string - title: string - switch: boolean - least: number - value: number - startTime: Date - endtIme: Date - weigh: number - type: boolean - exchangeCode: string - receive: number - distribute: number - score: number - instructions: string - image: string - limit: number -} - -// 查询优惠券列表 -export const getCouponPage = async (params: PageReqVO) => { - return await request.get({ url: `/coupon/page`, params }) -} - -// 查询优惠券详情 -export const getCoupon = async (id: number) => { - return await request.get({ url: `/coupon/get?id=` + id }) -} - -// 新增优惠券 -export const createCoupon = async (data: VO) => { - return await request.post({ url: `/coupon/create`, data }) -} - -// 修改优惠券 -export const updateCoupon = async (data: VO) => { - return await request.put({ url: `/coupon/update`, data }) -} - -// 删除优惠券 -export const deleteCoupon = async (id: number) => { - return await request.delete({ url: `/coupon/delete?id=` + id }) -} - -// 导出优惠券 Excel -export const exportCoupon = async (params) => { - return await request.download({ url: `/coupon/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/coupon/user/index.ts b/yshop-drink-vue/src/api/mall/coupon/user/index.ts deleted file mode 100644 index dabe98f..0000000 --- a/yshop-drink-vue/src/api/mall/coupon/user/index.ts +++ /dev/null @@ -1,54 +0,0 @@ -import request from '@/config/axios' - -export interface UserVO { - id: number - shopId: string - shopName: string - title: string - least: number - value: number - starttime: number - endtime: number - createtime: number - updatetime: number - type: boolean - score: number - instructions: string - image: string - userId: number - status: boolean - couponId: number - exchangeCode: string -} -export const getUserList = async (id) => { - return await request.get({ url: `/coupon/user/list?couponId=`+id }) -} -// 查询用户领的优惠券列表 -export const getUserPage = async (params: UserPageReqVO) => { - return await request.get({ url: `/coupon/user/page`, params }) -} - -// 查询用户领的优惠券详情 -export const getUser = async (id: number) => { - return await request.get({ url: `/coupon/user/get?id=` + id }) -} - -// 新增用户领的优惠券 -export const createUser = async (data: UserVO) => { - return await request.post({ url: `/coupon/user/create`, data }) -} - -// 修改用户领的优惠券 -export const updateUser = async (data: UserVO) => { - return await request.put({ url: `/coupon/user/update`, data }) -} - -// 删除用户领的优惠券 -export const deleteUser = async (id: number) => { - return await request.delete({ url: `/coupon/user/delete?id=` + id }) -} - -// 导出用户领的优惠券 Excel -export const exportUser = async (params) => { - return await request.download({ url: `/coupon/user/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/order/storeOrder/index.ts b/yshop-drink-vue/src/api/mall/order/storeOrder/index.ts deleted file mode 100644 index 0bd28e5..0000000 --- a/yshop-drink-vue/src/api/mall/order/storeOrder/index.ts +++ /dev/null @@ -1,116 +0,0 @@ -import request from '@/config/axios' - -export interface StoreOrderVO { - id: number - orderId: string - extendOrderId: string - uid: number - realName: string - userPhone: string - userAddress: string - cartId: string - freightPrice: number - totalNum: number - totalPrice: number - totalPostage: number - payPrice: number - payPostage: number - deductionPrice: number - couponId: number - couponPrice: number - paid: byte - payTime: Date - payType: string - status: boolean - refundStatus: byte - refundReasonWapImg: string - refundReasonWapExplain: string - refundReasonTime: Date - refundReasonWap: string - refundReason: string - refundPrice: number - deliverySn: string - deliveryName: string - deliveryType: string - deliveryId: string - gainIntegral: number - useIntegral: number - payIntegral: number - backIntegral: number - mark: string - unique: string - remark: string - merId: number - combinationId: number - pinkId: number - cost: number - seckillId: number - bargainId: number - verifyCode: string - storeId: number - shippingType: boolean - isChannel: byte - isSystemDel: boolean -} - -// 查询订单列表 -export const getStoreOrderPage = async (params: StoreOrderPageReqVO) => { - return await request.get({ url: `/order/store-order/page`, params }) -} - -// 查询订单详情 -export const getStoreOrder = async (id: number) => { - return await request.get({ url: `/order/store-order/get?id=` + id }) -} - -// 新增订单 -export const createStoreOrder = async (data: StoreOrderVO) => { - return await request.post({ url: `/order/store-order/create`, data }) -} - -// 修改订单 -export const updateStoreOrder = async (data: StoreOrderVO) => { - return await request.put({ url: `/order/store-order/update`, data }) -} - -// 删除订单 -export const deleteStoreOrder = async (id: number) => { - return await request.delete({ url: `/order/store-order/delete?id=` + id }) -} - -export const payStoreOrder = async (id: number) => { - return await request.get({ url: `/order/store-order/pay?id=` + id }) -} - -export const takeStoreOrder = async (id: number) => { - return await request.get({ url: `/order/store-order/take?id=` + id }) -} - -export const rufundStoreOrder = async (data) => { - return await request.post({ url: `/order/store-order/refund`,data }) -} - - -export const getStoreOrderRecordList = async (id: number) => { - return await request.get({ url: `/order/store-order/record-list?id=` + id }) -} - - - -// 导出订单 Excel -export const exportStoreOrder = async (params) => { - return await request.download({ url: `/order/store-order/export-excel`, params }) -} - -export const getLogistic = async (param1,param2) => { - return await request.get({ url: `/order/express/getLogistic?shipperCode=` + param1 + `&logisticCode=` + param2}) -} - -export const getOrderHtml = async (param1,param2) => { - return await request.get({ url: `/order/store-order/printOrder?id=` + param1 + `&electId=` + param2}) -} - -export const getShopCount = async () => { - return await request.get({ url: `/order/store-order/count`}) -} - diff --git a/yshop-drink-vue/src/api/mall/product/brand.ts b/yshop-drink-vue/src/api/mall/product/brand.ts deleted file mode 100644 index dc8acc2..0000000 --- a/yshop-drink-vue/src/api/mall/product/brand.ts +++ /dev/null @@ -1,56 +0,0 @@ -import request from '@/config/axios' - -/** - * 商品品牌 - */ -export interface BrandVO { - /** - * 品牌编号 - */ - id?: number - /** - * 品牌名称 - */ - name: string - /** - * 品牌图片 - */ - picUrl: string - /** - * 品牌排序 - */ - sort?: number - /** - * 品牌描述 - */ - description?: string - /** - * 开启状态 - */ - status: number -} - -// 创建商品品牌 -export const createBrand = (data: BrandVO) => { - return request.post({ url: '/product/brand/create', data }) -} - -// 更新商品品牌 -export const updateBrand = (data: BrandVO) => { - return request.put({ url: '/product/brand/update', data }) -} - -// 删除商品品牌 -export const deleteBrand = (id: number) => { - return request.delete({ url: `/product/brand/delete?id=${id}` }) -} - -// 获得商品品牌 -export const getBrand = (id: number) => { - return request.get({ url: `/product/brand/get?id=${id}` }) -} - -// 获得商品品牌列表 -export const getBrandParam = (params: PageParam) => { - return request.get({ url: '/product/brand/page', params }) -} diff --git a/yshop-drink-vue/src/api/mall/product/category.ts b/yshop-drink-vue/src/api/mall/product/category.ts deleted file mode 100644 index 7ae8128..0000000 --- a/yshop-drink-vue/src/api/mall/product/category.ts +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/config/axios' - -/** - * 产品分类 - */ -export interface CategoryVO { - /** - * 分类编号 - */ - id?: number - /** - * 父分类编号 - */ - parentId?: number - /** - * 分类名称 - */ - name: string - /** - * 分类图片 - */ - picUrl: string - /** - * 分类排序 - */ - sort?: number - /** - * 分类描述 - */ - description?: string - /** - * 开启状态 - */ - status: number -} - -// 创建商品分类 -export const createCategory = (data: CategoryVO) => { - return request.post({ url: '/product/category/create', data }) -} - -// 更新商品分类 -export const updateCategory = (data: CategoryVO) => { - return request.put({ url: '/product/category/update', data }) -} - -// 删除商品分类 -export const deleteCategory = (id: number) => { - return request.delete({ url: `/product/category/delete?id=${id}` }) -} - -// 获得商品分类 -export const getCategory = (id: number) => { - return request.get({ url: `/product/category/get?id=${id}` }) -} - -// 获得商品分类列表 -export const getCategoryList = (params: any) => { - return request.get({ url: '/product/category/list', params }) -} diff --git a/yshop-drink-vue/src/api/mall/product/product.ts b/yshop-drink-vue/src/api/mall/product/product.ts deleted file mode 100644 index 6ba7168..0000000 --- a/yshop-drink-vue/src/api/mall/product/product.ts +++ /dev/null @@ -1,86 +0,0 @@ -import request from '@/config/axios' - -export interface StoreProductVO { - id: number - image: string - sliderImage: string - storeName: string - storeInfo: string - keyword: string - barCode: string - cateId: string - price: number - vipPrice: number - otPrice: number - postage: number - unitName: string - sort: number - sales: number - stock: number - isShow: boolean - isHot: boolean - isBenefit: boolean - isBest: boolean - isNew: boolean - description: string - isPostage: byte - merUse: byte - giveIntegral: number - cost: number - isSeckill: byte - isBargain: byte - isGood: boolean - ficti: number - browse: number - codePath: string - isSub: boolean - tempId: number - specType: boolean - isIntegral: byte - integral: number -} - -// 查询商品列表 -export const getStoreProductPage = async (params: StoreProductPageReqVO) => { - return await request.get({ url: `/product/store-product/page`, params }) -} - -// 查询商品详情 -export const getStoreProduct = async (id: number) => { - return await request.get({ url: `/product/store-product/get?id=` + id }) -} - -// 查询商品详情 -export const getStoreProductInfo = async (id: number) => { - return await request.get({ url: `/product/store-product/info/` + id }) -} - -// 新增商品 -export const createStoreProduct = async (data) => { - return await request.post({ url: `/product/store-product/create`, data }) -} - -// 修改商品 -export const updateStoreProduct = async (data: StoreProductVO) => { - return await request.put({ url: `/product/store-product/update`, data }) -} - -// 删除商品 -export const deleteStoreProduct = async (id: number) => { - return await request.delete({ url: `/product/store-product/delete?id=` + id }) -} - -// 导出商品 Excel -export const exportStoreProduct = async (params) => { - return await request.download({ url: `/product/store-product/export-excel`, params }) -} -// 规格格式化 -export const isFormatAttr = async (id, data) => { - return await request.post({ url: '/product/store-product/isFormatAttr/' + id, data }) -} - -// 删除商品 -export const saleStoreProduct = async (id,isShow) => { - return await request.get({ url: `/product/store-product/sale?id=` + id + `&type=` + isShow }) -} - diff --git a/yshop-drink-vue/src/api/mall/product/storeProductRelation/index.ts b/yshop-drink-vue/src/api/mall/product/storeProductRelation/index.ts deleted file mode 100644 index 32ee58b..0000000 --- a/yshop-drink-vue/src/api/mall/product/storeProductRelation/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -export interface StoreProductRelationVO { - id: number - uid: number - productId: number - type: string - category: string -} - -// 查询商品点赞和收藏列表 -export const getStoreProductRelationPage = async (params: StoreProductRelationPageReqVO) => { - return await request.get({ url: `/product/store-product-relation/page`, params }) -} - -// 查询商品点赞和收藏详情 -export const getStoreProductRelation = async (id: number) => { - return await request.get({ url: `/product/store-product-relation/get?id=` + id }) -} - -// 新增商品点赞和收藏 -export const createStoreProductRelation = async (data: StoreProductRelationVO) => { - return await request.post({ url: `/product/store-product-relation/create`, data }) -} - -// 修改商品点赞和收藏 -export const updateStoreProductRelation = async (data: StoreProductRelationVO) => { - return await request.put({ url: `/product/store-product-relation/update`, data }) -} - -// 删除商品点赞和收藏 -export const deleteStoreProductRelation = async (id: number) => { - return await request.delete({ url: `/product/store-product-relation/delete?id=` + id }) -} - -// 导出商品点赞和收藏 Excel -export const exportStoreProductRelation = async (params) => { - return await request.download({ url: `/product/store-product-relation/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/product/storeProductReply/index.ts b/yshop-drink-vue/src/api/mall/product/storeProductReply/index.ts deleted file mode 100644 index 65bb7a3..0000000 --- a/yshop-drink-vue/src/api/mall/product/storeProductReply/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import request from '@/config/axios' - -export interface StoreProductReplyVO { - id: number - uid: number - oid: number - unique: string - productId: number - replyType: string - productScore: boolean - serviceScore: boolean - comment: string - pics: string - merchantReplyContent: string - merchantReplyTime: Date - isReply: boolean -} - -// 查询评论列表 -export const getStoreProductReplyPage = async (params: StoreProductReplyPageReqVO) => { - return await request.get({ url: `/product/store-product-reply/page`, params }) -} - -// 查询评论详情 -export const getStoreProductReply = async (id: number) => { - return await request.get({ url: `/product/store-product-reply/get?id=` + id }) -} - -// 新增评论 -export const createStoreProductReply = async (data: StoreProductReplyVO) => { - return await request.post({ url: `/product/store-product-reply/create`, data }) -} - -// 修改评论 -export const updateStoreProductReply = async (data: StoreProductReplyVO) => { - return await request.put({ url: `/product/store-product-reply/update`, data }) -} - -// 删除评论 -export const deleteStoreProductReply = async (id: number) => { - return await request.delete({ url: `/product/store-product-reply/delete?id=` + id }) -} - -// 导出评论 Excel -export const exportStoreProductReply = async (params) => { - return await request.download({ url: `/product/store-product-reply/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/shop/ads/index.ts b/yshop-drink-vue/src/api/mall/shop/ads/index.ts deleted file mode 100644 index 5d16ac6..0000000 --- a/yshop-drink-vue/src/api/mall/shop/ads/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -export interface AdsVO { - id: number - image: string - switch: boolean - weigh: number - shopId: string -} - -// 查询广告图管理列表 -export const getAdsPage = async (params: AdsPageReqVO) => { - return await request.get({ url: `/shop/ads/page`, params }) -} - -// 查询广告图管理详情 -export const getAds = async (id: number) => { - return await request.get({ url: `/shop/ads/get?id=` + id }) -} - -// 新增广告图管理 -export const createAds = async (data: AdsVO) => { - return await request.post({ url: `/shop/ads/create`, data }) -} - -// 修改广告图管理 -export const updateAds = async (data: AdsVO) => { - return await request.put({ url: `/shop/ads/update`, data }) -} - -// 删除广告图管理 -export const deleteAds = async (id: number) => { - return await request.delete({ url: `/shop/ads/delete?id=` + id }) -} - -// 导出广告图管理 Excel -export const exportAds = async (params) => { - return await request.download({ url: `/shop/ads/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/shop/materialGroup/index.ts b/yshop-drink-vue/src/api/mall/shop/materialGroup/index.ts deleted file mode 100644 index 93b4e06..0000000 --- a/yshop-drink-vue/src/api/mall/shop/materialGroup/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -import request from '@/config/axios' - -export interface MaterialGroupVO { - id: number - name: string -} - -// 查询素材分组列表 -export const getMaterialGroupPage = async (params: MaterialGroupPageReqVO) => { - return await request.get({ url: `/shop/material-group/page`, params }) -} - -// 查询素材分组详情 -export const getMaterialGroup = async (id: number) => { - return await request.get({ url: `/shop/material-group/get?id=` + id }) -} - -// 新增素材分组 -export const createMaterialGroup = async (data: MaterialGroupVO) => { - return await request.post({ url: `/shop/material-group/create`, data }) -} - -// 修改素材分组 -export const updateMaterialGroup = async (data: MaterialGroupVO) => { - return await request.put({ url: `/shop/material-group/update`, data }) -} - -// 删除素材分组 -export const deleteMaterialGroup = async (id: number) => { - return await request.delete({ url: `/shop/material-group/delete?id=` + id }) -} - -// 导出素材分组 Excel -export const exportMaterialGroup = async (params) => { - return await request.download({ url: `/shop/material-group/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/shop/service/index.ts b/yshop-drink-vue/src/api/mall/shop/service/index.ts deleted file mode 100644 index 65a7ff3..0000000 --- a/yshop-drink-vue/src/api/mall/shop/service/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/config/axios' - -export interface ServiceVO { - id: number - name: string - image: string - type: string - content: string - pid: number - appId: string - pages: string - phone: string - weigh: number - status: boolean -} - -// 查询我的服务列表 -export const getServicePage = async (params: ServicePageReqVO) => { - return await request.get({ url: `/shop/service/page`, params }) -} - -// 查询我的服务详情 -export const getService = async (id: number) => { - return await request.get({ url: `/shop/service/get?id=` + id }) -} - -// 新增我的服务 -export const createService = async (data: ServiceVO) => { - return await request.post({ url: `/shop/service/create`, data }) -} - -// 修改我的服务 -export const updateService = async (data: ServiceVO) => { - return await request.put({ url: `/shop/service/update`, data }) -} - -// 删除我的服务 -export const deleteService = async (id: number) => { - return await request.delete({ url: `/shop/service/delete?id=` + id }) -} - -// 导出我的服务 Excel -export const exportService = async (params) => { - return await request.download({ url: `/shop/service/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/shop/storeProductRule/index.ts b/yshop-drink-vue/src/api/mall/shop/storeProductRule/index.ts deleted file mode 100644 index f5fd419..0000000 --- a/yshop-drink-vue/src/api/mall/shop/storeProductRule/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import request from '@/config/axios' - -export interface StoreProductRuleVO { - id: number - ruleName: string - ruleValue: string -} - -// 查询商品规则值(规格)列表 -export const getStoreProductRulePage = async (params: StoreProductRulePageReqVO) => { - return await request.get({ url: `/product/store-product-rule/page`, params }) -} - -// 查询商品规则值(规格)详情 -export const getStoreProductRule = async (id: number) => { - return await request.get({ url: `/product/store-product-rule/get?id=` + id }) -} - -// 新增商品规则值(规格) -export const createStoreProductRule = async (data: StoreProductRuleVO,id: number) => { - return await request.post({ url: `/product/store-product-rule/save/` + id, data }) -} - -// 修改商品规则值(规格) -export const updateStoreProductRule = async (data: StoreProductRuleVO) => { - return await request.put({ url: `/product/store-product-rule/update`, data }) -} - -// 删除商品规则值(规格) -export const deleteStoreProductRule = async (id: number) => { - return await request.delete({ url: `/product/store-product-rule/delete?id=` + id }) -} - -// 导出商品规则值(规格) Excel -export const exportStoreProductRule = async (params) => { - return await request.download({ url: `/product/store-product-rule/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mall/store/shop/index.ts b/yshop-drink-vue/src/api/mall/store/shop/index.ts deleted file mode 100644 index 933c796..0000000 --- a/yshop-drink-vue/src/api/mall/store/shop/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -import request from '@/config/axios' - -export interface ShopVO { - id: number - name: string - mobile: string - image: string - images: string - address: string - addressMap: string - lng: string - lat: string - distance: number - minPrice: number - deliveryPrice: number - notice: string - status: boolean - adminId: string - uniprintId: string - startTime: Date - endTime: Date -} - -export const getShopList = async () => { - return await request.get({ url: `/store/shop/list` }) -} - -// 查询门店管理列表 -export const getShopPage = async (params: ShopPageReqVO) => { - return await request.get({ url: `/store/shop/page`, params }) -} - -// 查询门店管理详情 -export const getShop = async (id: number) => { - return await request.get({ url: `/store/shop/get?id=` + id }) -} - -// 新增门店管理 -export const createShop = async (data: ShopVO) => { - return await request.post({ url: `/store/shop/create`, data }) -} - -// 修改门店管理 -export const updateShop = async (data: ShopVO) => { - return await request.put({ url: `/store/shop/update`, data }) -} - -// 删除门店管理 -export const deleteShop = async (id: number) => { - return await request.delete({ url: `/store/shop/delete?id=` + id }) -} - -// 导出门店管理 Excel -export const exportShop = async (params) => { - return await request.download({ url: `/store/shop/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/member/user/index.ts b/yshop-drink-vue/src/api/member/user/index.ts deleted file mode 100644 index 107ea4a..0000000 --- a/yshop-drink-vue/src/api/member/user/index.ts +++ /dev/null @@ -1,69 +0,0 @@ -import request from '@/config/axios' - -export interface UserVO { - id: number - username: string - password: string - realName: string - birthday: number - cardId: string - mark: string - partnerId: number - groupId: number - nickname: string - avatar: string - phone: string - addIp: string - lastIp: string - nowMoney: number - brokeragePrice: number - integral: number - signNum: number - status: boolean - level: byte - spreadUid: number - spreadTime: Date - userType: string - isPromoter: byte - payCount: number - spreadCount: number - addres: string - adminid: number - loginType: string - wxProfile: string -} - -// 查询用户列表 -export const getUserPage = async (params: UserPageReqVO) => { - return await request.get({ url: `/member/user/page`, params }) -} - -// 查询用户详情 -export const getUser = async (id: number) => { - return await request.get({ url: `/member/user/get?id=` + id }) -} - -// 新增用户 -export const createUser = async (data: UserVO) => { - return await request.post({ url: `/member/user/create`, data }) -} - -// 修改用户 -export const updateUser = async (data: UserVO) => { - return await request.put({ url: `/member/user/update`, data }) -} - -// 修改余额 -export const updateMony = async (data: UserVO) => { - return await request.put({ url: `/member/user/updateMony`, data }) -} - -// 删除用户 -export const deleteUser = async (id: number) => { - return await request.delete({ url: `/member/user/delete?id=` + id }) -} - -// 导出用户 Excel -export const exportUser = async (params) => { - return await request.download({ url: `/member/user/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/member/userAddress/index.ts b/yshop-drink-vue/src/api/member/userAddress/index.ts deleted file mode 100644 index 9df8ee5..0000000 --- a/yshop-drink-vue/src/api/member/userAddress/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import request from '@/config/axios' - -export interface UserAddressVO { - id: number - uid: number - realName: string - phone: string - province: string - city: string - cityId: number - district: string - detail: string - postCode: string - longitude: string - latitude: string - isDefault: byte -} - -// 查询用户地址列表 -export const getUserAddressPage = async (params: UserAddressPageReqVO) => { - return await request.get({ url: `/member/user-address/page`, params }) -} - -// 查询用户地址详情 -export const getUserAddress = async (id: number) => { - return await request.get({ url: `/member/user-address/get?id=` + id }) -} - -// 新增用户地址 -export const createUserAddress = async (data: UserAddressVO) => { - return await request.post({ url: `/member/user-address/create`, data }) -} - -// 修改用户地址 -export const updateUserAddress = async (data: UserAddressVO) => { - return await request.put({ url: `/member/user-address/update`, data }) -} - -// 删除用户地址 -export const deleteUserAddress = async (id: number) => { - return await request.delete({ url: `/member/user-address/delete?id=` + id }) -} - -// 导出用户地址 Excel -export const exportUserAddress = async (params) => { - return await request.download({ url: `/member/user-address/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/member/userBill/index.ts b/yshop-drink-vue/src/api/member/userBill/index.ts deleted file mode 100644 index f8b583d..0000000 --- a/yshop-drink-vue/src/api/member/userBill/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/config/axios' - -export interface UserBillVO { - id: number - uid: number - linkId: string - pm: byte - title: string - category: string - type: string - number: number - balance: number - mark: string - status: boolean -} - -// 查询用户账单列表 -export const getUserBillPage = async (params: UserBillPageReqVO) => { - return await request.get({ url: `/member/user-bill/page`, params }) -} - -// 查询用户账单详情 -export const getUserBill = async (id: number) => { - return await request.get({ url: `/member/user-bill/get?id=` + id }) -} - -// 新增用户账单 -export const createUserBill = async (data: UserBillVO) => { - return await request.post({ url: `/member/user-bill/create`, data }) -} - -// 修改用户账单 -export const updateUserBill = async (data: UserBillVO) => { - return await request.put({ url: `/member/user-bill/update`, data }) -} - -// 删除用户账单 -export const deleteUserBill = async (id: number) => { - return await request.delete({ url: `/member/user-bill/delete?id=` + id }) -} - -// 导出用户账单 Excel -export const exportUserBill = async (params) => { - return await request.download({ url: `/member/user-bill/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/message/wechatTemplate/index.ts b/yshop-drink-vue/src/api/message/wechatTemplate/index.ts deleted file mode 100644 index 64ce47b..0000000 --- a/yshop-drink-vue/src/api/message/wechatTemplate/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import request from '@/config/axios' - -export interface WechatTemplateVO { - id: number - tempkey: string - name: string - content: string - tempid: string - status: byte - type: string -} - -// 查询微信模板列表 -export const getWechatTemplatePage = async (params: WechatTemplatePageReqVO) => { - return await request.get({ url: `/message/wechat-template/page`, params }) -} - -// 查询微信模板详情 -export const getWechatTemplate = async (id: number) => { - return await request.get({ url: `/message/wechat-template/get?id=` + id }) -} - -// 新增微信模板 -export const createWechatTemplate = async (data: WechatTemplateVO) => { - return await request.post({ url: `/message/wechat-template/create`, data }) -} - -// 修改微信模板 -export const updateWechatTemplate = async (data: WechatTemplateVO) => { - return await request.put({ url: `/message/wechat-template/update`, data }) -} - -// 删除微信模板 -export const deleteWechatTemplate = async (id: number) => { - return await request.delete({ url: `/message/wechat-template/delete?id=` + id }) -} - -// 导出微信模板 Excel -export const exportWechatTemplate = async (params) => { - return await request.download({ url: `/message/wechat-template/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/mp/account/index.ts b/yshop-drink-vue/src/api/mp/account/index.ts deleted file mode 100644 index d641ef3..0000000 --- a/yshop-drink-vue/src/api/mp/account/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import request from '@/config/axios' - -export interface AccountVO { - id?: number - name: string -} - -// 创建公众号账号 -export const createAccount = async (data) => { - return await request.post({ url: '/mp/account/create', data }) -} - -// 更新公众号账号 -export const updateAccount = async (data) => { - return request.put({ url: '/mp/account/update', data: data }) -} - -// 删除公众号账号 -export const deleteAccount = async (id) => { - return request.delete({ url: '/mp/account/delete?id=' + id, method: 'delete' }) -} - -// 获得公众号账号 -export const getAccount = async (id) => { - return request.get({ url: '/mp/account/get?id=' + id }) -} - -// 获得公众号账号分页 -export const getAccountPage = async (query) => { - return request.get({ url: '/mp/account/page', params: query }) -} - -// 获取公众号账号精简信息列表 -export const getSimpleAccountList = async () => { - return request.get({ url: '/mp/account/list-all-simple' }) -} - -// 生成公众号二维码 -export const generateAccountQrCode = async (id) => { - return request.put({ url: '/mp/account/generate-qr-code?id=' + id }) -} - -// 清空公众号 API 配额 -export const clearAccountQuota = async (id) => { - return request.put({ url: '/mp/account/clear-quota?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/mp/autoReply/index.ts b/yshop-drink-vue/src/api/mp/autoReply/index.ts deleted file mode 100644 index 5045e6d..0000000 --- a/yshop-drink-vue/src/api/mp/autoReply/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -// 创建公众号的自动回复 -export const createAutoReply = (data) => { - return request.post({ - url: '/mp/auto-reply/create', - data: data - }) -} - -// 更新公众号的自动回复 -export const updateAutoReply = (data) => { - return request.put({ - url: '/mp/auto-reply/update', - data: data - }) -} - -// 删除公众号的自动回复 -export const deleteAutoReply = (id) => { - return request.delete({ - url: '/mp/auto-reply/delete?id=' + id - }) -} - -// 获得公众号的自动回复 -export const getAutoReply = (id) => { - return request.get({ - url: '/mp/auto-reply/get?id=' + id - }) -} - -// 获得公众号的自动回复分页 -export const getAutoReplyPage = (query) => { - return request.get({ - url: '/mp/auto-reply/page', - params: query - }) -} diff --git a/yshop-drink-vue/src/api/mp/draft/index.ts b/yshop-drink-vue/src/api/mp/draft/index.ts deleted file mode 100644 index ce6a443..0000000 --- a/yshop-drink-vue/src/api/mp/draft/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号草稿分页 -export const getDraftPage = (query) => { - return request.get({ - url: '/mp/draft/page', - params: query - }) -} - -// 创建公众号草稿 -export const createDraft = (accountId, articles) => { - return request.post({ - url: '/mp/draft/create?accountId=' + accountId, - data: { - articles - } - }) -} - -// 更新公众号草稿 -export const updateDraft = (accountId, mediaId, articles) => { - return request.put({ - url: '/mp/draft/update?accountId=' + accountId + '&mediaId=' + mediaId, - method: 'put', - data: articles - }) -} - -// 删除公众号草稿 -export const deleteDraft = (accountId, mediaId) => { - return request.delete({ - url: '/mp/draft/delete?accountId=' + accountId + '&mediaId=' + mediaId - }) -} diff --git a/yshop-drink-vue/src/api/mp/freePublish/index.ts b/yshop-drink-vue/src/api/mp/freePublish/index.ts deleted file mode 100644 index beef026..0000000 --- a/yshop-drink-vue/src/api/mp/freePublish/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号素材分页 -export const getFreePublishPage = (query) => { - return request.get({ - url: '/mp/free-publish/page', - params: query - }) -} - -// 删除公众号素材 -export const deleteFreePublish = (accountId, articleId) => { - return request.delete({ - url: '/mp/free-publish/delete?accountId=' + accountId + '&articleId=' + articleId - }) -} - -// 发布公众号素材 -export const submitFreePublish = (accountId, mediaId) => { - return request.post({ - url: '/mp/free-publish/submit?accountId=' + accountId + '&mediaId=' + mediaId - }) -} diff --git a/yshop-drink-vue/src/api/mp/material/index.ts b/yshop-drink-vue/src/api/mp/material/index.ts deleted file mode 100644 index fcc37ab..0000000 --- a/yshop-drink-vue/src/api/mp/material/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号素材分页 -export const getMaterialPage = (query) => { - return request.get({ - url: '/mp/material/page', - params: query - }) -} - -// 删除公众号永久素材 -export const deletePermanentMaterial = (id) => { - return request.delete({ - url: '/mp/material/delete-permanent?id=' + id - }) -} diff --git a/yshop-drink-vue/src/api/mp/menu/index.ts b/yshop-drink-vue/src/api/mp/menu/index.ts deleted file mode 100644 index cc78647..0000000 --- a/yshop-drink-vue/src/api/mp/menu/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号菜单列表 -export const getMenuList = (accountId) => { - return request.get({ - url: '/mp/menu/list?accountId=' + accountId - }) -} - -// 保存公众号菜单 -export const saveMenu = (accountId, menus) => { - return request.post({ - url: '/mp/menu/save', - data: { - accountId, - menus - } - }) -} - -// 删除公众号菜单 -export const deleteMenu = (accountId) => { - return request.delete({ - url: '/mp/menu/delete?accountId=' + accountId - }) -} diff --git a/yshop-drink-vue/src/api/mp/message/index.ts b/yshop-drink-vue/src/api/mp/message/index.ts deleted file mode 100644 index ad9b95d..0000000 --- a/yshop-drink-vue/src/api/mp/message/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号消息分页 -export const getMessagePage = (query: PageParam) => { - return request.get({ - url: '/mp/message/page', - params: query - }) -} - -// 给粉丝发送消息 -export const sendMessage = (data) => { - return request.post({ - url: '/mp/message/send', - data: data - }) -} diff --git a/yshop-drink-vue/src/api/mp/statistics/index.ts b/yshop-drink-vue/src/api/mp/statistics/index.ts deleted file mode 100644 index 72cae60..0000000 --- a/yshop-drink-vue/src/api/mp/statistics/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import request from '@/config/axios' - -// 获取消息发送概况数据 -export const getUpstreamMessage = (query) => { - return request.get({ - url: '/mp/statistics/upstream-message', - params: query - }) -} - -// 用户增减数据 -export const getUserSummary = (query) => { - return request.get({ - url: '/mp/statistics/user-summary', - params: query - }) -} - -// 获得用户累计数据 -export const getUserCumulate = (query) => { - return request.get({ - url: '/mp/statistics/user-cumulate', - params: query - }) -} - -// 获得接口分析数据 -export const getInterfaceSummary = (query) => { - return request.get({ - url: '/mp/statistics/interface-summary', - params: query - }) -} diff --git a/yshop-drink-vue/src/api/mp/tag/index.ts b/yshop-drink-vue/src/api/mp/tag/index.ts deleted file mode 100644 index 50183a5..0000000 --- a/yshop-drink-vue/src/api/mp/tag/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/config/axios' - -export interface TagVO { - id?: number - name: string - accountId: number - createTime: Date -} - -// 创建公众号标签 -export const createTag = (data: TagVO) => { - return request.post({ - url: '/mp/tag/create', - data: data - }) -} - -// 更新公众号标签 -export const updateTag = (data: TagVO) => { - return request.put({ - url: '/mp/tag/update', - data: data - }) -} - -// 删除公众号标签 -export const deleteTag = (id: number) => { - return request.delete({ - url: '/mp/tag/delete?id=' + id - }) -} - -// 获得公众号标签 -export const getTag = (id: number) => { - return request.get({ - url: '/mp/tag/get?id=' + id - }) -} - -// 获得公众号标签分页 -export const getTagPage = (query: PageParam) => { - return request.get({ - url: '/mp/tag/page', - params: query - }) -} - -// 获取公众号标签精简信息列表 -export const getSimpleTagList = () => { - return request.get({ - url: '/mp/tag/list-all-simple' - }) -} - -// 同步公众号标签 -export const syncTag = (accountId: number) => { - return request.post({ - url: '/mp/tag/sync?accountId=' + accountId - }) -} diff --git a/yshop-drink-vue/src/api/mp/user/index.ts b/yshop-drink-vue/src/api/mp/user/index.ts deleted file mode 100644 index d954e9e..0000000 --- a/yshop-drink-vue/src/api/mp/user/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import request from '@/config/axios' - -// 更新公众号粉丝 -export const updateUser = (data) => { - return request.put({ - url: '/mp/user/update', - data: data - }) -} - -// 获得公众号粉丝 -export const getUser = (id) => { - return request.get({ - url: '/mp/user/get?id=' + id - }) -} - -// 获得公众号粉丝分页 -export const getUserPage = (query) => { - return request.get({ - url: '/mp/user/page', - params: query - }) -} - -// 同步公众号粉丝 -export const syncUser = (accountId) => { - return request.post({ - url: '/mp/tag/sync?accountId=' + accountId - }) -} diff --git a/yshop-drink-vue/src/api/pay/merchantDetails/index.ts b/yshop-drink-vue/src/api/pay/merchantDetails/index.ts deleted file mode 100644 index 36c077e..0000000 --- a/yshop-drink-vue/src/api/pay/merchantDetails/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import request from '@/config/axios' - -export interface MerchantDetailsVO { - detailsId: string - payType: string - appid: string - mchId: string - certStoreType: string - keyPrivate: string - keyPublic: string - keyCert: string - keyCertPwd: string - notifyUrl: string - returnUrl: string - signType: string - seller: string - subAppId: string - subMchId: string - inputCharset: string - isTest: boolean -} - -// 查询支付服务商配置列表 -export const getMerchantDetailsPage = async (params: MerchantDetailsPageReqVO) => { - return await request.get({ url: `/pay/merchant-details/page`, params }) -} - -// 查询支付服务商配置详情 -export const getMerchantDetails = async (id: number) => { - return await request.get({ url: `/pay/merchant-details/get?id=` + id }) -} - -// 新增支付服务商配置 -export const createMerchantDetails = async (data: MerchantDetailsVO) => { - return await request.post({ url: `/pay/merchant-details/create`, data }) -} - -// 修改支付服务商配置 -export const updateMerchantDetails = async (data: MerchantDetailsVO) => { - return await request.put({ url: `/pay/merchant-details/update`, data }) -} - -// 删除支付服务商配置 -export const deleteMerchantDetails = async (id: number) => { - return await request.delete({ url: `/pay/merchant-details/delete?id=` + id }) -} - -// 导出支付服务商配置 Excel -export const exportMerchantDetails = async (params) => { - return await request.download({ url: `/pay/merchant-details/export-excel`, params }) -} diff --git a/yshop-drink-vue/src/api/system/area/index.ts b/yshop-drink-vue/src/api/system/area/index.ts deleted file mode 100644 index e91a499..0000000 --- a/yshop-drink-vue/src/api/system/area/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import request from '@/config/axios' - -// 获得地区树 -export const getAreaTree = async () => { - return await request.get({ url: '/system/area/tree' }) -} - -// 获得 IP 对应的地区名 -export const getAreaByIp = async (ip: string) => { - return await request.get({ url: '/system/area/get-by-ip?ip=' + ip }) -} diff --git a/yshop-drink-vue/src/api/system/dept/index.ts b/yshop-drink-vue/src/api/system/dept/index.ts deleted file mode 100644 index d995f13..0000000 --- a/yshop-drink-vue/src/api/system/dept/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import request from '@/config/axios' - -export interface DeptVO { - id?: number - name: string - parentId: number - status: number - sort: number - leaderUserId: number - phone: string - email: string - createTime: Date -} - -// 查询部门(精简)列表 -export const getSimpleDeptList = async (): Promise => { - return await request.get({ url: '/system/dept/list-all-simple' }) -} - -// 查询部门列表 -export const getDeptPage = async (params: PageParam) => { - return await request.get({ url: '/system/dept/list', params }) -} - -// 查询部门详情 -export const getDept = async (id: number) => { - return await request.get({ url: '/system/dept/get?id=' + id }) -} - -// 新增部门 -export const createDept = async (data: DeptVO) => { - return await request.post({ url: '/system/dept/create', data: data }) -} - -// 修改部门 -export const updateDept = async (params: DeptVO) => { - return await request.put({ url: '/system/dept/update', data: params }) -} - -// 删除部门 -export const deleteDept = async (id: number) => { - return await request.delete({ url: '/system/dept/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/dict/dict.data.ts b/yshop-drink-vue/src/api/system/dict/dict.data.ts deleted file mode 100644 index 87e7dce..0000000 --- a/yshop-drink-vue/src/api/system/dict/dict.data.ts +++ /dev/null @@ -1,49 +0,0 @@ -import request from '@/config/axios' - -export type DictDataVO = { - id: number | undefined - sort: number | undefined - label: string - value: string - dictType: string - status: number - colorType: string - cssClass: string - remark: string - createTime: Date -} - -// 查询字典数据(精简)列表 -export const listSimpleDictData = () => { - return request.get({ url: '/system/dict-data/list-all-simple' }) -} - -// 查询字典数据列表 -export const getDictDataPage = (params: PageParam) => { - return request.get({ url: '/system/dict-data/page', params }) -} - -// 查询字典数据详情 -export const getDictData = (id: number) => { - return request.get({ url: '/system/dict-data/get?id=' + id }) -} - -// 新增字典数据 -export const createDictData = (data: DictDataVO) => { - return request.post({ url: '/system/dict-data/create', data }) -} - -// 修改字典数据 -export const updateDictData = (data: DictDataVO) => { - return request.put({ url: '/system/dict-data/update', data }) -} - -// 删除字典数据 -export const deleteDictData = (id: number) => { - return request.delete({ url: '/system/dict-data/delete?id=' + id }) -} - -// 导出字典类型数据 -export const exportDictData = (params) => { - return request.get({ url: '/system/dict-data/export', params }) -} diff --git a/yshop-drink-vue/src/api/system/dict/dict.type.ts b/yshop-drink-vue/src/api/system/dict/dict.type.ts deleted file mode 100644 index ed2969f..0000000 --- a/yshop-drink-vue/src/api/system/dict/dict.type.ts +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/config/axios' - -export type DictTypeVO = { - id: number | undefined - name: string - type: string - status: number - remark: string - createTime: Date -} - -// 查询字典(精简)列表 -export const getSimpleDictTypeList = () => { - return request.get({ url: '/system/dict-type/list-all-simple' }) -} - -// 查询字典列表 -export const getDictTypePage = (params: PageParam) => { - return request.get({ url: '/system/dict-type/page', params }) -} - -// 查询字典详情 -export const getDictType = (id: number) => { - return request.get({ url: '/system/dict-type/get?id=' + id }) -} - -// 新增字典 -export const createDictType = (data: DictTypeVO) => { - return request.post({ url: '/system/dict-type/create', data }) -} - -// 修改字典 -export const updateDictType = (data: DictTypeVO) => { - return request.put({ url: '/system/dict-type/update', data }) -} - -// 删除字典 -export const deleteDictType = (id: number) => { - return request.delete({ url: '/system/dict-type/delete?id=' + id }) -} -// 导出字典类型 -export const exportDictType = (params) => { - return request.get({ url: '/system/dict-type/export', params }) -} diff --git a/yshop-drink-vue/src/api/system/errorCode/index.ts b/yshop-drink-vue/src/api/system/errorCode/index.ts deleted file mode 100644 index 8a86a63..0000000 --- a/yshop-drink-vue/src/api/system/errorCode/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import request from '@/config/axios' - -export interface ErrorCodeVO { - id: number | undefined - type: number - applicationName: string - code: number | undefined - message: string - memo: string - createTime: Date -} - -// 查询错误码列表 -export const getErrorCodePage = (params: PageParam) => { - return request.get({ url: '/system/error-code/page', params }) -} - -// 查询错误码详情 -export const getErrorCode = (id: number) => { - return request.get({ url: '/system/error-code/get?id=' + id }) -} - -// 新增错误码 -export const createErrorCode = (data: ErrorCodeVO) => { - return request.post({ url: '/system/error-code/create', data }) -} - -// 修改错误码 -export const updateErrorCode = (data: ErrorCodeVO) => { - return request.put({ url: '/system/error-code/update', data }) -} - -// 删除错误码 -export const deleteErrorCode = (id: number) => { - return request.delete({ url: '/system/error-code/delete?id=' + id }) -} -// 导出错误码 -export const excelErrorCode = (params) => { - return request.download({ url: '/system/error-code/export-excel', params }) -} diff --git a/yshop-drink-vue/src/api/system/loginLog/index.ts b/yshop-drink-vue/src/api/system/loginLog/index.ts deleted file mode 100644 index f275c3e..0000000 --- a/yshop-drink-vue/src/api/system/loginLog/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import request from '@/config/axios' - -export interface LoginLogVO { - id: number - logType: number - traceId: number - userId: number - userType: number - username: string - status: number - userIp: string - userAgent: string - createTime: Date -} - -// 查询登录日志列表 -export const getLoginLogPage = (params: PageParam) => { - return request.get({ url: '/system/login-log/page', params }) -} - -// 导出登录日志 -export const exportLoginLog = (params) => { - return request.download({ url: '/system/login-log/export', params }) -} diff --git a/yshop-drink-vue/src/api/system/mail/account/index.ts b/yshop-drink-vue/src/api/system/mail/account/index.ts deleted file mode 100644 index 9e10c92..0000000 --- a/yshop-drink-vue/src/api/system/mail/account/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import request from '@/config/axios' - -export interface MailAccountVO { - id: number - mail: string - username: string - password: string - host: string - port: number - sslEnable: boolean -} - -// 查询邮箱账号列表 -export const getMailAccountPage = async (params: PageParam) => { - return await request.get({ url: '/system/mail-account/page', params }) -} - -// 查询邮箱账号详情 -export const getMailAccount = async (id: number) => { - return await request.get({ url: '/system/mail-account/get?id=' + id }) -} - -// 新增邮箱账号 -export const createMailAccount = async (data: MailAccountVO) => { - return await request.post({ url: '/system/mail-account/create', data }) -} - -// 修改邮箱账号 -export const updateMailAccount = async (data: MailAccountVO) => { - return await request.put({ url: '/system/mail-account/update', data }) -} - -// 删除邮箱账号 -export const deleteMailAccount = async (id: number) => { - return await request.delete({ url: '/system/mail-account/delete?id=' + id }) -} - -// 获得邮箱账号精简列表 -export const getSimpleMailAccountList = async () => { - return request.get({ url: '/system/mail-account/list-all-simple' }) -} diff --git a/yshop-drink-vue/src/api/system/mail/log/index.ts b/yshop-drink-vue/src/api/system/mail/log/index.ts deleted file mode 100644 index 13172a7..0000000 --- a/yshop-drink-vue/src/api/system/mail/log/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import request from '@/config/axios' - -export interface MailLogVO { - id: number - userId: number - userType: number - toMail: string - accountId: number - fromMail: string - templateId: number - templateCode: string - templateNickname: string - templateTitle: string - templateContent: string - templateParams: string - sendStatus: number - sendTime: Date - sendMessageId: string - sendException: string -} - -// 查询邮件日志列表 -export const getMailLogPage = async (params: PageParam) => { - return await request.get({ url: '/system/mail-log/page', params }) -} - -// 查询邮件日志详情 -export const getMailLog = async (id: number) => { - return await request.get({ url: '/system/mail-log/get?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/mail/template/index.ts b/yshop-drink-vue/src/api/system/mail/template/index.ts deleted file mode 100644 index fb7ce5e..0000000 --- a/yshop-drink-vue/src/api/system/mail/template/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import request from '@/config/axios' - -export interface MailTemplateVO { - id: number - name: string - code: string - accountId: number - nickname: string - title: string - content: string - params: string - status: number - remark: string -} - -export interface MailSendReqVO { - mail: string - templateCode: string - templateParams: Map -} - -// 查询邮件模版列表 -export const getMailTemplatePage = async (params: PageParam) => { - return await request.get({ url: '/system/mail-template/page', params }) -} - -// 查询邮件模版详情 -export const getMailTemplate = async (id: number) => { - return await request.get({ url: '/system/mail-template/get?id=' + id }) -} - -// 新增邮件模版 -export const createMailTemplate = async (data: MailTemplateVO) => { - return await request.post({ url: '/system/mail-template/create', data }) -} - -// 修改邮件模版 -export const updateMailTemplate = async (data: MailTemplateVO) => { - return await request.put({ url: '/system/mail-template/update', data }) -} - -// 删除邮件模版 -export const deleteMailTemplate = async (id: number) => { - return await request.delete({ url: '/system/mail-template/delete?id=' + id }) -} - -// 发送邮件 -export const sendMail = (data: MailSendReqVO) => { - return request.post({ url: '/system/mail-template/send-mail', data }) -} diff --git a/yshop-drink-vue/src/api/system/menu/index.ts b/yshop-drink-vue/src/api/system/menu/index.ts deleted file mode 100644 index 4bb9a87..0000000 --- a/yshop-drink-vue/src/api/system/menu/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import request from '@/config/axios' - -export interface MenuVO { - id: number - name: string - permission: string - type: number - sort: number - parentId: number - path: string - icon: string - component: string - componentName?: string - status: number - visible: boolean - keepAlive: boolean - alwaysShow?: boolean - createTime: Date -} - -// 查询菜单(精简)列表 -export const getSimpleMenusList = () => { - return request.get({ url: '/system/menu/list-all-simple' }) -} - -// 查询菜单列表 -export const getMenuList = (params) => { - return request.get({ url: '/system/menu/list', params }) -} - -// 获取菜单详情 -export const getMenu = (id: number) => { - return request.get({ url: '/system/menu/get?id=' + id }) -} - -// 新增菜单 -export const createMenu = (data: MenuVO) => { - return request.post({ url: '/system/menu/create', data }) -} - -// 修改菜单 -export const updateMenu = (data: MenuVO) => { - return request.put({ url: '/system/menu/update', data }) -} - -// 删除菜单 -export const deleteMenu = (id: number) => { - return request.delete({ url: '/system/menu/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/notice/index.ts b/yshop-drink-vue/src/api/system/notice/index.ts deleted file mode 100644 index 62bf525..0000000 --- a/yshop-drink-vue/src/api/system/notice/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import request from '@/config/axios' - -export interface NoticeVO { - id: number | undefined - title: string - type: number - content: string - status: number - remark: string - creator: string - createTime: Date -} - -// 查询公告列表 -export const getNoticePage = (params: PageParam) => { - return request.get({ url: '/system/notice/page', params }) -} - -// 查询公告详情 -export const getNotice = (id: number) => { - return request.get({ url: '/system/notice/get?id=' + id }) -} - -// 新增公告 -export const createNotice = (data: NoticeVO) => { - return request.post({ url: '/system/notice/create', data }) -} - -// 修改公告 -export const updateNotice = (data: NoticeVO) => { - return request.put({ url: '/system/notice/update', data }) -} - -// 删除公告 -export const deleteNotice = (id: number) => { - return request.delete({ url: '/system/notice/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/notify/message/index.ts b/yshop-drink-vue/src/api/system/notify/message/index.ts deleted file mode 100644 index 29036b9..0000000 --- a/yshop-drink-vue/src/api/system/notify/message/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import request from '@/config/axios' -import qs from 'qs' - -export interface NotifyMessageVO { - id: number - userId: number - userType: number - templateId: number - templateCode: string - templateNickname: string - templateContent: string - templateType: number - templateParams: string - readStatus: boolean - readTime: Date -} - -// 查询站内信消息列表 -export const getNotifyMessagePage = async (params: PageParam) => { - return await request.get({ url: '/system/notify-message/page', params }) -} - -// 获得我的站内信分页 -export const getMyNotifyMessagePage = async (params: PageParam) => { - return await request.get({ url: '/system/notify-message/my-page', params }) -} - -// 批量标记已读 -export const updateNotifyMessageRead = async (ids) => { - return await request.put({ - url: '/system/notify-message/update-read?' + qs.stringify({ ids: ids }, { indices: false }) - }) -} - -// 标记所有站内信为已读 -export const updateAllNotifyMessageRead = async () => { - return await request.put({ url: '/system/notify-message/update-all-read' }) -} - -// 获取当前用户的最新站内信列表 -export const getUnreadNotifyMessageList = async () => { - return await request.get({ url: '/system/notify-message/get-unread-list' }) -} - -// 获得当前用户的未读站内信数量 -export const getUnreadNotifyMessageCount = async () => { - return await request.get({ url: '/system/notify-message/get-unread-count' }) -} diff --git a/yshop-drink-vue/src/api/system/notify/template/index.ts b/yshop-drink-vue/src/api/system/notify/template/index.ts deleted file mode 100644 index cd0e122..0000000 --- a/yshop-drink-vue/src/api/system/notify/template/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import request from '@/config/axios' - -export interface NotifyTemplateVO { - id?: number - name: string - nickname: string - code: string - content: string - type: number - params: string - status: number - remark: string -} - -export interface NotifySendReqVO { - userId: number | null - templateCode: string - templateParams: Map -} - -// 查询站内信模板列表 -export const getNotifyTemplatePage = async (params: PageParam) => { - return await request.get({ url: '/system/notify-template/page', params }) -} - -// 查询站内信模板详情 -export const getNotifyTemplate = async (id: number) => { - return await request.get({ url: '/system/notify-template/get?id=' + id }) -} - -// 新增站内信模板 -export const createNotifyTemplate = async (data: NotifyTemplateVO) => { - return await request.post({ url: '/system/notify-template/create', data }) -} - -// 修改站内信模板 -export const updateNotifyTemplate = async (data: NotifyTemplateVO) => { - return await request.put({ url: '/system/notify-template/update', data }) -} - -// 删除站内信模板 -export const deleteNotifyTemplate = async (id: number) => { - return await request.delete({ url: '/system/notify-template/delete?id=' + id }) -} - -// 发送站内信 -export const sendNotify = (data: NotifySendReqVO) => { - return request.post({ url: '/system/notify-template/send-notify', data }) -} diff --git a/yshop-drink-vue/src/api/system/oauth2/client.ts b/yshop-drink-vue/src/api/system/oauth2/client.ts deleted file mode 100644 index 6f71aca..0000000 --- a/yshop-drink-vue/src/api/system/oauth2/client.ts +++ /dev/null @@ -1,47 +0,0 @@ -import request from '@/config/axios' - -export interface OAuth2ClientVO { - id: number - clientId: string - secret: string - name: string - logo: string - description: string - status: number - accessTokenValiditySeconds: number - refreshTokenValiditySeconds: number - redirectUris: string[] - autoApprove: boolean - authorizedGrantTypes: string[] - scopes: string[] - authorities: string[] - resourceIds: string[] - additionalInformation: string - isAdditionalInformationJson: boolean - createTime: Date -} - -// 查询 OAuth2 客户端的列表 -export const getOAuth2ClientPage = (params: PageParam) => { - return request.get({ url: '/system/oauth2-client/page', params }) -} - -// 查询 OAuth2 客户端的详情 -export const getOAuth2Client = (id: number) => { - return request.get({ url: '/system/oauth2-client/get?id=' + id }) -} - -// 新增 OAuth2 客户端 -export const createOAuth2Client = (data: OAuth2ClientVO) => { - return request.post({ url: '/system/oauth2-client/create', data }) -} - -// 修改 OAuth2 客户端 -export const updateOAuth2Client = (data: OAuth2ClientVO) => { - return request.put({ url: '/system/oauth2-client/update', data }) -} - -// 删除 OAuth2 -export const deleteOAuth2Client = (id: number) => { - return request.delete({ url: '/system/oauth2-client/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/oauth2/token.ts b/yshop-drink-vue/src/api/system/oauth2/token.ts deleted file mode 100644 index 8e9dca1..0000000 --- a/yshop-drink-vue/src/api/system/oauth2/token.ts +++ /dev/null @@ -1,22 +0,0 @@ -import request from '@/config/axios' - -export interface OAuth2TokenVO { - id: number - accessToken: string - refreshToken: string - userId: number - userType: number - clientId: string - createTime: Date - expiresTime: Date -} - -// 查询 token列表 -export const getAccessTokenPage = (params: PageParam) => { - return request.get({ url: '/system/oauth2-token/page', params }) -} - -// 删除 token -export const deleteAccessToken = (accessToken: number) => { - return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken }) -} diff --git a/yshop-drink-vue/src/api/system/operatelog/index.ts b/yshop-drink-vue/src/api/system/operatelog/index.ts deleted file mode 100644 index 848a533..0000000 --- a/yshop-drink-vue/src/api/system/operatelog/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import request from '@/config/axios' - -export type OperateLogVO = { - id: number - userNickname: string - traceId: string - userId: number - module: string - name: string - type: number - content: string - exts: Map - requestMethod: string - requestUrl: string - userIp: string - userAgent: string - javaMethod: string - javaMethodArgs: string - startTime: Date - duration: number - resultCode: number - resultMsg: string - resultData: string -} - -// 查询操作日志列表 -export const getOperateLogPage = (params: PageParam) => { - return request.get({ url: '/system/operate-log/page', params }) -} -// 导出操作日志 -export const exportOperateLog = (params) => { - return request.download({ url: '/system/operate-log/export', params }) -} diff --git a/yshop-drink-vue/src/api/system/permission/index.ts b/yshop-drink-vue/src/api/system/permission/index.ts deleted file mode 100644 index baf2805..0000000 --- a/yshop-drink-vue/src/api/system/permission/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import request from '@/config/axios' - -export interface PermissionAssignUserRoleReqVO { - userId: number - roleIds: number[] -} - -export interface PermissionAssignRoleMenuReqVO { - roleId: number - menuIds: number[] -} - -export interface PermissionAssignRoleDataScopeReqVO { - roleId: number - dataScope: number - dataScopeDeptIds: number[] -} - -// 查询角色拥有的菜单权限 -export const getRoleMenuList = async (roleId: number) => { - return await request.get({ url: '/system/permission/list-role-resources?roleId=' + roleId }) -} - -// 赋予角色菜单权限 -export const assignRoleMenu = async (data: PermissionAssignRoleMenuReqVO) => { - return await request.post({ url: '/system/permission/assign-role-menu', data }) -} - -// 赋予角色数据权限 -export const assignRoleDataScope = async (data: PermissionAssignRoleDataScopeReqVO) => { - return await request.post({ url: '/system/permission/assign-role-data-scope', data }) -} - -// 查询用户拥有的角色数组 -export const getUserRoleList = async (userId: number) => { - return await request.get({ url: '/system/permission/list-user-roles?userId=' + userId }) -} - -// 赋予用户角色 -export const assignUserRole = async (data: PermissionAssignUserRoleReqVO) => { - return await request.post({ url: '/system/permission/assign-user-role', data }) -} diff --git a/yshop-drink-vue/src/api/system/post/index.ts b/yshop-drink-vue/src/api/system/post/index.ts deleted file mode 100644 index 405db38..0000000 --- a/yshop-drink-vue/src/api/system/post/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import request from '@/config/axios' - -export interface PostVO { - id?: number - name: string - code: string - sort: number - status: number - remark: string - createTime?: Date -} - -// 查询岗位列表 -export const getPostPage = async (params: PageParam) => { - return await request.get({ url: '/system/post/page', params }) -} - -// 获取岗位精简信息列表 -export const getSimplePostList = async (): Promise => { - return await request.get({ url: '/system/post/list-all-simple' }) -} - -// 查询岗位详情 -export const getPost = async (id: number) => { - return await request.get({ url: '/system/post/get?id=' + id }) -} - -// 新增岗位 -export const createPost = async (data: PostVO) => { - return await request.post({ url: '/system/post/create', data }) -} - -// 修改岗位 -export const updatePost = async (data: PostVO) => { - return await request.put({ url: '/system/post/update', data }) -} - -// 删除岗位 -export const deletePost = async (id: number) => { - return await request.delete({ url: '/system/post/delete?id=' + id }) -} - -// 导出岗位 -export const exportPost = async (params) => { - return await request.download({ url: '/system/post/export', params }) -} diff --git a/yshop-drink-vue/src/api/system/role/index.ts b/yshop-drink-vue/src/api/system/role/index.ts deleted file mode 100644 index 93636ff..0000000 --- a/yshop-drink-vue/src/api/system/role/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import request from '@/config/axios' - -export interface RoleVO { - id: number - name: string - code: string - sort: number - status: number - type: number - dataScope: number - dataScopeDeptIds: number[] - createTime: Date -} - -export interface UpdateStatusReqVO { - id: number - status: number -} - -// 查询角色列表 -export const getRolePage = async (params: PageParam) => { - return await request.get({ url: '/system/role/page', params }) -} - -// 查询角色(精简)列表 -export const getSimpleRoleList = async (): Promise => { - return await request.get({ url: '/system/role/list-all-simple' }) -} - -// 查询角色详情 -export const getRole = async (id: number) => { - return await request.get({ url: '/system/role/get?id=' + id }) -} - -// 新增角色 -export const createRole = async (data: RoleVO) => { - return await request.post({ url: '/system/role/create', data }) -} - -// 修改角色 -export const updateRole = async (data: RoleVO) => { - return await request.put({ url: '/system/role/update', data }) -} - -// 修改角色状态 -export const updateRoleStatus = async (data: UpdateStatusReqVO) => { - return await request.put({ url: '/system/role/update-status', data }) -} - -// 删除角色 -export const deleteRole = async (id: number) => { - return await request.delete({ url: '/system/role/delete?id=' + id }) -} - -// 导出角色 -export const exportRole = (params) => { - return request.download({ - url: '/system/role/export-excel', - params - }) -} diff --git a/yshop-drink-vue/src/api/system/sensitiveWord/index.ts b/yshop-drink-vue/src/api/system/sensitiveWord/index.ts deleted file mode 100644 index 1116226..0000000 --- a/yshop-drink-vue/src/api/system/sensitiveWord/index.ts +++ /dev/null @@ -1,58 +0,0 @@ -import request from '@/config/axios' -import qs from 'qs' - -export interface SensitiveWordVO { - id: number - name: string - status: number - description: string - tags: string[] - createTime: Date -} - -export interface SensitiveWordTestReqVO { - text: string - tag: string[] -} - -// 查询敏感词列表 -export const getSensitiveWordPage = (params: PageParam) => { - return request.get({ url: '/system/sensitive-word/page', params }) -} - -// 查询敏感词详情 -export const getSensitiveWord = (id: number) => { - return request.get({ url: '/system/sensitive-word/get?id=' + id }) -} - -// 新增敏感词 -export const createSensitiveWord = (data: SensitiveWordVO) => { - return request.post({ url: '/system/sensitive-word/create', data }) -} - -// 修改敏感词 -export const updateSensitiveWord = (data: SensitiveWordVO) => { - return request.put({ url: '/system/sensitive-word/update', data }) -} - -// 删除敏感词 -export const deleteSensitiveWord = (id: number) => { - return request.delete({ url: '/system/sensitive-word/delete?id=' + id }) -} - -// 导出敏感词 -export const exportSensitiveWord = (params) => { - return request.download({ url: '/system/sensitive-word/export-excel', params }) -} - -// 获取所有敏感词的标签数组 -export const getSensitiveWordTagList = () => { - return request.get({ url: '/system/sensitive-word/get-tags' }) -} - -// 获得文本所包含的不合法的敏感词数组 -export const validateText = (query: SensitiveWordTestReqVO) => { - return request.get({ - url: '/system/sensitive-word/validate-text?' + qs.stringify(query, { arrayFormat: 'repeat' }) - }) -} diff --git a/yshop-drink-vue/src/api/system/sms/smsChannel/index.ts b/yshop-drink-vue/src/api/system/sms/smsChannel/index.ts deleted file mode 100644 index f335628..0000000 --- a/yshop-drink-vue/src/api/system/sms/smsChannel/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import request from '@/config/axios' - -export interface SmsChannelVO { - id: number - code: string - status: number - signature: string - remark: string - apiKey: string - apiSecret: string - callbackUrl: string - createTime: Date -} - -// 查询短信渠道列表 -export const getSmsChannelPage = (params: PageParam) => { - return request.get({ url: '/system/sms-channel/page', params }) -} - -// 获得短信渠道精简列表 -export function getSimpleSmsChannelList() { - return request.get({ url: '/system/sms-channel/list-all-simple' }) -} - -// 查询短信渠道详情 -export const getSmsChannel = (id: number) => { - return request.get({ url: '/system/sms-channel/get?id=' + id }) -} - -// 新增短信渠道 -export const createSmsChannel = (data: SmsChannelVO) => { - return request.post({ url: '/system/sms-channel/create', data }) -} - -// 修改短信渠道 -export const updateSmsChannel = (data: SmsChannelVO) => { - return request.put({ url: '/system/sms-channel/update', data }) -} - -// 删除短信渠道 -export const deleteSmsChannel = (id: number) => { - return request.delete({ url: '/system/sms-channel/delete?id=' + id }) -} diff --git a/yshop-drink-vue/src/api/system/sms/smsLog/index.ts b/yshop-drink-vue/src/api/system/sms/smsLog/index.ts deleted file mode 100644 index 3d54fac..0000000 --- a/yshop-drink-vue/src/api/system/sms/smsLog/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -export interface SmsLogVO { - id: number | null - channelId: number | null - channelCode: string - templateId: number | null - templateCode: string - templateType: number | null - templateContent: string - templateParams: Map | null - apiTemplateId: string - mobile: string - userId: number | null - userType: number | null - sendStatus: number | null - sendTime: Date | null - sendCode: number | null - sendMsg: string - apiSendCode: string - apiSendMsg: string - apiRequestId: string - apiSerialNo: string - receiveStatus: number | null - receiveTime: Date | null - apiReceiveCode: string - apiReceiveMsg: string - createTime: Date | null -} - -// 查询短信日志列表 -export const getSmsLogPage = (params: PageParam) => { - return request.get({ url: '/system/sms-log/page', params }) -} - -// 导出短信日志 -export const exportSmsLog = (params) => { - return request.download({ url: '/system/sms-log/export-excel', params }) -} diff --git a/yshop-drink-vue/src/api/system/sms/smsTemplate/index.ts b/yshop-drink-vue/src/api/system/sms/smsTemplate/index.ts deleted file mode 100644 index 35cb489..0000000 --- a/yshop-drink-vue/src/api/system/sms/smsTemplate/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/config/axios' - -export interface SmsTemplateVO { - id: number | null - type: number | null - status: number - code: string - name: string - content: string - remark: string - apiTemplateId: string - channelId: number | null - channelCode?: string - params?: string[] - createTime?: Date -} - -export interface SendSmsReqVO { - mobile: string - templateCode: string - templateParams: Map -} - -// 查询短信模板列表 -export const getSmsTemplatePage = (params: PageParam) => { - return request.get({ url: '/system/sms-template/page', params }) -} - -// 查询短信模板详情 -export const getSmsTemplate = (id: number) => { - return request.get({ url: '/system/sms-template/get?id=' + id }) -} - -// 新增短信模板 -export const createSmsTemplate = (data: SmsTemplateVO) => { - return request.post({ url: '/system/sms-template/create', data }) -} - -// 修改短信模板 -export const updateSmsTemplate = (data: SmsTemplateVO) => { - return request.put({ url: '/system/sms-template/update', data }) -} - -// 删除短信模板 -export const deleteSmsTemplate = (id: number) => { - return request.delete({ url: '/system/sms-template/delete?id=' + id }) -} - -// 导出短信模板 -export const exportSmsTemplate = (params) => { - return request.download({ - url: '/system/sms-template/export-excel', - params - }) -} - -// 发送短信 -export const sendSms = (data: SendSmsReqVO) => { - return request.post({ url: '/system/sms-template/send-sms', data }) -} diff --git a/yshop-drink-vue/src/api/system/tenant/index.ts b/yshop-drink-vue/src/api/system/tenant/index.ts deleted file mode 100644 index 176c375..0000000 --- a/yshop-drink-vue/src/api/system/tenant/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import request from '@/config/axios' - -export interface TenantVO { - id: number - name: string - contactName: string - contactMobile: string - status: number - domain: string - packageId: number - username: string - password: string - expireTime: Date - accountCount: number - createTime: Date -} - -export interface TenantPageReqVO extends PageParam { - name?: string - contactName?: string - contactMobile?: string - status?: number - createTime?: Date[] -} - -export interface TenantExportReqVO { - name?: string - contactName?: string - contactMobile?: string - status?: number - createTime?: Date[] -} - -// 查询租户列表 -export const getTenantPage = (params: TenantPageReqVO) => { - return request.get({ url: '/system/tenant/page', params }) -} - -// 查询租户详情 -export const getTenant = (id: number) => { - return request.get({ url: '/system/tenant/get?id=' + id }) -} - -// 新增租户 -export const createTenant = (data: TenantVO) => { - return request.post({ url: '/system/tenant/create', data }) -} - -// 修改租户 -export const updateTenant = (data: TenantVO) => { - return request.put({ url: '/system/tenant/update', data }) -} - -// 删除租户 -export const deleteTenant = (id: number) => { - return request.delete({ url: '/system/tenant/delete?id=' + id }) -} - -// 导出租户 -export const exportTenant = (params: TenantExportReqVO) => { - return request.download({ url: '/system/tenant/export-excel', params }) -} diff --git a/yshop-drink-vue/src/api/system/tenantPackage/index.ts b/yshop-drink-vue/src/api/system/tenantPackage/index.ts deleted file mode 100644 index 01d139e..0000000 --- a/yshop-drink-vue/src/api/system/tenantPackage/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import request from '@/config/axios' - -export interface TenantPackageVO { - id: number - name: string - status: number - remark: string - creator: string - updater: string - updateTime: string - menuIds: number[] - createTime: Date -} - -// 查询租户套餐列表 -export const getTenantPackagePage = (params: PageParam) => { - return request.get({ url: '/system/tenant-package/page', params }) -} - -// 获得租户 -export const getTenantPackage = (id: number) => { - return request.get({ url: '/system/tenant-package/get?id=' + id }) -} - -// 新增租户套餐 -export const createTenantPackage = (data: TenantPackageVO) => { - return request.post({ url: '/system/tenant-package/create', data }) -} - -// 修改租户套餐 -export const updateTenantPackage = (data: TenantPackageVO) => { - return request.put({ url: '/system/tenant-package/update', data }) -} - -// 删除租户套餐 -export const deleteTenantPackage = (id: number) => { - return request.delete({ url: '/system/tenant-package/delete?id=' + id }) -} -// 获取租户套餐精简信息列表 -export const getTenantPackageList = () => { - return request.get({ url: '/system/tenant-package/get-simple-list' }) -} diff --git a/yshop-drink-vue/src/api/system/user/index.ts b/yshop-drink-vue/src/api/system/user/index.ts deleted file mode 100644 index 6224f0e..0000000 --- a/yshop-drink-vue/src/api/system/user/index.ts +++ /dev/null @@ -1,76 +0,0 @@ -import request from '@/config/axios' - -export interface UserVO { - id: number - username: string - nickname: string - deptId: number - postIds: string[] - email: string - mobile: string - sex: number - avatar: string - loginIp: string - status: number - remark: string - loginDate: Date - createTime: Date -} - -// 查询用户管理列表 -export const getUserPage = (params: PageParam) => { - return request.get({ url: '/system/user/page', params }) -} - -// 查询用户详情 -export const getUser = (id: number) => { - return request.get({ url: '/system/user/get?id=' + id }) -} - -// 新增用户 -export const createUser = (data: UserVO) => { - return request.post({ url: '/system/user/create', data }) -} - -// 修改用户 -export const updateUser = (data: UserVO) => { - return request.put({ url: '/system/user/update', data }) -} - -// 删除用户 -export const deleteUser = (id: number) => { - return request.delete({ url: '/system/user/delete?id=' + id }) -} - -// 导出用户 -export const exportUser = (params) => { - return request.download({ url: '/system/user/export', params }) -} - -// 下载用户导入模板 -export const importUserTemplate = () => { - return request.download({ url: '/system/user/get-import-template' }) -} - -// 用户密码重置 -export const resetUserPwd = (id: number, password: string) => { - const data = { - id, - password - } - return request.put({ url: '/system/user/update-password', data: data }) -} - -// 用户状态修改 -export const updateUserStatus = (id: number, status: number) => { - const data = { - id, - status - } - return request.put({ url: '/system/user/update-status', data: data }) -} - -// 获取用户精简信息列表 -export const getSimpleUserList = (): Promise => { - return request.get({ url: '/system/user/list-all-simple' }) -} diff --git a/yshop-drink-vue/src/api/system/user/profile.ts b/yshop-drink-vue/src/api/system/user/profile.ts deleted file mode 100644 index b2623c8..0000000 --- a/yshop-drink-vue/src/api/system/user/profile.ts +++ /dev/null @@ -1,77 +0,0 @@ -import request from '@/config/axios' - -export interface ProfileDept { - id: number - name: string -} -export interface ProfileRole { - id: number - name: string -} -export interface ProfilePost { - id: number - name: string -} -export interface SocialUser { - id: number - type: number - openid: string - token: string - rawTokenInfo: string - nickname: string - avatar: string - rawUserInfo: string - code: string - state: string -} -export interface ProfileVO { - id: number - username: string - nickname: string - dept: ProfileDept - roles: ProfileRole[] - posts: ProfilePost[] - socialUsers: SocialUser[] - email: string - mobile: string - sex: number - avatar: string - status: number - remark: string - loginIp: string - loginDate: Date - createTime: Date -} - -export interface UserProfileUpdateReqVO { - nickname: string - email: string - mobile: string - sex: number -} - -// 查询用户个人信息 -export const getUserProfile = () => { - return request.get({ url: '/system/user/profile/get' }) -} - -// 修改用户个人信息 -export const updateUserProfile = (data: UserProfileUpdateReqVO) => { - return request.put({ url: '/system/user/profile/update', data }) -} - -// 用户密码重置 -export const updateUserPassword = (oldPassword: string, newPassword: string) => { - return request.put({ - url: '/system/user/profile/update-password', - data: { - oldPassword: oldPassword, - newPassword: newPassword - } - }) -} - -// 用户头像上传 -export const uploadAvatar = (data) => { - return request.upload({ url: '/system/user/profile/update-avatar', data: data }) -} diff --git a/yshop-drink-vue/src/api/system/user/socialUser.ts b/yshop-drink-vue/src/api/system/user/socialUser.ts deleted file mode 100644 index 79f4d40..0000000 --- a/yshop-drink-vue/src/api/system/user/socialUser.ts +++ /dev/null @@ -1,31 +0,0 @@ -import request from '@/config/axios' - -// 社交绑定,使用 code 授权码 -export const socialBind = (type, code, state) => { - return request.post({ - url: '/system/social-user/bind', - data: { - type, - code, - state - } - }) -} - -// 取消社交绑定 -export const socialUnbind = (type, openid) => { - return request.delete({ - url: '/system/social-user/unbind', - data: { - type, - openid - } - }) -} - -// 社交授权的跳转 -export const socialAuthRedirect = (type, redirectUri) => { - return request.get({ - url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri - }) -} diff --git a/yshop-drink-vue/src/api/tools/material.js b/yshop-drink-vue/src/api/tools/material.js deleted file mode 100644 index 855ac03..0000000 --- a/yshop-drink-vue/src/api/tools/material.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * @Author: Gaoxs - * @Date: 2023-05-21 23:40:06 - * @LastEditors: Gaoxs - * @Description: - */ -import request from '@/config/axios' - -export async function getPage(query) { - return await request.get({ - url: '/shop/material/page', - - params: query - }) -} - -export async function addObj(obj) { - return await request.post({ - url: '/shop/material/create', - - data: obj - }) -} - -export async function getObj(id) { - return await request.ge({ - url: '/shop/material/' + id - }) -} - -export async function delObj(id) { - return await request.delete({ - url: '/shop/material/delete', - params: { - id - } - }) -} - -export async function putObj(obj) { - return await request.put({ - url: '/shop/material/update', - - data: obj - }) -} diff --git a/yshop-drink-vue/src/api/tools/materialgroup.js b/yshop-drink-vue/src/api/tools/materialgroup.js deleted file mode 100644 index 4c9b02d..0000000 --- a/yshop-drink-vue/src/api/tools/materialgroup.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * @Author: Gaoxs - * @Date: 2023-05-21 23:40:06 - * @LastEditors: Gaoxs - * @Description: - */ -import request from '@/config/axios' - -export async function getPage(query) { - return await request.get({ - url: '/shop/material-group/page', - - params: query - }) -} - -export async function getList(query) { - return await request.get({ - url: '/shop/material-group/list', - - params: query - }) -} - -export async function addObj(obj) { - return await request.post({ - url: '/shop/material-group/create', - - data: obj - }) -} - -export async function getObj(id) { - return await request.ge({ - url: '/shop/material-group/' + id - }) -} - -export async function delObj(id) { - return await request.delete({ - url: '/shop/material-group/delete', - params: { id } - }) -} - -export async function putObj(obj) { - return await request.put({ - url: '/shop/material-group/update', - - data: obj - }) -} diff --git a/yshop-drink-vue/src/assets/imgs/avatar.gif b/yshop-drink-vue/src/assets/imgs/avatar.gif deleted file mode 100644 index fdbd32c..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/avatar.gif and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/avatar.jpg b/yshop-drink-vue/src/assets/imgs/avatar.jpg deleted file mode 100644 index d46a70a..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/avatar.jpg and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/icons.png b/yshop-drink-vue/src/assets/imgs/icons.png deleted file mode 100644 index c015e3a..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/icons.png and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/login_bg.png b/yshop-drink-vue/src/assets/imgs/login_bg.png deleted file mode 100644 index b2708ed..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/login_bg.png and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/logo.png b/yshop-drink-vue/src/assets/imgs/logo.png deleted file mode 100644 index a155913..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/logo.png and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/profile.jpg b/yshop-drink-vue/src/assets/imgs/profile.jpg deleted file mode 100644 index e4bcf87..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/profile.jpg and /dev/null differ diff --git a/yshop-drink-vue/src/assets/imgs/wechat.png b/yshop-drink-vue/src/assets/imgs/wechat.png deleted file mode 100644 index 6afc5e4..0000000 Binary files a/yshop-drink-vue/src/assets/imgs/wechat.png and /dev/null differ diff --git a/yshop-drink-vue/src/assets/svgs/403.svg b/yshop-drink-vue/src/assets/svgs/403.svg deleted file mode 100644 index 4500596..0000000 --- a/yshop-drink-vue/src/assets/svgs/403.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/404.svg b/yshop-drink-vue/src/assets/svgs/404.svg deleted file mode 100644 index 5244d8d..0000000 --- a/yshop-drink-vue/src/assets/svgs/404.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/500.svg b/yshop-drink-vue/src/assets/svgs/500.svg deleted file mode 100644 index 9c02092..0000000 --- a/yshop-drink-vue/src/assets/svgs/500.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/icon.svg b/yshop-drink-vue/src/assets/svgs/icon.svg deleted file mode 100644 index 7024bec..0000000 --- a/yshop-drink-vue/src/assets/svgs/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/login-bg.svg b/yshop-drink-vue/src/assets/svgs/login-bg.svg deleted file mode 100644 index bbe06c1..0000000 --- a/yshop-drink-vue/src/assets/svgs/login-bg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/login-box-bg.svg b/yshop-drink-vue/src/assets/svgs/login-box-bg.svg deleted file mode 100644 index ab10040..0000000 --- a/yshop-drink-vue/src/assets/svgs/login-box-bg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/message.svg b/yshop-drink-vue/src/assets/svgs/message.svg deleted file mode 100644 index 14ca817..0000000 --- a/yshop-drink-vue/src/assets/svgs/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/money.svg b/yshop-drink-vue/src/assets/svgs/money.svg deleted file mode 100644 index c1580de..0000000 --- a/yshop-drink-vue/src/assets/svgs/money.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/peoples.svg b/yshop-drink-vue/src/assets/svgs/peoples.svg deleted file mode 100644 index aab852e..0000000 --- a/yshop-drink-vue/src/assets/svgs/peoples.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/assets/svgs/shopping.svg b/yshop-drink-vue/src/assets/svgs/shopping.svg deleted file mode 100644 index f395bc7..0000000 --- a/yshop-drink-vue/src/assets/svgs/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/yshop-drink-vue/src/components/Backtop/index.ts b/yshop-drink-vue/src/components/Backtop/index.ts deleted file mode 100644 index 96de88d..0000000 --- a/yshop-drink-vue/src/components/Backtop/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Backtop from './src/Backtop.vue' - -export { Backtop } diff --git a/yshop-drink-vue/src/components/Backtop/src/Backtop.vue b/yshop-drink-vue/src/components/Backtop/src/Backtop.vue deleted file mode 100644 index 70cf78c..0000000 --- a/yshop-drink-vue/src/components/Backtop/src/Backtop.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/ConfigGlobal/index.ts b/yshop-drink-vue/src/components/ConfigGlobal/index.ts deleted file mode 100644 index dda2462..0000000 --- a/yshop-drink-vue/src/components/ConfigGlobal/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ConfigGlobal from './src/ConfigGlobal.vue' - -export { ConfigGlobal } diff --git a/yshop-drink-vue/src/components/ConfigGlobal/src/ConfigGlobal.vue b/yshop-drink-vue/src/components/ConfigGlobal/src/ConfigGlobal.vue deleted file mode 100644 index 20ff035..0000000 --- a/yshop-drink-vue/src/components/ConfigGlobal/src/ConfigGlobal.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/ContentDetailWrap/index.ts b/yshop-drink-vue/src/components/ContentDetailWrap/index.ts deleted file mode 100644 index 1871cac..0000000 --- a/yshop-drink-vue/src/components/ContentDetailWrap/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ContentDetailWrap from './src/ContentDetailWrap.vue' - -export { ContentDetailWrap } diff --git a/yshop-drink-vue/src/components/ContentDetailWrap/src/ContentDetailWrap.vue b/yshop-drink-vue/src/components/ContentDetailWrap/src/ContentDetailWrap.vue deleted file mode 100644 index 9469a55..0000000 --- a/yshop-drink-vue/src/components/ContentDetailWrap/src/ContentDetailWrap.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/ContentWrap/index.ts b/yshop-drink-vue/src/components/ContentWrap/index.ts deleted file mode 100644 index 8c22cc8..0000000 --- a/yshop-drink-vue/src/components/ContentWrap/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ContentWrap from './src/ContentWrap.vue' - -export { ContentWrap } diff --git a/yshop-drink-vue/src/components/ContentWrap/src/ContentWrap.vue b/yshop-drink-vue/src/components/ContentWrap/src/ContentWrap.vue deleted file mode 100644 index 0fcfb16..0000000 --- a/yshop-drink-vue/src/components/ContentWrap/src/ContentWrap.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/CountTo/index.ts b/yshop-drink-vue/src/components/CountTo/index.ts deleted file mode 100644 index 2119f02..0000000 --- a/yshop-drink-vue/src/components/CountTo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import CountTo from './src/CountTo.vue' - -export { CountTo } diff --git a/yshop-drink-vue/src/components/CountTo/src/CountTo.vue b/yshop-drink-vue/src/components/CountTo/src/CountTo.vue deleted file mode 100644 index c4fa7b5..0000000 --- a/yshop-drink-vue/src/components/CountTo/src/CountTo.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Crontab/index.ts b/yshop-drink-vue/src/components/Crontab/index.ts deleted file mode 100644 index 6beeef8..0000000 --- a/yshop-drink-vue/src/components/Crontab/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Crontab from './src/Crontab.vue' -export { Crontab } diff --git a/yshop-drink-vue/src/components/Crontab/src/Crontab.vue b/yshop-drink-vue/src/components/Crontab/src/Crontab.vue deleted file mode 100644 index 13096f7..0000000 --- a/yshop-drink-vue/src/components/Crontab/src/Crontab.vue +++ /dev/null @@ -1,1009 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/components/Cropper/index.ts b/yshop-drink-vue/src/components/Cropper/index.ts deleted file mode 100644 index 8fcc618..0000000 --- a/yshop-drink-vue/src/components/Cropper/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import CropperImage from './src/Cropper.vue' -import CropperAvatar from './src/CropperAvatar.vue' - -export { CropperImage, CropperAvatar } diff --git a/yshop-drink-vue/src/components/Cropper/src/CopperModal.vue b/yshop-drink-vue/src/components/Cropper/src/CopperModal.vue deleted file mode 100644 index c303b58..0000000 --- a/yshop-drink-vue/src/components/Cropper/src/CopperModal.vue +++ /dev/null @@ -1,257 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Cropper/src/Cropper.vue b/yshop-drink-vue/src/components/Cropper/src/Cropper.vue deleted file mode 100644 index ced43f9..0000000 --- a/yshop-drink-vue/src/components/Cropper/src/Cropper.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Cropper/src/CropperAvatar.vue b/yshop-drink-vue/src/components/Cropper/src/CropperAvatar.vue deleted file mode 100644 index 179e0ec..0000000 --- a/yshop-drink-vue/src/components/Cropper/src/CropperAvatar.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Cropper/src/types.ts b/yshop-drink-vue/src/components/Cropper/src/types.ts deleted file mode 100644 index bcad3b4..0000000 --- a/yshop-drink-vue/src/components/Cropper/src/types.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type Cropper from 'cropperjs' - -export interface CropendResult { - imgBase64: string - imgInfo: Cropper.Data -} - -export type { Cropper } diff --git a/yshop-drink-vue/src/components/Descriptions/index.ts b/yshop-drink-vue/src/components/Descriptions/index.ts deleted file mode 100644 index 91b0eb4..0000000 --- a/yshop-drink-vue/src/components/Descriptions/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Descriptions from './src/Descriptions.vue' - -export { Descriptions } diff --git a/yshop-drink-vue/src/components/Descriptions/src/Descriptions.vue b/yshop-drink-vue/src/components/Descriptions/src/Descriptions.vue deleted file mode 100644 index 829c201..0000000 --- a/yshop-drink-vue/src/components/Descriptions/src/Descriptions.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Dialog/index.ts b/yshop-drink-vue/src/components/Dialog/index.ts deleted file mode 100644 index 1655dad..0000000 --- a/yshop-drink-vue/src/components/Dialog/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Dialog from './src/Dialog.vue' - -export { Dialog } diff --git a/yshop-drink-vue/src/components/Dialog/src/Dialog.vue b/yshop-drink-vue/src/components/Dialog/src/Dialog.vue deleted file mode 100644 index 449174d..0000000 --- a/yshop-drink-vue/src/components/Dialog/src/Dialog.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/DictTag/index.ts b/yshop-drink-vue/src/components/DictTag/index.ts deleted file mode 100644 index 4db2742..0000000 --- a/yshop-drink-vue/src/components/DictTag/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DictTag from './src/DictTag.vue' - -export { DictTag } diff --git a/yshop-drink-vue/src/components/DictTag/src/DictTag.vue b/yshop-drink-vue/src/components/DictTag/src/DictTag.vue deleted file mode 100644 index db37f71..0000000 --- a/yshop-drink-vue/src/components/DictTag/src/DictTag.vue +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/yshop-drink-vue/src/components/DocAlert/index.vue b/yshop-drink-vue/src/components/DocAlert/index.vue deleted file mode 100644 index 7ca29f7..0000000 --- a/yshop-drink-vue/src/components/DocAlert/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Echart/index.ts b/yshop-drink-vue/src/components/Echart/index.ts deleted file mode 100644 index 4822092..0000000 --- a/yshop-drink-vue/src/components/Echart/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Echart from './src/Echart.vue' - -export { Echart } diff --git a/yshop-drink-vue/src/components/Echart/src/Echart.vue b/yshop-drink-vue/src/components/Echart/src/Echart.vue deleted file mode 100644 index 31f2eea..0000000 --- a/yshop-drink-vue/src/components/Echart/src/Echart.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Editor/index.ts b/yshop-drink-vue/src/components/Editor/index.ts deleted file mode 100644 index 3fbf0a9..0000000 --- a/yshop-drink-vue/src/components/Editor/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Editor from './src/Editor.vue' -import { IDomEditor } from '@wangeditor/editor' - -export interface EditorExpose { - getEditorRef: () => Promise -} - -export { Editor } diff --git a/yshop-drink-vue/src/components/Editor/src/Editor.vue b/yshop-drink-vue/src/components/Editor/src/Editor.vue deleted file mode 100644 index 39845c7..0000000 --- a/yshop-drink-vue/src/components/Editor/src/Editor.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Error/index.ts b/yshop-drink-vue/src/components/Error/index.ts deleted file mode 100644 index a52c6f9..0000000 --- a/yshop-drink-vue/src/components/Error/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Error from './src/Error.vue' - -export { Error } diff --git a/yshop-drink-vue/src/components/Error/src/Error.vue b/yshop-drink-vue/src/components/Error/src/Error.vue deleted file mode 100644 index f8652a1..0000000 --- a/yshop-drink-vue/src/components/Error/src/Error.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Form/index.ts b/yshop-drink-vue/src/components/Form/index.ts deleted file mode 100644 index 484c7a2..0000000 --- a/yshop-drink-vue/src/components/Form/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Form from './src/Form.vue' -import { ElForm } from 'element-plus' -import { FormSchema, FormSetPropsType } from '@/types/form' - -export interface FormExpose { - setValues: (data: Recordable) => void - setProps: (props: Recordable) => void - delSchema: (field: string) => void - addSchema: (formSchema: FormSchema, index?: number) => void - setSchema: (schemaProps: FormSetPropsType[]) => void - formModel: Recordable - getElFormRef: () => ComponentRef -} - -export { Form } diff --git a/yshop-drink-vue/src/components/Form/src/Form.vue b/yshop-drink-vue/src/components/Form/src/Form.vue deleted file mode 100644 index c112164..0000000 --- a/yshop-drink-vue/src/components/Form/src/Form.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Form/src/componentMap.ts b/yshop-drink-vue/src/components/Form/src/componentMap.ts deleted file mode 100644 index 5af9b40..0000000 --- a/yshop-drink-vue/src/components/Form/src/componentMap.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { Component } from 'vue' -import { - ElCascader, - ElCheckboxGroup, - ElColorPicker, - ElDatePicker, - ElInput, - ElInputNumber, - ElRadioGroup, - ElRate, - ElSelect, - ElSelectV2, - ElTreeSelect, - ElSlider, - ElSwitch, - ElTimePicker, - ElTimeSelect, - ElTransfer, - ElAutocomplete, - ElDivider -} from 'element-plus' -import { InputPassword } from '@/components/InputPassword' -import { Editor } from '@/components/Editor' -import { UploadImg, UploadImgs, UploadFile } from '@/components/UploadFile' -import { ComponentName } from '@/types/components' - -const componentMap: Recordable = { - Radio: ElRadioGroup, - Checkbox: ElCheckboxGroup, - CheckboxButton: ElCheckboxGroup, - Input: ElInput, - Autocomplete: ElAutocomplete, - InputNumber: ElInputNumber, - Select: ElSelect, - Cascader: ElCascader, - Switch: ElSwitch, - Slider: ElSlider, - TimePicker: ElTimePicker, - DatePicker: ElDatePicker, - Rate: ElRate, - ColorPicker: ElColorPicker, - Transfer: ElTransfer, - Divider: ElDivider, - TimeSelect: ElTimeSelect, - SelectV2: ElSelectV2, - TreeSelect: ElTreeSelect, - RadioButton: ElRadioGroup, - InputPassword: InputPassword, - Editor: Editor, - UploadImg: UploadImg, - UploadImgs: UploadImgs, - UploadFile: UploadFile -} - -export { componentMap } diff --git a/yshop-drink-vue/src/components/Form/src/components/useRenderCheckbox.tsx b/yshop-drink-vue/src/components/Form/src/components/useRenderCheckbox.tsx deleted file mode 100644 index e151839..0000000 --- a/yshop-drink-vue/src/components/Form/src/components/useRenderCheckbox.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FormSchema } from '@/types/form' -import { ElCheckbox, ElCheckboxButton } from 'element-plus' -import { defineComponent } from 'vue' - -export const useRenderCheckbox = () => { - const renderCheckboxOptions = (item: FormSchema) => { - // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField - const Com = (item.component === 'Checkbox' ? ElCheckbox : ElCheckboxButton) as ReturnType< - typeof defineComponent - > - return item?.componentProps?.options?.map((option) => { - const { ...other } = option - return ( - - {option[labelAlias || 'label']} - - ) - }) - } - - return { - renderCheckboxOptions - } -} diff --git a/yshop-drink-vue/src/components/Form/src/components/useRenderRadio.tsx b/yshop-drink-vue/src/components/Form/src/components/useRenderRadio.tsx deleted file mode 100644 index d1005ca..0000000 --- a/yshop-drink-vue/src/components/Form/src/components/useRenderRadio.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FormSchema } from '@/types/form' -import { ElRadio, ElRadioButton } from 'element-plus' -import { defineComponent } from 'vue' - -export const useRenderRadio = () => { - const renderRadioOptions = (item: FormSchema) => { - // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField - const Com = (item.component === 'Radio' ? ElRadio : ElRadioButton) as ReturnType< - typeof defineComponent - > - return item?.componentProps?.options?.map((option) => { - const { ...other } = option - return ( - - {option[labelAlias || 'label']} - - ) - }) - } - - return { - renderRadioOptions - } -} diff --git a/yshop-drink-vue/src/components/Form/src/components/useRenderSelect.tsx b/yshop-drink-vue/src/components/Form/src/components/useRenderSelect.tsx deleted file mode 100644 index 59b72e6..0000000 --- a/yshop-drink-vue/src/components/Form/src/components/useRenderSelect.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { FormSchema } from '@/types/form' -import { ComponentOptions } from '@/types/components' -import { ElOption, ElOptionGroup } from 'element-plus' -import { getSlot } from '@/utils/tsxHelper' -import { Slots } from 'vue' - -export const useRenderSelect = (slots: Slots) => { - // 渲染 select options - const renderSelectOptions = (item: FormSchema) => { - // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - return item?.componentProps?.options?.map((option) => { - if (option?.options?.length) { - return ( - - {() => { - return option?.options?.map((v) => { - return renderSelectOptionItem(item, v) - }) - }} - - ) - } else { - return renderSelectOptionItem(item, option) - } - }) - } - - // 渲染 select option item - const renderSelectOptionItem = (item: FormSchema, option: ComponentOptions) => { - // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField - - const { label, value, ...other } = option - - return ( - - {{ - default: () => - // option 插槽名规则,{field}-option - item?.componentProps?.optionsSlot - ? getSlot(slots, `${item.field}-option`, { item: option }) - : undefined - }} - - ) - } - - return { - renderSelectOptions - } -} diff --git a/yshop-drink-vue/src/components/Form/src/helper.ts b/yshop-drink-vue/src/components/Form/src/helper.ts deleted file mode 100644 index 9cab8ff..0000000 --- a/yshop-drink-vue/src/components/Form/src/helper.ts +++ /dev/null @@ -1,148 +0,0 @@ -import type { Slots } from 'vue' -import { getSlot } from '@/utils/tsxHelper' -import { PlaceholderMoel } from './types' -import { FormSchema } from '@/types/form' -import { ColProps } from '@/types/components' - -/** - * - * @param schema 对应组件数据 - * @returns 返回提示信息对象 - * @description 用于自动设置placeholder - */ -export const setTextPlaceholder = (schema: FormSchema): PlaceholderMoel => { - const { t } = useI18n() - const textMap = ['Input', 'Autocomplete', 'InputNumber', 'InputPassword'] - const selectMap = ['Select', 'SelectV2', 'TimePicker', 'DatePicker', 'TimeSelect', 'TimeSelect'] - if (textMap.includes(schema?.component as string)) { - return { - placeholder: t('common.inputText') + schema.label - } - } - if (selectMap.includes(schema?.component as string)) { - // 一些范围选择器 - const twoTextMap = ['datetimerange', 'daterange', 'monthrange', 'datetimerange', 'daterange'] - if ( - twoTextMap.includes( - (schema?.componentProps?.type || schema?.componentProps?.isRange) as string - ) - ) { - return { - startPlaceholder: t('common.startTimeText'), - endPlaceholder: t('common.endTimeText'), - rangeSeparator: '-' - } - } else { - return { - placeholder: t('common.selectText') + schema.label - } - } - } - return {} -} - -/** - * - * @param col 内置栅格 - * @returns 返回栅格属性 - * @description 合并传入进来的栅格属性 - */ -export const setGridProp = (col: ColProps = {}): ColProps => { - const colProps: ColProps = { - // 如果有span,代表用户优先级更高,所以不需要默认栅格 - ...(col.span - ? {} - : { - xs: 24, - sm: 12, - md: 12, - lg: 12, - xl: 12 - }), - ...col - } - return colProps -} - -/** - * - * @param item 传入的组件属性 - * @returns 默认添加 clearable 属性 - */ -export const setComponentProps = (item: FormSchema): Recordable => { - const notNeedClearable = ['ColorPicker'] - const componentProps: Recordable = notNeedClearable.includes(item.component as string) - ? { ...item.componentProps } - : { - clearable: true, - ...item.componentProps - } - // 需要删除额外的属性 - delete componentProps?.slots - return componentProps -} - -/** - * - * @param slots 插槽 - * @param slotsProps 插槽属性 - * @param field 字段名 - */ -export const setItemComponentSlots = ( - slots: Slots, - slotsProps: Recordable = {}, - field: string -): Recordable => { - const slotObj: Recordable = {} - for (const key in slotsProps) { - if (slotsProps[key]) { - // 由于组件有可能重复,需要有一个唯一的前缀 - slotObj[key] = (data: Recordable) => { - return getSlot(slots, `${field}-${key}`, data) - } - } - } - return slotObj -} - -/** - * - * @param schema Form表单结构化数组 - * @param formModel FormMoel - * @returns FormMoel - * @description 生成对应的formModel - */ -export const initModel = (schema: FormSchema[], formModel: Recordable) => { - const model: Recordable = { ...formModel } - schema.map((v) => { - // 如果是hidden,就删除对应的值 - if (v.hidden) { - delete model[v.field] - } else if (v.component && v.component !== 'Divider') { - const hasField = Reflect.has(model, v.field) - // 如果先前已经有值存在,则不进行重新赋值,而是采用现有的值 - model[v.field] = hasField ? model[v.field] : v.value !== void 0 ? v.value : '' - } - }) - return model -} - -/** - * @param slots 插槽 - * @param field 字段名 - * @returns 返回FormIiem插槽 - */ -export const setFormItemSlots = (slots: Slots, field: string): Recordable => { - const slotObj: Recordable = {} - if (slots[`${field}-error`]) { - slotObj['error'] = (data: Recordable) => { - return getSlot(slots, `${field}-error`, data) - } - } - if (slots[`${field}-label`]) { - slotObj['label'] = (data: Recordable) => { - return getSlot(slots, `${field}-label`, data) - } - } - return slotObj -} diff --git a/yshop-drink-vue/src/components/Form/src/types.ts b/yshop-drink-vue/src/components/Form/src/types.ts deleted file mode 100644 index 92a49d8..0000000 --- a/yshop-drink-vue/src/components/Form/src/types.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { FormSchema } from '@/types/form' - -export interface PlaceholderMoel { - placeholder?: string - startPlaceholder?: string - endPlaceholder?: string - rangeSeparator?: string -} - -export type FormProps = { - schema?: FormSchema[] - isCol?: boolean - model?: Recordable - autoSetPlaceholder?: boolean - isCustom?: boolean - labelWidth?: string | number -} & Recordable diff --git a/yshop-drink-vue/src/components/Highlight/index.ts b/yshop-drink-vue/src/components/Highlight/index.ts deleted file mode 100644 index 3e2d9ed..0000000 --- a/yshop-drink-vue/src/components/Highlight/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Highlight from './src/Highlight.vue' - -export { Highlight } diff --git a/yshop-drink-vue/src/components/Highlight/src/Highlight.vue b/yshop-drink-vue/src/components/Highlight/src/Highlight.vue deleted file mode 100644 index ef923a9..0000000 --- a/yshop-drink-vue/src/components/Highlight/src/Highlight.vue +++ /dev/null @@ -1,65 +0,0 @@ - diff --git a/yshop-drink-vue/src/components/IFrame/index.ts b/yshop-drink-vue/src/components/IFrame/index.ts deleted file mode 100644 index 9f8cf24..0000000 --- a/yshop-drink-vue/src/components/IFrame/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import IFrame from './src/IFrame.vue' - -export { IFrame } diff --git a/yshop-drink-vue/src/components/IFrame/src/IFrame.vue b/yshop-drink-vue/src/components/IFrame/src/IFrame.vue deleted file mode 100644 index a8864a7..0000000 --- a/yshop-drink-vue/src/components/IFrame/src/IFrame.vue +++ /dev/null @@ -1,30 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/Icon/index.ts b/yshop-drink-vue/src/components/Icon/index.ts deleted file mode 100644 index 33d1de3..0000000 --- a/yshop-drink-vue/src/components/Icon/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import Icon from './src/Icon.vue' -import IconSelect from './src/IconSelect.vue' - -export { Icon, IconSelect } diff --git a/yshop-drink-vue/src/components/Icon/src/Icon.vue b/yshop-drink-vue/src/components/Icon/src/Icon.vue deleted file mode 100644 index 92d791c..0000000 --- a/yshop-drink-vue/src/components/Icon/src/Icon.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Icon/src/IconSelect.vue b/yshop-drink-vue/src/components/Icon/src/IconSelect.vue deleted file mode 100644 index 04f4a56..0000000 --- a/yshop-drink-vue/src/components/Icon/src/IconSelect.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Icon/src/data.ts b/yshop-drink-vue/src/components/Icon/src/data.ts deleted file mode 100644 index 2a4ed5a..0000000 --- a/yshop-drink-vue/src/components/Icon/src/data.ts +++ /dev/null @@ -1,1961 +0,0 @@ -export const IconJson = { - 'ep:': [ - 'add-location', - 'aim', - 'alarm-clock', - 'apple', - 'arrow-down', - 'arrow-down-bold', - 'arrow-left', - 'arrow-left-bold', - 'arrow-right', - 'arrow-right-bold', - 'arrow-up', - 'arrow-up-bold', - 'avatar', - 'back', - 'baseball', - 'basketball', - 'bell', - 'bell-filled', - 'bicycle', - 'bottom', - 'bottom-left', - 'bottom-right', - 'bowl', - 'box', - 'briefcase', - 'brush', - 'brush-filled', - 'burger', - 'calendar', - 'camera', - 'camera-filled', - 'caret-bottom', - 'caret-left', - 'caret-right', - 'caret-top', - 'cellphone', - 'chat-dot-round', - 'chat-dot-square', - 'chat-line-round', - 'chat-line-square', - 'chat-round', - 'chat-square', - 'check', - 'checked', - 'cherry', - 'chicken', - 'circle-check', - 'circle-check-filled', - 'circle-close', - 'circle-close-filled', - 'circle-plus', - 'circle-plus-filled', - 'clock', - 'close', - 'close-bold', - 'cloudy', - 'coffee', - 'coffee-cup', - 'coin', - 'cold-drink', - 'collection', - 'collection-tag', - 'comment', - 'compass', - 'connection', - 'coordinate', - 'copy-document', - 'cpu', - 'credit-card', - 'crop', - 'd-arrow-left', - 'd-arrow-right', - 'd-caret', - 'data-analysis', - 'data-board', - 'data-line', - 'delete', - 'delete-filled', - 'delete-location', - 'dessert', - 'discount', - 'dish', - 'dish-dot', - 'document', - 'document-add', - 'document-checked', - 'document-copy', - 'document-delete', - 'document-remove', - 'download', - 'drizzling', - 'edit', - 'edit-pen', - 'eleme', - 'eleme-filled', - 'expand', - 'failed', - 'female', - 'files', - 'film', - 'filter', - 'finished', - 'first-aid-kit', - 'flag', - 'fold', - 'folder', - 'folder-add', - 'folder-checked', - 'folder-delete', - 'folder-opened', - 'folder-remove', - 'food', - 'football', - 'fork-spoon', - 'fries', - 'full-screen', - 'goblet', - 'goblet-full', - 'goblet-square', - 'goblet-square-full', - 'goods', - 'goods-filled', - 'grape', - 'grid', - 'guide', - 'headset', - 'help', - 'help-filled', - 'histogram', - 'home-filled', - 'hot-water', - 'house', - 'ice-cream', - 'ice-cream-round', - 'ice-cream-square', - 'ice-drink', - 'ice-tea', - 'info-filled', - 'iphone', - 'key', - 'knife-fork', - 'lightning', - 'link', - 'list', - 'loading', - 'location', - 'location-filled', - 'location-information', - 'lock', - 'lollipop', - 'magic-stick', - 'magnet', - 'male', - 'management', - 'map-location', - 'medal', - 'menu', - 'message', - 'message-box', - 'mic', - 'microphone', - 'milk-tea', - 'minus', - 'money', - 'monitor', - 'moon', - 'moon-night', - 'more', - 'more-filled', - 'mostly-cloudy', - 'mouse', - 'mug', - 'mute', - 'mute-notification', - 'no-smoking', - 'notebook', - 'notification', - 'odometer', - 'office-building', - 'open', - 'operation', - 'opportunity', - 'orange', - 'paperclip', - 'partly-cloudy', - 'pear', - 'phone', - 'phone-filled', - 'picture', - 'picture-filled', - 'picture-rounded', - 'pie-chart', - 'place', - 'platform', - 'plus', - 'pointer', - 'position', - 'postcard', - 'pouring', - 'present', - 'price-tag', - 'printer', - 'promotion', - 'question-filled', - 'rank', - 'reading', - 'reading-lamp', - 'refresh', - 'refresh-left', - 'refresh-right', - 'refrigerator', - 'remove', - 'remove-filled', - 'right', - 'scale-to-original', - 'school', - 'scissor', - 'search', - 'select', - 'sell', - 'semi-select', - 'service', - 'set-up', - 'setting', - 'share', - 'ship', - 'shop', - 'shopping-bag', - 'shopping-cart', - 'shopping-cart-full', - 'smoking', - 'soccer', - 'sold-out', - 'sort', - 'sort-down', - 'sort-up', - 'stamp', - 'star', - 'star-filled', - 'stopwatch', - 'success-filled', - 'sugar', - 'suitcase', - 'sunny', - 'sunrise', - 'sunset', - 'switch', - 'switch-button', - 'takeaway-box', - 'ticket', - 'tickets', - 'timer', - 'toilet-paper', - 'tools', - 'top', - 'top-left', - 'top-right', - 'trend-charts', - 'trophy', - 'turn-off', - 'umbrella', - 'unlock', - 'upload', - 'upload-filled', - 'user', - 'user-filled', - 'van', - 'video-camera', - 'video-camera-filled', - 'video-pause', - 'video-play', - 'view', - 'wallet', - 'wallet-filled', - 'warning', - 'warning-filled', - 'watch', - 'watermelon', - 'wind-power', - 'zoom-in', - 'zoom-out' - ], - 'fa:': [ - '500px', - 'address-book', - 'address-book-o', - 'address-card', - 'address-card-o', - 'adjust', - 'adn', - 'align-center', - 'align-justify', - 'align-left', - 'amazon', - 'ambulance', - 'american-sign-language-interpreting', - 'anchor', - 'android', - 'angellist', - 'angle-double-left', - 'angle-double-up', - 'angle-down', - 'angle-left', - 'angle-up', - 'apple', - 'archive', - 'area-chart', - 'arrow-circle-left', - 'arrow-circle-o-left', - 'arrow-circle-o-up', - 'arrow-circle-up', - 'arrow-left', - 'arrow-up', - 'arrows', - 'arrows-alt', - 'arrows-h', - 'arrows-v', - 'assistive-listening-systems', - 'asterisk', - 'at', - 'audio-description', - 'automobile', - 'backward', - 'balance-scale', - 'ban', - 'bandcamp', - 'bank', - 'bar-chart', - 'barcode', - 'bars', - 'bath', - 'battery', - 'battery-0', - 'battery-1', - 'battery-2', - 'battery-3', - 'bed', - 'beer', - 'behance', - 'behance-square', - 'bell', - 'bell-o', - 'bell-slash', - 'bell-slash-o', - 'bicycle', - 'binoculars', - 'birthday-cake', - 'bitbucket', - 'bitbucket-square', - 'bitcoin', - 'black-tie', - 'blind', - 'bluetooth', - 'bluetooth-b', - 'bold', - 'bolt', - 'bomb', - 'book', - 'bookmark', - 'bookmark-o', - 'braille', - 'briefcase', - 'bug', - 'building', - 'building-o', - 'bullhorn', - 'bullseye', - 'bus', - 'buysellads', - 'cab', - 'calculator', - 'calendar', - 'calendar-check-o', - 'calendar-minus-o', - 'calendar-o', - 'calendar-plus-o', - 'calendar-times-o', - 'camera', - 'camera-retro', - 'caret-down', - 'caret-left', - 'caret-square-o-left', - 'caret-square-o-up', - 'caret-up', - 'cart-arrow-down', - 'cart-plus', - 'cc', - 'cc-amex', - 'cc-diners-club', - 'cc-discover', - 'cc-jcb', - 'cc-mastercard', - 'cc-paypal', - 'cc-stripe', - 'cc-visa', - 'certificate', - 'chain', - 'chain-broken', - 'check', - 'check-circle', - 'check-circle-o', - 'check-square', - 'check-square-o', - 'chevron-circle-left', - 'chevron-circle-up', - 'chevron-down', - 'chevron-left', - 'chevron-up', - 'child', - 'chrome', - 'circle', - 'circle-o', - 'circle-o-notch', - 'circle-thin', - 'clipboard', - 'clock-o', - 'clone', - 'close', - 'cloud', - 'cloud-download', - 'cloud-upload', - 'cny', - 'code', - 'code-fork', - 'codepen', - 'codiepie', - 'coffee', - 'cog', - 'cogs', - 'columns', - 'comment', - 'comment-o', - 'commenting', - 'commenting-o', - 'comments', - 'comments-o', - 'compass', - 'compress', - 'connectdevelop', - 'contao', - 'copy', - 'copyright', - 'creative-commons', - 'credit-card', - 'credit-card-alt', - 'crop', - 'crosshairs', - 'css3', - 'cube', - 'cubes', - 'cut', - 'cutlery', - 'dashboard', - 'dashcube', - 'database', - 'deaf', - 'dedent', - 'delicious', - 'desktop', - 'deviantart', - 'diamond', - 'digg', - 'dollar', - 'dot-circle-o', - 'download', - 'dribbble', - 'drivers-license', - 'drivers-license-o', - 'dropbox', - 'drupal', - 'edge', - 'edit', - 'eercast', - 'eject', - 'ellipsis-h', - 'ellipsis-v', - 'empire', - 'envelope', - 'envelope-o', - 'envelope-open', - 'envelope-open-o', - 'envelope-square', - 'envira', - 'eraser', - 'etsy', - 'eur', - 'exchange', - 'exclamation', - 'exclamation-circle', - 'exclamation-triangle', - 'expand', - 'expeditedssl', - 'external-link', - 'external-link-square', - 'eye', - 'eye-slash', - 'eyedropper', - 'fa', - 'facebook', - 'facebook-official', - 'facebook-square', - 'fast-backward', - 'fax', - 'feed', - 'female', - 'fighter-jet', - 'file', - 'file-archive-o', - 'file-audio-o', - 'file-code-o', - 'file-excel-o', - 'file-image-o', - 'file-movie-o', - 'file-o', - 'file-pdf-o', - 'file-powerpoint-o', - 'file-text', - 'file-text-o', - 'file-word-o', - 'film', - 'filter', - 'fire', - 'fire-extinguisher', - 'firefox', - 'first-order', - 'flag', - 'flag-checkered', - 'flag-o', - 'flask', - 'flickr', - 'floppy-o', - 'folder', - 'folder-o', - 'folder-open', - 'folder-open-o', - 'font', - 'fonticons', - 'fort-awesome', - 'forumbee', - 'foursquare', - 'free-code-camp', - 'frown-o', - 'futbol-o', - 'gamepad', - 'gavel', - 'gbp', - 'genderless', - 'get-pocket', - 'gg', - 'gg-circle', - 'gift', - 'git', - 'git-square', - 'github', - 'github-alt', - 'github-square', - 'gitlab', - 'gittip', - 'glass', - 'glide', - 'glide-g', - 'globe', - 'google', - 'google-plus', - 'google-plus-circle', - 'google-plus-square', - 'google-wallet', - 'graduation-cap', - 'grav', - 'group', - 'h-square', - 'hacker-news', - 'hand-grab-o', - 'hand-lizard-o', - 'hand-o-left', - 'hand-o-up', - 'hand-paper-o', - 'hand-peace-o', - 'hand-pointer-o', - 'hand-scissors-o', - 'hand-spock-o', - 'handshake-o', - 'hashtag', - 'hdd-o', - 'header', - 'headphones', - 'heart', - 'heart-o', - 'heartbeat', - 'history', - 'home', - 'hospital-o', - 'hourglass', - 'hourglass-1', - 'hourglass-2', - 'hourglass-3', - 'hourglass-o', - 'houzz', - 'html5', - 'i-cursor', - 'id-badge', - 'ils', - 'image', - 'imdb', - 'inbox', - 'indent', - 'industry', - 'info', - 'info-circle', - 'inr', - 'instagram', - 'internet-explorer', - 'intersex', - 'ioxhost', - 'italic', - 'joomla', - 'jsfiddle', - 'key', - 'keyboard-o', - 'krw', - 'language', - 'laptop', - 'lastfm', - 'lastfm-square', - 'leaf', - 'leanpub', - 'lemon-o', - 'level-up', - 'life-bouy', - 'lightbulb-o', - 'line-chart', - 'linkedin', - 'linkedin-square', - 'linode', - 'linux', - 'list', - 'list-alt', - 'list-ol', - 'list-ul', - 'location-arrow', - 'lock', - 'long-arrow-left', - 'long-arrow-up', - 'low-vision', - 'magic', - 'magnet', - 'mail-forward', - 'mail-reply', - 'mail-reply-all', - 'male', - 'map', - 'map-marker', - 'map-o', - 'map-pin', - 'map-signs', - 'mars', - 'mars-double', - 'mars-stroke', - 'mars-stroke-h', - 'mars-stroke-v', - 'maxcdn', - 'meanpath', - 'medium', - 'medkit', - 'meetup', - 'meh-o', - 'mercury', - 'microchip', - 'microphone', - 'microphone-slash', - 'minus', - 'minus-circle', - 'minus-square', - 'minus-square-o', - 'mixcloud', - 'mobile', - 'modx', - 'money', - 'moon-o', - 'motorcycle', - 'mouse-pointer', - 'music', - 'neuter', - 'newspaper-o', - 'object-group', - 'object-ungroup', - 'odnoklassniki', - 'odnoklassniki-square', - 'opencart', - 'openid', - 'opera', - 'optin-monster', - 'pagelines', - 'paint-brush', - 'paper-plane', - 'paper-plane-o', - 'paperclip', - 'paragraph', - 'pause', - 'pause-circle', - 'pause-circle-o', - 'paw', - 'paypal', - 'pencil', - 'pencil-square', - 'percent', - 'phone', - 'phone-square', - 'pie-chart', - 'pied-piper', - 'pied-piper-alt', - 'pied-piper-pp', - 'pinterest', - 'pinterest-p', - 'pinterest-square', - 'plane', - 'play', - 'play-circle', - 'play-circle-o', - 'plug', - 'plus', - 'plus-circle', - 'plus-square', - 'plus-square-o', - 'podcast', - 'power-off', - 'print', - 'product-hunt', - 'puzzle-piece', - 'qq', - 'qrcode', - 'question', - 'question-circle', - 'question-circle-o', - 'quora', - 'quote-left', - 'quote-right', - 'ra', - 'random', - 'ravelry', - 'recycle', - 'reddit', - 'reddit-alien', - 'reddit-square', - 'refresh', - 'registered', - 'renren', - 'repeat', - 'retweet', - 'road', - 'rocket', - 'rotate-left', - 'rouble', - 'rss-square', - 'safari', - 'scribd', - 'search', - 'search-minus', - 'search-plus', - 'sellsy', - 'server', - 'share-alt', - 'share-alt-square', - 'share-square', - 'share-square-o', - 'shield', - 'ship', - 'shirtsinbulk', - 'shopping-bag', - 'shopping-basket', - 'shopping-cart', - 'shower', - 'sign-in', - 'sign-language', - 'sign-out', - 'signal', - 'simplybuilt', - 'sitemap', - 'skyatlas', - 'skype', - 'slack', - 'sliders', - 'slideshare', - 'smile-o', - 'snapchat', - 'snapchat-ghost', - 'snapchat-square', - 'snowflake-o', - 'sort', - 'sort-alpha-asc', - 'sort-alpha-desc', - 'sort-amount-asc', - 'sort-amount-desc', - 'sort-asc', - 'sort-numeric-asc', - 'sort-numeric-desc', - 'soundcloud', - 'space-shuttle', - 'spinner', - 'spoon', - 'spotify', - 'square', - 'square-o', - 'stack-exchange', - 'stack-overflow', - 'star', - 'star-half', - 'star-half-empty', - 'star-o', - 'steam', - 'steam-square', - 'step-backward', - 'stethoscope', - 'sticky-note', - 'sticky-note-o', - 'stop', - 'stop-circle', - 'stop-circle-o', - 'street-view', - 'strikethrough', - 'stumbleupon', - 'stumbleupon-circle', - 'subscript', - 'subway', - 'suitcase', - 'sun-o', - 'superpowers', - 'superscript', - 'table', - 'tablet', - 'tag', - 'tags', - 'tasks', - 'telegram', - 'television', - 'tencent-weibo', - 'terminal', - 'text-height', - 'text-width', - 'th', - 'th-large', - 'th-list', - 'themeisle', - 'thermometer', - 'thermometer-0', - 'thermometer-1', - 'thermometer-2', - 'thermometer-3', - 'thumb-tack', - 'thumbs-down', - 'thumbs-o-up', - 'thumbs-up', - 'ticket', - 'times-circle', - 'times-circle-o', - 'times-rectangle', - 'times-rectangle-o', - 'tint', - 'toggle-off', - 'toggle-on', - 'trademark', - 'train', - 'transgender-alt', - 'trash', - 'trash-o', - 'tree', - 'trello', - 'tripadvisor', - 'trophy', - 'truck', - 'try', - 'tty', - 'tumblr', - 'tumblr-square', - 'twitch', - 'twitter', - 'twitter-square', - 'umbrella', - 'underline', - 'universal-access', - 'unlock', - 'unlock-alt', - 'upload', - 'usb', - 'user', - 'user-circle', - 'user-circle-o', - 'user-md', - 'user-o', - 'user-plus', - 'user-secret', - 'user-times', - 'venus', - 'venus-double', - 'venus-mars', - 'viacoin', - 'viadeo', - 'viadeo-square', - 'video-camera', - 'vimeo', - 'vimeo-square', - 'vine', - 'vk', - 'volume-control-phone', - 'volume-down', - 'volume-off', - 'volume-up', - 'wechat', - 'weibo', - 'whatsapp', - 'wheelchair', - 'wheelchair-alt', - 'wifi', - 'wikipedia-w', - 'window-maximize', - 'window-minimize', - 'window-restore', - 'windows', - 'wordpress', - 'wpbeginner', - 'wpexplorer', - 'wpforms', - 'wrench', - 'xing', - 'xing-square', - 'y-combinator', - 'yahoo', - 'yelp', - 'yoast', - 'youtube', - 'youtube-play', - 'youtube-square' - ], - 'fa-solid:': [ - 'abacus', - 'ad', - 'address-book', - 'address-card', - 'adjust', - 'air-freshener', - 'align-center', - 'align-justify', - 'align-left', - 'align-right', - 'allergies', - 'ambulance', - 'american-sign-language-interpreting', - 'anchor', - 'angle-double-down', - 'angle-double-left', - 'angle-double-right', - 'angle-double-up', - 'angle-down', - 'angle-left', - 'angle-right', - 'angle-up', - 'angry', - 'ankh', - 'apple-alt', - 'archive', - 'archway', - 'arrow-alt-circle-down', - 'arrow-alt-circle-left', - 'arrow-alt-circle-right', - 'arrow-alt-circle-up', - 'arrow-circle-down', - 'arrow-circle-left', - 'arrow-circle-right', - 'arrow-circle-up', - 'arrow-down', - 'arrow-left', - 'arrow-right', - 'arrow-up', - 'arrows-alt', - 'arrows-alt-h', - 'arrows-alt-v', - 'assistive-listening-systems', - 'asterisk', - 'at', - 'atlas', - 'atom', - 'audio-description', - 'award', - 'baby', - 'baby-carriage', - 'backspace', - 'backward', - 'bacon', - 'bacteria', - 'bacterium', - 'bahai', - 'balance-scale', - 'balance-scale-left', - 'balance-scale-right', - 'ban', - 'band-aid', - 'barcode', - 'bars', - 'baseball-ball', - 'basketball-ball', - 'bath', - 'battery-empty', - 'battery-full', - 'battery-half', - 'battery-quarter', - 'battery-three-quarters', - 'bed', - 'beer', - 'bell', - 'bell-slash', - 'bezier-curve', - 'bible', - 'bicycle', - 'biking', - 'binoculars', - 'biohazard', - 'birthday-cake', - 'blender', - 'blender-phone', - 'blind', - 'blog', - 'bold', - 'bolt', - 'bomb', - 'bone', - 'bong', - 'book', - 'book-dead', - 'book-medical', - 'book-open', - 'book-reader', - 'bookmark', - 'border-all', - 'border-none', - 'border-style', - 'bowling-ball', - 'box', - 'box-open', - 'box-tissue', - 'boxes', - 'braille', - 'brain', - 'bread-slice', - 'briefcase', - 'briefcase-medical', - 'broadcast-tower', - 'broom', - 'brush', - 'bug', - 'building', - 'bullhorn', - 'bullseye', - 'burn', - 'bus', - 'bus-alt', - 'business-time', - 'calculator', - 'calculator-alt', - 'calendar', - 'calendar-alt', - 'calendar-check', - 'calendar-day', - 'calendar-minus', - 'calendar-plus', - 'calendar-times', - 'calendar-week', - 'camera', - 'camera-retro', - 'campground', - 'candy-cane', - 'cannabis', - 'capsules', - 'car', - 'car-alt', - 'car-battery', - 'car-crash', - 'car-side', - 'caravan', - 'caret-down', - 'caret-left', - 'caret-right', - 'caret-square-down', - 'caret-square-left', - 'caret-square-right', - 'caret-square-up', - 'caret-up', - 'carrot', - 'cart-arrow-down', - 'cart-plus', - 'cash-register', - 'cat', - 'certificate', - 'chair', - 'chalkboard', - 'chalkboard-teacher', - 'charging-station', - 'chart-area', - 'chart-bar', - 'chart-line', - 'chart-pie', - 'check', - 'check-circle', - 'check-double', - 'check-square', - 'cheese', - 'chess', - 'chess-bishop', - 'chess-board', - 'chess-king', - 'chess-knight', - 'chess-pawn', - 'chess-queen', - 'chess-rook', - 'chevron-circle-down', - 'chevron-circle-left', - 'chevron-circle-right', - 'chevron-circle-up', - 'chevron-down', - 'chevron-left', - 'chevron-right', - 'chevron-up', - 'child', - 'church', - 'circle', - 'circle-notch', - 'city', - 'clinic-medical', - 'clipboard', - 'clipboard-check', - 'clipboard-list', - 'clock', - 'clone', - 'closed-captioning', - 'cloud', - 'cloud-download-alt', - 'cloud-meatball', - 'cloud-moon', - 'cloud-moon-rain', - 'cloud-rain', - 'cloud-showers-heavy', - 'cloud-sun', - 'cloud-sun-rain', - 'cloud-upload-alt', - 'cocktail', - 'code', - 'code-branch', - 'coffee', - 'cog', - 'cogs', - 'coins', - 'columns', - 'comment', - 'comment-alt', - 'comment-dollar', - 'comment-dots', - 'comment-medical', - 'comment-slash', - 'comments', - 'comments-dollar', - 'compact-disc', - 'compass', - 'compress', - 'compress-alt', - 'compress-arrows-alt', - 'concierge-bell', - 'cookie', - 'cookie-bite', - 'copy', - 'copyright', - 'couch', - 'credit-card', - 'crop', - 'crop-alt', - 'cross', - 'crosshairs', - 'crow', - 'crown', - 'crutch', - 'cube', - 'cubes', - 'cut', - 'database', - 'deaf', - 'democrat', - 'desktop', - 'dharmachakra', - 'diagnoses', - 'dice', - 'dice-d20', - 'dice-d6', - 'dice-five', - 'dice-four', - 'dice-one', - 'dice-six', - 'dice-three', - 'dice-two', - 'digital-tachograph', - 'directions', - 'disease', - 'divide', - 'dizzy', - 'dna', - 'dog', - 'dollar-sign', - 'dolly', - 'dolly-flatbed', - 'donate', - 'door-closed', - 'door-open', - 'dot-circle', - 'dove', - 'download', - 'drafting-compass', - 'dragon', - 'draw-polygon', - 'drum', - 'drum-steelpan', - 'drumstick-bite', - 'dumbbell', - 'dumpster', - 'dumpster-fire', - 'dungeon', - 'edit', - 'egg', - 'eject', - 'ellipsis-h', - 'ellipsis-v', - 'empty-set', - 'envelope', - 'envelope-open', - 'envelope-open-text', - 'envelope-square', - 'equals', - 'eraser', - 'ethernet', - 'euro-sign', - 'exchange-alt', - 'exclamation', - 'exclamation-circle', - 'exclamation-triangle', - 'expand', - 'expand-alt', - 'expand-arrows-alt', - 'external-link-alt', - 'external-link-square-alt', - 'eye', - 'eye-dropper', - 'eye-slash', - 'fan', - 'fast-backward', - 'fast-forward', - 'faucet', - 'fax', - 'feather', - 'feather-alt', - 'female', - 'fighter-jet', - 'file', - 'file-alt', - 'file-archive', - 'file-audio', - 'file-code', - 'file-contract', - 'file-csv', - 'file-download', - 'file-excel', - 'file-export', - 'file-image', - 'file-import', - 'file-invoice', - 'file-invoice-dollar', - 'file-medical', - 'file-medical-alt', - 'file-pdf', - 'file-powerpoint', - 'file-prescription', - 'file-signature', - 'file-upload', - 'file-video', - 'file-word', - 'fill', - 'fill-drip', - 'film', - 'filter', - 'fingerprint', - 'fire', - 'fire-alt', - 'fire-extinguisher', - 'first-aid', - 'fish', - 'fist-raised', - 'flag', - 'flag-checkered', - 'flag-usa', - 'flask', - 'flushed', - 'folder', - 'folder-minus', - 'folder-open', - 'folder-plus', - 'font', - 'football-ball', - 'forward', - 'frog', - 'frown', - 'frown-open', - 'function', - 'funnel-dollar', - 'futbol', - 'gamepad', - 'gas-pump', - 'gavel', - 'gem', - 'genderless', - 'ghost', - 'gift', - 'gifts', - 'glass-cheers', - 'glass-martini', - 'glass-martini-alt', - 'glass-whiskey', - 'glasses', - 'globe', - 'globe-africa', - 'globe-americas', - 'globe-asia', - 'globe-europe', - 'golf-ball', - 'gopuram', - 'graduation-cap', - 'greater-than', - 'greater-than-equal', - 'grimace', - 'grin', - 'grin-alt', - 'grin-beam', - 'grin-beam-sweat', - 'grin-hearts', - 'grin-squint', - 'grin-squint-tears', - 'grin-stars', - 'grin-tears', - 'grin-tongue', - 'grin-tongue-squint', - 'grin-tongue-wink', - 'grin-wink', - 'grip-horizontal', - 'grip-lines', - 'grip-lines-vertical', - 'grip-vertical', - 'guitar', - 'h-square', - 'hamburger', - 'hammer', - 'hamsa', - 'hand-holding', - 'hand-holding-heart', - 'hand-holding-medical', - 'hand-holding-usd', - 'hand-holding-water', - 'hand-lizard', - 'hand-middle-finger', - 'hand-paper', - 'hand-peace', - 'hand-point-down', - 'hand-point-left', - 'hand-point-right', - 'hand-point-up', - 'hand-pointer', - 'hand-rock', - 'hand-scissors', - 'hand-sparkles', - 'hand-spock', - 'hands', - 'hands-helping', - 'hands-wash', - 'handshake', - 'handshake-alt-slash', - 'handshake-slash', - 'hanukiah', - 'hard-hat', - 'hashtag', - 'hat-cowboy', - 'hat-cowboy-side', - 'hat-wizard', - 'hdd', - 'head-side-cough', - 'head-side-cough-slash', - 'head-side-mask', - 'head-side-virus', - 'heading', - 'headphones', - 'headphones-alt', - 'headset', - 'heart', - 'heart-broken', - 'heartbeat', - 'helicopter', - 'highlighter', - 'hiking', - 'hippo', - 'history', - 'hockey-puck', - 'holly-berry', - 'home', - 'horse', - 'horse-head', - 'hospital', - 'hospital-alt', - 'hospital-symbol', - 'hospital-user', - 'hot-tub', - 'hotdog', - 'hotel', - 'hourglass', - 'hourglass-end', - 'hourglass-half', - 'hourglass-start', - 'house-damage', - 'house-user', - 'hryvnia', - 'i-cursor', - 'ice-cream', - 'icicles', - 'icons', - 'id-badge', - 'id-card', - 'id-card-alt', - 'igloo', - 'image', - 'images', - 'inbox', - 'indent', - 'industry', - 'infinity', - 'info', - 'info-circle', - 'integral', - 'intersection', - 'italic', - 'jedi', - 'joint', - 'journal-whills', - 'kaaba', - 'key', - 'keyboard', - 'khanda', - 'kiss', - 'kiss-beam', - 'kiss-wink-heart', - 'kiwi-bird', - 'lambda', - 'landmark', - 'language', - 'laptop', - 'laptop-code', - 'laptop-house', - 'laptop-medical', - 'laugh', - 'laugh-beam', - 'laugh-squint', - 'laugh-wink', - 'layer-group', - 'leaf', - 'lemon', - 'less-than', - 'less-than-equal', - 'level-down-alt', - 'level-up-alt', - 'life-ring', - 'lightbulb', - 'link', - 'lira-sign', - 'list', - 'list-alt', - 'list-ol', - 'list-ul', - 'location-arrow', - 'lock', - 'lock-open', - 'long-arrow-alt-down', - 'long-arrow-alt-left', - 'long-arrow-alt-right', - 'long-arrow-alt-up', - 'low-vision', - 'luggage-cart', - 'lungs', - 'lungs-virus', - 'magic', - 'magnet', - 'mail-bulk', - 'male', - 'map', - 'map-marked', - 'map-marked-alt', - 'map-marker', - 'map-marker-alt', - 'map-pin', - 'map-signs', - 'marker', - 'mars', - 'mars-double', - 'mars-stroke', - 'mars-stroke-h', - 'mars-stroke-v', - 'mask', - 'medal', - 'medkit', - 'meh', - 'meh-blank', - 'meh-rolling-eyes', - 'memory', - 'menorah', - 'mercury', - 'meteor', - 'microchip', - 'microphone', - 'microphone-alt', - 'microphone-alt-slash', - 'microphone-slash', - 'microscope', - 'minus', - 'minus-circle', - 'minus-square', - 'mitten', - 'mobile', - 'mobile-alt', - 'money-bill', - 'money-bill-alt', - 'money-bill-wave', - 'money-bill-wave-alt', - 'money-check', - 'money-check-alt', - 'monument', - 'moon', - 'mortar-pestle', - 'mosque', - 'motorcycle', - 'mountain', - 'mouse', - 'mouse-pointer', - 'mug-hot', - 'music', - 'network-wired', - 'neuter', - 'newspaper', - 'not-equal', - 'notes-medical', - 'object-group', - 'object-ungroup', - 'oil-can', - 'om', - 'omega', - 'otter', - 'outdent', - 'pager', - 'paint-brush', - 'paint-roller', - 'palette', - 'pallet', - 'paper-plane', - 'paperclip', - 'parachute-box', - 'paragraph', - 'parking', - 'passport', - 'pastafarianism', - 'paste', - 'pause', - 'pause-circle', - 'paw', - 'peace', - 'pen', - 'pen-alt', - 'pen-fancy', - 'pen-nib', - 'pen-square', - 'pencil-alt', - 'pencil-ruler', - 'people-arrows', - 'people-carry', - 'pepper-hot', - 'percent', - 'percentage', - 'person-booth', - 'phone', - 'phone-alt', - 'phone-slash', - 'phone-square', - 'phone-square-alt', - 'phone-volume', - 'photo-video', - 'pi', - 'piggy-bank', - 'pills', - 'pizza-slice', - 'place-of-worship', - 'plane', - 'plane-arrival', - 'plane-departure', - 'plane-slash', - 'play', - 'play-circle', - 'plug', - 'plus', - 'plus-circle', - 'plus-square', - 'podcast', - 'poll', - 'poll-h', - 'poo', - 'poo-storm', - 'poop', - 'portrait', - 'pound-sign', - 'power-off', - 'pray', - 'praying-hands', - 'prescription', - 'prescription-bottle', - 'prescription-bottle-alt', - 'print', - 'procedures', - 'project-diagram', - 'pump-medical', - 'pump-soap', - 'puzzle-piece', - 'qrcode', - 'question', - 'question-circle', - 'quidditch', - 'quote-left', - 'quote-right', - 'quran', - 'radiation', - 'radiation-alt', - 'rainbow', - 'random', - 'receipt', - 'record-vinyl', - 'recycle', - 'redo', - 'redo-alt', - 'registered', - 'remove-format', - 'reply', - 'reply-all', - 'republican', - 'restroom', - 'retweet', - 'ribbon', - 'ring', - 'road', - 'robot', - 'rocket', - 'route', - 'rss', - 'rss-square', - 'ruble-sign', - 'ruler', - 'ruler-combined', - 'ruler-horizontal', - 'ruler-vertical', - 'running', - 'rupee-sign', - 'sad-cry', - 'sad-tear', - 'satellite', - 'satellite-dish', - 'save', - 'school', - 'screwdriver', - 'scroll', - 'sd-card', - 'search', - 'search-dollar', - 'search-location', - 'search-minus', - 'search-plus', - 'seedling', - 'server', - 'shapes', - 'share', - 'share-alt', - 'share-alt-square', - 'share-square', - 'shekel-sign', - 'shield-alt', - 'shield-virus', - 'ship', - 'shipping-fast', - 'shoe-prints', - 'shopping-bag', - 'shopping-basket', - 'shopping-cart', - 'shower', - 'shuttle-van', - 'sigma', - 'sign', - 'sign-in-alt', - 'sign-language', - 'sign-out-alt', - 'signal', - 'signal-alt', - 'signal-alt-slash', - 'signal-slash', - 'signature', - 'sim-card', - 'sink', - 'sitemap', - 'skating', - 'skiing', - 'skiing-nordic', - 'skull', - 'skull-crossbones', - 'slash', - 'sleigh', - 'sliders-h', - 'smile', - 'smile-beam', - 'smile-wink', - 'smog', - 'smoking', - 'smoking-ban', - 'sms', - 'snowboarding', - 'snowflake', - 'snowman', - 'snowplow', - 'soap', - 'socks', - 'solar-panel', - 'sort', - 'sort-alpha-down', - 'sort-alpha-down-alt', - 'sort-alpha-up', - 'sort-alpha-up-alt', - 'sort-amount-down', - 'sort-amount-down-alt', - 'sort-amount-up', - 'sort-amount-up-alt', - 'sort-down', - 'sort-numeric-down', - 'sort-numeric-down-alt', - 'sort-numeric-up', - 'sort-numeric-up-alt', - 'sort-up', - 'spa', - 'space-shuttle', - 'spell-check', - 'spider', - 'spinner', - 'splotch', - 'spray-can', - 'square', - 'square-full', - 'square-root', - 'square-root-alt', - 'stamp', - 'star', - 'star-and-crescent', - 'star-half', - 'star-half-alt', - 'star-of-david', - 'star-of-life', - 'step-backward', - 'step-forward', - 'stethoscope', - 'sticky-note', - 'stop', - 'stop-circle', - 'stopwatch', - 'stopwatch-20', - 'store', - 'store-alt', - 'store-alt-slash', - 'store-slash', - 'stream', - 'street-view', - 'strikethrough', - 'stroopwafel', - 'subscript', - 'subway', - 'suitcase', - 'suitcase-rolling', - 'sun', - 'superscript', - 'surprise', - 'swatchbook', - 'swimmer', - 'swimming-pool', - 'synagogue', - 'sync', - 'sync-alt', - 'syringe', - 'table', - 'table-tennis', - 'tablet', - 'tablet-alt', - 'tablets', - 'tachometer-alt', - 'tag', - 'tags', - 'tally', - 'tape', - 'tasks', - 'taxi', - 'teeth', - 'teeth-open', - 'temperature-high', - 'temperature-low', - 'tenge', - 'terminal', - 'text-height', - 'text-width', - 'th', - 'th-large', - 'th-list', - 'theater-masks', - 'thermometer', - 'thermometer-empty', - 'thermometer-full', - 'thermometer-half', - 'thermometer-quarter', - 'thermometer-three-quarters', - 'theta', - 'thumbs-down', - 'thumbs-up', - 'thumbtack', - 'ticket-alt', - 'tilde', - 'times', - 'times-circle', - 'tint', - 'tint-slash', - 'tired', - 'toggle-off', - 'toggle-on', - 'toilet', - 'toilet-paper', - 'toilet-paper-slash', - 'toolbox', - 'tools', - 'tooth', - 'torah', - 'torii-gate', - 'tractor', - 'trademark', - 'traffic-light', - 'trailer', - 'train', - 'tram', - 'transgender', - 'transgender-alt', - 'trash', - 'trash-alt', - 'trash-restore', - 'trash-restore-alt', - 'tree', - 'trophy', - 'truck', - 'truck-loading', - 'truck-monster', - 'truck-moving', - 'truck-pickup', - 'tshirt', - 'tty', - 'tv', - 'umbrella', - 'umbrella-beach', - 'underline', - 'undo', - 'undo-alt', - 'union', - 'universal-access', - 'university', - 'unlink', - 'unlock', - 'unlock-alt', - 'upload', - 'user', - 'user-alt', - 'user-alt-slash', - 'user-astronaut', - 'user-check', - 'user-circle', - 'user-clock', - 'user-cog', - 'user-edit', - 'user-friends', - 'user-graduate', - 'user-injured', - 'user-lock', - 'user-md', - 'user-minus', - 'user-ninja', - 'user-nurse', - 'user-plus', - 'user-secret', - 'user-shield', - 'user-slash', - 'user-tag', - 'user-tie', - 'user-times', - 'users', - 'users-cog', - 'users-slash', - 'utensil-spoon', - 'utensils', - 'value-absolute', - 'vector-square', - 'venus', - 'venus-double', - 'venus-mars', - 'vest', - 'vest-patches', - 'vial', - 'vials', - 'video', - 'video-slash', - 'vihara', - 'virus', - 'virus-slash', - 'viruses', - 'voicemail', - 'volleyball-ball', - 'volume', - 'volume-down', - 'volume-mute', - 'volume-off', - 'volume-slash', - 'volume-up', - 'vote-yea', - 'vr-cardboard', - 'walking', - 'wallet', - 'warehouse', - 'water', - 'wave-square', - 'weight', - 'weight-hanging', - 'wheelchair', - 'wifi', - 'wifi-slash', - 'wind', - 'window-close', - 'window-maximize', - 'window-minimize', - 'window-restore', - 'wine-bottle', - 'wine-glass', - 'wine-glass-alt', - 'won-sign', - 'wrench', - 'x-ray', - 'yen-sign', - 'yin-yang' - ] -} diff --git a/yshop-drink-vue/src/components/ImageViewer/index.ts b/yshop-drink-vue/src/components/ImageViewer/index.ts deleted file mode 100644 index 3868135..0000000 --- a/yshop-drink-vue/src/components/ImageViewer/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import ImageViewer from './src/ImageViewer.vue' -import { isClient } from '@/utils/is' -import { createVNode, render, VNode } from 'vue' -import { ImageViewerProps } from './src/types' - -let instance: Nullable = null - -export function createImageViewer(options: ImageViewerProps) { - if (!isClient) return - const { - urlList, - initialIndex = 0, - infinite = true, - hideOnClickModal = false, - appendToBody = false, - zIndex = 2000, - show = true - } = options - - const propsData: Partial = {} - const container = document.createElement('div') - propsData.urlList = urlList - propsData.initialIndex = initialIndex - propsData.infinite = infinite - propsData.hideOnClickModal = hideOnClickModal - propsData.appendToBody = appendToBody - propsData.zIndex = zIndex - propsData.show = show - - document.body.appendChild(container) - instance = createVNode(ImageViewer, propsData) - render(instance, container) -} diff --git a/yshop-drink-vue/src/components/ImageViewer/src/ImageViewer.vue b/yshop-drink-vue/src/components/ImageViewer/src/ImageViewer.vue deleted file mode 100644 index c416f56..0000000 --- a/yshop-drink-vue/src/components/ImageViewer/src/ImageViewer.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/ImageViewer/src/types.ts b/yshop-drink-vue/src/components/ImageViewer/src/types.ts deleted file mode 100644 index 1932d74..0000000 --- a/yshop-drink-vue/src/components/ImageViewer/src/types.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface ImageViewerProps { - urlList?: string[] - zIndex?: number - initialIndex?: number - infinite?: boolean - hideOnClickModal?: boolean - appendToBody?: boolean - show?: boolean -} diff --git a/yshop-drink-vue/src/components/Infotip/index.ts b/yshop-drink-vue/src/components/Infotip/index.ts deleted file mode 100644 index 413fa5f..0000000 --- a/yshop-drink-vue/src/components/Infotip/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Infotip from './src/Infotip.vue' - -export { Infotip } diff --git a/yshop-drink-vue/src/components/Infotip/src/Infotip.vue b/yshop-drink-vue/src/components/Infotip/src/Infotip.vue deleted file mode 100644 index dde5f4b..0000000 --- a/yshop-drink-vue/src/components/Infotip/src/Infotip.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/InputPassword/index.ts b/yshop-drink-vue/src/components/InputPassword/index.ts deleted file mode 100644 index 1dcc38e..0000000 --- a/yshop-drink-vue/src/components/InputPassword/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import InputPassword from './src/InputPassword.vue' - -export { InputPassword } diff --git a/yshop-drink-vue/src/components/InputPassword/src/InputPassword.vue b/yshop-drink-vue/src/components/InputPassword/src/InputPassword.vue deleted file mode 100644 index 19ce032..0000000 --- a/yshop-drink-vue/src/components/InputPassword/src/InputPassword.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Materials/index.ts b/yshop-drink-vue/src/components/Materials/index.ts deleted file mode 100644 index 57bd8dc..0000000 --- a/yshop-drink-vue/src/components/Materials/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* - * @Author: Gaoxs - * @Date: 2023-05-21 23:36:03 - * @LastEditors: Gaoxs - * @Description: - */ -import Materials from './src/Materials.vue' -import EditorMaterials from './src/EditorMaterials.vue' - -export { Materials, EditorMaterials } diff --git a/yshop-drink-vue/src/components/Materials/src/Materials.vue b/yshop-drink-vue/src/components/Materials/src/Materials.vue deleted file mode 100644 index 03a9379..0000000 --- a/yshop-drink-vue/src/components/Materials/src/Materials.vue +++ /dev/null @@ -1,514 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Materials/src/editorMaterials.vue b/yshop-drink-vue/src/components/Materials/src/editorMaterials.vue deleted file mode 100644 index 4f8a476..0000000 --- a/yshop-drink-vue/src/components/Materials/src/editorMaterials.vue +++ /dev/null @@ -1,411 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Pagination/index.vue b/yshop-drink-vue/src/components/Pagination/index.vue deleted file mode 100644 index 43112c5..0000000 --- a/yshop-drink-vue/src/components/Pagination/index.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Qrcode/index.ts b/yshop-drink-vue/src/components/Qrcode/index.ts deleted file mode 100644 index ce46161..0000000 --- a/yshop-drink-vue/src/components/Qrcode/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Qrcode from './src/Qrcode.vue' - -export { Qrcode } diff --git a/yshop-drink-vue/src/components/Qrcode/src/Qrcode.vue b/yshop-drink-vue/src/components/Qrcode/src/Qrcode.vue deleted file mode 100644 index 2b72ef8..0000000 --- a/yshop-drink-vue/src/components/Qrcode/src/Qrcode.vue +++ /dev/null @@ -1,251 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/components/Search/index.ts b/yshop-drink-vue/src/components/Search/index.ts deleted file mode 100644 index fcc6f16..0000000 --- a/yshop-drink-vue/src/components/Search/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Search from './src/Search.vue' - -export { Search } diff --git a/yshop-drink-vue/src/components/Search/src/Search.vue b/yshop-drink-vue/src/components/Search/src/Search.vue deleted file mode 100644 index 8309c43..0000000 --- a/yshop-drink-vue/src/components/Search/src/Search.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Sticky/index.ts b/yshop-drink-vue/src/components/Sticky/index.ts deleted file mode 100644 index 5e1de45..0000000 --- a/yshop-drink-vue/src/components/Sticky/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Sticky from './src/Sticky.vue' - -export { Sticky } diff --git a/yshop-drink-vue/src/components/Sticky/src/Sticky.vue b/yshop-drink-vue/src/components/Sticky/src/Sticky.vue deleted file mode 100644 index bf9fc56..0000000 --- a/yshop-drink-vue/src/components/Sticky/src/Sticky.vue +++ /dev/null @@ -1,141 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/Table/index.ts b/yshop-drink-vue/src/components/Table/index.ts deleted file mode 100644 index 689f64a..0000000 --- a/yshop-drink-vue/src/components/Table/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Table from './src/Table.vue' -import { ElTable } from 'element-plus' -import { TableSetPropsType } from '@/types/table' - -export interface TableExpose { - setProps: (props: Recordable) => void - setColumn: (columnProps: TableSetPropsType[]) => void - selections: Recordable[] - elTableRef: ComponentRef -} - -export { Table } diff --git a/yshop-drink-vue/src/components/Table/src/Table.vue b/yshop-drink-vue/src/components/Table/src/Table.vue deleted file mode 100644 index 8ca5968..0000000 --- a/yshop-drink-vue/src/components/Table/src/Table.vue +++ /dev/null @@ -1,309 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/Table/src/helper.ts b/yshop-drink-vue/src/components/Table/src/helper.ts deleted file mode 100644 index d8b34a8..0000000 --- a/yshop-drink-vue/src/components/Table/src/helper.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const setIndex = (reserveIndex: boolean, index: number, size: number, current: number) => { - const newIndex = index + 1 - if (reserveIndex) { - return size * (current - 1) + newIndex - } else { - return newIndex - } -} diff --git a/yshop-drink-vue/src/components/Table/src/types.ts b/yshop-drink-vue/src/components/Table/src/types.ts deleted file mode 100644 index 1c7ff76..0000000 --- a/yshop-drink-vue/src/components/Table/src/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Pagination, TableColumn } from '@/types/table' - -export type TableProps = { - pageSize?: number - currentPage?: number - // 是否多选 - selection?: boolean - // 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip, - showOverflowTooltip?: boolean - // 表头 - columns?: TableColumn[] - // 是否展示分页 - pagination?: Pagination | undefined - // 仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key) - reserveSelection?: boolean - // 加载状态 - loading?: boolean - // 是否叠加索引 - reserveIndex?: boolean - // 对齐方式 - align?: 'left' | 'center' | 'right' - // 表头对齐方式 - headerAlign?: 'left' | 'center' | 'right' - data?: Recordable - expand?: boolean -} & Recordable diff --git a/yshop-drink-vue/src/components/Tooltip/index.ts b/yshop-drink-vue/src/components/Tooltip/index.ts deleted file mode 100644 index ab66ddf..0000000 --- a/yshop-drink-vue/src/components/Tooltip/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Tooltip from './src/Tooltip.vue' - -export { Tooltip } diff --git a/yshop-drink-vue/src/components/Tooltip/src/Tooltip.vue b/yshop-drink-vue/src/components/Tooltip/src/Tooltip.vue deleted file mode 100644 index eac37ad..0000000 --- a/yshop-drink-vue/src/components/Tooltip/src/Tooltip.vue +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/UploadFile/index.ts b/yshop-drink-vue/src/components/UploadFile/index.ts deleted file mode 100644 index 97c1d66..0000000 --- a/yshop-drink-vue/src/components/UploadFile/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import UploadImg from './src/UploadImg.vue' -import UploadImgs from './src/UploadImgs.vue' -import UploadFile from './src/UploadFile.vue' - -export { UploadImg, UploadImgs, UploadFile } diff --git a/yshop-drink-vue/src/components/UploadFile/src/UploadFile.vue b/yshop-drink-vue/src/components/UploadFile/src/UploadFile.vue deleted file mode 100644 index d02ad82..0000000 --- a/yshop-drink-vue/src/components/UploadFile/src/UploadFile.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/UploadFile/src/UploadImg.vue b/yshop-drink-vue/src/components/UploadFile/src/UploadImg.vue deleted file mode 100644 index a350528..0000000 --- a/yshop-drink-vue/src/components/UploadFile/src/UploadImg.vue +++ /dev/null @@ -1,251 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/components/UploadFile/src/UploadImgs.vue b/yshop-drink-vue/src/components/UploadFile/src/UploadImgs.vue deleted file mode 100644 index 82e5030..0000000 --- a/yshop-drink-vue/src/components/UploadFile/src/UploadImgs.vue +++ /dev/null @@ -1,277 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/components/Verifition/index.ts b/yshop-drink-vue/src/components/Verifition/index.ts deleted file mode 100644 index bcfe6d9..0000000 --- a/yshop-drink-vue/src/components/Verifition/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Verify from './src/Verify.vue' - -export { Verify } diff --git a/yshop-drink-vue/src/components/Verifition/src/Verify.vue b/yshop-drink-vue/src/components/Verifition/src/Verify.vue deleted file mode 100644 index 861ed16..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/Verify.vue +++ /dev/null @@ -1,453 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/components/Verifition/src/Verify/VerifyPoints.vue b/yshop-drink-vue/src/components/Verifition/src/Verify/VerifyPoints.vue deleted file mode 100644 index 5537c6e..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/Verify/VerifyPoints.vue +++ /dev/null @@ -1,250 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/Verifition/src/Verify/VerifySlide.vue b/yshop-drink-vue/src/components/Verifition/src/Verify/VerifySlide.vue deleted file mode 100644 index 68d8685..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/Verify/VerifySlide.vue +++ /dev/null @@ -1,376 +0,0 @@ - - diff --git a/yshop-drink-vue/src/components/Verifition/src/Verify/index.ts b/yshop-drink-vue/src/components/Verifition/src/Verify/index.ts deleted file mode 100644 index 0daa63a..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/Verify/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import VerifySlide from './VerifySlide.vue' -import VerifyPoints from './VerifyPoints.vue' - -export { VerifySlide, VerifyPoints } diff --git a/yshop-drink-vue/src/components/Verifition/src/utils/ase.ts b/yshop-drink-vue/src/components/Verifition/src/utils/ase.ts deleted file mode 100644 index d2e6b98..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/utils/ase.ts +++ /dev/null @@ -1,14 +0,0 @@ -import CryptoJS from 'crypto-js' -/** - * @word 要加密的内容 - * @keyWord String 服务器随机返回的关键字 - * */ -export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { - const key = CryptoJS.enc.Utf8.parse(keyWord) - const srcs = CryptoJS.enc.Utf8.parse(word) - const encrypted = CryptoJS.AES.encrypt(srcs, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 - }) - return encrypted.toString() -} diff --git a/yshop-drink-vue/src/components/Verifition/src/utils/util.ts b/yshop-drink-vue/src/components/Verifition/src/utils/util.ts deleted file mode 100644 index 15c1627..0000000 --- a/yshop-drink-vue/src/components/Verifition/src/utils/util.ts +++ /dev/null @@ -1,97 +0,0 @@ -export function resetSize(vm) { - let img_width, img_height, bar_width, bar_height //图片的宽度、高度,移动条的宽度、高度 - const EmployeeWindow = window as any - const parentWidth = vm.$el.parentNode.offsetWidth || EmployeeWindow.offsetWidth - const parentHeight = vm.$el.parentNode.offsetHeight || EmployeeWindow.offsetHeight - if (vm.imgSize.width.indexOf('%') != -1) { - img_width = (parseInt(vm.imgSize.width) / 100) * parentWidth + 'px' - } else { - img_width = vm.imgSize.width - } - - if (vm.imgSize.height.indexOf('%') != -1) { - img_height = (parseInt(vm.imgSize.height) / 100) * parentHeight + 'px' - } else { - img_height = vm.imgSize.height - } - - if (vm.barSize.width.indexOf('%') != -1) { - bar_width = (parseInt(vm.barSize.width) / 100) * parentWidth + 'px' - } else { - bar_width = vm.barSize.width - } - - if (vm.barSize.height.indexOf('%') != -1) { - bar_height = (parseInt(vm.barSize.height) / 100) * parentHeight + 'px' - } else { - bar_height = vm.barSize.height - } - - return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height } -} - -export const _code_chars = [ - 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' -] -export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] -export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] diff --git a/yshop-drink-vue/src/components/XButton/index.ts b/yshop-drink-vue/src/components/XButton/index.ts deleted file mode 100644 index be0f0d4..0000000 --- a/yshop-drink-vue/src/components/XButton/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import XButton from './src/XButton.vue' -import XTextButton from './src/XTextButton.vue' - -export { XButton, XTextButton } diff --git a/yshop-drink-vue/src/components/XButton/src/XButton.vue b/yshop-drink-vue/src/components/XButton/src/XButton.vue deleted file mode 100644 index e68dff2..0000000 --- a/yshop-drink-vue/src/components/XButton/src/XButton.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/components/XButton/src/XTextButton.vue b/yshop-drink-vue/src/components/XButton/src/XTextButton.vue deleted file mode 100644 index c2ff979..0000000 --- a/yshop-drink-vue/src/components/XButton/src/XTextButton.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/components/index.ts b/yshop-drink-vue/src/components/index.ts deleted file mode 100644 index 4d030c3..0000000 --- a/yshop-drink-vue/src/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { App } from 'vue' -import { Icon } from './Icon' - -export const setupGlobCom = (app: App): void => { - app.component('Icon', Icon) -} diff --git a/yshop-drink-vue/src/config/axios/config.ts b/yshop-drink-vue/src/config/axios/config.ts deleted file mode 100644 index 8116508..0000000 --- a/yshop-drink-vue/src/config/axios/config.ts +++ /dev/null @@ -1,28 +0,0 @@ -const config: { - base_url: string - result_code: number | string - default_headers: AxiosHeaders - request_timeout: number -} = { - /** - * api请求基础路径 - */ - base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL, - /** - * 接口成功返回状态码 - */ - result_code: 200, - - /** - * 接口请求超时时间 - */ - request_timeout: 30000, - - /** - * 默认接口请求类型 - * 可选值:application/x-www-form-urlencoded multipart/form-data - */ - default_headers: 'application/json' -} - -export { config } diff --git a/yshop-drink-vue/src/config/axios/errorCode.ts b/yshop-drink-vue/src/config/axios/errorCode.ts deleted file mode 100644 index 94d719f..0000000 --- a/yshop-drink-vue/src/config/axios/errorCode.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - '401': '认证失败,无法访问系统资源', - '403': '当前操作没有权限', - '404': '访问资源不存在', - default: '系统未知错误,请反馈给管理员' -} diff --git a/yshop-drink-vue/src/config/axios/index.ts b/yshop-drink-vue/src/config/axios/index.ts deleted file mode 100644 index e6c6af8..0000000 --- a/yshop-drink-vue/src/config/axios/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { service } from './service' - -import { config } from './config' - -const { default_headers } = config - -const request = (option: any) => { - const { url, method, params, data, headersType, responseType } = option - return service({ - url: url, - method, - params, - data, - responseType: responseType, - headers: { - 'Content-Type': headersType || default_headers - } - }) -} -export default { - get: async (option: any) => { - const res = await request({ method: 'GET', ...option }) - return res.data as unknown as T - }, - post: async (option: any) => { - const res = await request({ method: 'POST', ...option }) - return res.data as unknown as T - }, - postOriginal: async (option: any) => { - const res = await request({ method: 'POST', ...option }) - return res - }, - delete: async (option: any) => { - const res = await request({ method: 'DELETE', ...option }) - return res.data as unknown as T - }, - put: async (option: any) => { - const res = await request({ method: 'PUT', ...option }) - return res.data as unknown as T - }, - download: async (option: any) => { - const res = await request({ method: 'GET', responseType: 'blob', ...option }) - return res as unknown as Promise - }, - upload: async (option: any) => { - option.headersType = 'multipart/form-data' - const res = await request({ method: 'POST', ...option }) - return res as unknown as Promise - } -} diff --git a/yshop-drink-vue/src/config/axios/service.ts b/yshop-drink-vue/src/config/axios/service.ts deleted file mode 100644 index d1c6f73..0000000 --- a/yshop-drink-vue/src/config/axios/service.ts +++ /dev/null @@ -1,239 +0,0 @@ -import axios, { - AxiosError, - AxiosInstance, - AxiosRequestHeaders, - AxiosResponse, - InternalAxiosRequestConfig -} from 'axios' - -import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' -import qs from 'qs' -import { config } from '@/config/axios/config' -import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth' -import errorCode from './errorCode' - -import { resetRouter } from '@/router' -import { useCache } from '@/hooks/web/useCache' - -const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE -const { result_code, base_url, request_timeout } = config - -// 需要忽略的提示。忽略后,自动 Promise.reject('error') -const ignoreMsgs = [ - '无效的刷新令牌', // 刷新令牌被删除时,不用提示 - '刷新令牌已过期' // 使用刷新令牌,刷新获取新的访问令牌时,结果因为过期失败,此时需要忽略。否则,会导致继续 401,无法跳转到登出界面 -] -// 是否显示重新登录 -export const isRelogin = { show: false } -// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现 -// 请求队列 -let requestList: any[] = [] -// 是否正在刷新中 -let isRefreshToken = false -// 请求白名单,无须token的接口 -const whiteList: string[] = ['/login', '/refresh-token'] - -// 创建axios实例 -const service: AxiosInstance = axios.create({ - baseURL: base_url, // api 的 base_url - timeout: request_timeout, // 请求超时时间 - withCredentials: false // 禁用 Cookie 等信息 -}) - -// request拦截器 -service.interceptors.request.use( - (config: InternalAxiosRequestConfig) => { - // 是否需要设置 token - let isToken = (config!.headers || {}).isToken === false - whiteList.some((v) => { - if (config.url) { - config.url.indexOf(v) > -1 - return (isToken = false) - } - }) - if (getAccessToken() && !isToken) { - ; (config as Recordable).headers.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token - } - // 设置租户 - if (tenantEnable && tenantEnable === 'true') { - const tenantId = getTenantId() - if (tenantId) (config as Recordable).headers['tenant-id'] = tenantId - } - const params = config.params || {} - const data = config.data || false - if ( - config.method?.toUpperCase() === 'POST' && - (config.headers as AxiosRequestHeaders)['Content-Type'] === - 'application/x-www-form-urlencoded' - ) { - config.data = qs.stringify(data) - } - // get参数编码 - if (config.method?.toUpperCase() === 'GET' && params) { - let url = config.url + '?' - for (const propName of Object.keys(params)) { - const value = params[propName] - if (value !== void 0 && value !== null && typeof value !== 'undefined') { - if (typeof value === 'object') { - for (const val of Object.keys(value)) { - const params = propName + '[' + val + ']' - const subPart = encodeURIComponent(params) + '=' - url += subPart + encodeURIComponent(value[val]) + '&' - } - } else { - url += `${propName}=${encodeURIComponent(value)}&` - } - } - } - // 给 get 请求加上时间戳参数,避免从缓存中拿数据 - // const now = new Date().getTime() - // params = params.substring(0, url.length - 1) + `?_t=${now}` - url = url.slice(0, -1) - config.params = {} - config.url = url - } - return config - }, - (error: AxiosError) => { - // Do something with request error - console.log(error) // for debug - Promise.reject(error) - } -) - -// response 拦截器 -service.interceptors.response.use( - async (response: AxiosResponse) => { - const { data } = response - const config = response.config - if (!data) { - // 返回“[HTTP]请求没有返回值”; - throw new Error() - } - const { t } = useI18n() - // 未设置状态码则默认成功状态 - const code = data.code || result_code - // 二进制数据则直接返回 - if ( - response.request.responseType === 'blob' || - response.request.responseType === 'arraybuffer' - ) { - return response.data - } - // 获取错误信息 - const msg = data.msg || errorCode[code] || errorCode['default'] - if (ignoreMsgs.indexOf(msg) !== -1) { - // 如果是忽略的错误码,直接返回 msg 异常 - return Promise.reject(msg) - } else if (code === 401) { - // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了 - if (!isRefreshToken) { - isRefreshToken = true - // 1. 如果获取不到刷新令牌,则只能执行登出操作 - if (!getRefreshToken()) { - return handleAuthorized() - } - // 2. 进行刷新访问令牌 - try { - const refreshTokenRes = await refreshToken() - // 2.1 刷新成功,则回放队列的请求 + 当前请求 - setToken((await refreshTokenRes).data.data) - config.headers!.Authorization = 'Bearer ' + getAccessToken() - requestList.forEach((cb: any) => { - cb() - }) - requestList = [] - return service(config) - } catch (e) { - // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。 - // 2.2 刷新失败,只回放队列的请求 - requestList.forEach((cb: any) => { - cb() - }) - // 提示是否要登出。即不回放当前请求!不然会形成递归 - return handleAuthorized() - } finally { - requestList = [] - isRefreshToken = false - } - } else { - // 添加到队列,等待刷新获取到新的令牌 - return new Promise((resolve) => { - requestList.push(() => { - config.headers!.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - resolve(service(config)) - }) - }) - } - } else if (code === 500) { - ElMessage.error(t('sys.api.errMsg500')) - return Promise.reject(new Error(msg)) - } else if (code === 901) { - ElMessage.error({ - offset: 300, - dangerouslyUseHTMLString: true, - message: - '
    ' + - t('sys.api.errMsg901') + - '
    ' + - '
     
    ' + - '
    请官网 https://www.yixiang.co/
    ' + - '
     
    ' + - '
    购买后自己搭建体验
    ' - }) - return Promise.reject(new Error(msg)) - } else if (code !== 200) { - if (msg === '无效的刷新令牌') { - // hard coding:忽略这个提示,直接登出 - console.log(msg) - } else { - ElNotification.error({ title: msg }) - } - return Promise.reject('error') - } else { - return data - } - }, - (error: AxiosError) => { - console.log('err' + error) // for debug - let { message } = error - const { t } = useI18n() - if (message === 'Network Error') { - message = t('sys.api.errorMessage') - } else if (message.includes('timeout')) { - message = t('sys.api.apiTimeoutMessage') - } else if (message.includes('Request failed with status code')) { - message = t('sys.api.apiRequestFailed') + message.substr(message.length - 3) - } - ElMessage.error(message) - return Promise.reject(error) - } -) - -const refreshToken = async () => { - axios.defaults.headers.common['tenant-id'] = getTenantId() - return await axios.post(base_url + '/system/auth/refresh-token?refreshToken=' + getRefreshToken()) -} -const handleAuthorized = () => { - const { t } = useI18n() - if (!isRelogin.show) { - isRelogin.show = true - ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), { - showCancelButton: false, - closeOnClickModal: false, - showClose: false, - confirmButtonText: t('login.relogin'), - type: 'warning' - }).then(() => { - const { wsCache } = useCache() - resetRouter() // 重置静态路由表 - wsCache.clear() - removeToken() - isRelogin.show = false - // 干掉token后再走一次路由让它过router.beforeEach的校验 - window.location.href = window.location.href - }) - } - return Promise.reject(t('sys.api.timeoutMessage')) -} -export { service } diff --git a/yshop-drink-vue/src/directives/index.ts b/yshop-drink-vue/src/directives/index.ts deleted file mode 100644 index 89cc8ba..0000000 --- a/yshop-drink-vue/src/directives/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { App } from 'vue' -import { hasRole } from './permission/hasRole' -import { hasPermi } from './permission/hasPermi' - -/** - * 导出指令:v-xxx - * @methods hasRole 用户权限,用法: v-hasRole - * @methods hasPermi 按钮权限,用法: v-hasPermi - */ -export const setupAuth = (app: App) => { - hasRole(app) - hasPermi(app) -} diff --git a/yshop-drink-vue/src/directives/permission/hasPermi.ts b/yshop-drink-vue/src/directives/permission/hasPermi.ts deleted file mode 100644 index d86d2f5..0000000 --- a/yshop-drink-vue/src/directives/permission/hasPermi.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { App } from 'vue' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' - -const { t } = useI18n() // 国际化 - -export function hasPermi(app: App) { - app.directive('hasPermi', (el, binding) => { - const { wsCache } = useCache() - const { value } = binding - const all_permission = '*:*:*' - const permissions = wsCache.get(CACHE_KEY.USER).permissions - - if (value && value instanceof Array && value.length > 0) { - const permissionFlag = value - - const hasPermissions = permissions.some((permission: string) => { - return all_permission === permission || permissionFlag.includes(permission) - }) - - if (!hasPermissions) { - el.parentNode && el.parentNode.removeChild(el) - } - } else { - throw new Error(t('permission.hasPermission')) - } - }) -} diff --git a/yshop-drink-vue/src/directives/permission/hasRole.ts b/yshop-drink-vue/src/directives/permission/hasRole.ts deleted file mode 100644 index 31a352a..0000000 --- a/yshop-drink-vue/src/directives/permission/hasRole.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { App } from 'vue' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' - -const { t } = useI18n() // 国际化 - -export function hasRole(app: App) { - app.directive('hasRole', (el, binding) => { - const { wsCache } = useCache() - const { value } = binding - const super_admin = 'admin' - const roles = wsCache.get(CACHE_KEY.USER).roles - - if (value && value instanceof Array && value.length > 0) { - const roleFlag = value - - const hasRole = roles.some((role: string) => { - return super_admin === role || roleFlag.includes(role) - }) - - if (!hasRole) { - el.parentNode && el.parentNode.removeChild(el) - } - } else { - throw new Error(t('permission.hasRole')) - } - }) -} diff --git a/yshop-drink-vue/src/hooks/event/useScrollTo.ts b/yshop-drink-vue/src/hooks/event/useScrollTo.ts deleted file mode 100644 index 92aec87..0000000 --- a/yshop-drink-vue/src/hooks/event/useScrollTo.ts +++ /dev/null @@ -1,60 +0,0 @@ -export interface ScrollToParams { - el: HTMLElement - to: number - position: string - duration?: number - callback?: () => void -} - -const easeInOutQuad = (t: number, b: number, c: number, d: number) => { - t /= d / 2 - if (t < 1) { - return (c / 2) * t * t + b - } - t-- - return (-c / 2) * (t * (t - 2) - 1) + b -} -const move = (el: HTMLElement, position: string, amount: number) => { - el[position] = amount -} - -export function useScrollTo({ - el, - position = 'scrollLeft', - to, - duration = 500, - callback -}: ScrollToParams) { - const isActiveRef = ref(false) - const start = el[position] - const change = to - start - const increment = 20 - let currentTime = 0 - - function animateScroll() { - if (!unref(isActiveRef)) { - return - } - currentTime += increment - const val = easeInOutQuad(currentTime, start, change, duration) - move(el, position, val) - if (currentTime < duration && unref(isActiveRef)) { - requestAnimationFrame(animateScroll) - } else { - if (callback) { - callback() - } - } - } - - function run() { - isActiveRef.value = true - animateScroll() - } - - function stop() { - isActiveRef.value = false - } - - return { start: run, stop } -} diff --git a/yshop-drink-vue/src/hooks/web/useCache.ts b/yshop-drink-vue/src/hooks/web/useCache.ts deleted file mode 100644 index 6d2a931..0000000 --- a/yshop-drink-vue/src/hooks/web/useCache.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 配置浏览器本地存储的方式,可直接存储对象数组。 - */ - -import WebStorageCache from 'web-storage-cache' - -type CacheType = 'localStorage' | 'sessionStorage' - -export const CACHE_KEY = { - IS_DARK: 'isDark', - USER: 'user', - LANG: 'lang', - THEME: 'theme', - LAYOUT: 'layout', - ROLE_ROUTERS: 'roleRouters', - DICT_CACHE: 'dictCache' -} - -export const useCache = (type: CacheType = 'localStorage') => { - const wsCache: WebStorageCache = new WebStorageCache({ - storage: type - }) - - return { - wsCache - } -} diff --git a/yshop-drink-vue/src/hooks/web/useConfigGlobal.ts b/yshop-drink-vue/src/hooks/web/useConfigGlobal.ts deleted file mode 100644 index afb3db3..0000000 --- a/yshop-drink-vue/src/hooks/web/useConfigGlobal.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ConfigGlobalTypes } from '@/types/configGlobal' - -export const useConfigGlobal = () => { - const configGlobal = inject('configGlobal', {}) as ConfigGlobalTypes - - return { - configGlobal - } -} diff --git a/yshop-drink-vue/src/hooks/web/useCrudSchemas.ts b/yshop-drink-vue/src/hooks/web/useCrudSchemas.ts deleted file mode 100644 index a29f75a..0000000 --- a/yshop-drink-vue/src/hooks/web/useCrudSchemas.ts +++ /dev/null @@ -1,305 +0,0 @@ -import { reactive } from 'vue' -import { AxiosPromise } from 'axios' -import { findIndex } from '@/utils' -import { eachTree, treeMap, filter } from '@/utils/tree' -import { getBoolDictOptions, getDictOptions, getIntDictOptions } from '@/utils/dict' - -import { FormSchema } from '@/types/form' -import { TableColumn } from '@/types/table' -import { DescriptionsSchema } from '@/types/descriptions' -import { ComponentOptions, ComponentProps } from '@/types/components' -import { DictTag } from '@/components/DictTag' - -export type CrudSchema = Omit & { - isSearch?: boolean // 是否在查询显示 - search?: CrudSearchParams // 查询的详细配置 - isTable?: boolean // 是否在列表显示 - table?: CrudTableParams // 列表的详细配置 - isForm?: boolean // 是否在表单显示 - form?: CrudFormParams // 表单的详细配置 - isDetail?: boolean // 是否在详情显示 - detail?: CrudDescriptionsParams // 详情的详细配置 - children?: CrudSchema[] - dictType?: string // 字典类型 - dictClass?: 'string' | 'number' | 'boolean' // 字典数据类型 string | number | boolean -} - -type CrudSearchParams = { - // 是否显示在查询项 - show?: boolean - // 接口 - api?: () => Promise - // 搜索字段 - field?: string -} & Omit - -type CrudTableParams = { - // 是否显示表头 - show?: boolean -} & Omit - -type CrudFormParams = { - // 是否显示表单项 - show?: boolean - // 接口 - api?: () => Promise -} & Omit - -type CrudDescriptionsParams = { - // 是否显示表单项 - show?: boolean -} & Omit - -interface AllSchemas { - searchSchema: FormSchema[] - tableColumns: TableColumn[] - formSchema: FormSchema[] - detailSchema: DescriptionsSchema[] -} - -const { t } = useI18n() - -// 过滤所有结构 -export const useCrudSchemas = ( - crudSchema: CrudSchema[] -): { - allSchemas: AllSchemas -} => { - // 所有结构数据 - const allSchemas = reactive({ - searchSchema: [], - tableColumns: [], - formSchema: [], - detailSchema: [] - }) - - const searchSchema = filterSearchSchema(crudSchema, allSchemas) - allSchemas.searchSchema = searchSchema || [] - - const tableColumns = filterTableSchema(crudSchema) - allSchemas.tableColumns = tableColumns || [] - - const formSchema = filterFormSchema(crudSchema, allSchemas) - allSchemas.formSchema = formSchema - - const detailSchema = filterDescriptionsSchema(crudSchema) - allSchemas.detailSchema = detailSchema - - return { - allSchemas - } -} - -// 过滤 Search 结构 -const filterSearchSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => { - const searchSchema: FormSchema[] = [] - - // 获取字典列表队列 - const searchRequestTask: Array<() => Promise> = [] - eachTree(crudSchema, (schemaItem: CrudSchema) => { - // 判断是否显示 - if (schemaItem?.isSearch || schemaItem.search?.show) { - let component = schemaItem?.search?.component || 'Input' - const options: ComponentOptions[] = [] - let comonentProps: ComponentProps = {} - if (schemaItem.dictType) { - const allOptions: ComponentOptions = { label: '全部', value: '' } - options.push(allOptions) - getDictOptions(schemaItem.dictType).forEach((dict) => { - options.push(dict) - }) - comonentProps = { - options: options - } - if (!schemaItem.search?.component) component = 'Select' - } - const searchSchemaItem = { - // 默认为 input - component: component, - componentProps: comonentProps, - ...schemaItem.search, - field: schemaItem.field, - label: schemaItem.search?.label || schemaItem.label - } - if (searchSchemaItem.api) { - searchRequestTask.push(async () => { - const res = await (searchSchemaItem.api as () => AxiosPromise)() - if (res) { - const index = findIndex(allSchemas.searchSchema, (v: FormSchema) => { - return v.field === searchSchemaItem.field - }) - if (index !== -1) { - allSchemas.searchSchema[index]!.componentProps!.options = filterOptions( - res, - searchSchemaItem.componentProps.optionsAlias?.labelField - ) - } - } - }) - } - // 删除不必要的字段 - delete searchSchemaItem.show - - searchSchema.push(searchSchemaItem) - } - }) - for (const task of searchRequestTask) { - task() - } - return searchSchema -} - -// 过滤 table 结构 -const filterTableSchema = (crudSchema: CrudSchema[]): TableColumn[] => { - const tableColumns = treeMap(crudSchema, { - conversion: (schema: CrudSchema) => { - if (schema?.isTable !== false && schema?.table?.show !== false) { - // add by 芋艿:增加对 dict 字典数据的支持 - if (!schema.formatter && schema.dictType) { - schema.formatter = (_: Recordable, __: TableColumn, cellValue: any) => { - return h(DictTag, { - type: schema.dictType!, // ! 表示一定不为空 - value: cellValue - }) - } - } - return { - ...schema.table, - ...schema - } - } - } - }) - - // 第一次过滤会有 undefined 所以需要二次过滤 - return filter(tableColumns as TableColumn[], (data) => { - if (data.children === void 0) { - delete data.children - } - return !!data.field - }) -} - -// 过滤 form 结构 -const filterFormSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => { - const formSchema: FormSchema[] = [] - - // 获取字典列表队列 - const formRequestTask: Array<() => Promise> = [] - - eachTree(crudSchema, (schemaItem: CrudSchema) => { - // 判断是否显示 - if (schemaItem?.isForm !== false && schemaItem?.form?.show !== false) { - let component = schemaItem?.form?.component || 'Input' - let defaultValue: any = '' - if (schemaItem.form?.value) { - defaultValue = schemaItem.form?.value - } else { - if (component === 'InputNumber') { - defaultValue = 0 - } - } - let comonentProps: ComponentProps = {} - if (schemaItem.dictType) { - const options: ComponentOptions[] = [] - if (schemaItem.dictClass && schemaItem.dictClass === 'number') { - getIntDictOptions(schemaItem.dictType).forEach((dict) => { - options.push(dict) - }) - } else if (schemaItem.dictClass && schemaItem.dictClass === 'boolean') { - getBoolDictOptions(schemaItem.dictType).forEach((dict) => { - options.push(dict) - }) - } else { - getDictOptions(schemaItem.dictType).forEach((dict) => { - options.push(dict) - }) - } - comonentProps = { - options: options - } - if (!(schemaItem.form && schemaItem.form.component)) component = 'Select' - } - const formSchemaItem = { - // 默认为 input - component: component, - componentProps: comonentProps, - value: defaultValue, - ...schemaItem.form, - field: schemaItem.field, - label: schemaItem.form?.label || schemaItem.label - } - - if (formSchemaItem.api) { - formRequestTask.push(async () => { - const res = await (formSchemaItem.api as () => AxiosPromise)() - if (res) { - const index = findIndex(allSchemas.formSchema, (v: FormSchema) => { - return v.field === formSchemaItem.field - }) - if (index !== -1) { - allSchemas.formSchema[index]!.componentProps!.options = filterOptions( - res, - formSchemaItem.componentProps.optionsAlias?.labelField - ) - } - } - }) - } - - // 删除不必要的字段 - delete formSchemaItem.show - - formSchema.push(formSchemaItem) - } - }) - - for (const task of formRequestTask) { - task() - } - return formSchema -} - -// 过滤 descriptions 结构 -const filterDescriptionsSchema = (crudSchema: CrudSchema[]): DescriptionsSchema[] => { - const descriptionsSchema: FormSchema[] = [] - - eachTree(crudSchema, (schemaItem: CrudSchema) => { - // 判断是否显示 - if (schemaItem?.isDetail !== false && schemaItem.detail?.show !== false) { - const descriptionsSchemaItem = { - ...schemaItem.detail, - field: schemaItem.field, - label: schemaItem.detail?.label || schemaItem.label - } - if (schemaItem.dictType) { - descriptionsSchemaItem.dictType = schemaItem.dictType - } - if (schemaItem.detail?.dateFormat || schemaItem.formatter == 'formatDate') { - // 优先使用 detail 下的配置,如果没有默认为 YYYY-MM-DD HH:mm:ss - descriptionsSchemaItem.dateFormat = schemaItem?.detail?.dateFormat - ? schemaItem?.detail?.dateFormat - : 'YYYY-MM-DD HH:mm:ss' - } - - // 删除不必要的字段 - delete descriptionsSchemaItem.show - - descriptionsSchema.push(descriptionsSchemaItem) - } - }) - - return descriptionsSchema -} - -// 给options添加国际化 -const filterOptions = (options: Recordable, labelField?: string) => { - return options?.map((v: Recordable) => { - if (labelField) { - v['labelField'] = t(v.labelField) - } else { - v['label'] = t(v.label) - } - return v - }) -} diff --git a/yshop-drink-vue/src/hooks/web/useDesign.ts b/yshop-drink-vue/src/hooks/web/useDesign.ts deleted file mode 100644 index 8ee3b38..0000000 --- a/yshop-drink-vue/src/hooks/web/useDesign.ts +++ /dev/null @@ -1,18 +0,0 @@ -import variables from '@/styles/global.module.scss' - -export const useDesign = () => { - const scssVariables = variables - - /** - * @param scope 类名 - * @returns 返回空间名-类名 - */ - const getPrefixCls = (scope: string) => { - return `${scssVariables.namespace}-${scope}` - } - - return { - variables: scssVariables, - getPrefixCls - } -} diff --git a/yshop-drink-vue/src/hooks/web/useEmitt.ts b/yshop-drink-vue/src/hooks/web/useEmitt.ts deleted file mode 100644 index d4efea7..0000000 --- a/yshop-drink-vue/src/hooks/web/useEmitt.ts +++ /dev/null @@ -1,22 +0,0 @@ -import mitt from 'mitt' - -interface Option { - name: string // 事件名称 - callback: Fn // 回调 -} - -const emitter = mitt() - -export const useEmitt = (option?: Option) => { - if (option) { - emitter.on(option.name, option.callback) - - onBeforeUnmount(() => { - emitter.off(option.name) - }) - } - - return { - emitter - } -} diff --git a/yshop-drink-vue/src/hooks/web/useForm.ts b/yshop-drink-vue/src/hooks/web/useForm.ts deleted file mode 100644 index 53a8a94..0000000 --- a/yshop-drink-vue/src/hooks/web/useForm.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { Form, FormExpose } from '@/components/Form' -import type { ElForm } from 'element-plus' -import type { FormProps } from '@/components/Form/src/types' -import { FormSchema, FormSetPropsType } from '@/types/form' - -export const useForm = (props?: FormProps) => { - // From实例 - const formRef = ref() - - // ElForm实例 - const elFormRef = ref>() - - /** - * @param ref Form实例 - * @param elRef ElForm实例 - */ - const register = (ref: typeof Form & FormExpose, elRef: ComponentRef) => { - formRef.value = ref - elFormRef.value = elRef - } - - const getForm = async () => { - await nextTick() - const form = unref(formRef) - if (!form) { - console.error('The form is not registered. Please use the register method to register') - } - return form - } - - // 一些内置的方法 - const methods: { - setProps: (props: Recordable) => void - setValues: (data: Recordable) => void - getFormData: () => Promise - setSchema: (schemaProps: FormSetPropsType[]) => void - addSchema: (formSchema: FormSchema, index?: number) => void - delSchema: (field: string) => void - } = { - setProps: async (props: FormProps = {}) => { - const form = await getForm() - form?.setProps(props) - if (props.model) { - form?.setValues(props.model) - } - }, - - setValues: async (data: Recordable) => { - const form = await getForm() - form?.setValues(data) - }, - - /** - * @param schemaProps 需要设置的schemaProps - */ - setSchema: async (schemaProps: FormSetPropsType[]) => { - const form = await getForm() - form?.setSchema(schemaProps) - }, - - /** - * @param formSchema 需要新增数据 - * @param index 在哪里新增 - */ - addSchema: async (formSchema: FormSchema, index?: number) => { - const form = await getForm() - form?.addSchema(formSchema, index) - }, - - /** - * @param field 删除哪个数据 - */ - delSchema: async (field: string) => { - const form = await getForm() - form?.delSchema(field) - }, - - /** - * @returns form data - */ - getFormData: async (): Promise => { - const form = await getForm() - return form?.formModel as T - } - } - - props && methods.setProps(props) - - return { - register, - elFormRef, - methods - } -} diff --git a/yshop-drink-vue/src/hooks/web/useI18n.ts b/yshop-drink-vue/src/hooks/web/useI18n.ts deleted file mode 100644 index d1ab70f..0000000 --- a/yshop-drink-vue/src/hooks/web/useI18n.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { i18n } from '@/plugins/vueI18n' - -type I18nGlobalTranslation = { - (key: string): string - (key: string, locale: string): string - (key: string, locale: string, list: unknown[]): string - (key: string, locale: string, named: Record): string - (key: string, list: unknown[]): string - (key: string, named: Record): string -} - -type I18nTranslationRestParameters = [string, any] - -const getKey = (namespace: string | undefined, key: string) => { - if (!namespace) { - return key - } - if (key.startsWith(namespace)) { - return key - } - return `${namespace}.${key}` -} - -export const useI18n = ( - namespace?: string -): { - t: I18nGlobalTranslation -} => { - const normalFn = { - t: (key: string) => { - return getKey(namespace, key) - } - } - - if (!i18n) { - return normalFn - } - - const { t, ...methods } = i18n.global - - const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => { - if (!key) return '' - if (!key.includes('.') && !namespace) return key - //@ts-ignore - return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters)) - } - return { - ...methods, - t: tFn - } -} - -export const t = (key: string) => key diff --git a/yshop-drink-vue/src/hooks/web/useIcon.ts b/yshop-drink-vue/src/hooks/web/useIcon.ts deleted file mode 100644 index 3500204..0000000 --- a/yshop-drink-vue/src/hooks/web/useIcon.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { h } from 'vue' -import type { VNode } from 'vue' -import { Icon } from '@/components/Icon' -import { IconTypes } from '@/types/icon' - -export const useIcon = (props: IconTypes): VNode => { - return h(Icon, props) -} diff --git a/yshop-drink-vue/src/hooks/web/useIntro.ts b/yshop-drink-vue/src/hooks/web/useIntro.ts deleted file mode 100644 index 7fe0084..0000000 --- a/yshop-drink-vue/src/hooks/web/useIntro.ts +++ /dev/null @@ -1,47 +0,0 @@ -import introJs from 'intro.js' -import { IntroJs, Step, Options } from 'intro.js' -import 'intro.js/introjs.css' - -import { useDesign } from '@/hooks/web/useDesign' - -export const useIntro = (setps?: Step[], options?: Options) => { - const { t } = useI18n() - - const { variables } = useDesign() - - const defaultSetps: Step[] = setps || [ - { - element: `#${variables.namespace}-menu`, - title: t('common.menu'), - intro: t('common.menuDes'), - position: 'right' - }, - { - element: `#${variables.namespace}-tool-header`, - title: t('common.tool'), - intro: t('common.toolDes'), - position: 'left' - }, - { - element: `#${variables.namespace}-tags-view`, - title: t('common.tagsView'), - intro: t('common.tagsViewDes'), - position: 'bottom' - } - ] - - const defaultOptions: Options = options || { - prevLabel: t('common.prevLabel'), - nextLabel: t('common.nextLabel'), - skipLabel: t('common.skipLabel'), - doneLabel: t('common.doneLabel') - } - - const introRef: IntroJs = introJs() - - introRef.addSteps(defaultSetps).setOptions(defaultOptions) - - return { - introRef - } -} diff --git a/yshop-drink-vue/src/hooks/web/useLocale.ts b/yshop-drink-vue/src/hooks/web/useLocale.ts deleted file mode 100644 index c65070e..0000000 --- a/yshop-drink-vue/src/hooks/web/useLocale.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { i18n } from '@/plugins/vueI18n' -import { useLocaleStoreWithOut } from '@/store/modules/locale' -import { setHtmlPageLang } from '@/plugins/vueI18n/helper' - -const setI18nLanguage = (locale: LocaleType) => { - const localeStore = useLocaleStoreWithOut() - - if (i18n.mode === 'legacy') { - i18n.global.locale = locale - } else { - ;(i18n.global.locale as any).value = locale - } - localeStore.setCurrentLocale({ - lang: locale - }) - setHtmlPageLang(locale) -} - -export const useLocale = () => { - // Switching the language will change the locale of useI18n - // And submit to configuration modification - const changeLocale = async (locale: LocaleType) => { - const globalI18n = i18n.global - - const langModule = await import(`../../locales/${locale}.ts`) - - globalI18n.setLocaleMessage(locale, langModule.default) - - setI18nLanguage(locale) - } - - return { - changeLocale - } -} diff --git a/yshop-drink-vue/src/hooks/web/useMessage.ts b/yshop-drink-vue/src/hooks/web/useMessage.ts deleted file mode 100644 index ac2b552..0000000 --- a/yshop-drink-vue/src/hooks/web/useMessage.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' -import { useI18n } from './useI18n' -export const useMessage = () => { - const { t } = useI18n() - return { - // 消息提示 - info(content: string) { - ElMessage.info(content) - }, - // 错误消息 - error(content: string) { - ElMessage.error(content) - }, - // 成功消息 - success(content: string) { - ElMessage.success(content) - }, - // 警告消息 - warning(content: string) { - ElMessage.warning(content) - }, - // 弹出提示 - alert(content: string) { - ElMessageBox.alert(content, t('common.confirmTitle')) - }, - // 错误提示 - alertError(content: string) { - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' }) - }, - // 成功提示 - alertSuccess(content: string) { - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' }) - }, - // 警告提示 - alertWarning(content: string) { - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' }) - }, - // 通知提示 - notify(content: string) { - ElNotification.info(content) - }, - // 错误通知 - notifyError(content: string) { - ElNotification.error(content) - }, - // 成功通知 - notifySuccess(content: string) { - ElNotification.success(content) - }, - // 警告通知 - notifyWarning(content: string) { - ElNotification.warning(content) - }, - // 确认窗体 - confirm(content: string, tip?: string) { - return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - }) - }, - // 删除窗体 - delConfirm(content?: string, tip?: string) { - return ElMessageBox.confirm( - content ? content : t('common.delMessage'), - tip ? tip : t('common.confirmTitle'), - { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - } - ) - }, - // 导出窗体 - exportConfirm(content?: string, tip?: string) { - return ElMessageBox.confirm( - content ? content : t('common.exportMessage'), - tip ? tip : t('common.confirmTitle'), - { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - } - ) - }, - // 提交内容 - prompt(content: string, tip: string) { - return ElMessageBox.prompt(content, tip, { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - }) - } - } -} diff --git a/yshop-drink-vue/src/hooks/web/useNProgress.ts b/yshop-drink-vue/src/hooks/web/useNProgress.ts deleted file mode 100644 index 6d8c0b9..0000000 --- a/yshop-drink-vue/src/hooks/web/useNProgress.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { useCssVar } from '@vueuse/core' -import type { NProgressOptions } from 'nprogress' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' - -const primaryColor = useCssVar('--el-color-primary', document.documentElement) - -export const useNProgress = () => { - NProgress.configure({ showSpinner: false } as NProgressOptions) - - const initColor = async () => { - await nextTick() - const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef - if (bar) { - bar.style.background = unref(primaryColor.value) - } - } - - initColor() - - const start = () => { - NProgress.start() - } - - const done = () => { - NProgress.done() - } - - return { - start, - done - } -} diff --git a/yshop-drink-vue/src/hooks/web/usePageLoading.ts b/yshop-drink-vue/src/hooks/web/usePageLoading.ts deleted file mode 100644 index bb89457..0000000 --- a/yshop-drink-vue/src/hooks/web/usePageLoading.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { useAppStoreWithOut } from '@/store/modules/app' - -const appStore = useAppStoreWithOut() - -export const usePageLoading = () => { - const loadStart = () => { - appStore.setPageLoading(true) - } - - const loadDone = () => { - appStore.setPageLoading(false) - } - - return { - loadStart, - loadDone - } -} diff --git a/yshop-drink-vue/src/hooks/web/useTable.ts b/yshop-drink-vue/src/hooks/web/useTable.ts deleted file mode 100644 index 3f0d505..0000000 --- a/yshop-drink-vue/src/hooks/web/useTable.ts +++ /dev/null @@ -1,225 +0,0 @@ -import download from '@/utils/download' -import { Table, TableExpose } from '@/components/Table' -import { ElMessage, ElMessageBox, ElTable } from 'element-plus' -import { computed, nextTick, reactive, ref, unref, watch } from 'vue' -import type { TableProps } from '@/components/Table/src/types' - -import { TableSetPropsType } from '@/types/table' - -const { t } = useI18n() -interface ResponseType { - list: T[] - total?: number -} - -interface UseTableConfig { - getListApi: (option: any) => Promise - delListApi?: (option: any) => Promise - exportListApi?: (option: any) => Promise - // 返回数据格式配置 - response?: ResponseType - // 默认传递的参数 - defaultParams?: Recordable - props?: TableProps -} - -interface TableObject { - pageSize: number - currentPage: number - total: number - tableList: T[] - params: any - loading: boolean - exportLoading: boolean - currentRow: Nullable -} - -export const useTable = (config?: UseTableConfig) => { - const tableObject = reactive>({ - // 页数 - pageSize: 10, - // 当前页 - currentPage: 1, - // 总条数 - total: 10, - // 表格数据 - tableList: [], - // AxiosConfig 配置 - params: { - ...(config?.defaultParams || {}) - }, - // 加载中 - loading: true, - // 导出加载中 - exportLoading: false, - // 当前行的数据 - currentRow: null - }) - - const paramsObj = computed(() => { - return { - ...tableObject.params, - pageSize: tableObject.pageSize, - pageNo: tableObject.currentPage - } - }) - - watch( - () => tableObject.currentPage, - () => { - methods.getList() - } - ) - - watch( - () => tableObject.pageSize, - () => { - // 当前页不为1时,修改页数后会导致多次调用getList方法 - if (tableObject.currentPage === 1) { - methods.getList() - } else { - tableObject.currentPage = 1 - methods.getList() - } - } - ) - - // Table实例 - const tableRef = ref() - - // ElTable实例 - const elTableRef = ref>() - - const register = (ref: typeof Table & TableExpose, elRef: ComponentRef) => { - tableRef.value = ref - elTableRef.value = elRef - } - - const getTable = async () => { - await nextTick() - const table = unref(tableRef) - if (!table) { - console.error('The table is not registered. Please use the register method to register') - } - return table - } - - const delData = async (ids: string | number | string[] | number[]) => { - let idsLength = 1 - if (ids instanceof Array) { - idsLength = ids.length - await Promise.all( - ids.map(async (id: string | number) => { - await (config?.delListApi && config?.delListApi(id)) - }) - ) - } else { - await (config?.delListApi && config?.delListApi(ids)) - } - ElMessage.success(t('common.delSuccess')) - - // 计算出临界点 - tableObject.currentPage = - tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1 - ? tableObject.currentPage > 1 - ? tableObject.currentPage - 1 - : tableObject.currentPage - : tableObject.currentPage - await methods.getList() - } - - const methods = { - getList: async () => { - tableObject.loading = true - const res = await config?.getListApi(unref(paramsObj)).finally(() => { - tableObject.loading = false - }) - if (res) { - tableObject.tableList = (res as unknown as ResponseType).list - if ((res as unknown as ResponseType).total) { - tableObject.total = (res as unknown as ResponseType).total as unknown as number - } - } - }, - setProps: async (props: TableProps = {}) => { - const table = await getTable() - table?.setProps(props) - }, - setColumn: async (columnProps: TableSetPropsType[]) => { - const table = await getTable() - table?.setColumn(columnProps) - }, - getSelections: async () => { - const table = await getTable() - return (table?.selections || []) as T[] - }, - // 与Search组件结合 - setSearchParams: (data: Recordable) => { - tableObject.params = Object.assign(tableObject.params, { - pageSize: tableObject.pageSize, - pageNo: 1, - ...data - }) - // 页码不等于1时更新页码重新获取数据,页码等于1时重新获取数据 - if (tableObject.currentPage !== 1) { - tableObject.currentPage = 1 - } else { - methods.getList() - } - }, - // 删除数据 - delList: async ( - ids: string | number | string[] | number[], - multiple: boolean, - message = true - ) => { - const tableRef = await getTable() - if (multiple) { - if (!tableRef?.selections.length) { - ElMessage.warning(t('common.delNoData')) - return - } - } - if (message) { - ElMessageBox.confirm(t('common.delMessage'), t('common.confirmTitle'), { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - }).then(async () => { - await delData(ids) - }) - } else { - await delData(ids) - } - }, - // 导出列表 - exportList: async (fileName: string) => { - tableObject.exportLoading = true - ElMessageBox.confirm(t('common.exportMessage'), t('common.confirmTitle'), { - confirmButtonText: t('common.ok'), - cancelButtonText: t('common.cancel'), - type: 'warning' - }) - .then(async () => { - const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T) - if (res) { - download.excel(res as unknown as Blob, fileName) - } - }) - .finally(() => { - tableObject.exportLoading = false - }) - } - } - - config?.props && methods.setProps(config.props) - - return { - register, - elTableRef, - tableObject, - methods, - // add by 芋艿:返回 tableMethods 属性,和 tableObject 更统一 - tableMethods: methods - } -} diff --git a/yshop-drink-vue/src/hooks/web/useTimeAgo.ts b/yshop-drink-vue/src/hooks/web/useTimeAgo.ts deleted file mode 100644 index a6da281..0000000 --- a/yshop-drink-vue/src/hooks/web/useTimeAgo.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { useTimeAgo as useTimeAgoCore, UseTimeAgoMessages } from '@vueuse/core' -import { useLocaleStoreWithOut } from '@/store/modules/locale' - -const TIME_AGO_MESSAGE_MAP: { - 'zh-CN': UseTimeAgoMessages - en: UseTimeAgoMessages -} = { - // @ts-ignore - 'zh-CN': { - justNow: '刚刚', - past: (n) => (n.match(/\d/) ? `${n}前` : n), - future: (n) => (n.match(/\d/) ? `${n}后` : n), - month: (n, past) => (n === 1 ? (past ? '上个月' : '下个月') : `${n} 个月`), - year: (n, past) => (n === 1 ? (past ? '去年' : '明年') : `${n} 年`), - day: (n, past) => (n === 1 ? (past ? '昨天' : '明天') : `${n} 天`), - week: (n, past) => (n === 1 ? (past ? '上周' : '下周') : `${n} 周`), - hour: (n) => `${n} 小时`, - minute: (n) => `${n} 分钟`, - second: (n) => `${n} 秒` - }, - // @ts-ignore - en: { - justNow: 'just now', - past: (n) => (n.match(/\d/) ? `${n} ago` : n), - future: (n) => (n.match(/\d/) ? `in ${n}` : n), - month: (n, past) => - n === 1 ? (past ? 'last month' : 'next month') : `${n} month${n > 1 ? 's' : ''}`, - year: (n, past) => - n === 1 ? (past ? 'last year' : 'next year') : `${n} year${n > 1 ? 's' : ''}`, - day: (n, past) => (n === 1 ? (past ? 'yesterday' : 'tomorrow') : `${n} day${n > 1 ? 's' : ''}`), - week: (n, past) => - n === 1 ? (past ? 'last week' : 'next week') : `${n} week${n > 1 ? 's' : ''}`, - hour: (n) => `${n} hour${n > 1 ? 's' : ''}`, - minute: (n) => `${n} minute${n > 1 ? 's' : ''}`, - second: (n) => `${n} second${n > 1 ? 's' : ''}` - } -} - -export const useTimeAgo = (time: Date | number | string) => { - const localeStore = useLocaleStoreWithOut() - - const currentLocale = computed(() => localeStore.getCurrentLocale) - - const timeAgo = useTimeAgoCore(time, { - messages: TIME_AGO_MESSAGE_MAP[unref(currentLocale).lang] - }) - - return timeAgo -} diff --git a/yshop-drink-vue/src/hooks/web/useTitle.ts b/yshop-drink-vue/src/hooks/web/useTitle.ts deleted file mode 100644 index 020a9b7..0000000 --- a/yshop-drink-vue/src/hooks/web/useTitle.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { watch, ref } from 'vue' -import { isString } from '@/utils/is' -import { useAppStoreWithOut } from '@/store/modules/app' - -const appStore = useAppStoreWithOut() - -export const useTitle = (newTitle?: string) => { - const { t } = useI18n() - const title = ref( - newTitle ? `${appStore.getTitle} - ${t(newTitle as string)}` : appStore.getTitle - ) - - watch( - title, - (n, o) => { - if (isString(n) && n !== o && document) { - document.title = n - } - }, - { immediate: true } - ) - - return title -} diff --git a/yshop-drink-vue/src/hooks/web/useValidator.ts b/yshop-drink-vue/src/hooks/web/useValidator.ts deleted file mode 100644 index 0c16fa3..0000000 --- a/yshop-drink-vue/src/hooks/web/useValidator.ts +++ /dev/null @@ -1,62 +0,0 @@ -const { t } = useI18n() - -type Callback = (error?: string | Error | undefined) => void - -interface LengthRange { - min: number - max: number - message: string -} - -export const useValidator = () => { - const required = (message?: string) => { - return { - required: true, - message: message || t('common.required') - } - } - - const lengthRange = (val: any, callback: Callback, options: LengthRange) => { - const { min, max, message } = options - if (val.length < min || val.length > max) { - callback(new Error(message)) - } else { - callback() - } - } - - const notSpace = (val: any, callback: Callback, message: string) => { - // 用户名不能有空格 - if (val.indexOf(' ') !== -1) { - callback(new Error(message)) - } else { - callback() - } - } - - const notSpecialCharacters = (val: any, callback: Callback, message: string) => { - // 密码不能是特殊字符 - if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) { - callback(new Error(message)) - } else { - callback() - } - } - - // 两个字符串是否想等 - const isEqual = (val1: string, val2: string, callback: Callback, message: string) => { - if (val1 === val2) { - callback() - } else { - callback(new Error(message)) - } - } - - return { - required, - lengthRange, - notSpace, - notSpecialCharacters, - isEqual - } -} diff --git a/yshop-drink-vue/src/hooks/web/useWatermark.ts b/yshop-drink-vue/src/hooks/web/useWatermark.ts deleted file mode 100644 index 4a31359..0000000 --- a/yshop-drink-vue/src/hooks/web/useWatermark.ts +++ /dev/null @@ -1,55 +0,0 @@ -const domSymbol = Symbol('watermark-dom') - -export function useWatermark(appendEl: HTMLElement | null = document.body) { - let func: Fn = () => {} - const id = domSymbol.toString() - const clear = () => { - const domId = document.getElementById(id) - if (domId) { - const el = appendEl - el && el.removeChild(domId) - } - window.removeEventListener('resize', func) - } - const createWatermark = (str: string) => { - clear() - - const can = document.createElement('canvas') - can.width = 300 - can.height = 240 - - const cans = can.getContext('2d') - if (cans) { - cans.rotate((-20 * Math.PI) / 120) - cans.font = '15px Vedana' - cans.fillStyle = 'rgba(0, 0, 0, 0.15)' - cans.textAlign = 'left' - cans.textBaseline = 'middle' - cans.fillText(str, can.width / 20, can.height) - } - - const div = document.createElement('div') - div.id = id - div.style.pointerEvents = 'none' - div.style.top = '0px' - div.style.left = '0px' - div.style.position = 'absolute' - div.style.zIndex = '100000000' - div.style.width = document.documentElement.clientWidth + 'px' - div.style.height = document.documentElement.clientHeight + 'px' - div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' - const el = appendEl - el && el.appendChild(div) - return id - } - - function setWatermark(str: string) { - createWatermark(str) - func = () => { - createWatermark(str) - } - window.addEventListener('resize', func) - } - - return { setWatermark, clear } -} diff --git a/yshop-drink-vue/src/layout/Layout.vue b/yshop-drink-vue/src/layout/Layout.vue deleted file mode 100644 index 5c43e52..0000000 --- a/yshop-drink-vue/src/layout/Layout.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/AppView.vue b/yshop-drink-vue/src/layout/components/AppView.vue deleted file mode 100644 index 24d2635..0000000 --- a/yshop-drink-vue/src/layout/components/AppView.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Breadcrumb/index.ts b/yshop-drink-vue/src/layout/components/Breadcrumb/index.ts deleted file mode 100644 index 93ffe70..0000000 --- a/yshop-drink-vue/src/layout/components/Breadcrumb/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Breadcrumb from './src/Breadcrumb.vue' - -export { Breadcrumb } diff --git a/yshop-drink-vue/src/layout/components/Breadcrumb/src/Breadcrumb.vue b/yshop-drink-vue/src/layout/components/Breadcrumb/src/Breadcrumb.vue deleted file mode 100644 index de03665..0000000 --- a/yshop-drink-vue/src/layout/components/Breadcrumb/src/Breadcrumb.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Breadcrumb/src/helper.ts b/yshop-drink-vue/src/layout/components/Breadcrumb/src/helper.ts deleted file mode 100644 index fb3ec19..0000000 --- a/yshop-drink-vue/src/layout/components/Breadcrumb/src/helper.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { pathResolve } from '@/utils/routerHelper' -import type { RouteMeta } from 'vue-router' - -export const filterBreadcrumb = ( - routes: AppRouteRecordRaw[], - parentPath = '' -): AppRouteRecordRaw[] => { - const res: AppRouteRecordRaw[] = [] - - for (const route of routes) { - const meta = route?.meta as RouteMeta - if (meta.hidden && !meta.canTo) { - continue - } - - const data: AppRouteRecordRaw = - !meta.alwaysShow && route.children?.length === 1 - ? { ...route.children[0], path: pathResolve(route.path, route.children[0].path) } - : { ...route } - - data.path = pathResolve(parentPath, data.path) - - if (data.children) { - data.children = filterBreadcrumb(data.children, data.path) - } - if (data) { - res.push(data) - } - } - return res -} diff --git a/yshop-drink-vue/src/layout/components/Collapse/index.ts b/yshop-drink-vue/src/layout/components/Collapse/index.ts deleted file mode 100644 index 73f65a3..0000000 --- a/yshop-drink-vue/src/layout/components/Collapse/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Collapse from './src/Collapse.vue' - -export { Collapse } diff --git a/yshop-drink-vue/src/layout/components/Collapse/src/Collapse.vue b/yshop-drink-vue/src/layout/components/Collapse/src/Collapse.vue deleted file mode 100644 index 523c34d..0000000 --- a/yshop-drink-vue/src/layout/components/Collapse/src/Collapse.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/ContextMenu/index.ts b/yshop-drink-vue/src/layout/components/ContextMenu/index.ts deleted file mode 100644 index 2a7c1f0..0000000 --- a/yshop-drink-vue/src/layout/components/ContextMenu/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import ContextMenu from './src/ContextMenu.vue' -import { ElDropdown } from 'element-plus' -import type { RouteLocationNormalizedLoaded } from 'vue-router' - -export interface ContextMenuExpose { - elDropdownMenuRef: ComponentRef - tagItem: RouteLocationNormalizedLoaded -} - -export { ContextMenu } diff --git a/yshop-drink-vue/src/layout/components/ContextMenu/src/ContextMenu.vue b/yshop-drink-vue/src/layout/components/ContextMenu/src/ContextMenu.vue deleted file mode 100644 index de81969..0000000 --- a/yshop-drink-vue/src/layout/components/ContextMenu/src/ContextMenu.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Footer/index.ts b/yshop-drink-vue/src/layout/components/Footer/index.ts deleted file mode 100644 index bd052e0..0000000 --- a/yshop-drink-vue/src/layout/components/Footer/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Footer from './src/Footer.vue' - -export { Footer } diff --git a/yshop-drink-vue/src/layout/components/Footer/src/Footer.vue b/yshop-drink-vue/src/layout/components/Footer/src/Footer.vue deleted file mode 100644 index c9fcd89..0000000 --- a/yshop-drink-vue/src/layout/components/Footer/src/Footer.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/LocaleDropdown/index.ts b/yshop-drink-vue/src/layout/components/LocaleDropdown/index.ts deleted file mode 100644 index d02e640..0000000 --- a/yshop-drink-vue/src/layout/components/LocaleDropdown/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LocaleDropdown from './src/LocaleDropdown.vue' - -export { LocaleDropdown } diff --git a/yshop-drink-vue/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue b/yshop-drink-vue/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue deleted file mode 100644 index d16fbb2..0000000 --- a/yshop-drink-vue/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Logo/index.ts b/yshop-drink-vue/src/layout/components/Logo/index.ts deleted file mode 100644 index 1c4224c..0000000 --- a/yshop-drink-vue/src/layout/components/Logo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logo from './src/Logo.vue' - -export { Logo } diff --git a/yshop-drink-vue/src/layout/components/Logo/src/Logo.vue b/yshop-drink-vue/src/layout/components/Logo/src/Logo.vue deleted file mode 100644 index 17bdf1a..0000000 --- a/yshop-drink-vue/src/layout/components/Logo/src/Logo.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Menu/index.ts b/yshop-drink-vue/src/layout/components/Menu/index.ts deleted file mode 100644 index a6ec696..0000000 --- a/yshop-drink-vue/src/layout/components/Menu/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Menu from './src/Menu.vue' - -export { Menu } diff --git a/yshop-drink-vue/src/layout/components/Menu/src/Menu.vue b/yshop-drink-vue/src/layout/components/Menu/src/Menu.vue deleted file mode 100644 index 4d22f7d..0000000 --- a/yshop-drink-vue/src/layout/components/Menu/src/Menu.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuItem.tsx b/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuItem.tsx deleted file mode 100644 index 17a520a..0000000 --- a/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuItem.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { ElSubMenu, ElMenuItem } from 'element-plus' -import type { RouteMeta } from 'vue-router' -import { hasOneShowingChild } from '../helper' -import { isUrl } from '@/utils/is' -import { useRenderMenuTitle } from './useRenderMenuTitle' -import { useDesign } from '@/hooks/web/useDesign' -import { pathResolve } from '@/utils/routerHelper' - -export const useRenderMenuItem = ( - // allRouters: AppRouteRecordRaw[] = [], - menuMode: 'vertical' | 'horizontal' -) => { - const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { - return routers.map((v) => { - const meta = (v.meta ?? {}) as RouteMeta - if (!meta.hidden) { - const { oneShowingChild, onlyOneChild } = hasOneShowingChild(v.children, v) - const fullPath = isUrl(v.path) ? v.path : pathResolve(parentPath, v.path) // getAllParentPath(allRouters, v.path).join('/') - - const { renderMenuTitle } = useRenderMenuTitle() - - if ( - oneShowingChild && - (!onlyOneChild?.children || onlyOneChild?.noShowingChildren) && - !meta?.alwaysShow - ) { - return ( - - {{ - default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta) - }} - - ) - } else { - const { getPrefixCls } = useDesign() - - const preFixCls = getPrefixCls('menu-popper') - return ( - - {{ - title: () => renderMenuTitle(meta), - default: () => renderMenuItem(v.children!, fullPath) - }} - - ) - } - } - }) - } - - return { - renderMenuItem - } -} diff --git a/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx deleted file mode 100644 index fc30b90..0000000 --- a/yshop-drink-vue/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import type { RouteMeta } from 'vue-router' -import { Icon } from '@/components/Icon' - -export const useRenderMenuTitle = () => { - const renderMenuTitle = (meta: RouteMeta) => { - const { t } = useI18n() - const { title = 'Please set title', icon } = meta - - return icon ? ( - <> - - {t(title as string)} - - ) : ( - {t(title as string)} - ) - } - - return { - renderMenuTitle - } -} diff --git a/yshop-drink-vue/src/layout/components/Menu/src/helper.ts b/yshop-drink-vue/src/layout/components/Menu/src/helper.ts deleted file mode 100644 index c26f5f4..0000000 --- a/yshop-drink-vue/src/layout/components/Menu/src/helper.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { RouteMeta } from 'vue-router' -import { findPath } from '@/utils/tree' - -type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean } - -interface HasOneShowingChild { - oneShowingChild?: boolean - onlyOneChild?: OnlyOneChildType -} - -export const getAllParentPath = (treeData: T[], path: string) => { - const menuList = findPath(treeData, (n) => n.path === path) as AppRouteRecordRaw[] - return (menuList || []).map((item) => item.path) -} - -export const hasOneShowingChild = ( - children: AppRouteRecordRaw[] = [], - parent: AppRouteRecordRaw -): HasOneShowingChild => { - const onlyOneChild = ref() - - const showingChildren = children.filter((v) => { - const meta = (v.meta ?? {}) as RouteMeta - if (meta.hidden) { - return false - } else { - // Temp set(will be used if only has one showing child) - onlyOneChild.value = v - return true - } - }) - - // When there is only one child router, the child router is displayed by default - if (showingChildren.length === 1) { - return { - oneShowingChild: true, - onlyOneChild: unref(onlyOneChild) - } - } - - // Show parent if there are no child router to display - if (!showingChildren.length) { - onlyOneChild.value = { ...parent, path: '', noShowingChildren: true } - return { - oneShowingChild: true, - onlyOneChild: unref(onlyOneChild) - } - } - - return { - oneShowingChild: false, - onlyOneChild: unref(onlyOneChild) - } -} diff --git a/yshop-drink-vue/src/layout/components/Message/index.ts b/yshop-drink-vue/src/layout/components/Message/index.ts deleted file mode 100644 index dfe0207..0000000 --- a/yshop-drink-vue/src/layout/components/Message/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Message from './src/Message.vue' - -export { Message } diff --git a/yshop-drink-vue/src/layout/components/Message/src/Message.vue b/yshop-drink-vue/src/layout/components/Message/src/Message.vue deleted file mode 100644 index 444e461..0000000 --- a/yshop-drink-vue/src/layout/components/Message/src/Message.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Screenfull/index.ts b/yshop-drink-vue/src/layout/components/Screenfull/index.ts deleted file mode 100644 index faec2d8..0000000 --- a/yshop-drink-vue/src/layout/components/Screenfull/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Screenfull from './src/Screenfull.vue' - -export { Screenfull } diff --git a/yshop-drink-vue/src/layout/components/Screenfull/src/Screenfull.vue b/yshop-drink-vue/src/layout/components/Screenfull/src/Screenfull.vue deleted file mode 100644 index d0c4c44..0000000 --- a/yshop-drink-vue/src/layout/components/Screenfull/src/Screenfull.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Setting/index.ts b/yshop-drink-vue/src/layout/components/Setting/index.ts deleted file mode 100644 index b64c9ad..0000000 --- a/yshop-drink-vue/src/layout/components/Setting/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Setting from './src/Setting.vue' - -export { Setting } diff --git a/yshop-drink-vue/src/layout/components/Setting/src/Setting.vue b/yshop-drink-vue/src/layout/components/Setting/src/Setting.vue deleted file mode 100644 index 8a395a8..0000000 --- a/yshop-drink-vue/src/layout/components/Setting/src/Setting.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/layout/components/Setting/src/components/ColorRadioPicker.vue b/yshop-drink-vue/src/layout/components/Setting/src/components/ColorRadioPicker.vue deleted file mode 100644 index 8ef0f8c..0000000 --- a/yshop-drink-vue/src/layout/components/Setting/src/components/ColorRadioPicker.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/layout/components/Setting/src/components/InterfaceDisplay.vue b/yshop-drink-vue/src/layout/components/Setting/src/components/InterfaceDisplay.vue deleted file mode 100644 index 12f6fbc..0000000 --- a/yshop-drink-vue/src/layout/components/Setting/src/components/InterfaceDisplay.vue +++ /dev/null @@ -1,222 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/Setting/src/components/LayoutRadioPicker.vue b/yshop-drink-vue/src/layout/components/Setting/src/components/LayoutRadioPicker.vue deleted file mode 100644 index b500683..0000000 --- a/yshop-drink-vue/src/layout/components/Setting/src/components/LayoutRadioPicker.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/layout/components/SizeDropdown/index.ts b/yshop-drink-vue/src/layout/components/SizeDropdown/index.ts deleted file mode 100644 index 516488d..0000000 --- a/yshop-drink-vue/src/layout/components/SizeDropdown/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import SizeDropdown from './src/SizeDropdown.vue' - -export { SizeDropdown } diff --git a/yshop-drink-vue/src/layout/components/SizeDropdown/src/SizeDropdown.vue b/yshop-drink-vue/src/layout/components/SizeDropdown/src/SizeDropdown.vue deleted file mode 100644 index d191dbe..0000000 --- a/yshop-drink-vue/src/layout/components/SizeDropdown/src/SizeDropdown.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/TabMenu/index.ts b/yshop-drink-vue/src/layout/components/TabMenu/index.ts deleted file mode 100644 index b5fd71c..0000000 --- a/yshop-drink-vue/src/layout/components/TabMenu/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TabMenu from './src/TabMenu.vue' - -export { TabMenu } diff --git a/yshop-drink-vue/src/layout/components/TabMenu/src/TabMenu.vue b/yshop-drink-vue/src/layout/components/TabMenu/src/TabMenu.vue deleted file mode 100644 index 015d6c7..0000000 --- a/yshop-drink-vue/src/layout/components/TabMenu/src/TabMenu.vue +++ /dev/null @@ -1,251 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/TabMenu/src/helper.ts b/yshop-drink-vue/src/layout/components/TabMenu/src/helper.ts deleted file mode 100644 index cce3932..0000000 --- a/yshop-drink-vue/src/layout/components/TabMenu/src/helper.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { getAllParentPath } from '@/layout/components/Menu/src/helper' -import type { RouteMeta } from 'vue-router' -import { isUrl } from '@/utils/is' -import { cloneDeep } from 'lodash-es' - -export type TabMapTypes = { - [key: string]: string[] -} - -export const tabPathMap = reactive({}) - -export const initTabMap = (routes: AppRouteRecordRaw[]) => { - for (const v of routes) { - const meta = (v.meta ?? {}) as RouteMeta - if (!meta?.hidden) { - tabPathMap[v.path] = [] - } - } -} - -export const filterMenusPath = ( - routes: AppRouteRecordRaw[], - allRoutes: AppRouteRecordRaw[] -): AppRouteRecordRaw[] => { - const res: AppRouteRecordRaw[] = [] - for (const v of routes) { - let data: Nullable = null - const meta = (v.meta ?? {}) as RouteMeta - if (!meta.hidden || meta.canTo) { - const allParentPath = getAllParentPath(allRoutes, v.path) - - const fullPath = isUrl(v.path) ? v.path : allParentPath.join('/') - - data = cloneDeep(v) - data.path = fullPath - if (v.children && data) { - data.children = filterMenusPath(v.children, allRoutes) - } - - if (data) { - res.push(data) - } - - if (allParentPath.length && Reflect.has(tabPathMap, allParentPath[0])) { - tabPathMap[allParentPath[0]].push(fullPath) - } - } - } - - return res -} diff --git a/yshop-drink-vue/src/layout/components/TagsView/index.ts b/yshop-drink-vue/src/layout/components/TagsView/index.ts deleted file mode 100644 index 30e604a..0000000 --- a/yshop-drink-vue/src/layout/components/TagsView/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TagsView from './src/TagsView.vue' - -export { TagsView } diff --git a/yshop-drink-vue/src/layout/components/TagsView/src/TagsView.vue b/yshop-drink-vue/src/layout/components/TagsView/src/TagsView.vue deleted file mode 100644 index 6b4f7be..0000000 --- a/yshop-drink-vue/src/layout/components/TagsView/src/TagsView.vue +++ /dev/null @@ -1,587 +0,0 @@ - - - - - diff --git a/yshop-drink-vue/src/layout/components/TagsView/src/helper.ts b/yshop-drink-vue/src/layout/components/TagsView/src/helper.ts deleted file mode 100644 index 22f6a50..0000000 --- a/yshop-drink-vue/src/layout/components/TagsView/src/helper.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { RouteMeta, RouteLocationNormalizedLoaded } from 'vue-router' -import { pathResolve } from '@/utils/routerHelper' - -export const filterAffixTags = (routes: AppRouteRecordRaw[], parentPath = '') => { - let tags: RouteLocationNormalizedLoaded[] = [] - routes.forEach((route) => { - const meta = route.meta as RouteMeta - const tagPath = pathResolve(parentPath, route.path) - if (meta?.affix) { - tags.push({ ...route, path: tagPath, fullPath: tagPath } as RouteLocationNormalizedLoaded) - } - if (route.children) { - const tempTags: RouteLocationNormalizedLoaded[] = filterAffixTags(route.children, tagPath) - if (tempTags.length >= 1) { - tags = [...tags, ...tempTags] - } - } - }) - - return tags -} diff --git a/yshop-drink-vue/src/layout/components/ThemeSwitch/index.ts b/yshop-drink-vue/src/layout/components/ThemeSwitch/index.ts deleted file mode 100644 index 823a276..0000000 --- a/yshop-drink-vue/src/layout/components/ThemeSwitch/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ThemeSwitch from './src/ThemeSwitch.vue' - -export { ThemeSwitch } diff --git a/yshop-drink-vue/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue b/yshop-drink-vue/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue deleted file mode 100644 index 5a92650..0000000 --- a/yshop-drink-vue/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/layout/components/ToolHeader.vue b/yshop-drink-vue/src/layout/components/ToolHeader.vue deleted file mode 100644 index 4930777..0000000 --- a/yshop-drink-vue/src/layout/components/ToolHeader.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/UserInfo/index.ts b/yshop-drink-vue/src/layout/components/UserInfo/index.ts deleted file mode 100644 index c3a34ab..0000000 --- a/yshop-drink-vue/src/layout/components/UserInfo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import UserInfo from './src/UserInfo.vue' - -export { UserInfo } diff --git a/yshop-drink-vue/src/layout/components/UserInfo/src/UserInfo.vue b/yshop-drink-vue/src/layout/components/UserInfo/src/UserInfo.vue deleted file mode 100644 index 73d6999..0000000 --- a/yshop-drink-vue/src/layout/components/UserInfo/src/UserInfo.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/layout/components/useRenderLayout.tsx b/yshop-drink-vue/src/layout/components/useRenderLayout.tsx deleted file mode 100644 index ab42e43..0000000 --- a/yshop-drink-vue/src/layout/components/useRenderLayout.tsx +++ /dev/null @@ -1,278 +0,0 @@ -import { computed } from 'vue' -import { useAppStore } from '@/store/modules/app' -import { Menu } from '@/layout/components/Menu' -import { TabMenu } from '@/layout/components/TabMenu' -import { TagsView } from '@/layout/components/TagsView' -import { Logo } from '@/layout/components/Logo' -import AppView from './AppView.vue' -import ToolHeader from './ToolHeader.vue' -import { ElScrollbar } from 'element-plus' -import { useDesign } from '@/hooks/web/useDesign' - -const { getPrefixCls } = useDesign() - -const prefixCls = getPrefixCls('layout') - -const appStore = useAppStore() - -const pageLoading = computed(() => appStore.getPageLoading) - -// 标签页 -const tagsView = computed(() => appStore.getTagsView) - -// 菜单折叠 -const collapse = computed(() => appStore.getCollapse) - -// logo -const logo = computed(() => appStore.logo) - -// 固定头部 -const fixedHeader = computed(() => appStore.getFixedHeader) - -// 是否是移动端 -const mobile = computed(() => appStore.getMobile) - -// 固定菜单 -const fixedMenu = computed(() => appStore.getFixedMenu) - -export const useRenderLayout = () => { - const renderClassic = () => { - return ( - <> -
    - {logo.value ? ( - - ) : undefined} - -
    -
    - -
    - - - {tagsView.value ? ( - - ) : undefined} -
    - - -
    -
    - - ) - } - - const renderTopLeft = () => { - return ( - <> -
    - {logo.value ? : undefined} - - -
    -
    - -
    - - {tagsView.value ? ( - - ) : undefined} - - - -
    -
    - - ) - } - - const renderTop = () => { - return ( - <> -
    - {logo.value ? : undefined} - - -
    -
    - - {tagsView.value ? ( - - ) : undefined} - - - -
    - - ) - } - - const renderCutMenu = () => { - return ( - <> -
    - {logo.value ? : undefined} - - -
    -
    - -
    - - {tagsView.value ? ( - - ) : undefined} - - - -
    -
    - - ) - } - - return { - renderClassic, - renderTopLeft, - renderTop, - renderCutMenu - } -} diff --git a/yshop-drink-vue/src/locales/en.ts b/yshop-drink-vue/src/locales/en.ts deleted file mode 100644 index 4f4d489..0000000 --- a/yshop-drink-vue/src/locales/en.ts +++ /dev/null @@ -1,447 +0,0 @@ -export default { - common: { - inputText: 'Please input', - selectText: 'Please select', - startTimeText: 'Start time', - endTimeText: 'End time', - login: 'Login', - required: 'This is required', - loginOut: 'Login out', - document: 'Document', - profile: 'User Center', - reminder: 'Reminder', - loginOutMessage: 'Exit the system?', - back: 'Back', - ok: 'OK', - save: 'Save', - cancel: 'Cancel', - close: 'Close', - reload: 'Reload current', - success: 'Success', - closeTab: 'Close current', - closeTheLeftTab: 'Close left', - closeTheRightTab: 'Close right', - closeOther: 'Close other', - closeAll: 'Close all', - prevLabel: 'Prev', - nextLabel: 'Next', - skipLabel: 'Jump', - doneLabel: 'End', - menu: 'Menu', - menuDes: 'Menu bar rendered in routed structure', - collapse: 'Collapse', - collapseDes: 'Expand and zoom the menu bar', - tagsView: 'Tags view', - tagsViewDes: 'Used to record routing history', - tool: 'Tool', - toolDes: 'Used to set up custom systems', - query: 'Query', - reset: 'Reset', - shrink: 'Put away', - expand: 'Expand', - confirmTitle: 'System Hint', - exportMessage: 'Whether to confirm export data item?', - importMessage: 'Whether to confirm import data item?', - createSuccess: 'Create Success', - updateSuccess: 'Update Success', - delMessage: 'Delete the selected data?', - delDataMessage: 'Delete the data?', - delNoData: 'Please select the data to delete', - delSuccess: 'Deleted successfully', - index: 'Index', - status: 'Status', - createTime: 'Create Time', - updateTime: 'Update Time', - copy: 'Copy', - copySuccess: 'Copy Success', - copyError: 'Copy Error' - }, - error: { - noPermission: `Sorry, you don't have permission to access this page.`, - pageError: 'Sorry, the page you visited does not exist.', - networkError: 'Sorry, the server reported an error.', - returnToHome: 'Return to home' - }, - permission: { - hasPermission: `Please set the operation permission label value`, - hasRole: `Please set the role permission tag value` - }, - setting: { - projectSetting: 'Project setting', - theme: 'Theme', - layout: 'Layout', - systemTheme: 'System theme', - menuTheme: 'Menu theme', - interfaceDisplay: 'Interface display', - breadcrumb: 'Breadcrumb', - breadcrumbIcon: 'Breadcrumb icon', - collapseMenu: 'Collapse menu', - hamburgerIcon: 'Hamburger icon', - screenfullIcon: 'Screenfull icon', - sizeIcon: 'Size icon', - localeIcon: 'Locale icon', - messageIcon: 'Message icon', - tagsView: 'Tags view', - logo: 'Logo', - greyMode: 'Grey mode', - fixedHeader: 'Fixed header', - headerTheme: 'Header theme', - cutMenu: 'Cut Menu', - copy: 'Copy', - clearAndReset: 'Clear cache and reset', - copySuccess: 'Copy success', - copyFailed: 'Copy failed', - footer: 'Footer', - uniqueOpened: 'Unique opened', - tagsViewIcon: 'Tags view icon', - reExperienced: 'Please exit the login experience again', - fixedMenu: 'Fixed menu' - }, - size: { - default: 'Default', - large: 'Large', - small: 'Small' - }, - login: { - welcome: 'Welcome to the system', - message: 'Backstage management system', - tenantname: 'TenantName', - username: 'Username', - password: 'Password', - code: 'verification code', - login: 'Sign in', - relogin: 'Sign in again', - otherLogin: 'Sign in with', - register: 'Register', - checkPassword: 'Confirm password', - remember: 'Remember me', - hasUser: 'Existing account? Go to login', - forgetPassword: 'Forget password?', - tenantNamePlaceholder: 'Please Enter Tenant Name', - usernamePlaceholder: 'Please Enter Username', - passwordPlaceholder: 'Please Enter Password', - codePlaceholder: 'Please Enter Verification Code', - mobileTitle: 'Mobile sign in', - mobileNumber: 'Mobile Number', - mobileNumberPlaceholder: 'Plaease Enter Mobile Number', - backLogin: 'back', - getSmsCode: 'Get SMS Code', - btnMobile: 'Mobile sign in', - btnQRCode: 'QR code sign in', - qrcode: 'Scan the QR code to log in', - btnRegister: 'Sign up', - SmsSendMsg: 'code has been sent' - }, - captcha: { - verification: 'Please complete security verification', - slide: 'Swipe right to complete verification', - point: 'Please click', - success: 'Verification succeeded', - fail: 'verification failed' - }, - router: { - login: 'Login', - home: 'Home', - analysis: 'Analysis', - workplace: 'Workplace' - }, - analysis: { - newUser: 'New user', - unreadInformation: 'Unread information', - transactionAmount: 'Transaction amount', - totalShopping: 'Total Shopping', - monthlySales: 'Monthly sales', - userAccessSource: 'User access source', - january: 'January', - february: 'February', - march: 'March', - april: 'April', - may: 'May', - june: 'June', - july: 'July', - august: 'August', - september: 'September', - october: 'October', - november: 'November', - december: 'December', - estimate: 'Estimate', - actual: 'Actual', - directAccess: 'Airect access', - mailMarketing: 'Mail marketing', - allianceAdvertising: 'Alliance advertising', - videoAdvertising: 'Video advertising', - searchEngines: 'Search engines', - weeklyUserActivity: 'Weekly user activity', - activeQuantity: 'Active quantity', - monday: 'Monday', - tuesday: 'Tuesday', - wednesday: 'Wednesday', - thursday: 'Thursday', - friday: 'Friday', - saturday: 'Saturday', - sunday: 'Sunday' - }, - workplace: { - welcome: 'Hello', - happyDay: 'Wish you happy every day!', - toady: `It's sunny today`, - notice: 'Announcement', - project: 'Project', - access: 'Project access', - toDo: 'To do', - introduction: 'A serious introduction', - shortcutOperation: 'Quick entry', - operation: 'Operation', - index: 'Index', - personal: 'Personal', - team: 'Team', - quote: 'Quote', - contribution: 'Contribution', - hot: 'Hot', - yield: 'Yield', - dynamic: 'Dynamic', - push: 'push', - follow: 'Follow' - }, - form: { - input: 'Input', - inputNumber: 'InputNumber', - default: 'Default', - icon: 'Icon', - mixed: 'Mixed', - textarea: 'Textarea', - slot: 'Slot', - position: 'Position', - autocomplete: 'Autocomplete', - select: 'Select', - selectGroup: 'Select Group', - selectV2: 'SelectV2', - cascader: 'Cascader', - switch: 'Switch', - rate: 'Rate', - colorPicker: 'Color Picker', - transfer: 'Transfer', - render: 'Render', - radio: 'Radio', - button: 'Button', - checkbox: 'Checkbox', - slider: 'Slider', - datePicker: 'Date Picker', - shortcuts: 'Shortcuts', - today: 'Today', - yesterday: 'Yesterday', - aWeekAgo: 'A week ago', - week: 'Week', - year: 'Year', - month: 'Month', - dates: 'Dates', - daterange: 'Date Range', - monthrange: 'Month Range', - dateTimePicker: 'DateTimePicker', - dateTimerange: 'Datetime Range', - timePicker: 'Time Picker', - timeSelect: 'Time Select', - inputPassword: 'input Password', - passwordStrength: 'Password Strength', - operate: 'operate', - change: 'Change', - restore: 'Restore', - disabled: 'Disabled', - disablement: 'Disablement', - delete: 'Delete', - add: 'Add', - setValue: 'Set value', - resetValue: 'Reset value', - set: 'Set', - subitem: 'Subitem', - formValidation: 'Form validation', - verifyReset: 'Verify reset', - remark: 'Remark' - }, - watermark: { - watermark: 'Watermark' - }, - table: { - table: 'Table', - index: 'Index', - title: 'Title', - author: 'Author', - createTime: 'Create time', - action: 'Action', - pagination: 'pagination', - reserveIndex: 'Reserve index', - restoreIndex: 'Restore index', - showSelections: 'Show selections', - hiddenSelections: 'Restore selections', - showExpandedRows: 'Show expanded rows', - hiddenExpandedRows: 'Hidden expanded rows', - header: 'Header' - }, - action: { - create: 'Create', - add: 'Add', - del: 'Delete', - delete: 'Delete', - edit: 'Edit', - update: 'Update', - preview: 'Preview', - more: 'More', - sync: 'Sync', - save: 'Save', - detail: 'Detail', - export: 'Export', - import: 'Import', - generate: 'Generate', - logout: 'Login Out', - test: 'Test', - typeCreate: 'Dict Type Create', - typeUpdate: 'Dict Type Eidt', - dataCreate: 'Dict Data Create', - dataUpdate: 'Dict Data Eidt', - fileUpload: 'File Upload' - }, - dialog: { - dialog: 'Dialog', - open: 'Open', - close: 'Close' - }, - sys: { - api: { - operationFailed: 'Operation failed', - errorTip: 'Error Tip', - errorMessage: 'The operation failed, the system is abnormal!', - timeoutMessage: 'Login timed out, please log in again!', - apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!', - apiRequestFailed: 'The interface request failed, please try again later!', - networkException: 'network anomaly', - networkExceptionMsg: - 'Please check if your network connection is normal! The network is abnormal', - - errMsg401: 'The user does not have permission (token, user name, password error)!', - errMsg403: 'The user is authorized, but access is forbidden!', - errMsg404: 'Network request error, the resource was not found!', - errMsg405: 'Network request error, request method not allowed!', - errMsg408: 'Network request timed out!', - errMsg500: 'Server error, please contact the administrator!', - errMsg501: 'The network is not implemented!', - errMsg502: 'Network Error!', - errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!', - errMsg504: 'Network timeout!', - errMsg505: 'The http version does not support the request!', - errMsg901: 'Demo mode, no write operations are possible!' - }, - app: { - logoutTip: 'Reminder', - logoutMessage: 'Confirm to exit the system?', - menuLoading: 'Menu loading...' - }, - exception: { - backLogin: 'Back Login', - backHome: 'Back Home', - subTitle403: "Sorry, you don't have access to this page.", - subTitle404: 'Sorry, the page you visited does not exist.', - subTitle500: 'Sorry, the server is reporting an error.', - noDataTitle: 'No data on the current page.', - networkErrorTitle: 'Network Error', - networkErrorSubTitle: - 'Sorry, Your network connection has been disconnected, please check your network!' - }, - lock: { - unlock: 'Click to unlock', - alert: 'Lock screen password error', - backToLogin: 'Back to login', - entry: 'Enter the system', - placeholder: 'Please enter the lock screen password or user password' - }, - login: { - backSignIn: 'Back sign in', - mobileSignInFormTitle: 'Mobile sign in', - qrSignInFormTitle: 'Qr code sign in', - signInFormTitle: 'Sign in', - signUpFormTitle: 'Sign up', - forgetFormTitle: 'Reset password', - - signInTitle: 'Backstage management system', - signInDesc: 'Enter your personal details and get started!', - policy: 'I agree to the xxx Privacy Policy', - scanSign: `scanning the code to complete the login`, - - loginButton: 'Sign in', - registerButton: 'Sign up', - rememberMe: 'Remember me', - forgetPassword: 'Forget Password?', - otherSignIn: 'Sign in with', - - // notify - loginSuccessTitle: 'Login successful', - loginSuccessDesc: 'Welcome back', - - // placeholder - accountPlaceholder: 'Please input username', - passwordPlaceholder: 'Please input password', - smsPlaceholder: 'Please input sms code', - mobilePlaceholder: 'Please input mobile', - policyPlaceholder: 'Register after checking', - diffPwd: 'The two passwords are inconsistent', - - userName: 'Username', - password: 'Password', - confirmPassword: 'Confirm Password', - email: 'Email', - smsCode: 'SMS code', - mobile: 'Mobile' - } - }, - profile: { - user: { - title: 'Personal Information', - username: 'User Name', - nickname: 'Nick Name', - mobile: 'Phone Number', - email: 'User Mail', - dept: 'Department', - posts: 'Position', - roles: 'Own Role', - sex: 'Sex', - man: 'Man', - woman: 'Woman', - createTime: 'Created Date' - }, - info: { - title: 'Basic Information', - basicInfo: 'Basic Information', - resetPwd: 'Reset Password', - userSocial: 'Social Information' - }, - rules: { - nickname: 'Please Enter User Nickname', - mail: 'Please Input The Email Address', - truemail: 'Please Input The Correct Email Address', - phone: 'Please Enter The Phone Number', - truephone: 'Please Enter The Correct Phone Number' - }, - password: { - oldPassword: 'Old PassWord', - newPassword: 'New Password', - confirmPassword: 'Confirm Password', - oldPwdMsg: 'Please Enter Old Password', - newPwdMsg: 'Please Enter New Password', - cfPwdMsg: 'Please Enter Confirm Password', - diffPwd: 'The Passwords Entered Twice No Match' - } - }, - cropper: { - selectImage: 'Select Image', - uploadSuccess: 'Uploaded success!', - modalTitle: 'Avatar upload', - okText: 'Confirm and upload', - btn_reset: 'Reset', - btn_rotate_left: 'Counterclockwise rotation', - btn_rotate_right: 'Clockwise rotation', - btn_scale_x: 'Flip horizontal', - btn_scale_y: 'Flip vertical', - btn_zoom_in: 'Zoom in', - btn_zoom_out: 'Zoom out', - preview: 'Preivew' - } -} diff --git a/yshop-drink-vue/src/locales/zh-CN.ts b/yshop-drink-vue/src/locales/zh-CN.ts deleted file mode 100644 index 3513930..0000000 --- a/yshop-drink-vue/src/locales/zh-CN.ts +++ /dev/null @@ -1,454 +0,0 @@ -export default { - common: { - inputText: '请输入', - selectText: '请选择', - startTimeText: '开始时间', - endTimeText: '结束时间', - login: '登录', - required: '该项为必填项', - loginOut: '退出系统', - document: '项目文档', - profile: '个人中心', - reminder: '温馨提示', - loginOutMessage: '是否退出本系统?', - back: '返回', - ok: '确定', - save: '保存', - cancel: '取消', - close: '关闭', - reload: '重新加载', - success: '成功', - closeTab: '关闭标签页', - closeTheLeftTab: '关闭左侧标签页', - closeTheRightTab: '关闭右侧标签页', - closeOther: '关闭其他标签页', - closeAll: '关闭全部标签页', - prevLabel: '上一步', - nextLabel: '下一步', - skipLabel: '跳过', - doneLabel: '结束', - menu: '菜单', - menuDes: '以路由的结构渲染的菜单栏', - collapse: '展开缩收', - collapseDes: '展开和缩放菜单栏', - tagsView: '标签页', - tagsViewDes: '用于记录路由历史记录', - tool: '工具', - toolDes: '用于设置定制系统', - query: '查询', - reset: '重置', - shrink: '收起', - expand: '展开', - confirmTitle: '系统提示', - exportMessage: '是否确认导出数据项?', - importMessage: '是否确认导入数据项?', - createSuccess: '新增成功', - updateSuccess: '修改成功', - delMessage: '是否删除所选中数据?', - delDataMessage: '是否删除数据?', - delNoData: '请选择需要删除的数据', - delSuccess: '删除成功', - index: '序号', - status: '状态', - createTime: '创建时间', - updateTime: '更新时间', - copy: '复制', - copySuccess: '复制成功', - copyError: '复制失败' - }, - error: { - noPermission: `抱歉,您无权访问此页面。`, - pageError: '抱歉,您访问的页面不存在。', - networkError: '抱歉,服务器报告错误。', - returnToHome: '返回首页' - }, - permission: { - hasPermission: `请设置操作权限标签值`, - hasRole: `请设置角色权限标签值` - }, - setting: { - projectSetting: '项目配置', - theme: '主题', - layout: '布局', - systemTheme: '系统主题', - menuTheme: '菜单主题', - interfaceDisplay: '界面显示', - breadcrumb: '面包屑', - breadcrumbIcon: '面包屑图标', - collapseMenu: '折叠菜单', - hamburgerIcon: '折叠图标', - screenfullIcon: '全屏图标', - sizeIcon: '尺寸图标', - localeIcon: '多语言图标', - messageIcon: '消息图标', - tagsView: '标签页', - logo: '标志', - greyMode: '灰色模式', - fixedHeader: '固定头部', - headerTheme: '头部主题', - cutMenu: '切割菜单', - copy: '拷贝', - clearAndReset: '清除缓存并且重置', - copySuccess: '拷贝成功', - copyFailed: '拷贝失败', - footer: '页脚', - uniqueOpened: '菜单手风琴', - tagsViewIcon: '标签页图标', - reExperienced: '请重新退出登录体验', - fixedMenu: '固定菜单' - }, - size: { - default: '默认', - large: '大', - small: '小' - }, - login: { - welcome: '欢迎使用yshop点餐系统', - message: '开箱即用的商城管理后台意象点餐管理系统', - tenantname: '租户名称', - username: '用户名', - password: '密码', - code: '验证码', - login: '登录', - relogin: '重新登录', - otherLogin: '其他登录方式', - register: '注册', - checkPassword: '确认密码', - remember: '记住我', - hasUser: '已有账号?去登录', - forgetPassword: '忘记密码?', - tenantNamePlaceholder: '请输入租户名称', - usernamePlaceholder: '请输入用户名', - passwordPlaceholder: '请输入密码', - codePlaceholder: '请输入验证码', - mobileTitle: '手机登录', - mobileNumber: '手机号码', - mobileNumberPlaceholder: '请输入手机号码', - backLogin: '返回', - getSmsCode: '获取验证码', - btnMobile: '手机登录', - btnQRCode: '二维码登录', - qrcode: '扫描二维码登录', - btnRegister: '注册', - SmsSendMsg: '验证码已发送' - }, - captcha: { - verification: '请完成安全验证', - slide: '向右滑动完成验证', - point: '请依次点击', - success: '验证成功', - fail: '验证失败' - }, - router: { - login: '登录', - home: '首页', - analysis: '分析页', - workplace: '工作台' - }, - analysis: { - newUser: '新增用户', - unreadInformation: '未读消息', - transactionAmount: '成交金额', - totalShopping: '购物总量', - monthlySales: '每月销售额', - userAccessSource: '用户访问来源', - january: '一月', - february: '二月', - march: '三月', - april: '四月', - may: '五月', - june: '六月', - july: '七月', - august: '八月', - september: '九月', - october: '十月', - november: '十一月', - december: '十二月', - estimate: '预计', - actual: '实际', - directAccess: '直接访问', - mailMarketing: '邮件营销', - allianceAdvertising: '联盟广告', - videoAdvertising: '视频广告', - searchEngines: '搜索引擎', - weeklyUserActivity: '每周用户活跃量', - activeQuantity: '活跃量', - monday: '周一', - tuesday: '周二', - wednesday: '周三', - thursday: '周四', - friday: '周五', - saturday: '周六', - sunday: '周日' - }, - workplace: { - welcome: '你好', - happyDay: '祝你开心每一天!', - toady: '今日晴', - notice: '通知公告', - project: '项目数', - access: '项目访问', - toDo: '待办', - introduction: '一个正经的简介', - shortcutOperation: '快捷入口', - operation: '操作', - index: '指数', - personal: '个人', - team: '团队', - quote: '引用', - contribution: '贡献', - hot: '热度', - yield: '产量', - dynamic: '动态', - push: '推送', - follow: '关注' - }, - form: { - input: '输入框', - inputNumber: '数字输入框', - default: '默认', - icon: '图标', - mixed: '复合型', - textarea: '多行文本', - slot: '插槽', - position: '位置', - autocomplete: '自动补全', - select: '选择器', - selectGroup: '选项分组', - selectV2: '虚拟列表选择器', - cascader: '级联选择器', - switch: '开关', - rate: '评分', - colorPicker: '颜色选择器', - transfer: '穿梭框', - render: '渲染器', - radio: '单选框', - button: '按钮', - checkbox: '多选框', - slider: '滑块', - datePicker: '日期选择器', - shortcuts: '快捷选项', - today: '今天', - yesterday: '昨天', - aWeekAgo: '一周前', - week: '周', - year: '年', - month: '月', - dates: '日期', - daterange: '日期范围', - monthrange: '月份范围', - dateTimePicker: '日期时间选择器', - dateTimerange: '日期时间范围', - timePicker: '时间选择器', - timeSelect: '时间选择', - inputPassword: '密码输入框', - passwordStrength: '密码强度', - operate: '操作', - change: '更改', - restore: '还原', - disabled: '禁用', - disablement: '解除禁用', - delete: '删除', - add: '添加', - setValue: '设置值', - resetValue: '重置值', - set: '设置', - subitem: '子项', - formValidation: '表单验证', - verifyReset: '验证重置', - remark: '备注' - }, - watermark: { - watermark: '水印' - }, - table: { - table: '表格', - index: '序号', - title: '标题', - author: '作者', - createTime: '创建时间', - action: '操作', - pagination: '分页', - reserveIndex: '叠加序号', - restoreIndex: '还原序号', - showSelections: '显示多选', - hiddenSelections: '隐藏多选', - showExpandedRows: '显示展开行', - hiddenExpandedRows: '隐藏展开行', - header: '头部' - }, - action: { - couponRecord: '优惠券领取记录', - yue: '积分余额', - userDetail: '用户详情', - refundOrder: '订单退款', - orderRecord: '订单记录', - orderDetail: '订单详情', - updateOrder: '修改订单', - orderSend: '订单发货', - remark: '备注', - sendInfo: '配送信息', - create: '新增', - add: '新增', - del: '删除', - delete: '删除', - edit: '编辑', - update: '编辑', - preview: '预览', - more: '更多', - sync: '同步', - save: '保存', - detail: '详情', - export: '导出', - import: '导入', - generate: '生成', - logout: '强制退出', - test: '测试', - typeCreate: '字典类型新增', - typeUpdate: '字典类型编辑', - dataCreate: '字典数据新增', - dataUpdate: '字典数据编辑' - }, - dialog: { - dialog: '弹窗', - open: '打开', - close: '关闭' - }, - sys: { - api: { - operationFailed: '操作失败', - errorTip: '错误提示', - errorMessage: '操作失败,系统异常!', - timeoutMessage: '登录超时,请重新登录!', - apiTimeoutMessage: '接口请求超时,请刷新页面重试!', - apiRequestFailed: '请求出错,请稍候重试', - networkException: '网络异常', - networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!', - errMsg401: '用户没有权限(令牌、用户名、密码错误)!', - errMsg403: '用户得到授权,但是访问是被禁止的。!', - errMsg404: '网络请求错误,未找到该资源!', - errMsg405: '网络请求错误,请求方法未允许!', - errMsg408: '网络请求超时!', - errMsg500: '服务器错误,请联系管理员!', - errMsg501: '网络未实现!', - errMsg502: '网络错误!', - errMsg503: '服务不可用,服务器暂时过载或维护!', - errMsg504: '网络超时!', - errMsg505: 'http版本不支持该请求!', - errMsg901: '演示模式,无法进行写操作!' - }, - app: { - logoutTip: '温馨提醒', - logoutMessage: '是否确认退出系统?', - menuLoading: '菜单加载中...' - }, - exception: { - backLogin: '返回登录', - backHome: '返回首页', - subTitle403: '抱歉,您无权访问此页面。', - subTitle404: '抱歉,您访问的页面不存在。', - subTitle500: '抱歉,服务器报告错误。', - noDataTitle: '当前页无数据', - networkErrorTitle: '网络错误', - networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!' - }, - lock: { - unlock: '点击解锁', - alert: '锁屏密码错误', - backToLogin: '返回登录', - entry: '进入系统', - placeholder: '请输入锁屏密码或者用户密码' - }, - login: { - backSignIn: '返回', - signInFormTitle: '登录', - ssoFormTitle: '三方授权', - mobileSignInFormTitle: '手机登录', - qrSignInFormTitle: '二维码登录', - signUpFormTitle: '注册', - forgetFormTitle: '重置密码', - signInTitle: '开箱即用的中后台意象商城管理系统', - signInDesc: '输入您的个人详细信息开始使用!', - policy: '我同意xxx隐私政策', - scanSign: `扫码后点击"确认",即可完成登录`, - loginButton: '登录', - registerButton: '注册', - rememberMe: '记住我', - forgetPassword: '忘记密码?', - otherSignIn: '其他登录方式', - // notify - loginSuccessTitle: '登录成功', - loginSuccessDesc: '欢迎回来', - // placeholder - accountPlaceholder: '请输入账号', - passwordPlaceholder: '请输入密码', - smsPlaceholder: '请输入验证码', - mobilePlaceholder: '请输入手机号码', - policyPlaceholder: '勾选后才能注册', - diffPwd: '两次输入密码不一致', - userName: '账号', - password: '密码', - confirmPassword: '确认密码', - email: '邮箱', - smsCode: '短信验证码', - mobile: '手机号码' - } - }, - profile: { - user: { - title: '个人信息', - username: '用户名称', - nickname: '用户昵称', - mobile: '手机号码', - email: '用户邮箱', - dept: '所属部门', - posts: '所属岗位', - roles: '所属角色', - sex: '性别', - man: '男', - woman: '女', - createTime: '创建日期' - }, - info: { - title: '基本信息', - basicInfo: '基本资料', - resetPwd: '修改密码', - userSocial: '社交信息' - }, - rules: { - nickname: '请输入用户昵称', - mail: '请输入邮箱地址', - truemail: '请输入正确的邮箱地址', - phone: '请输入正确的手机号码', - truephone: '请输入正确的手机号码' - }, - password: { - oldPassword: '旧密码', - newPassword: '新密码', - confirmPassword: '确认密码', - oldPwdMsg: '请输入旧密码', - newPwdMsg: '请输入新密码', - cfPwdMsg: '请输入确认密码', - pwdRules: '长度在 6 到 20 个字符', - diffPwd: '两次输入密码不一致' - } - }, - cropper: { - selectImage: '选择图片', - uploadSuccess: '上传成功', - modalTitle: '头像上传', - okText: '确认并上传', - btn_reset: '重置', - btn_rotate_left: '逆时针旋转', - btn_rotate_right: '顺时针旋转', - btn_scale_x: '水平翻转', - btn_scale_y: '垂直翻转', - btn_zoom_in: '放大', - btn_zoom_out: '缩小', - preview: '预览' - }, - shop: { - productRuleAdd: '请添加规格名称!', - productRuleAttrAdd: '请添加属性!', - } -} diff --git a/yshop-drink-vue/src/main.ts b/yshop-drink-vue/src/main.ts deleted file mode 100644 index c0e64c9..0000000 --- a/yshop-drink-vue/src/main.ts +++ /dev/null @@ -1,78 +0,0 @@ -// 引入windi css -import '@/plugins/windi.css' - -// 导入全局的svg图标 -import '@/plugins/svgIcon' - -// 初始化多语言 -import { setupI18n } from '@/plugins/vueI18n' - -// 引入状态管理 -import { setupStore } from '@/store' - -// 全局组件 -import { setupGlobCom } from '@/components' - -// 引入 element-plus -import { setupElementPlus } from '@/plugins/elementPlus' - -// 引入 form-create -import { setupFormCreate } from '@/plugins/formCreate' - -// 引入全局样式 -import '@/styles/index.scss' - -// 引入动画 -import '@/plugins/animate.css' - -// 路由 -import router, { setupRouter } from '@/router' - -// 权限 -import { setupAuth } from '@/directives' - -import { createApp } from 'vue' - -import App from './App.vue' - -import './permission' - -import '@/plugins/tongji' // 百度统计 - -import Logger from '@/utils/Logger' -import VueUeditorWrap from 'vue-ueditor-wrap' - - -import print from 'vue3-print-nb' - - - -// 创建实例 -const setupAll = async () => { - const app = createApp(App) - app.use(VueUeditorWrap) - app.use(print) - - - await setupI18n(app) - - setupStore(app) - - setupGlobCom(app) - - setupElementPlus(app) - - setupFormCreate(app) - - setupRouter(app) - - setupAuth(app) - - await router.isReady() - - app.mount('#app') -} - -setupAll() - -Logger.prettyPrimary(`欢迎使用`, import.meta.env.VITE_APP_TITLE) diff --git a/yshop-drink-vue/src/permission.ts b/yshop-drink-vue/src/permission.ts deleted file mode 100644 index 0698dc8..0000000 --- a/yshop-drink-vue/src/permission.ts +++ /dev/null @@ -1,70 +0,0 @@ -import router from './router' -import type { RouteRecordRaw } from 'vue-router' -import { isRelogin } from '@/config/axios/service' -import { getAccessToken } from '@/utils/auth' -import { useTitle } from '@/hooks/web/useTitle' -import { useNProgress } from '@/hooks/web/useNProgress' -import { usePageLoading } from '@/hooks/web/usePageLoading' -import { useDictStoreWithOut } from '@/store/modules/dict' -import { useUserStoreWithOut } from '@/store/modules/user' -import { usePermissionStoreWithOut } from '@/store/modules/permission' - -const { start, done } = useNProgress() - -const { loadStart, loadDone } = usePageLoading() -// 路由不重定向白名单 -const whiteList = [ - '/login', - '/social-login', - '/auth-redirect', - '/bind', - '/register', - '/oauthLogin/gitee' -] - -// 路由加载前 -router.beforeEach(async (to, from, next) => { - start() - loadStart() - if (getAccessToken()) { - if (to.path === '/login') { - next({ path: '/' }) - } else { - // 获取所有字典 - const dictStore = useDictStoreWithOut() - const userStore = useUserStoreWithOut() - const permissionStore = usePermissionStoreWithOut() - if (!dictStore.getIsSetDict) { - await dictStore.setDictMap() - } - if (!userStore.getIsSetUser) { - isRelogin.show = true - await userStore.setUserInfoAction() - isRelogin.show = false - // 后端过滤菜单 - await permissionStore.generateRoutes() - permissionStore.getAddRouters.forEach((route) => { - router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 - }) - const redirectPath = from.query.redirect || to.path - const redirect = decodeURIComponent(redirectPath as string) - const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } - next(nextData) - } else { - next() - } - } - } else { - if (whiteList.indexOf(to.path) !== -1) { - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - } - } -}) - -router.afterEach((to) => { - useTitle(to?.meta?.title as string) - done() // 结束Progress - loadDone() -}) diff --git a/yshop-drink-vue/src/plugins/animate.css/index.ts b/yshop-drink-vue/src/plugins/animate.css/index.ts deleted file mode 100644 index 3e93451..0000000 --- a/yshop-drink-vue/src/plugins/animate.css/index.ts +++ /dev/null @@ -1 +0,0 @@ -import 'animate.css' diff --git a/yshop-drink-vue/src/plugins/echarts/index.ts b/yshop-drink-vue/src/plugins/echarts/index.ts deleted file mode 100644 index 34f756f..0000000 --- a/yshop-drink-vue/src/plugins/echarts/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as echarts from 'echarts/core' - -import { - BarChart, - LineChart, - PieChart, - MapChart, - PictorialBarChart, - RadarChart -} from 'echarts/charts' - -import { - TitleComponent, - TooltipComponent, - GridComponent, - PolarComponent, - AriaComponent, - ParallelComponent, - LegendComponent -} from 'echarts/components' - -import { CanvasRenderer } from 'echarts/renderers' - -echarts.use([ - LegendComponent, - TitleComponent, - TooltipComponent, - GridComponent, - PolarComponent, - AriaComponent, - ParallelComponent, - BarChart, - LineChart, - PieChart, - MapChart, - CanvasRenderer, - PictorialBarChart, - RadarChart -]) - -export default echarts diff --git a/yshop-drink-vue/src/plugins/elementPlus/index.ts b/yshop-drink-vue/src/plugins/elementPlus/index.ts deleted file mode 100644 index 0ae2a8b..0000000 --- a/yshop-drink-vue/src/plugins/elementPlus/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { App } from 'vue' -// 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题 -import { ElLoading, ElScrollbar, ElButton } from 'element-plus' - -const plugins = [ElLoading] - -const components = [ElScrollbar, ElButton] - -export const setupElementPlus = (app: App) => { - plugins.forEach((plugin) => { - app.use(plugin) - }) - - components.forEach((component) => { - app.component(component.name, component) - }) -} diff --git a/yshop-drink-vue/src/plugins/formCreate/index.ts b/yshop-drink-vue/src/plugins/formCreate/index.ts deleted file mode 100644 index a6cb821..0000000 --- a/yshop-drink-vue/src/plugins/formCreate/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { App } from 'vue' -// 👇使用 form-create 需额外全局引入 element plus 组件 -import { - ElAside, - ElPopconfirm, - ElHeader, - ElMain, - ElContainer, - ElDivider, - ElTransfer, - ElAlert, - ElTabs, - ElTable, - ElTableColumn, - ElTabPane -} from 'element-plus' - -import formCreate from '@form-create/element-ui' -import install from '@form-create/element-ui/auto-import' - -const components = [ - ElAside, - ElPopconfirm, - ElHeader, - ElMain, - ElContainer, - ElDivider, - ElTransfer, - ElAlert, - ElTabs, - ElTable, - ElTableColumn, - ElTabPane -] - -// 参考 http://www.form-create.com/v3/element-ui/auto-import.html 文档 -export const setupFormCreate = (app: App) => { - components.forEach((component) => { - app.component(component.name, component) - }) - formCreate.use(install) - app.use(formCreate) -} diff --git a/yshop-drink-vue/src/plugins/svgIcon/index.ts b/yshop-drink-vue/src/plugins/svgIcon/index.ts deleted file mode 100644 index b5b7f70..0000000 --- a/yshop-drink-vue/src/plugins/svgIcon/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import 'virtual:svg-icons-register' - -import '@purge-icons/generated' diff --git a/yshop-drink-vue/src/plugins/tongji/index.ts b/yshop-drink-vue/src/plugins/tongji/index.ts deleted file mode 100644 index ec261a1..0000000 --- a/yshop-drink-vue/src/plugins/tongji/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import router from '@/router' - -// 用于 router push -window._hmt = window._hmt || [] -// HM_ID -const HM_ID = import.meta.env.VITE_APP_BAIDU_CODE -;(function () { - // 有值的时候,才开启 - if (!HM_ID) { - return - } - const hm = document.createElement('script') - hm.src = 'https://hm.baidu.com/hm.js?' + HM_ID - const s = document.getElementsByTagName('script')[0] - s.parentNode.insertBefore(hm, s) -})() - -router.afterEach(function (to) { - if (!HM_ID) { - return - } - _hmt.push(['_trackPageview', to.fullPath]) -}) diff --git a/yshop-drink-vue/src/plugins/vueI18n/helper.ts b/yshop-drink-vue/src/plugins/vueI18n/helper.ts deleted file mode 100644 index da6bc8c..0000000 --- a/yshop-drink-vue/src/plugins/vueI18n/helper.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const setHtmlPageLang = (locale: LocaleType) => { - document.querySelector('html')?.setAttribute('lang', locale) -} diff --git a/yshop-drink-vue/src/plugins/vueI18n/index.ts b/yshop-drink-vue/src/plugins/vueI18n/index.ts deleted file mode 100644 index f845b13..0000000 --- a/yshop-drink-vue/src/plugins/vueI18n/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { App } from 'vue' -import { createI18n } from 'vue-i18n' -import { useLocaleStoreWithOut } from '@/store/modules/locale' -import type { I18n, I18nOptions } from 'vue-i18n' -import { setHtmlPageLang } from './helper' - -export let i18n: ReturnType - -const createI18nOptions = async (): Promise => { - const localeStore = useLocaleStoreWithOut() - const locale = localeStore.getCurrentLocale - const localeMap = localeStore.getLocaleMap - const defaultLocal = await import(`../../locales/${locale.lang}.ts`) - const message = defaultLocal.default ?? {} - - setHtmlPageLang(locale.lang) - - localeStore.setCurrentLocale({ - lang: locale.lang - // elLocale: elLocal - }) - - return { - legacy: false, - locale: locale.lang, - fallbackLocale: locale.lang, - messages: { - [locale.lang]: message - }, - availableLocales: localeMap.map((v) => v.lang), - sync: true, - silentTranslationWarn: true, - missingWarn: false, - silentFallbackWarn: true - } -} - -export const setupI18n = async (app: App) => { - const options = await createI18nOptions() - i18n = createI18n(options) as I18n - app.use(i18n) -} diff --git a/yshop-drink-vue/src/plugins/windi.css/index.ts b/yshop-drink-vue/src/plugins/windi.css/index.ts deleted file mode 100644 index dbdfbbf..0000000 --- a/yshop-drink-vue/src/plugins/windi.css/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import 'virtual:windi.css' - -import 'virtual:windi-devtools' diff --git a/yshop-drink-vue/src/router/index.ts b/yshop-drink-vue/src/router/index.ts deleted file mode 100644 index 8f66ca3..0000000 --- a/yshop-drink-vue/src/router/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { App } from 'vue' -import type { RouteRecordRaw } from 'vue-router' -import { createRouter, createWebHistory } from 'vue-router' -import remainingRouter from './modules/remaining' - -// 创建路由实例 -const router = createRouter({ - history: createWebHistory(), // createWebHashHistory URL带#,createWebHistory URL不带# - strict: true, - routes: remainingRouter as RouteRecordRaw[], - scrollBehavior: () => ({ left: 0, top: 0 }) -}) - -export const resetRouter = (): void => { - const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root'] - router.getRoutes().forEach((route) => { - const { name } = route - if (name && !resetWhiteNameList.includes(name as string)) { - router.hasRoute(name) && router.removeRoute(name) - } - }) -} - -export const setupRouter = (app: App) => { - app.use(router) -} - -export default router diff --git a/yshop-drink-vue/src/router/modules/remaining.ts b/yshop-drink-vue/src/router/modules/remaining.ts deleted file mode 100644 index a90b125..0000000 --- a/yshop-drink-vue/src/router/modules/remaining.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { Layout } from '@/utils/routerHelper' - -const { t } = useI18n() -/** -* redirect: noredirect 当设置 noredirect 的时候该路由在面包屑导航中不可被点击 -* name:'router-name' 设定路由的名字,一定要填写不然使用时会出现各种问题 -* meta : { - hidden: true 当设置 true 的时候该路由不会再侧边栏出现 如404,login等页面(默认 false) - - alwaysShow: true 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式, - 只有一个时,会将那个子路由当做根路由显示在侧边栏, - 若你想不管路由下面的 children 声明的个数都显示你的根路由, - 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则, - 一直显示根路由(默认 false) - - title: 'title' 设置该路由在侧边栏和面包屑中展示的名字 - - icon: 'svg-name' 设置该路由的图标 - - noCache: true 如果设置为true,则不会被 缓存(默认 false) - - breadcrumb: false 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true) - - affix: true 如果设置为true,则会一直固定在tag项中(默认 false) - - noTagsView: true 如果设置为true,则不会出现在tag中(默认 false) - - activeMenu: '/dashboard' 显示高亮的路由路径 - - followAuth: '/dashboard' 跟随哪个路由进行权限过滤 - - canTo: true 设置为true即使hidden为true,也依然可以进行路由跳转(默认 false) - } -**/ -const remainingRouter: AppRouteRecordRaw[] = [ - { - path: '/redirect', - component: Layout, - name: 'Redirect', - children: [ - { - path: '/redirect/:path(.*)', - name: 'Redirect', - component: () => import('@/views/Redirect/Redirect.vue'), - meta: {} - } - ], - meta: { - hidden: true, - noTagsView: true - } - }, - { - path: '/', - component: Layout, - redirect: '/index', - name: 'Home', - meta: {}, - children: [ - { - path: 'index', - component: () => import('@/views/Home/Index.vue'), - name: 'Index', - meta: { - title: t('router.home'), - icon: 'ep:home-filled', - noCache: false, - affix: true - } - } - ] - }, - { - path: '/user', - component: Layout, - name: 'UserInfo', - meta: { - hidden: true - }, - children: [ - { - path: 'profile', - component: () => import('@/views/Profile/Index.vue'), - name: 'Profile', - meta: { - canTo: true, - hidden: true, - noTagsView: false, - icon: 'ep:user', - title: t('common.profile') - } - }, - { - path: 'notify-message', - component: () => import('@/views/system/notify/my/index.vue'), - name: 'MyNotifyMessage', - meta: { - canTo: true, - hidden: true, - noTagsView: false, - icon: 'ep:message', - title: '我的站内信' - } - } - ] - }, - - { - path: '/dict', - component: Layout, - name: 'dict', - meta: { - hidden: true - }, - children: [ - { - path: 'type/data/:dictType', - component: () => import('@/views/system/dict/data/index.vue'), - name: 'SystemDictData', - meta: { - title: '字典数据', - noCache: true, - hidden: true, - canTo: true, - icon: '', - activeMenu: '/system/dict' - } - } - ] - }, - - { - path: '/codegen', - component: Layout, - name: 'CodegenEdit', - meta: { - hidden: true - }, - children: [ - { - path: 'edit', - component: () => import('@/views/infra/codegen/EditTable.vue'), - name: 'InfraCodegenEditTable', - meta: { - noCache: true, - hidden: true, - canTo: true, - icon: 'ep:edit', - title: '修改生成配置', - activeMenu: 'infra/codegen/index' - } - } - ] - }, - { - path: '/job', - component: Layout, - name: 'JobL', - meta: { - hidden: true - }, - children: [ - { - path: 'job-log', - component: () => import('@/views/infra/job/logger/index.vue'), - name: 'InfraJobLog', - meta: { - noCache: true, - hidden: true, - canTo: true, - icon: 'ep:edit', - title: '调度日志', - activeMenu: 'infra/job/index' - } - } - ] - }, - { - path: '/login', - component: () => import('@/views/Login/Login.vue'), - name: 'Login', - meta: { - hidden: true, - title: t('router.login'), - noTagsView: true - } - }, - { - path: '/sso', - component: () => import('@/views/Login/Login.vue'), - name: 'SSOLogin', - meta: { - hidden: true, - title: t('router.login'), - noTagsView: true - } - }, - { - path: '/403', - component: () => import('@/views/Error/403.vue'), - name: 'NoAccess', - meta: { - hidden: true, - title: '403', - noTagsView: true - } - }, - { - path: '/404', - component: () => import('@/views/Error/404.vue'), - name: 'NoFound', - meta: { - hidden: true, - title: '404', - noTagsView: true - } - }, - { - path: '/500', - component: () => import('@/views/Error/500.vue'), - name: 'Error', - meta: { - hidden: true, - title: '500', - noTagsView: true - } - }, - - { - path: '/yshop/materia/index', - component: () => import('@/components/Materials/src/editorMaterials.vue'), - name: 'EditorMaterials', - meta: { - noCache: true, - hidden: true, - // canTo: true, - title: '上传图片', - }, - - } -] - -export default remainingRouter diff --git a/yshop-drink-vue/src/store/index.ts b/yshop-drink-vue/src/store/index.ts deleted file mode 100644 index 65964ea..0000000 --- a/yshop-drink-vue/src/store/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { App } from 'vue' -import { createPinia } from 'pinia' - -const store = createPinia() - -export const setupStore = (app: App) => { - app.use(store) -} - -export { store } diff --git a/yshop-drink-vue/src/store/modules/app.ts b/yshop-drink-vue/src/store/modules/app.ts deleted file mode 100644 index 2489f87..0000000 --- a/yshop-drink-vue/src/store/modules/app.ts +++ /dev/null @@ -1,274 +0,0 @@ -import { defineStore } from 'pinia' -import { store } from '../index' -import { setCssVar, humpToUnderline } from '@/utils' -import { ElMessage } from 'element-plus' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' -import { ElementPlusSize } from '@/types/elementPlus' -import { LayoutType } from '@/types/layout' -import { ThemeTypes } from '@/types/theme' - -const { wsCache } = useCache() - -interface AppState { - breadcrumb: boolean - breadcrumbIcon: boolean - collapse: boolean - uniqueOpened: boolean - hamburger: boolean - screenfull: boolean - size: boolean - locale: boolean - message: boolean - tagsView: boolean - tagsViewIcon: boolean - logo: boolean - fixedHeader: boolean - greyMode: boolean - pageLoading: boolean - layout: LayoutType - title: string - userInfo: string - isDark: boolean - currentSize: ElementPlusSize - sizeMap: ElementPlusSize[] - mobile: boolean - footer: boolean - theme: ThemeTypes - fixedMenu: boolean -} - -export const useAppStore = defineStore('app', { - state: (): AppState => { - return { - userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突 - sizeMap: ['default', 'large', 'small'], - mobile: false, // 是否是移动端 - title: import.meta.env.VITE_APP_TITLE, // 标题 - pageLoading: false, // 路由跳转loading - - breadcrumb: true, // 面包屑 - breadcrumbIcon: true, // 面包屑图标 - collapse: false, // 折叠菜单 - uniqueOpened: true, // 是否只保持一个子菜单的展开 - hamburger: true, // 折叠图标 - screenfull: true, // 全屏图标 - size: true, // 尺寸图标 - locale: true, // 多语言图标 - message: true, // 消息图标 - tagsView: true, // 标签页 - tagsViewIcon: true, // 是否显示标签图标 - logo: true, // logo - fixedHeader: true, // 固定toolheader - footer: true, // 显示页脚 - greyMode: false, // 是否开始灰色模式,用于特殊悼念日 - fixedMenu: wsCache.get('fixedMenu') || false, // 是否固定菜单 - - layout: wsCache.get(CACHE_KEY.LAYOUT) || 'classic', // layout布局 - isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式 - currentSize: wsCache.get('default') || 'default', // 组件尺寸 - theme: wsCache.get(CACHE_KEY.THEME) || { - // 主题色 - elColorPrimary: '#409eff', - // 左侧菜单边框颜色 - leftMenuBorderColor: 'inherit', - // 左侧菜单背景颜色 - leftMenuBgColor: '#001529', - // 左侧菜单浅色背景颜色 - leftMenuBgLightColor: '#0f2438', - // 左侧菜单选中背景颜色 - leftMenuBgActiveColor: 'var(--el-color-primary)', - // 左侧菜单收起选中背景颜色 - leftMenuCollapseBgActiveColor: 'var(--el-color-primary)', - // 左侧菜单字体颜色 - leftMenuTextColor: '#bfcbd9', - // 左侧菜单选中字体颜色 - leftMenuTextActiveColor: '#fff', - // logo字体颜色 - logoTitleTextColor: '#fff', - // logo边框颜色 - logoBorderColor: 'inherit', - // 头部背景颜色 - topHeaderBgColor: '#fff', - // 头部字体颜色 - topHeaderTextColor: 'inherit', - // 头部悬停颜色 - topHeaderHoverColor: '#f6f6f6', - // 头部边框颜色 - topToolBorderColor: '#eee' - } - } - }, - getters: { - getBreadcrumb(): boolean { - return this.breadcrumb - }, - getBreadcrumbIcon(): boolean { - return this.breadcrumbIcon - }, - getCollapse(): boolean { - return this.collapse - }, - getUniqueOpened(): boolean { - return this.uniqueOpened - }, - getHamburger(): boolean { - return this.hamburger - }, - getScreenfull(): boolean { - return this.screenfull - }, - getSize(): boolean { - return this.size - }, - getLocale(): boolean { - return this.locale - }, - getMessage(): boolean { - return this.message - }, - getTagsView(): boolean { - return this.tagsView - }, - getTagsViewIcon(): boolean { - return this.tagsViewIcon - }, - getLogo(): boolean { - return this.logo - }, - getFixedHeader(): boolean { - return this.fixedHeader - }, - getGreyMode(): boolean { - return this.greyMode - }, - getFixedMenu(): boolean { - return this.fixedMenu - }, - getPageLoading(): boolean { - return this.pageLoading - }, - getLayout(): LayoutType { - return this.layout - }, - getTitle(): string { - return this.title - }, - getUserInfo(): string { - return this.userInfo - }, - getIsDark(): boolean { - return this.isDark - }, - getCurrentSize(): ElementPlusSize { - return this.currentSize - }, - getSizeMap(): ElementPlusSize[] { - return this.sizeMap - }, - getMobile(): boolean { - return this.mobile - }, - getTheme(): ThemeTypes { - return this.theme - }, - getFooter(): boolean { - return this.footer - } - }, - actions: { - setBreadcrumb(breadcrumb: boolean) { - this.breadcrumb = breadcrumb - }, - setBreadcrumbIcon(breadcrumbIcon: boolean) { - this.breadcrumbIcon = breadcrumbIcon - }, - setCollapse(collapse: boolean) { - this.collapse = collapse - }, - setUniqueOpened(uniqueOpened: boolean) { - this.uniqueOpened = uniqueOpened - }, - setHamburger(hamburger: boolean) { - this.hamburger = hamburger - }, - setScreenfull(screenfull: boolean) { - this.screenfull = screenfull - }, - setSize(size: boolean) { - this.size = size - }, - setLocale(locale: boolean) { - this.locale = locale - }, - setMessage(message: boolean) { - this.message = message - }, - setTagsView(tagsView: boolean) { - this.tagsView = tagsView - }, - setTagsViewIcon(tagsViewIcon: boolean) { - this.tagsViewIcon = tagsViewIcon - }, - setLogo(logo: boolean) { - this.logo = logo - }, - setFixedHeader(fixedHeader: boolean) { - this.fixedHeader = fixedHeader - }, - setGreyMode(greyMode: boolean) { - this.greyMode = greyMode - }, - setFixedMenu(fixedMenu: boolean) { - wsCache.set('fixedMenu', fixedMenu) - this.fixedMenu = fixedMenu - }, - setPageLoading(pageLoading: boolean) { - this.pageLoading = pageLoading - }, - setLayout(layout: LayoutType) { - if (this.mobile && layout !== 'classic') { - ElMessage.warning('移动端模式下不支持切换其他布局') - return - } - this.layout = layout - wsCache.set(CACHE_KEY.LAYOUT, this.layout) - }, - setTitle(title: string) { - this.title = title - }, - setIsDark(isDark: boolean) { - this.isDark = isDark - if (this.isDark) { - document.documentElement.classList.add('dark') - document.documentElement.classList.remove('light') - } else { - document.documentElement.classList.add('light') - document.documentElement.classList.remove('dark') - } - wsCache.set(CACHE_KEY.IS_DARK, this.isDark) - }, - setCurrentSize(currentSize: ElementPlusSize) { - this.currentSize = currentSize - wsCache.set('currentSize', this.currentSize) - }, - setMobile(mobile: boolean) { - this.mobile = mobile - }, - setTheme(theme: ThemeTypes) { - this.theme = Object.assign(this.theme, theme) - wsCache.set(CACHE_KEY.THEME, this.theme) - }, - setCssVarTheme() { - for (const key in this.theme) { - setCssVar(`--${humpToUnderline(key)}`, this.theme[key]) - } - }, - setFooter(footer: boolean) { - this.footer = footer - } - } -}) - -export const useAppStoreWithOut = () => { - return useAppStore(store) -} diff --git a/yshop-drink-vue/src/store/modules/dict.ts b/yshop-drink-vue/src/store/modules/dict.ts deleted file mode 100644 index 822547b..0000000 --- a/yshop-drink-vue/src/store/modules/dict.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { defineStore } from 'pinia' -import { store } from '../index' -// @ts-ignore -import { DictDataVO } from '@/api/system/dict/types' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' -const { wsCache } = useCache('sessionStorage') -import { listSimpleDictData } from '@/api/system/dict/dict.data' - -export interface DictValueType { - value: any - label: string - clorType?: string - cssClass?: string -} -export interface DictTypeType { - dictType: string - dictValue: DictValueType[] -} -export interface DictState { - dictMap: Map - isSetDict: boolean -} - -export const useDictStore = defineStore('dict', { - state: (): DictState => ({ - dictMap: new Map(), - isSetDict: false - }), - getters: { - getDictMap(): Recordable { - const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) - if (dictMap) { - this.dictMap = dictMap - } - return this.dictMap - }, - getIsSetDict(): boolean { - return this.isSetDict - } - }, - actions: { - async setDictMap() { - const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) - if (dictMap) { - this.dictMap = dictMap - this.isSetDict = true - } else { - const res = await listSimpleDictData() - // 设置数据 - const dictDataMap = new Map() - res.forEach((dictData: DictDataVO) => { - // 获得 dictType 层级 - const enumValueObj = dictDataMap[dictData.dictType] - if (!enumValueObj) { - dictDataMap[dictData.dictType] = [] - } - // 处理 dictValue 层级 - dictDataMap[dictData.dictType].push({ - value: dictData.value, - label: dictData.label, - colorType: dictData.colorType, - cssClass: dictData.cssClass - }) - }) - this.dictMap = dictDataMap - this.isSetDict = true - wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 - } - }, - getDictByType(type: string) { - if (!this.isSetDict) { - this.setDictMap() - } - return this.dictMap[type] - }, - async resetDict() { - wsCache.delete(CACHE_KEY.DICT_CACHE) - const res = await listSimpleDictData() - // 设置数据 - const dictDataMap = new Map() - res.forEach((dictData: DictDataVO) => { - // 获得 dictType 层级 - const enumValueObj = dictDataMap[dictData.dictType] - if (!enumValueObj) { - dictDataMap[dictData.dictType] = [] - } - // 处理 dictValue 层级 - dictDataMap[dictData.dictType].push({ - value: dictData.value, - label: dictData.label, - colorType: dictData.colorType, - cssClass: dictData.cssClass - }) - }) - this.dictMap = dictDataMap - this.isSetDict = true - wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 - } - } -}) - -export const useDictStoreWithOut = () => { - return useDictStore(store) -} diff --git a/yshop-drink-vue/src/store/modules/locale.ts b/yshop-drink-vue/src/store/modules/locale.ts deleted file mode 100644 index 1fc772a..0000000 --- a/yshop-drink-vue/src/store/modules/locale.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { defineStore } from 'pinia' -import { store } from '../index' -import zhCn from 'element-plus/es/locale/lang/zh-cn' -import en from 'element-plus/es/locale/lang/en' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' -import { LocaleDropdownType } from '@/types/localeDropdown' - -const { wsCache } = useCache() - -const elLocaleMap = { - 'zh-CN': zhCn, - en: en -} -interface LocaleState { - currentLocale: LocaleDropdownType - localeMap: LocaleDropdownType[] -} - -export const useLocaleStore = defineStore('locales', { - state: (): LocaleState => { - return { - currentLocale: { - lang: wsCache.get(CACHE_KEY.LANG) || 'zh-CN', - elLocale: elLocaleMap[wsCache.get(CACHE_KEY.LANG) || 'zh-CN'] - }, - // 多语言 - localeMap: [ - { - lang: 'zh-CN', - name: '简体中文' - }, - { - lang: 'en', - name: 'English' - } - ] - } - }, - getters: { - getCurrentLocale(): LocaleDropdownType { - return this.currentLocale - }, - getLocaleMap(): LocaleDropdownType[] { - return this.localeMap - } - }, - actions: { - setCurrentLocale(localeMap: LocaleDropdownType) { - // this.locale = Object.assign(this.locale, localeMap) - this.currentLocale.lang = localeMap?.lang - this.currentLocale.elLocale = elLocaleMap[localeMap?.lang] - wsCache.set(CACHE_KEY.LANG, localeMap?.lang) - } - } -}) - -export const useLocaleStoreWithOut = () => { - return useLocaleStore(store) -} diff --git a/yshop-drink-vue/src/store/modules/permission.ts b/yshop-drink-vue/src/store/modules/permission.ts deleted file mode 100644 index 9d3b8dd..0000000 --- a/yshop-drink-vue/src/store/modules/permission.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { defineStore } from 'pinia' -import { store } from '../index' -import { cloneDeep } from 'lodash-es' -import remainingRouter from '@/router/modules/remaining' -import { generateRoute, flatMultiLevelRoutes } from '@/utils/routerHelper' -import { getAsyncRoutes } from '@/api/login' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' - -const { wsCache } = useCache() - -export interface PermissionState { - routers: AppRouteRecordRaw[] - addRouters: AppRouteRecordRaw[] - menuTabRouters: AppRouteRecordRaw[] -} - -export const usePermissionStore = defineStore('permission', { - state: (): PermissionState => ({ - routers: [], - addRouters: [], - menuTabRouters: [] - }), - getters: { - getRouters(): AppRouteRecordRaw[] { - return this.routers - }, - getAddRouters(): AppRouteRecordRaw[] { - return flatMultiLevelRoutes(cloneDeep(this.addRouters)) - }, - getMenuTabRouters(): AppRouteRecordRaw[] { - return this.menuTabRouters - } - }, - actions: { - async generateRoutes(): Promise { - return new Promise(async (resolve) => { - let res: AppCustomRouteRecordRaw[] - if (wsCache.get(CACHE_KEY.ROLE_ROUTERS)) { - res = wsCache.get(CACHE_KEY.ROLE_ROUTERS) as AppCustomRouteRecordRaw[] - } else { - res = await getAsyncRoutes() - wsCache.set(CACHE_KEY.ROLE_ROUTERS, res) - } - const routerMap: AppRouteRecordRaw[] = generateRoute(res as AppCustomRouteRecordRaw[]) - // 动态路由,404一定要放到最后面 - this.addRouters = routerMap.concat([ - { - path: '/:path(.*)*', - redirect: '/404', - name: '404Page', - meta: { - hidden: true, - breadcrumb: false - } - } - ]) - // 渲染菜单的所有路由 - this.routers = cloneDeep(remainingRouter).concat(routerMap) - resolve() - }) - }, - setMenuTabRouters(routers: AppRouteRecordRaw[]): void { - this.menuTabRouters = routers - } - } -}) - -export const usePermissionStoreWithOut = () => { - return usePermissionStore(store) -} diff --git a/yshop-drink-vue/src/store/modules/tagsView.ts b/yshop-drink-vue/src/store/modules/tagsView.ts deleted file mode 100644 index a60d0e4..0000000 --- a/yshop-drink-vue/src/store/modules/tagsView.ts +++ /dev/null @@ -1,140 +0,0 @@ -import router from '@/router' -import type { RouteLocationNormalizedLoaded } from 'vue-router' -import { getRawRoute } from '@/utils/routerHelper' -import { defineStore } from 'pinia' -import { store } from '../index' -import { findIndex } from '@/utils' - -export interface TagsViewState { - visitedViews: RouteLocationNormalizedLoaded[] - cachedViews: Set -} - -export const useTagsViewStore = defineStore('tagsView', { - state: (): TagsViewState => ({ - visitedViews: [], - cachedViews: new Set() - }), - getters: { - getVisitedViews(): RouteLocationNormalizedLoaded[] { - return this.visitedViews - }, - getCachedViews(): string[] { - return Array.from(this.cachedViews) - } - }, - actions: { - // 新增缓存和tag - addView(view: RouteLocationNormalizedLoaded): void { - this.addVisitedView(view) - this.addCachedView() - }, - // 新增tag - addVisitedView(view: RouteLocationNormalizedLoaded) { - if (this.visitedViews.some((v) => v.path === view.path)) return - if (view.meta?.noTagsView) return - this.visitedViews.push( - Object.assign({}, view, { - title: view.meta?.title || 'no-name' - }) - ) - }, - // 新增缓存 - addCachedView() { - const cacheMap: Set = new Set() - for (const v of this.visitedViews) { - const item = getRawRoute(v) - const needCache = !item.meta?.noCache - if (!needCache) { - continue - } - const name = item.name as string - cacheMap.add(name) - } - if (Array.from(this.cachedViews).sort().toString() === Array.from(cacheMap).sort().toString()) - return - this.cachedViews = cacheMap - }, - // 删除某个 - delView(view: RouteLocationNormalizedLoaded) { - this.delVisitedView(view) - this.delCachedView() - }, - // 删除tag - delVisitedView(view: RouteLocationNormalizedLoaded) { - for (const [i, v] of this.visitedViews.entries()) { - if (v.path === view.path) { - this.visitedViews.splice(i, 1) - break - } - } - }, - // 删除缓存 - delCachedView() { - const route = router.currentRoute.value - const index = findIndex(this.getCachedViews, (v) => v === route.name) - if (index > -1) { - this.cachedViews.delete(this.getCachedViews[index]) - } - }, - // 删除所有缓存和tag - delAllViews() { - this.delAllVisitedViews() - this.delCachedView() - }, - // 删除所有tag - delAllVisitedViews() { - // const affixTags = this.visitedViews.filter((tag) => tag.meta.affix) - this.visitedViews = [] - }, - // 删除其他 - delOthersViews(view: RouteLocationNormalizedLoaded) { - this.delOthersVisitedViews(view) - this.addCachedView() - }, - // 删除其他tag - delOthersVisitedViews(view: RouteLocationNormalizedLoaded) { - this.visitedViews = this.visitedViews.filter((v) => { - return v?.meta?.affix || v.path === view.path - }) - }, - // 删除左侧 - delLeftViews(view: RouteLocationNormalizedLoaded) { - const index = findIndex( - this.visitedViews, - (v) => v.path === view.path - ) - if (index > -1) { - this.visitedViews = this.visitedViews.filter((v, i) => { - return v?.meta?.affix || v.path === view.path || i > index - }) - this.addCachedView() - } - }, - // 删除右侧 - delRightViews(view: RouteLocationNormalizedLoaded) { - const index = findIndex( - this.visitedViews, - (v) => v.path === view.path - ) - if (index > -1) { - this.visitedViews = this.visitedViews.filter((v, i) => { - return v?.meta?.affix || v.path === view.path || i < index - }) - this.addCachedView() - } - }, - updateVisitedView(view: RouteLocationNormalizedLoaded) { - for (let v of this.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view) - break - } - } - } - } -}) - -export const useTagsViewStoreWithOut = () => { - return useTagsViewStore(store) -} diff --git a/yshop-drink-vue/src/store/modules/user.ts b/yshop-drink-vue/src/store/modules/user.ts deleted file mode 100644 index 99c11c2..0000000 --- a/yshop-drink-vue/src/store/modules/user.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { store } from '../index' -import { defineStore } from 'pinia' -import { getAccessToken, removeToken } from '@/utils/auth' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' -import { getInfo, loginOut } from '@/api/login' - -const { wsCache } = useCache() - -interface UserVO { - id: number - avatar: string - nickname: string -} -interface UserInfoVO { - permissions: string[] - roles: string[] - isSetUser: boolean - user: UserVO -} - -export const useUserStore = defineStore('admin-user', { - state: (): UserInfoVO => ({ - permissions: [], - roles: [], - isSetUser: false, - user: { - id: 0, - avatar: '', - nickname: '' - } - }), - getters: { - getPermissions(): string[] { - return this.permissions - }, - getRoles(): string[] { - return this.roles - }, - getIsSetUser(): boolean { - return this.isSetUser - }, - getUser(): UserVO { - return this.user - } - }, - actions: { - async setUserInfoAction() { - if (!getAccessToken()) { - this.resetState() - return null - } - let userInfo = wsCache.get(CACHE_KEY.USER) - if (!userInfo) { - userInfo = await getInfo() - } - this.permissions = userInfo.permissions - this.roles = userInfo.roles - this.user = userInfo.user - this.isSetUser = true - wsCache.set(CACHE_KEY.USER, userInfo) - }, - async loginOut() { - await loginOut() - removeToken() - wsCache.clear() - this.resetState() - }, - resetState() { - this.permissions = [] - this.roles = [] - this.isSetUser = false - this.user = { - id: 0, - avatar: '', - nickname: '' - } - } - } -}) - -export const useUserStoreWithOut = () => { - return useUserStore(store) -} diff --git a/yshop-drink-vue/src/styles/global.module.scss b/yshop-drink-vue/src/styles/global.module.scss deleted file mode 100644 index 8448a92..0000000 --- a/yshop-drink-vue/src/styles/global.module.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import './variables.scss'; -// 导出变量 -:export { - namespace: $namespace; - elNamespace: $elNamespace; -} diff --git a/yshop-drink-vue/src/styles/index.scss b/yshop-drink-vue/src/styles/index.scss deleted file mode 100644 index 2781c12..0000000 --- a/yshop-drink-vue/src/styles/index.scss +++ /dev/null @@ -1,27 +0,0 @@ -@import './var.css'; -@import 'element-plus/theme-chalk/dark/css-vars.css'; - -.reset-margin [class*='el-icon'] + span { - margin-left: 2px !important; -} - -// 解决抽屉弹出时,body宽度变化的问题 -.el-popup-parent--hidden { - width: 100% !important; -} - -/* nprogress 适配 element-plus 的主题色 */ -#nprogress { - & .bar { - background-color: var(--el-color-primary) !important; - } - - & .peg { - box-shadow: 0 0 10px var(--el-color-primary), 0 0 5px var(--el-color-primary) !important; - } - - & .spinner-icon { - border-top-color: var(--el-color-primary); - border-left-color: var(--el-color-primary); - } -} diff --git a/yshop-drink-vue/src/styles/theme.scss b/yshop-drink-vue/src/styles/theme.scss deleted file mode 100644 index 39b03b3..0000000 --- a/yshop-drink-vue/src/styles/theme.scss +++ /dev/null @@ -1,6 +0,0 @@ -// .text-color { -// color: var(--el-text-color-regular); -// } -// .dark .dark\:text-color { -// color: rgba(255, 255, 255, var(--dark-text-color)); -// } diff --git a/yshop-drink-vue/src/styles/var.css b/yshop-drink-vue/src/styles/var.css deleted file mode 100644 index d0badc1..0000000 --- a/yshop-drink-vue/src/styles/var.css +++ /dev/null @@ -1,73 +0,0 @@ -:root { - --dark-bg-color: #293146; - - /* left menu start */ - --left-menu-border-color: '#eee'; - - --left-menu-max-width: 200px; - - --left-menu-min-width: 64px; - - --left-menu-bg-color: #001529; - - --left-menu-bg-light-color: #0f2438; - - --left-menu-bg-active-color: var(--el-color-primary); - - --left-menu-text-color: #bfcbd9; - - --left-menu-text-active-color: #fff; - - --left-menu-collapse-bg-active-color: var(--el-color-primary); - /* left menu end */ - - /* logo start */ - --logo-height: 50px; - - --logo-title-text-color: #fff; - - --logo-border-color: 'inherit'; - /* logo end */ - - /* header start */ - --top-header-bg-color: '#fff'; - - --top-header-text-color: 'inherit'; - - --top-header-hover-color: #f6f6f6; - - --top-tool-height: var(--logo-height); - - --top-tool-p-x: 0; - - --top-tool-border-color: #eee; - - --tags-view-height: 35px; - - --tags-view-border-color: #eee; - /* header start */ - - /* tab menu start */ - --tab-menu-max-width: 80px; - - --tab-menu-min-width: 30px; - - --tab-menu-collapse-height: 36px; - - --tab-menu-border-color: #eee; - /* tab menu end */ - - --app-content-padding: 20px; - - --app-contnet-bg-color: #f5f7f9; - - --app-footer-height: 50px; - - --transition-time-02: 0.2s; -} - -html, -body { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/yshop-drink-vue/src/styles/variables.scss b/yshop-drink-vue/src/styles/variables.scss deleted file mode 100644 index 00b66f1..0000000 --- a/yshop-drink-vue/src/styles/variables.scss +++ /dev/null @@ -1,4 +0,0 @@ -// 命名空间 -$namespace: v; -// el命名空间 -$elNamespace: el; diff --git a/yshop-drink-vue/src/types/components.d.ts b/yshop-drink-vue/src/types/components.d.ts deleted file mode 100644 index 8de1f33..0000000 --- a/yshop-drink-vue/src/types/components.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -export type ComponentName = - | 'Radio' - | 'RadioButton' - | 'Checkbox' - | 'CheckboxButton' - | 'Input' - | 'Autocomplete' - | 'InputNumber' - | 'Select' - | 'Cascader' - | 'Switch' - | 'Slider' - | 'TimePicker' - | 'DatePicker' - | 'Rate' - | 'ColorPicker' - | 'Transfer' - | 'Divider' - | 'TimeSelect' - | 'SelectV2' - | 'TreeSelect' - | 'InputPassword' - | 'Editor' - | 'UploadImg' - | 'UploadImgs' - | 'UploadFile' - -export type ColProps = { - span?: number - xs?: number - sm?: number - md?: number - lg?: number - xl?: number - tag?: string -} - -export type ComponentOptions = { - label?: string - value?: FormValueType - disabled?: boolean - key?: string | number - children?: ComponentOptions[] - options?: ComponentOptions[] -} & Recordable - -export type ComponentOptionsAlias = { - labelField?: string - valueField?: string -} - -export type ComponentProps = { - optionsAlias?: ComponentOptionsAlias - options?: ComponentOptions[] - optionsSlot?: boolean -} & Recordable diff --git a/yshop-drink-vue/src/types/configGlobal.d.ts b/yshop-drink-vue/src/types/configGlobal.d.ts deleted file mode 100644 index f6d7b3c..0000000 --- a/yshop-drink-vue/src/types/configGlobal.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ElementPlusSize } from './elementPlus' -export interface ConfigGlobalTypes { - size?: ElementPlusSize -} diff --git a/yshop-drink-vue/src/types/contextMenu.d.ts b/yshop-drink-vue/src/types/contextMenu.d.ts deleted file mode 100644 index 0738d0e..0000000 --- a/yshop-drink-vue/src/types/contextMenu.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type contextMenuSchema = { - disabled?: boolean - divided?: boolean - icon?: string - label: string - command?: (item: contextMenuSchema) => void -} diff --git a/yshop-drink-vue/src/types/descriptions.d.ts b/yshop-drink-vue/src/types/descriptions.d.ts deleted file mode 100644 index 35c0b81..0000000 --- a/yshop-drink-vue/src/types/descriptions.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface DescriptionsSchema { - span?: number // 占多少分 - field: string // 字段名 - label?: string // label名 - width?: string | number - minWidth?: string | number - align?: 'left' | 'center' | 'right' - labelAlign?: 'left' | 'center' | 'right' - className?: string - labelClassName?: string - dateFormat?: string // add by 星语:支持时间的格式化 - dictType?: string // add by 星语:支持 dict 字典数据 -} diff --git a/yshop-drink-vue/src/types/elementPlus.d.ts b/yshop-drink-vue/src/types/elementPlus.d.ts deleted file mode 100644 index 2c6b76e..0000000 --- a/yshop-drink-vue/src/types/elementPlus.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type ElementPlusSize = 'default' | 'small' | 'large' - -export type ElementPlusInfoType = 'success' | 'info' | 'warning' | 'danger' diff --git a/yshop-drink-vue/src/types/form.d.ts b/yshop-drink-vue/src/types/form.d.ts deleted file mode 100644 index 980c8cc..0000000 --- a/yshop-drink-vue/src/types/form.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { CSSProperties } from 'vue' -import { ColProps, ComponentProps, ComponentName } from '@/types/components' -import type { AxiosPromise } from 'axios' - -export type FormSetPropsType = { - field: string - path: string - value: any -} - -export type FormValueType = string | number | string[] | number[] | boolean | undefined | null - -export type FormItemProps = { - labelWidth?: string | number - required?: boolean - rules?: Recordable - error?: string - showMessage?: boolean - inlineMessage?: boolean - style?: CSSProperties -} - -export type FormSchema = { - // 唯一值 - field: string - // 标题 - label?: string - // 提示 - labelMessage?: string - // col组件属性 - colProps?: ColProps - // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档 - componentProps?: { slots?: Recordable } & ComponentProps - // formItem组件属性 - formItemProps?: FormItemProps - // 渲染的组件 - component?: ComponentName - // 初始值 - value?: FormValueType - // 是否隐藏 - hidden?: boolean - // 远程加载下拉项 - api?: () => AxiosPromise -} diff --git a/yshop-drink-vue/src/types/icon.d.ts b/yshop-drink-vue/src/types/icon.d.ts deleted file mode 100644 index d1ffcdb..0000000 --- a/yshop-drink-vue/src/types/icon.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface IconTypes { - size?: number - color?: string - icon: string -} diff --git a/yshop-drink-vue/src/types/infoTip.d.ts b/yshop-drink-vue/src/types/infoTip.d.ts deleted file mode 100644 index 6eff083..0000000 --- a/yshop-drink-vue/src/types/infoTip.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface TipSchema { - label: string - keys?: string[] -} diff --git a/yshop-drink-vue/src/types/layout.d.ts b/yshop-drink-vue/src/types/layout.d.ts deleted file mode 100644 index cad3e2a..0000000 --- a/yshop-drink-vue/src/types/layout.d.ts +++ /dev/null @@ -1 +0,0 @@ -export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu' diff --git a/yshop-drink-vue/src/types/localeDropdown.d.ts b/yshop-drink-vue/src/types/localeDropdown.d.ts deleted file mode 100644 index c749dce..0000000 --- a/yshop-drink-vue/src/types/localeDropdown.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -export interface Language { - el: Recordable - name: string -} - -export interface LocaleDropdownType { - lang: LocaleType - name?: string - elLocale?: Language -} diff --git a/yshop-drink-vue/src/types/qrcode.d.ts b/yshop-drink-vue/src/types/qrcode.d.ts deleted file mode 100644 index 86cdf0b..0000000 --- a/yshop-drink-vue/src/types/qrcode.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface QrcodeLogo { - src?: string - logoSize?: number - bgColor?: string - borderSize?: number - crossOrigin?: string - borderRadius?: number - logoRadius?: number -} diff --git a/yshop-drink-vue/src/types/table.d.ts b/yshop-drink-vue/src/types/table.d.ts deleted file mode 100644 index 3294234..0000000 --- a/yshop-drink-vue/src/types/table.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -export type TableColumn = { - field: string - label?: string - children?: TableColumn[] -} & Recordable - -export type VxeTableColumn = { - field: string - title?: string - children?: TableColumn[] -} & Recordable - -export type TableSlotDefault = { - row: Recordable - column: TableColumn - $index: number -} & Recordable - -export interface Pagination { - small?: boolean - background?: boolean - pageSize?: number - defaultPageSize?: number - total?: number - pageCount?: number - pagerCount?: number - currentPage?: number - defaultCurrentPage?: number - layout?: string - pageSizes?: number[] - popperClass?: string - prevText?: string - nextText?: string - disabled?: boolean - hideOnSinglePage?: boolean -} - -export interface TableSetPropsType { - field: string - path: string - value: any -} diff --git a/yshop-drink-vue/src/types/theme.d.ts b/yshop-drink-vue/src/types/theme.d.ts deleted file mode 100644 index ad649b0..0000000 --- a/yshop-drink-vue/src/types/theme.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -export type ThemeTypes = { - elColorPrimary?: string - leftMenuBorderColor?: string - leftMenuBgColor?: string - leftMenuBgLightColor?: string - leftMenuBgActiveColor?: string - leftMenuCollapseBgActiveColor?: string - leftMenuTextColor?: string - leftMenuTextActiveColor?: string - logoTitleTextColor?: string - logoBorderColor?: string - topHeaderBgColor?: string - topHeaderTextColor?: string - topHeaderHoverColor?: string - topToolBorderColor?: string -} diff --git a/yshop-drink-vue/src/utils/Logger.ts b/yshop-drink-vue/src/utils/Logger.ts deleted file mode 100644 index ca58df2..0000000 --- a/yshop-drink-vue/src/utils/Logger.ts +++ /dev/null @@ -1,100 +0,0 @@ -const isArray = function (obj: any): boolean { - return Object.prototype.toString.call(obj) === '[object Array]' -} - -const Logger = () => {} - -Logger.typeColor = function (type: string) { - let color = '' - switch (type) { - case 'primary': - color = '#2d8cf0' - break - case 'success': - color = '#19be6b' - break - case 'info': - color = '#909399' - break - case 'warn': - color = '#ff9900' - break - case 'error': - color = '#f03f14' - break - default: - color = '#35495E' - break - } - return color -} - -Logger.print = function (type = 'default', text: any, back = false) { - if (typeof text === 'object') { - // 如果是對象則調用打印對象方式 - isArray(text) ? console.table(text) : console.dir(text) - return - } - if (back) { - // 如果是打印帶背景圖的 - console.log( - `%c ${text} `, - `background:${Logger.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;` - ) - } else { - console.log( - `%c ${text} `, - `border: 1px solid ${Logger.typeColor(type)}; - padding: 2px; border-radius: 4px; - color: ${Logger.typeColor(type)};` - ) - } -} - -Logger.printBack = function (type = 'primary', text) { - this.print(type, text, true) -} - -Logger.pretty = function (type = 'primary', title, text) { - if (typeof text === 'object') { - console.group('Console Group', title) - console.log( - `%c ${title}`, - `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)}; - padding: 1px; border-radius: 4px; color: #fff;` - ) - isArray(text) ? console.table(text) : console.dir(text) - console.groupEnd() - return - } - console.log( - `%c ${title} %c ${text} %c`, - `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)}; - padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`, - `border:1px solid ${Logger.typeColor(type)}; - padding: 1px; border-radius: 0 4px 4px 0; color: ${Logger.typeColor(type)};`, - 'background:transparent' - ) -} - -Logger.prettyPrimary = function (title, ...text) { - text.forEach((t) => this.pretty('primary', title, t)) -} - -Logger.prettySuccess = function (title, ...text) { - text.forEach((t) => this.pretty('success', title, t)) -} - -Logger.prettyWarn = function (title, ...text) { - text.forEach((t) => this.pretty('warn', title, t)) -} - -Logger.prettyError = function (title, ...text) { - text.forEach((t) => this.pretty('error', title, t)) -} - -Logger.prettyInfo = function (title, ...text) { - text.forEach((t) => this.pretty('info', title, t)) -} - -export default Logger diff --git a/yshop-drink-vue/src/utils/auth.ts b/yshop-drink-vue/src/utils/auth.ts deleted file mode 100644 index b55d676..0000000 --- a/yshop-drink-vue/src/utils/auth.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { useCache } from '@/hooks/web/useCache' -import { TokenType } from '@/api/login/types' -import { decrypt, encrypt } from '@/utils/jsencrypt' - -const { wsCache } = useCache() - -const AccessTokenKey = 'ACCESS_TOKEN' -const RefreshTokenKey = 'REFRESH_TOKEN' - -// 获取token -export const getAccessToken = () => { - // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错 - return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN') -} - -// 刷新token -export const getRefreshToken = () => { - return wsCache.get(RefreshTokenKey) -} - -// 设置token -export const setToken = (token: TokenType) => { - wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime }) - wsCache.set(AccessTokenKey, token.accessToken) -} - -// 删除token -export const removeToken = () => { - wsCache.delete(AccessTokenKey) - wsCache.delete(RefreshTokenKey) -} - -/** 格式化token(jwt格式) */ -export const formatToken = (token: string): string => { - return 'Bearer ' + token -} -// ========== 账号相关 ========== - -const LoginFormKey = 'LOGINFORM' - -export type LoginFormType = { - tenantName: string - username: string - password: string - rememberMe: boolean -} - -export const getLoginForm = () => { - const loginForm: LoginFormType = wsCache.get(LoginFormKey) - if (loginForm) { - loginForm.password = decrypt(loginForm.password) as string - } - return loginForm -} - -export const setLoginForm = (loginForm: LoginFormType) => { - loginForm.password = encrypt(loginForm.password) as string - wsCache.set(LoginFormKey, loginForm, { exp: 30 * 24 * 60 * 60 }) -} - -export const removeLoginForm = () => { - wsCache.delete(LoginFormKey) -} - -// ========== 租户相关 ========== - -const TenantIdKey = 'TENANT_ID' -const TenantNameKey = 'TENANT_NAME' - -export const getTenantName = () => { - return wsCache.get(TenantNameKey) -} - -export const setTenantName = (username: string) => { - wsCache.set(TenantNameKey, username, { exp: 30 * 24 * 60 * 60 }) -} - -export const removeTenantName = () => { - wsCache.delete(TenantNameKey) -} - -export const getTenantId = () => { - return wsCache.get(TenantIdKey) -} - -export const setTenantId = (username: string) => { - wsCache.set(TenantIdKey, username) -} - -export const removeTenantId = () => { - wsCache.delete(TenantIdKey) -} diff --git a/yshop-drink-vue/src/utils/color.ts b/yshop-drink-vue/src/utils/color.ts deleted file mode 100644 index 6888583..0000000 --- a/yshop-drink-vue/src/utils/color.ts +++ /dev/null @@ -1,153 +0,0 @@ -/** - * 判断是否 十六进制颜色值. - * 输入形式可为 #fff000 #f00 - * - * @param String color 十六进制颜色值 - * @return Boolean - */ -export const isHexColor = (color: string) => { - const reg = /^#([0-9a-fA-F]{3}|[0-9a-fA-f]{6})$/ - return reg.test(color) -} - -/** - * RGB 颜色值转换为 十六进制颜色值. - * r, g, 和 b 需要在 [0, 255] 范围内 - * - * @return String 类似#ff00ff - * @param r - * @param g - * @param b - */ -export const rgbToHex = (r: number, g: number, b: number) => { - // tslint:disable-next-line:no-bitwise - const hex = ((r << 16) | (g << 8) | b).toString(16) - return '#' + new Array(Math.abs(hex.length - 7)).join('0') + hex -} - -/** - * Transform a HEX color to its RGB representation - * @param {string} hex The color to transform - * @returns The RGB representation of the passed color - */ -export const hexToRGB = (hex: string, opacity?: number) => { - let sHex = hex.toLowerCase() - if (isHexColor(hex)) { - if (sHex.length === 4) { - let sColorNew = '#' - for (let i = 1; i < 4; i += 1) { - sColorNew += sHex.slice(i, i + 1).concat(sHex.slice(i, i + 1)) - } - sHex = sColorNew - } - const sColorChange: number[] = [] - for (let i = 1; i < 7; i += 2) { - sColorChange.push(parseInt('0x' + sHex.slice(i, i + 2))) - } - return opacity - ? 'RGBA(' + sColorChange.join(',') + ',' + opacity + ')' - : 'RGB(' + sColorChange.join(',') + ')' - } - return sHex -} - -export const colorIsDark = (color: string) => { - if (!isHexColor(color)) return - const [r, g, b] = hexToRGB(color) - .replace(/(?:\(|\)|rgb|RGB)*/g, '') - .split(',') - .map((item) => Number(item)) - return r * 0.299 + g * 0.578 + b * 0.114 < 192 -} - -/** - * Darkens a HEX color given the passed percentage - * @param {string} color The color to process - * @param {number} amount The amount to change the color by - * @returns {string} The HEX representation of the processed color - */ -export const darken = (color: string, amount: number) => { - color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color - amount = Math.trunc((255 * amount) / 100) - return `#${subtractLight(color.substring(0, 2), amount)}${subtractLight( - color.substring(2, 4), - amount - )}${subtractLight(color.substring(4, 6), amount)}` -} - -/** - * Lightens a 6 char HEX color according to the passed percentage - * @param {string} color The color to change - * @param {number} amount The amount to change the color by - * @returns {string} The processed color represented as HEX - */ -export const lighten = (color: string, amount: number) => { - color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color - amount = Math.trunc((255 * amount) / 100) - return `#${addLight(color.substring(0, 2), amount)}${addLight( - color.substring(2, 4), - amount - )}${addLight(color.substring(4, 6), amount)}` -} - -/* Suma el porcentaje indicado a un color (RR, GG o BB) hexadecimal para aclararlo */ -/** - * Sums the passed percentage to the R, G or B of a HEX color - * @param {string} color The color to change - * @param {number} amount The amount to change the color by - * @returns {string} The processed part of the color - */ -const addLight = (color: string, amount: number) => { - const cc = parseInt(color, 16) + amount - const c = cc > 255 ? 255 : cc - return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}` -} - -/** - * Calculates luminance of an rgb color - * @param {number} r red - * @param {number} g green - * @param {number} b blue - */ -const luminanace = (r: number, g: number, b: number) => { - const a = [r, g, b].map((v) => { - v /= 255 - return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4) - }) - return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722 -} - -/** - * Calculates contrast between two rgb colors - * @param {string} rgb1 rgb color 1 - * @param {string} rgb2 rgb color 2 - */ -const contrast = (rgb1: string[], rgb2: number[]) => { - return ( - (luminanace(~~rgb1[0], ~~rgb1[1], ~~rgb1[2]) + 0.05) / - (luminanace(rgb2[0], rgb2[1], rgb2[2]) + 0.05) - ) -} - -/** - * Determines what the best text color is (black or white) based con the contrast with the background - * @param hexColor - Last selected color by the user - */ -export const calculateBestTextColor = (hexColor: string) => { - const rgbColor = hexToRGB(hexColor.substring(1)) - const contrastWithBlack = contrast(rgbColor.split(','), [0, 0, 0]) - - return contrastWithBlack >= 12 ? '#000000' : '#FFFFFF' -} - -/** - * Subtracts the indicated percentage to the R, G or B of a HEX color - * @param {string} color The color to change - * @param {number} amount The amount to change the color by - * @returns {string} The processed part of the color - */ -const subtractLight = (color: string, amount: number) => { - const cc = parseInt(color, 16) - amount - const c = cc < 0 ? 0 : cc - return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}` -} diff --git a/yshop-drink-vue/src/utils/constants.ts b/yshop-drink-vue/src/utils/constants.ts deleted file mode 100644 index 9194d52..0000000 --- a/yshop-drink-vue/src/utils/constants.ts +++ /dev/null @@ -1,222 +0,0 @@ -/** - * Created by yshop - * - * 枚举类 - */ - -// 全局通用状态枚举 -export const CommonStatusEnum = { - ENABLE: 0, // 开启 - DISABLE: 1 // 禁用 -} - -/** - * 菜单的类型枚举 - */ -export const SystemMenuTypeEnum = { - DIR: 1, // 目录 - MENU: 2, // 菜单 - BUTTON: 3 // 按钮 -} - -/** - * 角色的类型枚举 - */ -export const SystemRoleTypeEnum = { - SYSTEM: 1, // 内置角色 - CUSTOM: 2 // 自定义角色 -} - -/** - * 数据权限的范围枚举 - */ -export const SystemDataScopeEnum = { - ALL: 1, // 全部数据权限 - DEPT_CUSTOM: 2, // 指定部门数据权限 - DEPT_ONLY: 3, // 部门数据权限 - DEPT_AND_CHILD: 4, // 部门及以下数据权限 - DEPT_SELF: 5 // 仅本人数据权限 -} - -/** - * 代码生成模板类型 - */ -export const InfraCodegenTemplateTypeEnum = { - CRUD: 1, // 基础 CRUD - TREE: 2, // 树形 CRUD - SUB: 3 // 主子表 CRUD -} - -/** - * 任务状态的枚举 - */ -export const InfraJobStatusEnum = { - INIT: 0, // 初始化中 - NORMAL: 1, // 运行中 - STOP: 2 // 暂停运行 -} - -/** - * API 异常数据的处理状态 - */ -export const InfraApiErrorLogProcessStatusEnum = { - INIT: 0, // 未处理 - DONE: 1, // 已处理 - IGNORE: 2 // 已忽略 -} - -/** - * 用户的社交平台的类型枚举 - */ -export const SystemUserSocialTypeEnum = { - DINGTALK: { - title: '钉钉', - type: 20, - source: 'dingtalk', - img: 'https://s1.ax1x.com/2022/05/22/OzMDRs.png' - }, - WECHAT_ENTERPRISE: { - title: '企业微信', - type: 30, - source: 'wechat_enterprise', - img: 'https://s1.ax1x.com/2022/05/22/OzMrzn.png' - } -} - -/** - * 支付渠道枚举 - */ -export const PayChannelEnum = { - WX_PUB: { - code: 'wx_pub', - name: '微信 JSAPI 支付' - }, - WX_LITE: { - code: 'wx_lite', - name: '微信小程序支付' - }, - WX_APP: { - code: 'wx_app', - name: '微信 APP 支付' - }, - ALIPAY_PC: { - code: 'alipay_pc', - name: '支付宝 PC 网站支付' - }, - ALIPAY_WAP: { - code: 'alipay_wap', - name: '支付宝 WAP 网站支付' - }, - ALIPAY_APP: { - code: 'alipay_app', - name: '支付宝 APP 支付' - }, - ALIPAY_QR: { - code: 'alipay_qr', - name: '支付宝扫码支付' - }, - ALIPAY_BAR: { - code: 'alipay_bar', - name: '支付宝条码支付' - } -} - -/** - * 支付类型枚举 - */ -export const PayType = { - WECHAT: 'WECHAT', - ALIPAY: 'ALIPAY' -} - -/** - * 支付订单状态枚举 - */ -export const PayOrderStatusEnum = { - WAITING: { - status: 0, - name: '未支付' - }, - SUCCESS: { - status: 10, - name: '已支付' - }, - CLOSED: { - status: 20, - name: '未支付' - } -} - -/** - * 支付订单回调状态枚举 - */ -export const PayOrderNotifyStatusEnum = { - NO: { - status: 0, - name: '未通知' - }, - SUCCESS: { - status: 10, - name: '通知成功' - }, - FAILURE: { - status: 20, - name: '通知失败' - } -} - -/** - * 支付订单退款状态枚举 - */ -export const PayOrderRefundStatusEnum = { - NO: { - status: 0, - name: '未退款' - }, - SOME: { - status: 10, - name: '部分退款' - }, - ALL: { - status: 20, - name: '全部退款' - } -} - -/** - * 支付退款订单状态枚举 - */ -export const PayRefundStatusEnum = { - CREATE: { - status: 0, - name: '退款订单生成' - }, - SUCCESS: { - status: 1, - name: '退款成功' - }, - FAILURE: { - status: 2, - name: '退款失败' - }, - PROCESSING_NOTIFY: { - status: 3, - name: '退款中,渠道通知结果' - }, - PROCESSING_QUERY: { - status: 4, - name: '退款中,系统查询结果' - }, - UNKNOWN_RETRY: { - status: 5, - name: '状态未知,请重试' - }, - UNKNOWN_QUERY: { - status: 6, - name: '状态未知,系统查询结果' - }, - CLOSE: { - status: 99, - name: '退款关闭' - } -} diff --git a/yshop-drink-vue/src/utils/dict.ts b/yshop-drink-vue/src/utils/dict.ts deleted file mode 100644 index 03e17e7..0000000 --- a/yshop-drink-vue/src/utils/dict.ts +++ /dev/null @@ -1,148 +0,0 @@ -/** - * 数据字典工具类 - */ -import { useDictStoreWithOut } from '@/store/modules/dict' -import { ElementPlusInfoType } from '@/types/elementPlus' - -const dictStore = useDictStoreWithOut() - -/** - * 获取 dictType 对应的数据字典数组 - * - * @param dictType 数据类型 - * @returns {*|Array} 数据字典数组 - */ -export interface DictDataType { - dictType: string - label: string - value: string | number | boolean - colorType: ElementPlusInfoType | '' - cssClass: string -} - -export const getDictOptions = (dictType: string) => { - return dictStore.getDictByType(dictType) || [] -} - -export const getIntDictOptions = (dictType: string) => { - const dictOption: DictDataType[] = [] - const dictOptions: DictDataType[] = getDictOptions(dictType) - dictOptions.forEach((dict: DictDataType) => { - dictOption.push({ - ...dict, - value: parseInt(dict.value + '') - }) - }) - - return dictOption -} - -export const getStrDictOptions = (dictType: string) => { - const dictOption: DictDataType[] = [] - const dictOptions: DictDataType[] = getDictOptions(dictType) - dictOptions.forEach((dict: DictDataType) => { - dictOption.push({ - ...dict, - value: dict.value + '' - }) - }) - return dictOption -} - -export const getBoolDictOptions = (dictType: string) => { - const dictOption: DictDataType[] = [] - const dictOptions: DictDataType[] = getDictOptions(dictType) - dictOptions.forEach((dict: DictDataType) => { - dictOption.push({ - ...dict, - value: dict.value + '' === 'true' - }) - }) - return dictOption -} - -export const getDictObj = (dictType: string, value: any) => { - const dictOptions: DictDataType[] = getDictOptions(dictType) - dictOptions.forEach((dict: DictDataType) => { - if (dict.value === value.toString()) { - return dict - } - }) -} - -/** - * 获得字典数据的文本展示 - * - * @param dictType 字典类型 - * @param value 字典数据的值 - */ -export const getDictLabel = (dictType: string, value: any) => { - const dictOptions: DictDataType[] = getDictOptions(dictType) - const dictLabel = ref('') - dictOptions.forEach((dict: DictDataType) => { - if (dict.value === value) { - dictLabel.value = dict.label - } - }) - return dictLabel.value -} - -export enum DICT_TYPE { - USER_TYPE = 'user_type', - COMMON_STATUS = 'common_status', - SYSTEM_TENANT_PACKAGE_ID = 'system_tenant_package_id', - - // ========== SYSTEM 模块 ========== - SYSTEM_USER_SEX = 'system_user_sex', - SYSTEM_MENU_TYPE = 'system_menu_type', - SYSTEM_ROLE_TYPE = 'system_role_type', - SYSTEM_DATA_SCOPE = 'system_data_scope', - SYSTEM_NOTICE_TYPE = 'system_notice_type', - SYSTEM_OPERATE_TYPE = 'system_operate_type', - SYSTEM_LOGIN_TYPE = 'system_login_type', - SYSTEM_LOGIN_RESULT = 'system_login_result', - SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code', - SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type', - SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status', - SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status', - SYSTEM_ERROR_CODE_TYPE = 'system_error_code_type', - SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type', - SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status', - SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type', - - // ========== INFRA 模块 ========== - INFRA_BOOLEAN_STRING = 'infra_boolean_string', - INFRA_JOB_STATUS = 'infra_job_status', - INFRA_JOB_LOG_STATUS = 'infra_job_log_status', - INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status', - INFRA_CONFIG_TYPE = 'infra_config_type', - INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type', - INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type', - INFRA_CODEGEN_SCENE = 'infra_codegen_scene', - INFRA_FILE_STORAGE = 'infra_file_storage', - - // ========== BPM 模块 ========== - BPM_MODEL_CATEGORY = 'bpm_model_category', - BPM_MODEL_FORM_TYPE = 'bpm_model_form_type', - BPM_TASK_ASSIGN_RULE_TYPE = 'bpm_task_assign_rule_type', - BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status', - BPM_PROCESS_INSTANCE_RESULT = 'bpm_process_instance_result', - BPM_TASK_ASSIGN_SCRIPT = 'bpm_task_assign_script', - BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type', - - // ========== PAY 模块 ========== - PAY_CHANNEL_WECHAT_VERSION = 'pay_channel_wechat_version', // 微信渠道版本 - PAY_CHANNEL_ALIPAY_SIGN_TYPE = 'pay_channel_alipay_sign_type', // 支付渠道支付宝算法类型 - PAY_CHANNEL_ALIPAY_MODE = 'pay_channel_alipay_mode', // 支付宝公钥类型 - PAY_CHANNEL_ALIPAY_SERVER_TYPE = 'pay_channel_alipay_server_type', // 支付宝网关地址 - PAY_CHANNEL_CODE_TYPE = 'pay_channel_code_type', // 支付渠道编码类型 - PAY_ORDER_NOTIFY_STATUS = 'pay_order_notify_status', // 商户支付订单回调状态 - PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态 - PAY_ORDER_REFUND_STATUS = 'pay_order_refund_status', // 商户支付订单退款状态 - PAY_REFUND_ORDER_STATUS = 'pay_refund_order_status', // 退款订单状态 - PAY_REFUND_ORDER_TYPE = 'pay_refund_order_type', // 退款订单类别 - - // ========== MP 模块 ========== - MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型 - MP_MESSAGE_TYPE = 'mp_message_type' // 消息类型 -} diff --git a/yshop-drink-vue/src/utils/domUtils.ts b/yshop-drink-vue/src/utils/domUtils.ts deleted file mode 100644 index dbc1989..0000000 --- a/yshop-drink-vue/src/utils/domUtils.ts +++ /dev/null @@ -1,289 +0,0 @@ -import { isServer } from './is' -const ieVersion = isServer ? 0 : Number((document as any).documentMode) -const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g -const MOZ_HACK_REGEXP = /^moz([A-Z])/ - -export interface ViewportOffsetResult { - left: number - top: number - right: number - bottom: number - rightIncludeBody: number - bottomIncludeBody: number -} - -/* istanbul ignore next */ -const trim = function (string: string) { - return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '') -} - -/* istanbul ignore next */ -const camelCase = function (name: string) { - return name - .replace(SPECIAL_CHARS_REGEXP, function (_, __, letter, offset) { - return offset ? letter.toUpperCase() : letter - }) - .replace(MOZ_HACK_REGEXP, 'Moz$1') -} - -/* istanbul ignore next */ -export function hasClass(el: Element, cls: string) { - if (!el || !cls) return false - if (cls.indexOf(' ') !== -1) { - throw new Error('className should not contain space.') - } - if (el.classList) { - return el.classList.contains(cls) - } else { - return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1 - } -} - -/* istanbul ignore next */ -export function addClass(el: Element, cls: string) { - if (!el) return - let curClass = el.className - const classes = (cls || '').split(' ') - - for (let i = 0, j = classes.length; i < j; i++) { - const clsName = classes[i] - if (!clsName) continue - - if (el.classList) { - el.classList.add(clsName) - } else if (!hasClass(el, clsName)) { - curClass += ' ' + clsName - } - } - if (!el.classList) { - el.className = curClass - } -} - -/* istanbul ignore next */ -export function removeClass(el: Element, cls: string) { - if (!el || !cls) return - const classes = cls.split(' ') - let curClass = ' ' + el.className + ' ' - - for (let i = 0, j = classes.length; i < j; i++) { - const clsName = classes[i] - if (!clsName) continue - - if (el.classList) { - el.classList.remove(clsName) - } else if (hasClass(el, clsName)) { - curClass = curClass.replace(' ' + clsName + ' ', ' ') - } - } - if (!el.classList) { - el.className = trim(curClass) - } -} - -export function getBoundingClientRect(element: Element): DOMRect | number { - if (!element || !element.getBoundingClientRect) { - return 0 - } - return element.getBoundingClientRect() -} - -/** - * 获取当前元素的left、top偏移 - * left:元素最左侧距离文档左侧的距离 - * top:元素最顶端距离文档顶端的距离 - * right:元素最右侧距离文档右侧的距离 - * bottom:元素最底端距离文档底端的距离 - * rightIncludeBody:元素最左侧距离文档右侧的距离 - * bottomIncludeBody:元素最底端距离文档最底部的距离 - * - * @description: - */ -export function getViewportOffset(element: Element): ViewportOffsetResult { - const doc = document.documentElement - - const docScrollLeft = doc.scrollLeft - const docScrollTop = doc.scrollTop - const docClientLeft = doc.clientLeft - const docClientTop = doc.clientTop - - const pageXOffset = window.pageXOffset - const pageYOffset = window.pageYOffset - - const box = getBoundingClientRect(element) - - const { left: retLeft, top: rectTop, width: rectWidth, height: rectHeight } = box as DOMRect - - const scrollLeft = (pageXOffset || docScrollLeft) - (docClientLeft || 0) - const scrollTop = (pageYOffset || docScrollTop) - (docClientTop || 0) - const offsetLeft = retLeft + pageXOffset - const offsetTop = rectTop + pageYOffset - - const left = offsetLeft - scrollLeft - const top = offsetTop - scrollTop - - const clientWidth = window.document.documentElement.clientWidth - const clientHeight = window.document.documentElement.clientHeight - return { - left: left, - top: top, - right: clientWidth - rectWidth - left, - bottom: clientHeight - rectHeight - top, - rightIncludeBody: clientWidth - left, - bottomIncludeBody: clientHeight - top - } -} - -/* istanbul ignore next */ -export const on = function ( - element: HTMLElement | Document | Window, - event: string, - handler: EventListenerOrEventListenerObject -): void { - if (element && event && handler) { - element.addEventListener(event, handler, false) - } -} - -/* istanbul ignore next */ -export const off = function ( - element: HTMLElement | Document | Window, - event: string, - handler: any -): void { - if (element && event && handler) { - element.removeEventListener(event, handler, false) - } -} - -/* istanbul ignore next */ -export const once = function (el: HTMLElement, event: string, fn: EventListener): void { - const listener = function (this: any, ...args: unknown[]) { - if (fn) { - // @ts-ignore - fn.apply(this, args) - } - off(el, event, listener) - } - on(el, event, listener) -} - -/* istanbul ignore next */ -export const getStyle = - ieVersion < 9 - ? function (element: Element | any, styleName: string) { - if (isServer) return - if (!element || !styleName) return null - styleName = camelCase(styleName) - if (styleName === 'float') { - styleName = 'styleFloat' - } - try { - switch (styleName) { - case 'opacity': - try { - return element.filters.item('alpha').opacity / 100 - } catch (e) { - return 1.0 - } - default: - return element.style[styleName] || element.currentStyle - ? element.currentStyle[styleName] - : null - } - } catch (e) { - return element.style[styleName] - } - } - : function (element: Element | any, styleName: string) { - if (isServer) return - if (!element || !styleName) return null - styleName = camelCase(styleName) - if (styleName === 'float') { - styleName = 'cssFloat' - } - try { - const computed = (document as any).defaultView.getComputedStyle(element, '') - return element.style[styleName] || computed ? computed[styleName] : null - } catch (e) { - return element.style[styleName] - } - } - -/* istanbul ignore next */ -export function setStyle(element: Element | any, styleName: any, value: any) { - if (!element || !styleName) return - - if (typeof styleName === 'object') { - for (const prop in styleName) { - if (Object.prototype.hasOwnProperty.call(styleName, prop)) { - setStyle(element, prop, styleName[prop]) - } - } - } else { - styleName = camelCase(styleName) - if (styleName === 'opacity' && ieVersion < 9) { - element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')' - } else { - element.style[styleName] = value - } - } -} - -/* istanbul ignore next */ -export const isScroll = (el: Element, vertical: any) => { - if (isServer) return - - const determinedDirection = vertical !== null || vertical !== undefined - const overflow = determinedDirection - ? vertical - ? getStyle(el, 'overflow-y') - : getStyle(el, 'overflow-x') - : getStyle(el, 'overflow') - - return overflow.match(/(scroll|auto)/) -} - -/* istanbul ignore next */ -export const getScrollContainer = (el: Element, vertical?: any) => { - if (isServer) return - - let parent: any = el - while (parent) { - if ([window, document, document.documentElement].includes(parent)) { - return window - } - if (isScroll(parent, vertical)) { - return parent - } - parent = parent.parentNode - } - - return parent -} - -/* istanbul ignore next */ -export const isInContainer = (el: Element, container: any) => { - if (isServer || !el || !container) return false - - const elRect = el.getBoundingClientRect() - let containerRect - - if ([window, document, document.documentElement, null, undefined].includes(container)) { - containerRect = { - top: 0, - right: window.innerWidth, - bottom: window.innerHeight, - left: 0 - } - } else { - containerRect = container.getBoundingClientRect() - } - - return ( - elRect.top < containerRect.bottom && - elRect.bottom > containerRect.top && - elRect.right > containerRect.left && - elRect.left < containerRect.right - ) -} diff --git a/yshop-drink-vue/src/utils/download.ts b/yshop-drink-vue/src/utils/download.ts deleted file mode 100644 index ab20014..0000000 --- a/yshop-drink-vue/src/utils/download.ts +++ /dev/null @@ -1,38 +0,0 @@ -const download0 = (data: Blob, fileName: string, mineType: string) => { - // 创建 blob - const blob = new Blob([data], { type: mineType }) - // 创建 href 超链接,点击进行下载 - window.URL = window.URL || window.webkitURL - const href = URL.createObjectURL(blob) - const downA = document.createElement('a') - downA.href = href - downA.download = fileName - downA.click() - // 销毁超连接 - window.URL.revokeObjectURL(href) -} - -const download = { - // 下载 Excel 方法 - excel: (data: Blob, fileName: string) => { - download0(data, fileName, 'application/vnd.ms-excel') - }, - // 下载 Word 方法 - word: (data: Blob, fileName: string) => { - download0(data, fileName, 'application/msword') - }, - // 下载 Zip 方法 - zip: (data: Blob, fileName: string) => { - download0(data, fileName, 'application/zip') - }, - // 下载 Html 方法 - html: (data: Blob, fileName: string) => { - download0(data, fileName, 'text/html') - }, - // 下载 Markdown 方法 - markdown: (data: Blob, fileName: string) => { - download0(data, fileName, 'text/markdown') - } -} - -export default download diff --git a/yshop-drink-vue/src/utils/filt.ts b/yshop-drink-vue/src/utils/filt.ts deleted file mode 100644 index b1a7b2c..0000000 --- a/yshop-drink-vue/src/utils/filt.ts +++ /dev/null @@ -1,157 +0,0 @@ -export const openWindow = ( - url: string, - opt?: { - target?: '_self' | '_blank' | string - noopener?: boolean - noreferrer?: boolean - } -) => { - const { target = '__blank', noopener = true, noreferrer = true } = opt || {} - const feature: string[] = [] - - noopener && feature.push('noopener=yes') - noreferrer && feature.push('noreferrer=yes') - - window.open(url, target, feature.join(',')) -} - -/** - * @description: base64 to blob - */ -export const dataURLtoBlob = (base64Buf: string): Blob => { - const arr = base64Buf.split(',') - const typeItem = arr[0] - const mime = typeItem.match(/:(.*?);/)![1] - const bstr = window.atob(arr[1]) - let n = bstr.length - const u8arr = new Uint8Array(n) - while (n--) { - u8arr[n] = bstr.charCodeAt(n) - } - return new Blob([u8arr], { type: mime }) -} - -/** - * img url to base64 - * @param url - */ -export const urlToBase64 = (url: string, mineType?: string): Promise => { - return new Promise((resolve, reject) => { - let canvas = document.createElement('CANVAS') as Nullable - const ctx = canvas!.getContext('2d') - - const img = new Image() - img.crossOrigin = '' - img.onload = function () { - if (!canvas || !ctx) { - return reject() - } - canvas.height = img.height - canvas.width = img.width - ctx.drawImage(img, 0, 0) - const dataURL = canvas.toDataURL(mineType || 'image/png') - canvas = null - resolve(dataURL) - } - img.src = url - }) -} - -/** - * Download online pictures - * @param url - * @param filename - * @param mime - * @param bom - */ -export const downloadByOnlineUrl = ( - url: string, - filename: string, - mime?: string, - bom?: BlobPart -) => { - urlToBase64(url).then((base64) => { - downloadByBase64(base64, filename, mime, bom) - }) -} - -/** - * Download pictures based on base64 - * @param buf - * @param filename - * @param mime - * @param bom - */ -export const downloadByBase64 = (buf: string, filename: string, mime?: string, bom?: BlobPart) => { - const base64Buf = dataURLtoBlob(buf) - downloadByData(base64Buf, filename, mime, bom) -} - -/** - * Download according to the background interface file stream - * @param {*} data - * @param {*} filename - * @param {*} mime - * @param {*} bom - */ -export const downloadByData = (data: BlobPart, filename: string, mime?: string, bom?: BlobPart) => { - const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] - const blob = new Blob(blobData, { type: mime || 'application/octet-stream' }) - - const blobURL = window.URL.createObjectURL(blob) - const tempLink = document.createElement('a') - tempLink.style.display = 'none' - tempLink.href = blobURL - tempLink.setAttribute('download', filename) - if (typeof tempLink.download === 'undefined') { - tempLink.setAttribute('target', '_blank') - } - document.body.appendChild(tempLink) - tempLink.click() - document.body.removeChild(tempLink) - window.URL.revokeObjectURL(blobURL) -} - -/** - * Download file according to file address - * @param {*} sUrl - */ -export const downloadByUrl = ({ - url, - target = '_blank', - fileName -}: { - url: string - target?: '_self' | '_blank' - fileName?: string -}): boolean => { - const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 - const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 - - if (/(iP)/g.test(window.navigator.userAgent)) { - console.error('Your browser does not support download!') - return false - } - if (isChrome || isSafari) { - const link = document.createElement('a') - link.href = url - link.target = target - - if (link.download !== undefined) { - link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) - } - - if (document.createEvent) { - const e = document.createEvent('MouseEvents') - e.initEvent('click', true, true) - link.dispatchEvent(e) - return true - } - } - if (url.indexOf('?') === -1) { - url += '?download' - } - - openWindow(url, { target }) - return true -} diff --git a/yshop-drink-vue/src/utils/formCreate.ts b/yshop-drink-vue/src/utils/formCreate.ts deleted file mode 100644 index 6d7dbc7..0000000 --- a/yshop-drink-vue/src/utils/formCreate.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * 针对 https://github.com/xaboy/form-create-designer 封装的工具类 - */ - -// 编码表单 Conf -export const encodeConf = (designerRef: object) => { - // @ts-ignore - return JSON.stringify(designerRef.value.getOption()) -} - -// 编码表单 Fields -export const encodeFields = (designerRef: object) => { - // @ts-ignore - const rule = designerRef.value.getRule() - const fields: string[] = [] - rule.forEach((item) => { - fields.push(JSON.stringify(item)) - }) - return fields -} - -// 解码表单 Fields -export const decodeFields = (fields: string[]) => { - const rule: object[] = [] - fields.forEach((item) => { - rule.push(JSON.parse(item)) - }) - return rule -} - -// 设置表单的 Conf 和 Fields -export const setConfAndFields = (designerRef: object, conf: string, fields: string) => { - // @ts-ignore - designerRef.value.setOption(JSON.parse(conf)) - // @ts-ignore - designerRef.value.setRule(decodeFields(fields)) -} - -// 设置表单的 Conf 和 Fields -export const setConfAndFields2 = ( - detailPreview: object, - conf: string, - fields: string, - value?: object -) => { - // @ts-ignore - detailPreview.value.option = JSON.parse(conf) - // @ts-ignore - detailPreview.value.rule = decodeFields(fields) - if (value) { - // @ts-ignore - detailPreview.value.value = value - } -} diff --git a/yshop-drink-vue/src/utils/formRules.ts b/yshop-drink-vue/src/utils/formRules.ts deleted file mode 100644 index 2989867..0000000 --- a/yshop-drink-vue/src/utils/formRules.ts +++ /dev/null @@ -1,7 +0,0 @@ -const { t } = useI18n() - -// 必填项 -export const required = { - required: true, - message: t('common.required') -} diff --git a/yshop-drink-vue/src/utils/formatTime.ts b/yshop-drink-vue/src/utils/formatTime.ts deleted file mode 100644 index ef92fdb..0000000 --- a/yshop-drink-vue/src/utils/formatTime.ts +++ /dev/null @@ -1,208 +0,0 @@ -import dayjs from 'dayjs' - -/** - * 时间日期转换 - * @param date 当前时间,new Date() 格式 - * @param format 需要转换的时间格式字符串 - * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd` - * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ" - * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW" - * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ" - * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ" - * @returns 返回拼接后的时间字符串 - */ -export function formatDate(date: Date, format?: string): string { - // 日期不存在,则返回空 - if (!date) { - return '' - } - // 日期存在,则进行格式化 - if (format === undefined) { - format = 'YYYY-MM-DD HH:mm:ss' - } - return dayjs(date).format(format) -} - -/** - * 获取当前日期是第几周 - * @param dateTime 当前传入的日期值 - * @returns 返回第几周数字值 - */ -export function getWeek(dateTime: Date): number { - const temptTime = new Date(dateTime.getTime()) - // 周几 - const weekday = temptTime.getDay() || 7 - // 周1+5天=周六 - temptTime.setDate(temptTime.getDate() - weekday + 1 + 5) - let firstDay = new Date(temptTime.getFullYear(), 0, 1) - const dayOfWeek = firstDay.getDay() - let spendDay = 1 - if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1 - firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay) - const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000) - return Math.ceil(d / 7) -} - -/** - * 将时间转换为 `几秒前`、`几分钟前`、`几小时前`、`几天前` - * @param param 当前时间,new Date() 格式或者字符串时间格式 - * @param format 需要转换的时间格式字符串 - * @description param 10秒: 10 * 1000 - * @description param 1分: 60 * 1000 - * @description param 1小时: 60 * 60 * 1000 - * @description param 24小时:60 * 60 * 24 * 1000 - * @description param 3天: 60 * 60* 24 * 1000 * 3 - * @returns 返回拼接后的时间字符串 - */ -export function formatPast(param: string | Date, format = 'YYYY-mm-dd HH:MM:SS'): string { - // 传入格式处理、存储转换值 - let t: any, s: number - // 获取js 时间戳 - let time: number = new Date().getTime() - // 是否是对象 - typeof param === 'string' || 'object' ? (t = new Date(param).getTime()) : (t = param) - // 当前时间戳 - 传入时间戳 - time = Number.parseInt(`${time - t}`) - if (time < 10000) { - // 10秒内 - return '刚刚' - } else if (time < 60000 && time >= 10000) { - // 超过10秒少于1分钟内 - s = Math.floor(time / 1000) - return `${s}秒前` - } else if (time < 3600000 && time >= 60000) { - // 超过1分钟少于1小时 - s = Math.floor(time / 60000) - return `${s}分钟前` - } else if (time < 86400000 && time >= 3600000) { - // 超过1小时少于24小时 - s = Math.floor(time / 3600000) - return `${s}小时前` - } else if (time < 259200000 && time >= 86400000) { - // 超过1天少于3天内 - s = Math.floor(time / 86400000) - return `${s}天前` - } else { - // 超过3天 - const date = typeof param === 'string' || 'object' ? new Date(param) : param - return formatDate(date, format) - } -} - -/** - * 时间问候语 - * @param param 当前时间,new Date() 格式 - * @description param 调用 `formatAxis(new Date())` 输出 `上午好` - * @returns 返回拼接后的时间字符串 - */ -export function formatAxis(param: Date): string { - const hour: number = new Date(param).getHours() - if (hour < 6) return '凌晨好' - else if (hour < 9) return '早上好' - else if (hour < 12) return '上午好' - else if (hour < 14) return '中午好' - else if (hour < 17) return '下午好' - else if (hour < 19) return '傍晚好' - else if (hour < 22) return '晚上好' - else return '夜里好' -} - -/** - * 将毫秒,转换成时间字符串。例如说,xx 分钟 - * - * @param ms 毫秒 - * @returns {string} 字符串 - */ -export function formatPast2(ms) { - const day = Math.floor(ms / (24 * 60 * 60 * 1000)) - const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24) - const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60) - const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60) - if (day > 0) { - return day + '天' + hour + '小时' + minute + '分钟' - } - if (hour > 0) { - return hour + '小时' + minute + '分钟' - } - if (minute > 0) { - return minute + '分钟' - } - if (second > 0) { - return second + '秒' - } else { - return 0 + '秒' - } -} - -/** - * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD HH:mm:ss 格式 - * - * @param row 行数据 - * @param column 字段 - * @param cellValue 字段值 - */ -// @ts-ignore -export const dateFormatter = (row, column, cellValue) => { - if (!cellValue) { - return - } - return formatDate(cellValue) -} - -export const dateFormatter2 = (row, column, cellValue) => { - if (!cellValue) { - return - } - return formatDate(cellValue,'HH:mm:ss') -} - -/** - * 设置起始日期,时间为00:00:00 - * @param param 传入日期 - * @returns 带时间00:00:00的日期 - */ -export function beginOfDay(param: Date) { - return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 0, 0, 0, 0) -} - -/** - * 设置结束日期,时间为23:59:59 - * @param param 传入日期 - * @returns 带时间23:59:59的日期 - */ -export function endOfDay(param: Date) { - return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 23, 59, 59, 999) -} - -/** - * 计算两个日期间隔天数 - * @param param1 日期1 - * @param param2 日期2 - */ -export function betweenDay(param1: Date, param2: Date) { - param1 = convertDate(param1) - param2 = convertDate(param2) - // 计算差值 - return Math.floor((param2.getTime() - param1.getTime()) / (24 * 3600 * 1000)) -} - -/** - * 日期计算 - * @param param1 日期 - * @param param2 添加的时间 - */ -export function addTime(param1: Date, param2: number) { - param1 = convertDate(param1) - return new Date(param1.getTime() + param2) -} - -/** - * 日期转换 - * @param param 日期 - */ -export function convertDate(param: Date | string) { - if (typeof param === 'string') { - return new Date(param) - } - return param -} diff --git a/yshop-drink-vue/src/utils/index.ts b/yshop-drink-vue/src/utils/index.ts deleted file mode 100644 index e016c1e..0000000 --- a/yshop-drink-vue/src/utils/index.ts +++ /dev/null @@ -1,157 +0,0 @@ -/** - * - * @param component 需要注册的组件 - * @param alias 组件别名 - * @returns any - */ -export const withInstall = (component: T, alias?: string) => { - const comp = component as any - comp.install = (app: any) => { - app.component(comp.name || comp.displayName, component) - if (alias) { - app.config.globalProperties[alias] = component - } - } - return component as T & Plugin -} - -/** - * @param str 需要转下划线的驼峰字符串 - * @returns 字符串下划线 - */ -export const humpToUnderline = (str: string): string => { - return str.replace(/([A-Z])/g, '-$1').toLowerCase() -} - -/** - * @param str 需要转驼峰的下划线字符串 - * @returns 字符串驼峰 - */ -export const underlineToHump = (str: string): string => { - if (!str) return '' - return str.replace(/\-(\w)/g, (_, letter: string) => { - return letter.toUpperCase() - }) -} - -export const setCssVar = (prop: string, val: any, dom = document.documentElement) => { - dom.style.setProperty(prop, val) -} - -/** - * 查找数组对象的某个下标 - * @param {Array} ary 查找的数组 - * @param {Functon} fn 判断的方法 - */ -// eslint-disable-next-line -export const findIndex = (ary: Array, fn: Fn): number => { - if (ary.findIndex) { - return ary.findIndex(fn) - } - let index = -1 - ary.some((item: T, i: number, ary: Array) => { - const ret: T = fn(item, i, ary) - if (ret) { - index = i - return ret - } - }) - return index -} - -export const trim = (str: string) => { - return str.replace(/(^\s*)|(\s*$)/g, '') -} - -/** - * @param {Date | number | string} time 需要转换的时间 - * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss - */ -export const formatTime = (time: Date | number | string, fmt: string) => { - if (!time) return '' - else { - const date = new Date(time) - const o = { - 'M+': date.getMonth() + 1, - 'd+': date.getDate(), - 'H+': date.getHours(), - 'm+': date.getMinutes(), - 's+': date.getSeconds(), - 'q+': Math.floor((date.getMonth() + 3) / 3), - S: date.getMilliseconds() - } - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) - } - for (const k in o) { - if (new RegExp('(' + k + ')').test(fmt)) { - fmt = fmt.replace( - RegExp.$1, - RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) - ) - } - } - return fmt - } -} - -/** - * 生成随机字符串 - */ -export const toAnyString = () => { - const str: string = 'xxxxx-xxxxx-4xxxx-yxxxx-xxxxx'.replace(/[xy]/g, (c: string) => { - const r: number = (Math.random() * 16) | 0 - const v: number = c === 'x' ? r : (r & 0x3) | 0x8 - return v.toString() - }) - return str -} - -export const generateUUID = () => { - if (typeof crypto === 'object') { - if (typeof crypto.randomUUID === 'function') { - return crypto.randomUUID() - } - if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') { - const callback = (c: any) => { - const num = Number(c) - return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString( - 16 - ) - } - return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, callback) - } - } - let timestamp = new Date().getTime() - let performanceNow = - (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0 - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - let random = Math.random() * 16 - if (timestamp > 0) { - random = (timestamp + random) % 16 | 0 - timestamp = Math.floor(timestamp / 16) - } else { - random = (performanceNow + random) % 16 | 0 - performanceNow = Math.floor(performanceNow / 16) - } - return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16) - }) -} - -/** - * element plus 的文件大小 Formatter 实现 - * - * @param row 行数据 - * @param column 字段 - * @param cellValue 字段值 - */ -// @ts-ignore -export const fileSizeFormatter = (row, column, cellValue) => { - const fileSize = cellValue - const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] - const srcSize = parseFloat(fileSize) - const index = Math.floor(Math.log(srcSize) / Math.log(1024)) - const size = srcSize / Math.pow(1024, index) - const sizeStr = size.toFixed(2) //保留的小数位数 - return sizeStr + ' ' + unitArr[index] -} diff --git a/yshop-drink-vue/src/utils/is.ts b/yshop-drink-vue/src/utils/is.ts deleted file mode 100644 index 3752985..0000000 --- a/yshop-drink-vue/src/utils/is.ts +++ /dev/null @@ -1,105 +0,0 @@ -// copy to vben-admin - -const toString = Object.prototype.toString - -export const is = (val: unknown, type: string) => { - return toString.call(val) === `[object ${type}]` -} - -export const isDef = (val?: T): val is T => { - return typeof val !== 'undefined' -} - -export const isUnDef = (val?: T): val is T => { - return !isDef(val) -} - -export const isObject = (val: any): val is Record => { - return val !== null && is(val, 'Object') -} - -export const isEmpty = (val: T): val is T => { - if (isArray(val) || isString(val)) { - return val.length === 0 - } - - if (val instanceof Map || val instanceof Set) { - return val.size === 0 - } - - if (isObject(val)) { - return Object.keys(val).length === 0 - } - - return false -} - -export const isDate = (val: unknown): val is Date => { - return is(val, 'Date') -} - -export const isNull = (val: unknown): val is null => { - return val === null -} - -export const isNullAndUnDef = (val: unknown): val is null | undefined => { - return isUnDef(val) && isNull(val) -} - -export const isNullOrUnDef = (val: unknown): val is null | undefined => { - return isUnDef(val) || isNull(val) -} - -export const isNumber = (val: unknown): val is number => { - return is(val, 'Number') -} - -export const isPromise = (val: unknown): val is Promise => { - return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch) -} - -export const isString = (val: unknown): val is string => { - return is(val, 'String') -} - -export const isFunction = (val: unknown): val is Function => { - return typeof val === 'function' -} - -export const isBoolean = (val: unknown): val is boolean => { - return is(val, 'Boolean') -} - -export const isRegExp = (val: unknown): val is RegExp => { - return is(val, 'RegExp') -} - -export const isArray = (val: any): val is Array => { - return val && Array.isArray(val) -} - -export const isWindow = (val: any): val is Window => { - return typeof window !== 'undefined' && is(val, 'Window') -} - -export const isElement = (val: unknown): val is Element => { - return isObject(val) && !!val.tagName -} - -export const isMap = (val: unknown): val is Map => { - return is(val, 'Map') -} - -export const isServer = typeof window === 'undefined' - -export const isClient = !isServer - -export const isUrl = (path: string): boolean => { - const reg = - /(((^https?:(?:\/\/)?)(?:[-:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&%@.\w_]*)#?(?:[\w]*))?)$/ - return reg.test(path) -} - -export const isDark = (): boolean => { - return window.matchMedia('(prefers-color-scheme: dark)').matches -} diff --git a/yshop-drink-vue/src/utils/jsencrypt.ts b/yshop-drink-vue/src/utils/jsencrypt.ts deleted file mode 100644 index 374d5f6..0000000 --- a/yshop-drink-vue/src/utils/jsencrypt.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { JSEncrypt } from 'jsencrypt' - -// 密钥对生成 http://web.chacuo.net/netrsakeypair - -const publicKey = - 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + - 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' - -const privateKey = - 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + - '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + - 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' + - 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' + - 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' + - 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' + - 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' + - 'UP8iWi1Qw0Y=' - -// 加密 -export const encrypt = (txt: string) => { - const encryptor = new JSEncrypt() - encryptor.setPublicKey(publicKey) // 设置公钥 - return encryptor.encrypt(txt) // 对数据进行加密 -} - -// 解密 -export const decrypt = (txt: string) => { - const encryptor = new JSEncrypt() - encryptor.setPrivateKey(privateKey) // 设置私钥 - return encryptor.decrypt(txt) // 对数据进行解密 -} diff --git a/yshop-drink-vue/src/utils/permission.ts b/yshop-drink-vue/src/utils/permission.ts deleted file mode 100644 index a63ee62..0000000 --- a/yshop-drink-vue/src/utils/permission.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' - -const { t } = useI18n() // 国际化 - -/** - * 字符权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkPermi(value: string[]) { - if (value && value instanceof Array && value.length > 0) { - const { wsCache } = useCache() - const permissionDatas = value - const all_permission = '*:*:*' - const permissions = wsCache.get(CACHE_KEY.USER).permissions - const hasPermission = permissions.some((permission) => { - return all_permission === permission || permissionDatas.includes(permission) - }) - return !!hasPermission - } else { - console.error(t('permission.hasPermission')) - return false - } -} - -/** - * 角色权限校验 - * @param {string[]} value 校验值 - * @returns {Boolean} - */ -export function checkRole(value: string[]) { - if (value && value instanceof Array && value.length > 0) { - const { wsCache } = useCache() - const permissionRoles = value - const super_admin = 'admin' - const roles = wsCache.get(CACHE_KEY.USER).roles - const hasRole = roles.some((role) => { - return super_admin === role || permissionRoles.includes(role) - }) - return !!hasRole - } else { - console.error(t('permission.hasRole')) - return false - } -} diff --git a/yshop-drink-vue/src/utils/propTypes.ts b/yshop-drink-vue/src/utils/propTypes.ts deleted file mode 100644 index fb8f84e..0000000 --- a/yshop-drink-vue/src/utils/propTypes.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { createTypes, VueTypesInterface, VueTypeValidableDef } from 'vue-types' -import { CSSProperties } from 'vue' - -// 自定义扩展vue-types -type PropTypes = VueTypesInterface & { - readonly style: VueTypeValidableDef -} - -const propTypes = createTypes({ - func: undefined, - bool: undefined, - string: undefined, - number: undefined, - object: undefined, - integer: undefined -}) as PropTypes - -// 需要自定义扩展的类型 -// see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method -// propTypes.extend([ -// { -// name: 'style', -// getter: true, -// type: [String, Object], -// default: undefined -// } -// ]) -export { propTypes } diff --git a/yshop-drink-vue/src/utils/routerHelper.ts b/yshop-drink-vue/src/utils/routerHelper.ts deleted file mode 100644 index a682565..0000000 --- a/yshop-drink-vue/src/utils/routerHelper.ts +++ /dev/null @@ -1,238 +0,0 @@ -import type { RouteLocationNormalized, Router, RouteRecordNormalized } from 'vue-router' -import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' -import { isUrl } from '@/utils/is' -import { cloneDeep, omit } from 'lodash-es' - -const modules = import.meta.glob('../views/**/*.{vue,tsx}') -/** - * 注册一个异步组件 - * @param componentPath 例:/bpm/oa/leave/detail - */ -export const registerComponent = (componentPath: string) => { - for (const item in modules) { - if (item.includes(componentPath)) { - // 使用异步组件的方式来动态加载组件 - // @ts-ignore - return defineAsyncComponent(modules[item]) - } - } -} -/* Layout */ -export const Layout = () => import('@/layout/Layout.vue') - -export const getParentLayout = () => { - return () => - new Promise((resolve) => { - resolve({ - name: 'ParentLayout' - }) - }) -} - -// 按照路由中meta下的rank等级升序来排序路由 -export const ascending = (arr: any[]) => { - arr.forEach((v) => { - if (v?.meta?.rank === null) v.meta.rank = undefined - if (v?.meta?.rank === 0) { - if (v.name !== 'home' && v.path !== '/') { - console.warn('rank only the home page can be 0') - } - } - }) - return arr.sort((a: { meta: { rank: number } }, b: { meta: { rank: number } }) => { - return a?.meta?.rank - b?.meta?.rank - }) -} - -export const getRawRoute = (route: RouteLocationNormalized): RouteLocationNormalized => { - if (!route) return route - const { matched, ...opt } = route - return { - ...opt, - matched: (matched - ? matched.map((item) => ({ - meta: item.meta, - name: item.name, - path: item.path - })) - : undefined) as RouteRecordNormalized[] - } -} - -// 后端控制路由生成 -export const generateRoute = (routes: AppCustomRouteRecordRaw[]): AppRouteRecordRaw[] => { - const res: AppRouteRecordRaw[] = [] - const modulesRoutesKeys = Object.keys(modules) - for (const route of routes) { - const meta = { - title: route.name, - icon: route.icon, - hidden: !route.visible, - noCache: !route.keepAlive, - alwaysShow: - route.children && - route.children.length === 1 && - (route.alwaysShow !== undefined ? route.alwaysShow : true) - } - // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive - let data: AppRouteRecordRaw = { - path: route.path, - name: - route.componentName && route.componentName.length > 0 - ? route.componentName - : toCamelCase(route.path, true), - redirect: route.redirect, - meta: meta - } - //处理顶级非目录路由 - if (!route.children && route.parentId == 0 && route.component) { - data.component = Layout - data.meta = {} - data.name = toCamelCase(route.path, true) + 'Parent' - data.redirect = '' - meta.alwaysShow = true - const childrenData: AppRouteRecordRaw = { - path: '', - name: toCamelCase(route.path, true), - redirect: route.redirect, - meta: meta - } - const index = route?.component - ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component)) - : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path)) - childrenData.component = modules[modulesRoutesKeys[index]] - data.children = [childrenData] - } else { - // 目录 - if (route.children) { - data.component = Layout - data.redirect = getRedirect(route.path, route.children) - // 外链 - } else if (isUrl(route.path)) { - data = { - path: '/external-link', - component: Layout, - meta: { - name: route.name - }, - children: [data] - } as AppRouteRecordRaw - // 菜单 - } else { - // 对后端传component组件路径和不传做兼容(如果后端传component组件路径,那么path可以随便写,如果不传,component组件路径会根path保持一致) - const index = route?.component - ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component)) - : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path)) - data.component = modules[modulesRoutesKeys[index]] - } - if (route.children) { - data.children = generateRoute(route.children) - } - } - res.push(data as AppRouteRecordRaw) - } - return res -} -export const getRedirect = (parentPath: string, children: AppCustomRouteRecordRaw[]) => { - if (!children || children.length == 0) { - return parentPath - } - const path = generateRoutePath(parentPath, children[0].path) - // 递归子节点 - if (children[0].children) return getRedirect(path, children[0].children) -} -const generateRoutePath = (parentPath: string, path: string) => { - if (parentPath.endsWith('/')) { - parentPath = parentPath.slice(0, -1) // 移除默认的 / - } - if (!path.startsWith('/')) { - path = '/' + path - } - return parentPath + path -} -export const pathResolve = (parentPath: string, path: string) => { - if (isUrl(path)) return path - const childPath = path.startsWith('/') || !path ? path : `/${path}` - return `${parentPath}${childPath}`.replace(/\/\//g, '/') -} - -// 路由降级 -export const flatMultiLevelRoutes = (routes: AppRouteRecordRaw[]) => { - const modules: AppRouteRecordRaw[] = cloneDeep(routes) - for (let index = 0; index < modules.length; index++) { - const route = modules[index] - if (!isMultipleRoute(route)) { - continue - } - promoteRouteLevel(route) - } - return modules -} - -// 层级是否大于2 -const isMultipleRoute = (route: AppRouteRecordRaw) => { - if (!route || !Reflect.has(route, 'children') || !route.children?.length) { - return false - } - - const children = route.children - - let flag = false - for (let index = 0; index < children.length; index++) { - const child = children[index] - if (child.children?.length) { - flag = true - break - } - } - return flag -} - -// 生成二级路由 -const promoteRouteLevel = (route: AppRouteRecordRaw) => { - let router: Router | null = createRouter({ - routes: [route as RouteRecordRaw], - history: createWebHashHistory() - }) - - const routes = router.getRoutes() - addToChildren(routes, route.children || [], route) - router = null - - route.children = route.children?.map((item) => omit(item, 'children')) -} - -// 添加所有子菜单 -const addToChildren = ( - routes: RouteRecordNormalized[], - children: AppRouteRecordRaw[], - routeModule: AppRouteRecordRaw -) => { - for (let index = 0; index < children.length; index++) { - const child = children[index] - const route = routes.find((item) => item.name === child.name) - if (!route) { - continue - } - routeModule.children = routeModule.children || [] - if (!routeModule.children.find((item) => item.name === route.name)) { - routeModule.children?.push(route as unknown as AppRouteRecordRaw) - } - if (child.children?.length) { - addToChildren(routes, child.children, routeModule) - } - } -} -const toCamelCase = (str: string, upperCaseFirst: boolean) => { - str = (str || '') - .replace(/-(.)/g, function (group1: string) { - return group1.toUpperCase() - }) - .replaceAll('-', '') - - if (upperCaseFirst && str) { - str = str.charAt(0).toUpperCase() + str.slice(1) - } - - return str -} diff --git a/yshop-drink-vue/src/utils/tree.ts b/yshop-drink-vue/src/utils/tree.ts deleted file mode 100644 index 6080332..0000000 --- a/yshop-drink-vue/src/utils/tree.ts +++ /dev/null @@ -1,362 +0,0 @@ -interface TreeHelperConfig { - id: string - children: string - pid: string -} -const DEFAULT_CONFIG: TreeHelperConfig = { - id: 'id', - children: 'children', - pid: 'pid' -} -export const defaultProps = { - children: 'children', - label: 'name', - value: 'id' -} - -const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) - -// tree from list -export const listToTree = (list: any[], config: Partial = {}): T[] => { - const conf = getConfig(config) as TreeHelperConfig - const nodeMap = new Map() - const result: T[] = [] - const { id, children, pid } = conf - - for (const node of list) { - node[children] = node[children] || [] - nodeMap.set(node[id], node) - } - for (const node of list) { - const parent = nodeMap.get(node[pid]) - ;(parent ? parent.children : result).push(node) - } - return result -} - -export const treeToList = (tree: any, config: Partial = {}): T => { - config = getConfig(config) - const { children } = config - const result: any = [...tree] - for (let i = 0; i < result.length; i++) { - if (!result[i][children!]) continue - result.splice(i + 1, 0, ...result[i][children!]) - } - return result -} - -export const findNode = ( - tree: any, - func: Fn, - config: Partial = {} -): T | null => { - config = getConfig(config) - const { children } = config - const list = [...tree] - for (const node of list) { - if (func(node)) return node - node[children!] && list.push(...node[children!]) - } - return null -} - -export const findNodeAll = ( - tree: any, - func: Fn, - config: Partial = {} -): T[] => { - config = getConfig(config) - const { children } = config - const list = [...tree] - const result: T[] = [] - for (const node of list) { - func(node) && result.push(node) - node[children!] && list.push(...node[children!]) - } - return result -} - -export const findPath = ( - tree: any, - func: Fn, - config: Partial = {} -): T | T[] | null => { - config = getConfig(config) - const path: T[] = [] - const list = [...tree] - const visitedSet = new Set() - const { children } = config - while (list.length) { - const node = list[0] - if (visitedSet.has(node)) { - path.pop() - list.shift() - } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) - if (func(node)) { - return path - } - } - } - return null -} - -export const findPathAll = (tree: any, func: Fn, config: Partial = {}) => { - config = getConfig(config) - const path: any[] = [] - const list = [...tree] - const result: any[] = [] - const visitedSet = new Set(), - { children } = config - while (list.length) { - const node = list[0] - if (visitedSet.has(node)) { - path.pop() - list.shift() - } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) - func(node) && result.push([...path]) - } - } - return result -} - -export const filter = ( - tree: T[], - func: (n: T) => boolean, - config: Partial = {} -): T[] => { - config = getConfig(config) - const children = config.children as string - function listFilter(list: T[]) { - return list - .map((node: any) => ({ ...node })) - .filter((node) => { - node[children] = node[children] && listFilter(node[children]) - return func(node) || (node[children] && node[children].length) - }) - } - return listFilter(tree) -} - -export const forEach = ( - tree: T[], - func: (n: T) => any, - config: Partial = {} -): void => { - config = getConfig(config) - const list: any[] = [...tree] - const { children } = config - for (let i = 0; i < list.length; i++) { - // func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 - if (func(list[i])) { - return - } - children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) - } -} - -/** - * @description: Extract tree specified structure - */ -export const treeMap = ( - treeData: T[], - opt: { children?: string; conversion: Fn } -): T[] => { - return treeData.map((item) => treeMapEach(item, opt)) -} - -/** - * @description: Extract tree specified structure - */ -export const treeMapEach = ( - data: any, - { children = 'children', conversion }: { children?: string; conversion: Fn } -) => { - const haveChildren = Array.isArray(data[children]) && data[children].length > 0 - const conversionData = conversion(data) || {} - if (haveChildren) { - return { - ...conversionData, - [children]: data[children].map((i: number) => - treeMapEach(i, { - children, - conversion - }) - ) - } - } else { - return { - ...conversionData - } - } -} - -/** - * 递归遍历树结构 - * @param treeDatas 树 - * @param callBack 回调 - * @param parentNode 父节点 - */ -export const eachTree = (treeDatas: any[], callBack: Fn, parentNode = {}) => { - treeDatas.forEach((element) => { - const newNode = callBack(element, parentNode) || element - if (element.children) { - eachTree(element.children, callBack, newNode) - } - }) -} - -/** - * 构造树型结构数据 - * @param {*} data 数据源 - * @param {*} id id字段 默认 'id' - * @param {*} parentId 父节点字段 默认 'parentId' - * @param {*} children 孩子节点字段 默认 'children' - */ -export const handleTree3 = (data: any[], id?: string, parentId?: string, children?: string) => { - if (!Array.isArray(data)) { - console.warn('data must be an array') - return [] - } - const config = { - id: id || 'id', - parentId: parentId || 'parentId', - childrenList: children || 'children' - } - - const childrenListMap = {} - const nodeIds = {} - const tree: any[] = [] - - for (const d of data) { - const parentId = d[config.parentId] - // if (parentId == 0) { - // d.disabled = true - // } - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = [] - } - nodeIds[d[config.id]] = d - childrenListMap[parentId].push(d) - } - - for (const d of data) { - const parentId = d[config.parentId] - if (nodeIds[parentId] == null) { - tree.push(d) - } - } - - for (const t of tree) { - adaptToChildrenList(t) - } - - function adaptToChildrenList(o) { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]] - } - if (o[config.childrenList]) { - for (const c of o[config.childrenList]) { - adaptToChildrenList(c) - } - } - } - return tree -} - - -/** - * 构造树型结构数据 - * @param {*} data 数据源 - * @param {*} id id字段 默认 'id' - * @param {*} parentId 父节点字段 默认 'parentId' - * @param {*} children 孩子节点字段 默认 'children' - */ -export const handleTree = (data: any[], id?: string, parentId?: string, children?: string) => { - if (!Array.isArray(data)) { - console.warn('data must be an array') - return [] - } - const config = { - id: id || 'id', - parentId: parentId || 'parentId', - childrenList: children || 'children' - } - - const childrenListMap = {} - const nodeIds = {} - const tree: any[] = [] - - for (const d of data) { - const parentId = d[config.parentId] - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = [] - } - nodeIds[d[config.id]] = d - childrenListMap[parentId].push(d) - } - - for (const d of data) { - const parentId = d[config.parentId] - if (nodeIds[parentId] == null) { - tree.push(d) - } - } - - for (const t of tree) { - adaptToChildrenList(t) - } - - function adaptToChildrenList(o) { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]] - } - if (o[config.childrenList]) { - for (const c of o[config.childrenList]) { - adaptToChildrenList(c) - } - } - } - return tree -} - -/** - * 构造树型结构数据 - * @param {*} data 数据源 - * @param {*} id id字段 默认 'id' - * @param {*} parentId 父节点字段 默认 'parentId' - * @param {*} children 孩子节点字段 默认 'children' - * @param {*} rootId 根Id 默认 0 - */ -// @ts-ignore -export const handleTree2 = (data, id, parentId, children, rootId) => { - id = id || 'id' - parentId = parentId || 'parentId' - // children = children || 'children' - rootId = - rootId || - Math.min( - ...data.map((item) => { - return item[parentId] - }) - ) || - 0 - // 对源数据深度克隆 - const cloneData = JSON.parse(JSON.stringify(data)) - // 循环所有项 - const treeData = cloneData.filter((father) => { - const branchArr = cloneData.filter((child) => { - // 返回每一项的子级数组 - return father[id] === child[parentId] - }) - branchArr.length > 0 ? (father.children = branchArr) : '' - // 返回第一层 - return father[parentId] === rootId - }) - return treeData !== '' ? treeData : data -} diff --git a/yshop-drink-vue/src/utils/tsxHelper.ts b/yshop-drink-vue/src/utils/tsxHelper.ts deleted file mode 100644 index 6087fa3..0000000 --- a/yshop-drink-vue/src/utils/tsxHelper.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Slots } from 'vue' -import { isFunction } from '@/utils/is' - -export const getSlot = (slots: Slots, slot = 'default', data?: Recordable) => { - // Reflect.has 判断一个对象是否存在某个属性 - if (!slots || !Reflect.has(slots, slot)) { - return null - } - if (!isFunction(slots[slot])) { - console.error(`${slot} is not a function!`) - return null - } - const slotFn = slots[slot] - if (!slotFn) return null - return slotFn(data) -} diff --git a/yshop-drink-vue/src/views/Error/403.vue b/yshop-drink-vue/src/views/Error/403.vue deleted file mode 100644 index cb10646..0000000 --- a/yshop-drink-vue/src/views/Error/403.vue +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Error/404.vue b/yshop-drink-vue/src/views/Error/404.vue deleted file mode 100644 index c55d332..0000000 --- a/yshop-drink-vue/src/views/Error/404.vue +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Error/500.vue b/yshop-drink-vue/src/views/Error/500.vue deleted file mode 100644 index 6cfe47b..0000000 --- a/yshop-drink-vue/src/views/Error/500.vue +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Home/Index.vue b/yshop-drink-vue/src/views/Home/Index.vue deleted file mode 100644 index 04d16bf..0000000 --- a/yshop-drink-vue/src/views/Home/Index.vue +++ /dev/null @@ -1,318 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Home/Index2.vue b/yshop-drink-vue/src/views/Home/Index2.vue deleted file mode 100644 index 457aced..0000000 --- a/yshop-drink-vue/src/views/Home/Index2.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Home/PanelGroupT.vue b/yshop-drink-vue/src/views/Home/PanelGroupT.vue deleted file mode 100644 index 71ca3d1..0000000 --- a/yshop-drink-vue/src/views/Home/PanelGroupT.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Home/echarts-data.ts b/yshop-drink-vue/src/views/Home/echarts-data.ts deleted file mode 100644 index 56093f4..0000000 --- a/yshop-drink-vue/src/views/Home/echarts-data.ts +++ /dev/null @@ -1,308 +0,0 @@ -import { EChartsOption } from 'echarts' - -const { t } = useI18n() - -export const lineOptions: EChartsOption = { - title: { - text: t('analysis.monthlySales'), - left: 'center' - }, - xAxis: { - data: [ - t('analysis.january'), - t('analysis.february'), - t('analysis.march'), - t('analysis.april'), - t('analysis.may'), - t('analysis.june'), - t('analysis.july'), - t('analysis.august'), - t('analysis.september'), - t('analysis.october'), - t('analysis.november'), - t('analysis.december') - ], - boundaryGap: false, - axisTick: { - show: false - } - }, - grid: { - left: 20, - right: 20, - bottom: 20, - top: 80, - containLabel: true - }, - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'cross' - }, - padding: [5, 10] - }, - yAxis: { - axisTick: { - show: false - } - }, - legend: { - data: [t('analysis.estimate'), t('analysis.actual')], - top: 50 - }, - series: [ - { - name: t('analysis.estimate'), - smooth: true, - type: 'line', - data: [100, 120, 161, 134, 105, 160, 165, 114, 163, 185, 118, 123], - animationDuration: 2800, - animationEasing: 'cubicInOut' - }, - { - name: t('analysis.actual'), - smooth: true, - type: 'line', - itemStyle: {}, - data: [120, 82, 91, 154, 162, 140, 145, 250, 134, 56, 99, 123], - animationDuration: 2800, - animationEasing: 'quadraticOut' - } - ] -} - -export const pieOptions: EChartsOption = { - title: { - text: t('analysis.userAccessSource'), - left: 'center' - }, - tooltip: { - trigger: 'item', - formatter: '{a}
    {b} : {c} ({d}%)' - }, - legend: { - orient: 'vertical', - left: 'left', - data: [ - t('analysis.directAccess'), - t('analysis.mailMarketing'), - t('analysis.allianceAdvertising'), - t('analysis.videoAdvertising'), - t('analysis.searchEngines') - ] - }, - series: [ - { - name: t('analysis.userAccessSource'), - type: 'pie', - radius: '55%', - center: ['50%', '60%'], - data: [ - { value: 335, name: t('analysis.directAccess') }, - { value: 310, name: t('analysis.mailMarketing') }, - { value: 234, name: t('analysis.allianceAdvertising') }, - { value: 135, name: t('analysis.videoAdvertising') }, - { value: 1548, name: t('analysis.searchEngines') } - ] - } - ] -} - -export const barOptions: EChartsOption = { - title: { - text: t('analysis.weeklyUserActivity'), - left: 'center' - }, - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - } - }, - grid: { - left: 50, - right: 20, - bottom: 20 - }, - xAxis: { - type: 'category', - data: [ - t('analysis.monday'), - t('analysis.tuesday'), - t('analysis.wednesday'), - t('analysis.thursday'), - t('analysis.friday'), - t('analysis.saturday'), - t('analysis.sunday') - ], - axisTick: { - alignWithLabel: true - } - }, - yAxis: { - type: 'value' - }, - series: [ - { - name: t('analysis.activeQuantity'), - data: [13253, 34235, 26321, 12340, 24643, 1322, 1324], - type: 'bar' - } - ] -} - -export const radarOption: EChartsOption = { - legend: { - data: [t('workplace.personal'), t('workplace.team')] - }, - radar: { - // shape: 'circle', - indicator: [ - { name: t('workplace.quote'), max: 65 }, - { name: t('workplace.contribution'), max: 160 }, - { name: t('workplace.hot'), max: 300 }, - { name: t('workplace.yield'), max: 130 }, - { name: t('workplace.follow'), max: 100 } - ] - }, - series: [ - { - name: `xxx${t('workplace.index')}`, - type: 'radar', - data: [ - { - value: [42, 30, 20, 35, 80], - name: t('workplace.personal') - }, - { - value: [50, 140, 290, 100, 90], - name: t('workplace.team') - } - ] - } - ] -} - -export const wordOptions = { - series: [ - { - type: 'wordCloud', - gridSize: 2, - sizeRange: [12, 50], - rotationRange: [-90, 90], - shape: 'pentagon', - width: 600, - height: 400, - drawOutOfBound: true, - textStyle: { - color: function () { - return ( - 'rgb(' + - [ - Math.round(Math.random() * 160), - Math.round(Math.random() * 160), - Math.round(Math.random() * 160) - ].join(',') + - ')' - ) - } - }, - emphasis: { - textStyle: { - shadowBlur: 10, - shadowColor: '#333' - } - }, - data: [ - { - name: 'Sam S Club', - value: 10000, - textStyle: { - color: 'black' - }, - emphasis: { - textStyle: { - color: 'red' - } - } - }, - { - name: 'Macys', - value: 6181 - }, - { - name: 'Amy Schumer', - value: 4386 - }, - { - name: 'Jurassic World', - value: 4055 - }, - { - name: 'Charter Communications', - value: 2467 - }, - { - name: 'Chick Fil A', - value: 2244 - }, - { - name: 'Planet Fitness', - value: 1898 - }, - { - name: 'Pitch Perfect', - value: 1484 - }, - { - name: 'Express', - value: 1112 - }, - { - name: 'Home', - value: 965 - }, - { - name: 'Johnny Depp', - value: 847 - }, - { - name: 'Lena Dunham', - value: 582 - }, - { - name: 'Lewis Hamilton', - value: 555 - }, - { - name: 'KXAN', - value: 550 - }, - { - name: 'Mary Ellen Mark', - value: 462 - }, - { - name: 'Farrah Abraham', - value: 366 - }, - { - name: 'Rita Ora', - value: 360 - }, - { - name: 'Serena Williams', - value: 282 - }, - { - name: 'NCAA baseball tournament', - value: 273 - }, - { - name: 'Point Break', - value: 265 - } - ] - } - ] -} diff --git a/yshop-drink-vue/src/views/Home/types.ts b/yshop-drink-vue/src/views/Home/types.ts deleted file mode 100644 index e6313d3..0000000 --- a/yshop-drink-vue/src/views/Home/types.ts +++ /dev/null @@ -1,55 +0,0 @@ -export type WorkplaceTotal = { - project: number - access: number - todo: number -} - -export type Project = { - name: string - icon: string - message: string - personal: string - time: Date | number | string -} - -export type Notice = { - title: string - type: string - keys: string[] - date: Date | number | string -} - -export type Shortcut = { - name: string - icon: string - url: string -} - -export type RadarData = { - personal: number - team: number - max: number - name: string -} -export type AnalysisTotalTypes = { - users: number - messages: number - moneys: number - shoppings: number -} - -export type UserAccessSource = { - value: number - name: string -} - -export type WeeklyUserActivity = { - value: number - name: string -} - -export type MonthlySales = { - name: string - estimate: number - actual: number -} diff --git a/yshop-drink-vue/src/views/Login/Login.vue b/yshop-drink-vue/src/views/Login/Login.vue deleted file mode 100644 index 7895708..0000000 --- a/yshop-drink-vue/src/views/Login/Login.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Login/components/LoginForm.vue b/yshop-drink-vue/src/views/Login/components/LoginForm.vue deleted file mode 100644 index 3ee5cf9..0000000 --- a/yshop-drink-vue/src/views/Login/components/LoginForm.vue +++ /dev/null @@ -1,266 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Login/components/LoginFormTitle.vue b/yshop-drink-vue/src/views/Login/components/LoginFormTitle.vue deleted file mode 100644 index b192a5f..0000000 --- a/yshop-drink-vue/src/views/Login/components/LoginFormTitle.vue +++ /dev/null @@ -1,24 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Login/components/MobileForm.vue b/yshop-drink-vue/src/views/Login/components/MobileForm.vue deleted file mode 100644 index 5e53059..0000000 --- a/yshop-drink-vue/src/views/Login/components/MobileForm.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Login/components/QrCodeForm.vue b/yshop-drink-vue/src/views/Login/components/QrCodeForm.vue deleted file mode 100644 index c485d28..0000000 --- a/yshop-drink-vue/src/views/Login/components/QrCodeForm.vue +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Login/components/RegisterForm.vue b/yshop-drink-vue/src/views/Login/components/RegisterForm.vue deleted file mode 100644 index de6b596..0000000 --- a/yshop-drink-vue/src/views/Login/components/RegisterForm.vue +++ /dev/null @@ -1,140 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Login/components/SSOLogin.vue b/yshop-drink-vue/src/views/Login/components/SSOLogin.vue deleted file mode 100644 index 1ac365e..0000000 --- a/yshop-drink-vue/src/views/Login/components/SSOLogin.vue +++ /dev/null @@ -1,186 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Login/components/index.ts b/yshop-drink-vue/src/views/Login/components/index.ts deleted file mode 100644 index 204ad73..0000000 --- a/yshop-drink-vue/src/views/Login/components/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import LoginForm from './LoginForm.vue' -import MobileForm from './MobileForm.vue' -import LoginFormTitle from './LoginFormTitle.vue' -import RegisterForm from './RegisterForm.vue' -import QrCodeForm from './QrCodeForm.vue' -import SSOLoginVue from './SSOLogin.vue' - -export { LoginForm, MobileForm, LoginFormTitle, RegisterForm, QrCodeForm, SSOLoginVue } diff --git a/yshop-drink-vue/src/views/Login/components/useLogin.ts b/yshop-drink-vue/src/views/Login/components/useLogin.ts deleted file mode 100644 index b4a02f8..0000000 --- a/yshop-drink-vue/src/views/Login/components/useLogin.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Ref } from 'vue' - -export enum LoginStateEnum { - LOGIN, - REGISTER, - RESET_PASSWORD, - MOBILE, - QR_CODE, - SSO -} - -const currentState = ref(LoginStateEnum.LOGIN) - -export function useLoginState() { - function setLoginState(state: LoginStateEnum) { - currentState.value = state - } - const getLoginState = computed(() => currentState.value) - - function handleBackLogin() { - setLoginState(LoginStateEnum.LOGIN) - } - - return { - setLoginState, - getLoginState, - handleBackLogin - } -} - -export function useFormValid(formRef: Ref) { - async function validForm() { - const form = unref(formRef) - if (!form) return - const data = await form.validate() - return data as T - } - - return { - validForm - } -} diff --git a/yshop-drink-vue/src/views/Profile/Index.vue b/yshop-drink-vue/src/views/Profile/Index.vue deleted file mode 100644 index 6a31f15..0000000 --- a/yshop-drink-vue/src/views/Profile/Index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/views/Profile/components/BasicInfo.vue b/yshop-drink-vue/src/views/Profile/components/BasicInfo.vue deleted file mode 100644 index f3cc81c..0000000 --- a/yshop-drink-vue/src/views/Profile/components/BasicInfo.vue +++ /dev/null @@ -1,89 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Profile/components/ProfileUser.vue b/yshop-drink-vue/src/views/Profile/components/ProfileUser.vue deleted file mode 100644 index 523985d..0000000 --- a/yshop-drink-vue/src/views/Profile/components/ProfileUser.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Profile/components/ResetPwd.vue b/yshop-drink-vue/src/views/Profile/components/ResetPwd.vue deleted file mode 100644 index d348511..0000000 --- a/yshop-drink-vue/src/views/Profile/components/ResetPwd.vue +++ /dev/null @@ -1,68 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Profile/components/UserAvatar.vue b/yshop-drink-vue/src/views/Profile/components/UserAvatar.vue deleted file mode 100644 index 88dc8d9..0000000 --- a/yshop-drink-vue/src/views/Profile/components/UserAvatar.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/yshop-drink-vue/src/views/Profile/components/UserSocial.vue b/yshop-drink-vue/src/views/Profile/components/UserSocial.vue deleted file mode 100644 index 5d1664e..0000000 --- a/yshop-drink-vue/src/views/Profile/components/UserSocial.vue +++ /dev/null @@ -1,92 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/Profile/components/index.ts b/yshop-drink-vue/src/views/Profile/components/index.ts deleted file mode 100644 index 9e1883c..0000000 --- a/yshop-drink-vue/src/views/Profile/components/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import BasicInfo from './BasicInfo.vue' -import ProfileUser from './ProfileUser.vue' -import ResetPwd from './ResetPwd.vue' -import UserAvatarVue from './UserAvatar.vue' -import UserSocial from './UserSocial.vue' - -export { BasicInfo, ProfileUser, ResetPwd, UserAvatarVue, UserSocial } diff --git a/yshop-drink-vue/src/views/Redirect/Redirect.vue b/yshop-drink-vue/src/views/Redirect/Redirect.vue deleted file mode 100644 index 8be6c73..0000000 --- a/yshop-drink-vue/src/views/Redirect/Redirect.vue +++ /dev/null @@ -1,26 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/express/ExpressForm.vue b/yshop-drink-vue/src/views/express/ExpressForm.vue deleted file mode 100644 index da5441a..0000000 --- a/yshop-drink-vue/src/views/express/ExpressForm.vue +++ /dev/null @@ -1,103 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/express/ExpressSet.vue b/yshop-drink-vue/src/views/express/ExpressSet.vue deleted file mode 100644 index c1c7e35..0000000 --- a/yshop-drink-vue/src/views/express/ExpressSet.vue +++ /dev/null @@ -1,96 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/express/index.vue b/yshop-drink-vue/src/views/express/index.vue deleted file mode 100644 index 7d88138..0000000 --- a/yshop-drink-vue/src/views/express/index.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue b/yshop-drink-vue/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue deleted file mode 100644 index fac82aa..0000000 --- a/yshop-drink-vue/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/views/infra/apiAccessLog/index.vue b/yshop-drink-vue/src/views/infra/apiAccessLog/index.vue deleted file mode 100644 index 844124f..0000000 --- a/yshop-drink-vue/src/views/infra/apiAccessLog/index.vue +++ /dev/null @@ -1,214 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue b/yshop-drink-vue/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue deleted file mode 100644 index 7fe1757..0000000 --- a/yshop-drink-vue/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue +++ /dev/null @@ -1,79 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/apiErrorLog/index.vue b/yshop-drink-vue/src/views/infra/apiErrorLog/index.vue deleted file mode 100644 index f35444d..0000000 --- a/yshop-drink-vue/src/views/infra/apiErrorLog/index.vue +++ /dev/null @@ -1,247 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/views/infra/build/index.vue b/yshop-drink-vue/src/views/infra/build/index.vue deleted file mode 100644 index c26c2e6..0000000 --- a/yshop-drink-vue/src/views/infra/build/index.vue +++ /dev/null @@ -1,141 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/EditTable.vue b/yshop-drink-vue/src/views/infra/codegen/EditTable.vue deleted file mode 100644 index e540f96..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/EditTable.vue +++ /dev/null @@ -1,81 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/ImportTable.vue b/yshop-drink-vue/src/views/infra/codegen/ImportTable.vue deleted file mode 100644 index fb37aa2..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/ImportTable.vue +++ /dev/null @@ -1,149 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/PreviewCode.vue b/yshop-drink-vue/src/views/infra/codegen/PreviewCode.vue deleted file mode 100644 index e27d790..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/PreviewCode.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - diff --git a/yshop-drink-vue/src/views/infra/codegen/components/BasicInfoForm.vue b/yshop-drink-vue/src/views/infra/codegen/components/BasicInfoForm.vue deleted file mode 100644 index dcccd9e..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/components/BasicInfoForm.vue +++ /dev/null @@ -1,85 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/components/ColumInfoForm.vue b/yshop-drink-vue/src/views/infra/codegen/components/ColumInfoForm.vue deleted file mode 100644 index e228d3a..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/components/ColumInfoForm.vue +++ /dev/null @@ -1,151 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/components/GenerateInfoForm.vue b/yshop-drink-vue/src/views/infra/codegen/components/GenerateInfoForm.vue deleted file mode 100644 index 51e01ad..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/components/GenerateInfoForm.vue +++ /dev/null @@ -1,389 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/codegen/components/index.ts b/yshop-drink-vue/src/views/infra/codegen/components/index.ts deleted file mode 100644 index 1634a76..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import BasicInfoForm from './BasicInfoForm.vue' -import ColumInfoForm from './ColumInfoForm.vue' -import GenerateInfoForm from './GenerateInfoForm.vue' -export { BasicInfoForm, ColumInfoForm, GenerateInfoForm } diff --git a/yshop-drink-vue/src/views/infra/codegen/index.vue b/yshop-drink-vue/src/views/infra/codegen/index.vue deleted file mode 100644 index 32f3468..0000000 --- a/yshop-drink-vue/src/views/infra/codegen/index.vue +++ /dev/null @@ -1,251 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/config/ConfigForm.vue b/yshop-drink-vue/src/views/infra/config/ConfigForm.vue deleted file mode 100644 index 5c2d028..0000000 --- a/yshop-drink-vue/src/views/infra/config/ConfigForm.vue +++ /dev/null @@ -1,129 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/config/index.vue b/yshop-drink-vue/src/views/infra/config/index.vue deleted file mode 100644 index 239c445..0000000 --- a/yshop-drink-vue/src/views/infra/config/index.vue +++ /dev/null @@ -1,223 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/dataSourceConfig/DataSourceConfigForm.vue b/yshop-drink-vue/src/views/infra/dataSourceConfig/DataSourceConfigForm.vue deleted file mode 100644 index 26a8358..0000000 --- a/yshop-drink-vue/src/views/infra/dataSourceConfig/DataSourceConfigForm.vue +++ /dev/null @@ -1,109 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/dataSourceConfig/index.vue b/yshop-drink-vue/src/views/infra/dataSourceConfig/index.vue deleted file mode 100644 index 9975b8d..0000000 --- a/yshop-drink-vue/src/views/infra/dataSourceConfig/index.vue +++ /dev/null @@ -1,103 +0,0 @@ - - diff --git a/yshop-drink-vue/src/views/infra/dbDoc/index.vue b/yshop-drink-vue/src/views/infra/dbDoc/index.vue deleted file mode 100644 index 403937f..0000000 --- a/yshop-drink-vue/src/views/infra/dbDoc/index.vue +++ /dev/null @@ -1,55 +0,0 @@ -